summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2011-11-23 19:12:30 -0500
committerChet Ramey <chet.ramey@case.edu>2011-11-23 19:12:30 -0500
commitbcd7f75a2bc2f7c67c9cd6899ff546afa45cbba4 (patch)
tree71f09c9e7e2a9be3c3aa79e31cb48d7069d8a979
parent753c336c548b9a1358058751c6288b6e31458d89 (diff)
downloadreadline-bcd7f75a2bc2f7c67c9cd6899ff546afa45cbba4.tar.gz
Readline-5.0 import
-rw-r--r--CHANGELOG111
-rw-r--r--CHANGES180
-rw-r--r--INSTALL2
-rw-r--r--MANIFEST24
-rw-r--r--Makefile.in44
-rw-r--r--NEWS55
-rw-r--r--README2
-rw-r--r--aclocal.m42257
-rw-r--r--bind.c123
-rw-r--r--callback.c2
-rw-r--r--chardefs.h6
-rw-r--r--complete.c288
-rw-r--r--config.h.in21
-rwxr-xr-xconfigure5297
-rw-r--r--configure.in15
-rw-r--r--display.c200
-rw-r--r--doc/Makefile.in76
-rw-r--r--doc/fdl.texi452
-rw-r--r--doc/history.0754
-rw-r--r--doc/history.329
-rw-r--r--doc/history.dvibin48868 -> 79856 bytes
-rw-r--r--doc/history.html881
-rw-r--r--doc/history.info581
-rw-r--r--doc/history.pdfbin0 -> 166940 bytes
-rw-r--r--doc/history.ps4749
-rw-r--r--doc/history.texi104
-rw-r--r--doc/history_3.ps801
-rw-r--r--doc/hstech.texi573
-rw-r--r--doc/hsuser.texi457
-rw-r--r--doc/readline.01029
-rw-r--r--doc/readline.327
-rw-r--r--doc/readline.dvibin235920 -> 274068 bytes
-rw-r--r--doc/readline.html2144
-rw-r--r--doc/readline.info811
-rw-r--r--doc/readline.pdfbin0 -> 311657 bytes
-rw-r--r--doc/readline.ps12260
-rw-r--r--doc/readline_3.ps1226
-rw-r--r--doc/rlman.texi101
-rw-r--r--doc/rltech.texi2259
-rw-r--r--doc/rluser.texi1824
-rw-r--r--doc/rluserman.dvibin62592 -> 91852 bytes
-rw-r--r--doc/rluserman.html914
-rw-r--r--doc/rluserman.info577
-rw-r--r--doc/rluserman.pdfbin0 -> 172521 bytes
-rw-r--r--doc/rluserman.ps5347
-rw-r--r--doc/rluserman.texi88
-rwxr-xr-xdoc/texi2dvi192
-rw-r--r--doc/texinfo.tex2918
-rw-r--r--doc/version.texi10
-rw-r--r--examples/Makefile.in2
-rw-r--r--examples/histexamp.c116
-rw-r--r--examples/rl-fgets.c374
-rw-r--r--funmap.c1
-rw-r--r--histexpand.c330
-rw-r--r--histfile.c133
-rw-r--r--history.c90
-rw-r--r--history.h24
-rw-r--r--histsearch.c6
-rw-r--r--input.c24
-rw-r--r--keymaps.c13
-rw-r--r--kill.c41
-rw-r--r--mbutil.c23
-rw-r--r--misc.c16
-rw-r--r--nls.c37
-rw-r--r--parens.c4
-rw-r--r--posixdir.h10
-rw-r--r--readline.c68
-rw-r--r--readline.h59
-rw-r--r--rldefs.h2
-rw-r--r--rlmbutil.h15
-rw-r--r--rlprivate.h8
-rw-r--r--rlstdc.h2
-rw-r--r--rltty.c149
-rw-r--r--rltty.h32
-rw-r--r--rltypedefs.h8
-rw-r--r--savestring.c3
-rw-r--r--search.c12
-rw-r--r--shell.c4
-rw-r--r--shlib/Makefile.in18
-rw-r--r--signals.c8
-rwxr-xr-xsupport/config.guess270
-rwxr-xr-xsupport/config.rpath548
-rwxr-xr-x[-rw-r--r--]support/config.sub193
-rwxr-xr-xsupport/mkinstalldirs111
-rwxr-xr-xsupport/shlib-install35
-rwxr-xr-xsupport/shobj-conf20
-rw-r--r--terminal.c16
-rw-r--r--text.c29
-rw-r--r--util.c2
-rw-r--r--vi_mode.c71
90 files changed, 37408 insertions, 15330 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 350defa..0fc31fa 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -697,3 +697,114 @@ doc/Makefile.in
- new maybe-clean target that removes the generated documentation if
the build directory differs from the source directory
- distclean target now depends on maybe-clean
+
+ 7/17
+ ----
+[readline-4.3 released]
+
+ 7/18
+ ----
+shlib/Makefile.in
+ - fix bad dependency: text.so: terminal.c, make it depend on text.c
+
+ 8/7
+ ---
+support/shlib-install
+ - break `linux' out into its own stanza: it seems that linux
+ distributions are all moving to the following scheme:
+
+ libreadline.so.4.3 installed version
+ libreadline.so.4 -> libreadline.so.4.3 symlink
+ libreadline.so -> libreadline.so.4 symlink
+
+ 10/29
+ -----
+support/shlib-install
+ - change INSTALL_LINK[12] to use `&&' instead of `;' so it only
+ tries the link if the cd succeeds; put ${echo} in there, too
+ - use $LN instead of `ln -s' so it works on machines without symlinks
+ - change special linux stanza to use cd before ln also
+ - change to use $INSTALL_LINK1 and $INSTALL_LINK2 appropriately
+ instead of explicit commands in various stanzas
+
+ 2/1
+ ---
+config.h.in
+ - add HAVE_MBRTOWC and HAVE_MBRLEN
+ - add NO_MULTIBYTE_SUPPORT for new configure argument
+ - add STDC_HEADERS
+
+configure.in
+ - new argument --enable-multibyte (enabled by default), allows
+ multibyte support to be turned off even on systems that support it
+ - add check for ansi stdc headers with call to AC_HEADER_STDC
+
+ 2/3
+ ---
+configure.in
+ - add call to BASH_FUNC_CTYPE_NONASCII
+
+config.h.in
+ - add CTYPE_NON_ASCII
+
+ 2/20
+ ----
+
+doc/manvers.texinfo
+ - renamed to version.texi to match other GNU software
+ - UPDATE-MONTH variable is now `UPDATED-MONTH'
+
+doc/{hist,rlman,rluserman}.texinfo
+ - include version.texi
+
+doc/{rltech,rluser,hstech,hsuser}.texi
+ - changed the suffix from `texinfo' to `texi'
+
+doc/Makefile.in
+ - made appropriate changes for {{rl,hs}tech,{rl,hs}user}.texi
+
+doc/{rlman,rluserman}.texinfo
+ - changed the suffix from `texinfo' to `texi'
+
+doc/hist.texinfo
+ - renamed to history.texi to be more consistent
+
+ 6/11
+ ----
+shlib/Makefile.in
+ - have configure substitute value of `@LDFLAGS@' into the assignment
+ to SHLIB_XLDFLAGS
+
+ 6/16
+ ----
+configure.in
+ - readline and history libraries are now at version 5.0
+
+ 8/18
+ ----
+support/shlib-install
+ - support for FreeBSD-gnu (from Robert Millan)
+
+ 12/4
+ ----
+Makefile.in
+ - add variables for localedir and the PACKAGE_* variables, auto-set
+ by configure
+
+ 12/9
+ ----
+Makefile.in
+ - use mkinstalldirs instead of mkdirs
+
+ 4/22
+ ----
+Makefile.in
+ - separate doc install/uninstall out into two new targets:
+ install-doc and uninstall-doc
+ - make install-doc and uninstall-doc prerequisites of appropriate
+ install and uninstall targets
+
+examples/rl-fgets.c
+ - new example from Harold Levy that wraps fgets replacement functions
+ that call readline in a shared library that can be interposed with
+ LD_PRELOAD
diff --git a/CHANGES b/CHANGES
index bc9fe94..0c8450d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,183 @@
+This document details the changes between this version, readline-5.0,
+and the previous version, readline-4.3.
+
+1. Changes to Readline
+
+a. Fixes to avoid core dumps because of null pointer references in the
+ multibyte character code.
+
+b. Fix to avoid infinite recursion caused by certain key combinations.
+
+c. Fixed a bug that caused the vi-mode `last command' to be set incorrectly.
+
+d. Readline no longer tries to read ahead more than one line of input, even
+ when more is available.
+
+e. Fixed the code that adjusts the point to not mishandle null wide
+ characters.
+
+f. Fixed a bug in the history expansion `g' modifier that caused it to skip
+ every other match.
+
+g. Fixed a bug that caused the prompt to overwrite previous output when the
+ output doesn't contain a newline and the locale supports multibyte
+ characters. This same change fixes the problem of readline redisplay
+ slowing down dramatically as the line gets longer in multibyte locales.
+
+h. History traversal with arrow keys in vi insertion mode causes the cursor
+ to be placed at the end of the new line, like in emacs mode.
+
+i. The locale initialization code does a better job of using the right
+ precedence and defaulting when checking the appropriate environment
+ variables.
+
+j. Fixed the history word tokenizer to handle <( and >( better when used as
+ part of bash.
+
+k. The overwrite mode code received several bug fixes to improve undo.
+
+l. Many speedups to the multibyte character redisplay code.
+
+m. The callback character reading interface should not hang waiting to read
+ keyboard input.
+
+n. Fixed a bug with redoing vi-mode `s' command.
+
+o. The code that initializes the terminal tracks changes made to the terminal
+ special characters with stty(1) (or equivalent), so that these changes
+ are reflected in the readline bindings. New application-callable function
+ to make it work: rl_tty_unset_default_bindings().
+
+p. Fixed a bug that could cause garbage to be inserted in the buffer when
+ changing character case in vi mode when using a multibyte locale.
+
+q. Fixed a bug in the redisplay code that caused problems on systems
+ supporting multibyte characters when moving between history lines when the
+ new line has more glyphs but fewer bytes.
+
+r. Undo and redo now work better after exiting vi insertion mode.
+
+s. Make sure system calls are restarted after a SIGWINCH is received using
+ SA_RESTART.
+
+t. Improvements to the code that displays possible completions when using
+ multibyte characters.
+
+u. Fixed a problem when parsing nested if statements in inputrc files.
+
+v. The completer now takes multibyte characters into account when looking for
+ quoted substrings on which to perform completion.
+
+w. The history search functions now perform better bounds checking on the
+ history list.
+
+x. Change to history expansion functions to treat `^' as equivalent to word
+ one, as the documention states.
+
+y. Some changes to the display code to improve display and redisplay of
+ multibyte characters.
+
+z. Changes to speed up the multibyte character redisplay code.
+
+aa. Fixed a bug in the vi-mode `E' command that caused it to skip over the
+ last character of a word if invoked while point was on the word's
+ next-to-last character.
+
+bb. Fixed a bug that could cause incorrect filename quoting when
+ case-insensitive completion was enabled and the word being completed
+ contained backslashes quoting word break characters.
+
+cc. Fixed a bug in redisplay triggered when the prompt string contains
+ invisible characters.
+
+dd. Fixed some display (and other) bugs encountered in multibyte locales
+ when a non-ascii character was the last character on a line.
+
+ee. Fixed some display bugs caused by multibyte characters in prompt strings.
+
+ff. Fixed a problem with history expansion caused by non-whitespace characters
+ used as history word delimiters.
+
+gg. Fixed a problem that could cause readline to refer to freed memory when
+ moving between history lines while doing searches.
+
+hh. Improvements to the code that expands and displays prompt strings
+ containing multibyte characters.
+
+ii. Fixed a problem with vi-mode not correctly remembering the numeric argument
+ to the last `c'hange command for later use with `.'.
+
+jj. Fixed a bug in vi-mode that caused multi-digit count arguments to work
+ incorrectly.
+
+kk. Fixed a problem in vi-mode that caused the last text modification command
+ to not be remembered across different command lines.
+
+ll. Fixed problems with changing characters and changing case at the end of
+ the line.
+
+mm. Fixed a problem with readline saving the contents of the current line
+ before beginning a non-interactive search.
+
+nn. Fixed a problem with EOF detection when using rl_event_hook.
+
+oo. Fixed a problem with the vi mode `p' and `P' commands ignoring numeric
+ arguments.
+
+2. 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.
+
+-------------------------------------------------------------------------------
This document details the changes between this version, readline-4.3,
and the previous version, readline-4.2a.
diff --git a/INSTALL b/INSTALL
index adb27a9..cb4a06f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
Basic Installation
==================
-These are installation instructions for Readline-4.3.
+These are installation instructions for Readline-5.0.
The simplest way to compile readline is:
diff --git a/MANIFEST b/MANIFEST
index 1507eda..5b02340 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -11,6 +11,7 @@ MANIFEST f
INSTALL f
CHANGELOG f
CHANGES f
+NEWS f
USAGE f
aclocal.m4 f
config.h.in f
@@ -74,23 +75,26 @@ histfile.c f
histsearch.c f
shlib/Makefile.in f
support/config.guess f
+support/config.rpath f
support/config.sub f
support/install.sh f
support/mkdirs f
support/mkdist f
+support/mkinstalldirs f
support/shobj-conf f
support/shlib-install f
support/wcwidth.c f
doc/Makefile.in f
doc/texinfo.tex f
-doc/manvers.texinfo f
-doc/rlman.texinfo f
-doc/rltech.texinfo f
-doc/rluser.texinfo f
-doc/rluserman.texinfo f
-doc/hist.texinfo f
-doc/hstech.texinfo f
-doc/hsuser.texinfo f
+doc/version.texi f
+doc/fdl.texi f
+doc/rlman.texi f
+doc/rltech.texi f
+doc/rluser.texi f
+doc/rluserman.texi f
+doc/history.texi f
+doc/hstech.texi f
+doc/hsuser.texi f
doc/readline.3 f
doc/history.3 f
doc/texi2dvi f
@@ -100,6 +104,7 @@ examples/excallback.c f
examples/fileman.c f
examples/manexamp.c f
examples/readlinebuf.h f
+examples/rl-fgets.c f
examples/rlcat.c f
examples/rlfe.c f
examples/rltest.c f
@@ -124,3 +129,6 @@ doc/readline.0 f
doc/history.0 f
doc/readline_3.ps f
doc/history_3.ps f
+doc/history.pdf f
+doc/readline.pdf f
+doc/rluserman.pdf f
diff --git a/Makefile.in b/Makefile.in
index 0ff0c31..1578bcb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,6 @@
## -*- text -*- ##
# Master Makefile for the GNU readline library.
-# Copyright (C) 1994 Free Software Foundation, Inc.
+# Copyright (C) 1994-2004 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
@@ -18,6 +18,14 @@
RL_LIBRARY_VERSION = @LIBVERSION@
RL_LIBRARY_NAME = readline
+PACKAGE = @PACKAGE_NAME@
+VERSION = @PACKAGE_VERSION@
+
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+
srcdir = @srcdir@
VPATH = .:@srcdir@
top_srcdir = @top_srcdir@
@@ -45,6 +53,8 @@ bindir = @bindir@
libdir = @libdir@
mandir = @mandir@
includedir = @includedir@
+datadir = @datadir@
+localedir = $(datadir)/locale
infodir = @infodir@
@@ -207,38 +217,42 @@ maybe-uninstall-headers: uninstall-headers
install: $(INSTALL_TARGETS)
-install-static: installdirs $(STATIC_LIBS) install-headers
+install-static: installdirs $(STATIC_LIBS) install-headers install-doc
-$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old
$(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a
-test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a
-$(MV) $(DESTDIR)$(libdir)/libhistory.a $(DESTDIR)$(libdir)/libhistory.old
$(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a
-test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a
- -( if test -d doc ; then \
- cd doc && \
- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \
- fi )
-installdirs: $(srcdir)/support/mkdirs
- -$(SHELL) $(srcdir)/support/mkdirs $(DESTDIR)$(includedir) \
+installdirs: $(srcdir)/support/mkinstalldirs
+ -$(SHELL) $(srcdir)/support/mkinstalldirs $(DESTDIR)$(includedir) \
$(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \
$(DESTDIR)$(infodir) $(DESTDIR)$(man3dir)
-uninstall: uninstall-headers
+uninstall: uninstall-headers uninstall-doc
-test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \
${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS)
- -( if test -d doc ; then \
- cd doc && \
- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} $@; \
- fi )
-( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
-install-shared: installdirs install-headers shared
+install-shared: installdirs install-headers shared install-doc
-( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install )
-
+
uninstall-shared: maybe-uninstall-headers
-( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
+install-doc: installdirs
+ -( if test -d doc ; then \
+ cd doc && \
+ ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \
+ fi )
+
+uninstall-doc:
+ -( if test -d doc ; then \
+ cd doc && \
+ ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} uninstall; \
+ fi )
+
TAGS: force
$(ETAGS) $(CSOURCES) $(HSOURCES)
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..754154b
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,55 @@
+This is a terse description of the new features added to readline-5.0 since
+the release of readline-4.3.
+
+1. 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 7aa9394..ac4e3a7 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
Introduction
============
-This is the Gnu Readline library, version 4.3.
+This is the Gnu Readline library, version 5.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 d1ad025..9d2ed54 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -685,65 +685,26 @@ fi
])
AC_DEFUN(BASH_FUNC_GETCWD,
-[AC_MSG_CHECKING([if getcwd() calls popen()])
-AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
+[AC_MSG_CHECKING([if getcwd() will dynamically allocate memory])
+AC_CACHE_VAL(bash_cv_getcwd_malloc,
[AC_TRY_RUN([
#include <stdio.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifndef __STDC__
-#ifndef const
-#define const
-#endif
-#endif
-
-int popen_called;
-
-FILE *
-popen(command, type)
- const char *command;
- const char *type;
-{
- popen_called = 1;
- return (FILE *)NULL;
-}
-
-FILE *_popen(command, type)
- const char *command;
- const char *type;
-{
- return (popen (command, type));
-}
-
-int
-pclose(stream)
-FILE *stream;
-{
- return 0;
-}
-
-int
-_pclose(stream)
-FILE *stream;
-{
- return 0;
-}
-
main()
{
- char lbuf[32];
- popen_called = 0;
- getcwd(lbuf, 32);
- exit (popen_called);
+ char *xpwd;
+ xpwd = getcwd(0, 0);
+ exit (xpwd == 0);
}
-], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
- [AC_MSG_WARN(cannot check whether getcwd calls popen if cross compiling -- defaulting to no)
- bash_cv_getcwd_calls_popen=no]
+], bash_cv_getcwd_malloc=yes, bash_cv_getcwd_malloc=no,
+ [AC_MSG_WARN(cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no)
+ bash_cv_getcwd_malloc=no]
)])
-AC_MSG_RESULT($bash_cv_getcwd_calls_popen)
-if test $bash_cv_getcwd_calls_popen = yes; then
+AC_MSG_RESULT($bash_cv_getcwd_malloc)
+if test $bash_cv_getcwd_malloc = no; then
AC_DEFINE(GETCWD_BROKEN)
AC_LIBOBJ(getcwd)
fi
@@ -981,11 +942,12 @@ AC_MSG_CHECKING(which library has the termcap functions)
_bash_needmsg=
fi
AC_CACHE_VAL(bash_cv_termcap_lib,
-[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
+[AC_CHECK_FUNC(tgetent, bash_cv_termcap_lib=libc,
+ [AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
[AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
[AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
[AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
- bash_cv_termcap_lib=gnutermcap)])])])])
+ bash_cv_termcap_lib=gnutermcap)])])])])])
if test "X$_bash_needmsg" = "Xyes"; then
AC_MSG_CHECKING(which library has the termcap functions)
fi
@@ -1003,6 +965,9 @@ TERMCAP_DEP=
elif test $bash_cv_termcap_lib = libncurses; then
TERMCAP_LIB=-lncurses
TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libc; then
+TERMCAP_LIB=
+TERMCAP_DEP=
else
TERMCAP_LIB=-lcurses
TERMCAP_DEP=
@@ -1061,7 +1026,7 @@ fi
AC_DEFUN(BASH_STRUCT_DIRENT_D_INO,
[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_ino member)
+AC_MSG_CHECKING(for struct dirent.d_ino)
AC_CACHE_VAL(bash_cv_dirent_has_dino,
[AC_TRY_COMPILE([
#include <stdio.h>
@@ -1088,13 +1053,13 @@ struct dirent d; int z; z = d.d_ino;
], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
AC_MSG_RESULT($bash_cv_dirent_has_dino)
if test $bash_cv_dirent_has_dino = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
+AC_DEFINE(HAVE_STRUCT_DIRENT_D_INO)
fi
])
AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO,
[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_fileno member)
+AC_MSG_CHECKING(for struct dirent.d_fileno)
AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
[AC_TRY_COMPILE([
#include <stdio.h>
@@ -1121,7 +1086,40 @@ struct dirent d; int z; z = d.d_fileno;
], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
if test $bash_cv_dirent_has_d_fileno = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
+AC_DEFINE(HAVE_STRUCT_DIRENT_D_FILENO)
+fi
+])
+
+AC_DEFUN(BASH_STRUCT_DIRENT_D_NAMLEN,
+[AC_REQUIRE([AC_HEADER_DIRENT])
+AC_MSG_CHECKING(for struct dirent.d_namlen)
+AC_CACHE_VAL(bash_cv_dirent_has_d_namlen,
+[AC_TRY_COMPILE([
+#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#if defined(HAVE_DIRENT_H)
+# include <dirent.h>
+#else
+# define dirent direct
+# ifdef HAVE_SYS_NDIR_H
+# include <sys/ndir.h>
+# endif /* SYSNDIR */
+# ifdef HAVE_SYS_DIR_H
+# include <sys/dir.h>
+# endif /* SYSDIR */
+# ifdef HAVE_NDIR_H
+# include <ndir.h>
+# endif
+#endif /* HAVE_DIRENT_H */
+],[
+struct dirent d; int z; z = d.d_namlen;
+], bash_cv_dirent_has_d_namlen=yes, bash_cv_dirent_has_d_namlen=no)])
+AC_MSG_RESULT($bash_cv_dirent_has_d_namlen)
+if test $bash_cv_dirent_has_d_namlen = yes; then
+AC_DEFINE(HAVE_STRUCT_DIRENT_D_NAMLEN)
fi
])
@@ -1141,6 +1139,22 @@ if test $bash_cv_struct_timeval = yes; then
fi
])
+AC_DEFUN(BASH_STRUCT_TIMEZONE,
+[AC_MSG_CHECKING(for struct timezone in sys/time.h and time.h)
+AC_CACHE_VAL(bash_cv_struct_timezone,
+[
+AC_EGREP_HEADER(struct timezone, sys/time.h,
+ bash_cv_struct_timezone=yes,
+ AC_EGREP_HEADER(struct timezone, time.h,
+ bash_cv_struct_timezone=yes,
+ bash_cv_struct_timezone=no))
+])
+AC_MSG_RESULT($bash_cv_struct_timezone)
+if test $bash_cv_struct_timezone = yes; then
+ AC_DEFINE(HAVE_STRUCT_TIMEZONE)
+fi
+])
+
AC_DEFUN(BASH_STRUCT_WINSIZE,
[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
AC_CACHE_VAL(bash_cv_struct_winsize_header,
@@ -1526,9 +1540,9 @@ fi
AC_DEFUN(BASH_CHECK_DEV_FD,
[AC_MSG_CHECKING(whether /dev/fd is available)
AC_CACHE_VAL(bash_cv_dev_fd,
-[if test -d /dev/fd && test -r /dev/fd/0; then
+[if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then
bash_cv_dev_fd=standard
- elif test -d /proc/self/fd && test -r /proc/self/fd/0; then
+ elif test -d /proc/self/fd && test -r /proc/self/fd/0 < /dev/null; then
bash_cv_dev_fd=whacky
else
bash_cv_dev_fd=absent
@@ -1547,9 +1561,9 @@ fi
AC_DEFUN(BASH_CHECK_DEV_STDIN,
[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
AC_CACHE_VAL(bash_cv_dev_stdin,
-[if test -d /dev/fd && test -r /dev/stdin; then
+[if test -d /dev/fd && test -r /dev/stdin < /dev/null; then
bash_cv_dev_stdin=present
- elif test -d /proc/self/fd && test -r /dev/stdin; then
+ elif test -d /proc/self/fd && test -r /dev/stdin < /dev/null; then
bash_cv_dev_stdin=present
else
bash_cv_dev_stdin=absent
@@ -1653,17 +1667,19 @@ AC_CHECK_HEADERS(wchar.h)
AC_CHECK_HEADERS(langinfo.h)
AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
+AC_CHECK_FUNC(mbrtowc, AC_DEFINE(HAVE_MBRTOWC))
+AC_CHECK_FUNC(mbrlen, AC_DEFINE(HAVE_MBRLEN))
+AC_CHECK_FUNC(wctomb, AC_DEFINE(HAVE_WCTOMB))
AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
+AC_CHECK_FUNC(wcsdup, AC_DEFINE(HAVE_WCSDUP))
AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
-[AC_TRY_RUN([
-#include <wchar.h>
-int
-main ()
-{
+[AC_TRY_COMPILE([
+#include <wchar.h>], [
mbstate_t ps;
- return 0;
-}], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
+ mbstate_t *psp;
+ psp = (mbstate_t *)0;
+], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
if test $bash_cv_have_mbstate_t = yes; then
AC_DEFINE(HAVE_MBSTATE_T)
fi
@@ -1712,7 +1728,8 @@ LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
-AC_TRY_RUN([
+AC_CACHE_VAL(ac_cv_rl_version,
+[AC_TRY_RUN([
#include <stdio.h>
#include <readline/readline.h>
@@ -1728,7 +1745,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='4.2')])
CFLAGS="$_save_CFLAGS"
LDFLAGS="$_save_LDFLAGS"
@@ -1790,3 +1807,2107 @@ AC_MSG_RESULT($ac_cv_rl_version)
fi
])
+
+AC_DEFUN(BASH_FUNC_CTYPE_NONASCII,
+[
+AC_MSG_CHECKING(whether the ctype macros accept non-ascii characters)
+AC_CACHE_VAL(bash_cv_func_ctype_nonascii,
+[AC_TRY_RUN([
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+#include <stdio.h>
+#include <ctype.h>
+
+main(c, v)
+int c;
+char *v[];
+{
+ char *deflocale;
+ unsigned char x;
+ int r1, r2;
+
+#ifdef HAVE_SETLOCALE
+ /* We take a shot here. If that locale is not known, try the
+ system default. We try this one because '\342' (226) is
+ known to be a printable character in that locale. */
+ deflocale = setlocale(LC_ALL, "en_US.ISO8859-1");
+ if (deflocale == 0)
+ deflocale = setlocale(LC_ALL, "");
+#endif
+
+ x = '\342';
+ r1 = isprint(x);
+ x -= 128;
+ r2 = isprint(x);
+ exit (r1 == 0 || r2 == 0);
+}
+], bash_cv_func_ctype_nonascii=yes, bash_cv_func_ctype_nonascii=no,
+ [AC_MSG_WARN(cannot check ctype macros if cross compiling -- defaulting to no)
+ bash_cv_func_ctype_nonascii=no]
+)])
+AC_MSG_RESULT($bash_cv_func_ctype_nonascii)
+if test $bash_cv_func_ctype_nonascii = yes; then
+AC_DEFINE(CTYPE_NON_ASCII)
+fi
+])
+
+dnl
+dnl tests added for bashdb
+dnl
+
+
+AC_DEFUN([AM_PATH_LISPDIR],
+ [AC_ARG_WITH(lispdir, AC_HELP_STRING([--with-lispdir], [override the default lisp directory]),
+ [ lispdir="$withval"
+ AC_MSG_CHECKING([where .elc files should go])
+ AC_MSG_RESULT([$lispdir])],
+ [
+ # If set to t, that means we are running in a shell under Emacs.
+ # If you have an Emacs named "t", then use the full path.
+ test x"$EMACS" = xt && EMACS=
+ AC_CHECK_PROGS(EMACS, emacs xemacs, no)
+ if test $EMACS != "no"; then
+ if test x${lispdir+set} != xset; then
+ AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [dnl
+ am_cv_lispdir=`$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' | sed -n -e 's,/$,,' -e '/.*\/lib\/\(x\?emacs\/site-lisp\)$/{s,,${libdir}/\1,;p;q;}' -e '/.*\/share\/\(x\?emacs\/site-lisp\)$/{s,,${datadir}/\1,;p;q;}'`
+ if test -z "$am_cv_lispdir"; then
+ am_cv_lispdir='${datadir}/emacs/site-lisp'
+ fi
+ ])
+ lispdir="$am_cv_lispdir"
+ fi
+ fi
+ ])
+ AC_SUBST(lispdir)
+])
+
+dnl
+dnl tests added for gettext
+dnl
+# codeset.m4 serial AM1 (gettext-0.10.40)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+ [AC_TRY_LINK([#include <langinfo.h>],
+ [char* cs = nl_langinfo(CODESET);],
+ am_cv_langinfo_codeset=yes,
+ am_cv_langinfo_codeset=no)
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])
+# gettext.m4 serial 20 (gettext-0.12)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl default (if it is not specified or empty) is 'no-libtool'.
+dnl INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored. If NEEDSYMBOL is specified and is
+dnl 'need-formatstring-macros', then GNU gettext implementations that don't
+dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries. If empty,
+dnl the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+ dnl Argument checking.
+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+ define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
+ define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+
+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
+ ifelse(gt_included_intl, yes, [
+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
+ ])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ dnl Ideally we would do this search only after the
+ dnl if test "$USE_NLS" = "yes"; then
+ dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+ dnl the configure script would need to contain the same shell code
+ dnl again, outside any 'if'. There are two solutions:
+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+ dnl documented, we avoid it.
+ ifelse(gt_included_intl, yes, , [
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ ])
+
+ dnl Set USE_NLS.
+ AM_NLS
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+ ifelse(gt_included_intl, yes, [
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH(included-gettext,
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ ])
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+
+ dnl Add a version number to the cache macros.
+ define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
+ define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+ define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
+
+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+ gt_cv_func_gnugettext_libc=yes,
+ gt_cv_func_gnugettext_libc=no)])
+
+ if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ ifelse(gt_included_intl, yes, , [
+ AM_ICONV_LINK
+ ])
+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+ dnl even if libiconv doesn't exist.
+ AC_LIB_LINKFLAGS_BODY([intl])
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ gt_cv_func_gnugettext_libintl,
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ dnl Now see whether libintl exists and does not depend on libiconv.
+ AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+ gt_cv_func_gnugettext_libintl=yes,
+ gt_cv_func_gnugettext_libintl=no)
+ dnl Now see whether libintl exists and depends on libiconv.
+ if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ gt_cv_func_gnugettext_libintl=yes
+ ])
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if test "$gt_cv_func_gnugettext_libc" = "yes" \
+ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ dnl Reset the values set by searching for libintl.
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on included GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions to use GNU gettext tools.
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ AC_DEFINE(ENABLE_NLS, 1,
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([whether to use NLS])
+ AC_MSG_RESULT([$USE_NLS])
+ if test "$USE_NLS" = "yes"; then
+ AC_MSG_CHECKING([where the gettext function comes from])
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ gt_source="external libintl"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ AC_MSG_RESULT([$gt_source])
+ fi
+
+ if test "$USE_NLS" = "yes"; then
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ AC_MSG_CHECKING([how to link with libintl])
+ AC_MSG_RESULT([$LIBINTL])
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+ fi
+
+ dnl For backward compatibility. Some packages may be using this.
+ AC_DEFINE(HAVE_GETTEXT, 1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ AC_DEFINE(HAVE_DCGETTEXT, 1,
+ [Define if the GNU dcgettext() function is already present or preinstalled.])
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
+ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(BUILD_INCLUDED_LIBINTL)
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATOBJEXT)
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST(DATADIRNAME)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST(INSTOBJEXT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST(GENCAT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ if test "$USE_INCLUDED_LIBINTL" = yes; then
+ INTLOBJS="\$(GETTOBJS)"
+ fi
+ AC_SUBST(INTLOBJS)
+
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+ ])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLLIBS="$LIBINTL"
+ AC_SUBST(INTLLIBS)
+
+ dnl Make all documented variables known to autoconf.
+ AC_SUBST(LIBINTL)
+ AC_SUBST(LTLIBINTL)
+ AC_SUBST(POSUB)
+])
+
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([jm_GLIBC21])dnl
+ AC_REQUIRE([gt_INTDIV0])dnl
+ AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
+ AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
+
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
+geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
+strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
+__fsetlocking])
+
+ AM_ICONV
+ AM_LANGINFO_CODESET
+ if test $ac_cv_header_locale_h = yes; then
+ AM_LC_MESSAGES
+ fi
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([jm_GLIBC21],
+ [
+ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+ ac_cv_gnu_library_2_1,
+ [AC_EGREP_CPP([Lucky GNU user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ ac_cv_gnu_library_2_1=yes,
+ ac_cv_gnu_library_2_1=no)
+ ]
+ )
+ AC_SUBST(GLIBC21)
+ GLIBC21="$ac_cv_gnu_library_2_1"
+ ]
+)
+# iconv.m4 serial AM4 (gettext-0.11.3)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. The first
+ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_func_iconv=yes)
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ AC_MSG_CHECKING([how to link with libiconv])
+ AC_MSG_RESULT([$LIBICONV])
+ else
+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+ dnl either.
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+ AC_SUBST(LIBICONV)
+ AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+ AM_ICONV_LINK
+ if test "$am_cv_func_iconv" = yes; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL(am_cv_proto_iconv, [
+ AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([$]{ac_t:-
+ }[$]am_cv_proto_iconv)
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+])
+# intdiv0.m4 serial 1 (gettext-0.11.3)
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gt_INTDIV0],
+[
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
+ gt_cv_int_divbyzero_sigfpe,
+ [
+ AC_TRY_RUN([
+#include <stdlib.h>
+#include <signal.h>
+
+static void
+#ifdef __cplusplus
+sigfpe_handler (int sig)
+#else
+sigfpe_handler (sig) int sig;
+#endif
+{
+ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
+ exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+ signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+ signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL. */
+#if defined (__sparc__) && defined (__linux__)
+ signal (SIGILL, sigfpe_handler);
+#endif
+
+ z = x / y;
+ nan = y / y;
+ exit (1);
+}
+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
+ [
+ # Guess based on the CPU.
+ case "$host_cpu" in
+ alpha* | i[34567]86 | m68k | s390*)
+ gt_cv_int_divbyzero_sigfpe="guessing yes";;
+ *)
+ gt_cv_int_divbyzero_sigfpe="guessing no";;
+ esac
+ ])
+ ])
+ case "$gt_cv_int_divbyzero_sigfpe" in
+ *yes) value=1;;
+ *) value=0;;
+ esac
+ AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
+ [Define if integer division by zero raises signal SIGFPE.])
+])
+# inttypes.m4 serial 1 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
+# <sys/types.h>.
+
+AC_DEFUN([gt_HEADER_INTTYPES_H],
+[
+ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
+ [
+ AC_TRY_COMPILE(
+ [#include <sys/types.h>
+#include <inttypes.h>],
+ [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
+ ])
+ if test $gt_cv_header_inttypes_h = yes; then
+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
+ [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
+ fi
+])
+# inttypes_h.m4 serial 5 (gettext-0.12)
+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
+[
+ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
+ [AC_TRY_COMPILE(
+ [#include <sys/types.h>
+#include <inttypes.h>],
+ [uintmax_t i = (uintmax_t) -1;],
+ jm_ac_cv_header_inttypes_h=yes,
+ jm_ac_cv_header_inttypes_h=no)])
+ if test $jm_ac_cv_header_inttypes_h = yes; then
+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
+ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
+# inttypes-pri.m4 serial 1 (gettext-0.11.4)
+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values. This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+ AC_REQUIRE([gt_HEADER_INTTYPES_H])
+ if test $gt_cv_header_inttypes_h = yes; then
+ AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+ gt_cv_inttypes_pri_broken,
+ [
+ AC_TRY_COMPILE([#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
+ ])
+ fi
+ if test "$gt_cv_inttypes_pri_broken" = yes; then
+ AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
+ [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+ fi
+])
+# isc-posix.m4 serial 2 (gettext-0.11.2)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
+
+# This test replaces the one in autoconf.
+# Currently this macro should have the same name as the autoconf macro
+# because gettext's gettext.m4 (distributed in the automake package)
+# still uses it. Otherwise, the use in gettext.m4 makes autoheader
+# give these diagnostics:
+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
+
+undefine([AC_ISC_POSIX])
+
+AC_DEFUN([AC_ISC_POSIX],
+ [
+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
+ ]
+)
+# lcmessage.m4 serial 3 (gettext-0.11.3)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+
+AC_DEFUN([AM_LC_MESSAGES],
+[
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+])
+# lib-ld.m4 serial 2 (gettext-0.12)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ acl_cv_prog_gnu_ld=yes
+else
+ acl_cv_prog_gnu_ld=no
+fi])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ [re_direlt='/[^/][^/]*/\.\./']
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
+# lib-link.m4 serial 4 (gettext-0.12)
+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIB[]NAME"
+ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+ LIBS="$ac_save_LIBS"
+ ])
+ if test "$ac_cv_lib[]Name" = yes; then
+ HAVE_LIB[]NAME=yes
+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+ ])
+ wl="$acl_cv_wl"
+ libext="$acl_cv_libext"
+ shlibext="$acl_cv_shlibext"
+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ hardcode_direct="$acl_cv_hardcode_direct"
+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ dnl Determine whether the user wants rpath handling at all.
+ AC_ARG_ENABLE(rpath,
+ [ --disable-rpath do not hardcode runtime library paths],
+ :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib$1-prefix],
+[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
+ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+])
+ dnl Search the library and its dependencies in $additional_libdir and
+ dnl $LDFLAGS. Using breadth-first-seach.
+ LIB[]NAME=
+ LTLIB[]NAME=
+ INC[]NAME=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='$1 $2'
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+ dnl or AC_LIB_HAVE_LINKFLAGS call.
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+ else
+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+ dnl that this library doesn't exist. So just drop it.
+ :
+ fi
+ else
+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ if test $use_additional = yes; then
+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ found_dir="$additional_libdir"
+ found_so="$additional_libdir/lib$name.$shlibext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ else
+ if test -f "$additional_libdir/lib$name.$libext"; then
+ found_dir="$additional_libdir"
+ found_a="$additional_libdir/lib$name.$libext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ found_dir="$dir"
+ found_so="$dir/lib$name.$shlibext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ else
+ if test -f "$dir/lib$name.$libext"; then
+ found_dir="$dir"
+ found_a="$dir/lib$name.$libext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ dnl Found the library.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ dnl Linking with a shared library. We attempt to hardcode its
+ dnl directory into the executable's runpath, unless it's the
+ dnl standard /usr/lib.
+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ dnl No hardcoding is needed.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ dnl The hardcoding into $LIBNAME is system dependent.
+ if test "$hardcode_direct" = yes; then
+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+ dnl resulting binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ dnl Rely on "-L$found_dir".
+ dnl But don't add it if it's already contained in the LDFLAGS
+ dnl or the already constructed $LIBNAME
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+ fi
+ if test "$hardcode_minus_L" != no; then
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+ dnl here, because this doesn't fit in flags passed to the
+ dnl compiler. So give up. No hardcoding. This affects only
+ dnl very old systems.
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ dnl Linking with a static library.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+ else
+ dnl We shouldn't come here, but anyway it's good to have a
+ dnl fallback.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+ fi
+ fi
+ dnl Assume the include files are nearby.
+ additional_includedir=
+ case "$found_dir" in
+ */lib | */lib/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ dnl Potentially add $additional_includedir to $INCNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 3. if it's already present in $CPPFLAGS or the already
+ dnl constructed $INCNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INC[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $INCNAME.
+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ dnl Look for dependencies.
+ if test -n "$found_la"; then
+ dnl Read the .la file. It defines the variables
+ dnl dlname, library_names, old_library, dependency_libs, current,
+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ dnl We use only dependency_libs.
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 3. if it's already present in $LDFLAGS or the already
+ dnl constructed $LIBNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LIBNAME.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LTLIBNAME.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ dnl Handle this in the next round.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ dnl Handle this in the next round. Throw away the .la's
+ dnl directory; it is already contained in a preceding -L
+ dnl option.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ dnl Most likely an immediate library name.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ dnl Didn't find the library; assume it is in the system directories
+ dnl known to the linker and runtime loader. (All the system
+ dnl directories known to the linker should also be known to the
+ dnl runtime loader, otherwise the system is severely misconfigured.)
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user must
+ dnl pass all path elements in one option. We can arrange that for a
+ dnl single library, but not when more than one $LIBNAMEs are used.
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ dnl When using libtool, the option that works for both libraries and
+ dnl executables is -R. The -R options are cumulative.
+ for found_dir in $ltrpathdirs; do
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ done
+ fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+ for element in [$2]; do
+ haveit=
+ for x in $[$1]; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ [$1]="${[$1]}${[$1]:+ }$element"
+ fi
+ done
+])
+# lib-prefix.m4 serial 2 (gettext-0.12)
+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib-prefix],
+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+])
+ if test $use_additional = yes; then
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's already present in $CPPFLAGS,
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ for x in $CPPFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $CPPFLAGS.
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ dnl Potentially add $additional_libdir to $LDFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's already present in $LDFLAGS,
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ for x in $LDFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LDFLAGS.
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ $1
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+])
+# nls.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+])
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+ dnl Try to locate it.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ case "$ac_aux_dir" in
+ /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+ *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+ esac
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+])
+# po.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AM_NLS])dnl
+
+ dnl Perform the following tests also if --disable-nls has been given,
+ dnl because they are needed for "make dist" to work.
+
+ dnl Search for GNU msgfmt in the PATH.
+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+ dnl The second test excludes FreeBSD msgfmt.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+ dnl The second test excludes FreeBSD xgettext.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+
+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU msgfmt.
+ if test "$GMSGFMT" != ":"; then
+ dnl If it is no GNU msgfmt we define it as : so that the
+ dnl Makefiles still can work.
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+ (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+ AC_MSG_RESULT(
+ [found $GMSGFMT program is not GNU msgfmt; ignore it])
+ GMSGFMT=":"
+ fi
+ fi
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+ fi
+
+ AC_OUTPUT_COMMANDS([
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ GMOFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done],
+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
+ # from automake.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+# progtest.m4 serial 3 (gettext-0.12)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+# stdint_h.m4 serial 3 (gettext-0.12)
+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([jm_AC_HEADER_STDINT_H],
+[
+ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
+ [AC_TRY_COMPILE(
+ [#include <sys/types.h>
+#include <stdint.h>],
+ [uintmax_t i = (uintmax_t) -1;],
+ jm_ac_cv_header_stdint_h=yes,
+ jm_ac_cv_header_stdint_h=no)])
+ if test $jm_ac_cv_header_stdint_h = yes; then
+ AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
+ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
+# uintmax_t.m4 serial 7 (gettext-0.12)
+dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+AC_PREREQ(2.13)
+
+# Define uintmax_t to 'unsigned long' or 'unsigned long long'
+# if it is not already defined in <stdint.h> or <inttypes.h>.
+
+AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
+[
+ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
+ if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
+ AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
+ test $ac_cv_type_unsigned_long_long = yes \
+ && ac_type='unsigned long long' \
+ || ac_type='unsigned long'
+ AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
+ [Define to unsigned long or unsigned long long
+ if <stdint.h> and <inttypes.h> don't define.])
+ else
+ AC_DEFINE(HAVE_UINTMAX_T, 1,
+ [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
+# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
+dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paul Eggert.
+
+AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
+[
+ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
+ [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
+ [unsigned long long ullmax = (unsigned long long) -1;
+ return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
+ ac_cv_type_unsigned_long_long=yes,
+ ac_cv_type_unsigned_long_long=no)])
+ if test $ac_cv_type_unsigned_long_long = yes; then
+ AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
+ [Define if you have the unsigned long long type.])
+ fi
+])
diff --git a/bind.c b/bind.c
index 7103888..15d0e4e 100644
--- a/bind.c
+++ b/bind.c
@@ -19,8 +19,13 @@
is generally kept in a file called COPYING or LICENSE. If you do not
have a copy of the license, write to the Free Software Foundation,
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
#define READLINE_LIBRARY
+#if defined (__TANDEM)
+# include <floss.h>
+#endif
+
#if defined (HAVE_CONFIG_H)
# include <config.h>
#endif
@@ -148,6 +153,34 @@ rl_bind_key_in_map (key, function, map)
return (result);
}
+/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right
+ now, this is always used to attempt to bind the arrow keys, hence the
+ check for rl_vi_movement_mode. */
+int
+rl_bind_key_if_unbound_in_map (key, default_func, kmap)
+ int key;
+ rl_command_func_t *default_func;
+ Keymap kmap;
+{
+ char keyseq[2];
+
+ keyseq[0] = (unsigned char)key;
+ keyseq[1] = '\0';
+ return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, kmap));
+}
+
+int
+rl_bind_key_if_unbound (key, default_func)
+ int key;
+ rl_command_func_t *default_func;
+{
+ char keyseq[2];
+
+ keyseq[0] = (unsigned char)key;
+ keyseq[1] = '\0';
+ return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, _rl_keymap));
+}
+
/* Make KEY do nothing in the currently selected keymap.
Returns non-zero in case of error. */
int
@@ -200,9 +233,30 @@ rl_unbind_command_in_map (command, map)
}
/* Bind the key sequence represented by the string KEYSEQ to
+ FUNCTION, starting in the current keymap. This makes new
+ keymaps as necessary. */
+int
+rl_bind_keyseq (keyseq, function)
+ const char *keyseq;
+ rl_command_func_t *function;
+{
+ return (rl_generic_bind (ISFUNC, keyseq, (char *)function, _rl_keymap));
+}
+
+/* Bind the key sequence represented by the string KEYSEQ to
FUNCTION. This makes new keymaps as necessary. The initial
place to do bindings is in MAP. */
int
+rl_bind_keyseq_in_map (keyseq, function, map)
+ const char *keyseq;
+ rl_command_func_t *function;
+ Keymap map;
+{
+ return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map));
+}
+
+/* Backwards compatibility; equivalent to rl_bind_keyseq_in_map() */
+int
rl_set_key (keyseq, function, map)
const char *keyseq;
rl_command_func_t *function;
@@ -211,6 +265,40 @@ rl_set_key (keyseq, function, map)
return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map));
}
+/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right
+ now, this is always used to attempt to bind the arrow keys, hence the
+ check for rl_vi_movement_mode. */
+int
+rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, kmap)
+ const char *keyseq;
+ rl_command_func_t *default_func;
+ Keymap kmap;
+{
+ rl_command_func_t *func;
+
+ if (keyseq)
+ {
+ func = rl_function_of_keyseq (keyseq, kmap, (int *)NULL);
+#if defined (VI_MODE)
+ if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode)
+#else
+ if (!func || func == rl_do_lowercase_version)
+#endif
+ return (rl_bind_keyseq_in_map (keyseq, default_func, kmap));
+ else
+ return 1;
+ }
+ return 0;
+}
+
+int
+rl_bind_keyseq_if_unbound (keyseq, default_func)
+ const char *keyseq;
+ rl_command_func_t *default_func;
+{
+ return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, _rl_keymap));
+}
+
/* Bind the key sequence represented by the string KEYSEQ to
the string of characters MACRO. This makes new keymaps as
necessary. The initial place to do bindings is in MAP. */
@@ -912,9 +1000,15 @@ parser_else (args)
return 0;
}
+#if 0
/* Check the previous (n - 1) levels of the stack to make sure that
we haven't previously turned off parsing. */
for (i = 0; i < if_stack_depth - 1; i++)
+#else
+ /* Check the previous (n) levels of the stack to make sure that
+ we haven't previously turned off parsing. */
+ for (i = 0; i < if_stack_depth; i++)
+#endif
if (if_stack[i] == 1)
return 0;
@@ -1161,7 +1255,7 @@ rl_parse_and_bind (string)
}
/* If this is a new-style key-binding, then do the binding with
- rl_set_key (). Otherwise, let the older code deal with it. */
+ rl_bind_keyseq (). Otherwise, let the older code deal with it. */
if (*string == '"')
{
char *seq;
@@ -1200,7 +1294,7 @@ rl_parse_and_bind (string)
rl_macro_bind (seq, &funname[1], _rl_keymap);
}
else
- rl_set_key (seq, rl_named_function (funname), _rl_keymap);
+ rl_bind_keyseq (seq, rl_named_function (funname));
free (seq);
return 0;
@@ -1281,6 +1375,7 @@ static struct {
{ "prefer-visible-bell", &_rl_prefer_visible_bell, V_SPECIAL },
{ "print-completions-horizontally", &_rl_print_completions_horizontally, 0 },
{ "show-all-if-ambiguous", &_rl_complete_show_all, 0 },
+ { "show-all-if-unmodified", &_rl_complete_show_unmodified, 0 },
#if defined (VISIBLE_STATS)
{ "visible-stats", &rl_visible_stats, 0 },
#endif /* VISIBLE_STATS */
@@ -1650,7 +1745,7 @@ rl_get_keymap_name_from_edit_mode ()
/* Each of the following functions produces information about the
state of keybindings and functions known to Readline. The info
is always printed to rl_outstream, and in such a way that it can
- be read back in (i.e., passed to rl_parse_and_bind (). */
+ be read back in (i.e., passed to rl_parse_and_bind ()). */
/* Print the names of functions known to Readline. */
void
@@ -2112,28 +2207,6 @@ rl_dump_variables (count, key)
return (0);
}
-/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right
- now, this is always used to attempt to bind the arrow keys, hence the
- check for rl_vi_movement_mode. */
-void
-_rl_bind_if_unbound (keyseq, default_func)
- const char *keyseq;
- rl_command_func_t *default_func;
-{
- rl_command_func_t *func;
-
- if (keyseq)
- {
- func = rl_function_of_keyseq (keyseq, _rl_keymap, (int *)NULL);
-#if defined (VI_MODE)
- if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode)
-#else
- if (!func || func == rl_do_lowercase_version)
-#endif
- rl_set_key (keyseq, default_func, _rl_keymap);
- }
-}
-
/* Return non-zero if any members of ARRAY are a substring in STRING. */
static int
substring_member_of_array (string, array)
diff --git a/callback.c b/callback.c
index a8f4323..5b05ea5 100644
--- a/callback.c
+++ b/callback.c
@@ -131,7 +131,7 @@ rl_callback_read_char ()
if (in_handler == 0 && rl_linefunc)
_rl_callback_newline ();
}
- if (rl_pending_input)
+ if (rl_pending_input || _rl_pushed_input_available ())
eof = readline_internal_char ();
else
break;
diff --git a/chardefs.h b/chardefs.h
index a537be2..cb04c98 100644
--- a/chardefs.h
+++ b/chardefs.h
@@ -77,7 +77,11 @@
# define isxdigit(c) (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
#endif
-#define NON_NEGATIVE(c) ((unsigned char)(c) == (c))
+#if defined (CTYPE_NON_ASCII)
+# define NON_NEGATIVE(c) 1
+#else
+# define NON_NEGATIVE(c) ((unsigned char)(c) == (c))
+#endif
/* Some systems define these; we want our definitions. */
#undef ISPRINT
diff --git a/complete.c b/complete.c
index 21a9d70..d212f61 100644
--- a/complete.c
+++ b/complete.c
@@ -1,6 +1,6 @@
/* complete.c -- filename completion for readline. */
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -28,7 +28,7 @@
#include <sys/types.h>
#include <fcntl.h>
#if defined (HAVE_SYS_FILE_H)
-#include <sys/file.h>
+# include <sys/file.h>
#endif
#if defined (HAVE_UNISTD_H)
@@ -99,12 +99,16 @@ rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)N
static int stat_char PARAMS((char *));
#endif
+static int path_isdir PARAMS((const char *));
+
static char *rl_quote_filename PARAMS((char *, int, char *));
static void set_completion_defaults PARAMS((int));
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 *));
static int print_filename PARAMS((char *, char *));
static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
@@ -130,6 +134,10 @@ static char *make_quoted_replacement PARAMS((char *, int, char *));
/* If non-zero, non-unique completions always show the list of matches. */
int _rl_complete_show_all = 0;
+/* If non-zero, non-unique completions show the list of matches, unless it
+ is not possible to do partial completion and modify the line. */
+int _rl_complete_show_unmodified = 0;
+
/* If non-zero, completed directory names have a slash appended. */
int _rl_complete_mark_directories = 1;
@@ -214,7 +222,12 @@ const char *rl_basic_quote_characters = "\"'";
/* The list of characters that signal a break between words for
rl_complete_internal. The default list is the contents of
rl_basic_word_break_characters. */
-const char *rl_completer_word_break_characters = (const char *)NULL;
+/*const*/ char *rl_completer_word_break_characters = (/*const*/ char *)NULL;
+
+/* Hook function to allow an application to set the completion word
+ break characters before readline breaks up the line. Allows
+ position-dependent word break characters. */
+rl_cpvfunc_t *rl_completion_word_break_hook = (rl_cpvfunc_t *)NULL;
/* List of characters which can be used to quote a substring of the line.
Completion occurs on the entire substring, and within the substring
@@ -282,6 +295,19 @@ int rl_completion_suppress_append = 0;
default is a space. */
int rl_completion_append_character = ' ';
+/* If non-zero, the completion functions don't append any closing quote.
+ This is set to 0 by rl_complete_internal and may be changed by an
+ application-specific completion function. */
+int rl_completion_suppress_quote = 0;
+
+/* Set to any quote character readline thinks it finds before any application
+ completion function is called. */
+int rl_completion_quote_character;
+
+/* Set to a non-zero value if readline found quoting anywhere in the word to
+ be completed; set before any application completion function is called. */
+int rl_completion_found_quote;
+
/* If non-zero, a slash will be appended to completed filenames that are
symbolic links to directory names, subject to the value of the
mark-directories variable (which is user-settable). This exists so
@@ -320,6 +346,8 @@ rl_complete (ignore, invoking_key)
return (rl_complete_internal ('?'));
else if (_rl_complete_show_all)
return (rl_complete_internal ('!'));
+ else if (_rl_complete_show_unmodified)
+ return (rl_complete_internal ('@'));
else
return (rl_complete_internal (TAB));
}
@@ -352,6 +380,8 @@ rl_completion_mode (cfunc)
return '?';
else if (_rl_complete_show_all)
return '!';
+ else if (_rl_complete_show_unmodified)
+ return '@';
else
return TAB;
}
@@ -372,7 +402,7 @@ set_completion_defaults (what_to_do)
rl_filename_completion_desired = 0;
rl_filename_quoting_desired = 1;
rl_completion_type = what_to_do;
- rl_completion_suppress_append = 0;
+ rl_completion_suppress_append = rl_completion_suppress_quote = 0;
/* The completion entry function may optionally change this. */
rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
@@ -423,6 +453,15 @@ _rl_internal_pager (lines)
return 0;
}
+static int
+path_isdir (filename)
+ const char *filename;
+{
+ struct stat finfo;
+
+ return (stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode));
+}
+
#if defined (VISIBLE_STATS)
/* Return the character which best describes FILENAME.
`@' for symbolic links
@@ -520,53 +559,140 @@ printable_part (pathname)
return ++temp;
}
+/* Compute width of STRING when displayed on screen by print_filename */
+static int
+fnwidth (string)
+ const char *string;
+{
+ int width, pos;
+#if defined (HANDLE_MULTIBYTE)
+ mbstate_t ps;
+ int left, w;
+ size_t clen;
+ wchar_t wc;
+
+ left = strlen (string) + 1;
+ memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+ width = pos = 0;
+ while (string[pos])
+ {
+ if (CTRL_CHAR (*string) || *string == RUBOUT)
+ {
+ width += 2;
+ pos++;
+ }
+ else
+ {
+#if defined (HANDLE_MULTIBYTE)
+ clen = mbrtowc (&wc, string + pos, left - pos, &ps);
+ if (MB_INVALIDCH (clen))
+ {
+ width++;
+ pos++;
+ memset (&ps, 0, sizeof (mbstate_t));
+ }
+ else if (MB_NULLWCH (clen))
+ break;
+ else
+ {
+ pos += clen;
+ w = wcwidth (wc);
+ width += (w >= 0) ? w : 1;
+ }
+#else
+ width++;
+ pos++;
+#endif
+ }
+ }
+
+ return width;
+}
+
+static int
+fnprint (to_print)
+ const char *to_print;
+{
+ int printed_len;
+ const char *s;
+#if defined (HANDLE_MULTIBYTE)
+ mbstate_t ps;
+ const char *end;
+ size_t tlen;
+
+ end = to_print + strlen (to_print) + 1;
+ memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+ printed_len = 0;
+ s = to_print;
+ while (*s)
+ {
+ if (CTRL_CHAR (*s))
+ {
+ putc ('^', rl_outstream);
+ putc (UNCTRL (*s), rl_outstream);
+ printed_len += 2;
+ s++;
+#if defined (HANDLE_MULTIBYTE)
+ memset (&ps, 0, sizeof (mbstate_t));
+#endif
+ }
+ else if (*s == RUBOUT)
+ {
+ putc ('^', rl_outstream);
+ putc ('?', rl_outstream);
+ printed_len += 2;
+ s++;
+#if defined (HANDLE_MULTIBYTE)
+ memset (&ps, 0, sizeof (mbstate_t));
+#endif
+ }
+ else
+ {
+#if defined (HANDLE_MULTIBYTE)
+ tlen = mbrlen (s, end - s, &ps);
+ if (MB_INVALIDCH (tlen))
+ {
+ tlen = 1;
+ memset (&ps, 0, sizeof (mbstate_t));
+ }
+ else if (MB_NULLWCH (tlen))
+ break;
+ fwrite (s, 1, tlen, rl_outstream);
+ s += tlen;
+#else
+ putc (*s, rl_outstream);
+ s++;
+#endif
+ printed_len++;
+ }
+ }
+
+ return printed_len;
+}
+
/* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and we
are using it, check for and output a single character for `special'
filenames. Return the number of characters we output. */
-#define PUTX(c) \
- do { \
- if (CTRL_CHAR (c)) \
- { \
- putc ('^', rl_outstream); \
- putc (UNCTRL (c), rl_outstream); \
- printed_len += 2; \
- } \
- else if (c == RUBOUT) \
- { \
- putc ('^', rl_outstream); \
- putc ('?', rl_outstream); \
- printed_len += 2; \
- } \
- else \
- { \
- putc (c, rl_outstream); \
- printed_len++; \
- } \
- } while (0)
-
static int
print_filename (to_print, full_pathname)
char *to_print, *full_pathname;
{
- int printed_len = 0;
-#if !defined (VISIBLE_STATS)
- char *s;
-
- for (s = to_print; *s; s++)
- {
- PUTX (*s);
- }
-#else
+ int printed_len, extension_char, slen, tlen;
char *s, c, *new_full_pathname;
- int extension_char, slen, tlen;
- for (s = to_print; *s; s++)
- {
- PUTX (*s);
- }
+ extension_char = 0;
+ printed_len = fnprint (to_print);
- if (rl_filename_completion_desired && rl_visible_stats)
+#if defined (VISIBLE_STATS)
+ if (rl_filename_completion_desired && (rl_visible_stats || _rl_complete_mark_directories))
+#else
+ if (rl_filename_completion_desired && _rl_complete_mark_directories)
+#endif
{
/* If to_print != full_pathname, to_print is the basename of the
path passed. In this case, we try to expand the directory
@@ -593,7 +719,13 @@ print_filename (to_print, full_pathname)
new_full_pathname[slen] = '/';
strcpy (new_full_pathname + slen + 1, to_print);
- extension_char = stat_char (new_full_pathname);
+#if defined (VISIBLE_STATS)
+ if (rl_visible_stats)
+ extension_char = stat_char (new_full_pathname);
+ else
+#endif
+ if (path_isdir (new_full_pathname))
+ extension_char = '/';
free (new_full_pathname);
to_print[-1] = c;
@@ -601,7 +733,13 @@ print_filename (to_print, full_pathname)
else
{
s = tilde_expand (full_pathname);
- extension_char = stat_char (s);
+#if defined (VISIBLE_STATS)
+ if (rl_visible_stats)
+ extension_char = stat_char (s);
+ else
+#endif
+ if (path_isdir (s))
+ extension_char = '/';
}
free (s);
@@ -611,7 +749,7 @@ print_filename (to_print, full_pathname)
printed_len++;
}
}
-#endif /* VISIBLE_STATS */
+
return printed_len;
}
@@ -651,19 +789,32 @@ _rl_find_completion_word (fp, dp)
int *fp, *dp;
{
int scan, end, found_quote, delimiter, pass_next, isbrk;
- char quote_char;
+ char quote_char, *brkchars;
end = rl_point;
found_quote = delimiter = 0;
quote_char = '\0';
+ brkchars = 0;
+ if (rl_completion_word_break_hook)
+ brkchars = (*rl_completion_word_break_hook) ();
+ if (brkchars == 0)
+ brkchars = rl_completer_word_break_characters;
+
if (rl_completer_quote_characters)
{
/* We have a list of characters which can be used in pairs to
quote substrings for the completer. Try to find the start
of an unclosed quoted substring. */
/* FOUND_QUOTE is set so we know what kind of quotes we found. */
+#if defined (HANDLE_MULTIBYTE)
+ for (scan = pass_next = 0; scan < end;
+ scan = ((MB_CUR_MAX == 1 || rl_byte_oriented)
+ ? (scan + 1)
+ : _rl_find_next_mbchar (rl_line_buffer, scan, 1, MB_FIND_ANY)))
+#else
for (scan = pass_next = 0; scan < end; scan++)
+#endif
{
if (pass_next)
{
@@ -721,7 +872,7 @@ _rl_find_completion_word (fp, dp)
{
scan = rl_line_buffer[rl_point];
- if (strchr (rl_completer_word_break_characters, scan) == 0)
+ if (strchr (brkchars, scan) == 0)
continue;
/* Call the application-specific function to tell us whether
@@ -749,9 +900,9 @@ _rl_find_completion_word (fp, dp)
if (rl_char_is_quoted_p)
isbrk = (found_quote == 0 ||
(*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) &&
- strchr (rl_completer_word_break_characters, scan) != 0;
+ strchr (brkchars, scan) != 0;
else
- isbrk = strchr (rl_completer_word_break_characters, scan) != 0;
+ isbrk = strchr (brkchars, scan) != 0;
if (isbrk)
{
@@ -786,6 +937,9 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
{
char **matches, *temp;
+ rl_completion_found_quote = found_quote;
+ rl_completion_quote_character = quote_char;
+
/* If the user wants to TRY to complete, but then wants to give
up and use the default completion function, they set the
variable rl_attempted_completion_function. */
@@ -889,6 +1043,7 @@ compute_lcd_of_matches (match_list, matches, text)
{
register int i, c1, c2, si;
int low; /* Count of max-matched characters. */
+ char *dtext; /* dequoted TEXT, if needed */
#if defined (HANDLE_MULTIBYTE)
int v;
mbstate_t ps1, ps2;
@@ -980,6 +1135,26 @@ compute_lcd_of_matches (match_list, matches, text)
the user typed in the face of multiple matches differing in case. */
if (_rl_completion_case_fold)
{
+ /* We're making an assumption here:
+ IF we're completing filenames AND
+ the application has defined a filename dequoting function AND
+ we found a quote character AND
+ the application has requested filename quoting
+ THEN
+ we assume that TEXT was dequoted before checking against
+ the file system and needs to be dequoted here before we
+ check against the list of matches
+ FI */
+ dtext = (char *)NULL;
+ if (rl_filename_completion_desired &&
+ rl_filename_dequoting_function &&
+ rl_completion_found_quote &&
+ rl_filename_quoting_desired)
+ {
+ dtext = (*rl_filename_dequoting_function) (text, rl_completion_quote_character);
+ text = dtext;
+ }
+
/* sort the list to get consistent answers. */
qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
@@ -999,6 +1174,8 @@ compute_lcd_of_matches (match_list, matches, text)
else
/* otherwise, just use the text the user typed. */
strncpy (match_list[0], text, low);
+
+ FREE (dtext);
}
else
strncpy (match_list[0], match_list[1], low);
@@ -1203,7 +1380,7 @@ display_matches (matches)
for (max = 0, i = 1; matches[i]; i++)
{
temp = printable_part (matches[i]);
- len = strlen (temp);
+ len = fnwidth (temp);
if (len > max)
max = len;
@@ -1338,7 +1515,8 @@ append_to_match (text, delimiter, quote_char, nontrivial_match)
struct stat finfo;
temp_string_index = 0;
- if (quote_char && rl_point && rl_line_buffer[rl_point - 1] != quote_char)
+ if (quote_char && rl_point && rl_completion_suppress_quote == 0 &&
+ rl_line_buffer[rl_point - 1] != quote_char)
temp_string[temp_string_index++] = quote_char;
if (delimiter)
@@ -1449,7 +1627,9 @@ _rl_free_match_list (matches)
TAB means do standard completion.
`*' means insert all of the possible completions.
`!' means to do standard completion, and list all possible completions if
- there is more than one. */
+ there is more than one.
+ `@' means to do standard completion, and list all possible completions if
+ there is more than one and partial completion is not possible. */
int
rl_complete_internal (what_to_do)
int what_to_do;
@@ -1468,7 +1648,6 @@ rl_complete_internal (what_to_do)
our_func = rl_completion_entry_function
? rl_completion_entry_function
: rl_filename_completion_function;
-
/* We now look backwards for the start of a filename/variable word. */
end = rl_point;
found_quote = delimiter = 0;
@@ -1516,6 +1695,7 @@ rl_complete_internal (what_to_do)
{
case TAB:
case '!':
+ case '@':
/* Insert the first match with proper quoting. */
if (*matches[0])
insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
@@ -1535,6 +1715,12 @@ rl_complete_internal (what_to_do)
display_matches (matches);
break;
}
+ else if (what_to_do == '@')
+ {
+ if (nontrivial_lcd == 0)
+ display_matches (matches);
+ break;
+ }
else if (rl_editing_mode != vi_mode)
rl_ding (); /* There are other matches remaining. */
}
diff --git a/config.h.in b/config.h.in
index c53c2a1..8b4f0d0 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,11 +1,17 @@
/* config.h.in. Maintained by hand. */
+/* Define NO_MULTIBYTE_SUPPORT to not compile in support for multibyte
+ characters, even if the OS supports them. */
+#undef NO_MULTIBYTE_SUPPORT
+
/* Define if on MINIX. */
#undef _MINIX
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
+#undef VOID_SIGHANDLER
+
/* Characteristics of the compiler. */
#undef const
@@ -20,8 +26,6 @@
/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
#undef STAT_MACROS_BROKEN
-#undef VOID_SIGHANDLER
-
/* Define if you have the isascii function. */
#undef HAVE_ISASCII
@@ -31,6 +35,12 @@
/* Define if you have the lstat function. */
#undef HAVE_LSTAT
+/* Define if you have the mbrlen function. */
+#undef HAVE_MBRLEN
+
+/* Define if you have the mbrtowc function. */
+#undef HAVE_MBRTOWC
+
/* Define if you have the mbsrtowcs function. */
#undef HAVE_MBSRTOWCS
@@ -66,9 +76,14 @@
/* Define if you have the vsnprintf function. */
#undef HAVE_VSNPRINTF
+/* Define if you have the wctomb function. */
+#undef HAVE_WCTOMB
+
/* Define if you have the wcwidth function. */
#undef HAVE_WCWIDTH
+#undef STDC_HEADERS
+
/* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
@@ -177,6 +192,8 @@
#undef HAVE_POSIX_SIGSETJMP
+#undef CTYPE_NON_ASCII
+
/* modify settings or make new ones based on what autoconf tells us. */
/* Ultrix botches type-ahead when switching from canonical to
diff --git a/configure b/configure
index fc3769f..5eedea3 100755
--- a/configure
+++ b/configure
@@ -1,15 +1,84 @@
#! /bin/sh
-# From configure.in for Readline 4.3, version 2.45, from autoconf version 2.52.
+# From configure.in for Readline 5.0, version 2.52, from autoconf version AC_ACVERSION.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52 for readline 4.3.
+# Generated by GNU Autoconf 2.57 for readline 5.0-rc1.
#
# Report bugs to <bug-readline@gnu.org>.
#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -17,22 +86,113 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
-# Name of the executable.
-as_me=`echo "$0" |sed 's,.*[\\/],,'`
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # 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 sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
if expr a : '\(a\)' >/dev/null 2>&1; then
as_expr=expr
@@ -58,24 +218,20 @@ else
fi
rm -f conf$$ conf$$.exe conf$$.file
-as_executable_p="test -f"
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
- as_unset=unset
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
else
- as_unset=false
+ as_mkdir_p=false
fi
-# NLS nuisances.
-$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
-$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
-$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
-$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
-$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
-$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
-$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
-$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
# IFS
# We need space, tab and new line, in precisely that order.
@@ -84,7 +240,8 @@ as_nl='
IFS=" $as_nl"
# CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+$as_unset CDPATH
+
# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
@@ -97,9 +254,11 @@ exec 6>&1
# Initializations.
#
ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
cross_compiling=no
subdirs=
-MFLAGS= MAKEFLAGS=
+MFLAGS=
+MAKEFLAGS=
SHELL=${CONFIG_SHELL-/bin/sh}
# Maximum number of lines to put in a shell here document.
@@ -107,6 +266,13 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# only ac_max_sed_lines should be used.
: ${ac_max_here_lines=38}
+# Identity of this package.
+PACKAGE_NAME='readline'
+PACKAGE_TARNAME='readline'
+PACKAGE_VERSION='5.0-rc1'
+PACKAGE_STRING='readline 5.0-rc1'
+PACKAGE_BUGREPORT='bug-readline@gnu.org'
+
ac_unique_file="readline.h"
# Factoring default headers for most tests.
ac_includes_default="\
@@ -145,6 +311,9 @@ ac_includes_default="\
# include <unistd.h>
#endif"
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB MAKE_SHELL SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS SHLIB_STATUS SHLIB_XLDFLAGS SHLIB_LIBSUFF SHLIB_LIBVERSION SHLIB_LIBS SHLIB_MAJOR SHLIB_MINOR STATIC_TARGET SHARED_TARGET STATIC_INSTALL_TARGET SHARED_INSTALL_TARGET BUILD_DIR LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS ARFLAGS LIBVERSION TERMCAP_LIB LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
@@ -183,13 +352,6 @@ oldincludedir='/usr/include'
infodir='${prefix}/info'
mandir='${prefix}/man'
-# Identity of this package.
-PACKAGE_NAME='readline'
-PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='4.3'
-PACKAGE_STRING='readline 4.3'
-PACKAGE_BUGREPORT='bug-readline@gnu.org'
-
ac_prev=
for ac_option
do
@@ -322,7 +484,7 @@ do
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
+ | --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
@@ -501,7 +663,7 @@ do
eval ac_val=$`echo $ac_var`
case $ac_val in
[\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
{ (exit 1); exit 1; }; };;
esac
done
@@ -513,18 +675,19 @@ do
eval ac_val=$`echo $ac_var`
case $ac_val in
[\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
{ (exit 1); exit 1; }; };;
esac
done
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
+# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
-# FIXME: should be removed in autoconf 3.0.
+# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
@@ -540,13 +703,23 @@ test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
+
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$0" : 'X\(//\)[^/]' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r $srcdir/$ac_unique_file; then
srcdir=..
@@ -556,13 +729,16 @@ else
fi
if test ! -r $srcdir/$ac_unique_file; then
if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
{ (exit 1); exit 1; }; }
else
- { echo "$as_me: error: cannot find sources in $srcdir" >&2
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
{ (exit 1); exit 1; }; }
fi
fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ { (exit 1); exit 1; }; }
srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
ac_env_build_alias_set=${build_alias+set}
ac_env_build_alias_value=$build_alias
@@ -603,8 +779,8 @@ ac_cv_env_CPP_value=$CPP
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 <<EOF
-\`configure' configures readline 4.3 to adapt to many kinds of systems.
+ cat <<_ACEOF
+\`configure' configures readline 5.0-rc1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -624,9 +800,9 @@ Configuration:
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
-EOF
+_ACEOF
- cat <<EOF
+ cat <<_ACEOF
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
@@ -653,25 +829,26 @@ Fine tuning of the installation directories:
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
-EOF
+_ACEOF
- cat <<\EOF
+ cat <<\_ACEOF
System types:
--build=BUILD configure for building on BUILD [guessed]
- --host=HOST build programs to run on HOST [BUILD]
-EOF
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of readline 4.3:";;
+ short | recursive ) echo "Configuration of readline 5.0-rc1:";;
esac
- cat <<\EOF
+ cat <<\_ACEOF
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-multibyte enable multibyte characters if OS supports them
--enable-shared build shared libraries [default=YES]
--enable-static build static libraries [default=YES]
@@ -694,40 +871,60 @@ Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <bug-readline@gnu.org>.
-EOF
+_ACEOF
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
ac_popdir=`pwd`
- for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue
- cd $ac_subdir
- # A "../" for each directory in /$ac_subdir.
- ac_dots=`echo $ac_subdir |
- sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'`
-
- case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_sub_srcdir=$srcdir ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_sub_srcdir=$srcdir/$ac_subdir ;;
- *) # Relative path.
- ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;;
- esac
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d $ac_dir || continue
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+ cd $ac_dir
# Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_sub_srcdir/configure.gnu; then
+ if test -f $ac_srcdir/configure.gnu; then
echo
- $SHELL $ac_sub_srcdir/configure.gnu --help=recursive
- elif test -f $ac_sub_srcdir/configure; then
+ $SHELL $ac_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_srcdir/configure; then
echo
- $SHELL $ac_sub_srcdir/configure --help=recursive
- elif test -f $ac_sub_srcdir/configure.ac ||
- test -f $ac_sub_srcdir/configure.in; then
+ $SHELL $ac_srcdir/configure --help=recursive
+ elif test -f $ac_srcdir/configure.ac ||
+ test -f $ac_srcdir/configure.in; then
echo
$ac_configure --help
else
- echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2
+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi
cd $ac_popdir
done
@@ -735,33 +932,33 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
- cat <<\EOF
-readline configure 4.3
-generated by GNU Autoconf 2.52
+ cat <<\_ACEOF
+readline configure 5.0-rc1
+generated by GNU Autoconf 2.57
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
-EOF
+_ACEOF
exit 0
fi
exec 5>config.log
-cat >&5 <<EOF
+cat >&5 <<_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 4.3, which was
-generated by GNU Autoconf 2.52. Invocation command line was
+It was created by readline $as_me 5.0-rc1, which was
+generated by GNU Autoconf 2.57. Invocation command line was
$ $0 $@
-EOF
+_ACEOF
{
cat <<_ASUNAME
-## ---------- ##
-## Platform. ##
-## ---------- ##
+## --------- ##
+## Platform. ##
+## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
@@ -780,51 +977,96 @@ hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-PATH = $PATH
-
_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ echo "PATH: $as_dir"
+done
+
} >&5
-cat >&5 <<EOF
-## ------------ ##
-## Core tests. ##
-## ------------ ##
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
-EOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
ac_sep=
-for ac_arg
+ac_must_keep_next=false
+for ac_pass in 1 2
do
- case $ac_arg in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- ac_sep=" " ;;
- *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
- ac_sep=" " ;;
- esac
- # Get rid of the leading space.
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ # Get rid of the leading space.
+ ac_sep=" "
+ ;;
+ esac
+ done
done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
trap 'exit_status=$?
# Save into config.log some information that might help in debugging.
- echo >&5
- echo "## ----------------- ##" >&5
- echo "## Cache variables. ##" >&5
- echo "## ----------------- ##" >&5
- echo >&5
- # The following way of writing the cache mishandles newlines in values,
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
{
(set) 2>&1 |
case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
@@ -838,21 +1080,53 @@ trap 'exit_status=$?
"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
;;
esac;
-} >&5
- sed "/^$/d" confdefs.h >conftest.log
- if test -s conftest.log; then
- echo >&5
- echo "## ------------ ##" >&5
- echo "## confdefs.h. ##" >&5
- echo "## ------------ ##" >&5
- echo >&5
- cat conftest.log >&5
- fi
- (echo; echo) >&5
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal" >&5
- echo "$as_me: exit $exit_status" >&5
- rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files &&
+}
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ sed "/^$/d" confdefs.h | sort
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core core.* *.core &&
+ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
@@ -865,6 +1139,33 @@ rm -rf conftest* confdefs.h
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
echo >confdefs.h
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
# Let the site file select an alternate cache file if it wants to.
# Prefer explicitly selected file to automatically selected ones.
if test -z "$CONFIG_SITE"; then
@@ -876,9 +1177,9 @@ if test -z "$CONFIG_SITE"; then
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
- { echo "$as_me:879: loading site script $ac_site_file" >&5
+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
echo "$as_me: loading site script $ac_site_file" >&6;}
- cat "$ac_site_file" >&5
+ sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file"
fi
done
@@ -887,7 +1188,7 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special
# files actually), so we avoid doing that.
if test -f "$cache_file"; then
- { echo "$as_me:890: loading cache $cache_file" >&5
+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -895,7 +1196,7 @@ echo "$as_me: loading cache $cache_file" >&6;}
esac
fi
else
- { echo "$as_me:898: creating cache $cache_file" >&5
+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
@@ -911,42 +1212,42 @@ for ac_var in `(set) 2>&1 |
eval ac_new_val="\$ac_env_${ac_var}_value"
case $ac_old_set,$ac_new_set in
set,)
- { echo "$as_me:914: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { echo "$as_me:918: error: \`$ac_var' was not set in the previous run" >&5
+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:924: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:926: former value: $ac_old_val" >&5
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:928: current value: $ac_new_val" >&5
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
echo "$as_me: current value: $ac_new_val" >&2;}
ac_cache_corrupted=:
fi;;
esac
- # Pass precious variables to config.status. It doesn't matter if
- # we pass some twice (in addition to the command line arguments).
+ # Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"`
- ac_configure_args="$ac_configure_args '$ac_arg'"
- ;;
- *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val"
- ;;
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
- { echo "$as_me:947: error: changes in the environment can compromise the build" >&5
+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:949: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -957,26 +1258,35 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-echo "#! $SHELL" >conftest.sh
-echo "exit 0" >>conftest.sh
-chmod +x conftest.sh
-if { (echo "$as_me:969: PATH=\".;.\"; conftest.sh") >&5
- (PATH=".;."; conftest.sh) 2>&5
- ac_status=$?
- echo "$as_me:972: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- ac_path_separator=';'
-else
- ac_path_separator=:
-fi
-PATH_SEPARATOR="$ac_path_separator"
-rm -f conftest.sh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ac_aux_dir=
for ac_dir in ./support $srcdir/./support; do
@@ -995,7 +1305,7 @@ for ac_dir in ./support $srcdir/./support; do
fi
done
if test -z "$ac_aux_dir"; then
- { { echo "$as_me:998: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5
+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5
echo "$as_me: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1003,17 +1313,18 @@ ac_config_guess="$SHELL $ac_aux_dir/config.guess"
ac_config_sub="$SHELL $ac_aux_dir/config.sub"
ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-ac_config_headers="$ac_config_headers config.h"
+ ac_config_headers="$ac_config_headers config.h"
+
-LIBVERSION=4.3
+LIBVERSION=5.0
# Make sure we can run config.sub.
$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:1012: error: cannot run $ac_config_sub" >&5
+ { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
echo "$as_me: error: cannot run $ac_config_sub" >&2;}
{ (exit 1); exit 1; }; }
-echo "$as_me:1016: checking build system type" >&5
+echo "$as_me:$LINENO: checking build system type" >&5
echo $ECHO_N "checking build system type... $ECHO_C" >&6
if test "${ac_cv_build+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1022,23 +1333,24 @@ else
test -z "$ac_cv_build_alias" &&
ac_cv_build_alias=`$ac_config_guess`
test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:1025: error: cannot guess build type; you must specify one" >&5
+ { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:1029: error: $ac_config_sub $ac_cv_build_alias failed." >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1034: result: $ac_cv_build" >&5
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
echo "${ECHO_T}$ac_cv_build" >&6
build=$ac_cv_build
build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$as_me:1041: checking host system type" >&5
+
+echo "$as_me:$LINENO: checking host system type" >&5
echo $ECHO_N "checking host system type... $ECHO_C" >&6
if test "${ac_cv_host+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1047,20 +1359,23 @@ else
test -z "$ac_cv_host_alias" &&
ac_cv_host_alias=$ac_cv_build_alias
ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:1050: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1055: result: $ac_cv_host" >&5
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
echo "${ECHO_T}$ac_cv_host" >&6
host=$ac_cv_host
host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
opt_curses=no
+
# Check whether --with-curses or --without-curses was given.
if test "${with_curses+set}" = set; then
withval="$with_curses"
@@ -1071,9 +1386,15 @@ if test "$opt_curses" = "yes"; then
prefer_curses=yes
fi
+opt_multibyte=yes
opt_static_libs=yes
opt_shared_libs=yes
+# Check whether --enable-multibyte or --disable-multibyte was given.
+if test "${enable_multibyte+set}" = set; then
+ enableval="$enable_multibyte"
+ opt_multibyte=$enableval
+fi;
# Check whether --enable-shared or --disable-shared was given.
if test "${enable_shared+set}" = set; then
enableval="$enable_shared"
@@ -1085,6 +1406,13 @@ if test "${enable_static+set}" = set; then
opt_static_libs=$enableval
fi;
+if test $opt_multibyte = no; then
+cat >>confdefs.h <<\_ACEOF
+#define NO_MULTIBYTE_SUPPORT 1
+_ACEOF
+
+fi
+
echo ""
echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
echo ""
@@ -1092,16 +1420,16 @@ echo ""
# We want these before the checks, so the checks can modify their values.
test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
-echo "$as_me:1095: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >conftest.make <<\EOF
+ cat >conftest.make <<\_ACEOF
all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
+ @echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
if test -n "$ac_maketemp"; then
@@ -1112,11 +1440,11 @@ fi
rm -f conftest.make
fi
if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:1115: result: yes" >&5
+ echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
SET_MAKE=
else
- echo "$as_me:1119: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
SET_MAKE="MAKE=${MAKE-make}"
fi
@@ -1129,7 +1457,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:1132: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1137,25 +1465,28 @@ else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="${ac_tool_prefix}gcc"
-echo "$as_me:1147: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1155: result: $CC" >&5
+ echo "$as_me:$LINENO: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1158: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1164,7 +1495,7 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-echo "$as_me:1167: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1172,25 +1503,28 @@ else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_CC="gcc"
-echo "$as_me:1182: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1190: result: $ac_ct_CC" >&5
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1193: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1203,7 +1537,7 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:1206: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1211,25 +1545,28 @@ else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1221: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1229: result: $CC" >&5
+ echo "$as_me:$LINENO: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1232: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1238,7 +1575,7 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-echo "$as_me:1241: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1246,25 +1583,28 @@ else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_CC="cc"
-echo "$as_me:1256: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1264: result: $ac_ct_CC" >&5
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1267: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1277,7 +1617,7 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-echo "$as_me:1280: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1286,19 +1626,22 @@ else
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
-fi
-ac_cv_prog_CC="cc"
-echo "$as_me:1300: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_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
+ fi
+ ac_cv_prog_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
if test $ac_prog_rejected = yes; then
@@ -1310,19 +1653,17 @@ if test $ac_prog_rejected = yes; then
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
- set dummy "$ac_dir/$ac_word" ${1+"$@"}
- shift
- ac_cv_prog_CC="$@"
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1322: result: $CC" >&5
+ echo "$as_me:$LINENO: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1325: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1333,7 +1674,7 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1336: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1341,25 +1682,28 @@ else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1351: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1359: result: $CC" >&5
+ echo "$as_me:$LINENO: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1362: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1372,7 +1716,7 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1375: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1380,25 +1724,28 @@ else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1390: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1398: result: $ac_ct_CC" >&5
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1401: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1410,33 +1757,40 @@ fi
fi
-test -z "$CC" && { { echo "$as_me:1413: error: no acceptable cc found in \$PATH" >&5
-echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
# Provide some information about the compiler.
-echo "$as_me:1418:" \
+echo "$as_me:$LINENO:" \
"checking for C compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1421: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
(eval $ac_compiler --version </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1424: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
-{ (eval echo "$as_me:1426: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
(eval $ac_compiler -v </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1429: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
-{ (eval echo "$as_me:1431: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
(eval $ac_compiler -V </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1434: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
cat >conftest.$ac_ext <<_ACEOF
-#line 1438 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
int
main ()
@@ -1447,100 +1801,120 @@ main ()
}
_ACEOF
ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe"
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-echo "$as_me:1454: checking for C compiler default output" >&5
+echo "$as_me:$LINENO: checking for C compiler default output" >&5
echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:1457: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
(eval $ac_link_default) 2>&5
ac_status=$?
- echo "$as_me:1460: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
# Find the output, starting from the most likely. This scheme is
# not robust to junk in `.', hence go to wildcards (a.*) only as a last
# resort.
-for ac_file in `ls a.exe conftest.exe 2>/dev/null;
- ls a.out conftest 2>/dev/null;
- ls a.* conftest.* 2>/dev/null`; do
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+ test -f "$ac_file" || continue
case $ac_file in
- *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
- a.out ) # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
- export ac_cv_exeext
- break;;
- * ) break;;
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+ ;;
+ conftest.$ac_ext )
+ # This is the source file.
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
+ * )
+ break;;
esac
done
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:1483: error: C compiler cannot create executables" >&5
-echo "$as_me: error: C compiler cannot create executables" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
{ (exit 77); exit 77; }; }
fi
ac_exeext=$ac_cv_exeext
-echo "$as_me:1489: result: $ac_file" >&5
+echo "$as_me:$LINENO: result: $ac_file" >&5
echo "${ECHO_T}$ac_file" >&6
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1494: checking whether the C compiler works" >&5
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
# If not cross compiling, check that we can run a simple program.
if test "$cross_compiling" != yes; then
if { ac_try='./$ac_file'
- { (eval echo "$as_me:1500: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1503: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { echo "$as_me:1510: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&5
+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&2;}
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
fi
fi
fi
-echo "$as_me:1518: result: yes" >&5
+echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
-rm -f a.out a.exe conftest$ac_cv_exeext
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1525: checking whether we are cross compiling" >&5
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1527: result: $cross_compiling" >&5
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
echo "${ECHO_T}$cross_compiling" >&6
-echo "$as_me:1530: checking for executable suffix" >&5
-echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1532: \"$ac_link\"") >&5
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:1535: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
-for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
case $ac_file in
- *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
export ac_cv_exeext
break;;
@@ -1548,26 +1922,32 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
esac
done
else
- { { echo "$as_me:1551: error: cannot compute EXEEXT: cannot compile and link" >&5
-echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f conftest$ac_cv_exeext
-echo "$as_me:1557: result: $ac_cv_exeext" >&5
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
echo "${ECHO_T}$ac_cv_exeext" >&6
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
-echo "$as_me:1563: checking for object suffix" >&5
-echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
if test "${ac_cv_objext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 1569 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
int
main ()
@@ -1578,40 +1958,47 @@ main ()
}
_ACEOF
rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1581: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1584: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:1596: error: cannot compute OBJEXT: cannot compile" >&5
-echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-echo "$as_me:1603: result: $ac_cv_objext" >&5
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
echo "${ECHO_T}$ac_cv_objext" >&6
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-echo "$as_me:1607: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
if test "${ac_cv_c_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 1613 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
int
main ()
@@ -1625,41 +2012,46 @@ main ()
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1628: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1631: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1634: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1637: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_compiler_gnu=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_compiler_gnu=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-echo "$as_me:1649: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
GCC=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
CFLAGS="-g"
-echo "$as_me:1655: checking whether $CC accepts -g" >&5
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 1661 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
int
main ()
@@ -1670,26 +2062,27 @@ main ()
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1673: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1676: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1679: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1682: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_prog_cc_g=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_prog_cc_g=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:1692: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
@@ -1706,6 +2099,102 @@ else
CFLAGS=
fi
fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* 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);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX 10.20 and later -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+ echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+ *)
+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+ CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
# Some people use a C++ compiler to compile C. Since we use `exit',
# in C++ we need to declare it. In case someone uses the same compiler
# for both compiling C and C++ we need to have the C++ compiler decide
@@ -1716,16 +2205,16 @@ cat >conftest.$ac_ext <<_ACEOF
#endif
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1719: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1722: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1725: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1728: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
for ac_declaration in \
''\
@@ -1737,8 +2226,12 @@ if { (eval echo "$as_me:1719: \"$ac_compile\"") >&5
'void exit (int);'
do
cat >conftest.$ac_ext <<_ACEOF
-#line 1740 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <stdlib.h>
$ac_declaration
int
@@ -1750,27 +2243,32 @@ exit (42);
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1753: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1756: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1759: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1762: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
:
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
continue
fi
rm -f conftest.$ac_objext conftest.$ac_ext
cat >conftest.$ac_ext <<_ACEOF
-#line 1772 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
$ac_declaration
int
main ()
@@ -1781,21 +2279,22 @@ exit (42);
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1784: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1787: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1790: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1793: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
break
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
fi
rm -f conftest.$ac_objext conftest.$ac_ext
done
@@ -1808,7 +2307,8 @@ fi
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
fi
rm -f conftest.$ac_objext conftest.$ac_ext
ac_ext=c
@@ -1817,12 +2317,13 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:1825: checking how to run the C preprocessor" >&5
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
@@ -1840,21 +2341,31 @@ for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line 1846 "configure"
-#include "confdefs.h"
-#include <assert.h>
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
Syntax error
_ACEOF
-if { (eval echo "$as_me:1851: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:1857: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -1868,7 +2379,8 @@ if test -z "$ac_cpp_err"; then
:
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
# Broken: fails on valid input.
continue
fi
@@ -1877,17 +2389,21 @@ rm -f conftest.err conftest.$ac_ext
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line 1880 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:1884: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:1890: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -1902,7 +2418,8 @@ if test -z "$ac_cpp_err"; then
continue
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
# Passes both tests.
ac_preproc_ok=:
break
@@ -1924,28 +2441,38 @@ fi
else
ac_cv_prog_CPP=$CPP
fi
-echo "$as_me:1927: result: $CPP" >&5
+echo "$as_me:$LINENO: result: $CPP" >&5
echo "${ECHO_T}$CPP" >&6
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line 1937 "configure"
-#include "confdefs.h"
-#include <assert.h>
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
Syntax error
_ACEOF
-if { (eval echo "$as_me:1942: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:1948: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -1959,7 +2486,8 @@ if test -z "$ac_cpp_err"; then
:
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
# Broken: fails on valid input.
continue
fi
@@ -1968,17 +2496,21 @@ rm -f conftest.err conftest.$ac_ext
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line 1971 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:1975: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:1981: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -1993,7 +2525,8 @@ if test -z "$ac_cpp_err"; then
continue
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
# Passes both tests.
ac_preproc_ok=:
break
@@ -2006,8 +2539,10 @@ rm -f conftest.err conftest.$ac_ext
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:2009: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -2017,23 +2552,309 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:2020: checking for minix/config.h" >&5
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+if test "${ac_cv_header_minix_config_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for minix/config.h" >&5
echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6
if test "${ac_cv_header_minix_config_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
+echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2026 "configure"
-#include "confdefs.h"
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking minix/config.h usability" >&5
+echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
#include <minix/config.h>
_ACEOF
-if { (eval echo "$as_me:2030: \"$ac_cpp conftest.$ac_ext\"") >&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking minix/config.h presence" >&5
+echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <minix/config.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2036: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2044,78 +2865,136 @@ else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
- ac_cv_header_minix_config_h=yes
+ ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_minix_config_h=no
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+ { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ no:yes )
+ { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for minix/config.h" >&5
+echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6
+if test "${ac_cv_header_minix_config_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_header_minix_config_h=$ac_header_preproc
fi
-echo "$as_me:2055: result: $ac_cv_header_minix_config_h" >&5
+echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6
+
+fi
if test $ac_cv_header_minix_config_h = yes; then
MINIX=yes
else
MINIX=
fi
+
if test "$MINIX" = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define _POSIX_SOURCE 1
-EOF
+_ACEOF
-cat >>confdefs.h <<\EOF
+
+cat >>confdefs.h <<\_ACEOF
#define _POSIX_1_SOURCE 2
-EOF
+_ACEOF
+
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define _MINIX 1
-EOF
+_ACEOF
fi
+
# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:2083: checking whether $CC needs -traditional" >&5
+ echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
if test "${ac_cv_prog_gcc_traditional+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_pattern="Autoconf.*'x'"
cat >conftest.$ac_ext <<_ACEOF
-#line 2090 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sgtty.h>
Autoconf TIOCGETP
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
+ $EGREP "$ac_pattern" >/dev/null 2>&1; then
ac_cv_prog_gcc_traditional=yes
else
ac_cv_prog_gcc_traditional=no
fi
rm -f conftest*
+
if test $ac_cv_prog_gcc_traditional = no; then
cat >conftest.$ac_ext <<_ACEOF
-#line 2105 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <termio.h>
Autoconf TCGETA
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
+ $EGREP "$ac_pattern" >/dev/null 2>&1; then
ac_cv_prog_gcc_traditional=yes
fi
rm -f conftest*
fi
fi
-echo "$as_me:2118: result: $ac_cv_prog_gcc_traditional" >&5
+echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
if test $ac_cv_prog_gcc_traditional = yes; then
CC="$CC -traditional"
@@ -2134,43 +3013,48 @@ fi
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:2137: checking for a BSD compatible install" >&5
-echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
- for ac_dir in $PATH; do
- IFS=$ac_save_IFS
- # Account for people who put trailing slashes in PATH elements.
- case $ac_dir/ in
- / | ./ | .// | /cC/* \
- | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \
- | /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if $as_executable_p "$ac_dir/$ac_prog"; then
- if test $ac_prog = install &&
- grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+ ./ | .// | /cC/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_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.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
done
- ;;
- esac
- done
+ done
+ ;;
+esac
+done
+
fi
if test "${ac_cv_path_install+set}" = set; then
@@ -2183,7 +3067,7 @@ fi
INSTALL=$ac_install_sh
fi
fi
-echo "$as_me:2186: result: $INSTALL" >&5
+echo "$as_me:$LINENO: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2196,7 +3080,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-echo "$as_me:2199: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2204,15 +3088,18 @@ else
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_AR=""
-echo "$as_me:2214: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR=""
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
@@ -2220,10 +3107,10 @@ fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- echo "$as_me:2223: result: $AR" >&5
+ echo "$as_me:$LINENO: result: $AR" >&5
echo "${ECHO_T}$AR" >&6
else
- echo "$as_me:2226: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2231,7 +3118,7 @@ test -n "$ARFLAGS" || ARFLAGS="cr"
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:2234: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2239,25 +3126,28 @@ else
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-echo "$as_me:2249: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- echo "$as_me:2257: result: $RANLIB" >&5
+ echo "$as_me:$LINENO: result: $RANLIB" >&5
echo "${ECHO_T}$RANLIB" >&6
else
- echo "$as_me:2260: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2266,7 +3156,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-echo "$as_me:2269: checking for $ac_word" >&5
+echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2274,15 +3164,18 @@ else
if test -n "$ac_ct_RANLIB"; then
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:2284: found $ac_dir/$ac_word" >&5
-break
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
@@ -2290,10 +3183,10 @@ fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:2293: result: $ac_ct_RANLIB" >&5
+ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
echo "${ECHO_T}$ac_ct_RANLIB" >&6
else
- echo "$as_me:2296: result: no" >&5
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2302,107 +3195,22 @@ else
RANLIB="$ac_cv_prog_RANLIB"
fi
-MAKE_SHELL=/bin/sh
-echo "$as_me:2307: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-#line 2315 "configure"
-#include "confdefs.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* 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);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2364: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2367: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2370: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2373: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
+MAKE_SHELL=/bin/sh
-fi
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:2390: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:2393: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-echo "$as_me:2398: checking for an ANSI C-conforming const" >&5
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
if test "${ac_cv_c_const+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2404 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
int
main ()
@@ -2459,289 +3267,123 @@ main ()
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2462: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2465: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2468: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2471: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_c_const=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_c_const=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:2481: result: $ac_cv_c_const" >&5
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
echo "${ECHO_T}$ac_cv_c_const" >&6
if test $ac_cv_c_const = no; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define const
-EOF
+_ACEOF
fi
-echo "$as_me:2491: checking for function prototypes" >&5
+echo "$as_me:$LINENO: checking for function prototypes" >&5
echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6
if test "$ac_cv_prog_cc_stdc" != no; then
- echo "$as_me:2494: result: yes" >&5
+ echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define PROTOTYPES 1
-EOF
-
-else
- echo "$as_me:2502: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-echo "$as_me:2506: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2512 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:2520: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2526: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 2548 "configure"
-#include "confdefs.h"
-#include <string.h>
-
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 2566 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
+cat >>confdefs.h <<\_ACEOF
+#define __PROTOTYPES 1
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2587 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:2613: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:2616: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:2618: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2621: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_header_stdc=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:2634: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:2650: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2656 "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2662: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2665: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2668: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2671: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
fi
-echo "$as_me:2681: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-fi
-done
-echo "$as_me:2691: checking whether char is unsigned" >&5
+echo "$as_me:$LINENO: checking whether char is unsigned" >&5
echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6
if test "${ac_cv_c_char_unsigned+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2697 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
$ac_includes_default
int
main ()
{
-int _array_ [1 - 2 * !(((char) -1) < 0)]
+static int test_array [1 - 2 * !(((char) -1) < 0)];
+test_array [0] = 0
+
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2709: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2712: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2715: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2718: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_c_char_unsigned=no
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_c_char_unsigned=yes
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:2728: result: $ac_cv_c_char_unsigned" >&5
+echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5
echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6
if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define __CHAR_UNSIGNED__ 1
-EOF
+_ACEOF
fi
-echo "$as_me:2737: checking return type of signal handlers" >&5
+
+echo "$as_me:$LINENO: checking return type of signal handlers" >&5
echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
if test "${ac_cv_type_signal+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2743 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <signal.h>
#ifdef signal
@@ -2762,40 +3404,47 @@ int i;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2765: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2768: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2771: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2774: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_type_signal=void
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_type_signal=int
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:2784: result: $ac_cv_type_signal" >&5
+echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
echo "${ECHO_T}$ac_cv_type_signal" >&6
-cat >>confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
#define RETSIGTYPE $ac_cv_type_signal
-EOF
+_ACEOF
+
-echo "$as_me:2791: checking for size_t" >&5
+
+echo "$as_me:$LINENO: checking for size_t" >&5
echo $ECHO_N "checking for size_t... $ECHO_C" >&6
if test "${ac_cv_type_size_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2797 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
$ac_includes_default
int
main ()
@@ -2809,45 +3458,50 @@ if (sizeof (size_t))
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2812: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2815: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2818: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2821: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_type_size_t=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_type_size_t=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:2831: result: $ac_cv_type_size_t" >&5
+echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
echo "${ECHO_T}$ac_cv_type_size_t" >&6
if test $ac_cv_type_size_t = yes; then
:
else
-cat >>confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
#define size_t unsigned
-EOF
+_ACEOF
fi
-echo "$as_me:2843: checking for ssize_t" >&5
+echo "$as_me:$LINENO: checking for ssize_t" >&5
echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
if test "${ac_cv_type_ssize_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2849 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
$ac_includes_default
int
main ()
@@ -2861,45 +3515,212 @@ if (sizeof (ssize_t))
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2864: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2867: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2870: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2873: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_type_ssize_t=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_type_ssize_t=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:2883: result: $ac_cv_type_ssize_t" >&5
+echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5
echo "${ECHO_T}$ac_cv_type_ssize_t" >&6
if test $ac_cv_type_ssize_t = yes; then
:
else
-cat >>confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
#define ssize_t int
-EOF
+_ACEOF
+
+fi
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
fi
-echo "$as_me:2895: checking whether stat file-mode macros are broken" >&5
+
+echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6
if test "${ac_cv_header_stat_broken+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2901 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <sys/stat.h>
@@ -2929,7 +3750,7 @@ You lose.
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "You lose" >/dev/null 2>&1; then
+ $EGREP "You lose" >/dev/null 2>&1; then
ac_cv_header_stat_broken=yes
else
ac_cv_header_stat_broken=no
@@ -2937,27 +3758,36 @@ fi
rm -f conftest*
fi
-echo "$as_me:2940: result: $ac_cv_header_stat_broken" >&5
+echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
echo "${ECHO_T}$ac_cv_header_stat_broken" >&6
if test $ac_cv_header_stat_broken = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define STAT_MACROS_BROKEN 1
-EOF
+_ACEOF
fi
+
+
+
+
+
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:2953: checking for $ac_hdr that defines DIR" >&5
+echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2959 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <$ac_hdr>
@@ -2971,31 +3801,32 @@ return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2974: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2977: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2980: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2983: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_Header=yes"
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
eval "$as_ac_Header=no"
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:2993: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
+ cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-EOF
+_ACEOF
ac_header_dirent=$ac_hdr; break
fi
@@ -3003,16 +3834,20 @@ fi
done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
- echo "$as_me:3006: checking for opendir in -ldir" >&5
-echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
-if test "${ac_cv_lib_dir_opendir+set}" = set; then
+ echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldir $LIBS"
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
cat >conftest.$ac_ext <<_ACEOF
-#line 3014 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -3030,43 +3865,96 @@ opendir ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3033: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3036: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3039: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3042: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_lib_dir_opendir=yes
+ ac_cv_search_opendir="none required"
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_dir_opendir=no
+sed 's/^/| /' conftest.$ac_ext >&5
+
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+if test "$ac_cv_search_opendir" = no; then
+ for ac_lib in dir; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
fi
-echo "$as_me:3053: result: $ac_cv_lib_dir_opendir" >&5
-echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
-if test $ac_cv_lib_dir_opendir = yes; then
- LIBS="$LIBS -ldir"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
fi
else
- echo "$as_me:3060: checking for opendir in -lx" >&5
-echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
-if test "${ac_cv_lib_x_opendir+set}" = set; then
+ echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lx $LIBS"
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
cat >conftest.$ac_ext <<_ACEOF
-#line 3068 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -3084,105 +3972,182 @@ opendir ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3087: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3090: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3093: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3096: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_lib_x_opendir=yes
+ ac_cv_search_opendir="none required"
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_x_opendir=no
+sed 's/^/| /' conftest.$ac_ext >&5
+
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+if test "$ac_cv_search_opendir" = no; then
+ for ac_lib in x; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
fi
-echo "$as_me:3107: result: $ac_cv_lib_x_opendir" >&5
-echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
-if test $ac_cv_lib_x_opendir = yes; then
- LIBS="$LIBS -lx"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
fi
fi
+
+
+
+
+
+
+
+
+
+
+
+
+
for ac_func in lstat memmove putenv select setenv setlocale \
strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:3119: checking for $ac_func" >&5
+echo "$as_me:$LINENO: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3125 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-#include <assert.h>
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
+{
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func ();
-char (*f) ();
-
-int
-main ()
-{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
-f = $ac_func;
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
#endif
+int
+main ()
+{
+return f != $ac_func;
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3156: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3159: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3162: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3165: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
eval "$as_ac_var=no"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:3175: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<EOF
+ cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-EOF
+_ACEOF
fi
done
-echo "$as_me:3185: checking for working strcoll" >&5
+
+echo "$as_me:$LINENO: checking for working strcoll" >&5
echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6
if test "${ac_cv_func_strcoll_works+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3191,8 +4156,12 @@ else
ac_cv_func_strcoll_works=no
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3194 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
$ac_includes_default
int
main ()
@@ -3205,58 +4174,125 @@ exit (strcoll ("abc", "def") >= 0 ||
}
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3208: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3211: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3213: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3216: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_strcoll_works=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
ac_cv_func_strcoll_works=no
fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
-echo "$as_me:3228: result: $ac_cv_func_strcoll_works" >&5
+echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5
echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6
if test $ac_cv_func_strcoll_works = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define HAVE_STRCOLL 1
-EOF
+_ACEOF
fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
for ac_header in unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
termcap.h termios.h termio.h sys/file.h locale.h memory.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:3243: checking for $ac_header" >&5
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3249 "configure"
-#include "confdefs.h"
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:3253: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:3259: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -3267,33 +4303,85 @@ else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
+ ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ no:yes )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=$ac_header_preproc"
fi
-echo "$as_me:3278: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
+ cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
+_ACEOF
fi
+
done
-echo "$as_me:3288: checking for type of signal functions" >&5
+
+
+echo "$as_me:$LINENO: checking for type of signal functions" >&5
echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6
if test "${bash_cv_signal_vintage+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3295 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <signal.h>
int
main ()
@@ -3310,25 +4398,30 @@ main ()
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3313: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3316: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3319: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3322: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_signal_vintage=posix
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
cat >conftest.$ac_ext <<_ACEOF
-#line 3330 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <signal.h>
int
main ()
@@ -3342,25 +4435,30 @@ main ()
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3345: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3348: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3351: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3354: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_signal_vintage=4.2bsd
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
cat >conftest.$ac_ext <<_ACEOF
-#line 3362 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <signal.h>
RETSIGTYPE foo() { }
@@ -3377,21 +4475,22 @@ main ()
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3380: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3383: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3386: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3389: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_signal_vintage=svr3
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_signal_vintage=v7
fi
@@ -3405,39 +4504,45 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:3408: result: $bash_cv_signal_vintage" >&5
+echo "$as_me:$LINENO: result: $bash_cv_signal_vintage" >&5
echo "${ECHO_T}$bash_cv_signal_vintage" >&6
if test "$bash_cv_signal_vintage" = posix; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define HAVE_POSIX_SIGNALS 1
-EOF
+_ACEOF
elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define HAVE_BSD_SIGNALS 1
-EOF
+_ACEOF
elif test "$bash_cv_signal_vintage" = svr3; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define HAVE_USG_SIGHOLD 1
-EOF
+_ACEOF
fi
-echo "$as_me:3427: checking if signal handlers must be reinstalled when invoked" >&5
+
+
+echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5
echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6
if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
- { echo "$as_me:3433: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5
+ { echo "$as_me:$LINENO: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5
echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;}
bash_cv_must_reinstall_sighandlers=no
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3439 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <signal.h>
#ifdef HAVE_UNISTD_H
@@ -3484,50 +4589,58 @@ main()
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3487: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3490: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3492: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3495: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_must_reinstall_sighandlers=no
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
bash_cv_must_reinstall_sighandlers=yes
fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
-echo "$as_me:3508: result: $bash_cv_must_reinstall_sighandlers" >&5
+echo "$as_me:$LINENO: result: $bash_cv_must_reinstall_sighandlers" >&5
echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6
if test $bash_cv_must_reinstall_sighandlers = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define MUST_REINSTALL_SIGHANDLERS 1
-EOF
+_ACEOF
fi
-echo "$as_me:3517: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
+
+
+echo "$as_me:$LINENO: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6
if test "${bash_cv_func_sigsetjmp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
- { echo "$as_me:3523: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5
+ { echo "$as_me:$LINENO: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5
echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;}
bash_cv_func_sigsetjmp=missing
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3529 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@@ -3568,44 +4681,50 @@ exit(1);
}
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3571: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3574: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3576: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3579: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_func_sigsetjmp=present
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
bash_cv_func_sigsetjmp=missing
fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
-echo "$as_me:3592: result: $bash_cv_func_sigsetjmp" >&5
+echo "$as_me:$LINENO: result: $bash_cv_func_sigsetjmp" >&5
echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6
if test $bash_cv_func_sigsetjmp = present; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define HAVE_POSIX_SIGSETJMP 1
-EOF
+_ACEOF
fi
-echo "$as_me:3601: checking for lstat" >&5
+echo "$as_me:$LINENO: checking for lstat" >&5
echo $ECHO_N "checking for lstat... $ECHO_C" >&6
if test "${bash_cv_func_lstat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3607 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <sys/stat.h>
@@ -3619,48 +4738,54 @@ main ()
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3622: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3625: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3628: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3631: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_func_lstat=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_func_lstat=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:3641: result: $bash_cv_func_lstat" >&5
+echo "$as_me:$LINENO: result: $bash_cv_func_lstat" >&5
echo "${ECHO_T}$bash_cv_func_lstat" >&6
if test $bash_cv_func_lstat = yes; then
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define HAVE_LSTAT 1
-EOF
+_ACEOF
fi
-echo "$as_me:3650: checking whether or not strcoll and strcmp differ" >&5
+
+echo "$as_me:$LINENO: checking whether or not strcoll and strcmp differ" >&5
echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6
if test "${bash_cv_func_strcoll_broken+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
- { echo "$as_me:3656: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5
+ { echo "$as_me:$LINENO: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5
echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;}
bash_cv_func_strcoll_broken=no
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3662 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <stdio.h>
#if defined (HAVE_LOCALE_H)
@@ -3699,44 +4824,135 @@ char *v[];
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3702: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3705: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3707: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3710: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_func_strcoll_broken=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
bash_cv_func_strcoll_broken=no
fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
-echo "$as_me:3723: result: $bash_cv_func_strcoll_broken" >&5
+echo "$as_me:$LINENO: result: $bash_cv_func_strcoll_broken" >&5
echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6
if test $bash_cv_func_strcoll_broken = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define STRCOLL_BROKEN 1
-EOF
+_ACEOF
fi
-echo "$as_me:3732: checking whether getpw functions are declared in pwd.h" >&5
+
+echo "$as_me:$LINENO: checking whether the ctype macros accept non-ascii characters" >&5
+echo $ECHO_N "checking whether the ctype macros accept non-ascii characters... $ECHO_C" >&6
+if test "${bash_cv_func_ctype_nonascii+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ { echo "$as_me:$LINENO: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5
+echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;}
+ bash_cv_func_ctype_nonascii=no
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+#include <stdio.h>
+#include <ctype.h>
+
+main(c, v)
+int c;
+char *v[];
+{
+ char *deflocale;
+ unsigned char x;
+ int r1, r2;
+
+#ifdef HAVE_SETLOCALE
+ /* We take a shot here. If that locale is not known, try the
+ system default. We try this one because '\342' (226) is
+ known to be a printable character in that locale. */
+ deflocale = setlocale(LC_ALL, "en_US.ISO8859-1");
+ if (deflocale == 0)
+ deflocale = setlocale(LC_ALL, "");
+#endif
+
+ x = '\342';
+ r1 = isprint(x);
+ x -= 128;
+ r2 = isprint(x);
+ exit (r1 == 0 || r2 == 0);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ bash_cv_func_ctype_nonascii=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+bash_cv_func_ctype_nonascii=no
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:$LINENO: result: $bash_cv_func_ctype_nonascii" >&5
+echo "${ECHO_T}$bash_cv_func_ctype_nonascii" >&6
+if test $bash_cv_func_ctype_nonascii = yes; then
+cat >>confdefs.h <<\_ACEOF
+#define CTYPE_NON_ASCII 1
+_ACEOF
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether getpw functions are declared in pwd.h" >&5
echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6
if test "${bash_cv_getpw_declared+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3738 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
@@ -3746,7 +4962,7 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "getpwuid" >/dev/null 2>&1; then
+ $EGREP "getpwuid" >/dev/null 2>&1; then
bash_cv_getpw_declared=yes
else
bash_cv_getpw_declared=no
@@ -3755,67 +4971,28 @@ rm -f conftest*
fi
-echo "$as_me:3758: result: $bash_cv_getpw_declared" >&5
+echo "$as_me:$LINENO: result: $bash_cv_getpw_declared" >&5
echo "${ECHO_T}$bash_cv_getpw_declared" >&6
if test $bash_cv_getpw_declared = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define HAVE_GETPW_DECLS 1
-EOF
+_ACEOF
fi
-echo "$as_me:3767: checking POSIX termios" >&5
-echo $ECHO_N "checking POSIX termios... $ECHO_C" >&6
-if test "${ac_cv_sys_posix_termios+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3773 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <unistd.h>
-#include <termios.h>
-int
-main ()
-{
-/* SunOS 4.0.3 has termios.h but not the library calls. */
- tcgetattr(0, 0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3788: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3791: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3794: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3797: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_posix_termios=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_sys_posix_termios=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:3807: result: $ac_cv_sys_posix_termios" >&5
-echo "${ECHO_T}$ac_cv_sys_posix_termios" >&6
-if test $ac_cv_sys_posix_termios = yes; then
- echo "$as_me:3811: checking whether termios.h defines TIOCGWINSZ" >&5
+echo "$as_me:$LINENO: checking whether termios.h defines TIOCGWINSZ" >&5
echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6
if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3817 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <termios.h>
#ifdef TIOCGWINSZ
@@ -3824,7 +5001,7 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
+ $EGREP "yes" >/dev/null 2>&1; then
ac_cv_sys_tiocgwinsz_in_termios_h=yes
else
ac_cv_sys_tiocgwinsz_in_termios_h=no
@@ -3832,19 +5009,22 @@ fi
rm -f conftest*
fi
-echo "$as_me:3835: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
+echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6
-fi
if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then
- echo "$as_me:3840: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
+ echo "$as_me:$LINENO: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6
if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3846 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
#ifdef TIOCGWINSZ
@@ -3853,7 +5033,7 @@ else
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
+ $EGREP "yes" >/dev/null 2>&1; then
ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes
else
ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no
@@ -3861,26 +5041,31 @@ fi
rm -f conftest*
fi
-echo "$as_me:3864: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
+echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6
if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define GWINSZ_IN_SYS_IOCTL 1
-EOF
+_ACEOF
fi
fi
-echo "$as_me:3876: checking whether signal handlers are of type void" >&5
+
+echo "$as_me:$LINENO: checking whether signal handlers are of type void" >&5
echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6
if test "${bash_cv_void_sighandler+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3882 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <signal.h>
#ifdef signal
@@ -3899,42 +5084,47 @@ int i;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:3902: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3905: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:3908: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3911: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_void_sighandler=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_void_sighandler=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:3921: result: $bash_cv_void_sighandler" >&5
+echo "$as_me:$LINENO: result: $bash_cv_void_sighandler" >&5
echo "${ECHO_T}$bash_cv_void_sighandler" >&6
if test $bash_cv_void_sighandler = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define VOID_SIGHANDLER 1
-EOF
+_ACEOF
fi
-echo "$as_me:3930: checking for TIOCSTAT in sys/ioctl.h" >&5
+echo "$as_me:$LINENO: checking for TIOCSTAT in sys/ioctl.h" >&5
echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6
if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3936 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
int
@@ -3946,43 +5136,48 @@ int x = TIOCSTAT;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:3949: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3952: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:3955: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3958: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_tiocstat_in_ioctl=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_tiocstat_in_ioctl=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:3969: result: $bash_cv_tiocstat_in_ioctl" >&5
+echo "$as_me:$LINENO: result: $bash_cv_tiocstat_in_ioctl" >&5
echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6
if test $bash_cv_tiocstat_in_ioctl = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define TIOCSTAT_IN_SYS_IOCTL 1
-EOF
+_ACEOF
fi
-echo "$as_me:3978: checking for FIONREAD in sys/ioctl.h" >&5
+echo "$as_me:$LINENO: checking for FIONREAD in sys/ioctl.h" >&5
echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6
if test "${bash_cv_fionread_in_ioctl+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 3984 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
int
@@ -3994,43 +5189,48 @@ int x = FIONREAD;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:3997: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4000: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4003: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4006: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_fionread_in_ioctl=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_fionread_in_ioctl=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:4017: result: $bash_cv_fionread_in_ioctl" >&5
+echo "$as_me:$LINENO: result: $bash_cv_fionread_in_ioctl" >&5
echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6
if test $bash_cv_fionread_in_ioctl = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define FIONREAD_IN_SYS_IOCTL 1
-EOF
+_ACEOF
fi
-echo "$as_me:4026: checking for speed_t in sys/types.h" >&5
+echo "$as_me:$LINENO: checking for speed_t in sys/types.h" >&5
echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6
if test "${bash_cv_speed_t_in_sys_types+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4032 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
int
main ()
@@ -4041,43 +5241,48 @@ speed_t x;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4044: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4047: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4050: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4053: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_speed_t_in_sys_types=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_speed_t_in_sys_types=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:4064: result: $bash_cv_speed_t_in_sys_types" >&5
+echo "$as_me:$LINENO: result: $bash_cv_speed_t_in_sys_types" >&5
echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6
if test $bash_cv_speed_t_in_sys_types = yes; then
-cat >>confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
#define SPEED_T_IN_SYS_TYPES 1
-EOF
+_ACEOF
fi
-echo "$as_me:4073: checking for struct winsize in sys/ioctl.h and termios.h" >&5
+echo "$as_me:$LINENO: checking for struct winsize in sys/ioctl.h and termios.h" >&5
echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6
if test "${bash_cv_struct_winsize_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4079 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
int
@@ -4089,24 +5294,29 @@ struct winsize x;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4092: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4095: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4098: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4101: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_struct_winsize_header=ioctl_h
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
cat >conftest.$ac_ext <<_ACEOF
-#line 4108 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <sys/types.h>
#include <termios.h>
int
@@ -4118,21 +5328,22 @@ struct winsize x;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4121: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4124: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4127: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4130: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_struct_winsize_header=termios_h
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_struct_winsize_header=other
fi
rm -f conftest.$ac_objext conftest.$ac_ext
@@ -4142,32 +5353,37 @@ rm -f conftest.$ac_objext conftest.$ac_ext
fi
if test $bash_cv_struct_winsize_header = ioctl_h; then
- echo "$as_me:4145: result: sys/ioctl.h" >&5
+ echo "$as_me:$LINENO: result: sys/ioctl.h" >&5
echo "${ECHO_T}sys/ioctl.h" >&6
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define STRUCT_WINSIZE_IN_SYS_IOCTL 1
-EOF
+_ACEOF
elif test $bash_cv_struct_winsize_header = termios_h; then
- echo "$as_me:4152: result: termios.h" >&5
+ echo "$as_me:$LINENO: result: termios.h" >&5
echo "${ECHO_T}termios.h" >&6
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define STRUCT_WINSIZE_IN_TERMIOS 1
-EOF
+_ACEOF
else
- echo "$as_me:4159: result: not found" >&5
+ echo "$as_me:$LINENO: result: not found" >&5
echo "${ECHO_T}not found" >&6
fi
-echo "$as_me:4163: checking if struct dirent has a d_ino member" >&5
-echo $ECHO_N "checking if struct dirent has a d_ino member... $ECHO_C" >&6
+
+echo "$as_me:$LINENO: checking for struct dirent.d_ino" >&5
+echo $ECHO_N "checking for struct dirent.d_ino... $ECHO_C" >&6
if test "${bash_cv_dirent_has_dino+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4169 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <stdio.h>
#include <sys/types.h>
@@ -4200,43 +5416,49 @@ struct dirent d; int z; z = d.d_ino;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4203: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4206: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4209: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4212: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_dirent_has_dino=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_dirent_has_dino=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:4223: result: $bash_cv_dirent_has_dino" >&5
+echo "$as_me:$LINENO: result: $bash_cv_dirent_has_dino" >&5
echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6
if test $bash_cv_dirent_has_dino = yes; then
-cat >>confdefs.h <<\EOF
-#define STRUCT_DIRENT_HAS_D_INO 1
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRUCT_DIRENT_D_INO 1
+_ACEOF
fi
-echo "$as_me:4232: checking if struct dirent has a d_fileno member" >&5
-echo $ECHO_N "checking if struct dirent has a d_fileno member... $ECHO_C" >&6
+
+echo "$as_me:$LINENO: checking for struct dirent.d_fileno" >&5
+echo $ECHO_N "checking for struct dirent.d_fileno... $ECHO_C" >&6
if test "${bash_cv_dirent_has_d_fileno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4238 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <stdio.h>
#include <sys/types.h>
@@ -4269,35 +5491,37 @@ struct dirent d; int z; z = d.d_fileno;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4272: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4275: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4278: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4281: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_dirent_has_d_fileno=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_dirent_has_d_fileno=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:4292: result: $bash_cv_dirent_has_d_fileno" >&5
+echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_fileno" >&5
echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6
if test $bash_cv_dirent_has_d_fileno = yes; then
-cat >>confdefs.h <<\EOF
-#define STRUCT_DIRENT_HAS_D_FILENO 1
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRUCT_DIRENT_D_FILENO 1
+_ACEOF
fi
+
case "$host_os" in
aix*) prefer_curses=yes ;;
esac
@@ -4305,14 +5529,89 @@ esac
if test "X$bash_cv_termcap_lib" = "X"; then
_bash_needmsg=yes
else
-echo "$as_me:4308: checking which library has the termcap functions" >&5
+echo "$as_me:$LINENO: checking which library has the termcap functions" >&5
echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
_bash_needmsg=
fi
if test "${bash_cv_termcap_lib+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- echo "$as_me:4315: checking for tgetent in -ltermcap" >&5
+ echo "$as_me:$LINENO: checking for tgetent" >&5
+echo $ECHO_N "checking for tgetent... $ECHO_C" >&6
+if test "${ac_cv_func_tgetent+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char tgetent (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char tgetent ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_tgetent) || defined (__stub___tgetent)
+choke me
+#else
+char (*f) () = tgetent;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != tgetent;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_tgetent=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_tgetent=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5
+echo "${ECHO_T}$ac_cv_func_tgetent" >&6
+if test $ac_cv_func_tgetent = yes; then
+ bash_cv_termcap_lib=libc
+else
+ echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5
echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6
if test "${ac_cv_lib_termcap_tgetent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4320,8 +5619,12 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltermcap $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4323 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -4339,32 +5642,33 @@ tgetent ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4342: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4345: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4348: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4351: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_termcap_tgetent=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_lib_termcap_tgetent=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:4362: result: $ac_cv_lib_termcap_tgetent" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5
echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6
if test $ac_cv_lib_termcap_tgetent = yes; then
bash_cv_termcap_lib=libtermcap
else
- echo "$as_me:4367: checking for tgetent in -ltinfo" >&5
+ echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5
echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6
if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4372,8 +5676,12 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfo $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4375 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -4391,32 +5699,33 @@ tgetent ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4394: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4397: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4400: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4403: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_tinfo_tgetent=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_lib_tinfo_tgetent=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:4414: result: $ac_cv_lib_tinfo_tgetent" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5
echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6
if test $ac_cv_lib_tinfo_tgetent = yes; then
bash_cv_termcap_lib=libtinfo
else
- echo "$as_me:4419: checking for tgetent in -lcurses" >&5
+ echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5
echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6
if test "${ac_cv_lib_curses_tgetent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4424,8 +5733,12 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurses $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4427 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -4443,32 +5756,33 @@ tgetent ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4446: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4449: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4452: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4455: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_curses_tgetent=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_lib_curses_tgetent=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:4466: result: $ac_cv_lib_curses_tgetent" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5
echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6
if test $ac_cv_lib_curses_tgetent = yes; then
bash_cv_termcap_lib=libcurses
else
- echo "$as_me:4471: checking for tgetent in -lncurses" >&5
+ echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5
echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6
if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4476,8 +5790,12 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncurses $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4479 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -4495,27 +5813,28 @@ tgetent ();
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4498: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4501: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4504: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4507: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_ncurses_tgetent=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_lib_ncurses_tgetent=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:4518: result: $ac_cv_lib_ncurses_tgetent" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5
echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6
if test $ac_cv_lib_ncurses_tgetent = yes; then
bash_cv_termcap_lib=libncurses
@@ -4531,11 +5850,13 @@ fi
fi
+fi
+
if test "X$_bash_needmsg" = "Xyes"; then
-echo "$as_me:4535: checking which library has the termcap functions" >&5
+echo "$as_me:$LINENO: checking which library has the termcap functions" >&5
echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
fi
-echo "$as_me:4538: result: using $bash_cv_termcap_lib" >&5
+echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5
echo "${ECHO_T}using $bash_cv_termcap_lib" >&6
if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
LDFLAGS="$LDFLAGS -L./lib/termcap"
@@ -4550,6 +5871,9 @@ TERMCAP_DEP=
elif test $bash_cv_termcap_lib = libncurses; then
TERMCAP_LIB=-lncurses
TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libc; then
+TERMCAP_LIB=
+TERMCAP_DEP=
else
TERMCAP_LIB=-lcurses
TERMCAP_DEP=
@@ -4563,26 +5887,75 @@ if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
fi
fi
+
+
for ac_header in wctype.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4569: checking for $ac_header" >&5
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4575 "configure"
-#include "confdefs.h"
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:4579: \"$ac_cpp conftest.$ac_ext\"") >&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:4585: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -4593,44 +5966,138 @@ else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
+ ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ no:yes )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=$ac_header_preproc"
fi
-echo "$as_me:4604: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
+ cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
+_ACEOF
fi
+
done
+
for ac_header in wchar.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4617: checking for $ac_header" >&5
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4623 "configure"
-#include "confdefs.h"
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:4627: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:4633: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -4641,44 +6108,138 @@ else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
+ ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ no:yes )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=$ac_header_preproc"
fi
-echo "$as_me:4652: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
+ cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
+_ACEOF
fi
+
done
+
for ac_header in langinfo.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4665: checking for $ac_header" >&5
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4671 "configure"
-#include "confdefs.h"
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:4675: \"$ac_cpp conftest.$ac_ext\"") >&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
+ grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:4681: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -4689,214 +6250,614 @@ else
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
+ ac_header_preproc=yes
else
echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ no:yes )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=$ac_header_preproc"
fi
-echo "$as_me:4700: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
+ cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
+_ACEOF
fi
+
done
-echo "$as_me:4710: checking for mbsrtowcs" >&5
+
+echo "$as_me:$LINENO: checking for mbsrtowcs" >&5
echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6
if test "${ac_cv_func_mbsrtowcs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4716 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbsrtowcs (); below. */
-#include <assert.h>
+ which can conflict with char mbsrtowcs (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
+{
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char mbsrtowcs ();
-char (*f) ();
-
-int
-main ()
-{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_mbsrtowcs) || defined (__stub___mbsrtowcs)
choke me
#else
-f = mbsrtowcs;
+char (*f) () = mbsrtowcs;
+#endif
+#ifdef __cplusplus
+}
#endif
+int
+main ()
+{
+return f != mbsrtowcs;
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4747: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4750: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4753: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4756: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_mbsrtowcs=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_func_mbsrtowcs=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:4766: result: $ac_cv_func_mbsrtowcs" >&5
+echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5
echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6
if test $ac_cv_func_mbsrtowcs = yes; then
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define HAVE_MBSRTOWCS 1
-EOF
+_ACEOF
fi
-echo "$as_me:4775: checking for wcwidth" >&5
-echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6
-if test "${ac_cv_func_wcwidth+set}" = set; then
+echo "$as_me:$LINENO: checking for mbrtowc" >&5
+echo $ECHO_N "checking for mbrtowc... $ECHO_C" >&6
+if test "${ac_cv_func_mbrtowc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4781 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcwidth (); below. */
-#include <assert.h>
+ which can conflict with char mbrtowc (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
+{
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char wcwidth ();
-char (*f) ();
+char mbrtowc ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_mbrtowc) || defined (__stub___mbrtowc)
+choke me
+#else
+char (*f) () = mbrtowc;
+#endif
+#ifdef __cplusplus
+}
+#endif
int
main ()
{
+return f != mbrtowc;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_mbrtowc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_mbrtowc=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5
+echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6
+if test $ac_cv_func_mbrtowc = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_MBRTOWC 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for mbrlen" >&5
+echo $ECHO_N "checking for mbrlen... $ECHO_C" >&6
+if test "${ac_cv_func_mbrlen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char mbrlen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char mbrlen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_mbrlen) || defined (__stub___mbrlen)
+choke me
+#else
+char (*f) () = mbrlen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != mbrlen;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_mbrlen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_mbrlen=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5
+echo "${ECHO_T}$ac_cv_func_mbrlen" >&6
+if test $ac_cv_func_mbrlen = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_MBRLEN 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for wctomb" >&5
+echo $ECHO_N "checking for wctomb... $ECHO_C" >&6
+if test "${ac_cv_func_wctomb+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char wctomb (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char wctomb ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_wctomb) || defined (__stub___wctomb)
+choke me
+#else
+char (*f) () = wctomb;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != wctomb;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_wctomb=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_wctomb=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_wctomb" >&5
+echo "${ECHO_T}$ac_cv_func_wctomb" >&6
+if test $ac_cv_func_wctomb = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_WCTOMB 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for wcwidth" >&5
+echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6
+if test "${ac_cv_func_wcwidth+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char wcwidth (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char wcwidth ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_wcwidth) || defined (__stub___wcwidth)
choke me
#else
-f = wcwidth;
+char (*f) () = wcwidth;
+#endif
+#ifdef __cplusplus
+}
#endif
+int
+main ()
+{
+return f != wcwidth;
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4812: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4815: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4818: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4821: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_wcwidth=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
ac_cv_func_wcwidth=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:4831: result: $ac_cv_func_wcwidth" >&5
+echo "$as_me:$LINENO: result: $ac_cv_func_wcwidth" >&5
echo "${ECHO_T}$ac_cv_func_wcwidth" >&6
if test $ac_cv_func_wcwidth = yes; then
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define HAVE_WCWIDTH 1
-EOF
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for wcsdup" >&5
+echo $ECHO_N "checking for wcsdup... $ECHO_C" >&6
+if test "${ac_cv_func_wcsdup+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char wcsdup (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char wcsdup ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_wcsdup) || defined (__stub___wcsdup)
+choke me
+#else
+char (*f) () = wcsdup;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != wcsdup;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_wcsdup=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_wcsdup=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5
+echo "${ECHO_T}$ac_cv_func_wcsdup" >&6
+if test $ac_cv_func_wcsdup = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_WCSDUP 1
+_ACEOF
fi
-echo "$as_me:4840: checking for mbstate_t" >&5
+
+echo "$as_me:$LINENO: checking for mbstate_t" >&5
echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
if test "${bash_cv_have_mbstate_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:4846: error: cannot run test program while cross compiling" >&5
-echo "$as_me: error: cannot run test program while cross compiling" >&2;}
- { (exit 1); exit 1; }; }
-else
cat >conftest.$ac_ext <<_ACEOF
-#line 4851 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <wchar.h>
int
main ()
{
+
mbstate_t ps;
+ mbstate_t *psp;
+ psp = (mbstate_t *)0;
+
+ ;
return 0;
}
_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:4863: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4866: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:4868: \"$ac_try\"") >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4871: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_have_mbstate_t=yes
else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_have_mbstate_t=no
fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
+rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:4883: result: $bash_cv_have_mbstate_t" >&5
+echo "$as_me:$LINENO: result: $bash_cv_have_mbstate_t" >&5
echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6
if test $bash_cv_have_mbstate_t = yes; then
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define HAVE_MBSTATE_T 1
-EOF
+_ACEOF
fi
-echo "$as_me:4892: checking for nl_langinfo and CODESET" >&5
+echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
if test "${bash_cv_langinfo_codeset+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4898 "configure"
-#include "confdefs.h"
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
#include <langinfo.h>
int
main ()
@@ -4907,34 +6868,37 @@ char* cs = nl_langinfo(CODESET);
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4910: \"$ac_link\"") >&5
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4913: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4916: \"$ac_try\"") >&5
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4919: \$? = $ac_status" >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
bash_cv_langinfo_codeset=yes
else
echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
bash_cv_langinfo_codeset=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:4929: result: $bash_cv_langinfo_codeset" >&5
+echo "$as_me:$LINENO: result: $bash_cv_langinfo_codeset" >&5
echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6
if test $bash_cv_langinfo_codeset = yes; then
- cat >>confdefs.h <<\EOF
+ cat >>confdefs.h <<\_ACEOF
#define HAVE_LANGINFO_CODESET 1
-EOF
+_ACEOF
fi
+
+
case "$host_cpu" in
*cray*) LOCAL_CFLAGS=-DCRAY ;;
*s390*) LOCAL_CFLAGS=-fsigned-char ;;
@@ -4950,11 +6914,22 @@ esac
# ${srcdir}/support/shobj-conf
#
if test -f ${srcdir}/support/shobj-conf; then
- echo "$as_me:4953: checking configuration for building shared libraries" >&5
+ echo "$as_me:$LINENO: checking configuration for building shared libraries" >&5
echo $ECHO_N "checking configuration for building shared libraries... $ECHO_C" >&6
eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
- echo "$as_me:4957: result: $SHLIB_STATUS" >&5
+
+
+
+
+
+
+
+
+
+
+
+ echo "$as_me:$LINENO: result: $SHLIB_STATUS" >&5
echo "${ECHO_T}$SHLIB_STATUS" >&6
# SHLIB_STATUS is either `supported' or `unsupported'. If it's
@@ -4968,6 +6943,7 @@ echo "${ECHO_T}$SHLIB_STATUS" >&6
SHLIB_MAJOR=`expr "$LIBVERSION" : '\([0-9]\)\..*'`
SHLIB_MINOR=`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`
+
fi
if test "$opt_static_libs" = "yes"; then
@@ -4979,13 +6955,35 @@ if test "$opt_shared_libs" = "yes"; then
SHARED_INSTALL_TARGET=install-shared
fi
+
+
+
+
+
case "$host_os" in
msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file
*) BUILD_DIR=`pwd` ;;
esac
-ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/Makefile"
-ac_config_commands="$ac_config_commands default"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/Makefile"
+ ac_config_commands="$ac_config_commands default"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@@ -4996,7 +6994,7 @@ cat >confcache <<\_ACEOF
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
@@ -5031,7 +7029,7 @@ _ACEOF
t end
/^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
: end' >>confcache
-if cmp -s $cache_file confcache; then :; else
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
if test -w $cache_file; then
test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
cat confcache >$cache_file
@@ -5062,35 +7060,227 @@ fi
DEFS=-DHAVE_CONFIG_H
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_i=`echo "$ac_i" |
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ # 2. Add them.
+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:5068: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >$CONFIG_STATUS <<_ACEOF
#! $SHELL
-# Generated automatically by configure.
+# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
-ac_cs_invocation="\$0 \$@"
-
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
# Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
# Name of the executable.
-as_me=`echo "$0" |sed 's,.*[\\/],,'`
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # 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 sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
if expr a : '\(a\)' >/dev/null 2>&1; then
as_expr=expr
@@ -5116,24 +7306,20 @@ else
fi
rm -f conf$$ conf$$.exe conf$$.file
-as_executable_p="test -f"
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
- as_unset=unset
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
else
- as_unset=false
+ as_mkdir_p=false
fi
-# NLS nuisances.
-$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
-$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
-$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
-$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
-$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
-$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
-$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
-$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
# IFS
# We need space, tab and new line, in precisely that order.
@@ -5142,10 +7328,34 @@ as_nl='
IFS=" $as_nl"
# CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+$as_unset CDPATH
exec 6>&1
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling. Logging --version etc. is OK.
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by readline $as_me 5.0-rc1, which was
+generated by GNU Autoconf 2.57. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
_ACEOF
# Files that config.status was made for.
@@ -5165,7 +7375,7 @@ if test -n "$ac_config_commands"; then
echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
fi
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
ac_cs_usage="\
\`$as_me' instantiates files from templates according to the
@@ -5175,6 +7385,7 @@ Usage: $0 [OPTIONS] [FILE]...
-h, --help print this help, then exit
-V, --version print version number, then exit
+ -q, --quiet do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
@@ -5192,12 +7403,12 @@ Configuration commands:
$config_commands
Report bugs to <bug-autoconf@gnu.org>."
-EOF
+_ACEOF
-cat >>$CONFIG_STATUS <<EOF
+cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-readline config.status 4.3
-configured by $0, generated by GNU Autoconf 2.52,
+readline config.status 5.0-rc1
+configured by $0, generated by GNU Autoconf 2.57,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
@@ -5206,9 +7417,9 @@ This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
srcdir=$srcdir
INSTALL="$INSTALL"
-EOF
+_ACEOF
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
# If no file are specified by the user, then we need to provide default
# value. By we need to know if files were specified by the user.
ac_need_defaults=:
@@ -5218,30 +7429,30 @@ do
--*=*)
ac_option=`expr "x$1" : 'x\([^=]*\)='`
ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- shift
- set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
- shift
+ ac_shift=:
+ ;;
+ -*)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
;;
- -*);;
*) # This is not an option, so the user has probably given explicit
# arguments.
+ ac_option=$1
ac_need_defaults=false;;
esac
- case $1 in
+ case $ac_option in
# Handling of the options.
-EOF
-cat >>$CONFIG_STATUS <<EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
- exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+ ac_cs_recheck=: ;;
--version | --vers* | -V )
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
- { { echo "$as_me:5244: error: ambiguous option: $1
+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;}
@@ -5251,16 +7462,19 @@ Try \`$0 --help' for more information." >&2;}
--debug | --d* | -d )
debug=: ;;
--file | --fil | --fi | --f )
- shift
- CONFIG_FILES="$CONFIG_FILES $1"
+ $ac_shift
+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
- shift
- CONFIG_HEADERS="$CONFIG_HEADERS $1"
+ $ac_shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
ac_need_defaults=false;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
# This is an error.
- -*) { { echo "$as_me:5263: error: unrecognized option: $1
+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;}
@@ -5272,25 +7486,27 @@ Try \`$0 --help' for more information." >&2;}
shift
done
-exec 5>>config.log
-cat >&5 << _ACEOF
+ac_configure_extra_args=
-## ----------------------- ##
-## Running config.status. ##
-## ----------------------- ##
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
-This file was extended by $as_me (readline 4.3) 2.52, executed with
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- > $ac_cs_invocation
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
_ACEOF
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
for ac_config_target in $ac_config_targets
do
case "$ac_config_target" in
@@ -5301,7 +7517,7 @@ do
"shlib/Makefile" ) CONFIG_FILES="$CONFIG_FILES shlib/Makefile" ;;
"default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) { { echo "$as_me:5304: error: invalid argument: $ac_config_target" >&5
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
@@ -5317,6 +7533,9 @@ if $ac_need_defaults; then
test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
# Create a temporary directory, and hook for its removal unless debugging.
$debug ||
{
@@ -5325,23 +7544,23 @@ $debug ||
}
# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
+
{
- tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
- tmp=$TMPDIR/cs$$-$RANDOM
+ tmp=./confstat$$-$RANDOM
(umask 077 && mkdir $tmp)
} ||
{
- echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+ echo "$me: cannot create a temporary directory in ." >&2
{ (exit 1); exit 1; }
}
-EOF
+_ACEOF
-cat >>$CONFIG_STATUS <<EOF
+cat >>$CONFIG_STATUS <<_ACEOF
#
# CONFIG_FILES section.
@@ -5354,6 +7573,12 @@ if test -n "\$CONFIG_FILES"; then
sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
s,@exec_prefix@,$exec_prefix,;t t
s,@prefix@,$prefix,;t t
s,@program_transform_name@,$program_transform_name,;t t
@@ -5369,19 +7594,13 @@ s,@includedir@,$includedir,;t t
s,@oldincludedir@,$oldincludedir,;t t
s,@infodir@,$infodir,;t t
s,@mandir@,$mandir,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
s,@build_alias@,$build_alias,;t t
s,@host_alias@,$host_alias,;t t
s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
s,@ECHO_C@,$ECHO_C,;t t
s,@ECHO_N@,$ECHO_N,;t t
s,@ECHO_T@,$ECHO_T,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@DEFS@,$DEFS,;t t
s,@LIBS@,$LIBS,;t t
s,@build@,$build,;t t
s,@build_cpu@,$build_cpu,;t t
@@ -5400,6 +7619,7 @@ s,@ac_ct_CC@,$ac_ct_CC,;t t
s,@EXEEXT@,$EXEEXT,;t t
s,@OBJEXT@,$OBJEXT,;t t
s,@CPP@,$CPP,;t t
+s,@EGREP@,$EGREP,;t t
s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s,@INSTALL_DATA@,$INSTALL_DATA,;t t
@@ -5432,11 +7652,13 @@ s,@LOCAL_DEFS@,$LOCAL_DEFS,;t t
s,@ARFLAGS@,$ARFLAGS,;t t
s,@LIBVERSION@,$LIBVERSION,;t t
s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
CEOF
-EOF
+_ACEOF
- cat >>$CONFIG_STATUS <<\EOF
+ cat >>$CONFIG_STATUS <<\_ACEOF
# Split the substitutions into bite-sized pieces for seds with
# small command number limits, like on Digital OSF/1 and HP-UX.
ac_max_sed_lines=48
@@ -5475,8 +7697,8 @@ EOF
fi
fi # test -n "$CONFIG_FILES"
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case $ac_file in
@@ -5490,7 +7712,8 @@ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
esac
# Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| \
@@ -5501,60 +7724,84 @@ echo X"$ac_file" |
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- { case "$ac_dir" in
- [\\/]* | ?:[\\/]* ) as_incr_dir=;;
- *) as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
- case $as_mkdir_dir in
- # Skip DOS drivespec
- ?:) as_incr_dir=$as_mkdir_dir ;;
- *)
- as_incr_dir=$as_incr_dir/$as_mkdir_dir
- test -d "$as_incr_dir" || mkdir "$as_incr_dir"
- ;;
- esac
-done; }
-
- ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
else
- ac_dir_suffix= ac_dots=
- fi
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
- case $srcdir in
- .) ac_srcdir=.
- if test -z "$ac_dots"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* )
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
*) # Relative path.
- ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_dots$srcdir ;;
- esac
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_dots$INSTALL ;;
+ *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
esac
if test x"$ac_file" != x-; then
- { echo "$as_me:5549: creating $ac_file" >&5
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
- # /* config.h. Generated automatically by config.status. */
- configure_input="Generated automatically from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ configure_input=
+ else
+ configure_input="$ac_file. "
+ fi
+ configure_input=$configure_input"Generated from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
# First look for the input files in the build tree, otherwise in the
# src tree.
@@ -5564,7 +7811,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:5567: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@@ -5577,23 +7824,29 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo $srcdir/$f
else
# /dev/null tree
- { { echo "$as_me:5580: error: cannot find input file: $f" >&5
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
esac
done` || { (exit 1); exit 1; }
-EOF
-cat >>$CONFIG_STATUS <<EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
sed "$ac_vpsub
$extrasub
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s,@configure_input@,$configure_input,;t t
s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
s,@INSTALL@,$ac_INSTALL,;t t
" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
rm -f $tmp/stdin
@@ -5605,8 +7858,8 @@ s,@INSTALL@,$ac_INSTALL,;t t
fi
done
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
#
# CONFIG_HEADER section.
@@ -5638,7 +7891,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
* ) ac_file_in=$ac_file.in ;;
esac
- test x"$ac_file" != x- && { echo "$as_me:5641: creating $ac_file" >&5
+ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
@@ -5649,7 +7902,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:5652: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@@ -5662,7 +7915,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo $srcdir/$f
else
# /dev/null tree
- { { echo "$as_me:5665: error: cannot find input file: $f" >&5
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@@ -5671,7 +7924,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
# Remove the trailing spaces.
sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-EOF
+_ACEOF
# Transform confdefs.h into two sed scripts, `conftest.defines' and
# `conftest.undefs', that substitutes the proper values into
@@ -5687,16 +7940,16 @@ rm -f conftest.defines conftest.undefs
# `end' is used to avoid that the second main sed command (meant for
# 0-ary CPP macros) applies to n-ary macro definitions.
# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\EOF
+cat >confdef2sed.sed <<\_ACEOF
s/[\\&,]/\\&/g
s,[\\$`],\\&,g
t clear
: clear
-s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
t end
s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
: end
-EOF
+_ACEOF
# If some macros were called several times there might be several times
# the same #defines, which is useless. Nevertheless, we may not want to
# sort them, since we want the *last* AC-DEFINE to be honored.
@@ -5707,14 +7960,14 @@ rm -f confdef2sed.sed
# This sed command replaces #undef with comments. This is necessary, for
# example, in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\EOF
+cat >>conftest.undefs <<\_ACEOF
s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-EOF
+_ACEOF
# Break up conftest.defines because some shells have a limit on the size
# of here documents, and old seds have small limits too (100 cmds).
echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
echo ' :' >>$CONFIG_STATUS
rm -f conftest.tail
@@ -5738,7 +7991,7 @@ do
mv conftest.tail conftest.defines
done
rm -f conftest.defines
-echo ' fi # egrep' >>$CONFIG_STATUS
+echo ' fi # grep' >>$CONFIG_STATUS
echo >>$CONFIG_STATUS
# Break up conftest.undefs because some shells have a limit on the size
@@ -5766,23 +8019,24 @@ do
done
rm -f conftest.undefs
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
- # /* config.h. Generated automatically by config.status. */
+ # /* config.h. Generated by config.status. */
if test x"$ac_file" = x-; then
- echo "/* Generated automatically by configure. */" >$tmp/config.h
+ echo "/* Generated by configure. */" >$tmp/config.h
else
- echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h
+ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
fi
cat $tmp/in >>$tmp/config.h
rm -f $tmp/in
if test x"$ac_file" != x-; then
- if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
- { echo "$as_me:5782: $ac_file is unchanged" >&5
+ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
- ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| \
@@ -5793,24 +8047,31 @@ echo X"$ac_file" |
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- { case "$ac_dir" in
- [\\/]* | ?:[\\/]* ) as_incr_dir=;;
- *) as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
- case $as_mkdir_dir in
- # Skip DOS drivespec
- ?:) as_incr_dir=$as_mkdir_dir ;;
- *)
- as_incr_dir=$as_incr_dir/$as_mkdir_dir
- test -d "$as_incr_dir" || mkdir "$as_incr_dir"
- ;;
- esac
-done; }
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
- fi
rm -f $ac_file
mv $tmp/config.h $ac_file
fi
@@ -5819,8 +8080,8 @@ done; }
rm -f $tmp/config.h
fi
done
-EOF
-cat >>$CONFIG_STATUS <<\EOF
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
#
# CONFIG_COMMANDS section.
@@ -5828,7 +8089,53 @@ cat >>$CONFIG_STATUS <<\EOF
for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
case $ac_dest in
default )
# Makefile uses this timestamp file to record whether config.h is up to date.
@@ -5836,15 +8143,16 @@ echo > stamp-h
;;
esac
done
-EOF
+_ACEOF
-cat >>$CONFIG_STATUS <<\EOF
+cat >>$CONFIG_STATUS <<\_ACEOF
{ (exit 0); exit 0; }
-EOF
+_ACEOF
chmod +x $CONFIG_STATUS
ac_clean_files=$ac_clean_files_save
+
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
@@ -5855,8 +8163,11 @@ ac_clean_files=$ac_clean_files_save
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
- $SHELL $CONFIG_STATUS || ac_cs_success=false
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
diff --git a/configure.in b/configure.in
index bc78f8a..31e1760 100644
--- a/configure.in
+++ b/configure.in
@@ -4,9 +4,9 @@ dnl
dnl report bugs to chet@po.cwru.edu
dnl
dnl Process this file with autoconf to produce a configure script.
-AC_REVISION([for Readline 4.3, version 2.45, from autoconf version] AC_ACVERSION)
+AC_REVISION([for Readline 5.0, version 2.52, from autoconf version] AC_ACVERSION)
-AC_INIT(readline, 4.3, bug-readline@gnu.org)
+AC_INIT(readline, 5.0-rc1, bug-readline@gnu.org)
dnl make sure we are using a recent autoconf version
AC_PREREQ(2.50)
@@ -16,7 +16,7 @@ AC_CONFIG_AUX_DIR(./support)
AC_CONFIG_HEADERS(config.h)
dnl update the value of RL_READLINE_VERSION in readline.h when this changes
-LIBVERSION=4.3
+LIBVERSION=5.0
AC_CANONICAL_HOST
@@ -31,12 +31,18 @@ if test "$opt_curses" = "yes"; then
fi
dnl option parsing for optional features
+opt_multibyte=yes
opt_static_libs=yes
opt_shared_libs=yes
+AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval)
AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
+if test $opt_multibyte = no; then
+AC_DEFINE(NO_MULTIBYTE_SUPPORT)
+fi
+
echo ""
echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
echo ""
@@ -72,6 +78,8 @@ AC_TYPE_SIGNAL
AC_TYPE_SIZE_T
AC_CHECK_TYPE(ssize_t, int)
+AC_HEADER_STDC
+
AC_HEADER_STAT
AC_HEADER_DIRENT
@@ -90,6 +98,7 @@ BASH_SYS_REINSTALL_SIGHANDLERS
BASH_FUNC_POSIX_SETJMP
BASH_FUNC_LSTAT
BASH_FUNC_STRCOLL
+BASH_FUNC_CTYPE_NONASCII
BASH_CHECK_GETPW_FUNCS
diff --git a/display.c b/display.c
index f1b86a4..0ff428e 100644
--- a/display.c
+++ b/display.c
@@ -1,6 +1,6 @@
/* display.c -- readline redisplay facility. */
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -178,12 +178,15 @@ static int prompt_invis_chars_first_line;
static int prompt_last_screen_line;
+static int prompt_physical_chars;
+
/* Expand the prompt string S and return the number of visible
characters in *LP, if LP is not null. This is currently more-or-less
a placeholder for expansion. LIP, if non-null is a place to store the
index of the last invisible character in the returned string. NIFLP,
if non-zero, is a place to store the number of invisible characters in
- the first prompt line. */
+ the first prompt line. The previous are used as byte counts -- indexes
+ into a character buffer. */
/* Current implementation:
\001 (^A) start non-visible characters
@@ -193,19 +196,25 @@ static int prompt_last_screen_line;
\002 are assumed to be `visible'. */
static char *
-expand_prompt (pmt, lp, lip, niflp)
+expand_prompt (pmt, lp, lip, niflp, vlp)
char *pmt;
- int *lp, *lip, *niflp;
+ int *lp, *lip, *niflp, *vlp;
{
char *r, *ret, *p;
- int l, rl, last, ignoring, ninvis, invfl;
+ int l, rl, last, ignoring, ninvis, invfl, ind, pind, physchars;
/* Short-circuit if we can. */
- if (strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
+ if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
{
r = savestring (pmt);
if (lp)
*lp = strlen (r);
+ if (lip)
+ *lip = 0;
+ if (niflp)
+ *niflp = 0;
+ if (vlp)
+ *vlp = lp ? *lp : strlen (r);
return r;
}
@@ -214,7 +223,7 @@ expand_prompt (pmt, lp, lip, niflp)
invfl = 0; /* invisible chars in first line of prompt */
- for (rl = ignoring = last = ninvis = 0, p = pmt; p && *p; p++)
+ for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++)
{
/* This code strips the invisible character string markers
RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */
@@ -231,13 +240,35 @@ expand_prompt (pmt, lp, lip, niflp)
}
else
{
- *r++ = *p;
- if (!ignoring)
- rl++;
+#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);
+ l = ind - pind;
+ while (l--)
+ *r++ = *p++;
+ if (!ignoring)
+ rl += ind - pind;
+ else
+ ninvis += ind - pind;
+ p--; /* compensate for later increment */
+ }
else
- ninvis++;
- if (rl == _rl_screenwidth)
+#endif
+ {
+ *r++ = *p;
+ if (!ignoring)
+ rl++; /* visible length byte counter */
+ else
+ ninvis++; /* invisible chars byte counter */
+ }
+
+ if (rl >= _rl_screenwidth)
invfl = ninvis;
+
+ if (ignoring == 0)
+ physchars++;
}
}
@@ -251,6 +282,8 @@ expand_prompt (pmt, lp, lip, niflp)
*lip = last;
if (niflp)
*niflp = invfl;
+ if (vlp)
+ *vlp = physchars;
return ret;
}
@@ -262,7 +295,7 @@ _rl_strip_prompt (pmt)
{
char *ret;
- ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL);
+ ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL, (int *)NULL);
return ret;
}
@@ -306,7 +339,8 @@ rl_expand_prompt (prompt)
/* 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_invis_chars_first_line,
+ &prompt_physical_chars);
local_prompt_prefix = (char *)0;
return (prompt_visible_length);
}
@@ -316,13 +350,15 @@ rl_expand_prompt (prompt)
t = ++p;
local_prompt = expand_prompt (p, &prompt_visible_length,
&prompt_last_invisible,
- &prompt_invis_chars_first_line);
+ (int *)NULL,
+ (int *)NULL);
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,
(int *)NULL,
- &prompt_invis_chars_first_line);
+ &prompt_invis_chars_first_line,
+ &prompt_physical_chars);
*t = c;
return (prompt_prefix_length);
}
@@ -381,7 +417,7 @@ rl_redisplay ()
register int in, out, c, linenum, cursor_linenum;
register char *line;
int c_pos, inv_botlin, lb_botlin, lb_linenum;
- int newlines, lpos, temp;
+ int newlines, lpos, temp, modmark;
char *prompt_this_line;
#if defined (HANDLE_MULTIBYTE)
wchar_t wc;
@@ -411,10 +447,12 @@ rl_redisplay ()
/* Mark the line as modified or not. We only do this for history
lines. */
+ modmark = 0;
if (_rl_mark_modified_lines && current_history () && rl_undo_list)
{
line[out++] = '*';
line[out] = '\0';
+ modmark = 1;
}
/* If someone thought that the redisplay was handled, but the currently
@@ -468,7 +506,7 @@ rl_redisplay ()
}
}
- pmtlen = strlen (prompt_this_line);
+ prompt_physical_chars = pmtlen = strlen (prompt_this_line);
temp = pmtlen + out + 2;
if (temp >= line_size)
{
@@ -527,7 +565,12 @@ rl_redisplay ()
/* inv_lbreaks[i] is where line i starts in the buffer. */
inv_lbreaks[newlines = 0] = 0;
+#if 0
lpos = out - wrap_offset;
+#else
+ lpos = prompt_physical_chars + modmark;
+#endif
+
#if defined (HANDLE_MULTIBYTE)
memset (_rl_wrapped_line, 0, vis_lbsize);
#endif
@@ -546,15 +589,13 @@ rl_redisplay ()
prompt_invis_chars_first_line variable could be made into an array
saying how many invisible characters there are per line, but that's
probably too much work for the benefit gained. How many people have
- prompts that exceed two physical lines? */
+ prompts that exceed two physical lines?
+ Additional logic fix from Edward Catmur <ed@catmur.co.uk> */
temp = ((newlines + 1) * _rl_screenwidth) +
-#if 0
- ((newlines == 0) ? prompt_invis_chars_first_line : 0) +
-#else
- ((newlines == 0 && local_prompt_prefix == 0) ? prompt_invis_chars_first_line : 0) +
-#endif
- ((newlines == 1) ? wrap_offset : 0);
-
+ ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line
+ : ((newlines == 1) ? wrap_offset : 0))
+ : ((newlines == 0) ? wrap_offset :0));
+
inv_lbreaks[++newlines] = temp;
lpos -= _rl_screenwidth;
}
@@ -586,7 +627,7 @@ rl_redisplay ()
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- if (wc_bytes == (size_t)-1 || wc_bytes == (size_t)-2)
+ if (MB_INVALIDCH (wc_bytes))
{
/* Byte sequence is invalid or shortened. Assume that the
first byte represents a character. */
@@ -595,12 +636,12 @@ rl_redisplay ()
wc_width = 1;
memset (&ps, 0, sizeof (mbstate_t));
}
- else if (wc_bytes == (size_t)0)
+ else if (MB_NULLWCH (wc_bytes))
break; /* Found '\0' */
else
{
temp = wcwidth (wc);
- wc_width = (temp < 0) ? 1 : temp;
+ wc_width = (temp >= 0) ? temp : 1;
}
}
#endif
@@ -867,7 +908,7 @@ rl_redisplay ()
#endif
_rl_output_some_chars (local_prompt, nleft);
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width(local_prompt, 0, nleft);
+ _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft);
else
_rl_last_c_pos = nleft;
}
@@ -1069,12 +1110,12 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
memset (&ps, 0, sizeof (mbstate_t));
ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps);
- if (ret == (size_t)-1 || ret == (size_t)-2)
+ if (MB_INVALIDCH (ret))
{
tempwidth = 1;
ret = 1;
}
- else if (ret == 0)
+ else if (MB_NULLWCH (ret))
tempwidth = 0;
else
tempwidth = wcwidth (wc);
@@ -1091,7 +1132,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
ret = mbrtowc (&wc, old, MB_CUR_MAX, &ps);
if (ret != 0 && bytes != 0)
{
- if (ret == (size_t)-1 || ret == (size_t)-2)
+ if (MB_INVALIDCH (ret))
memmove (old+bytes, old+1, strlen (old+1));
else
memmove (old+bytes, old+ret, strlen (old+ret));
@@ -1126,18 +1167,37 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- memset (&ps_new, 0, sizeof(mbstate_t));
- memset (&ps_old, 0, sizeof(mbstate_t));
-
- new_offset = old_offset = 0;
- for (ofd = old, nfd = new;
- (ofd - old < omax) && *ofd &&
- _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); )
+ /* See if the old line is a subset of the new line, so that the
+ only change is adding characters. */
+ temp = (omax < nmax) ? omax : nmax;
+ if (memcmp (old, new, temp) == 0)
{
- old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY);
- new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY);
- ofd = old + old_offset;
- nfd = new + new_offset;
+ ofd = old + temp;
+ nfd = new + temp;
+ }
+ else
+ {
+ memset (&ps_new, 0, sizeof(mbstate_t));
+ memset (&ps_old, 0, sizeof(mbstate_t));
+
+ if (omax == nmax && STREQN (new, old, omax))
+ {
+ ofd = old + omax;
+ nfd = new + nmax;
+ }
+ else
+ {
+ new_offset = old_offset = 0;
+ for (ofd = old, nfd = new;
+ (ofd - old < omax) && *ofd &&
+ _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); )
+ {
+ old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY);
+ new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY);
+ ofd = old + old_offset;
+ nfd = new + new_offset;
+ }
+ }
}
}
else
@@ -1169,8 +1229,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
memset (&ps_old, 0, sizeof (mbstate_t));
memset (&ps_new, 0, sizeof (mbstate_t));
+#if 0
+ /* On advice from jir@yamato.ibm.com */
_rl_adjust_point (old, ols - old, &ps_old);
_rl_adjust_point (new, nls - new, &ps_new);
+#endif
if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0)
break;
@@ -1324,7 +1387,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
insert_some_chars (nfd, lendiff, col_lendiff);
_rl_last_c_pos += col_lendiff;
}
- else if (*ols == 0)
+ else if (*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. */
@@ -1347,7 +1410,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if ((temp - lendiff) > 0)
{
_rl_output_some_chars (nfd + lendiff, temp - lendiff);
-#if 0
+#if 1
+ /* XXX -- this bears closer inspection. Fixes a redisplay bug
+ reported against bash-3.0-alpha by Andreas Schwab involving
+ multibyte characters and prompt strings with invisible
+ characters, but was previously disabled. */
_rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
#else
_rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff);
@@ -1426,12 +1493,13 @@ rl_on_new_line ()
/* 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. */
+ distributed with CLISP. rl_expand_prompt must have already been called
+ (explicitly or implicitly). This still doesn't work exactly right. */
int
rl_on_new_line_with_prompt ()
{
int prompt_size, i, l, real_screenwidth, newlines;
- char *prompt_last_line;
+ char *prompt_last_line, *lprompt;
/* Initialize visible_line and invisible_line to ensure that they can hold
the already-displayed prompt. */
@@ -1440,8 +1508,9 @@ rl_on_new_line_with_prompt ()
/* Make sure the line structures hold the already-displayed prompt for
redisplay. */
- strcpy (visible_line, rl_prompt);
- strcpy (invisible_line, rl_prompt);
+ lprompt = local_prompt ? local_prompt : rl_prompt;
+ strcpy (visible_line, lprompt);
+ strcpy (invisible_line, lprompt);
/* If the prompt contains newlines, take the last tail. */
prompt_last_line = strrchr (rl_prompt, '\n');
@@ -1476,6 +1545,8 @@ rl_on_new_line_with_prompt ()
vis_lbreaks[newlines] = l;
visible_wrap_offset = 0;
+ rl_display_prompt = rl_prompt; /* XXX - make sure it's set */
+
return 0;
}
@@ -1767,10 +1838,14 @@ rl_reset_line_state ()
return 0;
}
+/* These are getting numerous enough that it's time to create a struct. */
+
static char *saved_local_prompt;
static char *saved_local_prefix;
static int saved_last_invisible;
static int saved_visible_length;
+static int saved_invis_chars_first_line;
+static int saved_physical_chars;
void
rl_save_prompt ()
@@ -1779,9 +1854,12 @@ rl_save_prompt ()
saved_local_prefix = local_prompt_prefix;
saved_last_invisible = prompt_last_invisible;
saved_visible_length = prompt_visible_length;
+ saved_invis_chars_first_line = prompt_invis_chars_first_line;
+ saved_physical_chars = prompt_physical_chars;
local_prompt = local_prompt_prefix = (char *)0;
prompt_last_invisible = prompt_visible_length = 0;
+ prompt_invis_chars_first_line = prompt_physical_chars = 0;
}
void
@@ -1794,6 +1872,8 @@ rl_restore_prompt ()
local_prompt_prefix = saved_local_prefix;
prompt_last_invisible = saved_last_invisible;
prompt_visible_length = saved_visible_length;
+ prompt_invis_chars_first_line = saved_invis_chars_first_line;
+ prompt_physical_chars = saved_physical_chars;
}
char *
@@ -1826,6 +1906,7 @@ _rl_make_prompt_for_search (pchar)
prompt_last_invisible = saved_last_invisible;
prompt_visible_length = saved_visible_length + 1;
}
+
return pmt;
}
@@ -2002,7 +2083,7 @@ redraw_prompt (t)
char *t;
{
char *oldp, *oldl, *oldlprefix;
- int oldlen, oldlast, oldplen, oldninvis;
+ int oldlen, oldlast, oldplen, oldninvis, oldphyschars;
/* Geez, I should make this a struct. */
oldp = rl_display_prompt;
@@ -2012,11 +2093,13 @@ redraw_prompt (t)
oldplen = prompt_prefix_length;
oldlast = prompt_last_invisible;
oldninvis = prompt_invis_chars_first_line;
+ oldphyschars = prompt_physical_chars;
rl_display_prompt = t;
local_prompt = expand_prompt (t, &prompt_visible_length,
&prompt_last_invisible,
- &prompt_invis_chars_first_line);
+ &prompt_invis_chars_first_line,
+ &prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
rl_forced_update_display ();
@@ -2027,6 +2110,7 @@ redraw_prompt (t)
prompt_prefix_length = oldplen;
prompt_last_invisible = oldlast;
prompt_invis_chars_first_line = oldninvis;
+ prompt_physical_chars = oldphyschars;
}
/* Redisplay the current line after a SIGWINCH is received. */
@@ -2136,7 +2220,7 @@ _rl_col_width (str, start, end)
while (point < start)
{
tmp = mbrlen (str + point, max, &ps);
- if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
+ if (MB_INVALIDCH ((size_t)tmp))
{
/* In this case, the bytes are invalid or too short to compose a
multibyte character, so we assume that the first byte represents
@@ -2148,8 +2232,8 @@ _rl_col_width (str, start, end)
effect of mbstate is undefined. */
memset (&ps, 0, sizeof (mbstate_t));
}
- else if (tmp == 0)
- break; /* Found '\0' */
+ else if (MB_NULLWCH (tmp))
+ break; /* Found '\0' */
else
{
point += tmp;
@@ -2165,7 +2249,7 @@ _rl_col_width (str, start, end)
while (point < end)
{
tmp = mbrtowc (&wc, str + point, max, &ps);
- if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
+ if (MB_INVALIDCH ((size_t)tmp))
{
/* In this case, the bytes are invalid or too short to compose a
multibyte character, so we assume that the first byte represents
@@ -2180,8 +2264,8 @@ _rl_col_width (str, start, end)
effect of mbstate is undefined. */
memset (&ps, 0, sizeof (mbstate_t));
}
- else if (tmp == 0)
- break; /* Found '\0' */
+ else if (MB_NULLWCH (tmp))
+ break; /* Found '\0' */
else
{
point += tmp;
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 8a85ae1..692a4e8 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,7 +1,7 @@
# This makefile for Readline library documentation is in -*- text -*- mode.
# Emacs likes it that way.
-# Copyright (C) 1996 Free Software Foundation, Inc.
+# Copyright (C) 1996-2004 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
@@ -52,14 +52,18 @@ TEXI2DVI = $(srcdir)/texi2dvi
TEXI2HTML = $(srcdir)/texi2html
QUIETPS = #set this to -q to shut up dvips
PAPERSIZE = letter
-PSDPI = 300 # I don't have any 600-dpi printers
+PSDPI = 600
DVIPS = dvips -D ${PSDPI} $(QUIETPS) -t ${PAPERSIZE} -o $@ # tricky
-RLSRC = $(srcdir)/rlman.texinfo $(srcdir)/rluser.texinfo \
- $(srcdir)/rltech.texinfo $(srcdir)/manvers.texinfo \
- $(srcdir)/rluserman.texinfo
-HISTSRC = $(srcdir)/hist.texinfo $(srcdir)/hsuser.texinfo \
- $(srcdir)/hstech.texinfo $(srcdir)/manvers.texinfo
+# These tools might not be available; they're not required
+DVIPDF = dvipdfm -o $@ -p ${PAPERSIZE}
+PSPDF = gs -sPAPERSIZE=${PAPERSIZE} -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@
+
+RLSRC = $(srcdir)/rlman.texi $(srcdir)/rluser.texi \
+ $(srcdir)/rltech.texi $(srcdir)/version.texi \
+ $(srcdir)/rluserman.texi
+HISTSRC = $(srcdir)/history.texi $(srcdir)/hsuser.texi \
+ $(srcdir)/hstech.texi $(srcdir)/version.texi
# This should be a program that converts troff to an ascii-readable format
NROFF = groff -Tascii
@@ -72,39 +76,54 @@ INFOOBJ = readline.info history.info rluserman.info
PSOBJ = readline.ps history.ps rluserman.ps readline_3.ps history_3.ps
HTMLOBJ = readline.html history.html rluserman.html
TEXTOBJ = readline.0 history.0
+PDFOBJ = readline.pdf history.pdf rluserman.pdf
-INTERMEDIATE_OBJ = rlman.dvi hist.dvi rluserman.dvi
+INTERMEDIATE_OBJ = rlman.dvi
DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ) $(INFOOBJ) $(TEXTOBJ)
-.SUFFIXES: .0 .3 .ps .txt .dvi
+.SUFFIXES: .0 .3 .ps .txt .dvi .html .pdf
.3.0:
$(RM) $@
-${NROFF} -man $< > $@
+.ps.pdf:
+ $(RM) $@
+ -${PSPDF} $<
+
+.dvi.pdf:
+ $(RM) $@
+ -${DVIPDF} $<
+
all: info dvi html ps text
nodvi: info html text
+info: $(INFOOBJ)
+dvi: $(DVIOBJ)
+ps: $(PSOBJ)
+html: $(HTMLOBJ)
+text: $(TEXTOBJ)
+pdf: $(PDFOBJ)
+
readline.dvi: $(RLSRC)
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rlman.texinfo
+ TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rlman.texi
mv rlman.dvi readline.dvi
readline.info: $(RLSRC)
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rlman.texinfo
+ $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rlman.texi
rluserman.dvi: $(RLSRC)
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rluserman.texinfo
+ TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rluserman.texi
rluserman.info: $(RLSRC)
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rluserman.texinfo
+ $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rluserman.texi
history.dvi: ${HISTSRC}
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/hist.texinfo
- mv hist.dvi history.dvi
+ TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/history.texi
history.info: ${HISTSRC}
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/hist.texinfo
+ $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/history.texi
readline.ps: readline.dvi
$(RM) $@
@@ -122,22 +141,15 @@ history.ps: history.dvi
# This leaves readline.html and rlman.html -- rlman.html is for www.gnu.org
#
readline.html: ${RLSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texinfo
+ $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texi
sed -e 's:rlman.html:readline.html:g' rlman.html > readline.html
+ $(RM) rlman.html
rluserman.html: ${RLSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texinfo
+ $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texi
history.html: ${HISTSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/hist.texinfo
- sed -e 's:hist.html:history.html:g' hist.html > history.html
- $(RM) hist.html
-
-info: $(INFOOBJ)
-dvi: $(DVIOBJ)
-ps: $(PSOBJ)
-html: $(HTMLOBJ)
-text: $(TEXTOBJ)
+ $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/history.texi
readline.0: readline.3
@@ -151,9 +163,14 @@ history_3.ps: history.3
${RM} $@
${GROFF} -man < $(srcdir)/history.3 > $@
+readline.pdf: readline.dvi
+history.pdf: history.dvi
+rluserman.pdf: rluserman.dvi
+
clean:
- $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
- *.fns *.kys *.tps *.vrs *.bt *.bts *.o core *.core
+ $(RM) *.aux *.bak *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps \
+ *.pgs *.bt *.bts *.rw *.rws *.fns *.kys *.tps *.vrs *.o \
+ core *.core
mostlyclean: clean
@@ -169,6 +186,7 @@ maybe-clean:
maintainer-clean: clean
$(RM) $(DIST_DOCS)
$(RM) $(INTERMEDIATE_OBJ)
+ $(RM) $(PDFOBJ)
$(RM) Makefile
installdirs: $(topdir)/support/mkdirs
diff --git a/doc/fdl.texi b/doc/fdl.texi
new file mode 100644
index 0000000..47ead9f
--- /dev/null
+++ b/doc/fdl.texi
@@ -0,0 +1,452 @@
+
+@node GNU Free Documentation License
+@appendixsec GNU Free Documentation License
+
+@cindex FDL, GNU Free Documentation License
+@center Version 1.2, November 2002
+
+@display
+Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@enumerate 0
+@item
+PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document @dfn{free} in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a 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 instruction or reference.
+
+@item
+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 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.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position 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.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+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''.
+
+Examples of suitable formats for Transparent copies include plain
+@sc{ascii} without markup, Texinfo input format, La@TeX{} input
+format, @acronym{SGML} or @acronym{XML} using a publicly available
+@acronym{DTD}, and standard-conforming simple @acronym{HTML},
+PostScript or @acronym{PDF} designed for human modification. Examples
+of transparent image formats include @acronym{PNG}, @acronym{XCF} and
+@acronym{JPG}. Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, @acronym{SGML} or
+@acronym{XML} for which the @acronym{DTD} and/or processing tools are
+not generally available, and the machine-generated @acronym{HTML},
+PostScript or @acronym{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 material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, ``Title Page'' means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section ``Entitled XYZ'' means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as ``Acknowledgements'',
+``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
+of such a section when you modify the Document means that it remains a
+section ``Entitled XYZ'' according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+@item
+VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You 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.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+@item
+COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all 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.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto 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.
+
+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.
+
+@item
+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:
+
+@enumerate A
+@item
+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.
+
+@item
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+@item
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+@item
+Preserve all the copyright notices of the Document.
+
+@item
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+@item
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+@item
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+
+@item
+Include an unaltered copy of this License.
+
+@item
+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.
+
+@item
+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.
+
+@item
+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 acknowledgements and/or
+dedications given therein.
+
+@item
+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.
+
+@item
+Delete any section Entitled ``Endorsements''. Such a section
+may not be included in the Modified Version.
+
+@item
+Do not retitle any existing section to be Entitled ``Endorsements'' or
+to conflict in title with any Invariant Section.
+
+@item
+Preserve any Warranty Disclaimers.
+@end enumerate
+
+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.
+
+You may add a section Entitled ``Endorsements'', provided it contains
+nothing but endorsements of your Modified Version by various
+parties---for example, statements of peer review or that the text has
+been approved by an organization as the authoritative 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.
+
+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 assert or
+imply endorsement of any Modified Version.
+
+@item
+COMBINING DOCUMENTS
+
+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, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled ``History''
+in the various original documents, forming one section Entitled
+``History''; likewise combine any sections Entitled ``Acknowledgements'',
+and any sections Entitled ``Dedications''. You must delete all
+sections Entitled ``Endorsements.''
+
+@item
+COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other 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.
+
+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.
+
+@item
+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 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 an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+@item
+TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled ``Acknowledgements'',
+``Dedications'', or ``History'', the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+@item
+TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+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
+@uref{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.
+@end enumerate
+
+@page
+@appendixsubsec ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+@smallexample
+@group
+ Copyright (C) @var{year} @var{your name}.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+@end group
+@end smallexample
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the ``with...Texts.'' line with this:
+
+@smallexample
+@group
+ with the Invariant Sections being @var{list their titles}, with
+ the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
+ being @var{list}.
+@end group
+@end smallexample
+
+If you have Invariant Sections without Cover Texts, or some other
+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.
+
+@c Local Variables:
+@c ispell-local-pdict: "ispell-dict"
+@c End:
+
diff --git a/doc/history.0 b/doc/history.0
index 324c363..3362294 100644
--- a/doc/history.0
+++ b/doc/history.0
@@ -1,219 +1,160 @@
+HISTORY(3) HISTORY(3)
-HISTORY(3) HISTORY(3)
-
-
NNAAMMEE
history - GNU History Library
CCOOPPYYRRIIGGHHTT
- The GNU History Library is Copyright (C) 1989-2002 by the
- Free Software Foundation, Inc.
+ The GNU History Library is Copyright (C) 1989-2002 by the Free Software
+ Foundation, Inc.
DDEESSCCRRIIPPTTIIOONN
- Many programs read input from the user a line at a time.
- The GNU History library is able to keep track of those
- lines, associate arbitrary data with each line, and uti-
- lize information from previous lines in composing new
- ones.
+ 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
- The history library supports a history expansion feature
- that is identical to the history expansion in bbaasshh.. This
- section describes what syntax features are available.
-
- 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 cur-
- rent input line, or fix errors in previous commands
- quickly.
-
- History expansion is usually performed immediately after a
- complete 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 second 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 available to manipulate the selected words. The
- line is broken into words in the same fashion as bbaasshh does
- when reading input, so that several words that would oth-
- erwise be separated are considered one word when sur-
- rounded by quotes (see the description of hhiissttoorryy__ttookk--
- eenniizzee(()) below). History expansions are introduced by the
- appearance of the history expansion character, which is !!
- by default. Only backslash (\\) and single quotes can
- quote the history expansion character.
+ The history library supports a history expansion feature that is iden-
+ tical to the history expansion in bbaasshh.. This section describes what
+ syntax features are available.
+
+ History expansions introduce words from the history list into the input
+ stream, making it easy to repeat commands, insert the arguments to a
+ previous command into the current input line, or fix errors in previous
+ commands quickly.
+
+ History expansion is usually performed immediately after a complete
+ 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
+ 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-
+ eral words that would otherwise be separated are considered one word
+ when surrounded by quotes (see the description of hhiissttoorryy__ttookkeenniizzee(())
+ below). History expansions are introduced by the appearance of the
+ history expansion character, which is !! by default. Only backslash (\\)
+ and single quotes can quote the history expansion character.
EEvveenntt DDeessiiggnnaattoorrss
- An event designator is a reference to a command line entry
- in the history list.
+ An event designator is a reference to a command line entry in the his-
+ tory list.
- !! Start a history substitution, except when followed
- by a bbllaannkk, newline, = or (.
+ !! Start a history substitution, except when followed by a bbllaannkk,
+ newline, = or (.
!!_n Refer to command line _n.
!!--_n Refer to the current command line minus _n.
- !!!! Refer to the previous command. This is a synonym
- for `!-1'.
-
-
-
-
-GNU History 4.3 2002 January 31 1
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
+ !!!! Refer to the previous command. This is a synonym for `!-1'.
!!_s_t_r_i_n_g
- Refer to the most recent command starting with
- _s_t_r_i_n_g.
+ Refer to the most recent command starting with _s_t_r_i_n_g.
!!??_s_t_r_i_n_g[[??]]
- Refer to the most recent command 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.
+ Refer to the most recent command containing _s_t_r_i_n_g. The trail-
+ ing ?? may be omitted if _s_t_r_i_n_g is followed immediately by a new-
+ line.
^^_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 MMooddiiffiieerrss below).
+ 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 :: 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 sepa-
+ rated by single spaces.
00 ((zzeerroo))
- The zeroth word. For the shell, this is the com-
- mand word.
+ The zeroth word. For the shell, this is the command word.
_n The _nth word.
^^ The first argument. That is, word 1.
$$ The last argument.
- %% The word matched by the most recent `?_s_t_r_i_n_g?'
- search.
+ %% 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 event; the empty string is
- returned in that case.
+ ** 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.
- If a word designator is supplied without an event specifi-
- cation, the previous command is used as the event.
+ 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 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.
+ 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.
-
-
-
-GNU History 4.3 2002 January 31 2
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- qq Quote the substituted words, escaping further sub-
- stitutions.
- xx Quote the substituted words as with qq, but break
- into words at bbllaannkkss and newlines.
+ 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 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 back-
- slash. If & appears in _n_e_w, it is replaced by _o_l_d.
- A single 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 substitutions took place, the
- last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search.
+ Substitute _n_e_w for the first occurrence of _o_l_d 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 the final
- delimiter is optional if it is the last character
- of the event line.
+ 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
+ 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
+ line.
PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS
- This section describes how to use the History library in
- other programs.
+ This section describes how to use the History library in other pro-
+ grams.
IInnttrroodduuccttiioonn ttoo HHiissttoorryy
- The programmer using the History library has available
- functions for remembering lines on a history list, associ-
- ating 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 available which provides for a consistent user inter-
- face 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 previ-
- ous lines and using that text in new commands. The basic
- history manipulation commands are identical to the history
- substitution provided by bbaasshh.
-
- 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 edit-
- ing.
-
- 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 library's features. It sup-
- plies extern declarations for all of the library's public
-
-
-
-GNU History 4.3 2002 January 31 3
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- functions and variables, and declares all of the public
- data structures.
+ 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-
+ able which provides for a consistent user interface across different
+ programs.
+
+ The user using programs written with the History library has the bene-
+ 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.
+
+ If the programmer desires, he can use the Readline library, which
+ includes some history manipulation by default, and has the added advan-
+ tage of command line editing.
+
+ Before declaring any functions using any functionality the History
+ library provides in other code, an application writer should include
+ the file _<_r_e_a_d_l_i_n_e_/_h_i_s_t_o_r_y_._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
- The history list is an array of history entries. A his-
- tory entry is declared as follows:
+ 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 struct _hist_entry {
char *line;
+ char *timestamp;
histdata_t data;
} HIST_ENTRY;
@@ -221,8 +162,8 @@ HISTORY(3) HISTORY(3)
_H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;;
- The state of the History library is encapsulated into a
- single structure:
+ The state of the History library is encapsulated into a single struc-
+ ture:
/*
* A structure used to pass around the current state of the history.
@@ -235,368 +176,285 @@ HISTORY(3) HISTORY(3)
int flags;
} HISTORY_STATE;
- If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has
- been stifled.
+ If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has been stifled.
HHiissttoorryy FFuunnccttiioonnss
- This section describes the calling sequence for the vari-
- ous functions exported by the GNU History library.
+ 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 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.
_v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d)
- Begin a session in which the history functions might be
- used. This initializes the interactive variables.
+ 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)
- Return a structure describing the current state of the
- input history.
+ 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)
-
-
-
-GNU History 4.3 2002 January 31 4
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
Set the state of the history list according to _s_t_a_t_e.
HHiissttoorryy LLiisstt MMaannaaggeemmeenntt
- These functions manage individual entries on the history
- list, or set parameters managing the list itself.
+ 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 associ-
- ated data field (if any) is set to NNUULLLL.
+ Place _s_t_r_i_n_g at the end of the history list. The associated data field
+ (if any) is set to NNUULLLL.
+
+ _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.
_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 structure.
-
- _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 returns the old entry so you can dispose of the data.
- In the case of an invalid _w_h_i_c_h, a NNUULLLL pointer is
+ 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
+ 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.
+
+ _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
+ 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
returned.
_v_o_i_d cclleeaarr__hhiissttoorryy (_v_o_i_d)
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.
+ Stifle the history list, remembering only the last _m_a_x 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 ssttii--
- ffllee__hhiissttoorryy(())). history was stifled. The value is posi-
- tive if the history was stifled, negative if it wasn't.
+ Stop stifling the history. This returns the previously-set maximum
+ number of history entries (as set by ssttiiffllee__hhiissttoorryy(())). 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)
- Returns non-zero if the history is stifled, zero if it is
- not.
+ 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 his-
- tory list or individual list entries.
+ 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.
+ 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.
_i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d)
Returns the offset of the current history element.
_H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d)
-
-
-
-GNU History 4.3 2002 January 31 5
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- Return the history entry at the current position, as
- determined by wwhheerree__hhiissttoorryy(()). If there is no entry
- there, return a NNUULLLL pointer.
+ Return the history entry at the current position, as determined by
+ wwhheerree__hhiissttoorryy(()). If there is no entry there, return a NNUULLLL 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
- hhiissttoorryy__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.
+ 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.
+
+ _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
+ 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 history.
+ 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
- These functions allow the current index into the history
- list to be set or changed.
+ 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 number of history entries.
+ 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
+ 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.
+ 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.
_H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d)
- Move the current history offset forward to the next his-
- tory entry, and return the a pointer to that entry. If
- there is no next entry, return a NNUULLLL pointer.
+ 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.
SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt
- 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 his-
- tory position. The search may be _a_n_c_h_o_r_e_d, meaning that
- the string must match at the beginning of the history
- entry.
+ 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
+ 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 sub-
- sequent entries. If _s_t_r_i_n_g 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 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
-
-
-
-GNU History 4.3 2002 January 31 6
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- _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 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.
+ 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,
+ 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
+ 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
+ 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.
MMaannaaggiinngg tthhee HHiissttoorryy FFiillee
- The History library can read the history from and write it
- to a file. This section documents the functions for man-
- aging a 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.
-
- _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
+ 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.
+
+ _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.
_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 necessary. 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.
+ 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.
_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 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
-
-
+ 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
+ a read or write error.
-GNU History 4.3 2002 January 31 7
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- truncated. Returns 0 on success, or eerrrrnnoo on failure.
+ _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.
HHiissttoorryy EExxppaannssiioonn
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. Returns:
- 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);
+ Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, 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
+ the history expansion character);
1 if expansions did take place;
-1 if there was an error in expansion;
- 2 if the returned line should be displayed,
- but not executed, as with the ::pp modifier.
- If an error ocurred in expansion, then _o_u_t_p_u_t 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
- event specification in addition to the ``normal'' termi-
- nating characters.
+ 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
+ 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
+ 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 hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting
- conventions are obeyed.
+ 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
+ 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(()).
+ _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(()).
HHiissttoorryy VVaarriiaabblleess
- This section describes the externally-visible variables
- exported by the GNU History Library.
+ This section describes the externally-visible variables exported by the
+ GNU History Library.
_i_n_t hhiissttoorryy__bbaassee
The logical offset of the first entry in the history list.
_i_n_t hhiissttoorryy__lleennggtthh
- The number of entries currently stored in the history
- list.
-
-
-
-
-GNU History 4.3 2002 January 31 8
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
+ 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 ssttiiffllee__hhiissttoorryy(()).
+ The maximum number of history entries. This must be changed using ssttii--
+ ffllee__hhiissttoorryy(()).
+
+ _i_n_t hhiissttoorryy__wwrriittee__ttiimmeessttaammppss
+ 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.
_c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr
- The character that introduces a history event. The
- default is !!. Setting this to 0 inhibits history expan-
- sion.
+ 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
- The character that invokes word substitution if found at
- the start of a line. The default is ^^.
+ The character that invokes word substitution if found at the start of a
+ line. The default is ^^.
_c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr
- 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 his-
- tory expansion for the remainder of the line. This is
- disabled by default.
+ 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__ttookk--
- eenniizzee(()). The default value is "" \\tt\\nn(())<<>>;;&&||"".
+ The characters that separate tokens for hhiissttoorryy__ttookkeenniizzee(()). The
+ default value is "" \\tt\\nn(())<<>>;;&&||"".
_c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss
- The list of characters which inhibit history expansion if
- found immediately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The
- default is space, tab, newline, \\rr, and ==.
+ The list of characters which inhibit history expansion if found immedi-
+ ately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The default is space, tab,
+ newline, \\rr, and ==.
_c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss
- The list of additional characters which can delimit a his-
- tory search string, in addition to space, tab, _: and _? in
- the case of a substring search. The default is empty.
+ The list of additional characters which can delimit a history search
+ string, in addition to space, tab, _: and _? in the case of a substring
+ search. The default is empty.
_i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn
- If non-zero, single-quoted words are not scanned for the
- history expansion character. The default value is 0.
+ 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 arguments: 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 per-
- formed; 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.
+ 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
- Default filename for reading and writing saved his-
- tory
-
-
-
-
-
-GNU History 4.3 2002 January 31 9
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
+ 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
@@ -612,49 +470,19 @@ AAUUTTHHOORRSS
chet@ins.CWRU.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.
-
- 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
+ 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.
+
+ 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.
- Comments and bug reports concerning this manual page
- should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Comments and bug reports concerning this manual page should be directed
+ to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
-GNU History 4.3 2002 January 31 10
+GNU History 5.0 2003 July 31 HISTORY(3)
diff --git a/doc/history.3 b/doc/history.3
index ed0cb9f..3ade839 100644
--- a/doc/history.3
+++ b/doc/history.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet@ins.CWRU.Edu
.\"
-.\" Last Change: Thu Jan 31 16:08:07 EST 2002
+.\" Last Change: Thu Jul 31 08:46:08 EDT 2003
.\"
-.TH HISTORY 3 "2002 January 31" "GNU History 4.3"
+.TH HISTORY 3 "2003 July 31" "GNU History 5.0"
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
@@ -249,6 +249,10 @@ or `\fB:&\fP'. If used with
`\fB:s\fP', 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 \fBa\fP may be used as a synonym for \fBg\fP.
+.TP
+.B G
+Apply the following `\fBs\fP' modifier once to each word in the event line.
.PD
.SH "PROGRAMMING WITH HISTORY FUNCTIONS"
This section describes how to use the History library in other programs.
@@ -292,6 +296,7 @@ declared as follows:
.nf
typedef struct _hist_entry {
char *line;
+ char *timestamp;
histdata_t data;
} HIST_ENTRY;
.fi
@@ -345,14 +350,24 @@ parameters managing the list itself.
Place \fIstring\fP at the end of the history list. The associated data
field (if any) is set to \fBNULL\fP.
+.Fn1 void add_history_time "const char *string"
+Change the time stamp associated with the most recent history entry to
+\fIstring\fP.
+
.Fn1 "HIST_ENTRY *" remove_history "int which"
Remove history entry at offset \fIwhich\fP from the history. The
removed element is returned so you can free the line, data,
and containing structure.
+.Fn1 "histdata_t" free_history_entry "HIST_ENTRY *histent"
+Free the history entry \fIhistent\fP and any history library private
+data associated with it. Returns the application-specific data
+so the caller can dispose of it.
+
.Fn3 "HIST_ENTRY *" replace_history_entry "int which" "const char *line" "histdata_t data"
Make the history entry at offset \fIwhich\fP have \fIline\fP and \fIdata\fP.
-This returns the old entry so you can dispose of the data. In the case
+This returns the old entry so the caller can dispose of any
+application-specific data. In the case
of an invalid \fIwhich\fP, a \fBNULL\fP pointer is returned.
.Fn1 void clear_history "void"
@@ -394,6 +409,9 @@ Return the history entry at position \fIoffset\fP, starting from
If there is no entry there, or if \fIoffset\fP
is greater than the history length, return a \fBNULL\fP pointer.
+.Fn1 "time_t" history_get_time "HIST_ENTRY *"
+Return the time stamp associated with the history entry passed as the argument.
+
.Fn1 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
@@ -551,6 +569,11 @@ The number of entries currently stored in the history list.
The maximum number of history entries. This must be changed using
\fBstifle_history()\fP.
+.Vb int history_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.
+
.Vb char history_expansion_char
The character that introduces a history event. The default is \fB!\fP.
Setting this to 0 inhibits history expansion.
diff --git a/doc/history.dvi b/doc/history.dvi
index bf7444e..031a31d 100644
--- a/doc/history.dvi
+++ b/doc/history.dvi
Binary files differ
diff --git a/doc/history.html b/doc/history.html
index 5afe15b..d8e3a0e 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 June, 27 2002 by texi2html 1.64 -->
+<!-- Created on July, 27 2004 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -27,7 +27,7 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>GNU History Library</H1></P><P>
@@ -40,8 +40,9 @@ typed input.
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC1">1. Using History Interactively</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU History User's Manual.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC6">2. Programming with GNU History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU History Programmer's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC19">A. Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC20">B. Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC19">A. Copying This Manual</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC22">B. Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC23">C. Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
and variables.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
@@ -56,7 +57,7 @@ typed input.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<A NAME="Using History Interactively"></A>
@@ -86,7 +87,7 @@ see section <A HREF="history.html#SEC6">2. Programming with GNU History</A>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.1 History Expansion </H2>
@@ -135,7 +136,7 @@ history expansion character, which is <SAMP>`!'</SAMP> by default.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.1.1 Event Designators </H3>
@@ -151,7 +152,7 @@ history list.
<DT><CODE>!</CODE>
<DD>Start a history substitution, except when followed by a space, tab,
-the end of the line, <SAMP>`='</SAMP> or <SAMP>`('</SAMP>.
+the end of the line, or <SAMP>`='</SAMP>.
<P>
<DT><CODE>!<VAR>n</VAR></CODE>
@@ -200,7 +201,7 @@ with <VAR>string2</VAR>. Equivalent to
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.1.2 Word Designators </H3>
@@ -295,7 +296,7 @@ previous command is used as the event.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.1.3 Modifiers </H3>
@@ -344,11 +345,16 @@ character on the input line.
<P>
<DT><CODE>g</CODE>
+<DD><DT><CODE>a</CODE>
<DD>Cause changes to be applied over the entire event line. Used in
conjunction with <SAMP>`s'</SAMP>, as in <CODE>gs/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>,
or with <SAMP>`&#38;'</SAMP>.
<P>
+<DT><CODE>G</CODE>
+<DD>Apply the following <SAMP>`s'</SAMP> modifier once to each word in the event.
+<P>
+
</DL>
<P>
@@ -363,7 +369,7 @@ or with <SAMP>`&#38;'</SAMP>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 2. Programming with GNU History </H1>
@@ -396,7 +402,7 @@ For information on the interactive use of GNU History, see section <A HREF="hist
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.1 Introduction to History </H2>
@@ -449,7 +455,7 @@ the public data structures.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.2 History Storage </H2>
@@ -464,6 +470,7 @@ declared as follows:
typedef struct _hist_entry {
char *line;
+ char *timestamp;
histdata_t data;
} HIST_ENTRY;
</pre></td></tr></table></P><P>
@@ -504,7 +511,7 @@ stifled.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.3 History Functions </H2>
@@ -545,7 +552,7 @@ exported by the GNU History library.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.3.1 Initializing History and State Management </H3>
@@ -590,7 +597,7 @@ initializes the interactive variables.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.3.2 History List Management </H3>
@@ -611,6 +618,14 @@ field (if any) is set to <CODE>NULL</CODE>.
<A NAME="IDX6"></A>
<DL>
+<DT><U>Function:</U> void <B>add_history_time</B> <I>(const char *string)</I>
+<DD>Change the time stamp associated with the most recent history entry to
+<VAR>string</VAR>.
+</DL>
+</P><P>
+
+<A NAME="IDX7"></A>
+<DL>
<DT><U>Function:</U> HIST_ENTRY * <B>remove_history</B> <I>(int which)</I>
<DD>Remove history entry at offset <VAR>which</VAR> from the history. The
removed element is returned so you can free the line, data,
@@ -618,30 +633,40 @@ and containing structure.
</DL>
</P><P>
-<A NAME="IDX7"></A>
+<A NAME="IDX8"></A>
+<DL>
+<DT><U>Function:</U> histdata_t <B>free_history_entry</B> <I>(HIST_ENTRY *histent)</I>
+<DD>Free the history entry <VAR>histent</VAR> and any history library private
+data associated with it. Returns the application-specific data
+so the caller can dispose of it.
+</DL>
+</P><P>
+
+<A NAME="IDX9"></A>
<DL>
<DT><U>Function:</U> HIST_ENTRY * <B>replace_history_entry</B> <I>(int which, const char *line, histdata_t data)</I>
<DD>Make the history entry at offset <VAR>which</VAR> have <VAR>line</VAR> and <VAR>data</VAR>.
-This returns the old entry so you can dispose of the data. In the case
+This returns the old entry so the caller can dispose of any
+application-specific data. In the case
of an invalid <VAR>which</VAR>, a <CODE>NULL</CODE> pointer is returned.
</DL>
</P><P>
-<A NAME="IDX8"></A>
+<A NAME="IDX10"></A>
<DL>
<DT><U>Function:</U> void <B>clear_history</B> <I>(void)</I>
<DD>Clear the history list by deleting all the entries.
</DL>
</P><P>
-<A NAME="IDX9"></A>
+<A NAME="IDX11"></A>
<DL>
<DT><U>Function:</U> void <B>stifle_history</B> <I>(int max)</I>
<DD>Stifle the history list, remembering only the last <VAR>max</VAR> entries.
</DL>
</P><P>
-<A NAME="IDX10"></A>
+<A NAME="IDX12"></A>
<DL>
<DT><U>Function:</U> int <B>unstifle_history</B> <I>(void)</I>
<DD>Stop stifling the history. This returns the previously-set
@@ -651,7 +676,7 @@ stifled, negative if it wasn't.
</DL>
</P><P>
-<A NAME="IDX11"></A>
+<A NAME="IDX13"></A>
<DL>
<DT><U>Function:</U> int <B>history_is_stifled</B> <I>(void)</I>
<DD>Returns non-zero if the history is stifled, zero if it is not.
@@ -669,7 +694,7 @@ stifled, negative if it wasn't.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.3.3 Information About the History List </H3>
@@ -680,7 +705,7 @@ These functions return information about the entire history list or
individual list entries.
</P><P>
-<A NAME="IDX12"></A>
+<A NAME="IDX14"></A>
<DL>
<DT><U>Function:</U> HIST_ENTRY ** <B>history_list</B> <I>(void)</I>
<DD>Return a <CODE>NULL</CODE> terminated array of <CODE>HIST_ENTRY *</CODE> which is the
@@ -689,14 +714,14 @@ If there is no history, return <CODE>NULL</CODE>.
</DL>
</P><P>
-<A NAME="IDX13"></A>
+<A NAME="IDX15"></A>
<DL>
<DT><U>Function:</U> int <B>where_history</B> <I>(void)</I>
<DD>Returns the offset of the current history element.
</DL>
</P><P>
-<A NAME="IDX14"></A>
+<A NAME="IDX16"></A>
<DL>
<DT><U>Function:</U> HIST_ENTRY * <B>current_history</B> <I>(void)</I>
<DD>Return the history entry at the current position, as determined by
@@ -705,7 +730,7 @@ pointer.
</DL>
</P><P>
-<A NAME="IDX15"></A>
+<A NAME="IDX17"></A>
<DL>
<DT><U>Function:</U> HIST_ENTRY * <B>history_get</B> <I>(int offset)</I>
<DD>Return the history entry at position <VAR>offset</VAR>, starting from
@@ -715,7 +740,14 @@ is greater than the history length, return a <CODE>NULL</CODE> pointer.
</DL>
</P><P>
-<A NAME="IDX16"></A>
+<A NAME="IDX18"></A>
+<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>.
+</DL>
+</P><P>
+
+<A NAME="IDX19"></A>
<DL>
<DT><U>Function:</U> int <B>history_total_bytes</B> <I>(void)</I>
<DD>Return the number of bytes that the primary history entries are using.
@@ -735,7 +767,7 @@ history.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.3.4 Moving Around the History List </H3>
@@ -746,7 +778,7 @@ These functions allow the current index into the history list to be
set or changed.
</P><P>
-<A NAME="IDX17"></A>
+<A NAME="IDX20"></A>
<DL>
<DT><U>Function:</U> int <B>history_set_pos</B> <I>(int pos)</I>
<DD>Set the current history offset to <VAR>pos</VAR>, an absolute index
@@ -756,7 +788,7 @@ than the number of history entries.
</DL>
</P><P>
-<A NAME="IDX18"></A>
+<A NAME="IDX21"></A>
<DL>
<DT><U>Function:</U> HIST_ENTRY * <B>previous_history</B> <I>(void)</I>
<DD>Back up the current history offset to the previous history entry, and
@@ -765,7 +797,7 @@ a <CODE>NULL</CODE> pointer.
</DL>
</P><P>
-<A NAME="IDX19"></A>
+<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
@@ -785,7 +817,7 @@ a <CODE>NULL</CODE> pointer.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.3.5 Searching the History List </H3>
@@ -796,10 +828,10 @@ 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 <EM>anchored</EM>,
meaning that the string must match at the beginning of the history entry.
-<A NAME="IDX20"></A>
+<A NAME="IDX23"></A>
</P><P>
-<A NAME="IDX21"></A>
+<A NAME="IDX24"></A>
<DL>
<DT><U>Function:</U> int <B>history_search</B> <I>(const char *string, int direction)</I>
<DD>Search the history for <VAR>string</VAR>, starting at the current history offset.
@@ -813,7 +845,7 @@ returned.
</DL>
</P><P>
-<A NAME="IDX22"></A>
+<A NAME="IDX25"></A>
<DL>
<DT><U>Function:</U> int <B>history_search_prefix</B> <I>(const char *string, int direction)</I>
<DD>Search the history for <VAR>string</VAR>, starting at the current history
@@ -826,7 +858,7 @@ Otherwise, nothing is changed, and a -1 is returned.
</DL>
</P><P>
-<A NAME="IDX23"></A>
+<A NAME="IDX26"></A>
<DL>
<DT><U>Function:</U> int <B>history_search_pos</B> <I>(const char *string, int direction, int pos)</I>
<DD>Search for <VAR>string</VAR> in the history list, starting at <VAR>pos</VAR>, an
@@ -847,7 +879,7 @@ index of the history element where <VAR>string</VAR> was found, or -1 otherwise.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.3.6 Managing the History File </H3>
@@ -858,7 +890,7 @@ The History library can read the history from and write it to a file.
This section documents the functions for managing a history file.
</P><P>
-<A NAME="IDX24"></A>
+<A NAME="IDX27"></A>
<DL>
<DT><U>Function:</U> int <B>read_history</B> <I>(const char *filename)</I>
<DD>Add the contents of <VAR>filename</VAR> to the history list, a line at a time.
@@ -867,7 +899,7 @@ Returns 0 if successful, or <CODE>errno</CODE> if not.
</DL>
</P><P>
-<A NAME="IDX25"></A>
+<A NAME="IDX28"></A>
<DL>
<DT><U>Function:</U> int <B>read_history_range</B> <I>(const char *filename, int from, int to)</I>
<DD>Read a range of lines from <VAR>filename</VAR>, adding them to the history list.
@@ -879,7 +911,7 @@ or <CODE>errno</CODE> if not.
</DL>
</P><P>
-<A NAME="IDX26"></A>
+<A NAME="IDX29"></A>
<DL>
<DT><U>Function:</U> int <B>write_history</B> <I>(const char *filename)</I>
<DD>Write the current history to <VAR>filename</VAR>, overwriting <VAR>filename</VAR>
@@ -890,7 +922,7 @@ Returns 0 on success, or <CODE>errno</CODE> on a read or write error.
</DL>
</P><P>
-<A NAME="IDX27"></A>
+<A NAME="IDX30"></A>
<DL>
<DT><U>Function:</U> int <B>append_history</B> <I>(int nelements, const char *filename)</I>
<DD>Append the last <VAR>nelements</VAR> of the history list to <VAR>filename</VAR>.
@@ -899,7 +931,7 @@ Returns 0 on success, or <CODE>errno</CODE> on a read or write error.
</DL>
</P><P>
-<A NAME="IDX28"></A>
+<A NAME="IDX31"></A>
<DL>
<DT><U>Function:</U> int <B>history_truncate_file</B> <I>(const char *filename, int nlines)</I>
<DD>Truncate the history file <VAR>filename</VAR>, leaving only the last
@@ -920,7 +952,7 @@ Returns 0 on success, or <CODE>errno</CODE> on failure.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.3.7 History Expansion </H3>
@@ -930,7 +962,7 @@ Returns 0 on success, or <CODE>errno</CODE> on failure.
These functions implement history expansion.
</P><P>
-<A NAME="IDX29"></A>
+<A NAME="IDX32"></A>
<DL>
<DT><U>Function:</U> int <B>history_expand</B> <I>(char *string, char **output)</I>
<DD>Expand <VAR>string</VAR>, placing the result into <VAR>output</VAR>, a pointer
@@ -955,7 +987,7 @@ error message.
</DL>
</P><P>
-<A NAME="IDX30"></A>
+<A NAME="IDX33"></A>
<DL>
<DT><U>Function:</U> char * <B>get_history_event</B> <I>(const char *string, int *cindex, int qchar)</I>
<DD>Returns the text of the history event beginning at <VAR>string</VAR> +
@@ -967,7 +999,7 @@ to the "normal" terminating characters.
</DL>
</P><P>
-<A NAME="IDX31"></A>
+<A NAME="IDX34"></A>
<DL>
<DT><U>Function:</U> char ** <B>history_tokenize</B> <I>(const char *string)</I>
<DD>Return an array of tokens parsed out of <VAR>string</VAR>, much as the
@@ -977,7 +1009,7 @@ and shell quoting conventions are obeyed.
</DL>
</P><P>
-<A NAME="IDX32"></A>
+<A NAME="IDX35"></A>
<DL>
<DT><U>Function:</U> char * <B>history_arg_extract</B> <I>(int first, int last, const char *string)</I>
<DD>Extract a string segment consisting of the <VAR>first</VAR> through <VAR>last</VAR>
@@ -997,7 +1029,7 @@ arguments present in <VAR>string</VAR>. Arguments are split using
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.4 History Variables </H2>
@@ -1008,21 +1040,21 @@ This section describes the externally-visible variables exported by
the GNU History Library.
</P><P>
-<A NAME="IDX33"></A>
+<A NAME="IDX36"></A>
<DL>
<DT><U>Variable:</U> int <B>history_base</B>
<DD>The logical offset of the first entry in the history list.
</DL>
</P><P>
-<A NAME="IDX34"></A>
+<A NAME="IDX37"></A>
<DL>
<DT><U>Variable:</U> int <B>history_length</B>
<DD>The number of entries currently stored in the history list.
</DL>
</P><P>
-<A NAME="IDX35"></A>
+<A NAME="IDX38"></A>
<DL>
<DT><U>Variable:</U> int <B>history_max_entries</B>
<DD>The maximum number of history entries. This must be changed using
@@ -1030,7 +1062,16 @@ the GNU History Library.
</DL>
</P><P>
-<A NAME="IDX36"></A>
+<A NAME="IDX39"></A>
+<DL>
+<DT><U>Variable:</U> int <B>history_write_timestamps</B>
+<DD>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.
+</DL>
+</P><P>
+
+<A NAME="IDX40"></A>
<DL>
<DT><U>Variable:</U> char <B>history_expansion_char</B>
<DD>The character that introduces a history event. The default is <SAMP>`!'</SAMP>.
@@ -1038,7 +1079,7 @@ Setting this to 0 inhibits history expansion.
</DL>
</P><P>
-<A NAME="IDX37"></A>
+<A NAME="IDX41"></A>
<DL>
<DT><U>Variable:</U> char <B>history_subst_char</B>
<DD>The character that invokes word substitution if found at the start of
@@ -1046,7 +1087,7 @@ a line. The default is <SAMP>`^'</SAMP>.
</DL>
</P><P>
-<A NAME="IDX38"></A>
+<A NAME="IDX42"></A>
<DL>
<DT><U>Variable:</U> char <B>history_comment_char</B>
<DD>During tokenization, if this character is seen as the first character
@@ -1056,7 +1097,7 @@ This is disabled by default.
</DL>
</P><P>
-<A NAME="IDX39"></A>
+<A NAME="IDX43"></A>
<DL>
<DT><U>Variable:</U> char * <B>history_word_delimiters</B>
<DD>The characters that separate tokens for <CODE>history_tokenize()</CODE>.
@@ -1064,16 +1105,7 @@ The default value is <CODE>" \t\n()<>;&|"</CODE>.
</DL>
</P><P>
-<A NAME="IDX40"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>history_no_expand_chars</B>
-<DD>The list of characters which inhibit history expansion if found immediately
-following <VAR>history_expansion_char</VAR>. The default is space, tab, newline,
-carriage return, and <SAMP>`='</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX41"></A>
+<A NAME="IDX44"></A>
<DL>
<DT><U>Variable:</U> char * <B>history_search_delimiter_chars</B>
<DD>The list of additional characters which can delimit a history search
@@ -1082,7 +1114,16 @@ a substring search. The default is empty.
</DL>
</P><P>
-<A NAME="IDX42"></A>
+<A NAME="IDX45"></A>
+<DL>
+<DT><U>Variable:</U> char * <B>history_no_expand_chars</B>
+<DD>The list of characters which inhibit history expansion if found immediately
+following <VAR>history_expansion_char</VAR>. The default is space, tab, newline,
+carriage return, and <SAMP>`='</SAMP>.
+</DL>
+</P><P>
+
+<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
@@ -1090,7 +1131,7 @@ character. The default value is 0.
</DL>
</P><P>
-<A NAME="IDX43"></A>
+<A NAME="IDX47"></A>
<DL>
<DT><U>Variable:</U> rl_linebuf_func_t * <B>history_inhibit_expansion_function</B>
<DD>This should be set to the address of a function that takes two arguments:
@@ -1116,7 +1157,7 @@ By default, this variable is set to <CODE>NULL</CODE>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.5 History Programming Example </H2>
@@ -1213,7 +1254,7 @@ main (argc, argv)
}
</FONT></pre></td></tr></table></P><P>
-<A NAME="Concept Index"></A>
+<A NAME="Copying This Manual"></A>
<HR SIZE="6">
<A NAME="SEC19"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
@@ -1221,18 +1262,581 @@ main (argc, argv)
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
-<H1> A. Concept Index </H1>
+<H1> A. Copying This Manual </H1>
<!--docid::SEC19::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC20">A.1 GNU Free Documentation License</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">License for copying this manual.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="GNU Free Documentation License"></A>
+<HR SIZE="6">
+<A NAME="SEC20"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC21"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> A.1 GNU Free Documentation License </H2>
+<!--docid::SEC20::-->
+<P>
+
+<A NAME="IDX48"></A>
+<center>
+ Version 1.2, November 2002
+</center>
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=display><pre style="font-family: serif">Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table></P><P>
+
+<OL>
+<LI>
+PREAMBLE
+<P>
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document <EM>free</EM> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</P><P>
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</P><P>
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a 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 instruction or reference.
+</P><P>
+
+<LI>
+APPLICABILITY AND DEFINITIONS
+<P>
+
+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 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.
+</P><P>
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</P><P>
+
+A "Secondary Section" is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</P><P>
+
+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.
+</P><P>
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</P><P>
+
+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".
+</P><P>
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input
+format, <FONT SIZE="-1">SGML</FONT> or <FONT SIZE="-1">XML</FONT> using a publicly available
+<FONT SIZE="-1">DTD</FONT>, and standard-conforming simple <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> designed for human modification. Examples
+of transparent image formats include <FONT SIZE="-1">PNG</FONT>, <FONT SIZE="-1">XCF</FONT> and
+<FONT SIZE="-1">JPG</FONT>. Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <FONT SIZE="-1">SGML</FONT> or
+<FONT SIZE="-1">XML</FONT> for which the <FONT SIZE="-1">DTD</FONT> and/or processing tools are
+not generally available, and the machine-generated <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> produced by some word processors for
+output purposes only.
+</P><P>
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+</P><P>
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+</P><P>
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</P><P>
+
+<LI>
+VERBATIM COPYING
+<P>
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You 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.
+</P><P>
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</P><P>
+
+<LI>
+COPYING IN QUANTITY
+<P>
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all 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.
+</P><P>
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</P><P>
+
+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.
+</P><P>
+
+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.
+</P><P>
+
+<LI>
+MODIFICATIONS
+<P>
+
+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:
+</P><P>
+
+<OL>
+<LI>
+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.
+<P>
+
+<LI>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+<P>
+
+<LI>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+<P>
+
+<LI>
+Preserve all the copyright notices of the Document.
+<P>
+
+<LI>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+<P>
+
+<LI>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+<P>
+
+<LI>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+<P>
+
+<LI>
+Include an unaltered copy of this License.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+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 acknowledgements and/or
+dedications given therein.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+Delete any section Entitled "Endorsements". Such a section
+may not be included in the Modified Version.
+<P>
+
+<LI>
+Do not retitle any existing section to be Entitled "Endorsements" or
+to conflict in title with any Invariant Section.
+<P>
+
+<LI>
+Preserve any Warranty Disclaimers.
+</OL>
+<P>
+
+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.
+</P><P>
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</P><P>
+
+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.
+</P><P>
+
+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 assert or
+imply endorsement of any Modified Version.
+</P><P>
+
+<LI>
+COMBINING DOCUMENTS
+<P>
+
+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, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</P><P>
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</P><P>
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all
+sections Entitled "Endorsements."
+</P><P>
+
+<LI>
+COLLECTIONS OF DOCUMENTS
+<P>
+
+You may make a collection consisting of the Document and other 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.
+</P><P>
+
+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.
+</P><P>
+
+<LI>
+AGGREGATION WITH INDEPENDENT WORKS
+<P>
+
+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 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 an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</P><P>
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</P><P>
+
+<LI>
+TRANSLATION
+<P>
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</P><P>
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</P><P>
+
+<LI>
+TERMINATION
+<P>
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</P><P>
+
+<LI>
+FUTURE REVISIONS OF THIS LICENSE
+<P>
+
+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
+<A HREF="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</A>.
+</P><P>
+
+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.
+</OL>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC21"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> A.1.1 ADDENDUM: How to use this License for your documents </H3>
+<!--docid::SEC21::-->
+<P>
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre> Copyright (C) <VAR>year</VAR> <VAR>your name</VAR>.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre> with the Invariant Sections being <VAR>list their titles</VAR>, with
+ the Front-Cover Texts being <VAR>list</VAR>, and with the Back-Cover Texts
+ being <VAR>list</VAR>.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</P><P>
+
+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.
+</P><P>
+
+<A NAME="Concept Index"></A>
+<HR SIZE="6">
+<A NAME="SEC22"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC21"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC23"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC23"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC23"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> B. Concept Index </H1>
+<!--docid::SEC22::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#cp_A" style="text-decoration:none"><b>A</b></A>
&nbsp;
<A HREF="history.html#cp_E" style="text-decoration:none"><b>E</b></A>
&nbsp;
+<A HREF="history.html#cp_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp;
<A HREF="history.html#cp_H" style="text-decoration:none"><b>H</b></A>
&nbsp;
</td></tr></table><br><P></P>
@@ -1240,11 +1844,14 @@ main (argc, argv)
<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="cp_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX20">anchored search</A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX23">anchored search</A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_E"></A>E</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="history.html#SEC3">event designators</A></TD><TD valign=top><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="cp_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX48">FDL, GNU Free Documentation License</A></TD><TD valign=top><A HREF="history.html#SEC20">A.1 GNU Free Documentation License</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_H"></A>H</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="history.html#IDX1">history events</A></TD><TD valign=top><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="history.html#SEC2">history expansion</A></TD><TD valign=top><A HREF="history.html#SEC2">1.1 History Expansion</A></TD></TR>
@@ -1254,30 +1861,34 @@ main (argc, argv)
&nbsp;
<A HREF="history.html#cp_E" style="text-decoration:none"><b>E</b></A>
&nbsp;
+<A HREF="history.html#cp_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp;
<A HREF="history.html#cp_H" style="text-decoration:none"><b>H</b></A>
&nbsp;
</td></tr></table><br><P>
<A NAME="Function and Variable Index"></A>
<HR SIZE="6">
-<A NAME="SEC20"></A>
+<A NAME="SEC23"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &lt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
-<H1> B. Function and Variable Index </H1>
-<!--docid::SEC20::-->
+<H1> C. Function and Variable Index </H1>
+<!--docid::SEC23::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#vr_A" style="text-decoration:none"><b>A</b></A>
&nbsp;
<A HREF="history.html#vr_C" style="text-decoration:none"><b>C</b></A>
&nbsp;
+<A HREF="history.html#vr_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp;
<A HREF="history.html#vr_G" style="text-decoration:none"><b>G</b></A>
&nbsp;
<A HREF="history.html#vr_H" style="text-decoration:none"><b>H</b></A>
@@ -1300,69 +1911,77 @@ main (argc, argv)
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_A"></A>A</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="history.html#IDX5"><CODE>add_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX27"><CODE>append_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX6"><CODE>add_history_time</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX30"><CODE>append_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX8"><CODE>clear_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX14"><CODE>current_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX10"><CODE>clear_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX16"><CODE>current_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
+<TR><TH><A NAME="vr_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX8"><CODE>free_history_entry</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX30"><CODE>get_history_event</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX33"><CODE>get_history_event</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX32"><CODE>history_arg_extract</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX33"><CODE>history_base</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX38"><CODE>history_comment_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX29"><CODE>history_expand</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX36"><CODE>history_expansion_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX15"><CODE>history_get</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX35"><CODE>history_arg_extract</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX36"><CODE>history_base</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX42"><CODE>history_comment_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX32"><CODE>history_expand</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX40"><CODE>history_expansion_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX17"><CODE>history_get</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="history.html#IDX3"><CODE>history_get_history_state</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX43"><CODE>history_inhibit_expansion_function</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX11"><CODE>history_is_stifled</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX34"><CODE>history_length</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX12"><CODE>history_list</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX35"><CODE>history_max_entries</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX40"><CODE>history_no_expand_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX42"><CODE>history_quotes_inhibit_expansion</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX21"><CODE>history_search</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX41"><CODE>history_search_delimiter_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX23"><CODE>history_search_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX22"><CODE>history_search_prefix</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX18"><CODE>history_get_time</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX47"><CODE>history_inhibit_expansion_function</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX13"><CODE>history_is_stifled</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX37"><CODE>history_length</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX14"><CODE>history_list</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX38"><CODE>history_max_entries</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX45"><CODE>history_no_expand_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX46"><CODE>history_quotes_inhibit_expansion</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX24"><CODE>history_search</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX44"><CODE>history_search_delimiter_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX26"><CODE>history_search_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX25"><CODE>history_search_prefix</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="history.html#IDX4"><CODE>history_set_history_state</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX17"><CODE>history_set_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX37"><CODE>history_subst_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX31"><CODE>history_tokenize</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX16"><CODE>history_total_bytes</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX28"><CODE>history_truncate_file</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX39"><CODE>history_word_delimiters</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX20"><CODE>history_set_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX41"><CODE>history_subst_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX34"><CODE>history_tokenize</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX19"><CODE>history_total_bytes</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX31"><CODE>history_truncate_file</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX43"><CODE>history_word_delimiters</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX39"><CODE>history_write_timestamps</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX19"><CODE>next_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX22"><CODE>next_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX18"><CODE>previous_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX21"><CODE>previous_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX24"><CODE>read_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX25"><CODE>read_history_range</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX6"><CODE>remove_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX7"><CODE>replace_history_entry</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX27"><CODE>read_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX28"><CODE>read_history_range</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX7"><CODE>remove_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX9"><CODE>replace_history_entry</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX9"><CODE>stifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX11"><CODE>stifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX10"><CODE>unstifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX12"><CODE>unstifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="history.html#IDX2"><CODE>using_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_W"></A>W</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX13"><CODE>where_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX26"><CODE>write_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX15"><CODE>where_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="history.html#IDX29"><CODE>write_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</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="history.html#vr_A" style="text-decoration:none"><b>A</b></A>
&nbsp;
<A HREF="history.html#vr_C" style="text-decoration:none"><b>C</b></A>
&nbsp;
+<A HREF="history.html#vr_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp;
<A HREF="history.html#vr_G" style="text-decoration:none"><b>G</b></A>
&nbsp;
<A HREF="history.html#vr_H" style="text-decoration:none"><b>H</b></A>
@@ -1386,7 +2005,7 @@ main (argc, argv)
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Table of Contents</H1>
@@ -1435,9 +2054,19 @@ main (argc, argv)
<A NAME="TOC18" HREF="history.html#SEC18">2.5 History Programming Example</A>
<BR>
</UL>
-<A NAME="TOC19" HREF="history.html#SEC19">A. Concept Index</A>
+<A NAME="TOC19" HREF="history.html#SEC19">A. Copying This Manual</A>
<BR>
-<A NAME="TOC20" HREF="history.html#SEC20">B. Function and Variable Index</A>
+<UL>
+<A NAME="TOC20" HREF="history.html#SEC20">A.1 GNU Free Documentation License</A>
+<BR>
+<UL>
+<A NAME="TOC21" HREF="history.html#SEC21">A.1.1 ADDENDUM: How to use this License for your documents</A>
+<BR>
+</UL>
+</UL>
+<A NAME="TOC22" HREF="history.html#SEC22">B. Concept Index</A>
+<BR>
+<A NAME="TOC23" HREF="history.html#SEC23">C. Function and Variable Index</A>
<BR>
</UL>
<HR SIZE=1>
@@ -1445,7 +2074,7 @@ main (argc, argv)
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Short Table of Contents</H1>
@@ -1454,9 +2083,11 @@ main (argc, argv)
<BR>
<A NAME="TOC6" HREF="history.html#SEC6">2. Programming with GNU History</A>
<BR>
-<A NAME="TOC19" HREF="history.html#SEC19">A. Concept Index</A>
+<A NAME="TOC19" HREF="history.html#SEC19">A. Copying This Manual</A>
+<BR>
+<A NAME="TOC22" HREF="history.html#SEC22">B. Concept Index</A>
<BR>
-<A NAME="TOC20" HREF="history.html#SEC20">B. Function and Variable Index</A>
+<A NAME="TOC23" HREF="history.html#SEC23">C. Function and Variable Index</A>
<BR>
</BLOCKQUOTE>
@@ -1465,11 +2096,11 @@ main (argc, argv)
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC22">Index</A>]</TD>
<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>June, 27 2002</I>
+This document was generated by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -1631,7 +2262,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
+by <I>Chet Ramey</I> on <I>July, 27 2004</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 98c0002..8896f58 100644
--- a/doc/history.info
+++ b/doc/history.info
@@ -1,30 +1,32 @@
-This is history.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/hist.texinfo.
+This is history.info, produced by makeinfo version 4.5 from
+/usr/homes/chet/src/bash/readline-src/doc/history.texi.
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* History: (history). The GNU history library API
-END-INFO-DIR-ENTRY
+This document describes the GNU History library (version 5.0, 28
+January 2004), a programming tool that provides a consistent user
+interface for recalling lines of previously typed input.
- This document describes the GNU History library, a programming tool
-that provides a consistent user interface for recalling lines of
-previously typed input.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
+ Copyright (C) 1988-2004 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
+manual provided the copyright notice and this permission notice are
preserved on all copies.
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.1 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, with the Front-Cover texts
+ being "A GNU Manual," and with the Back-Cover Texts as in (a)
+ below. A copy of the license is included in the section entitled
+ "GNU Free Documentation License."
+
+ (a) The FSF's Back-Cover Text is: "You have freedom to copy and
+ modify this GNU Manual, like GNU software. Copies published by
+ the Free Software Foundation raise funds for GNU development."
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* History: (history). The GNU history library API.
+END-INFO-DIR-ENTRY

File: history.info, Node: Top, Next: Using History Interactively, Up: (dir)
@@ -40,6 +42,7 @@ previously typed input.
* Using History Interactively:: GNU History User's Manual.
* Programming with GNU History:: GNU History Programmer's Manual.
+* Copying This Manual:: Copying This Manual.
* Concept Index:: Index of concepts described in this manual.
* Function and Variable Index:: Index of externally visible functions
and variables.
@@ -102,7 +105,7 @@ 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'
Refer to command line N.
@@ -128,6 +131,7 @@ history list.
`!#'
The entire command line typed so far.
+

File: history.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction
@@ -186,6 +190,7 @@ line separated by single spaces.
`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.
@@ -226,11 +231,16 @@ more of the following modifiers, each preceded by a `:'.
Repeat the previous substitution.
`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.
+
+

-File: history.info, Node: Programming with GNU History, Next: Concept Index, Prev: Using History Interactively, Up: Top
+File: history.info, Node: Programming with GNU History, Next: Copying This Manual, Prev: Using History Interactively, Up: Top
Programming with GNU History
****************************
@@ -297,6 +307,7 @@ declared as follows:
typedef struct _hist_entry {
char *line;
+ char *timestamp;
histdata_t data;
} HIST_ENTRY;
@@ -382,16 +393,26 @@ parameters managing the list itself.
Place STRING at the end of the history list. The associated data
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.
+
- Function: HIST_ENTRY * remove_history (int which)
Remove history entry at offset WHICH from the history. The
removed element is returned so you can free the line, data, and
containing structure.
+ - Function: 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.
+
- 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 you can dispose of the data. In the case
- of an invalid WHICH, a `NULL' pointer is returned.
+ 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.
- Function: void clear_history (void)
Clear the history list by deleting all the entries.
@@ -436,6 +457,9 @@ individual list entries.
there, or if OFFSET is greater than the history length, return a
`NULL' pointer.
+ - Function: time_t history_get_time (HIST_ENTRY *entry)
+ Return the time stamp associated with the history entry ENTRY.
+
- Function: 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
@@ -612,6 +636,11 @@ the GNU History Library.
The maximum number of history entries. This must be changed using
`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.
+
- Variable: char history_expansion_char
The character that introduces a history event. The default is `!'.
Setting this to 0 inhibits history expansion.
@@ -630,16 +659,16 @@ the GNU History Library.
The characters that separate tokens for `history_tokenize()'. The
default value is `" \t\n()<>;&|"'.
- - 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 `='.
-
- 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
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 `='.
+
- 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.
@@ -749,7 +778,448 @@ Library.
}

-File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU History, Up: Top
+File: history.info, Node: Copying This Manual, Next: Concept Index, Prev: Programming with GNU History, Up: Top
+
+Copying This Manual
+*******************
+
+* Menu:
+
+* GNU Free Documentation License:: License for copying this manual.
+
+
+File: history.info, Node: GNU Free Documentation License, Up: Copying This Manual
+
+GNU Free Documentation License
+==============================
+
+ Version 1.2, November 2002
+ Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ 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
+ 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
+ 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.
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ 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.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ 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".
+
+ 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.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ 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.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ 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.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ 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.
+
+ 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.
+
+ 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:
+
+ 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.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this 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.
+
+ 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.
+
+ 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
+ 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.
+
+ M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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.
+
+ You may add a section Entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ 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.
+
+ 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
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ 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,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ "History" in the various original documents, forming one section
+ Entitled "History"; likewise combine any sections Entitled
+ "Acknowledgements", and any sections Entitled "Dedications". You
+ must delete all sections Entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ 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.
+
+ 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.
+
+ 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
+ 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 an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided for under this License. Any other
+ attempt to copy, modify, sublicense or distribute the Document is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 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/'.
+
+ 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.
+
+ADDENDUM: How to use this License for your documents
+----------------------------------------------------
+
+ To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+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
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+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.
+
+
+File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: Copying This Manual, Up: Top
Concept Index
*************
@@ -758,6 +1228,7 @@ Concept Index
* anchored search: Searching the History List.
* event designators: Event Designators.
+* FDL, GNU Free Documentation License: GNU Free Documentation License.
* history events: Event Designators.
* history expansion: History Interaction.
* History Searching: Searching the History List.
@@ -771,9 +1242,11 @@ Function and Variable Index
* Menu:
* add_history: History List Management.
+* add_history_time: History List Management.
* append_history: Managing the History File.
* clear_history: History List Management.
* current_history: Information About the History List.
+* free_history_entry: History List Management.
* get_history_event: History Expansion.
* history_arg_extract: History Expansion.
* history_base: History Variables.
@@ -782,6 +1255,7 @@ Function and Variable Index
* history_expansion_char: History Variables.
* history_get: Information About the History List.
* history_get_history_state: Initializing History and State Management.
+* history_get_time: Information About the History List.
* history_inhibit_expansion_function: History Variables.
* history_is_stifled: History List Management.
* history_length: History Variables.
@@ -800,6 +1274,7 @@ Function and Variable Index
* history_total_bytes: Information About the History List.
* history_truncate_file: Managing the History File.
* history_word_delimiters: History Variables.
+* history_write_timestamps: History Variables.
* next_history: Moving Around the History List.
* previous_history: Moving Around the History List.
* read_history: Managing the History File.
@@ -815,26 +1290,28 @@ Function and Variable Index

Tag Table:
-Node: Top1136
-Node: Using History Interactively1716
-Node: History Interaction2223
-Node: Event Designators3642
-Node: Word Designators4569
-Node: Modifiers6198
-Node: Programming with GNU History7336
-Node: Introduction to History8061
-Node: History Storage9746
-Node: History Functions10857
-Node: Initializing History and State Management11841
-Node: History List Management12641
-Node: Information About the History List14235
-Node: Moving Around the History List15591
-Node: Searching the History List16580
-Node: Managing the History File18498
-Node: History Expansion20304
-Node: History Variables22199
-Node: History Programming Example24766
-Node: Concept Index27488
-Node: Function and Variable Index27974
+Node: Top1320
+Node: Using History Interactively1948
+Node: History Interaction2455
+Node: Event Designators3874
+Node: Word Designators4798
+Node: Modifiers6428
+Node: Programming with GNU History7646
+Node: Introduction to History8377
+Node: History Storage10062
+Node: History Functions11197
+Node: Initializing History and State Management12181
+Node: History List Management12981
+Node: Information About the History List14995
+Node: Moving Around the History List16477
+Node: Searching the History List17466
+Node: Managing the History File19384
+Node: History Expansion21190
+Node: History Variables23085
+Node: History Programming Example25874
+Node: Copying This Manual28596
+Node: GNU Free Documentation License28834
+Node: Concept Index51227
+Node: Function and Variable Index51777

End Tag Table
diff --git a/doc/history.pdf b/doc/history.pdf
new file mode 100644
index 0000000..2ed10c4
--- /dev/null
+++ b/doc/history.pdf
Binary files differ
diff --git a/doc/history.ps b/doc/history.ps
index a35bcf4..312a6dc 100644
--- a/doc/history.ps
+++ b/doc/history.ps
@@ -1,14 +1,14 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: history.dvi
-%%Pages: 20
+%%Pages: 28
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o history.ps history.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
+%DVIPSCommandLine: dvips -D 600 -t letter -o history.ps history.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.07.27:0931
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -67,751 +67,1751 @@ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (history.dvi)
+TeXDict begin 40258431 52099146 1000 600 600 (history.dvi)
@start
-%DVIPSBitmapFont: Fa cmti10 10.95 1
-/Fa 1 47 df<127012F8A212F012E005057B840E>46 D E
+%DVIPSBitmapFont: Fa cmti9 9 1
+/Fa 1 47 df<121C127F12FFA412FE12380808778718>46 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmbxti10 14.4 1
-/Fb 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
+%DVIPSBitmapFont: Fb cmr9 9 34
+/Fb 34 122 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C
+121C5A5A126009177A8715>44 D<EB0FE0EB7FFCEBF83E3903E00F803907C007C0EB8003
+000F14E0391F0001F0A24814F8A2003E1300007E14FCA500FE14FEB2007E14FCA56CEB01
+F8A36C14F0A2390F8003E03907C007C0A23903E00F803900F83E00EB7FFCEB0FE01F347D
+B126>48 D<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280A31932
+7AB126>I<EB1FE0EBFFFC4813FF3907E03F80390F001FC0001EEB0FE0001CEB07F0123F
+018013F8140313C01380A2381F0007C7FC15F0A2EC0FE015C0141FEC3F80EC7E00EB01F8
+EB7FE014FCEB003FEC1FC0EC0FE0EC07F015F8140315FC140115FEA3127EB4FCA415FC48
+130312780070EB07F86C14F0003C130F001FEB1FE0390FE03F800003B51200C613FCEB1F
+E01F347DB126>51 D<14FE903807FF80011F13E090383F00F0017C13703901F801F8EBF0
+03EA03E01207EA0FC0EC01F04848C7FCA248C8FCA35A127EEB07F0EB1FFC38FE381F9038
+700F809038E007C039FFC003E0018013F0EC01F8130015FC1400A24814FEA5127EA4127F
+6C14FCA26C1301018013F8000F14F0EBC0030007EB07E03903E00FC03901F81F806CB512
+00EB3FFCEB0FE01F347DB126>54 D<1230123C003FB6FCA34814FEA215FC0070C7123800
+601430157015E04814C01401EC0380C7EA07001406140E5C141814385CA25CA2495A1303
+A3495AA2130FA3131F91C7FCA25BA55BA9131C20347CB126>I<EB0FE0EB7FFC90B5FC39
+03F01F803907C007C0390F0003E0000EEB01F0001E1300001C14F8003C1478A3123EA200
+3F14F86D13F0EBC001D81FF013E09038F803C0390FFE07803907FF0F006C13DE6C13F87E
+EB3FFE8001F713C0D803E313E0D8078013F0390F007FF8001E131F003EEB07FC003C1303
+481301EC007E12F848143EA2151EA37E153C1278007C14787E6C14F0390F8003E03907F0
+1FC00001B5120038007FFCEB1FE01F347DB126>I<EB0FE0EB7FF8EBFFFE3803F83F3907
+E00F80390FC007C0D81F8013E0EC03F0EA3F0048EB01F8127EA200FE14FC1400A415FEA5
+007E1301A2127F7E1403EA1F80000F13073807C00E3803E01C3801F03838007FF090381F
+C0FC90C7FC1401A215F8A215F01403001F14E0383F800715C0140FEC1F809038003F0000
+1C137E381F01FC380FFFF0000313C0C690C7FC1F347DB126>I<B77E16F016FE3A01FE00
+01FF00009138003FC0EE0FE0707E707E707E707E177E177FEF3F80A2EF1FC0A3EF0FE0A4
+18F0AA18E0A3171F18C0A21880173F18005F17FE5F4C5AEE07F04C5AEE3FC000014AB45A
+B748C7FC16F8168034337EB23B>68 D<B81280A3D803FCC7FC0001151FEE07C01603A216
+01A21600A41760150CA31700A2151CA2153C15FC90B5FCA3EBFC00153C151CA2150CA592
+C8FCAB487EB512FEA32B337DB232>70 D<DA03FE130C91393FFF801C91B512E0903A03FE
+01F83C903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC7120348481401000315005B48
+48157C485A173C485A171C123F5B007F160CA390C9FC4893C7FCAA0303B512E07E7F9239
+0003FE00705A123F7F121FA26C7E7F12076C7E7F6C6C14036C7E6D6C1307D91FC0EB0E7C
+D90FF0EB1C3CD903FEEBF81C0100B5EAF00C023F01C0C7FCDA03FEC8FC33377CB43C>I<
+B5D8FE03B512F8A3000190C73807FC006C486E5AB390B7FCA349C71203B3A3486C4A7EB5
+D8FE03B512F8A335337EB23A>I<B512FEA3D803FEC9FC6C5AB3A9EE0180A416031700A4
+5EA25E5E5E5E16FE00031407B7FCA329337DB230>76 D<D8FFFE91381FFFF87F80C60300
+13006E143CD9DFE01418EBCFF0A2EBC7F8EBC3FCA2EBC1FEEBC0FF6E7EA26E7E6E7EA26E
+7E6E7E6E7EA26E7E6E7EA2ED7F80ED3FC0ED1FE0A2ED0FF0ED07F8A2ED03FCED01FEED00
+FFA2EE7F98EE3FD8A2EE1FF8160F1607A216031601A2486C1400D807F81578B500C01438
+A2171835337EB23A>78 D<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7
+FC003E80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13
+FF6C14C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12
+C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0
+011F138026C003FEC7FC22377CB42B>83 D<B500FE90381FFFF8A3000190C813006C4815
+3C1718B3AF1738017F1530A217706D6C1460011F15E06E495A010F14036D6C495A6D6C49
+C7FCD901FC131E6DB413FC91383FFFF0020F13C0020190C8FC35357EB23A>85
+D<EB7F803803FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FCA4EB01
+FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C131F6C13
+3B3A3F8071F180391FC1E1FF2607FFC013003900FE003C22237DA126>97
+D<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120FEA1F80123F903800
+03E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F14706C6C13E03903
+F001C03900FC0F8090383FFE00EB07F01D237EA122>99 D<153FEC0FFFA3EC007F81AEEB
+07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA12
+7E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE01300
+26357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0390FC007E0381F800315
+F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA5127E127FA26C1418A26C6C133800
+0F14306D13706C6C13E03901F003C03900FC0F00EB3FFEEB07F01D237EA122>I<151F90
+391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80
+EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9
+FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80
+48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22
+337EA126>103 D<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C90
+38F7007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0F
+C0EA1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB2
+15>I<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F028
+07F7003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFF
+F0A33C217EA041>109 D<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007E
+EA03FE497FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038
+FC1F803901F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143F
+A300FE1580A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC
+1F80D93FFEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F700
+7ED807FE7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16
+C06D131F6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB5
+12C0A325307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA290
+38FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE
+003C133E48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7F
+C67FEB0FFF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1
+FFE038C07F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA2
+3803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D8
+03F0133F00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90
+387E073FEB1FFED907F8130026227EA02B>I<B5EBFFF0A3D80FF0EB3F800007EC1F0000
+03140E150C6D131C00011418A26C6C5BA26D1370017E1360137F6D5BA290381F8180A214
+C3010F90C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA2146024217E9F29>I<B53801FFF8
+A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C090381F8380D90FC3
+C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC09038060FE0EB0C079038
+1C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA326207F9F29>120
+D<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C017E13
+18A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01
+FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA78
+38EA1FF0EA0FC025307F9F29>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmsltt10 9 13
+/Fc 13 122 df<EB7FF83801FFFE00076D7E8148809038F01FF0EBE0036C486C7EEA0180
+C8FC140114FF011F5B90B5FC1203120F481383387FF00301805BEAFE005A5A1407A24A5A
+6C133F38FF01FF90B6FC6C15807E000F01E313003803FE0021207A9F27>97
+D<EB03FE90380FFF80013F13E090B512F04814F83903FE03FC3807F800EA0FE04848137E
+5B48C7123EA2127E007FB512FEA4B612FC00FCC8FCA2127C127E1578007F14F8383F8001
+EBC003391FF80FF06CB512E06C14C0000114806CEBFE00EB1FF01F207A9F27>101
+D<EBFFC05AA37E1307130FA25CA4131FA2EC07F8EC1FFEEC7FFF91B512804914C0ECFC1F
+ECE00FECC0071480140049130F137E1680137CA301FC131FA2491400A400015CA249133E
+A33A7FFF87FFF0B500CF13F8A36C018713F0252E7FAD27>104 D<143814FE1301A46D5A
+147891C7FCA73803FFF0487FA37EEA00015CA41303A25CA41307A25CA4130FA25CA3007F
+B512C0B612E0A315C01B2F79AE27>I<90B5FC5AA37EEB001F5CA2143EA4147EA2147CA4
+14FCA25CA41301A25CA41303A25CA41307A25CA3007FB512F8B612FCA36C14F81E2E7BAD
+27>108 D<3A03F0FC07E03A07FBFE1FF090B5EA3FF8EDFFFCA2C690388FFC7C9039FE07
+F03C01FC13E001F813C0A23A01F00F807CA2167801E01300A300034913F8A2D9C01E13F0
+A40007EB3E01A2D9803C13E0A33A7FF0FF87FCD8FFF9EBCFFEA3D87FF1EB8FFC2720809F
+27>I<3903FE07F83907FF1FFEEC7FFF91B5128016C039003FFC1FECE00FECC007148014
+0049130F137E1680137CA301FC131FA2491400A400015CA249133EA33A7FFF87FFF0B500
+CF13F8A36C018713F025207F9F27>I<EB01FCEB0FFF013F13C090B512E04814F03903FC
+0FF83807F003390FE000FC1380001F147C48C7127E003E143EA25AA400FC147CA215FC00
+7C14F81401007EEB03F0A26CEB0FE09038801FC0391FE07F8090B512006C5B6C13F80001
+5B38007F801F207A9F27>I<3A07FF803FC0489038C1FFF002C713F802CF13FC6C90B5FC
+D8000F13E3ED03F89138FC01F09138F800604A1300495A5CA25CA291C8FC5BA2133EA413
+7EA2137CA3B6FCA526207D9F27>114 D<903807FF1C013F13FE90B5FC5A1207EBFC0139
+0FE000FC49137C5BA2153801E01300EA07FEEBFFF8000113FF6C6C13C0010F13E0903800
+7FF0EC03F8001C1301003EEB00FC157C007E14FC127FEC01F8EB80039038E01FF090B5FC
+B612C0158000F8EBFE0038703FF01F207B9F27>I<131E133FA2133EA4137EA2007FB512
+F0B612F8A36C14F0D800FCC7FC5BA41201A25BA41203A25BA2EC01E015F01403A2EC07E0
+140F9038F83FC090B5128015006C5B38007FF8EB1FC01D2979A827>I<397FC00FF839FF
+E01FFCA4000713004913F8A4000F1301A2018013F0A4001F1303A2010013E0A314075A14
+0F003EEB1FC0003F133FEB80FF90B512FE6C14FFA2000713EF0001EB07FE20207A9F27>
+I<3A01FFE01FFF486D5AA39138E01FFE3A001E0003C0A2011FEB0780A26DEB0F00A2151E
+148001075BA25DA26E5A1303ECC1E0A2ECC3C0EB01E3ECE780A202EFC7FC130014FEA25C
+A2147814F85C13015C13035C130700085BEA7E0F49C8FCEAFE3EEAF8FEB45A5B6C5AEA3F
+C06CC9FC28317F9F27>121 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmtt9 9 26
-/Fc 26 123 df<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA
-07FC121FEA3C1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97
-D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0E
-EA1DFCEA0CF81217809614>I<EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A4126012
-70EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA
-301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0
-EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F0
-0F107E8F14>I<13FCEA01FEEA038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F17
-7F9614>I<EA07CF381FFF80EA383B38301800EA701CA3EA3018EA3838EA3FF0EA37C000
-70C7FCA2EA3FF86C7E487EEA700F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F
-14>I<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206
-120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I<12FCA2121CA5EBFF80A2EB
-1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>107
-D<EAFF80A21203B3EAFFFEA20F177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FE
-FBE013791310808F14>I<EAFC78EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>
-I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E
-8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1D
-FCEA1CF890C7FCA6B47EA21218808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA
-700F1230EA1C3FEA0FF7EA07C7EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0E
-E3380F810090C7FCA2120EA8EAFFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EA
-F000EA7F80EA3FF0EA07F8EA001CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>
-I<1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3F
-A2EA1C07AB131F380FFFE0EA03E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5A
-A3EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA
-1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C
-5A12037FEA0770EA0E781338487E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005B
-A2120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC127E123C11187F8F
-14>I<EA3FFF5AEA700E131C1338EA007013E0EA01C0EA0380EA0700120EEA1C07123812
-70B5FCA210107F8F14>I E
+%DVIPSBitmapFont: Fd cmtt9 9 76
+/Fd 76 126 df<123C127E12FFAF127EAE123C1200A7123C127E12FFA4127E123C082F71
+AE27>33 D<00101320007C13F838FE01FCAAEAFC00007C13F8A900381370161778AE27>
+I<90383C03C090387E07E0A7EBFE0F01FC13C0A2007FB512FEB7FCA4003F14FE3901F81F
+80AC003FB512FEB7FCA46C14FE3903F03F00A200075BEBE07EA73803C03C202E7DAD27>
+I<EB0380497EA5EB1FF0EBFFFE0003EBFF804814C0001F14E09038E7DFF0393F87C7F838
+7E07C3007C13C100FCEBC0FC12F814C1A300FCEBC0F800FE1470007F14001387EA3FFF7E
+6C13F86C13FE6CEBFF80C614C0010F13E06D13F014CFECC3F814C10038EBC0FC127C00FE
+147CA412FC00FE14F8007E13C1007FEBC3F0383F87C79038F7FFE06CB512C06C14800003
+14006C13FC38003FE0EB07C0A56D5A1E3A7CB327>I<000F1470486C13F8383FC001EA7F
+E0140315F038FFF00700F914E0A2140F15C0A2141F00FF1480387FE03F1500A26C485A38
+1F807E380F00FEC75AA213015CA213035C13075CA2130F5C131F5CA2133F91C7FCA24913
+F090387E01F89038FE03FC9038FC07FEA212019038F80FFF0003149F13F0A2120713E0A2
+000F14FF9038C007FE121F1380EC03FC000FEB01F86CC712F0203A7DB327>I<131FEB7F
+C0497E5A80EA03F1EBE1F8EA07E013C0A513C15C9039C3F1FF80D9E3E113C03803E7E3EB
+EFC101FF1480913881F800EC01F0EA01FEEBFC0301F85B00031307D807FC5B120F381FFE
+0FD83FBE5BEB3F1FD87E1F90C7FC149F38FC0FBF14FE1307ECFC020103EB0F80EB01F8A2
+38FE03FC387E07FE397F1FFF9F6CB61200149F6CEB0FFE390FFC03FC3903F000F822307E
+AE27>I<120FEA1FC0123F13E0A213F0121F120F1201A4120313E01207EA0FC0A2EA3F80
+EA7F005A5A12F812700C1773AD27>I<EB01C0EB03E0130F131FEB3FC0EB7F80EBFE0048
+5A5B1203485A5B485AA2485AA248C7FCA3127EA45AAC127EA47EA36C7EA26C7EA26C7E7F
+6C7E12017F6C7EEB7F80EB3FC0EB1FE0130F1303EB01C0133A73B327>I<127012F812FE
+7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA27FA2EB1F80A3EB0FC0A4EB07E0ACEB0F
+C0A4EB1F80A3EB3F00A2137EA25B1201485A5B1207485AEA3FC0485A48C7FC5A12F81270
+133A7AB327>I<130F497EA60078EB81E000FEEB87F000FF138FEBDFBF6CB512E06C14C0
+000F1400000313FCC613F0A2000313FC000F13FF003F14C04814E039FFDFBFF0EB1F8F00
+FE13870078EB81E00000EB8000A66DC7FC1C207BA627>I<EB03C0497EAD007FB512FEB7
+FCA46C14FE390007E000AD6D5A20227DA727>I<120FEA3FC013E0EA7FF0A213F8A2123F
+A2120F120113F01203EA07E0121FEA7FC0EAFF8013005A12700D14738927>I<007FB512
+F8B612FCA46C14F81E067C9927>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A7289
+27>I<1538157C15FCA2140115F8140315F0140715E0140F15C0141F1580143F1500A25C
+147E14FE5C13015C13035C13075C130F5CA2131F5C133F91C7FC5B137E13FE5B12015B12
+035BA212075B120F5B121F5B123F90C8FC5A127E12FE5AA25A12781E3A7CB327>I<EB07
+E0EB3FFC497E90B5FC4814803903FC3FC03907F00FE0390FE007F0EBC003391F8001F8A2
+48C712FCA2003E147C007E147EA3007C143E00FC143FAC007E147EA46C14FCA2EB800100
+1F14F8EBC003000F14F0EBE0073907F00FE03903FC3FC06CB512806C14006D5A6D5AEB07
+E020307DAE27>I<130E131FA25B5BA25B5A5A127FB5FCA213BFEA7E3F1200B3AA003FB5
+12805A15C01580A21A2F79AE27>I<EB3FE03801FFF84813FE000FEBFF804814C0393FE0
+7FE0EB800F397F0007F0007EEB03F800FE13015A6C14FC1400A3127CC8FCA2140115F8A2
+140315F01407EC0FE0EC1FC0143FEC7F80ECFF00495A495A495A495A495A495A495A01FE
+C7FC485AD807F81378484813FC485A485A48B5FCB6FCA36C14F81E2F7CAE27>I<EC3F80
+4A7EA214FF5BA2EB03F7EB07E7A2EB0FC71487131FEB3F07A2137E13FCA2EA01F813F012
+03EA07E0A2EA0FC0EA1F80A2EA3F00123E127E5AB7128016C0A36C1580C73807C000A849
+B5FC491480A36D1400222F7EAE27>52 D<14FF010713C0011F13F04913F890B5FC48EB81
+FC3803FE0113F8EA07F0EA0FE09038C000F8001F1400485A90C8FCA25A127EEB0FF838FE
+3FFE48B51280B612C015E09038F80FF09038E007F890388001FC90C7FC15FE48147E157F
+153F5A7E127EA3127F6C147F157E6C6C13FE9038C001FC120F9038F007F83907F81FF06C
+B512E06C14C06C148090383FFE00EB0FF820307DAE27>54 D<121EEA7F80A2EAFFC0A4EA
+7F80A2EA1E00C7FCAC121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A20729F27>58
+D<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00C7FCAC120FEA3F8013C0127F13E0A3123FA2
+120F120713C0120FA2EA3F80EA7F005A5A12F812700B2A739F27>I<153815FC14011407
+140FEC3FF8EC7FE0ECFFC001031300495AEB1FF8495A495A3801FF804890C7FCEA0FFC48
+5AEA7FF0EAFFC05BA27FEA7FF0EA1FF86C7EEA03FF6C7F38007FE06D7E6D7EEB07FE6D7E
+010013C0EC7FE0EC3FF8EC0FFC14071401140015381E287CAA27>I<007FB512FEB7FCA4
+003F14FEC9FCA6003FB512FEB7FCA46C14FE20127D9F27>I<127012FC7E6C7E7FEA7FF0
+EA1FF86C7EEA03FF6C7F38007FE06D7E6D7EEB07FE6D7E010013C0EC7FE0EC3FF8EC0FFC
+1407A2140FEC3FF8EC7FE0ECFFC001031300495AEB1FF8495A495A3801FF804890C7FCEA
+0FFC485AEA7FF0EAFFC05B48C8FC5A12701E287CAA27>I<EB03F0497EA2497EA4143CEB
+1F3EA5EB3F3FA3EB3E1FA2017E7FA4496C7EA548486C7EA390B5FCA24880A3EBF003A248
+486C7EA4000F803A7FFC0FFF8000FF15C06D5A497E007F1580222F7EAE27>65
+D<007FB5FCB612C08115F87E3907E003FCEC00FE157E157F81A6157EA25D1403EC0FF890
+B55A15C015F081819038E000FE157FED3F80151FA2ED0FC0A6151F1680153FED7F004A5A
+007FB55AB65A5D15E06C1480222E7FAD27>I<903803F80E90381FFE1F90383FFFBF90B6
+FC5A3803FE0F3807F803497E48487E485A49137FA248C7123FA25A127E151E150012FE5A
+AA7E127EA2151E007F143F7EA26C7E157F6D137E6C6C13FE3907F001FCEBF8033903FE0F
+F86CB512F06C14E0013F13C06D1300EB03F820307DAE27>I<387FFFFC14FFB612C06C80
+813907E00FF81407EC01FC6E7EA2157E157F811680151FA316C0150FABED1F80A3153F16
+00A25D15FEA24A5A4A5A140F007FB55A5DB65A6C91C7FC14FC222E7FAD27>I<007FB612
+80B712C0A37E3907E0000FA6ED078092C7FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91
+C8FCA4ED03C0ED07E0A7007FB6FCB7FCA36C15C0232E7FAD27>I<007FB61280B712C0A3
+7E3907E0000FA6ED078092C7FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387F
+FF80B57EA36C5B222E7EAD27>I<903807F03890381FFC7C90387FFFFC90B5FC5A3803FC
+1F3807F00F380FE007EBC003001F13011380123F90C7FCA2127EA2157892C7FC5AA8EC1F
+FF4A1380A3007E6D1300EC00FCA36C1301A21380121FEBC003120FEBE0073807F00F3803
+FC1F6CB5FC7EEB7FFE90381FFC78D907F0C7FC21307DAE27>I<3A7FFE07FFE0B54813F0
+A36C486C13E03A07E0007E00AF90B512FEA59038E0007EB03A7FFE07FFE0B54813F0A36C
+486C13E0242E7FAD27>I<007FB512E0B612F0A36C14E039001F8000B3B2007FB512E0B6
+12F0A36C14E01C2E7BAD27>I<387FFFC080B5FC7E5CD803F0C8FCB3AAED0780ED0FC0A7
+007FB6FCA2B7FC7E1680222E7FAD27>76 D<3A7FF003FFE0486C4813F0A213FC007F6D13
+E000079038003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3EBC0F8A314
+78147CA2143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401A26C486C5A
+242E7FAD27>78 D<007FB5FCB612E081816C803907E003FEEC00FF81ED3F80151F16C015
+0FA6151F1680153FED7F005DEC03FE90B55A5D5D5D92C7FC01E0C8FCADEA7FFEB5FCA36C
+5A222E7FAD27>80 D<387FFFF0B512FE6E7E816C803907E01FF014076E7E1401811400A5
+14015D14034A5A141F90B55A5D5DA281EBE01F6E7E14076E7EA816F0EDF1F8A4397FFE01
+FBB5EBFFF08016E06C48EB7FC0C8EA1F00252F7FAD27>82 D<90387FC0E03901FFF1F000
+0713FF5A5AEA3FE0EB801F387F000F007E130712FE5A1403A3EC01E06C90C7FC127E127F
+EA3FC013F86CB47E6C13F86C13FE6CEBFF80C614C0010F13E0010013F0140FEC07F81403
+140115FC1400127812FCA46CEB01F8A26C130390388007F09038F01FE090B5FC15C01500
+00F85B38701FF81E307CAE27>I<007FB61280B712C0A439FC03F00FA60078EC07800000
+91C7FCB3AB90B512C04880A36C5C222E7EAD27>I<3A7FFE01FFF8B54813FCA36C486C13
+F83A07E0001F80B3AB6D133F00031500A26D5B0001147E6D13FE6C6C485A90387F87F814
+FF6D5B010F13C06D5BD901FEC7FC262F80AD27>I<3A7FFC03FFE06D5A00FF15F0007F15
+E0497E3A07E0007E00A46C6C5BA4EBF80100015CA46C6C485AA490387E07E0A56D485AA4
+011F5B149FA3010F90C7FCA5EB07FEA46D5AA26D5A242F7FAD27>I<3A7FFC03FFE06D5A
+00FF15F0007F15E0497E3A07F000FE0000035CEBF80100015CA2EBFC0300005CEBFE0701
+7E5BA26D485AA290381F9F80A3010F90C7FCA2EB07FEA26D5AA26D5AAF90381FFF80497F
+A36D5B242E7FAD27>89 D<387FFFF0B512F8A314F000FCC7FCB3B3ACB512F014F8A36C13
+F0153A71B327>91 D<127812F87EA27E127E127F7E7F121F7F120F7F12077F1203A27F12
+017F12007F137E137F7F80131F80130FA280130780130380130180130080147E147F80A2
+1580141F15C0140F15E0140715F0140315F8140115FC1400A2157C15381E3A7CB327>I<
+387FFFF0B512F8A37EEA0001B3B3ACEA7FFFB5FCA36C13F0153A7EB327>I<007FB512F8
+B612FCA46C14F81E067C7E27>95 D<13E0EA01F01207120F13E0EA1FC0EA3F00A2127E12
+7C12FC5AA4B4FC138013C0127FA2123F1380EA0F000C1773B227>I<3803FFC0000F13F0
+4813FC4813FF811380EC1FC0381F000F000480C71207A2EB0FFF137F0003B5FC120F5A38
+3FFC07EA7FC0130012FE5AA46C130F007F131FEBC0FF6CB612806C15C07E000313F1C690
+38807F8022207C9F27>I<EA7FE0487EA3127F1203A914FF01F313C090B512F08181EC81
+FE49C67E49EB3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6D
+EBFF009038FF83FEECFFFC5D5D01F313C02601E0FEC7FC232E7FAD27>I<EB0FFF017F13
+C048B512E04814F05A380FF807EA1FE0393FC003E0903880008048C8FC127EA212FE5AA6
+7E127EA2007F14F0393F8001F813C0381FE003390FF80FF06CB5FC6C14E06C14C06C6C13
+00EB0FF81D207B9F27>I<EC3FF04A7EA3143F1401A9EB0FE1EB7FFD48B5FC5A5A380FF8
+3F381FE00F383FC007EB8003EA7F00007E1301A212FE5AA67E007E1303A2127F6C1307EB
+800F381FE01F380FF03F6CB612C06C15E06C13FD38007FF9D91FE013C0232E7EAD27>I<
+EB0FF8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003F8EBC001D83F8013FC48
+C7FC127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D137E6C7E01F013FE39
+0FFC07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D9F27>I<EC1FF0ECFFF8
+4913FC4913FE5BEB0FF014C0011F137CEC8000A6007FB512F0B612F8A36C14F039001F80
+00B3A4003FB512C04814E0A36C14C01F2E7EAD27>I<153F90391FC0FF80D97FF313C048
+B612E05A4814EF390FF07F873A1FC01FC3C0EDC000EB800F48486C7EA66C6C485AEBC01F
+A2390FF07F8090B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC15E015F84814FE4880
+EB8001007EC7EA3F80007C140F00FC15C0481407A46C140F007C1580007F143F6C6CEB7F
+009038F807FF6CB55A000714F86C5CC614C0D90FFCC7FC23337EA027>I<EA7FE0487EA3
+127F1203A9147F9038F1FFC001F713F090B5FC8114C1EC01FCEBFE005B5BA25BB03A7FFF
+83FFE0B500C713F0A36C018313E0242E7FAD27>I<130F497E497EA46D5A6DC7FC90C8FC
+A7383FFF80487FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<EA7FE0
+7F12FF127FA21201A991383FFFC04A13E0A36E13C0913803F8004A5A4A5A4A5A4A5A02FF
+C7FCEBF1FEEBF3FCEBF7F8EBFFFC8080143F496C7E496C7E01F87FEBF0076E7E6E7E816E
+7E157E3A7FFFC1FFF002C313F8B512E36C13C316F0252E80AD27>107
+D<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C14F81E2E7CAD27>I<397F07
+C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001C013
+00A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701F813E36C4801C313002920819F
+27>I<387FE07F39FFF1FFC001F713F090B5FC6C80000313C1EC01FCEBFE005B5BA25BB0
+3A7FFF83FFE0B500C713F0A36C018313E024207F9F27>I<EB1FE0EB7FF83801FFFE487F
+481480390FF03FC0391FC00FE0393F8007F0EB00034814F8007E1301A248EB00FCA76C13
+01007E14F8A2007F1303393F8007F0A2391FE01FE0390FF03FC06CB512806C14006C5B38
+007FF8EB1FE01E207C9F27>I<387FE0FFD8FFF313C090B512F0816C800003EB81FE49C6
+7E49EB3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEBFF00
+9038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC387FFF80B57EA36C5B23317F9F
+27>I<90380FF03C90383FFE7E90B5FC000314FE5A380FFC1F381FE007EBC003383F8001
+48C7FC127EA200FE147E5AA67E007E14FEA2007F1301EA3F80EBC003381FE007380FF81F
+6CB5FC7E6C147E38007FFCEB0FF090C7FCAC91381FFFF8A24A13FC6E13F8A226317E9F27
+>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5FC39007FFE1F14F89138F00F80
+9138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67EA36C5C22207E9F27>I<9038FF
+F3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC07806C90C7FCEA7F8013FC383FFFF0
+6C13FC000713FF00011480D8000F13C09038003FE014070078EB03F000FC1301A27E1403
+6CEB07E0EBE01F90B512C01580150000FB13FC38707FF01C207B9F27>I<133C137EA800
+7FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415FE6D13FC1483ECFFF86D13F06D
+13E0010313C0010013001F297EA827>I<397FE01FF8486C487EA3007F131F00031300B2
+1401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87FE024207F9F27>I<3A7FFC0FFF
+80486C4813C0A36C486C13803A07C000F800EBE00100035CA2EBF00300015CA2EBF80700
+005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214FE6D5AA36D5AA26D5A22207E9F27
+>I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80001F00A36D5B0007143EA414F0
+EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8A2EBFF0F6C5CA3EBFE0790387C03
+E024207F9F27>I<393FFC1FFF486C5A168016006C487E3901F807E06C6C485A4A5A017E
+90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E143EEB3E3FEB7E1F90387C0F80
+01F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C486C1380A222207E9F27>I<3A
+7FFC0FFF80486C4813C0A36C486C13803A07E000F800000313015D13F00001130301F85B
+1200A26D485A137CA290387E0F80133EA2011F90C7FC5CA2130F149E14BE130714FC1303
+A25C1301A25CA213035CA213075C1208EA3E0F007F5B131FD87E7FC8FCEA7FFE6C5A5B6C
+5AEA07C022317E9F27>I<001FB512FE4814FFA490380001FEEC03FCEC07F8EC0FF0001E
+EB1FE0C7EA3FC0EC7F80ECFF00495A495A495AEB1FE0495A495A49C7FC485A4848131E48
+48133F485A485A485A485AB7FCA46C14FE20207E9F27>I<EC07F8EC3FFC14FF130315F8
+903807FE00EB0FF05C5CB0131FEB7F80EA3FFFB5C7FC5BA27F003F7FEA007FEB1FC0130F
+B08080EB07FE903803FFF815FC1300143FEC07F81E3A7CB327>I<127812FCB3B3B3A212
+78063A70B327>I<EA7F80EAFFF013FC13FF7E00017F38003FC0131F130FB080EB07F8EC
+FFF06D13FC7FA25B4913F0ECF800EB0FE05CB0131F133F48B45A007F90C7FCB5FC13FC13
+F0EA7F801E3A7CB327>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmti9 9 1
-/Fd 1 47 df<1230127812F0126005047C830C>46 D E
+%DVIPSBitmapFont: Fe cmss10 10.95 2
+/Fe 2 42 df<14FCEB01F8EB03F0EB07E0EB0FC0131F1480EB3F005B137E5B12015B1203
+A2485AA25B120FA25B121FA25B123FA448C7FCA712FEB3A2127FA76C7EA4121F7FA2120F
+7FA212077FA26C7EA212017F1200137E137F7FEB1F8014C0130FEB07E0EB03F0EB01F8EB
+00FC165A79C323>40 D<12FC127E7E6C7E6C7E7F12076C7E7F12016C7E7F137E137FA2EB
+3F80A2131F14C0A2130F14E0A2130714F0A4EB03F8A7EB01FCB3A2EB03F8A7EB07F0A414
+E0130FA214C0131FA21480133FA2EB7F00A2137E13FE5B485A12035B485A120F5B485A48
+C7FC127E5A165A7BC323>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmr9 9 24
-/Fe 24 122 df<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA6006A2EA70
-0EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA7FF80D187D
-9713>I<EA01F8EA0704EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEA
-F00EEAE0061307A31260A2EA7006EA300EEA180CEA0C38EA07E010187F9713>54
-D<1240EA7FFF13FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2
-120EA5120410197E9813>I<EA07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA
-1F30EA07C0EA03E0EA0CF8EA307CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07
-E010187F9713>I<EA07E0EA1C30EA3018EA700CEA600EEAE006A21307A31260EA700FEA
-3017EA1827EA07C7EA00071306130E130C12701318EA6030EA3060EA0F8010187F9713>
-I<39FFE1FFC0390E001C00AB380FFFFC380E001CAC39FFE1FFC01A1A7F991D>72
-D<EA0FC2EA1836EA200EEA600612C01302A3EAE0001270127EEA3FE0EA1FF8EA03FCEA00
-7E130E130713031280A3EAC0021306EAE004EAD818EA87E0101A7E9915>83
-D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F
-8F0011107F8F13>97 D<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
-07E00E107F8F11>99 D<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C
-5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE0
-00A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA0FCF3818718038303000EA70
-38A4EA30306C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA38
-1CEA07E011187F8F13>103 D<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF014
-1A809915>I<1218123CA212181200A612FC121CAE12FF081A80990A>I<EAFC7CEA1D8738
-1E0380A2121CAB38FF9FF01410808F15>110 D<EA07E0EA1C38EA300CEA700EEA6006EA
-E007A6EA6006EA700EEA381CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E038038
-1C01C0A2EB00E0A6EB01C01480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<
-EAFC78EA1D9CEA1E1C1308EA1C00ABEAFF800E10808F0F>114 D<EA1F20EA60E0EA4020
-12C0A2EAF000127FEA3FC0EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F
-0F>I<1208A41218A21238EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38
-FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>
-118 D<38FE3F80383C1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA
-181CEA381E38FC3FC012107F8F14>120 D<38FF0F80383C0700EA1C061304A26C5AA26C
-5AA3EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I
-E
+%DVIPSBitmapFont: Ff cmbx10 12 27
+/Ff 27 123 df<ED1FFF0203B512E0021F14F8027F80903A01FFF803FE499038C0007F01
+0F90390001FF80D91FFC497F4A5B495A495AA201FF4A7F4A6D5BA3705B7090C7FC705A94
+C8FCA693387FFFE0B9FCA5C601E0C7FCB3B0007F9026FFC07FEBFFC0A53A467EC540>12
+D<92381FFF800203B5EAF3E0021F14FF147F903901FFF80149EBC00390390FFE0007495A
+5C495A495AA201FF804A7F82ACB9FCA5C601E0C7FCB3B0007F9026FFC07FEBFFC0A53A46
+7EC540>I<903801FFF8011FEBFF80017F14E090B612F8489038807FFC3A03FE001FFE48
+6CEB07FF486E7F0280806F7FA36F7F6C90C7FCA26C5AEA00F890C8FCA2150F021FB5FC01
+03B6FC131F017F13C03901FFFC004813E0000F13804890C7FC485A5B485AA2485AA45DA2
+6C6C5BED07BF6C6C010F13FC6CB490391F3FFFE06C9026C0FE1F13F06CEBFFFC6CECF007
+C66CD9E00113E0010790C9FC342F7DAD38>97 D<EB7FC0B5FCA512037EB1ED1FFC92B512
+C002C314F002CF14FC9139DFF01FFF9126FF800713809126FE000113C04A6D13E002F015
+F04A147F18F8173F18FCA2EF1FFEA318FFAB18FEA3173F18FCA218F8177F6E15F06EECFF
+E06E4913C06E49138091263F800F1300903AFE1FE03FFE496CB55AD9F80314F049C61480
+C8D81FF8C7FC38467DC440>I<EC3FFE49B512E0010F14F8013F8090397FF807FE9039FF
+E001FF484948138048018014C048495A485A121FA2485A6F1380A2007F6E130049EB007C
+93C7FC12FFAC127F7FA2123FEE03E06C7E16076C6C15C06C150F6C6DEB1F806C6DEB3F00
+6C01F013FE90397FFE03FC6DB55A010F5C010314C09026003FFCC7FC2B2F7CAD33>I<EF
+FF804BB5FCA5ED000782B1EC1FFC49B51283010F14E3013F14F390267FFC07B5FC9038FF
+F0004801C0133F48497F4890C77E484880121F5B123FA2127F5BA312FFAB127FA36C7EA2
+121F7F000F5D6C6C5C5E6C6D90B512C06CD9E00114FF39007FF80F6DB512E7010F14C701
+0314079026003FF0EBFC0038467CC440>I<EC1FFE49B512C0010714F0011F14FC90397F
+FC0FFE903AFFE003FF804849C613C0485B4890C7EA7FE048ED3FF0485AEE1FF8485AA200
+7F150F4915FCA212FFA390B7FCA317F801F8C9FCA5127FA27FA2003F1638177C6C6C15FC
+A26C6CEC01F86C6D13036CED07F06C6DEB0FE06C01F0EB3FC0903A3FFE01FF806DB5EAFE
+0001075C010014F0020F90C7FC2E2F7DAD35>I<913801FFC0021F13F0027F13FC49B57E
+49EBC3FF903807FE074948481380EB1FF8EB3FF0EB7FE0A349486C13006F5A6F5AED0070
+93C7FCAAB612FCA5C601E0C8FCB3B0007FEBFFE0A529467DC523>I<902601FFF013FF01
+0FD9FE031380013FD9FF8F13C090B812E048D9C07F13BF489039001FF83F4848EB0FFC48
+48EB07FE001F9238FF1FC0496DEB0F8094C7FC003F82A7001F93C7FCA26D5B000F5D6C6C
+495A6C6C495A6C9038C07FF04890B55A1680D8078F49C8FC018113F0D80F80CAFCA47F7F
+13F890B612E016FEEEFFC06C16F0836C826C82831207481780D81FF8C77ED83FE0140748
+48020113C000FF8149157FA56D15FF007F17806D5C6C6C4A1300D81FFCEC0FFE6CB4EC3F
+FC6C9039E001FFF8000190B612E06C6C1580010F02FCC7FCD9007F138033427DAC39>I<
+EB7FC0B5FCA512037EB1923803FF80031F13F0037F7F92B57E9139C1FC1FFE9139C3E00F
+FF9126C7C0077FECCF0002DE7F02FC81A25C5CA35CB3A7B600C1B61280A539457CC440>
+I<13FCEA03FF4813804813C0A24813E0A66C13C0A26C13806C1300EA00FC90C7FCA9EB7F
+C0EA7FFFA512037EB3AFB6FCA518467CC520>I<EB7FC0B5FCA512037EB293387FFFF0A5
+93380FF8004C5AEE3FC04C5A4B48C7FCED03FC4B5A4B5AED3FE0ED7F804BC8FCECC1FE14
+C7ECCFFF02DF7F91B57E82A202FD7F02F07F4A7F4A6C7E153F6F7E6F7F83816F7F6F7F6F
+7F83167F707E83B66CB512FCA536457DC43C>107 D<EB7FC0B5FCA512037EB3B3B3A3B6
+1280A519457CC420>I<90287FC003FF80EB07FFB5011F01F0013F13E0037F6D90B57E92
+B56C4880913DC1FC1FFE03F83FFC913DC3E00FFF07C01FFE00039026C7C00790398F800F
+FF6CD9CF00EC9E0002DE6D01BC7F02FC03F81580A24A5D4A5DA34A5DB3A7B600C1B60083
+B6FCA5582D7CAC5F>I<903A7FC003FF80B5011F13F0037F7F92B57E9139C1FC1FFE9139
+C3E00FFF00039026C7C0077F6CEBCF0002DE7F02FC81A25C5CA35CB3A7B600C1B61280A5
+392D7CAC40>I<EC1FFE49B512E0010714F8011F14FE903A7FF807FF809026FFE0017F48
+903980007FE04890C76C7E48486E7E000F8249140F001F82A2003F824980007F1780A400
+FF17C0AA007F1780A46C6C4A1300A2001F5EA26C6C4A5A00075E6D143F6C6D495AC69039
+E001FFC090267FF8075B6DB6C7FC010F14FC010114E09026001FFEC8FC322F7DAD39>I<
+90397FC01FFCB590B512C002C314F002CF14FC9139DFF03FFF9126FF800F138000039026
+FE000313C06C496D13E002F015F04A7FEF7FF8A218FC173F18FEA3EF1FFFAB18FE173FA3
+18FC177F18F817FF6E15F06E4913E06E4913C06E4913806E6C4813009238E07FFE02EFB5
+5A02E314F002E01480DB1FF8C7FC92C9FCADB612C0A538407DAC40>I<DA3FF8130F9026
+01FFFE5B010F6D6C5A013F6E5A90397FFC0FF0903AFFF003F8FF489038E000F94849137F
+48497F4890C7FC48815B003F815B127F82A25B12FFAB6C7EA3123F6D5C121F5E6C6C5CA2
+6C6D5B6C6D48B5FC6C6D5A6C9038F81FEF013FB512CF010F148F0103EBFE0F9038007FF0
+91C7FCAD0307B512FEA537407CAC3C>I<90397F803FC0B5EBFFF0028313F8028713FC91
+388FE7FE91389F8FFF0003EB9E0F6C13BCA214F8A29138F007FEED03FC9138E001F892C7
+FCA35CB3A5B612C0A5282D7DAC2F>I<90391FFE078090B512DF000314FF5A380FF80338
+1FE000D83F80133F127F90C7121FA248140FA27FA201E090C7FC13F8EBFFC06C13FEECFF
+C06C14F015FC6C806C806C1580000115C07E011F14E01301D9000713F014000078147F00
+F8143F151F6C140FA37E6C15E0151F6D14C06D133F01F0EB7F809039FC03FF0090B55A00
+FC5CD8F83F13F0D8F00790C7FC242F7CAD2D>I<EB01F0A51303A41307A2130FA2131FA2
+133F137F13FF1203000F90B512C0B7FCA4C601F0C7FCB3A3ED01F0AA017FEB03E014F815
+07D93FFC13C090391FFE1F806DB512006D5B01015B9038003FF024407EBE2D>I<D93FE0
+EC7FC0B549B5FCA50003EC00076C81B3A85EA35E6C5DA26E013D7F017F02F9EBFF809039
+3FFC03F16DB512E16D14C1010314019026003FFC91C7FC392E7CAC40>I<B690380FFFF8
+A5000301E0010013006C167C6E14FC6C5E801601017F5D6E1303013F5D6E1307011F5D6E
+130F6D5DED801F6D92C7FC15C05E6D143EEDE07E6D147CEDF0FC6D5C15F9027F5B15FF6E
+5BA36E5BA26E5BA26E90C8FCA26E5AA26E5AA26E5A352C7DAB3C>I<B5D8FE1FB539801F
+FFF0A500039027C0007FF0C7EAFE00043F157C6E6E14FC6C031F5D6E6E13016C61836E01
+3F1403017F606E496C1307013F606EED800F011F91B55C16F9DAFF01ECC01F6D02F092C7
+FC03816E5A6D0183153EEEE07F03C7ECF07E6DDAC03F137C03E7ECF8FC6D01EF5DEE801F
+03FF14FD6DDA000F5B18FF6E486D5BA36E486D5BA26E486D5BA2020F93C8FC4B7FA26E48
+147E6E48143C4C2C7DAB53>I<007FB590387FFFF8A5C601F890380FF8006D6CEB07E001
+3F4A5A6D6C131F6E495A6D6D48C7FC6DEBC0FE6DEBC1FC6DEBE1F8EDF3F06DEBFFE0806E
+5B6E5B93C8FC6E7F6E7F6E7FA24A7F4A7F4A7FEDBFFEEC3F1F91387E0FFF02FE8049486C
+7F49486C7F49487E49486C7F4A8049486D7E49C76C7ED9FF80131FB500F090B512FEA537
+2C7EAB3C>I<007FB5398007FFFCA5000101F0C7EA7F806CEE3E006E147E017F157C8017
+FC013F5D6E1301011F5D6E13036D5DED80076D5DEDC00F6D5D15E0161F6D92C7FC6F5A6D
+143EEDF87E027F137CEDFCFC023F5B15FF6E5BA36E5BA26E5BA26E5BA26E90C8FCA26E5A
+A2157CA215FC5D1401000F5C383FC003D87FE05B1407D8FFF05B140F5D141F4AC9FC387F
+E07E495A383F87F8EBFFF06C5B00071380D801FCCAFC36407EAB3C>I<001FB7128017C0
+A39026FE001F138001F05B49491300495C49495A48485A4A5B5E4A5B003E5B4A5B5E4A90
+C7FC5CC7485A5D495B5B495B5D499038C007C05B49138015004948130F01FF1580485B5C
+4849131F5A485B4A133F4849137F4815FF48EB000349011F1300B8FCA37E2A2C7DAB33>
+I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmss10 10.95 2
-/Ff 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
-AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
+%DVIPSBitmapFont: Fg cmtt10 12 29
+/Fg 29 119 df<147014F8497EA7007815F000FEEC03F800FF140701C1131F01E1133F01
+F913FF6CB612F0001F15C000071500000114FC6C6C13F06D5B010F1380013F13E0497F48
+B512FC000714FF001F15C0007F15F026FFF9FC13F801E1133F01C1131F0101130700FE14
+030078EC00F000001500A76D5A1470252B79B334>42 D<EC1FC04A7E4A7EA54A7E14FDA3
+01017FA214F8A201037FA4ECF07E0107137FA449486C7EA549486C7EA4013F80EC800FA4
+49486C7EA291B5FCA290B67EA49038FE000348486D7EA4000381491300A43B7FFF800FFF
+F0B56C4813F8A46C496C13F02D3E7DBD34>65 D<003FB712F04816F8B8FCA27E7ED801FC
+C71203A8EE01F093C7FCA5ED0F804B7EA590B6FCA69038FC001FA56F5A92C8FCA6177C17
+FEAA003FB7FC5AB8FCA27E6C16FC2F3D7EBC34>69 D<3B7FFFC007FFFCB56C4813FEA46C
+496C13FCD803F8C7EA3F80B3A290B7FCA601F8C7123FB3A53B7FFFC007FFFCB56C4813FE
+A46C496C13FC2F3D7EBC34>72 D<007FB612C0B712E0A46C15C0260003F8C7FCB3B3AD00
+7FB612C0B712E0A46C15C0233D78BC34>I<D87FFC90380FFFF0486C4913F87FA214806C
+6E13F000039138007E00EBF7C0A3EBF3E0A38013F1A28013F0A280A2147C147EA2143E14
+3FA2801580A2140F15C0A2140715E0A2140315F0A2140115F8A21400A215FC157CA2157E
+153EA3151FA3ED0FFE387FFF80B512C01507A215036C496C5A2D3D7DBC34>78
+D<90381FFFFC90B67E000315E04881488148813A3FFC001FFE01E0130349130148486D7E
+A290C87EA500FEED3F80B3AC6C157F6C1600A46D5CA26D5B003F5D01F0130701FE133F6C
+B65A6C5D6C5D6C5DC61580011F01FCC7FC293F7BBD34>I<007FB512C0B612F815FE6F7E
+826C812603F8007FED1FF8ED07FC15036F7E1500A28282A55E5EA215014B5A1507ED1FF8
+EDFFF090B65A5E5E93C8FC8282EBF800ED1FE06F7E1507A26F7EAA171FEF3F80A416FC03
+01137F267FFFC01500B56C6CB5FC5F167F705A6C496D5AC9EA07E0313E7EBC34>82
+D<D907FE137890391FFFE0FC017F13F848B512FD4814FF5A380FFE03391FF0007FD83FC0
+131F49130F007F140790C7FC4814035AA21501A46C6E5A6C92C7FC7F7F6C7E13F86CB4FC
+6C13F06C13FF6C14F06C14FE6C6C7F011F14C0010180D9001F7F02017F9138001FFC1507
+6F7E15016F7E821780A2003C153F127E12FEA46C157F1700A26D14FE6D13016D495A01FC
+13079039FFC03FF891B55A5E485DD8FC3F91C7FC010F13FCD8780013E0293F7BBD34>I<
+003FB712F04816F8B8FCA43AFE001FC003A8007CED01F0C791C7FCB3B3A4010FB57E4980
+4980A26D5C6D5C2D3D7DBC34>I<3B7FFF8003FFFCB56C4813FEA46C496C13FCD803FCC7
+EA7F80A26C6CECFF00A26C6C495AA26D5CEC8003013F5CECC007011F5CECE00F010F5CEC
+F01F01075CA2ECF83F01035CECFC7F010191C7FCA2903800FEFEA2EC7FFCA26E5AA26E5A
+A36E5AB349B5FC4980A46D91C7FC2F3D7EBC34>89 D<007FB7FCA2B81280A36C1600A229
+077B7D34>95 D<EB1FFE90B512C0000314F04880488081391FF807FF49C67F6F7E151F82
+6C48130F6C4880C81207A4EC01FF91B5FC1307133F90B6FC12034814074813C0381FFC00
+EA3FF0EA7FC05B48C7FC5AA56C140F7E6D131FD83FE0EB7FF8D9F807B512F86CB712FC7E
+000314FD6C14F06C6C9038C01FF8D90FFCC8FC2E2E7BAC34>97 D<EA7FFC487EA4127F12
+00ABEC01FE91380FFFC0023F13F04A13FC90B67E82030313809139F8007FC04AEB3FE04A
+131F4AEB0FF04A130791C713F8160317FC491401A217FE1600A916016D15FCA2160317F8
+6E130717F06E130F6EEB1FE06EEB3FC06EEBFF80ECFE0791B612004914FC6E5BD97E3F13
+E0D93C0F138090260003FEC7FC2F3E7FBC34>I<EC7FF80103B5FC010F14C0013F14E049
+14F090B6FC489038C01FF83903FE000F485A485A5B4848EB07F049EB03E0484890C7FCA2
+127F90C9FCA25A5AA97E7EA27F003F15F86DEB01FC6C7EA26C6C1303D807FCEB07F86C6C
+130F3A01FFC07FF06C90B512E06D14C06D1480010F1400010313FC9038007FE0262E79AC
+34>I<ED7FFC4B7EA4157F1500ABECFF80010313F0010F13F8013F13FE4913FF48B6FC48
+13C09038FE003FD807F8130F48481307484813035B003F14015B007F140090C8FCA25A5A
+A97E6C1401A27F003F14037F001F14077F6C6C130F6D131F6C6C137F2603FF81B512FC6C
+90B612FE6C5C6D5B011F13F001079038E07FFC010090C8FC2F3E7DBC34>I<ECFFC00103
+13F0010F13FC013F13FF49148090B612C04801C013E03A03FE001FF04848EB0FF8D80FF0
+13074848EB03FC1501485A49EB00FE127F90C8FC16FF167F5A5AB8FCA516FE48C9FC7E7E
+A27F123F6D143E001F157F7F6C7E6D14FF6C6CEB01FE6CB413076C9038E03FFC6C90B512
+F86D14F0011F14E06D14800101EBFE009038003FF0282E7BAC34>I<ED3FF0913801FFFC
+02077F4A7F4A14805CEC7FE015809139FF007F005C0101141C4A90C7FCA8003FB612FC48
+81B7FCA36C5D260001FCC8FCB3AD001FB612C048814881A26C5D6C5D293E7DBD34>I<EA
+7FFC487EA4127F1200AB15FF020713E0021F7F027F7F91B57E90B67E15819138FC00FF02
+F07F4A804A133F5CA291C7FCA35BB3A4277FFFFC0FB5FCB56C481480A46C496C1400313D
+7FBC34>104 D<14F0497E497E497EA46D5A6D5A6D5A91C8FCA9383FFFFC487FA47EC7FC
+B3AD003FB612F04815F8B7FCA27E6C15F0253E79BD34>I<383FFFFE487FB6FCA27E7EC7
+7EB3B3AD003FB612FE4881B81280A26C16006C5D293D7BBC34>108
+D<027FEB1FC03B3FE1FF807FE0D87FF39038E0FFF8B612E303F77F6C91B57E6C01C313F0
+00030181EBE07ED9FE01EB807F6E80491400A2495BA3495BB3A53C3FFF03FFC0FFF04801
+8701E113F8B500CF01F313FCA26C018701E113F86C010301C013F0362C81AB34>I<15FF
+267FFC0713E026FFFE1F7F027F7F91B57E90B67E6C1481C69038FC00FF02F07F4A804A13
+3F5CA291C7FCA35BB3A4277FFFFC0FB5FCB56C481480A46C496C1400312C7FAB34>I<14
+FE903807FFC0011F13F0017F13FC90B57E488048010113803A07FC007FC04848EB3FE049
+131F4848EB0FF0491307003F15F8491303007F15FC90C71201A300FEEC00FEAA6C14016C
+15FCA26D1303003F15F86D1307A26C6CEB0FF06C6CEB1FE06D133F6C6CEB7FC03A03FF83
+FF806C90B512006C5C6D5B011F13F0010713C0010190C7FC272E7AAC34>I<4BB4FC273F
+FFC00F13C048D9E03F13E0B590B512F002E114F86C13E76C01EF130FD8000F13F8ECFFE0
+9238C007F092388003E092C8FC5C5CA25CA25CA45CB1003FB6FC4881B77EA26C5D6C92C7
+FC2D2C7DAB34>114 D<90390FFF078090B5EACFC0000314FF5A5A5A383FF803397F8000
+7F90C7123F12FE48141FA47E007FEC0F8001C090C7FCEA3FF8381FFFE06C13FF6C14E06C
+14F8C614FE011F7FD9007F1380020313C09138003FE0ED0FF0003C1407007EEC03F800FE
+1401A27EA36D13036D14F06D13076DEB1FE001FE13FF90B612C016801600D8FC7F13FC6D
+13F0D878071380252E79AC34>I<EB01E0497E1307AA003FB612FE4881B8FCA36C5D2600
+07F0C8FCB3A3EE0F80EE1FC0A66EEB3F800103147F6E13FF902601FF031300EDFFFE6D5C
+6E5B6E5B020F13C0020190C7FC2A387EB634>I<D87FFCEB1FFF486C497FA4007F800000
+EC003FB3A7167FA216FFA26D5B6D1307DAE01F13FF6DB712807F7F6D143F0101D9FC1F13
+009026007FF0C8FC312C7FAA34>I<3B3FFFE00FFFF8486D4813FCB515FEA26C16FC6C49
+6C13F8D801FCC7EA7F000000157EA26D14FE017E5CA2017F13016D5CA2EC8003011F5CA2
+ECC007010F5CA2ECE00F01075CA36D6C485AA3ECF83F010191C7FCA26E5A0100137EA2EC
+FEFEEC7EFCA2147F6E5AA36E5A6E5A2F2B7EAA34>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmbx10 12 27
-/Fg 27 123 df<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2
-ECFF80B6FCA2380FC01FB2397FF8FFF0A21C237FA220>12 D<90380FFF80137F3801FC1F
-3803F03FEA07E0EA0FC0141FA7B6FCA2380FC01FB2397FF8FFF0A21C237FA220>I<EA07
-FE381FFF80383F07E06D7E130180121E1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA
-7C02EA7E0C391FF87F803807E03F19167E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF0
-3EEBC01F9038800F8015C0140715E0A715C0A2140F15809038C01F00381E707E381C3FFC
-38180FE01B237EA220>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC
-12FCA6127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<49B4FC
-A2EB003FAB13FE3807FFBF380FC1FF48C67E003E7F127E127CA212FCA7127C127E123E6C
-5B380F81FF3907FF3FE0EA01FC1B237EA220>I<13FE3807FF80380F83C0381E01E0383E
-00F0127E007C13F8147812FCB512F8A200FCC7FCA3127CA26C1318A26C1330380F80E038
-03FFC0C6130015167E951A>I<EB1F80EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC0
-00A6EAFFFEA2EA0FC0B2EA7FFCA214237EA212>I<9038FE0F803903FF9FC0380F83E338
-1F01F3391E00F000003E7FA5001E5BEA1F01380F83E0380BFF80D808FEC7FC0018C8FCA2
-121C381FFFE014FC6C13FF7E001F1480397C001FC00078130F00F81307A3007CEB0F806C
-EB1F00381F807E6CB45A000113E01A217F951D>I<B47EA2121FABEB83F0EB8FFCEB987E
-EBA03EEBC03FA21380AE39FFF1FFE0A21B237DA220>I<121E123FEA7F80A4EA3F00121E
-C7FCA6EAFF80A2121FB2EAFFF0A20C247EA30F>I<B47EA2121FABECFF80A2EC3C001430
-14E0EB81C00183C7FC1386139E13BE13FFEBDF80EB8FC01307806D7E6D7E130080147E39
-FFE1FFC0A21A237EA21E>107 D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F8
-03F890390FFE0FFE3A1F183F183F9039201F201F014001C01380A201801380AE3BFFF0FF
-F0FFF0A22C167D9531>I<38FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FF
-E0A21B167D9520>I<13FF000713E0380F81F0381F00F8003E137C48133EA300FC133FA7
-007C133E007E137E003E137C6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87
-F0EBBFFC381FF07EEBC01F9038800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EB
-F07EEBBFFCEB8FE00180C7FCA8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF38
-1F00DF48137F007E7FA2127C12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8
-903801FFE0A21B207E951E>I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000AD
-EAFFF8A214167E9518>I<3807F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA
-7FFE6C7E6C1380120738003FC0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812
-167E9517>I<487EA41203A21207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3
-EA07FEEA01F811207F9F16>I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01
-FC1B167D9520>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA2
-6C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3
-FF83FCA23A1F807C00E0D80FC014C08001E013010007017F1380A2D803F0EB0300ECCF83
-01F81387D801F913C61487D800FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118
-136026167F9529>I<39FFF07FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD8013
-7F91C7FC7F6D7E497EEB37E0EB67F013C33801C1F8380380FC48487E000E137F39FF81FF
-E0A21B167F951E>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035B
-A26C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC38
-13305BEA69C0EA7F80001FC8FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F
-00E0138038C03F005B137EC65A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB
-00E0EA7E03B5FCA214167E9519>I E
+%DVIPSBitmapFont: Fh cmsltt10 10.95 17
+/Fh 17 122 df<EC03C0EC07E0A2140F141FA2143FEC7FC014FF1303130F90B5FC5A4814
+8014BFEBFE3FEA01F8C7FC147F1500A55C5CA513015CA513035CA513075CA5130F5CA200
+7FB512F8B612FCA46C14F81E3976B830>49 D<EC07FC91383FFF8091B512E0010314F849
+80011F8090393FF80FFF90267FE0011380EC800049C7EA3FC05B0001151F4915E0120316
+0FA349141F1201D800E015C090C8FC163F1780167F17005E4B5A15034B5A5EED1FF04B5A
+4B5A4B5A4A90C7FC4A5AEC0FFC4A5AEC3FE0ECFFC0495B4990C8FCEB07FCEB1FF8495AEB
+7FC0495A000390C712F0D807FC497E48481303EA3FF048B6FCB7FCA35E6C5D2B397AB830
+>I<ED07FF4B13804B13C0A281819238003F80A4167FA21700A491387FC0FF903803FFF0
+010FEBFCFE4913FE017F13FF90B6FC48EBE07F48EB001F48486D5A49130748481303485A
+5B485A495C127FA290C7FC15075A485DA4150FA25E151F6C143F7E157F6D13FF6C6C485B
+EBE007261FF81F13FF6CB71280A26C14BF0001141F6CD9FC0F1300D91FE0C8FC2A397AB7
+30>100 D<EC1FE0ECFFFC010313FF010F1480013F14C04914E09039FFF03FF048EB800F
+3A03FE0007F8484813035B485A4848EB01FC5B123F5B127F90C7FC90B6FCA2B712F8A316
+F048C9FCA37E7EED03C06DEB07E0003FEC0FF07F6C6CEB1FE06DEB7FC0390FFE03FF6CB6
+12806C15006C14FC6C6C5B011F13E0010390C7FC262A79A830>I<EEFF80030713E0031F
+13F0157F92B512F85C4AEB07F0EC07FC03F813E091390FF001C04BC7FCA2141F5DA548B6
+12FE48815AA36C5DC7D87F80C7FC92C8FCA55C5CA513015CA513035CA513075CA2007FB5
+12FEB7FCA46C5C2D397CB830>I<913907F801FE913A3FFF0FFF804A13BF49B712C05B5B
+90260FFC0FEB1F8090271FF007F8130049486C6CC7FCECC001EB7F801400A25B5BA31503
+4B5A7F6D495A9138803FE090383FE0FF49B55A90B65A93C8FC4814FC01F913F09038F87F
+80000390CAFC5BA27F120190B512FCEDFF8016E04815F8488148813A1FF00007FFD83FC0
+1300498048C86C7E007E151F12FE5AA2163F94C7FC5E5E6C4A5AD87F80EB07FC6D131F3A
+3FFC01FFF86CB612E06C5D6C92C8FC000114FC6C6C13F0010F90C9FC323E7EA730>I<15
+E0EC03F8140781A35D6E5A6E5A91C8FCA990B512C048805AA27E7EEB001F5DA5143F5DA5
+147F92C7FCA55C5CA513015CA2007FB61280B712C016E0A216C06C1580233979B830>
+105 D<90383FFFF8497F81A37F90380001FCA514035DA514075DA5140F5DA5141F5DA514
+3F5DA5147F92C7FCA55C5CA2003FB612F04815F8B712FCA26C15F86C15F026387BB730>
+108 D<ED0FF03A01FFE07FFE4801F1B5FC4801F7148091B6FC6C16C06CECF03FD8000F90
+38801FE015004A130F14F8A24A131F494814C0A25CA3163F133F4A1480A4167F137F91C7
+1300A45E5B495CA23B7FFFF81FFFF8B56C4813FC5DA2816C496C13F82E287FA730>110
+D<EC1FE0ECFFFC010313FF010F14804914E0137F9039FFE07FF0489038800FF83903FE00
+0749EB03FC48481301484814FE491300485A123F5B167F48C8FCA300FE15FEA4150116FC
+A26CEC03F8150716F06C6C130FED1FE06DEB3FC06C6C137F3A1FF001FF80D9FC0713006C
+B55A6C14F86C5C6C14C06C6C90C7FCEB0FF8282A79A830>I<EE3FE03B01FFFC01FFF848
+D9FE0F13FC485C037F13FE6C91B5FC6C90B512E1D80001EC01FC15FC9238F000704B1300
+5D5D4990C8FC5CA25CA25C13075CA5130F5CA5131F5CA2007FB512FCB67EA46C5C2F287D
+A730>114 D<91387FF838903903FFFE7C011FEBFFFC5B5B90B6FC48EBC01F3903FC0007
+491303484814F85BA3ED01F06D90C7FCEA03FEEBFFF06CEBFF806C14F06D13FC011F13FF
+01071480D9007F13C0020113E0EC001F001FEC0FF06D1307003F1403A27FA21507486CEB
+0FE0151F6DEB3FC09039FC03FF8090B6FC1600B612FC00FC5C013F13E0267807FEC7FC26
+2A79A830>I<EB03C0497E80A3130F5CA5003FB612E04815F0B7FCA36C15E026003FC0C7
+FC5CA5137F91C8FCA55B5BA50001EC0F8049EB1FC0A3153F1680157F15FF6D4813009038
+FF07FE6CEBFFFC5D6D5B6D5B010F1380D903FCC7FC243378B130>I<D83FFCEB3FFC486C
+497E00FF14FFA2007F147F003F143F00011401495CA415031203495CA415071207495CA4
+150F120F495CA3151F153F001F147F4B5A000F5BD9F80F13FF90B712807EA26C149FC6D9
+FE0F1300D93FF0C8FC29287AA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C
+496C13E0D807E0C7EA7E00A35EA34B5AA34B5A143E147F4A485A13E1A249495A158FEBC7
+EF9138CF9F8014DF13CF029F90C7FC15BFEBDF8FEC0FBEA201FE13FE5D13FCA25D496C5A
+3903E003E02D2779A630>119 D<903AFFFE07FFF0486D4813F84816FCA26C16F86C496C
+13F0903A07F001FC006D6C485A6D6C485A4B5A6D6C485A4B5ADA7F7FC7FC157EEC3FFE6E
+5A5D6E5A5DA24A7E143F4A7EA2ECFCFCEB01F8903803F07E903807E07F49487E011F8090
+383F801FD97F007F01FE6D7E263FFFC0B5FC4801E11480B515C0A26C16806C01C014002E
+277DA630>I<90B53801FFFE4802837F481780A26C17006C02015B903A07E0001FC05F16
+3F6E91C7FCA20103147EA25E804B5A13014B5AA26E485AA20100495AA24B5AA2027E90C8
+FC5D153E157E157C143E5D143F5DA26E5AA25DA25DA2143F92C9FC5C147E14FE5C130100
+3C5B387E03F0EAFF07495A48485AEB7F80B5FC91CAFC13FC6C5AEA3FE0EA1F80313C7EA6
+30>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmtt10 12 27
-/Fh 27 119 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
-FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<1338137CA2136C13EEA313
-C6A2EA01C7A438038380A4380701C0A213FFA24813E0EA0E00A4481370387F01FC38FF83
-FE387F01FC171E7F9D1A>65 D<B512F8A3381C0038A51400A2130EA3EA1FFEA3EA1C0EA3
-90C7FCA3141CA5B512FCA3161E7E9D1A>69 D<38FF83FEA3381C0070AA381FFFF0A3381C
-0070AB38FF83FEA3171E7F9D1A>72 D<B51280A33801C000B3A6B51280A3111E7C9D1A>
-I<38FE03FE12FFA2381D8070A213C0121CA213E0A213601370A213301338A21318131CA2
-130C130EA21306A213071303A238FF81F0A21380171E7F9D1A>78
-D<EA0FFE383FFF804813C0EA7C07EA700100F013E0EAE000B1EAF001A2007013C0EA7C07
-EA7FFF6C1380380FFE00131E7D9D1A>I<EAFFFC13FF1480381C07C0EB01E0EB00F01470
-A414F0EB01E0EB07C0381FFF8014001480381C07C01301EB00E0A514E214E7A338FF807E
-A21438181E7F9D1A>82 D<3803F1C0EA0FFDEA3FFFEA7C0FEA700312E01301A390C7FC12
-701278123FEA1FF0EA07FE3800FF80EB0FC0EB01E013001470A2126012E0A214E0EAF001
-38FC03C0B5128000EF1300EAE3FC141E7D9D1A>I<387FFFFEB5FCA238E0380EA5000013
-00B33803FF80A3171E7F9D1A>I<38FF01FEA3381C00706C13E0A2380701C0A213830003
-138013C700011300A2EA00EEA2137CA21338AA48B4FCA3171E7F9D1A>89
-D<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA30073800
-0380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07
-F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB0038120E14
-1CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<EBFF8000
-0313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F01F0380F
-FFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0FFFEA1E0F
-EA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1161E7E9D
-1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7
-FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<EB07E0EB
-1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF804813C06C13
-80151E7F9D1A>I<12FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3
-FE13E713E3171E7F9D1A>104 D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80
-B512C06C1380121F7C9E1A>I<EAFFE0A31200B3A6B512E0A3131E7D9D1A>108
-D<EAFE3EEBFF80B512C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>
-110 D<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E000E0A6EAF0010070
-13C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>I<387F81F838FF8F
-FC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>114
-D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F
-9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387F
-C7FC00FF13FE007F13FC380E00E0A3380701C0A338038380A33801C700A3EA00EEA3137C
-A2133817157F941A>I E
+%DVIPSBitmapFont: Fi cmbx12 13.14 45
+/Fi 45 123 df<923803FFE092B512FC020714FF021F81027F9038007FC0DAFFF0EB0FE0
+010301C0804990C7EA3FF84948147F4A81494814FF495AA2137F5CA2715A715A715AEF07
+8094C8FCA8EF07FCB9FCA526007FF0C7123F171FB3B3003FB5D8E00FB512F8A53D4D7ECC
+44>12 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0101077
+8F22>46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B2007FB712
+E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC4881480101EBFF802707
+F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D7F00FF16FE
+6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D17E04B13C0
+17804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131FEC3F804AC7
+FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC5A5A5A5A5A
+5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F14FC013F14FF90267FE01F7F90
+26FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE817F486D80167FA3805C16FF7E91
+C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7FCED3FFC4AB45A49B512E01680
+16E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83A2701380A318C0EA07E0EA1FF8
+487E487EA2B5FCA31880A25E491600127F494A5A6C485D01E05B001F4A5BD80FFC495B27
+07FFC03F13C06C90B65AC64BC7FC013F14F8010714E09026007FFEC8FC32487BC63D>I<
+EE07E0160FA2161F163F167F16FFA25D5D5DA25D5D5DA2157D15FDEC01F915F1EC03E114
+07EC0FC1EC1F811501143F147E14FC14F8EB01F01303EB07E014C0EB0F80131FEB3F0013
+3E5B13FC485A485A5B1207485A485A90C7FC123E127E5AB912FCA5C80003EBE000AD023F
+B612FCA536487DC73D>I<D8038015E001E0140301FC143F9039FFE003FF91B612C01780
+1700A25E5E16F05E5E93C7FC15FC15F001E790C8FC01E0C9FCAAEC1FFC01E1B512C001E7
+14F001EF14FC9039FFE01FFFDA0007138001FC6D13C001F06D13E04915F0497F17F8C913
+FC167F17FEA417FFA3EA0FC0EA3FF0487EA2487EA317FEA34914FF6C4815FC5B018015F8
+6CC74813F07F6C6C4913E0D80FF04913C0D807FC011F13806CB46CB512006C90B512FC6C
+5D013F14C0010F91C7FC010113F030487AC63D>I<ED7FF8913807FFFE021F6D7E027F80
+903A01FFF01FE0010790388003F04948486C7E49486D7ED93FF013074948130F01FF4A7E
+4849133F5C5A4890C7FCA25A705A48486E5A705A003F92C8FCA3485AA21520913807FFE0
+021F13FC00FF497F4A6D7EDAFC017F9026FDF0007F4A6D7ED9FFC06D7E4A6D7E8391C7FC
+8382491680A318C05BA3127FA6123FA27F001F1780A3000F4B1300A26C6C5DA26C6D495A
+6C6D5C6C6D495A6D6C48485A90263FFC075B6DB65A6D4AC7FC01035C010014F0020F90C8
+FC32487BC63D>I<121F7F7F13FE90B812E0A45A18C0188018005F5FA25F485E90C8EA07
+E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B5AC8485A4B5AA24BC8FC157EA2
+5D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FFA3495BA45BA55BAA6D5BA26D90
+C9FCEB007C334B79C93D>I<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA
+1FF8EA07E0C7FCB0EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07
+E0103077AF22>58 D<EE01F8A24C7EA34C7EA24C7EA34C7FA24C7FA34C7FA293B57EA34B
+8016F303038016E316E103078016C0030F805E83031F814C7E4B81153E83037E81037C7F
+03FC815D830201824B7F0203825D830207824B7F020F825D84021F8392B8FC4A83A34A83
+027CC8120F02FC835C840101844A810103845C840107844A81010F845C85011F85496C82
+B600C091B712F0A5544D7CCC5D>65 D<B912F0F0FF8019F019FC19FFD8001F9026800001
+14C0DD001F7F060713F806017F726C7E737E737F737F737F8587737F8587A2747EA38786
+A21C80A51CC0A586A462A51C80A51C00A26263A2631AFF636163614F5B634F5B073F90C7
+FC4F5A4F5A06035B061F5B4DB512C0BBC8FC19FC19F0198006F0C9FC524B7CCA5E>68
+D<BB12C0A486D8000F01E0C77E18071801F0007F193F191F190F1907861903A31901A3EF
+0F80A2737EA497C7FC171FA2173F177F17FF160392B6FCA5EDE0031600177F173F171FA2
+050FEC0F80A3F21F00A494C8FC621A3EA21A7EA31AFE6219011903A21907190FF13FF819
+FF1803183FBBFCA262A3494A7CC951>I<BBFCA41A80D8001F01C0C7FC181F1803848419
+7F193F191F1AC0190FA31907A4171FF103E0A496C7FCA25FA25F5F5E160792B6FCA5EDC0
+071601828383A283A794C9FCB1B8FCA5434A7CC94D>I<B7D8FC01B712FCA5D8001F01C0
+C8001FEBC000B3AA92B9FCA503C0C8121FB3AEB7D8FC01B712FCA5564B7BCA60>72
+D<B712FEA5D8000FEBE000B3B3B3ABB712FEA5274B7DCA2E>I<B8FCA5D8001F01C0C9FC
+B3B3A4193EA4197E197CA519FCA31801A2F003F8A21807180F181F183F187FEF01FF1707
+173FBA12F0A53F4B7BCA4A>76 D<B600E04DB612806F5FA26F5FA2D8001F09FCC7FC6FEF
+0F7FA2DABFFE171EA2DA9FFF173CA3028F6D1678A202876D16F0A202836DED01E0A30281
+6DED03C0A202806DED0780A26F6CED0F00A36F6C151EA26F6C5DA26F6D5CA26F6D5CA36F
+6D495AA26F6D495AA26F6D495AA3706C49C7FCA2706C131EA2706C5BA3706D5AA2706D5A
+A270EBE1E0A370EBF3C0A270EBFF80A27190C8FCA2715AA3715AA2715A497EB600F06D48
+0103B71280A3715A715A694B7BCA74>I<B600E092B612FC8181A281D8001F6D9239001F
+E0006F705A82A28202BF7F029F7FA2028F7F02877F02837F8214810280806F7F6F7F8381
+6F7F6F7F6F7F83816F80707F707F8482707F707F707FA2707F7014807113C019E0837113
+F07113F87113FC19FE837113FF71148F7213CF1AEF847213FF8484A284848485A2858585
+A285858585497EB600F8167F1A3F1A1F1A0FA2564B7BCA60>I<DA7FFCEB01C00103B5EA
+C003011FECF00749ECFC0F90B7121F48D9E00F13BF4890C713FFD807FC141F4848804848
+140382484880177F485A173F171F12FFA2170F7FA217077F7F7F6D92C7FC6D7E6C13F014
+FF15F86CECFF8016F86C15FF6C16C0836C826C826C826C82013F816D1680010716C01300
+020F15E01400030714F0ED007F160F16037013F882177F127800F8163FA3171FA27E18F0
+A27EA26CEE3FE07F18C001E0157F6DEDFF8001FC160001FF140302E0EB0FFED97FFEEB3F
+FC486CB612F0D8FC0F5DD8F803158048C66C49C7FC48010313F0354D79CB44>83
+D<B700F8023FB512F8A5D8001F01C0C9380FE000745AB3B3AD6D180F63811A1F6D96C7FC
+626D7F1A7E6D7F6D606E6C4B5A6E6CED07F06E6C4B5A6E01C0EC3FC06E01F049B45A0201
+01FF011F90C8FC6E91B55A033F15F8030715E0030092C9FC040713F0554C7CCA5E>85
+D<B7D8E007B791B612C0A5D8003F0180C7000101FCC9387F80006F7070C7FC6D70183EA2
+6F70167E6D71177C876F1BFC6D715F6F831E016D656F4B6D14036D65876F92B515076D65
+6F4A8007F3160F6E647001036E141F6E04E194C8FCA27001076E5C6E04C0163E8770010F
+177E6E4C6C157C70011F814F6C15FC6E637049EDC0016E033E6D5D1CE070017E16036E03
+7C6D5D7001FC15F04E6D14076E63DCFF01EEF80F6F4A6D5DA20583EEFC1F6F4A6D92C9FC
+1CFE05C75F6F4A6D143E05EF16FF4E6E137E6F197C05FF17FC6F91C86C5BA36F496F5BA2
+4D816F61A26F496F5BA370486F5BA370486F90CAFCA24D81041F5FA27048167C7A4C7ECA
+7F>87 D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFF2703FC00077F486C6D7F
+486C6D7F6E7E83707EA3707E6C90C7FC6C5A6C5AC9FCA4ED1FFF021FB5FC49B6FC130F01
+3FEBC03F9038FFFE00000313F04813C04890C7FC485A485AA2485AA2485AA4167FA26D14
+FF007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038E07F076C9038FFFE03
+00014A7ED8003F9038F0007F0103018090C7FC37337CB13C>97 D<EB7FC0B5FCA512037E
+B3A2ED0FFF037F13F002C1B512FC02C714FF9126CFF80F7F9126FFC00113E092C76C7E02
+FC6E7E4A6E7E5C4A6E7E84831980A219C083A319E0AC19C0A25F1980A34D1300606E141F
+606E4A5A6E4A5A02BF4A5A91261F80035B9027FE0FF01F5B496CB548C7FC496C14F849C6
+14E0C8D80FFEC8FC3B4D7CCB44>I<91380FFF8091B512F8010314FF010F158090263FFE
+0013C0D97FF8EB1FE0D9FFE0EB3FF04849EB7FF8484913FF4890C7FC5A5B121F5B003FED
+7FF0EE3FE0007FED1FC093C7FC5BA212FFAC127F7FA2123FA26D153E121F6D157E6C167C
+6C6D14FC6C16F86C6D13036C01F0EB07F0D97FFCEB1FE06DB4EBFFC0010F90B512000103
+5C010014F0020F13802F337CB137>I<EF1FF0EE3FFFA51600177FB3A2EC0FFF91B512E0
+010314F8010F14FE013FEB01FF903A7FF8003FFFD9FFE0130F48497F48497F4890C77E48
+81485AA2485AA3127F5BA212FFAC127FA37F123FA2121F7F000F5D6C6C5C5E6C6D5B6C01
+E0497F6C6D017FEBFFE090393FFE03FE6DB512F801075C010114C09027001FFC00EBC000
+3B4D7CCB44>I<EC0FFF91B512F0010314FC010F14FF90263FFE077F90267FF0007F4948
+EB3FE04801806D7E48824890C76C7E4848140783485A003F6F7EA3485A701380A312FFA2
+90B8FCA401F8CAFCA5127FA27FA2123FA26C6CED0F80A2000F161F6C6C16006E5C6C6D14
+7E6C6D5C6C6D495AD97FFCEB07F0903A1FFF803FE06D90B55A010392C7FCD9007F13FC02
+0713C031337DB138>I<ED7FE0913807FFFC021F7F027F7F902601FFE0138049018113C0
+902607FE0113E049485A14F8131FEB3FF0A26F13C0EB7FE06F1380EE3E0093C7FCADB77E
+A526007FF0C8FCB3B3A2003FB512F8A52B4D7DCC26>I<DA7FFCEB0FF00103B538807FF8
+011F9138F1FFFC4991B512FE90267FF01F13F32701FFC007138348EB0001A248486DEBC1
+FC000FEEE0F849027F1300A2001F82A8000F5EA26D14FF00075E6C6C495BA26CD9C00790
+C7FC6C9038F01FFC4890B55A5ED803C314809026C07FFCC8FC000790CAFCA47FA27F13FC
+90B612FCEEFFC06C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13
+F8D83FF0140049153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3F
+F06C6CED7FE0D80FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15
+F001071580D9003F01F0C7FC37487DB03D>I<EB7FC0B5FCA512037EB3A2923801FFC003
+0F13F8033F13FE4B7F9126C1FE077F9126C3F0037F9138C7C001DACF8080150002DE7F02
+FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B4C7BCB44>I<13FCEA03FF487F487FA248
+7FA66C5BA26C5B6C90C7FCEA00FC90C8FCACEB7FC0B5FCA512037EB3B3B61280A5194D7B
+CC22>I<EB7FC0B5FCA512037EB3B3B3AAB61280A5194C7BCB22>108
+D<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D010F804B6D6C4814E0DBFE0790
+26C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F8806CDA8000D9F1E06D7E02CFC7
+EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5DA34A5DB3A9B6D8C03FB5D8F0
+0FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F
+9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8
+C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103B6FC010F15C090261FFE017F
+903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817804980000F17C048486E13E0
+A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C
+000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB6
+12C0010392C7FCD9007F13F80207138036337DB13D>I<90397FC00FFFB5017F13F002C1
+B512FC02C714FF9126CFF80F7F9126FFC00313E0000391C77F6C01FC6E7E4A6E7E5C4A6E
+7E848319808319C0A47113E0AC4D13C0A319805FA219004D5A804D5A6E4A5A6E4A5A02FF
+495BDB80075B9126EFF01F5B02E7B548C7FC02E314F802E014E0DB0FFEC8FC92CAFCAFB6
+12C0A53B467CB044>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E11380EC8F8300
+03D99F0713C06C139E14BCA214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7B612E0A5
+2A317CB032>114 D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0003F4848
+130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC015F06C14
+FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F14019138003FFE150F
+0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE001FFEBFF
+C091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>I<14F8A61301A41303A2
+1307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3A6167CAA
+013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C1300EC0FFC
+26467EC430>I<D97FE0EC3FF0B5EC7FFFA5000315016C81B3AB5EA25EA25E7E6EEB0F7F
+017F021E7F6E017CEBFFE090393FFE01F86DB512F0010714E0010114C09027003FFE00EB
+C0003B327BB044>I<B66C90B512C0A5000101E0C73807F0006E5D6C5F6E140F017F5E80
+171F013F93C7FC6E5C011F153E6E147E6D157C6F13FC6D5DEDC001A26D01E05B16036D5D
+EDF0076D5DEDF80F027F5CEDFC1F023F91C8FC15FE5E021F133EEDFF7E6E137C16FC6E5B
+A26E5BA36E5BA26E5BA26F5AA26FC9FCA23A317DAF41>I<B60081B500FC90387FFFF0A5
+00019026E000030180903803FC006E715A6C6F5E6E6F1303017F61A26E496D1307013F61
+6E6F130F011F4A5EA26E6F131F6D4A93C7FCDD9FFC5B6DD9801F153E170F03C06E137E6D
+023F157C93383E07FFDBE07E15FC6DDA7C035C03F015816D02FC5D4C7E03F815C3DA7FF9
+5E9226FDF00013E7DA3FFF5E4C137F19FF6E5F4C7FA26E496D90C8FCA26E5E93C7120FA2
+6E486E5AA202015E4B1403A26E486E5A54317EAF59>I<B6D88007B512C0A526007FFCC7
+387F8000013F037EC7FC6E14FE6D6C495A6D6D485A6D6D485A6D01E05B4C5A6D6D485A6D
+EBF83F6E6C48C8FC91383FFEFE6E6C5A5E6E5B6E5B806E7FA26E7F82824A7F5C4A80DA0F
+E77FDA1FC37FDA3F817F4AC67F147E4A6D7E49486D7E01036E7E49486D7F49487F494881
+49486D7F017F6E7FB500F8011FEBFFF0A53C307EAF41>I<007FB500C090387FFFE0A5C6
+01F0C73803F8006E5D017F5E6E1407013F5E6E140F011F5E6E141FA26D6D91C7FC5F6D15
+3E6F137E6D157C6F13FC6D5DEDF0016D5DEDF803027F5C15FC1607DA3FFE5B160F021F5C
+EDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E5BA26F5AA26F5AA26F5AA393C9FC5D
+153E157E157CD81F8013FC486C5B387FE001D8FFF05B14035D14074A5A49485A007F49CA
+FCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B467EAF41>I<001FB712FCA4DA0001
+13F801F84913F001E04913E05B494913C04B138048C7481300A24B5A4B5A003E495B5C5E
+4A5B4A5BC7485BA24A90C7FC4A5A4A5AA2495B4949137C495BA2495B495B4990C712F85B
+5C495A48491301485BA248491303484913074849130F161F4890C7EA7FF04848EB03FFB8
+FCA42E307DAF37>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 13.14 41
-/Fi 41 123 df<EB07FCEB3FFF9038FE0780D803F013C03807E00FA2EA0FC0A3EC030091
-C7FCA3EC7FE0B6FCA2380FC007B3A239FFFC7FFEA21F267FA522>12
-D<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA21200B3AA387FFF
-FCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14
-FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370
-EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48
-B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8
-EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214
-FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F8
-1301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A12
-705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF8
-14F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC712
-7EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE0018
-237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA2007E13
-3C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E123F
-6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512C0A2
-15804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25B
-A213F8A41201A66C5A13601A257DA41F>I<141CA2143EA3147FA24A7EA39038019FC0A2
-9038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FCA290
-39E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229257E
-A42E>65 D<B612E015FC3903F800FFED1FC0ED07E06F7E6F7E82150082A2167FA31780AA
-1700A316FEA24B5A5E4B5A4B5AED1FC0EDFF80B648C7FC15E029257EA42F>68
-D<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFE
-A2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428
->I<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F
-8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FC
-A29038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A2
-13257EA417>I<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FC
-B6FCA220257EA425>76 D<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C
-130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3
-EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>
-I<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>83
-D<B53B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D49
-6C1338000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E013
-8190280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14
-FC6D486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>87
-D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
-00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
-D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
-A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
-7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
-EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
-0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
-FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
-12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
-17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
-C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
-007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
-13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
-FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
-07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
-C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FB3B0EAFFFCA20E26
-7EA511>108 D<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E8
-03F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80
-390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803
-FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A238
-1F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F0
-07E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038
-CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC
-13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA70
-01EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212
-E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F
-121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39
-FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<
-39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC0000
-5B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A239
-0FC00F003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F8
-1361EBE0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
-D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
-005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
-1370EA68E0EA7FC0001FC8FC1D237F9720>I<387FFFF8A2387C03F0EA700738600FE000
-E013C0EB1F80EAC03F1400137EEA00FE5B485A0003130C13F0EA07E0120FEBC01C381F80
-18003F1338387F0078387E01F8B5FCA216187E971B>I E
+%DVIPSBitmapFont: Fj cmsl10 10.95 29
+/Fj 29 122 df<9339FFC003F8030F9038F01FFE923A3FC07C7E0F923BFE001FF81F80DA
+03F890383FF07F4A48D9FFE013C0EC1FE04A4848EBC0FF03804A1380DA7F00157F4A9238
+003E004A6D91C7FC8301015D4A5CA4160113034A5CA416030007B812FCA3290007F00003
+F8C8FCA21607130F4A5CA4160F131F4A5CA4161F133F4A5CA4163F137F91C75BA4167F5B
+4992C9FCA31201486C49487EB5D8F83F13FF5DA242407EBF35>11
+D<EEFF80030F13F092383FC0789238FE001CDA03F8130E4A48133FDA1FE013FF4A5A4B5A
+EC7F005C5CEE00FE010115784A1400A513035CA4EE01FC0003B7FC17F8A23A0007F0000F
+1607A2130F4A14F0A4160F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F
+5B491500A31201486C903801FF80B5D8F83F13FCA25D30407EBF33>I<140E141E143EA4
+143CA3000FEC01E03A1F803803F001C0130F01F0EB1FE0D807F8EB7FC03A01FC70FE0039
+00FE73F890383F77E090380FFF80D903FEC7FCEB00F0EB03FCEB1FFF90387EEFC03901FC
+E7F03907F0E3FC391FE0E1FF3A7F81E07F80903801C03F00FC141F0078EC0F00D8200390
+C7FC1200A31307A35C91C8FC242774C32D>42 D<157015F014011407143F903803FFE013
+7FEBFFCFEBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513035CA513
+075CA5130F5CA3131F497EB612F8A31D3D78BC2D>49 D<EC01FE91380FFFE0023F13F891
+38FC07FC903901E001FE903907C000FF49C7EA7F80011E15C0163F4915E05B0170141F13
+FF80A35A163FA26C90C7FC137E0118EC7FC090C8FCEEFF80A24B1300A24B5A5E4B5A4B5A
+4B5A5E4B5A4BC7FC15FEEC01F84A5A4A5A4A5A4AC8FC143E5C5CEB01E04948130E49485B
+49C7FC131E495C13705B48485C484814F0000FB6FC5A485D5AB7FC5EA22B3D7CBC2D>I<
+903801FFF8A4ECE000495AA6495AA649C7FCA6131EA65BA65BA65BA6485AA6485AA6485A
+A648C8FCA6121EA65AA65AA4EA7FFEA2485AA21D5B7BC319>91 D<903801FFF8A490C712
+7815F0A6EC01E0A6EC03C0A6EC0780A6EC0F00A6141EA65CA65CA65CA6495AA6495AA649
+5AA649C7FCA6131EA4EA7FFEA2485AA21D5B83C319>93 D<EC7FC0903803FFF890380FC0
+7E90383E003F496D7E01FF6D7E82A248140782A26C5A137890C7120FA25EA2EC03FF147F
+903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848133F485A003F5D49EC81C048C7
+FCA2157F48ED03804814FFA2007F5B913903BF0700903880073F3A3FC00E1F8E260FE03C
+13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97 D<EC1FF0ECFFFE903903F01F809039
+0FC003C0D93F0013E0017E130F49131F000115F04848EB3FE0485AA24848EB1FC0001FEC
+0F004990C7FC123FA2485AA412FF90C9FCA96CEC0380150716006C6C5B151E001F5C6C6C
+5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0FF0242A7AA828>99
+D<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0A491380FF03FECFF
+FC902603F81F138090390FC007BF90391F8003FF90387E0001497F0001157F4848150048
+5A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E1507A26C4A5A7F00
+1F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE0FD90FF0EBE0002D
+407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F000F80017E14C049EB
+07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FCA2D8FF80C8FC90C9
+FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B6C6C485A3900FC07
+C0D93FFFC7FCEB07F8242A7BA828>I<ED07F0ED3FFCEDFC1E913803F03F4A48B4FC4A48
+1380141FEC3F81DA7F0113008102FE137C93C7FCA213015CA513035CA50007B512F8A326
+0007F0C8FCA3130F5CA5131F5CA5133F5CA5137F91C9FCA55B5BA4EA03FF007F13FEB5FC
+A229407DBF1C>I<177C913907F803FE91393FFE0F8F9139FC0F9C3F903901F007F89039
+07E003E0D90FC013F0011F903801F80C02801400133FD97F007FA315035B495CA3017E49
+5A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F8091C9FC485AA47F
+A27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F801300003FC8127F00
+3E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903
+F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA25CA513015CA513
+035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F049
+5A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B4915
+00A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14
+FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
+1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<143FEB1FFF5BA213
+017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5
+137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108 D<902707F007F8EB03FC
+D803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00FEBF0073E001FE38007E1C0
+03F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14F84A5CA24A5C011F020F14
+074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C74914C0A549027F143F4992
+C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FEA347287DA74C>I<903907
+F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE70002EE14F0
+14FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F
+5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>I<EC0FF0ECFFFE903903
+F01F8090390FC007C049C66C7E013E6D7E01FC6D7E48488049147C0003157E485A000F15
+7F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E5A6C4A5A7E4B5A5E6C140F6C6C
+5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE090383FFF80D90FF8C8FC292A7BA82D
+>I<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F8903A03FFE000FE6D49137F
+4B7F92C713804A15C04A141FA218E0A20103150F5C18F0A3171F010716E05CA3173F18C0
+130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE1FC06E495AD93FDC017EC7FC
+91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFCA45BA25BA31201487EB512F8
+A3343A81A733>I<91390FE003C0DAFFFC1380903903F81E0790390FE0070F90391F8003
+8FD97F0013DF01FE13014848903800FF00485A1207485A8248485C123F495CA2485AA215
+0112FF90C75BA41503A25EA37E15077F003F4A5A151F6C6C133F6C6C137F000714FF3903
+F003CF3A00FC0F8FE090383FFE0FEB0FF090C7FC151F5EA5153F5EA4157F4B7E023F13FE
+A32A3A7AA730>I<903907F01F80D803FFEB7FE09138E1E1F09138E387F839001FE707EB
+0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA5137F91C8FC
+A55B5BA31201487EB512FEA325287EA724>I<9138FF81C0010713E390381F807F90397C
+003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF
+6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA2123C153E157E00
+7C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A
+7DA824>I<EB0380A4130791C7FCA25BA25BA2133EA2137E13FE12011207001FB512C0B6
+FCA2D801FCC7FCA312035BA512075BA5120F5BA41407001F130E13C0A4141E141C1380A2
+6D5AA2000F5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01FE147F00FFEC7F
+FF4914FEA20007140300031401A34914FCA4150312074914F8A41507120F4914F0A4150F
+121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE09138073FFF3803F01E
+3801FFF826003FE01380282977A733>I<B539E007FFF05D17E02707FE000313006C48EB
+01FC6F5A5E00014A5A5EA24B5A6D1307000092C7FC5D150E6D5B7F5DA25D1480013F5B14
+815D14C3011F5B02C7C8FCA214CE14EEEB0FFCA25CA26D5A5CA25CA26D5A2C2878A630>
+I<B500C3B53803FFFCA204FE14F8290FFE003FE00013C0D807F86D48EB7F000003173E18
+3C150F18386D5E0001141F705B153F4D5A15776D4B5A0000ECE7F04DC7FCEC01C3170E90
+38FF0383017F5D91380703F85FEC0E01021E5CD93F9C14F002BC6D5A02B813FDDAF8005B
+4A13FF5F6D5A94C8FC5C4A137E167C6DC7FC1678010E14383E2878A642>I<48B539C07F
+FFC0A33C000FFE003FF8006D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F
+5A91383F81C0EDC380DA1FC7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7F
+EC383F02707FECE01F010180903803C00F49486C7ED90F007F491303017E80D801FE80D8
+07FF497EB5D8803F13F8A332277FA630>I<90B539E007FFF05E18E0902707FE00031300
+6D48EB01FC705A5F01014A5A5F16036E5C0100140794C7FC160E805E805E1678ED807002
+3F13F05EED81C015C191381FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A
+5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA
+783CEA3FF0EA0FC0343A80A630>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmsl10 10.95 30
-/Fj 30 122 df<903803F07C90381E0DC69038380F0FEB701E01E0130EEC0C003801C01C
-A548485A007FB512C03903803800A448485AA6000E5BA648485A001E7F38FF8FFC20207E
-9F1B>11 D<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF038038070A4
-380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>I<903803F03F9039
-1E09E0809039380F80C09039701F01E0EBE03E021E13C02601C01CC7FCA548485A007FB6
-12803903803803A43A0700700700A6000EEBE00EA64848485A001EEBE01E3AFF8FF8FFC0
-23207E9F26>14 D<13201360A4383061C0383C4380380E4E00EA0778EA01E0A2EA07B8EA
-1C9CEA708FEAE083EA0180A490C7FC12147AA117>42 D<13181338EA01F8EA0E701200A5
-13E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B9D17>49 D<EB3F80EBC1E0380100
-70000213785AA2000F137C1380A2EB00781206C712F814F0EB01E014C0EB0380EB070013
-0E5B5B13605B485A380300201206000813405A383FFFC0481380B5FC161E7E9D17>I<13
-FFEA01FE1380A5EA0300A61206A65AA65AA65AA65AA6B4FCA2102D7EA10D>91
-D<13FFEA01FEEA0006A5130CA61318A61330A61360A613C0A6EA0180A6EAFF00A2102D82
-A10D>93 D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E07EA3C0E127800F0
-1310A3131EEB2E2038784F40381F878014147D9317>97 D<13FEEA0383380E0780121C00
-38130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314>99
-D<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278
-12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07
-0EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA7002EA3004EA1C18
-EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC0001201A5485AEA3FFCEA
-0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E11EBE1A33801C1C238
-0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0
-14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012
-0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6
-381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213C0EA0180C7FCA6EA03
-80121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>I<13E0120712011200
-A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>108
-D<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5000EEB
-E00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A0
-3803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E9319>
-I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300F013
-8038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C6C487E140F
-48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90C8FCA3120E
-A4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C003813C0127812
-F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0
-131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120EA65A121EEA
-FFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13F0EA07FCEA
-01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<1380EA0100
-A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<38
-1C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011147B
-9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA0390
-13A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C030060148015
-401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C48
-5A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE180EB
-73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE07FC
-18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C13705CA2
-0171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278
-191D809318>I E
+%DVIPSBitmapFont: Fk cmcsc10 10.95 16
+/Fk 16 121 df<EC01E0A24A7EA34A7EA34A7EA24A7E141CA2EC3CFFEC387FA24A6C7EA3
+4A6C7EA2010180ECC00FA249486C7EA349486C7EA24980010E1301010FB5FC4980A2011C
+C7FC49147FA20178810170143FA201F08149141F1201486C811207486CEC3FF8D8FFFE49
+B512C0A332317DB038>97 D<DA0FF81330DA7FFF13700103B5EAC0F090390FFC03F19039
+1FE000F9D97F80133F01FEC7121F4848140F48481407485A000F1503491401121F491400
+123F5B127F1770A248C9FC1700AA6C6C1570A3123F6D15F0121F6D15E0000F15016D15C0
+000715036C6C15806C6C14076C6CEC0F00D97F80133ED91FE05B90390FFC03F00103B55A
+D9007F1380DA0FF8C7FC2C317BAF36>99 D<B612FCEDFFC016F03A03FE000FF86C48EB01
+FEED007FEE3F80EE1FC0EE0FE0EE07F0160317F8160117FCA2EE00FEA417FFAA17FEA3EE
+01FCA3EE03F817F01607EE0FE017C0EE3F80EE7F00ED01FE486CEB0FFCB712F016C04BC7
+FC302F7CAE39>I<B712FEA33903FE00036C48EB007F828282A282A3EE0380A21538A293
+C7FCA31578A2EC01F890B5FCA3EBFC01EC0078A21538A592C8FCAA487EB512FCA3292F7C
+AE31>102 D<DA0FF81360DAFFFE13E00103EBFF8190390FF807E390393FC000F3494813
+7F01FEC7123F4848141F4848140F48481407120F491403485A003F1501A25B007F1500A3
+48C9FC1700A8031FB5FCA26C7E9238001FF0EE0FE0123F7FA26C7E120F7F12076C7E6C7E
+6C6C141FD97F80133FD93FE0137B90390FFC03F10103B512E00100EC8060DA0FFCC7FC30
+317BAF3A>I<B5D8F81FB5FCA3D803FEC7EA7FC06C48EC3F80B190B7FCA301FCC7123FB3
+486CEC7FC0B5D8F81FB5FCA3302F7CAE38>I<B512F8A33803FE006C5AB3B3A3487EB512
+F8A3152F7DAE1B>I<90383FFFFCA39038007FC0EC3F80B3AD1218127EB4FCA3EC7F005A
+007C137E007813FE383C01F8381F03F03807FFC0C648C7FC1E307CAE27>I<B512FCA3D8
+03FEC8FC6C5AB3A7160EA4161CA4163CA2167C16FC1501ED03F8486C131FB7FCA3272F7C
+AE2F>108 D<D8FFFE923807FFF0A3D803FF92380FFC006C5FD9DF80141DA3D9CFC01439
+A2D9C7E01471A3D9C3F014E1A2D9C1F8EB01C1A3D9C0FCEB0381A2027EEB0701A36E130E
+A291381F801CA391380FC038A2913807E070A3913803F0E0A3913801F9C0A2913800FF80
+A3486CEB7F00487E486C013E497EB5008091B512F0A2151C3C2F7CAE44>I<D8FFFC49B5
+FC7F7F00019138001FF06EEB0FE06EEB07C0EE0380EBDFE0EBCFF013C780EBC3FC13C180
+EBC0FF801580EC3FC0EC1FE0A2EC0FF0EC07F8A2EC03FCEC01FE140015FFED7F83153F16
+C3ED1FE3ED0FF3A2ED07FBED03FFA28181A2167F163F486C141F487E486C140FB56C1307
+A21603302F7CAE38>I<B612FCEDFF8016E03A03FE000FF86C48EB03FCED00FE167FA2EE
+3F80A217C0A61780A2EE7F00A216FEED03F8ED0FF090B612C093C7FC01FCC9FCB2487EB5
+12F8A32A2F7CAE33>112 D<90383FC00C9038FFF81C0003EBFE3C390FE03FFC381F8007
+EB0003003E1301481300157C5A153CA36C141CA27E6C14006C7E13E013FE383FFFE06C13
+FE6CEBFF806C14E0000114F06C6C13F8010F13FC1300EC07FE14011400157F153F12E015
+1FA37EA2151E6C143E6C143C6C147C6C14F89038C001F039FBF807E000F1B512C0D8E07F
+130038C007FC20317BAF2A>115 D<007FB712F8A39039801FF0073A7E000FE000007816
+78A20070163800F0163CA348161CA5C71500B3A8EC3FF8011FB512F0A32E2E7CAD36>I<
+B5D8F801B5FCA3D803FEC7EA1FF06C48EC0FE0EE07C0EE0380B3AB16076C6C1500A2017E
+5C017F141E6D141C6D6C133C6D6C5B6D6C485A903903FC07E00100B51280DA3FFEC7FCEC
+07F830307CAE38>I<3B7FFFF001FFFEA30003D9C00013E0C649EB7F80017F027EC7FC16
+7C6D6C13786D6C5B6D6C5B15016D6C485AD903FC5B15076D6C48C8FC903800FF1EEC7F9C
+15BCEC3FF86E5AA2140F6E7E14034A7E4A7EEC1EFF141C91383C7F804A6C7E14709138F0
+1FE049486C7E49486C7E148001076D7E49486C7E130E011E6D7E496E7E017C6E7E13FC00
+0382D80FFEEC7FF8B549B512C0A3322F7DAE38>120 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl cmti10 10.95 1
+/Fl 1 47 df<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46
+D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmcsc10 10.95 3
-/Fk 3 118 df<EB7E083803819838070078000C1338001C13185A00781308127000F013
-00A5EB03FEEB00381270127812387E120C1207380380D838007F0817177E961D>103
-D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C130E1307A2
-EB03A0EB01E0A213001460123800FE132016177E961C>110 D<38FF81FC381C00701420
-B0000C1340120E6C138038018300EA007C16177E961C>117 D E
+%DVIPSBitmapFont: Fm cmbxti10 14.4 1
+/Fm 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
+EA0FE0121271912B>46 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmbx12 17.28 36
-/Fl 36 122 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
-7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
-F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
-131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<1578A215FCA34A7E
-A24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F02787FEC700FA202E07F1507
-010180ECC003A249486C7EA201078191C7FC498191B6FCA24981011CC7123F013C810138
-141FA24981160F01F081491407A2484881486C1403B549B512FCA336317DB03D>65
-D<B712C016FC16FFD801FEC77FEE7FE0707E161F707EA2831607A4160FA25FA24C5A4C5A
-4C5A4B485ADB1FFEC7FC90B65AEEFF8049C7EA3FE0EE0FF0EE07FCA2707E83821880A718
-005E5F16074C5A4C5AEEFFF0B812C094C7FC16F831317DB039>I<913A03FF800180023F
-EBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C8127F
-4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127FA2
-7FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93FC0
-5CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>I<
-B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D5D
-91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70 D<DA03FF1303027FEBF0
-0749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49487F4848C87E485A0007
-824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B512F8127F7FDB00011300
-123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497ED907FFEB3E3F01019038
-FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B6D8807FB512C0A3C60180C7387FC000
-B391B7FCA30280C7127FB3A3B6D8807FB512C0A33A317EB03F>I<B61280A3C6EB8000B3
-B3A7B61280A319317EB01E>I<B56C49B512C08080C66D90390003E0006E6E5AEBEFFC13
-E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E16806E13C0ED7FE0ED3F
-F0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1EE1FF9EE0FFD160717FF
-828282177F173FA2171F170F486C1507B500E014031701A23A317EB03F>78
-D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FFA717FEA2EE
-07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB037>80
-D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603
-A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807C000
-715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801FC002
-3FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C1780
-6E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075DA26E
-130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C021F13
-3815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238317EB0
-3D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FC
-A414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F800D39
-3FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 D<EA01F812FFA3120F12
-07ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E049EB07F016F8A2ED03FC
-A316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F809039C3C0FE00903880FFF8
-9038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803F0033907E007F8120FEA
-1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2001F14386C7E00071470
-3903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED0FC0EC07FFA3EC007F15
-3FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F4848133F123FA2485AA312
-FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F3FFE38007FFEEB0F
-F027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E03907E001F0000F14F839
-1FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7FCA4127FA36C6C130712
-1F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807FE0020207E9F25>I<EB
-01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC1203EC07E0EC018091C7
-FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90391FF007C09039FFFE3F
-E03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2
-000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C
-14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC
-0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F
-28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013809039F9801FC0EBFB00
-01FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E487E487EA46C5A6C5A6C
-5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA01F812FFA3120F1207B3
-B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01
-E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3
-B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1
-801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFF
-C03901FC07F03903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300
-FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF0
-39007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFFFC9038FBE07F9039FF00
-3F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2
-ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A3
-272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07
-E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C
-133E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA00
-3F01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C0
-7F8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FC
-C7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07
-E000FFEB03FFA3000FEB003F0007141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF
-90387FFF1FEB0FFC28207D9F2D>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315
-007F0001140E7F6C5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14
-F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478A226207E9F2B>I<B53A1FFFE03F
-F8A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15
-DF01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEB
-F9C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E
-9F3A>I<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90
-381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF081
-90380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA3
-28207F9F2B>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C
-5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214
-FF6D90C7FCA26D5AA26D5AA21478A21470A214F05C1301007C5BEAFE035C49C8FC5BEAFC
-1EEA787CEA3FF0EA0FC0262E7E9F2B>I E
+%DVIPSBitmapFont: Fn cmbx12 17.28 37
+/Fn 37 122 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007
+C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F80103
+15FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F8
+6E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380
+A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D
+13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B
+13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC
+7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A
+5A5A5A5ABAFCA219F0A4405E78DD51>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D
+80A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E040382
+17F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E
+03016F7FA24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E037F70
+7F93B9FCA292BA7EA24A85A203FCC912070203865D020771805D86020F864B82021F865D
+87023F864B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E092B812
+FEA66F647BE37A>65 D<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114F8DF00
+3F7F080F13FF74807480867480757FA2757FA28987A289A965A26365A2515BA298B55A50
+5C505C5091C7FC505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3FF801C
+E00480C8001F13F8080713FE08016D7E7480757F757F757F89757F89871E80871EC0A41E
+E087A663A21EC0A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97B6C7FC
+BD5A1CF81CE099C8FC1BF898C9FC63627AE173>I<4DB5ED03C0057F02F014070407B600
+FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C738
+07FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F082
+91B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A
+84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F5
+0FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D
+6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FF
+EE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B6
+48C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I<BD12
+E0A41CF0A2D8000102C0C71207F1003F1A0F1A031A001B7F1B3FF31FF81B0FA21B07A21B
+03A21B011CFCA31B00A419FCA21C7EA41C00A21801A31803A21807180F183FEF01FF93B6
+FCA6EEC001EF003F180F18071803A21801A31800A896C9FCB3A5B912F8A657617AE065>
+70 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F030F
+05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C3020702C09138007F
+E74A91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB7E494984494984
+49498449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1F
+A44899C8FCA25CA3B5FCB07E071FB812F880A37EA296C70001ECC000A26C7FA37E807EA2
+6C80A26C80A26C807F6D7F816D7F7F6D7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01FF
+5E6E02C0ED7FEF020102F8EDFFC76E02FF02071383033F02FC013F1301030F91B638FC00
+7F03014D131F6F6C04E01307040704801301DC007F02F8CAFC050191CBFC6D6677E37F>
+I<B96C90B91280A6D8000102C0C9000102C0C7FCB3B3A293BBFCA604C0C91201B3B3A6B9
+6C90B91280A671627AE17E>I<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A633627CE13C>
+I<B700C0083FB612F070627097B7FCA37061D800010DF8C7FC70F103EFA202FD6DF107CF
+A202FC6DF10F8FA36F6DF01F0FA26F6D183EA26F6D187CA26F6D18F8A36F6DEF01F0A26F
+6DEF03E0A26F6DEF07C0A26F6DEF0F80A3706DEE1F00A2706D163EA2706D5EA2706D5EA3
+706D4B5AA2706D4B5AA2706D4B5AA2706D4B5AA3716D4AC7FCA2716D143EA2716D5CA271
+6D5CA3716D495AA2716D495AA2716D495AA2716D495AA3726D48C8FCA272EBC03EA2726D
+5AA2726D5AA372EBF9F0A272EBFFE0A2725CA2725CA37390C9FCA2735AA2735A90381FFF
+C0B700F86E480207B812F0A3735AA2735A8C627AE199>77 D<B700E0040FB71280828282
+82A2D800016EDC000101FCC7FC719338001FC08383A28302FD808302FC80816F7F6F806F
+8084816F806F806F8084707F8270807080857080827080708085717F8371807180718086
+8371807180727F8672808472807280877280847280737F87731480857314C07314E01CF0
+7314F8857314FC7413FE7413FF1D9F867414DF7414FF86A286868787A287878787A28787
+888888A288888890261FFFC084B712F8881D7F1D3F1D1F775A71627AE17E>I<BB7E1AFC
+F2FFC01BF81BFE757ED800010280C7001F80070114F0736C7F081F7F747F747F74148074
+14C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B512F0A21DE0A25014C01D80625014
+00505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8FC04C0CCFCB3B3A2
+B97EA65E627AE16E>80 D<001FBEFCA64849C79126E0000F148002E0180091C8171F4986
+01F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C
+07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84 D<B96C023FB612FEA6D8000102C0
+CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C01806570170380525A6E7F6E4F5A70
+171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC033F01E04B5A6F6DED1FFC6F01FCED
+7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7C9FC041F5E040716F8040016C005
+0F4ACAFCDD003F13C06F647AE17C>I<B800FC047FB612E0A6D800070280CB6CEB80006D
+6EDE07FCC7FC666D6E611D0F6D6E611D1FA26E6D611D3F6E6D611D7F6E6D96C8FC65A26E
+6D4D5AA26E6E5F1C036E6E5F1C076E6E5F1C0FA26E6E5F1C1F6F6D5F1C3F6F6D5F1C7FA2
+6F6D4CC9FCA26F6D5E1B016F6E5D1B03A26F6E4A5AA26F6E5D1B0F6F6E5D1B1F706D5D1B
+3FA2706D5D1B7F706D92CAFC63706D5C1A01A2706E485AA27002C05B1A077002E05B1A0F
+7002F05B1A1FA27101F85B1A3F7101FC5B1A7F7101FE90CBFC62A2716D5AA2715CA2715C
+A3715CA2715CA2725BA2725BA37290CCFCA2725AA2725AA2725A73637DE17A>I<913803
+FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801
+017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74B
+B6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B
+4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF80
+6C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302
+F001011400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8
+040FEBFF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F
+93C76C7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA4
+1BFEAE1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402
+075B4A6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A
+6C15E091C7001F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F002
+3F15FC91B77E01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F
+90C7FC49484A13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC
+485BA4B5FCAE7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C
+6D150F6D6DEC1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091
+B512F0023F5D020F1580020102FCC7FCDA000F13C03E437BC148>I<F17FF8050FB5FCA6
+EF000F8484B3A892380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF3
+499039F8000FFB011F01E00103B5FC494913004990C87E49488148498148834A815A485B
+A2485BA25AA3485BA4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93
+B5FC6D6C6C0103806D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6C
+ECFE07021F14F8020314E09127003FFE00ECC0004F657BE35A>I<92380FFFC04AB512FC
+020FECFF80023F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D
+7F4990C76C7F49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5
+FCA391B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F
+6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FF
+C01F90C7FC6D6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3F
+FC0307B51280033F14C04AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A
+5A4B4813FF4913F05B4913E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7
+FCB0B812C0A6D8001F01C0C8FCB3B3B0007FB612FCA638657CE431>I<F107F8DB7FFEEC
+3FFE020FB5D8F001B5FC027FDAFE03148049B7128F49DCDFFD13C0010FD9F00FEBFFC149
+D9800114014990C7EBFC0349486E6C7E4948EC3FFF48496E018113800780130048F0C03E
+97C7FC48496E7FA34884A96C60A36C6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A
+6D6D485BDBF00F5B4990B612C060D97C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC12
+01A47FA27F8014F091B77E18FE6CEFFFC019F06D17FC19FF6D846D846D846D84013F8490
+BAFC0003854801E0C712014890C9000F7F484816014848EE007F4848717E8512FF5B85A5
+6D5F007F616D173F003F616D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601
+FF92B5C7FC6D01F8011F5B011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9
+FC4A607CC151>I<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14
+FF4C8193267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015
+BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3F
+F8497E48B5FCA24880A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF9038
+07FF80007FB5FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC
+7F7FB3B3B3B3ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F0
+0207EBFF80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F92
+2781FE001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0
+DBF87EC7804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5F
+A24B94C8FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1F
+FFB691B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6D
+D987F07F6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007
+B71280A651417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C
+6C7E010701F0010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13
+804819C04A814819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FE
+A46C6D4B13FCA36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B1300
+6D6C4B5A6D6D495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC
+020715E0020092C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F
+14F00381B612FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F
+6D496E7F03F86E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851B
+FEAE4F13FCA41BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A
+5B70495B04E0017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC
+040313E093CBFCB3A3B712F0A64F5D7BC05A>I<D90FFFEB0FFCB690383FFF8093B512E0
+4B14F04B14F8923907FC7FFC92390FE0FFFEC6EC1F806DD93F0113FF6D133E157E157C15
+F8A215F07013FEA24BEB7FFCEF3FF8EF0FE04B90C7FCA55DB3B0B712F8A638417BC042>
+114 D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7
+121FD80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13
+FF14E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F
+16C01303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163F
+A2171F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE
+02FCEB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I<
+EC07E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8
+FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B
+6DEBFF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0
+ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D
+6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F01
+8002F0C7FC51427BC05A>I<B700C00103B512FCA6C66C01C0C8381FFE006D6DED07F0A2
+6D6D5E190F6D6D5E191F6D606F153F6D95C7FC6F5DA26D6D157E19FE6D6E5C18016E5E70
+13036E5E701307A26E6D5C180F6E6D5C181F6E6D5C183F6E93C8FC705BA26E6D13FEA26E
+6E5A17816FEBC1F817C36F5C17E76F5C17FFA26F5CA26F5CA26F91C9FCA26F5BA36F5BA2
+705AA2705AA2705AA2705A4E417DBF55>I<B70081B600FC0103B512FCA6C66C0180C701
+FCC8381FFE006F6FED03F86D047F5F856F6E16076D646F70140F6D705F866F6E161F6D64
+6F4A6D143F6D99C7FC4E7F6F616D1B7E6F4A6D14FE6D6395B57E7001FC15016E62DCC001
+6E13036EDBF87F5D05038004E0496C14076E62DCF007ED800F6E4B6C5D050F15C004F849
+6C141F6E62DCFC1FEDE03F6E4B6C92C8FC053F15F004FE496C5C6E197E7048EDF8FE6E02
+7E6D5C05FE15FC4D6D13FD6F601BFF6F496E5BA24D806F60A26F496E5BA24D806F60A26F
+496E90C9FCA294C87E6F5FA26F486F5A047C6F5A6E417DBF75>I<007FB600C0017FB512
+F8A6D8001F01F8C70007EBF0006D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A
+6E7F6E6D495A6E6D495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06F
+EBFFC06F5C6F91C9FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1F
+E17F04C080153F4B486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F
+4A486D804A5A4AC86C7F49486F7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55
+>I<B700C00103B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F
+6D6D5E193F6D95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70
+130F6E5E70131FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEB
+E7F0A26FEBF7E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35F
+A25F163F94CAFC5E167E16FED807E05CD81FF81301487E486C495AA2B5495AA24B5A5E15
+1F4B5A6C4849CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB
+1FE04E5D7DBF55>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmsy10 10.95 1
-/Fm 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
+%DVIPSBitmapFont: Fo cmsy10 10.95 1
+/Fo 1 14 df<EE7FFE0307B512E0033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA
+3FE0EC07FCDA7F80EC01FED901FEC9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948
+707E49CB7E017E187E498449844848F00F8000031AC04918074848F003E0A24848F001F0
+A248CD12F8A2001E1A78003E1A7CA2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A
+0FAB6C1A1FA200781A1EA3007C1A3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6C
+F001F0A26C6CF003E0A26C6CF007C06D180F00011A806C6CF01F006D60017E187E6D606D
+6C4C5A6D6C4C5A6D6C4C5AD903F8EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0
+EC07FCDA0FFCEC3FF0913B03FFC003FFC0020090B6C8FC033F14FC030714E09226007FFE
+C9FC50557BC05B>13 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmbx12 14.4 44
-/Fn 44 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F14
-80A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303
-000181491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8
-001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EA
-FE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1F
-F8B712E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF0
-0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290
-C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039
-7FF007C0011FB512800107EBFE009038007FF028297CA831>I<B712E0A33903FC001FED
-07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3EBFC0F1403A202
-01130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327297EA82C>69
-D<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403A2140F
-90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003903907
-FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880485A82
-485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E6C7E6C
-B45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5D8F00FB5FC
-A3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<B512F0
-A33803FC00B3B1B512F0A314297EA819>I<D8FFFCEC7FFF7F7F00036DEB01C080EBBFE0
-139F80EB8FF8EB87FCEB83FEEB81FF01801380147F15C0EC3FE0EC1FF0EC0FF8EC07FC14
-0315FEEC01FF6E1381ED7FC1ED3FE1ED1FF1150F16F9ED07FDED03FF8181167FA2163F16
-1F160F1607D8FFFE14031601A230297EA835>78 D<B612F815FF16C03A03FC003FE0ED07
-F0ED03F816FC150116FEA716FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B5
-12F0A327297EA82E>80 D<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E
-4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA2
-1503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>82 D<9038FF80600003EBF0E0
-000F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7F
-FCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E0
-1303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA8
-25>I<B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F0000150E137F6D143CD91F
-C05B90390FF003F06DB55A01001480DA1FFCC7FC2F297EA834>85
-D<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B017F140E80013F
-5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301015CECFF076D
-91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230297FA833>I<B5
-3CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C604B1380
-02801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F09126F01C
-0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA2913AFEE001
-FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141EA242297F
-A845>I<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801
-FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B
-7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F8
-9038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380F
-FF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A2
-48133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C
-3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC0
-0F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FF
-E738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80
-127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007
-003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813
-F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F000
-03EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E
-6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C
-14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512
-0038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EB
-E80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0
-A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3
-120FB3B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0
-C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFF
-E0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013
-D0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F
-800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC039
-0FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE
-0FE0390FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013
-F89038F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>
-I<38FFC1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>
-114 D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14
-C06C13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038
-E7FFC000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380F
-E000AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A300
-0F1307B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FF
-A3390FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0E
-A2149EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B
-0FE00FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC
-2600FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C
-5AA2EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F00
-3801FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038
-F03F803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E13
-1C5BEA74F0EA3FE0EA0F8020277F9A23>I E
+%DVIPSBitmapFont: Fp cmbx12 14.4 48
+/Fp 48 122 df<EA07F0EA1FF8487E487E7FB5FC1480A314C0A37EA27E7EEA07F3EA0003
+A213071480A3130F1400A25B131E133E133C137C5BA2485A485A485A485A48C7FC121E12
+0C1228769025>44 D<EA07F0487E487E487E487EB51280A76C13006C5A6C5A6C5A6C5A11
+11769025>46 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7
+FCB3B3B3A6007FB712FEA52F4E76CD43>49 D<EC3FFE0103B512E0010F14FC013F14FF90
+B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F48488001F016
+80486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E05EA218C0
+5E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48
+C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD91F801407
+49C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43>I<9138
+0FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803
+F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC16
+80C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA
+000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FE
+A2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F0
+4A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F15800103
+02FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167F
+A216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC
+1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A
+485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>I<D80380
+150ED807E0157E01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F016C093C8
+FC15F801E190C9FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FFF8077FDA
+C0017F49C713F8496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0A3EA0FE0
+487E487E487E487EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C4A5A6D5D
+6C6C4A5AD807F8495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14F8010314
+C09026007FF8C8FC344F79CD43>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7F
+A24C7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E08303
+0F814C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B80
+0207835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A
+820103854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD3
+66>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F070F7F73
+7F878587858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A060713F892B8
+12E097C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87737F747E1C
+807413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F5B19074F
+5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601FFFCEC01
+C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F
+01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982
+4949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0F
+A25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C
+006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE
+7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612
+C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FCF1FF801A
+F01AFCD8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E747F747F86
+747F747F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80A2631D00
+A3515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B512C0060F
+91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8C7000114C0
+F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01A497C7FC17
+01A317031707170F177F92B6FCA59238F8007F170F170717031701A317001B3EA31B7CA3
+95C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101FF1907191F
+0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF0007F191F19
+0785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A317031707170F17
+7F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A517CD055>
+I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203
+DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901
+F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA248
+49181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000
+A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF
+6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE
+001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B8D8C003B8FCA5D800
+0701F8C9001FEBE000B3AE92BAFCA503F8C9121FB3B1B8D8C003B8FCA560527CD169>I<
+B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>I<B812F8A5D8000701F8CA
+FCB3B3A91A7CA41AFC1AF8A51901A31903A219071AF0190FA2191F193F197F19FF180360
+183F4DB5FCBB12E0A546527CD151>76 D<B600FC073FB512FE6F61A26F96B6FCA2D80007
+F5C00070EF01EFA202EF6DEF03CFA202E76DEF078FA202E36DEF0F0FA202E16D171EA302
+E06D173CA26F6C1778A26F6C17F0A26F6DED01E0A26F6DED03C0A36F6DED0780A26F6DED
+0F00A26F6D151EA26F6D5DA3706C5DA2706C5DA2706D495AA2706D495AA2706D495AA370
+6D49C7FCA2706D131EA2706D5BA2716C5BA3716C5BA271EB81E0A271EBC3C0A271EBE780
+A27101FFC8FCA3715BA2715BA2725AA2725AA2D93FFC6F5AB74DB712FEA2725AA2725A77
+527CD180>I<B600FC93B7FC8181A282D800076E9239003FFC0070EE07E08282A28202EF
+7F02E77F02E380A202E18002E0806F7F6F7F6F7FA26F7F6F7F6F806F80A26F80707F707F
+707F707FA2707F7080708070808583717F717F717F717FA27114807114C07114E07213F0
+7213F8A27213FC7213FE7213FF721487A27214C77214E77313F77313FF85A285858585A2
+8586868686A286868686A2D93FFC187FB7173F1B1F1B0F1B07755A60527CD169>I<BAFC
+19F819FF1AE086D8000701F0C7001F13FC060113FF726C13807313C0070F13E01BF08573
+13F81BFCA27313FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0614F13C04F13004E48
+5A061F5B92B812F01AC04FC7FC19E003F8CBFCB3AEB812C0A550527CD15C>80
+D<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F737F8573
+7F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092
+B8C9FC19F819E019F89226F0000313FE9439007FFF80727F727F727F727F727F8684A286
+84A787A71D1C75133EA38575137E73157C7513FC731401B86C6D9038F803F807039038FE
+07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B5
+00F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5
+FC4848C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F
+6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C83
+6C836D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F05
+0F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D
+5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7
+FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F
+9038C0007F49C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA300
+7C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>I<B800C00103
+B612FCA5D8000701F8CAEBF000F31F80B3B3B11B3FA26D97C7FC81637F1B7E6D6D17FE50
+5A6E7E505A6E6D15076E4D5A6E6D4B5A6E6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46C
+EB0FFE6F9039F001FFF8030F90B65A030316C0DB007F92C9FC040F14F8DC007F13805E53
+7CD167>I<B700FE031FB512FEA5D8001F01F0CA383FFE00F307F06D626F170F6D62811B
+1F6D6D601B3F6D97C7FC6F5F6D197E821BFE6E6D5E1A016E6D5E1A036E60701507A26E6D
+5E1A0F6E6D5E1A1F6E6070153FA26E6D93C8FC626E6E147E1AFE6F5E711301A26F6D5C19
+036F6D5C19076F5E71130FA26F6D5C191F6F6D5C193F6F93C9FC715BA26FEC807E19FE70
+6D5A18C1705C18E3705C18F318F770EBFFE0A2705CA2705CA37091CAFCA2705BA2715AA3
+715AA2715AA2715A715A5F537DD166>I<B700FC017FB600FE91B612F0A5D8003F01C0C8
+001F01E0C9EBF8006F71EE0FC06D7161876F1C1F6D7196C7FC6F8373606D1E3E6F836D71
+60876F1CFC6D666F4B801F016D66704A806E525A88704A17076E059F5F70021F80080F16
+0F6E6570023F806EDC3E074CC8FC8870027E5F6EDC7C03163E7002FC804F6C167E6E1C7C
+700101814F6C16FC6E745B70010317016E4C6D5D060716C00580496D14036F63DDC00F16
+E04F6D14076F07F05BDDE01F170F6F92C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC
+067C6E5C6FF1FE3EDDFCFC177E6F4A6E147C1DFFDDFFF06E14FC6F62A24E816F62A27049
+6F5BA24E817061A295C97E7061A270487090CAFCA37048705AA24D1601040360A2704870
+5A84537DD18B>I<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F048
+6C6D7F6EEB3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020F
+B6FC91B7FC01071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A
+5BA2485AA45EA26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C
+9026F81FC014F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641
+>97 D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFFC092B612F002F301
+017F913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285
+A28584A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7
+FCDA87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FCC8FC90C7000313C0
+41547BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE
+0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F130070
+5A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C
+6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49
+C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13
+FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F48
+4980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D
+5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE
+0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C0
+4901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C048
+8191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06C
+EE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB
+03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3F
+FC0203B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC49
+5A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A700
+7FB512FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF
+7F90267FFC0F9038FF9FF09026FFE001EBF83F48496C13E0484990387FF01F4890C7D83F
+F813E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D
+495A6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F02607C03F90C9FC91
+CBFCA2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C836D828448B9FC1207
+4848C700031480D81FF8EC003F4848150748486F13C083485A83A56D5D007F18806D5D00
+3F18006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280
+010F03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5FCA51203C6FCB3A4
+EE1FFC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C8003F07FDAF1E081
+ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542537BD24B>I<137F
+497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017E
+B3B3A6B612E0A51B547BD325>I<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>
+108 D<D93FF0D91FFCEDFFE0B591B500C0010713FE030302F0011F6D7E030F6E017F8092
+271FE07FFCD9FF037F922A3F001FFE01F8007F0003027C9126FF03E080C602F06DD90780
+137FDAF1E0038FC77FDAF3C0159EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A
+5EB3ACB6D8F807B6D8C03FB512FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314
+F0030F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F
+8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE
+91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F
+48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F18
+80A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD9
+3FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643
+>I<903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F8007FFE00
+03D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380
+AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC91
+26FBFE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B
+>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3
+E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AA
+B612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF8
+1307D81FE0130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13
+FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F
+030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001
+F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C38
+7CB635>I<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FC
+B8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC
+6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA500
+03ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFF
+C0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091C7FC42377BB54B>I<B6
+00F00107B5FCA5000101F8C8EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D
+5E6F13016D5E8117036D5E6F13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E
+023F147C6F13FC6E5C16816E5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5A
+A36F5AA26F5AA26F5AA26F5A6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101
+F0C701F0C7381FF8006E027FED07E06C715DA26E023F150F017F705DA26E181F013F4B6C
+92C7FC6E606D70143E94B5FC6F177E6D4A6E137C03C001F315FC6D715B160303E001E114
+016D020702E05B03F013C06D71485A160F03F8D9807F13076D05F85B93381F003F03FC16
+0F027F4902FC5BDBFE3E011F131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C
+6D137E6E5FA24C7F6E5F4C7F6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9
+FC5A367DB461>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C
+6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8F
+E06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD
+7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A
+49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600
+F00107B5FCA5C601F8C8EA7FE06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F1301
+6D5E6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F14
+7C6F13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F
+5AA26F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C
+13FC5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC6
+90CBFC404D7DB447>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fo cmtt10 10.95 76
-/Fo 76 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
-3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
-A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
-7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
-12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
-123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
-EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
-24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
-C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
-FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
-7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
-123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
-A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
-14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
-1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
-0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
-00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
-431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
-C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
-485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
-071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
-D<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC
-38FE078038F803C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5A
-EA01F8131C7E9B18>54 D<1230127812FCA2127812301200A81230127812FCA212781230
-0614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E12
-1C123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07
-F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E013
-03EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0
-130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2
-EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0F
-F0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5
-EA0380487EA36C5A111C7D9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
-A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65
-D<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
-C01303EB0F80387FFF00485AEA7FF8141C7F9B18>68 D<B512F0A3381C0070A41400A213
-0EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F0A3381C0070
-A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0A3141C7E9B18>I<387F07F038FF
-8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18
->72 D<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<EAFFC0
-A3001CC7FCB114E0A5B5FCA3131C7E9B18>76 D<387E07F038FF0FF8387F07F0381D81C0
-A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
-151C7F9B18>78 D<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF00100
-7013C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01
-E013001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<
-EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB
-0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0F
-EA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2
-126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA2
-38E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F
-01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03381C01C0
-EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C
-5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>91
-D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F12007F
-1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<EAFFF8A3EA00
-38B3ACEAFFF8A30D247F9F18>I<EA0180EA07C0EA1FF0EA7EFCEAF83EEAE00E0F067C9B
-18>I<387FFFC0B512E0A26C13C013047E7F18>I<1206121E123E12381270A212E0A312F8
-12FC127CA21238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF12
-07121FEA7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E
-12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80
-E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838
-030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<
-EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007
-A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA
-3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF80
-00071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0
-B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00
-487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F03870
-0070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE12
-7E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC17
-1C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C
-18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA
-0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>107 D<EAFFC0A31201B3A4B51280
-A3111C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E
-7EEB3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7
-FC38FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A2
-38E000E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318
->I<EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013
-C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FB
-EA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3
-EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060
-EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A300
-7CC7FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F0
-11147D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C
-1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C
-13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A33807
-0700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F13073838
-00E0A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F93
-18>I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DC
-EA039E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000
-FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013
-DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2
-387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512
-F0A314147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E012
-00AB1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC
-13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E
-9F18>I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA60C00F067C9B18>I
-E
+%DVIPSBitmapFont: Fq cmtt10 10.95 73
+/Fq 73 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00
+A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14
+00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2
+02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F
+90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2
+29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE
+FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3
+6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01
+1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC
+A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C
+5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<D803C0EB01E0
+D80FF01303486C497E487E150F487ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC
+6C5A5D387E7E01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A
+5AA25D147FA292C8FC5CA2495AA25C1303A25C1307A290390FF001E0ED07F84A487E011F
+497EA24A487E133F163F90267F807F1380ED7E1F14005BA25B1201A24848EB7F3F033F13
+004914FF12076F5A5B6F5A6C486D5A0001EC01E029477DBE30>I<EB07E0EB1FF8497E13
+7F497E803801FC7F497E810003131F13F0A6143F92C8FC91387F0FFF9026F87E1F138000
+0113FEEBF9FC13FB4A6C1300D9FFF013C06C13E0151F02C05BEB7F809038FF003F4892C7
+FC485C48EB807E5A15FE391FDFC0FC383F8FE014E1397F07F1F8EB03F300FEEBFBF0EB01
+FF5D7FEDC006027F130F91393F801F8015C06C137F6CEBFFE049EBF83F018701FC130026
+3FFFFBB5FC6C01F15B14E06C9038C03FFC00039038001FF8D801FCEB07E0293A7DB830>
+I<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48
+5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F
+12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E
+184771BE30>40 D<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0
+131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA213
+0314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE048
+5A485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83
+EB3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13
+C0011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913
+E09038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30
+>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA
+03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA
+07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15
+F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B
+30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5A
+A25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495A
+A2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA2
+48C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB
+83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8
+A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15
+F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B
+6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F
+13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C
+14F81F3977B830>I<EB07FC90383FFFC090B512F00003804814FE4880261FF80F138026
+3FE00113C09038C0007F4848EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218
+C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A
+5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F848
+5AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7F
+E0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C27
+6EA630>58 D<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA0FF0EA03C0C7FCAFEA03C0
+EA0FF0121F13F8123F13FCA3121FA2120F12031200120113F8120313F01207EA1FE0123F
+EA7FC0EAFF80EA7F00127E12380E3470A630>I<16F01503ED07F8151F157FEDFFF01403
+4A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B
+000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC
+6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF815
+1F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612
+FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C
+13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13
+C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801FFF0
+495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90
+C9FC127E1278252F7BB230>I<EB1FFE90B512E0000314F8000F14FE4880481580267FF8
+0313C09038C0007F48C7121F16E0150FA3127E151F0018EC7FC0C812FF020313804A1300
+4A5AEC1FF84A5AEC7FC04A5A92C7FC495AA2495A5CA213075CA86D5A90C9FCA8EB01C0EB
+07F0A2497EA36D5AA2EB01C023397AB830>I<147F4A7EA2497FA4497F14F7A401077F14
+E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881
+A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C13
+0029397DB830>65 D<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F
+6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F
+17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387F
+B730>68 D<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FC
+A6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<00
+3FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA690
+38FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103
+EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A
+491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C
+6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137F
+ECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF80
+0FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA6
+01F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D38
+7FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500
+213879B730>I<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003F
+B7FC5AB8FCA27E6C16802A387EB730>76 D<D83FFC90381FFF80486C4913C0B54913E0A2
+6C6D6C13C06C6E13800003913801F800EBF7C0A3EBF3E0A314F013F1A214F8A213F014FC
+A2147C147EA2143E143FA2141FA21581A2140F15C1A2140715E1A2140315F1A21401A215
+F91400A3157DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C5A2B387EB730>78
+D<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0
+A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8
+13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<007FB512F0B6
+12FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA2821780163FA6167F17005E
+A24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C
+5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F
+6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8
+007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F0
+6C496C13E06C49EB7FC0C9EA1F002E397FB730>82 D<90390FF803C0D97FFF13E048B512
+C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED
+07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF010314
+80D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F
+6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878
+011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7
+FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C49
+6C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393FE0
+0FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I<D87F
+FF90381FFFC0B56C4813E0A46C496C13C0D803F8903803F8006D1307A26C6C495AA26C6C
+5C151F6D5CEC803F013F5CECC07F011F91C7FCA290380FE0FEA214F101075BA2903803FB
+F8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA26D5B6D5B2B387EB730>
+89 D<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>91
+D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7E
+A26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E
+7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED
+01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C14
+0019477DBE30>I<1307EB1FC0EB7FF0497E000313FE000FEBFF80003F14E0D87FFD13F0
+39FFF07FF8EBC01FEB800F38FE0003007CEB01F00010EB00401D0E77B730>I<007FB612
+F0A2B712F8A36C15F0A225077B7D30>I<EB7FF80003B5FC4814C04880488048809038E0
+1FFC9038C003FE14016E7E6C487F6CC77FC8123FA491B5FC130F137F48B6FC12075A48EB
+803F383FF800EA7FE0138048C7FC5AA4157F7E6C6C13FFEBC003263FF01FEBFF8090B712
+C07E6C14EF000314876CD9FE01138026003FE0C8FC2A2A7BA830>97
+D<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82
+ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8160F
+A217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E
+7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B6
+12804815C048EB807F3907FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FC
+A25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF
+806C90B5FCC615006D5B011F13F801075B01011380232A7AA830>I<913801FFE04A7F5C
+A28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49
+131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F
+390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FC
+C8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC
+007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516
+F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE0
+6C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713
+E0021F13F05C4A13F891B5FC491387903803FE079138FC03F0903907F800C04A1300A800
+3FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C
+5C25397DB830>I<D903FC13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F90
+3AF801FE07C048486C6CC7FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C48
+5AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C0
+4815F0488148813A3FE0001FFE0180130148C8127F007E8100FE168048151FA56C153F00
+7FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F
+13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80
+023F13E091B57E90B67EA29138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3
+A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<
+14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003F
+B612C04815E0B7FCA27E6C15C023397AB830>I<EA7FF8487EA4127F1200AB0203B51280
+4A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A
+5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E1507
+6F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>107
+D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC
+137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03
+F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13
+C0A46C486C01071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E
+90B67E7E6C9038FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF8
+1FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F
+13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2
+4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15
+F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C
+13FC6D5B010F13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000
+FF90B57E90B612FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F17
+E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF003130091
+38FC0FFE91B55A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B
+6C5B2C3C80A730>I<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC00
+7F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307
+150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13
+C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I<ED07F83A3FFF803F
+FF486DB51280B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238801F809238000F
+004A90C7FC5C5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA730>I<9038
+1FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC
+13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C
+147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14
+F0D8F83F13C026780FFEC7FC222A79A830>I<EB0780497E131FA9003FB612E04815F0B7
+FCA36C15E026001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512
+E06D14C016806D14009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF
+14FFA2007F147F003F143F00001400B3A41501A2150315076D130F903A7FC07FFFF891B6
+12FC6D15FE7F6D4913FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3FFFC07FFF80
+486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F01
+7E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101
+035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813
+F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F
+80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF0
+7FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A2
+6C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A
+6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81
+FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3
+A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C49
+6C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F
+49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5A
+A36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFF
+E06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0F
+F8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7
+FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8
+FCA46C15FE28277DA630>I<ED3FF0913803FFF8140F5C147F16F09138FFF00092C7FC49
+5A5CB3A21303495A133F383FFFF0B55A5C91C8FC14C080003F7F38003FF813076D7E1301
+B3A2806D7E15F091387FFFF016F8141F8014039138003FF025477BBE30>I<127CA212FE
+B3B3B3AD127CA207476CBE30>I<EA7FE0EAFFFE6D7E8014F07EC66C7E13076D7E1301B3
+A2806D7E15E091387FFFE06E13F8801407141F5C4A13E09138FFE00092C7FC495A5CB3A2
+1303495A137F387FFFF0B5FC14C05C49C8FCEA7FE025477BBE30>I<017C133848B4137C
+48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713C0486C1380D87C0113
+003838007C1F0C78B730>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp cmr10 10.95 74
-/Fp 74 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
-00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
-80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
-EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
-D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
-D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
-30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
-0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
-5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
-D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<EA03F0EA0E1C487EEA1806
-EA380738700380A400F013C0AD00701380A3EA780700381300EA1806EA1C0E6C5AEA03F0
-121F7E9D17>48 D<13801203120F12F31203B3A6EA07C0EA7FFE0F1E7C9D17>I<EA03F0
-EA0C1CEA100E487E00401380128000F013C0EAF803A3EA200712001480A2EB0F00130E5B
-5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5FC121E7E9D17>I<EA03F0
-EA0C1CEA100EEA200F007813801307A2EA380F12001400A2131E131C1370EA07F0EA003C
-130E130FEB0780A214C0122012F8A300F013801240EB0F00EA200EEA183CEA07F0121F7E
-9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202A212041208A212101220A2
-124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803EA1FFE5B5B13E00010C7FC
-A6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012F0A200E013801240EB0700
-EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA0701380E0380EA0C07121838
-38030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F013C0A51270A214
-801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE014C0A238400080
-38800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A131F7E9D17>I<
-EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F06EA1FC8EA0FF0
-EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA600100201300EA
-1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E13071270EB038012F0A214
-C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB07001230EA7806130EEA700CEA
-2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA127012F8A3127005147C93
-0D>I<127012F8A312701200AA127012F012F8A212781208A31210A31220A21240051D7C
-930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801EA248B5FC
-EB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22>65
-D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F80EC07C0
-140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE0109038381C30
-9038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A91278
-007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E9F21
->I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8153CA215
-7C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B61280380F000F14
-031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A31540A315
-C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C01540A4EC20
-00A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<90380FE02090
-387818609038E004E03803800238070001481300001E1460A25A1520127C127800F81400
-A7EC7FFCEC03E000781301127C123CA27EA27E7E380380023900E0046090387818209038
-0FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF81D1F7E
-9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<EAFFF8EA0F8090C7FCB21402A41406
-1404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0A2D805C0130BA2
-D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3EB0384A2EB01C8
-A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F8003E0EC0080EA0B
-C0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F01478A2143C141E
-A2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB70383801C00E48487E
-39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8147CA900781478
-007C14F8A2003C14F0003E1301001E14E06CEB03C06C148039038007003801E01E380070
-38EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A41580A2EC0F00141E
-147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E48487E39070003
-804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F8147CA90078147800
-7C14F8A2003C14F0383E0781391E0841E0390F1023C00007148039039017003801D01E39
-00783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E297E9F23>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>I<38
-03F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4
-FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C6
-0300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C0143000
-801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3
-A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE39
-1F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB
-7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF8
-1FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C000035DEC
-19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090
-383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<12FFA2
-12C0B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA8040A3EAB8
-5CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80A10D>I<12
-0812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
+%DVIPSBitmapFont: Fr cmr10 10.95 81
+/Fr 81 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
+F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
+FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
+D<EC03FE91383FFF809138FE03E0903903F800F0D90FE013384948137C90393F8001FE90
+387F00035B5BA2485A6F5AED007093C7FCAA16FEB7FCA33901FC000315011500B3AC486C
+497EB5D8F87F13FCA32E407EBF33>I<EC03FF023F13EE9138FE01FEEB03F090380FE003
+EB1FC0EB3F80EB7F005B5B150148481300AEB7FCA3D801FCC7FCB3AE486C497EB5D8F87F
+13FCA32E407EBF33>I<DA03FE49B4FC91273FFF801F13C0913BFE03E07F01F0903C03F0
+00F1FC0078D90FE0D97FF0131C49484948133E4948484913FF494848495A5B491500A248
+485C03016E5A0300153896C7FCAA197FBBFCA3D801FCC738FE00018485B3AC486C496CEC
+FF80B5D8F87FD9FC3F13FEA347407EBF4C>I<001E130F397F803FC000FF137F01C013E0
+A201E013F0A3007F133F391E600F3000001300A401E01370491360A3000114E04913C000
+03130101001380481303000EEB070048130E0018130C0038131C003013181C1C7DBE2D>
+34 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313
+005A120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03801307EB0F00
+131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6
+127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F1378
+7F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E12
+1E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0
+A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12
+015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<121EEA7F8012FF13C0A213
+E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79
+8919>44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79
+8919>I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C157CA2157815F8
+A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2147814F8A2
+5C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813F8A25B1201
+A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A1260
+225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F4848
+EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8A5
+6C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C5B
+90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F137FEA07FF
+B5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090B5
+12E03903F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05AED3FE01270
+B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16004A5A5D4A5A
+4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C5B4914E048
+5A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90383FFF8090
+38F80FE03901E003F839078001FCD80F007F000E6D7E001E1580D81F80137F486C14C07F
+A27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCECFF
+809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C123F487E48
+7EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC3903F80FF0C6
+B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE1401A21403EC
+077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B
+1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD
+2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCAC
+EB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813
+C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F
+80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F824
+3F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E017EEB1FC049
+133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485AA214FE9038
+87FF8039FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914C0A2ED1FE0A3
+4914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C137E6C6C5B
+6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238123C123F90B6
+12FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC812
+7015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A313
+0F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090387C07E090
+38F001F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4123FA26DEB0F
+807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF806C91C7FC
+133F6D13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F800313C04848
+7E489038007FE0003E143F007E141F007CEC0FF01507481403A31501A46C15E0007C1403
+A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB512E0011F13
+80D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E48486C
+7E4848137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A5127F
+153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91FFE
+13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485AEB
+8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>I<12
+1EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E00
+0A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213
+C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619
+>I<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA34A
+C67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249819138
+800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2017882170F
+13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65
+D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0A2EF
+1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE7FE0
+91B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC1707
+A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C90380FFE00B85A
+17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E913A3FF007
+E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A
+91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E127FA3491600
+12FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C1678000117
+706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600
+FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>I<B712FCEE
+FF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E717E170184
+717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA24D5A
+6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD45>
+I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870A418381638
+A41800A21678A216F81501150791B5FCA3EC8007150115001678A21638A2180EA3181C93
+C7FCA4183C1838A21878A318F8EF01F0A21707170F173F48486CEB03FFB912E0A3373E7D
+BD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A21703A31701A4EF
+00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115001678A21638A693
+C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038FF80
+3C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE0141F4948140F49
+48140701FF15034890C8FC491501485A000716005B000F177C5B001F173CA2485AA2181C
+127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123FA27F121FA26C
+7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C902600
+FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C427BBF47>I<B6
+D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3A9
+2601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3B3B2
+EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F
+80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7FC
+3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA3000101E0C7000F138026007F80
+913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E4B5A
+4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC878791388F03FE91389E
+01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F717E84173F
+717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612F8A3
+000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C13
+3FB8FCA3313E7DBD39>I<B500C093B512C0A300016D4BEBE000D8007F1880D977F0ED03
+BFA3D973F8ED073FA3D971FC150EA2D970FE151CA3027F1538A36E6C1470A36E6C14E0A2
+6E6CEB01C0A36E6CEB0380A36E6CEB0700A26E6C130EA36E6C5BA3037F5BA26F6C5AA36F
+6C5AA392380FE1C0A3923807F380A26FB4C7FCA36F5AA213F8486C6D5AD807FFEFFFE0B5
+00F80178017FEBFFC0A34A3E7CBD53>I<B56C91B512F88080D8007F030713006EEC01FC
+6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E
+6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0F
+F8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED807
+FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E00
+07E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E000183
+49150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163FA3
+00FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A0003
+5F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03F8
+D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EEFF
+8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A218
+F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9FC
+B3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F000F
+E0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E49
+150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163FA200
+FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F805B
+6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F81903806
+1FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007E0
+91271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF0318
+FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF8000
+01D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017FF
+95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC0707E
+707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600C0
+EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC13189039
+1FFF8038017FEBE0783901FC03F83A03F0007CF8D807C0133F4848130F001F140748C7FC
+003E1403007E1401A2007C140012FC1678A46C1538A27EA26C6C14007F7FEA3FF8EBFF80
+6C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F020713F89138
+007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C157C6C15
+FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8E007
+13F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393FC0003F48
+C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107
+B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80EC01FC71
+5A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D6C5C6D6C
+141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF03D407DBD
+44>I<B691380FFFFEA3000301E0020113E06C01809138007F806CEF3F00017F163E181C
+6E153C013F1638A26E1578011F1670A26D6C5DA26E140101075EA26E140301035EA26D6C
+4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A26E6C5BA26F13F0020F5CA2
+EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED3FF8
+A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5D88007B5FCA3000301C001
+0101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F017F190E84A26D6C60A24D
+7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F001076104037F6E028114010103610407
+7F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C016
+1E023F171C047814F0DBE070010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB
+03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B
+81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8C003B512E0A3C649C7EBFC
+00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F0
+4C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A91
+3801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801C07F
+0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149
+486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FE
+A33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A013F041E
+C7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C5B17
+0E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E13016EEB83C05FED7FC7DB3FE7
+C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>I<003FB712F8A3
+91C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80A2003C4A1300007C4A5A12
+784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A5A4A5AA24A5AA24A5A4A5A
+A24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A495A173C495AA24890C8FC
+485A1778485A484815F8A24848140116034848140F4848143FED01FFB8FCA32E3E7BBD38
+>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>I<486C13C00003130101001380
+481303000EEB070048130E0018130C0038131C003013180070133800601330A300E01370
+481360A400CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01C013E0390F0007
+801C1C73BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>I<EA0180120313
+005A120E5A12181238123012701260A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA
+0F000B1C7ABE19>96 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D8
+1FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA
+07F8EA0FE0485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F870026
+1FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA3
+120712031201B1EC03FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91
+C77E49158049141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D15
+80EE3F006D5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA
+07F82D407EBE33>I<49B4FC010F13E090383F00F8017C131E4848131F4848137F0007EC
+FF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F00
+1F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D9
+01FEC7FC222A7DA828>I<ED01FC15FFA3150715031501B114FF010713E190381F80F990
+387E003D49131FD803F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E
+7FA2123FA26C7E000F14037F000714076C6C497E6C6C497ED8007C017913F890383F01F1
+90380FFFC1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01
+F848486C7E4848137E48487F000F158049131F001F15C04848130FA2127F16E090C7FCA2
+5AA290B6FCA290C9FCA67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C14
+00C66C131E017E5B90381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8
+903801F83C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6
+FCA3C648C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F
+8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147F
+A8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F800
+06CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7
+EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803
+F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712
+031201B1EC01FE913807FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D
+7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A248
+7EA46C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A
+>I<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5
+123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC0018
+5185BD1C>I<EA01FC12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC
+153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01
+FC7F496C7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE
+30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14
+FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000
+FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C
+496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC09138
+1E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25B
+B3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E
+01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C8
+12FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0F
+C06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901
+FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F
+49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F00
+7F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB5
+12F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803
+F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14
+036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190
+C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9
+C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>
+I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C0078130112F814
+00A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E00103
+13F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB03C090388007
+8039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112
+031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F1380
+90381F8700EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA30007140300031401
+00011400B3A51501A31503120015076DEB06FF017E010E13806D4913FC90381FC0789038
+07FFE00100903880FE002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC
+5E00015D7F00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2EC
+F01E0107131CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FC
+A3140E2B287EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C
+4817006D010F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805D
+ED3DFC1538D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7
+FC9138F1C01F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A130302
+7E5CA2027C1301023C5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C6
+90388007F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B
+6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49
+486C7ED90F007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D
+277FA630>I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA201
+7F495AA2EC8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A2
+6D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A21478
+00181370127EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA6
+30>I<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C
+4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B
+484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>
+I<BE12C0A25A0280985B>124 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fq cmbx12 20.736 13
-/Fq 13 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B6D8F803B612E0A426007FF0C70001EBC000B3A491B8FCA402F0C71201B3A7
-B6D8F803B612E0A4433B7CBA4C>I<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3
-170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>76
-D<B500F00207B512E0808080D8007F92390007E0006E6F5A81017B7F81137901787F6E7E
-6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F7E816F13806F13C017E06F13F081EE
-7FF8EE3FFC17FEEE1FFF827013837013C318E37013F382EF7FFBEF3FFFA283838383A283
-83187F183FA201FC161FB500FC150F18071803A2433B7CBA4C>78
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EA01E0EA
-07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512F0A4143D
-7DBC1A>105 D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE0D807F8EB0FF0
-48486D7EA248486D7E003F81A248486D7EA400FF1680A9007F1600A36C6C495AA2001F5D
-6D1307000F5D6C6C495AD803FEEB3FE03A00FF80FF806DB5C7FC010F13F8010113C02926
-7DA530>111 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000
-035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
-0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
-07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
-12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
-B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
-01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
-7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
-C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
-1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
-1FFCEA07F02E377EA533>121 D E
+%DVIPSBitmapFont: Fs cmbx12 20.736 13
+/Fs 13 122 df<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14074CB96C
+130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C09039003FFF
+814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A02F8834A
+02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A85495C8A4991
+CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2795A489B
+C9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80A36C80A2
+7E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F05F6E806E
+02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F138703039226FF
+8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4CC7120105
+0304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71
+D<BA00E049BA12C0A8C7003F0280CB6C91C8FCB3B3A994BDFCA80580CB7EB3B3ADBA00E0
+49BA12C0A88A767AF597>I<BBFCA8C7003F0280CCFCB3B3B3A9F507F8A41D0F1EF0A61D
+1FA31EE01D3FA31D7FA31DFFA25213C0A26464A26464646499B5FC09031480631B1F1B7F
+0803B6FC1A7FBFFCA31E00A565767AF574>76 D<B800C00507B812C083838383A28383C7
+003F6F93C7001F01F0C7FC72060190C8FC84A284848403EF8015E703E3808503E18103E0
+817080827080857080708070818286708171807180837180867180718171818372808772
+807280728084877281728172818573808873807380738085738189738174807480868974
+807480741580867415C01EE07514F07514F87514FC877514FE1EFF7515817515C1877614
+E11FF17614F97614FD7691B5FC8888A28888898989A289898989A2898A8A8A8AA28A8A8A
+8A8B903803FFFEB800F8858B8B8BA28B8B795A8A767AF597>78 D<BA00E0030FB8FCA8C7
+003F0280CC003FEBC000E503FCC7FCB3B3B3B3A46E1C0768A2836E1C0F68A26E1C1F7162
+A26E1C3F714F5A806E525A71606F6D97C8FC6F505A7118076F6D4E5A6F6EEF3FF86F6E4D
+5A6F6EEE01FF6F02F84C5B6F02FE041F5B043F6D6C037F90C9FC7002F0913807FFFE0407
+DAFF8090B55A040192B712F07061051F188005074DCAFC050017F0061F16C0060103FCCB
+FCDE000391CCFC88787AF595>85 D<92383FFFF80207B612E0027F15FC49B87E010717E0
+011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D806F6D80727F486E6E7F
+8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041F
+B7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800010F14C04991C7FC017F
+13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E
+5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE0001
+9139FC03FFC06C91B6487E013F4B487E010F4B1307010303F01301D9003F0280D9003F13
+FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E131F7FB3ADF0FFFC050FEB
+FFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226FDFFF001077F92B500C0
+01018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93C915804B7014C0A27414
+E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098B5FC1DE0A25014C0A26F
+1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B55A9226C3FF8001035C03
+8101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C04A010393C8FC4A010015
+F84A023F14C090C9000301F0C9FC5F797AF76C>I<EB01FCEB07FF011F13C0497F497F90
+B57EA24880A24880A76C5CA26C5CA26D5B6D5B6D5B010790C8FCEB01FC90CAFCB2903801
+FFFC007FB5FCA8C67E131F7FB3B3B3A5B81280A8297979F835>105
+D<93381FFFE00303B6FC031F15E092B712FC020316FF020F17C0023FD9FC0014F091B500
+C0010F13FC4991C700037F4901FC02007F010F496F13C049496F7F49496F7F4B8149496F
+7F90B5C96C7F4886A24849707F481B80A248497014C0A2481BE0A348497113F0A3481BF8
+A5B51AFCAE6C1BF8A46C1BF06E94B5FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B006C
+6E4B5BA26C6E4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0010F
+91C7FC010002FC90B512FC6E90B75A021F17E00207178002014CC8FCDA003F15F0030392
+C9FCDB001F13E056507BCE61>111 D<902601FFF8EB07FEB691383FFFC094B512F00403
+804C14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06D
+EBF9FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E095C8
+FCA25DA65DB3B3A2B812F8A8434E7ACD4F>114 D<912603FFFCEB0780027F9039FFE00F
+C00103B6EAF83F010FEDFEFF013F92B5FC49EB000F2601FFF01300480180143F4890C812
+0F4848814848814981123F83485A187FA212FF6D163FA37F7F6DEE1F8002C092C7FC14F0
+14FEECFFF06CECFF8016FEEEFFE06C16FC6C16FF18C06C836C17F86C836C836C83013F17
+806D17C0010717E0010117F0EB003F020716F8EC001F030015FC1607EE007F051F13FE17
+07007E82B482836D167FA2183F7F181FA27F19FC7FA26D163F6D17F86D167F19F06D16FF
+6E4A13E002E04A13C06E4A138002FE023F1300913AFFC003FFFE01E790B65A01C316F001
+8016C026FE003F92C7FC48010714F80070D9007F90C8FC3F507ACE4C>I<15FFA75CA55C
+A45CA25CA25CA25CA25C91B5FCA25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FCB3B3
+A3F01FE0AE183F7014C07F187F7014806D16FF826D4B13006E6D485AEEFE0F6E90B55A02
+0F5D6E5D020115C06E6C5C031F49C7FC030113F03B6E7CEC4B>I<B892B612F8A8D8001F
+49C90003EBF0006D6D04001380A26D6E94C7FC626D6E5E1A03A26D6E4B5AA26D6E4B5AA2
+6E6D5E1A1F6E6D5E1A3F6E6070157FA26E6D4B5AA26E6E4990C8FCA26E6E5C19036E6E5C
+1907A26E6E495AA26F6D495AA26F6D5C193F6F6D5C197F6F5E7113FFA26F028190C9FCA2
+6FECC3FEA26FECE3FC18E76FECF7F818FFA2705CA2705CA2705CA2705CA37091CAFCA270
+5BA2705BA2705BA2715AA3715AA24D5AA26017FF95CBFC5EA24C5AEA03F8D80FFE4A5A48
+7E486D495A487F5FB56C131F5F163F4C5AA24C5A4B90CCFC6C49485A4B5AEC800F6C9038
+003FF849EBFFF0261FFC0713C06CB65A6C92CDFC6C14FCC614F0013F13C0D907FCCEFC5D
+6F7CCC66>121 D E
%EndDVIPSBitmapFont
end
%%EndProlog
%%BeginSetup
-%%Feature: *Resolution 300dpi
+%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: Letter
letter
@@ -819,838 +1819,1483 @@ letter
%%EndSetup
%%Page: 1 1
-1 0 bop 75 659 a Fq(GNU)33 b(History)f(Library)p 75 709
-1800 17 v 960 757 a Fp(Edition)16 b(4.3,)e(for)h Fo(History)f(Library)g
-Fp(V)l(ersion)i(4.3.)1643 811 y(Marc)o(h)e(2002)75 2467
-y Fn(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)
--6 b(oundation)75 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6
-b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570
-1800 9 v eop
+1 0 bop 150 1318 a Fs(GNU)65 b(History)i(Library)p 150
+1418 3600 34 v 1920 1515 a Fr(Edition)29 b(5.0,)j(for)e
+Fq(History)e(Library)h Fr(V)-8 b(ersion)30 b(5.0.)3218
+1623 y(Jan)m(uary)g(2004)150 4935 y Fp(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
%%Page: 2 2
-2 1 bop 75 217 a Fp(This)21 b(do)q(cumen)o(t)g(describ)q(es)h(the)f
-(GNU)f(History)g(library)l(,)j(a)d(programming)g(to)q(ol)g(that)g(pro)o
-(vides)h(a)75 271 y(consisten)o(t)15 b(user)h(in)o(terface)f(for)g
-(recalling)i(lines)f(of)f(previously)i(t)o(yp)q(ed)e(input.)75
-339 y(Published)i(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)75 394 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
-448 y(Boston,)d(MA)h(02111)f(USA)75 516 y(P)o(ermission)j(is)f(gran)o
-(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
-(this)h(man)o(ual)f(pro)o(vided)h(the)75 570 y(cop)o(yrigh)o(t)e
-(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
-(on)f(all)h(copies.)75 638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
-(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
-(man)o(ual)g(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h
-(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
-(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g
-(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fm(\015)h Fp(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1007 b(1)75 149 y Fl(1)41 b(Using)26 b(History)h(In)n(teractiv)n
-(ely)137 289 y Fp(This)17 b(c)o(hapter)g(describ)q(es)h(ho)o(w)e(to)g
-(use)h(the)g Fk(gnu)f Fp(History)g(Library)h(in)o(teractiv)o(ely)l(,)h
-(from)e(a)g(user's)75 344 y(standp)q(oin)o(t.)38 b(It)21
-b(should)h(b)q(e)g(considered)g(a)f(user's)g(guide.)38
-b(F)l(or)21 b(information)g(on)g(using)h(the)f Fk(gnu)75
-398 y Fp(History)c(Library)h(in)h(y)o(our)e(o)o(wn)g(programs,)f(see)i
-(Chapter)f(2)h([Programming)e(with)i(GNU)f(History],)75
-453 y(page)e(5.)75 600 y Fn(1.1)33 b(History)22 b(Expansion)137
-704 y Fp(The)c(History)g(library)h(pro)o(vides)f(a)f(history)h
-(expansion)h(feature)e(that)h(is)g(similar)h(to)e(the)h(history)75
-759 y(expansion)12 b(pro)o(vided)g(b)o(y)f Fo(csh)p Fp(.)18
-b(This)11 b(section)h(describ)q(es)g(the)g(syn)o(tax)e(used)h(to)g
-(manipulate)h(the)f(history)75 814 y(information.)137
-888 y(History)k(expansions)h(in)o(tro)q(duce)h(w)o(ords)d(from)g(the)i
-(history)f(list)h(in)o(to)f(the)h(input)g(stream,)e(making)75
-943 y(it)h(easy)g(to)g(rep)q(eat)g(commands,)g(insert)h(the)f(argumen)o
-(ts)f(to)h(a)g(previous)h(command)f(in)o(to)g(the)g(curren)o(t)75
-998 y(input)h(line,)h(or)d(\014x)i(errors)e(in)i(previous)g(commands)f
-(quic)o(kly)l(.)137 1072 y(History)j(expansion)i(tak)o(es)d(place)i(in)
-h(t)o(w)o(o)d(parts.)28 b(The)19 b(\014rst)f(is)g(to)g(determine)i
-(whic)o(h)f(line)h(from)75 1127 y(the)h(history)f(list)i(should)g(b)q
-(e)f(used)g(during)h(substitution.)37 b(The)21 b(second)g(is)g(to)f
-(select)i(p)q(ortions)e(of)75 1182 y(that)15 b(line)i(for)d(inclusion)k
-(in)o(to)d(the)h(curren)o(t)f(one.)20 b(The)c(line)g(selected)h(from)e
-(the)g(history)g(is)h(called)h(the)75 1237 y Fj(ev)o(en)o(t)p
-Fp(,)c(and)h(the)g(p)q(ortions)g(of)f(that)g(line)i(that)e(are)g(acted)
-h(up)q(on)g(are)f(called)j Fj(w)o(ords)p Fp(.)i(V)l(arious)c
-Fj(mo)q(di\014ers)75 1292 y Fp(are)i(a)o(v)m(ailable)i(to)e(manipulate)
-i(the)e(selected)i(w)o(ords.)23 b(The)17 b(line)h(is)f(brok)o(en)f(in)o
-(to)h(w)o(ords)e(in)j(the)e(same)75 1346 y(fashion)c(that)e(Bash)i(do)q
-(es,)g(so)f(that)g(sev)o(eral)g(w)o(ords)g(surrounded)h(b)o(y)f(quotes)
-h(are)f(considered)h(one)g(w)o(ord.)75 1401 y(History)18
-b(expansions)h(are)g(in)o(tro)q(duced)g(b)o(y)f(the)h(app)q(earance)g
-(of)f(the)g(history)h(expansion)g(c)o(haracter,)75 1456
-y(whic)o(h)d(is)g(`)p Fo(!)p Fp(')e(b)o(y)h(default.)75
-1583 y Fi(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)137
-1687 y Fp(An)16 b(ev)o(en)o(t)f(designator)g(is)g(a)g(reference)h(to)f
-(a)g(command)g(line)i(en)o(try)d(in)i(the)g(history)f(list.)75
-1777 y Fo(!)216 b Fp(Start)16 b(a)g(history)h(substitution,)g(except)h
-(when)f(follo)o(w)o(ed)g(b)o(y)f(a)h(space,)g(tab,)f(the)h(end)g(of)315
-1832 y(the)e(line,)i(`)p Fo(=)p Fp(')d(or)h(`)p Fo(\()p
-Fp('.)75 1919 y Fo(!)p Fj(n)191 b Fp(Refer)15 b(to)f(command)h(line)i
-Fj(n)p Fp(.)75 2006 y Fo(!-)p Fj(n)167 b Fp(Refer)15
-b(to)f(the)i(command)f Fj(n)g Fp(lines)i(bac)o(k.)75
-2094 y Fo(!!)192 b Fp(Refer)15 b(to)f(the)i(previous)f(command.)20
-b(This)c(is)g(a)f(synon)o(ym)g(for)f(`)p Fo(!-1)p Fp('.)75
-2181 y Fo(!)p Fj(string)102 b Fp(Refer)15 b(to)f(the)i(most)e(recen)o
-(t)h(command)g(starting)g(with)g Fj(string)p Fp(.)75
-2268 y Fo(!?)p Fj(string)t Fo([?])315 2323 y Fp(Refer)h(to)g(the)h
-(most)f(recen)o(t)h(command)g(con)o(taining)g Fj(string)p
-Fp(.)25 b(The)17 b(trailing)g(`)p Fo(?)p Fp(')f(ma)o(y)g(b)q(e)315
-2377 y(omitted)f(if)h(the)f Fj(string)k Fp(is)d(follo)o(w)o(ed)f
-(immediately)i(b)o(y)e(a)g(newline.)75 2464 y Fo(^)p
-Fj(string1)t Fo(^)p Fj(string2)t Fo(^)315 2519 y Fp(Quic)o(k)i
-(Substitution.)23 b(Rep)q(eat)16 b(the)g(last)f(command,)h(replacing)h
-Fj(string1)i Fp(with)e Fj(string2)p Fp(.)315 2574 y(Equiv)m(alen)o(t)g
-(to)d Fo(!!:s/)p Fj(string1)t Fo(/)p Fj(string2)t Fo(/)p
-Fp(.)75 2661 y Fo(!#)192 b Fp(The)15 b(en)o(tire)h(command)f(line)i(t)o
-(yp)q(ed)f(so)e(far.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fp(2)1347 b(GNU)15 b(History)g(Library)75
-149 y Fi(1.1.2)30 b(W)-5 b(ord)20 b(Designators)137 247
-y Fp(W)l(ord)d(designators)g(are)g(used)h(to)f(select)h(desired)h(w)o
-(ords)d(from)h(the)g(ev)o(en)o(t.)26 b(A)18 b(`)p Fo(:)p
-Fp(')e(separates)h(the)75 302 y(ev)o(en)o(t)j(sp)q(eci\014cation)h
-(from)e(the)h(w)o(ord)f(designator.)34 b(It)20 b(ma)o(y)f(b)q(e)h
-(omitted)g(if)g(the)g(w)o(ord)f(designator)75 357 y(b)q(egins)f(with)g
-(a)e(`)p Fo(^)p Fp(',)h(`)p Fo($)p Fp(',)f(`)p Fo(*)p
-Fp(',)g(`)p Fo(-)p Fp(',)g(or)h(`)p Fo(\045)p Fp('.)24
-b(W)l(ords)17 b(are)g(n)o(um)o(b)q(ered)g(from)g(the)g(b)q(eginning)i
-(of)e(the)g(line,)75 411 y(with)j(the)g(\014rst)f(w)o(ord)h(b)q(eing)h
-(denoted)f(b)o(y)g(0)f(\(zero\).)33 b(W)l(ords)20 b(are)f(inserted)i
-(in)o(to)f(the)g(curren)o(t)f(line)75 466 y(separated)c(b)o(y)g(single)
-i(spaces.)137 535 y(F)l(or)e(example,)75 616 y Fo(!!)192
-b Fp(designates)18 b(the)g(preceding)i(command.)28 b(When)18
-b(y)o(ou)g(t)o(yp)q(e)g(this,)h(the)f(preceding)h(com-)315
-671 y(mand)c(is)h(rep)q(eated)g(in)g(toto.)75 752 y Fo(!!:$)144
-b Fp(designates)12 b(the)f(last)g(argumen)o(t)f(of)h(the)g(preceding)i
-(command.)19 b(This)11 b(ma)o(y)g(b)q(e)h(shortened)315
-807 y(to)j Fo(!$)p Fp(.)75 887 y Fo(!fi:2)120 b Fp(designates)15
-b(the)g(second)g(argumen)o(t)f(of)g(the)h(most)f(recen)o(t)g(command)h
-(starting)f(with)h(the)315 942 y(letters)g Fo(fi)p Fp(.)137
-1024 y(Here)h(are)f(the)g(w)o(ord)f(designators:)75 1105
-y Fo(0)h(\(zero\))57 b Fp(The)15 b Fo(0)p Fp(th)g(w)o(ord.)20
-b(F)l(or)14 b(man)o(y)h(applications,)h(this)g(is)g(the)f(command)g(w)o
-(ord.)75 1186 y Fj(n)215 b Fp(The)15 b Fj(n)p Fp(th)h(w)o(ord.)75
-1267 y Fo(^)216 b Fp(The)15 b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o
-(ord)g(1.)75 1348 y Fo($)216 b Fp(The)15 b(last)h(argumen)o(t.)75
-1429 y Fo(\045)216 b Fp(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g
-(most)g(recen)o(t)g(`)p Fo(?)p Fj(string)t Fo(?)p Fp(')f(searc)o(h.)75
-1510 y Fj(x)p Fo(-)p Fj(y)168 b Fp(A)15 b(range)g(of)g(w)o(ords;)f(`)p
-Fo(-)p Fj(y)t Fp(')g(abbreviates)i(`)p Fo(0-)p Fj(y)t
-Fp('.)75 1591 y Fo(*)216 b Fp(All)15 b(of)f(the)f(w)o(ords,)g(except)i
-(the)f Fo(0)p Fp(th.)19 b(This)14 b(is)h(a)e(synon)o(ym)h(for)f(`)p
-Fo(1-$)p Fp('.)18 b(It)c(is)g(not)g(an)g(error)315 1645
-y(to)g(use)h(`)p Fo(*)p Fp(')f(if)i(there)e(is)i(just)e(one)h(w)o(ord)f
-(in)i(the)f(ev)o(en)o(t;)f(the)h(empt)o(y)g(string)g(is)g(returned)g
-(in)315 1700 y(that)f(case.)75 1781 y Fj(x)s Fo(*)189
-b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p Fp(')75 1862
-y Fj(x)p Fo(-)192 b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p
-Fp(')e(lik)o(e)i(`)p Fj(x)s Fo(*)p Fp(',)e(but)i(omits)f(the)g(last)g
-(w)o(ord.)137 1943 y(If)i(a)g(w)o(ord)f(designator)h(is)h(supplied)h
-(without)e(an)g(ev)o(en)o(t)f(sp)q(eci\014cation,)j(the)e(previous)h
-(command)75 1998 y(is)e(used)f(as)g(the)h(ev)o(en)o(t.)75
-2113 y Fi(1.1.3)30 b(Mo)r(di\014ers)137 2210 y Fp(After)10
-b(the)h(optional)g(w)o(ord)e(designator,)i(y)o(ou)f(can)h(add)f(a)g
-(sequence)i(of)e(one)g(or)g(more)g(of)g(the)g(follo)o(wing)75
-2265 y(mo)q(di\014ers,)16 b(eac)o(h)f(preceded)i(b)o(y)e(a)g(`)p
-Fo(:)p Fp('.)75 2346 y Fo(h)216 b Fp(Remo)o(v)o(e)14
-b(a)h(trailing)h(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the)
-f(head.)75 2427 y Fo(t)216 b Fp(Remo)o(v)o(e)14 b(all)i(leading)h
-(pathname)e(comp)q(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)75
-2508 y Fo(r)216 b Fp(Remo)o(v)o(e)14 b(a)h(trailing)h(su\016x)f(of)g
-(the)g(form)g(`)p Fo(.)p Fj(su\016x)s Fp(',)f(lea)o(ving)i(the)f
-(basename.)75 2589 y Fo(e)216 b Fp(Remo)o(v)o(e)14 b(all)i(but)g(the)f
-(trailing)h(su\016x.)75 2670 y Fo(p)216 b Fp(Prin)o(t)15
-b(the)g(new)h(command)f(but)g(do)g(not)g(execute)h(it.)p
+2 1 bop 150 3024 a Fr(This)34 b(do)s(cumen)m(t)i(describ)s(es)e(the)i
+(GNU)g(History)g(library)d(\(v)m(ersion)j(5.0,)i(28)f(Jan)m(uary)e
+(2004\),)40 b(a)c(pro-)150 3133 y(gramming)22 b(to)s(ol)g(that)h(pro)m
+(vides)e(a)i(consisten)m(t)g(user)e(in)m(terface)i(for)f(recalling)f
+(lines)g(of)h(previously)e(t)m(yp)s(ed)150 3243 y(input.)150
+3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377 y Fo(\015)30
+b Fr(1988-2004)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)31 b(Inc.)150 3512 y(P)m(ermission)f(is)i(gran)m(ted)h(to)
+f(mak)m(e)i(and)d(distribute)f(v)m(erbatim)i(copies)g(of)g(this)f(man)m
+(ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)g
+(this)f(p)s(ermission)f(notice)i(are)h(preserv)m(ed)f(on)h(all)e
+(copies.)390 3756 y(P)m(ermission)k(is)i(gran)m(ted)g(to)h(cop)m(y)-8
+b(,)38 b(distribute)33 b(and/or)i(mo)s(dify)e(this)h(do)s(cumen)m(t)h
+(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
+b(ree)39 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)38
+b(1.1)h(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)27
+b(published)c(b)m(y)28 b(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
+b(oundation;)29 b(with)d(no)h(In)m(v)-5 b(arian)m(t)27
+b(Sections,)390 4085 y(with)i(the)i(F)-8 b(ron)m(t-Co)m(v)m(er)33
+b(texts)e(b)s(eing)f(\\A)h(GNU)g(Man)m(ual,")g(and)f(with)f(the)i(Bac)m
+(k-Co)m(v)m(er)390 4194 y(T)-8 b(exts)33 b(as)g(in)e(\(a\))i(b)s(elo)m
+(w.)46 b(A)33 b(cop)m(y)g(of)f(the)h(license)e(is)h(included)d(in)i
+(the)i(section)f(en)m(titled)390 4304 y(\\GNU)f(F)-8
+b(ree)32 b(Do)s(cumen)m(tation)f(License.")390 4438 y(\(a\))39
+b(The)f(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)39 b(is:)55
+b(\\Y)-8 b(ou)39 b(ha)m(v)m(e)g(freedom)f(to)h(cop)m(y)f(and)g(mo)s
+(dify)390 4548 y(this)31 b(GNU)j(Man)m(ual,)f(lik)m(e)f(GNU)h(soft)m(w)
+m(are.)49 b(Copies)31 b(published)e(b)m(y)j(the)h(F)-8
+b(ree)34 b(Soft)m(w)m(are)390 4658 y(F)-8 b(oundation)30
+b(raise)g(funds)e(for)j(GNU)g(dev)m(elopmen)m(t.")150
+4902 y(Published)c(b)m(y)j(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation)150 5011 y(59)31 b(T)-8 b(emple)30 b(Place,)h(Suite)e(330,)
+150 5121 y(Boston,)j(MA)e(02111-1307)150 5230 y(USA)p
eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1007 b(3)75 149 y Fo(s/)p Fj(old)r Fo(/)p Fj(new)t
-Fo(/)315 204 y Fp(Substitute)17 b Fj(new)j Fp(for)c(the)h(\014rst)e(o)q
-(ccurrence)j(of)e Fj(old)i Fp(in)f(the)g(ev)o(en)o(t)f(line.)25
-b(An)o(y)16 b(delimiter)315 259 y(ma)o(y)c(b)q(e)h(used)g(in)g(place)g
-(of)f(`)p Fo(/)p Fp('.)18 b(The)13 b(delimiter)h(ma)o(y)e(b)q(e)h
-(quoted)f(in)i Fj(old)g Fp(and)f Fj(new)k Fp(with)12
-b(a)315 314 y(single)j(bac)o(kslash.)20 b(If)15 b(`)p
-Fo(&)p Fp(')e(app)q(ears)h(in)h Fj(new)p Fp(,)f(it)g(is)h(replaced)g(b)
-o(y)f Fj(old)p Fp(.)20 b(A)14 b(single)i(bac)o(kslash)315
-369 y(will)j(quote)e(the)h(`)p Fo(&)p Fp('.)25 b(The)17
-b(\014nal)i(delimiter)g(is)f(optional)g(if)f(it)h(is)g(the)f(last)g(c)o
-(haracter)g(on)315 423 y(the)e(input)h(line.)75 503 y
-Fo(&)216 b Fp(Rep)q(eat)15 b(the)g(previous)h(substitution.)75
-583 y Fo(g)216 b Fp(Cause)19 b(c)o(hanges)h(to)e(b)q(e)i(applied)h(o)o
-(v)o(er)e(the)g(en)o(tire)h(ev)o(en)o(t)f(line.)34 b(Used)20
-b(in)g(conjunction)315 638 y(with)c(`)p Fo(s)p Fp(',)d(as)i(in)h
-Fo(gs/)p Fj(old)r Fo(/)p Fj(new)t Fo(/)p Fp(,)f(or)g(with)g(`)p
-Fo(&)p Fp('.)p eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fp(4)1347 b(GNU)15 b(History)g(Library)p
+%%Page: -1 3
+-1 2 bop 3725 -116 a Fr(i)150 299 y Fn(T)-13 b(able)54
+b(of)g(Con)l(ten)l(ts)150 641 y Fp(1)135 b(Using)45 b(History)h(In)l
+(teractiv)l(ely)18 b Fm(.)23 b(.)c(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)63 b Fp(1)449 778 y Fr(1.1)92
+b(History)30 b(Expansion)9 b Fl(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 b
+Fr(1)748 888 y(1.1.1)93 b(Ev)m(en)m(t)31 b(Designators)24
+b Fl(.)15 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54
+b Fr(1)748 997 y(1.1.2)93 b(W)-8 b(ord)30 b(Designators)9
+b Fl(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39
+b Fr(1)748 1107 y(1.1.3)93 b(Mo)s(di\014ers)9 b Fl(.)k(.)i(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)38
+b Fr(2)150 1349 y Fp(2)135 b(Programming)46 b(with)f(GNU)g(History)33
+b Fm(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76
+b Fp(5)449 1486 y Fr(2.1)92 b(In)m(tro)s(duction)29 b(to)i(History)19
+b Fl(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
+b Fr(5)449 1596 y(2.2)92 b(History)30 b(Storage)25 b
+Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fr(5)449 1705 y(2.3)92
+b(History)30 b(F)-8 b(unctions)23 b Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53
+b Fr(6)748 1815 y(2.3.1)93 b(Initializing)27 b(History)j(and)f(State)j
+(Managemen)m(t)f Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)59 b
+Fr(6)748 1924 y(2.3.2)93 b(History)30 b(List)f(Managemen)m(t)i
+Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)58 b Fr(6)748 2034 y(2.3.3)93
+b(Information)29 b(Ab)s(out)h(the)g(History)g(List)23
+b Fl(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)52
+b Fr(7)748 2144 y(2.3.4)93 b(Mo)m(ving)30 b(Around)f(the)i(History)f
+(List)21 b Fl(.)14 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)51 b Fr(7)748 2253 y(2.3.5)93 b(Searc)m(hing)29
+b(the)i(History)f(List)15 b Fl(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
+b Fr(8)748 2363 y(2.3.6)93 b(Managing)30 b(the)h(History)f(File)11
+b Fl(.)j(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)41 b Fr(8)748 2472 y(2.3.7)93
+b(History)30 b(Expansion)18 b Fl(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)48 b Fr(9)449 2582 y(2.4)92 b(History)30
+b(V)-8 b(ariables)11 b Fl(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)40 b Fr(10)449
+2692 y(2.5)92 b(History)30 b(Programming)f(Example)13
+b Fl(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)42 b Fr(11)150 2934
+y Fp(App)t(endix)i(A)99 b(Cop)l(ying)46 b(This)e(Man)l(ual)29
+b Fm(.)20 b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)74
+b Fp(13)449 3071 y Fr(A.1)92 b(GNU)31 b(F)-8 b(ree)31
+b(Do)s(cumen)m(tation)g(License)c Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
+b Fr(13)748 3181 y(A.1.1)92 b(ADDENDUM:)33 b(Ho)m(w)e(to)g(use)f(this)f
+(License)h(for)h(y)m(our)930 3290 y(do)s(cumen)m(ts)c
+Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)57 b Fr(19)150 3533 y Fp(App)t(endix)44
+b(B)105 b(Concept)46 b(Index)16 b Fm(.)j(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
+h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)61 b Fp(21)150 3802
+y(App)t(endix)44 b(C)104 b(F)-11 b(unction)44 b(and)h(V)-11
+b(ariable)46 b(Index)13 b Fm(.)19 b(.)g(.)h(.)f(.)58
+b Fp(23)p eop
+%%Page: -2 4
+-2 3 bop 150 -116 a Fr(ii)2689 b(GNU)31 b(History)f(Library)p
eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(5)75 149 y Fl(2)41 b(Programming)28 b(with)e(GNU)i
-(History)137 269 y Fp(This)17 b(c)o(hapter)f(describ)q(es)i(ho)o(w)e
-(to)f(in)o(terface)i(programs)e(that)g(y)o(ou)h(write)g(with)h(the)f
-Fk(gnu)g Fp(History)75 324 y(Library)l(.)24 b(It)17 b(should)g(b)q(e)g
-(considered)h(a)e(tec)o(hnical)i(guide.)25 b(F)l(or)15
-b(information)i(on)f(the)h(in)o(teractiv)o(e)g(use)75
-379 y(of)e Fk(gnu)g Fp(History)l(,)g(see)g(Chapter)g(1)g([Using)g
-(History)g(In)o(teractiv)o(ely],)h(page)f(1.)75 509 y
-Fn(2.1)33 b(In)n(tro)r(duction)24 b(to)e(History)137
-607 y Fp(Man)o(y)11 b(programs)f(read)h(input)i(from)d(the)i(user)f(a)g
-(line)i(at)e(a)g(time.)19 b(The)12 b Fk(gnu)f Fp(History)g(library)h
-(is)g(able)75 661 y(to)i(k)o(eep)g(trac)o(k)g(of)g(those)g(lines,)i
-(asso)q(ciate)e(arbitrary)g(data)g(with)g(eac)o(h)h(line,)h(and)e
-(utilize)j(information)75 716 y(from)d(previous)i(lines)h(in)f(comp)q
-(osing)g(new)f(ones.)137 784 y(The)f(programmer)f(using)h(the)g
-(History)g(library)g(has)g(a)o(v)m(ailable)h(functions)g(for)e(remem)o
-(b)q(ering)h(lines)75 839 y(on)c(a)g(history)h(list,)g(asso)q(ciating)g
-(arbitrary)f(data)f(with)i(a)f(line,)j(remo)o(ving)d(lines)i(from)d
-(the)i(list,)h(searc)o(hing)75 894 y(through)17 b(the)h(list)g(for)f(a)
-h(line)h(con)o(taining)f(an)g(arbitrary)f(text)g(string,)h(and)g
-(referencing)h(an)o(y)e(line)i(in)75 949 y(the)c(list)i(directly)l(.)22
-b(In)16 b(addition,)g(a)f(history)g Fj(expansion)h Fp(function)h(is)e
-(a)o(v)m(ailable)i(whic)o(h)g(pro)o(vides)f(for)e(a)75
-1003 y(consisten)o(t)h(user)h(in)o(terface)f(across)g(di\013eren)o(t)g
-(programs.)137 1072 y(The)f(user)h(using)f(programs)f(written)h(with)g
-(the)g(History)g(library)h(has)f(the)g(b)q(ene\014t)h(of)e(a)h
-(consisten)o(t)75 1126 y(user)20 b(in)o(terface)f(with)h(a)f(set)h(of)f
-(w)o(ell-kno)o(wn)h(commands)g(for)e(manipulating)k(the)d(text)g(of)g
-(previous)75 1181 y(lines)c(and)f(using)h(that)e(text)g(in)i(new)f
-(commands.)19 b(The)14 b(basic)h(history)e(manipulation)j(commands)d
-(are)75 1236 y(similar)j(to)f(the)g(history)g(substitution)h(pro)o
-(vided)g(b)o(y)g Fo(csh)p Fp(.)137 1304 y(If)f(the)g(programmer)f
-(desires,)h(he)g(can)g(use)g(the)g(Readline)h(library)l(,)g(whic)o(h)f
-(includes)j(some)c(history)75 1359 y(manipulation)j(b)o(y)e(default,)g
-(and)h(has)f(the)g(added)h(adv)m(an)o(tage)f(of)f(command)h(line)i
-(editing.)137 1427 y(Before)i(declaring)i(an)o(y)d(functions)i(using)g
-(an)o(y)f(functionalit)o(y)h(the)f(History)g(library)h(pro)o(vides)f
-(in)75 1482 y(other)14 b(co)q(de,)h(an)f(application)i(writer)e(should)
-i(include)g(the)f(\014le)g Fo(<readline/history.h>)d
-Fp(in)j(an)o(y)f(\014le)75 1537 y(that)d(uses)h(the)h(History)e
-(library's)i(features.)18 b(It)12 b(supplies)i(extern)e(declarations)h
-(for)e(all)i(of)f(the)g(library's)75 1591 y(public)17
-b(functions)f(and)g(v)m(ariables,)g(and)f(declares)h(all)g(of)f(the)h
-(public)h(data)d(structures.)75 1722 y Fn(2.2)33 b(History)22
-b(Storage)137 1819 y Fp(The)16 b(history)f(list)h(is)g(an)f(arra)o(y)f
-(of)g(history)i(en)o(tries.)k(A)15 b(history)g(en)o(try)g(is)h
-(declared)g(as)f(follo)o(ws:)195 1885 y Fo(typedef)23
-b(void)g(*histdata_t;)195 1988 y(typedef)g(struct)g(_hist_entry)f({)243
-2040 y(char)h(*line;)243 2092 y(histdata_t)f(data;)195
-2144 y(})i(HIST_ENTRY;)137 2212 y Fp(The)16 b(history)f(list)h(itself)g
-(migh)o(t)f(therefore)g(b)q(e)h(declared)g(as)195 2277
-y Fo(HIST_ENTRY)22 b(**the_history_list;)137 2345 y Fp(The)16
-b(state)e(of)h(the)g(History)g(library)h(is)g(encapsulated)g(in)o(to)f
-(a)g(single)i(structure:)195 2411 y Fo(/*)219 2462 y(*)24
-b(A)f(structure)g(used)g(to)h(pass)f(around)g(the)h(current)f(state)g
-(of)g(the)h(history.)219 2514 y(*/)195 2566 y(typedef)f(struct)g
-(_hist_state)f({)243 2618 y(HIST_ENTRY)g(**entries;)h(/*)g(Pointer)g
-(to)h(the)f(entries)g(themselves.)g(*/)243 2670 y(int)g(offset;)262
-b(/*)23 b(The)h(location)f(pointer)f(within)h(this)h(array.)f(*/)p
+%%Page: 1 5
+1 4 bop 150 -116 a Fr(Chapter)30 b(1:)41 b(Using)29 b(History)h(In)m
+(teractiv)m(ely)2014 b(1)150 299 y Fn(1)80 b(Using)54
+b(History)g(In)l(teractiv)l(ely)275 562 y Fr(This)31
+b(c)m(hapter)j(describ)s(es)d(ho)m(w)i(to)h(use)f(the)g
+Fk(gnu)g Fr(History)g(Library)e(in)m(teractiv)m(ely)-8
+b(,)34 b(from)f(a)h(user's)150 672 y(standp)s(oin)m(t.)75
+b(It)42 b(should)e(b)s(e)i(considered)f(a)h(user's)g(guide.)75
+b(F)-8 b(or)43 b(information)d(on)i(using)f(the)h Fk(gnu)150
+781 y Fr(History)35 b(Library)e(in)h(y)m(our)g(o)m(wn)i(programs,)g
+(see)f(Chapter)g(2)g([Programming)f(with)g(GNU)i(History],)150
+891 y(page)31 b(5.)150 1172 y Fp(1.1)68 b(History)46
+b(Expansion)275 1426 y Fr(The)35 b(History)g(library)e(pro)m(vides)i(a)
+h(history)e(expansion)h(feature)h(that)g(is)f(similar)e(to)j(the)g
+(history)150 1536 y(expansion)21 b(pro)m(vided)f(b)m(y)i
+Fq(csh)p Fr(.)37 b(This)21 b(section)h(describ)s(es)e(the)i(syn)m(tax)h
+(used)e(to)h(manipulate)f(the)h(history)150 1645 y(information.)275
+1789 y(History)30 b(expansions)f(in)m(tro)s(duce)g(w)m(ords)h(from)g
+(the)h(history)e(list)g(in)m(to)h(the)h(input)e(stream,)i(making)150
+1899 y(it)f(easy)h(to)g(rep)s(eat)g(commands,)f(insert)f(the)i(argumen)
+m(ts)f(to)h(a)g(previous)e(command)h(in)m(to)h(the)f(curren)m(t)150
+2009 y(input)e(line,)h(or)i(\014x)f(errors)f(in)g(previous)g(commands)h
+(quic)m(kly)-8 b(.)275 2153 y(History)36 b(expansion)f(tak)m(es)j
+(place)f(in)e(t)m(w)m(o)j(parts.)59 b(The)36 b(\014rst)g(is)g(to)h
+(determine)f(whic)m(h)f(line)g(from)150 2262 y(the)42
+b(history)e(list)g(should)f(b)s(e)i(used)f(during)f(substitution.)72
+b(The)40 b(second)i(is)e(to)i(select)g(p)s(ortions)e(of)150
+2372 y(that)31 b(line)e(for)h(inclusion)e(in)m(to)i(the)h(curren)m(t)f
+(one.)42 b(The)30 b(line)f(selected)i(from)f(the)h(history)e(is)h
+(called)g(the)150 2481 y Fj(ev)m(en)m(t)p Fr(,)g(and)c(the)i(p)s
+(ortions)d(of)j(that)f(line)f(that)i(are)f(acted)i(up)s(on)c(are)j
+(called)e Fj(w)m(ords)p Fr(.)39 b(V)-8 b(arious)27 b
+Fj(mo)s(di\014ers)150 2591 y Fr(are)33 b(a)m(v)-5 b(ailable)33
+b(to)g(manipulate)f(the)h(selected)g(w)m(ords.)48 b(The)32
+b(line)g(is)g(brok)m(en)g(in)m(to)h(w)m(ords)g(in)e(the)j(same)150
+2701 y(fashion)22 b(that)h(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)f
+(w)m(ords)f(surrounded)e(b)m(y)j(quotes)g(are)g(considered)f(one)h(w)m
+(ord.)150 2810 y(History)36 b(expansions)g(are)h(in)m(tro)s(duced)e(b)m
+(y)i(the)g(app)s(earance)g(of)g(the)g(history)e(expansion)h(c)m
+(haracter,)150 2920 y(whic)m(h)29 b(is)h(`)p Fq(!)p Fr(')g(b)m(y)g
+(default.)150 3163 y Fi(1.1.1)63 b(Ev)m(en)m(t)39 b(Designators)275
+3417 y Fr(An)30 b(ev)m(en)m(t)h(designator)g(is)e(a)i(reference)g(to)g
+(a)f(command)h(line)d(en)m(try)j(in)e(the)i(history)e(list.)150
+3591 y Fq(!)432 b Fr(Start)34 b(a)f(history)g(substitution,)f(except)i
+(when)f(follo)m(w)m(ed)g(b)m(y)g(a)h(space,)h(tab,)f(the)g(end)f(of)630
+3701 y(the)e(line,)e(or)h(`)p Fq(=)p Fr('.)150 3870 y
+Fq(!)p Fh(n)384 b Fr(Refer)30 b(to)i(command)e(line)e
+Fj(n)p Fr(.)150 4039 y Fq(!-)p Fh(n)336 b Fr(Refer)30
+b(to)i(the)e(command)g Fj(n)g Fr(lines)f(bac)m(k.)150
+4208 y Fq(!!)384 b Fr(Refer)30 b(to)i(the)e(previous)f(command.)40
+b(This)29 b(is)g(a)i(synon)m(ym)f(for)g(`)p Fq(!-1)p
+Fr('.)150 4377 y Fq(!)p Fh(string)144 b Fr(Refer)30 b(to)i(the)e(most)h
+(recen)m(t)g(command)f(starting)h(with)e Fj(string)p
+Fr(.)150 4546 y Fq(!?)p Fh(string)11 b Fq([?])630 4655
+y Fr(Refer)34 b(to)g(the)f(most)h(recen)m(t)h(command)e(con)m(taining)g
+Fj(string)p Fr(.)49 b(The)33 b(trailing)f(`)p Fq(?)p
+Fr(')h(ma)m(y)i(b)s(e)630 4765 y(omitted)30 b(if)g(the)g
+Fj(string)37 b Fr(is)30 b(follo)m(w)m(ed)g(immediately)f(b)m(y)h(a)h
+(newline.)150 4934 y Fq(^)p Fh(string1)11 b Fq(^)p Fh(string2)g
+Fq(^)630 5044 y Fr(Quic)m(k)31 b(Substitution.)42 b(Rep)s(eat)32
+b(the)g(last)g(command,)g(replacing)e Fj(string1)39 b
+Fr(with)30 b Fj(string2)p Fr(.)630 5153 y(Equiv)-5 b(alen)m(t)29
+b(to)i Fq(!!:s/)p Fh(string1)11 b Fq(/)p Fh(string2)g
+Fq(/)p Fr(.)150 5322 y Fq(!#)384 b Fr(The)30 b(en)m(tire)g(command)g
+(line)f(t)m(yp)s(ed)h(so)h(far.)p eop
+%%Page: 2 6
+2 5 bop 150 -116 a Fr(2)2696 b(GNU)31 b(History)f(Library)150
+299 y Fi(1.1.2)63 b(W)-10 b(ord)41 b(Designators)275
+542 y Fr(W)-8 b(ord)35 b(designators)f(are)h(used)f(to)h(select)g
+(desired)e(w)m(ords)i(from)f(the)h(ev)m(en)m(t.)55 b(A)34
+b(`)p Fq(:)p Fr(')h(separates)h(the)150 652 y(ev)m(en)m(t)41
+b(sp)s(eci\014cation)d(from)i(the)f(w)m(ord)g(designator.)68
+b(It)40 b(ma)m(y)g(b)s(e)f(omitted)h(if)e(the)i(w)m(ord)f(designator)
+150 761 y(b)s(egins)32 b(with)h(a)i(`)p Fq(^)p Fr(',)g(`)p
+Fq($)p Fr(',)g(`)p Fq(*)p Fr(',)h(`)p Fq(-)p Fr(',)f(or)f(`)p
+Fq(\045)p Fr('.)52 b(W)-8 b(ords)35 b(are)f(n)m(um)m(b)s(ered)f(from)g
+(the)i(b)s(eginning)c(of)j(the)g(line,)150 871 y(with)k(the)i(\014rst)f
+(w)m(ord)g(b)s(eing)f(denoted)i(b)m(y)g(0)g(\(zero\).)70
+b(W)-8 b(ords)39 b(are)h(inserted)f(in)m(to)g(the)h(curren)m(t)g(line)
+150 980 y(separated)31 b(b)m(y)f(single)f(spaces.)275
+1114 y(F)-8 b(or)31 b(example,)150 1272 y Fq(!!)384 b
+Fr(designates)36 b(the)g(preceding)f(command.)57 b(When)35
+b(y)m(ou)i(t)m(yp)s(e)f(this,)g(the)g(preceding)f(com-)630
+1381 y(mand)30 b(is)f(rep)s(eated)h(in)f(toto.)150 1539
+y Fq(!!:$)288 b Fr(designates)22 b(the)h(last)f(argumen)m(t)h(of)f(the)
+h(preceding)e(command.)38 b(This)21 b(ma)m(y)i(b)s(e)e(shortened)630
+1648 y(to)31 b Fq(!$)p Fr(.)150 1806 y Fq(!fi:2)240 b
+Fr(designates)29 b(the)h(second)f(argumen)m(t)h(of)f(the)h(most)f
+(recen)m(t)i(command)e(starting)g(with)f(the)630 1916
+y(letters)j Fq(fi)p Fr(.)275 2073 y(Here)f(are)h(the)g(w)m(ord)f
+(designators:)150 2231 y Fq(0)g(\(zero\))114 b Fr(The)30
+b Fq(0)p Fr(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)e
+(this)g(is)g(the)i(command)f(w)m(ord.)150 2388 y Fh(n)432
+b Fr(The)30 b Fj(n)p Fr(th)g(w)m(ord.)150 2546 y Fq(^)432
+b Fr(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)e(w)m(ord)h(1.)150
+2703 y Fq($)432 b Fr(The)30 b(last)g(argumen)m(t.)150
+2861 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)11 b Fq(?)p
+Fr(')28 b(searc)m(h.)150 3019 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)11
+b Fr(')30 b(abbreviates)g(`)p Fq(0-)p Fh(y)11 b Fr('.)150
+3176 y Fq(*)432 b Fr(All)26 b(of)i(the)g(w)m(ords,)g(except)h(the)e
+Fq(0)p Fr(th.)40 b(This)26 b(is)g(a)i(synon)m(ym)f(for)h(`)p
+Fq(1-$)p Fr('.)39 b(It)28 b(is)f(not)h(an)f(error)630
+3286 y(to)j(use)g(`)p Fq(*)p Fr(')f(if)g(there)h(is)f(just)g(one)h(w)m
+(ord)f(in)f(the)i(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)d(is)h
+(returned)f(in)630 3395 y(that)j(case.)150 3553 y Fh(x)11
+b Fq(*)373 b Fr(Abbreviates)30 b(`)p Fh(x)p Fq(-$)p Fr(')150
+3711 y Fh(x)p Fq(-)384 b Fr(Abbreviates)30 b(`)p Fh(x)p
+Fq(-$)p Fr(')g(lik)m(e)f(`)p Fh(x)11 b Fq(*)p Fr(',)31
+b(but)e(omits)h(the)h(last)f(w)m(ord.)275 3868 y(If)j(a)h(w)m(ord)g
+(designator)f(is)g(supplied)e(without)i(an)h(ev)m(en)m(t)h(sp)s
+(eci\014cation,)f(the)g(previous)e(command)150 3978 y(is)d(used)h(as)h
+(the)f(ev)m(en)m(t.)150 4199 y Fi(1.1.3)63 b(Mo)s(di\014ers)275
+4442 y Fr(After)20 b(the)h(optional)f(w)m(ord)h(designator,)h(y)m(ou)f
+(can)g(add)f(a)h(sequence)g(of)g(one)g(or)g(more)g(of)g(the)f(follo)m
+(wing)150 4552 y(mo)s(di\014ers,)28 b(eac)m(h)k(preceded)e(b)m(y)g(a)h
+(`)p Fq(:)p Fr('.)150 4710 y Fq(h)432 b Fr(Remo)m(v)m(e)32
+b(a)f(trailing)d(pathname)j(comp)s(onen)m(t,)g(lea)m(ving)f(only)f(the)
+i(head.)150 4867 y Fq(t)432 b Fr(Remo)m(v)m(e)32 b(all)d(leading)h
+(pathname)g(comp)s(onen)m(ts,)h(lea)m(ving)f(the)g(tail.)150
+5025 y Fq(r)432 b Fr(Remo)m(v)m(e)32 b(a)f(trailing)d(su\016x)i(of)g
+(the)h(form)f(`)p Fq(.)p Fh(suffix)11 b Fr(',)28 b(lea)m(ving)j(the)f
+(basename.)150 5182 y Fq(e)432 b Fr(Remo)m(v)m(e)32 b(all)d(but)h(the)h
+(trailing)d(su\016x.)150 5340 y Fq(p)432 b Fr(Prin)m(t)29
+b(the)i(new)f(command)g(but)g(do)g(not)g(execute)i(it.)p
eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fp(6)1347 b(GNU)15 b(History)g(Library)243
-149 y Fo(int)23 b(length;)262 b(/*)23 b(Number)g(of)h(elements)f
-(within)g(this)g(array.)g(*/)243 201 y(int)g(size;)310
-b(/*)23 b(Number)g(of)h(slots)f(allocated)g(to)g(this)h(array.)f(*/)243
-253 y(int)g(flags;)195 305 y(})h(HISTORY_STATE;)137 372
-y Fp(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g(includes)j
-Fo(HS_STIFLED)p Fp(,)13 b(the)i(history)h(has)f(b)q(een)h(sti\015ed.)75
-498 y Fn(2.3)33 b(History)22 b(F)-6 b(unctions)137 593
-y Fp(This)13 b(section)g(describ)q(es)h(the)e(calling)i(sequence)g(for)
-e(the)g(v)m(arious)h(functions)g(exp)q(orted)f(b)o(y)h(the)f
-Fk(gnu)75 648 y Fp(History)j(library)l(.)75 758 y Fi(2.3.1)30
-b(Initializing)20 b(History)h(and)f(State)g(Managemen)n(t)137
-853 y Fp(This)e(section)g(describ)q(es)h(functions)f(used)g(to)e
-(initialize)21 b(and)c(manage)g(the)g(state)g(of)g(the)g(History)75
-908 y(library)f(when)g(y)o(ou)f(w)o(an)o(t)f(to)g(use)i(the)f(history)g
-(functions)h(in)g(y)o(our)f(program.)1762 1021 y(F)l(unction)-1861
-b Fh(void)20 b Fg(using)p 333 1021 18 3 v 20 w(history)j
-Ff(\()p Fo(void)p Ff(\))195 1075 y Fp(Begin)e(a)f(session)g(in)h(whic)o
-(h)g(the)f(history)g(functions)g(migh)o(t)g(b)q(e)h(used.)34
-b(This)21 b(initializes)i(the)195 1130 y(in)o(teractiv)o(e)16
-b(v)m(ariables.)1762 1243 y(F)l(unction)-1861 b Fh(HISTORY_STATE)21
-b(*)e Fg(history)p 657 1243 V 21 w(get)p 755 1243 V 21
-w(history)p 951 1243 V 21 w(state)j Ff(\()p Fo(void)p
-Ff(\))195 1298 y Fp(Return)15 b(a)g(structure)g(describing)i(the)e
-(curren)o(t)g(state)f(of)h(the)g(input)i(history)l(.)1762
-1411 y(F)l(unction)-1861 b Fh(void)20 b Fg(history)p
-377 1411 V 20 w(set)p 468 1411 V 21 w(history)p 664 1411
-V 21 w(state)j Ff(\()p Fo(HISTORY_STATE)13 b(*state)p
-Ff(\))195 1466 y Fp(Set)i(the)h(state)e(of)h(the)g(history)g(list)h
-(according)g(to)e Fj(state)p Fp(.)75 1575 y Fi(2.3.2)30
-b(History)20 b(List)h(Managemen)n(t)137 1671 y Fp(These)11
-b(functions)h(manage)e(individual)k(en)o(tries)d(on)g(the)g(history)f
-(list,)i(or)f(set)f(parameters)g(managing)75 1725 y(the)15
-b(list)h(itself.)1762 1838 y(F)l(unction)-1861 b Fh(void)20
-b Fg(add)p 294 1838 V 20 w(history)j Ff(\()p Fo(const)14
-b(char)g(*string)p Ff(\))195 1893 y Fp(Place)i Fj(string)i
-Fp(at)d(the)g(end)h(of)e(the)h(history)g(list.)21 b(The)15
-b(asso)q(ciated)g(data)g(\014eld)h(\(if)f(an)o(y\))f(is)i(set)f(to)195
-1948 y Fo(NULL)p Fp(.)1762 2061 y(F)l(unction)-1861 b
-Fh(HIST_ENTRY)21 b(*)e Fg(remo)n(v)n(e)p 584 2061 V 20
-w(history)k Ff(\()p Fo(int)14 b(which)p Ff(\))195 2115
-y Fp(Remo)o(v)o(e)22 b(history)g(en)o(try)h(at)f(o\013set)g
-Fj(whic)o(h)h Fp(from)f(the)h(history)l(.)43 b(The)23
-b(remo)o(v)o(ed)f(elemen)o(t)h(is)195 2170 y(returned)16
-b(so)e(y)o(ou)h(can)h(free)f(the)g(line,)i(data,)d(and)h(con)o(taining)
-h(structure.)1762 2283 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
-b(*)e Fg(replace)p 580 2283 V 22 w(history)p 777 2283
-V 20 w(en)n(try)24 b Ff(\()p Fo(int)14 b(which,)g(const)h(char)283
-2338 y(*line,)f(histdata_t)g(data)p Ff(\))195 2393 y
-Fp(Mak)o(e)f(the)h(history)g(en)o(try)f(at)g(o\013set)g
-Fj(whic)o(h)i Fp(ha)o(v)o(e)e Fj(line)18 b Fp(and)c Fj(data)p
-Fp(.)19 b(This)14 b(returns)g(the)g(old)g(en)o(try)195
-2448 y(so)19 b(y)o(ou)f(can)i(disp)q(ose)g(of)e(the)i(data.)30
-b(In)20 b(the)f(case)g(of)g(an)g(in)o(v)m(alid)i Fj(whic)o(h)p
-Fp(,)g(a)d Fo(NULL)h Fp(p)q(oin)o(ter)g(is)195 2502 y(returned.)1762
-2615 y(F)l(unction)-1861 b Fh(void)20 b Fg(clear)p 320
-2615 V 21 w(history)j Ff(\()p Fo(void)p Ff(\))195 2670
-y Fp(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f
-(en)o(tries.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(7)1762 149 y(F)l(unction)-1861 b Fh(void)20
-b Fg(sti\015e)p 320 149 18 3 v 21 w(history)j Ff(\()p
-Fo(int)14 b(max)p Ff(\))195 204 y Fp(Sti\015e)i(the)f(history)h(list,)f
-(remem)o(b)q(ering)h(only)g(the)f(last)g Fj(max)j Fp(en)o(tries.)1762
-302 y(F)l(unction)-1861 b Fh(int)20 b Fg(unsti\015e)p
-358 302 V 21 w(history)i Ff(\()p Fo(void)p Ff(\))195
-357 y Fp(Stop)14 b(sti\015ing)g(the)g(history)l(.)20
-b(This)14 b(returns)f(the)h(previously-set)h(maxim)o(um)f(n)o(um)o(b)q
-(er)g(of)f(history)195 411 y(en)o(tries)h(\(as)e(set)i(b)o(y)f
-Fo(stifle_history\(\))p Fp(\).)k(The)c(v)m(alue)i(is)f(p)q(ositiv)o(e)g
-(if)g(the)g(history)f(w)o(as)f(sti\015ed,)195 466 y(negativ)o(e)j(if)h
-(it)f(w)o(asn't.)1762 564 y(F)l(unction)-1861 b Fh(int)20
-b Fg(history)p 351 564 V 20 w(is)p 409 564 V 21 w(sti\015ed)k
-Ff(\()p Fo(void)p Ff(\))195 619 y Fp(Returns)15 b(non-zero)g(if)h(the)f
-(history)g(is)h(sti\015ed,)g(zero)f(if)g(it)h(is)g(not.)75
-719 y Fi(2.3.3)30 b(Information)19 b(Ab)r(out)i(the)f(History)h(List)
-137 811 y Fp(These)13 b(functions)h(return)f(information)g(ab)q(out)f
-(the)h(en)o(tire)h(history)e(list)i(or)e(individual)k(list)e(en)o
-(tries.)1762 909 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
-b(**)e Fg(history)p 605 909 V 21 w(list)24 b Ff(\()p
-Fo(void)p Ff(\))195 964 y Fp(Return)15 b(a)g Fo(NULL)f
-Fp(terminated)i(arra)o(y)e(of)h Fo(HIST_ENTRY)f(*)h Fp(whic)o(h)h(is)f
-(the)h(curren)o(t)f(input)h(history)l(.)195 1018 y(Elemen)o(t)g(0)f(of)
-f(this)i(list)g(is)g(the)f(b)q(eginning)i(of)e(time.)20
-b(If)c(there)f(is)h(no)f(history)l(,)g(return)g Fo(NULL)p
-Fp(.)1762 1116 y(F)l(unction)-1861 b Fh(int)20 b Fg(where)p
-325 1116 V 20 w(history)j Ff(\()p Fo(void)p Ff(\))195
-1171 y Fp(Returns)15 b(the)g(o\013set)f(of)h(the)g(curren)o(t)g
-(history)g(elemen)o(t.)1762 1268 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(curren)n(t)p 587 1268 V 21
-w(history)k Ff(\()p Fo(void)p Ff(\))195 1323 y Fp(Return)12
-b(the)h(history)f(en)o(try)g(at)g(the)g(curren)o(t)h(p)q(osition,)g(as)
-f(determined)i(b)o(y)e Fo(where_history\(\))p Fp(.)195
-1378 y(If)j(there)h(is)f(no)h(en)o(try)e(there,)h(return)g(a)g
-Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1475 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(history)p 579 1475 V 21 w(get)j
-Ff(\()p Fo(int)15 b(offset)p Ff(\))195 1530 y Fp(Return)20
-b(the)h(history)g(en)o(try)f(at)h(p)q(osition)g Fj(o\013set)p
-Fp(,)g(starting)f(from)g Fo(history_base)f Fp(\(see)i(Sec-)195
-1585 y(tion)15 b(2.4)f([History)g(V)l(ariables],)h(page)g(10\).)j(If)d
-(there)g(is)g(no)g(en)o(try)f(there,)h(or)f(if)h Fj(o\013set)g
-Fp(is)g(greater)195 1640 y(than)g(the)g(history)g(length,)h(return)f(a)
-g Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1737 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 1737 V 20 w(total)p 487
-1737 V 22 w(b)n(ytes)j Ff(\()p Fo(void)p Ff(\))195 1792
-y Fp(Return)13 b(the)h(n)o(um)o(b)q(er)g(of)g(b)o(ytes)f(that)g(the)h
-(primary)g(history)g(en)o(tries)g(are)g(using.)20 b(This)14
-b(function)195 1847 y(returns)h(the)g(sum)h(of)e(the)i(lengths)f(of)g
-(all)h(the)g(lines)g(in)g(the)g(history)l(.)75 1947 y
-Fi(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)137
-2040 y Fp(These)16 b(functions)g(allo)o(w)f(the)g(curren)o(t)h(index)g
-(in)o(to)f(the)h(history)f(list)h(to)e(b)q(e)i(set)f(or)g(c)o(hanged.)
-1762 2137 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
-351 2137 V 20 w(set)p 442 2137 V 21 w(p)r(os)h Ff(\()p
-Fo(int)15 b(pos)p Ff(\))195 2192 y Fp(Set)j(the)h(curren)o(t)f(history)
-g(o\013set)g(to)f Fj(p)q(os)p Fp(,)i(an)f(absolute)h(index)h(in)o(to)e
-(the)g(list.)30 b(Returns)18 b(1)g(on)195 2247 y(success,)d(0)g(if)h
-Fj(p)q(os)h Fp(is)f(less)g(than)f(zero)g(or)g(greater)f(than)h(the)g(n)
-o(um)o(b)q(er)h(of)e(history)i(en)o(tries.)1762 2344
-y(F)l(unction)-1861 b Fh(HIST_ENTRY)21 b(*)e Fg(previous)p
-615 2344 V 20 w(history)k Ff(\()p Fo(void)p Ff(\))195
-2399 y Fp(Bac)o(k)14 b(up)h(the)g(curren)o(t)f(history)g(o\013set)g(to)
-f(the)i(previous)g(history)f(en)o(try)l(,)g(and)h(return)f(a)g(p)q(oin)
-o(ter)195 2454 y(to)h(that)f(en)o(try)l(.)20 b(If)15
-b(there)g(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g
-Fo(NULL)g Fp(p)q(oin)o(ter.)1762 2552 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(next)p 514 2552 V 21 w(history)k
-Ff(\()p Fo(void)p Ff(\))195 2606 y Fp(Mo)o(v)o(e)17 b(the)h(curren)o(t)
-f(history)h(o\013set)f(forw)o(ard)f(to)h(the)h(next)g(history)g(en)o
-(try)l(,)g(and)g(return)f(the)h(a)195 2661 y(p)q(oin)o(ter)e(to)e(that)
-h(en)o(try)l(.)k(If)d(there)f(is)h(no)f(next)g(en)o(try)l(,)g(return)g
-(a)g Fo(NULL)g Fp(p)q(oin)o(ter.)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fp(8)1347 b(GNU)15 b(History)g(Library)75
-149 y Fi(2.3.5)30 b(Searc)n(hing)21 b(the)f(History)h(List)137
-245 y Fp(These)14 b(functions)g(allo)o(w)g(searc)o(hing)g(of)e(the)i
-(history)f(list)h(for)f(en)o(tries)h(con)o(taining)g(a)f(sp)q(eci\014c)
-i(string.)75 300 y(Searc)o(hing)f(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q
-(oth)g(forw)o(ard)e(and)i(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)g
-(history)f(p)q(osition.)75 355 y(The)j(searc)o(h)f(ma)o(y)g(b)q(e)i
-Fj(anc)o(hored)p Fp(,)e(meaning)h(that)f(the)h(string)g(m)o(ust)f(matc)
-o(h)g(at)g(the)h(b)q(eginning)i(of)d(the)75 410 y(history)g(en)o(try)l
-(.)1762 524 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
-351 524 18 3 v 20 w(searc)n(h)j Ff(\()p Fo(const)14 b(char)h(*string,)f
-(int)h(direction)p Ff(\))195 578 y Fp(Searc)o(h)g(the)f(history)g(for)g
-Fj(string)p Fp(,)g(starting)g(at)g(the)h(curren)o(t)f(history)g
-(o\013set.)19 b(If)c Fj(direction)g Fp(is)g(less)195
-633 y(than)20 b(0,)g(then)h(the)f(searc)o(h)f(is)i(through)f(previous)g
-(en)o(tries,)i(otherwise)e(through)f(subsequen)o(t)195
-688 y(en)o(tries.)h(If)c Fj(string)j Fp(is)d(found,)f(then)g(the)h
-(curren)o(t)f(history)g(index)h(is)g(set)f(to)g(that)f(history)h(en)o
-(try)l(,)195 743 y(and)i(the)g(v)m(alue)h(returned)f(is)g(the)g
-(o\013set)e(in)j(the)f(line)h(of)e(the)h(en)o(try)g(where)g
-Fj(string)j Fp(w)o(as)c(found.)195 798 y(Otherwise,)g(nothing)f(is)h(c)
-o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 912 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 912 V 20 w(searc)n(h)p
-527 912 V 21 w(pre\014x)i Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
-(direction)p Ff(\))195 966 y Fp(Searc)o(h)20 b(the)h(history)f(for)g
-Fj(string)p Fp(,)h(starting)e(at)h(the)g(curren)o(t)h(history)f
-(o\013set.)34 b(The)20 b(searc)o(h)g(is)195 1021 y(anc)o(hored:)g(matc)
-o(hing)14 b(lines)j(m)o(ust)d(b)q(egin)i(with)f Fj(string)p
-Fp(.)20 b(If)15 b Fj(direction)h Fp(is)f(less)g(than)g(0,)f(then)h(the)
-195 1076 y(searc)o(h)g(is)i(through)e(previous)h(en)o(tries,)g
-(otherwise)g(through)f(subsequen)o(t)h(en)o(tries.)22
-b(If)16 b Fj(string)j Fp(is)195 1131 y(found,)e(then)g(the)f(curren)o
-(t)h(history)f(index)i(is)f(set)f(to)g(that)g(en)o(try)l(,)g(and)h(the)
-f(return)h(v)m(alue)h(is)f(0.)195 1186 y(Otherwise,)f(nothing)f(is)h(c)
-o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 1300 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 1300 V 20 w(searc)n(h)p
-527 1300 V 21 w(p)r(os)h Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
-(direction,)f(int)283 1355 y(pos)p Ff(\))195 1409 y Fp(Searc)o(h)j(for)
-g Fj(string)k Fp(in)d(the)f(history)g(list,)h(starting)e(at)h
-Fj(p)q(os)p Fp(,)g(an)g(absolute)h(index)g(in)o(to)f(the)h(list.)195
-1464 y(If)g Fj(direction)i Fp(is)e(negativ)o(e,)h(the)f(searc)o(h)g
-(pro)q(ceeds)g(bac)o(kw)o(ard)g(from)f Fj(p)q(os)p Fp(,)h(otherwise)h
-(forw)o(ard.)195 1519 y(Returns)j(the)g(absolute)g(index)h(of)f(the)g
-(history)g(elemen)o(t)h(where)f Fj(string)k Fp(w)o(as)21
-b(found,)j(or)d(-1)195 1574 y(otherwise.)75 1684 y Fi(2.3.6)30
-b(Managing)20 b(the)g(History)h(File)137 1780 y Fp(The)16
-b(History)g(library)h(can)e(read)h(the)g(history)g(from)f(and)h(write)g
-(it)g(to)f(a)h(\014le.)22 b(This)17 b(section)f(do)q(cu-)75
-1835 y(men)o(ts)f(the)g(functions)h(for)f(managing)g(a)g(history)g
-(\014le.)1762 1949 y(F)l(unction)-1861 b Fh(int)20 b
-Fg(read)p 286 1949 V 20 w(history)i Ff(\()p Fo(const)15
-b(char)f(*filename)p Ff(\))195 2003 y Fp(Add)h(the)g(con)o(ten)o(ts)f
-(of)h Fj(\014lename)j Fp(to)c(the)h(history)g(list,)g(a)g(line)h(at)f
-(a)f(time.)20 b(If)15 b Fj(\014lename)k Fp(is)c Fo(NULL)p
-Fp(,)195 2058 y(then)h(read)f(from)f(`)p Fo(~/.history)p
-Fp('.)k(Returns)d(0)f(if)i(successful,)g(or)f Fo(errno)f
-Fp(if)i(not.)1762 2172 y(F)l(unction)-1861 b Fh(int)20
-b Fg(read)p 286 2172 V 20 w(history)p 481 2172 V 20 w(range)i
-Ff(\()p Fo(const)14 b(char)h(*filename,)f(int)h(from,)f(int)h(to)p
-Ff(\))195 2227 y Fp(Read)f(a)f(range)h(of)f(lines)j(from)d
-Fj(\014lename)p Fp(,)i(adding)g(them)f(to)f(the)h(history)g(list.)20
-b(Start)13 b(reading)i(at)195 2282 y(line)g Fj(from)d
-Fp(and)h(end)h(at)f Fj(to)p Fp(.)18 b(If)c Fj(from)e
-Fp(is)i(zero,)f(start)f(at)g(the)h(b)q(eginning.)22 b(If)13
-b Fj(to)i Fp(is)e(less)h(than)f Fj(from)p Fp(,)195 2337
-y(then)i(read)g(un)o(til)i(the)e(end)g(of)g(the)g(\014le.)21
-b(If)15 b Fj(\014lename)k Fp(is)d Fo(NULL)p Fp(,)e(then)h(read)g(from)f
-(`)p Fo(~/.history)p Fp('.)195 2392 y(Returns)h(0)g(if)g(successful,)h
-(or)f Fo(errno)g Fp(if)g(not.)1762 2506 y(F)l(unction)-1861
-b Fh(int)20 b Fg(write)p 304 2506 V 22 w(history)i Ff(\()p
-Fo(const)15 b(char)f(*filename)p Ff(\))195 2560 y Fp(W)l(rite)k(the)f
-(curren)o(t)g(history)h(to)f Fj(\014lename)p Fp(,)h(o)o(v)o(erwriting)f
-Fj(\014lename)k Fp(if)d(necessary)l(.)27 b(If)18 b Fj(\014lename)195
-2615 y Fp(is)f Fo(NULL)p Fp(,)e(then)h(write)h(the)f(history)g(list)h
-(to)e(`)p Fo(~/.history)p Fp('.)21 b(Returns)16 b(0)f(on)h(success,)h
-(or)f Fo(errno)195 2670 y Fp(on)f(a)g(read)g(or)g(write)g(error.)p
+%%Page: 3 7
+3 6 bop 150 -116 a Fr(Chapter)30 b(1:)41 b(Using)29 b(History)h(In)m
+(teractiv)m(ely)2014 b(3)150 299 y Fq(s/)p Fh(old)11
+b Fq(/)p Fh(new)g Fq(/)630 408 y Fr(Substitute)31 b Fj(new)40
+b Fr(for)32 b(the)h(\014rst)f(o)s(ccurrence)h(of)f Fj(old)k
+Fr(in)31 b(the)i(ev)m(en)m(t)h(line.)46 b(An)m(y)32 b(delimiter)630
+518 y(ma)m(y)25 b(b)s(e)g(used)f(in)f(place)i(of)g(`)p
+Fq(/)p Fr('.)39 b(The)24 b(delimiter)e(ma)m(y)k(b)s(e)e(quoted)h(in)e
+Fj(old)28 b Fr(and)c Fj(new)32 b Fr(with)24 b(a)630 628
+y(single)j(bac)m(kslash.)39 b(If)28 b(`)p Fq(&)p Fr(')g(app)s(ears)g
+(in)e Fj(new)p Fr(,)j(it)e(is)h(replaced)f(b)m(y)h Fj(old)p
+Fr(.)39 b(A)28 b(single)f(bac)m(kslash)630 737 y(will)32
+b(quote)j(the)g(`)p Fq(&)p Fr('.)54 b(The)34 b(\014nal)f(delimiter)g
+(is)g(optional)h(if)g(it)g(is)f(the)i(last)g(c)m(haracter)h(on)630
+847 y(the)31 b(input)d(line.)150 1006 y Fq(&)432 b Fr(Rep)s(eat)31
+b(the)f(previous)f(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)f(o)m(v)
+m(er)j(the)f(en)m(tire)f(ev)m(en)m(t)i(line.)64 b(Used)39
+b(in)e(conjunction)630 1385 y(with)29 b(`)p Fq(s)p Fr(',)i(as)f(in)g
+Fq(gs/)p Fh(old)11 b Fq(/)p Fh(new)g Fq(/)p Fr(,)26 b(or)k(with)g(`)p
+Fq(&)p Fr('.)150 1544 y Fq(G)432 b Fr(Apply)29 b(the)h(follo)m(wing)f
+(`)p Fq(s)p Fr(')i(mo)s(di\014er)d(once)j(to)g(eac)m(h)h(w)m(ord)e(in)f
+(the)h(ev)m(en)m(t.)p eop
+%%Page: 4 8
+4 7 bop 150 -116 a Fr(4)2696 b(GNU)31 b(History)f(Library)p
eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(9)1762 149 y(F)l(unction)-1861 b Fh(int)20
-b Fg(app)r(end)p 360 149 18 3 v 19 w(history)j Ff(\()p
-Fo(int)14 b(nelements,)g(const)h(char)f(*filename)p Ff(\))195
-204 y Fp(App)q(end)19 b(the)e(last)g Fj(nelemen)o(ts)k
-Fp(of)16 b(the)i(history)f(list)h(to)f Fj(\014lename)p
-Fp(.)27 b(If)18 b Fj(\014lename)j Fp(is)d Fo(NULL)p Fp(,)f(then)195
-259 y(app)q(end)f(to)f(`)p Fo(~/.history)p Fp('.)j(Returns)c(0)h(on)g
-(success,)h(or)e Fo(errno)h Fp(on)g(a)g(read)g(or)g(write)g(error.)1762
-404 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p 351
-404 V 20 w(truncate)p 582 404 V 21 w(\014le)k Ff(\()p
-Fo(const)14 b(char)h(*filename,)e(int)i(nlines)p Ff(\))195
-459 y Fp(T)l(runcate)k(the)h(history)f(\014le)h Fj(\014lename)p
-Fp(,)h(lea)o(ving)f(only)g(the)f(last)g Fj(nlines)k Fp(lines.)34
-b(If)20 b Fj(\014lename)i Fp(is)195 513 y Fo(NULL)p Fp(,)14
-b(then)i(`)p Fo(~/.history)p Fp(')d(is)j(truncated.)j(Returns)c(0)g(on)
-g(success,)h(or)e Fo(errno)h Fp(on)g(failure.)75 644
-y Fi(2.3.7)30 b(History)20 b(Expansion)137 750 y Fp(These)c(functions)g
-(implemen)o(t)g(history)f(expansion.)1762 895 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 895 V 20 w(expand)j Ff(\()p
-Fo(char)14 b(*string,)g(char)h(**output)p Ff(\))195 949
-y Fp(Expand)j Fj(string)p Fp(,)f(placing)h(the)g(result)f(in)o(to)g
-Fj(output)p Fp(,)h(a)e(p)q(oin)o(ter)i(to)f(a)g(string)g(\(see)g
-(Section)h(1.1)195 1004 y([History)d(In)o(teraction],)f(page)h(1\).)20
-b(Returns:)195 1098 y Fo(0)216 b Fp(If)19 b(no)g(expansions)g(to)q(ok)f
-(place)i(\(or,)e(if)i(the)e(only)i(c)o(hange)e(in)i(the)f(text)f(w)o
-(as)g(the)435 1152 y(remo)o(v)m(al)d(of)g(escap)q(e)h(c)o(haracters)e
-(preceding)i(the)f(history)g(expansion)h(c)o(haracter\);)195
-1241 y Fo(1)216 b Fp(if)16 b(expansions)g(did)g(tak)o(e)e(place;)195
-1330 y Fo(-1)192 b Fp(if)16 b(there)f(w)o(as)f(an)h(error)g(in)h
-(expansion;)195 1419 y Fo(2)216 b Fp(if)14 b(the)g(returned)g(line)i
-(should)f(b)q(e)f(displa)o(y)o(ed,)h(but)f(not)f(executed,)i(as)e(with)
-h(the)g Fo(:p)435 1474 y Fp(mo)q(di\014er)i(\(see)f(Section)h(1.1.3)e
-([Mo)q(di\014ers],)h(page)g(2\).)195 1568 y(If)g(an)h(error)e(o)q
-(curred)i(in)g(expansion,)f(then)h Fj(output)g Fp(con)o(tains)f(a)g
-(descriptiv)o(e)i(error)d(message.)1762 1713 y(F)l(unction)-1861
-b Fh(char)20 b(*)f Fg(get)p 324 1713 V 21 w(history)p
-520 1713 V 20 w(ev)n(en)n(t)25 b Ff(\()p Fo(const)14
-b(char)h(*string,)f(int)g(*cindex,)g(int)283 1767 y(qchar)p
-Ff(\))195 1822 y Fp(Returns)22 b(the)h(text)f(of)h(the)f(history)h(ev)o
-(en)o(t)g(b)q(eginning)h(at)f Fj(string)j Fo(+)d Fj(*cindex)p
-Fp(.)43 b Fj(*cindex)27 b Fp(is)195 1877 y(mo)q(di\014ed)16
-b(to)e(p)q(oin)o(t)h(to)f(after)g(the)h(ev)o(en)o(t)f(sp)q(eci\014er.)
-22 b(A)o(t)14 b(function)h(en)o(try)l(,)g Fj(cindex)k
-Fp(p)q(oin)o(ts)c(to)f(the)195 1932 y(index)19 b(in)o(to)f
-Fj(string)k Fp(where)c(the)g(history)g(ev)o(en)o(t)g(sp)q
-(eci\014cation)h(b)q(egins.)30 b Fj(qc)o(har)21 b Fp(is)d(a)g(c)o
-(haracter)195 1987 y(that)13 b(is)h(allo)o(w)o(ed)g(to)e(end)i(the)g
-(ev)o(en)o(t)f(sp)q(eci\014cation)j(in)e(addition)g(to)f(the)h
-(\\normal")f(terminating)195 2041 y(c)o(haracters.)1762
-2186 y(F)l(unction)-1861 b Fh(char)20 b(**)f Fg(history)p
-448 2186 V 21 w(tok)n(enize)25 b Ff(\()p Fo(const)14
-b(char)h(*string)p Ff(\))195 2241 y Fp(Return)g(an)g(arra)o(y)g(of)g
-(tok)o(ens)g(parsed)g(out)g(of)g Fj(string)p Fp(,)g(m)o(uc)o(h)h(as)f
-(the)g(shell)i(migh)o(t.)k(The)15 b(tok)o(ens)195 2296
-y(are)h(split)h(on)e(the)h(c)o(haracters)g(in)g(the)g
-Fj(history)p 1007 2296 14 2 v 17 w(w)o(ord)p 1122 2296
-V 15 w(delimiters)k Fp(v)m(ariable,)d(and)f(shell)i(quoting)195
-2351 y(con)o(v)o(en)o(tions)d(are)g(ob)q(ey)o(ed.)1762
-2496 y(F)l(unction)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 2496 18 3 v 21 w(arg)p 524 2496 V 19 w(extract)24
-b Ff(\()p Fo(int)14 b(first,)h(int)g(last,)f(const)g(char)283
-2550 y(*string)p Ff(\))195 2605 y Fp(Extract)19 b(a)h(string)g(segmen)o
-(t)g(consisting)h(of)f(the)g Fj(\014rst)h Fp(through)f
-Fj(last)h Fp(argumen)o(ts)e(presen)o(t)h(in)195 2660
-y Fj(string)p Fp(.)g(Argumen)o(ts)15 b(are)f(split)j(using)f
-Fo(history_tokenize)p Fp(.)p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fp(10)1324 b(GNU)15 b(History)g(Library)75
-149 y Fn(2.4)33 b(History)22 b(V)-6 b(ariables)137 251
-y Fp(This)18 b(section)f(describ)q(es)i(the)e(externally-visible)k(v)m
-(ariables)d(exp)q(orted)f(b)o(y)g(the)g Fk(gnu)g Fp(History)g(Li-)75
-306 y(brary)l(.)1773 438 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 438 18 3 v 20 w(base)195 493 y Fp(The)15
-b(logical)i(o\013set)d(of)h(the)g(\014rst)g(en)o(try)g(in)h(the)f
-(history)g(list.)1773 625 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 625 V 20 w(length)195 680 y Fp(The)15
-b(n)o(um)o(b)q(er)h(of)f(en)o(tries)g(curren)o(tly)h(stored)f(in)h(the)
-f(history)g(list.)1773 812 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 812 V 20 w(max)p 478 812 V 20 w(en)n(tries)195
-867 y Fp(The)j(maxim)o(um)g(n)o(um)o(b)q(er)g(of)g(history)g(en)o
-(tries.)43 b(This)24 b(m)o(ust)e(b)q(e)i(c)o(hanged)f(using)h
-Fo(stifle_)195 922 y(history\(\))p Fp(.)1773 1054 y(V)l(ariable)-1861
-b Fh(char)20 b Fg(history)p 377 1054 V 20 w(expansion)p
-644 1054 V 21 w(c)n(har)195 1109 y Fp(The)e(c)o(haracter)f(that)g(in)o
-(tro)q(duces)h(a)f(history)h(ev)o(en)o(t.)27 b(The)18
-b(default)g(is)g(`)p Fo(!)p Fp('.)26 b(Setting)18 b(this)g(to)f(0)195
-1164 y(inhibits)g(history)f(expansion.)1773 1296 y(V)l(ariable)-1861
-b Fh(char)20 b Fg(history)p 377 1296 V 20 w(subst)p 529
-1296 V 20 w(c)n(har)195 1351 y Fp(The)h(c)o(haracter)e(that)h(in)o(v)o
-(ok)o(es)g(w)o(ord)g(substitution)h(if)g(found)f(at)g(the)h(start)e(of)
-h(a)g(line.)37 b(The)195 1406 y(default)16 b(is)f(`)p
-Fo(^)p Fp('.)1773 1538 y(V)l(ariable)-1861 b Fh(char)20
-b Fg(history)p 377 1538 V 20 w(commen)n(t)p 627 1538
-V 19 w(c)n(har)195 1593 y Fp(During)f(tok)o(enization,)h(if)f(this)h(c)
-o(haracter)e(is)h(seen)h(as)e(the)h(\014rst)g(c)o(haracter)f(of)g(a)h
-(w)o(ord,)g(then)195 1648 y(it)j(and)g(all)g(subsequen)o(t)h(c)o
-(haracters)d(up)j(to)e(a)g(newline)i(are)f(ignored,)h(suppressing)g
-(history)195 1702 y(expansion)16 b(for)f(the)g(remainder)h(of)f(the)g
-(line.)21 b(This)16 b(is)g(disabled)h(b)o(y)e(default.)1773
-1835 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 1835 V 21 w(w)n(ord)p 567 1835 V 20 w(delimiters)195
-1889 y Fp(The)14 b(c)o(haracters)f(that)g(separate)g(tok)o(ens)h(for)f
-Fo(history_tokenize\(\))p Fp(.)k(The)d(default)g(v)m(alue)h(is)f
-Fo(")195 1944 y(\\t\\n\(\)<>;&|")p Fp(.)1773 2077 y(V)l(ariable)-1861
-b Fh(char)20 b(*)f Fg(history)p 422 2077 V 21 w(no)p
-504 2077 V 20 w(expand)p 704 2077 V 20 w(c)n(hars)195
-2131 y Fp(The)c(list)h(of)e(c)o(haracters)g(whic)o(h)i(inhibit)h
-(history)e(expansion)h(if)f(found)h(immediately)g(follo)o(wing)195
-2186 y Fj(history)p 336 2186 14 2 v 16 w(expansion)p
-547 2186 V 18 w(c)o(har)p Fp(.)j(The)d(default)f(is)h(space,)f(tab,)g
-(newline,)h(carriage)f(return,)g(and)h(`)p Fo(=)p Fp('.)1773
-2318 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 2318 18 3 v 21 w(searc)n(h)p 599 2318 V 20 w(delimiter)p
-843 2318 V 23 w(c)n(hars)195 2373 y Fp(The)13 b(list)h(of)f(additional)
-h(c)o(haracters)e(whic)o(h)i(can)g(delimit)g(a)f(history)g(searc)o(h)g
-(string,)g(in)h(addition)195 2428 y(to)h(space,)g(T)l(AB,)g(`)p
-Fo(:)p Fp(')f(and)h(`)p Fo(?)p Fp(')g(in)h(the)f(case)g(of)g(a)g
-(substring)g(searc)o(h.)20 b(The)c(default)f(is)h(empt)o(y)l(.)1773
-2560 y(V)l(ariable)-1861 b Fh(int)20 b Fg(history)p 351
-2560 V 20 w(quotes)p 533 2560 V 21 w(inhibit)p 717 2560
-V 23 w(expansion)195 2615 y Fp(If)15 b(non-zero,)f(single-quoted)j(w)o
-(ords)c(are)i(not)f(scanned)h(for)f(the)h(history)g(expansion)g(c)o
-(haracter.)195 2670 y(The)g(default)h(v)m(alue)h(is)e(0.)p
+%%Page: 5 9
+5 8 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(History)1779 b(5)150 299 y Fn(2)80 b(Programming)53
+b(with)h(GNU)g(History)275 525 y Fr(This)30 b(c)m(hapter)j(describ)s
+(es)e(ho)m(w)h(to)h(in)m(terface)g(programs)f(that)h(y)m(ou)g(write)f
+(with)f(the)h Fk(gnu)g Fr(History)150 634 y(Library)-8
+b(.)47 b(It)33 b(should)d(b)s(e)j(considered)e(a)i(tec)m(hnical)g
+(guide.)47 b(F)-8 b(or)34 b(information)d(on)i(the)g(in)m(teractiv)m(e)
+g(use)150 744 y(of)e Fk(gnu)f Fr(History)-8 b(,)30 b(see)h(Chapter)f(1)
+h([Using)f(History)g(In)m(teractiv)m(ely],)h(page)g(1.)150
+996 y Fp(2.1)68 b(In)l(tro)t(duction)45 b(to)g(History)275
+1239 y Fr(Man)m(y)23 b(programs)f(read)h(input)e(from)h(the)h(user)f(a)
+h(line)e(at)i(a)g(time.)38 b(The)23 b Fk(gnu)f Fr(History)g(library)f
+(is)g(able)150 1348 y(to)29 b(k)m(eep)h(trac)m(k)g(of)f(those)g(lines,)
+f(asso)s(ciate)h(arbitrary)f(data)h(with)f(eac)m(h)i(line,)d(and)i
+(utilize)e(information)150 1458 y(from)j(previous)f(lines)f(in)h(comp)s
+(osing)h(new)g(ones.)275 1591 y(The)d(programmer)g(using)f(the)h
+(History)g(library)e(has)j(a)m(v)-5 b(ailable)26 b(functions)g(for)i
+(remem)m(b)s(ering)e(lines)150 1700 y(on)21 b(a)g(history)e(list,)j
+(asso)s(ciating)e(arbitrary)f(data)j(with)d(a)i(line,)g(remo)m(ving)g
+(lines)e(from)h(the)h(list,)g(searc)m(hing)150 1810 y(through)35
+b(the)g(list)f(for)h(a)h(line)d(con)m(taining)i(an)g(arbitrary)f(text)i
+(string,)g(and)f(referencing)f(an)m(y)i(line)d(in)150
+1919 y(the)e(list)e(directly)-8 b(.)41 b(In)30 b(addition,)f(a)i
+(history)f Fj(expansion)g Fr(function)f(is)h(a)m(v)-5
+b(ailable)30 b(whic)m(h)f(pro)m(vides)h(for)h(a)150 2029
+y(consisten)m(t)g(user)e(in)m(terface)i(across)g(di\013eren)m(t)f
+(programs.)275 2162 y(The)d(user)g(using)f(programs)i(written)f(with)g
+(the)h(History)f(library)f(has)h(the)h(b)s(ene\014t)f(of)h(a)h
+(consisten)m(t)150 2271 y(user)38 b(in)m(terface)i(with)e(a)h(set)g(of)
+h(w)m(ell-kno)m(wn)d(commands)i(for)g(manipulating)d(the)j(text)h(of)f
+(previous)150 2381 y(lines)26 b(and)h(using)f(that)i(text)g(in)f(new)g
+(commands.)39 b(The)27 b(basic)g(history)g(manipulation)d(commands)k
+(are)150 2491 y(similar)g(to)j(the)f(history)g(substitution)e(pro)m
+(vided)h(b)m(y)h Fq(csh)p Fr(.)275 2623 y(If)f(the)g(programmer)g
+(desires,)g(he)h(can)f(use)h(the)f(Readline)g(library)-8
+b(,)28 b(whic)m(h)g(includes)f(some)j(history)150 2733
+y(manipulation)e(b)m(y)i(default,)g(and)f(has)i(the)f(added)g(adv)-5
+b(an)m(tage)32 b(of)f(command)f(line)e(editing.)275 2866
+y(Before)39 b(declaring)d(an)m(y)j(functions)d(using)h(an)m(y)h
+(functionalit)m(y)f(the)h(History)g(library)d(pro)m(vides)i(in)150
+2976 y(other)29 b(co)s(de,)g(an)g(application)e(writer)h(should)e
+(include)h(the)i(\014le)e Fq(<readline/history.h>)c Fr(in)28
+b(an)m(y)h(\014le)150 3085 y(that)c(uses)e(the)h(History)g(library's)d
+(features.)39 b(It)24 b(supplies)d(extern)j(declarations)g(for)f(all)g
+(of)h(the)g(library's)150 3195 y(public)k(functions)h(and)g(v)-5
+b(ariables,)30 b(and)f(declares)i(all)e(of)h(the)h(public)d(data)j
+(structures.)150 3447 y Fp(2.2)68 b(History)46 b(Storage)275
+3689 y Fr(The)29 b(history)h(list)f(is)g(an)h(arra)m(y)h(of)g(history)e
+(en)m(tries.)41 b(A)30 b(history)f(en)m(try)i(is)e(declared)h(as)h
+(follo)m(ws:)390 3822 y Fq(typedef)46 b(void)g(*histdata_t;)390
+4042 y(typedef)g(struct)g(_hist_entry)f({)485 4151 y(char)i(*line;)485
+4261 y(char)g(*timestamp;)485 4370 y(histdata_t)e(data;)390
+4480 y(})i(HIST_ENTRY;)275 4613 y Fr(The)29 b(history)h(list)f(itself)g
+(migh)m(t)h(therefore)h(b)s(e)f(declared)f(as)390 4746
+y Fq(HIST_ENTRY)45 b(**the_history_list;)275 4878 y Fr(The)29
+b(state)j(of)f(the)f(History)g(library)e(is)i(encapsulated)g(in)m(to)g
+(a)h(single)e(structure:)390 5011 y Fq(/*)438 5121 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 5230 y(*/)390 5340 y(typedef)f(struct)g
+(_hist_state)f({)p eop
+%%Page: 6 10
+6 9 bop 150 -116 a Fr(6)2696 b(GNU)31 b(History)f(Library)485
+299 y Fq(HIST_ENTRY)45 b(**entries;)g(/*)j(Pointer)d(to)j(the)f
+(entries)e(themselves.)g(*/)485 408 y(int)i(offset;)523
+b(/*)48 b(The)f(location)e(pointer)h(within)g(this)h(array.)f(*/)485
+518 y(int)h(length;)523 b(/*)48 b(Number)e(of)h(elements)e(within)i
+(this)f(array.)g(*/)485 628 y(int)h(size;)619 b(/*)48
+b(Number)e(of)h(slots)f(allocated)g(to)h(this)f(array.)g(*/)485
+737 y(int)h(flags;)390 847 y(})g(HISTORY_STATE;)275 985
+y Fr(If)29 b(the)i(\015ags)g(mem)m(b)s(er)e(includes)f
+Fq(HS_STIFLED)p Fr(,)g(the)j(history)e(has)h(b)s(een)g(sti\015ed.)150
+1252 y Fp(2.3)68 b(History)46 b(F)-11 b(unctions)275
+1500 y Fr(This)22 b(section)j(describ)s(es)e(the)i(calling)e(sequence)i
+(for)f(the)h(v)-5 b(arious)24 b(functions)f(exp)s(orted)h(b)m(y)g(the)h
+Fk(gnu)150 1610 y Fr(History)30 b(library)-8 b(.)150
+1842 y Fi(2.3.1)63 b(Initializing)40 b(History)i(and)f(State)f
+(Managemen)m(t)275 2090 y Fr(This)32 b(section)j(describ)s(es)e
+(functions)g(used)h(to)h(initialize)d(and)i(manage)h(the)g(state)h(of)f
+(the)f(History)150 2200 y(library)28 b(when)h(y)m(ou)i(w)m(an)m(t)g(to)
+g(use)f(the)h(history)e(functions)g(in)g(y)m(our)i(program.)3350
+2392 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(using)p
+667 2392 35 5 v 50 w(history)46 b Fe(\()p Fq(void)p Fe(\))390
+2501 y Fr(Begin)40 b(a)g(session)f(in)g(whic)m(h)f(the)i(history)f
+(functions)f(migh)m(t)i(b)s(e)f(used.)69 b(This)38 b(initializes)f(the)
+390 2611 y(in)m(teractiv)m(e)31 b(v)-5 b(ariables.)3350
+2803 y([F)d(unction])-3600 b Fg(HISTORY_STATE)42 b(*)d
+Ff(history)p 1317 2803 V 50 w(get)p 1522 2803 V 50 w(history)p
+1922 2803 V 51 w(state)k Fe(\()p Fq(void)p Fe(\))390
+2913 y Fr(Return)30 b(a)g(structure)g(describing)e(the)j(curren)m(t)f
+(state)i(of)e(the)h(input)d(history)-8 b(.)3350 3105
+y([F)g(unction])-3600 b Fg(void)39 b Ff(history)p 755
+3105 V 51 w(set)p 949 3105 V 50 w(history)p 1349 3105
+V 50 w(state)44 b Fe(\()p Fq(HISTORY_STATE)27 b(*state)p
+Fe(\))390 3215 y Fr(Set)k(the)f(state)i(of)e(the)h(history)e(list)g
+(according)i(to)g Fj(state)p Fr(.)150 3447 y Fi(2.3.2)63
+b(History)41 b(List)g(Managemen)m(t)275 3695 y Fr(These)21
+b(functions)f(manage)i(individual)17 b(en)m(tries)k(on)h(the)f(history)
+g(list,)h(or)f(set)h(parameters)g(managing)150 3804 y(the)31
+b(list)e(itself.)3350 3996 y([F)-8 b(unction])-3600 b
+Fg(void)39 b Ff(add)p 589 3996 V 50 w(history)45 b Fe(\()p
+Fq(const)30 b(char)f(*string)p Fe(\))390 4106 y Fr(Place)h
+Fj(string)37 b Fr(at)31 b(the)f(end)f(of)h(the)g(history)f(list.)40
+b(The)29 b(asso)s(ciated)h(data)h(\014eld)e(\(if)g(an)m(y\))i(is)e(set)
+h(to)390 4216 y Fq(NULL)p Fr(.)3350 4408 y([F)-8 b(unction])-3600
+b Fg(void)39 b Ff(add)p 589 4408 V 50 w(history)p 989
+4408 V 50 w(time)45 b Fe(\()p Fq(const)29 b(char)h(*string)p
+Fe(\))390 4517 y Fr(Change)g(the)h(time)f(stamp)g(asso)s(ciated)h(with)
+e(the)i(most)f(recen)m(t)i(history)d(en)m(try)i(to)g
+Fj(string)p Fr(.)3350 4709 y([F)-8 b(unction])-3600 b
+Fg(HIST_ENTRY)41 b(*)e Ff(remo)m(v)m(e)p 1169 4709 V
+50 w(history)46 b Fe(\()p Fq(int)30 b(which)p Fe(\))390
+4819 y Fr(Remo)m(v)m(e)47 b(history)e(en)m(try)g(at)i(o\013set)f
+Fj(whic)m(h)e Fr(from)h(the)h(history)-8 b(.)85 b(The)45
+b(remo)m(v)m(ed)i(elemen)m(t)f(is)390 4929 y(returned)29
+b(so)i(y)m(ou)g(can)f(free)h(the)f(line,)f(data,)j(and)d(con)m(taining)
+h(structure.)3350 5121 y([F)-8 b(unction])-3600 b Fg(histdata_t)41
+b Ff(free)p 907 5121 V 50 w(history)p 1307 5121 V 50
+w(en)m(try)k Fe(\()p Fq(HIST_ENTRY)28 b(*histent)p Fe(\))390
+5230 y Fr(F)-8 b(ree)29 b(the)f(history)f(en)m(try)h
+Fj(histen)m(t)i Fr(and)d(an)m(y)i(history)d(library)g(priv)-5
+b(ate)27 b(data)i(asso)s(ciated)f(with)f(it.)390 5340
+y(Returns)i(the)i(application-sp)s(eci\014c)d(data)j(so)g(the)f(caller)
+g(can)g(disp)s(ose)f(of)i(it.)p eop
+%%Page: 7 11
+7 10 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(History)1779 b(7)3350 299 y([F)-8 b(unction])-3600
+b Fg(HIST_ENTRY)41 b(*)e Ff(replace)p 1166 299 35 5 v
+48 w(history)p 1564 299 V 51 w(en)m(try)45 b Fe(\()p
+Fq(int)29 b(which,)g(const)g(char)565 408 y(*line,)g(histdata_t)e(data)
+p Fe(\))390 518 y Fr(Mak)m(e)i(the)f(history)e(en)m(try)i(at)h
+(o\013set)f Fj(whic)m(h)f Fr(ha)m(v)m(e)h Fj(line)j Fr(and)c
+Fj(data)p Fr(.)41 b(This)26 b(returns)g(the)i(old)f(en)m(try)390
+628 y(so)37 b(the)h(caller)e(can)h(disp)s(ose)f(of)h(an)m(y)g
+(application-sp)s(eci\014c)e(data.)61 b(In)37 b(the)g(case)h(of)f(an)g
+(in)m(v)-5 b(alid)390 737 y Fj(whic)m(h)p Fr(,)29 b(a)i
+Fq(NULL)e Fr(p)s(oin)m(ter)h(is)f(returned.)3350 957
+y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(clear)p 644
+957 V 50 w(history)46 b Fe(\()p Fq(void)p Fe(\))390 1067
+y Fr(Clear)30 b(the)g(history)g(list)f(b)m(y)h(deleting)f(all)h(the)g
+(en)m(tries.)3350 1287 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(sti\015e)p 644 1287 V 50 w(history)45 b Fe(\()p
+Fq(int)30 b(max)p Fe(\))390 1396 y Fr(Sti\015e)f(the)i(history)e(list,)
+g(remem)m(b)s(ering)g(only)h(the)g(last)h Fj(max)36 b
+Fr(en)m(tries.)3350 1616 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(unsti\015e)p 720 1616 V 49 w(history)45 b Fe(\()p
+Fq(void)p Fe(\))390 1726 y Fr(Stop)27 b(sti\015ing)f(the)h(history)-8
+b(.)39 b(This)26 b(returns)g(the)h(previously-set)f(maxim)m(um)g(n)m
+(um)m(b)s(er)g(of)i(history)390 1836 y(en)m(tries)f(\(as)g(set)g(b)m(y)
+g Fq(stifle_history\(\))p Fr(\).)35 b(The)27 b(v)-5 b(alue)26
+b(is)g(p)s(ositiv)m(e)f(if)h(the)h(history)f(w)m(as)h(sti\015ed,)390
+1945 y(negativ)m(e)32 b(if)d(it)h(w)m(asn't.)3350 2165
+y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p 703
+2165 V 51 w(is)p 831 2165 V 50 w(sti\015ed)44 b Fe(\()p
+Fq(void)p Fe(\))390 2275 y Fr(Returns)29 b(non-zero)i(if)f(the)g
+(history)g(is)f(sti\015ed,)g(zero)j(if)d(it)h(is)f(not.)150
+2535 y Fi(2.3.3)63 b(Information)40 b(Ab)s(out)h(the)g(History)g(List)
+275 2797 y Fr(These)25 b(functions)f(return)h(information)f(ab)s(out)h
+(the)h(en)m(tire)f(history)g(list)f(or)i(individual)21
+b(list)j(en)m(tries.)3350 3017 y([F)-8 b(unction])-3600
+b Fg(HIST_ENTRY)41 b(**)e Ff(history)p 1212 3017 V 51
+w(list)44 b Fe(\()p Fq(void)p Fe(\))390 3126 y Fr(Return)30
+b(a)h Fq(NULL)e Fr(terminated)h(arra)m(y)h(of)f Fq(HIST_ENTRY)e(*)i
+Fr(whic)m(h)f(is)h(the)h(curren)m(t)f(input)e(history)-8
+b(.)390 3236 y(Elemen)m(t)30 b(0)h(of)g(this)e(list)g(is)g(the)i(b)s
+(eginning)d(of)i(time.)41 b(If)29 b(there)i(is)e(no)i(history)-8
+b(,)30 b(return)f Fq(NULL)p Fr(.)3350 3456 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(where)p 653 3456 V 49 w(history)46 b
+Fe(\()p Fq(void)p Fe(\))390 3565 y Fr(Returns)29 b(the)i(o\013set)g(of)
+g(the)g(curren)m(t)f(history)f(elemen)m(t.)3350 3786
+y([F)-8 b(unction])-3600 b Fg(HIST_ENTRY)41 b(*)e Ff(curren)m(t)p
+1178 3786 V 49 w(history)45 b Fe(\()p Fq(void)p Fe(\))390
+3895 y Fr(Return)24 b(the)h(history)f(en)m(try)h(at)h(the)f(curren)m(t)
+f(p)s(osition,)h(as)g(determined)e(b)m(y)i Fq(where_history\(\))p
+Fr(.)390 4005 y(If)30 b(there)g(is)g(no)g(en)m(try)h(there,)g(return)e
+(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)3350 4225 y([F)-8 b(unction])-3600
+b Fg(HIST_ENTRY)41 b(*)e Ff(history)p 1160 4225 V 50
+w(get)45 b Fe(\()p Fq(int)30 b(offset)p Fe(\))390 4334
+y Fr(Return)41 b(the)g(history)g(en)m(try)h(at)g(p)s(osition)e
+Fj(o\013set)p Fr(,)45 b(starting)d(from)f Fq(history_base)d
+Fr(\(see)k(Sec-)390 4444 y(tion)29 b(2.4)h([History)g(V)-8
+b(ariables],)29 b(page)h(10\).)42 b(If)28 b(there)i(is)e(no)i(en)m(try)
+f(there,)h(or)g(if)e Fj(o\013set)k Fr(is)d(greater)390
+4553 y(than)h(the)h(history)e(length,)h(return)f(a)i
+Fq(NULL)e Fr(p)s(oin)m(ter.)3350 4774 y([F)-8 b(unction])-3600
+b Fg(time_t)40 b Ff(history)p 860 4774 V 51 w(get)p 1066
+4774 V 49 w(time)45 b Fe(\()p Fq(HIST_ENTRY)28 b(*entry)p
+Fe(\))390 4883 y Fr(Return)i(the)g(time)g(stamp)g(asso)s(ciated)h(with)
+e(the)i(history)e(en)m(try)i Fj(en)m(try)p Fr(.)3350
+5103 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p
+703 5103 V 51 w(total)p 989 5103 V 49 w(b)m(ytes)45 b
+Fe(\()p Fq(void)p Fe(\))390 5213 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)d(history)i(en)m(tries)g
+(are)h(using.)38 b(This)26 b(function)390 5322 y(returns)j(the)i(sum)e
+(of)i(the)f(lengths)g(of)g(all)g(the)g(lines)f(in)g(the)h(history)-8
+b(.)p eop
+%%Page: 8 12
+8 11 bop 150 -116 a Fr(8)2696 b(GNU)31 b(History)f(Library)150
+299 y Fi(2.3.4)63 b(Mo)m(ving)41 b(Around)h(the)f(History)g(List)275
+544 y Fr(These)30 b(functions)f(allo)m(w)g(the)i(curren)m(t)f(index)f
+(in)m(to)h(the)h(history)e(list)g(to)i(b)s(e)f(set)h(or)f(c)m(hanged.)
+3350 730 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p
+703 730 35 5 v 51 w(set)p 897 730 V 49 w(p)s(os)46 b
+Fe(\()p Fq(int)30 b(pos)p Fe(\))390 839 y Fr(Set)37 b(the)g(curren)m(t)
+f(history)f(o\013set)j(to)f Fj(p)s(os)p Fr(,)h(an)f(absolute)f(index)f
+(in)m(to)i(the)f(list.)58 b(Returns)36 b(1)h(on)390 949
+y(success,)31 b(0)g(if)e Fj(p)s(os)k Fr(is)d(less)f(than)i(zero)g(or)f
+(greater)i(than)e(the)g(n)m(um)m(b)s(er)f(of)i(history)e(en)m(tries.)
+3350 1135 y([F)-8 b(unction])-3600 b Fg(HIST_ENTRY)41
+b(*)e Ff(previous)p 1232 1135 V 50 w(history)46 b Fe(\()p
+Fq(void)p Fe(\))390 1244 y Fr(Bac)m(k)30 b(up)e(the)h(curren)m(t)g
+(history)e(o\013set)j(to)g(the)f(previous)e(history)h(en)m(try)-8
+b(,)30 b(and)e(return)g(a)h(p)s(oin)m(ter)390 1354 y(to)i(that)g(en)m
+(try)-8 b(.)41 b(If)30 b(there)h(is)e(no)i(previous)e(en)m(try)-8
+b(,)31 b(return)e(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)3350
+1540 y([F)-8 b(unction])-3600 b Fg(HIST_ENTRY)41 b(*)e
+Ff(next)p 1032 1540 V 49 w(history)46 b Fe(\()p Fq(void)p
+Fe(\))390 1649 y Fr(Mo)m(v)m(e)38 b(the)d(curren)m(t)h(history)e
+(o\013set)j(forw)m(ard)e(to)h(the)g(next)f(history)g(en)m(try)-8
+b(,)37 b(and)e(return)g(the)h(a)390 1759 y(p)s(oin)m(ter)29
+b(to)i(that)g(en)m(try)-8 b(.)42 b(If)30 b(there)g(is)g(no)g(next)h(en)
+m(try)-8 b(,)31 b(return)e(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)150
+1985 y Fi(2.3.5)63 b(Searc)m(hing)40 b(the)h(History)h(List)275
+2230 y Fr(These)26 b(functions)f(allo)m(w)h(searc)m(hing)h(of)g(the)g
+(history)e(list)h(for)g(en)m(tries)h(con)m(taining)f(a)h(sp)s(eci\014c)
+f(string.)150 2339 y(Searc)m(hing)h(ma)m(y)h(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)g(p)s(osition.)150 2449 y(The)k(searc)m(h)h(ma)m(y)g(b)s(e)e
+Fj(anc)m(hored)p Fr(,)i(meaning)f(that)h(the)f(string)g(m)m(ust)g(matc)
+m(h)h(at)g(the)g(b)s(eginning)c(of)k(the)150 2558 y(history)d(en)m(try)
+-8 b(.)3350 2744 y([F)g(unction])-3600 b Fg(int)39 b
+Ff(history)p 703 2744 V 51 w(searc)m(h)44 b Fe(\()p Fq(const)29
+b(char)h(*string,)e(int)h(direction)p Fe(\))390 2854
+y Fr(Searc)m(h)g(the)g(history)f(for)h Fj(string)p Fr(,)f(starting)h
+(at)g(the)g(curren)m(t)g(history)f(o\013set.)41 b(If)28
+b Fj(direction)g Fr(is)g(less)390 2963 y(than)40 b(0,)j(then)c(the)h
+(searc)m(h)h(is)e(through)g(previous)g(en)m(tries,)j(otherwise)d
+(through)h(subsequen)m(t)390 3073 y(en)m(tries.)h(If)30
+b Fj(string)37 b Fr(is)29 b(found,)h(then)g(the)g(curren)m(t)h(history)
+e(index)g(is)g(set)i(to)h(that)f(history)e(en)m(try)-8
+b(,)390 3183 y(and)33 b(the)g(v)-5 b(alue)33 b(returned)f(is)h(the)h
+(o\013set)g(in)e(the)i(line)d(of)j(the)g(en)m(try)f(where)g
+Fj(string)40 b Fr(w)m(as)34 b(found.)390 3292 y(Otherwise,)29
+b(nothing)h(is)f(c)m(hanged,)i(and)f(a)h(-1)g(is)e(returned.)3350
+3478 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p
+703 3478 V 51 w(searc)m(h)p 1067 3478 V 49 w(pre\014x)45
+b Fe(\()p Fq(const)29 b(char)g(*string,)g(int)g(direction)p
+Fe(\))390 3588 y Fr(Searc)m(h)41 b(the)g(history)e(for)h
+Fj(string)p Fr(,)j(starting)d(at)h(the)g(curren)m(t)f(history)g
+(o\013set.)72 b(The)40 b(searc)m(h)h(is)390 3697 y(anc)m(hored:)f(matc)
+m(hing)30 b(lines)e(m)m(ust)h(b)s(egin)f(with)g Fj(string)p
+Fr(.)39 b(If)29 b Fj(direction)f Fr(is)h(less)f(than)h(0,)i(then)e(the)
+390 3807 y(searc)m(h)j(is)e(through)h(previous)f(en)m(tries,)h
+(otherwise)g(through)f(subsequen)m(t)h(en)m(tries.)43
+b(If)31 b Fj(string)38 b Fr(is)390 3916 y(found,)33 b(then)f(the)h
+(curren)m(t)g(history)f(index)g(is)g(set)h(to)h(that)g(en)m(try)-8
+b(,)34 b(and)f(the)g(return)f(v)-5 b(alue)32 b(is)g(0.)390
+4026 y(Otherwise,)d(nothing)h(is)f(c)m(hanged,)i(and)f(a)h(-1)g(is)e
+(returned.)3350 4212 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(history)p 703 4212 V 51 w(searc)m(h)p 1067 4212
+V 49 w(p)s(os)46 b Fe(\()p Fq(const)29 b(char)g(*string,)f(int)i
+(direction,)d(int)565 4321 y(pos)p Fe(\))390 4431 y Fr(Searc)m(h)34
+b(for)g Fj(string)41 b Fr(in)33 b(the)i(history)e(list,)h(starting)g
+(at)h Fj(p)s(os)p Fr(,)g(an)f(absolute)g(index)e(in)m(to)j(the)f(list.)
+390 4541 y(If)i Fj(direction)e Fr(is)h(negativ)m(e,)k(the)d(searc)m(h)h
+(pro)s(ceeds)f(bac)m(kw)m(ard)g(from)g Fj(p)s(os)p Fr(,)h(otherwise)e
+(forw)m(ard.)390 4650 y(Returns)43 b(the)h(absolute)g(index)f(of)h(the)
+g(history)f(elemen)m(t)h(where)g Fj(string)51 b Fr(w)m(as)44
+b(found,)i(or)e(-1)390 4760 y(otherwise.)150 4986 y Fi(2.3.6)63
+b(Managing)41 b(the)g(History)h(File)275 5230 y Fr(The)31
+b(History)g(library)e(can)j(read)f(the)h(history)f(from)g(and)g(write)g
+(it)g(to)h(a)g(\014le.)44 b(This)30 b(section)h(do)s(cu-)150
+5340 y(men)m(ts)g(the)f(functions)f(for)h(managing)g(a)h(history)e
+(\014le.)p eop
+%%Page: 9 13
+9 12 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(History)1779 b(9)3350 299 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(read)p 573 299 35 5 v 50 w(history)45
+b Fe(\()p Fq(const)29 b(char)h(*filename)p Fe(\))390
+408 y Fr(Add)f(the)h(con)m(ten)m(ts)h(of)f Fj(\014lename)j
+Fr(to)e(the)f(history)e(list,)h(a)h(line)e(at)i(a)g(time.)40
+b(If)29 b Fj(\014lename)34 b Fr(is)29 b Fq(NULL)p Fr(,)390
+518 y(then)h(read)g(from)g(`)p Fq(~/.history)p Fr('.)39
+b(Returns)29 b(0)i(if)e(successful,)h(or)g Fq(errno)f
+Fr(if)g(not.)3350 717 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(read)p 573 717 V 50 w(history)p 973 717 V 50 w(range)45
+b Fe(\()p Fq(const)29 b(char)g(*filename,)f(int)h(from,)g(int)h(to)p
+Fe(\))390 826 y Fr(Read)e(a)g(range)h(of)f(lines)e(from)h
+Fj(\014lename)p Fr(,)h(adding)e(them)i(to)h(the)f(history)f(list.)38
+b(Start)28 b(reading)f(at)390 936 y(line)e Fj(from)g
+Fr(and)h(end)f(at)i Fj(to)p Fr(.)41 b(If)25 b Fj(from)h
+Fr(is)f(zero,)j(start)f(at)g(the)f(b)s(eginning.)37 b(If)26
+b Fj(to)31 b Fr(is)26 b(less)f(than)h Fj(from)p Fr(,)390
+1045 y(then)k(read)g(un)m(til)e(the)i(end)g(of)g(the)g(\014le.)40
+b(If)30 b Fj(\014lename)k Fr(is)29 b Fq(NULL)p Fr(,)h(then)f(read)h
+(from)g(`)p Fq(~/.history)p Fr('.)390 1155 y(Returns)f(0)i(if)f
+(successful,)f(or)h Fq(errno)f Fr(if)h(not.)3350 1353
+y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(write)p 613
+1353 V 49 w(history)46 b Fe(\()p Fq(const)29 b(char)g(*filename)p
+Fe(\))390 1463 y Fr(W)-8 b(rite)35 b(the)g(curren)m(t)g(history)f(to)h
+Fj(\014lename)p Fr(,)g(o)m(v)m(erwriting)g Fj(\014lename)k
+Fr(if)34 b(necessary)-8 b(.)54 b(If)35 b Fj(\014lename)390
+1573 y Fr(is)c Fq(NULL)p Fr(,)h(then)g(write)f(the)i(history)e(list)g
+(to)i(`)p Fq(~/.history)p Fr('.)44 b(Returns)31 b(0)i(on)f(success,)h
+(or)f Fq(errno)390 1682 y Fr(on)e(a)h(read)f(or)h(write)e(error.)3350
+1881 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(app)s(end)p
+721 1881 V 48 w(history)46 b Fe(\()p Fq(int)30 b(nelements,)e(const)g
+(char)i(*filename)p Fe(\))390 1990 y Fr(App)s(end)j(the)i(last)f
+Fj(nelemen)m(ts)k Fr(of)d(the)g(history)e(list)h(to)h
+Fj(\014lename)p Fr(.)53 b(If)34 b Fj(\014lename)39 b
+Fr(is)33 b Fq(NULL)p Fr(,)i(then)390 2100 y(app)s(end)29
+b(to)i(`)p Fq(~/.history)p Fr('.)38 b(Returns)30 b(0)g(on)h(success,)g
+(or)f Fq(errno)f Fr(on)h(a)h(read)f(or)h(write)e(error.)3350
+2299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p
+703 2299 V 51 w(truncate)p 1179 2299 V 48 w(\014le)44
+b Fe(\()p Fq(const)30 b(char)f(*filename,)e(int)j(nlines)p
+Fe(\))390 2408 y Fr(T)-8 b(runcate)39 b(the)f(history)g(\014le)f
+Fj(\014lename)p Fr(,)j(lea)m(ving)e(only)g(the)h(last)f
+Fj(nlines)i Fr(lines.)63 b(If)38 b Fj(\014lename)43 b
+Fr(is)390 2518 y Fq(NULL)p Fr(,)29 b(then)i(`)p Fq(~/.history)p
+Fr(')d(is)h(truncated.)41 b(Returns)29 b(0)i(on)f(success,)h(or)f
+Fq(errno)f Fr(on)i(failure.)150 2756 y Fi(2.3.7)63 b(History)41
+b(Expansion)275 3007 y Fr(These)30 b(functions)f(implemen)m(t)g
+(history)g(expansion.)3350 3206 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(history)p 703 3206 V 51 w(expand)44
+b Fe(\()p Fq(char)29 b(*string,)f(char)i(**output)p Fe(\))390
+3315 y Fr(Expand)j Fj(string)p Fr(,)i(placing)e(the)h(result)g(in)m(to)
+g Fj(output)p Fr(,)h(a)g(p)s(oin)m(ter)e(to)i(a)g(string)e(\(see)j
+(Section)e(1.1)390 3425 y([History)c(In)m(teraction],)i(page)f(1\).)41
+b(Returns:)390 3595 y Fq(0)432 b Fr(If)37 b(no)g(expansions)f(to)s(ok)j
+(place)e(\(or,)j(if)c(the)i(only)e(c)m(hange)j(in)d(the)h(text)i(w)m
+(as)f(the)870 3705 y(remo)m(v)-5 b(al)30 b(of)h(escap)s(e)f(c)m
+(haracters)i(preceding)d(the)h(history)f(expansion)g(c)m(haracter\);)
+390 3871 y Fq(1)432 b Fr(if)29 b(expansions)g(did)g(tak)m(e)j(place;)
+390 4038 y Fq(-1)384 b Fr(if)29 b(there)i(w)m(as)g(an)f(error)g(in)f
+(expansion;)390 4204 y Fq(2)432 b Fr(if)27 b(the)g(returned)g(line)e
+(should)h(b)s(e)h(displa)m(y)m(ed,)g(but)g(not)h(executed,)h(as)f(with)
+e(the)i Fq(:p)870 4314 y Fr(mo)s(di\014er)g(\(see)k(Section)e(1.1.3)i
+([Mo)s(di\014ers],)d(page)j(2\).)390 4484 y(If)e(an)g(error)g(o)s
+(curred)f(in)h(expansion,)f(then)h Fj(output)i Fr(con)m(tains)f(a)f
+(descriptiv)m(e)g(error)g(message.)3350 4682 y([F)-8
+b(unction])-3600 b Fg(char)39 b(*)g Ff(get)p 651 4682
+V 50 w(history)p 1051 4682 V 50 w(ev)m(en)m(t)44 b Fe(\()p
+Fq(const)29 b(char)h(*string,)e(int)h(*cindex,)f(int)565
+4792 y(qchar)p Fe(\))390 4902 y Fr(Returns)45 b(the)g(text)i(of)e(the)h
+(history)e(ev)m(en)m(t)j(b)s(eginning)c(at)j Fj(string)52
+b Fq(+)45 b Fj(*cindex)p Fr(.)86 b Fj(*cindex)51 b Fr(is)390
+5011 y(mo)s(di\014ed)27 b(to)j(p)s(oin)m(t)e(to)i(after)g(the)g(ev)m
+(en)m(t)h(sp)s(eci\014er.)38 b(A)m(t)31 b(function)d(en)m(try)-8
+b(,)30 b Fj(cindex)35 b Fr(p)s(oin)m(ts)28 b(to)i(the)390
+5121 y(index)k(in)m(to)i Fj(string)43 b Fr(where)35 b(the)h(history)f
+(ev)m(en)m(t)i(sp)s(eci\014cation)e(b)s(egins.)56 b Fj(qc)m(har)42
+b Fr(is)35 b(a)h(c)m(haracter)390 5230 y(that)27 b(is)f(allo)m(w)m(ed)h
+(to)h(end)e(the)h(ev)m(en)m(t)h(sp)s(eci\014cation)e(in)g(addition)f
+(to)i(the)g(\\normal")g(terminating)390 5340 y(c)m(haracters.)p
eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)867 b(11)1773 149 y(V)l(ariable)-1861 b Fh(rl_linebuf_func_t)
-22 b(*)d Fg(history)p 762 149 18 3 v 21 w(inhibit)p 946
-149 V 23 w(expansion)p 1216 149 V 20 w(function)195 204
-y Fp(This)e(should)h(b)q(e)f(set)g(to)f(the)g(address)h(of)f(a)h
-(function)g(that)f(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)22
-b(a)17 b Fo(char)d(*)195 259 y Fp(\()p Fj(string)t Fp(\))e(and)i(an)f
-Fo(int)g Fp(index)i(in)o(to)e(that)f(string)i(\()p Fj(i)r
-Fp(\).)19 b(It)14 b(should)g(return)f(a)g(non-zero)h(v)m(alue)g(if)g
-(the)195 314 y(history)h(expansion)g(starting)f(at)g
-Fj(string[i])i Fp(should)g(not)e(b)q(e)h(p)q(erformed;)g(zero)f(if)h
-(the)g(expansion)195 369 y(should)i(b)q(e)g(done.)22
-b(It)16 b(is)h(in)o(tended)g(for)e(use)i(b)o(y)f(applications)h(lik)o
-(e)g(Bash)f(that)g(use)g(the)g(history)195 423 y(expansion)g(c)o
-(haracter)f(for)f(additional)j(purp)q(oses.)j(By)c(default,)f(this)h(v)
-m(ariable)g(is)g(set)f(to)f Fo(NULL)p Fp(.)75 543 y Fn(2.5)33
-b(History)22 b(Programming)h(Example)137 637 y Fp(The)16
-b(follo)o(wing)g(program)e(demonstrates)g(simple)j(use)e(of)g(the)g
-Fk(gnu)g Fp(History)g(Library)l(.)195 698 y Fo(#include)23
-b(<stdio.h>)195 750 y(#include)g(<readline/history.h>)195
-854 y(main)g(\(argc,)g(argv\))314 906 y(int)h(argc;)314
-958 y(char)g(**argv;)195 1010 y({)243 1061 y(char)f(line[1024],)f(*t;)
-243 1113 y(int)h(len,)g(done)h(=)g(0;)243 1217 y(line[0])f(=)g(0;)243
-1321 y(using_history)f(\(\);)243 1373 y(while)h(\(!done\))290
-1425 y({)338 1477 y(printf)g(\("history$)g("\);)338 1528
-y(fflush)g(\(stdout\);)338 1580 y(t)h(=)g(fgets)f(\(line,)g(sizeof)g
-(\(line\))g(-)h(1,)f(stdin\);)338 1632 y(if)h(\(t)f(&&)h(*t\))386
-1684 y({)434 1736 y(len)f(=)h(strlen)f(\(t\);)434 1788
-y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))481 1840 y(t[len)h(-)f(1])h(=)g
-('\\0';)386 1892 y(})338 1995 y(if)g(\(!t\))386 2047
-y(strcpy)f(\(line,)g("quit"\);)338 2151 y(if)h(\(line[0]\))386
-2203 y({)434 2255 y(char)f(*expansion;)434 2307 y(int)g(result;)434
-2411 y(result)g(=)g(history_expand)f(\(line,)h(&expansion\);)434
-2462 y(if)g(\(result\))481 2514 y(fprintf)g(\(stderr,)g("\045s\\n",)g
-(expansion\);)434 2618 y(if)g(\(result)g(<)h(0)g(||)f(result)g(==)h
-(2\))481 2670 y({)p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fp(12)1324 b(GNU)15 b(History)g(Library)529
-149 y Fo(free)23 b(\(expansion\);)529 201 y(continue;)481
-253 y(})434 357 y(add_history)f(\(expansion\);)434 409
-y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h(1\);)434
-461 y(free)f(\(expansion\);)386 513 y(})338 616 y(if)h(\(strcmp)f
-(\(line,)g("quit"\))g(==)g(0\))386 668 y(done)g(=)h(1;)338
-720 y(else)f(if)h(\(strcmp)f(\(line,)g("save"\))g(==)h(0\))386
-772 y(write_history)e(\("history_file"\);)338 824 y(else)h(if)h
-(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))386 876 y(read_history)e
-(\("history_file"\);)338 928 y(else)h(if)h(\(strcmp)f(\(line,)g
-("list"\))g(==)h(0\))386 980 y({)434 1032 y(register)e(HIST_ENTRY)h
-(**the_list;)434 1083 y(register)f(int)i(i;)434 1187
-y(the_list)e(=)i(history_list)e(\(\);)434 1239 y(if)h(\(the_list\))481
-1291 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e(i++\))529
-1343 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g(history_base,)e
-(the_list[i]->line\);)386 1395 y(})338 1447 y(else)h(if)h(\(strncmp)f
-(\(line,)g("delete",)g(6\))g(==)h(0\))386 1499 y({)434
-1550 y(int)f(which;)434 1602 y(if)g(\(\(sscanf)g(\(line)g(+)h(6,)f
-("\045d",)h(&which\)\))e(==)i(1\))481 1654 y({)529 1706
-y(HIST_ENTRY)f(*entry)g(=)g(remove_history)f(\(which\);)529
-1758 y(if)i(\(!entry\))577 1810 y(fprintf)f(\(stderr,)f("No)i(such)f
-(entry)g(\045d\\n",)g(which\);)529 1862 y(else)577 1914
-y({)625 1966 y(free)g(\(entry->line\);)625 2017 y(free)g(\(entry\);)577
-2069 y(})481 2121 y(})434 2173 y(else)481 2225 y({)529
-2277 y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f
-(`delete'\\n"\);)481 2329 y(})386 2381 y(})290 2433 y(})195
-2484 y(})p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fp(App)q(endix)17 b(A:)e(Concept)g(Index)1196
-b(13)75 149 y Fl(App)r(endix)25 b(A)41 b(Concept)27 b(Index)75
-321 y Fn(A)75 383 y Fe(anc)o(hored)14 b(searc)o(h)s Fd(.)8
-b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16
-b Fe(8)75 507 y Fn(E)75 568 y Fe(ev)o(en)o(t)d(designators)g
-Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b
-Fe(1)1012 321 y Fn(H)1012 431 y Fe(history)15 b(ev)o(en)o(ts)d
-Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Fe(1)1012 500 y(history)15 b(expansion)8 b Fd(.)g(.)e(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)21 b Fe(1)1012 568 y(History)14 b(Searc)o(hing)6
-b Fd(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b
-Fe(8)p eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fp(14)1324 b(GNU)15 b(History)g(Library)p
+%%Page: 10 14
+10 13 bop 150 -116 a Fr(10)2651 b(GNU)31 b(History)f(Library)3350
+299 y([F)-8 b(unction])-3600 b Fg(char)39 b(**)g Ff(history)p
+898 299 35 5 v 51 w(tok)m(enize)44 b Fe(\()p Fq(const)29
+b(char)g(*string)p Fe(\))390 408 y Fr(Return)h(an)h(arra)m(y)g(of)g
+(tok)m(ens)h(parsed)e(out)h(of)g Fj(string)p Fr(,)g(m)m(uc)m(h)f(as)i
+(the)f(shell)e(migh)m(t.)42 b(The)30 b(tok)m(ens)390
+518 y(are)h(split)e(on)h(the)h(c)m(haracters)h(in)d(the)i
+Fj(history)p 2007 518 28 4 v 39 w(w)m(ord)p 2241 518
+V 39 w(delimiters)h Fr(v)-5 b(ariable,)30 b(and)g(shell)e(quoting)390
+628 y(con)m(v)m(en)m(tions)j(are)g(ob)s(ey)m(ed.)3350
+818 y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(history)p
+846 818 35 5 v 50 w(arg)p 1056 818 V 51 w(extract)44
+b Fe(\()p Fq(int)30 b(first,)f(int)g(last,)g(const)g(char)565
+927 y(*string)p Fe(\))390 1037 y Fr(Extract)41 b(a)g(string)e(segmen)m
+(t)j(consisting)d(of)h(the)h Fj(\014rst)g Fr(through)f
+Fj(last)i Fr(argumen)m(ts)f(presen)m(t)f(in)390 1146
+y Fj(string)p Fr(.)g(Argumen)m(ts)30 b(are)h(split)d(using)h
+Fq(history_tokenize)p Fr(.)150 1411 y Fp(2.4)68 b(History)46
+b(V)-11 b(ariables)275 1658 y Fr(This)32 b(section)i(describ)s(es)e
+(the)i(externally-visible)d(v)-5 b(ariables)33 b(exp)s(orted)g(b)m(y)h
+(the)g Fk(gnu)g Fr(History)g(Li-)150 1767 y(brary)-8
+b(.)3371 1957 y([V)g(ariable])-3600 b Fg(int)39 b Ff(history)p
+703 1957 V 51 w(base)390 2067 y Fr(The)30 b(logical)g(o\013set)h(of)g
+(the)f(\014rst)g(en)m(try)g(in)g(the)g(history)f(list.)3371
+2257 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(history)p
+703 2257 V 51 w(length)390 2366 y Fr(The)30 b(n)m(um)m(b)s(er)f(of)h
+(en)m(tries)h(curren)m(tly)e(stored)i(in)e(the)h(history)f(list.)3371
+2556 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(history)p
+703 2556 V 51 w(max)p 965 2556 V 51 w(en)m(tries)390
+2666 y Fr(The)45 b(maxim)m(um)g(n)m(um)m(b)s(er)g(of)h(history)f(en)m
+(tries.)87 b(This)44 b(m)m(ust)i(b)s(e)f(c)m(hanged)i(using)d
+Fq(stifle_)390 2776 y(history\(\))p Fr(.)3371 2966 y([V)-8
+b(ariable])-3600 b Fg(int)39 b Ff(history)p 703 2966
+V 51 w(write)p 1014 2966 V 49 w(timestamps)390 3075 y
+Fr(If)44 b(non-zero,)49 b(timestamps)44 b(are)h(written)f(to)h(the)g
+(history)e(\014le,)48 b(so)d(they)f(can)h(b)s(e)f(preserv)m(ed)390
+3185 y(b)s(et)m(w)m(een)31 b(sessions.)40 b(The)30 b(default)f(v)-5
+b(alue)30 b(is)f(0,)i(meaning)f(that)h(timestamps)f(are)h(not)f(sa)m(v)
+m(ed.)3371 3375 y([V)-8 b(ariable])-3600 b Fg(char)39
+b Ff(history)p 755 3375 V 51 w(expansion)p 1301 3375
+V 49 w(c)m(har)390 3484 y Fr(The)c(c)m(haracter)i(that)e(in)m(tro)s
+(duces)f(a)i(history)e(ev)m(en)m(t.)57 b(The)34 b(default)h(is)f(`)p
+Fq(!)p Fr('.)56 b(Setting)34 b(this)h(to)h(0)390 3594
+y(inhibits)27 b(history)i(expansion.)3371 3784 y([V)-8
+b(ariable])-3600 b Fg(char)39 b Ff(history)p 755 3784
+V 51 w(subst)p 1069 3784 V 50 w(c)m(har)390 3893 y Fr(The)h(c)m
+(haracter)i(that)g(in)m(v)m(ok)m(es)f(w)m(ord)g(substitution)d(if)i
+(found)f(at)i(the)g(start)g(of)g(a)g(line.)70 b(The)390
+4003 y(default)30 b(is)f(`)p Fq(^)p Fr('.)3371 4193 y([V)-8
+b(ariable])-3600 b Fg(char)39 b Ff(history)p 755 4193
+V 51 w(commen)m(t)p 1263 4193 V 50 w(c)m(har)390 4303
+y Fr(During)d(tok)m(enization,)41 b(if)c(this)f(c)m(haracter)k(is)d
+(seen)g(as)h(the)g(\014rst)f(c)m(haracter)j(of)e(a)g(w)m(ord,)h(then)
+390 4412 y(it)k(and)f(all)h(subsequen)m(t)f(c)m(haracters)j(up)d(to)i
+(a)g(newline)d(are)j(ignored,)h(suppressing)c(history)390
+4522 y(expansion)29 b(for)h(the)h(remainder)e(of)h(the)h(line.)39
+b(This)28 b(is)i(disabled)e(b)m(y)i(default.)3371 4712
+y([V)-8 b(ariable])-3600 b Fg(char)39 b(*)g Ff(history)p
+846 4712 V 50 w(w)m(ord)p 1144 4712 V 51 w(delimiters)390
+4821 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)g(v)-5
+b(alue)27 b(is)f Fq(")390 4931 y(\\t\\n\(\)<>;&|")p Fr(.)3371
+5121 y([V)-8 b(ariable])-3600 b Fg(char)39 b(*)g Ff(history)p
+846 5121 V 50 w(searc)m(h)p 1209 5121 V 50 w(delimiter)p
+1712 5121 V 49 w(c)m(hars)390 5230 y Fr(The)26 b(list)e(of)i
+(additional)e(c)m(haracters)k(whic)m(h)d(can)h(delimit)e(a)i(history)f
+(searc)m(h)i(string,)f(in)f(addition)390 5340 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)f(the)i(case)g(of)g(a)g(substring)d(searc)m(h.)41
+b(The)30 b(default)g(is)f(empt)m(y)-8 b(.)p eop
+%%Page: 11 15
+11 14 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(History)1733 b(11)3371 299 y([V)-8 b(ariable])-3600
+b Fg(char)39 b(*)g Ff(history)p 846 299 35 5 v 50 w(no)p
+1017 299 V 51 w(expand)p 1429 299 V 49 w(c)m(hars)390
+408 y Fr(The)29 b(list)g(of)h(c)m(haracters)h(whic)m(h)d(inhibit)f
+(history)i(expansion)f(if)h(found)f(immediately)g(follo)m(wing)390
+518 y Fj(history)p 673 518 28 4 v 39 w(expansion)p 1105
+518 V 39 w(c)m(har)p Fr(.)41 b(The)30 b(default)f(is)h(space,)h(tab,)g
+(newline,)d(carriage)j(return,)f(and)g(`)p Fq(=)p Fr('.)3371
+707 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(history)p
+703 707 35 5 v 51 w(quotes)p 1078 707 V 50 w(inhibit)p
+1461 707 V 48 w(expansion)390 817 y Fr(If)29 b(non-zero,)h
+(single-quoted)e(w)m(ords)h(are)g(not)h(scanned)f(for)g(the)g(history)f
+(expansion)g(c)m(haracter.)390 927 y(The)i(default)f(v)-5
+b(alue)30 b(is)g(0.)3371 1116 y([V)-8 b(ariable])-3600
+b Fg(rl_linebuf_func_t)43 b(*)c Ff(history)p 1526 1116
+V 50 w(inhibit)p 1909 1116 V 49 w(expansion)p 2453 1116
+V 49 w(function)390 1226 y Fr(This)31 b(should)h(b)s(e)g(set)i(to)g
+(the)g(address)e(of)i(a)f(function)f(that)i(tak)m(es)h(t)m(w)m(o)g
+(argumen)m(ts:)46 b(a)34 b Fq(char)29 b(*)390 1335 y
+Fr(\()p Fj(string)8 b Fr(\))26 b(and)g(an)g Fq(int)g
+Fr(index)f(in)m(to)i(that)g(string)e(\()p Fj(i)5 b Fr(\).)39
+b(It)27 b(should)e(return)g(a)i(non-zero)g(v)-5 b(alue)26
+b(if)g(the)390 1445 y(history)i(expansion)g(starting)h(at)h
+Fj(string[i])h Fr(should)c(not)j(b)s(e)e(p)s(erformed;)h(zero)h(if)e
+(the)h(expansion)390 1554 y(should)h(b)s(e)h(done.)45
+b(It)32 b(is)f(in)m(tended)g(for)h(use)g(b)m(y)f(applications)f(lik)m
+(e)i(Bash)g(that)g(use)g(the)g(history)390 1664 y(expansion)d(c)m
+(haracter)j(for)e(additional)f(purp)s(oses.)39 b(By)30
+b(default,)g(this)f(v)-5 b(ariable)29 b(is)h(set)h(to)g
+Fq(NULL)p Fr(.)150 1928 y Fp(2.5)68 b(History)46 b(Programming)g
+(Example)275 2174 y Fr(The)29 b(follo)m(wing)g(program)h(demonstrates)h
+(simple)e(use)h(of)g(the)h Fk(gnu)f Fr(History)g(Library)-8
+b(.)390 2289 y Fd(#include)41 b(<stdio.h>)390 2376 y(#include)g
+(<readline/history.h>)390 2550 y(main)f(\(argc,)h(argv\))586
+2638 y(int)f(argc;)586 2725 y(char)g(**argv;)390 2812
+y({)468 2899 y(char)h(line[1024],)g(*t;)468 2986 y(int)f(len,)g(done)h
+(=)e(0;)468 3161 y(line[0])i(=)f(0;)468 3335 y(using_history)j(\(\);)
+468 3422 y(while)e(\(!done\))547 3509 y({)625 3597 y(printf)g
+(\("history$)g("\);)625 3684 y(fflush)g(\(stdout\);)625
+3771 y(t)f(=)f(fgets)i(\(line,)f(sizeof)h(\(line\))f(-)g(1,)g(stdin\);)
+625 3858 y(if)g(\(t)g(&&)f(*t\))704 3945 y({)782 4032
+y(len)h(=)g(strlen)g(\(t\);)782 4120 y(if)g(\(t[len)h(-)e(1])h(==)f
+('\\n'\))861 4207 y(t[len)h(-)g(1])f(=)h('\\0';)704 4294
+y(})625 4468 y(if)g(\(!t\))704 4555 y(strcpy)g(\(line,)h("quit"\);)625
+4730 y(if)f(\(line[0]\))704 4817 y({)782 4904 y(char)g(*expansion;)782
+4991 y(int)g(result;)782 5166 y(result)h(=)e(history_expand)k(\(line,)d
+(&expansion\);)782 5253 y(if)g(\(result\))861 5340 y(fprintf)h
+(\(stderr,)g("\045s\\n",)f(expansion\);)p eop
+%%Page: 12 16
+12 15 bop 150 -116 a Fr(12)2651 b(GNU)31 b(History)f(Library)782
+386 y Fd(if)40 b(\(result)h(<)e(0)h(||)f(result)i(==)f(2\))861
+473 y({)939 560 y(free)g(\(expansion\);)939 648 y(continue;)861
+735 y(})782 909 y(add_history)i(\(expansion\);)782 996
+y(strncpy)f(\(line,)g(expansion,)g(sizeof)g(\(line\))f(-)g(1\);)782
+1083 y(free)g(\(expansion\);)704 1171 y(})625 1345 y(if)g(\(strcmp)h
+(\(line,)f("quit"\))h(==)f(0\))704 1432 y(done)g(=)f(1;)625
+1519 y(else)h(if)g(\(strcmp)h(\(line,)g("save"\))f(==)g(0\))704
+1606 y(write_history)i(\("history_file"\);)625 1694 y(else)e(if)g
+(\(strcmp)h(\(line,)g("read"\))f(==)g(0\))704 1781 y(read_history)i
+(\("history_file"\);)625 1868 y(else)e(if)g(\(strcmp)h(\(line,)g
+("list"\))f(==)g(0\))704 1955 y({)782 2042 y(register)h(HIST_ENTRY)h
+(**the_list;)782 2130 y(register)f(int)f(i;)782 2304
+y(the_list)h(=)f(history_list)i(\(\);)782 2391 y(if)e(\(the_list\))861
+2478 y(for)g(\(i)f(=)h(0;)f(the_list[i];)j(i++\))939
+2565 y(printf)f(\("\045d:)f(\045s\\n",)h(i)e(+)h(history_base,)i
+(the_list[i]->line\);)704 2653 y(})625 2740 y(else)e(if)g(\(strncmp)h
+(\(line,)g("delete",)g(6\))f(==)f(0\))704 2827 y({)782
+2914 y(int)h(which;)782 3001 y(if)g(\(\(sscanf)h(\(line)f(+)g(6,)g
+("\045d",)g(&which\)\))h(==)f(1\))861 3088 y({)939 3176
+y(HIST_ENTRY)i(*entry)e(=)g(remove_history)i(\(which\);)939
+3263 y(if)e(\(!entry\))1018 3350 y(fprintf)g(\(stderr,)i("No)d(such)i
+(entry)f(\045d\\n",)h(which\);)939 3437 y(else)1018 3524
+y({)1096 3611 y(free)f(\(entry->line\);)1096 3699 y(free)g(\(entry\);)
+1018 3786 y(})861 3873 y(})782 3960 y(else)861 4047 y({)939
+4134 y(fprintf)h(\(stderr,)g("non-numeric)h(arg)e(given)g(to)g
+(`delete'\\n"\);)861 4222 y(})704 4309 y(})547 4396 y(})390
+4483 y(})p eop
+%%Page: 13 17
+13 16 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(13)150 299 y Fn(App)t(endix)53 b(A)40 b(Cop)l(ying)52
+b(This)j(Man)l(ual)150 690 y Fp(A.1)67 b(GNU)45 b(F)-11
+b(ree)45 b(Do)t(cumen)l(tation)h(License)1396 909 y Fr(V)-8
+b(ersion)30 b(1.2,)i(No)m(v)m(em)m(b)s(er)g(2002)390
+1052 y(Cop)m(yrigh)m(t)842 1049 y(c)817 1052 y Fo(\015)e
+Fr(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)31 b(Inc.)390 1161 y(59)g(T)-8 b(emple)30
+b(Place,)h(Suite)e(330,)j(Boston,)g(MA)61 b(02111-1307,)35
+b(USA)390 1380 y(Ev)m(ery)m(one)c(is)f(p)s(ermitted)f(to)i(cop)m(y)g
+(and)f(distribute)e(v)m(erbatim)i(copies)390 1490 y(of)h(this)e
+(license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m
+(w)m(ed.)199 1632 y(0.)61 b(PREAMBLE)330 1770 y(The)37
+b(purp)s(ose)e(of)i(this)f(License)h(is)f(to)i(mak)m(e)g(a)g(man)m
+(ual,)g(textb)s(o)s(ok,)i(or)d(other)g(functional)f(and)330
+1880 y(useful)28 b(do)s(cumen)m(t)i Fj(free)36 b Fr(in)28
+b(the)j(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j
+(the)e(e\013ectiv)m(e)i(freedom)330 1990 y(to)g(cop)m(y)g(and)f
+(redistribute)e(it,)i(with)g(or)g(without)f(mo)s(difying)f(it,)j
+(either)f(commercially)f(or)h(non-)330 2099 y(commercially)-8
+b(.)53 b(Secondarily)-8 b(,)34 b(this)g(License)g(preserv)m(es)h(for)f
+(the)h(author)f(and)g(publisher)d(a)k(w)m(a)m(y)330 2209
+y(to)i(get)g(credit)f(for)g(their)f(w)m(ork,)j(while)c(not)i(b)s(eing)f
+(considered)g(resp)s(onsible)e(for)j(mo)s(di\014cations)330
+2318 y(made)30 b(b)m(y)h(others.)330 2457 y(This)21 b(License)i(is)f(a)
+i(kind)d(of)j(\\cop)m(yleft",)i(whic)m(h)c(means)h(that)h(deriv)-5
+b(ativ)m(e)22 b(w)m(orks)h(of)h(the)f(do)s(cumen)m(t)330
+2566 y(m)m(ust)34 b(themselv)m(es)g(b)s(e)f(free)h(in)f(the)h(same)g
+(sense.)51 b(It)34 b(complemen)m(ts)g(the)g(GNU)g(General)g(Public)330
+2676 y(License,)c(whic)m(h)f(is)h(a)g(cop)m(yleft)h(license)f(designed)
+f(for)h(free)h(soft)m(w)m(are.)330 2814 y(W)-8 b(e)31
+b(ha)m(v)m(e)f(designed)f(this)f(License)h(in)f(order)h(to)i(use)e(it)g
+(for)g(man)m(uals)g(for)g(free)h(soft)m(w)m(are,)h(b)s(ecause)330
+2924 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:)
+64 b(a)42 b(free)h(program)f(should)e(come)j(with)e(man)m(uals)330
+3033 y(pro)m(viding)27 b(the)i(same)g(freedoms)f(that)i(the)f(soft)m(w)
+m(are)h(do)s(es.)40 b(But)29 b(this)e(License)i(is)f(not)h(limited)d
+(to)330 3143 y(soft)m(w)m(are)32 b(man)m(uals;)e(it)g(can)h(b)s(e)f
+(used)g(for)g(an)m(y)h(textual)g(w)m(ork,)g(regardless)f(of)h(sub)5
+b(ject)30 b(matter)i(or)330 3252 y(whether)f(it)g(is)f(published)e(as)k
+(a)f(prin)m(ted)f(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)g
+(License)g(principally)c(for)330 3362 y(w)m(orks)j(whose)h(purp)s(ose)d
+(is)i(instruction)e(or)i(reference.)199 3500 y(1.)61
+b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3639 y(This)38
+b(License)i(applies)e(to)i(an)m(y)h(man)m(ual)e(or)h(other)g(w)m(ork,)i
+(in)d(an)m(y)h(medium,)h(that)f(con)m(tains)h(a)330 3748
+y(notice)h(placed)f(b)m(y)g(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying)
+h(it)g(can)h(b)s(e)f(distributed)d(under)i(the)i(terms)330
+3858 y(of)c(this)e(License.)61 b(Suc)m(h)37 b(a)h(notice)g(gran)m(ts)g
+(a)g(w)m(orld-wide,)f(ro)m(y)m(alt)m(y-free)j(license,)e(unlimited)c
+(in)330 3967 y(duration,)48 b(to)e(use)f(that)g(w)m(ork)h(under)d(the)j
+(conditions)d(stated)j(herein.)84 b(The)45 b(\\Do)s(cumen)m(t",)330
+4077 y(b)s(elo)m(w,)28 b(refers)g(to)h(an)m(y)g(suc)m(h)f(man)m(ual)g
+(or)g(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)e(is)h
+(a)i(licensee,)g(and)330 4187 y(is)24 b(addressed)g(as)h(\\y)m(ou".)40
+b(Y)-8 b(ou)26 b(accept)g(the)f(license)f(if)g(y)m(ou)i(cop)m(y)-8
+b(,)27 b(mo)s(dify)c(or)i(distribute)e(the)i(w)m(ork)330
+4296 y(in)k(a)i(w)m(a)m(y)g(requiring)d(p)s(ermission)f(under)i(cop)m
+(yrigh)m(t)i(la)m(w.)330 4435 y(A)j(\\Mo)s(di\014ed)e(V)-8
+b(ersion")34 b(of)g(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f
+(con)m(taining)h(the)g(Do)s(cumen)m(t)g(or)330 4544 y(a)k(p)s(ortion)e
+(of)i(it,)h(either)e(copied)g(v)m(erbatim,)i(or)e(with)g(mo)s
+(di\014cations)e(and/or)j(translated)f(in)m(to)330 4654
+y(another)31 b(language.)330 4792 y(A)26 b(\\Secondary)g(Section")g(is)
+f(a)i(named)e(app)s(endix)e(or)j(a)h(fron)m(t-matter)g(section)f(of)g
+(the)g(Do)s(cumen)m(t)330 4902 y(that)c(deals)f(exclusiv)m(ely)f(with)g
+(the)h(relationship)e(of)i(the)h(publishers)17 b(or)k(authors)g(of)h
+(the)f(Do)s(cumen)m(t)330 5011 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m
+(v)m(erall)e(sub)5 b(ject)37 b(\(or)h(to)g(related)f(matters\))h(and)f
+(con)m(tains)g(nothing)f(that)330 5121 y(could)j(fall)g(directly)g
+(within)f(that)j(o)m(v)m(erall)g(sub)5 b(ject.)70 b(\(Th)m(us,)42
+b(if)d(the)i(Do)s(cumen)m(t)g(is)e(in)g(part)i(a)330
+5230 y(textb)s(o)s(ok)24 b(of)g(mathematics,)i(a)e(Secondary)f(Section)
+g(ma)m(y)h(not)g(explain)e(an)m(y)i(mathematics.\))39
+b(The)330 5340 y(relationship)25 b(could)h(b)s(e)h(a)g(matter)i(of)e
+(historical)f(connection)h(with)f(the)i(sub)5 b(ject)27
+b(or)g(with)f(related)p eop
+%%Page: 14 18
+14 17 bop 150 -116 a Fr(14)2651 b(GNU)31 b(History)f(Library)330
+299 y(matters,)38 b(or)d(of)h(legal,)g(commercial,)h(philosophical,)d
+(ethical)h(or)g(p)s(olitical)e(p)s(osition)h(regarding)330
+408 y(them.)330 549 y(The)25 b(\\In)m(v)-5 b(arian)m(t)26
+b(Sections")g(are)g(certain)f(Secondary)h(Sections)f(whose)g(titles)g
+(are)h(designated,)h(as)330 659 y(b)s(eing)e(those)i(of)g(In)m(v)-5
+b(arian)m(t)26 b(Sections,)i(in)d(the)i(notice)g(that)g(sa)m(ys)g(that)
+g(the)g(Do)s(cumen)m(t)g(is)f(released)330 769 y(under)g(this)h
+(License.)39 b(If)27 b(a)h(section)g(do)s(es)g(not)f(\014t)h(the)g(ab)s
+(o)m(v)m(e)h(de\014nition)c(of)j(Secondary)f(then)h(it)f(is)330
+878 y(not)32 b(allo)m(w)m(ed)g(to)g(b)s(e)g(designated)f(as)h(In)m(v)-5
+b(arian)m(t.)45 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)h(zero)
+f(In)m(v)-5 b(arian)m(t)330 988 y(Sections.)38 b(If)25
+b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)e(an)m(y)i(In)m(v)
+-5 b(arian)m(t)24 b(Sections)h(then)f(there)h(are)g(none.)330
+1129 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)f
+(short)h(passages)g(of)g(text)g(that)h(are)f(listed,)g(as)f(F)-8
+b(ron)m(t-Co)m(v)m(er)330 1238 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m
+(er)j(T)-8 b(exts,)27 b(in)c(the)i(notice)h(that)f(sa)m(ys)h(that)g
+(the)f(Do)s(cumen)m(t)h(is)e(released)g(under)330 1348
+y(this)h(License.)39 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29
+b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a)
+g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1457
+y(b)s(e)k(at)h(most)g(25)g(w)m(ords.)330 1598 y(A)36
+b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h
+(means)g(a)g(mac)m(hine-readable)f(cop)m(y)-8 b(,)38
+b(represen)m(ted)330 1708 y(in)c(a)i(format)g(whose)g(sp)s
+(eci\014cation)e(is)h(a)m(v)-5 b(ailable)35 b(to)i(the)f(general)f
+(public,)g(that)h(is)f(suitable)f(for)330 1817 y(revising)c(the)i(do)s
+(cumen)m(t)f(straigh)m(tforw)m(ardly)g(with)f(generic)i(text)h(editors)
+e(or)g(\(for)h(images)g(com-)330 1927 y(p)s(osed)23 b(of)h(pixels\))e
+(generic)i(pain)m(t)f(programs)h(or)f(\(for)h(dra)m(wings\))f(some)h
+(widely)e(a)m(v)-5 b(ailable)23 b(dra)m(wing)330 2037
+y(editor,)29 b(and)g(that)g(is)f(suitable)g(for)h(input)e(to)j(text)g
+(formatters)f(or)g(for)g(automatic)h(translation)e(to)330
+2146 y(a)f(v)-5 b(ariet)m(y)27 b(of)g(formats)g(suitable)f(for)g(input)
+f(to)j(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)f(an)h
+(otherwise)330 2256 y(T)-8 b(ransparen)m(t)37 b(\014le)g(format)h
+(whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f
+(arranged)g(to)330 2365 y(th)m(w)m(art)27 b(or)g(discourage)f
+(subsequen)m(t)g(mo)s(di\014cation)f(b)m(y)i(readers)f(is)f(not)i(T)-8
+b(ransparen)m(t.)39 b(An)27 b(image)330 2475 y(format)35
+b(is)e(not)i(T)-8 b(ransparen)m(t)34 b(if)f(used)h(for)g(an)m(y)g
+(substan)m(tial)f(amoun)m(t)i(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g
+(is)330 2585 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)e(called)h
+(\\Opaque".)330 2725 y(Examples)52 b(of)h(suitable)f(formats)h(for)g(T)
+-8 b(ransparen)m(t)53 b(copies)g(include)e(plain)g Fk(asci)r(i)i
+Fr(without)330 2835 y(markup,)41 b(T)-8 b(exinfo)39 b(input)f(format,)k
+(LaT)1775 2855 y(E)1826 2835 y(X)d(input)f(format,)43
+b Fk(sgml)c Fr(or)g Fk(xml)g Fr(using)f(a)i(publicly)330
+2945 y(a)m(v)-5 b(ailable)31 b Fk(dtd)p Fr(,)g(and)g
+(standard-conforming)f(simple)g Fk(html)p Fr(,)h(P)m(ostScript)g(or)g
+Fk(pdf)g Fr(designed)f(for)330 3054 y(h)m(uman)37 b(mo)s(di\014cation.)
+63 b(Examples)37 b(of)h(transparen)m(t)g(image)h(formats)f(include)e
+Fk(png)p Fr(,)k Fk(x)n(cf)e Fr(and)330 3164 y Fk(jpg)p
+Fr(.)63 b(Opaque)38 b(formats)g(include)e(proprietary)h(formats)h(that)
+h(can)f(b)s(e)g(read)g(and)f(edited)h(only)330 3273 y(b)m(y)h
+(proprietary)f(w)m(ord)h(pro)s(cessors,)j Fk(sgml)c Fr(or)i
+Fk(xml)e Fr(for)i(whic)m(h)e(the)h Fk(dtd)g Fr(and/or)g(pro)s(cessing)
+330 3383 y(to)s(ols)31 b(are)g(not)g(generally)f(a)m(v)-5
+b(ailable,)31 b(and)f(the)h(mac)m(hine-generated)h Fk(html)p
+Fr(,)e(P)m(ostScript)h(or)g Fk(pdf)330 3493 y Fr(pro)s(duced)e(b)m(y)h
+(some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8
+b(.)330 3634 y(The)34 b(\\Title)f(P)m(age")k(means,)e(for)f(a)h(prin)m
+(ted)e(b)s(o)s(ok,)i(the)f(title)g(page)h(itself,)f(plus)f(suc)m(h)g
+(follo)m(wing)330 3743 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)f
+(legibly)-8 b(,)27 b(the)h(material)f(this)g(License)g(requires)f(to)i
+(app)s(ear)f(in)g(the)330 3853 y(title)f(page.)40 b(F)-8
+b(or)28 b(w)m(orks)e(in)f(formats)i(whic)m(h)f(do)g(not)h(ha)m(v)m(e)h
+(an)m(y)e(title)h(page)g(as)g(suc)m(h,)g(\\Title)f(P)m(age")330
+3962 y(means)31 b(the)f(text)i(near)e(the)h(most)g(prominen)m(t)f(app)s
+(earance)g(of)h(the)g(w)m(ork's)g(title,)f(preceding)g(the)330
+4072 y(b)s(eginning)e(of)i(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330
+4213 y(A)f(section)g(\\En)m(titled)f(XYZ")h(means)f(a)h(named)g
+(subunit)d(of)i(the)h(Do)s(cumen)m(t)h(whose)e(title)g(either)330
+4322 y(is)e(precisely)f(XYZ)i(or)f(con)m(tains)h(XYZ)g(in)e(paren)m
+(theses)j(follo)m(wing)d(text)j(that)f(translates)g(XYZ)f(in)330
+4432 y(another)e(language.)39 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g
+(sp)s(eci\014c)f(section)h(name)g(men)m(tioned)g(b)s(elo)m(w,)g(suc)m
+(h)330 4542 y(as)j(\\Ac)m(kno)m(wledgemen)m(ts",)k(\\Dedications",)d
+(\\Endorsemen)m(ts",)g(or)f(\\History".\))41 b(T)-8 b(o)29
+b(\\Preserv)m(e)330 4651 y(the)34 b(Title")f(of)g(suc)m(h)h(a)g
+(section)f(when)g(y)m(ou)h(mo)s(dify)d(the)j(Do)s(cumen)m(t)h(means)e
+(that)h(it)f(remains)g(a)330 4761 y(section)e(\\En)m(titled)e(XYZ")i
+(according)f(to)h(this)f(de\014nition.)330 4902 y(The)d(Do)s(cumen)m(t)
+i(ma)m(y)f(include)d(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)c(next)i(to)
+g(the)g(notice)g(whic)m(h)e(states)j(that)330 5011 y(this)k(License)g
+(applies)f(to)j(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8
+b(arran)m(t)m(y)36 b(Disclaimers)c(are)j(considered)d(to)330
+5121 y(b)s(e)37 b(included)e(b)m(y)i(reference)h(in)f(this)f(License,)j
+(but)e(only)g(as)h(regards)f(disclaiming)e(w)m(arran)m(ties:)330
+5230 y(an)m(y)i(other)g(implication)e(that)i(these)g(W)-8
+b(arran)m(t)m(y)39 b(Disclaimers)c(ma)m(y)j(ha)m(v)m(e)g(is)e(v)m(oid)g
+(and)g(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)e(of)i
+(this)e(License.)p eop
+%%Page: 15 19
+15 18 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(15)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330
+445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)f(the)i(Do)s
+(cumen)m(t)h(in)e(an)m(y)h(medium,)g(either)g(commercially)f(or)330
+555 y(noncommercially)-8 b(,)45 b(pro)m(vided)c(that)i(this)e(License,)
+46 b(the)c(cop)m(yrigh)m(t)h(notices,)j(and)c(the)h(license)330
+664 y(notice)36 b(sa)m(ying)g(this)e(License)i(applies)d(to)k(the)f(Do)
+s(cumen)m(t)g(are)g(repro)s(duced)e(in)h(all)f(copies,)k(and)330
+774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)f(whatso)s(ev)m
+(er)j(to)f(those)g(of)g(this)e(License.)39 b(Y)-8 b(ou)27
+b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)33 b(measures)f(to)i
+(obstruct)f(or)g(con)m(trol)g(the)g(reading)f(or)h(further)e(cop)m
+(ying)i(of)g(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g
+(distribute.)36 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h
+(comp)s(ensation)e(in)f(exc)m(hange)k(for)d(copies.)330
+1103 y(If)32 b(y)m(ou)g(distribute)e(a)j(large)f(enough)g(n)m(um)m(b)s
+(er)f(of)h(copies)g(y)m(ou)g(m)m(ust)h(also)f(follo)m(w)f(the)h
+(conditions)330 1212 y(in)d(section)i(3.)330 1358 y(Y)-8
+b(ou)21 b(ma)m(y)h(also)e(lend)g(copies,)i(under)e(the)h(same)g
+(conditions)e(stated)j(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g
+(publicly)330 1468 y(displa)m(y)29 b(copies.)199 1614
+y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25
+b(y)m(ou)g(publish)d(prin)m(ted)h(copies)i(\(or)h(copies)f(in)f(media)g
+(that)i(commonly)f(ha)m(v)m(e)h(prin)m(ted)e(co)m(v)m(ers\))j(of)330
+1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)d(more)i(than)f
+(100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)d(notice)i(requires)330
+1979 y(Co)m(v)m(er)j(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)h
+(the)f(copies)g(in)f(co)m(v)m(ers)j(that)f(carry)-8 b(,)36
+b(clearly)d(and)h(legibly)-8 b(,)34 b(all)330 2089 y(these)40
+b(Co)m(v)m(er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41
+b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44
+b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330
+2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m)
+m(ust)e(also)g(clearly)f(and)h(legibly)e(iden)m(tify)g(y)m(ou)j(as)f
+(the)h(publisher)330 2308 y(of)k(these)h(copies.)52 b(The)34
+b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)d(title)i
+(with)e(all)i(w)m(ords)f(of)i(the)f(title)330 2418 y(equally)c
+(prominen)m(t)f(and)h(visible.)40 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g
+(other)g(material)f(on)h(the)g(co)m(v)m(ers)h(in)d(addition.)330
+2527 y(Cop)m(ying)35 b(with)g(c)m(hanges)i(limited)d(to)j(the)g(co)m(v)
+m(ers,)i(as)d(long)g(as)h(they)f(preserv)m(e)g(the)h(title)e(of)i(the)
+330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)h(these)g(conditions,)h(can)f
+(b)s(e)g(treated)h(as)f(v)m(erbatim)g(cop)m(ying)g(in)f(other)330
+2746 y(resp)s(ects.)330 2892 y(If)c(the)h(required)e(texts)j(for)e
+(either)g(co)m(v)m(er)j(are)e(to)s(o)g(v)m(oluminous)e(to)i(\014t)g
+(legibly)-8 b(,)32 b(y)m(ou)h(should)e(put)330 3002 y(the)i(\014rst)f
+(ones)h(listed)e(\(as)j(man)m(y)f(as)g(\014t)g(reasonably\))f(on)h(the)
+g(actual)g(co)m(v)m(er,)i(and)e(con)m(tin)m(ue)g(the)330
+3112 y(rest)e(on)m(to)g(adjacen)m(t)h(pages.)330 3258
+y(If)27 b(y)m(ou)g(publish)c(or)k(distribute)e(Opaque)h(copies)h(of)g
+(the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)e(more)j(than)e(100,)330
+3367 y(y)m(ou)i(m)m(ust)g(either)g(include)d(a)k(mac)m(hine-readable)e
+(T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)f(with)e(eac)m(h)j(Opaque)
+330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)e(or)h(with)f(eac)m(h)i
+(Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)f(from)f
+(whic)m(h)330 3587 y(the)24 b(general)h(net)m(w)m(ork-using)f(public)d
+(has)j(access)i(to)f(do)m(wnload)e(using)g(public-standard)e(net)m(w)m
+(ork)330 3696 y(proto)s(cols)39 b(a)g(complete)g(T)-8
+b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g
+(added)f(material.)65 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)g
+(option,)h(y)m(ou)g(m)m(ust)e(tak)m(e)j(reasonably)d(pruden)m(t)f
+(steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)c(of)j
+(Opaque)g(copies)g(in)e(quan)m(tit)m(y)-8 b(,)42 b(to)c(ensure)g(that)h
+(this)e(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330
+4025 y(remain)29 b(th)m(us)h(accessible)g(at)h(the)f(stated)h(lo)s
+(cation)f(un)m(til)e(at)j(least)g(one)f(y)m(ear)h(after)g(the)f(last)g
+(time)330 4134 y(y)m(ou)37 b(distribute)d(an)j(Opaque)f(cop)m(y)i
+(\(directly)e(or)g(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))f
+(of)h(that)330 4244 y(edition)29 b(to)i(the)g(public.)330
+4390 y(It)k(is)e(requested,)j(but)e(not)h(required,)f(that)h(y)m(ou)g
+(con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330
+4500 y(b)s(efore)28 b(redistributing)d(an)m(y)k(large)g(n)m(um)m(b)s
+(er)e(of)i(copies,)g(to)g(giv)m(e)g(them)g(a)g(c)m(hance)h(to)f(pro)m
+(vide)f(y)m(ou)330 4609 y(with)h(an)h(up)s(dated)f(v)m(ersion)h(of)h
+(the)f(Do)s(cumen)m(t.)199 4755 y(4.)61 b(MODIFICA)-8
+b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)e(a)
+j(Mo)s(di\014ed)e(V)-8 b(ersion)25 b(of)h(the)g(Do)s(cumen)m(t)g(under)
+e(the)h(conditions)330 5011 y(of)c(sections)g(2)h(and)e(3)h(ab)s(o)m(v)
+m(e,)k(pro)m(vided)19 b(that)j(y)m(ou)f(release)h(the)f(Mo)s(di\014ed)e
+(V)-8 b(ersion)21 b(under)e(precisely)330 5121 y(this)28
+b(License,)h(with)f(the)h(Mo)s(di\014ed)e(V)-8 b(ersion)29
+b(\014lling)d(the)j(role)g(of)g(the)g(Do)s(cumen)m(t,)h(th)m(us)f
+(licensing)330 5230 y(distribution)h(and)k(mo)s(di\014cation)e(of)j
+(the)f(Mo)s(di\014ed)e(V)-8 b(ersion)34 b(to)h(who)s(ev)m(er)f(p)s
+(ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)40 b(In)30
+b(addition,)f(y)m(ou)h(m)m(ust)h(do)f(these)h(things)e(in)g(the)i(Mo)s
+(di\014ed)d(V)-8 b(ersion:)p eop
+%%Page: 16 20
+16 19 bop 150 -116 a Fr(16)2651 b(GNU)31 b(History)f(Library)357
+299 y(A.)60 b(Use)33 b(in)e(the)i(Title)f(P)m(age)i(\(and)f(on)f(the)h
+(co)m(v)m(ers,)i(if)d(an)m(y\))h(a)g(title)f(distinct)f(from)i(that)g
+(of)g(the)510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f
+(previous)e(v)m(ersions)h(\(whic)m(h)g(should,)g(if)g(there)h(w)m(ere)g
+(an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)f(in)g(the)h(History)g
+(section)g(of)h(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)f(as)510 628 y(a)g(previous)e(v)m
+(ersion)g(if)h(the)g(original)f(publisher)e(of)j(that)h(v)m(ersion)f
+(giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)30
+b(on)g(the)h(Title)e(P)m(age,)k(as)d(authors,)h(one)g(or)f(more)h(p)s
+(ersons)e(or)h(en)m(tities)h(resp)s(onsible)c(for)510
+867 y(authorship)d(of)i(the)h(mo)s(di\014cations)d(in)h(the)h(Mo)s
+(di\014ed)e(V)-8 b(ersion,)27 b(together)h(with)c(at)j(least)g(\014v)m
+(e)510 977 y(of)d(the)g(principal)d(authors)i(of)i(the)f(Do)s(cumen)m
+(t)g(\(all)f(of)i(its)e(principal)e(authors,)k(if)e(it)g(has)h(few)m
+(er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)e(they)i(release)f(y)m
+(ou)h(from)f(this)f(requiremen)m(t.)359 1217 y(C.)60
+b(State)32 b(on)e(the)h(Title)f(page)h(the)g(name)g(of)g(the)g
+(publisher)c(of)k(the)g(Mo)s(di\014ed)e(V)-8 b(ersion,)31
+b(as)g(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31
+b(all)e(the)i(cop)m(yrigh)m(t)g(notices)f(of)h(the)f(Do)s(cumen)m(t.)
+363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)e(cop)m(yrigh)m(t)i
+(notice)f(for)h(y)m(our)f(mo)s(di\014cations)e(adjacen)m(t)k(to)f(the)g
+(other)510 1696 y(cop)m(yrigh)m(t)f(notices.)365 1826
+y(F.)61 b(Include,)27 b(immediately)f(after)i(the)h(cop)m(yrigh)m(t)f
+(notices,)h(a)f(license)f(notice)h(giving)f(the)h(public)510
+1936 y(p)s(ermission)21 b(to)26 b(use)e(the)g(Mo)s(di\014ed)f(V)-8
+b(ersion)24 b(under)f(the)i(terms)f(of)h(this)e(License,)j(in)d(the)h
+(form)510 2045 y(sho)m(wn)30 b(in)f(the)h(Addendum)f(b)s(elo)m(w.)353
+2176 y(G.)61 b(Preserv)m(e)23 b(in)f(that)h(license)f(notice)h(the)g
+(full)e(lists)g(of)i(In)m(v)-5 b(arian)m(t)22 b(Sections)h(and)f
+(required)f(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)f(in)f
+(the)i(Do)s(cumen)m(t's)g(license)f(notice.)357 2415
+y(H.)60 b(Include)29 b(an)h(unaltered)f(cop)m(y)i(of)g(this)e(License.)
+392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)g(En)m(titled)f
+(\\History",)i(Preserv)m(e)g(its)e(Title,)h(and)f(add)h(to)h(it)e(an)h
+(item)510 2655 y(stating)c(at)h(least)f(the)h(title,)f(y)m(ear,)i(new)d
+(authors,)i(and)e(publisher)d(of)29 b(the)f(Mo)s(di\014ed)e(V)-8
+b(ersion)510 2765 y(as)32 b(giv)m(en)f(on)g(the)h(Title)e(P)m(age.)45
+b(If)31 b(there)h(is)e(no)h(section)h(En)m(titled)e(\\History")i(in)e
+(the)h(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)g(the)g
+(title,)g(y)m(ear,)i(authors,)f(and)e(publisher)d(of)k(the)g(Do)s
+(cumen)m(t)510 2984 y(as)h(giv)m(en)g(on)g(its)g(Title)f(P)m(age,)k
+(then)d(add)g(an)g(item)f(describing)f(the)i(Mo)s(di\014ed)f(V)-8
+b(ersion)36 b(as)510 3093 y(stated)31 b(in)e(the)i(previous)e(sen)m
+(tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s
+(cation,)g(if)e(an)m(y)-8 b(,)34 b(giv)m(en)e(in)g(the)g(Do)s(cumen)m
+(t)h(for)g(public)c(access)34 b(to)510 3333 y(a)e(T)-8
+b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m
+(ewise)e(the)j(net)m(w)m(ork)g(lo)s(cations)e(giv)m(en)h(in)510
+3443 y(the)h(Do)s(cumen)m(t)g(for)g(previous)e(v)m(ersions)h(it)g(w)m
+(as)h(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)g(in)g(the)
+510 3552 y(\\History")26 b(section.)39 b(Y)-8 b(ou)25
+b(ma)m(y)h(omit)f(a)g(net)m(w)m(ork)h(lo)s(cation)e(for)h(a)h(w)m(ork)f
+(that)g(w)m(as)h(published)510 3662 y(at)36 b(least)g(four)f(y)m(ears)i
+(b)s(efore)e(the)h(Do)s(cumen)m(t)h(itself,)f(or)f(if)g(the)h(original)
+e(publisher)e(of)k(the)510 3771 y(v)m(ersion)30 b(it)g(refers)g(to)h
+(giv)m(es)g(p)s(ermission.)354 3902 y(K.)60 b(F)-8 b(or)24
+b(an)m(y)h(section)e(En)m(titled)g(\\Ac)m(kno)m(wledgemen)m(ts")j(or)e
+(\\Dedications",)i(Preserv)m(e)e(the)g(Title)510 4011
+y(of)j(the)f(section,)i(and)e(preserv)m(e)h(in)e(the)i(section)f(all)g
+(the)g(substance)h(and)f(tone)h(of)f(eac)m(h)i(of)f(the)510
+4121 y(con)m(tributor)j(ac)m(kno)m(wledgemen)m(ts)i(and/or)e
+(dedications)f(giv)m(en)i(therein.)368 4251 y(L.)60 b(Preserv)m(e)36
+b(all)e(the)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(of)g(the)h(Do)s
+(cumen)m(t,)h(unaltered)e(in)f(their)g(text)j(and)510
+4361 y(in)e(their)g(titles.)56 b(Section)36 b(n)m(um)m(b)s(ers)e(or)i
+(the)g(equiv)-5 b(alen)m(t)36 b(are)g(not)g(considered)f(part)h(of)g
+(the)510 4470 y(section)31 b(titles.)341 4600 y(M.)61
+b(Delete)32 b(an)m(y)f(section)g(En)m(titled)e(\\Endorsemen)m(ts".)42
+b(Suc)m(h)30 b(a)i(section)e(ma)m(y)i(not)f(b)s(e)f(included)510
+4710 y(in)f(the)i(Mo)s(di\014ed)d(V)-8 b(ersion.)357
+4840 y(N.)60 b(Do)29 b(not)g(retitle)f(an)m(y)g(existing)g(section)g
+(to)h(b)s(e)f(En)m(titled)f(\\Endorsemen)m(ts")i(or)f(to)h(con\015ict)f
+(in)510 4950 y(title)i(with)f(an)m(y)i(In)m(v)-5 b(arian)m(t)30
+b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)f
+(V)-8 b(ersion)33 b(includes)e(new)i(fron)m(t-matter)i(sections)e(or)g
+(app)s(endices)f(that)i(qualify)330 5340 y(as)28 b(Secondary)g
+(Sections)f(and)g(con)m(tain)i(no)e(material)h(copied)f(from)g(the)h
+(Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop
+%%Page: 17 21
+17 20 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(17)330 299 y(y)m(our)32 b(option)g(designate)h(some)f(or)h
+(all)e(of)h(these)h(sections)g(as)f(in)m(v)-5 b(arian)m(t.)46
+b(T)-8 b(o)33 b(do)f(this,)g(add)g(their)330 408 y(titles)j(to)h(the)f
+(list)f(of)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(in)f(the)i(Mo)s
+(di\014ed)e(V)-8 b(ersion's)35 b(license)f(notice.)56
+b(These)330 518 y(titles)30 b(m)m(ust)g(b)s(e)g(distinct)f(from)g(an)m
+(y)i(other)g(section)f(titles.)330 650 y(Y)-8 b(ou)43
+b(ma)m(y)g(add)f(a)g(section)h(En)m(titled)e(\\Endorsemen)m(ts",)46
+b(pro)m(vided)41 b(it)h(con)m(tains)g(nothing)g(but)330
+759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)f(V)-8
+b(ersion)30 b(b)m(y)f(v)-5 b(arious)29 b(parties|for)g(example,)g
+(statemen)m(ts)j(of)330 869 y(p)s(eer)27 b(review)f(or)h(that)h(the)f
+(text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)f
+(as)g(the)h(authoritativ)m(e)330 978 y(de\014nition)g(of)j(a)f
+(standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g
+(up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er)
+30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330
+1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8
+b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)f(of)h(Co)m(v)m(er)h(T)-8
+b(exts)27 b(in)f(the)i(Mo)s(di\014ed)330 1329 y(V)-8
+b(ersion.)57 b(Only)34 b(one)i(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m
+(er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8
+b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through)
+f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8
+b(.)41 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548
+y(includes)k(a)i(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m(er,)h
+(previously)c(added)h(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m(t)330
+1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)h(y)m(ou)g(are)f
+(acting)h(on)f(b)s(ehalf)e(of,)k(y)m(ou)f(ma)m(y)g(not)f(add)g
+(another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)f(the)g(old)f
+(one,)j(on)e(explicit)e(p)s(ermission)f(from)i(the)i(previous)d
+(publisher)e(that)330 1877 y(added)g(the)g(old)g(one.)330
+2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))d(of)k(the)f(Do)s
+(cumen)m(t)h(do)g(not)f(b)m(y)h(this)e(License)h(giv)m(e)h(p)s
+(ermission)330 2118 y(to)31 b(use)f(their)f(names)i(for)f(publicit)m(y)
+d(for)k(or)f(to)h(assert)g(or)f(imply)e(endorsemen)m(t)i(of)h(an)m(y)g
+(Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61
+b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m
+(bine)g(the)g(Do)s(cumen)m(t)g(with)f(other)g(do)s(cumen)m(ts)h
+(released)f(under)g(this)f(License,)330 2600 y(under)g(the)h(terms)g
+(de\014ned)f(in)g(section)h(4)h(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)e
+(v)m(ersions,)k(pro)m(vided)d(that)i(y)m(ou)330 2710
+y(include)23 b(in)h(the)h(com)m(bination)g(all)f(of)i(the)f(In)m(v)-5
+b(arian)m(t)25 b(Sections)g(of)h(all)e(of)h(the)h(original)d(do)s
+(cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)i(and)h(list)f(them)i(all)e
+(as)i(In)m(v)-5 b(arian)m(t)27 b(Sections)f(of)h(y)m(our)g(com)m(bined)
+f(w)m(ork)g(in)g(its)g(license)330 2929 y(notice,)31
+b(and)f(that)h(y)m(ou)f(preserv)m(e)h(all)e(their)h(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)f(w)m
+(ork)i(need)e(only)h(con)m(tain)g(one)h(cop)m(y)g(of)f(this)f(License,)
+i(and)e(m)m(ultiple)f(iden)m(tical)330 3170 y(In)m(v)-5
+b(arian)m(t)32 b(Sections)g(ma)m(y)h(b)s(e)f(replaced)g(with)f(a)i
+(single)e(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)d(In)m
+(v)-5 b(arian)m(t)330 3280 y(Sections)26 b(with)g(the)h(same)g(name)g
+(but)f(di\013eren)m(t)g(con)m(ten)m(ts,)j(mak)m(e)f(the)f(title)f(of)h
+(eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)32 b(b)m(y)i(adding)e
+(at)j(the)f(end)g(of)g(it,)g(in)f(paren)m(theses,)j(the)e(name)g(of)g
+(the)g(original)e(author)i(or)330 3499 y(publisher)21
+b(of)k(that)h(section)f(if)f(kno)m(wn,)i(or)f(else)g(a)g(unique)e(n)m
+(um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330
+3608 y(to)g(the)g(section)f(titles)g(in)f(the)i(list)e(of)h(In)m(v)-5
+b(arian)m(t)25 b(Sections)f(in)f(the)h(license)g(notice)h(of)f(the)h
+(com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m
+(bination,)j(y)m(ou)d(m)m(ust)g(com)m(bine)g(an)m(y)h(sections)f(En)m
+(titled)f(\\History")i(in)e(the)h(v)-5 b(ari-)330 3959
+y(ous)32 b(original)e(do)s(cumen)m(ts,)j(forming)e(one)h(section)g(En)m
+(titled)f(\\History";)j(lik)m(ewise)d(com)m(bine)h(an)m(y)330
+4069 y(sections)g(En)m(titled)e(\\Ac)m(kno)m(wledgemen)m(ts",)35
+b(and)c(an)m(y)h(sections)g(En)m(titled)f(\\Dedications".)45
+b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)h(all)e(sections)i(En)m
+(titled)e(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28
+b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f
+(collection)f(consisting)g(of)h(the)g(Do)s(cumen)m(t)g(and)g(other)g
+(do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)g(License,)k
+(and)d(replace)g(the)h(individual)38 b(copies)k(of)g(this)f(License)h
+(in)f(the)i(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42
+b(with)f(a)i(single)e(cop)m(y)j(that)f(is)e(included)f(in)h(the)i
+(collection,)i(pro)m(vided)c(that)j(y)m(ou)330 4770 y(follo)m(w)36
+b(the)i(rules)d(of)i(this)f(License)h(for)g(v)m(erbatim)g(cop)m(ying)g
+(of)g(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)g(all)330
+4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32
+b(ma)m(y)g(extract)h(a)f(single)e(do)s(cumen)m(t)h(from)g(suc)m(h)g(a)h
+(collection,)f(and)g(distribute)e(it)i(individu-)330
+5121 y(ally)j(under)f(this)h(License,)i(pro)m(vided)e(y)m(ou)h(insert)f
+(a)h(cop)m(y)h(of)f(this)f(License)g(in)m(to)h(the)h(extracted)330
+5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)g(this)f(License)h(in)g(all)f
+(other)i(resp)s(ects)f(regarding)g(v)m(erbatim)g(cop)m(ying)h(of)330
+5340 y(that)e(do)s(cumen)m(t.)p eop
+%%Page: 18 22
+18 21 bop 150 -116 a Fr(18)2651 b(GNU)31 b(History)f(Library)199
+299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)
+330 428 y(A)d(compilation)f(of)h(the)g(Do)s(cumen)m(t)h(or)f(its)f
+(deriv)-5 b(ativ)m(es)28 b(with)e(other)j(separate)g(and)e(indep)s
+(enden)m(t)330 538 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)e(or)i
+(on)f(a)g(v)m(olume)g(of)h(a)f(storage)i(or)e(distribution)d(medium,)i
+(is)h(called)330 648 y(an)d(\\aggregate")k(if)29 b(the)h(cop)m(yrigh)m
+(t)h(resulting)d(from)h(the)i(compilation)d(is)h(not)i(used)e(to)i
+(limit)d(the)330 757 y(legal)e(righ)m(ts)g(of)h(the)g(compilation's)e
+(users)h(b)s(ey)m(ond)g(what)g(the)h(individual)22 b(w)m(orks)k(p)s
+(ermit.)38 b(When)330 867 y(the)28 b(Do)s(cumen)m(t)g(is)f(included)e
+(an)i(aggregate,)32 b(this)26 b(License)h(do)s(es)h(not)g(apply)e(to)i
+(the)g(other)g(w)m(orks)330 976 y(in)h(the)i(aggregate)i(whic)m(h)c
+(are)i(not)f(themselv)m(es)h(deriv)-5 b(ativ)m(e)30 b(w)m(orks)g(of)h
+(the)f(Do)s(cumen)m(t.)330 1106 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8
+b(ext)23 b(requiremen)m(t)f(of)h(section)g(3)g(is)f(applicable)f(to)i
+(these)h(copies)e(of)h(the)g(Do)s(cumen)m(t,)330 1215
+y(then)f(if)f(the)i(Do)s(cumen)m(t)g(is)f(less)f(than)h(one)h(half)e
+(of)i(the)g(en)m(tire)f(aggregate,)27 b(the)c(Do)s(cumen)m(t's)g(Co)m
+(v)m(er)330 1325 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)g(on)h(co)m
+(v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)d(the)j
+(aggregate,)j(or)d(the)330 1435 y(electronic)35 b(equiv)-5
+b(alen)m(t)34 b(of)i(co)m(v)m(ers)g(if)e(the)h(Do)s(cumen)m(t)h(is)e
+(in)g(electronic)h(form.)54 b(Otherwise)34 b(they)330
+1544 y(m)m(ust)c(app)s(ear)g(on)g(prin)m(ted)f(co)m(v)m(ers)j(that)f
+(brac)m(k)m(et)h(the)f(whole)e(aggregate.)199 1674 y(8.)61
+b(TRANSLA)-8 b(TION)330 1803 y(T)g(ranslation)39 b(is)g(considered)f(a)
+j(kind)d(of)i(mo)s(di\014cation,)h(so)f(y)m(ou)g(ma)m(y)h(distribute)c
+(translations)330 1913 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h
+(terms)h(of)f(section)h(4.)83 b(Replacing)43 b(In)m(v)-5
+b(arian)m(t)44 b(Sections)g(with)330 2022 y(translations)g(requires)g
+(sp)s(ecial)g(p)s(ermission)f(from)i(their)f(cop)m(yrigh)m(t)i
+(holders,)i(but)d(y)m(ou)g(ma)m(y)330 2132 y(include)22
+b(translations)i(of)g(some)h(or)g(all)e(In)m(v)-5 b(arian)m(t)24
+b(Sections)g(in)f(addition)g(to)i(the)g(original)e(v)m(ersions)330
+2242 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)32 b(Sections.)43
+b(Y)-8 b(ou)32 b(ma)m(y)g(include)d(a)j(translation)e(of)i(this)e
+(License,)i(and)e(all)h(the)330 2351 y(license)40 b(notices)h(in)f(the)
+i(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42
+b(Disclaimers,)h(pro)m(vided)d(that)i(y)m(ou)330 2461
+y(also)e(include)e(the)i(original)e(English)g(v)m(ersion)h(of)h(this)f
+(License)h(and)f(the)h(original)e(v)m(ersions)i(of)330
+2570 y(those)35 b(notices)f(and)f(disclaimers.)50 b(In)33
+b(case)i(of)g(a)f(disagreemen)m(t)g(b)s(et)m(w)m(een)h(the)f
+(translation)g(and)330 2680 y(the)h(original)f(v)m(ersion)g(of)i(this)e
+(License)h(or)g(a)g(notice)h(or)f(disclaimer,)f(the)i(original)d(v)m
+(ersion)i(will)330 2790 y(prev)-5 b(ail.)330 2919 y(If)28
+b(a)h(section)g(in)e(the)i(Do)s(cumen)m(t)h(is)d(En)m(titled)h(\\Ac)m
+(kno)m(wledgemen)m(ts",)j(\\Dedications",)f(or)f(\\His-)330
+3029 y(tory",)f(the)f(requiremen)m(t)e(\(section)i(4\))g(to)g(Preserv)m
+(e)g(its)e(Title)h(\(section)g(1\))h(will)d(t)m(ypically)h(require)330
+3138 y(c)m(hanging)30 b(the)h(actual)g(title.)199 3268
+y(9.)61 b(TERMINA)-8 b(TION)330 3397 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m
+(y)-8 b(,)31 b(mo)s(dify)-8 b(,)29 b(sublicense,)f(or)i(distribute)d
+(the)j(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3507
+y(pro)m(vided)40 b(for)i(under)e(this)h(License.)74 b(An)m(y)42
+b(other)g(attempt)h(to)g(cop)m(y)-8 b(,)46 b(mo)s(dify)-8
+b(,)43 b(sublicense)d(or)330 3616 y(distribute)34 b(the)j(Do)s(cumen)m
+(t)g(is)f(v)m(oid,)i(and)e(will)e(automatically)i(terminate)h(y)m(our)f
+(righ)m(ts)g(under)330 3726 y(this)27 b(License.)39 b(Ho)m(w)m(ev)m
+(er,)31 b(parties)c(who)g(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)e
+(righ)m(ts,)h(from)g(y)m(ou)g(under)e(this)330 3836 y(License)36
+b(will)e(not)j(ha)m(v)m(e)h(their)e(licenses)f(terminated)i(so)g(long)f
+(as)h(suc)m(h)f(parties)g(remain)g(in)f(full)330 3945
+y(compliance.)154 4075 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e
+(LICENSE)330 4204 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
+b(oundation)42 b(ma)m(y)g(publish)c(new,)44 b(revised)c(v)m(ersions)h
+(of)h(the)g(GNU)g(F)-8 b(ree)330 4314 y(Do)s(cumen)m(tation)33
+b(License)e(from)h(time)g(to)h(time.)45 b(Suc)m(h)31
+b(new)h(v)m(ersions)f(will)f(b)s(e)h(similar)e(in)i(spirit)330
+4423 y(to)k(the)g(presen)m(t)f(v)m(ersion,)h(but)f(ma)m(y)h(di\013er)e
+(in)g(detail)g(to)i(address)f(new)g(problems)e(or)j(concerns.)330
+4533 y(See)c Fq(http://www.gnu.org/copy)o(left)o(/)p
+Fr(.)330 4663 y(Eac)m(h)f(v)m(ersion)f(of)h(the)f(License)g(is)g(giv)m
+(en)g(a)h(distinguishing)25 b(v)m(ersion)k(n)m(um)m(b)s(er.)39
+b(If)29 b(the)g(Do)s(cumen)m(t)330 4772 y(sp)s(eci\014es)44
+b(that)i(a)g(particular)d(n)m(um)m(b)s(ered)h(v)m(ersion)h(of)g(this)f
+(License)h(\\or)h(an)m(y)g(later)f(v)m(ersion")330 4882
+y(applies)31 b(to)i(it,)g(y)m(ou)f(ha)m(v)m(e)i(the)f(option)f(of)g
+(follo)m(wing)f(the)i(terms)f(and)g(conditions)f(either)h(of)g(that)330
+4991 y(sp)s(eci\014ed)k(v)m(ersion)i(or)f(of)h(an)m(y)h(later)f(v)m
+(ersion)f(that)h(has)g(b)s(een)f(published)d(\(not)39
+b(as)f(a)g(draft\))g(b)m(y)330 5101 y(the)33 b(F)-8 b(ree)34
+b(Soft)m(w)m(are)f(F)-8 b(oundation.)48 b(If)32 b(the)h(Do)s(cumen)m(t)
+g(do)s(es)g(not)g(sp)s(ecify)e(a)i(v)m(ersion)f(n)m(um)m(b)s(er)g(of)
+330 5210 y(this)h(License,)j(y)m(ou)e(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g
+(v)m(ersion)f(ev)m(er)h(published)c(\(not)k(as)g(a)f(draft\))h(b)m(y)f
+(the)h(F)-8 b(ree)330 5320 y(Soft)m(w)m(are)31 b(F)-8
+b(oundation.)p eop
+%%Page: 19 23
+19 22 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(19)150 299 y Fi(A.1.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g
+(use)g(this)g(License)g(for)g(y)m(our)g(do)s(cumen)m(ts)275
+543 y Fr(T)-8 b(o)27 b(use)g(this)f(License)h(in)f(a)i(do)s(cumen)m(t)f
+(y)m(ou)h(ha)m(v)m(e)g(written,)f(include)e(a)j(cop)m(y)g(of)f(the)h
+(License)f(in)f(the)150 653 y(do)s(cumen)m(t)k(and)g(put)g(the)g(follo)
+m(wing)f(cop)m(yrigh)m(t)i(and)f(license)f(notices)h(just)g(after)h
+(the)g(title)f(page:)468 765 y Fd(Copyright)42 b(\(C\))79
+b Fc(year)88 b(your)40 b(name)p Fd(.)468 852 y(Permission)i(is)e
+(granted)g(to)g(copy,)h(distribute)g(and/or)g(modify)f(this)g(document)
+468 939 y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i
+(License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h
+(published)h(by)d(the)h(Free)g(Software)h(Foundation;)468
+1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g
+(and)f(no)f(Back-Cover)j(Texts.)468 1200 y(A)e(copy)g(of)g(the)g
+(license)g(is)g(included)h(in)f(the)g(section)h(entitled)g(``GNU)468
+1288 y(Free)g(Documentation)h(License''.)275 1410 y Fr(If)d(y)m(ou)h
+(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)40 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)d(the)150 1520 y(\\with...T)-8
+b(exts.")42 b(line)28 b(with)i(this:)547 1632 y Fd(with)40
+b(the)g(Invariant)h(Sections)g(being)g Fc(list)f(their)g(titles)p
+Fd(,)h(with)547 1719 y(the)f(Front-Cover)i(Texts)e(being)g
+Fc(list)p Fd(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547
+1806 y(being)f Fc(list)p Fd(.)275 1929 y Fr(If)34 b(y)m(ou)i(ha)m(v)m
+(e)g(In)m(v)-5 b(arian)m(t)35 b(Sections)g(without)f(Co)m(v)m(er)i(T)-8
+b(exts,)38 b(or)d(some)g(other)h(com)m(bination)e(of)i(the)150
+2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)g(to)g
+(suit)e(the)i(situation.)275 2173 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f
+(con)m(tains)h(non)m(trivial)e(examples)i(of)g(program)f(co)s(de,)j(w)m
+(e)e(recommend)g(releasing)150 2283 y(these)44 b(examples)e(in)g
+(parallel)f(under)h(y)m(our)h(c)m(hoice)h(of)f(free)g(soft)m(w)m(are)h
+(license,)i(suc)m(h)d(as)g(the)g(GNU)150 2392 y(General)30
+b(Public)e(License,)j(to)g(p)s(ermit)d(their)i(use)g(in)f(free)h(soft)m
+(w)m(are.)p eop
+%%Page: 20 24
+20 23 bop 150 -116 a Fr(20)2651 b(GNU)31 b(History)f(Library)p
eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fp(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l
-(ariable)g(Index)919 b(15)75 149 y Fl(App)r(endix)25
-b(B)41 b(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
-b(Index)75 321 y Fn(A)75 382 y Fc(add_histor)o(y)8 b
-Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(6)75 428 y Fc(append_his)o(to)o(ry)8 b Fd(.)s(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)21 b Fe(9)75 557 y Fn(C)75 618
-y Fc(clear_hist)o(or)o(y)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)22 b Fe(6)75 664 y Fc(current_hi)o(st)o(ory)7
-b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
-Fe(7)75 793 y Fn(G)75 854 y Fc(get_histor)o(y_)o(eve)o(nt)5
-b Fd(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fe(9)75
-984 y Fn(H)75 1044 y Fc(history_ar)o(g_)o(ext)o(ra)o(ct)5
-b Fd(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(9)75 1090 y Fc(history_ba)o(se)
-6 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Fe(10)75 1136 y Fc(history_co)o(mm)o(ent)o(_c)o(har)s
-Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)16 b Fe(10)75 1182 y Fc(history_ex)o(pa)o(nd)8
-b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Fe(9)75 1227 y Fc(history_ex)o(pa)o(nsi)o(on)o(_ch)o(ar)8
-b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)24 b Fe(10)75 1273 y Fc(history_ge)o(t)8
-b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(7)75 1319 y Fc(history_ge)o(t_)o(his)o(to)o(ry_)o(sta)o(te)6
-b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)22 b Fe(6)75 1364 y Fc(history_in)o(hi)o(bit)o(_e)o(xpa)o(nsi)o(on)
-o(_fu)o(nc)o(tio)o(n)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)24
-b Fe(11)75 1410 y Fc(history_is)o(_s)o(tif)o(le)o(d)6
-b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(7)75 1456
-y Fc(history_le)o(ng)o(th)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)21 b Fe(10)75 1501 y Fc(history_li)o(st)6 b Fd(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fe(7)75
-1547 y Fc(history_ma)o(x_)o(ent)o(ri)o(es)t Fd(.)s(.)6
-b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)17 b Fe(10)75 1593 y Fc(history_no)o(_e)o(xpa)o(nd)o
-(_ch)o(ars)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)23 b Fe(10)75 1638 y Fc(history_qu)o(ot)o(es_)o
-(in)o(hib)o(it_)o(ex)o(pan)o(si)o(on)t Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Fe(10)75 1684 y Fc(history_se)o(ar)o(ch)8
-b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Fe(8)75 1730 y Fc(history_se)o(ar)o(ch_)o(de)o(lim)o(ite)o(r_)o(cha)o
-(rs)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Fe(10)75 1776 y Fc(history_se)o(ar)o(ch_)o(po)o(s)6
-b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(8)75 1821
-y Fc(history_se)o(ar)o(ch_)o(pr)o(efi)o(x)s Fd(.)t(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)16 b Fe(8)75 1867 y Fc(history_se)o(t_)o(his)o(to)o(ry_)
-o(sta)o(te)6 b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)22 b Fe(6)75 1913 y Fc(history_se)o(t_)o(pos)7
-b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
-Fe(7)1012 321 y Fc(history_sub)o(st)o(_ch)o(ar)t Fd(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(10)1012 368 y Fc(history_tok)o(en)o(ize)
-6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)20 b Fe(9)1012
-414 y Fc(history_tot)o(al)o(_by)o(te)o(s)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)18 b Fe(7)1012 460 y Fc(history_tru)o(nc)o(ate)o(_f)o(ile)s
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(9)1012 507 y Fc(history_wor)o(d_)o(del)
-o(im)o(ite)o(rs)7 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Fe(10)1012 640 y Fn(N)1012
-702 y Fc(next_histor)o(y)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)23 b Fe(7)1012 836 y Fn(P)1012 898 y
-Fc(previous_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)20 b Fe(7)1012 1031 y Fn(R)1012 1094 y Fc(read_histor)o(y)7
-b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(8)1012 1140 y Fc(read_histor)o(y_)o(ran)o(ge)5 b
-Fd(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fe(8)1012 1186
-y Fc(remove_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)22 b Fe(6)1012 1233 y Fc(replace_his)o(to)o(ry_)o(en)o(try)s
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(6)1012 1366 y Fn(S)1012
-1429 y Fc(stifle_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)22 b Fe(7)1012 1562 y Fn(U)1012 1624
-y Fc(unstifle_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)20 b Fe(7)1012 1671 y Fc(using_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(6)1012 1804
-y Fn(W)1012 1866 y Fc(where_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(7)1012 1913 y Fc(write_histo)o(ry)6
-b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Fe(8)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fp(16)1324 b(GNU)15 b(History)g(Library)p
+%%Page: 21 25
+21 24 bop 150 -116 a Fr(App)s(endix)28 b(B:)j(Concept)f(Index)2391
+b(21)150 299 y Fn(App)t(endix)53 b(B)47 b(Concept)k(Index)150
+638 y Fp(A)150 796 y Fb(anc)n(hored)26 b(searc)n(h)7
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33
+b Fb(8)150 1138 y Fp(E)150 1296 y Fb(ev)n(en)n(t)25 b(designators)d
+Fa(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46
+b Fb(1)2025 638 y Fp(F)2025 754 y Fb(FDL,)25 b(GNU)g(F)-6
+b(ree)26 b(Do)r(cumen)n(tation)f(License)11 b Fa(.)i(.)g(.)f(.)g(.)h(.)
+f(.)37 b Fb(13)2025 1005 y Fp(H)2025 1121 y Fb(history)25
+b(ev)n(en)n(ts)d Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)49 b Fb(1)2025 1209 y(history)25 b(expansion)15
+b Fa(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41 b
+Fb(1)2025 1296 y(History)25 b(Searc)n(hing)12 b Fa(.)h(.)f(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(8)p eop
+%%Page: 22 26
+22 25 bop 150 -116 a Fr(22)2651 b(GNU)31 b(History)f(Library)p
eop
-%%Page: -1 19
--1 18 bop 1862 -58 a Fp(i)75 149 y Fl(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fn(1)67 b(Using)22 b(History)h(In)n
-(teractiv)n(ely)9 b Fb(.)k(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)h(.)31 b Fn(1)224 389 y Fp(1.1)45 b(History)15
-b(Expansion)5 b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fp(1)374 444 y(1.1.1)44
-b(Ev)o(en)o(t)14 b(Designators)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)26 b Fp(1)374 499 y(1.1.2)44 b(W)l(ord)15
-b(Designators)5 b Fa(.)h(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)19 b Fp(2)374 553 y(1.1.3)44 b(Mo)q(di\014ers)t Fa(.)8
-b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)19 b Fp(2)75 675 y Fn(2)67 b(Programming)23
-b(with)g(GNU)f(History)16 b Fb(.)10 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)38 b Fn(5)224 743 y Fp(2.1)45 b(In)o(tro)q(duction)16
-b(to)f(History)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)24 b Fp(5)224 798 y(2.2)45 b(History)15
-b(Storage)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Fp(5)224 853
-y(2.3)45 b(History)15 b(F)l(unctions)d Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26
-b Fp(6)374 907 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e
-(Managemen)o(t)g Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)29 b
-Fp(6)374 962 y(2.3.2)44 b(History)15 b(List)h(Managemen)o(t)d
-Fa(.)7 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)29 b Fp(6)374 1017 y(2.3.3)44
-b(Information)15 b(Ab)q(out)g(the)h(History)f(List)c
-Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fp(7)374 1072 y(2.3.4)44 b(Mo)o(ving)15 b(Around)g(the)g(History)g
-(List)c Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)25 b Fp(7)374 1127 y(2.3.5)44 b(Searc)o(hing)16
-b(the)f(History)g(List)7 b Fa(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fp(8)374 1181 y(2.3.6)44 b(Managing)15 b(the)g(History)g(File)6
-b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)20 b Fp(8)374 1236 y(2.3.7)44
-b(History)15 b(Expansion)9 b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)24 b Fp(9)224 1291 y(2.4)45 b(History)15 b(V)l(ariables)6
-b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)21 b Fp(10)224 1346 y(2.5)45 b(History)15
-b(Programming)f(Example)7 b Fa(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fp(11)75 1467 y Fn(App)r(endix)i(A)67 b(Concept)22
-b(Index)17 b Fb(.)10 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)h(.)f(.)g(.)38 b Fn(13)75 1602 y(App)r(endix)24 b(B)67
-b(F)-6 b(unction)25 b(and)e(V)-6 b(ariable)24 b(Index)16
-b Fb(.)10 b(.)g(.)g(.)38 b Fn(15)p eop
-%%Page: -2 20
--2 19 bop 75 -58 a Fp(ii)1346 b(GNU)15 b(History)g(Library)p
+%%Page: 23 27
+23 26 bop 150 -116 a Fr(App)s(endix)28 b(C:)i(F)-8 b(unction)30
+b(and)g(V)-8 b(ariable)30 b(Index)1832 b(23)150 299 y
+Fn(App)t(endix)53 b(C)45 b(F)-13 b(unction)53 b(and)g(V)-13
+b(ariable)55 b(Index)150 638 y Fp(A)150 755 y Fd(add_history)24
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(6)150 842 y Fd(add_history_time)14 b Fa(.)i(.)d(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)40 b Fb(6)150 929 y Fd(append_history)17
+b Fa(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
+b Fb(9)150 1182 y Fp(C)150 1299 y Fd(clear_history)22
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(7)150 1386 y Fd(current_history)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)42 b Fb(7)150 1639 y Fp(F)150 1755
+y Fd(free_history_entry)11 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+37 b Fb(6)150 2008 y Fp(G)150 2124 y Fd(get_history_event)13
+b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(9)150
+2377 y Fp(H)150 2494 y Fd(history_arg_extract)9 b Fa(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(10)150 2581 y Fd(history_base)22
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45
+b Fb(10)150 2669 y Fd(history_comment_char)7 b Fa(.)17
+b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)33 b Fb(10)150 2756 y Fd(history_expand)17
+b Fa(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
+b Fb(9)150 2843 y Fd(history_expansion_char)28 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)48 b Fb(10)150 2931 y Fd(history_get)24 b Fa(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(7)150 3018 y Fd(history_get_history_state)25 b Fa(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45
+b Fb(6)150 3106 y Fd(history_get_time)14 b Fa(.)i(.)d(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)40 b Fb(7)150 3193 y Fd(history_inhibit_expansion_fun)q
+(ctio)q(n)29 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(11)150
+3280 y Fd(history_is_stifled)11 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)37 b Fb(7)150 3368 y Fd(history_length)16 b Fa(.)g(.)c(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(10)150 3455 y Fd(history_list)23
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)46
+b Fb(7)150 3543 y Fd(history_max_entries)9 b Fa(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(10)150 3630 y Fd
+(history_no_expand_chars)26 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(11)150
+3718 y Fd(history_quotes_inhibit_expans)q(ion)9 b Fa(.)18
+b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(11)150
+3805 y Fd(history_search)17 b Fa(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)43 b Fb(8)150 3892 y Fd(history_search_delimiter_char)q(s)11
+b Fa(.)18 b(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37
+b Fb(10)150 3980 y Fd(history_search_pos)11 b Fa(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(8)2025 638 y
+Fd(history_search_prefix)7 b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33
+b Fb(8)2025 725 y Fd(history_set_history_state)25 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46
+b Fb(6)2025 813 y Fd(history_set_pos)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)42 b Fb(8)2025 900 y Fd(history_subst_char)10
+b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(10)2025
+987 y Fd(history_tokenize)13 b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+39 b Fb(10)2025 1074 y Fd(history_total_bytes)10 b Fa(.)16
+b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(7)2025 1162 y Fd
+(history_truncate_file)7 b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33
+b Fb(9)2025 1249 y Fd(history_word_delimiters)26 b Fa(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)47 b Fb(10)2025 1336 y Fd(history_write_timestamps)25
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)46 b Fb(10)2025 1588 y Fp(N)2025 1704 y Fd(next_history)23
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46
+b Fb(8)2025 1956 y Fp(P)2025 2072 y Fd(previous_history)14
+b Fa(.)i(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)41 b Fb(8)2025
+2324 y Fp(R)2025 2440 y Fd(read_history)23 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46
+b Fb(9)2025 2527 y Fd(read_history_range)11 b Fa(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(9)2025 2614 y
+Fd(remove_history)17 b Fa(.)e(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)44 b Fb(6)2025 2702 y Fd(replace_history_entry)7
+b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fb(7)2025 2953 y
+Fp(S)2025 3069 y Fd(stifle_history)17 b Fa(.)e(.)e(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)44 b Fb(7)2025 3321 y Fp(U)2025 3437
+y Fd(unstifle_history)14 b Fa(.)i(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+41 b Fb(7)2025 3525 y Fd(using_history)21 b Fa(.)13 b(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(6)2025 3776 y
+Fp(W)2025 3893 y Fd(where_history)21 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(7)2025 3980 y Fd(write_history)21
+b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45
+b Fb(9)p eop
+%%Page: 24 28
+24 27 bop 150 -116 a Fr(24)2651 b(GNU)31 b(History)f(Library)p
eop
%%Trailer
end
diff --git a/doc/history.texi b/doc/history.texi
new file mode 100644
index 0000000..f6a3d20
--- /dev/null
+++ b/doc/history.texi
@@ -0,0 +1,104 @@
+\input texinfo @c -*-texinfo-*-
+@c %**start of header (This is for running Texinfo on a region.)
+@setfilename history.info
+@settitle GNU History Library
+@c %**end of header (This is for running Texinfo on a region.)
+
+@setchapternewpage odd
+
+@include version.texi
+
+@copying
+This document describes the GNU History library
+(version @value{VERSION}, @value{UPDATED}),
+a programming tool that provides a consistent user interface for
+recalling lines of previously typed input.
+
+Copyright @copyright{} 1988-2004 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below. A copy of the license is
+included in the section entitled ``GNU Free Documentation License.''
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+@end quotation
+@end copying
+
+@dircategory Libraries
+@direntry
+* History: (history). The GNU history library API.
+@end direntry
+
+@titlepage
+@title GNU History Library
+@subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}.
+@subtitle @value{UPDATED-MONTH}
+@author Chet Ramey, Case Western Reserve University
+@author Brian Fox, Free Software Foundation
+
+@page
+
+@vskip 0pt plus 1filll
+@insertcopying
+
+@sp 1
+Published by the Free Software Foundation @*
+59 Temple Place, Suite 330, @*
+Boston, MA 02111-1307 @*
+USA @*
+
+@end titlepage
+
+@contents
+
+@ifnottex
+@node Top
+@top GNU History Library
+
+This document describes the GNU History library, a programming tool that
+provides a consistent user interface for recalling lines of previously
+typed input.
+
+@menu
+* Using History Interactively:: GNU History User's Manual.
+* Programming with GNU History:: GNU History Programmer's Manual.
+* Copying This Manual:: Copying This Manual.
+* Concept Index:: Index of concepts described in this manual.
+* Function and Variable Index:: Index of externally visible functions
+ and variables.
+@end menu
+@end ifnottex
+
+@syncodeindex fn vr
+
+@include hsuser.texi
+@include hstech.texi
+
+@node Copying This Manual
+@appendix Copying This Manual
+
+@menu
+* GNU Free Documentation License:: License for copying this manual.
+@end menu
+
+@include fdl.texi
+
+@node Concept Index
+@appendix Concept Index
+@printindex cp
+
+@node Function and Variable Index
+@appendix Function and Variable Index
+@printindex vr
+
+@bye
diff --git a/doc/history_3.ps b/doc/history_3.ps
index f5231a5..855292b 100644
--- a/doc/history_3.ps
+++ b/doc/history_3.ps
@@ -1,16 +1,16 @@
%!PS-Adobe-3.0
-%%Creator: groff version 1.16.1
-%%CreationDate: Mon Mar 18 10:17:27 2002
+%%Creator: groff version 1.18.1
+%%CreationDate: Mon Sep 22 09:15:44 2003
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
-%%DocumentSuppliedResources: procset grops 1.16 1
+%%DocumentSuppliedResources: procset grops 1.18 1
%%Pages: 7
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
-%%BeginResource: procset grops 1.16 1
+%%BeginResource: procset grops 1.18 1
/setpacking where{
pop
currentpacking
@@ -108,11 +108,20 @@ TM setmatrix
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
+/Fr{
+setrgbcolor fill
}bind def
-/BL/fill load def
+/Fk{
+setcmykcolor fill
+}bind def
+/Fg{
+setgray fill
+}bind def
+/FL/fill load def
/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/Ck/setcmykcolor load def
+/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
@@ -171,7 +180,7 @@ setpacking
%%IncludeResource: font Times-Italic
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
@@ -262,16 +271,16 @@ command line entry in the history list.).15 E F2(!)108 422.4 Q F0
F2(!!)108 458.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 470.4 Q F3(string)
A F0(Refer to the most recent command starting with)9.33 E F3(string)2.5
-E F0(.).22 E F2(!?)108 482.4 Q F3(string)A F2([?])A F0 1.057
-(Refer to the most recent command containing)144 494.4 R F3(string)3.557
-E F0 6.057(.T).22 G 1.057(he trailing)-6.057 F F2(?)3.557 E F0 1.057
-(may be omitted if)3.557 F F3(string)3.557 E F0(is)3.557 E(follo)144
+E F0(.).22 E F2(!?)108 482.4 Q F3(string)A F2([?])A F0 1.022
+(Refer to the most recent command containing)144 494.4 R F3(string)3.522
+E F0 6.022(.T).22 G 1.022(he trailing)-6.022 F F2(?)3.522 E F0 1.022
+(may be omitted if)3.522 F F3(string)3.862 E F0(is)3.742 E(follo)144
506.4 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F4 12/Times-Bold@0
SF(^)108 523.4 Q F3(string1)-5 I F4(^)5 I F3(string2)-5 I F4(^)5 I F0
-2.66(Quick substitution.)144 530.4 R 2.66
-(Repeat the last command, replacing)7.66 F F3(string1)5.16 E F0(with)
-5.16 E F3(string2)5.16 E F0 7.66(.E).02 G(qui)-7.66 E -.25(va)-.25 G
-2.66(lent to).25 F -.74(``)144 542.4 S(!!:s/).74 E F3(string1)A F0(/)A
+2.63(Quick substitution.)144 530.4 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 542.4 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 554.4 Q F0
(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
@@ -290,14 +299,14 @@ F3(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
F(inserted into the current line separated by single spaces.)108 619.2 Q
F2 2.5(0\()108 636 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 648 Q 2.5
(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E F3
-(n)108 660 Q F0(The)31 E F3(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)108 672 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 684 Q F0(The last ar)31 E(gument.)-.18 E F2(%)108 696 Q F0
-(The w)26 E(ord matched by the most recent `?)-.1 E F3(string)A F0
-(?' search.)A F3(x)108 708 Q F2<ad>A F3(y)A F0 2.5(Ar)21.42 G(ange of w)
--2.5 E(ords; `\255)-.1 E F3(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)
--.25 E F3(y)A F0('.)A(GNU History 4.3)72 768 Q(2002 January 31)131.79 E
-(1)195.95 E EP
+(n)108.36 660 Q F0(The)30.64 E F3(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)108
+672 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 684 Q F0(The last ar)31 E(gument.)-.18 E F2(%)108
+696 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F3(string)A
+F0(?' search.)A F3(x)108.77 708 Q F2<ad>A F3(y)A F0 2.5(Ar)20.65 G
+(ange of w)-2.5 E(ords; `\255)-.1 E F3(y)A F0 2.5('a)C(bbre)-2.5 E
+(viates `0\255)-.25 E F3(y)A F0('.)A(GNU History 5.0)72 768 Q
+(2003 July 31)139.005 E(1)203.165 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -333,468 +342,488 @@ E -.15(xe)-.15 G(cute it.).15 E F1(q)108 254.4 Q F0
-.1 E F1(x)108 266.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 278.4 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 290.4 Q F2(ne)2.814 E(w)-.15 E
-F0 .314(for the \214rst occurrence of)2.814 F F2(old)2.814 E F0 .314
-(in the e)2.814 F -.15(ve)-.25 G .314(nt line.).15 F(An)5.314 E 2.814
-(yd)-.15 G .314(elimiter can be used in place)-2.814 F .616(of /.)144
+F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 290.4 Q F2(ne)3.082 E(w)-.15 E
+F0 .221(for the \214rst occurrence of)3.032 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 .616(of /.)144
302.4 R .617
(The \214nal delimiter is optional if it is the last character of the e)
5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
-F .75(be quoted in)144 314.4 R F2(old)3.25 E F0(and)3.25 E F2(ne)3.25 E
-(w)-.15 E F0 .75(with a single backslash.)3.25 F .749(If & appears in)
-5.75 F F2(ne)3.249 E(w)-.15 E F0 3.249(,i).31 G 3.249(ti)-3.249 G 3.249
-(sr)-3.249 G .749(eplaced by)-3.249 F F2(old)3.249 E F0 5.749(.A).77 G
-.369(single backslash will quote the &.)144 326.4 R(If)5.369 E F2(old)
-2.869 E F0 .37(is null, it is set to the last)2.869 F F2(old)2.87 E F0
-.37(substituted, or)2.87 F 2.87(,i)-.4 G 2.87(fn)-2.87 G 2.87(op)-2.87 G
-(re)-2.87 E(vi-)-.25 E(ous history substitutions took place, the last)
-144 338.4 Q F2(string)2.5 E F0(in a)2.5 E F1(!?)2.5 E F2(string)A F1
-([?])A F0(search.)5 E F1(&)108 350.4 Q F0(Repeat the pre)27.67 E
-(vious substitution.)-.25 E F1(g)108 362.4 Q F0 .398
-(Cause changes to be applied o)31 F -.15(ve)-.15 G 2.898(rt).15 G .398
-(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.).15 F .397
-(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897('\()C
-(e.g.,)-2.897 E(`)144 374.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)-.15 E
-F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218(used with `)
-3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
-(elimiter can be used in place of /, and the \214nal)-3.718 F
-(delimiter is optional if it is the last character of the e)144 386.4 Q
--.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(PR)72 403.2 Q
+F .666(be quoted in)144 314.4 R F2(old)3.396 E F0(and)3.936 E F2(ne)
+3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666
+(If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166
+(ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E
+F0 5.666(.A).77 G .274(single backslash will quote the &.)144 326.4 R
+(If)5.274 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
+F F2(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775
+(fn)-2.775 G 2.775(op)-2.775 G(re)-2.775 E(vi-)-.25 E
+(ous history substitutions took place, the last)144 338.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 350.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
+(g)108 362.4 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G
+2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.)
+.15 F .397(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897
+('\()C(e.g.,)-2.897 E(`)144 374.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
+-.15 E F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218
+(used with `)3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
+(elimiter can be used in place of /, and the \214nal)-3.718 F .09
+(delimiter is optional if it is the last character of the e)144 386.4 R
+-.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F1(a)2.589 E F0 .089
+(may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 398.4 Q F0
+(.)A F1(G)108 410.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 427.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 415.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 432 Q
-(oduction to History)-.18 E F0 .797
-(The programmer using the History library has a)108 444 R -.25(va)-.2 G
-.796(ilable functions for remembering lines on a history list,).25 F
-.307(associating arbitrary data with a line, remo)108 456 R .308
+E F0(This section describes ho)108 439.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 456 Q
+(oduction to History)-.18 E F0 .796
+(The programmer using the History library has a)108 468 R -.25(va)-.2 G
+.797(ilable functions for remembering lines on a history list,).25 F
+.308(associating arbitrary data with a line, remo)108 480 R .308
(ving lines from the list, searching through the list for a line con-)
--.15 F .303(taining an arbitrary te)108 468 R .303
+-.15 F .303(taining an arbitrary te)108 492 R .303
(xt string, and referencing an)-.15 F 2.803(yl)-.15 G .303
(ine in the list directly)-2.803 F 5.303(.I)-.65 G 2.803(na)-5.303 G
-.303(ddition, a history)-2.803 F F2 -.2(ex)2.802 G(pansion).2 E F0
-(function is a)108 480 Q -.25(va)-.2 G(ilable which pro).25 E
+.303(ddition, a history)-2.803 F F2 -.2(ex)2.803 G(pansion).2 E F0
+(function is a)108 504 Q -.25(va)-.2 G(ilable which pro).25 E
(vides for a consistent user interf)-.15 E(ace across dif)-.1 E
(ferent programs.)-.25 E .059(The user using programs written with the \
-History library has the bene\214t of a consistent user interf)108 496.8
-R .059(ace with a)-.1 F .918(set of well-kno)108 508.8 R .917
+History library has the bene\214t of a consistent user interf)108 520.8
+R .058(ace with a)-.1 F .917(set of well-kno)108 532.8 R .917
(wn commands for manipulating the te)-.25 F .917(xt of pre)-.15 F .917
-(vious lines and using that te)-.25 F .917(xt in ne)-.15 F 3.417(wc)-.25
-G(om-)-3.417 E 4.183(mands. The)108 520.8 R 1.684(basic history manipul\
-ation commands are identical to the history substitution pro)4.183 F
-1.684(vided by)-.15 F F1(bash)108 532.8 Q F0(.)A .904
-(If the programmer desires, he can use the Readline library)108 549.6 R
-3.403(,w)-.65 G .903(hich includes some history manipulation by)-3.403 F
-(def)108 561.6 Q(ault, and has the added adv)-.1 E
+(vious lines and using that te)-.25 F .917(xt in ne)-.15 F 3.418(wc)-.25
+G(om-)-3.418 E 4.184(mands. The)108 544.8 R 1.684(basic history manipul\
+ation commands are identical to the history substitution pro)4.184 F
+1.683(vided by)-.15 F F1(bash)108 556.8 Q F0(.)A .903
+(If the programmer desires, he can use the Readline library)108 573.6 R
+3.403(,w)-.65 G .904(hich includes some history manipulation by)-3.403 F
+(def)108 585.6 Q(ault, and has the added adv)-.1 E
(antage of command line editing.)-.25 E .39(Before declaring an)108
-578.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39
+602.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39
(unctionality the History library pro)-2.89 F .39
-(vides in other code, an appli-)-.15 F .067
-(cation writer should include the \214le)108 590.4 R F2(<r)4.233 E
-(eadline/history)-.37 E(.h>)-.55 E F0 .067(in an)4.233 F 2.566<798c>-.15
-G .066(le that uses the History library')-2.566 F 2.566(sf)-.55 G
-(eatures.)-2.566 E .538(It supplies e)108 602.4 R .538
+(vides in other code, an appli-)-.15 F .066
+(cation writer should include the \214le)108 614.4 R F2(<r)4.232 E
+(eadline/history)-.37 E(.h>)-.55 E F0 .067(in an)4.232 F 2.567<798c>-.15
+G .067(le that uses the History library')-2.567 F 2.567(sf)-.55 G
+(eatures.)-2.567 E .539(It supplies e)108 626.4 R .538
(xtern declarations for all of the library')-.15 F 3.038(sp)-.55 G .538
-(ublic functions and v)-3.038 F .539(ariables, and declares all of the)
--.25 F(public data structures.)108 614.4 Q F1(History Storage)87 643.2 Q
-F0(The history list is an array of history entries.)108 655.2 Q 2.5(Ah)5
+(ublic functions and v)-3.038 F .538(ariables, and declares all of the)
+-.25 F(public data structures.)108 638.4 Q F1(History Storage)87 667.2 Q
+F0(The history list is an array of history entries.)108 679.2 Q 2.5(Ah)5
G(istory entry is declared as follo)-2.5 E(ws:)-.25 E F2(typedef void *)
-108 672 Q F1(histdata_t;)2.5 E F0(typedef struct _hist_entry {)108 688.8
-Q(char *line;)113 700.8 Q(histdata_t data;)113 712.8 Q 2.5(}H)108 724.8
-S(IST_ENTR)-2.5 E -.92(Y;)-.65 G(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(2)195.95 E EP
+108 696 Q F1(histdata_t;)2.5 E F0(typedef struct _hist_entry {)108 712.8
+Q(char *line;)113 724.8 Q(GNU History 5.0)72 768 Q(2003 July 31)139.005
+E(2)203.165 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E
-(The history list itself might therefore be declared as)108 84 Q/F1 10
-/Times-Italic@0 SF(HIST_ENTR)108 100.8 Q 2.5(Y*)-.18 G(*)-2.5 E/F2 10
+(OR)-.18 E(Y\(3\))-.65 E(char *timestamp;)113 84 Q(histdata_t data;)113
+96 Q 2.5(}H)108 108 S(IST_ENTR)-2.5 E -.92(Y;)-.65 G
+(The history list itself might therefore be declared as)108 124.8 Q/F1
+10/Times-Italic@0 SF(HIST_ENTR)108 141.6 Q 2.5(Y*)-.18 G(*)-2.5 E/F2 10
/Times-Bold@0 SF(the_history_list;)2.5 E F0(The state of the History li\
-brary is encapsulated into a single structure:)108 117.6 Q(/*)108 134.4
-Q 2.5(*As)110.5 146.4 S
+brary is encapsulated into a single structure:)108 158.4 Q(/*)108 175.2
+Q 2.5(*As)110.5 187.2 S
(tructure used to pass around the current state of the history)-2.5 E(.)
--.65 E(*/)110.5 158.4 Q(typedef struct _hist_state {)108 170.4 Q
-(HIST_ENTR)113 182.4 Q 2.5(Y*)-.65 G
+-.65 E(*/)110.5 199.2 Q(typedef struct _hist_state {)108 211.2 Q
+(HIST_ENTR)113 223.2 Q 2.5(Y*)-.65 G
(*entries; /* Pointer to the entries themselv)-2.5 E(es. */)-.15 E
-(int of)113 194.4 Q 25(fset; /*)-.25 F
+(int of)113 235.2 Q 25(fset; /*)-.25 F
(The location pointer within this array)2.5 E 2.5(.*)-.65 G(/)-2.5 E
-(int length;)113 206.4 Q(/* Number of elements within this array)27.5 E
-2.5(.*)-.65 G(/)-2.5 E(int size;)113 218.4 Q
+(int length;)113 247.2 Q(/* Number of elements within this array)27.5 E
+2.5(.*)-.65 G(/)-2.5 E(int size;)113 259.2 Q
(/* Number of slots allocated to this array)32.5 E 2.5(.*)-.65 G(/)-2.5
-E(int \215ags;)113 230.4 Q 2.5(}H)108 242.4 S(IST)-2.5 E(OR)-.18 E(Y_ST)
--.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108
-259.2 Q F2(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.)
--2.5 E/F3 10.95/Times-Bold@0 SF(History Functions)72 276 Q F0
-(This section describes the calling sequence for the v)108 288 Q
+E(int \215ags;)113 271.2 Q 2.5(}H)108 283.2 S(IST)-2.5 E(OR)-.18 E(Y_ST)
+-.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108 300
+Q F2(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.)-2.5 E
+/F3 10.95/Times-Bold@0 SF(History Functions)72 316.8 Q F0
+(This section describes the calling sequence for the v)108 328.8 Q
(arious functions e)-.25 E(xported by the GNU History library)-.15 E(.)
--.65 E F2(Initializing History and State Management)87 304.8 Q F0 1.274
+-.65 E F2(Initializing History and State Management)87 345.6 Q F0 1.274
(This section describes functions used to initialize and manage the sta\
-te of the History library when you)108 316.8 R -.1(wa)108 328.8 S
-(nt to use the history functions in your program.).1 E F1(void)108 352.8
+te of the History library when you)108 357.6 R -.1(wa)108 369.6 S
+(nt to use the history functions in your program.).1 E F1(void)108 393.6
Q F2(using_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E(Be)108
-364.8 Q(gin a session in which the history functions might be used.)-.15
+405.6 Q(gin a session in which the history functions might be used.)-.15
E(This initializes the interacti)5 E .3 -.15(ve v)-.25 H(ariables.)-.1 E
-F1(HIST)108 388.8 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F2
+F1(HIST)108 429.6 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F2
(history_get_history_state)A F0(\()4.166 E F1(void)A F0(\))1.666 E
(Return a structure describing the current state of the input history)
-108 400.8 Q(.)-.65 E F1(void)108 424.8 Q F2(history_set_history_state)
+108 441.6 Q(.)-.65 E F1(void)108 465.6 Q F2(history_set_history_state)
2.5 E F0(\()4.166 E F1(HIST)A(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5
(E*).37 G(state)-2.5 E F0(\))1.666 E
-(Set the state of the history list according to)108 436.8 Q F1(state)2.5
-E F0(.)A F2(History List Management)87 465.6 Q F0
-(These functions manage indi)108 477.6 Q(vidual entries on the history \
+(Set the state of the history list according to)108 477.6 Q F1(state)2.5
+E F0(.)A F2(History List Management)87 506.4 Q F0
+(These functions manage indi)108 518.4 Q(vidual entries on the history \
list, or set parameters managing the list itself.)-.25 E F1(void)108
-501.6 Q F2(add_history)2.5 E F0(\()4.166 E F1(const c)A(har *string)-.15
-E F0(\))1.666 E(Place)108 513.6 Q F1(string)2.5 E F0
+542.4 Q F2(add_history)2.5 E F0(\()4.166 E F1(const c)A(har *string)-.15
+E F0(\))1.666 E(Place)108 554.4 Q F1(string)2.5 E F0
(at the end of the history list.)2.5 E
(The associated data \214eld \(if an)5 E(y\) is set to)-.15 E F2(NULL)
-2.5 E F0(.)A F1(HIST_ENTR)108 537.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(mo).18
-E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F1(int whic)A(h)-.15 E F0(\))
-1.666 E(Remo)108 549.6 Q .352 -.15(ve h)-.15 H .052(istory entry at of)
-.15 F(fset)-.25 E F1(whic)2.553 E(h)-.15 E F0 .053(from the history)
-2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15(ve)-.15 G 2.553(de)
-.15 G .053(lement is returned so you can free the)-2.553 F
-(line, data, and containing structure.)108 561.6 Q F1(HIST_ENTR)108
-585.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(place_history_entry).18 E F0(\()4.166
-E F1(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G(ar *line).15 E 1.666
-(,h)-.1 G(istdata_t data)-1.666 E F0(\))3.332 E(Mak)108 597.6 Q 2.868
-(et)-.1 G .368(he history entry at of)-2.868 F(fset)-.25 E F1(whic)2.868
-E(h)-.15 E F0(ha)2.868 E -.15(ve)-.2 G F1(line)3.018 E F0(and)2.868 E F1
-(data)2.868 E F0 5.367(.T)C .367
-(his returns the old entry so you can dispose of)-5.367 F(the data.)108
-609.6 Q(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 633.6 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 645.6 Q F1
-(void)108 669.6 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
-681.6 Q F1(max)2.5 E F0(entries.)2.5 E F1(int)108 705.6 Q F2
-(unsti\215e_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E .46
-(Stop sti\215ing the history)108 717.6 R 5.46(.T)-.65 G .46
-(his returns the pre)-5.46 F .46
-(viously-set maximum number of history entries \(as set by)-.25 F F2
-(sti-)2.96 E(\215e_history\(\))108 729.6 Q F0 2.5(\). history)B -.1(wa)
-2.5 G 2.5(ss).1 G 2.5(ti\215ed. The)-2.5 F -.25(va)2.5 G(lue is positi)
-.25 E .3 -.15(ve i)-.25 H 2.5(ft).15 G(he history w)-2.5 E
-(as sti\215ed, ne)-.1 E -.05(ga)-.15 G(ti).05 E .3 -.15(ve i)-.25 H 2.5
-(fi).15 G 2.5(tw)-2.5 G(asn')-2.6 E(t.)-.18 E(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(3)195.95 E EP
+2.5 E F0(.)A F1(void)108 578.4 Q F2(add_history_time)2.5 E F0(\()4.166 E
+F1(const c)A(har *string)-.15 E F0(\))1.666 E
+(Change the time stamp associated with the most recent history entry to)
+108 590.4 Q F1(string)2.5 E F0(.)A F1(HIST_ENTR)108 614.4 Q 2.5(Y*)-.18
+G F2 -.18(re)C(mo).18 E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F1
+(int whic)A(h)-.15 E F0(\))1.666 E(Remo)108 626.4 Q .353 -.15(ve h)-.15
+H .053(istory entry at of).15 F(fset)-.25 E F1(whic)2.553 E(h)-.15 E F0
+.053(from the history)2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15
+(ve)-.15 G 2.553(de).15 G .052(lement is returned so you can free the)
+-2.553 F(line, data, and containing structure.)108 638.4 Q F1
+(histdata_t)108 662.4 Q F2(fr)2.5 E(ee_history_entry)-.18 E F0(\()4.166
+E F1(HIST_ENTR)A 2.5(Y*)-.18 G(histent)-2.5 E F0(\))1.666 E .933
+(Free the history entry)108 674.4 R F1(histent)3.433 E F0 .933(and an)
+3.433 F 3.433(yh)-.15 G .933(istory library pri)-3.433 F -.25(va)-.25 G
+.933(te data associated with it.).25 F .934(Returns the applica-)5.933 F
+(tion-speci\214c data so the caller can dispose of it.)108 686.4 Q F1
+(HIST_ENTR)108 710.4 Q 2.5(Y*)-.18 G F2 -.18(re)C(place_history_entry)
+.18 E F0(\()4.166 E F1(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G
+(ar *line).15 E 1.666(,h)-.1 G(istdata_t data)-1.666 E F0(\))3.332 E
+(Mak)108 722.4 Q 4.014(et)-.1 G 1.514(he history entry at of)-4.014 F
+(fset)-.25 E F1(whic)4.013 E(h)-.15 E F0(ha)4.013 E -.15(ve)-.2 G F1
+(line)4.163 E F0(and)4.013 E F1(data)4.013 E F0 6.513(.T)C 1.513
+(his returns the old entry so the caller can)-6.513 F(GNU History 5.0)72
+768 Q(2003 July 31)139.005 E(3)203.165 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Italic@0 SF(int)108 84 Q/F2 10
-/Times-Bold@0 SF(history_is_sti\215ed)2.5 E F0(\()4.166 E F1(void)A F0
-(\))1.666 E
-(Returns non-zero if the history is sti\215ed, zero if it is not.)108 96
-Q F2(Inf)87 124.8 Q(ormation About the History List)-.25 E F0(These fun\
-ctions return information about the entire history list or indi)108
-136.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 160.8 Q 2.5(Y*)-.18
+(OR)-.18 E(Y\(3\))-.65 E(dispose of an)108 84 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 10/Times-Italic@0 SF(whic)2.5 E(h)-.15 E F0 2.5(,a)C/F2
+10/Times-Bold@0 SF(NULL)A F0(pointer is returned.)2.5 E F1(void)108 108
+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 120 Q F1(void)
+108 144 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 156 Q
+F1(max)2.5 E F0(entries.)2.5 E F1(int)108 180 Q F2(unsti\215e_history)
+2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E .46
+(Stop sti\215ing the history)108 192 R 5.46(.T)-.65 G .46
+(his returns the pre)-5.46 F .46
+(viously-set maximum number of history entries \(as set by)-.25 F F2
+(sti-)2.96 E(\215e_history\(\))108 204 Q F0 2.5(\). history)B -.1(wa)2.5
+G 2.5(ss).1 G 2.5(ti\215ed. The)-2.5 F -.25(va)2.5 G(lue is positi).25 E
+.3 -.15(ve i)-.25 H 2.5(ft).15 G(he history w)-2.5 E(as sti\215ed, ne)
+-.1 E -.05(ga)-.15 G(ti).05 E .3 -.15(ve i)-.25 H 2.5(fi).15 G 2.5(tw)
+-2.5 G(asn')-2.6 E(t.)-.18 E F1(int)108 228 Q F2(history_is_sti\215ed)
+2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
+(Returns non-zero if the history is sti\215ed, zero if it is not.)108
+240 Q F2(Inf)87 268.8 Q(ormation About the History List)-.25 E F0(These\
+ functions return information about the entire history list or indi)108
+280.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 304.8 Q 2.5(Y*)-.18
G(*)-2.5 E F2(history_list)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-.708(Return a)108 172.8 R F2(NULL)3.208 E F0 .708(terminated array of)
+.708(Return a)108 316.8 R F2(NULL)3.208 E F0 .708(terminated array of)
3.208 F F1(HIST_ENTR)3.208 E 3.208(Y*)-.18 G F0 .708
(which is the current input history)B 5.707(.E)-.65 G .707
-(lement 0 of this)-5.707 F(list is the be)108 184.8 Q(ginning of time.)
+(lement 0 of this)-5.707 F(list is the be)108 328.8 Q(ginning of time.)
-.15 E(If there is no history)5 E 2.5(,r)-.65 G(eturn)-2.5 E F2(NULL)2.5
-E F0(.)A F1(int)108 208.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E
-F1(void)A F0(\))1.666 E(Returns the of)108 220.8 Q
-(fset of the current history element.)-.25 E F1(HIST_ENTR)108 244.8 Q
+E F0(.)A F1(int)108 352.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E
+F1(void)A F0(\))1.666 E(Returns the of)108 364.8 Q
+(fset of the current history element.)-.25 E F1(HIST_ENTR)108 388.8 Q
2.5(Y*)-.18 G F2(curr)A(ent_history)-.18 E F0(\()4.166 E F1(void)A F0
(\))1.666 E 1.373
(Return the history entry at the current position, as determined by)108
-256.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft)
--6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 268.8 Q F2
-(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 292.8 Q 2.5(Y*)
+400.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft)
+-6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 412.8 Q F2
+(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 436.8 Q 2.5(Y*)
-.18 G F2(history_get)A F0(\()4.166 E F1(int of)A(fset)-.18 E F0(\))
-1.666 E .288(Return the history entry at position)108 304.8 R F1(of)
+1.666 E .288(Return the history entry at position)108 448.8 R F1(of)
2.787 E(fset)-.18 E F0 2.787(,s)C .287(tarting from)-2.787 F F2
(history_base)2.787 E F0 5.287(.I)C 2.787(ft)-5.287 G .287
(here is no entry there, or if)-2.787 F F1(of)2.787 E(fset)-.18 E F0
-(is greater than the history length, return a)108 316.8 Q F2(NULL)2.5 E
-F0(pointer)2.5 E(.)-.55 E F1(int)108 340.8 Q F2(history_total_bytes)2.5
-E F0(\()4.166 E F1(void)A F0(\))1.666 E .391
+(is greater than the history length, return a)108 460.8 Q F2(NULL)2.5 E
+F0(pointer)2.5 E(.)-.55 E F1(time_t)108 484.8 Q F2(history_get_time)2.5
+E F0(\()4.166 E F1(HIST_ENTR)A 2.5(Y*)-.18 G F0(\))-.834 E(Return the t\
+ime stamp associated with the history entry passed as the ar)108 496.8 Q
+(gument.)-.18 E F1(int)108 520.8 Q F2(history_total_bytes)2.5 E F0(\()
+4.166 E F1(void)A F0(\))1.666 E .391
(Return the number of bytes that the primary history entries are using.)
-108 352.8 R .392(This function returns the sum of the)5.392 F
-(lengths of all the lines in the history)108 364.8 Q(.)-.65 E F2(Mo)87
-393.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0
-(These functions allo)108 405.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E
+108 532.8 R .392(This function returns the sum of the)5.392 F
+(lengths of all the lines in the history)108 544.8 Q(.)-.65 E F2(Mo)87
+573.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0
+(These functions allo)108 585.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E
2.5(xi)-.15 G(nto the history list to be set or changed.)-2.5 E F1(int)
-108 429.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\))
-1.666 E .79(Set the current history of)108 441.6 R .79(fset to)-.25 F F1
+108 609.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\))
+1.666 E .79(Set the current history of)108 621.6 R .79(fset to)-.25 F F1
(pos)3.29 E F0 3.29(,a)C 3.29(na)-3.29 G .79(bsolute inde)-3.29 F 3.29
(xi)-.15 G .79(nto the list.)-3.29 F .79(Returns 1 on success, 0 if)5.79
F F1(pos)3.29 E F0 .79(is less)3.29 F
-(than zero or greater than the number of history entries.)108 453.6 Q F1
-(HIST_ENTR)108 477.6 Q 2.5(Y*)-.18 G F2(pr)A -.15(ev)-.18 G
+(than zero or greater than the number of history entries.)108 633.6 Q F1
+(HIST_ENTR)108 657.6 Q 2.5(Y*)-.18 G F2(pr)A -.15(ev)-.18 G
(ious_history).15 E F0(\()4.166 E F1(void)A F0(\))1.666 E .207
-(Back up the current history of)108 489.6 R .207(fset to the pre)-.25 F
+(Back up the current history of)108 669.6 R .207(fset to the pre)-.25 F
.207(vious history entry)-.25 F 2.708(,a)-.65 G .208
(nd return a pointer to that entry)-2.708 F 5.208(.I)-.65 G 2.708(ft)
--5.208 G .208(here is)-2.708 F(no pre)108 501.6 Q(vious entry)-.25 E 2.5
+-5.208 G .208(here is)-2.708 F(no pre)108 681.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 525.6 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1
-(void)A F0(\))1.666 E(Mo)108 537.6 Q 1.047 -.15(ve t)-.15 H .747
+(HIST_ENTR)108 705.6 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1
+(void)A F0(\))1.666 E(Mo)108 717.6 Q 1.047 -.15(ve t)-.15 H .747
(he current history of).15 F .747(fset forw)-.25 F .746(ard to the ne)
-.1 F .746(xt history entry)-.15 F 3.246(,a)-.65 G .746
(nd return the a pointer to that entry)-3.246 F 5.746(.I)-.65 G(f)-5.746
-E(there is no ne)108 549.6 Q(xt entry)-.15 E 2.5(,r)-.65 G(eturn a)-2.5
-E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F2(Sear)87 578.4 Q
-(ching the History List)-.18 E F0 .005(These functions allo)108 590.4 R
+E(there is no ne)108 729.6 Q(xt entry)-.15 E 2.5(,r)-.65 G(eturn a)-2.5
+E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E(GNU History 5.0)72 768 Q
+(2003 July 31)139.005 E(4)203.165 E 0 Cg EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
+(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Bold@0 SF(Sear)87 84 Q
+(ching the History List)-.18 E F0 .005(These functions allo)108 96 R
2.505(ws)-.25 G .006(earching of the history list for entries containin\
g a speci\214c string.)-2.505 F .006(Searching may be)5.006 F 1.452
-(performed both forw)108 602.4 R 1.452(ard and backw)-.1 F 1.451
+(performed both forw)108 108 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 F1(anc)3.951 E(hor)-.15 E(ed)-.37 E F0(,)A
-(meaning that the string must match at the be)108 614.4 Q
-(ginning of the history entry)-.15 E(.)-.65 E F1(int)108 638.4 Q F2
-(history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F1(const c)A(har *string)
+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 120 Q
+(ginning of the history entry)-.15 E(.)-.65 E F2(int)108 144 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 650.4 R F1(string)2.655 E F0 2.656(,s)C .156
-(tarting at the current history of)-2.656 F 2.656(fset. If)-.25 F F1
+(Search the history for)108 156 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 .156(is less than 0, then the search)2.656
-F .802(is through pre)108 662.4 R .802
+F .802(is through pre)108 168 R .802
(vious entries, otherwise through subsequent entries.)-.25 F(If)5.801 E
-F1(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064
-(tory inde)108 674.4 R 2.564(xi)-.15 G 2.564(ss)-2.564 G .064
+F2(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064
+(tory inde)108 180 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 F1(string)2.565 E F0 -.1(wa)
-108 686.4 S 2.5(sf).1 G 2.5(ound. Otherwise,)-2.5 F
-(nothing is changed, and a -1 is returned.)2.5 E F1(int)108 710.4 Q F2
-(history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F1(const c)
+(fset in the line of the entry where)-.25 F F2(string)2.565 E F0 -.1(wa)
+108 192 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 216 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 .684(Search the history for)108 722.4 R F1(string)3.183 E F0
-3.183(,s)C .683(tarting at the current history of)-3.183 F 3.183
-(fset. The)-.25 F .683(search is anchored: matching lines)3.183 F
-(GNU History 4.3)72 768 Q(2002 January 31)131.79 E(4)195.95 E 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 1.063(must be)108 84 R 1.063(gin with)-.15 F/F1
-10/Times-Italic@0 SF(string)3.563 E F0 6.063(.I)C(f)-6.063 E F1(dir)
-3.563 E(ection)-.37 E F0 1.064
+1.666 E .684(Search the history for)108 228 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.063(must be)108
+240 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
-96 R(If)6.115 E F1(string)3.615 E F0 1.115
+252 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 108 Q(alue is 0.)-.25 E
-(Otherwise, nothing is changed, and a -1 is returned.)5 E F1(int)108 132
-Q/F2 10/Times-Bold@0 SF(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E
-F1(const c)A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E -.834
-(ection, int)-.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 144 R F1
-(string)3.103 E F0 .603(in the history list, starting at)3.103 F F1(pos)
-3.104 E F0 3.104(,a)C 3.104(na)-3.104 G .604(bsolute inde)-3.104 F 3.104
-(xi)-.15 G .604(nto the list.)-3.104 F(If)5.604 E F1(dir)3.104 E(ection)
--.37 E F0 .604(is ne)3.104 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(,)
-.15 E .608(the search proceeds backw)108 156 R .608(ard from)-.1 F F1
-(pos)3.108 E F0 3.108(,o)C .608(therwise forw)-3.108 F 3.108
-(ard. Returns)-.1 F .608(the absolute inde)3.108 F 3.108(xo)-.15 G 3.108
-(ft)-3.108 G .608(he history ele-)-3.108 F(ment where)108 168 Q F1
-(string)2.5 E F0 -.1(wa)2.5 G 2.5(sf).1 G(ound, or -1 otherwise.)-2.5 E
-F2(Managing the History File)87 196.8 Q F0 .035(The History library can\
- read the history from and write it to a \214le.)108 208.8 R .036
+(nd the)-3.614 F(return v)108 264 Q(alue is 0.)-.25 E
+(Otherwise, nothing is changed, and a -1 is returned.)5 E F2(int)108 288
+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 .603(Search for)108 300 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
+.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 312 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 324 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 352.8 Q F0 .035(The History library can r\
+ead the history from and write it to a \214le.)108 364.8 R .036
(This section documents the functions for)5.035 F
-(managing a history \214le.)108 220.8 Q F1(int)108 244.8 Q F2 -.18(re)
-2.5 G(ad_history).18 E F0(\()4.166 E F1(const c)A(har *\214lename)-.15 E
-F0(\))1.666 E .151(Add the contents of)108 256.8 R F1(\214lename)2.651 E
-F0 .151(to the history list, a line at a time.)2.651 F(If)5.15 E F1
-(\214lename)2.65 E F0(is)2.65 E F2(NULL)2.65 E F0 2.65(,t)C .15
-(hen read from)-2.65 F F1(~/.his-)2.65 E(tory)108 268.8 Q F0 5(.R)C
-(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F1(int)108 292.8 Q F2 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E
-F1(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt fr)-1.666 E -.834
+(managing a history \214le.)108 376.8 Q F2(int)108 400.8 Q F1 -.18(re)
+2.5 G(ad_history).18 E F0(\()4.166 E F2(const c)A(har *\214lename)-.15 E
+F0(\))1.666 E .151(Add the contents of)108 412.8 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 424.8 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 448.8 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 .052(Read a range of lines from)
-108 304.8 R F1(\214lename)2.553 E F0 2.553(,a)C .053
+108 460.8 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 F1(fr)2.553 E(om)-.45 E F0 .053(and end at)2.553 F F1(to)2.553 E
-F0(.)A(If)108 316.8 Q F1(fr)2.889 E(om)-.45 E F0 .389
-(is zero, start at the be)2.889 F 2.889(ginning. If)-.15 F F1(to)2.889 E
-F0 .389(is less than)2.889 F F1(fr)2.889 E(om)-.45 E F0 2.889(,t)C .388
-(hen read until the end of the \214le.)-2.889 F(If)5.388 E F1
-(\214lename)2.888 E F0(is)108 328.8 Q F2(NULL)2.5 E F0 2.5(,t)C
-(hen read from)-2.5 E F1(~/.history)2.5 E F0 5(.R)C
-(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F1(int)108 352.8 Q F2(write_history)2.5 E F0(\()4.166 E F1(const c)A
+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 472.8 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 484.8 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 508.8 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 364.8 R F1(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G
-(rwriting).15 E F1(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961
-(.I)-.65 G(f)-5.961 E F1(\214lename)3.462 E F0(is)3.462 E F2(NULL)3.462
-E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 376.8 Q
-F1(~/.history)2.5 E F0 5(.R)C(eturns 0 on success, or)-5 E F2(err)2.5 E
-(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108 412.8 Q
-F2(append_history)2.5 E F0(\()4.166 E F1(int nelements,)A(const c)1.666
-E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 424.8 R
-F1(nelements)3.339 E F0 .839(of the history list to)3.339 F F1
-(\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F1(\214lename)3.339 E F0
-(is)3.339 E F2(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F1
-(~/.history)3.338 E F0(.)A(Returns 0 on success, or)108 436.8 Q F2(err)
-2.5 E(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108
-460.8 Q F2(history_truncate_\214le)2.5 E F0(\()4.166 E F1(const c)A
+108 520.8 R F2(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G
+(rwriting).15 E F2(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961
+(.I)-.65 G(f)-5.961 E F2(\214lename)3.462 E F0(is)3.462 E F1(NULL)3.462
+E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 532.8 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 568.8 Q
+F1(append_history)2.5 E F0(\()4.166 E F2(int nelements,)A(const c)1.666
+E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 580.8 R
+F2(nelements)3.339 E F0 .839(of the history list to)3.339 F F2
+(\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F2(\214lename)3.339 E F0
+(is)3.339 E F1(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F2
+(~/.history)3.338 E F0(.)A(Returns 0 on success, or)108 592.8 Q F1(err)
+2.5 E(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F2(int)108
+616.8 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 472.8 S .38(uncate the history \214le).35 F F1(\214lename)
-2.88 E F0 2.88(,l)C(ea)-2.88 E .38(ving only the last)-.2 F F1(nlines)
-2.881 E F0 2.881(lines. If)2.881 F F1(\214lename)2.881 E F0(is)2.881 E
-F2(NULL)2.881 E F0 2.881(,t)C(hen)-2.881 E F1(~/.history)2.881 E F0(is)
-2.881 E 2.5(truncated. Returns)108 484.8 R 2.5(0o)2.5 G 2.5(ns)-2.5 G
-(uccess, or)-2.5 E F2(err)2.5 E(no)-.15 E F0(on f)2.5 E(ailure.)-.1 E F2
-(History Expansion)87 513.6 Q F0(These functions implement history e)108
-525.6 Q(xpansion.)-.15 E F1(int)108 549.6 Q F2(history_expand)2.5 E F0
-(\()4.166 E F1 -.15(ch)C(ar *string).15 E 1.666(,c)-.1 G(har **output)
--1.816 E F0(\))1.666 E(Expand)108 561.6 Q F1(string)2.5 E F0 2.5(,p)C
-(lacing the result into)-2.5 E F1(output)2.5 E F0 2.5(,ap)C
-(ointer to a string.)-2.5 E(Returns:)5 E 31(0I)144 573.6 S 3.066(fn)-31
-G 3.066(oe)-3.066 G .566(xpansions took place \(or)-3.216 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 585.6 Q
-(xpansion character\);)-.15 E 31(1i)144 597.6 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
-609.6 R(there w)2.5 E(as an error in e)-.1 E(xpansion;)-.15 E 31(2i)144
-621.6 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 F2(:p)2.5 E F0
-(modi\214er)2.5 E(.)-.55 E(If an error ocurred in e)108 633.6 Q
-(xpansion, then)-.15 E F1(output)2.5 E F0(contains a descripti)2.5 E .3
--.15(ve e)-.25 H(rror message.).15 E F1 -.15(ch)108 657.6 S(ar *).15 E
-F2(get_history_e)2.5 E -.1(ve)-.15 G(nt).1 E F0(\()4.166 E F1(const c)A
-(har *string)-.15 E 1.666(,i)-.1 G(nt *cinde)-1.666 E -.834(x, int)-.2 F
-(qc)2.5 E(har)-.15 E F0(\))3.332 E .262(Returns the te)108 669.6 R .262
-(xt of the history e)-.15 F -.15(ve)-.25 G .262(nt be).15 F .263
-(ginning at)-.15 F F1(string)2.763 E F0(+)2.763 E F1(*cinde)2.763 E(x)
--.2 E F0(.)A F1(*cinde)5.263 E(x)-.2 E F0 .263
-(is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 681.6 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 F1(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 F1(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 693.6 R(gins.)-.15 E F1(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 705.6 Q F1 -.15(ch)108 729.6 S(ar **).15 E
-F2(history_tok)2.5 E(enize)-.1 E F0(\()4.166 E F1(const c)A(har *string)
--.15 E F0(\))1.666 E(GNU History 4.3)72 768 Q(2002 January 31)131.79 E
-(5)195.95 E EP
+-.35(Tr)108 628.8 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 640.8 R 2.5(0o)2.5 G 2.5(ns)-2.5 G
+(uccess, or)-2.5 E F1(err)2.5 E(no)-.15 E F0(on f)2.5 E(ailure.)-.1 E F1
+(History Expansion)87 669.6 Q F0(These functions implement history e)108
+681.6 Q(xpansion.)-.15 E F2(int)108 705.6 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 717.6 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(GNU History 5.0)72 768 Q
+(2003 July 31)139.005 E(5)203.165 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E .239(Return an array of tok)108 84 R .239
-(ens parsed out of)-.1 F/F1 10/Times-Italic@0 SF(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 96 Q/F2 10
-/Times-Bold@0 SF(history_w)2.5 E(ord_delimiters)-.1 E F0 -.25(va)2.5 G
+(OR)-.18 E(Y\(3\))-.65 E 31(0I)144 84 S 3.066(fn)-31 G 3.066(oe)-3.066 G
+.566(xpansions took place \(or)-3.216 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 96 Q
+(xpansion character\);)-.15 E 31(1i)144 108 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 120
+R(there w)2.5 E(as an error in e)-.1 E(xpansion;)-.15 E 31(2i)144 132 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 10/Times-Bold@0 SF(:p)2.5 E
+F0(modi\214er)2.5 E(.)-.55 E(If an error ocurred in e)108 144 Q
+(xpansion, then)-.15 E/F2 10/Times-Italic@0 SF(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 168 S(ar *).15 E F1(get_history_e)2.5 E -.1(ve)-.15 G(nt).1
+E F0(\()4.166 E F2(const c)A(har *string)-.15 E 1.666(,i)-.1 G
+(nt *cinde)-1.666 E -.834(x, int)-.2 F(qc)2.5 E(har)-.15 E F0(\))3.332 E
+.262(Returns the te)108 180 R .262(xt of the history e)-.15 F -.15(ve)
+-.25 G .262(nt be).15 F .263(ginning at)-.15 F F2(string)2.763 E F0(+)
+2.763 E F2(*cinde)2.763 E(x)-.2 E F0(.)A F2(*cinde)5.263 E(x)-.2 E F0
+.263(is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 192
+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 204 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 216 Q F2 -.15(ch)108 240 S(ar **).15 E F1
+(history_tok)2.5 E(enize)-.1 E F0(\()4.166 E F2(const c)A(har *string)
+-.15 E F0(\))1.666 E .239(Return an array of tok)108 252 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 264 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 F1 -.15(ch)108 120 S(ar *).15 E F2(history_ar)2.5 E
-(g_extract)-.1 E F0(\()4.166 E F1(int \214r)A -.834(st, int)-.1 F -.834
+(yed.)-.15 E F2 -.15(ch)108 288 S(ar *).15 E F1(history_ar)2.5 E
+(g_extract)-.1 E F0(\()4.166 E F2(int \214r)A -.834(st, int)-.1 F -.834
(last, const)2.5 F -.15(ch)2.5 G(ar *string).15 E F0(\))3.332 E .025
-(Extract a string se)108 132 R .025(gment consisting of the)-.15 F F1
-<8c72>2.526 E(st)-.1 E F0(through)2.526 E F1(last)2.526 E F0(ar)2.526 E
-.026(guments present in)-.18 F F1(string)2.526 E F0 5.026(.A)C -.18(rg)
--5.026 G .026(uments are split).18 F(using)108 144 Q F2(history_tok)2.5
-E(enize\(\))-.1 E F0(.)A F2(History V)87 172.8 Q(ariables)-.92 E F0
-(This section describes the e)108 184.8 Q(xternally-visible v)-.15 E
-(ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F1
-(int)108 208.8 Q F2(history_base)2.5 E F0(The logical of)108 220.8 Q
-(fset of the \214rst entry in the history list.)-.25 E F1(int)108 244.8
-Q F2(history_length)2.5 E F0
-(The number of entries currently stored in the history list.)108 256.8 Q
-F1(int)108 280.8 Q F2(history_max_entries)2.5 E F0
-(The maximum number of history entries.)108 292.8 Q
-(This must be changed using)5 E F2(sti\215e_history\(\))2.5 E F0(.)A F1
--.15(ch)108 316.8 S(ar).15 E F2(history_expansion_char)2.5 E F0
-(The character that introduces a history e)108 328.8 Q -.15(ve)-.25 G
-2.5(nt. The).15 F(def)2.5 E(ault is)-.1 E F2(!)2.5 E F0 5(.S)C
-(etting this to 0 inhibits history e)-5 E(xpansion.)-.15 E F1 -.15(ch)
-108 352.8 S(ar).15 E F2(history_subst_char)2.5 E F0
-(The character that in)108 364.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(sw).1 G
+(Extract a string se)108 300 R .025(gment consisting of the)-.15 F F2
+<8c72>2.526 E(st)-.1 E F0(through)2.526 E F2(last)2.526 E F0(ar)2.526 E
+.026(guments present in)-.18 F F2(string)2.526 E F0 5.026(.A)C -.18(rg)
+-5.026 G .026(uments are split).18 F(using)108 312 Q F1(history_tok)2.5
+E(enize\(\))-.1 E F0(.)A F1(History V)87 340.8 Q(ariables)-.92 E F0
+(This section describes the e)108 352.8 Q(xternally-visible v)-.15 E
+(ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F2
+(int)108 376.8 Q F1(history_base)2.5 E F0(The logical of)108 388.8 Q
+(fset of the \214rst entry in the history list.)-.25 E F2(int)108 412.8
+Q F1(history_length)2.5 E F0
+(The number of entries currently stored in the history list.)108 424.8 Q
+F2(int)108 448.8 Q F1(history_max_entries)2.5 E F0
+(The maximum number of history entries.)108 460.8 Q
+(This must be changed using)5 E F1(sti\215e_history\(\))2.5 E F0(.)A F2
+(int)108 484.8 Q F1(history_write_timestamps)2.5 E F0 1.468
+(If non-zero, timestamps are written to the history \214le, so the)108
+496.8 R 3.968(yc)-.15 G 1.468(an be preserv)-3.968 F 1.468
+(ed between sessions.)-.15 F(The)6.468 E(def)108 508.8 Q(ault v)-.1 E
+(alue is 0, meaning that timestamps are not sa)-.25 E -.15(ve)-.2 G(d.)
+.15 E F2 -.15(ch)108 532.8 S(ar).15 E F1(history_expansion_char)2.5 E F0
+(The character that introduces a history e)108 544.8 Q -.15(ve)-.25 G
+2.5(nt. The).15 F(def)2.5 E(ault is)-.1 E F1(!)2.5 E F0 5(.S)C
+(etting this to 0 inhibits history e)-5 E(xpansion.)-.15 E F2 -.15(ch)
+108 568.8 S(ar).15 E F1(history_subst_char)2.5 E F0
+(The character that in)108 580.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 F2(^)2.5 E F0(.)A F1 -.15(ch)108 388.8 S(ar).15 E F2
-(history_comment_char)2.5 E F0 .117(During tok)108 400.8 R .117
+(ault is)-.1 E F1(^)2.5 E F0(.)A F2 -.15(ch)108 604.8 S(ar).15 E F1
+(history_comment_char)2.5 E F0 .116(During tok)108 616.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
-(acters up to a ne)108 412.8 R .276
+-.1 F .117(ord, then it and all subsequent char)-.1 F(-)-.2 E .277
+(acters up to a ne)108 628.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
-F(abled by def)108 424.8 Q(ault.)-.1 E F1 -.15(ch)108 448.8 S(ar *).15 E
-F2(history_w)2.5 E(ord_delimiters)-.1 E F0
-(The characters that separate tok)108 460.8 Q(ens for)-.1 E F2
+(xpansion for the remainder of the line.)-.15 F .276(This is dis-)5.276
+F(abled by def)108 640.8 Q(ault.)-.1 E F2 -.15(ch)108 664.8 S(ar *).15 E
+F1(history_w)2.5 E(ord_delimiters)-.1 E F0
+(The characters that separate tok)108 676.8 Q(ens for)-.1 E F1
(history_tok)2.5 E(enize\(\))-.1 E F0 5(.T)C(he def)-5 E(ault v)-.1 E
-(alue is)-.25 E F2 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0(.)A F1 -.15
-(ch)108 484.8 S(ar *).15 E F2(history_no_expand_chars)2.5 E F0 2.054
-(The list of characters which inhibit history e)108 496.8 R 2.054
-(xpansion if found immediately follo)-.15 F(wing)-.25 E F2
-(history_expan-)4.554 E(sion_char)108 508.8 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 532.8 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 544.8 R F1(:)2.901 E F0(and)2.901 E F1(?)2.902 E F0
-(in the case of a substring search.)108 556.8 Q(The def)5 E
-(ault is empty)-.1 E(.)-.65 E F1(int)108 580.8 Q F2
-(history_quotes_inhibit_expansion)2.5 E F0 .625
-(If non-zero, single-quoted w)108 592.8 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 604.8 Q F1(rl_lineb)108 628.8 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 640.8 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 652.8 R F1(i)A F0 2.728(\). 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 664.8 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 676.8 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 693.6 Q F1(~/.history)109.666 705.6 Q F0
-(Def)144 717.6 Q(ault \214lename for reading and writing sa)-.1 E -.15
-(ve)-.2 G 2.5(dh).15 G(istory)-2.5 E(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(6)195.95 E EP
+(alue is)-.25 E F1 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0(.)A F2 -.15
+(ch)108 700.8 S(ar *).15 E F1(history_no_expand_chars)2.5 E F0 2.054
+(The list of characters which inhibit history e)108 712.8 R 2.054
+(xpansion if found immediately follo)-.15 F(wing)-.25 E F1
+(history_expan-)4.555 E(sion_char)108 724.8 Q F0 5(.T)C(he def)-5 E
+(ault is space, tab, ne)-.1 E(wline,)-.25 E F1(\\r)2.5 E F0 2.5(,a)C(nd)
+-2.5 E F1(=)2.5 E F0(.)A(GNU History 5.0)72 768 Q(2003 July 31)139.005 E
+(6)203.165 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 84 Q/F2 10
-/Times-Italic@0 SF(The Gnu Readline Libr)108 96 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 108 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 120 Q F0(\(1\))A F2 -.37(re)108 132 S(adline).37 E
-F0(\(3\))A F1 -.548(AU)72 148.8 S(THORS).548 E F0(Brian F)108 160.8 Q
+(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_sear)2.5 E(ch_delimiter_chars)-.18 E
+F0 .401(The list of additional characters which can delimit a history s\
+earch string, in addition to space, tab,)108 96 R F1(:)2.901 E F0(and)
+2.901 E F1(?)2.901 E F0(in the case of a substring search.)108 108 Q
+(The def)5 E(ault is empty)-.1 E(.)-.65 E F1(int)108 132 Q F2
+(history_quotes_inhibit_expansion)2.5 E F0 .624
+(If non-zero, single-quoted w)108 144 R .625
+(ords are not scanned for the history e)-.1 F .625(xpansion character)
+-.15 F 5.625(.T)-.55 G .625(he def)-5.625 F .625(ault v)-.1 F .625
+(alue is)-.25 F(0.)108 156 Q F1(rl_lineb)108 180 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 192 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 204 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.728 E F0 .228
+(should not)2.728 F .019(be performed; zero if the e)108 216 R .019
+(xpansion should be done.)-.15 F .019
+(It is intended for use by applications lik)5.019 F(e)-.1 E F2(bash)
+2.519 E F0 .018(that use)2.519 F(the history e)108 228 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 244.8 Q F1(~/.history)109.666 256.8 Q F0
+(Def)144 268.8 Q(ault \214lename for reading and writing sa)-.1 E -.15
+(ve)-.2 G 2.5(dh).15 G(istory)-2.5 E F3(SEE ALSO)72 285.6 Q F1
+(The Gnu Readline Libr)108 297.6 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F1(The Gnu History Libr)108 309.6 Q
+(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
+F1(bash)108 321.6 Q F0(\(1\))A F1 -.37(re)108 333.6 S(adline).37 E F0
+(\(3\))A F3 -.548(AU)72 350.4 S(THORS).548 E F0(Brian F)108 362.4 Q
(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108
-172.8 Q(g)-.18 E(Chet Rame)108 189.6 Q 1.3 -.65(y, C)-.15 H(ase W).65 E
+374.4 Q(g)-.18 E(Chet Rame)108 391.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@ins.CWR)108 201.6 Q(U.Edu)-.4 E F1 -.11(BU)72 218.4 S 2.738(GR).11
-G(EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 230.4 R .16
-(ug in the)-.2 F/F3 10/Times-Bold@0 SF(history)2.66 E F0(library)2.66 E
-2.66(,y)-.65 G .16(ou should report it.)-2.66 F .16
-(But \214rst, you should mak)5.16 F 2.66(es)-.1 G .16
-(ure that it really is)-2.66 F 2.5(ab)108 242.4 S
-(ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F3
-(history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .704
-(Once you ha)108 259.2 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 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
-271.2 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 283.2 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 300 Q
-(ug reports concerning this manual page should be directed to)-.2 E F2
+(chet@ins.CWR)108 403.2 Q(U.Edu)-.4 E F3 -.11(BU)72 420 S 2.738(GR).11 G
+(EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 432 R .16
+(ug in the)-.2 F F2(history)2.66 E F0(library)2.66 E 2.66(,y)-.65 G .16
+(ou should report it.)-2.66 F .16(But \214rst, you should mak)5.16 F
+2.66(es)-.1 G .16(ure that it really is)-2.66 F 2.5(ab)108 444 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 .705
+(Once you ha)108 460.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
+472.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 484.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 501.6 Q
+(ug reports concerning this manual page should be directed to)-.2 E F1
-.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E
-(GNU History 4.3)72 768 Q(2002 January 31)131.79 E(7)195.95 E EP
+(GNU History 5.0)72 768 Q(2003 July 31)139.005 E(7)203.165 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/hstech.texi b/doc/hstech.texi
new file mode 100644
index 0000000..4fdda5f
--- /dev/null
+++ b/doc/hstech.texi
@@ -0,0 +1,573 @@
+@ignore
+This file documents the user interface to the GNU History library.
+
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
+Authored by Brian Fox and Chet Ramey.
+
+Permission is granted to make and distribute verbatim copies of this manual
+provided the copyright notice and this permission notice are preserved on
+all copies.
+
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission notice
+identical to this one except for the removal of this paragraph (this
+paragraph not being relevant to the printed manual).
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+GNU Copyright statement is available to the distributee, and provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end ignore
+
+@node Programming with GNU History
+@chapter Programming with GNU History
+
+This chapter describes how to interface programs that you write
+with the @sc{gnu} History Library.
+It should be considered a technical guide.
+For information on the interactive use of @sc{gnu} History, @pxref{Using
+History Interactively}.
+
+@menu
+* Introduction to History:: What is the GNU History library for?
+* History Storage:: How information is stored.
+* History Functions:: Functions that you can use.
+* History Variables:: Variables that control behaviour.
+* History Programming Example:: Example of using the GNU History Library.
+@end menu
+
+@node Introduction to History
+@section Introduction to History
+
+Many programs read input from the user a line at a time. The @sc{gnu}
+History library is able to keep track of those lines, associate arbitrary
+data with each line, and utilize information from previous lines in
+composing new ones.
+
+The programmer using the History library has available functions
+for remembering lines on a history list, associating arbitrary data
+with a line, removing lines from the list, searching through the list
+for a line containing an arbitrary text string, and referencing any line
+in the list directly. In addition, a history @dfn{expansion} function
+is available which provides for a consistent user interface across
+different programs.
+
+The user using programs written with the History library has the
+benefit of a consistent user interface with a set of well-known
+commands for manipulating the text of previous lines and using that text
+in new commands. The basic history manipulation commands are similar to
+the history substitution provided by @code{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 @code{<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.
+
+@node History Storage
+@section History Storage
+
+The history list is an array of history entries. A history entry is
+declared as follows:
+
+@example
+typedef void *histdata_t;
+
+typedef struct _hist_entry @{
+ char *line;
+ char *timestamp;
+ histdata_t data;
+@} HIST_ENTRY;
+@end example
+
+The history list itself might therefore be declared as
+
+@example
+HIST_ENTRY **the_history_list;
+@end example
+
+The state of the History library is encapsulated into a single structure:
+
+@example
+/*
+ * A structure used to pass around the current state of the history.
+ */
+typedef struct _hist_state @{
+ HIST_ENTRY **entries; /* Pointer to the entries themselves. */
+ int offset; /* The location pointer within this array. */
+ int length; /* Number of elements within this array. */
+ int size; /* Number of slots allocated to this array. */
+ int flags;
+@} HISTORY_STATE;
+@end example
+
+If the flags member includes @code{HS_STIFLED}, the history has been
+stifled.
+
+@node History Functions
+@section History Functions
+
+This section describes the calling sequence for the various functions
+exported by the @sc{gnu} History library.
+
+@menu
+* Initializing History and State Management:: Functions to call when you
+ want to use history in a
+ program.
+* History List Management:: Functions used to manage the list
+ of history entries.
+* Information About the History List:: Functions returning information about
+ the history list.
+* Moving Around the History List:: Functions used to change the position
+ in the history list.
+* Searching the History List:: Functions to search the history list
+ for entries containing a string.
+* Managing the History File:: Functions that read and write a file
+ containing the history list.
+* History Expansion:: Functions to perform csh-like history
+ expansion.
+@end menu
+
+@node Initializing History and State Management
+@subsection 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.
+
+@deftypefun void using_history (void)
+Begin a session in which the history functions might be used. This
+initializes the interactive variables.
+@end deftypefun
+
+@deftypefun {HISTORY_STATE *} history_get_history_state (void)
+Return a structure describing the current state of the input history.
+@end deftypefun
+
+@deftypefun void history_set_history_state (HISTORY_STATE *state)
+Set the state of the history list according to @var{state}.
+@end deftypefun
+
+@node History List Management
+@subsection History List Management
+
+These functions manage individual entries on the history list, or set
+parameters managing the list itself.
+
+@deftypefun void add_history (const char *string)
+Place @var{string} at the end of the history list. The associated data
+field (if any) is set to @code{NULL}.
+@end deftypefun
+
+@deftypefun void add_history_time (const char *string)
+Change the time stamp associated with the most recent history entry to
+@var{string}.
+@end deftypefun
+
+@deftypefun {HIST_ENTRY *} remove_history (int which)
+Remove history entry at offset @var{which} from the history. The
+removed element is returned so you can free the line, data,
+and containing structure.
+@end deftypefun
+
+@deftypefun {histdata_t} free_history_entry (HIST_ENTRY *histent)
+Free the history entry @var{histent} and any history library private
+data associated with it. Returns the application-specific data
+so the caller can dispose of it.
+@end deftypefun
+
+@deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data)
+Make the history entry at offset @var{which} have @var{line} and @var{data}.
+This returns the old entry so the caller can dispose of any
+application-specific data. In the case
+of an invalid @var{which}, a @code{NULL} pointer is returned.
+@end deftypefun
+
+@deftypefun void clear_history (void)
+Clear the history list by deleting all the entries.
+@end deftypefun
+
+@deftypefun void stifle_history (int max)
+Stifle the history list, remembering only the last @var{max} entries.
+@end deftypefun
+
+@deftypefun int unstifle_history (void)
+Stop stifling the history. This returns the previously-set
+maximum number of history entries (as set by @code{stifle_history()}).
+The value is positive if the history was
+stifled, negative if it wasn't.
+@end deftypefun
+
+@deftypefun int history_is_stifled (void)
+Returns non-zero if the history is stifled, zero if it is not.
+@end deftypefun
+
+@node Information About the History List
+@subsection Information About the History List
+
+These functions return information about the entire history list or
+individual list entries.
+
+@deftypefun {HIST_ENTRY **} history_list (void)
+Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the
+current input history. Element 0 of this list is the beginning of time.
+If there is no history, return @code{NULL}.
+@end deftypefun
+
+@deftypefun int where_history (void)
+Returns the offset of the current history element.
+@end deftypefun
+
+@deftypefun {HIST_ENTRY *} current_history (void)
+Return the history entry at the current position, as determined by
+@code{where_history()}. If there is no entry there, return a @code{NULL}
+pointer.
+@end deftypefun
+
+@deftypefun {HIST_ENTRY *} history_get (int offset)
+Return the history entry at position @var{offset}, starting from
+@code{history_base} (@pxref{History Variables}).
+If there is no entry there, or if @var{offset}
+is greater than the history length, return a @code{NULL} pointer.
+@end deftypefun
+
+@deftypefun time_t history_get_time (HIST_ENTRY *entry)
+Return the time stamp associated with the history entry @var{entry}.
+@end deftypefun
+
+@deftypefun 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.
+@end deftypefun
+
+@node Moving Around the History List
+@subsection Moving Around the History List
+
+These functions allow the current index into the history list to be
+set or changed.
+
+@deftypefun int history_set_pos (int pos)
+Set the current history offset to @var{pos}, an absolute index
+into the list.
+Returns 1 on success, 0 if @var{pos} is less than zero or greater
+than the number of history entries.
+@end deftypefun
+
+@deftypefun {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 @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.
+@end deftypefun
+
+@node Searching the History List
+@subsection Searching the History List
+@cindex History Searching
+
+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 @dfn{anchored},
+meaning that the string must match at the beginning of the history entry.
+@cindex anchored search
+
+@deftypefun int history_search (const char *string, int direction)
+Search the history for @var{string}, starting at the current history offset.
+If @var{direction} is less than 0, then the search is through
+previous entries, otherwise through subsequent entries.
+If @var{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
+@var{string} was found. Otherwise, nothing is changed, and a -1 is
+returned.
+@end deftypefun
+
+@deftypefun int history_search_prefix (const char *string, int direction)
+Search the history for @var{string}, starting at the current history
+offset. The search is anchored: matching lines must begin with
+@var{string}. If @var{direction} is less than 0, then the search is
+through previous entries, otherwise through subsequent entries.
+If @var{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.
+@end deftypefun
+
+@deftypefun int history_search_pos (const char *string, int direction, int pos)
+Search for @var{string} in the history list, starting at @var{pos}, an
+absolute index into the list. If @var{direction} is negative, the search
+proceeds backward from @var{pos}, otherwise forward. Returns the absolute
+index of the history element where @var{string} was found, or -1 otherwise.
+@end deftypefun
+
+@node Managing the History File
+@subsection 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.
+
+@deftypefun int read_history (const char *filename)
+Add the contents of @var{filename} to the history list, a line at a time.
+If @var{filename} is @code{NULL}, then read from @file{~/.history}.
+Returns 0 if successful, or @code{errno} if not.
+@end deftypefun
+
+@deftypefun int read_history_range (const char *filename, int from, int to)
+Read a range of lines from @var{filename}, adding them to the history list.
+Start reading at line @var{from} and end at @var{to}.
+If @var{from} is zero, start at the beginning. If @var{to} is less than
+@var{from}, then read until the end of the file. If @var{filename} is
+@code{NULL}, then read from @file{~/.history}. Returns 0 if successful,
+or @code{errno} if not.
+@end deftypefun
+
+@deftypefun int write_history (const char *filename)
+Write the current history to @var{filename}, overwriting @var{filename}
+if necessary.
+If @var{filename} is @code{NULL}, then write the history list to
+@file{~/.history}.
+Returns 0 on success, or @code{errno} on a read or write error.
+@end deftypefun
+
+@deftypefun int append_history (int nelements, const char *filename)
+Append the last @var{nelements} of the history list to @var{filename}.
+If @var{filename} is @code{NULL}, then append to @file{~/.history}.
+Returns 0 on success, or @code{errno} on a read or write error.
+@end deftypefun
+
+@deftypefun int history_truncate_file (const char *filename, int nlines)
+Truncate the history file @var{filename}, leaving only the last
+@var{nlines} lines.
+If @var{filename} is @code{NULL}, then @file{~/.history} is truncated.
+Returns 0 on success, or @code{errno} on failure.
+@end deftypefun
+
+@node History Expansion
+@subsection History Expansion
+
+These functions implement history expansion.
+
+@deftypefun int history_expand (char *string, char **output)
+Expand @var{string}, placing the result into @var{output}, a pointer
+to a string (@pxref{History Interaction}). Returns:
+@table @code
+@item 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);
+@item 1
+if expansions did take place;
+@item -1
+if there was an error in expansion;
+@item 2
+if the returned line should be displayed, but not executed,
+as with the @code{:p} modifier (@pxref{Modifiers}).
+@end table
+
+If an error ocurred in expansion, then @var{output} contains a descriptive
+error message.
+@end deftypefun
+
+@deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar)
+Returns the text of the history event beginning at @var{string} +
+@var{*cindex}. @var{*cindex} is modified to point to after the event
+specifier. At function entry, @var{cindex} points to the index into
+@var{string} where the history event specification begins. @var{qchar}
+is a character that is allowed to end the event specification in addition
+to the ``normal'' terminating characters.
+@end deftypefun
+
+@deftypefun {char **} history_tokenize (const char *string)
+Return an array of tokens parsed out of @var{string}, much as the
+shell might. The tokens are split on the characters in the
+@var{history_word_delimiters} variable,
+and shell quoting conventions are obeyed.
+@end deftypefun
+
+@deftypefun {char *} history_arg_extract (int first, int last, const char *string)
+Extract a string segment consisting of the @var{first} through @var{last}
+arguments present in @var{string}. Arguments are split using
+@code{history_tokenize}.
+@end deftypefun
+
+@node History Variables
+@section History Variables
+
+This section describes the externally-visible variables exported by
+the @sc{gnu} History Library.
+
+@deftypevar int history_base
+The logical offset of the first entry in the history list.
+@end deftypevar
+
+@deftypevar int history_length
+The number of entries currently stored in the history list.
+@end deftypevar
+
+@deftypevar int history_max_entries
+The maximum number of history entries. This must be changed using
+@code{stifle_history()}.
+@end deftypevar
+
+@deftypevar 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.
+@end deftypevar
+
+@deftypevar char history_expansion_char
+The character that introduces a history event. The default is @samp{!}.
+Setting this to 0 inhibits history expansion.
+@end deftypevar
+
+@deftypevar char history_subst_char
+The character that invokes word substitution if found at the start of
+a line. The default is @samp{^}.
+@end deftypevar
+
+@deftypevar 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.
+@end deftypevar
+
+@deftypevar {char *} history_word_delimiters
+The characters that separate tokens for @code{history_tokenize()}.
+The default value is @code{" \t\n()<>;&|"}.
+@end deftypevar
+
+@deftypevar {char *} history_search_delimiter_chars
+The list of additional characters which can delimit a history search
+string, in addition to space, TAB, @samp{:} and @samp{?} in the case of
+a substring search. The default is empty.
+@end deftypevar
+
+@deftypevar {char *} history_no_expand_chars
+The list of characters which inhibit history expansion if found immediately
+following @var{history_expansion_char}. The default is space, tab, newline,
+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.
+@end deftypevar
+
+@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
+This should be set to the address of a function that takes two arguments:
+a @code{char *} (@var{string})
+and an @code{int} index into that string (@var{i}).
+It should return a non-zero value if the history expansion starting at
+@var{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 @code{NULL}.
+@end deftypevar
+
+@node History Programming Example
+@section History Programming Example
+
+The following program demonstrates simple use of the @sc{gnu} History Library.
+
+@smallexample
+#include <stdio.h>
+#include <readline/history.h>
+
+main (argc, argv)
+ int argc;
+ char **argv;
+@{
+ char line[1024], *t;
+ int len, done = 0;
+
+ line[0] = 0;
+
+ using_history ();
+ while (!done)
+ @{
+ printf ("history$ ");
+ fflush (stdout);
+ t = fgets (line, sizeof (line) - 1, stdin);
+ if (t && *t)
+ @{
+ len = strlen (t);
+ if (t[len - 1] == '\n')
+ t[len - 1] = '\0';
+ @}
+
+ if (!t)
+ strcpy (line, "quit");
+
+ if (line[0])
+ @{
+ char *expansion;
+ int result;
+
+ result = history_expand (line, &expansion);
+ if (result)
+ fprintf (stderr, "%s\n", expansion);
+
+ if (result < 0 || result == 2)
+ @{
+ free (expansion);
+ continue;
+ @}
+
+ add_history (expansion);
+ strncpy (line, expansion, sizeof (line) - 1);
+ free (expansion);
+ @}
+
+ if (strcmp (line, "quit") == 0)
+ done = 1;
+ else if (strcmp (line, "save") == 0)
+ write_history ("history_file");
+ else if (strcmp (line, "read") == 0)
+ read_history ("history_file");
+ else if (strcmp (line, "list") == 0)
+ @{
+ register HIST_ENTRY **the_list;
+ register int i;
+
+ the_list = history_list ();
+ if (the_list)
+ for (i = 0; the_list[i]; i++)
+ printf ("%d: %s\n", i + history_base, the_list[i]->line);
+ @}
+ else if (strncmp (line, "delete", 6) == 0)
+ @{
+ int which;
+ if ((sscanf (line + 6, "%d", &which)) == 1)
+ @{
+ HIST_ENTRY *entry = remove_history (which);
+ if (!entry)
+ fprintf (stderr, "No such entry %d\n", which);
+ else
+ @{
+ free (entry->line);
+ free (entry);
+ @}
+ @}
+ else
+ @{
+ fprintf (stderr, "non-numeric arg given to `delete'\n");
+ @}
+ @}
+ @}
+@}
+@end smallexample
diff --git a/doc/hsuser.texi b/doc/hsuser.texi
new file mode 100644
index 0000000..6c89183
--- /dev/null
+++ b/doc/hsuser.texi
@@ -0,0 +1,457 @@
+@ignore
+This file documents the user interface to the GNU History library.
+
+Copyright (C) 1988-2002 Free Software Foundation, Inc.
+Authored by Brian Fox and Chet Ramey.
+
+Permission is granted to make and distribute verbatim copies of this manual
+provided the copyright notice and this permission notice are preserved on
+all copies.
+
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission notice
+identical to this one except for the removal of this paragraph (this
+paragraph not being relevant to the printed manual).
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+GNU Copyright statement is available to the distributee, and provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end ignore
+
+@node Using History Interactively
+@chapter Using History Interactively
+
+@ifclear BashFeatures
+@defcodeindex bt
+@end ifclear
+
+@ifset BashFeatures
+This chapter describes how to use the @sc{gnu} History Library
+interactively, from a user's standpoint.
+It should be considered a user's guide.
+For information on using the @sc{gnu} History Library in other programs,
+see the @sc{gnu} Readline Library Manual.
+@end ifset
+@ifclear BashFeatures
+This chapter describes how to use the @sc{gnu} History Library interactively,
+from a user's standpoint. It should be considered a user's guide. For
+information on using the @sc{gnu} History Library in your own programs,
+@pxref{Programming with GNU History}.
+@end ifclear
+
+@ifset BashFeatures
+@menu
+* Bash History Facilities:: How Bash lets you manipulate your command
+ history.
+* Bash History Builtins:: The Bash builtin commands that manipulate
+ the command history.
+* History Interaction:: What it feels like using History as a user.
+@end menu
+@end ifset
+@ifclear BashFeatures
+@menu
+* History Interaction:: What it feels like using History as a user.
+@end menu
+@end ifclear
+
+@ifset BashFeatures
+@node Bash History Facilities
+@section Bash History Facilities
+@cindex command history
+@cindex history list
+
+When the @option{-o history} option to the @code{set} builtin
+is enabled (@pxref{The Set Builtin}),
+the shell provides access to the @dfn{command history},
+the list of commands previously typed.
+The value of the @env{HISTSIZE} shell variable is used as the
+number of commands to save in a history list.
+The text of the last @env{$HISTSIZE}
+commands (default 500) is saved.
+The shell stores each command in the history list prior to
+parameter and variable expansion
+but after history expansion is performed, subject to the
+values of the shell variables
+@env{HISTIGNORE} and @env{HISTCONTROL}.
+
+When the shell starts up, the history is initialized from the
+file named by the @env{HISTFILE} variable (default @file{~/.bash_history}).
+The file named by the value of @env{HISTFILE} is truncated, if
+necessary, to contain no more than the number of lines specified by
+the value of the @env{HISTFILESIZE} variable.
+When an interactive shell exits, the last
+@env{$HISTSIZE} lines are copied from the history list to the file
+named by @env{$HISTFILE}.
+If the @code{histappend} shell option is set (@pxref{Bash Builtins}),
+the lines are appended to the history file,
+otherwise the history file is overwritten.
+If @env{HISTFILE}
+is unset, or if the history file is unwritable, the history is
+not saved. After saving the history, the history file is truncated
+to contain no more than @env{$HISTFILESIZE}
+lines. If @env{HISTFILESIZE} is not set, no truncation is performed.
+
+If the @env{HISTTIMEFORMAT} is set, the time stamp information
+associated with each history entry is written to the history file.
+
+The builtin command @code{fc} may be used to list or edit and re-execute
+a portion of the history list.
+The @code{history} builtin may be used to display or modify the history
+list and manipulate the history file.
+When using command-line editing, search commands
+are available in each editing mode that provide access to the
+history list (@pxref{Commands For History}).
+
+The shell allows control over which commands are saved on the history
+list. The @env{HISTCONTROL} and @env{HISTIGNORE}
+variables may be set to cause the shell to save only a subset of the
+commands entered.
+The @code{cmdhist}
+shell option, if enabled, causes the shell to attempt to save each
+line of a multi-line command in the same history entry, adding
+semicolons where necessary to preserve syntactic correctness.
+The @code{lithist}
+shell option causes the shell to save the command with embedded newlines
+instead of semicolons.
+The @code{shopt} builtin is used to set these options.
+@xref{Bash Builtins}, for a description of @code{shopt}.
+
+@node Bash History Builtins
+@section Bash History Builtins
+@cindex history builtins
+
+Bash provides two builtin commands which manipulate the
+history list and history file.
+
+@table @code
+
+@item fc
+@btindex fc
+@example
+@code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]}
+@code{fc -s [@var{pat}=@var{rep}] [@var{command}]}
+@end example
+
+Fix Command. In the first form, a range of commands from @var{first} to
+@var{last} is selected from the history list. Both @var{first} and
+@var{last} may be specified as a string (to locate the most recent
+command beginning with that string) or as a number (an index into the
+history list, where a negative number is used as an offset from the
+current command number). If @var{last} is not specified it is set to
+@var{first}. If @var{first} is not specified it is set to the previous
+command for editing and @minus{}16 for listing. If the @option{-l} flag is
+given, the commands are listed on standard output. The @option{-n} flag
+suppresses the command numbers when listing. The @option{-r} flag
+reverses the order of the listing. Otherwise, the editor given by
+@var{ename} is invoked on a file containing those commands. If
+@var{ename} is not given, the value of the following variable expansion
+is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}. This says to use the
+value of the @env{FCEDIT} variable if set, or the value of the
+@env{EDITOR} variable if that is set, or @code{vi} if neither is set.
+When editing is complete, the edited commands are echoed and executed.
+
+In the second form, @var{command} is re-executed after each instance
+of @var{pat} in the selected command is replaced by @var{rep}.
+
+A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so
+that typing @samp{r cc} runs the last command beginning with @code{cc}
+and typing @samp{r} re-executes the last command (@pxref{Aliases}).
+
+@item history
+@btindex history
+@example
+history [@var{n}]
+history -c
+history -d @var{offset}
+history [-anrw] [@var{filename}]
+history -ps @var{arg}
+@end example
+
+With no options, display the history list with line numbers.
+Lines prefixed with a @samp{*} have been modified.
+An argument of @var{n} lists only the last @var{n} lines.
+If the shell variable @env{HISTTIMEFORMAT} is set and not null,
+it is used as a format string for @var{strftime} to display
+the time stamp associated with each displayed history entry.
+No intervening blank is printed between the formatted time stamp
+and the history line.
+
+Options, if supplied, have the following meanings:
+
+@table @code
+@item -c
+Clear the history list. This may be combined
+with the other options to replace the history list completely.
+
+@item -d @var{offset}
+Delete the history entry at position @var{offset}.
+@var{offset} should be specified as it appears when the history is
+displayed.
+
+@item -a
+Append the new
+history lines (history lines entered since the beginning of the
+current Bash session) to the history file.
+
+@item -n
+Append the history lines not already read from the history file
+to the current history list. These are lines appended to the history
+file since the beginning of the current Bash session.
+
+@item -r
+Read the current history file and append its contents to
+the history list.
+
+@item -w
+Write out the current history to the history file.
+
+@item -p
+Perform history substitution on the @var{arg}s and display the result
+on the standard output, without storing the results in the history list.
+
+@item -s
+The @var{arg}s are added to the end of
+the history list as a single entry.
+
+@end table
+
+When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is
+used, if @var{filename}
+is given, then it is used as the history file. If not, then
+the value of the @env{HISTFILE} variable is used.
+
+@end table
+@end ifset
+
+@node History Interaction
+@section History Expansion
+@cindex history expansion
+
+The History library provides a history expansion feature that is similar
+to the history expansion provided by @code{csh}. This section
+describes the syntax used to manipulate the history information.
+
+History expansions introduce words from the history list into
+the input stream, making it easy to repeat commands, insert the
+arguments to a previous command into the current input line, or
+fix errors in previous commands quickly.
+
+History expansion takes place in two parts. The first is to determine
+which line from the history list should be used during substitution.
+The second is to select portions of that line for inclusion into the
+current one. The line selected from the history is called the
+@dfn{event}, and the portions of that line that are acted upon are
+called @dfn{words}. Various @dfn{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 @samp{!} by default.
+@ifset BashFeatures
+Only @samp{\} and @samp{'} may be used to escape the history expansion
+character.
+@end ifset
+
+@ifset BashFeatures
+Several shell options settable with the @code{shopt}
+builtin (@pxref{Bash Builtins}) may be used to tailor
+the behavior of history expansion. If the
+@code{histverify} shell option is enabled, and Readline
+is being used, history substitutions are not immediately passed to
+the shell parser.
+Instead, the expanded line is reloaded into the Readline
+editing buffer for further modification.
+If Readline is being used, and the @code{histreedit}
+shell option is enabled, a failed history expansion will be
+reloaded into the Readline editing buffer for correction.
+The @option{-p} option to the @code{history} builtin command
+may be used to see what a history expansion will do before using it.
+The @option{-s} option to the @code{history} builtin may be used to
+add commands to the end of the history list without actually executing
+them, so that they are available for subsequent recall.
+This is most useful in conjunction with Readline.
+
+The shell allows control of the various characters used by the
+history expansion mechanism with the @code{histchars} variable.
+@end ifset
+
+@menu
+* Event Designators:: How to specify which history line to use.
+* Word Designators:: Specifying which words are of interest.
+* Modifiers:: Modifying the results of substitution.
+@end menu
+
+@node Event Designators
+@subsection Event Designators
+@cindex event designators
+
+An event designator is a reference to a command line entry in the
+history list.
+@cindex history events
+
+@table @asis
+
+@item @code{!}
+@ifset BashFeatures
+Start a history substitution, except when followed by a space, tab,
+the end of the line, @samp{=} or @samp{(} (when the
+@code{extglob} shell option is enabled using the @code{shopt} builtin).
+@end ifset
+@ifclear BashFeatures
+Start a history substitution, except when followed by a space, tab,
+the end of the line, or @samp{=}.
+@end ifclear
+
+@item @code{!@var{n}}
+Refer to command line @var{n}.
+
+@item @code{!-@var{n}}
+Refer to the command @var{n} lines back.
+
+@item @code{!!}
+Refer to the previous command. This is a synonym for @samp{!-1}.
+
+@item @code{!@var{string}}
+Refer to the most recent command starting with @var{string}.
+
+@item @code{!?@var{string}[?]}
+Refer to the most recent command containing @var{string}. The trailing
+@samp{?} may be omitted if the @var{string} is followed immediately by
+a newline.
+
+@item @code{^@var{string1}^@var{string2}^}
+Quick Substitution. Repeat the last command, replacing @var{string1}
+with @var{string2}. Equivalent to
+@code{!!:s/@var{string1}/@var{string2}/}.
+
+@item @code{!#}
+The entire command line typed so far.
+
+@end table
+
+@node Word Designators
+@subsection Word Designators
+
+Word designators are used to select desired words from the event.
+A @samp{:} separates the event specification from the word designator. It
+may be omitted if the word designator begins with a @samp{^}, @samp{$},
+@samp{*}, @samp{-}, or @samp{%}. 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.
+
+@need 0.75
+For example,
+
+@table @code
+@item !!
+designates the preceding command. When you type this, the preceding
+command is repeated in toto.
+
+@item !!:$
+designates the last argument of the preceding command. This may be
+shortened to @code{!$}.
+
+@item !fi:2
+designates the second argument of the most recent command starting with
+the letters @code{fi}.
+@end table
+
+@need 0.75
+Here are the word designators:
+
+@table @code
+
+@item 0 (zero)
+The @code{0}th word. For many applications, this is the command word.
+
+@item @var{n}
+The @var{n}th word.
+
+@item ^
+The first argument; that is, word 1.
+
+@item $
+The last argument.
+
+@item %
+The word matched by the most recent @samp{?@var{string}?} search.
+
+@item @var{x}-@var{y}
+A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}.
+
+@item *
+All of the words, except the @code{0}th. This is a synonym for @samp{1-$}.
+It is not an error to use @samp{*} if there is just one word in the event;
+the empty string is returned in that case.
+
+@item @var{x}*
+Abbreviates @samp{@var{x}-$}
+
+@item @var{x}-
+Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word.
+
+@end table
+
+If a word designator is supplied without an event specification, the
+previous command is used as the event.
+
+@node Modifiers
+@subsection Modifiers
+
+After the optional word designator, you can add a sequence of one or more
+of the following modifiers, each preceded by a @samp{:}.
+
+@table @code
+
+@item h
+Remove a trailing pathname component, leaving only the head.
+
+@item t
+Remove all leading pathname components, leaving the tail.
+
+@item r
+Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving
+the basename.
+
+@item e
+Remove all but the trailing suffix.
+
+@item p
+Print the new command but do not execute it.
+
+@ifset BashFeatures
+@item q
+Quote the substituted words, escaping further substitutions.
+
+@item x
+Quote the substituted words as with @samp{q},
+but break into words at spaces, tabs, and newlines.
+@end ifset
+
+@item s/@var{old}/@var{new}/
+Substitute @var{new} for the first occurrence of @var{old} in the
+event line. Any delimiter may be used in place of @samp{/}.
+The delimiter may be quoted in @var{old} and @var{new}
+with a single backslash. If @samp{&} appears in @var{new},
+it is replaced by @var{old}. A single backslash will quote
+the @samp{&}. The final delimiter is optional if it is the last
+character on the input line.
+
+@item &
+Repeat the previous substitution.
+
+@item g
+@itemx a
+Cause changes to be applied over the entire event line. Used in
+conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/},
+or with @samp{&}.
+
+@item G
+Apply the following @samp{s} modifier once to each word in the event.
+
+@end table
diff --git a/doc/readline.0 b/doc/readline.0
index 87beeac..9ccb693 100644
--- a/doc/readline.0
+++ b/doc/readline.0
@@ -1,4 +1,4 @@
-READLINE(3) READLINE(3)
+READLINE(3) READLINE(3)
@@ -14,72 +14,63 @@ SSYYNNOOPPSSIISS
rreeaaddlliinnee (_c_o_n_s_t _c_h_a_r _*_p_r_o_m_p_t);
CCOOPPYYRRIIGGHHTT
- Readline is Copyright (C) 1989-2002 by the Free Software
- Foundation, Inc.
+ Readline is Copyright (C) 1989-2004 by the 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 allo-
- cated with _m_a_l_l_o_c(3); the caller must free it when fin-
- ished. 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 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 addi-
- tional information.
+ 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
+ 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
+ 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.
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, it is treated as
- a newline.
+ 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,
+ it is treated as a newline.
NNOOTTAATTIIOONN
- An emacs-style notation is used to denote keystrokes.
- Control keys are denoted by C-_k_e_y, e.g., C-n means Con-
- trol-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 Con-
- trol 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 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 act in
- a backward direction. Commands whose behavior with argu-
- ments deviates from this are noted.
-
- 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 unit,
- which can be yanked all at once. Commands which do not
- kill text separate the chunks of text on the kill ring.
+ 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
+ key.)
+
+ Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, 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
+ act in a backward direction. Commands whose behavior with arguments
+ deviates from this are noted.
+
+ 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
+ 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
- Readline is customized by putting commands in an initial-
- ization 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.
- 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 constructs. Other lines denote key
- bindings and variable settings. Each program using this
- library may add its own commands and bindings.
+ 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. 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 com-
+ ments. 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.
For example, placing
@@ -87,58 +78,52 @@ 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 _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.
- 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: _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.
- 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 _m_a_c_r_o).
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 specified in one of
- two ways: as a symbolic key name, possibly with _M_e_t_a_- or
+ 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.
- 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 of a key spelled out in English. For
- example:
+ 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
+ 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 uunniivveerr--
- ssaall--aarrgguummeenntt, _M_-_D_E_L is bound to the function bbaacckk--
- wwaarrdd--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 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
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, kkeeyy--
- sseeqq 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 the
- symbolic character names are not recognized.
+ 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
+ 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 uunnii--
- vveerrssaall--aarrgguummeenntt. _C_-_x _C_-_r is bound to the function
- rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is bound to insert the
- text ``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
+ bound to insert the text ``Function Key 1''.
- The full set of GNU Emacs style escape sequences available
- when specifying key sequences is
+ 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
@@ -146,8 +131,8 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
\\"" 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:
+ In addition to the GNU Emacs style escape sequences, a second set of
+ backslash escapes is available:
\\aa alert (bell)
\\bb backspace
\\dd delete
@@ -156,190 +141,175 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
\\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. Back-
- slash will quote any other character in the macro text,
- including " and '.
-
- BBaasshh allows the current readline key bindings to be dis-
- played or modified with the bbiinndd builtin command. The
- editing mode may be switched during interactive use by
- using the --oo option to the sseett builtin command. 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 provide any other means to incorporate new bind-
- ings.
+ \\_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
+ 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-
+ vide any other means to incorporate new bindings.
VVaarriiaabblleess
- Readline has variables that can be used to further cus-
- tomize its behavior. A variable may be set in the _i_n_p_u_t_r_c
- file with a statement of the form
+ 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
+ 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). The variables and
- their default values are:
+ Except where noted, readline variables can take the values OOnn or OOffff
+ (without regard to case). 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 aauuddii--
- bbllee, readline attempts to ring the terminal's bell.
+ 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.
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 com-
- mand mode.
+ 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--iiggnnoorree--ccaassee ((OOffff))
- If set to OOnn, readline performs filename matching
- and completion in a case-insensitive fashion.
+ If set to OOnn, readline performs filename matching and completion
+ in a case-insensitive fashion.
ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
- This determines when the user is queried about
- viewing the number of possible completions gener-
- ated by the ppoossssiibbllee--ccoommpplleettiioonnss 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 vari-
- able, the user is asked whether or not he wishes to
- view them; otherwise they are simply listed on the
- terminal.
+ 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
+ greater than or equal to the value of this variable, the user is
+ asked whether or not he wishes to view them; otherwise they are
+ simply listed on the terminal.
ccoonnvveerrtt--mmeettaa ((OOnn))
- If set to OOnn, 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).
+ If set to OOnn, 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 comple-
- tion. Completion characters will be inserted into
- the line as if they had been mapped to sseellff--iinnsseerrtt.
+ If set to OOnn, 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 similar to emacs or vi. eeddiittiinngg--mmooddee can
- be set to either eemmaaccss or vvii.
+ Controls whether readline begins with a set of key bindings sim-
+ ilar to emacs or vi. eeddiittiinngg--mmooddee can be set to either eemmaaccss or
+ vvii.
eennaabbllee--kkeeyyppaadd ((OOffff))
- When set to OOnn, readline will try to enable the
- application keypad when it is called. Some systems
- need this to enable the arrow keys.
+ When set to OOnn, readline will try to enable the application key-
+ pad when it is called. Some systems need this to enable the
+ arrow keys.
eexxppaanndd--ttiillddee ((OOffff))
- If set to oonn, tilde expansion is performed when
- readline attempts word completion.
+ If set to oonn, tilde expansion is performed when readline
+ attempts word completion.
hhiissttoorryy--pprreesseerrvvee--ppooiinntt
- If set to oonn, the history code attempts to place
- point at the same location on each history line
- retrived with pprreevviioouuss--hhiissttoorryy or nneexxtt--hhiissttoorryy.
+ If set to oonn, the history code attempts to place point at the
+ same location on each history line retrived with pprreevviioouuss--hhiiss--
+ ttoorryy or nneexxtt--hhiissttoorryy.
hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
- When set to OOnn, makes readline use a single line
- for display, scrolling the input horizontally on a
- single screen line when it becomes longer than the
- screen width rather than wrapping to a new line.
+ When set to OOnn, makes readline use a single line for display,
+ scrolling the input horizontally on a single screen line when it
+ becomes longer than the screen width rather than wrapping to a
+ new line.
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), regardless of what the termi-
- nal claims it can support. The name mmeettaa--ffllaagg is a
- synonym for this variable.
+ If set to OOnn, 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 command. If this variable has
- not been given a value, the characters _E_S_C and _C_-_J
- will terminate an incremental search.
+ 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
+ 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
keymap.
mmaarrkk--ddiirreeccttoorriieess ((OOnn))
- If set to OOnn, completed directory names have a
- slash appended.
+ 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 displayed with a preceding asterisk (**).
+ 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 directories have a slash appended (subject
- to the value of mmaarrkk--ddiirreeccttoorriieess).
+ 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, unless
- the leading `.' is supplied by the user in the
- filename to be completed.
+ This variable, when set to OOnn, causes readline to match files
+ whose names begin with a `.' (hidden files) when performing
+ filename completion, unless the leading `.' is supplied by the
+ user in the filename to be completed.
oouuttppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will display characters with
- the eighth bit set directly rather than as a meta-
- prefixed escape sequence.
+ If set to OOnn, 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 display a screenful of possible comple-
- tions at a time.
+ If set to OOnn, readline uses an internal _m_o_r_e-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 sorted horizontally in alphabetical
- order, rather than down the screen.
+ If set to OOnn, readline will display completions with matches
+ sorted horizontally in alphabetical order, rather than down the
+ screen.
sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
- This alters the default behavior of the completion
- functions. If set to oonn, words which have more
- than one possible completion cause the matches to
- be listed immediately instead of ringing the bell.
+ This alters the default behavior of the completion functions.
+ If set to oonn, 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))
+ This alters the default behavior of the completion functions in
+ a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to oonn, 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.
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 completions.
+ 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-
+ pletions.
CCoonnddiittiioonnaall CCoonnssttrruuccttss
- 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 per-
- formed as the result of tests. There are four parser
- directives used.
-
- $$iiff The $$iiff 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.
-
- mmooddee The mmooddee== form of the $$iiff 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 emacs mode.
-
- tteerrmm The tteerrmm== form may be used to include termi-
- nal-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 instance.
+ 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-
+ 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
+ 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
+ emacs mode.
+
+ tteerrmm The tteerrmm== 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
+ instance.
aapppplliiccaattiioonn
- The aapppplliiccaattiioonn 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 file can
- test for a particular value. This could be
- used to bind key sequences to functions use-
- ful for a specific program. For instance,
- the following command adds a key sequence
- that quotes the current or previous word in
+ The aapppplliiccaattiioonn 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
+ 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
Bash:
$$iiff Bash
@@ -347,68 +317,60 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
"\C-xq": "\eb\"\ef\""
$$eennddiiff
- $$eennddiiff This command, as seen in the previous example, ter-
- minates an $$iiff command.
+ $$eennddiiff This command, as seen in the previous example, terminates an $$iiff
+ command.
- $$eellssee Commands in this branch of the $$iiff directive are
- executed if the test fails.
+ $$eellssee Commands in this branch of the $$iiff directive are executed if the
+ test fails.
$$iinncclluuddee
- This directive takes a single filename as an argu-
- ment and reads commands and bindings from that
- file. For example, the following directive would
- read _/_e_t_c_/_i_n_p_u_t_r_c:
+ 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:
$$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
SSEEAARRCCHHIINNGG
- Readline provides commands for searching through the com-
- mand 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 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 his-
- tory for a particular string, type CC--rr. Typing CC--ss
- searches forward through the history. The characters pre-
- sent 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 charac-
- ters will terminate an incremental search. CC--GG 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 appropriate. This will search backward or
- forward in the history for the next line matching the
- search string typed so far. Any other key sequence bound
- to a readline command will terminate the search and exe-
- cute that command. For instance, a newline will terminate
- the search and accept the line, thereby executing the com-
- mand from the history list. A movement command will ter-
- minate the search, make the last line found the current
- line, and begin editing.
-
- Non-incremental searches read the entire search string
- before starting to search for matching history lines. The
- search string may be typed by the user or be part of the
- contents of the current line.
+ 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 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
+ 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
+ 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
+ appropriate. This will search backward or forward in the history for
+ the next line matching the search string typed so far. Any other key
+ sequence bound to a readline command will terminate the search and exe-
+ cute that command. For instance, a newline will terminate the search
+ and accept the line, thereby executing the command from the history
+ list. A movement command will terminate the search, make the last line
+ found the current line, and begin editing.
+
+ Non-incremental searches read the entire search string before starting
+ to search for matching history lines. The search string may be typed
+ by the user or be part of the contents of the current line.
EEDDIITTIINNGG CCOOMMMMAANNDDSS
- The following is a list of the names of the commands and
- the default key sequences to which they are bound. Com-
- mand names without an accompanying key sequence are
- unbound by default.
+ The following is a list of the names of the commands and the default
+ key sequences to which they are bound. Command names without an accom-
+ panying key sequence are unbound by default.
- In the following descriptions, _p_o_i_n_t refers to the current
- cursor position, and _m_a_r_k refers to a cursor position
- saved by the sseett--mmaarrkk command. The text between the point
- and mark is referred to as the _r_e_g_i_o_n.
+ 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-
+ mand. The text between the point and mark is referred to as the
+ _r_e_g_i_o_n.
CCoommmmaannddss ffoorr MMoovviinngg
bbeeggiinnnniinngg--ooff--lliinnee ((CC--aa))
@@ -420,136 +382,118 @@ EEDDIITTIINNGG CCOOMMMMAANNDDSS
bbaacckkwwaarrdd--cchhaarr ((CC--bb))
Move back a character.
ffoorrwwaarrdd--wwoorrdd ((MM--ff))
- Move forward to the end of the next word. Words
- are composed of alphanumeric characters (letters
- and digits).
+ Move forward to the end of the next word. Words are composed of
+ alphanumeric characters (letters and digits).
bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
- Move back to the start of the current or previous
- word. Words are composed of alphanumeric charac-
- ters (letters and digits).
+ 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 the screen leaving the current line at the
- top of the screen. With an argument, refresh the
- current line without clearing the screen.
+ Clear the screen leaving the current line at the top of the
+ screen. With an argument, refresh the current line without
+ clearing the screen.
rreeddrraaww--ccuurrrreenntt--lliinnee
Refresh the current line.
CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
- 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 line, the history
- line is restored to its original state.
+ 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
+ line, the history line is restored to its original state.
pprreevviioouuss--hhiissttoorryy ((CC--pp))
- Fetch the previous command from the history list,
- moving back in the list.
+ Fetch the previous command from the history list, moving back in
+ the list.
nneexxtt--hhiissttoorryy ((CC--nn))
- Fetch the next command from the history list, mov-
- ing forward in the list.
+ Fetch the next command from the history list, moving forward in
+ the list.
bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
Move to the first line in the history.
eenndd--ooff--hhiissttoorryy ((MM-->>))
- Move to the end of the input history, i.e., the
- line currently being entered.
+ Move to the end of the input history, i.e., the line currently
+ being entered.
rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
- Search backward starting at the current line and
- moving `up' through the history as necessary. This
- is an incremental search.
+ 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))
- Search forward starting at the current line and
- moving `down' through the history as necessary.
- This is an incremental search.
+ 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))
- 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))
- Search forward through the history using a non-
- incremental search for a string supplied by the
+ 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))
+ Search forward through the history using a non-incremental
+ search for a string supplied by the user.
hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd
- Search forward 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). This
- is a non-incremental search.
+ Search forward 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). This is a non-incremental search.
hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd
- Search backward through the history for the string
- of characters between the start of the current line
- and the point. This is a non-incremental search.
+ Search backward through the history for the string of characters
+ between the start of the current line and the point. 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 previ-
- ous command begin with word 0). A negative argu-
- ment inserts the _nth word from the end of the pre-
- vious command.
+ 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.
yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
- Insert the last argument to the previous command
- (the last word of the previous history entry).
- With an argument, behave exactly like yyaannkk--nntthh--aarrgg.
- Successive calls to yyaannkk--llaasstt--aarrgg move back through
- the history list, inserting the last argument of
- each line in turn.
+ Insert the last argument to the previous command (the last word
+ of the previous history entry). With an argument, behave
+ exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg
+ move back through the history list, inserting the last argument
+ of each line in turn.
CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
ddeelleettee--cchhaarr ((CC--dd))
- Delete the character at point. If point is at the
- beginning of the line, there are no characters in
- the line, and the last character typed was not
- bound to ddeelleettee--cchhaarr, then return EEOOFF.
+ Delete the character at point. If point is at the beginning of
+ the line, there are no characters in the line, and the last
+ character typed was not bound to ddeelleettee--cchhaarr, then return EEOOFF.
bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
- Delete the character behind the cursor. When given
- a numeric argument, save the deleted text on the
- kill ring.
+ 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 the end of the line, in which case the
- character behind the cursor is deleted.
+ 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))
- Add the next character that you type to the line
- verbatim. This is how to insert characters like
- CC--qq, for example.
+ 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))
Insert a tab character.
sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
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. Nega-
- tive arguments have no effect.
+ 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 line, this transposes
- the last two words on the line.
+ 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 argument, uppercase the previous word, but
- do not move point.
+ 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 argument, lowercase the previous word, but
- do not move point.
+ 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 argument, capitalize the previous word,
- but do not move point.
+ 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 argument, 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 over-
- write mode, characters 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 space. By default, this command is unbound.
+ 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
+ space. By default, this command is unbound.
KKiilllliinngg aanndd YYaannkkiinngg
kkiillll--lliinnee ((CC--kk))
@@ -557,211 +501,186 @@ EEDDIITTIINNGG CCOOMMMMAANNDDSS
bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt))
Kill backward to the beginning of the line.
uunniixx--lliinnee--ddiissccaarrdd ((CC--uu))
- Kill backward from point to the beginning of the
- line. The killed text is saved on the kill-ring.
+ 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 is.
+ 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 ffoorr--
- wwaarrdd--wwoorrdd.
+ 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.
+ 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 boundary. The killed text is saved on the
- kill-ring.
+ 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
+ the kill-ring.
ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\))
Delete all spaces and tabs around point.
kkiillll--rreeggiioonn
- Kill the text between the point and _m_a_r_k (saved
- cursor position). This text is referred to as the
- _r_e_g_i_o_n.
+ 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
Copy the text in the region to the kill buffer.
ccooppyy--bbaacckkwwaarrdd--wwoorrdd
- Copy the word before point to the kill buffer. The
- word boundaries are the same as 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.
+ Copy the word following point to the kill buffer. The word
+ boundaries are the same as ffoorrwwaarrdd--wwoorrdd.
yyaannkk ((CC--yy))
- Yank the top of the kill ring into the buffer at
- point.
+ 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 following yyaannkk or yyaannkk--ppoopp.
+ Rotate the kill ring, and yank the new top. Only works follow-
+ ing yyaannkk or yyaannkk--ppoopp.
NNuummeerriicc AArrgguummeennttss
ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----))
- Add this digit to the argument already accumulat-
- ing, or start a new argument. M-- starts a nega-
- tive argument.
+ 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 followed by
- digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the
- numeric argument, but is otherwise ignored. As a
- special case, if this command is immediately fol-
- lowed 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 ini-
- tially one, so executing this function the first
- time makes the argument count four, a second time
- makes the argument count sixteen, and so on.
+ 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-
+ 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 applica-
- tion-specific. BBaasshh, for instance, attempts com-
- pletion 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 comple-
- tion is attempted. GGddbb, on the other hand, allows
- completion of program functions and variables, and
- only attempts filename completion under certain
- circumstances.
+ 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
+ only attempts filename completion under certain circumstances.
ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??))
- List the possible completions of the text before
- point.
+ List the possible completions of the text before point.
iinnsseerrtt--ccoommpplleettiioonnss ((MM--**))
- Insert all completions of the text before point
- that would have been generated by ppoossssiibbllee--ccoommppllee--
- ttiioonnss.
+ 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 pos-
- sible completions. Repeated execution of mmeennuu--ccoomm--
- pplleettee steps through the list of possible comple-
- tions, inserting each match in turn. At the end of
- the list of completions, the bell is rung (subject
- to the setting of 00aanndd tthhee oorriiggiinnaall tteexxtt iiss
- rreessttoorreedd.. AAnn aarrgguummeenntt ooff _n mmoovveess _n ppoossiittiioonnss ffoorr--
- wwaarrdd iinn tthhee lliisstt ooff mmaattcchheess;; aa nneeggaattiivvee aarrgguummeenntt
- mmaayy bbee uusseedd ttoo mmoovvee bbaacckkwwaarrdd tthhrroouugghh tthhee lliisstt..
- TThhiiss ccoommmmaanndd iiss iinntteennddeedd ttoo bbee bboouunndd ttoo TTAABB,, bbuutt iiss
- uunnbboouunndd bbyy ddeeffaauulltt..
+ 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
+ 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
+ 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 identi-
- cally to ppoossssiibbllee--ccoommpplleettiioonnss.
+ 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 macro.
+ Begin saving the characters typed into the current keyboard
+ macro.
eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
- Stop saving the characters typed into the current
- keyboard macro and store the definition.
+ 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 mak-
- ing the characters in the macro appear as if typed
- at the keyboard.
+ Re-execute the last keyboard macro defined, by making the char-
+ acters in the macro appear as if typed at the keyboard.
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 bindings or variable assignments
- found there.
+ Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
+ bindings or variable assignments found there.
aabboorrtt ((CC--gg))
- Abort the current editing command and ring the ter-
- minal's bell (subject to the setting of
- bbeellll--ssttyyllee).
+ 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 is bound to the corresponding upper-
- case character.
+ 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 equiva-
- lent to MMeettaa--ff.
+ Metafy the next character typed. EESSCC ff is equivalent to MMeettaa--ff.
uunnddoo ((CC--__,, CC--xx CC--uu))
- Incremental undo, separately remembered for each
- line.
+ Incremental undo, separately remembered for each line.
rreevveerrtt--lliinnee ((MM--rr))
- Undo all changes made to this line. This is like
- executing the uunnddoo command enough times to return
- the line to its initial state.
+ Undo all changes made to this line. This is like executing the
+ uunnddoo command enough times to return the line to its initial
+ state.
ttiillddee--eexxppaanndd ((MM--&&))
Perform tilde expansion on the current word.
sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>))
- Set the mark to the point. If a numeric argument
- is supplied, the mark is set to that position.
+ 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))
- 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.
+ 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--]]))
- A character is read and point is moved to the next
- occurrence of that character. A negative count
- searches for previous occurrences.
+ 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--]]))
- A character is read and point is moved to the pre-
- vious occurrence of that character. A negative
- count searches for subsequent occurrences.
+ A character is read and point is moved to the previous occur-
+ rence of that character. A negative count searches for subse-
+ quent occurrences.
iinnsseerrtt--ccoommmmeenntt ((MM--##))
- Without a numeric argument, the value of the read-
- line ccoommmmeenntt--bbeeggiinn variable is inserted at the
- beginning of the current line. If a numeric argu-
- ment 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, otherwise the characters in ccoommmmeenntt--bbeeggiinn
- are deleted from the beginning of the line. In
- either case, the line is accepted as if a newline
- had been typed. The default value of ccoommmmeenntt--bbeeggiinn
- 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.
+ Without a numeric argument, the value of the readline ccoomm--
+ mmeenntt--bbeeggiinn 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-
+ ning of the line. In either case, the line is accepted as if a
+ newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
+ 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
- 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 _i_n_p_u_t_r_c
- file.
+ 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
- Print all of the settable variables and their val-
- ues 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.
+ 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
- Print all of the readline key sequences bound to
- macros and the strings they ouput. 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.
+ 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 mode.
+ When in vvii command mode, this causes a switch to eemmaaccss editing
+ mode.
vvii--eeddiittiinngg--mmooddee ((MM--CC--jj))
- When in eemmaaccss editing mode, this causes a switch to
- vvii editing mode.
+ When in eemmaaccss editing mode, this causes a switch to vvii editing
+ mode.
DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
- The following is a list of the default emacs and vi bind-
- ings. Characters 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 mentioned in the list
- of emacs standard bindings are bound to the sseellff--iinnsseerrtt
- function, which just inserts the given character into the
- input line. In vi insertion mode, all characters not
- specifically mentioned are bound to sseellff--iinnsseerrtt. Charac-
- ters assigned to signal generation by _s_t_t_y(1) or the ter-
- minal 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 remain-
- ing characters are unbound, which causes readline to ring
- the bell (subject to the setting of the bbeellll--ssttyyllee vari-
- able).
+ 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
+ mentioned in the list of emacs standard bindings are bound to the
+ sseellff--iinnsseerrtt 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
+ 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).
EEmmaaccss MMooddee
Emacs Standard bindings
@@ -974,24 +893,22 @@ AAUUTTHHOORRSS
chet@ins.CWRU.Edu
BBUUGG RREEPPOORRTTSS
- If you find a bug in rreeaaddlliinnee,, 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.
-
- 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
+ If you find a bug in rreeaaddlliinnee,, 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.
+
+ 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.
- Comments and bug reports concerning this manual page
- should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
+ Comments and bug reports concerning this manual page should be directed
+ to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
BBUUGGSS
It's too big and too slow.
-GNU Readline 4.3 2002 January 22 READLINE(3)
+GNU Readline 5.0 2004 January 28 READLINE(3)
diff --git a/doc/readline.3 b/doc/readline.3
index afd6ba2..560bbe7 100644
--- a/doc/readline.3
+++ b/doc/readline.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet@ins.CWRU.Edu
.\"
-.\" Last Change: Tue Jan 22 09:18:25 EST 2002
+.\" Last Change: Wed Jan 28 15:43:53 EST 2004
.\"
-.TH READLINE 3 "2002 January 22" "GNU Readline 4.3"
+.TH READLINE 3 "2004 January 28" "GNU Readline 5.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\-2002 by the Free Software Foundation, Inc.
-.if t Readline is Copyright \(co 1989\-2002 by the Free Software Foundation, Inc.
+.if n Readline is Copyright (C) 1989\-2004 by the Free Software Foundation, Inc.
+.if t Readline is Copyright \(co 1989\-2004 by the Free Software Foundation, Inc.
.SH DESCRIPTION
.LP
.B readline
@@ -465,6 +465,16 @@ set to
words which have more than one possible completion cause the
matches to be listed immediately instead of ringing the bell.
.TP
+.B show\-all\-if\-unmodified (Off)
+This alters the default behavior of the completion functions in
+a fashion similar to \fBshow\-all\-if\-ambiguous\fP.
+If set to
+.BR 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.
+.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
@@ -787,6 +797,11 @@ Word boundaries are the same as those used by \fBbackward\-word\fP.
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
.TP
+.B 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.
+.TP
.B delete\-horizontal\-space (M\-\e)
Delete all spaces and tabs around point.
.TP
@@ -868,7 +883,7 @@ with a single match from the list of possible completions.
Repeated execution of \fBmenu\-complete\fP 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 \Bbell\-style\fP)
+(subject to the setting of \fBbell\-style\fP)
and the original text is restored.
An argument of \fIn\fP moves \fIn\fP positions forward in the list
of matches; a negative argument may be used to move backward
@@ -979,7 +994,7 @@ of an \fIinputrc\fP file.
.TP
.B dump\-macros
Print all of the readline key sequences bound to macros and the
-strings they ouput. If a numeric argument is supplied,
+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 \fIinputrc\fP file.
.TP
diff --git a/doc/readline.dvi b/doc/readline.dvi
index 3c1c30f..c63a313 100644
--- a/doc/readline.dvi
+++ b/doc/readline.dvi
Binary files differ
diff --git a/doc/readline.html b/doc/readline.html
index 42485f5..fbbfad8 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 June, 27 2002 by texi2html 1.64 -->
+<!-- Created on July, 27 2004 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -27,21 +27,22 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>GNU Readline Library</H1></P><P>
This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
+in the consistency of user interface across discrete programs which
+provide a command line interface.
</P><P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC1">1. Command Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline User's Manual.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC23">2. Programming with GNU Readline</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline Programmer's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC49">Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC50">Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC49">A. Copying This Manual</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Copying this manual.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC52">Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC53">Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
and variables.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
@@ -56,7 +57,7 @@ to provide a command line interface.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<A NAME="Command Line Editing"></A>
@@ -90,7 +91,7 @@ command line editing interface.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.1 Introduction to Line Editing </H2>
@@ -149,7 +150,7 @@ some keyboards.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.2 Readline Interaction </H2>
@@ -188,7 +189,7 @@ regardless of the location of the cursor within the line.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.1 Readline Bare Essentials </H3>
@@ -250,7 +251,7 @@ than the character to the left of the cursor.)
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.2 Readline Movement Commands </H3>
@@ -294,7 +295,7 @@ operate on characters while meta keystrokes operate on words.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.3 Readline Killing Commands </H3>
@@ -379,7 +380,7 @@ the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.4 Readline Arguments </H3>
@@ -414,7 +415,7 @@ which will delete the next ten characters on the input line.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.5 Searching for Commands in the History </H3>
@@ -476,7 +477,7 @@ typed by the user or be part of the contents of the current line.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.3 Readline Init File </H2>
@@ -527,7 +528,7 @@ incorporating any changes that you might have made to it.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.3.1 Readline Init File Syntax </H3>
@@ -597,8 +598,8 @@ The default value is <SAMP>`off'</SAMP>.
<DT><CODE>completion-query-items</CODE>
<DD><A NAME="IDX7"></A>
The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
+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.
@@ -643,7 +644,7 @@ attempts word completion. The default is <SAMP>`off'</SAMP>.
<A NAME="IDX13"></A>
If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
-same location on each history line retrived with <CODE>previous-history</CODE>
+same location on each history line retrieved with <CODE>previous-history</CODE>
or <CODE>next-history</CODE>.
</P><P>
@@ -750,8 +751,20 @@ matches to be listed immediately instead of ringing the bell.
The default value is <SAMP>`off'</SAMP>.
<P>
-<DT><CODE>visible-stats</CODE>
+<DT><CODE>show-all-if-unmodified</CODE>
<DD><A NAME="IDX25"></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>,
+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 <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>visible-stats</CODE>
+<DD><A NAME="IDX26"></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>.
@@ -910,7 +923,7 @@ insert a single <SAMP>`\'</SAMP> into the line:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.3.2 Conditional Init Constructs </H3>
@@ -995,7 +1008,7 @@ For example, the following directive reads from <TT>`/etc/inputrc'</TT>:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.3.3 Sample Init File </H3>
@@ -1118,7 +1131,7 @@ $endif
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.4 Bindable Readline Commands </H2>
@@ -1159,60 +1172,60 @@ The text between the point and mark is referred to as the <EM>region</EM>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.1 Commands For Moving </H3>
<!--docid::SEC14::-->
<DL COMPACT>
-<A NAME="IDX26"></A>
+<A NAME="IDX27"></A>
<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX27"></A>
+<DD><A NAME="IDX28"></A>
Move to the start of the current line.
<P>
-<A NAME="IDX28"></A>
+<A NAME="IDX29"></A>
<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX29"></A>
+<DD><A NAME="IDX30"></A>
Move to the end of the line.
<P>
-<A NAME="IDX30"></A>
+<A NAME="IDX31"></A>
<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX31"></A>
+<DD><A NAME="IDX32"></A>
Move forward a character.
<P>
-<A NAME="IDX32"></A>
+<A NAME="IDX33"></A>
<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX33"></A>
+<DD><A NAME="IDX34"></A>
Move back a character.
<P>
-<A NAME="IDX34"></A>
+<A NAME="IDX35"></A>
<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX35"></A>
+<DD><A NAME="IDX36"></A>
Move forward to the end of the next word. Words are composed of
letters and digits.
<P>
-<A NAME="IDX36"></A>
+<A NAME="IDX37"></A>
<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX37"></A>
+<DD><A NAME="IDX38"></A>
Move back to the start of the current or previous word. Words are
composed of letters and digits.
<P>
-<A NAME="IDX38"></A>
+<A NAME="IDX39"></A>
<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX39"></A>
+<DD><A NAME="IDX40"></A>
Clear the screen and redraw the current line,
leaving the current line at the top of the screen.
<P>
-<A NAME="IDX40"></A>
+<A NAME="IDX41"></A>
<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX41"></A>
+<DD><A NAME="IDX42"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1230,7 +1243,7 @@ Refresh the current line. By default, this is unbound.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.2 Commands For Manipulating The History </H3>
@@ -1238,9 +1251,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX42"></A>
+<A NAME="IDX43"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX43"></A>
+<DD><A NAME="IDX44"></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
@@ -1249,81 +1262,81 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX44"></A>
+<A NAME="IDX45"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX45"></A>
+<DD><A NAME="IDX46"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX46"></A>
+<A NAME="IDX47"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX47"></A>
+<DD><A NAME="IDX48"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX48"></A>
+<A NAME="IDX49"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX49"></A>
+<DD><A NAME="IDX50"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX50"></A>
+<A NAME="IDX51"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX51"></A>
+<DD><A NAME="IDX52"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX52"></A>
+<A NAME="IDX53"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX53"></A>
+<DD><A NAME="IDX54"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX54"></A>
+<A NAME="IDX55"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX55"></A>
+<DD><A NAME="IDX56"></A>
Search forward starting at the current line and moving `down' through
the the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX56"></A>
+<A NAME="IDX57"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX57"></A>
+<DD><A NAME="IDX58"></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.
<P>
-<A NAME="IDX58"></A>
+<A NAME="IDX59"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX59"></A>
+<DD><A NAME="IDX60"></A>
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.
<P>
-<A NAME="IDX60"></A>
+<A NAME="IDX61"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX61"></A>
+<DD><A NAME="IDX62"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX62"></A>
+<A NAME="IDX63"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX63"></A>
+<DD><A NAME="IDX64"></A>
Search backward through the history for the string of characters
between the start of the current line and the point. This
is a non-incremental search. By default, this command is unbound.
<P>
-<A NAME="IDX64"></A>
+<A NAME="IDX65"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX65"></A>
+<DD><A NAME="IDX66"></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>,
@@ -1332,9 +1345,9 @@ in the previous command begin with word 0). A negative argument
inserts the <VAR>n</VAR>th word from the end of the previous command.
<P>
-<A NAME="IDX66"></A>
+<A NAME="IDX67"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX67"></A>
+<DD><A NAME="IDX68"></A>
Insert last argument to the previous command (the last word of the
previous history entry). With an
argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -1356,7 +1369,7 @@ list, inserting the last argument of each line in turn.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.3 Commands For Changing Text </H3>
@@ -1364,52 +1377,52 @@ list, inserting the last argument of each line in turn.
<P>
<DL COMPACT>
-<A NAME="IDX68"></A>
+<A NAME="IDX69"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX69"></A>
+<DD><A NAME="IDX70"></A>
Delete the character at point. If point is at the
beginning of the line, there are no characters in the line, and
the last character typed was not bound to <CODE>delete-char</CODE>, then
return EOF.
<P>
-<A NAME="IDX70"></A>
+<A NAME="IDX71"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX71"></A>
+<DD><A NAME="IDX72"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX72"></A>
+<A NAME="IDX73"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX73"></A>
+<DD><A NAME="IDX74"></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="IDX74"></A>
+<A NAME="IDX75"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX75"></A>
+<DD><A NAME="IDX76"></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="IDX76"></A>
+<A NAME="IDX77"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX77"></A>
+<DD><A NAME="IDX78"></A>
Insert a tab character.
<P>
-<A NAME="IDX78"></A>
+<A NAME="IDX79"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX79"></A>
+<DD><A NAME="IDX80"></A>
Insert yourself.
<P>
-<A NAME="IDX80"></A>
+<A NAME="IDX81"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX81"></A>
+<DD><A NAME="IDX82"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1418,39 +1431,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX82"></A>
+<A NAME="IDX83"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX83"></A>
+<DD><A NAME="IDX84"></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="IDX84"></A>
+<A NAME="IDX85"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX85"></A>
+<DD><A NAME="IDX86"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX86"></A>
+<A NAME="IDX87"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX87"></A>
+<DD><A NAME="IDX88"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX88"></A>
+<A NAME="IDX89"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX89"></A>
+<DD><A NAME="IDX90"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX90"></A>
+<A NAME="IDX91"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX91"></A>
+<DD><A NAME="IDX92"></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
@@ -1481,7 +1494,7 @@ By default, this command is unbound.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.4 Killing And Yanking </H3>
@@ -1490,98 +1503,106 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX92"></A>
+<A NAME="IDX93"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX93"></A>
+<DD><A NAME="IDX94"></A>
Kill the text from point to the end of the line.
<P>
-<A NAME="IDX94"></A>
+<A NAME="IDX95"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX95"></A>
+<DD><A NAME="IDX96"></A>
Kill backward to the beginning of the line.
<P>
-<A NAME="IDX96"></A>
+<A NAME="IDX97"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX97"></A>
+<DD><A NAME="IDX98"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX98"></A>
+<A NAME="IDX99"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX99"></A>
+<DD><A NAME="IDX100"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX100"></A>
+<A NAME="IDX101"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX101"></A>
+<DD><A NAME="IDX102"></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="IDX102"></A>
+<A NAME="IDX103"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX103"></A>
+<DD><A NAME="IDX104"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX104"></A>
+<A NAME="IDX105"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX105"></A>
+<DD><A NAME="IDX106"></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="IDX106"></A>
+<A NAME="IDX107"></A>
+<DT><CODE>unix-filename-rubout ()</CODE>
+<DD><A NAME="IDX108"></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="IDX109"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX107"></A>
+<DD><A NAME="IDX110"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX108"></A>
+<A NAME="IDX111"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX109"></A>
+<DD><A NAME="IDX112"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX110"></A>
+<A NAME="IDX113"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX111"></A>
+<DD><A NAME="IDX114"></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="IDX112"></A>
+<A NAME="IDX115"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX113"></A>
+<DD><A NAME="IDX116"></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="IDX114"></A>
+<A NAME="IDX117"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX115"></A>
+<DD><A NAME="IDX118"></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="IDX116"></A>
+<A NAME="IDX119"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX117"></A>
+<DD><A NAME="IDX120"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX118"></A>
+<A NAME="IDX121"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX119"></A>
+<DD><A NAME="IDX122"></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>
@@ -1598,23 +1619,23 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.5 Specifying Numeric Arguments </H3>
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX120"></A>
+<A NAME="IDX123"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
+<DD><A NAME="IDX124"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX122"></A>
+<A NAME="IDX125"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX123"></A>
+<DD><A NAME="IDX126"></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.
@@ -1641,7 +1662,7 @@ By default, this is not bound to a key.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.6 Letting Readline Type For You </H3>
@@ -1649,30 +1670,30 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX124"></A>
+<A NAME="IDX127"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX125"></A>
+<DD><A NAME="IDX128"></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="IDX126"></A>
+<A NAME="IDX129"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX127"></A>
+<DD><A NAME="IDX130"></A>
List the possible completions of the text before point.
<P>
-<A NAME="IDX128"></A>
+<A NAME="IDX131"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX129"></A>
+<DD><A NAME="IDX132"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX130"></A>
+<A NAME="IDX133"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX131"></A>
+<DD><A NAME="IDX134"></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
@@ -1687,9 +1708,9 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX132"></A>
+<A NAME="IDX135"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX133"></A>
+<DD><A NAME="IDX136"></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
@@ -1711,29 +1732,29 @@ This command is unbound by default.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.7 Keyboard Macros </H3>
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX134"></A>
+<A NAME="IDX137"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX135"></A>
+<DD><A NAME="IDX138"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX136"></A>
+<A NAME="IDX139"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX137"></A>
+<DD><A NAME="IDX140"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX138"></A>
+<A NAME="IDX141"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX139"></A>
+<DD><A NAME="IDX142"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
@@ -1752,94 +1773,94 @@ in the macro appear as if typed at the keyboard.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.4.8 Some Miscellaneous Commands </H3>
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX140"></A>
+<A NAME="IDX143"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX141"></A>
+<DD><A NAME="IDX144"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX142"></A>
+<A NAME="IDX145"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX143"></A>
+<DD><A NAME="IDX146"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX144"></A>
+<A NAME="IDX147"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX145"></A>
+<DD><A NAME="IDX148"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
-<A NAME="IDX146"></A>
+<A NAME="IDX149"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX147"></A>
+<DD><A NAME="IDX150"></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="IDX148"></A>
+<A NAME="IDX151"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX149"></A>
+<DD><A NAME="IDX152"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX150"></A>
+<A NAME="IDX153"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX151"></A>
+<DD><A NAME="IDX154"></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="IDX152"></A>
+<A NAME="IDX155"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX153"></A>
+<DD><A NAME="IDX156"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX154"></A>
+<A NAME="IDX157"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX155"></A>
+<DD><A NAME="IDX158"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX156"></A>
+<A NAME="IDX159"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX157"></A>
+<DD><A NAME="IDX160"></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="IDX158"></A>
+<A NAME="IDX161"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX159"></A>
+<DD><A NAME="IDX162"></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="IDX160"></A>
+<A NAME="IDX163"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX161"></A>
+<DD><A NAME="IDX164"></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="IDX162"></A>
+<A NAME="IDX165"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX163"></A>
+<DD><A NAME="IDX166"></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
@@ -1850,43 +1871,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX164"></A>
+<A NAME="IDX167"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX165"></A>
+<DD><A NAME="IDX168"></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="IDX166"></A>
+<A NAME="IDX169"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX167"></A>
+<DD><A NAME="IDX170"></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="IDX168"></A>
+<A NAME="IDX171"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX169"></A>
+<DD><A NAME="IDX172"></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="IDX170"></A>
+<A NAME="IDX173"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX171"></A>
+<DD><A NAME="IDX174"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX172"></A>
+<A NAME="IDX175"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX173"></A>
+<DD><A NAME="IDX176"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -1905,7 +1926,7 @@ editing mode.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.5 Readline vi Mode </H2>
@@ -1937,7 +1958,7 @@ in the consitency of user interface across discrete programs that need
to provide a command line interface.
</P><P>
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
+Copyright (C) 1988-2004 Free Software Foundation, Inc.
</P><P>
Permission is granted to make and distribute verbatim copies of
@@ -1965,10 +1986,10 @@ by the Foundation.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC24"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 2. Programming with GNU Readline </H1>
@@ -2004,10 +2025,10 @@ in your own programs, this section is for you.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.1 Basic Behavior </H2>
@@ -2021,8 +2042,8 @@ the simplest way possible, perhaps to replace calls in your code to
<CODE>gets()</CODE> or <CODE>fgets()</CODE>.
</P><P>
-<A NAME="IDX174"></A>
-<A NAME="IDX175"></A>
+<A NAME="IDX177"></A>
+<A NAME="IDX178"></A>
</P><P>
The function <CODE>readline()</CODE> prints a prompt <VAR>prompt</VAR>
@@ -2131,7 +2152,7 @@ custom completers (see section <A HREF="readline.html#SEC44">2.6 Custom Complete
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.2 Custom Functions </H2>
@@ -2181,7 +2202,7 @@ For Readline 4.2, for example, the value of
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.2.1 Readline Typedefs </H3>
@@ -2278,7 +2299,7 @@ The full list of function pointer types available is
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.2.2 Writing a New Function </H3>
@@ -2323,10 +2344,10 @@ and a non-zero value if some error occurs.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.3 Readline Variables </H2>
@@ -2336,7 +2357,7 @@ and a non-zero value if some error occurs.
These variables are available to function writers.
</P><P>
-<A NAME="IDX176"></A>
+<A NAME="IDX179"></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
@@ -2346,7 +2367,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX177"></A>
+<A NAME="IDX180"></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>
@@ -2354,7 +2375,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX178"></A>
+<A NAME="IDX181"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_end</B>
<DD>The number of characters present in <CODE>rl_line_buffer</CODE>. When
@@ -2363,7 +2384,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX179"></A>
+<A NAME="IDX182"></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
@@ -2371,7 +2392,7 @@ and point define a <EM>region</EM>.
</DL>
</P><P>
-<A NAME="IDX180"></A>
+<A NAME="IDX183"></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
@@ -2379,7 +2400,7 @@ line immediately.
</DL>
</P><P>
-<A NAME="IDX181"></A>
+<A NAME="IDX184"></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
@@ -2388,7 +2409,7 @@ than reading up to a character bound to <CODE>accept-line</CODE>.
</DL>
</P><P>
-<A NAME="IDX182"></A>
+<A NAME="IDX185"></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
@@ -2396,7 +2417,7 @@ way to stuff a single character into the input stream.
</DL>
</P><P>
-<A NAME="IDX183"></A>
+<A NAME="IDX186"></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;
@@ -2405,7 +2426,7 @@ they were called directly or by Readline's dispatching mechanism.
</DL>
</P><P>
-<A NAME="IDX184"></A>
+<A NAME="IDX187"></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
@@ -2415,7 +2436,7 @@ the beginning of the newly-blank line.
</DL>
</P><P>
-<A NAME="IDX185"></A>
+<A NAME="IDX188"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_prompt</B>
<DD>The prompt Readline uses. This is set from the argument to
@@ -2425,7 +2446,7 @@ be used to modify the prompt string after calling <CODE>readline()</CODE>.
</DL>
</P><P>
-<A NAME="IDX186"></A>
+<A NAME="IDX189"></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
@@ -2438,14 +2459,14 @@ never sets it.
</DL>
</P><P>
-<A NAME="IDX187"></A>
+<A NAME="IDX190"></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="IDX188"></A>
+<A NAME="IDX191"></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
@@ -2456,7 +2477,7 @@ value 0x0402.
</DL>
</P><P>
-<A NAME="IDX189"></A>
+<A NAME="IDX192"></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
@@ -2464,7 +2485,7 @@ emulation.
</DL>
</P><P>
-<A NAME="IDX190"></A>
+<A NAME="IDX193"></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,
@@ -2473,7 +2494,7 @@ the first time it is called.
</DL>
</P><P>
-<A NAME="IDX191"></A>
+<A NAME="IDX194"></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.
@@ -2482,7 +2503,7 @@ The value allows conditional parsing of the inputrc file
</DL>
</P><P>
-<A NAME="IDX192"></A>
+<A NAME="IDX195"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_instream</B>
<DD>The stdio stream from which Readline reads input.
@@ -2490,7 +2511,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdin</VAR>.
</DL>
</P><P>
-<A NAME="IDX193"></A>
+<A NAME="IDX196"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
<DD>The stdio stream to which Readline performs output.
@@ -2498,7 +2519,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdout</VAR>.
</DL>
</P><P>
-<A NAME="IDX194"></A>
+<A NAME="IDX197"></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
@@ -2507,7 +2528,7 @@ example.
</DL>
</P><P>
-<A NAME="IDX195"></A>
+<A NAME="IDX198"></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
@@ -2515,7 +2536,7 @@ before <CODE>readline</CODE> prints the first prompt.
</DL>
</P><P>
-<A NAME="IDX196"></A>
+<A NAME="IDX199"></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
@@ -2524,7 +2545,7 @@ starts reading input characters.
</DL>
</P><P>
-<A NAME="IDX197"></A>
+<A NAME="IDX200"></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
@@ -2534,7 +2555,7 @@ is no keyboard input.
</DL>
</P><P>
-<A NAME="IDX198"></A>
+<A NAME="IDX201"></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
@@ -2544,7 +2565,7 @@ to get a character from the input stream. By default, it is set to
</DL>
</P><P>
-<A NAME="IDX199"></A>
+<A NAME="IDX202"></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
@@ -2554,7 +2575,7 @@ redisplay function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A
</DL>
</P><P>
-<A NAME="IDX200"></A>
+<A NAME="IDX203"></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
@@ -2565,7 +2586,7 @@ By default, this is set to <CODE>rl_prep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX201"></A>
+<A NAME="IDX204"></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
@@ -2576,7 +2597,7 @@ By default, this is set to <CODE>rl_deprep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX202"></A>
+<A NAME="IDX205"></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
@@ -2584,7 +2605,7 @@ currently executing readline function was found.
</DL>
</P><P>
-<A NAME="IDX203"></A>
+<A NAME="IDX206"></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
@@ -2592,14 +2613,14 @@ last key binding occurred.
</DL>
</P><P>
-<A NAME="IDX204"></A>
+<A NAME="IDX207"></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="IDX205"></A>
+<A NAME="IDX208"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_readline_state</B>
<DD>A variable with bit values that encapsulate the current Readline state.
@@ -2655,7 +2676,7 @@ and is about to return the line to the caller.
</DL>
</P><P>
-<A NAME="IDX206"></A>
+<A NAME="IDX209"></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
@@ -2663,7 +2684,7 @@ the user. Only valid in a bindable command function.
</DL>
</P><P>
-<A NAME="IDX207"></A>
+<A NAME="IDX210"></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
@@ -2672,7 +2693,7 @@ command function.
</DL>
</P><P>
-<A NAME="IDX208"></A>
+<A NAME="IDX211"></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
@@ -2692,7 +2713,7 @@ means that vi mode is active.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.4 Readline Convenience Functions </H2>
@@ -2728,7 +2749,7 @@ means that vi mode is active.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.1 Naming a Function </H3>
@@ -2750,7 +2771,7 @@ programmer, should bind the functions you write to descriptive names as
well. Readline provides a function for doing that:
</P><P>
-<A NAME="IDX209"></A>
+<A NAME="IDX212"></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
@@ -2759,11 +2780,11 @@ the function that gets called. If <VAR>key</VAR> is not -1, then bind it to
</DL>
</P><P>
-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.
</P><P>
<A NAME="Keymaps"></A>
@@ -2777,7 +2798,7 @@ underlying functions described below.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.2 Selecting a Keymap </H3>
@@ -2790,7 +2811,7 @@ get run. You can make your own keymaps, copy existing keymaps, and tell
Readline which keymap to use.
</P><P>
-<A NAME="IDX210"></A>
+<A NAME="IDX213"></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
@@ -2799,14 +2820,14 @@ Readline which keymap to use.
</DL>
</P><P>
-<A NAME="IDX211"></A>
+<A NAME="IDX214"></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="IDX212"></A>
+<A NAME="IDX215"></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,
@@ -2815,7 +2836,7 @@ the Meta digits bound to produce numeric arguments.
</DL>
</P><P>
-<A NAME="IDX213"></A>
+<A NAME="IDX216"></A>
<DL>
<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I>
<DD>Free the storage associated with <VAR>keymap</VAR>.
@@ -2826,21 +2847,21 @@ Readline has several internal keymaps. These functions allow you to
change which keymap is active.
</P><P>
-<A NAME="IDX214"></A>
+<A NAME="IDX217"></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="IDX215"></A>
+<A NAME="IDX218"></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="IDX216"></A>
+<A NAME="IDX219"></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
@@ -2848,7 +2869,7 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="read
</DL>
</P><P>
-<A NAME="IDX217"></A>
+<A NAME="IDX220"></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
@@ -2867,7 +2888,7 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="read
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.3 Binding Keys </H3>
@@ -2893,7 +2914,7 @@ initialization function assigned to the <CODE>rl_startup_hook</CODE> variable
These functions manage key bindings.
</P><P>
-<A NAME="IDX218"></A>
+<A NAME="IDX221"></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.
@@ -2901,15 +2922,34 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX219"></A>
+<A NAME="IDX222"></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>. Returns non-zero in the case
-of an invalid <VAR>key</VAR>.
+<DD>Bind <VAR>key</VAR> to <VAR>function</VAR> in <VAR>map</VAR>.
+Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX220"></A>
+<A NAME="IDX223"></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
+currently active keymap.
+Returns non-zero in the case of an invalid <VAR>key</VAR> or if <VAR>key</VAR> is
+already bound.
+</DL>
+</P><P>
+
+<A NAME="IDX224"></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>.
+Returns non-zero in the case of an invalid <VAR>key</VAR> or if <VAR>key</VAR> is
+already bound.
+</DL>
+</P><P>
+
+<A NAME="IDX225"></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.
@@ -2917,7 +2957,7 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX221"></A>
+<A NAME="IDX226"></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>.
@@ -2925,30 +2965,67 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX222"></A>
+<A NAME="IDX227"></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="IDX223"></A>
+<A NAME="IDX228"></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="IDX224"></A>
+<A NAME="IDX229"></A>
<DL>
-<DT><U>Function:</U> int <B>rl_set_key</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
+<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
-<VAR>function</VAR>. This makes new keymaps as
-necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
+<VAR>function</VAR>, beginning in the current keymap.
+This makes new keymaps as necessary.
+The return value is non-zero if <VAR>keyseq</VAR> is invalid.
</DL>
</P><P>
-<A NAME="IDX225"></A>
+<A NAME="IDX230"></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
+<VAR>function</VAR>. This makes new keymaps as necessary.
+Initial bindings are performed in <VAR>map</VAR>.
+The return value is non-zero if <VAR>keyseq</VAR> is invalid.
+</DL>
+</P><P>
+
+<A NAME="IDX231"></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="IDX232"></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
+currently active keymap.
+Returns non-zero in the case of an invalid <VAR>keyseq</VAR> or if <VAR>keyseq</VAR> is
+already bound.
+</DL>
+</P><P>
+
+<A NAME="IDX233"></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>.
+Returns non-zero in the case of an invalid <VAR>keyseq</VAR> or if <VAR>keyseq</VAR> is
+already bound.
+</DL>
+</P><P>
+
+<A NAME="IDX234"></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
@@ -2959,7 +3036,7 @@ necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX226"></A>
+<A NAME="IDX235"></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
@@ -2968,7 +3045,7 @@ perform any key bindings and variable assignments found
</DL>
</P><P>
-<A NAME="IDX227"></A>
+<A NAME="IDX236"></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>
@@ -2987,7 +3064,7 @@ perform any key bindings and variable assignments found
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.4 Associating Function Names and Bindings </H3>
@@ -2999,14 +3076,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="IDX228"></A>
+<A NAME="IDX237"></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="IDX229"></A>
+<A NAME="IDX238"></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>.
@@ -3016,7 +3093,7 @@ it points to (one of <CODE>ISFUNC</CODE>, <CODE>ISKMAP</CODE>, or <CODE>ISMACR</
</DL>
</P><P>
-<A NAME="IDX230"></A>
+<A NAME="IDX239"></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
@@ -3024,7 +3101,7 @@ invoke <VAR>function</VAR> in the current keymap.
</DL>
</P><P>
-<A NAME="IDX231"></A>
+<A NAME="IDX240"></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
@@ -3032,7 +3109,7 @@ invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX232"></A>
+<A NAME="IDX241"></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
@@ -3042,14 +3119,14 @@ the list is formatted in such a way that it can be made part of an
</DL>
</P><P>
-<A NAME="IDX233"></A>
+<A NAME="IDX242"></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="IDX234"></A>
+<A NAME="IDX243"></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
@@ -3058,7 +3135,7 @@ should <CODE>free()</CODE> the array when you are done, but not the pointers.
</DL>
</P><P>
-<A NAME="IDX235"></A>
+<A NAME="IDX244"></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
@@ -3077,7 +3154,7 @@ should <CODE>free()</CODE> the array when you are done, but not the pointers.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.5 Allowing Undoing </H3>
@@ -3113,7 +3190,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="IDX236"></A>
+<A NAME="IDX245"></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
@@ -3123,7 +3200,7 @@ information usually comes from calls to <CODE>rl_insert_text()</CODE> and
</DL>
</P><P>
-<A NAME="IDX237"></A>
+<A NAME="IDX246"></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
@@ -3132,7 +3209,7 @@ for each call to <CODE>rl_begin_undo_group()</CODE>.
</DL>
</P><P>
-<A NAME="IDX238"></A>
+<A NAME="IDX247"></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
@@ -3140,14 +3217,14 @@ text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VA
</DL>
</P><P>
-<A NAME="IDX239"></A>
+<A NAME="IDX248"></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="IDX240"></A>
+<A NAME="IDX249"></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
@@ -3161,7 +3238,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="IDX241"></A>
+<A NAME="IDX250"></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
@@ -3181,14 +3258,14 @@ that text.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.6 Redisplay </H3>
<!--docid::SEC35::-->
<P>
-<A NAME="IDX242"></A>
+<A NAME="IDX251"></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
@@ -3196,7 +3273,7 @@ of <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX243"></A>
+<A NAME="IDX252"></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
@@ -3204,7 +3281,7 @@ Readline thinks the screen display is correct.
</DL>
</P><P>
-<A NAME="IDX244"></A>
+<A NAME="IDX253"></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,
@@ -3212,7 +3289,7 @@ usually after ouputting a newline.
</DL>
</P><P>
-<A NAME="IDX245"></A>
+<A NAME="IDX254"></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
@@ -3224,7 +3301,7 @@ It should be used after setting <VAR>rl_already_prompted</VAR>.
</DL>
</P><P>
-<A NAME="IDX246"></A>
+<A NAME="IDX255"></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
@@ -3232,14 +3309,14 @@ starting on a new line.
</DL>
</P><P>
-<A NAME="IDX247"></A>
+<A NAME="IDX256"></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="IDX248"></A>
+<A NAME="IDX257"></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>.
@@ -3250,7 +3327,7 @@ redisplay.
</DL>
</P><P>
-<A NAME="IDX249"></A>
+<A NAME="IDX258"></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>,
@@ -3261,14 +3338,14 @@ is also used to display numeric arguments and search strings.
</DL>
</P><P>
-<A NAME="IDX250"></A>
+<A NAME="IDX259"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_message</B> <I>(void)</I>
<DD>Clear the message in the echo area.
</DL>
</P><P>
-<A NAME="IDX251"></A>
+<A NAME="IDX260"></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
@@ -3276,7 +3353,7 @@ displaying a new message in the message area with <CODE>rl_message()</CODE>.
</DL>
</P><P>
-<A NAME="IDX252"></A>
+<A NAME="IDX261"></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
@@ -3284,7 +3361,7 @@ recent call to <CODE>rl_save_prompt</CODE>.
</DL>
</P><P>
-<A NAME="IDX253"></A>
+<A NAME="IDX262"></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
@@ -3294,10 +3371,15 @@ expand the primary prompt if the <CODE>rl_on_new_line_with_prompt()</CODE>
function or <CODE>rl_already_prompted</CODE> 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 <CODE>RL_PROMPT_START_IGNORE</CODE>
+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="IDX254"></A>
+<A NAME="IDX263"></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
@@ -3317,14 +3399,14 @@ to the result.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.7 Modifying Text </H3>
<!--docid::SEC36::-->
<P>
-<A NAME="IDX255"></A>
+<A NAME="IDX264"></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.
@@ -3332,7 +3414,7 @@ Returns the number of characters inserted.
</DL>
</P><P>
-<A NAME="IDX256"></A>
+<A NAME="IDX265"></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.
@@ -3340,7 +3422,7 @@ Returns the number of characters deleted.
</DL>
</P><P>
-<A NAME="IDX257"></A>
+<A NAME="IDX266"></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
@@ -3348,7 +3430,7 @@ the current line.
</DL>
</P><P>
-<A NAME="IDX258"></A>
+<A NAME="IDX267"></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
@@ -3360,7 +3442,7 @@ not a kill, a new kill ring slot is used.
</DL>
</P><P>
-<A NAME="IDX259"></A>
+<A NAME="IDX268"></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
@@ -3380,14 +3462,14 @@ by a key bound to a macro. Not especially useful; use
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.8 Character Input </H3>
<!--docid::SEC37::-->
<P>
-<A NAME="IDX260"></A>
+<A NAME="IDX269"></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.
@@ -3399,7 +3481,7 @@ the <CODE>rl_event_hook</CODE> variable.
</DL>
</P><P>
-<A NAME="IDX261"></A>
+<A NAME="IDX270"></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
@@ -3407,7 +3489,7 @@ be the keyboard.
</DL>
</P><P>
-<A NAME="IDX262"></A>
+<A NAME="IDX271"></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"
@@ -3418,7 +3500,7 @@ before Readline attempts to read characters from the terminal with
</DL>
</P><P>
-<A NAME="IDX263"></A>
+<A NAME="IDX272"></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>
@@ -3426,7 +3508,7 @@ is called. This sets <VAR>rl_pending_input</VAR>.
</DL>
</P><P>
-<A NAME="IDX264"></A>
+<A NAME="IDX273"></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
@@ -3435,7 +3517,7 @@ pending input has not already been read with <CODE>rl_read_key()</CODE>.
</DL>
</P><P>
-<A NAME="IDX265"></A>
+<A NAME="IDX274"></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
@@ -3456,14 +3538,14 @@ one-tenth of a second. Returns the old timeout value.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.9 Terminal Management </H3>
<!--docid::SEC38::-->
<P>
-<A NAME="IDX266"></A>
+<A NAME="IDX275"></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>
@@ -3473,7 +3555,7 @@ read eight-bit input.
</DL>
</P><P>
-<A NAME="IDX267"></A>
+<A NAME="IDX276"></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
@@ -3482,16 +3564,25 @@ the state in which it was before the most recent call to
</DL>
</P><P>
-<A NAME="IDX268"></A>
+<A NAME="IDX277"></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 displayed
-by <CODE>stty</CODE>) to their Readline equivalents. The bindings are performed
-in <VAR>kmap</VAR>.
+<DD>Read the operating system's terminal editing characters (as would be
+displayed by <CODE>stty</CODE>) to their Readline equivalents.
+The bindings are performed in <VAR>kmap</VAR>.
</DL>
</P><P>
-<A NAME="IDX269"></A>
+<A NAME="IDX278"></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
+that the terminal editing characters are bound to <CODE>rl_insert</CODE>.
+The bindings are performed in <VAR>kmap</VAR>.
+</DL>
+</P><P>
+
+<A NAME="IDX279"></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
@@ -3512,14 +3603,14 @@ environment variable is used.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.10 Utility Functions </H3>
<!--docid::SEC39::-->
<P>
-<A NAME="IDX270"></A>
+<A NAME="IDX280"></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>.
@@ -3529,7 +3620,7 @@ current line is cleared.
</DL>
</P><P>
-<A NAME="IDX271"></A>
+<A NAME="IDX281"></A>
<DL>
<DT><U>Function:</U> int <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>
@@ -3537,7 +3628,7 @@ characters, possibly reallocating it if necessary.
</DL>
</P><P>
-<A NAME="IDX272"></A>
+<A NAME="IDX282"></A>
<DL>
<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
<DD>Initialize or re-initialize Readline's internal state.
@@ -3546,21 +3637,21 @@ reading any input.
</DL>
</P><P>
-<A NAME="IDX273"></A>
+<A NAME="IDX283"></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="IDX274"></A>
+<A NAME="IDX284"></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="IDX275"></A>
+<A NAME="IDX285"></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
@@ -3577,28 +3668,28 @@ The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
Applications should refrain from using them.
</P><P>
-<A NAME="IDX276"></A>
+<A NAME="IDX286"></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="IDX277"></A>
+<A NAME="IDX287"></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="IDX278"></A>
+<A NAME="IDX288"></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="IDX279"></A>
+<A NAME="IDX289"></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
@@ -3606,7 +3697,7 @@ uppercase character.
</DL>
</P><P>
-<A NAME="IDX280"></A>
+<A NAME="IDX290"></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
@@ -3614,7 +3705,7 @@ lowercase character.
</DL>
</P><P>
-<A NAME="IDX281"></A>
+<A NAME="IDX291"></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.
@@ -3632,14 +3723,14 @@ lowercase character.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.11 Miscellaneous Functions </H3>
<!--docid::SEC40::-->
<P>
-<A NAME="IDX282"></A>
+<A NAME="IDX292"></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>.
@@ -3649,7 +3740,7 @@ use <CODE>rl_generic_bind()</CODE> instead.
</DL>
</P><P>
-<A NAME="IDX283"></A>
+<A NAME="IDX293"></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
@@ -3659,7 +3750,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX284"></A>
+<A NAME="IDX294"></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>.
@@ -3669,7 +3760,7 @@ file (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax<
</DL>
</P><P>
-<A NAME="IDX285"></A>
+<A NAME="IDX295"></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
@@ -3679,7 +3770,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX286"></A>
+<A NAME="IDX296"></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
@@ -3687,7 +3778,7 @@ a balancing character when <CODE>blink-matching-paren</CODE> has been enabled.
</DL>
</P><P>
-<A NAME="IDX287"></A>
+<A NAME="IDX297"></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>.
@@ -3710,7 +3801,7 @@ values for only those capabilities Readline uses.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.12 Alternate Interface </H3>
@@ -3725,7 +3816,7 @@ also be invoked as a `callback' function from an event loop. There
are functions available to make this easy.
</P><P>
-<A NAME="IDX288"></A>
+<A NAME="IDX298"></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
@@ -3735,7 +3826,7 @@ The function takes the text of the line as an argument.
</DL>
</P><P>
-<A NAME="IDX289"></A>
+<A NAME="IDX299"></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
@@ -3754,7 +3845,7 @@ the terminal settings are modified for Readline's use again.
</DL>
</P><P>
-<A NAME="IDX290"></A>
+<A NAME="IDX300"></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.
@@ -3777,7 +3868,7 @@ the program exits to reset the terminal settings.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.4.13 A Readline Example </H3>
@@ -3856,10 +3947,10 @@ invert_case_line (count, key)
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.5 Readline Signal Handling </H2>
@@ -3912,7 +4003,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="IDX291"></A>
+<A NAME="IDX301"></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
@@ -3924,7 +4015,7 @@ The default value of <CODE>rl_catch_signals</CODE> is 1.
</DL>
</P><P>
-<A NAME="IDX292"></A>
+<A NAME="IDX302"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
<DD>If this variable is non-zero, Readline will install a signal handler for
@@ -3942,7 +4033,7 @@ Readline provides convenience functions to do the necessary terminal
and internal state cleanup upon receipt of a signal.
</P><P>
-<A NAME="IDX293"></A>
+<A NAME="IDX303"></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
@@ -3952,7 +4043,7 @@ all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
</DL>
</P><P>
-<A NAME="IDX294"></A>
+<A NAME="IDX304"></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
@@ -3964,7 +4055,7 @@ current input line.
</DL>
</P><P>
-<A NAME="IDX295"></A>
+<A NAME="IDX305"></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
@@ -3979,14 +4070,14 @@ Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
is received.
</P><P>
-<A NAME="IDX296"></A>
+<A NAME="IDX306"></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="IDX297"></A>
+<A NAME="IDX307"></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
@@ -3999,7 +4090,7 @@ is still interested in the screen dimensions, Readline's idea of the screen
size may be queried.
</P><P>
-<A NAME="IDX298"></A>
+<A NAME="IDX308"></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
@@ -4010,7 +4101,7 @@ variables pointed to by the arguments.
The following functions install and remove Readline's signal handlers.
</P><P>
-<A NAME="IDX299"></A>
+<A NAME="IDX309"></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>,
@@ -4020,7 +4111,7 @@ The following functions install and remove Readline's signal handlers.
</DL>
</P><P>
-<A NAME="IDX300"></A>
+<A NAME="IDX310"></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
@@ -4036,10 +4127,10 @@ The following functions install and remove Readline's signal handlers.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC45"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.6 Custom Completers </H2>
@@ -4069,10 +4160,10 @@ cooperate to provide this service.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC46"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.6.1 How Completing Works </H3>
@@ -4126,12 +4217,14 @@ list of possible completions when <VAR>state</VAR> 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 <CODE>malloc()</CODE>; Readline
frees the strings when it has finished with them.
+Such a generator function is referred to as an
+<EM>application-specific completion function</EM>.
<P>
</OL>
<P>
-<A NAME="IDX301"></A>
+<A NAME="IDX311"></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
@@ -4140,7 +4233,7 @@ that does the initial simple matching selection algorithm (see
</DL>
</P><P>
-<A NAME="IDX302"></A>
+<A NAME="IDX312"></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
@@ -4148,6 +4241,9 @@ that does the initial simple matching selection algorithm (see
If the value of <CODE>rl_completion_entry_function</CODE> is
<CODE>NULL</CODE> then the default filename generator
function, <CODE>rl_filename_completion_function()</CODE>, is used.
+An <EM>application-specific completion function</EM> is a function whose
+address is assigned to <CODE>rl_completion_entry_function</CODE> and whose
+return values are used to generate possible completions.
</DL>
</P><P>
@@ -4159,10 +4255,10 @@ function, <CODE>rl_filename_completion_function()</CODE>, is used.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.6.2 Completion Functions </H3>
@@ -4173,7 +4269,7 @@ Here is the complete list of callable completion functions present in
Readline.
</P><P>
-<A NAME="IDX303"></A>
+<A NAME="IDX313"></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
@@ -4181,11 +4277,13 @@ with the completion. A value of <SAMP>`?'</SAMP> means list the possible
completions. <SAMP>`TAB'</SAMP> means do standard completion. <SAMP>`*'</SAMP> means
insert all of the possible completions. <SAMP>`!'</SAMP> means to display
all of the possible completions, if there is more than one, as well as
-performing partial completion.
+performing partial completion. <SAMP>`@'</SAMP> is similar to <SAMP>`!'</SAMP>, but
+possible completions are not listed if the possible completions share
+a common prefix.
</DL>
</P><P>
-<A NAME="IDX304"></A>
+<A NAME="IDX314"></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
@@ -4197,7 +4295,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX305"></A>
+<A NAME="IDX315"></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
@@ -4206,7 +4304,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX306"></A>
+<A NAME="IDX316"></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
@@ -4215,18 +4313,19 @@ This calls <CODE>rl_complete_internal()</CODE> with an argument of <SAMP>`*'</SA
</DL>
</P><P>
-<A NAME="IDX307"></A>
+<A NAME="IDX317"></A>
<DL>
<DT><U>Function:</U> int <B>rl_completion_mode</B> <I>(rl_command_func_t *cfunc)</I>
<DD>Returns the apppriate value to pass to <CODE>rl_complete_internal()</CODE>
depending on whether <VAR>cfunc</VAR> was called twice in succession and
-the value of the <CODE>show-all-if-ambiguous</CODE> variable.
+the values of the <CODE>show-all-if-ambiguous</CODE> and
+<CODE>show-all-if-unmodified</CODE> variables.
Application-specific completion functions may use this function to present
the same interface as <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX308"></A>
+<A NAME="IDX318"></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
@@ -4244,18 +4343,18 @@ when there are no more matches.
</DL>
</P><P>
-<A NAME="IDX309"></A>
+<A NAME="IDX319"></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.
<VAR>text</VAR> is a partial filename.
-The Bash source is a useful reference for writing custom
+The Bash source is a useful reference for writing application-specific
completion functions (the Bash completion functions call this and other
Readline functions).
</DL>
</P><P>
-<A NAME="IDX310"></A>
+<A NAME="IDX320"></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
@@ -4273,26 +4372,26 @@ for subsequent calls.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.6.3 Completion Variables </H3>
<!--docid::SEC47::-->
<P>
-<A NAME="IDX311"></A>
+<A NAME="IDX321"></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>.
-<CODE>NULL</CODE> means to use <CODE>rl_filename_completion_function()</CODE>, the default
-filename completer.
+<CODE>NULL</CODE> means to use <CODE>rl_filename_completion_function()</CODE>,
+the default filename completer.
</DL>
</P><P>
-<A NAME="IDX312"></A>
+<A NAME="IDX322"></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.
@@ -4309,7 +4408,7 @@ completion even if this function returns no matches.
</DL>
</P><P>
-<A NAME="IDX313"></A>
+<A NAME="IDX323"></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
@@ -4326,7 +4425,7 @@ to reset this character.
</DL>
</P><P>
-<A NAME="IDX314"></A>
+<A NAME="IDX324"></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
@@ -4339,7 +4438,7 @@ that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If
</DL>
</P><P>
-<A NAME="IDX315"></A>
+<A NAME="IDX325"></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
@@ -4352,7 +4451,7 @@ used to break words for the completer.
</DL>
</P><P>
-<A NAME="IDX316"></A>
+<A NAME="IDX326"></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
@@ -4365,7 +4464,7 @@ from the array must be freed.
</DL>
</P><P>
-<A NAME="IDX317"></A>
+<A NAME="IDX327"></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
@@ -4381,7 +4480,7 @@ It could be used to expand symbolic links or shell variables in pathnames.
</DL>
</P><P>
-<A NAME="IDX318"></A>
+<A NAME="IDX328"></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
@@ -4398,7 +4497,7 @@ function may be called from this hook.
</DL>
</P><P>
-<A NAME="IDX319"></A>
+<A NAME="IDX329"></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
@@ -4408,14 +4507,14 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX320"></A>
+<A NAME="IDX330"></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="IDX321"></A>
+<A NAME="IDX331"></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
@@ -4424,7 +4523,19 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX322"></A>
+<A NAME="IDX332"></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
+deciding where to separate words for word completion. It should return
+a character string like <CODE>rl_completer_word_break_characters</CODE> to be
+used to perform the current completion. The function may choose to set
+<CODE>rl_completer_word_break_characters</CODE> itself. If the function
+returns <CODE>NULL</CODE>, <CODE>rl_completer_word_break_characters</CODE> is used.
+</DL>
+</P><P>
+
+<A NAME="IDX333"></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.
@@ -4434,7 +4545,7 @@ unless they also appear within this list.
</DL>
</P><P>
-<A NAME="IDX323"></A>
+<A NAME="IDX334"></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
@@ -4442,7 +4553,7 @@ when they appear in a completed filename. The default is the null string.
</DL>
</P><P>
-<A NAME="IDX324"></A>
+<A NAME="IDX335"></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
@@ -4453,7 +4564,7 @@ shell variables and hostnames.
</DL>
</P><P>
-<A NAME="IDX325"></A>
+<A NAME="IDX336"></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
@@ -4462,44 +4573,75 @@ she wants to see them all. The default value is 100.
</DL>
</P><P>
-<A NAME="IDX326"></A>
+<A NAME="IDX337"></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
line, this character is appended to the inserted completion text. The
default is a space character (<SAMP>` '</SAMP>). Setting this to the null
character (<SAMP>`\0'</SAMP>) prevents anything being appended automatically.
-This can be changed in custom completion functions to
+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.
</DL>
</P><P>
-<A NAME="IDX327"></A>
+<A NAME="IDX338"></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
-matches at the end of the command line, as described above. It is
-set to 0 before any application-specific completion function is called.
+matches at the end of the command line, as described above.
+It is set to 0 before any application-specific completion function
+is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX328"></A>
+<A NAME="IDX339"></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
+characters in <VAR>rl_completer_quote_characters</VAR>, it sets this variable
+to the quoting character found.
+This is set before any application-specific completion function is called.
+</DL>
+</P><P>
+
+<A NAME="IDX340"></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
+performing completion on a quoted string.
+It is set to 0 before any application-specific completion function
+is called, and may only be changed within such a function.
+</DL>
+</P><P>
+
+<A NAME="IDX341"></A>
+<DL>
+<DT><U>Variable:</U> int <B>rl_completion_found_quote</B>
+<DD>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.
+</DL>
+</P><P>
+
+<A NAME="IDX342"></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
symbolic links to directory names, subject to the value of the
user-settable <VAR>mark-directories</VAR> variable.
-This variable exists so that application completion functions can
-override the user's global preference (set via the
+This variable exists so that application-specific completion functions
+can override the user's global preference (set via the
<VAR>mark-symlinked-directories</VAR> Readline variable) if appropriate.
This variable is set to the user's preference before any
-application completion function is called, so unless that function
-modifies the value, the user's preferences are honored.
+application-specific completion function is called, so unless that
+function modifies the value, the user's preferences are honored.
</DL>
</P><P>
-<A NAME="IDX329"></A>
+<A NAME="IDX343"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
<DD>If non-zero, then duplicates in the matches are removed.
@@ -4507,33 +4649,35 @@ The default is 1.
</DL>
</P><P>
-<A NAME="IDX330"></A>
+<A NAME="IDX344"></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
-filenames. This is <EM>always</EM> zero on entry, and can only be changed
-within a completion entry generator function. If it is set to a non-zero
-value, directory names have a slash appended and Readline attempts to
-quote completed filenames if they contain any characters in
-<CODE>rl_filename_quote_characters</CODE> and <CODE>rl_filename_quoting_desired</CODE>
-is set to a non-zero value.
+filenames. This is <EM>always</EM> 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 <CODE>rl_filename_quote_characters</CODE> and
+<CODE>rl_filename_quoting_desired</CODE> is set to a non-zero value.
</DL>
</P><P>
-<A NAME="IDX331"></A>
+<A NAME="IDX345"></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
double quotes (or an application-specific quoting mechanism) if the
completed filename contains any characters in
<CODE>rl_filename_quote_chars</CODE>. This is <EM>always</EM> non-zero
-on entry, and can only be changed within a completion entry generator
-function. The quoting is effected via a call to the function pointed to
+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 <CODE>rl_filename_quoting_function</CODE>.
</DL>
</P><P>
-<A NAME="IDX332"></A>
+<A NAME="IDX346"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
<DD>If an application-specific completion function assigned to
@@ -4544,16 +4688,19 @@ It should be set only by an application's completion function.
</DL>
</P><P>
-<A NAME="IDX333"></A>
+<A NAME="IDX347"></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
attempting; see the description of <CODE>rl_complete_internal()</CODE>
(see section <A HREF="readline.html#SEC46">2.6.2 Completion Functions</A>) 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 <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX334"></A>
+<A NAME="IDX348"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
<DD>If this variable is non-zero, completion is inhibited. The completion
@@ -4569,10 +4716,10 @@ character will be inserted as any other bound to <CODE>self-insert</CODE>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 2.6.4 A Short Completion Example </H3>
@@ -5023,26 +5170,591 @@ valid_argument (caller, arg)
}
</FONT></pre></td></tr></table></P><P>
-<A NAME="Concept Index"></A>
+<A NAME="Copying This Manual"></A>
<HR SIZE="6">
<A NAME="SEC49"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC50"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> A. Copying This Manual </H1>
+<!--docid::SEC49::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC50">A.1 GNU Free Documentation License</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">License for copying this manual.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="GNU Free Documentation License"></A>
+<HR SIZE="6">
+<A NAME="SEC50"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC51"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> A.1 GNU Free Documentation License </H2>
+<!--docid::SEC50::-->
+<P>
+
+<A NAME="IDX349"></A>
+<center>
+ Version 1.2, November 2002
+</center>
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=display><pre style="font-family: serif">Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table></P><P>
+
+<OL>
+<LI>
+PREAMBLE
+<P>
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document <EM>free</EM> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</P><P>
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</P><P>
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a 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 instruction or reference.
+</P><P>
+
+<LI>
+APPLICABILITY AND DEFINITIONS
+<P>
+
+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 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.
+</P><P>
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</P><P>
+
+A "Secondary Section" is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</P><P>
+
+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.
+</P><P>
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</P><P>
+
+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".
+</P><P>
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input
+format, <FONT SIZE="-1">SGML</FONT> or <FONT SIZE="-1">XML</FONT> using a publicly available
+<FONT SIZE="-1">DTD</FONT>, and standard-conforming simple <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> designed for human modification. Examples
+of transparent image formats include <FONT SIZE="-1">PNG</FONT>, <FONT SIZE="-1">XCF</FONT> and
+<FONT SIZE="-1">JPG</FONT>. Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <FONT SIZE="-1">SGML</FONT> or
+<FONT SIZE="-1">XML</FONT> for which the <FONT SIZE="-1">DTD</FONT> and/or processing tools are
+not generally available, and the machine-generated <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> produced by some word processors for
+output purposes only.
+</P><P>
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+</P><P>
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+</P><P>
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</P><P>
+
+<LI>
+VERBATIM COPYING
+<P>
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You 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.
+</P><P>
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</P><P>
+
+<LI>
+COPYING IN QUANTITY
+<P>
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all 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.
+</P><P>
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</P><P>
+
+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.
+</P><P>
+
+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.
+</P><P>
+
+<LI>
+MODIFICATIONS
+<P>
+
+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:
+</P><P>
+
+<OL>
+<LI>
+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.
+<P>
+
+<LI>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+<P>
+
+<LI>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+<P>
+
+<LI>
+Preserve all the copyright notices of the Document.
+<P>
+
+<LI>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+<P>
+
+<LI>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+<P>
+
+<LI>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+<P>
+
+<LI>
+Include an unaltered copy of this License.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+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 acknowledgements and/or
+dedications given therein.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+Delete any section Entitled "Endorsements". Such a section
+may not be included in the Modified Version.
+<P>
+
+<LI>
+Do not retitle any existing section to be Entitled "Endorsements" or
+to conflict in title with any Invariant Section.
+<P>
+
+<LI>
+Preserve any Warranty Disclaimers.
+</OL>
+<P>
+
+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.
+</P><P>
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</P><P>
+
+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.
+</P><P>
+
+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 assert or
+imply endorsement of any Modified Version.
+</P><P>
+
+<LI>
+COMBINING DOCUMENTS
+<P>
+
+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, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</P><P>
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</P><P>
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all
+sections Entitled "Endorsements."
+</P><P>
+
+<LI>
+COLLECTIONS OF DOCUMENTS
+<P>
+
+You may make a collection consisting of the Document and other 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.
+</P><P>
+
+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.
+</P><P>
+
+<LI>
+AGGREGATION WITH INDEPENDENT WORKS
+<P>
+
+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 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 an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</P><P>
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</P><P>
+
+<LI>
+TRANSLATION
+<P>
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</P><P>
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</P><P>
+
+<LI>
+TERMINATION
+<P>
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</P><P>
+
+<LI>
+FUTURE REVISIONS OF THIS LICENSE
+<P>
+
+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
+<A HREF="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</A>.
+</P><P>
+
+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.
+</OL>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC51"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC50"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC50"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> A.1.1 ADDENDUM: How to use this License for your documents </H3>
+<!--docid::SEC51::-->
+<P>
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre> Copyright (C) <VAR>year</VAR> <VAR>your name</VAR>.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre> with the Invariant Sections being <VAR>list their titles</VAR>, with
+ the Front-Cover Texts being <VAR>list</VAR>, and with the Back-Cover Texts
+ being <VAR>list</VAR>.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</P><P>
+
+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.
+</P><P>
+
+<A NAME="Concept Index"></A>
+<HR SIZE="6">
+<A NAME="SEC52"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC51"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC53"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> Concept Index </H1>
-<!--docid::SEC49::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#cp_C" style="text-decoration:none"><b>C</b></A>
+<!--docid::SEC52::-->
+<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#cp_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp;
+<A HREF="readline.html#cp_C" style="text-decoration:none"><b>C</b></A>
&nbsp;
<A HREF="readline.html#cp_E" style="text-decoration:none"><b>E</b></A>
&nbsp;
+<A HREF="readline.html#cp_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp;
<A HREF="readline.html#cp_I" style="text-decoration:none"><b>I</b></A>
&nbsp;
<A HREF="readline.html#cp_K" style="text-decoration:none"><b>K</b></A>
@@ -5059,12 +5771,18 @@ valid_argument (caller, arg)
<TABLE border=0>
<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="cp_A"></A>A</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC44">application-specific completion functions</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.6 Custom Completers</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_C"></A>C</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">command editing</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_E"></A>E</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">editing command lines</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_F"></A>F</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349">FDL, GNU Free Documentation License</A></TD><TD valign=top><A HREF="readline.html#SEC50">A.1 GNU Free Documentation License</A></TD></TR>
+<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_I"></A>I</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC9">initialization file, readline</A></TD><TD valign=top><A HREF="readline.html#SEC9">1.3 Readline Init File</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC3">interaction, readline</A></TD><TD valign=top><A HREF="readline.html#SEC3">1.2 Readline Interaction</A></TD></TR>
@@ -5077,7 +5795,7 @@ valid_argument (caller, arg)
<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#IDX175">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#IDX178">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>
@@ -5085,10 +5803,14 @@ valid_argument (caller, arg)
<TR><TH><A NAME="cp_Y"></A>Y</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX2">yanking text</A></TD><TD valign=top><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</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#cp_C" style="text-decoration:none"><b>C</b></A>
+</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#cp_A" style="text-decoration:none"><b>A</b></A>
+ &nbsp;
+<A HREF="readline.html#cp_C" style="text-decoration:none"><b>C</b></A>
&nbsp;
<A HREF="readline.html#cp_E" style="text-decoration:none"><b>E</b></A>
&nbsp;
+<A HREF="readline.html#cp_F" style="text-decoration:none"><b>F</b></A>
+ &nbsp;
<A HREF="readline.html#cp_I" style="text-decoration:none"><b>I</b></A>
&nbsp;
<A HREF="readline.html#cp_K" style="text-decoration:none"><b>K</b></A>
@@ -5105,20 +5827,20 @@ valid_argument (caller, arg)
<A NAME="Function and Variable Index"></A>
<HR SIZE="6">
-<A NAME="SEC50"></A>
+<A NAME="SEC53"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &lt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> Function and Variable Index </H1>
-<!--docid::SEC50::-->
+<!--docid::SEC53::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#fn__" style="text-decoration:none"><b>_</b></A>
&nbsp;
<BR>
@@ -5167,375 +5889,389 @@ valid_argument (caller, arg)
<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#IDX278"><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#IDX281"><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#IDX277"><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#IDX280"><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#IDX279"><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#IDX276"><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#IDX288"><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#IDX291"><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#IDX287"><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#IDX290"><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#IDX289"><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#IDX286"><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#IDX142"><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#IDX143"><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#IDX42"><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#IDX145"><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#IDX146"><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#IDX43"><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#IDX44"><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#IDX32"><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#IDX33"><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#IDX70"><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#IDX34"><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#IDX71"><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#IDX94"><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#IDX72"><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#IDX95"><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#IDX102"><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#IDX96"><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#IDX103"><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#IDX36"><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#IDX104"><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#IDX37"><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#IDX48"><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>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>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#IDX26"><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#IDX50"><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#IDX27"><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#IDX28"><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 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#IDX138"><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#IDX139"><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#IDX88"><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#IDX141"><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#IDX142"><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#IDX89"><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#IDX158"><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#IDX159"><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#IDX160"><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#IDX161"><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#IDX38"><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#IDX90"><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#IDX161"><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#IDX162"><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#IDX163"><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#IDX164"><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#IDX39"><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#IDX40"><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#IDX6">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#IDX124"><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#IDX125"><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#IDX127"><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#IDX128"><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#IDX7">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#IDX8">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#IDX112"><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#IDX113"><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#IDX114"><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#IDX115"><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#IDX110"><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#IDX111"><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#IDX115"><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#IDX116"><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#IDX117"><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#IDX118"><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#IDX113"><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#IDX114"><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#IDX68"><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#IDX69"><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#IDX132"><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#IDX133"><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#IDX106"><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#IDX107"><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#IDX120"><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#IDX121"><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#IDX70"><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#IDX135"><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#IDX136"><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#IDX109"><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#IDX110"><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#IDX123"><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#IDX124"><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#IDX9">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#IDX144"><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#IDX145"><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#IDX86"><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#IDX147"><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#IDX148"><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#IDX87"><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#IDX164"><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#IDX165"><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#IDX168"><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#IDX169"><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#IDX166"><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#IDX167"><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#IDX88"><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#IDX167"><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#IDX168"><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#IDX171"><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#IDX172"><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#IDX169"><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#IDX170"><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#IDX10">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#IDX170"><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#IDX171"><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#IDX173"><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#IDX174"><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#IDX11">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#IDX136"><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#IDX137"><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#IDX50"><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#IDX139"><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#IDX140"><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#IDX51"><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#IDX28"><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#IDX52"><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#IDX29"><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#IDX156"><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#IDX157"><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#IDX30"><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#IDX159"><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#IDX160"><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#IDX12">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#IDX72"><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#IDX73"><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#IDX30"><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#IDX74"><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#IDX31"><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#IDX54"><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#IDX32"><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#IDX55"><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#IDX34"><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#IDX56"><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#IDX35"><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#IDX36"><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#IDX13">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#IDX62"><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#IDX63"><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#IDX60"><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#IDX64"><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#IDX61"><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#IDX62"><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#IDX14">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#IDX15">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#IDX162"><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#IDX163"><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#IDX128"><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#IDX129"><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#IDX165"><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#IDX166"><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#IDX131"><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#IDX132"><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#IDX17">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#IDX18">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#IDX92"><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#IDX93"><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#IDX108"><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#IDX109"><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#IDX98"><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#IDX94"><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-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#IDX112"><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#IDX99"><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#IDX100"><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#IDX100"><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#IDX101"><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#IDX102"><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#IDX19">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#IDX20">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#IDX21">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#IDX130"><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#IDX131"><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#IDX133"><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#IDX134"><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#IDX16">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#IDX46"><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#IDX47"><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#IDX58"><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#IDX48"><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>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#IDX56"><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#IDX60"><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#IDX57"><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#IDX58"><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#IDX22">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#IDX90"><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#IDX91"><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#IDX92"><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#IDX23">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#IDX126"><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#IDX127"><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#IDX146"><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#IDX147"><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#IDX44"><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#IDX129"><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#IDX130"><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#IDX149"><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#IDX150"><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#IDX45"><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#IDX46"><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 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#IDX74"><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#IDX75"><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#IDX76"><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#IDX140"><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#IDX141"><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>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#IDX40"><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#IDX143"><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#IDX144"><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#IDX177"><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#IDX41"><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#IDX52"><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#IDX42"><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>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#IDX150"><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#IDX151"><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#IDX209"><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#IDX235"><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#IDX238"><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#IDX274"><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#IDX186">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#IDX312">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX320">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX236"><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#IDX218"><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#IDX219"><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#IDX203">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#IDX288"><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#IDX290"><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#IDX289"><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#IDX291">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX250"><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#IDX264"><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#IDX300"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX211"><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#IDX257"><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#IDX247"><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#IDX256"><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#IDX201">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#IDX267"><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#IDX273"><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#IDX317">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX213"><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#IDX183">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#IDX275"><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#IDX240"><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#IDX180">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#IDX208">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#IDX178">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#IDX237"><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#IDX184">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#IDX197">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#IDX263"><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#IDX202">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#IDX204">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#IDX253"><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#IDX206">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#IDX271"><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#IDX330">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX243"><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#IDX294"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX239"><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#IDX232"><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#IDX229"><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#IDX234"><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#IDX225"><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#IDX214"><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#IDX216"><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#IDX217"><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#IDX298"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><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#IDX261"><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#IDX198">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#IDX189">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#IDX329">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX316">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX272"><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#IDX306"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><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#IDX192">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#IDX230"><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#IDX231"><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#IDX258"><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#IDX194">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#IDX187">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#IDX176">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#IDX233"><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#IDX282"><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#IDX283"><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#IDX210"><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#IDX212"><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#IDX179">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#IDX249"><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#IDX241"><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#IDX228"><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#IDX181">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#IDX207">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#IDX244"><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#IDX245"><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#IDX193">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#IDX226"><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#IDX182">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#IDX177">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#IDX305"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX196">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#IDX200">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#IDX266"><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#IDX185">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#IDX259"><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#IDX227"><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#IDX260"><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#IDX191">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#IDX205">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#IDX188">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#IDX242"><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#IDX199">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#IDX270"><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#IDX295"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX246"><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#IDX269"><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#IDX296"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX252"><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#IDX251"><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#IDX224"><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#IDX265"><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#IDX215"><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#IDX286"><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#IDX254"><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#IDX297"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX299"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX248"><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#IDX324">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX195">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#IDX262"><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#IDX190">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#IDX268"><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#IDX223"><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#IDX222"><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#IDX220"><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#IDX221"><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#IDX310"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><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#IDX285"><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#IDX54"><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#IDX153"><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#IDX154"><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#IDX212"><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#IDX244"><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#IDX247"><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#IDX284"><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#IDX189">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#IDX322">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX346">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX329">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX245"><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#IDX221"><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#IDX223"><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#IDX224"><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#IDX222"><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#IDX229"><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#IDX232"><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#IDX233"><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#IDX230"><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#IDX206">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#IDX298"><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#IDX300"><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#IDX299"><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#IDX301">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX259"><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#IDX273"><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#IDX310"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX337">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX312">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX341">rl_completion_found_quote</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX342">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX336">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX339">rl_completion_quote_character</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX338">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX340">rl_completion_suppress_quote</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX347">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332">rl_completion_word_break_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX214"><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#IDX266"><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#IDX256"><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#IDX265"><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#IDX204">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#IDX276"><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#IDX283"><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#IDX327">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX216"><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#IDX186">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#IDX285"><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#IDX249"><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#IDX183">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#IDX211">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#IDX181">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#IDX246"><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#IDX187">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#IDX200">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#IDX272"><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#IDX205">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#IDX207">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#IDX262"><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#IDX209">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#IDX281"><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#IDX344">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX345">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX252"><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#IDX304"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX248"><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#IDX241"><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#IDX238"><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#IDX243"><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#IDX234"><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#IDX217"><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#IDX219"><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#IDX220"><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#IDX308"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><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#IDX270"><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#IDX201">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#IDX192">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#IDX343">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX348">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX282"><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#IDX316"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX264"><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#IDX195">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#IDX239"><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#IDX240"><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#IDX267"><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#IDX197">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#IDX190">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#IDX179">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#IDX242"><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#IDX292"><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#IDX293"><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#IDX213"><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#IDX215"><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#IDX182">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#IDX258"><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#IDX250"><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#IDX237"><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#IDX184">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#IDX210">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#IDX253"><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#IDX254"><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#IDX196">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#IDX235"><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#IDX185">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#IDX180">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#IDX315"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX199">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#IDX203">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#IDX275"><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#IDX188">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#IDX268"><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#IDX236"><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#IDX269"><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#IDX194">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#IDX208">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#IDX191">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#IDX251"><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#IDX202">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#IDX280"><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#IDX305"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><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#IDX279"><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#IDX306"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX261"><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#IDX260"><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#IDX231"><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#IDX274"><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#IDX218"><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#IDX296"><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#IDX263"><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#IDX307"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX257"><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#IDX335">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX198">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#IDX271"><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#IDX193">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#IDX277"><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#IDX278"><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#IDX228"><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#IDX227"><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#IDX225"><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#IDX226"><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#IDX320"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><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#IDX295"><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 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#IDX78"><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#IDX79"><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#IDX154"><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#IDX155"><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#IDX80"><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#IDX157"><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#IDX158"><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#IDX24">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#IDX134"><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#IDX135"><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#IDX25">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#IDX137"><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#IDX138"><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#IDX76"><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#IDX77"><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#IDX152"><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#IDX153"><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#IDX80"><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#IDX78"><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#IDX155"><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#IDX156"><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#IDX81"><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#IDX82"><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#IDX82"><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#IDX83"><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#IDX84"><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#IDX148"><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#IDX149"><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#IDX122"><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#IDX123"><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#IDX96"><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#IDX151"><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#IDX152"><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#IDX125"><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#IDX126"><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#IDX107"><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#IDX108"><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#IDX97"><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#IDX104"><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#IDX98"><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#IDX105"><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#IDX84"><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#IDX106"><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#IDX85"><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#IDX86"><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#IDX172"><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#IDX173"><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#IDX25">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#IDX175"><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#IDX176"><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#IDX26">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#IDX116"><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#IDX117"><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#IDX66"><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#IDX119"><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#IDX120"><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#IDX67"><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#IDX64"><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#IDX68"><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#IDX65"><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#IDX118"><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#IDX119"><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#IDX66"><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#IDX121"><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#IDX122"><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;
@@ -5587,7 +6323,7 @@ valid_argument (caller, arg)
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Table of Contents</H1>
@@ -5704,9 +6440,19 @@ valid_argument (caller, arg)
<BR>
</UL>
</UL>
-<A NAME="TOC49" HREF="readline.html#SEC49">Concept Index</A>
+<A NAME="TOC49" HREF="readline.html#SEC49">A. Copying This Manual</A>
<BR>
-<A NAME="TOC50" HREF="readline.html#SEC50">Function and Variable Index</A>
+<UL>
+<A NAME="TOC50" HREF="readline.html#SEC50">A.1 GNU Free Documentation License</A>
+<BR>
+<UL>
+<A NAME="TOC51" HREF="readline.html#SEC51">A.1.1 ADDENDUM: How to use this License for your documents</A>
+<BR>
+</UL>
+</UL>
+<A NAME="TOC52" HREF="readline.html#SEC52">Concept Index</A>
+<BR>
+<A NAME="TOC53" HREF="readline.html#SEC53">Function and Variable Index</A>
<BR>
</UL>
<HR SIZE=1>
@@ -5714,7 +6460,7 @@ valid_argument (caller, arg)
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Short Table of Contents</H1>
@@ -5723,9 +6469,11 @@ valid_argument (caller, arg)
<BR>
<A NAME="TOC23" HREF="readline.html#SEC23">2. Programming with GNU Readline</A>
<BR>
-<A NAME="TOC49" HREF="readline.html#SEC49">Concept Index</A>
+<A NAME="TOC49" HREF="readline.html#SEC49">A. Copying This Manual</A>
+<BR>
+<A NAME="TOC52" HREF="readline.html#SEC52">Concept Index</A>
<BR>
-<A NAME="TOC50" HREF="readline.html#SEC50">Function and Variable Index</A>
+<A NAME="TOC53" HREF="readline.html#SEC53">Function and Variable Index</A>
<BR>
</BLOCKQUOTE>
@@ -5734,11 +6482,11 @@ valid_argument (caller, arg)
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC52">Index</A>]</TD>
<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>June, 27 2002</I>
+This document was generated by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -5900,7 +6648,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
+by <I>Chet Ramey</I> on <I>July, 27 2004</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 57dbdfa..c07a0ca 100644
--- a/doc/readline.info
+++ b/doc/readline.info
@@ -1,30 +1,32 @@
-This is readline.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/rlman.texinfo.
+This is readline.info, produced by makeinfo version 4.5 from
+/usr/homes/chet/src/bash/readline-src/doc/rlman.texi.
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* Readline: (readline). The GNU readline library API
-END-INFO-DIR-ENTRY
+This manual describes the GNU Readline Library (version 5.0, 28 January
+2004), a library which aids in the consistency of user interface across
+discrete programs which provide a command line interface.
- This document describes the GNU Readline Library, a utility which
-aids in the consistency of user interface across discrete programs that
-need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
+ Copyright (C) 1988-2004 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
+manual provided the copyright notice and this permission notice are
preserved on all copies.
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.1 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, with the Front-Cover texts
+ being "A GNU Manual," and with the Back-Cover Texts as in (a)
+ below. A copy of the license is included in the section entitled
+ "GNU Free Documentation License."
+
+ (a) The FSF's Back-Cover Text is: "You have freedom to copy and
+ modify this GNU Manual, like GNU software. Copies published by
+ the Free Software Foundation raise funds for GNU development."
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* Readline: (readline). The GNU readline library API.
+END-INFO-DIR-ENTRY

File: readline.info, Node: Top, Next: Command Line Editing, Up: (dir)
@@ -33,13 +35,14 @@ GNU Readline Library
********************
This document describes the GNU Readline Library, a utility which
-aids in the consistency of user interface across discrete programs that
-need to provide a command line interface.
+aids in the consistency of user interface across discrete programs which
+provide a command line interface.
* Menu:
* Command Line Editing:: GNU Readline User's Manual.
* Programming with GNU Readline:: GNU Readline Programmer's Manual.
+* Copying This Manual:: Copying this manual.
* Concept Index:: Index of concepts described in this manual.
* Function and Variable Index:: Index of externally visible functions
and variables.
@@ -244,6 +247,7 @@ available to be yanked back later, when you are typing another line.
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.
@@ -394,12 +398,12 @@ Variable Settings
`completion-query-items'
The number of possible completions that determines when the
- user is asked whether he wants to see the list of
- possibilities. 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. The default limit is `100'.
+ 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. The default limit is `100'.
`convert-meta'
If set to `on', Readline will convert characters with the
@@ -428,7 +432,7 @@ Variable Settings
attempts word completion. The default is `off'.
If set to `on', the history code attempts to place point at
- the same location on each history line retrived with
+ the same location on each history line retrieved with
`previous-history' or `next-history'.
`horizontal-scroll-mode'
@@ -503,11 +507,21 @@ Variable Settings
completion cause the matches to be listed immediately instead
of ringing the bell. The default value is `off'.
+ `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
+ 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'.
+
`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
@@ -558,6 +572,7 @@ Key Bindings
`<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:
@@ -623,6 +638,7 @@ Key Bindings
the line:
"\C-x\\": "\\"
+

File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
@@ -852,6 +868,7 @@ Commands For Moving
`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
@@ -921,6 +938,7 @@ Commands For Manipulating The History
through the history list, inserting the last argument of each line
in turn.
+

File: readline.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -988,6 +1006,7 @@ Commands For Changing Text
By default, this command is unbound.
+

File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
@@ -1020,6 +1039,11 @@ Killing And Yanking
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
+`unix-filename-rubout ()'
+ Kill the word behind point, using white space and the slash
+ character as the word boundaries. The killed text is saved on the
+ kill-ring.
+
`delete-horizontal-space ()'
Delete all spaces and tabs around point. By default, this is
unbound.
@@ -1108,6 +1132,7 @@ Letting Readline Type For You
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
@@ -1125,6 +1150,7 @@ Keyboard Macros
Re-execute the last keyboard macro defined, by making the
characters in the macro appear as if typed at the keyboard.
+

File: readline.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
@@ -1212,6 +1238,7 @@ Some Miscellaneous Commands
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
@@ -1238,7 +1265,7 @@ the standard `vi' movement keys, move to previous history lines with
aiding in the consitency of user interface across discrete programs
that need to provide a command line interface.
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
+ Copyright (C) 1988-2004 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
@@ -1255,7 +1282,7 @@ versions, except that this permission notice may be stated in a
translation approved by the Foundation.

-File: readline.info, Node: Programming with GNU Readline, Next: Concept Index, Prev: Command Line Editing, Up: Top
+File: readline.info, Node: Programming with GNU Readline, Next: Copying This Manual, Prev: Command Line Editing, Up: Top
Programming with GNU Readline
*****************************
@@ -1468,6 +1495,7 @@ we may write
`typedef void rl_vcpfunc_t (char *);'
`typedef void rl_vcppfunc_t (char **);'
+

File: readline.info, Node: Function Writing, Prev: Readline Typedefs, Up: Custom Functions
@@ -1785,11 +1813,11 @@ Readline provides a function for doing that:
function that gets called. If KEY is not -1, then bind it to
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
@@ -1868,6 +1896,17 @@ initialization function assigned to the `rl_startup_hook' variable
Bind KEY to FUNCTION in MAP. Returns non-zero in the case of an
invalid KEY.
+ - Function: int rl_bind_key_if_unbound (int key, rl_command_func_t
+ *function)
+ Binds KEY to FUNCTION if it is not already bound in the currently
+ active keymap. Returns non-zero in the case of an invalid KEY or
+ if KEY is already bound.
+
+ - Function: int rl_bind_key_if_unbound_in_map (int key,
+ rl_command_func_t *function, Keymap map)
+ Binds KEY to FUNCTION if it is not already bound in MAP. Returns
+ non-zero in the case of an invalid KEY or if KEY is already bound.
+
- Function: int rl_unbind_key (int key)
Bind KEY to the null function in the currently active keymap.
Returns non-zero in case of error.
@@ -1884,11 +1923,35 @@ initialization function assigned to the `rl_startup_hook' variable
map)
Unbind all keys that are bound to COMMAND in MAP.
+ - 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: int rl_bind_keyseq_in_map (const char *keyseq,
+ rl_command_func_t *function, Keymap map)
+ Bind the key sequence represented by the string KEYSEQ to the
+ function FUNCTION. This makes new keymaps as necessary. Initial
+ bindings are performed in MAP. The return value is non-zero if
+ KEYSEQ is invalid.
+
- Function: int rl_set_key (const char *keyseq, rl_command_func_t
*function, Keymap map)
- Bind the key sequence represented by the string KEYSEQ to the
- function FUNCTION. This makes new keymaps as necessary. The
- initial keymap in which to do bindings is MAP.
+ Equivalent to `rl_bind_keyseq_in_map'.
+
+ - Function: int rl_bind_keyseq_if_unbound (const char *keyseq,
+ rl_command_func_t *function)
+ Binds KEYSEQ to FUNCTION if it is not already bound in the
+ currently active keymap. Returns non-zero in the case of an
+ invalid KEYSEQ or if KEYSEQ is already bound.
+
+ - Function: int rl_bind_keyseq_if_unbound_in_map (const char *keyseq,
+ rl_command_func_t *function, Keymap map)
+ Binds KEYSEQ to FUNCTION if it is not already bound in MAP.
+ Returns non-zero in the case of an invalid KEYSEQ or if KEYSEQ is
+ already bound.
- Function: int rl_generic_bind (int type, const char *keyseq, char
*data, Keymap map)
@@ -2082,7 +2145,12 @@ Redisplay
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.
+ 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
+ sequences in prompts.
- Function: int rl_set_prompt (const char *prompt)
Make Readline use PROMPT for subsequent redisplay. This calls
@@ -2181,6 +2249,11 @@ Terminal Management
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.
+
- 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
@@ -2578,7 +2651,9 @@ functions must do, and provides an example.
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.
+ 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)
@@ -2592,6 +2667,9 @@ functions must do, and provides an example.
`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.

File: readline.info, Node: Completion Functions, Next: Completion Variables, Prev: How Completing Works, Up: Custom Completers
@@ -2608,7 +2686,9 @@ Readline.
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.
+ 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
@@ -2630,9 +2710,9 @@ Readline.
- Function: int rl_completion_mode (rl_command_func_t *cfunc)
Returns the apppriate value to pass to `rl_complete_internal()'
depending on whether CFUNC was called twice in succession and the
- value of the `show-all-if-ambiguous' variable.
- Application-specific completion functions may use this function to
- present the same interface as `rl_complete()'.
+ 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: char ** rl_completion_matches (const char *text,
rl_compentry_func_t *entry_func)
@@ -2652,8 +2732,8 @@ Readline.
int state)
A generator function for filename completion in the general case.
TEXT is a partial filename. The Bash source is a useful reference
- for writing custom completion functions (the Bash completion
- functions call this and other Readline functions).
+ for writing application-specific completion functions (the Bash
+ completion functions call this and other Readline functions).
- Function: char * rl_username_completion_function (const char *text,
int state)
@@ -2765,6 +2845,15 @@ Completion Variables
`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
+ 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.
+
- 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
@@ -2793,26 +2882,46 @@ Completion Variables
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 custom completion functions
- to provide the "most sensible word separator character" according
- to an application-specific command line syntax specification.
+ 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.
- Variable: int rl_completion_suppress_append
If non-zero, RL_COMPLETION_APPEND_CHARACTER is not appended to
matches at the end of the command line, as described above. It is
set to 0 before any application-specific completion function is
+ called, and may only be changed within such a function.
+
+ - Variable: int rl_completion_quote_character
+ When Readline is completing quoted text, as delimited by one of the
+ characters in RL_COMPLETER_QUOTE_CHARACTERS, it sets this variable
+ to the quoting character found. This is set before any
+ application-specific completion function is called.
+
+ - Variable: int rl_completion_suppress_quote
+ If non-zero, Readline does not append a matching quote character
+ when performing completion on a quoted string. It is set to 0
+ before any application-specific completion function is called, and
+ 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.
- Variable: int rl_completion_mark_symlink_dirs
If non-zero, a slash will be appended to completed filenames that
are symbolic links to directory names, subject to the value of the
user-settable MARK-DIRECTORIES variable. This variable exists so
- that application completion functions can override the 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 completion function is called,
- so unless that function modifies the value, the user's preferences
- are honored.
+ that application-specific completion functions can override the
+ 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.
- Variable: int rl_ignore_completion_duplicates
If non-zero, then duplicates in the matches are removed. The
@@ -2820,21 +2929,23 @@ Completion Variables
- 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 on entry, and can only be changed
- within a completion entry generator function. If it is set to a
- non-zero value, 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.
+ 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.
- 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 on entry,
- and can only be changed within a completion entry generator
- function. The quoting is effected via a call to the function
- pointed to by `rl_filename_quoting_function'.
+ `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'.
- Variable: int rl_attempted_completion_over
If an application-specific completion function assigned to
@@ -2847,7 +2958,9 @@ Completion Variables
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
- list of characters.
+ 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()'.
- Variable: int rl_inhibit_completion
If this variable is non-zero, completion is inhibited. The
@@ -3302,15 +3415,458 @@ command names, line editing features, and access to the history list.
}

-File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU Readline, Up: Top
+File: readline.info, Node: Copying This Manual, Next: Concept Index, Prev: Programming with GNU Readline, Up: Top
+
+Copying This Manual
+*******************
+
+* Menu:
+
+* GNU Free Documentation License:: License for copying this manual.
+
+
+File: readline.info, Node: GNU Free Documentation License, Up: Copying This Manual
+
+GNU Free Documentation License
+==============================
+
+ Version 1.2, November 2002
+ Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ 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
+ 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
+ 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.
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ 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.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ 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".
+
+ 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.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ 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.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ 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.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ 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.
+
+ 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.
+
+ 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:
+
+ 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.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this 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.
+
+ 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.
+
+ 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
+ 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.
+
+ M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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.
+
+ You may add a section Entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ 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.
+
+ 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
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ 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,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ "History" in the various original documents, forming one section
+ Entitled "History"; likewise combine any sections Entitled
+ "Acknowledgements", and any sections Entitled "Dedications". You
+ must delete all sections Entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ 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.
+
+ 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.
+
+ 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
+ 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 an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided for under this License. Any other
+ attempt to copy, modify, sublicense or distribute the Document is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 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/'.
+
+ 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.
+
+ADDENDUM: How to use this License for your documents
+----------------------------------------------------
+
+ To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+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
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+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.
+
+
+File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: Copying This Manual, Up: Top
Concept Index
*************
* Menu:
+* application-specific completion functions: Custom Completers.
* command editing: Readline Bare Essentials.
* editing command lines: Readline Bare Essentials.
+* FDL, GNU Free Documentation License: GNU Free Documentation License.
* initialization file, readline: Readline Init File.
* interaction, readline: Readline Interaction.
* kill ring: Readline Killing Commands.
@@ -3421,7 +3977,13 @@ Function and Variable Index
* rl_basic_word_break_characters: Completion Variables.
* rl_begin_undo_group: Allowing Undoing.
* rl_bind_key: Binding Keys.
+* rl_bind_key_if_unbound: Binding Keys.
+* rl_bind_key_if_unbound_in_map: Binding Keys.
* rl_bind_key_in_map: Binding Keys.
+* rl_bind_keyseq: Binding Keys.
+* rl_bind_keyseq_if_unbound: Binding Keys.
+* rl_bind_keyseq_if_unbound_in_map: Binding Keys.
+* rl_bind_keyseq_in_map: Binding Keys.
* rl_binding_keymap: Readline Variables.
* rl_callback_handler_install: Alternate Interface.
* rl_callback_handler_remove: Alternate Interface.
@@ -3442,12 +4004,16 @@ Function and Variable Index
* rl_completion_display_matches_hook: Completion Variables.
* rl_completion_entry_function <1>: Completion Variables.
* rl_completion_entry_function: How Completing Works.
+* rl_completion_found_quote: Completion Variables.
* rl_completion_mark_symlink_dirs: Completion Variables.
* rl_completion_matches: Completion Functions.
* rl_completion_mode: Completion Functions.
* rl_completion_query_items: Completion Variables.
+* rl_completion_quote_character: Completion Variables.
* rl_completion_suppress_append: Completion Variables.
+* rl_completion_suppress_quote: Completion Variables.
* rl_completion_type: Completion Variables.
+* rl_completion_word_break_hook: Completion Variables.
* rl_copy_keymap: Keymaps.
* rl_copy_text: Modifying Text.
* rl_crlf: Redisplay.
@@ -3556,6 +4122,7 @@ Function and Variable Index
* rl_stuff_char: Character Input.
* rl_terminal_name: Readline Variables.
* rl_tty_set_default_bindings: Terminal Management.
+* rl_tty_unset_default_bindings: Terminal Management.
* rl_unbind_command_in_map: Binding Keys.
* rl_unbind_function_in_map: Binding Keys.
* rl_unbind_key: Binding Keys.
@@ -3566,11 +4133,13 @@ Function and Variable Index
* self-insert (a, b, A, 1, !, ...): Commands For Text.
* set-mark (C-@): Miscellaneous Commands.
* show-all-if-ambiguous: Readline Init File Syntax.
+* show-all-if-unmodified: Readline Init File Syntax.
* start-kbd-macro (C-x (): Keyboard Macros.
* transpose-chars (C-t): Commands For Text.
* transpose-words (M-t): Commands For Text.
* undo (C-_ or C-x C-u): Miscellaneous Commands.
* universal-argument (): Numeric Arguments.
+* unix-filename-rubout (): Commands For Killing.
* unix-line-discard (C-u): Commands For Killing.
* unix-word-rubout (C-w): Commands For Killing.
* upcase-word (M-u): Commands For Text.
@@ -3583,56 +4152,58 @@ Function and Variable Index

Tag Table:
-Node: Top1164
-Node: Command Line Editing1763
-Node: Introduction and Notation2414
-Node: Readline Interaction4032
-Node: Readline Bare Essentials5219
-Node: Readline Movement Commands7000
-Node: Readline Killing Commands7957
-Node: Readline Arguments9866
-Node: Searching10902
-Node: Readline Init File13045
-Node: Readline Init File Syntax14106
-Node: Conditional Init Constructs24989
-Node: Sample Init File27514
-Node: Bindable Readline Commands30698
-Node: Commands For Moving31748
-Node: Commands For History32597
-Node: Commands For Text35455
-Node: Commands For Killing38169
-Node: Numeric Arguments40120
-Node: Commands For Completion41248
-Node: Keyboard Macros42780
-Node: Miscellaneous Commands43339
-Node: Readline vi Mode46688
-Node: Programming with GNU Readline48506
-Node: Basic Behavior49474
-Node: Custom Functions52904
-Node: Readline Typedefs54382
-Node: Function Writing56011
-Node: Readline Variables57219
-Node: Readline Convenience Functions66642
-Node: Function Naming67624
-Node: Keymaps68876
-Node: Binding Keys70632
-Node: Associating Function Names and Bindings73558
-Node: Allowing Undoing75803
-Node: Redisplay78338
-Node: Modifying Text81409
-Node: Character Input82638
-Node: Terminal Management84418
-Node: Utility Functions85593
-Node: Miscellaneous Functions87932
-Node: Alternate Interface89996
-Node: A Readline Example92141
-Node: Readline Signal Handling94078
-Node: Custom Completers99681
-Node: How Completing Works100396
-Node: Completion Functions103394
-Node: Completion Variables106778
-Node: A Short Completion Example117049
-Node: Concept Index129602
-Node: Function and Variable Index130424
+Node: Top1336
+Node: Command Line Editing1977
+Node: Introduction and Notation2628
+Node: Readline Interaction4246
+Node: Readline Bare Essentials5433
+Node: Readline Movement Commands7214
+Node: Readline Killing Commands8171
+Node: Readline Arguments10081
+Node: Searching11117
+Node: Readline Init File13260
+Node: Readline Init File Syntax14321
+Node: Conditional Init Constructs25684
+Node: Sample Init File28209
+Node: Bindable Readline Commands31393
+Node: Commands For Moving32443
+Node: Commands For History33293
+Node: Commands For Text36152
+Node: Commands For Killing38867
+Node: Numeric Arguments40998
+Node: Commands For Completion42126
+Node: Keyboard Macros43659
+Node: Miscellaneous Commands44219
+Node: Readline vi Mode47569
+Node: Programming with GNU Readline49387
+Node: Basic Behavior50361
+Node: Custom Functions53791
+Node: Readline Typedefs55269
+Node: Function Writing56899
+Node: Readline Variables58107
+Node: Readline Convenience Functions67530
+Node: Function Naming68512
+Node: Keymaps69764
+Node: Binding Keys71520
+Node: Associating Function Names and Bindings76042
+Node: Allowing Undoing78287
+Node: Redisplay80822
+Node: Modifying Text84256
+Node: Character Input85485
+Node: Terminal Management87265
+Node: Utility Functions88684
+Node: Miscellaneous Functions91023
+Node: Alternate Interface93087
+Node: A Readline Example95232
+Node: Readline Signal Handling97169
+Node: Custom Completers102772
+Node: How Completing Works103487
+Node: Completion Functions106790
+Node: Completion Variables110345
+Node: A Short Completion Example122415
+Node: Copying This Manual134968
+Node: GNU Free Documentation License135208
+Node: Concept Index157602
+Node: Function and Variable Index158551

End Tag Table
diff --git a/doc/readline.pdf b/doc/readline.pdf
new file mode 100644
index 0000000..7fc2dfe
--- /dev/null
+++ b/doc/readline.pdf
Binary files differ
diff --git a/doc/readline.ps b/doc/readline.ps
index 21ca2ca..f27c404 100644
--- a/doc/readline.ps
+++ b/doc/readline.ps
@@ -1,14 +1,14 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: readline.dvi
-%%Pages: 66
+%%Pages: 74
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o readline.ps readline.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
+%DVIPSCommandLine: dvips -D 600 -t letter -o readline.ps readline.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.07.27:0931
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -67,1062 +67,2257 @@ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi)
+TeXDict begin 40258431 52099146 1000 600 600 (readline.dvi)
@start
-%DVIPSBitmapFont: Fa cmbxti10 14.4 1
-/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmsl9 9 1
-/Fb 1 121 df<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F1201133812
-02487EEA081E123838FC3FC013107F8F14>120 D E
+%DVIPSBitmapFont: Fa cmti9 9 1
+/Fa 1 47 df<121C127F12FFA412FE12380808778718>46 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmsltt10 9 4
-/Fc 4 78 df<EAFFFC13FE13FC0F037C8C14>45 D<EA01E0EA07F8EA0E3CEA1C1CEA180E
-12381270A312E0A4131CA31338A21370EA70E01271EA3F80EA1F000F177C9614>48
-D<134013E0EA01C01203120F123D12111201EA0380A6EA0700A6120EEAFFE0A20B177B96
-14>I<381F81F813C1380FC3E0EA0EC213C6A213CE13CC381CCDC013DD13D9A213F1A238
-38E3801303A53870070038FC0FC0A215177F9614>77 D E
+%DVIPSBitmapFont: Fb cmr9 9 45
+/Fb 45 123 df<EC1FE0ECFFFC903803F01E90390FC00780EB1F8090393F000FC0017E13
+1F5BA2485AED0F8092C7FCA9ED0FC0B7FCA33901F8001F150FB3A6486CEB1FE0267FFFC1
+B5FCA328357FB42B>12 D<EC1FF891B512C0903803F00F90380FC01FEB1F80EB3F00137E
+5B150F485AACB7FCA33901F8000FB3A7486CEB1FE0267FFFE3B5FCA328357FB42B>I<12
+3C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C121C5A5A12600917
+7A8715>44 D<B512F0A514057F921A>I<EB0FE0EB7FFCEBF83E3903E00F803907C007C0
+EB8003000F14E0391F0001F0A24814F8A2003E1300007E14FCA500FE14FEB2007E14FCA5
+6CEB01F8A36C14F0A2390F8003E03907C007C0A23903E00F803900F83E00EB7FFCEB0FE0
+1F347DB126>48 D<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280
+A319327AB126>I<EB3FC0EBFFF0000313FC380F80FF391E007F80001CEB3FC048EB1FE0
+48130F15F00060130712FC6C14F87E1403A3007E1307123CC7FC15F0A2140F15E0EC1FC0
+A2EC3F801500147E5C495A5C495A495A495A49C7FC133E133C4913185B485A4848133048
+5A48C7FC001C1470001FB512F05A5AB612E0A31D327CB126>I<EB1FE0EBFFFC4813FF39
+07E03F80390F001FC0001EEB0FE0001CEB07F0123F018013F8140313C01380A2381F0007
+C7FC15F0A2EC0FE015C0141FEC3F80EC7E00EB01F8EB7FE014FCEB003FEC1FC0EC0FE0EC
+07F015F8140315FC140115FEA3127EB4FCA415FC48130312780070EB07F86C14F0003C13
+0F001FEB1FE0390FE03F800003B51200C613FCEB1FE01F347DB126>I<EC01C0A2140314
+07A2140F141FA2143F147F146F14CF1301EB038F140F1307130E130C131C133813301370
+13E013C0EA0180120313001206120E120C5A123812305A12E0B71280A3C7380FC000A94A
+7E0107B51280A321337EB226>I<000C14C0380FC00F90B5128015005C5C14F014C0D80C
+18C7FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E000CEB07E0A2
+C713F01403A215F8A41218127E12FEA315F0140712F8006014E01270EC0FC06C131F003C
+14806CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<14FE903807FF80
+011F13E090383F00F0017C13703901F801F8EBF003EA03E01207EA0FC0EC01F04848C7FC
+A248C8FCA35A127EEB07F0EB1FFC38FE381F9038700F809038E007C039FFC003E0018013
+F0EC01F8130015FC1400A24814FEA5127EA4127F6C14FCA26C1301018013F8000F14F0EB
+C0030007EB07E03903E00FC03901F81F806CB51200EB3FFCEB0FE01F347DB126>I<1230
+123C003FB6FCA34814FEA215FC0070C7123800601430157015E04814C01401EC0380C7EA
+07001406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7FCA25BA55BA9
+131C20347CB126>I<EB0FE0EB7FFC90B5FC3903F01F803907C007C0390F0003E0000EEB
+01F0001E1300001C14F8003C1478A3123EA2003F14F86D13F0EBC001D81FF013E09038F8
+03C0390FFE07803907FF0F006C13DE6C13F87EEB3FFE8001F713C0D803E313E0D8078013
+F0390F007FF8001E131F003EEB07FC003C1303481301EC007E12F848143EA2151EA37E15
+3C1278007C14787E6C14F0390F8003E03907F01FC00001B5120038007FFCEB1FE01F347D
+B126>I<EB0FE0EB7FF8EBFFFE3803F83F3907E00F80390FC007C0D81F8013E0EC03F0EA
+3F0048EB01F8127EA200FE14FC1400A415FEA5007E1301A2127F7E1403EA1F80000F1307
+3807C00E3803E01C3801F03838007FF090381FC0FC90C7FC1401A215F8A215F01403001F
+14E0383F800715C0140FEC1F809038003F00001C137E381F01FC380FFFF0000313C0C690
+C7FC1F347DB126>I<B77E16F016FE3A01FE0001FF00009138003FC0EE0FE0707E707E70
+7E707E177E177FEF3F80A2EF1FC0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F1800
+5F17FE5F4C5AEE07F04C5AEE3FC000014AB45AB748C7FC16F8168034337EB23B>68
+D<B81280A3D803FCC7FC0001151FEE07C01603A21601A21600A41760150CA31700A2151C
+A2153C15FC90B5FCA3EBFC00153C151CA2150CA592C8FCAB487EB512FEA32B337DB232>
+70 D<DA03FE130C91393FFF801C91B512E0903A03FE01F83C903A0FF0003C7CD91FC0EB
+0EFCD97F80130701FEC7120348481401000315005B4848157C485A173C485A171C123F5B
+007F160CA390C9FC4893C7FCAA0303B512E07E7F92390003FE00705A123F7F121FA26C7E
+7F12076C7E7F6C6C14036C7E6D6C1307D91FC0EB0E7CD90FF0EB1C3CD903FEEBF81C0100
+B5EAF00C023F01C0C7FCDA03FEC8FC33377CB43C>I<B512FEA3D803FEC9FC6C5AB3A9EE
+0180A416031700A45EA25E5E5E5E16FE00031407B7FCA329337DB230>76
+D<D8FFFE91381FFFF87F80C6030013006E143CD9DFE01418EBCFF0A2EBC7F8EBC3FCA2EB
+C1FEEBC0FF6E7EA26E7E6E7EA26E7E6E7E6E7EA26E7E6E7EA2ED7F80ED3FC0ED1FE0A2ED
+0FF0ED07F8A2ED03FCED01FEED00FFA2EE7F98EE3FD8A2EE1FF8160F1607A216031601A2
+486C1400D807F81578B500C01438A2171835337EB23A>78 D<B500FE90381FFFF8A30001
+90C813006C48153C1718B3AF1738017F1530A217706D6C1460011F15E06E495A010F1403
+6D6C495A6D6C49C7FCD901FC131E6DB413FC91383FFFF0020F13C0020190C8FC35357EB2
+3A>85 D<EB7F803803FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FC
+A4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C13
+1F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE003C22237DA126>97
+D<EA03F012FFA312071203AEEC3F80ECFFE09038F3C0F89038F7007E01FE7F49EB1F8049
+EB0FC05BED07E016F0A2150316F8AA16F0150716E0A2ED0FC07F6DEB1F8001ECEB3F0001
+CF137C90388381F8903801FFE0C76CC7FC25357EB32B>I<EB07F8EB3FFF9038FC07C039
+01F000E03903E003F03807C007120FEA1F80123F90380003E04890C7FCA2127E12FEAA12
+7FA26C14187F001F14386D1330000F14706C6C13E03903F001C03900FC0F8090383FFE00
+EB07F01D237EA122>I<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF39
+07E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C
+4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>I<EB0FE0EB7FFCEB
+F83F3903F00F80D807E013C0390FC007E0381F800315F0EA3F0014014814F8127EA212FE
+A2B6FCA248C8FCA5127E127FA26C1418A26C6C1338000F14306D13706C6C13E03901F003
+C03900FC0F00EB3FFEEB07F01D237EA122>I<EB01FCEB07FF90381F078090383E0FC0EB
+7C1F13FCEA01F8A20003EB070049C7FCACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A
+357FB417>I<151F90391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F8380
+9039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380E
+FFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F000100
+3EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6
+B51280D91FFCC7FC22337EA126>I<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0
+FC9038F3807C9038F7007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B
+>I<EA0780EA0FC0EA1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0
+B5FCA310337EB215>I<EA03F012FFA312071203AF913803FFE0A36E1300EC00F8EC01E0
+5D4A5A020FC7FC141C5C5C14F0EBF3F8EBF7FC13FEEBFC7EEBF87F496C7E141F6E7E8114
+076E7E8114016E7E81486CEBFF80B500C313F0A324347EB329>107
+D<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>I<2703F01FE013FF00FF
+90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803FE147049
+6D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041>I<3903F0
+1FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3486CEB7F
+80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F803901F007C03903C001E000
+078048486C7E48C7127CA248147E003E143E007E143FA300FE1580A8007E1500A36C147E
+A26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93FFEC7FCEB07F021237EA1
+26>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F804914C049
+130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F80160001FF13FC
+9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<903807F0
+0390383FFC07EBFC0F3901F8038F3807E001000F14DF48486CB4FC497F123F90C77E5AA2
+5A5AA9127FA36C6C5B121F6D5B000F5B3907E003BF3903F0073F3800F81EEB3FF8EB0FE0
+90C7FCAAED7F8091380FFFFCA326307DA029>I<3803E07C38FFE1FF9038E38F809038E7
+1FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>I<EBFF06
+000713CE381F00FE003C133E48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFF
+C014F0000F7F6C7FC67FEB0FFF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E
+6C5B38F7807838E1FFE038C07F8019237EA11E>I<1330A51370A313F0A21201A2120312
+07381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0
+182F7FAD1E>I<D803F0133F00FFEB0FFFA30007EB007F000380B35DA35D12016D481380
+0000903803BFFC90387E073FEB1FFED907F8130026227EA02B>I<B5EBFFF0A3D80FF0EB
+3F800007EC1F000003140E150C6D131C00011418A26C6C5BA26D1370017E1360137F6D5B
+A290381F8180A214C3010F90C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA2146024217E9F
+29>I<B53A1FFF81FFF0A33C07F801FC003F8001F049EB1E0000030100141C816C6C017C
+1318A26D017E1338000002FE1330A290267E01FF5B159F168090263F030F5BA216C0903A
+1F8607C180A202C613E390260FCC0390C7FCA2D907FC13F6ECF80116FE6D486C5AA36D48
+1378A36D48133034217F9F37>I<B53801FFF8A32603FE0013806C48EB7C000000147801
+7E1370017F5B90383F81C090381F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E80805B90
+38039F809038071FC09038060FE0EB0C0790381C03F0496C7E01707FEBF000000180000F
+ECFF8026FFFC0313FCA326207F9F29>I<3A7FFF807FF8A33A07F8001FC00003EC0F8000
+01EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA290
+3807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A12
+78D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2
+EB000F003C14E00038EB1FC00030EB3F800070137F1500006013FE495A13035CC6485A49
+5AA2495A495A49C7FC153013FE485A12035B48481370485A001F14604913E0485A387F00
+0348130F90B5FCA21C207E9F22>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmtt9 9 47
-/Fd 47 127 df<126012F0AD12601200A4126012F0A212600417789614>33
-D<EA071CA5B51280A27E380E3800A7387FFF80B5FCA2381C7000A511177F9614>35
-D<EA01801203EA06005A121C121812385AA35AA91270A37E1218121C120C7EEA03801201
-091D799914>40 D<128012C01260123012381218121C120EA31207A9120EA3121C121812
-381230126012C01280081D7C9914>I<EA0380A3EA638CEAF39EEA7FFCEA3FF8EA0FE0A2
-EA3FF8EA7FFCEAF39EEA638CEA0380A30F107E9214>I<127012F812FCA2127C120C1218
-123012E012C0060A798414>44 D<EAFFFEA30F037E8C14>I<127012F8A3127005057984
-14>I<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>49
-D<1306131E133E13F8EA01F0EA03C0EA0F80EA1F00123C12F85A7E123C121FEA0F80EA03
-C0EA01F0EA00F8133E131E13060F157E9514>60 D<12C012F07E123E7EEA0780EA03E0EA
-01F0EA0078133E131E133E1378EA01F0EA03E0EA0780EA1F00123E12F85A12C00F157E95
-14>62 D<EA1FE0EA3FF8EA701CEAE00EA21240EA003C137013E0EA01C0EA0380A41300C7
-FCA41203EA0780A2EA03000F177E9614>I<EA01E0EA07F0EA0E38EA181CEA38FC1271EA
-731E1277EAEE0EA7EA771CEA7318EA71F0EA38E0EA1806EA0E1EEA07F8EA01F00F177E96
-14>I<EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA2
-38FE3F80A211177F9614>I<3801F180EA07FFEA0E1FEA1C071238EA7003A348C7FCA738
-700380A338380700121CEA0E0EEA07FCEA01F011177F9614>67 D<38FC1F80A2007C1300
-EA7637A4EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>77
-D<38FE3F80A2383E0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA21117
-7F9614>I<EAFFE013F8EA383C131C7FA45B133CEA3FF85BEA38387FA51480EB1DC0A238
-FE0F80EB070012177F9614>82 D<EAFFE0A21200B3A712FFA20B1D7F9914>93
-D<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C
-1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA
-1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<
-EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F0
-0F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301E
-EA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2
-EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA
-038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA
-383B38301800EA701CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA70
-0F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1D
-FEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA212
-07ACEAFFF8A20D187C9714>I<136013F0A213601300A4EA1FF0A2EA0070B2EA40E0EAE0
-C0EA7F80EA3F000C207E9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0
-A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>I<EAFF80A21203B3EAFFFEA20F
-177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78
-EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701C
-A2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07
-EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218
-808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7
-EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EA
-FFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA00
-1CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E
-00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03
-E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA31110
-7F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811
-107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E78133848
-7E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370
-A25B1201A25BA3485A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C13
-38EA007013E0EA01C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I<EA1C
-10EA3F38EAE7E0EA41C00D047D9614>126 D E
+%DVIPSBitmapFont: Fc cmsltt10 9 18
+/Fc 18 122 df<007FB512F0B612F815FCA215F86C14F01E06789927>45
+D<147E903803FF804913C0011F13E04913F0EB7F879038FE01F8EBF800484813FC000314
+7C49137E4848133EA2485AA248C7FCA2123EA45AA500FC147C5AA215FC15F8A26CEB01F0
+A2007C130315E01407007EEB0FC015806C131FEC3F00381F807EEBC1FC6CB45A6C5B6C5B
+6C1380D8007EC7FC1F3079AE27>48 D<1438147C14FC14F8130113031307130F133F3803
+FFF05A13FD13F913E3EA000314E0A41307A214C0A4130FA21480A4131FA21400A45BA213
+3EA3387FFFFEB6FCA36C13FE182F77AE27>I<D9FF80EB3FC0486DEB7FE016FFA26C4A13
+C0D91EE0EBDE00013EEB03FE16BE013C14BCED073CA2150F90397CF00E7C151E0178EB1C
+78153C15381578D9F87013F8EC78F001F05CEC79E0A215C00001EB7BC1EC3B81D9E03F5B
+1501A2143E0003EB1C031400495CA400071407A2495CA3D87FF0EB7FF0A200FF14FFA26C
+486D5A2B2E7FAD27>77 D<EB7FF83801FFFE00076D7E8148809038F01FF0EBE0036C486C
+7EEA0180C8FC140114FF011F5B90B5FC1203120F481383387FF00301805BEAFE005A5A14
+07A24A5A6C133F38FF01FF90B6FC6C15807E000F01E313003803FE0021207A9F27>97
+D<EB03FE90380FFF80013F13E090B512F04814F83903FE03FC3807F800EA0FE04848137E
+5B48C7123EA2127E007FB512FEA4B612FC00FCC8FCA2127C127E1578007F14F8383F8001
+EBC003391FF80FF06CB512E06C14C0000114806CEBFE00EB1FF01F207A9F27>101
+D<EBFFC05AA37E1307130FA25CA4131FA2EC07F8EC1FFEEC7FFF91B512804914C0ECFC1F
+ECE00FECC0071480140049130F137E1680137CA301FC131FA2491400A400015CA249133E
+A33A7FFF87FFF0B500CF13F8A36C018713F0252E7FAD27>104 D<143814FE1301A46D5A
+147891C7FCA73803FFF0487FA37EEA00015CA41303A25CA41307A25CA4130FA25CA3007F
+B512C0B612E0A315C01B2F79AE27>I<90B5FC5AA37EEB001F5CA2143EA4147EA2147CA4
+14FCA25CA41301A25CA41303A25CA41307A25CA3007FB512F8B612FCA36C14F81E2E7BAD
+27>108 D<3A03F0FC07E03A07FBFE1FF090B5EA3FF8EDFFFCA2C690388FFC7C9039FE07
+F03C01FC13E001F813C0A23A01F00F807CA2167801E01300A300034913F8A2D9C01E13F0
+A40007EB3E01A2D9803C13E0A33A7FF0FF87FCD8FFF9EBCFFEA3D87FF1EB8FFC2720809F
+27>I<3903FE07F83907FF1FFEEC7FFF91B5128016C039003FFC1FECE00FECC007148014
+0049130F137E1680137CA301FC131FA2491400A400015CA249133EA33A7FFF87FFF0B500
+CF13F8A36C018713F025207F9F27>I<EB01FCEB0FFF013F13C090B512E04814F03903FC
+0FF83807F003390FE000FC1380001F147C48C7127E003E143EA25AA400FC147CA215FC00
+7C14F81401007EEB03F0A26CEB0FE09038801FC0391FE07F8090B512006C5B6C13F80001
+5B38007F801F207A9F27>I<3A07FF803FC0489038C1FFF002C713F802CF13FC6C90B5FC
+D8000F13E3ED03F89138FC01F09138F800604A1300495A5CA25CA291C8FC5BA2133EA413
+7EA2137CA3B6FCA526207D9F27>114 D<903807FF1C013F13FE90B5FC5A1207EBFC0139
+0FE000FC49137C5BA2153801E01300EA07FEEBFFF8000113FF6C6C13C0010F13E0903800
+7FF0EC03F8001C1301003EEB00FC157C007E14FC127FEC01F8EB80039038E01FF090B5FC
+B612C0158000F8EBFE0038703FF01F207B9F27>I<131E133FA2133EA4137EA2007FB512
+F0B612F8A36C14F0D800FCC7FC5BA41201A25BA41203A25BA2EC01E015F01403A2EC07E0
+140F9038F83FC090B5128015006C5B38007FF8EB1FC01D2979A827>I<397FC00FF839FF
+E01FFCA4000713004913F8A4000F1301A2018013F0A4001F1303A2010013E0A314075A14
+0F003EEB1FC0003F133FEB80FF90B512FE6C14FFA2000713EF0001EB07FE20207A9F27>
+I<3A03FFE07FF848ECFFFCA36C15F83A001F003E006D6C5A01075BECC1F0903803E3E05D
+903801F7806DB4C7FC5C147C143C147C14FE1301EB03CF9038078F80EB0F07011E7FEB3E
+03496C7E01F87F3801F0003A7FFC07FFC0486C4813E0A201FC14C0007F7F26207E9F27>
+120 D<3A01FFE01FFF486D5AA39138E01FFE3A001E0003C0A2011FEB0780A26DEB0F00A2
+151E148001075BA25DA26E5A1303ECC1E0A2ECC3C0EB01E3ECE780A202EFC7FC130014FE
+A25CA2147814F85C13015C13035C130700085BEA7E0F49C8FCEAFE3EEAF8FEB45A5B6C5A
+EA3FC06CC9FC28317F9F27>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmti9 9 1
-/Fe 1 47 df<1230127812F0126005047C830C>46 D E
+%DVIPSBitmapFont: Fd cmtt9 9 83
+/Fd 83 127 df<123C127E12FFAF127EAE123C1200A7123C127E12FFA4127E123C082F71
+AE27>33 D<00101320007C13F838FE01FCAAEAFC00007C13F8A900381370161778AE27>
+I<90383C03C090387E07E0A7EBFE0F01FC13C0A2007FB512FEB7FCA4003F14FE3901F81F
+80AC003FB512FEB7FCA46C14FE3903F03F00A200075BEBE07EA73803C03C202E7DAD27>
+I<000F1470486C13F8383FC001EA7FE0140315F038FFF00700F914E0A2140F15C0A2141F
+00FF1480387FE03F1500A26C485A381F807E380F00FEC75AA213015CA213035C13075CA2
+130F5C131F5CA2133F91C7FCA24913F090387E01F89038FE03FC9038FC07FEA212019038
+F80FFF0003149F13F0A2120713E0A2000F14FF9038C007FE121F1380EC03FC000FEB01F8
+6CC712F0203A7DB327>37 D<131FEB7FC0497E5A80EA03F1EBE1F8EA07E013C0A513C15C
+9039C3F1FF80D9E3E113C03803E7E3EBEFC101FF1480913881F800EC01F0EA01FEEBFC03
+01F85B00031307D807FC5B120F381FFE0FD83FBE5BEB3F1FD87E1F90C7FC149F38FC0FBF
+14FE1307ECFC020103EB0F80EB01F8A238FE03FC387E07FE397F1FFF9F6CB61200149F6C
+EB0FFE390FFC03FC3903F000F822307EAE27>I<120FEA1FC0123F13E0A213F0121F120F
+1201A4120313E01207EA0FC0A2EA3F80EA7F005A5A12F812700C1773AD27>I<EB01C0EB
+03E0130F131FEB3FC0EB7F80EBFE00485A5B1203485A5B485AA2485AA248C7FCA3127EA4
+5AAC127EA47EA36C7EA26C7EA26C7E7F6C7E12017F6C7EEB7F80EB3FC0EB1FE0130F1303
+EB01C0133A73B327>I<127012F812FE7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA2
+7FA2EB1F80A3EB0FC0A4EB07E0ACEB0FC0A4EB1F80A3EB3F00A2137EA25B1201485A5B12
+07485AEA3FC0485A48C7FC5A12F81270133A7AB327>I<130F497EA60078EB81E000FEEB
+87F000FF138FEBDFBF6CB512E06C14C0000F1400000313FCC613F0A2000313FC000F13FF
+003F14C04814E039FFDFBFF0EB1F8F00FE13870078EB81E00000EB8000A66DC7FC1C207B
+A627>I<EB03C0497EAD007FB512FEB7FCA46C14FE390007E000AD6D5A20227DA727>I<12
+0FEA3FC013E0EA7FF0A213F8A2123FA2120F120113F01203EA07E0121FEA7FC0EAFF8013
+005A12700D14738927>I<007FB512F8B612FCA46C14F81E067C9927>I<121EEA7F80A2EA
+FFC0A4EA7F80A2EA1E000A0A728927>I<1538157C15FCA2140115F8140315F0140715E0
+140F15C0141F1580143F1500A25C147E14FE5C13015C13035C13075C130F5CA2131F5C13
+3F91C7FC5B137E13FE5B12015B12035BA212075B120F5B121F5B123F90C8FC5A127E12FE
+5AA25A12781E3A7CB327>I<EB07E0EB3FFC497E90B5FC4814803903FC3FC03907F00FE0
+390FE007F0EBC003391F8001F8A248C712FCA2003E147C007E147EA3007C143E00FC143F
+AC007E147EA46C14FCA2EB8001001F14F8EBC003000F14F0EBE0073907F00FE03903FC3F
+C06CB512806C14006D5A6D5AEB07E020307DAE27>I<130E131FA25B5BA25B5A5A127FB5
+FCA213BFEA7E3F1200B3AA003FB512805A15C01580A21A2F79AE27>I<EB3FE03801FFF8
+4813FE000FEBFF804814C0393FE07FE0EB800F397F0007F0007EEB03F800FE13015A6C14
+FC1400A3127CC8FCA2140115F8A2140315F01407EC0FE0EC1FC0143FEC7F80ECFF00495A
+495A495A495A495A495A495A01FEC7FC485AD807F81378484813FC485A485A48B5FCB6FC
+A36C14F81E2F7CAE27>I<EC3F804A7EA214FF5BA2EB03F7EB07E7A2EB0FC71487131FEB
+3F07A2137E13FCA2EA01F813F01203EA07E0A2EA0FC0EA1F80A2EA3F00123E127E5AB712
+8016C0A36C1580C73807C000A849B5FC491480A36D1400222F7EAE27>52
+D<14FF010713C0011F13F04913F890B5FC48EB81FC3803FE0113F8EA07F0EA0FE09038C0
+00F8001F1400485A90C8FCA25A127EEB0FF838FE3FFE48B51280B612C015E09038F80FF0
+9038E007F890388001FC90C7FC15FE48147E157F153F5A7E127EA3127F6C147F157E6C6C
+13FE9038C001FC120F9038F007F83907F81FF06CB512E06C14C06C148090383FFE00EB0F
+F820307DAE27>54 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCAC121EEA7F80A2EA
+FFC0A4EA7F80A2EA1E000A20729F27>58 D<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00C7
+FCAC120FEA3F8013C0127F13E0A3123FA2120F120713C0120FA2EA3F80EA7F005A5A12F8
+12700B2A739F27>I<153815FC14011407140FEC3FF8EC7FE0ECFFC001031300495AEB1F
+F8495A495A3801FF804890C7FCEA0FFC485AEA7FF0EAFFC05BA27FEA7FF0EA1FF86C7EEA
+03FF6C7F38007FE06D7E6D7EEB07FE6D7E010013C0EC7FE0EC3FF8EC0FFC140714011400
+15381E287CAA27>I<007FB512FEB7FCA4003F14FEC9FCA6003FB512FEB7FCA46C14FE20
+127D9F27>I<127012FC7E6C7E7FEA7FF0EA1FF86C7EEA03FF6C7F38007FE06D7E6D7EEB
+07FE6D7E010013C0EC7FE0EC3FF8EC0FFC1407A2140FEC3FF8EC7FE0ECFFC00103130049
+5AEB1FF8495A495A3801FF804890C7FCEA0FFC485AEA7FF0EAFFC05B48C8FC5A12701E28
+7CAA27>I<EBFFF8000313FF000F14C0003F14E04814F09038C01FF839FF0003FC481301
+1400A21401007C1303C7EA0FF8EC1FF0EC7FE0ECFFC0491300EB03FC495A5C495A5C131F
+5CA76DC7FC90C8FCA7130F497E497EA46D5A6DC7FC1E2E7CAD27>I<EB01FE903807FF80
+011F13C0017F13E090B512F048EB03F83803FC013907F000FC390FE01F7C9038C07FFE38
+1F80FF1301485A393E07F1FF007E13E0397C0FC07FEC803FA2EAFC1F00F8EB001FA800FC
+EB803FD87C0F133EA2ECC07E397E07E0FC003E13F1393F03FFF86C6C13F0018013E0390F
+C07FC09038E01F1E3907F0003FD803FC137F3901FF03FF6CEBFFFE6D13FC011F13F00107
+13C001011300202E7DAD27>I<EB03F0497EA2497EA4143CEB1F3EA5EB3F3FA3EB3E1FA2
+017E7FA4496C7EA548486C7EA390B5FCA24880A3EBF003A248486C7EA4000F803A7FFC0F
+FF8000FF15C06D5A497E007F1580222F7EAE27>I<007FB5FCB612C08115F87E3907E003
+FCEC00FE157E157F81A6157EA25D1403EC0FF890B55A15C015F081819038E000FE157FED
+3F80151FA2ED0FC0A6151F1680153FED7F004A5A007FB55AB65A5D15E06C1480222E7FAD
+27>I<903803F80E90381FFE1F90383FFFBF90B6FC5A3803FE0F3807F803497E48487E48
+5A49137FA248C7123FA25A127E151E150012FE5AAA7E127EA2151E007F143F7EA26C7E15
+7F6D137E6C6C13FE3907F001FCEBF8033903FE0FF86CB512F06C14E0013F13C06D1300EB
+03F820307DAE27>I<387FFFFC14FFB612C06C80813907E00FF81407EC01FC6E7EA2157E
+157F811680151FA316C0150FABED1F80A3153F1600A25D15FEA24A5A4A5A140F007FB55A
+5DB65A6C91C7FC14FC222E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092
+C7FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCA4ED03C0ED07E0A7007FB6FCB7FC
+A36C15C0232E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092C7FCA4EC07
+804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387FFF80B57EA36C5B222E7EAD27>I<9038
+07F03890381FFC7C90387FFFFC90B5FC5A3803FC1F3807F00F380FE007EBC003001F1301
+1380123F90C7FCA2127EA2157892C7FC5AA8EC1FFF4A1380A3007E6D1300EC00FCA36C13
+01A21380121FEBC003120FEBE0073807F00F3803FC1F6CB5FC7EEB7FFE90381FFC78D907
+F0C7FC21307DAE27>I<007FB512E0B612F0A36C14E039001F8000B3B2007FB512E0B612
+F0A36C14E01C2E7BAD27>73 D<90381FFFF84913FCA36D13F89038001F80B3AC127CA212
+FEA2EC3F005C387F81FE13FF6C5B6C5B000713E0C690C7FC1E2F7BAD27>I<387FFFC080
+B5FC7E5CD803F0C8FCB3AAED0780ED0FC0A7007FB6FCA2B7FC7E1680222E7FAD27>76
+D<D87FE0EB7FE0486CEBFFF0A26D5A007F15E0000F150001B813DFEBBC03A3EBBE07019E
+139FA3EB9F0FA2018F131FA2149FA2EB879EA4EB839C14FCA3EB81F8A2EB80F01400AAD8
+7FF0EBFFE0486C4813F0A36C486C13E0242E7FAD27>I<3A7FF003FFE0486C4813F0A213
+FC007F6D13E000079038003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3
+EBC0F8A31478147CA2143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401
+A26C486C5A242E7FAD27>I<EBFFFC0007EBFF80001F14E0A24814F0EBC00F397F8007F8
+EB0003007E1301A348EB00FCB3A76C1301007E14F8A3007F1303EB8007393FE01FF090B5
+FC6C14E0A200071480C6EBFC001E307CAE27>I<007FB5FCB612E081816C803907E003FE
+EC00FF81ED3F80151F16C0150FA6151F1680153FED7F005DEC03FE90B55A5D5D5D92C7FC
+01E0C8FCADEA7FFEB5FCA36C5A222E7FAD27>I<EBFFFC0007EBFF80001F14E0A24814F0
+EBE01F397F8007F8EB0003007E1301A300FE14FC481300B3A4EB07E0A200FE13F1007E14
+F8EB03F9A2387F01FF1381D83FE013F090B5FC6C14E0A200071480C6FC9038001FC0A2EC
+0FE0A2EC07F0A2EC03F8A2EC01F01E397CAE27>I<387FFFF0B512FE6E7E816C803907E0
+1FF014076E7E1401811400A514015D14034A5A141F90B55A5D5DA281EBE01F6E7E14076E
+7EA816F0EDF1F8A4397FFE01FBB5EBFFF08016E06C48EB7FC0C8EA1F00252F7FAD27>I<
+90387FC0E03901FFF1F0000713FF5A5AEA3FE0EB801F387F000F007E130712FE5A1403A3
+EC01E06C90C7FC127E127FEA3FC013F86CB47E6C13F86C13FE6CEBFF80C614C0010F13E0
+010013F0140FEC07F81403140115FC1400127812FCA46CEB01F8A26C130390388007F090
+38F01FE090B5FC15C0150000F85B38701FF81E307CAE27>I<007FB61280B712C0A439FC
+03F00FA60078EC0780000091C7FCB3AB90B512C04880A36C5C222E7EAD27>I<3A7FFE01
+FFF8B54813FCA36C486C13F83A07E0001F80B3AB6D133F00031500A26D5B0001147E6D13
+FE6C6C485A90387F87F814FF6D5B010F13C06D5BD901FEC7FC262F80AD27>I<3A7FFC03
+FFE06D5A00FF15F0007F15E0497E3A07E0007E00A46C6C5BA4EBF80100015CA46C6C485A
+A490387E07E0A56D485AA4011F5B149FA3010F90C7FCA5EB07FEA46D5AA26D5A242F7FAD
+27>I<D87FE0EB7FE0486CEBFFF0A36C48EB7FE0001FC7EA0F80A76C6CEB1F00A614F0EB
+81F83907C3FC3EA4149CEBC79EA30003143CA301E7137CEBEF9FA2140FA200011478A490
+38FE07F8A300005CA2EBFC0390387801E0242F7FAD27>I<393FFC1FFE387FFE3F815D38
+3FFC1F3903F00FE001F85B1201EBFC1F00005CEBFE3F017E90C7FCEB7F7FEB3F7E14FE6D
+5AA26D5AA26D5AA21303130780130F80131F80EB3F7E147F497E017E7F141F01FC7F140F
+D801F87F14071203496C7E120701E07F3A7FFC0FFF8000FF15C06D5A497E007F1580222E
+7EAD27>I<387FFFF0B512F8A314F000FCC7FCB3B3ACB512F014F8A36C13F0153A71B327>
+91 D<127812F87EA27E127E127F7E7F121F7F120F7F12077F1203A27F12017F12007F13
+7E137F7F80131F80130FA280130780130380130180130080147E147F80A21580141F15C0
+140F15E0140715F0140315F8140115FC1400A2157C15381E3A7CB327>I<387FFFF0B512
+F8A37EEA0001B3B3ACEA7FFFB5FCA36C13F0153A7EB327>I<007FB512F8B612FCA46C14
+F81E067C7E27>95 D<13E0EA01F01207120F13E0EA1FC0EA3F00A2127E127C12FC5AA4B4
+FC138013C0127FA2123F1380EA0F000C1773B227>I<3803FFC0000F13F04813FC4813FF
+811380EC1FC0381F000F000480C71207A2EB0FFF137F0003B5FC120F5A383FFC07EA7FC0
+130012FE5AA46C130F007F131FEBC0FF6CB612806C15C07E000313F1C69038807F802220
+7C9F27>I<EA7FE0487EA3127F1203A914FF01F313C090B512F08181EC81FE49C67E49EB
+3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEBFF009038FF
+83FEECFFFC5D5D01F313C02601E0FEC7FC232E7FAD27>I<EB0FFF017F13C048B512E048
+14F05A380FF807EA1FE0393FC003E0903880008048C8FC127EA212FE5AA67E127EA2007F
+14F0393F8001F813C0381FE003390FF80FF06CB5FC6C14E06C14C06C6C1300EB0FF81D20
+7B9F27>I<EC3FF04A7EA3143F1401A9EB0FE1EB7FFD48B5FC5A5A380FF83F381FE00F38
+3FC007EB8003EA7F00007E1301A212FE5AA67E007E1303A2127F6C1307EB800F381FE01F
+380FF03F6CB612C06C15E06C13FD38007FF9D91FE013C0232E7EAD27>I<EB0FF8EB3FFE
+90B51280000314C04814E0390FFC0FF0391FE003F8EBC001D83F8013FC48C7FC127E157E
+12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D137E6C7E01F013FE390FFC07FC6CB5
+FC000114F86C14F0013F13C0903807FE001F207D9F27>I<EC1FF0ECFFF84913FC4913FE
+5BEB0FF014C0011F137CEC8000A6007FB512F0B612F8A36C14F039001F8000B3A4003FB5
+12C04814E0A36C14C01F2E7EAD27>I<153F90391FC0FF80D97FF313C048B612E05A4814
+EF390FF07F873A1FC01FC3C0EDC000EB800F48486C7EA66C6C485AEBC01FA2390FF07F80
+90B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC15E015F84814FE4880EB8001007EC7
+EA3F80007C140F00FC15C0481407A46C140F007C1580007F143F6C6CEB7F009038F807FF
+6CB55A000714F86C5CC614C0D90FFCC7FC23337EA027>I<EA7FE0487EA3127F1203A914
+7F9038F1FFC001F713F090B5FC8114C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C7
+13F0A36C018313E0242E7FAD27>I<130F497E497EA46D5A6DC7FC90C8FCA7383FFF8048
+7FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<143C147E14FFA4147E
+143C1400A73801FFFE4813FFA37EC7123FB3B0147E1238007C13FE38FE01FC1303B512F8
+14F06C13E06C13803807FE0018407CAE27>I<EA7FE07F12FF127FA21201A991383FFFC0
+4A13E0A36E13C0913803F8004A5A4A5A4A5A4A5A02FFC7FCEBF1FEEBF3FCEBF7F8EBFFFC
+8080143F496C7E496C7E01F87FEBF0076E7E6E7E816E7E157E3A7FFFC1FFF002C313F8B5
+12E36C13C316F0252E80AD27>I<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA3
+6C14F81E2E7CAD27>I<397F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1
+F89038F03FC001E0138001C01300A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701
+F813E36C4801C313002920819F27>I<387FE07F39FFF1FFC001F713F090B5FC6C800003
+13C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C713F0A36C018313E024207F9F27>
+I<EB1FE0EB7FF83801FFFE487F481480390FF03FC0391FC00FE0393F8007F0EB00034814
+F8007E1301A248EB00FCA76C1301007E14F8A2007F1303393F8007F0A2391FE01FE0390F
+F03FC06CB512806C14006C5B38007FF8EB1FE01E207C9F27>I<387FE0FFD8FFF313C090
+B512F0816C800003EB81FE49C67E49EB3F8049131F16C049130FA216E01507A6150F16C0
+7F151F6DEB3F80157F6DEBFF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC
+387FFF80B57EA36C5B23317F9F27>I<90380FF03C90383FFE7E90B5FC000314FE5A380F
+FC1F381FE007EBC003383F800148C7FC127EA200FE147E5AA67E007E14FEA2007F1301EA
+3F80EBC003381FE007380FF81F6CB5FC7E6C147E38007FFCEB0FF090C7FCAC91381FFFF8
+A24A13FC6E13F8A226317E9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5
+FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67E
+A36C5C22207E9F27>I<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC0780
+6C90C7FCEA7F8013FC383FFFF06C13FC000713FF00011480D8000F13C09038003FE01407
+0078EB03F000FC1301A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707FF0
+1C207B9F27>I<133C137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415
+FE6D13FC1483ECFFF86D13F06D13E0010313C0010013001F297EA827>I<397FE01FF848
+6C487EA3007F131F00031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87F
+E024207F9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE0010003
+5CA2EBF00300015CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214FE
+6D5AA36D5AA26D5A22207E9F27>I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80
+001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8A2
+EBFF0F6C5CA3EBFE0790387C03E024207F9F27>I<393FFC1FFF486C5A168016006C487E
+3901F807E06C6C485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E
+143EEB3E3FEB7E1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C
+486C1380A222207E9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07E000F80000
+0313015D13F00001130301F85B1200A26D485A137CA290387E0F80133EA2011F90C7FC5C
+A2130F149E14BE130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F007F5B13
+1FD87E7FC8FCEA7FFE6C5A5B6C5AEA07C022317E9F27>I<001FB512FE4814FFA4903800
+01FEEC03FCEC07F8EC0FF0001EEB1FE0C7EA3FC0EC7F80ECFF00495A495A495AEB1FE049
+5A495A49C7FC485A4848131E4848133F485A485A485A485AB7FCA46C14FE20207E9F27>
+I<EC07F8EC3FFC14FF130315F8903807FE00EB0FF05C5CB0131FEB7F80EA3FFFB5C7FC5B
+A27F003F7FEA007FEB1FC0130FB08080EB07FE903803FFF815FC1300143FEC07F81E3A7C
+B327>I<127812FCB3B3B3A21278063A70B327>I<EA7F80EAFFF013FC13FF7E00017F3800
+3FC0131F130FB080EB07F8ECFFF06D13FC7FA25B4913F0ECF800EB0FE05CB0131F133F48
+B45A007F90C7FCB5FC13FC13F0EA7F801E3A7CB327>I<3901F003803903FC07C0000F13
+0F381FFE1F393FFF7F80397FBFFF0038FE1FFE486C5A00F813F0387003E01A0A7AAD27>
+I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmr9 9 39
-/Ff 39 123 df<13FEEA038138060180EA0E03381C010090C7FCA5B51280EA1C03AE38FF
-8FF0141A809915>12 D<EBFF80EA0383EA0603120E121CA6B5FCEA1C03AE38FF9FF0141A
-809915>I<126012F0A212701210A31220A21240A2040B7D830B>44
-D<EAFFC0A20A0280880D>I<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA
-6006A2EA700EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA
-7FF80D187D9713>I<EA0F80EA1060EA2030EA4038EA803CEAC01C12E01240EA003C1338
-A21370136013C0EA018013001202EA040412081210EA3008EA3FF8127F12FF0E187E9713
->I<EA07E0EA1838EA201CEA601EEA700EEA201E1200131CA213381370EA07E0EA003813
-1C130E130FA212E0A212C0EA400EEA601CEA1838EA07E010187F9713>I<1318A2133813
-7813F813B8EA01381202A212041208121812101220124012C0B5FCEA0038A6EA03FF1018
-7F9713>I<EA3018EA3FF013E01380EA2000A5EA2FC0EA3060EA2030EA00381318131CA2
-124012E0A2EA8018EA40381330EA30E0EA0F800E187E9713>I<EA01F8EA0704EA0C06EA
-180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEAE0061307A31260A2EA7006
-EA300EEA180CEA0C38EA07E010187F9713>I<1240EA7FFF13FEA2EA4004EA80081310A2
-EA00201340A21380120113005AA25A1206A2120EA5120410197E9813>I<EA07E0EA1818
-EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03E0EA0CF8EA307CEA601E13
-0FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>I<EA07E0EA1C30EA3018EA
-700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07C7EA00071306130E130C12
-701318EA6030EA3060EA0F8010187F9713>I<EA1FC0EA38707FEA101C1200A2EA03FCEA
-1E1C1238127012E01480A2133CEA705F381F8F0011107F8F13>97
-D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906
-EA10F8131A809915>I<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
-07E00E107F8F11>I<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A
-EA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE000
-A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C101300
-A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF3818718038303000EA7038A4EA3030
-6C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07E011
-187F8F13>I<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218
-123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F00130C5B
-13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107
-D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301
-AB39FF9FE7F81D107F8F20>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF01410808F15>
-I<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA381CEA1C38EA07E010
-107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C01480381E0300EA1D
-06EA1CF890C7FCA6B47E1317808F15>I<EA03E1EA0C13EA180BEA300FEA700712E0A612
-70A26C5AEA1C37EA07C7EA0007A6EB3FE013177F8F14>I<EAFC78EA1D9CEA1E1C1308EA
-1C00ABEAFF800E10808F0F>I<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0EA1FE0
-EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238EAFFC0
-EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E
-0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2
-EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16
-081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C
-1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0
-12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C
-5AA248C7FCA212E112E212E4127811177F8F14>I<EAFFF8EAE07012C0EA80E0EA81C0A2
-EA0380EA0700A2EA0E04121CA2EA380812701338EAFFF80E107F8F11>I
-E
+%DVIPSBitmapFont: Fe cmss10 10.95 2
+/Fe 2 42 df<14FCEB01F8EB03F0EB07E0EB0FC0131F1480EB3F005B137E5B12015B1203
+A2485AA25B120FA25B121FA25B123FA448C7FCA712FEB3A2127FA76C7EA4121F7FA2120F
+7FA212077FA26C7EA212017F1200137E137F7FEB1F8014C0130FEB07E0EB03F0EB01F8EB
+00FC165A79C323>40 D<12FC127E7E6C7E6C7E7F12076C7E7F12016C7E7F137E137FA2EB
+3F80A2131F14C0A2130F14E0A2130714F0A4EB03F8A7EB01FCB3A2EB03F8A7EB07F0A414
+E0130FA214C0131FA21480133FA2EB7F00A2137E13FE5B485A12035B485A120F5B485A48
+C7FC127E5A165A7BC323>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmss10 10.95 2
-/Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
-AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
+%DVIPSBitmapFont: Ff cmbx10 12 27
+/Ff 27 123 df<923B1FFF8001FFC00203B5D8F01F13F0021FDAF87F13FC027F91B67E90
+2701FFF803ECC3FF49D9C001EBFE0790270FFE000349481380494815F84A4913F0494815
+E0495AA201FF4C6C13004A6D6E5A735A70EC00707092C7FCAABA12FCA5C601E0C701E0C8
+FCB3B0007F9026FFC07FEBFFF0A549467EC543>11 D<ED1FFF0203B512E0021F14F8027F
+80903A01FFF803FE499038C0007F010F90390001FF80D91FFC497F4A5B495A495AA201FF
+4A7F4A6D5BA3705B7090C7FC705A94C8FCA693387FFFE0B9FCA5C601E0C7FCB3B0007F90
+26FFC07FEBFFC0A53A467EC540>I<903801FFF8011FEBFF80017F14E090B612F8489038
+807FFC3A03FE001FFE486CEB07FF486E7F0280806F7FA36F7F6C90C7FCA26C5AEA00F890
+C8FCA2150F021FB5FC0103B6FC131F017F13C03901FFFC004813E0000F13804890C7FC48
+5A5B485AA2485AA45DA26C6C5BED07BF6C6C010F13FC6CB490391F3FFFE06C9026C0FE1F
+13F06CEBFFFC6CECF007C66CD9E00113E0010790C9FC342F7DAD38>97
+D<EB7FC0B5FCA512037EB1ED1FFC92B512C002C314F002CF14FC9139DFF01FFF9126FF80
+0713809126FE000113C04A6D13E002F015F04A147F18F8173F18FCA2EF1FFEA318FFAB18
+FEA3173F18FCA218F8177F6E15F06EECFFE06E4913C06E49138091263F800F1300903AFE
+1FE03FFE496CB55AD9F80314F049C61480C8D81FF8C7FC38467DC440>I<EC3FFE49B512
+E0010F14F8013F8090397FF807FE9039FFE001FF484948138048018014C048495A485A12
+1FA2485A6F1380A2007F6E130049EB007C93C7FC12FFAC127F7FA2123FEE03E06C7E1607
+6C6C15C06C150F6C6DEB1F806C6DEB3F006C01F013FE90397FFE03FC6DB55A010F5C0103
+14C09026003FFCC7FC2B2F7CAD33>I<EFFF804BB5FCA5ED000782B1EC1FFC49B5128301
+0F14E3013F14F390267FFC07B5FC9038FFF0004801C0133F48497F4890C77E484880121F
+5B123FA2127F5BA312FFAB127FA36C7EA2121F7F000F5D6C6C5C5E6C6D90B512C06CD9E0
+0114FF39007FF80F6DB512E7010F14C7010314079026003FF0EBFC0038467CC440>I<EC
+1FFE49B512C0010714F0011F14FC90397FFC0FFE903AFFE003FF804849C613C0485B4890
+C7EA7FE048ED3FF0485AEE1FF8485AA2007F150F4915FCA212FFA390B7FCA317F801F8C9
+FCA5127FA27FA2003F1638177C6C6C15FCA26C6CEC01F86C6D13036CED07F06C6DEB0FE0
+6C01F0EB3FC0903A3FFE01FF806DB5EAFE0001075C010014F0020F90C7FC2E2F7DAD35>
+I<913801FFC0021F13F0027F13FC49B57E49EBC3FF903807FE074948481380EB1FF8EB3F
+F0EB7FE0A349486C13006F5A6F5AED007093C7FCAAB612FCA5C601E0C8FCB3B0007FEBFF
+E0A529467DC523>I<902601FFF013FF010FD9FE031380013FD9FF8F13C090B812E048D9
+C07F13BF489039001FF83F4848EB0FFC4848EB07FE001F9238FF1FC0496DEB0F8094C7FC
+003F82A7001F93C7FCA26D5B000F5D6C6C495A6C6C495A6C9038C07FF04890B55A1680D8
+078F49C8FC018113F0D80F80CAFCA47F7F13F890B612E016FEEEFFC06C16F0836C826C82
+831207481780D81FF8C77ED83FE014074848020113C000FF8149157FA56D15FF007F1780
+6D5C6C6C4A1300D81FFCEC0FFE6CB4EC3FFC6C9039E001FFF8000190B612E06C6C158001
+0F02FCC7FCD9007F138033427DAC39>I<EB7FC0B5FCA512037EB1923803FF80031F13F0
+037F7F92B57E9139C1FC1FFE9139C3E00FFF9126C7C0077FECCF0002DE7F02FC81A25C5C
+A35CB3A7B600C1B61280A539457CC440>I<13FCEA03FF4813804813C0A24813E0A66C13
+C0A26C13806C1300EA00FC90C7FCA9EB7FC0EA7FFFA512037EB3AFB6FCA518467CC520>
+I<EB7FC0B5FCA512037EB293387FFFF0A593380FF8004C5AEE3FC04C5A4B48C7FCED03FC
+4B5A4B5AED3FE0ED7F804BC8FCECC1FE14C7ECCFFF02DF7F91B57E82A202FD7F02F07F4A
+7F4A6C7E153F6F7E6F7F83816F7F6F7F6F7F83167F707E83B66CB512FCA536457DC43C>
+107 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC420>I<90287FC003FF80EB07
+FFB5011F01F0013F13E0037F6D90B57E92B56C4880913DC1FC1FFE03F83FFC913DC3E00F
+FF07C01FFE00039026C7C00790398F800FFF6CD9CF00EC9E0002DE6D01BC7F02FC03F815
+80A24A5D4A5DA34A5DB3A7B600C1B60083B6FCA5582D7CAC5F>I<903A7FC003FF80B501
+1F13F0037F7F92B57E9139C1FC1FFE9139C3E00FFF00039026C7C0077F6CEBCF0002DE7F
+02FC81A25C5CA35CB3A7B600C1B61280A5392D7CAC40>I<EC1FFE49B512E0010714F801
+1F14FE903A7FF807FF809026FFE0017F48903980007FE04890C76C7E48486E7E000F8249
+140F001F82A2003F824980007F1780A400FF17C0AA007F1780A46C6C4A1300A2001F5EA2
+6C6C4A5A00075E6D143F6C6D495AC69039E001FFC090267FF8075B6DB6C7FC010F14FC01
+0114E09026001FFEC8FC322F7DAD39>I<90397FC01FFCB590B512C002C314F002CF14FC
+9139DFF03FFF9126FF800F138000039026FE000313C06C496D13E002F015F04A7FEF7FF8
+A218FC173F18FEA3EF1FFFAB18FE173FA318FC177F18F817FF6E15F06E4913E06E4913C0
+6E4913806E6C4813009238E07FFE02EFB55A02E314F002E01480DB1FF8C7FC92C9FCADB6
+12C0A538407DAC40>I<DA3FF8130F902601FFFE5B010F6D6C5A013F6E5A90397FFC0FF0
+903AFFF003F8FF489038E000F94849137F48497F4890C7FC48815B003F815B127F82A25B
+12FFAB6C7EA3123F6D5C121F5E6C6C5CA26C6D5B6C6D48B5FC6C6D5A6C9038F81FEF013F
+B512CF010F148F0103EBFE0F9038007FF091C7FCAD0307B512FEA537407CAC3C>I<9039
+7F803FC0B5EBFFF0028313F8028713FC91388FE7FE91389F8FFF0003EB9E0F6C13BCA214
+F8A29138F007FEED03FC9138E001F892C7FCA35CB3A5B612C0A5282D7DAC2F>I<90391F
+FE078090B512DF000314FF5A380FF803381FE000D83F80133F127F90C7121FA248140FA2
+7FA201E090C7FC13F8EBFFC06C13FEECFFC06C14F015FC6C806C806C1580000115C07E01
+1F14E01301D9000713F014000078147F00F8143F151F6C140FA37E6C15E0151F6D14C06D
+133F01F0EB7F809039FC03FF0090B55A00FC5CD8F83F13F0D8F00790C7FC242F7CAD2D>
+I<EB01F0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B512C0B7FCA4C601
+F0C7FCB3A3ED01F0AA017FEB03E014F81507D93FFC13C090391FFE1F806DB512006D5B01
+015B9038003FF024407EBE2D>I<D93FE0EC7FC0B549B5FCA50003EC00076C81B3A85EA3
+5E6C5DA26E013D7F017F02F9EBFF8090393FFC03F16DB512E16D14C1010314019026003F
+FC91C7FC392E7CAC40>I<B690380FFFF8A5000301E0010013006C167C6E14FC6C5E8016
+01017F5D6E1303013F5D6E1307011F5D6E130F6D5DED801F6D92C7FC15C05E6D143EEDE0
+7E6D147CEDF0FC6D5C15F9027F5B15FF6E5BA36E5BA26E5BA26E90C8FCA26E5AA26E5AA2
+6E5A352C7DAB3C>I<B5D8FE1FB539801FFFF0A500039027C0007FF0C7EAFE00043F157C
+6E6E14FC6C031F5D6E6E13016C61836E013F1403017F606E496C1307013F606EED800F01
+1F91B55C16F9DAFF01ECC01F6D02F092C7FC03816E5A6D0183153EEEE07F03C7ECF07E6D
+DAC03F137C03E7ECF8FC6D01EF5DEE801F03FF14FD6DDA000F5B18FF6E486D5BA36E486D
+5BA26E486D5BA2020F93C8FC4B7FA26E48147E6E48143C4C2C7DAB53>I<007FB590387F
+FFF8A5C601F890380FF8006D6CEB07E0013F4A5A6D6C131F6E495A6D6D48C7FC6DEBC0FE
+6DEBC1FC6DEBE1F8EDF3F06DEBFFE0806E5B6E5B93C8FC6E7F6E7F6E7FA24A7F4A7F4A7F
+EDBFFEEC3F1F91387E0FFF02FE8049486C7F49486C7F49487E49486C7F4A8049486D7E49
+C76C7ED9FF80131FB500F090B512FEA5372C7EAB3C>I<007FB5398007FFFCA5000101F0
+C7EA7F806CEE3E006E147E017F157C8017FC013F5D6E1301011F5D6E13036D5DED80076D
+5DEDC00F6D5D15E0161F6D92C7FC6F5A6D143EEDF87E027F137CEDFCFC023F5B15FF6E5B
+A36E5BA26E5BA26E5BA26E90C8FCA26E5AA2157CA215FC5D1401000F5C383FC003D87FE0
+5B1407D8FFF05B140F5D141F4AC9FC387FE07E495A383F87F8EBFFF06C5B00071380D801
+FCCAFC36407EAB3C>I<001FB7128017C0A39026FE001F138001F05B49491300495C4949
+5A48485A4A5B5E4A5B003E5B4A5B5E4A90C7FC5CC7485A5D495B5B495B5D499038C007C0
+5B49138015004948130F01FF1580485B5C4849131F5A485B4A133F4849137F4815FF48EB
+000349011F1300B8FCA37E2A2C7DAB33>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmbx10 12 27
-/Fh 27 123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC013
-87ED83C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11
-D<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80B6FCA2
-380FC01FB2397FF8FFF0A21C237FA220>I<EA07FE381FFF80383F07E06D7E130180121E
-1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA7C02EA7E0C391FF87F803807E03F1916
-7E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF03EEBC01F9038800F8015C0140715E0A7
-15C0A2140F15809038C01F00381E707E381C3FFC38180FE01B237EA220>I<EBFF800007
-13E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6127C127EA2003E13186C133038
-0FC0603807FFC0C6130015167E9519>I<49B4FCA2EB003FAB13FE3807FFBF380FC1FF48
-C67E003E7F127E127CA212FCA7127C127E123E6C5B380F81FF3907FF3FE0EA01FC1B237E
-A220>I<13FE3807FF80380F83C0381E01E0383E00F0127E007C13F8147812FCB512F8A2
-00FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0C6130015167E951A>I<EB1F80
-EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC000A6EAFFFEA2EA0FC0B2EA7FFCA21423
-7EA212>I<9038FE0F803903FF9FC0380F83E3381F01F3391E00F000003E7FA5001E5BEA
-1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C381FFFE014FC6C13FF7E001F1480
-397C001FC00078130F00F81307A3007CEB0F806CEB1F00381F807E6CB45A000113E01A21
-7F951D>I<B47EA2121FABEB83F0EB8FFCEB987EEBA03EEBC03FA21380AE39FFF1FFE0A2
-1B237DA220>I<121E123FEA7F80A4EA3F00121EC7FCA6EAFF80A2121FB2EAFFF0A20C24
-7EA30F>I<B47EA2121FABECFF80A2EC3C00143014E0EB81C00183C7FC1386139E13BE13
-FFEBDF80EB8FC01307806D7E6D7E130080147E39FFE1FFC0A21A237EA21E>107
-D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F803F890390FFE0FFE3A1F183F
-183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0A22C167D9531>I<38
-FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B167D9520>I<13FF00
-0713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C133E007E137E003E137C
-6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBFFC381FF07EEBC01F90
-38800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEBBFFCEB8FE00180C7FC
-A8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF381F00DF48137F007E7FA2127C
-12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8903801FFE0A21B207E951E>
-I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8A214167E9518>I<38
-07F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003F
-C0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E9517>I<487EA41203A2
-1207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FEEA01F811207F9F16>
-I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B167D9520>I<39FFF01F
-E0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0EB
-7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FCA23A1F807C00E0D80F
-C014C08001E013010007017F1380A2D803F0EB0300ECCF8301F81387D801F913C61487D8
-00FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026167F9529>I<39FFF0
-7FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7FC7F6D7E497EEB37E0
-EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B167F951E>I<39FFF0
-1FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0
-EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8
-FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E0138038C03F005B137EC6
-5A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA7E03B5FCA214167E95
-19>I E
+%DVIPSBitmapFont: Fg cmtt10 12 29
+/Fg 29 122 df<147014F8497EA7007815F000FEEC03F800FF140701C1131F01E1133F01
+F913FF6CB612F0001F15C000071500000114FC6C6C13F06D5B010F1380013F13E0497F48
+B512FC000714FF001F15C0007F15F026FFF9FC13F801E1133F01C1131F0101130700FE14
+030078EC00F000001500A76D5A1470252B79B334>42 D<003FB712F04816F8B8FCA27E7E
+D801FCC71203A8EE01F093C7FCA5ED0F804B7EA590B6FCA69038FC001FA56F5A92C8FCA6
+177C17FEAA003FB7FC5AB8FCA27E6C16FC2F3D7EBC34>69 D<007FB712F0B812F8A47ED8
+01FCC71203A8EE01F093C7FCA6ED0F804B7EA590B6FCA69038FC001FA56F5A92C8FCB038
+7FFFF8B57E80A25C6C5B2D3D7DBC34>I<007FB612C0B712E0A46C15C0260003F8C7FCB3
+B3AD007FB612C0B712E0A46C15C0233D78BC34>73 D<3B7FFF8003FFF0B56C4813F817FC
+A217F86C496C13F0D803F0C7EA7F0016FE4B5A15034B5A5E4B5A4B5A153F4B5A93C7FC15
+FE4A5A14034A5A5D4A5A4A5A143F4A5AA24A7E13F101F37F13F7ECF7F0EBFFE3ECC3F8EC
+C1FC1481EC00FE5B49137F81498049131F82150F826F7EA26F7EA26F7E150082167E167F
+823B7FFF8001FFF0B56C4813F817FCA217F86C496C13F02E3D7EBC34>75
+D<383FFFFE487FB6FCA27E6C5BC648C9FCB3B3A2177017F8EE01FCA9003FB7FC5AB8FCA2
+7E6C16F82E3D7EBC34>I<007FB7FCA2B81280A36C1600A229077B7D34>95
+D<EB1FFE90B512C0000314F04880488081391FF807FF49C67F6F7E151F826C48130F6C48
+80C81207A4EC01FF91B5FC1307133F90B6FC12034814074813C0381FFC00EA3FF0EA7FC0
+5B48C7FC5AA56C140F7E6D131FD83FE0EB7FF8D9F807B512F86CB712FC7E000314FD6C14
+F06C6C9038C01FF8D90FFCC8FC2E2E7BAC34>97 D<EA7FFC487EA4127F1200ABEC01FE91
+380FFFC0023F13F04A13FC90B67E82030313809139F8007FC04AEB3FE04A131F4AEB0FF0
+4A130791C713F8160317FC491401A217FE1600A916016D15FCA2160317F86E130717F06E
+130F6EEB1FE06EEB3FC06EEBFF80ECFE0791B612004914FC6E5BD97E3F13E0D93C0F1380
+90260003FEC7FC2F3E7FBC34>I<EC7FF80103B5FC010F14C0013F14E04914F090B6FC48
+9038C01FF83903FE000F485A485A5B4848EB07F049EB03E0484890C7FCA2127F90C9FCA2
+5A5AA97E7EA27F003F15F86DEB01FC6C7EA26C6C1303D807FCEB07F86C6C130F3A01FFC0
+7FF06C90B512E06D14C06D1480010F1400010313FC9038007FE0262E79AC34>I<ED7FFC
+4B7EA4157F1500ABECFF80010313F0010F13F8013F13FE4913FF48B6FC4813C09038FE00
+3FD807F8130F48481307484813035B003F14015B007F140090C8FCA25A5AA97E6C1401A2
+7F003F14037F001F14077F6C6C130F6D131F6C6C137F2603FF81B512FC6C90B612FE6C5C
+6D5B011F13F001079038E07FFC010090C8FC2F3E7DBC34>I<ECFFC0010313F0010F13FC
+013F13FF49148090B612C04801C013E03A03FE001FF04848EB0FF8D80FF013074848EB03
+FC1501485A49EB00FE127F90C8FC16FF167F5A5AB8FCA516FE48C9FC7E7EA27F123F6D14
+3E001F157F7F6C7E6D14FF6C6CEB01FE6CB413076C9038E03FFC6C90B512F86D14F0011F
+14E06D14800101EBFE009038003FF0282E7BAC34>I<ED3FF0913801FFFC02077F4A7F4A
+14805CEC7FE015809139FF007F005C0101141C4A90C7FCA8003FB612FC4881B7FCA36C5D
+260001FCC8FCB3AD001FB612C048814881A26C5D6C5D293E7DBD34>I<49B4EB1FE00107
+9038C0FFF8011F01F313FC017F90B512FE90B7FC5A48018313F1903AFC007F80FC484890
+383FC07849011F130048486D7EA2001F81491307A66D130F000F5DA26C6C495A6D133F6C
+6C495A9038FF83FF91B5C7FC485C5D4814F001C713C001C190C8FC01C0C9FCA47F6C7E90
+B512FE6CECFFE06C15F8000715FE48814816809026F0000313C0D83FC09038003FE090C8
+120F48ED07F0007E150300FE16F8481501A56C1503007E16F0007F15076C6CEC0FE001E0
+143FD81FF8ECFFC0270FFF800F13806C90B612006C5DC615F8013F14E0010F1480010001
+F8C7FC2F447DAB34>I<EA7FFC487EA4127F1200AB15FF020713E0021F7F027F7F91B57E
+90B67E15819138FC00FF02F07F4A804A133F5CA291C7FCA35BB3A4277FFFFC0FB5FCB56C
+481480A46C496C1400313D7FBC34>I<14F0497E497E497EA46D5A6D5A6D5A91C8FCA938
+3FFFFC487FA47EC7FCB3AD003FB612F04815F8B7FCA27E6C15F0253E79BD34>I<EA3FFC
+487E12FFA2127F123FEA007EAC92B512F84A14FCA46E14F8923803FC004B5A4B5A4B5A4B
+5A4B5A4BC7FC4A5A4A5A4A5A4A5A4A5A143FECFFF0017F7F8114FDECF8FEECE07F02C07F
+EC803F4A6C7E017E6D7E8215076F7E6F7E821500167FEE3F803B3FFFFC03FFFE486D4813
+FFB65AA26C497E6C496C13FE303D7FBC34>107 D<383FFFFE487FB6FCA27E7EC77EB3B3
+AD003FB612FE4881B81280A26C16006C5D293D7BBC34>I<027FEB1FC03B3FE1FF807FE0
+D87FF39038E0FFF8B612E303F77F6C91B57E6C01C313F000030181EBE07ED9FE01EB807F
+6E80491400A2495BA3495BB3A53C3FFF03FFC0FFF048018701E113F8B500CF01F313FCA2
+6C018701E113F86C010301C013F0362C81AB34>I<15FF267FFC0713E026FFFE1F7F027F
+7F91B57E90B67E6C1481C69038FC00FF02F07F4A804A133F5CA291C7FCA35BB3A4277FFF
+FC0FB5FCB56C481480A46C496C1400312C7FAB34>I<14FE903807FFC0011F13F0017F13
+FC90B57E488048010113803A07FC007FC04848EB3FE049131F4848EB0FF0491307003F15
+F8491303007F15FC90C71201A300FEEC00FEAA6C14016C15FCA26D1303003F15F86D1307
+A26C6CEB0FF06C6CEB1FE06D133F6C6CEB7FC03A03FF83FF806C90B512006C5C6D5B011F
+13F0010713C0010190C7FC272E7AAC34>I<EC01FE3A7FFC0FFFC026FFFE3F13F04A13FC
+90B67E826C02031380C69039F8007FC04AEB3FE04A131F4AEB0FF04A130791C713F81603
+17FC491401A217FE1600A916016D15FCA2160317F86E130717F06E130F6EEB1FE06EEB3F
+C06EEBFF80ECFE0791B612004914FC6E5B6E13E0020F1380DA03FEC7FC91C9FCAF387FFF
+FCB57EA46C5B2F427FAB34>I<91387F803E903903FFF07F010F13FC013F13FE4913FF90
+B7FC4813C03903FE001F48487FD80FF07F48487FA248487F5B007F8090C8FCA248815AA9
+7E6C5DA27F003F5C7F001F5C6D5B6C7E6C6C131F01FE5B6C6C6CB5FC6C90B6FC6C81013F
+13FC6D13F8010713E00100138091C7FCAF92383FFFFE4B7F92B61280A26F14006F5B3142
+7CAB34>I<4BB4FC273FFFC00F13C048D9E03F13E0B590B512F002E114F86C13E76C01EF
+130FD8000F13F8ECFFE09238C007F092388003E092C8FC5C5CA25CA25CA45CB1003FB6FC
+4881B77EA26C5D6C92C7FC2D2C7DAB34>I<90390FFF078090B5EACFC0000314FF5A5A5A
+383FF803397F80007F90C7123F12FE48141FA47E007FEC0F8001C090C7FCEA3FF8381FFF
+E06C13FF6C14E06C14F8C614FE011F7FD9007F1380020313C09138003FE0ED0FF0003C14
+07007EEC03F800FE1401A27EA36D13036D14F06D13076DEB1FE001FE13FF90B612C01680
+1600D8FC7F13FC6D13F0D878071380252E79AC34>I<EB01E0497E1307AA003FB612FE48
+81B8FCA36C5D260007F0C8FCB3A3EE0F80EE1FC0A66EEB3F800103147F6E13FF902601FF
+031300EDFFFE6D5C6E5B6E5B020F13C0020190C7FC2A387EB634>I<D87FFCEB1FFF486C
+497FA4007F800000EC003FB3A7167FA216FFA26D5B6D1307DAE01F13FF6DB712807F7F6D
+143F0101D9FC1F13009026007FF0C8FC312C7FAA34>I<3B3FFFE00FFFF8486D4813FCB5
+15FEA26C16FC6C496C13F8D801FCC7EA7F000000157EA26D14FE017E5CA2017F13016D5C
+A2EC8003011F5CA2ECC007010F5CA2ECE00F01075CA36D6C485AA3ECF83F010191C7FCA2
+6E5A0100137EA2ECFEFEEC7EFCA2147F6E5AA36E5A6E5A2F2B7EAA34>I<3B7FFFC01FFF
+F0B56C4813F802F014FCA202E014F86C496C13F0D801F8C7EAFE005E7F000014016D5C13
+7E1503017F5C7FA26E485A131F14C0010F495AA214E00107495AA2EB03F04BC7FCA2EB01
+F8A2157EEB00FCA2EC7C7CEC7EFCA2EC3EF8143FA26E5AA2140F5DA35DA2141F5DA2143F
+92C8FCA25C001F137E383F80FE486C5A13C1EB03F81307EB1FF06CB45A5C6C5B91C9FC6C
+5AEA03F02E427DAA34>121 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmtt10 12 29
-/Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
-FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<B512F8A3381C0038A51400
-A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA3161E7E9D1A>69
-D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7FCA8EA7FE012
-FF127F161E7F9D1A>I<B51280A33801C000B3A6B51280A3111E7C9D1A>73
-D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B7F12
-1DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF81FE
-387F00FC171E7F9D1A>75 D<EA7FE0487E6C5A000EC7FCB3141CA5387FFFFCB5FC7E161E
-7F9D1A>I<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA
-300738000380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA
-1FFDEA07F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB00
-38120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<
-EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F
-01F0380FFFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0F
-FFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1
-161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0
-A300E0C7FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<
-EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF8048
-13C06C1380151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C0380383801C0A5381C
-0380EA1E07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F83878007C0070131C
-48130EA40070131C0078133C003E13F8381FFFF0000713C00001130017217F941A>I<12
-FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D
-1A>I<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80B512C06C1380121F7C9E1A>
-I<12FEA3120EA6EB0FFCEB1FFEEB0FFCEB03C0EB0780EB0F00131E5B5B13FC120F13DE13
-8F380E07801303EB01C014E0EB00F038FFE3FE14FF14FE181E7F9D1A>107
-D<EAFFE0A31200B3A6B512E0A3131E7D9D1A>I<387CE0E038FFFBF8EA7FFF381F1F1CEA
-1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>I<EAFE3EEBFF80B512
-C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>I<EA01F0EA07FCEA1FFF
-383E0F80EA3C07387803C0EA700138E000E0A6EAF001007013C0EA7803383C0780EA3E0F
-381FFF00EA07FCEA01F013157D941A>I<EAFE3EEBFF80B512E0380FC1F0EB8070EB0038
-120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E1380EB3E0090C7FCA8EAFFE0A316
-207F941A>I<3801F8E0EA07FEEA0FFFEA1E07EA3C03EA78011270EAE000A613011270EA
-7803123CEA1E0FEA0FFFEA07FCEA01F0C7FCA8EB0FFEA317207E941A>I<387F81F838FF
-8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>I<3807FB
-80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA07FE38003F801307386001C0
-12E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A>I<487E1203A6387FFFE0B5
-FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F9B1A>I<38FE0FE0A3EA0E
-00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E
-00E0A3380701C0A338038380A33801C700A3EA00EEA3137CA2133817157F941A>I<387F
-C7FC00FF13FE007F13FC380E00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7
-A213E61366136E133CA31338A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F
-941A>121 D E
+%DVIPSBitmapFont: Fh cmbx12 13.14 54
+/Fh 54 122 df<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0
+1010778F22>46 D<EC0FFC91B512C0010714F8498090393FFC0FFF90267FE0017F49486C
+7F48496D7E4890C76C7E49141F000782000F8249140F001F82A3003F824980A2007F1780
+A600FF17C0B3A4007F1780A6003F17006D5CA2001F5EA3000F5E6D141F00075E6D143F6C
+5E6C6D495A6C6D495A90267FF0035B90263FFC0F90C7FC010FB512FC6D5C010014C0DA0F
+FCC8FC32487BC63D>48 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3
+B3B2007FB712E0A52B4777C63D>I<ECFFF80107EBFF80013F14F090B612FC4881480101
+EBFF802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D
+7F00FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D
+17E04B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131F
+EC3F804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC
+5A5A5A5A5A5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F14FC013F14FF9026
+7FE01F7F9026FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE817F486D80167FA380
+5C16FF7E91C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7FCED3FFC4AB45A49
+B512E0168016E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83A2701380A318C0EA
+07E0EA1FF8487E487EA2B5FCA31880A25E491600127F494A5A6C485D01E05B001F4A5BD8
+0FFC495B2707FFC03F13C06C90B65AC64BC7FC013F14F8010714E09026007FFEC8FC3248
+7BC63D>I<EE07E0160FA2161F163F167F16FFA25D5D5DA25D5D5DA2157D15FDEC01F915
+F1EC03E11407EC0FC1EC1F811501143F147E14FC14F8EB01F01303EB07E014C0EB0F8013
+1FEB3F00133E5B13FC485A485A5B1207485A485A90C7FC123E127E5AB912FCA5C80003EB
+E000AD023FB612FCA536487DC73D>I<D8038015E001E0140301FC143F9039FFE003FF91
+B612C017801700A25E5E16F05E5E93C7FC15FC15F001E790C8FC01E0C9FCAAEC1FFC01E1
+B512C001E714F001EF14FC9039FFE01FFFDA0007138001FC6D13C001F06D13E04915F049
+7F17F8C913FC167F17FEA417FFA3EA0FC0EA3FF0487EA2487EA317FEA34914FF6C4815FC
+5B018015F86CC74813F07F6C6C4913E0D80FF04913C0D807FC011F13806CB46CB512006C
+90B512FC6C5D013F14C0010F91C7FC010113F030487AC63D>I<ED7FF8913807FFFE021F
+6D7E027F80903A01FFF01FE0010790388003F04948486C7E49486D7ED93FF01307494813
+0F01FF4A7E4849133F5C5A4890C7FCA25A705A48486E5A705A003F92C8FCA3485AA21520
+913807FFE0021F13FC00FF497F4A6D7EDAFC017F9026FDF0007F4A6D7ED9FFC06D7E4A6D
+7E8391C7FC8382491680A318C05BA3127FA6123FA27F001F1780A3000F4B1300A26C6C5D
+A26C6D495A6C6D5C6C6D495A6D6C48485A90263FFC075B6DB65A6D4AC7FC01035C010014
+F0020F90C8FC32487BC63D>I<121F7F7F13FE90B812E0A45A18C0188018005F5FA25F48
+5E90C8EA07E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B5AC8485A4B5AA24B
+C8FC157EA25D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FFA3495BA45BA55BAA
+6D5BA26D90C9FCEB007C334B79C93D>I<EC1FFF49B512F0010714FC011F14FF90263FF0
+0713C049C77F01FCEC3FF04848EC0FF848481407000782491403000F821601A2121F7FA2
+7F13FE6D140302C05C14F002FC495A6C6D130FDAFF805B9238E01FE06C6E485A9238FCFF
+806C91B5C7FC6C15FC6C5D7F6D14FE6D806D15C06D81011F81017F81D9FFDF8048130726
+03FE018048486C804848133F4848010F1480003F8049130148486D6C13C0161F82484814
+0382A282A2177FA218807F127FEFFF007F6C6C4A5AA2D81FFC4A5A6C6CEC0FF86C6C6CEB
+3FF06C9039F003FFE06C90B612806C6C92C7FC011F14FC010714E09026003FFEC8FC3248
+7BC63D>I<EC1FFE49B512C0010F14F04914FC90397FFC0FFE903AFFE003FF804849C67F
+48496D7E4890C7FC486F7E484881161F003F825B007F82A28300FF81A31880A518C0A45E
+127FA3003F5D7F121F5E120F6C6C91B5FC6C90388001EF6CEBC0036C9038E00FCF6DB512
+8F011F140F010701FE1480010113F8903800010091C7FCA24C1300A3D803F85D487E487E
+486C4A5AA25F4C5AA24C5A49495B6C485D49010790C7FC01E0495AD807F8EB3FFC6CB448
+B45A6C90B55A6C15C06D91C8FC011F13FC010313C032487BC63D>I<EA07E0EA1FF8EA3F
+FCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0C7FCB0EA07E0EA1FF8EA3FFCEA7FFE
+A2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0103077AF22>I<EE01F8A24C7EA34C7EA24C7E
+A34C7FA24C7FA34C7FA293B57EA34B8016F303038016E316E103078016C0030F805E8303
+1F814C7E4B81153E83037E81037C7F03FC815D830201824B7F0203825D830207824B7F02
+0F825D84021F8392B8FC4A83A34A83027CC8120F02FC835C840101844A810103845C8401
+07844A81010F845C85011F85496C82B600C091B712F0A5544D7CCC5D>65
+D<B912F0F0FF8019F019FC19FFD8001F0180C780061F7F727F727F727F727FA2727FA219
+7F86A84F5AA2626062604E5B4E5B4E1380067F90C7FC943803FFFC92B712F0198019F019
+FC0380C7383FFF80060F7F060313F0727F727F737E86851B80851BC0A21BE0A48561A41B
+C0A2611B80611B0096B5FC4E5B4E5B060F5B067F5BBB12C097C7FC19FC19F04EC8FC4B4B
+7CCA57>I<93261FFF80EB01C00307B500F81303033F02FE13074AB7EA800F0207EEE01F
+021F903AFE007FF83F027F01E0903807FC7F91B5C73801FEFF010301FCEC007F4901F081
+4901C0150F4949814990C97E494882495A48498248197F5C48193F5C48191F5C48190FA2
+485BA21A075AA391CDFCA2B5FCAD7EA280F207C0A27EA36C7F1A0F6C1A80806C191F6E18
+006C61806C197E6C6D177C6D6C17FC6D6C4C5A6D6D4B5A6D6D4B5A6D01F0ED1FC06D01FC
+4B5A010001FF03FFC7FC6E01E0EB07FE021F01FEEB3FFC020790B612F0020116C0DA003F
+92C8FC030714F8DB001F13804A4D79CB59>I<B912F0F0FF8019F019FC19FFD8001F9026
+80000114C0DD001F7F060713F806017F726C7E737E737F737F737F8587737F8587A2747E
+A38786A21C80A51CC0A586A462A51C80A51C00A26263A2631AFF636163614F5B634F5B07
+3F90C7FC4F5A4F5A06035B061F5B4DB512C0BBC8FC19FC19F0198006F0C9FC524B7CCA5E
+>I<BB12C0A486D8000F01E0C77E18071801F0007F193F191F190F1907861903A31901A3
+EF0F80A2737EA497C7FC171FA2173F177F17FF160392B6FCA5EDE0031600177F173F171F
+A2050FEC0F80A3F21F00A494C8FC621A3EA21A7EA31AFE6219011903A21907190FF13FF8
+19FF1803183FBBFCA262A3494A7CC951>I<BBFCA41A80D8001F01C0C7FC181F18038484
+197F193F191F1AC0190FA31907A4171FF103E0A496C7FCA25FA25F5F5E160792B6FCA5ED
+C0071601828383A283A794C9FCB1B8FCA5434A7CC94D>I<B7D8FC01B712FCA5D8001F01
+C0C8001FEBC000B3AA92B9FCA503C0C8121FB3AEB7D8FC01B712FCA5564B7BCA60>72
+D<B712FEA5D8000FEBE000B3B3B3ABB712FEA5274B7DCA2E>I<B700F8027FB512F0A5D8
+001F01C0C9EBC00074C7FCF101FE4F5A4F5AF10FE04F5A4F5A4FC8FCF001FE4E5A4E5AF0
+0FE04E5A4E5A4EC9FCEF01FE4D5A4D5AEF0FE04D5A4D5A4DCAFCEE01FE16034C7E4C7F5E
+4C7F93B57E03C18015C303C780DBCFE77FDBDFC37FEDFF8104017F4B6C804B7F4B6D7F03
+E0814B6D7F8385717F717F83857180727F8486727F8486727F727F84867280737F858773
+7F87B700F8010FB612FCA5564B7CCA60>75 D<B8FCA5D8001F01C0C9FCB3B3A4193EA419
+7E197CA519FCA31801A2F003F8A21807180F181F183F187FEF01FF1707173FBA12F0A53F
+4B7BCA4A>I<B600E04DB612806F5FA26F5FA2D8001F09FCC7FC6FEF0F7FA2DABFFE171E
+A2DA9FFF173CA3028F6D1678A202876D16F0A202836DED01E0A302816DED03C0A202806D
+ED0780A26F6CED0F00A36F6C151EA26F6C5DA26F6D5CA26F6D5CA36F6D495AA26F6D495A
+A26F6D495AA3706C49C7FCA2706C131EA2706C5BA3706D5AA2706D5AA270EBE1E0A370EB
+F3C0A270EBFF80A27190C8FCA2715AA3715AA2715A497EB600F06D480103B71280A3715A
+715A694B7BCA74>I<B600E092B612FC8181A281D8001F6D9239001FE0006F705A82A282
+02BF7F029F7FA2028F7F02877F02837F8214810280806F7F6F7F83816F7F6F7F6F7F8381
+6F80707F707F8482707F707F707FA2707F7014807113C019E0837113F07113F87113FC19
+FE837113FF71148F7213CF1AEF847213FF8484A284848485A2858585A285858585497EB6
+00F8167F1A3F1A1F1A0FA2564B7BCA60>I<B9FC18F8F0FF8019E019F8D8000F9026C000
+0713FE9439007FFF80061F7F727F727F727F84868684A286A862A24E5BA2624E5B4E5B4E
+5B4E5B95B5C8FC050713FC92B712F0198006FCC9FC18FF9226C0003F13C0050713F0717F
+717F717F187F85727FA28486A786A71C3E86A28474137E72157C726D13FCB700FC6D9038
+FE01F872EBFF8373EBFFF0071F14E007031480CD383FFE00574C7CCA5C>82
+D<DA7FFCEB01C00103B5EAC003011FECF00749ECFC0F90B7121F48D9E00F13BF4890C713
+FFD807FC141F4848804848140382484880177F485A173F171F12FFA2170F7FA217077F7F
+7F6D92C7FC6D7E6C13F014FF15F86CECFF8016F86C15FF6C16C0836C826C826C826C8201
+3F816D1680010716C01300020F15E01400030714F0ED007F160F16037013F882177F1278
+00F8163FA3171FA27E18F0A27EA26CEE3FE07F18C001E0157F6DEDFF8001FC160001FF14
+0302E0EB0FFED97FFEEB3FFC486CB612F0D8FC0F5DD8F803158048C66C49C7FC48010313
+F0354D79CB44>I<003FBB12C0A5DA80019038FC001FD9FC001601D87FF09438007FE001
+C0183F49181F90C7170FA2007E1907A3007C1903A500FC1AF0481901A5C894C7FCB3B3A7
+49B812FCA54C4A7CC955>I<B700F8023FB512F8A5D8001F01C0C9380FE000745AB3B3AD
+6D180F63811A1F6D96C7FC626D7F1A7E6D7F6D606E6C4B5A6E6CED07F06E6C4B5A6E01C0
+EC3FC06E01F049B45A020101FF011F90C8FC6E91B55A033F15F8030715E0030092C9FC04
+0713F0554C7CCA5E>I<B700F00203B6FCA5D8001F01E0C93803FC00745A6D61811A036D
+6D5F1A076D6D5F1A0F6D616F161FA26D6D94C7FC626E6D153E1A7E6E177C7015FC6E5F82
+19016E6D5D19036E5F7014076E5F82190F6E6D5D191F6E6D92C8FC616F153E83197E6F6D
+137C19FC6F6D5B18016F5DEFF003A26F01F85B18076F01FC5B180F6F5DEFFE1F6F92C9FC
+17FF607013BE18FE705BA2705BA3705BA2705BA2705BA3705BA27090CAFCA2177EA2584C
+7ECA5D>I<B7D8E007B791B612C0A5D8003F0180C7000101FCC9387F80006F7070C7FC6D
+70183EA26F70167E6D71177C876F1BFC6D715F6F831E016D656F4B6D14036D65876F92B5
+15076D656F4A8007F3160F6E647001036E141F6E04E194C8FCA27001076E5C6E04C0163E
+8770010F177E6E4C6C157C70011F814F6C15FC6E637049EDC0016E033E6D5D1CE070017E
+16036E037C6D5D7001FC15F04E6D14076E63DCFF01EEF80F6F4A6D5DA20583EEFC1F6F4A
+6D92C9FC1CFE05C75F6F4A6D143E05EF16FF4E6E137E6F197C05FF17FC6F91C86C5BA36F
+496F5BA24D816F61A26F496F5BA370486F5BA370486F90CAFCA24D81041F5FA27048167C
+7A4C7ECA7F>I<B700F84AB6FCA5D8001F01F0C93803FC006F705A6D4E5A6D6D4C5A816D
+4E5A6D6D4C5A826D4EC7FC6E6D5D70157E6E5F6E7F704A5A6E4C5A6E7F704A5A6E4C5A6E
+7F71495A6E4CC8FC6F7F71137E6F5D6F7F71485A6F4A5A6F13FC71485A6F4A5A6F13FFF0
+9F806F02BFC9FC7013FF60705B8260705B8260B3A7037FB612FEA5584B7ECA5D>89
+D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFF2703FC00077F486C6D7F486C6D
+7F6E7E83707EA3707E6C90C7FC6C5A6C5AC9FCA4ED1FFF021FB5FC49B6FC130F013FEBC0
+3F9038FFFE00000313F04813C04890C7FC485A485AA2485AA2485AA4167FA26D14FF007F
+15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038E07F076C9038FFFE0300014A
+7ED8003F9038F0007F0103018090C7FC37337CB13C>97 D<EB7FC0B5FCA512037EB3A2ED
+0FFF037F13F002C1B512FC02C714FF9126CFF80F7F9126FFC00113E092C76C7E02FC6E7E
+4A6E7E5C4A6E7E84831980A219C083A319E0AC19C0A25F1980A34D1300606E141F606E4A
+5A6E4A5A02BF4A5A91261F80035B9027FE0FF01F5B496CB548C7FC496C14F849C614E0C8
+D80FFEC8FC3B4D7CCB44>I<91380FFF8091B512F8010314FF010F158090263FFE0013C0
+D97FF8EB1FE0D9FFE0EB3FF04849EB7FF8484913FF4890C7FC5A5B121F5B003FED7FF0EE
+3FE0007FED1FC093C7FC5BA212FFAC127F7FA2123FA26D153E121F6D157E6C167C6C6D14
+FC6C16F86C6D13036C01F0EB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C0100
+14F0020F13802F337CB137>I<EF1FF0EE3FFFA51600177FB3A2EC0FFF91B512E0010314
+F8010F14FE013FEB01FF903A7FF8003FFFD9FFE0130F48497F48497F4890C77E4881485A
+A2485AA3127F5BA212FFAC127FA37F123FA2121F7F000F5D6C6C5C5E6C6D5B6C01E0497F
+6C6D017FEBFFE090393FFE03FE6DB512F801075C010114C09027001FFC00EBC0003B4D7C
+CB44>I<EC0FFF91B512F0010314FC010F14FF90263FFE077F90267FF0007F4948EB3FE0
+4801806D7E48824890C76C7E4848140783485A003F6F7EA3485A701380A312FFA290B8FC
+A401F8CAFCA5127FA27FA2123FA26C6CED0F80A2000F161F6C6C16006E5C6C6D147E6C6D
+5C6C6D495AD97FFCEB07F0903A1FFF803FE06D90B55A010392C7FCD9007F13FC020713C0
+31337DB138>I<ED7FE0913807FFFC021F7F027F7F902601FFE0138049018113C0902607
+FE0113E049485A14F8131FEB3FF0A26F13C0EB7FE06F1380EE3E0093C7FCADB77EA52600
+7FF0C8FCB3B3A2003FB512F8A52B4D7DCC26>I<DA7FFCEB0FF00103B538807FF8011F91
+38F1FFFC4991B512FE90267FF01F13F32701FFC007138348EB0001A248486DEBC1FC000F
+EEE0F849027F1300A2001F82A8000F5EA26D14FF00075E6C6C495BA26CD9C00790C7FC6C
+9038F01FFC4890B55A5ED803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612
+FCEEFFC06C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83F
+F0140049153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6C
+ED7FE0D80FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15F00107
+1580D9003F01F0C7FC37487DB03D>I<EB7FC0B5FCA512037EB3A2923801FFC0030F13F8
+033F13FE4B7F9126C1FE077F9126C3F0037F9138C7C001DACF8080150002DE7F02FC81A2
+5CA25CA35CB3A9B6D8C07FEBFFE0A53B4C7BCB44>I<13FCEA03FF487F487FA2487FA66C
+5BA26C5B6C90C7FCEA00FC90C8FCACEB7FC0B5FCA512037EB3B3B61280A5194D7BCC22>
+I<EB7FC0B5FCA512037EB3A393383FFFFEA5040390C7FC17FCEE0FF04C5A4C5A4C5A04FE
+C8FCED03FC4B5A4B5AED1FC0ED7F804BC9FC14C102C37F14CF02DF7F91B57E825C4A6C7E
+02F87F4A6C7E9138C01FFF81836F7F6F7F816F7F83707E163F707E83707F707F84B6D880
+3FEBFF80A5394C7CCB41>107 D<EB7FC0B5FCA512037EB3B3B3AAB61280A5194C7BCB22>
+I<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D010F804B6D6C4814E0DBFE0790
+26C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F8806CDA8000D9F1E06D7E02CFC7
+EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5DA34A5DB3A9B6D8C03FB5D8F0
+0FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F
+9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8
+C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103B6FC010F15C090261FFE017F
+903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817804980000F17C048486E13E0
+A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C
+000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB6
+12C0010392C7FCD9007F13F80207138036337DB13D>I<90397FC00FFFB5017F13F002C1
+B512FC02C714FF9126CFF80F7F9126FFC00313E0000391C77F6C01FC6E7E4A6E7E5C4A6E
+7E848319808319C0A47113E0AC4D13C0A319805FA219004D5A804D5A6E4A5A6E4A5A02FF
+495BDB80075B9126EFF01F5B02E7B548C7FC02E314F802E014E0DB0FFEC8FC92CAFCAFB6
+12C0A53B467CB044>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E11380EC8F8300
+03D99F0713C06C139E14BCA214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7B612E0A5
+2A317CB032>114 D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0003F4848
+130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC015F06C14
+FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F14019138003FFE150F
+0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE001FFEBFF
+C091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>I<14F8A61301A41303A2
+1307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3A6167CAA
+013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C1300EC0FFC
+26467EC430>I<D97FE0EC3FF0B5EC7FFFA5000315016C81B3AB5EA25EA25E7E6EEB0F7F
+017F021E7F6E017CEBFFE090393FFE01F86DB512F0010714E0010114C09027003FFE00EB
+C0003B327BB044>I<B66C90B512C0A5000101E0C73807F0006E5D6C5F6E140F017F5E80
+171F013F93C7FC6E5C011F153E6E147E6D157C6F13FC6D5DEDC001A26D01E05B16036D5D
+EDF0076D5DEDF80F027F5CEDFC1F023F91C8FC15FE5E021F133EEDFF7E6E137C16FC6E5B
+A26E5BA36E5BA26E5BA26F5AA26FC9FCA23A317DAF41>I<B60081B500FC90387FFFF0A5
+00019026E000030180903803FC006E715A6C6F5E6E6F1303017F61A26E496D1307013F61
+6E6F130F011F4A5EA26E6F131F6D4A93C7FCDD9FFC5B6DD9801F153E170F03C06E137E6D
+023F157C93383E07FFDBE07E15FC6DDA7C035C03F015816D02FC5D4C7E03F815C3DA7FF9
+5E9226FDF00013E7DA3FFF5E4C137F19FF6E5F4C7FA26E496D90C8FCA26E5E93C7120FA2
+6E486E5AA202015E4B1403A26E486E5A54317EAF59>I<B6D88007B512C0A526007FFCC7
+387F8000013F037EC7FC6E14FE6D6C495A6D6D485A6D6D485A6D01E05B4C5A6D6D485A6D
+EBF83F6E6C48C8FC91383FFEFE6E6C5A5E6E5B6E5B806E7FA26E7F82824A7F5C4A80DA0F
+E77FDA1FC37FDA3F817F4AC67F147E4A6D7E49486D7E01036E7E49486D7F49487F494881
+49486D7F017F6E7FB500F8011FEBFFF0A53C307EAF41>I<007FB500C090387FFFE0A5C6
+01F0C73803F8006E5D017F5E6E1407013F5E6E140F011F5E6E141FA26D6D91C7FC5F6D15
+3E6F137E6D157C6F13FC6D5DEDF0016D5DEDF803027F5C15FC1607DA3FFE5B160F021F5C
+EDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E5BA26F5AA26F5AA26F5AA393C9FC5D
+153E157E157CD81F8013FC486C5B387FE001D8FFF05B14035D14074A5A49485A007F49CA
+FCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B467EAF41>I
+E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmbx12 13.14 52
-/Fj 52 122 df<123C127E12FFA4127E123C08087C8711>46 D<EB7F803803FFF03807E1
-F8380F807C48487E48133F003E7F007E1480A400FE14C0AD007E1480A46CEB3F00A26C13
-3E6C6C5A3807E1F86CB45A38007F801A237EA21F>48 D<131C133C13FC12FFA21200B3AA
-387FFFFCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12
-FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B
-1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>
-I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB
-03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FE
-A214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A2
-14F81301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A1218
-5A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEB
-FFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FC
-C7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE
-0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA200
-7E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E
-123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512
-C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133C
-A25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F8381C007C48
-133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313E014F800
-0F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C1338381F80
-F03807FFE00001130018237DA21F>I<13FF000313C0380F83E0381F00F04813F8007E13
-7CA2147E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C
-007E13FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141C
-A2143EA3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F140301
-1C7FEB1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C712
-0FA2486E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F0007FED3F80ED1F
-C0ED0FE0A216F0A21507150FA216E0151F16C0ED7F80913801FE0090B512F815FF9039F0
-003FC0ED0FE0ED07F016F8150316FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F82625
-7EA42C>I<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301
-4848130048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C
-1430120F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013
-C025257DA42C>I<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2
-140E141EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7
-FCA223257EA428>69 D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C
-5C90B5FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F8
-0003F800AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72
-D<B512E0A23803F800B3AFB512E0A213257EA417>I<B539E007FF80A2D803F8C7EA7800
-16605E4B5A0307C7FC150E15185D5D5DEC03804AC8FC140E141F4A7E147FECDFC09038FB
-8FE09038FF0FF0EBFC07496C7E816E7E1400157F82153F6F7E6F7E8215076F7E82B539E0
-3FFFC0A22A257EA430>75 D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E
-157CEC03FCB6FCA220257EA425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D14
-06A26D6C130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A29138
-7E0300A3EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A23525
-7EA43A>I<D8FFF8903807FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13
-036D7E6D7E80EC7F80EC3FC0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3F
-D8ED1FF8150F15071503A2150115001678486C1438D8FFFC1418A22B257EA430>I<B67E
-15F83903F801FEEC007F6F7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F8
-03F06E7E6E7E157EA2157FA482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B
-257EA42E>82 D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A2
-7E91C7FCB4FCEA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC
-0FE01407A200C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B
-257DA422>I<007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C16
-0C5AA4C71400B3A390B512FEA226247EA32B>I<B539E00FFFC0A2D803F8C7EA78001630
-B3A700015D7F00005D137C6D495A6D0107C7FC90380FE03E903803FFF89038007FC02A25
-7EA42F>I<B5398001FFE0A2D807F8C7EA1C0000031518A26D1438000115306D14700000
-15607F6D5C80013F495AA2ECC003011F91C7FC6E5A010F130614F001075BA26D6C5AA2EC
-FC3801011330ECFE700100136014FF6E5AA26E5AA36EC8FCA2140EA22B257FA42E>I<B5
-3B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D496C13
-38000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E0138190
-280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14FC6D
-486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>I<B539C001FFE0A2
-D807F8C7EA1C006C6C141816386C6C14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7
-FC90380FF006150E903807F80C6D6C5A15386D6C5A903800FF6015E06E5A6E5AAE90380F
-FFFCA22B257FA42E>89 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1F
-FE3803FE7EEA0FC0EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B
-187E971E>97 D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2
-EC01F8A215FCA815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E26
-7FA522>I<EB7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F
-6C130CEA1F80EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC13
-7F3803FFCF380FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380F
-C0EF3903FFCFFC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048
-137C127E147E12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803
-FFE038007F8017187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400
-A7B5FCA2EA0FC0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F
-01393E00F800007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA2123812
-3C383FFFE06C13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00
-381F807E3807FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0F
-C013D89038D007E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4
-EA1F80EA0F00C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC
-1FF0A2EC0780EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB
-80FC147E80A2EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EA
-FFFCA20E267EA511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A
-9007E803F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE9038
-83FF80390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F
-803803FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F
-00A2381F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC0
-9038F007E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F
-809038CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7C
-EB90FC13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C
-07EA7001EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC0
-01A212E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A3120312
-07120F121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218
->I<39FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E97
-22>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13
-FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<3BFFF9FF
-E0FF80A23B1FC03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015
-E02601F8635BA29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA201
-1E133CA3010C131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C
-6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F39
-07003F8048131F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E0
-0300A26D5A00031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D
-5AA26DC7FCA21306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720
->I E
+%DVIPSBitmapFont: Fi cmsl10 10.95 48
+/Fi 48 122 df<EEFF80030F13F092383FC0789238FE001CDA03F8130E4A48133FDA1FE0
+13FF4A5A4B5AEC7F005C5CEE00FE010115784A1400A513035CA4EE01FC0003B7FC17F8A2
+3A0007F0000F1607A2130F4A14F0A4160F131F4A14E0A4161F133F4A14C0A4163F137F91
+C71380A4167F5B491500A31201486C903801FF80B5D8F83F13FCA25D30407EBF33>12
+D<EEFFC0030FEBFB8092383F803F9238FE007FDA03F813FF4A5A91381FE001EC3FC00380
+1400EC7F004A7F4A805F13014A5CA4160113034A5CA416030003B7FC5FA23A0007F00003
+A21607130F4A5CA4160F131F4A5CA4161F133F4A5CA4163F137F91C75BA4167F5B4992C7
+FCA300015D486C497FB5D8F87F13FCA331407EBF33>I<007FB5FCA2B512FEA418067C96
+1E>45 D<EC07F8EC3FFF9138FC0FC0903903F003E0903907C001F0D90F8013F849C7FC01
+3E14FC017E147C017C147E13FC485AA20003157F5B1207A2120F5BA2121F16FF5BA2123F
+A44848EB01FEA648C7EA03FCA5ED07F8A25A16F0A2150F16E0A3ED1FC0A21680007E143F
+1600157E123E003F5C4A5AD81F805B000FEB07E06C6C485A2603F03FC7FC3800FFFCEB1F
+E0283F79BC2D>48 D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F
+15C0A5143F1580A5147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497E
+B612F8A31D3D78BC2D>I<17E016011603831607A2160FA2161F83163FA2167F167716F7
+EEE7FCED01E316C3150316831507EE03FEED0F01150E151E151C153C03387FED78001570
+15F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F5C
+A2495AA2494881170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC3F
+FEB500F00107B512FC19F85E3E417DC044>65 D<013FB7FC18E018FC903B007FE00007FE
+6E48903801FF809438007FC05DF03FE0F01FF0A3027F16F892C8FCA54A16F04A153F19E0
+187F19C0F0FF8001014B13004A4A5A4D5AEF1FF04D5ADC03FFC7FC49B612F8EFFF8002F8
+C7EA3FE0EF0FF0EF07FC717E010715014A81711380A319C0130F5CA5011F4B13805C1900
+5F601707013F4B5A4A4A5A4D5A4D5A017F913801FF8001FF020F90C7FCB812FC17F094C8
+FC3D3E7DBD40>I<DCFFC01338030F01F01378037F01FC13F0913A01FF803F01913A07FC
+000781DA1FE0EB03C3DA7FC0EB01E74AC812FF4948ED7FE0D907FC153F495A4948151F49
+5A4948150F494816C018074890C9FC485AA2485A000F1880491603121FA248481607A295
+C7FC485AA412FF5BA75BA2181C183C1838A27F007F1778187018F0003F5F6D150160001F
+16036C6C4B5A95C7FC6C6C5D6C6C151E6C6C5D6C6C15F86D6C495A6D6CEB07C0D91FF0EB
+1F80D907FE01FEC8FC0101B512F86D6C13E0DA07FEC9FC3D4276BF42>I<013FB7FC18E0
+18F8903B007FF0000FFE6E48EB01FF9438007FC04B6E7E180F85727E727E147F4B6E7EA2
+727EA302FF178092C9FCA54918C05CA41A8013034A5DA41A0013074A5DA261A24E5A130F
+4A5E180F61181F61011F4C5A5C4E5A4EC7FC4D5A4D5A013F4B5A4A4A5AEF3FE0EF7F8001
+7F4A48C8FC01FFEC1FFCB812F0178004FCC9FC423E7DBD45>I<013FB812F8A39026007F
+F0C7127F6E48140F18034B14011800A31978147F4B1570A502FF147092C7FCA3190017F0
+495D4A1301A21607161F91B6FC495DA29138FC003F160F1607160301075D5CA219E01801
+19C0010FEC07004A90C712031980A218071900011F5E5C181EA2183E183C013F167C4A15
+FC4D5A1707017F151F01FF4AB45AB9FCA2603D3E7DBD3E>I<013FB812E0A3903A007FF0
+00016E48EB003F180F4B14071803A31801147F4B15C0A514FF92C71270A395C7FC17F049
+5D5C160116031607161F49B65AA39138FC003F160F160701075D4A1303A5010F4AC8FC5C
+93C9FCA4131F5CA5133F5CA3137FEBFFF0B612F8A33B3E7DBD3B>I<013FB5D8F807B6FC
+04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F4B5DA4181F14FF92C8
+5BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FCA45F130F4A5DA41703
+131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC6115C0483E7DBD44>
+72 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5DA514FF92C7FCA55B
+5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2B6FC263E7EBD21>
+I<013FB500F8010FB5FC4C5BA29026007FF0C7000313E06E486E130019FC4B15F04E5A4E
+5A4E5A061EC7FC027F5D4B5C4D5A4D5AEF07804DC8FC02FF141E92C7127C5FEE01E04C5A
+4C5A49021FC9FC4A5B5E4C7E5D03077F01035B9139FC1F3FE0153C4B6C7E15F09139FFE0
+0FF84913C092380007FC5C4A6D7E5C707E130F4A6D7F84177F717EA2011F6F7E5C717EA2
+717EA2013F6F7E5C84A2017F83496C4A13E0B600E0017F13FFA24B90B6FC483E7DBD47>
+75 D<013FB512FEA25E9026007FF8C8FCEC3FE0A25DA5147F5DA514FF92C9FCA55B5CA5
+13035CA513075CA21838A21870130F5CA218E0A3011F15014A15C01703A21707EF0F8001
+3F151F4A143F177FEFFF00017F140301FF143FB9FC5FA2353E7DBD39>I<90263FFFF093
+381FFFF85013F0629026007FF8EFF000023F4D5AA2023B933801DFC0A2DA39FCED039FA2
+F1073F14790271040E5BEC70FE191C19381A7F02F01670DAE07F94C7FC19E0A2F001C062
+01016D6C495A02C05FF00700A2180E6F6C14010103161C028003385BA218706F7EF0E003
+13070200DA01C05BA2923907F00380A294380700075B010E902603F80E5C5FA25F190F01
+1E6D6C5A011C605FA2EEFDC0DB00FF141F013C5D013860013C92C7FC017C5C01FE027E14
+3F2607FF80017C4A7EB500FC037FB512E004785E4A1338553E7CBD53>I<90263FFFE002
+3FB5FC6F16FEA29026003FF8020313C0021F030013004A6C157C023B163C6F1538143981
+0238167802787FDA707F157082153F82031F15F002F07FDAE00F5D821507820303140101
+0180DAC0015D82811780047F1303010315C04A013F5C17E0161F17F0040F1307010715F8
+91C7000791C7FC17FC160317FE04015B4915FF010E6E130E188E177F18CEEF3FDE011E16
+FE011C6F5AA2170FA21707133C01386F5A133C017C150113FE2607FF801400B512FC1870
+5C483E7DBD44>I<923803FF80031F13F09238FE01FE913903F0003FDA0FC0EB1FC0DA3F
+80EB07E0027EC76C7E49486E7E49488149486E7E4948157F495A013F17804948ED3FC049
+C9FCA24848EE1FE012035B000718F05B120FA2485A19F8123F5BA2127FA219F04848163F
+A5F07FE0A35BF0FFC0A219805F19007F4D5A127F4D5A60003F160F6D5E001F4C5A4D5A6C
+6C4B5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C4A5A017FEC1FC06D6C495AD90FE001FE
+C8FC903903F807F80100B512C0DA0FFCC9FC3D4276BF47>I<013FB612FEEFFFE018F890
+3B007FF0000FFC6E48EB01FF7113804BEC7FC0183F19E0F01FF0A2147F5D19F8A402FFED
+3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A4D5AEF0FF80103ED3FE04A903801FF
+8091B648C7FC17F002FCCAFCA213075CA5130F5CA5131F5CA5133F5CA3137F497EB612E0
+A25D3D3E7DBD3E>I<013FB612F017FF18E0903B007FF0003FF86E48EB07FCEF01FE4B6D
+7EF07F8019C0183F19E0147F4B15F0A502FFED7FE092C8FCA219C0F0FF80A2494B13004A
+5D4D5AEF0FF04D5AEF7F800103DA07FEC7FC91B612F017809139FC0007E0EE03F8EE00FC
+0107814A147F717EA284A2130F5CA484011F157F5CA41902013F17075CA2F0F00F017F17
+0E496C143FB600E0011F131C94380FF83C4B01071378CA3801FFE09438003F8040407DBD
+43>82 D<9238FF80070207EBE00F021FEBF81E91387F00FE02FCEB1F3ED903F0EB0FFE49
+481307494813034AEB01FC49C7FC491400133E137E177C491578A57F1770A26D15008080
+80EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F02031480DA003F13C0
+15031500EE7FE0163F161FA2160F121CA31607160F003C16C0A31780003E151F1700007E
+5D007F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC7
+FCD8E00713F839C0007FC030427BBF33>I<0007B912F0A33C0FFE000FF8003F01F0160F
+01C04A13034848160190C7FC121EF000E048141F5E1238A212781270153F5E5AA3C81600
+157F5EA515FF93C9FCA55C5DA514035DA514075DA5140F5DA3141FEC7FFC0003B7FCA33C
+3D76BC42>I<B600E090B512FC4B15F8A2000101C0C7000F13006C49EC03FCEF01F091C9
+FC60A317015A495EA417031203495EA4170712074993C7FCA45F120F49150EA4171E121F
+49151CA4173C123F491538A31778177017F05F001F15015F16036D4A5A000F93C8FC5E6C
+6C141E6C6C5C000115F86C6C495A017FEB07C090393FC03F8090260FFFFEC9FC010313F8
+9038007FC03E4073BD44>I<B6017FB5D88007B512804A1A00A2000701C0010101E0C713
+F06C90C80180EC3FC06C48735A99C7FC057F150E1B1E6D191C6C1A3C1B3805FF15787214
+705E636EEB03BF017F4E5AEE073F505A040E7F051F4AC8FC161C6E170E013F1438621678
+04706D5BEEF00F04E05D90381FE00104C015F003035E0480140106F85B92260700071303
+02F05F010F010E150797C9FC5D190E4BEB03FC616E5A01075F5D61DAF9C014FE05015BEC
+FB8002FF6F5A7F92C75CA24A93CAFC835C606D5A605C604A15781870594074BD5D>87
+D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82A248140782A26C5A13
+7890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848
+133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F5B913903BF07009038
+80073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97
+D<EB3F80EA1FFFA3C6FC137FA291C9FCA55B5BA512015BA4EC07F80003EB3FFF9039F8F8
+0FC09039FBE003E09039FF8001F891C77E5B4848147E49147F5B821780A2120F5B17C0A3
+167F001F16805BA4EEFF00123F5B4B5AA24B5A5E007F4A5AA24B5A6D495A4BC7FCD87CE0
+137E39F87001F839F03C07E039E00FFF80260003FCC8FC2A4077BE33>I<EC1FF0ECFFFE
+903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F04848EB3FE0485AA2
+4848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC0380150716006C6C
+5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0FF0242A7AA828>
+I<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0A491380FF03FECFF
+FC902603F81F138090390FC007BF90391F8003FF90387E0001497F0001157F4848150048
+5A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E1507A26C4A5A7F00
+1F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE0FD90FF0EBE0002D
+407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F000F80017E14C049EB
+07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FCA2D8FF80C8FC90C9
+FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B6C6C485A3900FC07
+C0D93FFFC7FCEB07F8242A7BA828>I<ED07F0ED3FFCEDFC1E913803F03F4A48B4FC4A48
+1380141FEC3F81DA7F0113008102FE137C93C7FCA213015CA513035CA50007B512F8A326
+0007F0C8FCA3130F5CA5131F5CA5133F5CA5137F91C9FCA55B5BA4EA03FF007F13FEB5FC
+A229407DBF1C>I<177C913907F803FE91393FFE0F8F9139FC0F9C3F903901F007F89039
+07E003E0D90FC013F0011F903801F80C02801400133FD97F007FA315035B495CA3017E49
+5A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F8091C9FC485AA47F
+A27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F801300003FC8127F00
+3E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903
+F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA25CA513015CA513
+035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F049
+5A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B4915
+00A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14
+FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
+1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<147FEB3FFFA31301
+7FA25CA513015CA513035CA501070103B5FC02F014FEA26F13F06F1380EEFE00010F14F8
+4A485AED03C04B5A031FC7FC153E011F13784A5AECC3E0ECC7F0ECCFF814FF497F14F9EC
+E1FE14C04A7E4A7E4980017E133F82151F82150F01FE8049130782A2000181486C49B4FC
+B5D8F03F13F04B13E0A2303F7EBE30>107 D<143FEB1FFF5BA213017FA214FEA5130114
+FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA
+03FF007F13F8A2B5FC183F7DBE1A>I<902707F007F8EB03FCD803FFD91FFF90380FFF80
+913CE0781FC03C0FE09126E1E00FEBF0073E001FE38007E1C003F090260FE700EBE38002
+EEDAF70013F802FC14FE02D85C14F84A5CA24A5C011F020F14074A4A14F0A5013F021F14
+0F4A4A14E0A5017F023F141F91C74914C0A549027F143F4992C71380A300014B147F486C
+496DEBFFC0B5D8F87FD9FC3F13FEA347287DA74C>I<903907F007F8D803FFEB1FFF9139
+E0781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85CA24A130F
+131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C49
+1380B5D8F87F13FCA32E287DA733>I<EC0FF0ECFFFE903903F01F8090390FC007C049C6
+6C7E013E6D7E01FC6D7E48488049147C0003157E485A000F157F5B121FA2485AA2007F16
+80A2170048C85AA54B5AA25E5A6C4A5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C
+5B6C6C485A3900FC0FE090383FFF80D90FF8C8FC292A7BA82D>I<91387F01FE903A7FFF
+0FFFC09139FE3E03F09238F801F8903A03FFE000FE6D49137F4B7F92C713804A15C04A14
+1FA218E0A20103150F5C18F0A3171F010716E05CA3173F18C0130F4A147F1880A2EFFF00
+4C5A011F5D16034C5A6E495AEE1FC06E495AD93FDC017EC7FC91388F01F8913883FFE002
+8090C8FC92C9FC137FA291CAFCA45BA25BA31201487EB512F8A3343A81A733>I<91390F
+E003C0DAFFFC1380903903F81E0790390FE0070F90391F80038FD97F0013DF01FE130148
+48903800FF00485A1207485A8248485C123F495CA2485AA2150112FF90C75BA41503A25E
+A37E15077F003F4A5A151F6C6C133F6C6C137F000714FF3903F003CF3A00FC0F8FE09038
+3FFE0FEB0FF090C7FC151F5EA5153F5EA4157F4B7E023F13FEA32A3A7AA730>I<903907
+F01F80D803FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC13F002D813
+E09138F801804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FE
+A325287EA724>I<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B
+00031407A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F
+13079038007FFE1403140100381300157EA2123C153E157E007C147CA2007E147815F800
+7F495A4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>I<EB0380A41307
+91C7FCA25BA25BA2133EA2137E13FE12011207001FB512C0B6FCA2D801FCC7FCA312035B
+A512075BA5120F5BA41407001F130E13C0A4141E141C1380A26D5AA2000F5B14F03807E1
+E03801FF80D8007EC7FC1A3978B723>I<01FE147F00FFEC7FFF4914FEA2000714030003
+1401A34914FCA4150312074914F8A41507120F4914F0A4150F121F4914E0A2151FA3153F
+4914C0157F15FFEC01DF3A0FC003BFE09138073FFF3803F01E3801FFF826003FE0138028
+2977A733>I<B539E007FFF05D17E02707FE000313006C48EB01FC6F5A5E00014A5A5EA2
+4B5A6D1307000092C7FC5D150E6D5B7F5DA25D1480013F5B14815D14C3011F5B02C7C8FC
+A214CE14EEEB0FFCA25CA26D5A5CA25CA26D5A2C2878A630>I<B500C3B53803FFFCA204
+FE14F8290FFE003FE00013C0D807F86D48EB7F000003173E183C150F18386D5E0001141F
+705B153F4D5A15776D4B5A0000ECE7F04DC7FCEC01C3170E9038FF0383017F5D91380703
+F85FEC0E01021E5CD93F9C14F002BC6D5A02B813FDDAF8005B4A13FF5F6D5A94C8FC5C4A
+137E167C6DC7FC1678010E14383E2878A642>I<48B539C07FFFC0A33C000FFE003FF800
+6D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1F
+C7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F02707FECE01F0101
+80903803C00F49486C7ED90F007F491303017E80D801FE80D807FF497EB5D8803F13F8A3
+32277FA630>I<90B539E007FFF05E18E0902707FE000313006D48EB01FC705A5F01014A
+5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05EED81C015C19138
+1FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E14
+1C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80
+A630>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmsl10 10.95 48
-/Fk 48 122 df<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF0380380
-70A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>12
-D<EB03F4EB1C1CEB383C137013E01438EA01C0A538038070387FFFF038038070A4380700
-E0A6380E01C0A6381C0380001E13C038FF9FF016207E9F19>I<EAFFF0A20C027E8A0F>
-45 D<137EEA01C338030180000713C0EA0E0014E05AA2EA3C0112381278A538F003C0A5
-1480130712E01400A2130E1260EA701CEA3038EA3870EA0FC0131F7C9D17>48
-D<13181338EA01F8EA0E701200A513E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B
-9D17>I<1408140C141C143CA2147C147E149EA2EB011EA21302801304A21308A2011013
-8014071320A2EB7FFF90384007C0EB8003A2EA0100A21202EC01E01206001F130339FF80
-1FFE1F207F9F22>65 D<0007B5FC3900F803C090387801E0EC00F04913F8A515F03801E0
-01EC03E015C0EC0F809038FFFE009038E00F803903C003C0EC01E015F0A21400A2485A14
-01A215E01403EC07C0390F000F80EC3E00B512F01D1F7E9E20>I<ECFE02903807018690
-381C004E0170133E49131E4848131C4848130C120748C7FC5A121E003E1408003C140012
-7CA45AA4127815101520A27E1540001C14806CEB01006C13023803800C3800E030EB3FC0
-1F217C9F21>I<0007B57E3900F801E0903878007081497F151E150E150FA348481480A6
-484814005DA3151E153E4848133C5DA25D4A5A4A5A260F000FC7FC143CB512F0211F7E9E
-23>I<0007B512FC3900F8007C0178131C150C5B1504A414043901E00800A31438EBFFF8
-EBE0383803C010A4EC00081510485AA21520A2156015C0380F00011407B612801E1F7E9E
-1F>I<0007B512F83900F800780178133815185B1508A53901E00800A314181438EBFFF8
-3803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E>I<3A07FF83FFC03A00F8
-007C000178133CA2495BA648485BA490B5FCEBE0004848485AA64848485AA64848485A01
-807F39FFF07FF8221F7E9E22>72 D<3807FF803800F8001378A25BA6485AA6485AA6485A
-A648C7FC7FEAFFF0111F7E9E10>I<3A07FF803FE03A00F8001F000178130C5D4913205D
-5D4AC7FC1402140848485A5C146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E
-141F48487E81140781140381380F00016D487E39FFF00FFE231F7E9E23>75
-D<3807FFE0D800FCC7FC1378A25BA6485AA6485AA41580EC0100EA0780A25C1402140614
-0E380F001E147CB512FC191F7E9E1C>I<D807F8EC7FE00000ED7C00017814BCA2019C49
-5AA21502A2018E13041508D8010E5C1510A26D1320A215400002EC41E09038038081EC81
-01A21482A23A0401C403C0A214C8A2EB00F0000C13E04B5A001E01C07FD8FFC0EB7FFC2B
-1F7E9E2A>I<D807F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83
-C0D801035BEB01E0A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A214
-01000C5C001E1300B47E221F7E9E22>I<EB01FCEB0E0790383801C090387000E0484813
-F048481378485A153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01
-F0007C14E01403003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F80
-1F217C9F23>I<0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC
-01E0EC03C0EC0F00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807
-FFFE3900F8078090387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00
-EBFFF03803C03880141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078C
-C7EA01F020207E9E22>82 D<EB1F82EB7066EBC01E3801800EEA030048130C0006130412
-0EA3000F1300A27FEA07F013FF6C13C06C13E038003FF0EB03F813001478143CA2004013
-38A3143000601370146000F013C038E8018038C60300EA81FC17217E9F19>I<003FB512
-F0383C078000301430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383F
-FFE01C1F7A9E21>I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A648
-5BA600705BA25CA200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFF
-F07FF81FF03B1F000FC007C0001E903907800380001FED01006C1502140F5EEC17C00213
-5B142301805C000713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C4
-15F2EBC80015F4EA01F015F85B5D5B15605B000014402C207A9E2F>87
-D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E07EA3C0E127800F01310A313
-1EEB2E2038784F40381F878014147D9317>97 D<1207123F120F7EA2120EA65A137CEA1D
-83381E0180001C13C0EB00E05A14F0A5387001E0A214C013031480EB0700EAE80EEACC38
-EA83E014207B9F19>I<13FEEA0383380E0780121C0038130090C7FC12785AA45AA37E5B
-EA70026C5AEA1C18EA07E011147D9314>I<1438EB01F8EB00781438A21470A614E013FC
-EA0382EA0601121CEA3C00383801C0127812F0A438E00380A412F0EA700738380F00381C
-37803807C7E015207D9F19>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00
-F0C7FCA25AA46C5AEA7002EA3004EA1C18EA07E011147D9314>I<EB07C0EB1C60EB30F0
-1360EBE0E0EBC0001201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F
-9F0E>I<140EEB3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB87
-00EA04FC48C7FCA21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0
-381C0700EA07FC181F809417>I<13E0120712011200A2485AA6485AEB8F80EB90E013A0
-EBC0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014207E9F19>I<
-EA01C0EA03E0A213C0EA0180C7FCA6EA0380121F12071203A2EA0700A6120EA65A121EEA
-FF800B1F7F9E0C>I<13E0120712011200A2485AA6485AEB81FCEB80F014C0EB81801400
-EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07C038FF8FF016207E9F
-18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B
-207F9F0C>I<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB00
-70A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F
-90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014
-147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0
-130300F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C
-6C487E140F48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90
-C8FCA3120EA4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C0038
-13C0127812F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4
-131EEBFFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120E
-A65A121EEAFFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13
-F0EA07FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<
-1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C
-9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F
-9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075B
-A25BEA039013A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C03
-0060148015401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB
-80F0A26C485A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0
-C0EBE180EB73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03
-E038FE07FC18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B14301420
-5C13705CA20171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8
-FC12E61278191D809318>I E
+%DVIPSBitmapFont: Fj cmr8 8 29
+/Fj 29 118 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A
+5A126009157AAD14>39 D<B512C0A412047F9018>45 D<130C133C137CEA03FC12FFEAFC
+7C1200B3B113FE387FFFFEA2172C7AAB23>49 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419
+A2EC30FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2
+011FB57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0
+D80FF0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 D<B612FCEDFF803A03F8000FC00001
+EC03F06F7E6F7E82167E167FA6167E16FE5E4B5A4B5AED0FE0ED7F8090B6C7FC16E09039
+F80003F0ED01FC6F7E167F821780161F17C0A61780163F17005E16FEED03FC0003EC0FF0
+B712C04BC7FC2A2D7DAC32>I<DA1FF013C09138FFFE01903903F00F8390390F8001E301
+3FC71277017C143F4848141F4848140F48481407A248481403121F491401123F90C8FC48
+1500A300FE1600AB127F17C0A27E7F001F15016D1580120F6C6C1403EE07006C6C14066C
+6C140ED8007C5C013F147890390F8001E0903903F00FC0902600FFFEC7FCEC1FF02A2F7C
+AD33>I<B612F815FF3A03F8001FE00001EC03F0ED00F8167E82EE1F80160F17C0EE07E0
+A2EE03F0A217F81601A317FCAA17F8A3EE03F0A217E0160717C0160FEE1F80EE3F00167E
+5EED03F00003EC1FE0B7128003F8C7FC2E2D7DAC36>I<B712FEA23903F800010001EC00
+3E828282A282A3178016011518A293C7FCA31538157815F890B5FCA2EBF8001578153815
+18A21760A392C712C0A4160117801603A21607160F163F0003913801FF00B8FCA22B2D7E
+AC30>I<B712FCA23903F800030001EC007C163E161E160EA21606A3160716031518A216
+00A31538157815F890B5FCA2EBF800157815381518A592C7FCAB487EB512F8A2282D7EAC
+2E>I<B512F8A2D803FCC8FC6C5AB3A7160CA41618A41638A2167816F81501ED07F00003
+141FB7FCA2262D7EAC2C>76 D<D8FFF8923807FFC06D5D0003EFF00000015F01BE151BA2
+019F1533A3D98F801463A2D987C014C3A2D983E0EB0183A3D981F0EB0303A2D980F81306
+A3027C130CA26E1318A36E1330A291380F8060A2913807C0C0A3913803E180A2913801F3
+00A3EC00FEA2157C487ED80FF04B7EB5D93801B512C0A23A2D7DAC41>I<B612FCEDFF80
+3A03F8000FE00001EC03F0ED00F882167E167F821780A617005E167E5E5EED03F0ED0FE0
+90B6128003FCC7FC01F8C9FCB2487EB512F0A2292D7EAC30>80 D<B612C015FC3903F800
+7F0001EC0FC06F7E6F7E6F7E82150082A55E15015E4B5A4B5A4B5A037FC7FC90B512FC15
+F09038F800FC153E6F7E150F826F7EA582A5170316F815031707486C903801FC0EB539F0
+00FE1CEE3FF8C9EA07E0302E7DAC34>82 D<90383F80303901FFF0703807C07C390F000E
+F0001E13074813034813011400127000F01470A315307EA26C1400127E127FEA3FE013FE
+381FFFE06C13FC6C13FF00011480D8003F13E013039038003FF0EC07F81401140015FC15
+7C12C0153CA37EA215787E6C14706C14F06CEB01E039F78003C039E3F00F0038E07FFE38
+C00FF01E2F7CAD27>I<007FB712F8A29039000FC003007C150000701638A200601618A2
+00E0161CA248160CA5C71500B3A94A7E011FB512E0A22E2D7EAC33>I<EAFFE0A3EAE000
+B3B3B3A7EAFFE0A30B4379B114>91 D<13FF000713C0380F01F0381C00F8003F137C80A2
+143F001E7FC7FCA4EB07FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065A
+A3143F7E007E137F007FEBEF8C391F83C7FC390FFF03F83901FC01E01F207D9E23>97
+D<EA07C012FFA2120F1207AC14FE9038C7FF809038CF03E09038DC01F09038F8007C4913
+7E49133E497F1680A2150F16C0A9ED1F80A216005D6D133E6D5B01B05B9038BC01F09038
+0E07E0390607FF80260001FCC7FC222F7EAD27>I<EB1FE0EB7FFC3801F01E3803E00739
+07C01F80EA0F80EA1F005A003EEB0F00007E90C7FCA2127C12FCA9127EA215C07E6C1301
+01801380380FC0033907E007003801F03E38007FF8EB1FC01A207E9E1F>I<EB1F80EBFF
+F03803E0783807C03E380F801E381F001FEC0F80123E007E130715C0127C12FCA3B6FCA2
+00FCC8FCA5127EA2003E14C0123F6C1301390F80038001C013003803E00F3801F03C3800
+7FF8EB1FC01A207E9E1F>101 D<130FEB1F80EB3FC0A4EB1F80EB0F0090C7FCA8EB07C0
+13FFA2130F1307B3AD1230127838FC0F80A21400485AEA783EEA3FF8EA07E0123C83AD16
+>106 D<EA07C012FFA2120F1207ADEC1FFEA2EC0FF0EC07C05D020EC7FC5C5C5C5CEBC3
+C013C7EBCFE0EBDFF013F9EBF0F8497EEBC07E143E80816E7E14076E7E816E7E486C487E
+3AFFFE07FF80A2212E7EAD25>I<3807C0FE39FFC3FF809038C703E0390FDE01F0EA07F8
+496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>110
+D<EB1FE0EB7FF83801F03E3803C00F3907800780390F0003C04814E0003EEB01F0A248EB
+00F8A300FC14FCA9007C14F8A26CEB01F0A26CEB03E0A2390F8007C03907C00F803901F0
+3E0038007FF8EB1FE01E207E9E23>I<3807C0FE39FFC7FF809038CF03E0390FDC01F039
+07F800FC49137E49133E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C
+5D9038FC01F09038CE07E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D
+27>I<380781F838FF87FEEB8E3FEA0F9CEA07B813B0EBF01EEBE000A45BB0487EB5FCA2
+181E7E9D1C>114 D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7E
+B41300EA7FF06CB4FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA2
+7EA26C133CA26C137838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A31201
+1203A21207121FB512F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F
+80152A7FA81B>I<D807C013F800FF131FA2000F130100071300B21401A314033803E007
+EC0EFC3A01F81CFFC038007FF890391FE0F800221F7E9D27>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmti10 10.95 20
-/Fl 20 122 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
-12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
-0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
-D<127012F8A212F012E005057B840E>46 D<EBF180380389C038070780EA0E03121C123C
-383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070013147C9317>
-97 D<137EEA01C138030080EA0E07121E001C1300003CC7FC5AA35AA45B12701302EA30
-0CEA1830EA07C011147C9315>99 D<1478EB03F8EB0070A414E0A4EB01C0A213F1EA0389
-38070780EA0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C
-80380F070015207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7FF0EA
-78005AA4EA7001A21302EA380CEA1830EA07C010147C9315>I<EB3C60EBE2703801C1E0
-EA0380EA07005A380E01C0121EA3383C0380A4EB0700A2EA1C0F1317EA0C2EEA03CEEA00
-0EA25BA21230EA7838485AEA60E0EA3F80141D7E9315>103 D<13C0EA01E0A213C0C7FC
-A7120E12131223EA4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C
-0B1F7C9E0E>105 D<EA03C0121FEA0380A4EA0700A4120EA45AA45AA45AA3127112E2A4
-126412380A207C9F0C>108 D<391C0F80F0392630C318394740640C903880680EEB0070
-A2008E495A120EA34848485AA3ED70803A3803807100A215E115623970070064D8300313
-3821147C9325>I<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01
-C0A3EB038400381388A2EB0708EB031000701330383001C016147C931A>I<137CEA01C3
-38030180000E13C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA30
-18EA1870EA07C013147C9317>I<3801C1E0380262183804741C1378EB701EA2EA08E012
-00A33801C03CA3143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2
-B47E171D809317>I<EA1C1EEA266138278380EA47871307EB0300008EC7FC120EA35AA4
-5AA45A123011147C9313>114 D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0
-EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<
-EA018013C0EA0380A4EA0700A2EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA
-3100121E0C1C7C9B0F>I<000E13C0001313E0382301C0EA4381EA4701A238870380120E
-A3381C0700A31410EB0E201218A2381C1E40EA0C263807C38014147C9318>I<380E0380
-EA1307002313C0EA4383EA4701130000871380120EA3381C0100A31302A25BA25BEA0E30
-EA03C012147C9315>I<000EEBC1C0001313E3392301C3E0384381C1384701C015603987
-038040120EA3391C070080A3EC0100A21306EB0F02000C5B380E13083803E1F01B147C93
-1E>I<000E13C0001313E0382301C0EA4381EA4701A238870380120EA3381C0700A4130E
-1218A2EA1C1EEA0C3CEA07DCEA001CA25B12F05BEAE060485AEA4380003EC7FC131D7C93
-16>121 D E
+%DVIPSBitmapFont: Fk cmsy9 9 2
+/Fk 2 106 df<EB0180EB03C01307A21480130FA2EB1F00A2131E133EA25BA2137813F8
+A2485AA25B1203A2485AA25B120FA248C7FCA2121E123EA25AA2127812F8A41278127CA2
+7EA2121E121FA26C7EA212077FA26C7EA212017FA26C7EA21378137CA27FA2131E131FA2
+EB0F80A2130714C0A21303EB0180124A79B71E>104 D<126012F07EA21278127CA27EA2
+121E121FA26C7EA212077FA26C7EA212017FA26C7EA21378137CA27FA2131E131FA2EB0F
+80A2130714C0A41480130FA2EB1F00A2131E133EA25BA2137813F8A2485AA25B1203A248
+5AA25B120FA248C7FCA2121E123EA25AA2127812F8A25A1260124A7CB71E>I
+E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmr8 8 29
-/Fm 29 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
-D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
-D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
-13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
-381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
-1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
-132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
-381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
-E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
-3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
-0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
-1303B5FC13177F9616>76 D<00FEEB03F8001E14C000171305A338138009A23811C011A3
-3810E021A2EB7041A3EB3881A2EB1D01A2130EA2123839FE040FF81D177F9620>I<EAFF
-FE381C0380EB00C014601470A4146014C0EB0380381FFE00001CC7FCAAB47E14177F9618
->80 D<EAFFFC381C0380EB00C014E01470A414E014C0EB0380381FFE00381C0780EB01C0
-EB00E0A514E1A2147238FF803C18177F961A>82 D<EA0FC4EA302CEA601CEA400CEAC004
-A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C130E13061280A3EAC004EAE008EAD810
-EA87E00F177E9614>I<387FFFF83860381800401308A200801304A300001300AF3803FF
-8016177F9619>I<12FCA212C0B3AB12FCA206217D980A>91 D<EA3FC0EA70601330EA20
-381200EA03F8EA1E3812301270EAE039A21379EA70FFEA1F1E100E7F8D12>97
-D<12F81238A8EA39F0EA3E0CEA380613077F1480A414005B1306EA361CEA21F011177F96
-14>I<EA07F0EA18381230EA7010EA600012E0A41260EA70081230EA1830EA07C00D0E7F
-8D10>I<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000A31260EA7008EA3010EA18
-30EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5EA1F801203AF1243EAE300
-12E7127C091D82960B>106 D<12F81238A8133E13381330134013801239EA3FC0EA39E0
-123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1CEA3C0E1238AA38FE3F8011
-0E7F8D14>110 D<EA07C0EA1830EA3018EA600CA2EAE00EA5EA701CEA3018EA1830EA07
-C00F0E7F8D12>I<EAF9F0EA3E1CEA380613077F1480A414005B130EEA3E1CEA39F00038
-C7FCA512FE11147F8D14>I<EAF9E0EA3A70123CEA38201300A9B4FC0C0E7F8D0E>114
-D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA01E0EA8060A212C0EAE0C0EA9F
-000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A71340A4EA1C80EA0F000A147F93
-0E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D14>I E
+%DVIPSBitmapFont: Fl cmsltt10 10.95 37
+/Fl 37 122 df<137C13FE487E1480A214C0A3EA007F130F131F1480A3133F14005B137E
+13FE485A1203485AEA1FF0485AB45A5B90C7FC127C1238121D6BB730>39
+D<007FB612E0B712F016F8A316F06C15E02507769E30>45 D<EC07F8EC1FFEEC7FFF49B5
+12C04914E04914F090380FF81F90391FE00FF890383FC00790397F8003FC9038FF000149
+14FE48481300485A16FF4848147FA2485AA2485AA25B123FA348C8FCA500FE15FEA4ED01
+FCA3ED03F8A215076C15F0150F6C15E0151F6D14C0ED3F80003F147F6DEBFF004A5A381F
+E0036D485A390FFC1FF86CB55A6C5C6C14806C91C7FCEB7FFCEB0FE0283A78B830>48
+D<EC03C0EC07E0A2140F141FA2143FEC7FC014FF1303130F90B5FC5A48148014BFEBFE3F
+EA01F8C7FC147F1500A55C5CA513015CA513035CA513075CA5130F5CA2007FB512F8B612
+FCA46C14F81E3976B830>I<913903FC01E091391FFF81F0027F13E391B512F7010314FF
+5B49130790261FF80113E049487ED97FC0137F495A91C7123F485A484815C0A2485A5B12
+0F5B001FED1F80491500003F92C7FC5BA3127F90CAFCA45A5AA716F86C4A7EA26C14035E
+A26D1307003F5D6D130F001F4A5A6D133F6C6C495A6D495A2607FF0790C7FC6CEBFFFE6C
+5C6C5C6D13E0011F1380D907FCC8FC2C3A78B830>67 D<013FB512E04914FC90B67EEEFF
+806D15C07F902607F00013E0EE3FF0161FEE0FF81607010F15FC4A1303A2160117FEA201
+1F14005CA5133F5CA5017FEC01FC91C7FCA3EE03F8A25B49EC07F0A2160F17E0161F0001
+16C049143FEE7F80EEFF005D4B5A00034A5A49EB1FF8ED7FF0007FB65AB75A5E4BC7FC15
+F86C14C02F387EB730>I<013FB7FC49168090B812C0A27F7FD903F8C7EA3F80A4177F13
+074A150083171E94C7FCA2130F5CED01E04B7E821507131F91B55AA55B9138800FE0A46F
+5A017F90C9FC91CAFCA417F0494A7E491403A416071201495DA2003FB7FC5AB8FCA26C5E
+6C5E32387EB730>I<903B7FFF801FFFE090B56C4813F003E014F8A203C014F06D496C13
+E0903B07F00001FC00A41603130F4A5CA41607131F4A5CA4160F133F91B65AA55B91C7EA
+1FC0A4163F5B495DA4167F12014992C7FCA45E1203495CA23B7FFF801FFFE0B56C487FA4
+6C496C5B35387EB730>72 D<0203B512F04A14F8A46E14F091390001FC00A41503A25EA4
+1507A25EA4150FA25EA4151FA25EA4153FA25EA4157FA293C7FC123E127F5D6D5B38FF00
+014A5A6C13079038E03FF86CB55A5D6C5C000791C8FC6C13FC38007FE02D3979B730>74
+D<90387FFFF890B57EA46D5BD903F8C8FCA513075CA5130F5CA5131F5CA5133F5CA5137F
+91C9FCA4EE03C049EC07E049140FA4161F12014915C0A2007FB7FCB8FCA317806C16002B
+387DB730>76 D<D93FF8ECFFE0496C4913F0496C4913F8A2017F4A13F0013F16E0010F91
+380FFE0002DE147E02DF131FA2EE3EFE131F029FEB7EFC167C16FC16F8ED80F9013F1381
+021FEBF1F8158316E1EC0F8716C3137F017E018F5B1683159F160316079038FE07BE01FC
+01FE5B15FCA215F8160F0001EB03F09026F801E05B91C7FCA3161F1203495DA4163F1207
+4992C7FCA2D87FFC903803FFE0486C497FA46C486D5B35387EB730>I<1278127C12FEA2
+7EA27EA27FA2123F7FA2121F7FA2120FA27FA212077FA212037FA21201A27FA212007FA2
+7F80A2133FA280A2131F80A2130F80A2130780A21303A280A2130180A2130080A280A215
+80A2143F15C0A2141FA3140FEC07801A4771BE30>92 D<003FB612F05AB712F8A36C15F0
+7E25077C7D30>95 D<903803FF80011F13F0017F13FC90B57E4880488149C67F49133F48
+486D7E0003140F5BC65A90C77FA25EA2EC3FFF0107B5FC133F90B6FC1203485D48EBE01F
+381FFE00EA3FF0D87FC0133F5B48C75B5AA2157FA215FF6C4990C7FCEB8007267FE07F13
+FE90B7FC6C16806C14BF6C020F130000039038F803FEC601C0C8FC292A79A830>97
+D<EA3FF8487E487EA2127F123FEA01FCA512035BA4EC1FF00007EBFFFC01F313FF01F714
+8090B612C016E09138F03FF048EB800F9039FE0007F85B49EB03FC4913015B121F5B16FE
+1500A21501003F15FC5BA3150316F8127F1507ED0FF0A2ED1FE06DEB3FC000FF147F6DEB
+FF80D9F00313009038FC1FFE90B55A5D485C486C13C0D8781F90C7FC380007F8273977B7
+30>I<EC1FFC91B51280010314C0010F14E04914F0137F9039FFF00FF848EB8007489038
+000FF0D807FC13074914E04848EB01C0484890C7FCA2485A5B127F90C9FCA35A5AA77E6C
+EC0F806D131FED3FC06C6C14806D137FD81FF8EBFF00380FFE0390B55A6C5C00015C6C14
+E0013F1380D907FCC7FC252A77A830>I<ED07FF4B13804B13C0A281819238003F80A416
+7FA21700A491387FC0FF903803FFF0010FEBFCFE4913FE017F13FF90B6FC48EBE07F48EB
+001F48486D5A49130748481303485A5B485A495C127FA290C7FC15075A485DA4150FA25E
+151F6C143F7E157F6D13FF6C6C485BEBE007261FF81F13FF6CB71280A26C14BF0001141F
+6CD9FC0F1300D91FE0C8FC2A397AB730>I<EC1FE0ECFFFC010313FF010F1480013F14C0
+4914E09039FFF03FF048EB800F3A03FE0007F8484813035B485A4848EB01FC5B123F5B12
+7F90C7FC90B6FCA2B712F8A316F048C9FCA37E7EED03C06DEB07E0003FEC0FF07F6C6CEB
+1FE06DEB7FC0390FFE03FF6CB612806C15006C14FC6C6C5B011F13E0010390C7FC262A79
+A830>I<EEFF80030713E0031F13F0157F92B512F85C4AEB07F0EC07FC03F813E091390F
+F001C04BC7FCA2141F5DA548B612FE48815AA36C5DC7D87F80C7FC92C8FCA55C5CA51301
+5CA513035CA513075CA2007FB512FEB7FCA46C5C2D397CB830>I<913907F801FE913A3F
+FF0FFF804A13BF49B712C05B5B90260FFC0FEB1F8090271FF007F8130049486C6CC7FCEC
+C001EB7F801400A25B5BA315034B5A7F6D495A9138803FE090383FE0FF49B55A90B65A93
+C8FC4814FC01F913F09038F87F80000390CAFC5BA27F120190B512FCEDFF8016E04815F8
+488148813A1FF00007FFD83FC01300498048C86C7E007E151F12FE5AA2163F94C7FC5E5E
+6C4A5AD87F80EB07FC6D131F3A3FFC01FFF86CB612E06C5D6C92C8FC000114FC6C6C13F0
+010F90C9FC323E7EA730>I<15E0EC03F8140781A35D6E5A6E5A91C8FCA990B512C04880
+5AA27E7EEB001F5DA5143F5DA5147F92C7FCA55C5CA513015CA2007FB61280B712C016E0
+A216C06C1580233979B830>105 D<163816FE150116FFA316FEED00FC16781600A991B5
+12F04914F8A47FEC000716F0A4150FA216E0A4151FA216C0A4153FA21680A4157FA21600
+A45DA25DA414015DA414035D1407003C5C007E130FB4495A4A5A14FF90B55A92C7FC6C5B
+6C13F86C13E000071380284E7EB830>I<EB3FF8497E80A3133FEB00FCA513015CA50103
+90380FFFFE4A487F1880A218006F5B0107010013804A4890C7FCED03FC4B5AED1FF04B5A
+010FEB7F804A48C8FCECC3FEECC7FCECCFF8ECDFFCEB1FFF814A7E4A7E02F87FECE03F49
+486C7E02807FEC000F6F7E8215034980017E13016F7E3B3FFFF80FFFF0486D487FB56C5A
+A26C497E6C496C5B31387FB730>I<90383FFFF8497F81A37F90380001FCA514035DA514
+075DA5140F5DA5141F5DA5143F5DA5147F92C7FCA55C5CA2003FB612F04815F8B712FCA2
+6C15F86C15F026387BB730>I<913903F001F83B01FF0FFC07FE489039BFFE1FFF91B500
+7F138093B5FC18C06C9039FC3FFE1F3B003FF81FFC0F02E013F002C013E0A2028013C091
+39003F801F491680A2017E1400A401FE49133F49017E1400A5000102FE5B4949137EA500
+03010114FE01F0495BA23C3FFE07FF03FF80486C48018713C0B5009F01CF13E0A26C010F
+018713C06C486C01031380332881A730>I<ED0FF03A01FFE07FFE4801F1B5FC4801F714
+8091B6FC6C16C06CECF03FD8000F9038801FE015004A130F14F8A24A131F494814C0A25C
+A3163F133F4A1480A4167F137F91C71300A45E5B495CA23B7FFFF81FFFF8B56C4813FC5D
+A2816C496C13F82E287FA730>I<EC1FE0ECFFFC010313FF010F14804914E0137F9039FF
+E07FF0489038800FF83903FE000749EB03FC48481301484814FE491300485A123F5B167F
+48C8FCA300FE15FEA4150116FCA26CEC03F8150716F06C6C130FED1FE06DEB3FC06C6C13
+7F3A1FF001FF80D9FC0713006CB55A6C14F86C5C6C14C06C6C90C7FCEB0FF8282A79A830
+>I<ED03FE903A3FFC1FFF8090267FFE7F13E001FF90B57E91B67E6D816D9038FE07FE01
+01EBF0019238C000FF5D92C7EA7F804A143F5C13035C18C0171FA2173F010716805CA317
+7F1800130F5F4C5AA24C5A6E495A011F140F6E495A6EEB7FE09139FF83FFC092B55A94C7
+FCD93FDF5B028F13F8028313E0028090C8FC92C9FC137FA291CAFCA45BA25BA4387FFFF0
+B57E80A25C6C5B323C82A730>I<91383FE00F903A01FFF81F800107EBFE3F011F13FF49
+14FF5B9038FFF03F48EB800F48496C1300D807FC7F48487F5B485A48487F5E5B127F90C8
+FC15015A485DA41503A25E6C1407150F6C141F7F6C6C133FEDFFF0381FF001EBFC0F6CB6
+FC7E6C14EF6CEC8FE039007FFE0FEB0FF090C7FC151F5EA5153F5EA591381FFFFE4A7F5C
+A2806E5B293C7AA730>I<EE3FE03B01FFFC01FFF848D9FE0F13FC485C037F13FE6C91B5
+FC6C90B512E1D80001EC01FC15FC9238F000704B13005D5D4990C8FC5CA25CA25C13075C
+A5130F5CA5131F5CA2007FB512FCB67EA46C5C2F287DA730>I<91387FF838903903FFFE
+7C011FEBFFFC5B5B90B6FC48EBC01F3903FC0007491303484814F85BA3ED01F06D90C7FC
+EA03FEEBFFF06CEBFF806C14F06D13FC011F13FF01071480D9007F13C0020113E0EC001F
+001FEC0FF06D1307003F1403A27FA21507486CEB0FE0151F6DEB3FC09039FC03FF8090B6
+FC1600B612FC00FC5C013F13E0267807FEC7FC262A79A830>I<EB03C0497E80A3130F5C
+A5003FB612E04815F0B7FCA36C15E026003FC0C7FC5CA5137F91C8FCA55B5BA50001EC0F
+8049EB1FC0A3153F1680157F15FF6D4813009038FF07FE6CEBFFFC5D6D5B6D5B010F1380
+D903FCC7FC243378B130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00
+011401495CA415031203495CA415071207495CA4150F120F495CA3151F153F001F147F4B
+5A000F5BD9F80F13FF90B712807EA26C149FC6D9FE0F1300D93FF0C8FC29287AA630>I<
+3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B03F00007F0006D5C150F00
+015D151F5E153F6D91C7FC5D0000147E15FE5D140101FE5BA290387E03F0A24A5AA24A5A
+137F4A5A133F4AC8FCA2147E14FE5C131F5CA25C6D5A2B2778A630>I<3B3FFFC01FFFE0
+486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA7E00A35EA34B5AA34B5A143E147F
+4A485A13E1A249495A158FEBC7EF9138CF9F8014DF13CF029F90C7FC15BFEBDF8FEC0FBE
+A201FE13FE5D13FCA25D496C5A3903E003E02D2779A630>I<903AFFFE07FFF0486D4813
+F84816FCA26C16F86C496C13F0903A07F001FC006D6C485A6D6C485A4B5A6D6C485A4B5A
+DA7F7FC7FC157EEC3FFE6E5A5D6E5A5DA24A7E143F4A7EA2ECFCFCEB01F8903803F07E90
+3807E07F49487E011F8090383F801FD97F007F01FE6D7E263FFFC0B5FC4801E11480B515
+C0A26C16806C01C014002E277DA630>I<90B53801FFFE4802837F481780A26C17006C02
+015B903A07E0001FC05F163F6E91C7FCA20103147EA25E804B5A13014B5AA26E485AA201
+00495AA24B5AA2027E90C8FC5D153E157E157C143E5D143F5DA26E5AA25DA25DA2143F92
+C9FC5C147E14FE5C1301003C5B387E03F0EAFF07495A48485AEB7F80B5FC91CAFC13FC6C
+5AEA3FE0EA1F80313C7EA630>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmsy9 9 2
-/Fn 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
-A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
-0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
-E
+%DVIPSBitmapFont: Fm cmcsc10 10.95 18
+/Fm 18 121 df<EC01E0A24A7EA34A7EA34A7EA24A7E141CA2EC3CFFEC387FA24A6C7EA3
+4A6C7EA2010180ECC00FA249486C7EA349486C7EA24980010E1301010FB5FC4980A2011C
+C7FC49147FA20178810170143FA201F08149141F1201486C811207486CEC3FF8D8FFFE49
+B512C0A332317DB038>97 D<DA0FF81330DA7FFF13700103B5EAC0F090390FFC03F19039
+1FE000F9D97F80133F01FEC7121F4848140F48481407485A000F1503491401121F491400
+123F5B127F1770A248C9FC1700AA6C6C1570A3123F6D15F0121F6D15E0000F15016D15C0
+000715036C6C15806C6C14076C6CEC0F00D97F80133ED91FE05B90390FFC03F00103B55A
+D9007F1380DA0FF8C7FC2C317BAF36>99 D<B612FCEDFFC016F03A03FE000FF86C48EB01
+FEED007FEE3F80EE1FC0EE0FE0EE07F0160317F8160117FCA2EE00FEA417FFAA17FEA3EE
+01FCA3EE03F817F01607EE0FE017C0EE3F80EE7F00ED01FE486CEB0FFCB712F016C04BC7
+FC302F7CAE39>I<B8FCA33903FE00016C489038003F80161F160F1607A21603A317C0ED
+1C01A393C7FCA2153CA215FC90B5FCA3EBFC00153CA2151CA21770A392C712E0A41601A2
+EE03C0A21607160F161F486C14FFB81280A32C2F7CAE33>I<B712FEA33903FE00036C48
+EB007F828282A282A3EE0380A21538A293C7FCA31578A2EC01F890B5FCA3EBFC01EC0078
+A21538A592C8FCAA487EB512FCA3292F7CAE31>I<DA0FF81360DAFFFE13E00103EBFF81
+90390FF807E390393FC000F34948137F01FEC7123F4848141F4848140F48481407120F49
+1403485A003F1501A25B007F1500A348C9FC1700A8031FB5FCA26C7E9238001FF0EE0FE0
+123F7FA26C7E120F7F12076C7E6C7E6C6C141FD97F80133FD93FE0137B90390FFC03F101
+03B512E00100EC8060DA0FFCC7FC30317BAF3A>I<B5D8F81FB5FCA3D803FEC7EA7FC06C
+48EC3F80B190B7FCA301FCC7123FB3486CEC7FC0B5D8F81FB5FCA3302F7CAE38>I<B512
+F8A33803FE006C5AB3B3A3487EB512F8A3152F7DAE1B>I<90383FFFFCA39038007FC0EC
+3F80B3AD1218127EB4FCA3EC7F005A007C137E007813FE383C01F8381F03F03807FFC0C6
+48C7FC1E307CAE27>I<B512FCA3D803FEC8FC6C5AB3A7160EA4161CA4163CA2167C16FC
+1501ED03F8486C131FB7FCA3272F7CAE2F>108 D<D8FFFE923807FFF0A3D803FF92380F
+FC006C5FD9DF80141DA3D9CFC01439A2D9C7E01471A3D9C3F014E1A2D9C1F8EB01C1A3D9
+C0FCEB0381A2027EEB0701A36E130EA291381F801CA391380FC038A2913807E070A39138
+03F0E0A3913801F9C0A2913800FF80A3486CEB7F00487E486C013E497EB5008091B512F0
+A2151C3C2F7CAE44>I<D8FFFC49B5FC7F7F00019138001FF06EEB0FE06EEB07C0EE0380
+EBDFE0EBCFF013C780EBC3FC13C180EBC0FF801580EC3FC0EC1FE0A2EC0FF0EC07F8A2EC
+03FCEC01FE140015FFED7F83153F16C3ED1FE3ED0FF3A2ED07FBED03FFA28181A2167F16
+3F486C141F487E486C140FB56C1307A21603302F7CAE38>I<EC1FF891B5FC903907F00F
+E090390FC003F0013FC712FC017E147E49804848EC1F804848EC0FC04848EC07E0000F16
+F0491403001F16F8491401003F16FCA2007F16FE90C9FCA34816FFAA6C6CEC01FEA3003F
+16FCA26D1403001F16F86C6CEC07F0A26C6CEC0FE0000316C06C6CEC1F806C6CEC3F0001
+7E147E6D5C90390FC003F0903907F00FE00100B5C7FCEC1FF830317BAF3A>I<B612FCED
+FF8016E03A03FE000FF86C48EB03FCED00FE167FA2EE3F80A217C0A61780A2EE7F00A216
+FEED03F8ED0FF090B612C093C7FC01FCC9FCB2487EB512F8A32A2F7CAE33>I<90383FC0
+0C9038FFF81C0003EBFE3C390FE03FFC381F8007EB0003003E1301481300157C5A153CA3
+6C141CA27E6C14006C7E13E013FE383FFFE06C13FE6CEBFF806C14E0000114F06C6C13F8
+010F13FC1300EC07FE14011400157F153F12E0151FA37EA2151E6C143E6C143C6C147C6C
+14F89038C001F039FBF807E000F1B512C0D8E07F130038C007FC20317BAF2A>115
+D<007FB712F8A39039801FF0073A7E000FE00000781678A20070163800F0163CA348161C
+A5C71500B3A8EC3FF8011FB512F0A32E2E7CAD36>I<B5D8F801B5FCA3D803FEC7EA1FF0
+6C48EC0FE0EE07C0EE0380B3AB16076C6C1500A2017E5C017F141E6D141C6D6C133C6D6C
+5B6D6C485A903903FC07E00100B51280DA3FFEC7FCEC07F830307CAE38>I<3B7FFFF001
+FFFEA30003D9C00013E0C649EB7F80017F027EC7FC167C6D6C13786D6C5B6D6C5B15016D
+6C485AD903FC5B15076D6C48C8FC903800FF1EEC7F9C15BCEC3FF86E5AA2140F6E7E1403
+4A7E4A7EEC1EFF141C91383C7F804A6C7E14709138F01FE049486C7E49486C7E14800107
+6D7E49486C7E130E011E6D7E496E7E017C6E7E13FC000382D80FFEEC7FF8B549B512C0A3
+322F7DAE38>120 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fo cmsltt10 10.95 29
-/Fo 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
-769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
-C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
-7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
-120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
-4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
-380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
-78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
-07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
-A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
-1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
-EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
-A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
-B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
-5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
-1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
-D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
-00A2137FEA07FF121FEA3F813878038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
-14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
-38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
-A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
-5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
-0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
-FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
-7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
-3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
-B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
-EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
-EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
-D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
-13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
-0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
-EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
-FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
-12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
-7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
-FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
-0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
-7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
-E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
-E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
-D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
-EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
-F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
-78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
-E
+%DVIPSBitmapFont: Fn cmti10 10.95 20
+/Fn 20 122 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C
+137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218
+E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214
+3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101
+13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2
+49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12
+D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 D<147E49B47E903907C1
+C38090391F80EFC090383F00FF017E137F4914804848133F485AA248481400120F5B001F
+5C157E485AA215FE007F5C90C7FCA21401485C5AA21403EDF0385AA21407EDE078020F13
+70127C021F13F0007E013F13E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00
+FF00D800FC133E252977A72E>97 D<EC1FC0ECFFF0903803F03C903807C01E90381F800E
+90383F000F017E133F4913FF485A485A000714FE5B000F14FC48481300A2485AA3127F90
+C8FCA35A5AA6481403007E1407150F151E003E143C15786C14F0EC03E0390F800F803903
+E07E003801FFF838003FC0202977A72A>99 D<EE3F80ED1FFF1700A2ED007FA2167EA216
+FEA25EA21501A25EA21503A25EA21507A25E147E903801FF8F903807C1CF90391F80EFC0
+90383F00FF017E137F5B48486D5A485AA2485A000F92C7FC5B001F5CA24848137EA215FE
+127F90C75AA214015A485CA2140316384814F0A21407167891380FE070127C021F13F000
+7E013F5B003E137FECF3E1261F01E35B3A0F8781E3802703FF00FFC7FCD800FC133E2940
+77BE2E>I<EC3F80903801FFE0903807E0F890381F803CEB3E0001FC131E485A485A1207
+4848133E49133C121F4848137C15F8EC03F0397F000FE0ECFF809038FFFC00B512C048C8
+FCA45AA61506150E151E007C143C15786C14F0EC01E06CEB07C0390F801F003807C0FC38
+01FFF038007F801F2976A72A>I<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE
+1303903807E001D90FC013FCEB1F80A2EB3F004914F8137E01FE1303A2484814F0A21507
+12034914E0A2150F12074914C0A2151FA216805B153F1203ED7F006D5BA200015B000049
+5A9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC1401A25DA21403A25D001C130700
+7F5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>
+103 D<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0
+121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA2
+12035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03
+FEEA00F8163E79BC1C>105 D<EB07F0EA03FF14E0A2EA000FA214C0A2131FA21480A213
+3FA21400A25BA2137EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA212
+1FA25BA2123FA290C7FCA25A1307127EA2EAFE0F130E12FCA2131E131CA2EA7C381378EA
+3C70EA1FE0EA0780144079BE17>108 D<D801F0D93F80137F3D07FC01FFE003FFC03D0F
+3E07C1F80F83F03D0E1F0F00FC1E01F8001E011C90387C3800001C49D97E707F003C01F0
+5C0038157F4A5C26783FC05C12704A91C7FC91C7127E00F003FE1301494A5CEA007EA203
+01140301FE5F495CA203031407000160495C180F03075D0003051F13E0494A1480A2030F
+EC3F810007F001C0495CA2031F91383E0380120F494AEC0700A2033F150E001FEF1E1C49
+91C7EA0FF80007C7000EEC03E0432979A74A>I<D801F0EB3F803A07FC01FFE03A0F3E07
+C1F83A0E1F0F00FC001E011C137C001C49137E003C13F012385C38783FC012705C91C7FC
+00F015FE495CEA007EA2150101FE5C5BA2150300015D5B15075E0003020F13704914C0A2
+031F13F00007ED80E05B1681EE01C0120F49EC0380A2EE0700001FEC0F0E49EB07FC0007
+C7EA01F02C2979A733>I<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F000F80
+017E14C0491307484814E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7FCA215
+1F4815C05AA2ED3F80A2ED7F00A248147E007C5C007E13015D4A5A003E495A6C495A4A5A
+260F803EC7FC3807C0FC3801FFF038003F80242977A72E>I<903903E001F890390FF807
+FE903A1E7C1E0F80903A1C3E3C07C0013C137801389038E003E0EB783F017001C013F0ED
+80019038F07F0001E015F8147E1603000113FEA2C75AA20101140717F05CA20103140F17
+E05CA20107EC1FC0A24A1480163F010F15005E167E5E131F4B5A6E485A4B5A90393FB80F
+80DA9C1FC7FCEC0FFCEC03E049C9FCA2137EA213FEA25BA21201A25BA21203A2387FFFE0
+B5FCA22D3A80A72E>I<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0001EEB
+380F001C1370003CEBE01F123814C0D8783F14C00070903880070092C7FC91C8FC12F05B
+EA007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC232979A726
+>114 D<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E4913
+7E15FEA2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F013
+00140F14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F80127000
+78EB1F006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A25C
+A2130FA25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA25B
+A21201A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB00
+78147014F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B4141C
+26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2D8
+F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C0491481
+A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F0F
+1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA07
+07000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91C7
+12E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D15
+78000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I<017C1670
+48B491387001FC3A038F8001F8EA0707000E01C015FE001E1403001CEDF000EA3C0F0038
+177C1507D8781F4A133C00701380A2D8F03F130F020049133812005B017E011F14784C13
+7013FE5B033F14F0000192C712E05BA2170100034A14C049137E17031880A2EF070015FE
+170E00010101141E01F86D131C0000D9039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03
+FFC0902703F0007FC7FC372979A73C>I<137C48B4143826038F8013FCEA0707000E7F00
+1E1401001C15F8EA3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B
+017E130F16C013FE5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301
+EBF8030000130790387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA2
+4A5AD8FF0090C7FC143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8
+263B79A72C>121 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp cmcsc10 10.95 12
-/Fp 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
-FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
-D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
-127812386C1310120C000713603803818038007E0015177E961B>99
-D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
-14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
-13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
-9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
-387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
-0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
-0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
-D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
-70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
-I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
-19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
-001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
-D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
-D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
-133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
-18177F961C>120 D E
+%DVIPSBitmapFont: Fo cmbxti10 14.4 1
+/Fo 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
+EA0FE0121271912B>46 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fq cmbx12 17.28 34
-/Fq 34 121 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
-7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
-F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
-131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<913A03FF80018002
-3FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C812
-7F4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127F
-A27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93F
-C05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>
-67 D<B812F0A3C6903880003FEE07F816031600A21778A21738A3171C1507A31700A25D
-5D5D91B5FCA3EC803F818181A21707A392C7120EA4171EA2173CA2177C17FC1601160716
-3FB812F8A330317EB035>69 D<B812E0A3C6903880007FEE0FF016031601A21600A21770
-A31738A21507A21700A35D5D5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB0
-33>I<DA03FF1303027FEBF00749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03
-FF49487F4848C87E485A0007824848815B001F82A2484881A2127FA24992C7FC12FFAA03
-07B512F8127F7FDB00011300123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8
-497ED907FFEB3E3F01019038FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B61280A3
-C6EB8000B3B3A7B61280A319317EB01E>73 D<B67EA3000190C9FCB3A9EE0380A4160717
-00A25EA35E5E5E5E4B5A150FB7FCA329317DB030>76 D<B56C49B512C08080C66D903900
-03E0006E6E5AEBEFFC13E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E
-16806E13C0ED7FE0ED3FF0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1
-EE1FF9EE0FFD160717FF828282177F173FA2171F170F486C1507B500E014031701A23A31
-7EB03F>78 D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FF
-A717FEA2EE07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB0
-37>80 D<B77E16F816FEC690398003FF809238007FE0EE1FF0707EA283160783A65F160F
-5F4C5A4C5A4C5ADB03FFC8FC91B512F816E091388007F8ED01FC6F7E167F83707EA283A5
-83A4F0038017F8161F1900706C5AB6398003FE0E933801FFFC9338001FF039317EB03C>
-82 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A348
-1603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807
-C000715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801F
-C0023FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C
-17806E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075D
-A26E130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C02
-1F133815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA23831
-7EB03D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780
-C7FCA414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F80
-0D393FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97
-D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E0
-49EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F8090
-39C3C0FE00903880FFF89038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803
-F0033907E007F8120FEA1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2
-001F14386C7E000714703903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED
-0FC0EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F48
-48133F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01
-FC0F3FFE38007FFEEB0FF027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E0
-3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
-FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
-FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
-1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
-391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
-00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
-121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
-140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
-D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013
-809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E
-487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA
-01F812FFA3120F1207B3B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD9
-3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602
-F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE
-EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F
-2D>I<EB07FC90387FFFC03901FC07F03903F001F848486C7E4848137E001F147F003F15
-8049133F007F15C0A300FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C
-3903F803F83901FE0FF039007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFF
-FC9038FBE07F9039FF003F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216
-FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC
-3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF3
-0FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114
-D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0
-6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13
-1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201
-12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB
-07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007141FB3153FA20003
-147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>I<B53A1FFFE03FF8
-A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15DF
-01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEBF9
-C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E9F
-3A>119 D<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B
-90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF0
-8190380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FC
-A328207F9F2B>I E
+%DVIPSBitmapFont: Fp cmbx12 17.28 37
+/Fp 37 122 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007
+C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F80103
+15FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F8
+6E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380
+A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D
+13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B
+13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC
+7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A
+5A5A5A5ABAFCA219F0A4405E78DD51>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D
+80A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E040382
+17F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E
+03016F7FA24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E037F70
+7F93B9FCA292BA7EA24A85A203FCC912070203865D020771805D86020F864B82021F865D
+87023F864B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E092B812
+FEA66F647BE37A>65 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4B
+B800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C302
+0702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB
+7E49498449498449498449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A
+3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA37E6E1A1F6C
+1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A
+6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0ED1FF80201
+02F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC030117F86F6C16E0
+04071680DC007F02F8C9FC050191CAFC626677E375>67 D<BD12FCA488A2D8000102C0C7
+1201F1000F1A01F2007F1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3197EA3F40F
+C0A499C7FC19FEA31801A218031807181F18FF93B6FCA6EEC000181F180718031801A218
+00A21D7E197EA21DFCA696C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1C
+FF63631B0F093F13C098B5FC1A0797B6FCBEFCA31D80A35F617AE06A>69
+D<BD12E0A41CF0A2D8000102C0C71207F1003F1A0F1A031A001B7F1B3FF31FF81B0FA21B
+07A21B03A21B011CFCA31B00A419FCA21C7EA41C00A21801A31803A21807180F183FEF01
+FF93B6FCA6EEC001EF003F180F18071803A21801A31800A896C9FCB3A5B912F8A657617A
+E065>I<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F03
+0F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C3020702C0913800
+7FE74A91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB7E4949844949
+8449498449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A
+1FA44899C8FCA25CA3B5FCB07E071FB812F880A37EA296C70001ECC000A26C7FA37E807E
+A26C80A26C80A26C807F6D7F816D7F7F6D7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01
+FF5E6E02C0ED7FEF020102F8EDFFC76E02FF02071383033F02FC013F1301030F91B638FC
+007F03014D131F6F6C04E01307040704801301DC007F02F8CAFC050191CBFC6D6677E37F
+>I<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A633627CE13C>73
+D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5F30FC0A61B1FA31B3F1C80A21B7FA21BFF
+A262A262625013006262624FB5FC1907191F4EB6FCBDFC63A553627AE161>76
+D<B700C0083FB612F070627097B7FCA37061D800010DF8C7FC70F103EFA202FD6DF107CF
+A202FC6DF10F8FA36F6DF01F0FA26F6D183EA26F6D187CA26F6D18F8A36F6DEF01F0A26F
+6DEF03E0A26F6DEF07C0A26F6DEF0F80A3706DEE1F00A2706D163EA2706D5EA2706D5EA3
+706D4B5AA2706D4B5AA2706D4B5AA2706D4B5AA3716D4AC7FCA2716D143EA2716D5CA271
+6D5CA3716D495AA2716D495AA2716D495AA2716D495AA3726D48C8FCA272EBC03EA2726D
+5AA2726D5AA372EBF9F0A272EBFFE0A2725CA2725CA37390C9FCA2735AA2735A90381FFF
+C0B700F86E480207B812F0A3735AA2735A8C627AE199>I<B700E0040FB7128082828282
+A2D800016EDC000101FCC7FC719338001FC08383A28302FD808302FC80816F7F6F806F80
+84816F806F806F8084707F8270807080857080827080708085717F837180718071808683
+71807180727F8672808472807280877280847280737F87731480857314C07314E01CF073
+14F8857314FC7413FE7413FF1D9F867414DF7414FF86A286868787A287878787A2878788
+8888A288888890261FFFC084B712F8881D7F1D3F1D1F775A71627AE17E>I<BB7E1AFCF2
+FFC01BF81BFE757ED800010280C7001F80070114F0736C7F081F7F747F747F7414807414
+C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B512F0A21DE0A25014C01D8062501400
+505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8FC04C0CCFCB3B3A2B9
+7EA65E627AE16E>80 D<BA12F8F1FFE01AFEF2FFC01BF01BFED800010280C76C7F070714
+C0070014F0747F081F7F747F747F7480A2748089A37480A389A865A3505CA265A2505C9A
+C9FC505B505B505B087F5B4FB55A0707148096B548CAFC93B812F81BC050CBFC621AFF93
+2680000314C0DE007F7F071F13F8737F737F737F73808885888688A2747FA688A688A676
+140FF71F80A374801F3F86771400745E746E5BB96E6E5B746E485A75EBFE07091F90B55A
+090715E009015DCF003F91C7FC0A0013FC71647AE178>82 D<001FBEFCA64849C79126E0
+000F148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9
+181FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84
+D<B96C023FB612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C01
+806570170380525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC03
+3F01E04B5A6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7
+C9FC041F5E040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<B800FC047FB6
+12E0A6D800070280CB6CEB80006D6EDE07FCC7FC666D6E611D0F6D6E611D1FA26E6D611D
+3F6E6D611D7F6E6D96C8FC65A26E6D4D5AA26E6E5F1C036E6E5F1C076E6E5F1C0FA26E6E
+5F1C1F6F6D5F1C3F6F6D5F1C7FA26F6D4CC9FCA26F6D5E1B016F6E5D1B03A26F6E4A5AA2
+6F6E5D1B0F6F6E5D1B1F706D5D1B3FA2706D5D1B7F706D92CAFC63706D5C1A01A2706E48
+5AA27002C05B1A077002E05B1A0F7002F05B1A1FA27101F85B1A3F7101FC5B1A7F7101FE
+90CBFC62A2716D5AA2715CA2715CA3715CA2715CA2725BA2725BA37290CCFCA2725AA272
+5AA2725A73637DE17A>I<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273F
+FE001F7FD97FE001077FD9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E
+7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE
+004913F048B512C04891C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C04
+7D7F6EEB01F96C6DD903F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B548
+7E6C6C4B7E011F02FC130F010302F001011400D9001F90CBFC49437CC14E>97
+D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612FC038715FF
+038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F03F8824B6F7E4B6F1380
+4B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F
+13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B9126F83FE0013F13C09127
+F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C8000313E04F65
+7BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001FFF4901F801
+0113804901E0010713C04901804913E0017F90C7FC49484A13F0A2485B485B5A5C5A7113
+E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C
+6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF
+00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F1580020102FCC7FCDA00
+0F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3A892380FFF804AB512F8020F
+14FE023FECFF8391B712E301039138807FF3499039F8000FFB011F01E00103B5FC494913
+004990C87E49488148498148834A815A485BA2485BA25AA3485BA4B5FCAE7EA46C7FA37E
+A26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C0103806D6D49806D01F0D91FF7
+EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14F8020314E09127003FFE00EC
+C0004F657BE35A>I<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE03
+7F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A8048
+84485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27E
+A27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E0
+4A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0
+020092C8FC030713F041437CC14A>I<EE3FFC0307B51280033F14C04AB612F0020715F8
+4A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF4913F05B4913E0A24913C0A270
+13FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6D8001F01C0C8FCB3B3B0007F
+B612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8F001B5FC027FDAFE03148049
+B7128F49DCDFFD13C0010FD9F00FEBFFC149D9800114014990C7EBFC0349486E6C7E4948
+EC3FFF48496E018113800780130048F0C03E97C7FC48496E7FA34884A96C60A36C6D4A5B
+A26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF00F5B4990B612C060D97C7F4A
+C9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F8014F091B77E18FE6CEFFFC019
+F06D17FC19FF6D846D846D846D84013F8490BAFC0003854801E0C712014890C9000F7F48
+4816014848EE007F4848717E8512FF5B85A56D5F007F616D173F003F616D177F6C6C4D5A
+6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D01F8011F5B011F90B712F801
+0717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151>I<903807FF80B6FCA6C6FC
+7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FDB83
+F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8
+F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FCA24880A24880A76C5CA26C91
+C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5FCA6C6FC7F7FB3B3AEB712C0
+A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108
+D<902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B6
+12F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026
+F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEE
+FDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB6
+12FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14FF4C8193267F
+E07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC
+8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<923807FFE092B6FC
+020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C001037F49496D
+7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13F0A24819F8A3
+48496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19
+E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13
+E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E048437CC151>
+I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F010114C09227
+BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A2
+7313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F
+92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7
+B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A>
+I<D90FFFEB0FFCB690383FFF8093B512E04B14F04B14F8923907FC7FFC92390FE0FFFEC6
+EC1F806DD93F0113FF6D133E157E157C15F8A215F07013FEA24BEB7FFCEF3FF8EF0FE04B
+90C7FCA55DB3B0B712F8A638417BC042>114 D<913A3FFF8007800107B5EAF81F011FEC
+FE7F017F91B5FC48B8FC48EBE0014890C7121FD80FFC1407D81FF0801600485A007F167F
+49153FA212FF171FA27F7F7F6D92C7FC13FF14E014FF6C14F8EDFFC06C15FC16FF6C16C0
+6C16F06C826C826C826C82013F1680010F16C01303D9007F15E0020315F0EC001F150004
+1F13F81607007C150100FC81177F6C163FA2171F7EA26D16F0A27F173F6D16E06D157F6D
+16C001FEEDFF806D0203130002C0EB0FFE02FCEB7FFC01DFB65A010F5DD8FE0315C026F8
+007F49C7FC48010F13E035437BC140>I<EC07E0A6140FA5141FA3143FA2147FA214FF5B
+A25B5B5B5B137F48B5FC000F91B512FEB8FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D
+1480A2173F6D16006F5B6D6D137E6D6D5B6DEBFF836EEBFFF86E5C020F14C002035C9126
+003FFCC7FC325C7DDA3F>I<902607FFC0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3
+A260A360A2607F60183E6D6D147E4E7F6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D
+91B55A6E1500021F5C020314F8DA003F018002F0C7FC51427BC05A>I<B70081B600FC01
+03B512FCA6C66C0180C701FCC8381FFE006F6FED03F86D047F5F856F6E16076D646F7014
+0F6D705F866F6E161F6D646F4A6D143F6D99C7FC4E7F6F616D1B7E6F4A6D14FE6D6395B5
+7E7001FC15016E62DCC0016E13036EDBF87F5D05038004E0496C14076E62DCF007ED800F
+6E4B6C5D050F15C004F8496C141F6E62DCFC1FEDE03F6E4B6C92C8FC053F15F004FE496C
+5C6E197E7048EDF8FE6E027E6D5C05FE15FC4D6D13FD6F601BFF6F496E5BA24D806F60A2
+6F496E5BA24D806F60A26F496E90C9FCA294C87E6F5FA26F486F5A047C6F5A6E417DBF75
+>119 D<007FB600C0017FB512F8A6D8001F01F8C70007EBF0006D040190C7FC6D6D5D6D
+6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D495A7049C8FC6E4A5A6E6D485A6E6D
+485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9FC5F6F5B816F7F6F7F8481707F8493
+B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B486C7F4B486C7F4A486D7F4A486D7F
+4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC86C7F49486F7F4A6F7F0107707FEB3F
+FFB600F049B7FCA650407EBF55>I<B700C00103B512FCA6D8003F01C0C8381FFE006FED
+07F0A26D6D5E190F6D6D5E191F6D6D5E193F6D95C7FC6F5D6D177E6F15FEA26D6E495AA2
+6E6D5C18036E6D5C18076E5E70130F6E5E70131FA26E6D495AA26E6D91C8FC606E6D137E
+18FE6E5D17816F5C17C3A26FEBE7F0A26FEBF7E017FF6F5CA26F5CA26F91C9FCA36F5BA2
+6F5BA2705AA2705AA2705AA35FA25F163F94CAFC5E167E16FED807E05CD81FF81301487E
+486C495AA2B5495AA24B5A5E151F4B5A6C4849CBFC15FEEBFC01393FF807FC391FF03FF0
+6CB55A6C5C6C91CCFCC613FCEB1FE04E5D7DBF55>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fr cmsy10 10.95 1
-/Fr 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
+%DVIPSBitmapFont: Fq cmsy10 10.95 1
+/Fq 1 14 df<EE7FFE0307B512E0033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA
+3FE0EC07FCDA7F80EC01FED901FEC9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948
+707E49CB7E017E187E498449844848F00F8000031AC04918074848F003E0A24848F001F0
+A248CD12F8A2001E1A78003E1A7CA2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A
+0FAB6C1A1FA200781A1EA3007C1A3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6C
+F001F0A26C6CF003E0A26C6CF007C06D180F00011A806C6CF01F006D60017E187E6D606D
+6C4C5A6D6C4C5A6D6C4C5AD903F8EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0
+EC07FCDA0FFCEC3FF0913B03FFC003FFC0020090B6C8FC033F14FC030714E09226007FFE
+C9FC50557BC05B>13 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fs cmbx12 14.4 55
-/Fs 55 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<EB07F8EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F
-8091C7FC127EA3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4
-127EA4123E003F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622
->I<1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA249
-5A130791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>I<EB
-7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00FE14C0A315E0A500
-7E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013C0A3EC1F80123E12
-7FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622>57
-D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F1480A2
-49486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F0804913030001
-81491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8001F
-E0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EAFE00
-EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1FF8B7
-12E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F
-9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290C9FC
-5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF0
-07C0011FB512800107EBFE009038007FF028297CA831>I<B612FCEDFF8016E03A03FC00
-1FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07F0A417F8AA17F0A3EE0FE0A217
-C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7FC2D297EA834>I<B712E0A339
-03FC001FED07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3EBFC
-0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327297E
-A82C>I<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403
-A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003
-903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880
-485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E
-6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5D8F0
-0FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<
-B512F0A33803FC00B3B1B512F0A314297EA819>I<B500F0EBFFFEA3D803FCC7EA0F0016
-1E5E5E16E0ED03C04B5A4BC7FC151E5D15F04A5A4A5A1407140F4A7EEC7FF04A7EEBFDE7
-9038FFC3FCEC83FE9038FE01FF497E6F7E826F7E151F6F7E8215076F7E6F7E8281EE7F80
-B539F00FFFFEA32F297EA835>75 D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A215
-07A2150FA2151F157F913801FF00B7FCA322297EA828>I<D8FFFE92383FFF80A26D5D00
-03EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F813
-0EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A291380FE380
-A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>I<D8FF
-FCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF0180138014
-7F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1ED1FF1150F
-16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A230297EA835>I<
-ECFFC0010F13FC90383F807F9039FE001FC0D801F8EB07E048486D7E48486D7E000F8148
-486D7EA24848147FA2007F168090C8123FA34816C0AA6C16806D147FA2003F1600A26C6C
-14FEA26C6C495A6C6C495A6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC01
-0013C02A297CA833>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA7
-16FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<EC
-FFC0010F13FC90383FC0FF9039FE001FC048486D7ED803F0EB03F000078148486D7E4848
-6D7EA24848147FA2007F1680A290C8123FA24816C0AA6C16806D147FA2003F1600A26C6C
-14FE143E3A0FE07F81FC00079038C1C1F83A03F18063F0D801F9EB67E0D800FFEB3FC090
-263FC07FC7FC90380FFFFC01004913C0EC003C811601ED1F8316FF6F1380A21700816F5A
-6F5A6F5A2A357CA833>I<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E
-4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA2
-1503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>I<9038FF80600003EBF0E000
-0F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7FFC
-EBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E013
-03A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA825
->I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A2481501
-A5C791C7FCB3A490B612C0A32A287EA72F>I<B500F0EBFFFEA3D803FCC7EA0380B3AA00
-01ED07007F0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7FC
-2F297EA834>I<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B01
-7F140E80013F5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301
-015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA23029
-7FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13
-016C604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E
-17F09126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035B
-A2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E
-141EA242297FA845>I<B500F0EB3FFFA3D803FEC7EA03C06C6C15806C6DEB07005E6D6C
-130E6E5B013F143C6D6C13386E5B010F14F06D6C5B6E485A01031303D901FF5B0387C7FC
-6D138FEC7FCE15FC143F6E5A5D140FAE0103B512C0A330297FA833>89
-D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA
-0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21
->97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F89038E0
-00FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380FFF8039
-0E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E
-007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FF
-F838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F
-8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FFE73800
-7F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15
-C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803
-F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207
-143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F00003EBE3
-F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C
-380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F012
-1F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512003800
-7FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701
-F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1F
-C0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FB3
-B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D8
-0FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A333
-1B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213
-E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0
-393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F
-803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE039
-0FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038
-F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FF
-C1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
-D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
-13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
-C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
-AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
-07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
-0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
-FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
-EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
-FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
-803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
-00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
-3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
-EA74F0EA3FE0EA0F8020277F9A23>I E
+%DVIPSBitmapFont: Fr cmbx12 14.4 54
+/Fr 54 122 df<EA07F0EA1FF8487E487E7FB5FC1480A314C0A37EA27E7EEA07F3EA0003
+A213071480A3130F1400A25B131E133E133C137C5BA2485A485A485A485A48C7FC121E12
+0C1228769025>44 D<EA07F0487E487E487E487EB51280A76C13006C5A6C5A6C5A6C5A11
+11769025>46 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7
+FCB3B3B3A6007FB712FEA52F4E76CD43>49 D<EC3FFE0103B512E0010F14FC013F14FF90
+B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F48488001F016
+80486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E05EA218C0
+5E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48
+C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD91F801407
+49C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43>I<9138
+0FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803
+F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC16
+80C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA
+000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FE
+A2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F0
+4A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F15800103
+02FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167F
+A216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC
+1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A
+485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>I<D80380
+150ED807E0157E01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F016C093C8
+FC15F801E190C9FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FFF8077FDA
+C0017F49C713F8496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0A3EA0FE0
+487E487E487E487EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C4A5A6D5D
+6C6C4A5AD807F8495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14F8010314
+C09026007FF8C8FC344F79CD43>I<ED0FFF92B512E0020780021F14FC91397FFE03FE90
+3A01FFF0007F4901C0EB3F804990C7121F4948EC7FC0494814FF49484913E049485B01FF
+5C485BA2485B5AA2486F13C04A6D1380486F1300177E94C7FC5AA291CAFC5AA215089138
+01FFF8020713FFB54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D7E7013804A15C0A24A
+15E07013F05C18F8A491C714FCA37EA67EA46C17F880A27E18F06C5D18E06C6D15C07E6E
+4913806C6D15006D6C495A6D6CEB7FFC6DB448485A6D90B55A010315C0010092C7FC023F
+13FC020713C0364F7ACD43>I<121F7F7FEBFF8091B81280A45A1900606060A260606048
+5F0180C86CC7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812
+014B5A5E4B5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D141FA2
+143FA4147F5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<171F4D7E4D7EA24D7E
+A34C7FA24C7FA34C7FA34C7FA24C7FA34C8083047F80167E8304FE804C7E03018116F883
+0303814C7E03078116E083030F814C7E031F81168083033F8293C77E4B82157E8403FE82
+4B800201835D840203834B800207835D844AB87EA24A83A3DA3F80C88092C97E4A84A202
+7E8202FE844A82010185A24A820103854A82010785A24A82010F855C011F717FEBFFFCB6
+00F8020FB712E0A55B547BD366>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C70003
+13FFDE007F7F737F070F7F737F878587858785A287A84F5BA263616361634F5B4F5B077F
+90C7FC4E485A060713F892B812E097C8FC861AF003F0C7000313FE9539003FFF80070F13
+E0737F07017F87737F747E1C807413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250
+138097B5FC1C004F5B19074F5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC5452
+7CD160>I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA
+803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848
+C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B48
+1A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B
+0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A
+6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203
+903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479
+D261>I<BA7E19FCF1FF801AF01AFCD8000701F0C7000F13FF060014C0071F7F070713F8
+07017F737F747E747F747F86747F747F8886888688A2757EA31D8087A21DC0A51DE0A387
+A963A31DC0A51D80A2631D00A3515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B
+07075B071F5B96B512C0060F91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC12
+80A5D8000701F8C7000114C0F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03
+A318F81BF01A01A497C7FC1701A317031707170F177F92B6FCA59238F8007F170F170717
+031701A317001B3EA31B7CA395C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F
+1A3FF27FE0F101FF1907191F0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D80007
+01F8C700077FF0007F191F190785858586861B80A21A1FA31A0FA41BC006F81307A497C7
+FCA31701A317031707170F177F92B6FCA59238F8007F170F170717031701A31700A795C9
+FCB3B812F8A54A517CD055>I<932601FFFCEC01C0047FD9FFC013030307B600F8130703
+3F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01
+800203B5FC494848C9FC4901F8824949824949824949824949824990CA7E494883A24849
+83485B1B7F485B481A3FA24849181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712
+E0A280A36C94C7003FEBC000A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D
+5E6D7F6D01FC93B5FC6D13FF6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001
+FFE0020091B6EAC07F033FEE001F030703FC1307DB007F02E01301040149CAFC5B5479D2
+6A>I<B8D8C003B8FCA5D8000701F8C9001FEBE000B3AE92BAFCA503F8C9121FB3B1B8D8
+C003B8FCA560527CD169>I<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>
+I<B800C091B612F8A5D8000701F8C90003EBF8009738007F8051C7FC505AF203F8F20FF0
+505A505A505A50C8FCF101FCF107F84F5A4F5A4F5A4F5A07FEC9FCF003FC4E5A4E5A4E5A
+4E5A4E5ADD01FECAFC4D5A4D5A4D5A4D7E173F4D7E4C487E4C7F5E4C804C804C80EEFF7F
+9226F9FE3F7FDBFBFC809226FFF81F7F4C7EDCC0077F0480804C7E4B6D804B6D804B8284
+727F727F8684727F727F8784728087737F85737F87737F85737F88857380747F888697B5
+12FCB800C0013FECFFFEA55F527CD169>75 D<B812F8A5D8000701F8CAFCB3B3A91A7CA4
+1AFC1AF8A51901A31903A219071AF0190FA2191F193F197F19FF180360183F4DB5FCBB12
+E0A546527CD151>I<B600FC073FB512FE6F61A26F96B6FCA2D80007F5C00070EF01EFA2
+02EF6DEF03CFA202E76DEF078FA202E36DEF0F0FA202E16D171EA302E06D173CA26F6C17
+78A26F6C17F0A26F6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F00A26F6D151EA2
+6F6D5DA3706C5DA2706C5DA2706D495AA2706D495AA2706D495AA3706D49C7FCA2706D13
+1EA2706D5BA2716C5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A27101FFC8FCA371
+5BA2715BA2725AA2725AA2D93FFC6F5AB74DB712FEA2725AA2725A77527CD180>I<B600
+FC93B7FC8181A282D800076E9239003FFC0070EE07E08282A28202EF7F02E77F02E380A2
+02E18002E0806F7F6F7F6F7FA26F7F6F7F6F806F80A26F80707F707F707F707FA2707F70
+80708070808583717F717F717F717FA27114807114C07114E07213F07213F8A27213FC72
+13FE7213FF721487A27214C77214E77313F77313FF85A285858585A28586868686A28686
+8686A2D93FFC187FB7173F1B1F1B0F1B07755A60527CD169>I<93380FFFC00303B6FC03
+1F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F
+494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F49854948707F4948707FA2
+4849717E48864A83481B804A83481BC0A2481BE04A83A2481BF0A348497113F8A5B51AFC
+AF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A
+6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01
+FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8FC020016FC031F15E00303
+92C9FCDB001F13E0565479D265>I<BAFC19F819FF1AE086D8000701F0C7001F13FC0601
+13FF726C13807313C0070F13E01BF0857313F81BFCA27313FEA41BFFA81BFEA31BFC61A2
+1BF84F13F04F13E0614F13C04F13004E485A061F5B92B812F01AC04FC7FC19E003F8CBFC
+B3AEB812C0A550527CD15C>I<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013
+FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F902601FFF0ED3FFE49496F7E49
+496F7F49496F7F4990C96C7F4948707F4948707F01FF854A177F48864849717EA2484971
+1380A2481BC04A83481BE0A24A83481BF0A3481BF8A291CB7EA3B51AFCAF6C1BF8A26E5F
+A36C1BF0A36C6D4D13E0A36C1BC06E5F6C1B806E5F6CDB01FE16006C6D902607FF80495A
+4C13E06C6D013F6D495A017F91267F03F85C6D6C90277C00FC015B6D6C49D97E035B6D01
+806E485B6D6D48D91F8F5B6D01E0039F90C7FC6D01F06EB45A6DD9FCF85DDA3FFF6E13F0
+020F6D4913C0020301FF90B5C8FC020091B512FC031F180C0303181EDB001FEBE3FE93C7
+EA01FF74133E74137E7413FEF2F8077290B5FC1CFCA285A21CF8A2851CF07314E0A27314
+C0731480731400735B9638007FF8F21FE0576A79D265>I<B912F0F0FF8019F819FF1AC0
+D8000701F0C714F0060F7F060113FE727F737F737F85737F87A2737FA387A863A2616363
+A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092B8C9FC19F819E019F89226F000
+0313FE9439007FFF80727F727F727F727F727F8684A28684A787A71D1C75133EA3857513
+7E73157C7513FC731401B86C6D9038F803F807039038FE07F07390B512E0736C14C0080F
+1400CEEA7FFC5F537CD164>I<91260FFF80130791B500F85B010702FF5B011FEDC03F49
+EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F001F82
+4981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86C
+ECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F821303010082
+021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F882A318
+7FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02
+F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D900
+7F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF80601
+13C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994
+C7FCB3B3AC91B912F0A553517BD05E>I<B800C00103B612FCA5D8000701F8CAEBF000F3
+1F80B3B3B11B3FA26D97C7FC81637F1B7E6D6D17FE505A6E7E505A6E6D15076E4D5A6E6D
+4B5A6E6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0FFE6F9039F001FFF8030F90B6
+5A030316C0DB007F92C9FC040F14F8DC007F13805E537CD167>I<B700FE031FB512FEA5
+D8001F01F0CA383FFE00F307F06D626F170F6D62811B1F6D6D601B3F6D97C7FC6F5F6D19
+7E821BFE6E6D5E1A016E6D5E1A036E60701507A26E6D5E1A0F6E6D5E1A1F6E6070153FA2
+6E6D93C8FC626E6E147E1AFE6F5E711301A26F6D5C19036F6D5C19076F5E71130FA26F6D
+5C191F6F6D5C193F6F93C9FC715BA26FEC807E19FE706D5A18C1705C18E3705C18F318F7
+70EBFFE0A2705CA2705CA37091CAFCA2705BA2715AA3715AA2715AA2715A715A5F537DD1
+66>I<B700FC017FB600FE91B612F0A5D8003F01C0C8001F01E0C9EBF8006F71EE0FC06D
+7161876F1C1F6D7196C7FC6F8373606D1E3E6F836D7160876F1CFC6D666F4B801F016D66
+704A806E525A88704A17076E059F5F70021F80080F160F6E6570023F806EDC3E074CC8FC
+8870027E5F6EDC7C03163E7002FC804F6C167E6E1C7C700101814F6C16FC6E745B700103
+17016E4C6D5D060716C00580496D14036F63DDC00F16E04F6D14076F07F05BDDE01F170F
+6F92C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C6E5C6FF1FE3EDDFCFC177E6F
+4A6E147C1DFFDDFFF06E14FC6F62A24E816F62A270496F5BA24E817061A295C97E7061A2
+70487090CAFCA37048705AA24D1601040360A27048705A84537DD18B>I<B8030FB61280
+A5D8000F01FCCA003F90C7FC6FEF07F86D6D606D4F5A826D6E4C5A6D4F5A826E6D4CC8FC
+6E18FE826E6D4B5A6E4D5A826E6D4B5A6E4D5A836E6E4A5A6E4D5A836F6D4AC9FC6F5E71
+5C6F6D495A6F1503715C6F6D495A6F150F06805B6F6E485A6F153F06E05B706D48CAFC70
+5C725A70EBFDFC7013FF61705C82705C6182715B96CBFCB3AA030FB712F8A561527ED166
+>89 D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB
+3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC
+01071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA4
+5EA26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC0
+14F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
+D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFFC092B612F002F301017F
+913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285A285
+84A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7FCDA
+87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FCC8FC90C7000313C04154
+7BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001
+FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48
+92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC
+3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC
+020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91
+B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980
+485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C
+6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9
+003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901
+817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191
+C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01
+F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE
+903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC02
+03B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A49
+5AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB5
+12FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F90
+267FFC0F9038FF9FF09026FFE001EBF83F48496C13E0484990387FF01F4890C7D83FF813
+E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A
+6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFC
+A2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C836D828448B9FC12074848
+C700031480D81FF8EC003F4848150748486F13C083485A83A56D5D007F18806D5D003F18
+006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280010F
+03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5FCA51203C6FCB3A4EE1F
+FC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C8003F07FDAF1E081ECF3
+C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542537BD24B>I<137F497E
+000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3
+A6B612E0A51B547BD325>I<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>108
+D<D93FF0D91FFCEDFFE0B591B500C0010713FE030302F0011F6D7E030F6E017F8092271F
+E07FFCD9FF037F922A3F001FFE01F8007F0003027C9126FF03E080C602F06DD90780137F
+DAF1E0038FC77FDAF3C0159EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3
+ACB6D8F807B6D8C03FB512FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314F003
+0F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502
+FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B6
+12C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F4849
+6D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3
+003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE
+011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<
+903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9
+FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A
+0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FB
+FE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<
+90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013
+FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612
+FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307
+D81FE0130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15
+F86C14FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F0307
+13F015010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC
+7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB6
+35>I<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FC
+A426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEB
+FFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA50003ED
+001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFFC090
+3A0FFFC03F836D90B51203010114FE6D6C13F8020701E091C7FC42377BB54B>I<B600F0
+0107B5FCA5000101F8C8EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D5E6F
+13016D5E8117036D5E6F13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E023F
+147C6F13FC6E5C16816E5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5AA36F
+5AA26F5AA26F5AA26F5A6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101F0C7
+01F0C7381FF8006E027FED07E06C715DA26E023F150F017F705DA26E181F013F4B6C92C7
+FC6E606D70143E94B5FC6F177E6D4A6E137C03C001F315FC6D715B160303E001E114016D
+020702E05B03F013C06D71485A160F03F8D9807F13076D05F85B93381F003F03FC160F02
+7F4902FC5BDBFE3E011F131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C6D13
+7E6E5FA24C7F6E5F4C7F6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9FC5A
+367DB461>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D
+495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06E
+EBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03
+F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A4948
+6D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600F001
+07B5FCA5C601F8C8EA7FE06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F13016D5E
+6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F147C6F
+13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F5AA2
+6F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C13FC
+5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC690CB
+FC404D7DB447>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ft cmtt10 10.95 91
-/Ft 91 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
-3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
-A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
-7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
-12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
-123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
-EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
-24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
-C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
-FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
-7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
-123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
-A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
-14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
-1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
-0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
-00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
-431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
-C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
-485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
-071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
-D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003C0EA0001EB00E0A2126012
-F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C7E9B18>I<137E48B4FC00
-071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC38FE078038F803
-C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5AEA01F8131C7E9B
-18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13F05BA2485AA3485A
-A448C7FCA7131D7E9C18>I<EA03F8EA0FFE487E383E0F80EA3803387001C0A438380380
-EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0EAE000A4387001C0EA
-7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812FCA2127812301200A8
-1230127812FCA2127812300614779318>58 D<1218123C127EA2123C12181200A8121812
-3C127EA2123E121E120E121C123C127812F01260071A789318>I<14C0EB03E01307EB1F
-C0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C
-7EEB3F80EB1FC0EB07E01303EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4
-387FFFC0B512E0A26C13C0130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C
-7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A
-126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5B
-EA01F05B485AA55BC8FCA5EA0380487EA36C5A111C7D9B18>I<137CEA01FEEA07FF380F
-8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1C1C0127113E338
-70FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00131C7E9B18>I<
-137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA0E03381C01C0A338
-7F07F000FF13F8007F13F0151C7F9B18>I<EA7FFCB5FC6C1380381C03C01301EB00E0A4
-130114C01307381FFF80140014C0EA1C03EB00E014F01470A414F014E01303387FFFC0B5
-1280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA1E03EA3C01EA38005AA2
-14005AA8127014E0A27E123C381E01C0EA0F073807FF803803FE00EA00F8131C7E9B18>
-I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
-C01303EB0F80387FFF00485AEA7FF8141C7F9B18>I<B512F0A3381C0070A41400A2130E
-A3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F0A3381C0070A4
-1400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0A3141C7E9B18>I<3801F1C0EA03FD
-EA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F130F387001C0A2130312
-38A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F038FF8FF8387F07F0
-381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>I<EA7FFFB5
-12806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<3801FFC0A338000E00B3
-12F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8387F07F0381C03
-C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380
-A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>I<EAFFC0A3001CC7FCB114E0A5B5
-FCA3131C7E9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A2
-13F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0
-A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
-151C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF0010070
-13C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E0
-13001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA
-0FFE383FFF804813C0EA7803EA700100F013E0EAE000AE1370A2EAF079387039C0EA783F
-EA7FFF6C1380380FFE00EA000FEB0780A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE
-6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380A5149CA3
-387F01F8EAFF81387F00F0161C7F9B18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A3
-90C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2126012E0130100
-F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E07038A40000
-1300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F01380783C03803
-FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0001C13C0A3EA1E
-03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370151C7F9B18>I<
-38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3138CA2EA1D8DA31305
-000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F380E0700120FEA070E13
-8EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138EEA070F7F000E138013
-03001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03F8EAFF07EAFE03381C
-01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC48
-7E6C5A151C7F9B18>I<383FFFE05AA2387001C01303EB07801400C65A131E131C133C5B
-137013F0485A5B1203485A90C7FC5A001E13E0121C123C5A1270B5FCA3131C7E9B18>I<
-EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>I<126012F0A27E1278127C123CA2123E12
-1E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131EA2131F7F1480
-1307A2EB030011247D9F18>I<EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0
-B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A312F812FC127CA2
-1238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F
-03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E12FE127E12
-0EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFF
-C0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FC
-A25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F
-131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA
-3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F383807
-80EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA
-01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801
-C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C
-0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338
-A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA513
-3EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>
-I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338
-137CA313381300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C
-18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA
-0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A311
-1C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB
-3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38
-FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E0
-00E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<
-EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EB
-FFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1F
-FFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA00
-03A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0
-005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7
-FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F01114
-7D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380
-EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE
-3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700
-A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0
-A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>
-I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA03
-9E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13
-F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC13
-78A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA23870
-01E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A3
-14147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB
-1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC13C0
-1203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18
->I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA60C00F067C9B18>I E
+%DVIPSBitmapFont: Fs cmtt10 10.95 89
+/Fs 89 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00
+A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14
+00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2
+02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F
+90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2
+29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE
+FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3
+6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01
+1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC
+A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C
+5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<D803C0EB01E0
+D80FF01303486C497E487E150F487ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC
+6C5A5D387E7E01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A
+5AA25D147FA292C8FC5CA2495AA25C1303A25C1307A290390FF001E0ED07F84A487E011F
+497EA24A487E133F163F90267F807F1380ED7E1F14005BA25B1201A24848EB7F3F033F13
+004914FF12076F5A5B6F5A6C486D5A0001EC01E029477DBE30>I<EB07E0EB1FF8497E13
+7F497E803801FC7F497E810003131F13F0A6143F92C8FC91387F0FFF9026F87E1F138000
+0113FEEBF9FC13FB4A6C1300D9FFF013C06C13E0151F02C05BEB7F809038FF003F4892C7
+FC485C48EB807E5A15FE391FDFC0FC383F8FE014E1397F07F1F8EB03F300FEEBFBF0EB01
+FF5D7FEDC006027F130F91393F801F8015C06C137F6CEBFFE049EBF83F018701FC130026
+3FFFFBB5FC6C01F15B14E06C9038C03FFC00039038001FF8D801FCEB07E0293A7DB830>
+I<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13FCA2120113F81203EA
+07F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>I<141E147F14FF5BEB03
+FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F
+5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7E
+EB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812
+FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB
+03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14
+E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A12781847
+78BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9
+FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048
+B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD8
+7E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7
+FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA03E0EA0FF0EA1FF813FC
+EA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFFE0
+EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120F
+EA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A2
+1507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA2
+4A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249
+C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA22547
+7BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F48
+48EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FE
+EC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A2
+6C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FE
+C7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF
+138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C14F81F3977B830>I<EB07
+FC90383FFFC090B512F00003804814FE4880261FF80F1380263FE00113C09038C0007F48
+48EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218C8FCA2150716F0150F16E0
+151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A
+EB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7FCA37E
+6C15F025397BB830>I<EC03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB03F8A2
+EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485AA2485A
+A248C7FC12FEB8FC1780A46C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B29397DB830
+>52 D<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9
+FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A312
+18127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F
+13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>I<127CB712FC16FEA4
+16FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D
+4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC
+273A7CB830>55 D<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A
+1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C
+6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F
+90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC
+90C712014815FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F
+3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<
+120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EA
+FFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>58 D<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA
+1FF8A2EA0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200
+120113F8120313F01207EA1FE0123FEA7FC0EAFF80EA7F00127E12380E3470A630>I<16
+F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B010713C0
+495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87F
+EA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91381F
+FF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>I<007FB7FCA2B8
+1280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>I<127812
+7EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D
+7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C020713C0
+4A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A4813E0000F
+5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<EB1FFE90B512E000
+0314F8000F14FE4880481580267FF80313C09038C0007F48C7121F16E0150FA3127E151F
+0018EC7FC0C812FF020313804A13004A5AEC1FF84A5AEC7FC04A5A92C7FC495AA2495A5C
+A213075CA86D5A90C9FCA8EB01C0EB07F0A2497EA36D5AA2EB01C023397AB830>I<EC1F
+E0ECFFF8010313FE010F7F4914804914C090397FF03FE09038FF800F4890380007F0D803
+FC13033A07F801FBF89038F007FF380FE01F4A13FCEA1FC0495A003FEBFF0F903800FE07
+903901FC03FE007FEBF801EA7E03ECF000A2EAFE0700FC49137EAA00FE6D13FED87E0314
+FCA2ECF801D87F0114F8003FEBFC03903900FE07F0903880FF0F001F90387FFFE06D6C13
+C0EA0FE06E13803A07F007FE009038F801F86C6CC7127C6CB414FE6CEB800390387FF01F
+6DB512FC6D14F86D14E0010314C00100EBFE00EC1FF0273A7CB830>I<147F4A7EA2497F
+A4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA449
+8049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFF
+B56CB51280A46C496C130029397DB830>I<007FB512F0B612FE6F7E82826C813A03F800
+1FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16
+E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC00
+7FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C903903FFF03E49EBFC7E
+011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B48481303A2484813
+015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13
+016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14
+806D1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C
+816C813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0F
+E0AC161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485D
+B75A93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F
+0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8
+FCA46C16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093
+C7FCA5153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B
+2A387EB730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F
+4848133F4848131F49130F485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A
+5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C
+6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090
+C8FC293A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13
+E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8
+A26C496C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3
+B3A8007FB6FCB71280A46C1500213879B730>I<D83FFF90380FFF80486D4813C0B56C5A
+A26C497E6C496C1380D803F0903803F8004B5A4B5A151F4B5A5E4BC7FC15FE14014A5A5D
+4A5A4A5A141F5D4A5A4AC8FC5C13F18101F37F13F790B57E14EFECC7F01483EC03F81401
+01FE7F496C7E5B157F497F82151F82150F826F7EA26F7E1501821500D83FFF903803FFC0
+486D4813E0B56C5AA26C497E6C496C13C02B387FB730>75 D<383FFFF8487FB57EA26C5B
+6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA27E6C16802A387EB730>I<D8
+3FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C4913E00007160001EF14BFEC800F
+A39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1137CA2ECF8FCA201E013F8A214FD
+EC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD83FFC903801FFE0486C4913F0B549
+13F8A26C486D13F06C486D13E02D387FB730>I<D83FFC90381FFF80486C4913C0B54913
+E0A26C6D6C13C06C6E13800003913801F800EBF7C0A3EBF3E0A314F013F1A214F8A213F0
+14FCA2147C147EA2143E143FA2141FA21581A2140F15C1A2140715E1A2140315F1A21401
+A215F91400A3157DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C5A2B387EB730>
+I<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0
+A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8
+13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<007FB512F0B6
+12FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA2821780163FA6167F17005E
+A24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C
+5B29387EB730>I<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E013
+3F4848EB1FF049130F90C71207A44815F8481403B3A8147E14FE6CEBFF076C15F0EC7F87
+A2EC3FC7018013CF9038C01FFFD83FE014E0EBF80F90B6FC6C15C06C15806C1500000114
+FCD8003F7FEB00016E7EA21680157F16C0153F16E0151F16F0150FED07E025467BB830>
+I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F6F7E1507150382
+1501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8007FED3FE0151F
+150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F06C496C13E06C49
+EB7FC0C9EA1F002E397FB730>I<90390FF803C0D97FFF13E048B512C74814F74814FF5A
+381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7F
+EA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF01031480D9003F13C01401
+9138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01
+F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830
+>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC49
+80A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA
+3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393FE00FF890391FF83FF0
+6DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B549
+13E06E5AA24A7E6C486D13C0D807F0903801FC00A26D130300035DA46C6C495AA46C6C49
+5AA46D131F6D5CA3EC803F013F5CA46D6C48C7FCA490380FE0FEA401075B14F1A301035B
+A314FB01015BA314FFA26D5BA46E5A6E5A2B397EB730>I<D83FFC903801FFE0486C4913
+F000FF16F8A2007F16F06C486D13E0D81FC09038001FC0000F1680A76D143F00071600A7
+000390380F803E9039F01FC07EEC3FE0A3EC7FF0A2147D0001157CA29039F8FDF8FCA314
+F8A300005D01F913FCA2ECF07CA201FD137DA2017D5CECE03DA3017F133FA2ECC01FA201
+3F5CA2EC800F6D486C5A2D397FB730>I<3A3FFF01FFF84801837F02C77FA202835B6C01
+015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B
+14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F81
+81EB7F0081497F49800001143F49800003141F49800007140FD87FFEEB7FFFB590B51280
+80A25C6C486D130029387DB730>I<D87FFF90381FFFC0B56C4813E0A46C496C13C0D803
+F8903803F8006D1307A26C6C495AA26C6C5C151F6D5CEC803F013F5CECC07F011F91C7FC
+A290380FE0FEA214F101075BA2903803FBF8A201015B14FF6D5BA26E5AA36E5AB1903803
+FFF8497F497FA26D5B6D5B2B387EB730>I<001FB612FC4815FE5AA490C7EA03FCED07F8
+16F0150FED1FE016C0153FED7F80003E1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A
+5A92C7FC5C495A5C1303495A5C130F495A5C133F495A91C8FC5B4848147C4914FE120348
+5A5B120F485A5B123F485A90B6FCB7FCA46C15FC27387CB730>I<007FB5FCB61280A415
+0048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>I<127CA212FEA27EA26C7EA26C7E
+A26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D
+7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F
+80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5
+FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2
+B712F8A36C15F0A225077B7D30>95 D<1338137CEA01FE12031207EA0FFC13F0EA1FE013
+C0EA3F8013005A127EA212FE5AA5EAFFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70
+BE30>I<EB7FF80003B5FC4814C04880488048809038E01FFC9038C003FE14016E7E6C48
+7F6CC77FC8123FA491B5FC130F137F48B6FC12075A48EB803F383FF800EA7FE0138048C7
+FC5AA4157F7E6C6C13FFEBC003263FF01FEBFF8090B712C07E6C14EF000314876CD9FE01
+138026003FE0C8FC2A2A7BA830>I<EA3FFC487E12FFA2127F123F1200AAEC03FE91381F
+FF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13804A137F4AEB3FC091C712
+1F17E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313
+009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC90380003FC2C3980B730>I<EC
+FFE0010713FC011F7F017F7F90B612804815C048EB807F3907FC003F485A485A49EB1F80
+4848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F
+6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B011F13F801075B0101138023
+2A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A
+5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140F
+A27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F7
+6D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F
+7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307
+127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D
+1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013
+C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5FC491387903803FE079138
+FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C15C0260007F0C7FCB3A900
+3FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC13FF90261FFF8713C04913
+DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7FCA2497F001F8149133FA5
+6D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0
+C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE0001FFE0180130148C8127F00
+7E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B5
+5A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730>I<EA3FFC487E12FFA212
+7F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA29138FE07FCECF8039138E0
+01FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC
+14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFF
+F8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>I<EC01
+C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F04814F8A47EEB0003B3B3A5EC
+07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C14005C6C5B000F13F0000313C0
+1D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14C017E0A217C06E14809139
+001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7EC
+E3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C
+4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B57EA47EEA0001B3B3A8007F
+B612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B5
+00CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A3
+01E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>I<EC
+01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C9038FE07FCC6EBF8039138E0
+01FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC
+14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014
+013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A3
+00FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE0
+6D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA8
+30>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C816CEBFE07C69038
+F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8160FA217E07F16
+1F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C6E13C0021F90C7
+FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I<49B413F8010FEBC1
+FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A49130312
+7F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC137F3907FF
+01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512F84A14FC
+A46E14F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C
+9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512
+FC4880B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B5129F000714FF5A5A5A387FF0
+07EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E00001
+14F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB
+3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830
+>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FC
+A5ECE003010FEB07F814F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF0
+26337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A4
+1501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF801
+0001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C1380
+3B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7
+FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E
+5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7
+EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147D
+A2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D
+277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE
+90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F8190
+3803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE
+6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3F
+FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C
+137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15
+FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA200
+0F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA6
+30>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E4913
+00C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E
+4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3FF09138
+03FFF8140F5C147F16F09138FFF00092C7FC495A5CB3A21303495A133F383FFFF0B55A5C
+91C8FC14C080003F7F38003FF813076D7E1301B3A2806D7E15F091387FFFF016F8141F80
+14039138003FF025477BBE30>I<127CA212FEB3B3B3AD127CA207476CBE30>I<EA7FE0EA
+FFFE6D7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387FFFE06E13F880140714
+1F5C4A13E09138FFE00092C7FC495A5CB3A21303495A137F387FFFF0B5FC14C05C49C8FC
+EA7FE025477BBE30>I<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFF
+F0D8FF8713E0010713C0486C1380D87C0113003838007C1F0C78B730>I
+E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fu cmr10 10.95 77
-/Fu 77 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
-00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
-80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
-EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
-D<1340A2EA03F0EA0C4EEA10413820408012600040134038C041C01343A238E04180EB40
-001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F801343EB41C0A2EAF040A312801480
-EA404100201300EA3042EA0C4CEA03F0EA0040A312257EA117>36
-D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
-D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
-30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
-0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
-5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
-D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300
-A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D
-7EA117>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
-0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>I<13801203120F12F31203B3A6EA
-07C0EA7FFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803
-A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA
-3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F1200
-1400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240
-EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA
-010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>
-I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0
-A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA
-0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EA
-F807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17
->I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B
-1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A31270
-38780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C0
-12C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18
-487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380
-A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312
-701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212
-781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB20
-78A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E0
-39FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEBFF
-F0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20
->I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A15
-10127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E003
-00EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F0157015
-78A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F
-9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF130113
-001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B6128038078007
-1401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A
-1F7F9E1E>I<90380FE02090387818609038E004E03803800238070001481300001E1460
-A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E38038002
-3900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FC
-EB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<39FFF0
-07FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E01341
-EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75
-D<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<B4
-6CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A29038
-0E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>
-I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03
-C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22
->I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14
-F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C0
-6C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80
-EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>82
-D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8
-6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180
-38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014
-3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00
-80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003
-FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213
-F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0
-7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003
-5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14
-4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39
-FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06
-EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89
-D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA80
-40A3EAB85CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80
-A10D>I<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
+%DVIPSBitmapFont: Ft cmr10 10.95 82
+/Ft 82 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
+F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
+FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
+D<EC03FE91383FFF809138FE03E0903903F800F0D90FE013384948137C90393F8001FE90
+387F00035B5BA2485A6F5AED007093C7FCAA16FEB7FCA33901FC000315011500B3AC486C
+497EB5D8F87F13FCA32E407EBF33>I<EC03FF023F13EE9138FE01FEEB03F090380FE003
+EB1FC0EB3F80EB7F005B5B150148481300AEB7FCA3D801FCC7FCB3AE486C497EB5D8F87F
+13FCA32E407EBF33>I<DA03FE49B4FC91273FFF801F13C0913BFE03E07F01F0903C03F0
+00F1FC0078D90FE0D97FF0131C49484948133E4948484913FF494848495A5B491500A248
+485C03016E5A0300153896C7FCAA197FBBFCA3D801FCC738FE00018485B3AC486C496CEC
+FF80B5D8F87FD9FC3F13FEA347407EBF4C>I<001E130F397F803FC000FF137F01C013E0
+A201E013F0A3007F133F391E600F3000001300A401E01370491360A3000114E04913C000
+03130101001380481303000EEB070048130E0018130C0038131C003013181C1C7DBE2D>
+34 D<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F80
+7FD81F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E
+0092C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F
+130301007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A51300
+00FC158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B5
+1280D93FFEC7FCEB0FF8EB00E0A422497BC32D>36 D<121EEA7F8012FF13C0A213E0A312
+7FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19>
+39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2
+485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37E
+A27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00
+E014701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F137813
+7CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA3
+1480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A
+5A5A145A7BC323>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312
+011380120313005A120E5A1218123812300B1C798919>44 D<B512FEA617067F961E>I<
+121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>I<ED0180ED03C01507A2168015
+0FA216005DA2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140F
+A24AC7FCA2141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA2
+91C8FC5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC
+5AA2121E123EA2123C127CA2127812F8A25A1260225B7BC32D>I<EB01FE90380FFFC090
+383F03F090387C00F849137C48487F48487F4848EB0F80A2000F15C04848EB07E0A3003F
+15F0A290C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0
+A26C6CEB1F80000315006C6C133E6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC26
+3F7DBC2D>I<EB01C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B6
+12F8A31D3D78BC2D>I<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001
+FE001E6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC8
+13E0153FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C49
+5A495A495A495A49C71270133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815
+C0B7FCA3243D7CBC2D>I<EB07FC90383FFF809038F80FE03901E003F839078001FCD80F
+007F000E6D7E001E1580D81F80137F486C14C07FA27F5BA2121F6C5AC8138015FF1600A2
+4A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E16
+80ED7FC0A216E0153FA216F0A2120C123F487E487EA316E0A249137F6CC713C01278EDFF
+807E6C4913006C495A3907C007FC3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D
+>I<150E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0
+EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA2
+5A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE
+90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E0903870
+01F8496C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12
+FFA416E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C
+6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F0
+3E90380FC00F90391F000780133E017EEB1FC049133F4848137F12035B12074848EB3F80
+ED1F00001F91C7FC5BA2123FA3485AA214FE903887FF8039FF8F07E090389C01F09038B8
+00FC01B0137E13F0497F16804914C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED
+3FC0A26C6C1480A20007EC7F006C6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380
+D903FCC7FC243F7CBC2D>I<1238123C123F90B612FCA316F85A16F016E00078C7120100
+70EC03C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141E
+A25CA2147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26
+407BBD2D>I<EB03FC90381FFF8090387C07E09038F001F83901E0007C48487F48487F48
+C7FCED0F80121E16C0003E1407A4123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B
+9038FF80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D13C06D7F013F13F801787F4848
+6C7E3903E01FFF48486C1380260F800313C048487E489038007FE0003E143F007E141F00
+7CEC0FF01507481403A31501A46C15E0007C1403A2007E15C06C14076CEC0F806DEB1F00
+6C6C133ED807F05B3901FC03F86CB512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FC
+EB1FFF90387E07C09038FC03F048486C7E48486C7E4848137C000F147E4848137F81003F
+15805B007F15C0A2151F12FF16E0A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF
+6D13DF000313013900F8039F90387E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A4168015
+7FD80F801400487E486C13FEA24A5A5D49485AEB8007391E000FE0001F495A260FC07FC7
+FC3803FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00
+C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0
+A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A31203
+13005A1206120E120C121C5A1230A20A3979A619>I<15074B7EA34B7EA34B7EA34B7EA3
+4B7E15E7A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA3
+4A6D7EA34A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA201
+1E82011C153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010F
+B512F8A33D417DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E
+701380EF7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C
+1300EE03FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0
+EF1FF018F8170F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC0040313
+8048486C90380FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E02
+0F9038FF801E913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140F
+D93FE0140749481403495A91C812014848150012034848167E5B000F173EA24848161EA2
+123F5B180E127FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA2000717
+3C6D16386C6C1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6C
+EC1F00D903FE143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF0
+37427BBF42>I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717E
+EF0FE084717E717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A219
+80A218FF19004D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A17
+8004FCC8FC3C3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217
+011700A31870A418381638A41800A21678A216F81501150791B5FCA3EC80071501150016
+78A21638A2180EA3181C93C7FCA4183C1838A21878A318F8EF01F0A21707170F173F4848
+6CEB03FFB912E0A3373E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC017
+0F1707A21703A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007
+150115001678A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C9126
+03FFFE131C021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC494814
+3DD91FE0141F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C
+5B001F173CA2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00
+EF03FC123FA27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8
+141ED903FEEC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138
+003FF03C427BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A6
+91B7FCA30280C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0
+A3C6EBF000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D900071300
+6E5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C
+495A6C495A2603E07EC7FC3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA30001
+01E0C7000F138026007F80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A
+4C5A4CC8FC163E5E5E4B5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FC
+EC878791388F03FE91389E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA270
+7E707EA2707F717E84173F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3
+403E7DBD47>I<B612F8A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA2
+5F5F5F4C5A160748486C133FB8FCA3313E7DBD39>I<B500C093B512C0A300016D4BEBE0
+00D8007F1880D977F0ED03BFA3D973F8ED073FA3D971FC150EA2D970FE151CA3027F1538
+A36E6C1470A36E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A26E6C130EA36E6C
+5BA3037F5BA26F6C5AA36F6C5AA392380FE1C0A3923807F380A26FB4C7FCA36F5AA213F8
+486C6D5AD807FFEFFFE0B500F80178017FEBFFC0A34A3E7CBD53>I<B56C91B512F88080
+D8007F030713006EEC01FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E
+7E6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE
+7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170F
+A2170701F81503487ED807FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FF
+FE91391FC03F8091397E0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E
+49C86C7E01FE6F7E00018349150300038348486F7EA248486F7EA2001F188049167F003F
+18C0A3007F18E049163FA300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C
+6C4B1300A26C6C4B5A00035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7
+FC6D6C14FED901FCEB03F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C
+427BBF47>I<B712F8EEFF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80
+EF3FC018E0A2EF1FF0A218F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF0
+91B612C04CC7FC0280C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE
+91391FC03F8091397F000FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E
+49C86C7E498248486F7E49150300038348486F7EA2000F834981001F1880A24848EE7FC0
+A3007F18E0A249163FA200FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A300
+0F18006D5D0007DA0F805B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A01
+7FD9800E5BD93F819038061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601
+FDC013F8903A007EE007E091271FF03FC013180207B5FC9139007FE1E0DB000114388371
+1378A2706C13F0EFFF0318FFA27113E0A37113C0711380711300715AEF01F83D527BBF47
+>I<B712C016FCEEFF800001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA271
+7EA284A760177F606017FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F09138
+8001FCED003FEE1FC0707E707E83160383160183A383A484A4F0C004190EA28218E0057F
+131E2601FFE0161CB600C0EB3FF094381FF83805071370CA3801FFE09438003F803F407D
+BD43>I<D907FC131890391FFF8038017FEBE0783901FC03F83A03F0007CF8D807C0133F
+4848130F001F140748C7FC003E1403007E1401A2007C140012FC1678A46C1538A27EA26C
+6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E00107
+14F0EB007F020713F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27E
+A3163E7E167E6C157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F80
+3F8090391FFFFE00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007F
+E001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5
+C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C700
+07130026007F80EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A
+5A010793C7FC6D6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B5128002
+0049C8FCED1FF03D407DBD44>I<B691380FFFFEA3000301E0020113E06C01809138007F
+806CEF3F00017F163E181C6E153C013F1638A26E1578011F1670A26D6C5DA26E14010107
+5EA26E140301035EA26D6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A2
+6E6C5BA26F13F0020F5CA2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E13
+0EA2ED7F9CA216DCED3FF8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5
+D88007B5FCA3000301C0010101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F
+017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F00107610403
+7F6E0281140101036104077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F
+80160EA24CEB1FE003C0161E023F171C047814F0DBE070010F133C021F173804F014F84C
+1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5F
+A24B157F020094C8FCA24B81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8
+C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C
+143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E
+913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71
+FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E
+14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076D
+EC7FFFB500FC0103B512FEA33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C
+6C48ED3FC0725A013F041EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D13
+03606E6C49C8FC6E6C5B170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E1301
+6EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E
+7FBD44>I<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80
+A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A
+5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A
+495A173C495AA24890C8FC485A1778485A484815F8A24848140116034848140F4848143F
+ED01FFB8FCA32E3E7BBD38>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>I<48
+6C13C00003130101001380481303000EEB070048130E0018130C0038131C003013180070
+133800601330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133FA200
+3F131F01C013E0390F0007801C1C73BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E
+5B7FC319>I<EA0180120313005A120E5A12181238123012701260A312E05AA412CFEAFF
+C013E0A3127FA2123F13C0EA0F000B1C7ABE19>96 D<EB0FF8EBFFFE3903F01F80390780
+07E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90
+381FF87FEB7F803801FC00EA07F8EA0FE0485A485AA248C7FCEE038012FEA315FFA3007F
+5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC001F029
+2A7DA82D>I<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E09039FDE0
+01F09039FFC000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717F8AA17F0
+A2160FA217E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003F09039E0
+780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00F8017C13
+1E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC
+5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C13
+7890383F01F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715031501B1
+14FF010713E190381F80F990387E003D49131FD803F81307485A49130348481301121F12
+3F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E6C6C497E
+D8007C017913F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB01FE9038
+0FFFC090383F03F09038FC01F848486C7E4848137E48487F000F158049131F001F15C048
+48130FA2127F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E1501000F15
+C06C6C13036DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE0010090C7FC23
+2A7EA828>I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F81140113
+7FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C>I<167C
+903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600
+000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE
+0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C
+810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E
+6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA8
+2D>I<EA01FC12FFA3120712031201B1EC01FE913807FFC091381E07E091387803F09138
+E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7D
+BE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3
+AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147F
+EB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F038
+1E07C0380FFF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292B51280A3
+92383FFC0016E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038
+FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA282486C14
+FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3
+153F7DBE1A>I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803
+F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B
+13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<39
+01F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C07F000113
+8001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF01
+0713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F0
+4848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6C
+EB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF001
+0090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07
+FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4
+EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3F
+FFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80
+F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA4
+48C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F
+81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000
+FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3
+A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307
+003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C
+1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E
+14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131C
+A6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A91200
+9038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801FC14FE
+00FF147FA3000714030003140100011400B3A51501A31503120015076DEB06FF017E010E
+13806D4913FC90381FC078903807FFE00100903880FE002E297DA733>I<B539E00FFFE0
+A32707FE000313006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2ECC007
+011F91C7FCA290380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2ECFEF001
+005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A3290FFE00
+3FE00013C06C486D48EB3F806C4817006D010F141E00016F131C15076D163C00004A6C13
+38A2017F5E4B7E151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90FE0017F
+5BEDE03F02F0140701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02FF14DE
+6D15FCED00076D5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>I<B539
+F01FFFE0A30003D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49C7FC90
+380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1
+FC903801E1FEECC0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC80486C
+80000F4A7EB539803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE000313006C48EB
+01FC6F5A00015D7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A010F130E
+A26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA214
+0EA2141E141C143C1438A2147800181370127EB45BA2495AA248485AD87E07C9FCEA780E
+EA3C3CEA1FF8EA07E02B3A7EA630>I<001FB61280A2EBE0000180140049485A001E495A
+121C4A5A003C495A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A9039
+3FC00380A2EB7F80EBFF005A5B484813071207491400485A48485BA248485B4848137F00
+FF495A90B6FCA221277EA628>I<BE12C0A25A0280985B>124 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fv cmbx12 20.736 14
-/Fv 14 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F
-17FF5E04071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F9239
-0007E0006E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E
-6F7E826F7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C3
-18E37013F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F1807
-1803A2433B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F71
-7E717EA284171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A291
-39F0007FF0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B6
-00F890393FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EE3F80ED
-3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348487F48
-487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801FE011F
-13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>100
-D<49B47E010F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0
-485A003F15F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F00
-0F15F06C6C13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013
-C025267DA52C>I<EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA4
-12071203B3AAB512F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A415
-3C7DBB1A>108 D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701
-607F0003497E01FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
-D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
-01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E137C017F14786E13F801
-3F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391C7FC6E5A6D131E15BE
-6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C141E0008133E007F133C
-147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA1FFCEA07F02E377EA5
-33>121 D E
+%DVIPSBitmapFont: Fu cmbx12 20.736 14
+/Fu 14 122 df<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14074CB96C
+130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C09039003FFF
+814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A02F8834A
+02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A85495C8A4991
+CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2795A489B
+C9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80A36C80A2
+7E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F05F6E806E
+02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F138703039226FF
+8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4CC7120105
+0304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71
+D<BBFCA8C7003F0280CCFCB3B3B3A9F507F8A41D0F1EF0A61D1FA31EE01D3FA31D7FA31D
+FFA25213C0A26464A26464646499B5FC09031480631B1F1B7F0803B6FC1A7FBFFCA31E00
+A565767AF574>76 D<B800C00507B812C083838383A28383C7003F6F93C7001F01F0C7FC
+72060190C8FC84A284848403EF8015E703E3808503E18103E08170808270808570807080
+708182867081718071808371808671807181718183728087728072807280848772817281
+72818573808873807380738085738189738174807480868974807480741580867415C01E
+E07514F07514F87514FC877514FE1EFF7515817515C1877614E11FF17614F97614FD7691
+B5FC8888A28888898989A289898989A2898A8A8A8AA28A8A8A8A8B903803FFFEB800F885
+8B8B8BA28B8B795A8A767AF597>78 D<BC7E1BFF1CF01CFF1DC01DF81DFE777EC7003F91
+C8000715E0E0003F80090714FC090180756C7F7680768076807680A276808B888BA37680
+A38CAA9DC8FCA3525CA267A2525C676467525C525C5291C9FC99B512FC515C090F5C097F
+14C0080FB6CAFC94B912FC1DE09ACBFC1CF81CFE767E94C8003F14E0080780080114FC74
+6C7F757F7580758075807580A275808A87A28A888AA78BA78BA779147E22FFA288A28B76
+5E22FE76802103766E14FCBA00C06E6E1307766EEB0FF876ED801F779138E07FF00B1F91
+B512E00B0716C00B011680E3003FECFE00D1000714F8E4000F13E088787AF590>82
+D<BA00E0030FB8FCA8C7003F0280CC003FEBC000E503FCC7FCB3B3B3B3A46E1C0768A283
+6E1C0F68A26E1C1F7162A26E1C3F714F5A806E525A71606F6D97C8FC6F505A7118076F6D
+4E5A6F6EEF3FF86F6E4D5A6F6EEE01FF6F02F84C5B6F02FE041F5B043F6D6C037F90C9FC
+7002F0913807FFFE0407DAFF8090B55A040192B712F07061051F188005074DCAFC050017
+F0061F16C0060103FCCBFCDE000391CCFC88787AF595>85 D<92383FFFF80207B612E002
+7F15FC49B87E010717E0011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D
+806F6D80727F486E6E7F8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E0
+90CAFCA70507B6FC041FB7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800
+010F14C04991C7FC017F13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC
+5CA360A36E5DA26C5F6E5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02
+E090263FE07F14FE00019139FC03FFC06C91B6487E013F4B487E010F4B1307010303F013
+01D9003F0280D9003F13FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E13
+1F7FB3ADF0FFFC050FEBFFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226
+FDFFF001077F92B500C001018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93
+C915804B7014C0A27414E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098
+B5FC1DE0A25014C0A26F1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B5
+5A9226C3FF8001035C038101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C0
+4A010393C8FC4A010015F84A023F14C090C9000301F0C9FC5F797AF76C>I<97380FFFE0
+0607B6FCA8F00003190086B3AD93383FFF800307B512F8033F14FF4AB712C0020716F002
+1F16FC027F9039FE007FFE91B500F0EB0FFF01030280010190B5FC4949C87E4949814949
+8149498149498190B548814884484A8192CAFC5AA2485BA25A5C5AA35A5CA4B5FCAF7EA4
+807EA37EA2807EA26C7F616C6E5D6C606C80616D6D5D6D6D5D6D6D92B67E6D6D4A15FC01
+0301FF0207EDFFFE6D02C0EB3FFE6D6C9039FC01FFF86E90B65A020F16C002031600DA00
+7F14FC030F14E09226007FFEC749C7FC5F797AF76C>100 D<93387FFF80030FB512FC03
+7FECFF804AB712E0020716F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E049
+01FC020F7F49496E7F49498049496E7F49496E7F90B55A48727E92C914804884485B1BC0
+48841BE0485BA27313F05AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA380
+7EA47E806CF103F0F207F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D6D
+16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F
+5B023F91B65A020F178002034CC7FC020016F8031F15E0030392C8FCDB000F13E04D507B
+CE58>I<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880A76C5CA26C5CA26D5B
+6D5B6D5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C67E131F7FB3B3B3A5B8
+1280A8297979F835>105 D<903801FFFCB6FCA8C67E131F7FB3B3B3B3B3ABB812C0A82A
+7879F735>108 D<902601FFF891380FFFE0B692B512FE05036E7E050F15E0053F15F84D
+81932701FFF01F7F4CD900077FDC07FC6D80C66CDA0FF06D80011FDA1FC07F6D4A48824C
+C8FC047E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293C9FCA45DB3B3A6B8D8E003B812
+80A8614E79CD6C>110 D<902601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C
+8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F8
+15FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65D
+B3B3A2B812F8A8434E7ACD4F>114 D<B892B612F8A8D8001F49C90003EBF0006D6D0400
+1380A26D6E94C7FC626D6E5E1A03A26D6E4B5AA26D6E4B5AA26E6D5E1A1F6E6D5E1A3F6E
+6070157FA26E6D4B5AA26E6E4990C8FCA26E6E5C19036E6E5C1907A26E6E495AA26F6D49
+5AA26F6D5C193F6F6D5C197F6F5E7113FFA26F028190C9FCA26FECC3FEA26FECE3FC18E7
+6FECF7F818FFA2705CA2705CA2705CA2705CA37091CAFCA2705BA2705BA2705BA2715AA3
+715AA24D5AA26017FF95CBFC5EA24C5AEA03F8D80FFE4A5A487E486D495A487F5FB56C13
+1F5F163F4C5AA24C5A4B90CCFC6C49485A4B5AEC800F6C9038003FF849EBFFF0261FFC07
+13C06CB65A6C92CDFC6C14FCC614F0013F13C0D907FCCEFC5D6F7CCC66>121
+D E
%EndDVIPSBitmapFont
end
%%EndProlog
%%BeginSetup
-%%Feature: *Resolution 300dpi
+%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: Letter
letter
@@ -1130,4070 +2325,4965 @@ letter
%%EndSetup
%%Page: 1 1
-1 0 bop 75 659 a Fv(GNU)33 b(Readline)h(Library)p 75
-709 1800 17 v 936 757 a Fu(Edition)17 b(4.3,)c(for)i
-Ft(Readline)f(Library)g Fu(V)l(ersion)i(4.3.)1643 811
-y(Marc)o(h)e(2002)75 2467 y Fs(Brian)23 b(F)-6 b(o)n(x,)23
-b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75
-2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
-b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop
+1 0 bop 150 1318 a Fu(GNU)65 b(Readline)i(Library)p 150
+1418 3600 34 v 1873 1515 a Ft(Edition)28 b(5.0,)k(for)e
+Fs(Readline)e(Library)h Ft(V)-8 b(ersion)30 b(5.0.)3218
+1623 y(Jan)m(uary)g(2004)150 4935 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
%%Page: 2 2
-2 1 bop 75 217 a Fu(This)14 b(do)q(cumen)o(t)h(describ)q(es)g(the)f
-(GNU)g(Readline)h(Library)l(,)f(a)g(utilit)o(y)h(whic)o(h)f(aids)g(in)h
-(the)f(consistency)75 271 y(of)h(user)g(in)o(terface)h(across)e
-(discrete)i(programs)e(that)h(need)h(to)e(pro)o(vide)i(a)f(command)g
-(line)i(in)o(terface.)75 339 y(Published)g(b)o(y)f(the)f(F)l(ree)g
-(Soft)o(w)o(are)f(F)l(oundation)75 394 y(59)h(T)l(emple)h(Place,)f
-(Suite)i(330,)75 448 y(Boston,)d(MA)h(02111)f(USA)75
-516 y(P)o(ermission)j(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g
-(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o
-(vided)h(the)75 570 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q
-(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h(copies.)75
-638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g(cop)o(y)h(and)g
-(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h(man)o(ual)g
-(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h(cop)o(ying,)
-g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g(deriv)o(ed)g(w)o
-(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g(of)g(a)f(p)q
-(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fr(\015)h Fu(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(1)75 149 y Fq(1)41 b(Command)28 b(Line)e(Editing)137
-271 y Fu(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fp(gnu)g Fu(command)g(line)i(editing)f(in)o(terface.)75
-403 y Fs(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
-501 y Fu(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
-(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
-569 y(The)h(text)f Fo(C-k)h Fu(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
-(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
-567 y Fn(h)p 1844 541 19 2 v 1844 569 a Fm(k)p 1844 577
-V 1860 567 a Fn(i)75 624 y Fu(k)o(ey)d(is)h(pressed)g(while)g(the)f
-(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
-Fo(M-k)f Fu(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
-(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
-o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
-745 y Fn(h)p 942 719 V 942 747 a Fm(k)p 942 755 V 958
-745 a Fn(i)987 747 y Fu(k)o(ey)g(is)h(pressed.)20 b(The)15
-b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Fn(h)p 1791
-719 72 2 v 1791 747 a Fm(AL)m(T)p 1791 755 V 1860 745
-a Fn(i)75 802 y Fu(on)e(man)o(y)g(k)o(eyb)q(oards.)19
-b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
-1213 800 y Fn(h)p 1225 774 V 1225 802 a Fm(AL)m(T)p 1225
-810 V 1294 800 a Fn(i)1322 802 y Fu(\(usually)i(to)e(either)i(side)g
-(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Fn(h)p
-400 829 V 400 857 a Fm(AL)m(T)p 400 865 V 469 855 a Fn(i)499
-857 y Fu(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
-(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Fn(h)p
-1709 829 V 1709 857 a Fm(AL)m(T)p 1709 865 V 1778 855
-a Fn(i)1808 857 y Fu(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
-(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
-(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
-y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
-(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
-y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
-1033 y Fn(h)p 706 1007 V 706 1035 a Fm(AL)m(T)p 706 1043
-V 775 1033 a Fn(i)801 1035 y Fu(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
-o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
-1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
-809 1088 y Fn(h)p 822 1062 70 2 v 822 1090 a Fm(ESC)p
-822 1098 V 888 1088 a Fn(i)915 1090 y Fl(\014rst)p Fu(,)g(and)g(then)h
-(t)o(yping)1339 1088 y Fn(h)p 1351 1062 19 2 v 1351 1090
-a Fm(k)p 1351 1098 V 1368 1088 a Fn(i)1383 1090 y Fu(.)18
-b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
-Fk(metafying)k Fu(the)425 1143 y Fn(h)p 437 1117 V 437
-1145 a Fm(k)p 437 1153 V 454 1143 a Fn(i)484 1145 y Fu(k)o(ey)l(.)137
-1214 y(The)i(text)e Fo(M-C-k)h Fu(is)h(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
-1268 y Fk(metafying)e Fo(C-k)p Fu(.)137 1337 y(In)g(addition,)h(sev)o
-(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
-b(Sp)q(eci\014cally)l(,)1384 1335 y Fn(h)p 1396 1309
-73 2 v 1396 1337 a Fm(DEL)p 1396 1345 V 1467 1335 a Fn(i)1482
-1337 y Fu(,)1514 1335 y Fn(h)p 1526 1309 70 2 v 1526
-1337 a Fm(ESC)p 1526 1345 V 1593 1335 a Fn(i)1608 1337
-y Fu(,)1640 1335 y Fn(h)p 1652 1309 72 2 v 1652 1337
-a Fm(LFD)p 1652 1345 V 1722 1335 a Fn(i)1737 1337 y Fu(,)1768
-1335 y Fn(h)p 1780 1309 70 2 v 1780 1337 a Fm(SPC)p 1780
-1345 V 1847 1335 a Fn(i)1862 1337 y Fu(,)75 1390 y Fn(h)p
-87 1364 76 2 v 87 1392 a Fm(RET)p 87 1399 V 160 1390
-a Fn(i)175 1392 y Fu(,)23 b(and)306 1390 y Fn(h)p 318
-1364 74 2 v 318 1392 a Fm(T)m(AB)p 318 1399 V 390 1390
-a Fn(i)427 1392 y Fu(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
-(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
-1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32
-b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
-1445 y Fn(h)p 1456 1419 72 2 v 1456 1447 a Fm(LFD)p 1456
-1454 V 1526 1445 a Fn(i)1560 1447 y Fu(k)o(ey)l(,)h(t)o(yping)1802
-1445 y Fn(h)p 1814 1419 49 2 v 1814 1447 a Fm(C-j)p 1814
-1454 V 1860 1445 a Fn(i)75 1501 y Fu(will)c(pro)q(duce)g(the)f(desired)
-h(c)o(haracter.)j(The)874 1499 y Fn(h)p 886 1473 76 2
-v 886 1501 a Fm(RET)p 886 1509 V 959 1499 a Fn(i)989
-1501 y Fu(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
-y Fn(h)p 1397 1473 109 2 v 1397 1501 a Fm(Return)p 1397
-1509 V 1503 1499 a Fn(i)1533 1501 y Fu(or)1588 1499 y
-Fn(h)p 1600 1473 86 2 v 1600 1501 a Fm(En)o(ter)p 1600
-1509 V 1684 1499 a Fn(i)1714 1501 y Fu(on)f(some)75 1556
-y(k)o(eyb)q(oards.)75 1688 y Fs(1.2)33 b(Readline)23
-b(In)n(teraction)137 1786 y Fu(Often)13 b(during)h(an)e(in)o(teractiv)o
-(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
-h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
-(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f
-(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
-1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
-g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
-(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
-(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
-(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
-y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
-(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
-2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
-(ou)e(simply)i(press)1160 2058 y Fn(h)p 1172 2032 76
-2 v 1172 2060 a Fm(RET)p 1172 2068 V 1245 2058 a Fn(i)1260
-2060 y Fu(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
-(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
-2113 y Fn(h)p 575 2087 V 575 2115 a Fm(RET)p 575 2122
-V 648 2113 a Fn(i)663 2115 y Fu(;)i(the)f(en)o(tire)h(line)g(is)g
-(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
-2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fj(1.2.1)30
-b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fu(In)12
-b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
-(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
-(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
-(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
-b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
-(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
-(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
-y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
-(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
-o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
-b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fo(C-b)f
-Fu(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
-2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
-b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
-(with)g Fo(C-f)p Fu(.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fu(2)1322 b(GNU)15 b(Readline)h(Library)137
-149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
-(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
-204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
-(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
-b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
-(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
-(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
-(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
-(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
-369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
-(ws.)75 449 y Fo(C-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
-(haracter.)75 530 y Fo(C-f)168 b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
-(c)o(haracter.)75 608 y Fn(h)p 87 582 73 2 v 87 610 a
-Fm(DEL)p 87 618 V 158 608 a Fn(i)188 610 y Fu(or)244
-608 y Fn(h)p 256 582 159 2 v 256 610 a Fm(Bac)o(kspace)p
-256 618 V 412 608 a Fn(i)315 665 y Fu(Delete)h(the)f(c)o(haracter)g(to)
-f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fo(C-d)168
-b Fu(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
-825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
-961 y Fo(C-_)g Fu(or)f Fo(C-x)h(C-u)315 1015 y Fu(Undo)i(the)g(last)f
-(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
-(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
-1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
-1149 y Fn(h)p 875 1123 V 875 1151 a Fm(Bac)o(kspace)p
-875 1159 V 1032 1149 a Fn(i)1063 1151 y Fu(k)o(ey)g(b)q(e)h(set)f(to)f
-(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
-(cursor)f(and)g(the)596 1204 y Fn(h)p 608 1178 73 2 v
-608 1206 a Fm(DEL)p 608 1213 V 679 1204 a Fn(i)710 1206
-y Fu(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
-(the)g(cursor,)f(lik)o(e)75 1260 y Fo(C-d)p Fu(,)e(rather)h(than)g(the)
-g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
-1374 y Fj(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
-1471 y Fu(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
-(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
-(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
-b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
-(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fo(C-b)p
-Fu(,)h Fo(C-f)p Fu(,)f Fo(C-d)p Fu(,)g(and)522 1578 y
-Fn(h)p 534 1552 V 534 1580 a Fm(DEL)p 534 1588 V 605
-1578 a Fn(i)619 1580 y Fu(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
-f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
-y(line.)75 1716 y Fo(C-a)168 b Fu(Mo)o(v)o(e)14 b(to)h(the)g(start)f
-(of)h(the)g(line.)75 1796 y Fo(C-e)168 b Fu(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fo(M-f)168
-b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
-(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
-y Fo(M-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
-2037 y Fo(C-l)168 b Fu(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
-(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
-Fo(C-f)g Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
-Fo(M-f)e Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
-b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
-o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
-(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
-2341 y Fj(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
-2438 y Fk(Killing)26 b Fu(text)18 b(means)g(to)g(delete)i(the)f(text)f
-(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
-h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fk(y)o(anking)22
-b Fu(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
-b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
-2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
-2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
-(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
-(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
-(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
-(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fk(kill-ring)p Fu(.)21
-b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
-204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
-(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
-(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
-(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
-(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
-314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
-(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
-(of)e(commands)h(for)g(killing)j(text.)75 458 y Fo(C-k)168
-b Fu(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
-(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
-Fo(M-d)168 b Fu(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
-(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
-e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
-(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
-Fo(M-f)p Fu(.)75 668 y Fo(M-)123 666 y Fn(h)p 135 640
-73 2 v 135 668 a Fm(DEL)p 135 675 V 206 666 a Fn(i)315
-668 y Fu(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o
-(t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315
-723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19
-b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315
-777 y Fo(M-b)p Fu(.)75 855 y Fo(C-w)168 b Fu(Kill)18
-b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
-b(This)16 b(is)g(di\013eren)o(t)g(than)f Fo(M-)1777 853
-y Fn(h)p 1789 827 V 1789 855 a Fm(DEL)p 1789 863 V 1860
-853 a Fn(i)315 910 y Fu(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
-(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fk(y)o(ank)j
-Fu(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
-b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
-(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fo(C-y)168
-b Fu(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
-(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
-y Fo(M-y)168 b Fu(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h
-(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior)
-315 1252 y(command)d(is)h Fo(C-y)f Fu(or)f Fo(M-y)p Fu(.)75
-1361 y Fj(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
-y Fu(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
-(Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
-1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
-(the)g Fl(sign)j Fu(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
-(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
-f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
-(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
-(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
-(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
-(t)o(yp)q(e)g(`)p Ft(M--)f(C-k)p Fu('.)137 1742 y(The)h(general)f(w)o
-(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
-h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
-y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
-g(min)o(us)g(sign)g(\(`)p Ft(-)p Fu('\),)d(then)j(the)f(sign)h(of)f
-(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
-b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
-(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
-1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
-(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
-Fo(C-d)75 1961 y Fu(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
-(could)i(t)o(yp)q(e)f(`)p Ft(M-1)14 b(0)h(C-d)p Fu(',)k(whic)o(h)g
-(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
-b(on)i(the)f(input)h(line.)75 2125 y Fj(1.2.5)30 b(Searc)n(hing)21
-b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fu(Readline)d(pro)o
-(vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g
-(history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i
-(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
-b Fk(incremen)o(tal)e Fu(and)e Fk(non-incremen)o(tal)p
-Fu(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
-(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
-19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
-(string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en)
-o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
-b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
-(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
-2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
-(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
-(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fo(C-r)p
-Fu(.)k(T)o(yping)d Fo(C-s)e Fu(searc)o(hes)h(forw)o(ard)e(through)h
-(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
-2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Ft(isearch-terminators)d
-Fu(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
-2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
-(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Fn(h)p
-1301 2642 70 2 v 1301 2670 a Fm(ESC)p 1301 2678 V 1368
-2668 a Fn(i)1402 2670 y Fu(and)e Fo(C-J)f Fu(c)o(haracters)g(will)p
+2 1 bop 150 3024 a Ft(This)27 b(man)m(ual)i(describ)s(es)f(the)h(GNU)h
+(Readline)e(Library)f(\(v)m(ersion)i(5.0,)i(28)f(Jan)m(uary)f(2004\),)j
+(a)d(library)150 3133 y(whic)m(h)38 b(aids)g(in)g(the)h(consistency)g
+(of)h(user)e(in)m(terface)i(across)g(discrete)f(programs)f(whic)m(h)g
+(pro)m(vide)h(a)150 3243 y(command)30 b(line)f(in)m(terface.)150
+3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377 y Fq(\015)h
+Ft(1988-2004)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)31 b(Inc.)150 3512 y(P)m(ermission)f(is)i(gran)m(ted)h(to)
+f(mak)m(e)i(and)d(distribute)f(v)m(erbatim)i(copies)g(of)g(this)f(man)m
+(ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)g
+(this)f(p)s(ermission)f(notice)i(are)h(preserv)m(ed)f(on)h(all)e
+(copies.)390 3756 y(P)m(ermission)k(is)i(gran)m(ted)g(to)h(cop)m(y)-8
+b(,)38 b(distribute)33 b(and/or)i(mo)s(dify)e(this)h(do)s(cumen)m(t)h
+(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
+b(ree)39 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)38
+b(1.1)h(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)27
+b(published)c(b)m(y)28 b(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
+b(oundation;)29 b(with)d(no)h(In)m(v)-5 b(arian)m(t)27
+b(Sections,)390 4085 y(with)i(the)i(F)-8 b(ron)m(t-Co)m(v)m(er)33
+b(texts)e(b)s(eing)f(\\A)h(GNU)g(Man)m(ual,")g(and)f(with)f(the)i(Bac)m
+(k-Co)m(v)m(er)390 4194 y(T)-8 b(exts)33 b(as)g(in)e(\(a\))i(b)s(elo)m
+(w.)46 b(A)33 b(cop)m(y)g(of)f(the)h(license)e(is)h(included)d(in)i
+(the)i(section)f(en)m(titled)390 4304 y(\\GNU)f(F)-8
+b(ree)32 b(Do)s(cumen)m(tation)f(License.")390 4438 y(\(a\))39
+b(The)f(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)39 b(is:)55
+b(\\Y)-8 b(ou)39 b(ha)m(v)m(e)g(freedom)f(to)h(cop)m(y)f(and)g(mo)s
+(dify)390 4548 y(this)31 b(GNU)j(Man)m(ual,)f(lik)m(e)f(GNU)h(soft)m(w)
+m(are.)49 b(Copies)31 b(published)e(b)m(y)j(the)h(F)-8
+b(ree)34 b(Soft)m(w)m(are)390 4658 y(F)-8 b(oundation)30
+b(raise)g(funds)e(for)j(GNU)g(dev)m(elopmen)m(t.")150
+4902 y(Published)c(b)m(y)j(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation)150 5011 y(59)31 b(T)-8 b(emple)30 b(Place,)h(Suite)e(330,)
+150 5121 y(Boston,)j(MA)e(02111-1307)150 5230 y(USA)p
+eop
+%%Page: -1 3
+-1 2 bop 3725 -116 a Ft(i)150 299 y Fp(T)-13 b(able)54
+b(of)g(Con)l(ten)l(ts)150 641 y Fr(1)135 b(Command)45
+b(Line)g(Editing)40 b Fo(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)84 b Fr(1)449 778
+y Ft(1.1)92 b(In)m(tro)s(duction)29 b(to)i(Line)e(Editing)23
+b Fn(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55
+b Ft(1)449 888 y(1.2)92 b(Readline)29 b(In)m(teraction)16
+b Fn(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)46 b Ft(1)748 997 y(1.2.1)93 b(Readline)29
+b(Bare)i(Essen)m(tials)25 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
+b Ft(1)748 1107 y(1.2.2)93 b(Readline)29 b(Mo)m(v)m(emen)m(t)j
+(Commands)14 b Fn(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)44 b Ft(2)748 1216 y(1.2.3)93 b(Readline)29
+b(Killing)e(Commands)22 b Fn(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)51 b Ft(2)748
+1326 y(1.2.4)93 b(Readline)29 b(Argumen)m(ts)c Fn(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(3)748
+1435 y(1.2.5)93 b(Searc)m(hing)29 b(for)i(Commands)e(in)g(the)h
+(History)c Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
+b Ft(3)449 1545 y(1.3)92 b(Readline)29 b(Init)g(File)f
+Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)58 b Ft(4)748 1655 y(1.3.1)93 b(Readline)29
+b(Init)g(File)g(Syn)m(tax)13 b Fn(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43
+b Ft(4)748 1764 y(1.3.2)93 b(Conditional)27 b(Init)j(Constructs)9
+b Fn(.)14 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)39 b Ft(9)748 1874 y(1.3.3)93
+b(Sample)29 b(Init)g(File)21 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)51 b Ft(10)449 1983 y(1.4)92 b(Bindable)29
+b(Readline)g(Commands)12 b Fn(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41
+b Ft(13)748 2093 y(1.4.1)93 b(Commands)29 b(F)-8 b(or)31
+b(Mo)m(ving)c Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Ft(13)748
+2203 y(1.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)d(The)i
+(History)18 b Fn(.)d(.)g(.)g(.)g(.)g(.)g(.)47 b Ft(13)748
+2312 y(1.4.3)93 b(Commands)29 b(F)-8 b(or)31 b(Changing)e(T)-8
+b(ext)30 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)58 b Ft(14)748 2422 y(1.4.4)93 b(Killing)27
+b(And)i(Y)-8 b(anking)17 b Fn(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)46
+b Ft(16)748 2531 y(1.4.5)93 b(Sp)s(ecifying)27 b(Numeric)j(Argumen)m
+(ts)25 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)54 b Ft(17)748 2641 y(1.4.6)93 b(Letting)30
+b(Readline)f(T)m(yp)s(e)h(F)-8 b(or)31 b(Y)-8 b(ou)19
+b Fn(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+49 b Ft(17)748 2751 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)11
+b Fn(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41
+b Ft(17)748 2860 y(1.4.8)93 b(Some)30 b(Miscellaneous)f(Commands)13
+b Fn(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+42 b Ft(18)449 2970 y(1.5)92 b(Readline)29 b(vi)g(Mo)s(de)e
+Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)56 b Ft(19)150 3212 y Fr(2)135 b(Programming)46
+b(with)f(GNU)g(Readline)25 b Fo(.)c(.)e(.)h(.)f(.)g(.)h(.)f(.)h(.)69
+b Fr(21)449 3349 y Ft(2.1)92 b(Basic)31 b(Beha)m(vior)15
+b Fn(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)44 b Ft(21)449 3459 y(2.2)92
+b(Custom)30 b(F)-8 b(unctions)15 b Fn(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b
+Ft(22)748 3568 y(2.2.1)93 b(Readline)29 b(T)m(yp)s(edefs)19
+b Fn(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48
+b Ft(22)748 3678 y(2.2.2)93 b(W)-8 b(riting)29 b(a)i(New)f(F)-8
+b(unction)11 b Fn(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(23)449
+3787 y(2.3)92 b(Readline)29 b(V)-8 b(ariables)28 b Fn(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)58 b Ft(24)449 3897 y(2.4)92 b(Readline)29 b(Con)m(v)m(enience)i(F)
+-8 b(unctions)15 b Fn(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44
+b Ft(28)748 4007 y(2.4.1)93 b(Naming)29 b(a)i(F)-8 b(unction)24
+b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(28)748
+4116 y(2.4.2)93 b(Selecting)29 b(a)i(Keymap)12 b Fn(.)j(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)41 b Ft(28)748 4226 y(2.4.3)93 b(Binding)28
+b(Keys)10 b Fn(.)k(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)39 b Ft(29)748 4335 y(2.4.4)93 b(Asso)s(ciating)29
+b(F)-8 b(unction)30 b(Names)h(and)f(Bindings)16 b Fn(.)d(.)i(.)g(.)g(.)
+g(.)g(.)45 b Ft(31)748 4445 y(2.4.5)93 b(Allo)m(wing)28
+b(Undoing)g Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58
+b Ft(31)748 4555 y(2.4.6)93 b(Redispla)m(y)21 b Fn(.)13
+b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)50 b Ft(32)748 4664 y(2.4.7)93 b(Mo)s(difying)28
+b(T)-8 b(ext)13 b Fn(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)42 b Ft(34)748 4774 y(2.4.8)93 b(Character)30
+b(Input)20 b Fn(.)14 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+50 b Ft(34)748 4883 y(2.4.9)93 b(T)-8 b(erminal)28 b(Managemen)m(t)e
+Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(35)748 4993
+y(2.4.10)93 b(Utilit)m(y)29 b(F)-8 b(unctions)25 b Fn(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Ft(35)748
+5103 y(2.4.11)93 b(Miscellaneous)29 b(F)-8 b(unctions)12
+b Fn(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)41 b Ft(36)748 5212 y(2.4.12)93
+b(Alternate)31 b(In)m(terface)g Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)59 b Ft(37)748 5322 y(2.4.13)93 b(A)30 b(Readline)f(Example)17
+b Fn(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)46 b Ft(38)p eop
+%%Page: -2 4
+-2 3 bop 150 -116 a Ft(ii)2638 b(GNU)31 b(Readline)e(Library)449
+83 y(2.5)92 b(Readline)29 b(Signal)g(Handling)23 b Fn(.)13
+b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)52
+b Ft(39)449 193 y(2.6)92 b(Custom)30 b(Completers)24
+b Fn(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)55 b Ft(41)748 302 y(2.6.1)93 b(Ho)m(w)31 b(Completing)e(W)-8
+b(orks)19 b Fn(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b Ft(41)748
+412 y(2.6.2)93 b(Completion)28 b(F)-8 b(unctions)12 b
+Fn(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b Ft(42)748 521
+y(2.6.3)93 b(Completion)28 b(V)-8 b(ariables)23 b Fn(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)52 b Ft(43)748 631 y(2.6.4)93
+b(A)30 b(Short)g(Completion)f(Example)9 b Fn(.)14 b(.)h(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)38
+b Ft(47)150 873 y Fr(App)t(endix)44 b(A)99 b(Cop)l(ying)46
+b(This)e(Man)l(ual)29 b Fo(.)20 b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
+(.)74 b Fr(57)449 1010 y Ft(A.1)92 b(GNU)31 b(F)-8 b(ree)31
+b(Do)s(cumen)m(tation)g(License)c Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
+b Ft(57)748 1120 y(A.1.1)92 b(ADDENDUM:)33 b(Ho)m(w)e(to)g(use)f(this)f
+(License)h(for)h(y)m(our)930 1230 y(do)s(cumen)m(ts)c
+Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)57 b Ft(63)150 1472 y Fr(Concept)45 b(Index)21
+b Fo(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
+f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)65
+b Fr(65)150 1742 y(F)-11 b(unction)44 b(and)h(V)-11 b(ariable)45
+b(Index)17 b Fo(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)62 b Fr(67)p eop
+%%Page: 1 5
+1 4 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(1)150 299 y Fp(1)80 b(Command)52
+b(Line)i(Editing)275 511 y Ft(This)28 b(c)m(hapter)j(describ)s(es)e
+(the)h(basic)g(features)h(of)f(the)h Fm(gnu)f Ft(command)g(line)f
+(editing)g(in)m(terface.)150 755 y Fr(1.1)68 b(In)l(tro)t(duction)45
+b(to)g(Line)h(Editing)275 995 y Ft(The)29 b(follo)m(wing)g(paragraphs)h
+(describ)s(e)f(the)h(notation)h(used)e(to)j(represen)m(t)e(k)m(eystrok)
+m(es.)275 1125 y(The)i(text)j Fl(C-k)d Ft(is)h(read)g(as)h(`Con)m
+(trol-K')f(and)g(describ)s(es)f(the)h(c)m(haracter)i(pro)s(duced)d
+(when)g(the)3663 1122 y Fk(h)p 3687 1069 38 4 v 3687
+1125 a Fj(k)p 3687 1140 V 3720 1122 a Fk(i)150 1235 y
+Ft(k)m(ey)f(is)f(pressed)f(while)f(the)j(Con)m(trol)f(k)m(ey)h(is)f
+(depressed.)275 1365 y(The)h(text)i Fl(M-k)e Ft(is)g(read)g(as)i
+(`Meta-K')g(and)f(describ)s(es)e(the)i(c)m(haracter)h(pro)s(duced)e
+(when)f(the)i(Meta)150 1474 y(k)m(ey)d(\(if)f(y)m(ou)h(ha)m(v)m(e)g
+(one\))g(is)f(depressed,)g(and)f(the)1859 1471 y Fk(h)p
+1883 1418 V 1883 1474 a Fj(k)p 1883 1490 V 1916 1471
+a Fk(i)1974 1474 y Ft(k)m(ey)j(is)d(pressed.)39 b(The)28
+b(Meta)i(k)m(ey)f(is)f(lab)s(eled)3558 1471 y Fk(h)p
+3582 1418 143 4 v 3582 1474 a Fj(AL)-6 b(T)p 3582 1490
+V 3720 1471 a Fk(i)150 1584 y Ft(on)26 b(man)m(y)g(k)m(eyb)s(oards.)39
+b(On)26 b(k)m(eyb)s(oards)g(with)f(t)m(w)m(o)i(k)m(eys)g(lab)s(eled)
+2425 1581 y Fk(h)p 2450 1528 V 2450 1584 a Fj(AL)-6 b(T)p
+2450 1599 V 2587 1581 a Fk(i)2643 1584 y Ft(\(usually)25
+b(to)i(either)e(side)g(of)i(the)150 1693 y(space)32 b(bar\),)g(the)775
+1690 y Fk(h)p 799 1637 V 799 1693 a Fj(AL)-6 b(T)p 799
+1709 V 937 1690 a Fk(i)998 1693 y Ft(on)32 b(the)f(left)g(side)g(is)f
+(generally)h(set)g(to)i(w)m(ork)e(as)h(a)f(Meta)i(k)m(ey)-8
+b(.)45 b(The)3393 1690 y Fk(h)p 3417 1637 V 3417 1693
+a Fj(AL)-6 b(T)p 3417 1709 V 3555 1690 a Fk(i)3616 1693
+y Ft(k)m(ey)150 1803 y(on)33 b(the)h(righ)m(t)f(ma)m(y)h(also)f(b)s(e)g
+(con\014gured)f(to)i(w)m(ork)g(as)g(a)f(Meta)i(k)m(ey)f(or)g(ma)m(y)g
+(b)s(e)e(con\014gured)h(as)h(some)150 1913 y(other)d(mo)s(di\014er,)d
+(suc)m(h)i(as)h(a)g(Comp)s(ose)f(k)m(ey)h(for)f(t)m(yping)g(accen)m
+(ted)i(c)m(haracters.)275 2043 y(If)21 b(y)m(ou)h(do)g(not)g(ha)m(v)m
+(e)h(a)f(Meta)h(or)1388 2040 y Fk(h)p 1412 1987 V 1412
+2043 a Fj(AL)-6 b(T)p 1412 2058 V 1550 2040 a Fk(i)1601
+2043 y Ft(k)m(ey)e(,)25 b(or)d(another)g(k)m(ey)h(w)m(orking)e(as)h(a)g
+(Meta)h(k)m(ey)-8 b(,)25 b(the)d(iden)m(tical)150 2152
+y(k)m(eystrok)m(e)i(can)f(b)s(e)f(generated)i(b)m(y)e(t)m(yping)1619
+2149 y Fk(h)p 1643 2096 139 4 v 1643 2152 a Fj(ESC)p
+1643 2168 V 1777 2149 a Fk(i)1829 2152 y Fn(\014rst)p
+Ft(,)j(and)d(then)g(t)m(yping)2678 2149 y Fk(h)p 2703
+2096 38 4 v 2703 2152 a Fj(k)p 2703 2168 V 2736 2149
+a Fk(i)2765 2152 y Ft(.)38 b(Either)22 b(pro)s(cess)g(is)f(kno)m(wn)150
+2262 y(as)31 b Fi(metafying)38 b Ft(the)850 2259 y Fk(h)p
+874 2206 V 874 2262 a Fj(k)p 874 2277 V 907 2259 a Fk(i)968
+2262 y Ft(k)m(ey)-8 b(.)275 2392 y(The)39 b(text)j Fl(M-C-k)d
+Ft(is)g(read)h(as)h(`Meta-Con)m(trol-k')i(and)c(describ)s(es)g(the)h(c)
+m(haracter)i(pro)s(duced)d(b)m(y)150 2501 y Fi(metafying)f
+Fl(C-k)p Ft(.)275 2632 y(In)e(addition,)h(sev)m(eral)g(k)m(eys)g(ha)m
+(v)m(e)h(their)e(o)m(wn)h(names.)60 b(Sp)s(eci\014cally)-8
+b(,)2768 2629 y Fk(h)p 2792 2576 146 4 v 2792 2632 a
+Fj(DEL)p 2792 2647 V 2934 2629 a Fk(i)2964 2632 y Ft(,)3028
+2629 y Fk(h)p 3052 2576 139 4 v 3052 2632 a Fj(ESC)p
+3052 2647 V 3186 2629 a Fk(i)3216 2632 y Ft(,)3279 2629
+y Fk(h)p 3303 2576 144 4 v 3303 2632 a Fj(LFD)p 3303
+2647 V 3443 2629 a Fk(i)3473 2632 y Ft(,)3537 2629 y
+Fk(h)p 3561 2576 139 4 v 3561 2632 a Fj(SPC)p 3561 2647
+V 3695 2629 a Fk(i)3725 2632 y Ft(,)150 2738 y Fk(h)p
+174 2685 151 4 v 174 2741 a Fj(RET)p 174 2757 V 321 2738
+a Fk(i)351 2741 y Ft(,)47 b(and)612 2738 y Fk(h)p 637
+2685 148 4 v 637 2741 a Fj(T)-6 b(AB)p 637 2757 V 780
+2738 a Fk(i)853 2741 y Ft(all)43 b(stand)g(for)g(themselv)m(es)h(when)e
+(seen)i(in)e(this)g(text,)48 b(or)43 b(in)f(an)i(init)d(\014le)i(\(see)
+150 2851 y(Section)c(1.3)g([Readline)f(Init)f(File],)k(page)e(4\).)67
+b(If)38 b(y)m(our)h(k)m(eyb)s(oard)f(lac)m(ks)h(a)2888
+2848 y Fk(h)p 2912 2795 144 4 v 2912 2851 a Fj(LFD)p
+2912 2866 V 3052 2848 a Fk(i)3121 2851 y Ft(k)m(ey)-8
+b(,)42 b(t)m(yping)3604 2848 y Fk(h)p 3628 2795 97 4
+v 3628 2851 a Fj(C-j)p 3628 2866 V 3720 2848 a Fk(i)150
+2960 y Ft(will)27 b(pro)s(duce)h(the)i(desired)e(c)m(haracter.)42
+b(The)1748 2957 y Fk(h)p 1772 2904 151 4 v 1772 2960
+a Fj(RET)p 1772 2976 V 1919 2957 a Fk(i)1978 2960 y Ft(k)m(ey)30
+b(ma)m(y)g(b)s(e)f(lab)s(eled)2770 2957 y Fk(h)p 2794
+2904 217 4 v 2794 2960 a Fj(Return)p 2794 2976 V 3007
+2957 a Fk(i)3066 2960 y Ft(or)3176 2957 y Fk(h)p 3201
+2904 172 4 v 3201 2960 a Fj(En)n(ter)p 3201 2976 V 3368
+2957 a Fk(i)3427 2960 y Ft(on)h(some)150 3070 y(k)m(eyb)s(oards.)150
+3314 y Fr(1.2)68 b(Readline)47 b(In)l(teraction)275 3554
+y Ft(Often)24 b(during)f(an)i(in)m(teractiv)m(e)h(session)f(y)m(ou)g(t)
+m(yp)s(e)h(in)e(a)h(long)g(line)e(of)j(text,)h(only)e(to)g(notice)h
+(that)g(the)150 3663 y(\014rst)32 b(w)m(ord)g(on)g(the)g(line)f(is)h
+(missp)s(elled.)43 b(The)32 b(Readline)f(library)f(giv)m(es)i(y)m(ou)h
+(a)g(set)g(of)f(commands)g(for)150 3773 y(manipulating)27
+b(the)j(text)h(as)f(y)m(ou)g(t)m(yp)s(e)g(it)f(in,)g(allo)m(wing)f(y)m
+(ou)i(to)h(just)e(\014x)g(y)m(our)h(t)m(yp)s(o,)g(and)g(not)g(forcing)
+150 3883 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)28
+b(of)g(the)h(line.)38 b(Using)27 b(these)i(editing)e(commands,)h(y)m
+(ou)h(mo)m(v)m(e)g(the)g(cursor)150 3992 y(to)35 b(the)f(place)h(that)f
+(needs)g(correction,)i(and)e(delete)g(or)g(insert)g(the)g(text)h(of)g
+(the)f(corrections.)53 b(Then,)150 4102 y(when)30 b(y)m(ou)i(are)f
+(satis\014ed)f(with)g(the)h(line,)f(y)m(ou)i(simply)c(press)2320
+4099 y Fk(h)p 2344 4046 151 4 v 2344 4102 a Fj(RET)p
+2344 4117 V 2491 4099 a Fk(i)2520 4102 y Ft(.)43 b(Y)-8
+b(ou)32 b(do)f(not)g(ha)m(v)m(e)i(to)e(b)s(e)g(at)h(the)150
+4211 y(end)j(of)h(the)g(line)e(to)j(press)1126 4208 y
+Fk(h)p 1150 4155 V 1150 4211 a Fj(RET)p 1150 4227 V 1297
+4208 a Fk(i)1327 4211 y Ft(;)h(the)e(en)m(tire)g(line)e(is)h(accepted)i
+(regardless)e(of)h(the)g(lo)s(cation)g(of)g(the)150 4321
+y(cursor)30 b(within)e(the)i(line.)150 4532 y Fh(1.2.1)63
+b(Readline)40 b(Bare)h(Essen)m(tials)275 4772 y Ft(In)22
+b(order)g(to)i(en)m(ter)g(c)m(haracters)g(in)m(to)f(the)h(line,)f
+(simply)d(t)m(yp)s(e)k(them.)38 b(The)22 b(t)m(yp)s(ed)h(c)m(haracter)i
+(app)s(ears)150 4881 y(where)32 b(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.)46
+b(If)32 b(y)m(ou)h(mist)m(yp)s(e)f(a)150 4991 y(c)m(haracter,)g(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)i(the)g(mist)m(yp)s(ed)d(c)m(haracter.)275 5121
+y(Sometimes)i(y)m(ou)h(ma)m(y)h(mist)m(yp)s(e)d(a)j(c)m(haracter,)g
+(and)e(not)i(notice)f(the)g(error)f(un)m(til)f(y)m(ou)i(ha)m(v)m(e)h(t)
+m(yp)s(ed)150 5230 y(sev)m(eral)d(other)g(c)m(haracters.)42
+b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h
+Fl(C-b)d Ft(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)h(and)150
+5340 y(then)g(correct)i(y)m(our)e(mistak)m(e.)41 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)f
+(with)f Fl(C-f)p Ft(.)p eop
+%%Page: 2 6
+2 5 bop 150 -116 a Ft(2)2645 b(GNU)31 b(Readline)e(Library)275
+299 y(When)j(y)m(ou)h(add)f(text)h(in)e(the)i(middle)d(of)j(a)g(line,)f
+(y)m(ou)g(will)e(notice)j(that)g(c)m(haracters)h(to)g(the)e(righ)m(t)
+150 408 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(that)f(y)m(ou)g(ha)m(v)m(e)h
+(inserted.)39 b(Lik)m(ewise,)150 518 y(when)e(y)m(ou)g(delete)h(text)h
+(b)s(ehind)34 b(the)k(cursor,)h(c)m(haracters)g(to)f(the)g(righ)m(t)f
+(of)h(the)g(cursor)e(are)i(`pulled)150 628 y(bac)m(k')24
+b(to)f(\014ll)e(in)g(the)i(blank)e(space)j(created)f(b)m(y)g(the)g
+(remo)m(v)-5 b(al)23 b(of)g(the)g(text.)39 b(A)23 b(list)e(of)i(the)g
+(bare)f(essen)m(tials)150 737 y(for)30 b(editing)f(the)i(text)g(of)g
+(an)f(input)e(line)h(follo)m(ws.)150 892 y Fl(C-b)336
+b Ft(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)150
+1048 y Fl(C-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m
+(haracter.)150 1200 y Fk(h)p 174 1147 146 4 v 174 1203
+a Fj(DEL)p 174 1218 V 316 1200 a Fk(i)376 1203 y Ft(or)487
+1200 y Fk(h)p 512 1147 317 4 v 512 1203 a Fj(Bac)n(kspace)p
+512 1218 V 824 1200 a Fk(i)630 1312 y Ft(Delete)h(the)e(c)m(haracter)i
+(to)f(the)g(left)f(of)g(the)h(cursor.)150 1467 y Fl(C-d)336
+b Ft(Delete)32 b(the)e(c)m(haracter)i(underneath)d(the)i(cursor.)150
+1622 y(Prin)m(ting)e(c)m(haracters)630 1732 y(Insert)h(the)g(c)m
+(haracter)i(in)m(to)f(the)f(line)f(at)i(the)g(cursor.)150
+1887 y Fl(C-_)e Ft(or)i Fl(C-x)e(C-u)630 1997 y Ft(Undo)k(the)h(last)f
+(editing)f(command.)50 b(Y)-8 b(ou)34 b(can)f(undo)g(all)f(the)h(w)m(a)
+m(y)i(bac)m(k)f(to)g(an)g(empt)m(y)630 2106 y(line.)150
+2262 y(\(Dep)s(ending)f(on)h(y)m(our)g(con\014guration,)g(the)1726
+2259 y Fk(h)p 1750 2205 V 1750 2262 a Fj(Bac)n(kspace)p
+1750 2277 V 2063 2259 a Fk(i)2127 2262 y Ft(k)m(ey)h(b)s(e)e(set)h(to)h
+(delete)f(the)g(c)m(haracter)i(to)f(the)150 2371 y(left)e(of)g(the)g
+(cursor)f(and)h(the)1192 2368 y Fk(h)p 1216 2315 146
+4 v 1216 2371 a Fj(DEL)p 1216 2386 V 1358 2368 a Fk(i)1421
+2371 y Ft(k)m(ey)g(set)h(to)g(delete)f(the)g(c)m(haracter)i(underneath)
+c(the)i(cursor,)h(lik)m(e)150 2481 y Fl(C-d)p Ft(,)c(rather)g(than)g
+(the)h(c)m(haracter)h(to)f(the)f(left)g(of)h(the)f(cursor.\))150
+2698 y Fh(1.2.2)63 b(Readline)40 b(Mo)m(v)m(emen)m(t)g(Commands)275
+2940 y Ft(The)25 b(ab)s(o)m(v)m(e)i(table)f(describ)s(es)f(the)h(most)h
+(basic)e(k)m(eystrok)m(es)j(that)f(y)m(ou)f(need)g(in)f(order)g(to)i
+(do)f(editing)150 3050 y(of)g(the)f(input)f(line.)37
+b(F)-8 b(or)27 b(y)m(our)e(con)m(v)m(enience,)j(man)m(y)d(other)h
+(commands)f(ha)m(v)m(e)i(b)s(een)e(added)g(in)f(addition)150
+3160 y(to)33 b Fl(C-b)p Ft(,)e Fl(C-f)p Ft(,)h Fl(C-d)p
+Ft(,)g(and)1043 3157 y Fk(h)p 1067 3104 V 1067 3160 a
+Fj(DEL)p 1067 3175 V 1209 3157 a Fk(i)1239 3160 y Ft(.)45
+b(Here)33 b(are)f(some)g(commands)g(for)g(mo)m(ving)g(more)g(rapidly)d
+(ab)s(out)j(the)150 3269 y(line.)150 3424 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
+3579 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 3735 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)f(comp)s(osed)h(of)h(letters)g(and)e
+(digits.)150 3890 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 4045 y Fl(C-l)336 b Ft(Clear)30 b(the)g(screen,)h
+(reprin)m(ting)d(the)j(curren)m(t)f(line)f(at)i(the)f(top.)275
+4200 y(Notice)25 b(ho)m(w)g Fl(C-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h
+(c)m(haracter,)j(while)23 b Fl(M-f)g Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h
+(w)m(ord.)39 b(It)24 b(is)g(a)h(lo)s(ose)150 4310 y(con)m(v)m(en)m
+(tion)31 b(that)g(con)m(trol)f(k)m(eystrok)m(es)i(op)s(erate)e(on)g(c)m
+(haracters)h(while)d(meta)j(k)m(eystrok)m(es)h(op)s(erate)e(on)150
+4419 y(w)m(ords.)150 4637 y Fh(1.2.3)63 b(Readline)40
+b(Killing)i(Commands)275 4879 y Fi(Killing)f Ft(text)e(means)e(to)h
+(delete)f(the)h(text)g(from)f(the)g(line,)h(but)f(to)h(sa)m(v)m(e)h(it)
+d(a)m(w)m(a)m(y)k(for)d(later)g(use,)150 4988 y(usually)32
+b(b)m(y)i Fi(y)m(anking)41 b Ft(\(re-inserting\))33 b(it)h(bac)m(k)h
+(in)m(to)f(the)g(line.)50 b(\(`Cut')35 b(and)e(`paste')i(are)g(more)f
+(recen)m(t)150 5098 y(jargon)d(for)f(`kill')e(and)i(`y)m(ank'.\))275
+5230 y(If)f(the)i(description)d(for)i(a)h(command)f(sa)m(ys)g(that)h
+(it)f(`kills')e(text,)k(then)e(y)m(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m
+(ou)150 5340 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)e(a)i(di\013eren)m
+(t)f(\(or)h(the)f(same\))h(place)g(later.)p eop
+%%Page: 3 7
+3 6 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(3)275 299 y(When)23 b(y)m(ou)g(use)g(a)h(kill)d
+(command,)j(the)g(text)g(is)e(sa)m(v)m(ed)j(in)d(a)h
+Fi(kill-ring)p Ft(.)35 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv)
+m(e)150 408 y(kills)28 b(sa)m(v)m(e)33 b(all)d(of)h(the)g(killed)e
+(text)j(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)e(bac)m
+(k,)i(y)m(ou)g(get)g(it)e(all.)41 b(The)150 518 y(kill)30
+b(ring)h(is)g(not)i(line)e(sp)s(eci\014c;)h(the)h(text)g(that)g(y)m(ou)
+g(killed)c(on)k(a)f(previously)e(t)m(yp)s(ed)j(line)d(is)i(a)m(v)-5
+b(ailable)150 628 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)g
+(when)e(y)m(ou)i(are)g(t)m(yping)e(another)i(line.)275
+760 y(Here)f(is)g(the)g(list)f(of)i(commands)f(for)g(killing)d(text.)
+150 916 y Fl(C-k)336 b Ft(Kill)28 b(the)i(text)i(from)e(the)g(curren)m
+(t)g(cursor)g(p)s(osition)f(to)i(the)f(end)g(of)g(the)h(line.)150
+1072 y Fl(M-d)336 b Ft(Kill)24 b(from)i(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)d(b)s(et)m(w)m(een)i(w)m
+(ords,)g(to)g(the)630 1182 y(end)j(of)g(the)h(next)f(w)m(ord.)41
+b(W)-8 b(ord)30 b(b)s(oundaries)e(are)j(the)g(same)f(as)h(those)g(used)
+f(b)m(y)g Fl(M-f)p Ft(.)150 1337 y Fl(M-)246 1334 y Fk(h)p
+270 1281 146 4 v 270 1337 a Fj(DEL)p 270 1353 V 411 1334
+a Fk(i)630 1337 y Ft(Kill)e(from)i(the)h(cursor)f(the)g(start)h(of)g
+(the)g(curren)m(t)f(w)m(ord,)h(or,)f(if)g(b)s(et)m(w)m(een)h(w)m(ords,)
+f(to)i(the)630 1447 y(start)39 b(of)f(the)h(previous)e(w)m(ord.)64
+b(W)-8 b(ord)39 b(b)s(oundaries)d(are)j(the)f(same)h(as)g(those)f(used)
+g(b)m(y)630 1557 y Fl(M-b)p Ft(.)150 1712 y Fl(C-w)336
+b Ft(Kill)29 b(from)h(the)i(cursor)e(to)i(the)g(previous)d(whitespace.)
+43 b(This)30 b(is)g(di\013eren)m(t)h(than)g Fl(M-)3555
+1709 y Fk(h)p 3578 1656 V 3578 1712 a Fj(DEL)p 3578 1728
+V 3720 1709 a Fk(i)630 1822 y Ft(b)s(ecause)f(the)h(w)m(ord)f(b)s
+(oundaries)e(di\013er.)275 1978 y(Here)42 b(is)e(ho)m(w)i(to)g
+Fi(y)m(ank)47 b Ft(the)42 b(text)g(bac)m(k)h(in)m(to)e(the)h(line.)72
+b(Y)-8 b(anking)42 b(means)f(to)h(cop)m(y)h(the)e(most-)150
+2087 y(recen)m(tly-killed)29 b(text)i(from)f(the)g(kill)f(bu\013er.)150
+2243 y Fl(C-y)336 b Ft(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)g
+(killed)d(text)j(bac)m(k)g(in)m(to)g(the)f(bu\013er)g(at)h(the)f
+(cursor.)150 2399 y Fl(M-y)336 b Ft(Rotate)36 b(the)f(kill-ring,)e(and)
+h(y)m(ank)h(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i
+(this)e(if)h(the)h(prior)630 2509 y(command)30 b(is)g
+Fl(C-y)f Ft(or)h Fl(M-y)p Ft(.)150 2727 y Fh(1.2.4)63
+b(Readline)40 b(Argumen)m(ts)275 2970 y Ft(Y)-8 b(ou)29
+b(can)h(pass)f(n)m(umeric)f(argumen)m(ts)h(to)h(Readline)e(commands.)40
+b(Sometimes)29 b(the)g(argumen)m(t)h(acts)150 3079 y(as)40
+b(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)e(it)h(is)f(the)h
+Fn(sign)47 b Ft(of)41 b(the)f(argumen)m(t)g(that)h(is)e(signi\014can)m
+(t.)69 b(If)40 b(y)m(ou)150 3189 y(pass)33 b(a)h(negativ)m(e)h(argumen)
+m(t)f(to)g(a)g(command)f(whic)m(h)f(normally)g(acts)i(in)e(a)i(forw)m
+(ard)f(direction,)g(that)150 3298 y(command)i(will)e(act)j(in)e(a)i
+(bac)m(kw)m(ard)f(direction.)55 b(F)-8 b(or)36 b(example,)g(to)g(kill)d
+(text)j(bac)m(k)g(to)g(the)g(start)g(of)150 3408 y(the)31
+b(line,)e(y)m(ou)h(migh)m(t)g(t)m(yp)s(e)h(`)p Fs(M--)f(C-k)p
+Ft('.)275 3541 y(The)d(general)h(w)m(a)m(y)i(to)e(pass)g(n)m(umeric)f
+(argumen)m(ts)i(to)g(a)f(command)g(is)f(to)i(t)m(yp)s(e)f(meta)i
+(digits)c(b)s(efore)150 3650 y(the)31 b(command.)42 b(If)30
+b(the)h(\014rst)f(`digit')g(t)m(yp)s(ed)h(is)f(a)h(min)m(us)e(sign)h
+(\(`)p Fs(-)p Ft('\),)i(then)f(the)g(sign)e(of)i(the)g(argumen)m(t)150
+3760 y(will)36 b(b)s(e)h(negativ)m(e.)65 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)e(to)h(get)i(the)e(argumen)m(t)h
+(started,)i(y)m(ou)150 3869 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)e
+(of)i(the)g(digits,)f(and)h(then)f(the)h(command.)40
+b(F)-8 b(or)30 b(example,)f(to)g(giv)m(e)h(the)f Fl(C-d)150
+3979 y Ft(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)e
+(t)m(yp)s(e)i(`)p Fs(M-1)29 b(0)h(C-d)p Ft(',)39 b(whic)m(h)d(will)f
+(delete)j(the)f(next)h(ten)150 4089 y(c)m(haracters)32
+b(on)e(the)h(input)d(line.)150 4307 y Fh(1.2.5)63 b(Searc)m(hing)40
+b(for)h(Commands)f(in)h(the)g(History)275 4550 y Ft(Readline)30
+b(pro)m(vides)i(commands)g(for)g(searc)m(hing)g(through)f(the)i
+(command)f(history)f(for)h(lines)e(con-)150 4659 y(taining)f(a)i(sp)s
+(eci\014ed)e(string.)39 b(There)30 b(are)h(t)m(w)m(o)h(searc)m(h)f(mo)s
+(des:)40 b Fi(incremen)m(tal)33 b Ft(and)d Fi(non-incremen)m(tal)p
+Ft(.)275 4792 y(Incremen)m(tal)25 b(searc)m(hes)i(b)s(egin)d(b)s(efore)
+h(the)h(user)f(has)h(\014nished)d(t)m(yping)i(the)h(searc)m(h)g
+(string.)38 b(As)26 b(eac)m(h)150 4902 y(c)m(haracter)37
+b(of)e(the)h(searc)m(h)g(string)e(is)h(t)m(yp)s(ed,)h(Readline)e
+(displa)m(ys)g(the)h(next)h(en)m(try)g(from)e(the)i(history)150
+5011 y(matc)m(hing)24 b(the)g(string)f(t)m(yp)s(ed)h(so)g(far.)39
+b(An)23 b(incremen)m(tal)h(searc)m(h)g(requires)f(only)g(as)h(man)m(y)g
+(c)m(haracters)i(as)150 5121 y(needed)i(to)i(\014nd)d(the)i(desired)e
+(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)e(the)i(history)f(for)g(a)i(particular)150
+5230 y(string,)f(t)m(yp)s(e)g Fl(C-r)p Ft(.)40 b(T)m(yping)28
+b Fl(C-s)h Ft(searc)m(hes)h(forw)m(ard)f(through)g(the)g(history)-8
+b(.)40 b(The)29 b(c)m(haracters)i(presen)m(t)150 5340
+y(in)37 b(the)h(v)-5 b(alue)37 b(of)h(the)g Fs(isearch-terminators)33
+b Ft(v)-5 b(ariable)37 b(are)h(used)f(to)i(terminate)f(an)g(incremen)m
+(tal)p eop
+%%Page: 4 8
+4 7 bop 150 -116 a Ft(4)2645 b(GNU)31 b(Readline)e(Library)150
+299 y(searc)m(h.)63 b(If)38 b(that)g(v)-5 b(ariable)36
+b(has)i(not)g(b)s(een)f(assigned)g(a)h(v)-5 b(alue,)39
+b(the)2578 296 y Fk(h)p 2602 243 139 4 v 2602 299 a Fj(ESC)p
+2602 314 V 2736 296 a Fk(i)2804 299 y Ft(and)e Fl(C-J)f
+Ft(c)m(haracters)k(will)150 408 y(terminate)i(an)h(incremen)m(tal)e
+(searc)m(h.)78 b Fl(C-g)41 b Ft(will)f(ab)s(ort)i(an)g(incremen)m(tal)g
+(searc)m(h)h(and)f(restore)h(the)150 518 y(original)27
+b(line.)39 b(When)28 b(the)h(searc)m(h)h(is)e(terminated,)h(the)g
+(history)f(en)m(try)h(con)m(taining)f(the)h(searc)m(h)h(string)150
+628 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 769 y(T)-8
+b(o)31 b(\014nd)e(other)j(matc)m(hing)f(en)m(tries)g(in)e(the)i
+(history)f(list,)g(t)m(yp)s(e)i Fl(C-r)e Ft(or)h Fl(C-s)f
+Ft(as)h(appropriate.)42 b(This)150 878 y(will)23 b(searc)m(h)k(bac)m
+(kw)m(ard)g(or)f(forw)m(ard)g(in)e(the)j(history)e(for)h(the)g(next)g
+(en)m(try)h(matc)m(hing)f(the)g(searc)m(h)h(string)150
+988 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)f(command)g(will)e(terminate)j
+(the)150 1098 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38
+b(F)-8 b(or)22 b(instance,)g(a)2127 1095 y Fk(h)p 2151
+1042 151 4 v 2151 1098 a Fj(RET)p 2151 1113 V 2298 1095
+a Fk(i)2349 1098 y Ft(will)c(terminate)j(the)g(searc)m(h)h(and)e
+(accept)150 1207 y(the)30 b(line,)e(thereb)m(y)h(executing)h(the)f
+(command)g(from)g(the)h(history)e(list.)39 b(A)29 b(mo)m(v)m(emen)m(t)j
+(command)d(will)150 1317 y(terminate)h(the)h(searc)m(h,)g(mak)m(e)h
+(the)e(last)g(line)f(found)g(the)i(curren)m(t)f(line,)f(and)h(b)s(egin)
+f(editing.)275 1458 y(Readline)k(remem)m(b)s(ers)h(the)h(last)g
+(incremen)m(tal)f(searc)m(h)h(string.)53 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 1567
+y(an)m(y)i(in)m(terv)m(ening)e(c)m(haracters)j(de\014ning)d(a)i(new)f
+(searc)m(h)h(string,)g(an)m(y)g(remem)m(b)s(ered)e(searc)m(h)i(string)f
+(is)150 1677 y(used.)275 1818 y(Non-incremen)m(tal)46
+b(searc)m(hes)i(read)e(the)h(en)m(tire)g(searc)m(h)g(string)f(b)s
+(efore)g(starting)g(to)i(searc)m(h)f(for)150 1928 y(matc)m(hing)c
+(history)e(lines.)76 b(The)42 b(searc)m(h)h(string)f(ma)m(y)h(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
+2037 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
+2311 y Fr(1.3)68 b(Readline)47 b(Init)e(File)275 2562
+y Ft(Although)f(the)h(Readline)f(library)e(comes)k(with)e(a)i(set)f(of)
+g(Emacs-lik)m(e)g(k)m(eybindings)e(installed)150 2672
+y(b)m(y)f(default,)h(it)f(is)e(p)s(ossible)f(to)k(use)e(a)h(di\013eren)
+m(t)f(set)h(of)g(k)m(eybindings.)72 b(An)m(y)42 b(user)f(can)h
+(customize)150 2781 y(programs)32 b(that)h(use)f(Readline)f(b)m(y)i
+(putting)e(commands)h(in)f(an)h Fi(inputrc)k Ft(\014le,)d(con)m(v)m(en)
+m(tionally)f(in)f(his)150 2891 y(home)i(directory)-8
+b(.)49 b(The)33 b(name)g(of)g(this)f(\014le)h(is)f(tak)m(en)i(from)f
+(the)g(v)-5 b(alue)33 b(of)g(the)g(en)m(vironmen)m(t)g(v)-5
+b(ariable)150 3000 y Fs(INPUTRC)p Ft(.)39 b(If)30 b(that)h(v)-5
+b(ariable)29 b(is)g(unset,)h(the)h(default)f(is)f(`)p
+Fs(~/.inputrc)p Ft('.)275 3142 y(When)g(a)h(program)f(whic)m(h)g(uses)g
+(the)h(Readline)e(library)f(starts)j(up,)f(the)h(init)e(\014le)g(is)h
+(read,)h(and)f(the)150 3251 y(k)m(ey)i(bindings)c(are)k(set.)275
+3392 y(In)26 b(addition,)g(the)h Fs(C-x)i(C-r)d Ft(command)h(re-reads)g
+(this)e(init)g(\014le,)i(th)m(us)g(incorp)s(orating)e(an)m(y)i(c)m
+(hanges)150 3502 y(that)k(y)m(ou)g(migh)m(t)f(ha)m(v)m(e)h(made)g(to)g
+(it.)150 3739 y Fh(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275
+3990 y Ft(There)33 b(are)h(only)f(a)h(few)f(basic)g(constructs)h(allo)m
+(w)m(ed)f(in)g(the)h(Readline)e(init)g(\014le.)50 b(Blank)33
+b(lines)f(are)150 4100 y(ignored.)71 b(Lines)40 b(b)s(eginning)e(with)i
+(a)h(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)40
+b(b)s(eginning)e(with)h(a)j(`)p Fs($)p Ft(')f(indicate)150
+4209 y(conditional)26 b(constructs)i(\(see)g(Section)g(1.3.2)h
+([Conditional)d(Init)g(Constructs],)j(page)f(9\).)41
+b(Other)27 b(lines)150 4319 y(denote)k(v)-5 b(ariable)29
+b(settings)h(and)g(k)m(ey)h(bindings.)150 4488 y(V)-8
+b(ariable)30 b(Settings)630 4598 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)d
+(the)j(run-time)e(b)s(eha)m(vior)g(of)i(Readline)e(b)m(y)h(altering)f
+(the)i(v)-5 b(alues)40 b(of)630 4707 y(v)-5 b(ariables)32
+b(in)g(Readline)h(using)f(the)h Fs(set)g Ft(command)g(within)e(the)j
+(init)e(\014le.)49 b(The)33 b(syn)m(tax)630 4817 y(is)c(simple:)870
+4955 y Fs(set)47 b Fl(variable)56 b(value)630 5093 y
+Ft(Here,)29 b(for)e(example,)g(is)g(ho)m(w)g(to)h(c)m(hange)g(from)f
+(the)g(default)g(Emacs-lik)m(e)g(k)m(ey)h(binding)c(to)630
+5202 y(use)30 b Fs(vi)g Ft(line)f(editing)g(commands:)870
+5340 y Fs(set)47 b(editing-mode)d(vi)p eop
+%%Page: 5 9
+5 8 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(5)630 299 y(V)-8 b(ariable)34
+b(names)h(and)g(v)-5 b(alues,)35 b(where)g(appropriate,)g(are)h
+(recognized)f(without)f(regard)630 408 y(to)d(case.)630
+541 y(A)f(great)i(deal)e(of)h(run-time)e(b)s(eha)m(vior)g(is)g(c)m
+(hangeable)j(with)d(the)h(follo)m(wing)f(v)-5 b(ariables.)630
+697 y Fs(bell-style)1110 806 y Ft(Con)m(trols)43 b(what)h(happ)s(ens)e
+(when)h(Readline)g(w)m(an)m(ts)h(to)h(ring)d(the)i(termi-)1110
+916 y(nal)36 b(b)s(ell.)59 b(If)37 b(set)h(to)g(`)p Fs(none)p
+Ft(',)g(Readline)e(nev)m(er)i(rings)d(the)j(b)s(ell.)59
+b(If)36 b(set)i(to)1110 1026 y(`)p Fs(visible)p Ft(',)32
+b(Readline)g(uses)h(a)g(visible)d(b)s(ell)h(if)h(one)h(is)f(a)m(v)-5
+b(ailable.)48 b(If)33 b(set)g(to)1110 1135 y(`)p Fs(audible)p
+Ft(')j(\(the)i(default\),)h(Readline)d(attempts)i(to)h(ring)d(the)h
+(terminal's)1110 1245 y(b)s(ell.)630 1401 y Fs(comment-begin)1110
+1510 y Ft(The)29 b(string)f(to)i(insert)e(at)i(the)f(b)s(eginning)e(of)
+i(the)h(line)d(when)h(the)i Fs(insert-)1110 1620 y(comment)e
+Ft(command)j(is)e(executed.)42 b(The)29 b(default)h(v)-5
+b(alue)30 b(is)f Fs("#")p Ft(.)630 1775 y Fs(completion-ignore-case)
+1110 1885 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)e(p)s
+(erforms)g(\014lename)g(matc)m(hing)i(and)f(completion)1110
+1995 y(in)i(a)i(case-insensitiv)m(e)f(fashion.)39 b(The)30
+b(default)g(v)-5 b(alue)29 b(is)h(`)p Fs(off)p Ft('.)630
+2150 y Fs(completion-query-items)1110 2260 y Ft(The)c(n)m(um)m(b)s(er)f
+(of)h(p)s(ossible)e(completions)h(that)i(determines)e(when)g(the)i
+(user)1110 2370 y(is)h(ask)m(ed)i(whether)f(the)h(list)e(of)h(p)s
+(ossibilities)c(should)i(b)s(e)i(displa)m(y)m(ed.)39
+b(If)29 b(the)1110 2479 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)d
+(completions)i(is)g(greater)i(than)e(this)g(v)-5 b(alue,)27
+b(Readline)1110 2589 y(will)d(ask)j(the)f(user)g(whether)g(or)g(not)h
+(he)f(wishes)f(to)j(view)d(them;)j(otherwise,)1110 2698
+y(they)d(are)f(simply)e(listed.)38 b(This)22 b(v)-5 b(ariable)23
+b(m)m(ust)i(b)s(e)e(set)i(to)g(an)g(in)m(teger)f(v)-5
+b(alue)1110 2808 y(greater)32 b(than)e(or)g(equal)g(to)h(0.)41
+b(The)30 b(default)g(limit)e(is)h Fs(100)p Ft(.)630 2964
+y Fs(convert-meta)1110 3073 y Ft(If)22 b(set)g(to)h(`)p
+Fs(on)p Ft(',)h(Readline)d(will)e(con)m(v)m(ert)24 b(c)m(haracters)f
+(with)e(the)h(eigh)m(th)g(bit)f(set)1110 3183 y(to)h(an)f
+Fm(asci)r(i)g Ft(k)m(ey)h(sequence)g(b)m(y)f(stripping)d(the)k(eigh)m
+(th)f(bit)f(and)h(pre\014xing)e(an)1110 3289 y Fk(h)p
+1134 3236 139 4 v 1134 3292 a Fj(ESC)p 1134 3308 V 1268
+3289 a Fk(i)1332 3292 y Ft(c)m(haracter,)36 b(con)m(v)m(erting)f(them)f
+(to)g(a)h(meta-pre\014xed)f(k)m(ey)g(sequence.)1110 3402
+y(The)c(default)f(v)-5 b(alue)30 b(is)g(`)p Fs(on)p Ft('.)630
+3558 y Fs(disable-completion)1110 3667 y Ft(If)36 b(set)h(to)h(`)p
+Fs(On)p Ft(',)g(Readline)d(will)f(inhibit)f(w)m(ord)k(completion.)58
+b(Completion)1110 3777 y(c)m(haracters)28 b(will)23 b(b)s(e)i(inserted)
+g(in)m(to)h(the)h(line)d(as)i(if)f(they)i(had)e(b)s(een)g(mapp)s(ed)
+1110 3886 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30
+b(default)f(is)h(`)p Fs(off)p Ft('.)630 4042 y Fs(editing-mode)1110
+4152 y Ft(The)e Fs(editing-mode)e Ft(v)-5 b(ariable)27
+b(con)m(trols)i(whic)m(h)e(default)h(set)i(of)e(k)m(ey)i(bind-)1110
+4261 y(ings)24 b(is)g(used.)38 b(By)26 b(default,)f(Readline)f(starts)h
+(up)f(in)g(Emacs)h(editing)f(mo)s(de,)1110 4371 y(where)29
+b(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)c(to)k(Emacs.)40
+b(This)28 b(v)-5 b(ariable)28 b(can)1110 4481 y(b)s(e)i(set)h(to)g
+(either)f(`)p Fs(emacs)p Ft(')f(or)h(`)p Fs(vi)p Ft('.)630
+4636 y Fs(enable-keypad)1110 4746 y Ft(When)23 b(set)h(to)g(`)p
+Fs(on)p Ft(',)h(Readline)d(will)f(try)i(to)h(enable)f(the)g
+(application)f(k)m(eypad)1110 4855 y(when)k(it)g(is)f(called.)39
+b(Some)27 b(systems)f(need)h(this)e(to)i(enable)f(the)h(arro)m(w)g(k)m
+(eys.)1110 4965 y(The)j(default)f(is)h(`)p Fs(off)p Ft('.)630
+5121 y Fs(expand-tilde)1110 5230 y Ft(If)d(set)h(to)h(`)p
+Fs(on)p Ft(',)f(tilde)e(expansion)h(is)f(p)s(erformed)g(when)h
+(Readline)f(attempts)1110 5340 y(w)m(ord)k(completion.)40
+b(The)30 b(default)f(is)h(`)p Fs(off)p Ft('.)p eop
+%%Page: 6 10
+6 9 bop 150 -116 a Ft(6)2645 b(GNU)31 b(Readline)e(Library)1110
+299 y(If)g(set)i(to)f(`)p Fs(on)p Ft(',)g(the)g(history)f(co)s(de)h
+(attempts)g(to)h(place)e(p)s(oin)m(t)g(at)i(the)f(same)1110
+408 y(lo)s(cation)j(on)g(eac)m(h)i(history)d(line)g(retriev)m(ed)h
+(with)f Fs(previous-history)d Ft(or)1110 518 y Fs(next-history)p
+Ft(.)630 696 y Fs(horizontal-scroll-mode)1110 806 y Ft(This)34
+b(v)-5 b(ariable)35 b(can)h(b)s(e)f(set)h(to)h(either)e(`)p
+Fs(on)p Ft(')h(or)g(`)p Fs(off)p Ft('.)57 b(Setting)35
+b(it)g(to)i(`)p Fs(on)p Ft(')1110 915 y(means)26 b(that)h(the)f(text)h
+(of)g(the)f(lines)e(b)s(eing)h(edited)h(will)d(scroll)i(horizon)m
+(tally)1110 1025 y(on)32 b(a)g(single)e(screen)i(line)e(when)g(they)i
+(are)g(longer)g(than)f(the)h(width)e(of)i(the)1110 1134
+y(screen,)27 b(instead)f(of)g(wrapping)e(on)m(to)j(a)f(new)g(screen)g
+(line.)37 b(By)27 b(default,)f(this)1110 1244 y(v)-5
+b(ariable)29 b(is)h(set)g(to)i(`)p Fs(off)p Ft('.)630
+1422 y Fs(input-meta)1110 1532 y Ft(If)f(set)g(to)h(`)p
+Fs(on)p Ft(',)g(Readline)e(will)e(enable)j(eigh)m(t-bit)g(input)e(\(it)
+i(will)d(not)k(clear)1110 1641 y(the)40 b(eigh)m(th)f(bit)g(in)f(the)i
+(c)m(haracters)h(it)e(reads\),)k(regardless)38 b(of)i(what)g(the)1110
+1751 y(terminal)e(claims)h(it)h(can)g(supp)s(ort.)68
+b(The)39 b(default)g(v)-5 b(alue)39 b(is)g(`)p Fs(off)p
+Ft('.)69 b(The)1110 1861 y(name)30 b Fs(meta-flag)e Ft(is)i(a)g(synon)m
+(ym)g(for)g(this)g(v)-5 b(ariable.)630 2039 y Fs(isearch-terminators)
+1110 2148 y Ft(The)51 b(string)g(of)h(c)m(haracters)h(that)f(should)d
+(terminate)j(an)g(incremen)m(tal)1110 2258 y(searc)m(h)25
+b(without)f(subsequen)m(tly)g(executing)h(the)g(c)m(haracter)h(as)f(a)g
+(command)1110 2367 y(\(see)45 b(Section)g(1.2.5)h([Searc)m(hing],)i
+(page)e(3\).)84 b(If)44 b(this)f(v)-5 b(ariable)43 b(has)i(not)1110
+2477 y(b)s(een)31 b(giv)m(en)g(a)h(v)-5 b(alue,)31 b(the)h(c)m
+(haracters)2494 2474 y Fk(h)p 2518 2421 139 4 v 2518
+2477 a Fj(ESC)p 2518 2492 V 2652 2474 a Fk(i)2713 2477
+y Ft(and)f Fl(C-J)g Ft(will)e(terminate)i(an)1110 2587
+y(incremen)m(tal)f(searc)m(h.)630 2765 y Fs(keymap)192
+b Ft(Sets)39 b(Readline's)e(idea)i(of)g(the)g(curren)m(t)f(k)m(eymap)h
+(for)g(k)m(ey)g(binding)d(com-)1110 2874 y(mands.)81
+b(Acceptable)46 b Fs(keymap)c Ft(names)i(are)h Fs(emacs)p
+Ft(,)i Fs(emacs-standard)p Ft(,)1110 2984 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 3093 y Fs(vi-insert)p
+Ft(.)64 b Fs(vi)38 b Ft(is)g(equiv)-5 b(alen)m(t)39 b(to)g
+Fs(vi-command)p Ft(;)i Fs(emacs)c Ft(is)h(equiv)-5 b(alen)m(t)1110
+3203 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)g(v)-5
+b(alue)31 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)32
+b(of)g(the)1110 3313 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)29
+b(also)i(a\013ects)g(the)g(default)e(k)m(eymap.)630 3491
+y Fs(mark-directories)1110 3600 y Ft(If)38 b(set)g(to)h(`)p
+Fs(on)p Ft(',)i(completed)d(directory)f(names)h(ha)m(v)m(e)i(a)e(slash)
+f(app)s(ended.)1110 3710 y(The)30 b(default)f(is)h(`)p
+Fs(on)p Ft('.)630 3888 y Fs(mark-modified-lines)1110
+3998 y Ft(This)k(v)-5 b(ariable,)36 b(when)f(set)h(to)h(`)p
+Fs(on)p Ft(',)g(causes)g(Readline)d(to)j(displa)m(y)d(an)h(as-)1110
+4107 y(terisk)e(\(`)p Fs(*)p Ft('\))i(at)f(the)g(start)g(of)g(history)f
+(lines)f(whic)m(h)g(ha)m(v)m(e)j(b)s(een)e(mo)s(di\014ed.)1110
+4217 y(This)c(v)-5 b(ariable)29 b(is)g(`)p Fs(off)p Ft(')h(b)m(y)g
+(default.)630 4395 y Fs(mark-symlinked-directori)o(es)1110
+4504 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)d(names)g
+(whic)m(h)e(are)i(sym)m(b)s(olic)e(links)g(to)i(di-)1110
+4614 y(rectories)i(ha)m(v)m(e)g(a)g(slash)e(app)s(ended)f(\(sub)5
+b(ject)47 b(to)g(the)f(v)-5 b(alue)46 b(of)g Fs(mark-)1110
+4724 y(directories)p Ft(\).)38 b(The)30 b(default)f(is)h(`)p
+Fs(off)p Ft('.)630 4902 y Fs(match-hidden-files)1110
+5011 y Ft(This)20 b(v)-5 b(ariable,)23 b(when)f(set)g(to)h(`)p
+Fs(on)p Ft(',)h(causes)f(Readline)e(to)i(matc)m(h)g(\014les)e(whose)
+1110 5121 y(names)44 b(b)s(egin)f(with)g(a)h(`)p Fs(.)p
+Ft(')g(\(hidden)e(\014les\))i(when)f(p)s(erforming)f(\014lename)1110
+5230 y(completion,)i(unless)c(the)h(leading)f(`)p Fs(.)p
+Ft(')i(is)f(supplied)d(b)m(y)j(the)h(user)f(in)f(the)1110
+5340 y(\014lename)30 b(to)h(b)s(e)e(completed.)41 b(This)29
+b(v)-5 b(ariable)29 b(is)g(`)p Fs(on)p Ft(')i(b)m(y)f(default.)p
+eop
+%%Page: 7 11
+7 10 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(7)630 299 y Fs(output-meta)1110
+408 y Ft(If)35 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)d(will)f
+(displa)m(y)g(c)m(haracters)k(with)d(the)i(eigh)m(th)f(bit)1110
+518 y(set)i(directly)e(rather)h(than)g(as)h(a)g(meta-pre\014xed)f
+(escap)s(e)h(sequence.)59 b(The)1110 628 y(default)30
+b(is)f(`)p Fs(off)p Ft('.)630 789 y Fs(page-completions)1110
+898 y Ft(If)k(set)i(to)f(`)p Fs(on)p Ft(',)h(Readline)e(uses)g(an)h(in)
+m(ternal)f Fs(more)p Ft(-lik)m(e)f(pager)i(to)h(displa)m(y)1110
+1008 y(a)e(screenful)e(of)h(p)s(ossible)e(completions)i(at)h(a)g(time.)
+46 b(This)30 b(v)-5 b(ariable)32 b(is)f(`)p Fs(on)p Ft(')1110
+1118 y(b)m(y)f(default.)630 1279 y Fs(print-completions-horizo)o(ntal)o
+(ly)1110 1388 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)e
+(will)e(displa)m(y)h(completions)h(with)g(matc)m(hes)i(sorted)1110
+1498 y(horizon)m(tally)42 b(in)g(alphab)s(etical)g(order,)47
+b(rather)c(than)g(do)m(wn)g(the)h(screen.)1110 1608 y(The)30
+b(default)f(is)h(`)p Fs(off)p Ft('.)630 1769 y Fs
+(show-all-if-ambiguous)1110 1878 y Ft(This)e(alters)i(the)g(default)f
+(b)s(eha)m(vior)g(of)h(the)h(completion)e(functions.)39
+b(If)29 b(set)1110 1988 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)
+f(ha)m(v)m(e)j(more)f(than)f(one)h(p)s(ossible)d(completion)h(cause)
+1110 2097 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)f(immediately)h
+(instead)g(of)h(ringing)e(the)i(b)s(ell.)1110 2207 y(The)30
+b(default)f(v)-5 b(alue)30 b(is)g(`)p Fs(off)p Ft('.)630
+2368 y Fs(show-all-if-unmodified)1110 2478 y Ft(This)37
+b(alters)h(the)h(default)f(b)s(eha)m(vior)g(of)g(the)h(completion)f
+(functions)f(in)h(a)1110 2587 y(fashion)24 b(similar)f(to)j
+Fi(sho)m(w-all-if-am)m(biguous)p Ft(.)37 b(If)25 b(set)h(to)h(`)p
+Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)1110 2697 y(ha)m(v)m(e)32
+b(more)f(than)f(one)i(p)s(ossible)c(completion)i(without)g(an)m(y)h(p)s
+(ossible)d(par-)1110 2807 y(tial)41 b(completion)h(\(the)h(p)s(ossible)
+d(completions)h(don't)h(share)g(a)h(common)1110 2916
+y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)e
+(immediately)h(instead)g(of)i(ring-)1110 3026 y(ing)f(the)g(b)s(ell.)39
+b(The)30 b(default)f(v)-5 b(alue)30 b(is)f(`)p Fs(off)p
+Ft('.)630 3187 y Fs(visible-stats)1110 3296 y Ft(If)i(set)i(to)f(`)p
+Fs(on)p Ft(',)h(a)f(c)m(haracter)i(denoting)d(a)h(\014le's)f(t)m(yp)s
+(e)h(is)f(app)s(ended)f(to)j(the)1110 3406 y(\014lename)d(when)f
+(listing)f(p)s(ossible)g(completions.)40 b(The)30 b(default)f(is)h(`)p
+Fs(off)p Ft('.)150 3567 y(Key)g(Bindings)630 3677 y(The)41
+b(syn)m(tax)i(for)f(con)m(trolling)e(k)m(ey)j(bindings)c(in)i(the)h
+(init)e(\014le)h(is)g(simple.)73 b(First)42 b(y)m(ou)630
+3786 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
+3896 y(sections)36 b(con)m(tain)g(tables)g(of)g(the)g(command)f(name,)j
+(the)e(default)f(k)m(eybinding,)g(if)g(an)m(y)-8 b(,)630
+4006 y(and)30 b(a)h(short)f(description)e(of)j(what)f(the)g(command)h
+(do)s(es.)630 4141 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
+(the)g(command,)h(simply)d(place)i(on)f(a)i(line)d(in)h(the)h(init)630
+4251 y(\014le)d(the)h(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)e(to)i
+(bind)e(the)i(command)f(to,)i(a)f(colon,)h(and)e(then)630
+4360 y(the)f(name)g(of)g(the)g(command.)46 b(The)31 b(name)h(of)g(the)g
+(k)m(ey)h(can)f(b)s(e)f(expressed)h(in)e(di\013eren)m(t)630
+4470 y(w)m(a)m(ys,)h(dep)s(ending)d(on)j(what)f(y)m(ou)h(\014nd)d(most)
+j(comfortable.)630 4605 y(In)k(addition)f(to)j(command)f(names,)i
+(readline)c(allo)m(ws)h(k)m(eys)i(to)g(b)s(e)e(b)s(ound)f(to)j(a)f
+(string)630 4715 y(that)31 b(is)e(inserted)h(when)f(the)i(k)m(ey)g(is)e
+(pressed)h(\(a)h Fi(macro)5 b Ft(\).)630 4876 y Fi(k)m(eyname)g
+Ft(:)42 b Fi(function-name)34 b Ft(or)d Fi(macro)1110
+4985 y(k)m(eyname)k Ft(is)28 b(the)g(name)h(of)g(a)g(k)m(ey)h(sp)s
+(elled)c(out)j(in)f(English.)37 b(F)-8 b(or)30 b(example:)1350
+5121 y Fs(Control-u:)45 b(universal-argument)1350 5230
+y(Meta-Rubout:)f(backward-kill-word)1350 5340 y(Control-o:)h(">)i
+(output")p eop
+%%Page: 8 12
+8 11 bop 150 -116 a Ft(8)2645 b(GNU)31 b(Readline)e(Library)1110
+299 y(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)g Fl(C-u)e
+Ft(is)g(b)s(ound)e(to)k(the)e(function)g Fs(universal-)1110
+408 y(argument)p Ft(,)g Fl(M-DEL)e Ft(is)h(b)s(ound)f(to)i(the)g
+(function)f Fs(backward-kill-word)p Ft(,)1110 518 y(and)h
+Fl(C-o)g Ft(is)g(b)s(ound)f(to)j(run)d(the)j(macro)f(expressed)g(on)f
+(the)i(righ)m(t)e(hand)1110 628 y(side)29 b(\(that)j(is,)d(to)i(insert)
+f(the)g(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)h(the)h(line\).)1110
+764 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)e(c)m(haracter)k
+(names)e(are)g(recognized)g(while)e(pro-)1110 873 y(cessing)23
+b(this)g(k)m(ey)h(binding)d(syn)m(tax:)37 b Fi(DEL)p
+Ft(,)24 b Fi(ESC)p Ft(,)f Fi(ESCAPE)p Ft(,)g Fi(LFD)p
+Ft(,)h Fi(NEW-)1110 983 y(LINE)p Ft(,)30 b Fi(RET)p Ft(,)g
+Fi(RETURN)p Ft(,)h Fi(R)m(UBOUT)p Ft(,)g Fi(SP)-8 b(A)m(CE)p
+Ft(,)30 b Fi(SPC)p Ft(,)g(and)f Fi(T)-8 b(AB)p Ft(.)630
+1146 y Fs(")p Fi(k)m(eyseq)r Fs(")p Ft(:)41 b Fi(function-name)35
+b Ft(or)30 b Fi(macro)1110 1256 y(k)m(eyseq)k Ft(di\013ers)c(from)g
+Fi(k)m(eyname)37 b Ft(ab)s(o)m(v)m(e)32 b(in)e(that)i(strings)e
+(denoting)g(an)h(en-)1110 1365 y(tire)i(k)m(ey)i(sequence)f(can)g(b)s
+(e)f(sp)s(eci\014ed,)g(b)m(y)g(placing)g(the)h(k)m(ey)g(sequence)g(in)
+1110 1475 y(double)28 b(quotes.)41 b(Some)29 b Fm(gnu)h
+Ft(Emacs)f(st)m(yle)h(k)m(ey)g(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
+1110 1584 y(in)j(the)i(follo)m(wing)f(example,)h(but)f(the)h(sp)s
+(ecial)f(c)m(haracter)i(names)f(are)g(not)1110 1694 y(recognized.)1350
+1830 y Fs("\\C-u":)46 b(universal-argument)1350 1940
+y("\\C-x\\C-r":)f(re-read-init-file)1350 2049 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 2186 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)73
+b Fl(C-u)64 b Ft(is)f(again)i(b)s(ound)d(to)k(the)e(function)1110
+2295 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)f(w)m(as)h(in)f
+(the)g(\014rst)g(example\),)48 b(`)p Fl(C-x)1110 2405
+y(C-r)p Ft(')41 b(is)f(b)s(ound)f(to)j(the)f(function)f
+Fs(re-read-init-file)p Ft(,)f(and)i(`)3462 2402 y Fk(h)p
+3486 2349 139 4 v 3486 2405 a Fj(ESC)p 3486 2420 V 3620
+2402 a Fk(i)31 b(h)p 3705 2349 20 4 v 3705 2405 a Fj([)p
+3705 2421 V 3720 2402 a Fk(i)1110 2511 y(h)p 1134 2458
+36 4 v 1134 2514 a Fj(1)p 1134 2530 V 1165 2511 a Fk(i)f(h)p
+1250 2458 V 1250 2514 a Fj(1)p 1250 2530 V 1281 2511
+a Fk(i)g(h)p 1365 2458 48 4 v 1365 2514 a Fs(~)p 1365
+2530 V 1409 2511 a Fk(i)1438 2514 y Ft(')h(is)e(b)s(ound)g(to)i(insert)
+e(the)i(text)g(`)p Fs(Function)d(Key)i(1)p Ft('.)630
+2677 y(The)f(follo)m(wing)f Fm(gnu)i Ft(Emacs)g(st)m(yle)g(escap)s(e)g
+(sequences)g(are)g(a)m(v)-5 b(ailable)29 b(when)g(sp)s(ecifying)630
+2787 y(k)m(ey)i(sequences:)630 2950 y Fl(\\C-)336 b Ft(con)m(trol)31
+b(pre\014x)630 3113 y Fl(\\M-)336 b Ft(meta)31 b(pre\014x)630
+3276 y Fl(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
+3438 y Fl(\\\\)384 b Ft(bac)m(kslash)630 3601 y Fl(\\)p
+Fs(")1110 3598 y Fk(h)p 1134 3545 V 1134 3601 a Fs(")p
+1134 3617 V 1178 3598 a Fk(i)1208 3601 y Ft(,)30 b(a)h(double)e
+(quotation)h(mark)630 3764 y Fl(\\')1110 3761 y Fk(h)p
+1134 3708 20 4 v 1134 3764 a Fj(')p 1134 3780 V 1150
+3761 a Fk(i)1179 3764 y Ft(,)h(a)g(single)e(quote)i(or)f(ap)s(ostrophe)
+630 3927 y(In)d(addition)f(to)i(the)g Fm(gnu)f Ft(Emacs)h(st)m(yle)g
+(escap)s(e)g(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
+4037 y(escap)s(es)j(is)e(a)m(v)-5 b(ailable:)630 4200
+y Fs(\\a)384 b Ft(alert)30 b(\(b)s(ell\))630 4363 y Fs(\\b)384
+b Ft(bac)m(kspace)630 4525 y Fs(\\d)g Ft(delete)630 4688
+y Fs(\\f)g Ft(form)30 b(feed)630 4851 y Fs(\\n)384 b
+Ft(newline)630 5014 y Fs(\\r)g Ft(carriage)31 b(return)630
+5177 y Fs(\\t)384 b Ft(horizon)m(tal)30 b(tab)630 5340
+y Fs(\\v)384 b Ft(v)m(ertical)30 b(tab)p eop
+%%Page: 9 13
+9 12 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(9)630 299 y Fs(\\)p Fl(nnn)288
+b Ft(the)35 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5
+b(alue)34 b(is)g(the)g(o)s(ctal)h(v)-5 b(alue)34 b Fi(nnn)f
+Ft(\(one)i(to)1110 408 y(three)c(digits\))630 564 y Fs(\\x)p
+Fl(HH)288 b Ft(the)40 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5
+b(alue)38 b(is)h(the)g(hexadecimal)g(v)-5 b(alue)39 b
+Fi(HH)1110 674 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
+830 y(When)37 b(en)m(tering)g(the)h(text)g(of)g(a)g(macro,)i(single)c
+(or)h(double)f(quotes)i(m)m(ust)f(b)s(e)g(used)f(to)630
+939 y(indicate)21 b(a)g(macro)h(de\014nition.)36 b(Unquoted)21
+b(text)i(is)d(assumed)h(to)h(b)s(e)f(a)h(function)e(name.)38
+b(In)630 1049 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
+b(the)e(bac)m(kslash)g(escap)s(es)h(describ)s(ed)d(ab)s(o)m(v)m(e)k
+(are)e(expanded.)37 b(Bac)m(kslash)630 1158 y(will)g(quote)k(an)m(y)f
+(other)g(c)m(haracter)i(in)c(the)j(macro)f(text,)k(including)36
+b(`)p Fs(")p Ft(')k(and)g(`)p Fs(')p Ft('.)69 b(F)-8
+b(or)630 1268 y(example,)27 b(the)f(follo)m(wing)e(binding)e(will)h
+(mak)m(e)k(`)p Fl(C-x)j Fs(\\)p Ft(')c(insert)e(a)i(single)f(`)p
+Fs(\\)p Ft(')h(in)m(to)f(the)h(line:)870 1401 y Fs("\\C-x\\\\":)45
+b("\\\\")150 1619 y Fh(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+275 1862 y Ft(Readline)34 b(implemen)m(ts)f(a)j(facilit)m(y)f(similar)d
+(in)i(spirit)f(to)j(the)g(conditional)e(compilation)g(features)150
+1971 y(of)h(the)f(C)g(prepro)s(cessor)g(whic)m(h)f(allo)m(ws)h(k)m(ey)h
+(bindings)c(and)j(v)-5 b(ariable)33 b(settings)i(to)g(b)s(e)f(p)s
+(erformed)f(as)150 2081 y(the)e(result)e(of)h(tests.)42
+b(There)30 b(are)h(four)e(parser)h(directiv)m(es)g(used.)150
+2237 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)f
+(bindings)d(to)k(b)s(e)e(made)i(based)f(on)g(the)g(editing)f(mo)s(de,)i
+(the)630 2346 y(terminal)37 b(b)s(eing)f(used,)k(or)e(the)g
+(application)e(using)h(Readline.)62 b(The)38 b(text)h(of)f(the)g(test)
+630 2456 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)e(no)h(c)m
+(haracters)i(are)f(required)d(to)j(isolate)g(it.)630
+2612 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g
+Fs($if)f Ft(directiv)m(e)h(is)f(used)g(to)h(test)h(whether)e(Readline)
+1110 2721 y(is)28 b(in)h Fs(emacs)f Ft(or)h Fs(vi)g Ft(mo)s(de.)40
+b(This)28 b(ma)m(y)i(b)s(e)e(used)h(in)f(conjunction)h(with)f(the)1110
+2831 y(`)p Fs(set)i(keymap)p Ft(')c(command,)i(for)f(instance,)h(to)g
+(set)g(bindings)d(in)h(the)i Fs(emacs-)1110 2940 y(standard)23
+b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)f(if)g(Readline)g(is)g
+(starting)h(out)1110 3050 y(in)k Fs(emacs)g Ft(mo)s(de.)630
+3206 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)d(terminal-sp)s(eci\014c)f(k)m(ey)k(bind-)1110
+3315 y(ings,)37 b(p)s(erhaps)d(to)j(bind)d(the)i(k)m(ey)h(sequences)f
+(output)g(b)m(y)g(the)g(terminal's)1110 3425 y(function)23
+b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)e(side)g(of)h
+(the)g(`)p Fs(=)p Ft(')g(is)f(tested)i(against)1110 3534
+y(b)s(oth)k(the)h(full)e(name)i(of)g(the)g(terminal)f(and)g(the)i(p)s
+(ortion)d(of)i(the)g(terminal)1110 3644 y(name)k(b)s(efore)f(the)g
+(\014rst)g(`)p Fs(-)p Ft('.)50 b(This)32 b(allo)m(ws)h
+Fs(sun)g Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110
+3754 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 3909 y
+Fs(application)1110 4019 y Ft(The)21 b Fi(application)g
+Ft(construct)h(is)f(used)g(to)i(include)d(application-sp)s(eci\014c)f
+(set-)1110 4129 y(tings.)38 b(Eac)m(h)26 b(program)e(using)f(the)i
+(Readline)e(library)g(sets)i(the)g Fi(application)1110
+4238 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)f
+(v)-5 b(alue.)38 b(This)21 b(could)h(b)s(e)h(used)f(to)1110
+4348 y(bind)31 b(k)m(ey)i(sequences)g(to)h(functions)d(useful)g(for)i
+(a)g(sp)s(eci\014c)e(program.)48 b(F)-8 b(or)1110 4457
+y(instance,)34 b(the)f(follo)m(wing)e(command)i(adds)f(a)i(k)m(ey)f
+(sequence)h(that)f(quotes)1110 4567 y(the)e(curren)m(t)f(or)g(previous)
+f(w)m(ord)h(in)f(Bash:)1350 4700 y Fs($if)47 b(Bash)1350
+4809 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
+4919 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 5028 y($endif)150
+5184 y($endif)192 b Ft(This)28 b(command,)j(as)f(seen)h(in)e(the)h
+(previous)f(example,)h(terminates)g(an)h Fs($if)e Ft(command.)150
+5340 y Fs($else)240 b Ft(Commands)29 b(in)g(this)h(branc)m(h)f(of)i
+(the)f Fs($if)g Ft(directiv)m(e)g(are)h(executed)g(if)e(the)i(test)g
+(fails.)p eop
+%%Page: 10 14
+10 13 bop 150 -116 a Ft(10)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fs($include)96 b Ft(This)42 b(directiv)m(e)h(tak)m(es)i(a)e
+(single)g(\014lename)f(as)i(an)f(argumen)m(t)h(and)f(reads)g(commands)
+630 408 y(and)38 b(bindings)d(from)j(that)i(\014le.)64
+b(F)-8 b(or)39 b(example,)i(the)e(follo)m(wing)e(directiv)m(e)h(reads)g
+(from)630 518 y(`)p Fs(/etc/inputrc)p Ft(':)870 653 y
+Fs($include)46 b(/etc/inputrc)150 877 y Fh(1.3.3)63 b(Sample)40
+b(Init)h(File)275 1121 y Ft(Here)31 b(is)e(an)h(example)h(of)f(an)g
+Fi(inputrc)k Ft(\014le.)41 b(This)28 b(illustrates)h(k)m(ey)i(binding,)
+d(v)-5 b(ariable)29 b(assignmen)m(t,)150 1230 y(and)h(conditional)e
+(syn)m(tax.)p eop
+%%Page: 11 15
+11 14 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(11)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)g(FTP,)g(Bash,)h(and)g
+(GDB.)390 737 y(#)390 847 y(#)g(You)g(can)g(re-read)f(the)h(inputrc)f
+(file)g(with)h(C-x)g(C-r.)390 956 y(#)g(Lines)g(beginning)e(with)i('#')
+g(are)g(comments.)390 1066 y(#)390 1176 y(#)g(First,)g(include)e(any)i
+(systemwide)e(bindings)h(and)h(variable)390 1285 y(#)g(assignments)e
+(from)i(/etc/Inputrc)390 1395 y($include)f(/etc/Inputrc)390
+1614 y(#)390 1724 y(#)h(Set)g(various)f(bindings)g(for)h(emacs)f(mode.)
+390 1943 y(set)h(editing-mode)d(emacs)390 2162 y($if)j(mode=emacs)390
+2381 y(Meta-Control-h:)91 b(backward-kill-word)43 b(Text)k(after)f(the)
+h(function)f(name)g(is)h(ignored)p 3971 2401 42 76 v
+390 2600 a(#)390 2710 y(#)g(Arrow)g(keys)f(in)i(keypad)e(mode)390
+2819 y(#)390 2929 y(#"\\M-OD":)379 b(backward-char)390
+3039 y(#"\\M-OC":)g(forward-char)390 3148 y(#"\\M-OA":)g
+(previous-history)390 3258 y(#"\\M-OB":)g(next-history)390
+3367 y(#)390 3477 y(#)47 b(Arrow)g(keys)f(in)i(ANSI)e(mode)390
+3587 y(#)390 3696 y("\\M-[D":)380 b(backward-char)390
+3806 y("\\M-[C":)g(forward-char)390 3915 y("\\M-[A":)g
+(previous-history)390 4025 y("\\M-[B":)g(next-history)390
+4134 y(#)390 4244 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)
+390 4354 y(#)390 4463 y(#"\\M-\\C-OD":)331 b(backward-char)390
+4573 y(#"\\M-\\C-OC":)g(forward-char)390 4682 y(#"\\M-\\C-OA":)g
+(previous-history)390 4792 y(#"\\M-\\C-OB":)g(next-history)390
+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
+%%Page: 12 16
+12 15 bop 150 -116 a Ft(12)2600 b(GNU)31 b(Readline)e(Library)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)g(default.)390 1176
+y(TAB:)g(complete)390 1395 y(#)g(Macros)g(that)f(are)h(convenient)e
+(for)i(shell)f(interaction)390 1504 y($if)h(Bash)390
+1614 y(#)g(edit)g(the)g(path)390 1724 y("\\C-xp":)f
+("PATH=${PATH}\\e\\C-e\\C-a)o(\\ef)o(\\C-f)o(")390 1833
+y(#)h(prepare)f(to)h(type)g(a)h(quoted)e(word)g(--)390
+1943 y(#)h(insert)g(open)f(and)h(close)f(double)h(quotes)390
+2052 y(#)g(and)g(move)g(to)g(just)g(after)f(the)h(open)g(quote)390
+2162 y("\\C-x\\"":)e("\\"\\"\\C-b")390 2271 y(#)i(insert)g(a)g
+(backslash)e(\(testing)h(backslash)f(escapes)390 2381
+y(#)i(in)h(sequences)d(and)i(macros\))390 2491 y("\\C-x\\\\":)e("\\\\")
+390 2600 y(#)i(Quote)g(the)g(current)f(or)h(previous)e(word)390
+2710 y("\\C-xq":)h("\\eb\\"\\ef\\"")390 2819 y(#)h(Add)g(a)h(binding)e
+(to)h(refresh)f(the)h(line,)f(which)g(is)h(unbound)390
+2929 y("\\C-xr":)f(redraw-current-line)390 3039 y(#)h(Edit)g(variable)f
+(on)h(current)f(line.)390 3148 y("\\M-\\C-v":)f
+("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-)o(a\\C-)o(y=")390 3258
+y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
+(available)390 3587 y(set)f(bell-style)e(visible)390
+3806 y(#)i(don't)g(strip)f(characters)f(to)i(7)h(bits)e(when)h(reading)
+390 3915 y(set)g(input-meta)e(on)390 4134 y(#)i(allow)g(iso-latin1)e
+(characters)g(to)i(be)g(inserted)f(rather)390 4244 y(#)h(than)g
+(converted)e(to)j(prefix-meta)c(sequences)390 4354 y(set)j
+(convert-meta)d(off)390 4573 y(#)j(display)f(characters)f(with)i(the)g
+(eighth)f(bit)h(set)g(directly)390 4682 y(#)g(rather)g(than)f(as)h
+(meta-prefixed)e(characters)390 4792 y(set)i(output-meta)e(on)390
+5011 y(#)i(if)h(there)e(are)h(more)g(than)f(150)h(possible)f
+(completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
+(he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
+(completion-query-items)42 b(150)p eop
+%%Page: 13 17
+13 16 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(13)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 1098 y Fr(1.4)68 b(Bindable)45 b(Readline)i(Commands)
+275 1340 y Ft(This)29 b(section)j(describ)s(es)d(Readline)h(commands)h
+(that)h(ma)m(y)g(b)s(e)f(b)s(ound)e(to)j(k)m(ey)g(sequences.)44
+b(Com-)150 1449 y(mand)30 b(names)g(without)f(an)h(accompan)m(ying)h(k)
+m(ey)h(sequence)e(are)h(un)m(b)s(ound)d(b)m(y)i(default.)275
+1582 y(In)25 b(the)h(follo)m(wing)f(descriptions,)g Fi(p)s(oin)m(t)i
+Ft(refers)f(to)h(the)f(curren)m(t)g(cursor)g(p)s(osition,)f(and)h
+Fi(mark)31 b Ft(refers)150 1691 y(to)40 b(a)f(cursor)f(p)s(osition)f
+(sa)m(v)m(ed)j(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)f(and)150
+1801 y(mark)30 b(is)g(referred)f(to)i(as)g(the)f Fi(region)p
+Ft(.)150 2018 y Fh(1.4.1)63 b(Commands)40 b(F)-10 b(or)41
+b(Mo)m(ving)150 2260 y Fs(beginning-of-line)26 b(\(C-a\))630
+2370 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 2525 y Fs(end-of-line)d(\(C-e\))630 2635 y
+Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
+2790 y Fs(forward-char)c(\(C-f\))630 2899 y Ft(Mo)m(v)m(e)32
+b(forw)m(ard)e(a)h(c)m(haracter.)150 3054 y Fs(backward-char)c(\(C-b\))
+630 3164 y Ft(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
+3319 y Fs(forward-word)d(\(M-f\))630 3429 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)h(and)630
+3538 y(digits.)150 3693 y Fs(backward-word)c(\(M-b\))630
+3803 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)f(w)m(ord.)50 b(W)-8 b(ords)34
+b(are)g(comp)s(osed)630 3913 y(of)d(letters)f(and)g(digits.)150
+4068 y Fs(clear-screen)d(\(C-l\))630 4177 y Ft(Clear)f(the)h(screen)f
+(and)h(redra)m(w)f(the)h(curren)m(t)f(line,)g(lea)m(ving)g(the)h
+(curren)m(t)g(line)e(at)i(the)g(top)630 4287 y(of)k(the)f(screen.)150
+4442 y Fs(redraw-current-line)25 b(\(\))630 4552 y Ft(Refresh)30
+b(the)g(curren)m(t)h(line.)39 b(By)30 b(default,)g(this)f(is)h(un)m(b)s
+(ound.)150 4769 y Fh(1.4.2)63 b(Commands)40 b(F)-10 b(or)41
+b(Manipulating)h(The)f(History)150 5011 y Fs(accept-line)27
+b(\(Newline)h(or)i(Return\))630 5121 y Ft(Accept)36 b(the)g(line)d
+(regardless)i(of)g(where)g(the)g(cursor)g(is.)54 b(If)34
+b(this)g(line)g(is)g(non-empt)m(y)-8 b(,)37 b(it)630
+5230 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)f(list)g(for)g
+(future)g(recall)h(with)e Fs(add_history\(\))p Ft(.)42
+b(If)31 b(this)630 5340 y(line)e(is)g(a)i(mo)s(di\014ed)d(history)h
+(line,)g(the)i(history)e(line)g(is)g(restored)i(to)g(its)f(original)e
+(state.)p eop
+%%Page: 14 18
+14 17 bop 150 -116 a Ft(14)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fs(previous-history)d(\(C-p\))630 408 y Ft(Mo)m(v)m(e)32
+b(`bac)m(k')g(through)e(the)g(history)g(list,)f(fetc)m(hing)h(the)h
+(previous)e(command.)150 586 y Fs(next-history)e(\(C-n\))630
+696 y Ft(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i(history)e
+(list,)h(fetc)m(hing)g(the)h(next)f(command.)150 873
+y Fs(beginning-of-history)25 b(\(M-<\))630 983 y Ft(Mo)m(v)m(e)32
+b(to)g(the)e(\014rst)g(line)e(in)i(the)g(history)-8 b(.)150
+1161 y Fs(end-of-history)26 b(\(M->\))630 1270 y Ft(Mo)m(v)m(e)32
+b(to)g(the)e(end)g(of)g(the)h(input)d(history)-8 b(,)30
+b(i.e.,)h(the)g(line)d(curren)m(tly)i(b)s(eing)f(en)m(tered.)150
+1448 y Fs(reverse-search-history)24 b(\(C-r\))630 1558
+y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h(the)f(curren)m(t)g
+(line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g(his-)630
+1667 y(tory)g(as)f(necessary)-8 b(.)42 b(This)28 b(is)i(an)g(incremen)m
+(tal)g(searc)m(h.)150 1845 y Fs(forward-search-history)24
+b(\(C-s\))630 1955 y Ft(Searc)m(h)30 b(forw)m(ard)f(starting)g(at)h
+(the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn')g(through)g(the)
+h(the)630 2064 y(history)f(as)i(necessary)-8 b(.)41 b(This)29
+b(is)g(an)i(incremen)m(tal)e(searc)m(h.)150 2242 y Fs
+(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
+b(\(M-p\))630 2352 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h
+(the)f(curren)m(t)g(line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g
+(his-)630 2461 y(tory)36 b(as)g(necessary)h(using)d(a)j(non-incremen)m
+(tal)e(searc)m(h)h(for)g(a)g(string)f(supplied)e(b)m(y)j(the)630
+2571 y(user.)150 2748 y Fs(non-incremental-forward-)o(sear)o(ch-h)o
+(ist)o(ory)24 b(\(M-n\))630 2858 y Ft(Searc)m(h)30 b(forw)m(ard)f
+(starting)g(at)h(the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn')
+g(through)g(the)h(the)630 2968 y(history)c(as)g(necessary)i(using)d(a)i
+(non-incremen)m(tal)e(searc)m(h)j(for)e(a)h(string)f(supplied)d(b)m(y)k
+(the)630 3077 y(user.)150 3255 y Fs(history-search-forward)d(\(\))630
+3364 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)e(for)h
+(the)h(string)e(of)i(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
+3474 y(start)36 b(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m
+(t.)54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56
+b(By)630 3584 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150
+3761 y Fs(history-search-backward)24 b(\(\))630 3871
+y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)f(for)h
+(the)f(string)g(of)h(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
+3981 y(start)g(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m(t.)
+54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56
+b(By)630 4090 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150
+4268 y Fs(yank-nth-arg)d(\(M-C-y\))630 4377 y Ft(Insert)e(the)i
+(\014rst)e(argumen)m(t)h(to)h(the)f(previous)f(command)g(\(usually)f
+(the)i(second)g(w)m(ord)g(on)630 4487 y(the)k(previous)f(line\))f(at)j
+(p)s(oin)m(t.)39 b(With)30 b(an)g(argumen)m(t)g Fi(n)p
+Ft(,)g(insert)e(the)j Fi(n)p Ft(th)e(w)m(ord)g(from)h(the)630
+4597 y(previous)25 b(command)i(\(the)h(w)m(ords)e(in)g(the)h(previous)e
+(command)i(b)s(egin)e(with)h(w)m(ord)h(0\).)40 b(A)630
+4706 y(negativ)m(e)27 b(argumen)m(t)f(inserts)e(the)i
+Fi(n)p Ft(th)f(w)m(ord)g(from)g(the)h(end)f(of)h(the)g(previous)e
+(command.)150 4884 y Fs(yank-last-arg)j(\(M-.)i(or)h(M-_\))630
+4994 y Ft(Insert)k(last)h(argumen)m(t)h(to)g(the)f(previous)e(command)i
+(\(the)h(last)e(w)m(ord)h(of)g(the)g(previous)630 5103
+y(history)30 b(en)m(try\).)41 b(With)30 b(an)h(argumen)m(t,)g(b)s(eha)m
+(v)m(e)g(exactly)h(lik)m(e)e Fs(yank-nth-arg)p Ft(.)38
+b(Succes-)630 5213 y(siv)m(e)c(calls)g(to)h Fs(yank-last-arg)c
+Ft(mo)m(v)m(e)36 b(bac)m(k)g(through)d(the)i(history)f(list,)g
+(inserting)f(the)630 5322 y(last)d(argumen)m(t)h(of)g(eac)m(h)g(line)e
+(in)g(turn.)p eop
+%%Page: 15 19
+15 18 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(15)150 299 y Fh(1.4.3)63 b(Commands)40
+b(F)-10 b(or)41 b(Changing)g(T)-10 b(ext)150 547 y Fs(delete-char)27
+b(\(C-d\))630 656 y Ft(Delete)40 b(the)f(c)m(haracter)i(at)e(p)s(oin)m
+(t.)65 b(If)39 b(p)s(oin)m(t)e(is)h(at)i(the)f(b)s(eginning)d(of)j(the)
+g(line,)h(there)630 766 y(are)d(no)g(c)m(haracters)i(in)c(the)j(line,)f
+(and)f(the)h(last)g(c)m(haracter)i(t)m(yp)s(ed)e(w)m(as)g(not)g(b)s
+(ound)e(to)630 875 y Fs(delete-char)p Ft(,)28 b(then)i(return)f
+Fm(eof)p Ft(.)150 1042 y Fs(backward-delete-char)c(\(Rubout\))630
+1152 y Ft(Delete)31 b(the)g(c)m(haracter)g(b)s(ehind)d(the)i(cursor.)40
+b(A)30 b(n)m(umeric)f(argumen)m(t)i(means)f(to)h(kill)d(the)630
+1261 y(c)m(haracters)k(instead)d(of)i(deleting)e(them.)150
+1428 y Fs(forward-backward-delete-)o(char)24 b(\(\))630
+1538 y Ft(Delete)39 b(the)g(c)m(haracter)h(under)c(the)j(cursor,)h
+(unless)c(the)j(cursor)e(is)g(at)i(the)g(end)e(of)i(the)630
+1647 y(line,)31 b(in)f(whic)m(h)g(case)j(the)f(c)m(haracter)h(b)s
+(ehind)c(the)j(cursor)f(is)f(deleted.)45 b(By)32 b(default,)f(this)630
+1757 y(is)e(not)i(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+1924 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 2033
+y Ft(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)f
+(v)m(erbatim.)52 b(This)32 b(is)i(ho)m(w)g(to)h(insert)e(k)m(ey)630
+2143 y(sequences)e(lik)m(e)e Fl(C-q)p Ft(,)h(for)g(example.)150
+2310 y Fs(tab-insert)e(\(M-)802 2307 y Fk(h)p 825 2254
+148 4 v 825 2310 a Fj(T)-6 b(AB)p 825 2325 V 969 2307
+a Fk(i)998 2310 y Fs(\))630 2419 y Ft(Insert)30 b(a)h(tab)f(c)m
+(haracter.)150 2586 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
+(\))630 2696 y Ft(Insert)g(y)m(ourself.)150 2862 y Fs(transpose-chars)c
+(\(C-t\))630 2972 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 3081 y(mo)m(ving)j(the)h(cursor)f(forw)m(ard)g(as)g(w)m
+(ell.)55 b(If)35 b(the)h(insertion)e(p)s(oin)m(t)g(is)g(at)j(the)e(end)
+g(of)h(the)630 3191 y(line,)22 b(then)g(this)f(transp)s(oses)g(the)h
+(last)g(t)m(w)m(o)h(c)m(haracters)g(of)f(the)h(line.)36
+b(Negativ)m(e)24 b(argumen)m(ts)630 3301 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)150 3467 y Fs(transpose-words)c(\(M-t\))630
+3577 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(past)h
+(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)h(mo)m(ving)f(p)s(oin)m(t)f(past)
+h(that)630 3687 y(w)m(ord)c(as)h(w)m(ell.)39 b(If)27
+b(the)i(insertion)d(p)s(oin)m(t)i(is)f(at)i(the)g(end)e(of)i(the)f
+(line,)g(this)f(transp)s(oses)h(the)630 3796 y(last)i(t)m(w)m(o)i(w)m
+(ords)e(on)g(the)h(line.)150 3963 y Fs(upcase-word)c(\(M-u\))630
+4073 y Ft(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))f
+(w)m(ord.)45 b(With)31 b(a)h(negativ)m(e)i(argumen)m(t,)f(upp)s(er-)630
+4182 y(case)e(the)g(previous)e(w)m(ord,)h(but)g(do)g(not)h(mo)m(v)m(e)h
+(the)e(cursor.)150 4349 y Fs(downcase-word)d(\(M-l\))630
+4458 y Ft(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))f
+(w)m(ord.)37 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h(lo)m(w)m
+(ercase)630 4568 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i(not)f(mo)m
+(v)m(e)i(the)f(cursor.)150 4735 y Fs(capitalize-word)26
+b(\(M-c\))630 4844 y Ft(Capitalize)20 b(the)i(curren)m(t)f(\(or)g
+(follo)m(wing\))f(w)m(ord.)38 b(With)20 b(a)i(negativ)m(e)g(argumen)m
+(t,)i(capitalize)630 4954 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i
+(not)f(mo)m(v)m(e)i(the)f(cursor.)150 5121 y Fs(overwrite-mode)26
+b(\(\))630 5230 y Ft(T)-8 b(oggle)34 b(o)m(v)m(erwrite)g(mo)s(de.)48
+b(With)32 b(an)h(explicit)e(p)s(ositiv)m(e)h(n)m(umeric)g(argumen)m(t,)
+i(switc)m(hes)630 5340 y(to)22 b(o)m(v)m(erwrite)h(mo)s(de.)37
+b(With)21 b(an)h(explicit)e(non-p)s(ositiv)m(e)g(n)m(umeric)h(argumen)m
+(t,)j(switc)m(hes)d(to)p eop
+%%Page: 16 20
+16 19 bop 150 -116 a Ft(16)2600 b(GNU)31 b(Readline)e(Library)630
+299 y(insert)g(mo)s(de.)41 b(This)29 b(command)i(a\013ects)h(only)d
+Fs(emacs)g Ft(mo)s(de;)i Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m
+(erwrite)630 408 y(di\013eren)m(tly)-8 b(.)40 b(Eac)m(h)31
+b(call)f(to)h Fs(readline\(\))c Ft(starts)k(in)e(insert)g(mo)s(de.)630
+539 y(In)f(o)m(v)m(erwrite)i(mo)s(de,)f(c)m(haracters)i(b)s(ound)c(to)j
+Fs(self-insert)c Ft(replace)j(the)h(text)g(at)g(p)s(oin)m(t)630
+648 y(rather)41 b(than)h(pushing)d(the)j(text)g(to)g(the)g(righ)m(t.)74
+b(Characters)42 b(b)s(ound)d(to)j Fs(backward-)630 758
+y(delete-char)27 b Ft(replace)k(the)f(c)m(haracter)i(b)s(efore)e(p)s
+(oin)m(t)g(with)f(a)h(space.)630 888 y(By)h(default,)e(this)h(command)g
+(is)f(un)m(b)s(ound.)150 1099 y Fh(1.4.4)63 b(Killing)42
+b(And)e(Y)-10 b(anking)150 1339 y Fs(kill-line)28 b(\(C-k\))630
+1449 y Ft(Kill)g(the)i(text)i(from)e(p)s(oin)m(t)f(to)i(the)g(end)e(of)
+i(the)f(line.)150 1599 y Fs(backward-kill-line)25 b(\(C-x)30
+b(Rubout\))630 1709 y Ft(Kill)e(bac)m(kw)m(ard)j(to)g(the)f(b)s
+(eginning)e(of)i(the)h(line.)150 1860 y Fs(unix-line-discard)26
+b(\(C-u\))630 1969 y Ft(Kill)i(bac)m(kw)m(ard)j(from)e(the)i(cursor)f
+(to)h(the)f(b)s(eginning)e(of)j(the)f(curren)m(t)g(line.)150
+2120 y Fs(kill-whole-line)c(\(\))630 2230 y Ft(Kill)34
+b(all)h(c)m(haracters)j(on)f(the)f(curren)m(t)h(line,)f(no)h(matter)g
+(where)f(p)s(oin)m(t)g(is.)58 b(By)36 b(default,)630
+2339 y(this)29 b(is)h(un)m(b)s(ound.)150 2490 y Fs(kill-word)e(\(M-d\))
+630 2600 y Ft(Kill)f(from)i(p)s(oin)m(t)f(to)i(the)g(end)e(of)i(the)f
+(curren)m(t)h(w)m(ord,)f(or)g(if)g(b)s(et)m(w)m(een)h(w)m(ords,)f(to)h
+(the)g(end)630 2709 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+b(ord)31 b(b)s(oundaries)d(are)i(the)h(same)g(as)f Fs(forward-word)p
+Ft(.)150 2860 y Fs(backward-kill-word)25 b(\(M-)1183
+2857 y Fk(h)p 1207 2804 146 4 v 1207 2860 a Fj(DEL)p
+1207 2875 V 1348 2857 a Fk(i)1378 2860 y Fs(\))630 2970
+y Ft(Kill)h(the)j(w)m(ord)g(b)s(ehind)d(p)s(oin)m(t.)39
+b(W)-8 b(ord)29 b(b)s(oundaries)e(are)i(the)g(same)g(as)g
+Fs(backward-word)p Ft(.)150 3120 y Fs(unix-word-rubout)d(\(C-w\))630
+3230 y Ft(Kill)j(the)j(w)m(ord)f(b)s(ehind)e(p)s(oin)m(t,)i(using)f
+(white)h(space)h(as)g(a)g(w)m(ord)f(b)s(oundary)-8 b(.)43
+b(The)31 b(killed)630 3339 y(text)g(is)f(sa)m(v)m(ed)h(on)g(the)f
+(kill-ring.)150 3490 y Fs(unix-filename-rubout)25 b(\(\))630
+3600 y Ft(Kill)34 b(the)i(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t,)j(using)e
+(white)g(space)i(and)f(the)g(slash)f(c)m(haracter)j(as)f(the)630
+3709 y(w)m(ord)30 b(b)s(oundaries.)38 b(The)30 b(killed)e(text)j(is)f
+(sa)m(v)m(ed)h(on)g(the)f(kill-ring.)150 3860 y Fs
+(delete-horizontal-space)24 b(\(\))630 3970 y Ft(Delete)32
+b(all)d(spaces)i(and)e(tabs)i(around)e(p)s(oin)m(t.)40
+b(By)31 b(default,)e(this)h(is)f(un)m(b)s(ound.)150 4121
+y Fs(kill-region)e(\(\))630 4230 y Ft(Kill)h(the)i(text)i(in)d(the)h
+(curren)m(t)h(region.)40 b(By)31 b(default,)e(this)h(command)g(is)f(un)
+m(b)s(ound.)150 4381 y Fs(copy-region-as-kill)c(\(\))630
+4490 y Ft(Cop)m(y)34 b(the)g(text)h(in)e(the)h(region)f(to)i(the)f
+(kill)e(bu\013er,)i(so)g(it)g(can)g(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)e
+(a)m(w)m(a)m(y)-8 b(.)630 4600 y(By)31 b(default,)e(this)h(command)g
+(is)f(un)m(b)s(ound.)150 4751 y Fs(copy-backward-word)c(\(\))630
+4860 y Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(to)j
+(the)e(kill)e(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)e(are)j
+(the)630 4970 y(same)31 b(as)f Fs(backward-word)p Ft(.)38
+b(By)30 b(default,)g(this)f(command)h(is)g(un)m(b)s(ound.)150
+5121 y Fs(copy-forward-word)c(\(\))630 5230 y Ft(Cop)m(y)31
+b(the)g(w)m(ord)g(follo)m(wing)e(p)s(oin)m(t)h(to)i(the)f(kill)e
+(bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)d(are)k(the)630
+5340 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30
+b(default,)g(this)g(command)g(is)f(un)m(b)s(ound.)p eop
+%%Page: 17 21
+17 20 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(17)150 299 y Fs(yank)29 b(\(C-y\))630
+408 y Ft(Y)-8 b(ank)31 b(the)f(top)h(of)g(the)f(kill)e(ring)h(in)m(to)i
+(the)f(bu\013er)g(at)h(p)s(oin)m(t.)150 552 y Fs(yank-pop)d(\(M-y\))630
+661 y Ft(Rotate)36 b(the)f(kill-ring,)e(and)h(y)m(ank)h(the)f(new)g
+(top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i(this)e(if)h(the)h(prior)630
+771 y(command)30 b(is)g Fs(yank)f Ft(or)h Fs(yank-pop)p
+Ft(.)150 971 y Fh(1.4.5)63 b(Sp)s(ecifying)41 b(Numeric)f(Argumen)m(ts)
+150 1207 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 1317 y Ft(Add)d(this)g(digit)f
+(to)j(the)f(argumen)m(t)g(already)g(accum)m(ulating,)g(or)g(start)h(a)f
+(new)f(argumen)m(t.)630 1427 y Fl(M--)j Ft(starts)i(a)g(negativ)m(e)h
+(argumen)m(t.)150 1570 y Fs(universal-argument)25 b(\(\))630
+1680 y Ft(This)f(is)g(another)i(w)m(a)m(y)g(to)h(sp)s(ecify)d(an)h
+(argumen)m(t.)40 b(If)25 b(this)f(command)i(is)e(follo)m(w)m(ed)h(b)m
+(y)h(one)630 1789 y(or)k(more)f(digits,)g(optionally)f(with)g(a)i
+(leading)f(min)m(us)f(sign,)h(those)h(digits)e(de\014ne)h(the)h(ar-)630
+1899 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)f(follo)m(w)m(ed)g(b)
+m(y)h(digits,)g(executing)g Fs(universal-argument)630
+2008 y Ft(again)j(ends)f(the)h(n)m(umeric)e(argumen)m(t,)j(but)e(is)g
+(otherwise)g(ignored.)44 b(As)32 b(a)g(sp)s(ecial)f(case,)630
+2118 y(if)h(this)g(command)g(is)g(immediately)f(follo)m(w)m(ed)i(b)m(y)
+f(a)h(c)m(haracter)i(that)e(is)f(neither)g(a)h(digit)630
+2228 y(or)28 b(min)m(us)e(sign,)i(the)g(argumen)m(t)g(coun)m(t)h(for)e
+(the)i(next)f(command)f(is)g(m)m(ultiplied)e(b)m(y)i(four.)630
+2337 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)g(initially)d(one,)39
+b(so)f(executing)f(this)f(function)g(the)i(\014rst)e(time)630
+2447 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e
+(time)h(mak)m(es)g(the)g(argumen)m(t)g(coun)m(t)h(six-)630
+2556 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)f(this)f(is)g(not)i
+(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 2757 y Fh(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 2993 y Fs(complete)28 b(\()610 2990
+y Fk(h)p 634 2937 148 4 v 634 2993 a Fj(T)-6 b(AB)p 634
+3008 V 778 2990 a Fk(i)808 2993 y Fs(\))630 3102 y Ft(A)m(ttempt)24
+b(to)f(p)s(erform)e(completion)h(on)h(the)g(text)g(b)s(efore)f(p)s(oin)
+m(t.)38 b(The)22 b(actual)h(completion)630 3212 y(p)s(erformed)29
+b(is)g(application-sp)s(eci\014c.)38 b(The)30 b(default)g(is)f
+(\014lename)h(completion.)150 3355 y Fs(possible-completions)25
+b(\(M-?\))630 3465 y Ft(List)30 b(the)g(p)s(ossible)e(completions)i(of)
+g(the)h(text)g(b)s(efore)f(p)s(oin)m(t.)150 3608 y Fs
+(insert-completions)25 b(\(M-*\))630 3718 y Ft(Insert)30
+b(all)f(completions)h(of)h(the)g(text)g(b)s(efore)f(p)s(oin)m(t)g(that)
+h(w)m(ould)e(ha)m(v)m(e)j(b)s(een)e(generated)630 3827
+y(b)m(y)g Fs(possible-completions)p Ft(.)150 3971 y Fs(menu-complete)d
+(\(\))630 4080 y Ft(Similar)21 b(to)j Fs(complete)p Ft(,)f(but)h
+(replaces)f(the)h(w)m(ord)g(to)g(b)s(e)f(completed)h(with)e(a)j(single)
+d(matc)m(h)630 4190 y(from)37 b(the)h(list)f(of)h(p)s(ossible)d
+(completions.)62 b(Rep)s(eated)39 b(execution)f(of)g
+Fs(menu-complete)630 4300 y Ft(steps)i(through)g(the)g(list)f(of)h(p)s
+(ossible)e(completions,)k(inserting)c(eac)m(h)k(matc)m(h)f(in)e(turn.)
+630 4409 y(A)m(t)f(the)f(end)f(of)h(the)g(list)e(of)i(completions,)g
+(the)g(b)s(ell)e(is)h(rung)g(\(sub)5 b(ject)36 b(to)i(the)f(setting)630
+4519 y(of)f Fs(bell-style)p Ft(\))e(and)h(the)h(original)f(text)i(is)e
+(restored.)57 b(An)36 b(argumen)m(t)h(of)f Fi(n)f Ft(mo)m(v)m(es)i
+Fi(n)630 4628 y Ft(p)s(ositions)c(forw)m(ard)h(in)f(the)i(list)f(of)g
+(matc)m(hes;)39 b(a)c(negativ)m(e)h(argumen)m(t)f(ma)m(y)g(b)s(e)f
+(used)g(to)630 4738 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(list.)63 b(This)37 b(command)h(is)f(in)m(tended)g(to)i(b)s(e)f(b)s
+(ound)e(to)630 4845 y Fk(h)p 654 4792 V 654 4848 a Fj(T)-6
+b(AB)p 654 4863 V 798 4845 a Fk(i)828 4848 y Ft(,)30
+b(but)g(is)f(un)m(b)s(ound)f(b)m(y)i(default.)150 4991
+y Fs(delete-char-or-list)25 b(\(\))630 5101 y Ft(Deletes)j(the)f(c)m
+(haracter)h(under)e(the)h(cursor)f(if)g(not)h(at)g(the)g(b)s(eginning)e
+(or)h(end)h(of)g(the)g(line)630 5210 y(\(lik)m(e)i Fs(delete-char)p
+Ft(\).)37 b(If)29 b(at)h(the)f(end)f(of)i(the)f(line,)f(b)s(eha)m(v)m
+(es)i(iden)m(tically)d(to)i Fs(possible-)630 5320 y(completions)p
+Ft(.)38 b(This)28 b(command)i(is)g(un)m(b)s(ound)e(b)m(y)i(default.)p
+eop
+%%Page: 18 22
+18 21 bop 150 -116 a Ft(18)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fh(1.4.7)63 b(Keyb)s(oard)41 b(Macros)150 545 y
+Fs(start-kbd-macro)26 b(\(C-x)j(\(\))630 655 y Ft(Begin)h(sa)m(ving)h
+(the)f(c)m(haracters)i(t)m(yp)s(ed)e(in)m(to)g(the)h(curren)m(t)f(k)m
+(eyb)s(oard)g(macro.)150 818 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630
+927 y Ft(Stop)e(sa)m(ving)g(the)h(c)m(haracters)g(t)m(yp)s(ed)f(in)m
+(to)h(the)f(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i
+(the)630 1037 y(de\014nition.)150 1200 y Fs(call-last-kbd-macro)c
+(\(C-x)k(e\))630 1310 y Ft(Re-execute)37 b(the)e(last)g(k)m(eyb)s(oard)
+g(macro)h(de\014ned,)f(b)m(y)h(making)e(the)h(c)m(haracters)i(in)d(the)
+630 1419 y(macro)d(app)s(ear)f(as)g(if)g(t)m(yp)s(ed)g(at)h(the)f(k)m
+(eyb)s(oard.)150 1651 y Fh(1.4.8)63 b(Some)40 b(Miscellaneous)j
+(Commands)150 1898 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630
+2007 y Ft(Read)22 b(in)f(the)h(con)m(ten)m(ts)h(of)f(the)g
+Fi(inputrc)k Ft(\014le,)d(and)e(incorp)s(orate)g(an)m(y)i(bindings)18
+b(or)k(v)-5 b(ariable)630 2117 y(assignmen)m(ts)30 b(found)f(there.)150
+2280 y Fs(abort)g(\(C-g\))630 2390 y Ft(Ab)s(ort)d(the)h(curren)m(t)f
+(editing)f(command)h(and)g(ring)g(the)g(terminal's)f(b)s(ell)g(\(sub)5
+b(ject)26 b(to)i(the)630 2499 y(setting)i(of)h Fs(bell-style)p
+Ft(\).)150 2663 y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p
+Fl(x)p Fs(,)g(...)o(\))630 2772 y Ft(If)e(the)h(meta\014ed)g(c)m
+(haracter)h Fi(x)34 b Ft(is)27 b(lo)m(w)m(ercase,)i(run)e(the)g
+(command)h(that)g(is)f(b)s(ound)e(to)k(the)630 2882 y(corresp)s(onding)
+f(upp)s(ercase)i(c)m(haracter.)150 3045 y Fs(prefix-meta)d(\()753
+3042 y Fk(h)p 777 2989 139 4 v 777 3045 a Fj(ESC)p 777
+3060 V 911 3042 a Fk(i)941 3045 y Fs(\))630 3155 y Ft(Metafy)39
+b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62 b(This)36
+b(is)g(for)i(k)m(eyb)s(oards)f(without)f(a)i(meta)g(k)m(ey)-8
+b(.)630 3264 y(T)m(yping)29 b(`)968 3261 y Fk(h)p 993
+3208 V 993 3264 a Fj(ESC)p 993 3280 V 1127 3261 a Fk(i)1187
+3264 y Fs(f)p Ft(')h(is)f(equiv)-5 b(alen)m(t)30 b(to)h(t)m(yping)f
+Fl(M-f)p Ft(.)150 3428 y Fs(undo)f(\(C-_)g(or)h(C-x)g(C-u\))630
+3537 y Ft(Incremen)m(tal)g(undo,)g(separately)g(remem)m(b)s(ered)g(for)
+g(eac)m(h)i(line.)150 3700 y Fs(revert-line)27 b(\(M-r\))630
+3810 y Ft(Undo)33 b(all)f(c)m(hanges)i(made)f(to)h(this)e(line.)47
+b(This)31 b(is)h(lik)m(e)h(executing)g(the)g Fs(undo)f
+Ft(command)630 3920 y(enough)e(times)g(to)h(get)h(bac)m(k)f(to)g(the)f
+(b)s(eginning.)150 4083 y Fs(tilde-expand)d(\(M-~\))630
+4192 y Ft(P)m(erform)j(tilde)f(expansion)h(on)g(the)g(curren)m(t)h(w)m
+(ord.)150 4356 y Fs(set-mark)d(\(C-@\))630 4465 y Ft(Set)33
+b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)47 b(If)32 b(a)h(n)m(umeric)f
+(argumen)m(t)h(is)f(supplied,)e(the)j(mark)g(is)e(set)630
+4575 y(to)g(that)g(p)s(osition.)150 4738 y Fs(exchange-point-and-mark)
+24 b(\(C-x)29 b(C-x\))630 4848 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)f(with)
+g(the)h(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)g(is)g
+(set)i(to)f(the)h(sa)m(v)m(ed)630 4957 y(p)s(osition,)d(and)g(the)i
+(old)f(cursor)f(p)s(osition)g(is)g(sa)m(v)m(ed)j(as)e(the)h(mark.)150
+5121 y Fs(character-search)26 b(\(C-]\))630 5230 y Ft(A)f(c)m(haracter)
+h(is)e(read)h(and)f(p)s(oin)m(t)g(is)g(mo)m(v)m(ed)i(to)g(the)f(next)g
+(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 5340 y(A)30
+b(negativ)m(e)i(coun)m(t)f(searc)m(hes)g(for)f(previous)f(o)s
+(ccurrences.)p eop
+%%Page: 19 23
+19 22 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(19)150 299 y Fs(character-search-backwar)o(d)24
+b(\(M-C-]\))630 408 y Ft(A)45 b(c)m(haracter)h(is)e(read)h(and)f(p)s
+(oin)m(t)g(is)g(mo)m(v)m(ed)i(to)f(the)g(previous)e(o)s(ccurrence)i(of)
+g(that)630 518 y(c)m(haracter.)d(A)31 b(negativ)m(e)g(coun)m(t)g(searc)
+m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150 677
+y Fs(insert-comment)d(\(M-#\))630 787 y Ft(Without)35
+b(a)h(n)m(umeric)f(argumen)m(t,)i(the)f(v)-5 b(alue)35
+b(of)h(the)g Fs(comment-begin)c Ft(v)-5 b(ariable)34
+b(is)h(in-)630 897 y(serted)d(at)g(the)g(b)s(eginning)d(of)j(the)f
+(curren)m(t)h(line.)43 b(If)31 b(a)h(n)m(umeric)e(argumen)m(t)i(is)f
+(supplied,)630 1006 y(this)k(command)i(acts)g(as)g(a)g(toggle:)54
+b(if)36 b(the)g(c)m(haracters)i(at)g(the)e(b)s(eginning)e(of)j(the)g
+(line)630 1116 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
+b(alue)30 b(of)g Fs(comment-begin)p Ft(,)e(the)i(v)-5
+b(alue)30 b(is)g(inserted,)g(otherwise)g(the)630 1225
+y(c)m(haracters)42 b(in)c Fs(comment-begin)f Ft(are)j(deleted)g(from)g
+(the)g(b)s(eginning)e(of)i(the)g(line.)69 b(In)630 1335
+y(either)30 b(case,)i(the)e(line)f(is)g(accepted)j(as)f(if)e(a)i
+(newline)d(had)i(b)s(een)f(t)m(yp)s(ed.)150 1494 y Fs(dump-functions)d
+(\(\))630 1604 y Ft(Prin)m(t)f(all)h(of)g(the)h(functions)e(and)h
+(their)f(k)m(ey)i(bindings)c(to)28 b(the)e(Readline)f(output)h(stream.)
+630 1714 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(supplied,)e(the)
+j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a)m(y)g(that)630
+1823 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h Fi(inputrc)j
+Ft(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d(b)m(y)k
+(default.)150 1983 y Fs(dump-variables)26 b(\(\))630
+2092 y Ft(Prin)m(t)20 b(all)g(of)i(the)f(settable)h(v)-5
+b(ariables)20 b(and)h(their)f(v)-5 b(alues)21 b(to)h(the)f(Readline)f
+(output)h(stream.)630 2202 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)
+f(supplied,)e(the)j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a)
+m(y)g(that)630 2311 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h
+Fi(inputrc)j Ft(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d
+(b)m(y)k(default.)150 2471 y Fs(dump-macros)c(\(\))630
+2580 y Ft(Prin)m(t)33 b(all)f(of)i(the)g(Readline)e(k)m(ey)j(sequences)
+f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)f(they)630
+2690 y(output.)53 b(If)35 b(a)g(n)m(umeric)e(argumen)m(t)j(is)d
+(supplied,)g(the)i(output)g(is)e(formatted)j(in)d(suc)m(h)i(a)630
+2800 y(w)m(a)m(y)c(that)g(it)e(can)h(b)s(e)g(made)g(part)f(of)i(an)e
+Fi(inputrc)34 b Ft(\014le.)40 b(This)28 b(command)i(is)f(un)m(b)s(ound)
+e(b)m(y)630 2909 y(default.)150 3068 y Fs(emacs-editing-mode)e(\(C-e\))
+630 3178 y Ft(When)30 b(in)f Fs(vi)h Ft(command)g(mo)s(de,)g(this)g
+(causes)g(a)h(switc)m(h)f(to)h Fs(emacs)e Ft(editing)g(mo)s(de.)150
+3337 y Fs(vi-editing-mode)d(\(M-C-j\))630 3447 y Ft(When)k(in)f
+Fs(emacs)g Ft(editing)g(mo)s(de,)h(this)g(causes)g(a)h(switc)m(h)f(to)h
+Fs(vi)f Ft(editing)f(mo)s(de.)150 3704 y Fr(1.5)68 b(Readline)47
+b(vi)e(Mo)t(de)275 3949 y Ft(While)22 b(the)i(Readline)e(library)f(do)s
+(es)j(not)g(ha)m(v)m(e)g(a)h(full)c(set)j(of)g Fs(vi)f
+Ft(editing)f(functions,)i(it)f(do)s(es)h(con)m(tain)150
+4058 y(enough)34 b(to)h(allo)m(w)e(simple)f(editing)h(of)h(the)g(line.)
+50 b(The)34 b(Readline)e Fs(vi)i Ft(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f
+(sp)s(eci\014ed)e(in)150 4168 y(the)f Fm(posix)e Ft(1003.2)k(standard.)
+275 4302 y(In)28 b(order)g(to)i(switc)m(h)f(in)m(teractiv)m(ely)g(b)s
+(et)m(w)m(een)g Fs(emacs)f Ft(and)g Fs(vi)h Ft(editing)e(mo)s(des,)i
+(use)g(the)g(command)150 4412 y Fl(M-C-j)36 b Ft(\(b)s(ound)h(to)h
+(emacs-editing-mo)s(de)g(when)f(in)f Fs(vi)i Ft(mo)s(de)f(and)g(to)i
+(vi-editing-mo)s(de)d(in)g Fs(emacs)150 4521 y Ft(mo)s(de\).)41
+b(The)30 b(Readline)f(default)g(is)g Fs(emacs)g Ft(mo)s(de.)275
+4656 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)d(in)h Fs(vi)g
+Ft(mo)s(de,)h(y)m(ou)h(are)f(already)g(placed)f(in)g(`insertion')f(mo)s
+(de,)i(as)h(if)e(y)m(ou)150 4765 y(had)d(t)m(yp)s(ed)g(an)g(`)p
+Fs(i)p Ft('.)39 b(Pressing)1215 4762 y Fk(h)p 1239 4709
+139 4 v 1239 4765 a Fj(ESC)p 1239 4781 V 1373 4762 a
+Fk(i)1429 4765 y Ft(switc)m(hes)26 b(y)m(ou)h(in)m(to)f(`command')g(mo)
+s(de,)h(where)f(y)m(ou)h(can)f(edit)g(the)150 4875 y(text)35
+b(of)f(the)g(line)e(with)g(the)i(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)f(history)f(lines)g(with)150
+4985 y(`)p Fs(k)p Ft(')f(and)e(subsequen)m(t)h(lines)f(with)g(`)p
+Fs(j)p Ft(',)h(and)g(so)h(forth.)p eop
+%%Page: 20 24
+20 23 bop 150 -116 a Ft(20)2600 b(GNU)31 b(Readline)e(Library)p
+eop
+%%Page: 21 25
+21 24 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(21)150 299 y Fp(2)80 b(Programming)53
+b(with)h(GNU)g(Readline)275 527 y Ft(This)32 b(c)m(hapter)i(describ)s
+(es)e(the)i(in)m(terface)h(b)s(et)m(w)m(een)f(the)g Fm(gnu)g
+Ft(Readline)f(Library)f(and)h(other)h(pro-)150 637 y(grams.)k(If)22
+b(y)m(ou)h(are)g(a)g(programmer,)h(and)d(y)m(ou)i(wish)e(to)i(include)d
+(the)j(features)g(found)e(in)g Fm(gnu)h Ft(Readline)150
+746 y(suc)m(h)g(as)h(completion,)h(line)d(editing,)i(and)f(in)m
+(teractiv)m(e)h(history)f(manipulation)e(in)h(y)m(our)h(o)m(wn)h
+(programs,)150 856 y(this)29 b(section)i(is)e(for)h(y)m(ou.)150
+1110 y Fr(2.1)68 b(Basic)45 b(Beha)l(vior)275 1353 y
+Ft(Man)m(y)31 b(programs)f(pro)m(vide)g(a)h(command)f(line)f(in)m
+(terface,)i(suc)m(h)g(as)f Fs(mail)p Ft(,)g Fs(ftp)p
+Ft(,)g(and)g Fs(sh)p Ft(.)41 b(F)-8 b(or)31 b(suc)m(h)150
+1462 y(programs,)e(the)f(default)g(b)s(eha)m(viour)f(of)i(Readline)e
+(is)h(su\016cien)m(t.)39 b(This)27 b(section)i(describ)s(es)d(ho)m(w)j
+(to)g(use)150 1572 y(Readline)k(in)g(the)i(simplest)d(w)m(a)m(y)j(p)s
+(ossible,)f(p)s(erhaps)e(to)j(replace)g(calls)e(in)g(y)m(our)i(co)s(de)
+f(to)h Fs(gets\(\))e Ft(or)150 1682 y Fs(fgets\(\))p
+Ft(.)275 1815 y(The)f(function)f Fs(readline\(\))f Ft(prin)m(ts)h(a)h
+(prompt)g Fi(prompt)i Ft(and)e(then)g(reads)g(and)g(returns)f(a)i
+(single)150 1924 y(line)e(of)i(text)h(from)e(the)h(user.)47
+b(If)32 b Fi(prompt)i Ft(is)d Fs(NULL)h Ft(or)h(the)f(empt)m(y)i
+(string,)e(no)h(prompt)e(is)h(displa)m(y)m(ed.)150 2034
+y(The)37 b(line)e Fs(readline)g Ft(returns)h(is)g(allo)s(cated)h(with)f
+Fs(malloc\(\))p Ft(;)i(the)f(caller)g(should)e Fs(free\(\))g
+Ft(the)j(line)150 2144 y(when)29 b(it)h(has)g(\014nished)e(with)h(it.)
+41 b(The)29 b(declaration)h(for)h Fs(readline)d Ft(in)h(ANSI)h(C)g(is)
+390 2277 y Fs(char)47 b(*readline)e(\(const)h(char)h(*)p
+Fl(prompt)11 b Fs(\);)150 2410 y Ft(So,)31 b(one)f(migh)m(t)g(sa)m(y)
+390 2544 y Fs(char)47 b(*line)f(=)h(readline)f(\("Enter)g(a)h(line:)g
+("\);)150 2677 y Ft(in)22 b(order)g(to)h(read)g(a)g(line)f(of)h(text)h
+(from)e(the)h(user.)38 b(The)22 b(line)f(returned)h(has)g(the)h
+(\014nal)f(newline)f(remo)m(v)m(ed,)150 2787 y(so)31
+b(only)e(the)i(text)g(remains.)275 2920 y(If)40 b Fs(readline)e
+Ft(encoun)m(ters)j(an)f Fs(EOF)f Ft(while)g(reading)g(the)i(line,)h
+(and)d(the)i(line)e(is)g(empt)m(y)i(at)g(that)150 3029
+y(p)s(oin)m(t,)29 b(then)g Fs(\(char)g(*\)NULL)e Ft(is)i(returned.)39
+b(Otherwise,)29 b(the)g(line)f(is)g(ended)h(just)g(as)g(if)g(a)g
+(newline)f(had)150 3139 y(b)s(een)i(t)m(yp)s(ed.)275
+3272 y(If)25 b(y)m(ou)h(w)m(an)m(t)h(the)f(user)f(to)i(b)s(e)e(able)g
+(to)i(get)g(at)g(the)f(line)e(later,)j(\(with)2651 3269
+y Fk(h)p 2675 3216 114 4 v 2675 3272 a Fj(C-p)p 2675
+3288 V 2784 3269 a Fk(i)2840 3272 y Ft(for)f(example\),)h(y)m(ou)f(m)m
+(ust)150 3382 y(call)k Fs(add_history\(\))c Ft(to)32
+b(sa)m(v)m(e)f(the)g(line)e(a)m(w)m(a)m(y)j(in)d(a)i
+Fi(history)37 b Ft(list)29 b(of)i(suc)m(h)f(lines.)390
+3515 y Fs(add_history)45 b(\(line\);)150 3649 y Ft(F)-8
+b(or)31 b(full)d(details)i(on)g(the)g(GNU)h(History)f(Library)-8
+b(,)30 b(see)h(the)f(asso)s(ciated)h(man)m(ual.)275 3782
+y(It)g(is)f(preferable)g(to)j(a)m(v)m(oid)e(sa)m(ving)h(empt)m(y)f
+(lines)f(on)h(the)h(history)e(list,)g(since)h(users)f(rarely)h(ha)m(v)m
+(e)i(a)150 3892 y(burning)27 b(need)i(to)i(reuse)e(a)h(blank)f(line.)38
+b(Here)31 b(is)d(a)i(function)f(whic)m(h)f(usefully)f(replaces)j(the)g
+(standard)150 4001 y Fs(gets\(\))f Ft(library)f(function,)h(and)h(has)g
+(the)g(adv)-5 b(an)m(tage)33 b(of)d(no)g(static)h(bu\013er)f(to)h(o)m
+(v)m(er\015o)m(w:)390 4134 y Fs(/*)47 b(A)h(static)e(variable)f(for)i
+(holding)f(the)h(line.)f(*/)390 4244 y(static)g(char)h(*line_read)e(=)i
+(\(char)g(*\)NULL;)390 4463 y(/*)g(Read)g(a)g(string,)f(and)h(return)f
+(a)i(pointer)d(to)j(it.)533 4573 y(Returns)e(NULL)h(on)g(EOF.)f(*/)390
+4682 y(char)h(*)390 4792 y(rl_gets)f(\(\))390 4902 y({)485
+5011 y(/*)i(If)f(the)g(buffer)f(has)h(already)f(been)g(allocated,)629
+5121 y(return)g(the)h(memory)f(to)h(the)g(free)f(pool.)h(*/)485
+5230 y(if)h(\(line_read\))581 5340 y({)p eop
+%%Page: 22 26
+22 25 bop 150 -116 a Ft(22)2600 b(GNU)31 b(Readline)e(Library)676
+299 y Fs(free)47 b(\(line_read\);)676 408 y(line_read)f(=)h(\(char)f
+(*\)NULL;)581 518 y(})485 737 y(/*)i(Get)f(a)g(line)g(from)f(the)h
+(user.)g(*/)485 847 y(line_read)f(=)h(readline)f(\(""\);)485
+1066 y(/*)i(If)f(the)g(line)f(has)h(any)g(text)g(in)g(it,)629
+1176 y(save)f(it)h(on)h(the)f(history.)e(*/)485 1285
+y(if)j(\(line_read)d(&&)i(*line_read\))581 1395 y(add_history)e
+(\(line_read\);)485 1614 y(return)i(\(line_read\);)390
+1724 y(})275 1854 y Ft(This)21 b(function)i(giv)m(es)h(the)g(user)f
+(the)h(default)f(b)s(eha)m(viour)f(of)2338 1851 y Fk(h)p
+2362 1798 148 4 v 2362 1854 a Fj(T)-6 b(AB)p 2362 1870
+V 2506 1851 a Fk(i)2560 1854 y Ft(completion:)36 b(completion)23
+b(on)h(\014le)150 1964 y(names.)41 b(If)31 b(y)m(ou)g(do)f(not)h(w)m
+(an)m(t)g(Readline)f(to)h(complete)g(on)g(\014lenames,)f(y)m(ou)h(can)f
+(c)m(hange)i(the)f(binding)150 2074 y(of)g(the)410 2071
+y Fk(h)p 434 2018 V 434 2074 a Fj(T)-6 b(AB)p 434 2089
+V 578 2071 a Fk(i)638 2074 y Ft(k)m(ey)31 b(with)e Fs(rl_bind_key\(\))p
+Ft(.)390 2205 y Fs(int)47 b(rl_bind_key)e(\(int)h Fl(key)p
+Fs(,)h(rl_command_func_t)c(*)p Fl(function)11 b Fs(\);)275
+2335 y(rl_bind_key\(\))29 b Ft(tak)m(es)35 b(t)m(w)m(o)g(argumen)m(ts:)
+47 b Fi(k)m(ey)c Ft(is)32 b(the)i(c)m(haracter)h(that)f(y)m(ou)g(w)m
+(an)m(t)g(to)g(bind,)f(and)150 2445 y Fi(function)h Ft(is)h(the)h
+(address)f(of)h(the)g(function)f(to)h(call)f(when)g Fi(k)m(ey)44
+b Ft(is)35 b(pressed.)56 b(Binding)3257 2442 y Fk(h)p
+3281 2389 V 3281 2445 a Fj(T)-6 b(AB)p 3281 2460 V 3425
+2442 a Fk(i)3490 2445 y Ft(to)37 b Fs(rl_)150 2555 y(insert\(\))c
+Ft(mak)m(es)845 2552 y Fk(h)p 869 2499 V 869 2555 a Fj(T)-6
+b(AB)p 869 2570 V 1013 2552 a Fk(i)1077 2555 y Ft(insert)34
+b(itself.)54 b Fs(rl_bind_key\(\))32 b Ft(returns)h(non-zero)j(if)e
+Fi(k)m(ey)44 b Ft(is)34 b(not)h(a)h(v)-5 b(alid)150 2664
+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 2795 y(Th)m(us,)g(to)i(disable)e(the)h(default)1407
+2792 y Fk(h)p 1431 2739 V 1431 2795 a Fj(T)-6 b(AB)p
+1431 2810 V 1575 2792 a Fk(i)1635 2795 y Ft(b)s(eha)m(vior,)30
+b(the)g(follo)m(wing)f(su\016ces:)390 2926 y Fs(rl_bind_key)45
+b(\('\\t',)h(rl_insert\);)275 3057 y Ft(This)24 b(co)s(de)j(should)d(b)
+s(e)i(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)f(write)g(a)h(func-)150 3166 y(tion)32
+b(called)g Fs(initialize_readline\(\))27 b Ft(whic)m(h)32
+b(p)s(erforms)f(this)g(and)i(other)g(desired)e(initializations,)150
+3276 y(suc)m(h)f(as)h(installing)c(custom)k(completers)f(\(see)h
+(Section)g(2.6)g([Custom)f(Completers],)g(page)h(41\).)150
+3523 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)275 3763
+y Ft(Readline)23 b(pro)m(vides)g(man)m(y)i(functions)e(for)h
+(manipulating)d(the)k(text)g(of)g(the)g(line,)f(but)g(it)g(isn't)f(p)s
+(ossi-)150 3873 y(ble)i(to)i(an)m(ticipate)g(the)g(needs)f(of)g(all)f
+(programs.)39 b(This)25 b(section)h(describ)s(es)f(the)h(v)-5
+b(arious)26 b(functions)f(and)150 3982 y(v)-5 b(ariables)25
+b(de\014ned)g(within)e(the)j(Readline)f(library)f(whic)m(h)h(allo)m(w)g
+(a)i(user)e(program)h(to)h(add)e(customized)150 4092
+y(functionalit)m(y)k(to)i(Readline.)275 4223 y(Before)37
+b(declaring)e(an)m(y)i(functions)e(that)i(customize)g(Readline's)e(b)s
+(eha)m(vior,)i(or)g(using)e(an)m(y)i(func-)150 4332 y(tionalit)m(y)45
+b(Readline)f(pro)m(vides)g(in)g(other)i(co)s(de,)k(an)45
+b(application)f(writer)g(should)g(include)f(the)j(\014le)150
+4442 y Fs(<readline/readline.h>)28 b Ft(in)k(an)m(y)i(\014le)e(that)i
+(uses)f(Readline's)f(features.)51 b(Since)32 b(some)i(of)g(the)f
+(de\014-)150 4552 y(nitions)c(in)h Fs(readline.h)e Ft(use)j(the)h
+Fs(stdio)d Ft(library)-8 b(,)30 b(the)h(\014le)g Fs(<stdio.h>)d
+Ft(should)h(b)s(e)i(included)d(b)s(efore)150 4661 y Fs(readline.h)p
+Ft(.)275 4792 y Fs(readline.h)f Ft(de\014nes)j(a)h(C)f(prepro)s(cessor)
+g(v)-5 b(ariable)29 b(that)i(should)e(b)s(e)h(treated)h(as)g(an)g(in)m
+(teger,)g Fs(RL_)150 4902 y(READLINE_VERSION)p Ft(,)20
+b(whic)m(h)g(ma)m(y)j(b)s(e)f(used)f(to)i(conditionally)d(compile)h
+(application)f(co)s(de)i(dep)s(ending)150 5011 y(on)35
+b(the)g(installed)e(Readline)g(v)m(ersion.)55 b(The)34
+b(v)-5 b(alue)34 b(is)h(a)g(hexadecimal)f(enco)s(ding)g(of)h(the)h(ma)5
+b(jor)35 b(and)150 5121 y(minor)e(v)m(ersion)g(n)m(um)m(b)s(ers)g(of)h
+(the)h(library)-8 b(,)33 b(of)h(the)h(form)e(0x)p Fi(MMmm)p
+Ft(.)53 b Fi(MM)45 b Ft(is)33 b(the)h(t)m(w)m(o-digit)h(ma)5
+b(jor)150 5230 y(v)m(ersion)28 b(n)m(um)m(b)s(er;)h Fi(mm)f
+Ft(is)g(the)h(t)m(w)m(o-digit)h(minor)d(v)m(ersion)i(n)m(um)m(b)s(er.)
+38 b(F)-8 b(or)30 b(Readline)e(4.2,)i(for)f(example,)150
+5340 y(the)i(v)-5 b(alue)29 b(of)i Fs(RL_READLINE_VERSION)25
+b Ft(w)m(ould)k(b)s(e)h Fs(0x0402)p Ft(.)p eop
+%%Page: 23 27
+23 26 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(23)150 299 y Fh(2.2.1)63
+b(Readline)40 b(T)m(yp)s(edefs)275 540 y Ft(F)-8 b(or)31
+b(readabilt)m(y)-8 b(,)30 b(w)m(e)h(declare)f(a)h(n)m(um)m(b)s(er)e(of)
+h(new)g(ob)5 b(ject)32 b(t)m(yp)s(es,)e(all)f(p)s(oin)m(ters)h(to)h
+(functions.)275 672 y(The)k(reason)h(for)f(declaring)f(these)j(new)e(t)
+m(yp)s(es)g(is)g(to)i(mak)m(e)f(it)f(easier)h(to)g(write)f(co)s(de)h
+(describing)150 782 y(p)s(oin)m(ters)29 b(to)i(C)f(functions)f(with)g
+(appropriately)g(protot)m(yp)s(ed)h(argumen)m(ts)h(and)f(return)f(v)-5
+b(alues.)275 913 y(F)d(or)37 b(instance,)i(sa)m(y)e(w)m(e)g(w)m(an)m(t)
+h(to)g(declare)e(a)i(v)-5 b(ariable)35 b Fi(func)42 b
+Ft(as)37 b(a)g(p)s(oin)m(ter)f(to)h(a)h(function)d(whic)m(h)150
+1023 y(tak)m(es)27 b(t)m(w)m(o)g Fs(int)e Ft(argumen)m(ts)h(and)f
+(returns)f(an)i Fs(int)f Ft(\(this)g(is)f(the)i(t)m(yp)s(e)g(of)g(all)f
+(of)g(the)h(Readline)f(bindable)150 1132 y(functions\).)40
+b(Instead)30 b(of)g(the)h(classic)f(C)g(declaration)275
+1264 y Fs(int)f(\(*func\)\(\);)150 1396 y Ft(or)h(the)h(ANSI-C)f(st)m
+(yle)h(declaration)275 1528 y Fs(int)e(\(*func\)\(int,)e(int\);)150
+1659 y Ft(w)m(e)k(ma)m(y)g(write)275 1791 y Fs(rl_command_func_t)25
+b(*func;)275 1923 y Ft(The)k(full)f(list)i(of)g(function)f(p)s(oin)m
+(ter)g(t)m(yp)s(es)i(a)m(v)-5 b(ailable)30 b(is)150 2077
+y Fs(typedef)e(int)i(rl_command_func_t)c(\(int,)i(int\);)150
+2186 y(typedef)g(char)i(*rl_compentry_func_t)24 b(\(const)29
+b(char)g(*,)h(int\);)150 2296 y(typedef)e(char)i
+(**rl_completion_func_t)24 b(\(const)29 b(char)g(*,)h(int,)f(int\);)150
+2405 y(typedef)f(char)i(*rl_quote_func_t)c(\(char)i(*,)i(int,)f(char)h
+(*\);)150 2515 y(typedef)e(char)i(*rl_dequote_func_t)25
+b(\(char)k(*,)h(int\);)150 2625 y(typedef)e(int)i(rl_compignore_func_t)
+25 b(\(char)k(**\);)150 2734 y(typedef)f(void)i(rl_compdisp_func_t)25
+b(\(char)k(**,)g(int,)h(int\);)150 2844 y(typedef)e(int)i
+(rl_hook_func_t)c(\(void\);)150 2953 y(typedef)i(int)i(rl_getc_func_t)c
+(\(FILE)j(*\);)150 3063 y(typedef)f(int)i(rl_linebuf_func_t)c(\(char)i
+(*,)i(int\);)150 3173 y(typedef)e(int)i(rl_intfunc_t)d(\(int\);)150
+3282 y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)150
+3392 y(typedef)h(int)i(rl_icpfunc_t)d(\(char)i(*\);)150
+3501 y(typedef)f(int)i(rl_icppfunc_t)d(\(char)i(**\);)150
+3611 y(typedef)f(void)i(rl_voidfunc_t)c(\(void\);)150
+3720 y(typedef)i(void)i(rl_vintfunc_t)c(\(int\);)150
+3830 y(typedef)i(void)i(rl_vcpfunc_t)d(\(char)i(*\);)150
+3940 y(typedef)f(void)i(rl_vcppfunc_t)c(\(char)j(**\);)150
+4133 y Fh(2.2.2)63 b(W)-10 b(riting)41 b(a)f(New)h(F)-10
+b(unction)275 4375 y Ft(In)31 b(order)h(to)g(write)g(new)f(functions)g
+(for)h(Readline,)g(y)m(ou)g(need)g(to)h(kno)m(w)f(the)g(calling)f(con)m
+(v)m(en)m(tions)150 4484 y(for)37 b(k)m(eyb)s(oard-in)m(v)m(ok)m(ed)g
+(functions,)g(and)f(the)h(names)g(of)g(the)g(v)-5 b(ariables)36
+b(that)h(describ)s(e)e(the)i(curren)m(t)150 4594 y(state)32
+b(of)e(the)h(line)e(read)h(so)g(far.)275 4726 y(The)f(calling)g
+(sequence)i(for)f(a)h(command)f Fs(foo)g Ft(lo)s(oks)f(lik)m(e)390
+4857 y Fs(int)47 b(foo)g(\(int)f(count,)h(int)f(key\))150
+4989 y Ft(where)35 b Fi(coun)m(t)k Ft(is)c(the)h(n)m(umeric)f(argumen)m
+(t)h(\(or)g(1)g(if)f(defaulted\))h(and)f Fi(k)m(ey)44
+b Ft(is)35 b(the)h(k)m(ey)h(that)f(in)m(v)m(ok)m(ed)150
+5099 y(this)29 b(function.)275 5230 y(It)23 b(is)f(completely)g(up)g
+(to)i(the)f(function)f(as)h(to)h(what)f(should)e(b)s(e)i(done)f(with)g
+(the)h(n)m(umeric)f(argumen)m(t.)150 5340 y(Some)40 b(functions)f(use)g
+(it)h(as)g(a)g(rep)s(eat)h(coun)m(t,)i(some)d(as)h(a)f(\015ag,)j(and)c
+(others)h(to)h(c)m(ho)s(ose)g(alternate)p eop
+%%Page: 24 28
+24 27 bop 150 -116 a Ft(24)2600 b(GNU)31 b(Readline)e(Library)150
+299 y(b)s(eha)m(vior)42 b(\(refreshing)g(the)i(curren)m(t)f(line)f(as)h
+(opp)s(osed)g(to)h(refreshing)d(the)j(screen,)j(for)c(example\).)150
+408 y(Some)33 b(c)m(ho)s(ose)h(to)g(ignore)f(it.)49 b(In)32
+b(general,)i(if)f(a)g(function)f(uses)h(the)g(n)m(umeric)f(argumen)m(t)
+i(as)f(a)h(rep)s(eat)150 518 y(coun)m(t,)29 b(it)f(should)e(b)s(e)h
+(able)g(to)i(do)f(something)f(useful)f(with)h(b)s(oth)g(negativ)m(e)i
+(and)e(p)s(ositiv)m(e)g(argumen)m(ts.)150 628 y(A)m(t)k(the)g(v)m(ery)g
+(least,)g(it)e(should)g(b)s(e)h(a)m(w)m(are)h(that)g(it)f(can)h(b)s(e)f
+(passed)g(a)g(negativ)m(e)i(argumen)m(t.)275 762 y(A)27
+b(command)h(function)e(should)g(return)h(0)h(if)f(its)g(action)h
+(completes)g(successfully)-8 b(,)27 b(and)g(a)h(non-zero)150
+872 y(v)-5 b(alue)30 b(if)f(some)i(error)f(o)s(ccurs.)150
+1130 y Fr(2.3)68 b(Readline)47 b(V)-11 b(ariables)275
+1375 y Ft(These)30 b(v)-5 b(ariables)29 b(are)h(a)m(v)-5
+b(ailable)30 b(to)h(function)e(writers.)3371 1559 y([V)-8
+b(ariable])-3600 b Fg(char)39 b(*)g Ff(rl)p 575 1559
+35 5 v 50 w(line)p 806 1559 V 50 w(bu\013er)390 1669
+y Ft(This)29 b(is)i(the)g(line)e(gathered)j(so)f(far.)43
+b(Y)-8 b(ou)32 b(are)f(w)m(elcome)h(to)g(mo)s(dify)e(the)h(con)m(ten)m
+(ts)i(of)e(the)g(line,)390 1779 y(but)k(see)h(Section)f(2.4.5)i([Allo)m
+(wing)e(Undoing],)h(page)g(32.)57 b(The)35 b(function)f
+Fs(rl_extend_line_)390 1888 y(buffer)29 b Ft(is)g(a)m(v)-5
+b(ailable)30 b(to)h(increase)f(the)h(memory)f(allo)s(cated)g(to)h
+Fs(rl_line_buffer)p Ft(.)3371 2073 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 2073 V 51 w(p)s(oin)m(t)390
+2183 y Ft(The)30 b(o\013set)h(of)g(the)f(curren)m(t)h(cursor)e(p)s
+(osition)g(in)g Fs(rl_line_buffer)d Ft(\(the)31 b Fn(p)-5
+b(oint)9 b Ft(\).)3371 2368 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 2368 V 51 w(end)390 2477 y
+Ft(The)27 b(n)m(um)m(b)s(er)g(of)h(c)m(haracters)h(presen)m(t)f(in)f
+Fs(rl_line_buffer)p Ft(.)36 b(When)27 b Fs(rl_point)f
+Ft(is)h(at)i(the)f(end)390 2587 y(of)j(the)f(line,)f
+Fs(rl_point)f Ft(and)i Fs(rl_end)f Ft(are)h(equal.)3371
+2772 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+2772 V 51 w(mark)390 2881 y Ft(The)d Fi(mark)42 b Ft(\(sa)m(v)m(ed)d(p)
+s(osition\))c(in)h(the)h(curren)m(t)f(line.)59 b(If)36
+b(set,)k(the)d(mark)f(and)h(p)s(oin)m(t)e(de\014ne)i(a)390
+2991 y Fn(r)-5 b(e)g(gion)p Ft(.)3371 3176 y([V)d(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 3176 V 51 w(done)390 3285 y
+Ft(Setting)21 b(this)g(to)h(a)g(non-zero)g(v)-5 b(alue)22
+b(causes)g(Readline)e(to)i(return)f(the)h(curren)m(t)f(line)f
+(immediately)-8 b(.)3371 3470 y([V)g(ariable])-3600 b
+Fg(int)39 b Ff(rl)p 432 3470 V 51 w(n)m(um)p 703 3470
+V 50 w(c)m(hars)p 1013 3470 V 49 w(to)p 1164 3470 V 51
+w(read)390 3580 y Ft(Setting)33 b(this)e(to)j(a)f(p)s(ositiv)m(e)f(v)-5
+b(alue)33 b(b)s(efore)f(calling)f Fs(readline\(\))g Ft(causes)i
+(Readline)e(to)j(return)390 3689 y(after)i(accepting)g(that)h(man)m(y)e
+(c)m(haracters,)k(rather)d(than)f(reading)g(up)f(to)j(a)f(c)m(haracter)
+h(b)s(ound)390 3799 y(to)31 b Fs(accept-line)p Ft(.)3371
+3984 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+3984 V 51 w(p)s(ending)p 884 3984 V 48 w(input)390 4093
+y Ft(Setting)25 b(this)f(to)i(a)f(v)-5 b(alue)25 b(mak)m(es)h(it)f(the)
+g(next)g(k)m(eystrok)m(e)i(read.)39 b(This)23 b(is)i(a)g(w)m(a)m(y)h
+(to)g(stu\013)f(a)g(single)390 4203 y(c)m(haracter)32
+b(in)m(to)e(the)h(input)d(stream.)3371 4388 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 4388 V 51 w(dispatc)m(hing)390
+4498 y Ft(Set)24 b(to)h(a)g(non-zero)g(v)-5 b(alue)23
+b(if)h(a)g(function)f(is)g(b)s(eing)g(called)h(from)f(a)i(k)m(ey)g
+(binding;)e(zero)i(otherwise.)390 4607 y(Application)34
+b(functions)g(can)i(test)h(this)d(to)j(disco)m(v)m(er)f(whether)f(they)
+h(w)m(ere)g(called)f(directly)f(or)390 4717 y(b)m(y)c(Readline's)f
+(dispatc)m(hing)g(mec)m(hanism.)3371 4902 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 4902 V 51 w(erase)p 737 4902
+V 49 w(empt)m(y)p 1100 4902 V 50 w(line)390 5011 y Ft(Setting)46
+b(this)e(to)j(a)f(non-zero)h(v)-5 b(alue)45 b(causes)i(Readline)d(to)j
+(completely)e(erase)i(the)f(curren)m(t)390 5121 y(line,)d(including)38
+b(an)m(y)j(prompt,)j(an)m(y)d(time)g(a)h(newline)d(is)i(t)m(yp)s(ed)g
+(as)g(the)h(only)e(c)m(haracter)j(on)390 5230 y(an)36
+b(otherwise-empt)m(y)h(line.)56 b(The)36 b(cursor)g(is)f(mo)m(v)m(ed)i
+(to)g(the)g(b)s(eginning)c(of)k(the)f(newly-blank)390
+5340 y(line.)p eop
+%%Page: 25 29
+25 28 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(25)3371 299 y([V)-8 b(ariable])-3600
+b Fg(char)39 b(*)g Ff(rl)p 575 299 35 5 v 50 w(prompt)390
+408 y Ft(The)26 b(prompt)f(Readline)g(uses.)38 b(This)25
+b(is)g(set)i(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)g(to)i(directly)-8
+b(.)39 b(The)26 b Fs(rl_set_prompt\(\))d Ft(function)i(\(see)j(Section)
+f(2.4.6)i([Redis-)390 628 y(pla)m(y],)h(page)i(32\))f(ma)m(y)g(b)s(e)f
+(used)f(to)j(mo)s(dify)c(the)j(prompt)e(string)g(after)i(calling)e
+Fs(readline\(\))p Ft(.)3371 797 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 797 V 51 w(already)p 851 797
+V 49 w(prompted)390 907 y Ft(If)d(an)g(application)f(wishes)f(to)j
+(displa)m(y)e(the)h(prompt)g(itself,)g(rather)h(than)f(ha)m(v)m(e)h
+(Readline)e(do)390 1016 y(it)d(the)h(\014rst)f(time)h
+Fs(readline\(\))d Ft(is)h(called,)i(it)f(should)f(set)i(this)f(v)-5
+b(ariable)32 b(to)h(a)g(non-zero)g(v)-5 b(alue)390 1126
+y(after)38 b(displa)m(ying)e(the)i(prompt.)63 b(The)37
+b(prompt)g(m)m(ust)h(also)g(b)s(e)f(passed)g(as)i(the)f(argumen)m(t)g
+(to)390 1235 y Fs(readline\(\))30 b Ft(so)j(the)h(redispla)m(y)d
+(functions)g(can)j(up)s(date)e(the)h(displa)m(y)e(prop)s(erly)-8
+b(.)47 b(The)32 b(calling)390 1345 y(application)d(is)g(resp)s(onsible)
+f(for)i(managing)g(the)g(v)-5 b(alue;)30 b(Readline)f(nev)m(er)i(sets)g
+(it.)3371 1514 y([V)-8 b(ariable])-3600 b Fg(const)40
+b(char)f(*)g Ff(rl)p 875 1514 V 50 w(library)p 1263 1514
+V 50 w(v)m(ersion)390 1624 y Ft(The)30 b(v)m(ersion)g(n)m(um)m(b)s(er)f
+(of)h(this)g(revision)e(of)j(the)f(library)-8 b(.)3371
+1793 y([V)g(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+1793 V 51 w(readline)p 884 1793 V 48 w(v)m(ersion)390
+1903 y Ft(An)34 b(in)m(teger)g(enco)s(ding)f(the)h(curren)m(t)g(v)m
+(ersion)g(of)g(the)g(library)-8 b(.)50 b(The)34 b(enco)s(ding)f(is)g
+(of)h(the)g(form)390 2012 y(0x)p Fi(MMmm)p Ft(,)39 b(where)d
+Fi(MM)47 b Ft(is)35 b(the)i(t)m(w)m(o-digit)g(ma)5 b(jor)36
+b(v)m(ersion)g(n)m(um)m(b)s(er,)h(and)f Fi(mm)g Ft(is)g(the)g(t)m(w)m
+(o-)390 2122 y(digit)g(minor)g(v)m(ersion)h(n)m(um)m(b)s(er.)60
+b(F)-8 b(or)38 b(example,)h(for)e(Readline-4.2,)i Fs
+(rl_readline_version)390 2232 y Ft(w)m(ould)29 b(ha)m(v)m(e)j(the)e(v)
+-5 b(alue)30 b(0x0402.)3371 2401 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 2401 V 51 w(gn)m(u)p 665 2401
+V 49 w(readline)p 1115 2401 V 49 w(p)390 2511 y Ft(Alw)m(a)m(ys)31
+b(set)g(to)g(1,)g(denoting)e(that)i(this)f(is)f Fm(gnu)h
+Ft(readline)f(rather)h(than)g(some)h(em)m(ulation.)3371
+2680 y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g
+Ff(rl)p 875 2680 V 50 w(terminal)p 1349 2680 V 49 w(name)390
+2790 y Ft(The)28 b(terminal)e(t)m(yp)s(e,)j(used)e(for)h
+(initialization.)37 b(If)28 b(not)g(set)h(b)m(y)e(the)i(application,)e
+(Readline)g(sets)390 2899 y(this)i(to)i(the)g(v)-5 b(alue)30
+b(of)g(the)h Fs(TERM)e Ft(en)m(vironmen)m(t)h(v)-5 b(ariable)29
+b(the)i(\014rst)e(time)i(it)e(is)h(called.)3371 3068
+y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g Ff(rl)p
+875 3068 V 50 w(readline)p 1326 3068 V 48 w(name)390
+3178 y Ft(This)29 b(v)-5 b(ariable)30 b(is)h(set)g(to)h(a)g(unique)d
+(name)i(b)m(y)g(eac)m(h)i(application)c(using)h(Readline.)42
+b(The)30 b(v)-5 b(alue)390 3288 y(allo)m(ws)27 b(conditional)g(parsing)
+f(of)i(the)h(inputrc)d(\014le)h(\(see)i(Section)f(1.3.2)h([Conditional)
+d(Init)h(Con-)390 3397 y(structs],)k(page)g(9\).)3371
+3567 y([V)-8 b(ariable])-3600 b Fg(FILE)39 b(*)g Ff(rl)p
+575 3567 V 50 w(instream)390 3676 y Ft(The)h(stdio)h(stream)g(from)g
+(whic)m(h)e(Readline)h(reads)h(input.)70 b(If)41 b Fs(NULL)p
+Ft(,)i(Readline)c(defaults)h(to)390 3786 y Fi(stdin)p
+Ft(.)3371 3955 y([V)-8 b(ariable])-3600 b Fg(FILE)39
+b(*)g Ff(rl)p 575 3955 V 50 w(outstream)390 4065 y Ft(The)34
+b(stdio)g(stream)g(to)i(whic)m(h)d(Readline)g(p)s(erforms)g(output.)52
+b(If)34 b Fs(NULL)p Ft(,)h(Readline)e(defaults)g(to)390
+4174 y Fi(stdout)p Ft(.)3371 4344 y([V)-8 b(ariable])-3600
+b Fg(rl_command_func_t)43 b(*)c Ff(rl)p 1255 4344 V 50
+w(last)p 1483 4344 V 50 w(func)390 4453 y Ft(The)34 b(address)g(of)h
+(the)g(last)g(command)f(function)f(Readline)h(executed.)55
+b(Ma)m(y)35 b(b)s(e)g(used)f(to)h(test)390 4563 y(whether)30
+b(or)g(not)h(a)f(function)g(is)f(b)s(eing)g(executed)i(t)m(wice)g(in)e
+(succession,)h(for)g(example.)3371 4732 y([V)-8 b(ariable])-3600
+b Fg(rl_hook_func_t)42 b(*)d Ff(rl)p 1098 4732 V 50 w(startup)p
+1514 4732 V 49 w(ho)s(ok)390 4842 y Ft(If)34 b(non-zero,)i(this)d(is)h
+(the)g(address)f(of)i(a)g(function)e(to)i(call)e(just)h(b)s(efore)g
+Fs(readline)e Ft(prin)m(ts)h(the)390 4951 y(\014rst)d(prompt.)3371
+5121 y([V)-8 b(ariable])-3600 b Fg(rl_hook_func_t)42
+b(*)d Ff(rl)p 1098 5121 V 50 w(pre)p 1312 5121 V 50 w(input)p
+1631 5121 V 49 w(ho)s(ok)390 5230 y Ft(If)c(non-zero,)j(this)c(is)g
+(the)i(address)f(of)g(a)h(function)e(to)j(call)d(after)i(the)g(\014rst)
+f(prompt)f(has)i(b)s(een)390 5340 y(prin)m(ted)29 b(and)h(just)f(b)s
+(efore)h Fs(readline)f Ft(starts)h(reading)g(input)e(c)m(haracters.)p
+eop
+%%Page: 26 30
+26 29 bop 150 -116 a Ft(26)2600 b(GNU)31 b(Readline)e(Library)3371
+299 y([V)-8 b(ariable])-3600 b Fg(rl_hook_func_t)42 b(*)d
+Ff(rl)p 1098 299 35 5 v 50 w(ev)m(en)m(t)p 1417 299 V
+49 w(ho)s(ok)390 408 y Ft(If)h(non-zero,)k(this)c(is)f(the)i(address)f
+(of)h(a)g(function)e(to)i(call)f(p)s(erio)s(dically)d(when)j(Readline)f
+(is)390 518 y(w)m(aiting)28 b(for)h(terminal)f(input.)38
+b(By)30 b(default,)f(this)f(will)e(b)s(e)j(called)f(at)i(most)f(ten)h
+(times)e(a)i(second)390 628 y(if)f(there)i(is)e(no)i(k)m(eyb)s(oard)f
+(input.)3371 814 y([V)-8 b(ariable])-3600 b Fg(rl_getc_func_t)42
+b(*)d Ff(rl)p 1098 814 V 50 w(getc)p 1354 814 V 50 w(function)390
+924 y Ft(If)30 b(non-zero,)h(Readline)e(will)f(call)i(indirectly)d
+(through)j(this)g(p)s(oin)m(ter)f(to)i(get)h(a)e(c)m(haracter)i(from)
+390 1033 y(the)39 b(input)d(stream.)65 b(By)39 b(default,)h(it)e(is)f
+(set)i(to)g Fs(rl_getc)p Ft(,)g(the)g(default)e(Readline)g(c)m
+(haracter)390 1143 y(input)28 b(function)h(\(see)j(Section)e(2.4.8)i
+([Character)f(Input],)f(page)h(34\).)3371 1329 y([V)-8
+b(ariable])-3600 b Fg(rl_voidfunc_t)42 b(*)d Ff(rl)p
+1046 1329 V 50 w(redispla)m(y)p 1546 1329 V 49 w(function)390
+1439 y Ft(If)d(non-zero,)i(Readline)c(will)g(call)h(indirectly)e
+(through)j(this)f(p)s(oin)m(ter)g(to)h(up)s(date)g(the)g(displa)m(y)390
+1548 y(with)26 b(the)h(curren)m(t)g(con)m(ten)m(ts)h(of)f(the)h
+(editing)d(bu\013er.)39 b(By)27 b(default,)g(it)g(is)f(set)h(to)h
+Fs(rl_redisplay)p Ft(,)390 1658 y(the)j(default)e(Readline)g(redispla)m
+(y)g(function)g(\(see)i(Section)f(2.4.6)i([Redispla)m(y],)e(page)h
+(32\).)3371 1844 y([V)-8 b(ariable])-3600 b Fg(rl_vintfunc_t)42
+b(*)d Ff(rl)p 1046 1844 V 50 w(prep)p 1324 1844 V 49
+w(term)p 1613 1844 V 51 w(function)390 1954 y Ft(If)24
+b(non-zero,)i(Readline)c(will)g(call)h(indirectly)f(through)h(this)g(p)
+s(oin)m(ter)g(to)i(initialize)c(the)j(terminal.)390 2063
+y(The)37 b(function)e(tak)m(es)k(a)e(single)f(argumen)m(t,)k(an)d
+Fs(int)f Ft(\015ag)h(that)h(sa)m(ys)g(whether)e(or)h(not)g(to)h(use)390
+2173 y(eigh)m(t-bit)c(c)m(haracters.)53 b(By)35 b(default,)f(this)f(is)
+g(set)i(to)g Fs(rl_prep_terminal)29 b Ft(\(see)35 b(Section)f(2.4.9)390
+2283 y([T)-8 b(erminal)29 b(Managemen)m(t],)k(page)e(35\).)3371
+2469 y([V)-8 b(ariable])-3600 b Fg(rl_voidfunc_t)42 b(*)d
+Ff(rl)p 1046 2469 V 50 w(deprep)p 1441 2469 V 49 w(term)p
+1730 2469 V 50 w(function)390 2579 y Ft(If)d(non-zero,)j(Readline)c
+(will)f(call)i(indirectly)e(through)i(this)f(p)s(oin)m(ter)h(to)h
+(reset)g(the)g(terminal.)390 2688 y(This)c(function)h(should)f(undo)h
+(the)h(e\013ects)h(of)f Fs(rl_prep_term_function)p Ft(.)49
+b(By)35 b(default,)h(this)390 2798 y(is)29 b(set)i(to)g
+Fs(rl_deprep_terminal)26 b Ft(\(see)31 b(Section)f(2.4.9)j([T)-8
+b(erminal)28 b(Managemen)m(t],)33 b(page)e(35\).)3371
+2984 y([V)-8 b(ariable])-3600 b Fg(Keymap)40 b Ff(rl)p
+589 2984 V 50 w(executing)p 1118 2984 V 49 w(k)m(eymap)390
+3094 y Ft(This)34 b(v)-5 b(ariable)35 b(is)g(set)h(to)h(the)f(k)m
+(eymap)h(\(see)g(Section)e(2.4.2)j([Keymaps],)g(page)e(28\))i(in)c
+(whic)m(h)390 3203 y(the)d(curren)m(tly)e(executing)i(readline)d
+(function)h(w)m(as)i(found.)3371 3390 y([V)-8 b(ariable])-3600
+b Fg(Keymap)40 b Ff(rl)p 589 3390 V 50 w(binding)p 1016
+3390 V 49 w(k)m(eymap)390 3499 y Ft(This)34 b(v)-5 b(ariable)35
+b(is)g(set)h(to)h(the)f(k)m(eymap)h(\(see)g(Section)e(2.4.2)j
+([Keymaps],)g(page)e(28\))i(in)c(whic)m(h)390 3609 y(the)d(last)f(k)m
+(ey)h(binding)c(o)s(ccurred.)3371 3795 y([V)-8 b(ariable])-3600
+b Fg(char)39 b(*)g Ff(rl)p 575 3795 V 50 w(executing)p
+1104 3795 V 49 w(macro)390 3905 y Ft(This)29 b(v)-5 b(ariable)29
+b(is)g(set)i(to)g(the)g(text)g(of)g(an)m(y)f(curren)m(tly-executing)g
+(macro.)3371 4091 y([V)-8 b(ariable])-3600 b Fg(int)39
+b Ff(rl)p 432 4091 V 51 w(readline)p 884 4091 V 48 w(state)390
+4201 y Ft(A)c(v)-5 b(ariable)33 b(with)g(bit)g(v)-5 b(alues)34
+b(that)h(encapsulate)g(the)f(curren)m(t)h(Readline)e(state.)54
+b(A)34 b(bit)g(is)f(set)390 4310 y(with)k(the)h Fs(RL_SETSTATE)c
+Ft(macro,)41 b(and)c(unset)h(with)e(the)i Fs(RL_UNSETSTATE)d
+Ft(macro.)63 b(Use)39 b(the)390 4420 y Fs(RL_ISSTATE)34
+b Ft(macro)k(to)g(test)g(whether)f(a)h(particular)d(state)k(bit)d(is)g
+(set.)62 b(Curren)m(t)36 b(state)j(bits)390 4529 y(include:)390
+4690 y Fs(RL_STATE_NONE)870 4800 y Ft(Readline)29 b(has)h(not)h(y)m(et)
+g(b)s(een)f(called,)g(nor)g(has)g(it)g(b)s(egun)f(to)i(in)m(tialize.)
+390 4960 y Fs(RL_STATE_INITIALIZING)870 5070 y Ft(Readline)e(is)g
+(initializing)e(its)j(in)m(ternal)f(data)i(structures.)390
+5230 y Fs(RL_STATE_INITIALIZED)870 5340 y Ft(Readline)e(has)h
+(completed)g(its)g(initialization.)p eop
+%%Page: 27 31
+27 30 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(27)390 299 y Fs(RL_STATE_TERMPREPPED)870
+408 y Ft(Readline)27 b(has)i(mo)s(di\014ed)d(the)j(terminal)e(mo)s(des)
+h(to)i(do)e(its)h(o)m(wn)f(input)f(and)h(redis-)870 518
+y(pla)m(y)-8 b(.)390 687 y Fs(RL_STATE_READCMD)870 797
+y Ft(Readline)29 b(is)g(reading)h(a)h(command)f(from)g(the)g(k)m(eyb)s
+(oard.)390 966 y Fs(RL_STATE_METANEXT)870 1075 y Ft(Readline)f(is)g
+(reading)h(more)g(input)f(after)i(reading)e(the)i(meta-pre\014x)f(c)m
+(haracter.)390 1244 y Fs(RL_STATE_DISPATCHING)870 1354
+y Ft(Readline)f(is)g(dispatc)m(hing)g(to)i(a)g(command.)390
+1523 y Fs(RL_STATE_MOREINPUT)870 1633 y Ft(Readline)e(is)g(reading)h
+(more)g(input)f(while)f(executing)j(an)f(editing)f(command.)390
+1802 y Fs(RL_STATE_ISEARCH)870 1911 y Ft(Readline)g(is)g(p)s(erforming)
+g(an)h(incremen)m(tal)g(history)f(searc)m(h.)390 2080
+y Fs(RL_STATE_NSEARCH)870 2190 y Ft(Readline)g(is)g(p)s(erforming)g(a)h
+(non-incremen)m(tal)g(history)f(searc)m(h.)390 2359 y
+Fs(RL_STATE_SEARCH)870 2469 y Ft(Readline)19 b(is)g(searc)m(hing)i(bac)
+m(kw)m(ard)f(or)h(forw)m(ard)e(through)h(the)h(history)e(for)h(a)h
+(string.)390 2638 y Fs(RL_STATE_NUMERICARG)870 2747 y
+Ft(Readline)29 b(is)g(reading)h(a)h(n)m(umeric)e(argumen)m(t.)390
+2916 y Fs(RL_STATE_MACROINPUT)870 3026 y Ft(Readline)23
+b(is)g(curren)m(tly)g(getting)i(its)f(input)e(from)i(a)g
+(previously-de\014ned)d(k)m(eyb)s(oard)870 3136 y(macro.)390
+3305 y Fs(RL_STATE_MACRODEF)870 3414 y Ft(Readline)29
+b(is)g(curren)m(tly)h(reading)f(c)m(haracters)j(de\014ning)d(a)h(k)m
+(eyb)s(oard)h(macro.)390 3583 y Fs(RL_STATE_OVERWRITE)870
+3693 y Ft(Readline)e(is)g(in)g(o)m(v)m(erwrite)i(mo)s(de.)390
+3862 y Fs(RL_STATE_COMPLETING)870 3972 y Ft(Readline)e(is)g(p)s
+(erforming)g(w)m(ord)h(completion.)390 4141 y Fs(RL_STATE_SIGHANDLER)
+870 4250 y Ft(Readline)f(is)g(curren)m(tly)h(executing)g(the)h
+(readline)e(signal)g(handler.)390 4419 y Fs(RL_STATE_UNDOING)870
+4529 y Ft(Readline)g(is)g(p)s(erforming)g(an)h(undo.)390
+4698 y Fs(RL_STATE_DONE)870 4808 y Ft(Readline)c(has)i(read)f(a)i(k)m
+(ey)f(sequence)g(b)s(ound)e(to)i Fs(accept-line)d Ft(and)i(is)g(ab)s
+(out)g(to)870 4917 y(return)i(the)i(line)e(to)i(the)f(caller.)3371
+5121 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+5121 35 5 v 51 w(explicit)p 852 5121 V 49 w(arg)390 5230
+y Ft(Set)g(to)g(a)h(non-zero)f(v)-5 b(alue)38 b(if)g(an)h(explicit)e(n)
+m(umeric)g(argumen)m(t)j(w)m(as)f(sp)s(eci\014ed)e(b)m(y)h(the)h(user.)
+390 5340 y(Only)29 b(v)-5 b(alid)28 b(in)i(a)g(bindable)e(command)i
+(function.)p eop
+%%Page: 28 32
+28 31 bop 150 -116 a Ft(28)2600 b(GNU)31 b(Readline)e(Library)3371
+299 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+299 35 5 v 51 w(n)m(umeric)p 886 299 V 49 w(arg)390 408
+y Ft(Set)45 b(to)h(the)g(v)-5 b(alue)45 b(of)g(an)m(y)h(n)m(umeric)e
+(argumen)m(t)i(explicitly)d(sp)s(eci\014ed)g(b)m(y)i(the)h(user)e(b)s
+(efore)390 518 y(executing)26 b(the)g(curren)m(t)g(Readline)f
+(function.)37 b(Only)25 b(v)-5 b(alid)24 b(in)h(a)h(bindable)d(command)
+j(function.)3371 698 y([V)-8 b(ariable])-3600 b Fg(int)39
+b Ff(rl)p 432 698 V 51 w(editing)p 830 698 V 48 w(mo)s(de)390
+807 y Ft(Set)25 b(to)h(a)g(v)-5 b(alue)24 b(denoting)h(Readline's)e
+(curren)m(t)i(editing)f(mo)s(de.)39 b(A)25 b(v)-5 b(alue)24
+b(of)i Fi(1)32 b Ft(means)25 b(Readline)390 917 y(is)k(curren)m(tly)h
+(in)f(emacs)i(mo)s(de;)f Fi(0)38 b Ft(means)31 b(that)f(vi)g(mo)s(de)g
+(is)f(activ)m(e.)150 1170 y Fr(2.4)68 b(Readline)47 b(Con)l(v)l
+(enience)f(F)-11 b(unctions)150 1499 y Fh(2.4.1)63 b(Naming)40
+b(a)h(F)-10 b(unction)275 1741 y Ft(The)39 b(user)g(can)h(dynamically)d
+(c)m(hange)k(the)f(bindings)c(of)k(k)m(eys)h(while)c(using)i(Readline.)
+67 b(This)38 b(is)150 1851 y(done)f(b)m(y)f(represen)m(ting)g(the)h
+(function)f(with)f(a)j(descriptiv)m(e)d(name.)61 b(The)36
+b(user)g(is)g(able)g(to)i(t)m(yp)s(e)f(the)150 1960 y(descriptiv)m(e)29
+b(name)i(when)e(referring)g(to)i(the)g(function.)39 b(Th)m(us,)30
+b(in)f(an)h(init)f(\014le,)g(one)i(migh)m(t)f(\014nd)390
+2093 y Fs(Meta-Rubout:)92 b(backward-kill-word)275 2226
+y Ft(This)38 b(binds)f(the)j(k)m(eystrok)m(e)1322 2223
+y Fk(h)p 1346 2170 417 4 v 1346 2226 a Fj(Meta-Rub)r(out)p
+1346 2242 V 1759 2223 a Fk(i)1828 2226 y Ft(to)h(the)f(function)f
+Fn(descriptively)49 b Ft(named)39 b Fs(backward-)150
+2336 y(kill-word)p Ft(.)59 b(Y)-8 b(ou,)39 b(as)f(the)f(programmer,)i
+(should)c(bind)g(the)i(functions)f(y)m(ou)i(write)e(to)i(descriptiv)m
+(e)150 2445 y(names)30 b(as)h(w)m(ell.)40 b(Readline)29
+b(pro)m(vides)g(a)i(function)e(for)h(doing)f(that:)3350
+2625 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+2625 35 5 v 51 w(add)p 667 2625 V 49 w(defun)44 b Fe(\()p
+Fs(const)29 b(char)g(*name,)g(rl_command_func_t)d(*function,)565
+2735 y(int)k(key)p Fe(\))390 2844 y Ft(Add)k Fi(name)41
+b Ft(to)36 b(the)f(list)f(of)i(named)e(functions.)54
+b(Mak)m(e)37 b Fi(function)d Ft(b)s(e)h(the)g(function)f(that)i(gets)
+390 2954 y(called.)k(If)30 b Fi(k)m(ey)39 b Ft(is)29
+b(not)i(-1,)g(then)f(bind)e(it)i(to)h Fi(function)e Ft(using)g
+Fs(rl_bind_key\(\))p Ft(.)275 3134 y(Using)g(this)g(function)g(alone)h
+(is)f(su\016cien)m(t)g(for)h(most)h(applications.)39
+b(It)30 b(is)f(the)h(recommended)g(w)m(a)m(y)150 3243
+y(to)e(add)e(a)h(few)g(functions)f(to)h(the)g(default)g(functions)e
+(that)j(Readline)d(has)i(built)e(in.)38 b(If)26 b(y)m(ou)i(need)e(to)i
+(do)150 3353 y(something)33 b(other)h(than)f(adding)g(a)h(function)e
+(to)i(Readline,)g(y)m(ou)g(ma)m(y)g(need)f(to)i(use)e(the)h(underlying)
+150 3462 y(functions)29 b(describ)s(ed)f(b)s(elo)m(w.)150
+3682 y Fh(2.4.2)63 b(Selecting)41 b(a)f(Keymap)275 3924
+y Ft(Key)30 b(bindings)e(tak)m(e)33 b(place)d(on)h(a)g
+Fi(k)m(eymap)p Ft(.)43 b(The)31 b(k)m(eymap)g(is)f(the)h(asso)s
+(ciation)g(b)s(et)m(w)m(een)g(the)g(k)m(eys)150 4034
+y(that)e(the)g(user)e(t)m(yp)s(es)i(and)f(the)g(functions)f(that)i(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 4143 y(existing)g(k)m(eymaps,)i(and)f(tell)g
+(Readline)f(whic)m(h)g(k)m(eymap)i(to)g(use.)3350 4323
+y([F)-8 b(unction])-3600 b Fg(Keymap)40 b Ff(rl)p 589
+4323 V 50 w(mak)m(e)p 900 4323 V 51 w(bare)p 1171 4323
+V 49 w(k)m(eymap)46 b Fe(\()p Fs(void)p Fe(\))390 4433
+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)e(allo)s(cated)h(with)f
+Fs(malloc\(\))p Ft(;)390 4542 y(the)31 b(caller)e(should)g(free)h(it)g
+(b)m(y)g(calling)f Fs(rl_discard_keymap\(\))c Ft(when)30
+b(done.)3350 4722 y([F)-8 b(unction])-3600 b Fg(Keymap)40
+b Ff(rl)p 589 4722 V 50 w(cop)m(y)p 868 4722 V 51 w(k)m(eymap)46
+b Fe(\()p Fs(Keymap)29 b(map)p Fe(\))390 4832 y Ft(Return)h(a)g(new)g
+(k)m(eymap)h(whic)m(h)e(is)h(a)g(cop)m(y)h(of)g Fi(map)p
+Ft(.)3350 5011 y([F)-8 b(unction])-3600 b Fg(Keymap)40
+b Ff(rl)p 589 5011 V 50 w(mak)m(e)p 900 5011 V 51 w(k)m(eymap)45
+b Fe(\()p Fs(void)p Fe(\))390 5121 y Ft(Return)31 b(a)g(new)g(k)m
+(eymap)h(with)e(the)i(prin)m(ting)d(c)m(haracters)k(b)s(ound)c(to)j(rl)
+p 2910 5121 28 4 v 39 w(insert,)f(the)h(lo)m(w)m(ercase)390
+5230 y(Meta)24 b(c)m(haracters)g(b)s(ound)d(to)i(run)e(their)h(equiv)-5
+b(alen)m(ts,)23 b(and)f(the)h(Meta)h(digits)d(b)s(ound)g(to)i(pro)s
+(duce)390 5340 y(n)m(umeric)29 b(argumen)m(ts.)p eop
+%%Page: 29 33
+29 32 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(29)3350 299 y([F)-8 b(unction])-3600
+b Fg(void)39 b Ff(rl)p 484 299 35 5 v 51 w(discard)p
+894 299 V 49 w(k)m(eymap)46 b Fe(\()p Fs(Keymap)29 b(keymap)p
+Fe(\))390 408 y Ft(F)-8 b(ree)31 b(the)g(storage)h(asso)s(ciated)f
+(with)e Fi(k)m(eymap)p Ft(.)275 584 y(Readline)43 b(has)i(sev)m(eral)h
+(in)m(ternal)e(k)m(eymaps.)86 b(These)45 b(functions)f(allo)m(w)g(y)m
+(ou)i(to)g(c)m(hange)g(whic)m(h)150 694 y(k)m(eymap)31
+b(is)e(activ)m(e.)3350 869 y([F)-8 b(unction])-3600 b
+Fg(Keymap)40 b Ff(rl)p 589 869 V 50 w(get)p 794 869 V
+50 w(k)m(eymap)46 b Fe(\()p Fs(void)p Fe(\))390 979 y
+Ft(Returns)29 b(the)i(curren)m(tly)e(activ)m(e)j(k)m(eymap.)3350
+1155 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p
+484 1155 V 51 w(set)p 678 1155 V 49 w(k)m(eymap)46 b
+Fe(\()p Fs(Keymap)29 b(keymap)p Fe(\))390 1264 y Ft(Mak)m(es)j
+Fi(k)m(eymap)h Ft(the)e(curren)m(tly)e(activ)m(e)j(k)m(eymap.)3350
+1440 y([F)-8 b(unction])-3600 b Fg(Keymap)40 b Ff(rl)p
+589 1440 V 50 w(get)p 794 1440 V 50 w(k)m(eymap)p 1229
+1440 V 51 w(b)m(y)p 1401 1440 V 50 w(name)45 b Fe(\()p
+Fs(const)29 b(char)g(*name)p Fe(\))390 1550 y Ft(Return)j(the)i(k)m
+(eymap)f(matc)m(hing)h Fi(name)p Ft(.)49 b Fi(name)38
+b Ft(is)33 b(one)g(whic)m(h)f(w)m(ould)g(b)s(e)g(supplied)e(in)i(a)i
+Fs(set)390 1659 y(keymap)29 b Ft(inputrc)f(line)h(\(see)i(Section)f
+(1.3)i([Readline)d(Init)g(File],)h(page)h(4\).)3350 1835
+y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(rl)p 575
+1835 V 50 w(get)p 780 1835 V 50 w(k)m(eymap)p 1215 1835
+V 51 w(name)44 b Fe(\()p Fs(Keymap)29 b(keymap)p Fe(\))390
+1945 y Ft(Return)j(the)i(name)f(matc)m(hing)g Fi(k)m(eymap)p
+Ft(.)50 b Fi(name)38 b Ft(is)33 b(one)g(whic)m(h)f(w)m(ould)g(b)s(e)g
+(supplied)e(in)i(a)i Fs(set)390 2054 y(keymap)29 b Ft(inputrc)f(line)h
+(\(see)i(Section)f(1.3)i([Readline)d(Init)g(File],)h(page)h(4\).)150
+2270 y Fh(2.4.3)63 b(Binding)42 b(Keys)275 2511 y Ft(Key)23
+b(sequences)i(are)f(asso)s(ciate)h(with)e(functions)f(through)h(the)h
+(k)m(eymap.)39 b(Readline)23 b(has)h(sev)m(eral)g(in-)150
+2620 y(ternal)29 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 2730 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)k(the)h(default,)150 2840 y(and)30 b(the)g(examples)g(in)f
+(this)h(man)m(ual)f(assume)h(that.)275 2971 y(Since)c
+Fs(readline\(\))f Ft(installs)g(a)j(set)g(of)g(default)f(k)m(ey)h
+(bindings)d(the)j(\014rst)e(time)i(it)f(is)f(called,)i(there)g(is)150
+3081 y(alw)m(a)m(ys)33 b(the)g(danger)f(that)i(a)f(custom)g(binding)c
+(installed)i(b)s(efore)h(the)h(\014rst)e(call)h(to)i
+Fs(readline\(\))c Ft(will)150 3190 y(b)s(e)25 b(o)m(v)m(erridden.)38
+b(An)26 b(alternate)g(mec)m(hanism)f(is)g(to)h(install)e(custom)i(k)m
+(ey)g(bindings)d(in)h(an)i(initialization)150 3300 y(function)36
+b(assigned)g(to)i(the)f Fs(rl_startup_hook)c Ft(v)-5
+b(ariable)36 b(\(see)i(Section)f(2.3)h([Readline)e(V)-8
+b(ariables],)150 3410 y(page)31 b(24\).)275 3541 y(These)f(functions)f
+(manage)i(k)m(ey)g(bindings.)3350 3717 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 3717 V 51 w(bind)p 707 3717
+V 49 w(k)m(ey)45 b Fe(\()p Fs(int)30 b(key,)f(rl_command_func_t)d
+(*function)p Fe(\))390 3827 y Ft(Binds)31 b Fi(k)m(ey)42
+b Ft(to)34 b Fi(function)d Ft(in)h(the)h(curren)m(tly)f(activ)m(e)i(k)m
+(eymap.)49 b(Returns)32 b(non-zero)i(in)e(the)h(case)390
+3936 y(of)e(an)f(in)m(v)-5 b(alid)28 b Fi(k)m(ey)p Ft(.)3350
+4112 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+4112 V 51 w(bind)p 707 4112 V 49 w(k)m(ey)p 926 4112
+V 50 w(in)p 1072 4112 V 50 w(map)46 b Fe(\()p Fs(int)29
+b(key,)h(rl_command_func_t)25 b(*function,)565 4221 y(Keymap)k(map)p
+Fe(\))390 4331 y Ft(Bind)g Fi(k)m(ey)39 b Ft(to)31 b
+Fi(function)e Ft(in)g Fi(map)p Ft(.)40 b(Returns)30 b(non-zero)h(in)e
+(the)i(case)g(of)f(an)h(in)m(v)-5 b(alid)28 b Fi(k)m(ey)p
+Ft(.)3350 4507 y([F)-8 b(unction])-3600 b Fg(int)39 b
+Ff(rl)p 432 4507 V 51 w(bind)p 707 4507 V 49 w(k)m(ey)p
+926 4507 V 50 w(if)p 1043 4507 V 51 w(un)m(b)s(ound)k
+Fe(\()p Fs(int)30 b(key,)f(rl_command_func_t)565 4616
+y(*function)p Fe(\))390 4726 y Ft(Binds)42 b Fi(k)m(ey)53
+b Ft(to)45 b Fi(function)d Ft(if)h(it)h(is)f(not)h(already)f(b)s(ound)f
+(in)h(the)h(curren)m(tly)f(activ)m(e)i(k)m(eymap.)390
+4836 y(Returns)29 b(non-zero)i(in)e(the)i(case)g(of)g(an)f(in)m(v)-5
+b(alid)28 b Fi(k)m(ey)39 b Ft(or)30 b(if)g Fi(k)m(ey)39
+b Ft(is)29 b(already)h(b)s(ound.)3350 5011 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 5011 V 51 w(bind)p 707 5011
+V 49 w(k)m(ey)p 926 5011 V 50 w(if)p 1043 5011 V 51 w(un)m(b)s(ound)p
+1535 5011 V 48 w(in)p 1679 5011 V 50 w(map)45 b Fe(\()p
+Fs(int)30 b(key,)565 5121 y(rl_command_func_t)c(*function,)h(Keymap)i
+(map)p Fe(\))390 5230 y Ft(Binds)d Fi(k)m(ey)36 b Ft(to)28
+b Fi(function)e Ft(if)g(it)h(is)f(not)i(already)f(b)s(ound)e(in)h
+Fi(map)p Ft(.)39 b(Returns)27 b(non-zero)g(in)f(the)i(case)390
+5340 y(of)j(an)f(in)m(v)-5 b(alid)28 b Fi(k)m(ey)39 b
+Ft(or)30 b(if)f Fi(k)m(ey)39 b Ft(is)30 b(already)g(b)s(ound.)p
+eop
+%%Page: 30 34
+30 33 bop 150 -116 a Ft(30)2600 b(GNU)31 b(Readline)e(Library)3350
+299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+299 35 5 v 51 w(un)m(bind)p 832 299 V 48 w(k)m(ey)46
+b Fe(\()p Fs(int)29 b(key)p Fe(\))390 408 y Ft(Bind)35
+b Fi(k)m(ey)45 b Ft(to)37 b(the)f(n)m(ull)e(function)h(in)g(the)i
+(curren)m(tly)e(activ)m(e)i(k)m(eymap.)59 b(Returns)35
+b(non-zero)i(in)390 518 y(case)31 b(of)g(error.)3350
+693 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+693 V 51 w(un)m(bind)p 832 693 V 48 w(k)m(ey)p 1050 693
+V 51 w(in)p 1197 693 V 49 w(map)46 b Fe(\()p Fs(int)29
+b(key,)h(Keymap)e(map)p Fe(\))390 803 y Ft(Bind)h Fi(k)m(ey)39
+b Ft(to)31 b(the)g(n)m(ull)d(function)h(in)g Fi(map)p
+Ft(.)40 b(Returns)30 b(non-zero)h(in)e(case)i(of)g(error.)3350
+978 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+978 V 51 w(un)m(bind)p 832 978 V 48 w(function)p 1292
+978 V 49 w(in)p 1437 978 V 50 w(map)45 b Fe(\()p Fs(rl_command_func_t)
+26 b(*function,)565 1088 y(Keymap)j(map)p Fe(\))390 1198
+y Ft(Un)m(bind)f(all)h(k)m(eys)i(that)g(execute)h Fi(function)d
+Ft(in)g Fi(map)p Ft(.)3350 1373 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 1373 V 51 w(un)m(bind)p 832
+1373 V 48 w(command)p 1362 1373 V 50 w(in)p 1508 1373
+V 50 w(map)46 b Fe(\()p Fs(const)29 b(char)g(*command,)f(Keymap)565
+1482 y(map)p Fe(\))390 1592 y Ft(Un)m(bind)g(all)h(k)m(eys)i(that)g
+(are)g(b)s(ound)e(to)i Fi(command)i Ft(in)c Fi(map)p
+Ft(.)3350 1767 y([F)-8 b(unction])-3600 b Fg(int)39 b
+Ff(rl)p 432 1767 V 51 w(bind)p 707 1767 V 49 w(k)m(eyseq)46
+b Fe(\()p Fs(const)29 b(char)g(*keyseq,)f(rl_command_func_t)565
+1877 y(*function)p Fe(\))390 1987 y Ft(Bind)42 b(the)h(k)m(ey)h
+(sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)f Fi(k)m(eyseq)k
+Ft(to)e(the)f(function)f Fi(function)p Ft(,)390 2096
+y(b)s(eginning)25 b(in)i(the)i(curren)m(t)f(k)m(eymap.)40
+b(This)27 b(mak)m(es)i(new)e(k)m(eymaps)i(as)f(necessary)-8
+b(.)41 b(The)28 b(return)390 2206 y(v)-5 b(alue)30 b(is)f(non-zero)i
+(if)f Fi(k)m(eyseq)j Ft(is)c(in)m(v)-5 b(alid.)3350 2381
+y([F)d(unction])-3600 b Fg(int)39 b Ff(rl)p 432 2381
+V 51 w(bind)p 707 2381 V 49 w(k)m(eyseq)p 1084 2381 V
+51 w(in)p 1231 2381 V 49 w(map)46 b Fe(\()p Fs(const)29
+b(char)g(*keyseq,)565 2491 y(rl_command_func_t)d(*function,)h(Keymap)i
+(map)p Fe(\))390 2600 y Ft(Bind)24 b(the)h(k)m(ey)h(sequence)f
+(represen)m(ted)g(b)m(y)g(the)g(string)f Fi(k)m(eyseq)k
+Ft(to)e(the)f(function)f Fi(function)p Ft(.)38 b(This)390
+2710 y(mak)m(es)30 b(new)f(k)m(eymaps)g(as)g(necessary)-8
+b(.)42 b(Initial)27 b(bindings)e(are)30 b(p)s(erformed)e(in)f
+Fi(map)p Ft(.)40 b(The)29 b(return)390 2819 y(v)-5 b(alue)30
+b(is)f(non-zero)i(if)f Fi(k)m(eyseq)j Ft(is)c(in)m(v)-5
+b(alid.)3350 2995 y([F)d(unction])-3600 b Fg(int)39 b
+Ff(rl)p 432 2995 V 51 w(set)p 626 2995 V 49 w(k)m(ey)46
+b Fe(\()p Fs(const)29 b(char)g(*keyseq,)g(rl_command_func_t)c
+(*function,)565 3104 y(Keymap)k(map)p Fe(\))390 3214
+y Ft(Equiv)-5 b(alen)m(t)29 b(to)i Fs(rl_bind_keyseq_in_map)p
+Ft(.)3350 3389 y([F)-8 b(unction])-3600 b Fg(int)39 b
+Ff(rl)p 432 3389 V 51 w(bind)p 707 3389 V 49 w(k)m(eyseq)p
+1084 3389 V 51 w(if)p 1202 3389 V 50 w(un)m(b)s(ound)k
+Fe(\()p Fs(const)30 b(char)f(*keyseq,)565 3499 y(rl_command_func_t)d
+(*function)p Fe(\))390 3608 y Ft(Binds)34 b Fi(k)m(eyseq)39
+b Ft(to)d Fi(function)e Ft(if)g(it)h(is)g(not)h(already)f(b)s(ound)e
+(in)h(the)i(curren)m(tly)e(activ)m(e)j(k)m(eymap.)390
+3718 y(Returns)29 b(non-zero)i(in)e(the)i(case)g(of)g(an)f(in)m(v)-5
+b(alid)28 b Fi(k)m(eyseq)34 b Ft(or)c(if)f Fi(k)m(eyseq)34
+b Ft(is)29 b(already)h(b)s(ound.)3350 3893 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 3893 V 51 w(bind)p 707 3893
+V 49 w(k)m(eyseq)p 1084 3893 V 51 w(if)p 1202 3893 V
+50 w(un)m(b)s(ound)p 1693 3893 V 48 w(in)p 1837 3893
+V 50 w(map)46 b Fe(\()p Fs(const)29 b(char)g(*keyseq,)565
+4003 y(rl_command_func_t)d(*function,)h(Keymap)i(map)p
+Fe(\))390 4113 y Ft(Binds)h Fi(k)m(eyseq)35 b Ft(to)e
+Fi(function)e Ft(if)g(it)g(is)g(not)h(already)g(b)s(ound)e(in)g
+Fi(map)p Ft(.)46 b(Returns)31 b(non-zero)h(in)f(the)390
+4222 y(case)g(of)g(an)f(in)m(v)-5 b(alid)28 b Fi(k)m(eyseq)34
+b Ft(or)c(if)f Fi(k)m(eyseq)34 b Ft(is)29 b(already)h(b)s(ound.)3350
+4398 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+4398 V 51 w(generic)p 840 4398 V 49 w(bind)44 b Fe(\()p
+Fs(int)30 b(type,)f(const)g(char)g(*keyseq,)f(char)h(*data,)565
+4507 y(Keymap)g(map)p Fe(\))390 4617 y Ft(Bind)d(the)h(k)m(ey)h
+(sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)f Fi(k)m(eyseq)k
+Ft(to)e(the)f(arbitrary)f(p)s(oin)m(ter)g Fi(data)p Ft(.)390
+4726 y Fi(t)m(yp)s(e)34 b Ft(sa)m(ys)29 b(what)f(kind)f(of)h(data)h(is)
+f(p)s(oin)m(ted)f(to)i(b)m(y)g Fi(data)p Ft(;)h(this)d(can)i(b)s(e)f(a)
+g(function)f(\()p Fs(ISFUNC)p Ft(\),)i(a)390 4836 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)27 b(mak)m(es)k(new)e(k)m(eymaps)g(as)h(necessary)-8
+b(.)41 b(The)390 4945 y(initial)28 b(k)m(eymap)i(in)g(whic)m(h)f(to)i
+(do)f(bindings)d(is)j Fi(map)p Ft(.)3350 5121 y([F)-8
+b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 5121 V 51
+w(parse)p 748 5121 V 49 w(and)p 981 5121 V 50 w(bind)44
+b Fe(\()p Fs(char)29 b(*line)p Fe(\))390 5230 y Ft(P)m(arse)h
+Fi(line)j Ft(as)c(if)g(it)g(had)f(b)s(een)h(read)g(from)g(the)h
+Fs(inputrc)d Ft(\014le)i(and)f(p)s(erform)g(an)m(y)i(k)m(ey)g(bindings)
+390 5340 y(and)g(v)-5 b(ariable)29 b(assignmen)m(ts)h(found)f(\(see)i
+(Section)g(1.3)g([Readline)e(Init)g(File],)i(page)g(4\).)p
eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fu(4)1322 b(GNU)15 b(Readline)h(Library)75
-149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37
-b Fo(C-g)21 b Fu(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
-(and)g(restore)g(the)75 204 y(original)16 b(line.)21
-b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
-(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
-y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i
-(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
-(yp)q(e)f Fo(C-r)g Fu(or)g Fo(C-s)g Fu(as)h(appropriate.)k(This)75
-380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
-(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
-(searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30
-b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10
-b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
-487 y Fn(h)p 1076 461 76 2 v 1076 489 a Fm(RET)p 1076
-497 V 1149 487 a Fn(i)1174 489 y Fu(will)g(terminate)f(the)g(searc)o(h)
-f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
-(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
-(command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
-(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
-(editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen)
-o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f
-Fo(C-r)p Fu(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o
-(terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f
-(string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75
-774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the)
-f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o
-(h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22
-b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fs(1.3)33 b(Readline)23
-b(Init)h(File)137 1169 y Fu(Although)f(the)g(Readline)h(library)f
-(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
-(installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
-(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
-b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15
-b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e
-Fk(inputrc)k Fu(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
-1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
-(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
-(v)m(ariable)75 1388 y Ft(INPUTRC)p Fu(.)i(If)c(that)g(v)m(ariable)h
-(is)g(unset,)f(the)g(default)h(is)g(`)p Ft(~/.inputrc)p
-Fu('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline)
-h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g
-(the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574
-y(In)f(addition,)h(the)e Ft(C-x)i(C-r)e Fu(command)g(re-reads)h(this)g
-(init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75
-1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
-1737 y Fj(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1832 y Fu(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w)
-o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18
-b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d
-(a)h(`)p Ft(#)p Fu(')e(are)h(commen)o(ts.)35 b(Lines)22
-b(b)q(eginning)h(with)e(a)f(`)p Ft($)p Fu(')f(indicate)75
-1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
-([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75
-1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
-2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g
-(the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h
-(the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f
-(the)g Ft(set)g Fu(command)f(within)i(the)f(init)h(\014le.)26
-b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300
-y Ft(set)23 b Fk(v)m(ariable)28 b(v)m(alue)315 2366 y
-Fu(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f
-(the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315
-2421 y(use)g Ft(vi)e Fu(line)j(editing)g(commands:)435
-2484 y Ft(set)23 b(editing-mode)g(vi)315 2549 y Fu(V)l(ariable)c(names)
-e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without)
-e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g
-(run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o
-(wing)f(v)m(ariables.)p eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(5)315 149 y Ft(bell-style)555 204 y Fu(Con)o(trols)21
-b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f
-(termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p
-Ft(none)p Fu(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32
-b(If)19 b(set)g(to)555 314 y(`)p Ft(visible)p Fu(',)c(Readline)i(uses)g
-(a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26
-b(If)16 b(set)h(to)555 369 y(`)p Ft(audible)p Fu(')g(\(the)h
-(default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555
-423 y(b)q(ell.)315 504 y Ft(comment-begin)555 559 y Fu(The)c(string)f
-(to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g
-Ft(insert-)555 614 y(comment)f Fu(command)h(is)h(executed.)21
-b(The)15 b(default)h(v)m(alue)g(is)g Ft("#")p Fu(.)315
-694 y Ft(completion-ignore-case)555 749 y Fu(If)e(set)f(to)g(`)p
-Ft(on)p Fu(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f
-(and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k
-(The)15 b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)315
-884 y Ft(completion-query-items)555 939 y Fu(The)d(n)o(um)o(b)q(er)h
-(of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f
-(user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i
-(see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21
-b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f
-(is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555
-1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to)
-f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20
-b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
-h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
-(default)f(limit)i(is)f Ft(100)p Fu(.)315 1294 y Ft(convert-meta)555
-1348 y Fu(If)11 b(set)g(to)g(`)p Ft(on)p Fu(',)f(Readline)i(will)h(con)
-o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555
-1403 y(to)f(an)h Fp(asci)q(i)e Fu(k)o(ey)i(sequence)g(b)o(y)g
-(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
-1456 y Fn(h)p 567 1430 70 2 v 567 1458 a Fm(ESC)p 567
-1466 V 634 1456 a Fn(i)666 1458 y Fu(c)o(haracter,)k(con)o(v)o(erting)h
-(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
-1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Ft(on)p Fu('.)315
-1593 y Ft(disable-completion)555 1648 y Fu(If)k(set)f(to)f(`)p
-Ft(On)p Fu(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30
-b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g
-(in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555
-1758 y(to)h Ft(self-insert)p Fu(.)j(The)d(default)h(is)g(`)p
-Ft(off)p Fu('.)315 1838 y Ft(editing-mode)555 1893 y
-Fu(The)f Ft(editing-mode)d Fu(v)m(ariable)k(con)o(trols)e(whic)o(h)h
-(default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20
-b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i
-(mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555
-2058 y(b)q(e)g(set)f(to)f(either)i(`)p Ft(emacs)p Fu(')e(or)h(`)p
-Ft(vi)p Fu('.)315 2138 y Ft(enable-keypad)555 2193 y
-Fu(When)d(set)f(to)h(`)p Ft(on)p Fu(',)e(Readline)j(will)h(try)d(to)g
-(enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h
-(called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g
-(arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p
-Ft(off)p Fu('.)315 2383 y Ft(expand-tilde)555 2438 y
-Fu(If)e(set)g(to)f(`)p Ft(on)p Fu(',)f(tilde)k(expansion)e(is)h(p)q
-(erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g
-(completion.)21 b(The)15 b(default)h(is)f(`)p Ft(off)p
-Fu('.)555 2560 y(If)g(set)g(to)f(`)p Ft(on)p Fu(',)g(the)g(history)h
-(co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555
-2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g
-(with)f Ft(previous-history)e Fu(or)555 2670 y Ft(next-history)p
-Fu(.)p eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fu(6)1322 b(GNU)15 b(Readline)h(Library)315
-149 y Ft(horizontal-scroll-mode)555 204 y Fu(This)j(v)m(ariable)g(can)f
-(b)q(e)g(set)g(to)f(either)i(`)p Ft(on)p Fu(')e(or)g(`)p
-Ft(off)p Fu('.)27 b(Setting)19 b(it)f(to)f(`)p Ft(on)p
-Fu(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing)
-f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i
-(screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g
-(the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g
-(screen)h(line.)21 b(By)13 b(default,)h(this)555 423
-y(v)m(ariable)j(is)e(set)g(to)g(`)p Ft(off)p Fu('.)315
-506 y Ft(input-meta)555 560 y Fu(If)h(set)f(to)g(`)p
-Ft(on)p Fu(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it)
-g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c)
-o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555
-670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20
-b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)33 b(The)555
-725 y(name)15 b Ft(meta-flag)f Fu(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
-m(ariable.)315 807 y Ft(isearch-terminators)555 862 y
-Fu(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
-(an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o
-(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
-971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
-b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17
-b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
-1024 y Fn(h)p 1259 998 70 2 v 1259 1026 a Fm(ESC)p 1259
-1034 V 1326 1024 a Fn(i)1357 1026 y Fu(and)g Fo(C-J)f
-Fu(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315
-1163 y Ft(keymap)96 b Fu(Sets)19 b(Readline's)i(idea)f(of)f(the)g
-(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555
-1218 y(mands.)41 b(Acceptable)23 b Ft(keymap)f Fu(names)g(are)f
-Ft(emacs)p Fu(,)i Ft(emacs-standard)p Fu(,)555 1273 y
-Ft(emacs-meta)p Fu(,)49 b Ft(emacs-ctlx)p Fu(,)g Ft(vi)p
-Fu(,)h Ft(vi-move)p Fu(,)f Ft(vi-command)p Fu(,)g(and)555
-1328 y Ft(vi-insert)p Fu(.)31 b Ft(vi)20 b Fu(is)g(equiv)m(alen)o(t)h
-(to)e Ft(vi-command)p Fu(;)g Ft(emacs)g Fu(is)h(equiv)m(alen)o(t)555
-1382 y(to)15 b Ft(emacs-standard)p Fu(.)20 b(The)d(default)f(v)m(alue)h
-(is)g Ft(emacs)p Fu(.)k(The)16 b(v)m(alue)h(of)f(the)555
-1437 y Ft(editing-mode)e Fu(v)m(ariable)i(also)f(a\013ects)g(the)g
-(default)h(k)o(eymap.)315 1519 y Ft(mark-directories)555
-1574 y Fu(If)j(set)g(to)g(`)p Ft(on)p Fu(',)f(completed)i(directory)g
-(names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629
-y(The)15 b(default)h(is)g(`)p Ft(on)p Fu('.)315 1711
-y Ft(mark-modified-lines)555 1766 y Fu(This)j(v)m(ariable,)g(when)g
-(set)e(to)h(`)p Ft(on)p Fu(',)f(causes)h(Readline)h(to)e(displa)o(y)i
-(an)f(as-)555 1821 y(terisk)f(\(`)p Ft(*)p Fu('\))e(at)i(the)f(start)g
-(of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q
-(di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Ft(off)p
-Fu(')e(b)o(y)h(default.)315 1958 y Ft(mark-symlinked-directories)555
-2012 y Fu(If)23 b(set)f(to)f(`)p Ft(on)p Fu(',)i(completed)g(names)g
-(whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555
-2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject)
-e(to)f(the)i(v)m(alue)g(of)f Ft(mark-)555 2122 y(directories)p
-Fu(\).)18 b(The)d(default)h(is)g(`)p Ft(off)p Fu('.)315
-2204 y Ft(match-hidden-files)555 2259 y Fu(This)c(v)m(ariable,)h(when)e
-(set)g(to)g(`)p Ft(on)p Fu(',)f(causes)h(Readline)i(to)d(matc)o(h)h
-(\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p
-Ft(.)p Fu(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename)
-555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p
-Ft(.)p Fu(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555
-2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15
-b(v)m(ariable)i(is)f(`)p Ft(on)p Fu(')e(b)o(y)h(default.)315
-2506 y Ft(output-meta)555 2560 y Fu(If)j(set)f(to)g(`)p
-Ft(on)p Fu(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j
-(the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-2670 y(default)16 b(is)f(`)p Ft(off)p Fu('.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(7)315 149 y Ft(page-completions)555 204 y Fu(If)17
-b(set)g(to)f(`)p Ft(on)p Fu(',)g(Readline)i(uses)g(an)e(in)o(ternal)i
-Ft(more)p Fu(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259
-y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23
-b(This)17 b(v)m(ariable)g(is)g(`)p Ft(on)p Fu(')555 314
-y(b)o(y)e(default.)315 395 y Ft(print-completions-horizont)o(ally)555
-450 y Fu(If)d(set)g(to)f(`)p Ft(on)p Fu(',)h(Readline)h(will)g(displa)o
-(y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505
-y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p
-Ft(off)p Fu('.)315 641 y Ft(show-all-if-ambiguous)555
-696 y Fu(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h
-(completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p
-Ft(on)p Fu(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h
-(p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f
-(b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q
-(ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Ft(off)p
-Fu('.)315 942 y Ft(visible-stats)555 997 y Fu(If)h(set)g(to)f(`)p
-Ft(on)p Fu(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q
-(e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g
-(listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p
-Ft(off)p Fu('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21
-b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f
-(init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315
-1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f
-(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315
-1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g
-(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315
-1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q
-(es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
-1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
-(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
-1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
-(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
-1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)
-e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g
-(readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h
-(pressed)g(\(a)e Fk(macro)r Fu(\).)315 1790 y Fk(k)o(eyname)s
-Fu(:)19 b Fk(function-name)g Fu(or)c Fk(macro)555 1845
-y(k)o(eyname)i Fu(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out)
-d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y
-Ft(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g
-(backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555
-2082 y Fu(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fo(C-u)e
-Fu(is)h(b)q(ound)g(to)f(the)g(function)h Ft(universal-)555
-2137 y(argument)p Fu(,)e Fo(M-DEL)h Fu(is)g(b)q(ound)h(to)e(the)h
-(function)h Ft(backward-kill-word)p Fu(,)555 2191 y(and)g
-Fo(C-o)f Fu(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
-(the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i
-(the)f(text)g(`)p Ft(>)f(output)p Fu(')g(in)o(to)i(the)f(line\).)555
-2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e
-(names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13
-b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fk(DEL)p
-Fu(,)11 b Fk(ESC)p Fu(,)h Fk(ESCAPE)p Fu(,)f Fk(LFD)p
-Fu(,)g Fk(NEW-)555 2424 y(LINE)p Fu(,)16 b Fk(RET)p Fu(,)e
-Fk(RETURN)p Fu(,)f Fk(R)o(UBOUT)p Fu(,)i Fk(SP)l(A)o(CE)p
-Fu(,)g Fk(SPC)p Fu(,)f(and)i Fk(T)l(AB)p Fu(.)315 2506
-y Ft(")p Fk(k)o(eyseq)q Ft(")p Fu(:)k Fk(function-name)e
-Fu(or)d Fk(macro)555 2560 y(k)o(eyseq)i Fu(di\013ers)e(from)g
-Fk(k)o(eyname)j Fu(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
-(an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555
-2670 y(double)e(quotes.)j(Some)c Fp(gnu)g Fu(Emacs)f(st)o(yle)h(k)o(ey)
-g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fu(8)1322 b(GNU)15 b(Readline)h(Library)555
-149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o
-(haracter)d(names)h(are)f(not)555 204 y(recognized.)675
-270 y Ft("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f
-(re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555
-442 y Fu(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b
-Fo(C-u)32 b Fu(is)h(again)f(b)q(ound)h(to)f(the)g(function)555
-497 y Ft(universal-argument)19 b Fu(\(just)j(as)f(it)h(w)o(as)f(in)i
-(the)f(\014rst)f(example\),)j(`)p Fo(C-x)555 551 y(C-r)p
-Fu(')c(is)h(b)q(ound)g(to)f(the)h(function)g Ft(re-read-init-file)p
-Fu(,)f(and)g(`)1731 549 y Fn(h)p 1743 523 70 2 v 1743
-551 a Fm(ESC)p 1743 559 V 1810 549 a Fn(i)15 b(h)p 1852
-523 10 2 v 1852 551 a Fm([)p 1852 560 V 1860 549 a Fn(i)555
-604 y(h)p 567 578 18 2 v 567 606 a Fm(1)p 567 614 V 583
-604 a Fn(i)g(h)p 625 578 V 625 606 a Fm(1)p 625 614 V
-640 604 a Fn(i)g(h)p 683 578 24 2 v 683 606 a Ft(~)p
-683 614 V 704 604 a Fn(i)719 606 y Fu(')g(is)h(b)q(ound)g(to)e(insert)i
-(the)f(text)g(`)p Ft(Function)f(Key)g(1)p Fu('.)315 688
-y(The)h(follo)o(wing)h Fp(gnu)e Fu(Emacs)h(st)o(yle)g(escap)q(e)h
-(sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315
-743 y(k)o(ey)g(sequences:)315 825 y Fo(\\C-)168 b Fu(con)o(trol)15
-b(pre\014x)315 907 y Fo(\\M-)168 b Fu(meta)15 b(pre\014x)315
-989 y Fo(\\e)192 b Fu(an)15 b(escap)q(e)h(c)o(haracter)315
-1071 y Fo(\\\\)192 b Fu(bac)o(kslash)315 1152 y Fo(\\)p
-Ft(")555 1150 y Fn(h)p 567 1124 V 567 1152 a Ft(")p 567
-1160 V 589 1150 a Fn(i)604 1152 y Fu(,)15 b(a)f(double)j(quotation)e
-(mark)315 1234 y Fo(\\')555 1232 y Fn(h)p 567 1206 10
-2 v 567 1234 a Fm(')p 567 1242 V 575 1232 a Fn(i)590
-1234 y Fu(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
-1316 y(In)f(addition)h(to)f(the)f Fp(gnu)h Fu(Emacs)g(st)o(yle)f(escap)
-q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
-1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y
-Ft(\\a)192 b Fu(alert)15 b(\(b)q(ell\))315 1535 y Ft(\\b)192
-b Fu(bac)o(kspace)315 1617 y Ft(\\d)g Fu(delete)315 1699
-y Ft(\\f)g Fu(form)14 b(feed)315 1781 y Ft(\\n)192 b
-Fu(newline)315 1862 y Ft(\\r)g Fu(carriage)15 b(return)315
-1944 y Ft(\\t)192 b Fu(horizon)o(tal)16 b(tab)315 2026
-y Ft(\\v)192 b Fu(v)o(ertical)16 b(tab)315 2108 y Ft(\\)p
-Fk(nnn)141 b Fu(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m
-(alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fk(nnn)f Fu(\(one)f(to)555
-2163 y(three)e(digits\))315 2245 y Ft(\\x)p Fk(HH)124
-b Fu(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f
-(the)g(hexadecimal)h(v)m(alue)g Fk(HH)555 2300 y Fu(\(one)15
-b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g
-(text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q
-(e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20
-b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i
-(name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
-(kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.)
-20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o
-(haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p
-Ft(")p Fu(')c(and)h(`)p Ft(')p Fu('.)34 b(F)l(or)315
-2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`)
-p Fo(C-x)i Ft(\\)p Fu(')f(insert)g(a)g(single)h(`)p Ft(\\)p
-Fu(')e(in)o(to)h(the)g(line:)435 2666 y Ft("\\C-x\\\\":)23
-b("\\\\")p eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(9)75 149 y Fj(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137
-246 y Fu(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g
-(spirit)f(to)f(the)h(conditional)h(compilation)g(features)75
-301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g
-(bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f
-(as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g
-(directiv)o(es)h(used.)75 435 y Ft($if)168 b Fu(The)16
-b Ft($if)f Fu(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g
-(based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490
-y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e
-(Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545
-y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f
-(are)h(required)i(to)d(isolate)i(it.)315 624 y Ft(mode)144
-b Fu(The)11 b Ft(mode=)e Fu(form)h(of)g(the)h Ft($if)f
-Fu(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555
-679 y(is)k(in)h Ft(emacs)e Fu(or)g Ft(vi)g Fu(mo)q(de.)20
-b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555
-734 y(`)p Ft(set)f(keymap)p Fu(')f(command,)g(for)h(instance,)g(to)f
-(set)h(bindings)h(in)g(the)f Ft(emacs-)555 789 y(standard)d
-Fu(and)i Ft(emacs-ctlx)e Fu(k)o(eymaps)h(only)i(if)f(Readline)g(is)g
-(starting)f(out)555 844 y(in)k Ft(emacs)f Fu(mo)q(de.)315
-923 y Ft(term)144 b Fu(The)14 b Ft(term=)e Fu(form)h(ma)o(y)g(b)q(e)h
-(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555
-978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13
-b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g
-(the)g(`)p Ft(=)p Fu(')f(is)h(tested)g(against)555 1088
-y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q
-(ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g
-(\014rst)f(`)p Ft(-)p Fu('.)24 b(This)17 b(allo)o(ws)g
-Ft(sun)f Fu(to)g(matc)o(h)h(b)q(oth)f Ft(sun)h Fu(and)555
-1197 y Ft(sun-cmd)p Fu(,)d(for)g(instance.)315 1277 y
-Ft(application)555 1332 y Fu(The)d Fk(application)i Fu(construct)e(is)g
-(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
-1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i
-(library)f(sets)f(the)g Fk(application)555 1441 y(name)p
-Fu(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20
-b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18
-b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q
-(eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17
-b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f
-(quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j
-(Bash:)675 1670 y Ft($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96
-b Fu(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g
-(terminates)f(an)g Ft($if)f Fu(command.)75 1985 y Ft($else)120
-b Fu(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i
-Ft($if)e Fu(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75
-2065 y Ft($include)48 b Fu(This)22 b(directiv)o(e)h(tak)o(es)e(a)h
-(single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33
-b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e
-(from)315 2174 y(`)p Ft(/etc/inputrc)p Fu(':)435 2239
-y Ft($include)k(/etc/inputrc)75 2351 y Fj(1.3.3)30 b(Sample)20
-b(Init)h(File)137 2447 y Fu(Here)16 b(is)g(an)f(example)h(of)f(an)g
-Fk(inputrc)k Fu(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i
-(v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.)
-p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fu(10)1299 b(GNU)15 b(Readline)h(Library)195
-201 y Ft(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU)
-f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e
-(include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195
-409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f
-(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.)
-195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g
-(bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h
-(/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772
-y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195
-928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
-1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
-f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
-195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
-1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
-1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
-(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
-1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
-1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
-1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
-(previous-history)195 1914 y("\\M-[B":)g(next-history)195
-1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
-2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
-(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
-2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
-2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
-(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
+%%Page: 31 35
+31 34 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(31)3350 299 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(read)p 703
+299 V 49 w(init)p 925 299 V 49 w(\014le)45 b Fe(\()p
+Fs(const)29 b(char)g(*filename)p Fe(\))390 408 y Ft(Read)j(k)m
+(eybindings)d(and)i(v)-5 b(ariable)30 b(assignmen)m(ts)h(from)g
+Fi(\014lename)36 b Ft(\(see)c(Section)f(1.3)i([Readline)390
+518 y(Init)c(File],)h(page)h(4\).)150 792 y Fh(2.4.4)63
+b(Asso)s(ciating)41 b(F)-10 b(unction)42 b(Names)e(and)h(Bindings)275
+1060 y Ft(These)21 b(functions)e(allo)m(w)i(y)m(ou)h(to)g(\014nd)d(out)
+j(what)f(k)m(eys)h(in)m(v)m(ok)m(e)g(named)f(functions)e(and)i(the)g
+(functions)150 1170 y(in)m(v)m(ok)m(ed)28 b(b)m(y)f(a)h(particular)e(k)
+m(ey)i(sequence.)40 b(Y)-8 b(ou)28 b(ma)m(y)g(also)g(asso)s(ciate)g(a)g
+(new)f(function)f(name)i(with)e(an)150 1279 y(arbitrary)j(function.)
+3350 1513 y([F)-8 b(unction])-3600 b Fg(rl_command_func_t)43
+b(*)c Ff(rl)p 1255 1513 V 50 w(named)p 1637 1513 V 50
+w(function)44 b Fe(\()p Fs(const)29 b(char)g(*name)p
+Fe(\))390 1623 y Ft(Return)h(the)g(function)f(with)g(name)i
+Fi(name)p Ft(.)3350 1856 y([F)-8 b(unction])-3600 b Fg
+(rl_command_func_t)43 b(*)c Ff(rl)p 1255 1856 V 50 w(function)p
+1717 1856 V 49 w(of)p 1858 1856 V 51 w(k)m(eyseq)46 b
+Fe(\()p Fs(const)29 b(char)g(*keyseq,)565 1966 y(Keymap)g(map,)g(int)g
+(*type)p Fe(\))390 2075 y Ft(Return)j(the)g(function)g(in)m(v)m(ok)m
+(ed)h(b)m(y)f Fi(k)m(eyseq)k Ft(in)31 b(k)m(eymap)i Fi(map)p
+Ft(.)47 b(If)32 b Fi(map)j Ft(is)c Fs(NULL)p Ft(,)h(the)h(curren)m(t)
+390 2185 y(k)m(eymap)k(is)f(used.)60 b(If)37 b Fi(t)m(yp)s(e)42
+b Ft(is)36 b(not)h Fs(NULL)p Ft(,)h(the)f(t)m(yp)s(e)g(of)g(the)g(ob)5
+b(ject)38 b(is)e(returned)g(in)g(the)h Fs(int)390 2295
+y Ft(v)-5 b(ariable)29 b(it)h(p)s(oin)m(ts)f(to)i(\(one)g(of)g
+Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)h Fs(ISMACR)p
+Ft(\).)3350 2528 y([F)-8 b(unction])-3600 b Fg(char)39
+b(**)g Ff(rl)p 627 2528 V 51 w(in)m(v)m(oking)p 1098
+2528 V 50 w(k)m(eyseqs)46 b Fe(\()p Fs(rl_command_func_t)26
+b(*function)p Fe(\))390 2638 y Ft(Return)k(an)i(arra)m(y)f(of)h
+(strings)e(represen)m(ting)g(the)h(k)m(ey)h(sequences)g(used)e(to)i(in)
+m(v)m(ok)m(e)g Fi(function)e Ft(in)390 2747 y(the)h(curren)m(t)f(k)m
+(eymap.)3350 2981 y([F)-8 b(unction])-3600 b Fg(char)39
+b(**)g Ff(rl)p 627 2981 V 51 w(in)m(v)m(oking)p 1098
+2981 V 50 w(k)m(eyseqs)p 1521 2981 V 51 w(in)p 1668 2981
+V 50 w(map)45 b Fe(\()p Fs(rl_command_func_t)565 3091
+y(*function,)28 b(Keymap)g(map)p Fe(\))390 3200 y Ft(Return)i(an)i
+(arra)m(y)f(of)h(strings)e(represen)m(ting)g(the)h(k)m(ey)h(sequences)g
+(used)e(to)i(in)m(v)m(ok)m(e)g Fi(function)e Ft(in)390
+3310 y(the)h(k)m(eymap)f Fi(map)p Ft(.)3350 3543 y([F)-8
+b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 3543 V 51
+w(function)p 947 3543 V 49 w(dump)s(er)45 b Fe(\()p Fs(int)29
+b(readable)p Fe(\))390 3653 y Ft(Prin)m(t)f(the)i(readline)d(function)h
+(names)h(and)g(the)g(k)m(ey)h(sequences)g(curren)m(tly)e(b)s(ound)f(to)
+j(them)f(to)390 3762 y Fs(rl_outstream)p Ft(.)36 b(If)27
+b Fi(readable)32 b Ft(is)27 b(non-zero,)i(the)e(list)g(is)f(formatted)i
+(in)e(suc)m(h)h(a)h(w)m(a)m(y)h(that)f(it)f(can)390 3872
+y(b)s(e)j(made)g(part)g(of)h(an)f Fs(inputrc)f Ft(\014le)g(and)h
+(re-read.)3350 4106 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(rl)p 484 4106 V 51 w(list)p 689 4106 V 50 w(funmap)p
+1117 4106 V 49 w(names)45 b Fe(\()p Fs(void)p Fe(\))390
+4215 y Ft(Prin)m(t)29 b(the)i(names)f(of)h(all)e(bindable)f(Readline)h
+(functions)g(to)i Fs(rl_outstream)p Ft(.)3350 4449 y([F)-8
+b(unction])-3600 b Fg(const)40 b(char)f(**)g Ff(rl)p
+927 4449 V 50 w(funmap)p 1355 4449 V 50 w(names)45 b
+Fe(\()p Fs(void)p Fe(\))390 4558 y Ft(Return)25 b(a)i(NULL)f
+(terminated)f(arra)m(y)i(of)f(kno)m(wn)f(function)g(names.)39
+b(The)26 b(arra)m(y)g(is)f(sorted.)39 b(The)390 4668
+y(arra)m(y)26 b(itself)e(is)g(allo)s(cated,)j(but)d(not)i(the)f
+(strings)f(inside.)37 b(Y)-8 b(ou)26 b(should)d Fs(free\(\))h
+Ft(the)h(arra)m(y)h(when)390 4778 y(y)m(ou)31 b(are)f(done,)h(but)f
+(not)g(the)h(p)s(oin)m(ters.)3350 5011 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 5011 V 51 w(add)p 667 5011
+V 49 w(funmap)p 1094 5011 V 49 w(en)m(try)45 b Fe(\()p
+Fs(const)29 b(char)h(*name,)e(rl_command_func_t)565 5121
+y(*function)p Fe(\))390 5230 y Ft(Add)k Fi(name)38 b
+Ft(to)33 b(the)g(list)f(of)h(bindable)d(Readline)h(command)i(names,)g
+(and)f(mak)m(e)i Fi(function)e Ft(the)390 5340 y(function)d(to)i(b)s(e)
+f(called)f(when)h Fi(name)35 b Ft(is)30 b(in)m(v)m(ok)m(ed.)p
eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(11)195 201 y Ft(C-q:)23 b(quoted-insert)195 305 y($endif)195
-409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
-(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
-(are)h(convenient)e(for)h(shell)h(interaction)195 616
-y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
-y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
-772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195
-824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195
-876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195
-928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash)
-g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g
-(macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g
-(the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f
-(redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g
-(line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)
-o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h
-(one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195
-1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading)
-195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f
-(characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f
-(converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g
-(convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h
-(eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h
-(meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195
-2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g
-(completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g
-(he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g
-(completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195
-2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195
-2640 y("\\C-xt":)g("put)g(\\M-?")p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fu(12)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75
-329 y Fs(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
-425 y Fu(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that)
-e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22
-b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o
-(ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137
-547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fk(p)q(oin)o(t)f
-Fu(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e
-Fk(mark)i Fu(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o
-(ed)f(b)o(y)h(the)f Ft(set-mark)g Fu(command.)32 b(The)20
-b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75
-656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fk(region)p
-Fu(.)75 767 y Fj(1.4.1)30 b(Commands)21 b(F)-5 b(or)19
-b(Mo)n(ving)75 888 y Ft(beginning-of-line)13 b(\(C-a\))315
-942 y Fu(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.)
-75 1034 y Ft(end-of-line)f(\(C-e\))315 1088 y Fu(Mo)o(v)o(e)g(to)h(the)
-g(end)h(of)f(the)g(line.)75 1179 y Ft(forward-char)f(\(C-f\))315
-1234 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75
-1325 y Ft(backward-char)e(\(C-b\))315 1380 y Fu(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)75 1471 y Ft(forward-word)f(\(M-f\))315
-1526 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h
-(w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315
-1581 y(digits.)75 1672 y Ft(backward-word)e(\(M-b\))315
-1727 y Fu(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o
-(t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315
-1782 y(of)e(letters)g(and)g(digits.)75 1873 y Ft(clear-screen)f
-(\(C-l\))315 1928 y Fu(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g
-(curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g
-(top)315 1982 y(of)i(the)g(screen.)75 2074 y Ft(redraw-current-line)e
-(\(\))315 2128 y Fu(Refresh)i(the)g(curren)o(t)g(line.)22
-b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239
-y Fj(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f
-(History)75 2360 y Ft(accept-line)14 b(\(Newline)g(or)h(Return\))315
-2414 y Fu(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
-f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
-2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
-(future)g(recall)h(with)f Ft(add_history\(\))p Fu(.)k(If)d(this)315
-2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history)
-g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75
-2615 y Ft(previous-history)c(\(C-p\))315 2670 y Fu(Mo)o(v)o(e)h(`bac)o
-(k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h
-(command.)p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(13)75 149 y Ft(next-history)14 b(\(C-n\))315 204 y
-Fu(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o
-(hing)h(the)f(next)h(command.)75 307 y Ft(beginning-of-history)c
-(\(M-<\))315 362 y Fu(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f
-(the)f(history)l(.)75 465 y Ft(end-of-history)e(\(M->\))315
-520 y Fu(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f
-(i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75
-624 y Ft(reverse-search-history)c(\(C-r\))315 678 y Fu(Searc)o(h)k(bac)
-o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)
-h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836
-y Ft(forward-search-history)c(\(C-s\))315 891 y Fu(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)
-o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049
-y Ft(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
-1104 y Fu(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o
-(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315
-1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o
-(h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214
-y(user.)75 1317 y Ft(non-incremental-forward-se)o(arch-hi)o(story)12
-b(\(M-n\))315 1372 y Fu(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f
-(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)
-315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i
-(searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315
-1481 y(user.)75 1584 y Ft(history-search-forward)f(\(\))315
-1639 y Fu(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f
-(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315
-1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
-(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
-b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-1852 y Ft(history-search-backward)c(\(\))315 1907 y Fu(Searc)o(h)18
-b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f
-(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h
-(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18
-b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315
-2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-2120 y Ft(yank-nth-arg)e(\(M-C-y\))315 2174 y Fu(Insert)f(the)g
-(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h
-(the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e
-(p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fk(n)p
-Fu(,)h(insert)g(the)g Fk(n)p Fu(th)g(w)o(ord)g(from)f(the)315
-2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i
-(command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315
-2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g
-Fk(n)p Fu(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g
-(command.)75 2442 y Ft(yank-last-arg)g(\(M-.)i(or)g(M-_\))315
-2497 y Fu(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e
-(\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552
-y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)
-o(e)g(exactly)h(lik)o(e)g Ft(yank-nth-arg)p Fu(.)j(Succes-)315
-2606 y(siv)o(e)f(calls)g(to)f Ft(yank-last-arg)e Fu(mo)o(v)o(e)i(bac)o
-(k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315
-2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p
+%%Page: 32 36
+32 35 bop 150 -116 a Ft(32)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fh(2.4.5)63 b(Allo)m(wing)41 b(Undoing)275 539
+y Ft(Supp)s(orting)23 b(the)j(undo)f(command)h(is)g(a)g(painless)f
+(thing,)h(and)f(mak)m(es)j(y)m(our)e(functions)e(m)m(uc)m(h)j(more)150
+648 y(useful.)39 b(It)30 b(is)g(certainly)f(easy)i(to)g(try)g
+(something)f(if)f(y)m(ou)i(kno)m(w)f(y)m(ou)h(can)f(undo)g(it.)275
+779 y(If)40 b(y)m(our)h(function)e(simply)f(inserts)i(text)i(once,)i
+(or)d(deletes)g(text)h(once,)i(and)c(uses)h Fs(rl_insert_)150
+888 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
+b Ft(to)29 b(do)f(it,)g(then)g(undoing)e(is)g(already)i(done)g(for)f(y)
+m(ou)h(automatically)-8 b(.)275 1018 y(If)20 b(y)m(ou)g(do)h(m)m
+(ultiple)d(insertions)g(or)j(m)m(ultiple)d(deletions,)k(or)e(an)m(y)h
+(com)m(bination)f(of)g(these)h(op)s(erations,)150 1128
+y(y)m(ou)38 b(should)e(group)i(them)g(together)h(in)m(to)f(one)g(op)s
+(eration.)63 b(This)36 b(is)h(done)h(with)f Fs(rl_begin_undo_)150
+1238 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p
+Ft(.)275 1368 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 1476 y Fd(enum)40 b(undo_code)h({)f
+(UNDO_DELETE,)i(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)f(};)275
+1606 y Ft(Notice)31 b(that)g Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)e
+(some)i(text,)h(and)d Fs(UNDO_INSERT)e Ft(means)k(to)g(delete)150
+1715 y(some)d(text.)41 b(That)27 b(is,)h(the)f(undo)g(co)s(de)h(tells)e
+(what)i(to)g(undo,)f(not)h(ho)m(w)g(to)g(undo)e(it.)40
+b Fs(UNDO_BEGIN)25 b Ft(and)150 1825 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 1997
+y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 1997
+35 5 v 51 w(b)s(egin)p 756 1997 V 49 w(undo)p 1054 1997
+V 50 w(group)45 b Fe(\()p Fs(void)p Fe(\))390 2106 y
+Ft(Begins)31 b(sa)m(ving)g(undo)e(information)h(in)f(a)j(group)e
+(construct.)43 b(The)30 b(undo)g(information)f(usually)390
+2216 y(comes)42 b(from)f(calls)g(to)h Fs(rl_insert_text\(\))37
+b Ft(and)k Fs(rl_delete_text\(\))p Ft(,)f(but)h(could)g(b)s(e)g(the)390
+2325 y(result)29 b(of)i(calls)e(to)i Fs(rl_add_undo\(\))p
+Ft(.)3350 2497 y([F)-8 b(unction])-3600 b Fg(int)39 b
+Ff(rl)p 432 2497 V 51 w(end)p 664 2497 V 49 w(undo)p
+962 2497 V 49 w(group)46 b Fe(\()p Fs(void)p Fe(\))390
+2606 y Ft(Closes)28 b(the)i(curren)m(t)e(undo)g(group)h(started)g(with)
+f Fs(rl_begin_undo_group)d(\(\))p Ft(.)39 b(There)29
+b(should)390 2716 y(b)s(e)h(one)g(call)g(to)h Fs(rl_end_undo_group\(\))
+25 b Ft(for)30 b(eac)m(h)i(call)e(to)h Fs(rl_begin_undo_group\(\))p
+Ft(.)3350 2888 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(rl)p 484 2888 V 51 w(add)p 719 2888 V 49 w(undo)45
+b Fe(\()p Fs(enum)29 b(undo_code)f(what,)h(int)h(start,)e(int)i(end,)f
+(char)565 2997 y(*text)p Fe(\))390 3107 y Ft(Remem)m(b)s(er)34
+b(ho)m(w)g(to)h(undo)d(an)i(ev)m(en)m(t)i(\(according)e(to)h
+Fi(what)r Ft(\).)52 b(The)33 b(a\013ected)j(text)f(runs)d(from)390
+3216 y Fi(start)h Ft(to)e Fi(end)p Ft(,)f(and)g(encompasses)h
+Fi(text)p Ft(.)3350 3388 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(rl)p 484 3388 V 51 w(free)p 723 3388 V 49 w(undo)p
+1021 3388 V 50 w(list)45 b Fe(\()p Fs(void)p Fe(\))390
+3497 y Ft(F)-8 b(ree)31 b(the)g(existing)e(undo)h(list.)3350
+3669 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+3669 V 51 w(do)p 604 3669 V 50 w(undo)45 b Fe(\()p Fs(void)p
+Fe(\))390 3779 y Ft(Undo)22 b(the)h(\014rst)g(thing)e(on)i(the)g(undo)f
+(list.)37 b(Returns)22 b Fs(0)g Ft(if)g(there)h(w)m(as)g(nothing)f(to)i
+(undo,)f(non-zero)390 3888 y(if)29 b(something)h(w)m(as)h(undone.)275
+4060 y(Finally)-8 b(,)29 b(if)h(y)m(ou)i(neither)e(insert)g(nor)g
+(delete)i(text,)g(but)f(directly)e(mo)s(dify)h(the)h(existing)f(text)i
+(\(e.g.,)150 4169 y(c)m(hange)40 b(its)e(case\),)k(call)c
+Fs(rl_modifying\(\))d Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s
+(dify)e(the)i(text.)67 b(Y)-8 b(ou)39 b(m)m(ust)150 4279
+y(supply)28 b(the)i(indices)f(of)h(the)h(text)g(range)g(that)g(y)m(ou)g
+(are)g(going)f(to)h(mo)s(dify)-8 b(.)3350 4450 y([F)g(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 4450 V 51 w(mo)s(difying)46
+b Fe(\()p Fs(int)29 b(start,)g(int)h(end)p Fe(\))390
+4560 y Ft(T)-8 b(ell)39 b(Readline)g(to)i(sa)m(v)m(e)g(the)g(text)g(b)s
+(et)m(w)m(een)g Fi(start)i Ft(and)c Fi(end)k Ft(as)e(a)f(single)f(undo)
+g(unit.)69 b(It)40 b(is)390 4670 y(assumed)30 b(that)h(y)m(ou)f(will)e
+(subsequen)m(tly)h(mo)s(dify)f(that)j(text.)150 4881
+y Fh(2.4.6)63 b(Redispla)m(y)3350 5121 y Ft([F)-8 b(unction])-3600
+b Fg(void)39 b Ff(rl)p 484 5121 V 51 w(redispla)m(y)44
+b Fe(\()p Fs(void)p Fe(\))390 5230 y Ft(Change)38 b(what's)f(displa)m
+(y)m(ed)g(on)g(the)h(screen)g(to)h(re\015ect)f(the)g(curren)m(t)g(con)m
+(ten)m(ts)h(of)f Fs(rl_line_)390 5340 y(buffer)p Ft(.)p
eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fu(14)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5
-b(ext)75 286 y Ft(delete-char)14 b(\(C-d\))315 341 y
-Fu(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33
-b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g
-(line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j
-(and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q
-(ound)i(to)315 450 y Ft(delete-char)p Fu(,)13 b(then)j(return)f
-Fp(eof)p Fu(.)75 552 y Ft(backward-delete-char)d(\(Rubout\))315
-607 y Fu(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c
-(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315
-661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
-763 y Ft(forward-backward-delete-ch)o(ar)12 b(\(\))315
-818 y Fu(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
-(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
-872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
-(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
-927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029
-y Ft(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fu(Add)j(the)f(next)
-g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26
-b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138
-y(sequences)f(lik)o(e)h Fo(C-q)p Fu(,)d(for)h(example.)75
-1240 y Ft(tab-insert)f(\(M-)401 1238 y Fn(h)p 412 1212
-74 2 v 412 1240 a Fm(T)m(AB)p 412 1247 V 484 1238 a Fn(i)499
-1240 y Ft(\))315 1294 y Fu(Insert)h(a)g(tab)g(c)o(haracter.)75
-1396 y Ft(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
-1451 y Fu(Insert)g(y)o(ourself.)75 1552 y Ft(transpose-chars)e(\(C-t\))
-315 1607 y Fu(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e
-(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315
-1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28
-b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e
-(the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o
-(w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11
-b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75
-1873 y Ft(transpose-words)e(\(M-t\))315 1927 y Fu(Drag)i(the)h(w)o(ord)
-g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
-(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982
-y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e
-(is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the)
-315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75
-2138 y Ft(upcase-word)f(\(M-u\))315 2193 y Fu(Upp)q(ercase)j(the)f
-(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16
-b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248
-y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the)
-i(cursor.)75 2349 y Ft(downcase-word)d(\(M-l\))315 2404
-y Fu(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o
-(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase)
-315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)75 2560 y Ft(capitalize-word)e(\(M-c\))315
-2615 y Fu(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o
-(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315
-2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)p eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(15)75 149 y Ft(overwrite-mode)13 b(\(\))315 204 y Fu(T)l(oggle)j(o)o
-(v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f
-(n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10
-b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q
-(ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315
-314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h
-Ft(emacs)e Fu(mo)q(de;)h Ft(vi)g Fu(mo)q(de)h(do)q(es)g(o)o(v)o
-(erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15
-b(call)h(to)f Ft(readline\(\))f Fu(starts)f(in)k(insert)e(mo)q(de.)315
-436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
-Ft(self-insert)f Fu(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315
-491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
-b(Characters)20 b(b)q(ound)i(to)e Ft(backward-)315 546
-y(delete-char)14 b Fu(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q
-(oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 729 y Fj(1.4.4)30 b(Killing)20
-b(And)h(Y)-5 b(anking)75 853 y Ft(kill-line)14 b(\(C-k\))315
-908 y Fu(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
-(the)g(line.)75 1002 y Ft(backward-kill-line)e(\(C-x)h(Rubout\))315
-1057 y Fu(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)75 1151 y Ft(unix-line-discard)e(\(C-u\))315 1205
-y Fu(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
-(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Ft(kill-whole-line)
-e(\(\))315 1354 y Fu(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
-o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29
-b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75
-1503 y Ft(kill-word)f(\(M-d\))315 1558 y Fu(Kill)j(from)d(p)q(oin)o(t)h
-(to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o
-(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o
-(ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
-Ft(forward-word)p Fu(.)75 1707 y Ft(backward-kill-word)e(\(M-)592
-1705 y Fn(h)p 603 1679 73 2 v 603 1707 a Fm(DEL)p 603
-1714 V 674 1705 a Fn(i)689 1707 y Ft(\))315 1761 y Fu(Kill)k(the)d(w)o
-(ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f
-(the)h(same)f(as)g Ft(backward-word)p Fu(.)75 1855 y
-Ft(unix-word-rubout)f(\(C-w\))315 1910 y Fu(Kill)18 b(the)e(w)o(ord)f
-(b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g
-(b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o
-(ed)g(on)g(the)h(kill-ring.)75 2059 y Ft(delete-horizontal-space)c
-(\(\))315 2114 y Fu(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q
-(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75
-2208 y Ft(kill-region)e(\(\))315 2263 y Fu(Kill)j(the)f(text)e(in)i
-(the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 2357 y Ft(copy-region-as-kill)d(\(\))315
-2412 y Fu(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
-(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
-(a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 2560 y Ft(copy-backward-word)d(\(\))315 2615
-y Fu(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
-(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
-2670 y(same)c(as)g Ft(backward-word)p Fu(.)j(By)d(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fu(16)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Ft(copy-forward-word)d(\(\))315 204 y Fu(Cop)o(y)i(the)h(w)o(ord)
-e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o
-(ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g
-Ft(forward-word)p Fu(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 342 y Ft(yank)f(\(C-y\))315 397 y Fu(Y)l(ank)g(the)h(top)f
-(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.)
-75 481 y Ft(yank-pop)g(\(M-y\))315 535 y Fu(Rotate)i(the)h(kill-ring,)j
-(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f
-(this)h(if)f(the)h(prior)315 590 y(command)d(is)h Ft(yank)e
-Fu(or)h Ft(yank-pop)p Fu(.)75 693 y Fj(1.4.5)30 b(Sp)r(ecifying)20
-b(Numeric)h(Argumen)n(ts)75 806 y Ft(digit-argument)13
-b(\()p Fo(M-0)p Ft(,)i Fo(M-1)p Ft(,)f(...)h Fo(M--)p
-Ft(\))315 861 y Fu(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
-(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
-915 y Fo(M--)h Fu(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75
-999 y Ft(universal-argument)e(\(\))315 1054 y Fu(This)g(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
-1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o
-(us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315
-1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
-(digits,)g(executing)g Ft(universal-argument)315 1218
-y Fu(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
-(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
-1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)
-f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
-1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
-(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315
-1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
-(executing)i(this)f(function)h(the)e(\014rst)h(time)315
-1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
-(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fj(1.4.6)30
-b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1708 y Ft(complete)14 b(\()305 1706 y Fn(h)p
-317 1680 74 2 v 317 1708 a Fm(T)m(AB)p 317 1715 V 389
-1706 a Fn(i)404 1708 y Ft(\))315 1762 y Fu(A)o(ttempt)c(to)h(p)q
-(erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
-b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h
-(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
-g(completion.)75 1901 y Ft(possible-completions)c(\(M-?\))315
-1955 y Fu(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 2039 y Ft(insert-completions)d(\(M-*\))315
-2093 y Fu(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
-q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
-2148 y(b)o(y)f Ft(possible-completions)p Fu(.)75 2232
-y Ft(menu-complete)e(\(\))315 2286 y Fu(Similar)g(to)f
-Ft(complete)p Fu(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
-(completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list)
-h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19
-b(execution)h(of)f Ft(menu-complete)315 2396 y Fu(steps)h(through)g
-(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
-(matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
-(of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f
-(the)i(setting)315 2506 y(of)f Ft(bell-style)p Fu(\))e(and)i(the)g
-(original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fk(n)i Fu(mo)o(v)o(es)e Fk(n)315 2560 y Fu(p)q(ositions)h(forw)o(ard)e
-(in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g
-(ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
-(through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f
-(b)q(e)h(b)q(ound)g(to)315 2668 y Fn(h)p 327 2642 V 327
-2670 a Fm(T)m(AB)p 327 2678 V 399 2668 a Fn(i)414 2670
-y Fu(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p
+%%Page: 33 37
+33 36 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(33)3350 299 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(forced)p 790
+299 V 49 w(up)s(date)p 1188 299 V 49 w(displa)m(y)44
+b Fe(\()p Fs(void)p Fe(\))390 408 y Ft(F)-8 b(orce)41
+b(the)f(line)e(to)j(b)s(e)e(up)s(dated)f(and)h(redispla)m(y)m(ed,)i
+(whether)e(or)g(not)h(Readline)f(thinks)f(the)390 518
+y(screen)30 b(displa)m(y)f(is)g(correct.)3350 704 y([F)-8
+b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 704 V 51 w(on)p
+604 704 V 50 w(new)p 854 704 V 49 w(line)44 b Fe(\()p
+Fs(void)p Fe(\))390 814 y Ft(T)-8 b(ell)29 b(the)h(up)s(date)f
+(functions)f(that)j(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,)e(usually)e(after)390 924
+y(ouputting)i(a)i(newline.)3350 1110 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 1110 V 51 w(on)p 604 1110 V
+50 w(new)p 854 1110 V 49 w(line)p 1084 1110 V 49 w(with)p
+1357 1110 V 50 w(prompt)45 b Fe(\()p Fs(void)p Fe(\))390
+1219 y Ft(T)-8 b(ell)23 b(the)h(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)h(a)e(new)g(line,)g(with)e
+Fi(rl)p 3107 1219 28 4 v 39 w(prompt)j Ft(already)390
+1329 y(displa)m(y)m(ed.)39 b(This)27 b(could)g(b)s(e)h(used)g(b)m(y)g
+(applications)f(that)i(w)m(an)m(t)h(to)f(output)f(the)h(prompt)f
+(string)390 1439 y(themselv)m(es,)g(but)f(still)e(need)j(Readline)e(to)
+i(kno)m(w)f(the)h(prompt)e(string)g(length)h(for)g(redispla)m(y)-8
+b(.)39 b(It)390 1548 y(should)28 b(b)s(e)i(used)g(after)h(setting)f
+Fi(rl)p 1591 1548 V 39 w(already)p 1921 1548 V 40 w(prompted)p
+Ft(.)3350 1734 y([F)-8 b(unction])-3600 b Fg(int)39 b
+Ff(rl)p 432 1734 35 5 v 51 w(reset)p 726 1734 V 49 w(line)p
+956 1734 V 49 w(state)44 b Fe(\()p Fs(void)p Fe(\))390
+1844 y Ft(Reset)36 b(the)e(displa)m(y)f(state)j(to)g(a)f(clean)f(state)
+i(and)e(redispla)m(y)f(the)i(curren)m(t)g(line)e(starting)h(on)h(a)390
+1954 y(new)30 b(line.)3350 2140 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 2140 V 51 w(crlf)45 b Fe(\()p
+Fs(void)p Fe(\))390 2250 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 2436 y([F)-8
+b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 2436 V 51
+w(sho)m(w)p 729 2436 V 50 w(c)m(har)44 b Fe(\()p Fs(int)30
+b(c)p Fe(\))390 2545 y Ft(Displa)m(y)i(c)m(haracter)i
+Fi(c)k Ft(on)32 b Fs(rl_outstream)p Ft(.)44 b(If)32 b(Readline)f(has)i
+(not)f(b)s(een)g(set)h(to)g(displa)m(y)e(meta)390 2655
+y(c)m(haracters)c(directly)-8 b(,)27 b(this)d(will)g(con)m(v)m(ert)j
+(meta)g(c)m(haracters)h(to)e(a)h(meta-pre\014xed)f(k)m(ey)g(sequence.)
+390 2765 y(This)j(is)g(in)m(tended)g(for)h(use)g(b)m(y)h(applications)d
+(whic)m(h)h(wish)g(to)i(do)f(their)g(o)m(wn)g(redispla)m(y)-8
+b(.)3350 2951 y([F)g(unction])-3600 b Fg(int)39 b Ff(rl)p
+432 2951 V 51 w(message)45 b Fe(\()p Fs(const)29 b(char)g(*,)h(...)o
+Fe(\))390 3061 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g(format)g(string)f
+(as)g(w)m(ould)g(b)s(e)g(supplied)d(to)22 b Fs(printf)p
+Ft(,)f(p)s(ossibly)c(con)m(taining)390 3170 y(con)m(v)m(ersion)44
+b(sp)s(eci\014cations)f(suc)m(h)h(as)g(`)p Fs(\045d)p
+Ft(',)k(and)c(an)m(y)g(additional)e(argumen)m(ts)j(necessary)f(to)390
+3280 y(satisfy)d(the)g(con)m(v)m(ersion)h(sp)s(eci\014cations.)72
+b(The)41 b(resulting)f(string)g(is)g(displa)m(y)m(ed)g(in)g(the)i
+Fi(ec)m(ho)390 3389 y(area)p Ft(.)g(The)29 b(ec)m(ho)j(area)f(is)f
+(also)g(used)g(to)h(displa)m(y)d(n)m(umeric)h(argumen)m(ts)i(and)f
+(searc)m(h)h(strings.)3350 3576 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 3576 V 51 w(clear)p 722 3576
+V 49 w(message)45 b Fe(\()p Fs(void)p Fe(\))390 3685
+y Ft(Clear)30 b(the)g(message)i(in)d(the)h(ec)m(ho)i(area.)3350
+3871 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p
+484 3871 V 51 w(sa)m(v)m(e)p 743 3871 V 50 w(prompt)45
+b Fe(\()p Fs(void)p Fe(\))390 3981 y Ft(Sa)m(v)m(e)f(the)f(lo)s(cal)g
+(Readline)e(prompt)h(displa)m(y)g(state)i(in)e(preparation)g(for)h
+(displa)m(ying)d(a)j(new)390 4091 y(message)31 b(in)f(the)g(message)i
+(area)f(with)e Fs(rl_message\(\))p Ft(.)3350 4277 y([F)-8
+b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 4277 V 51
+w(restore)p 882 4277 V 50 w(prompt)45 b Fe(\()p Fs(void)p
+Fe(\))390 4387 y Ft(Restore)f(the)e(lo)s(cal)g(Readline)g(prompt)f
+(displa)m(y)g(state)j(sa)m(v)m(ed)g(b)m(y)f(the)f(most)h(recen)m(t)h
+(call)e(to)390 4496 y Fs(rl_save_prompt)p Ft(.)3350 4682
+y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 4682
+V 51 w(expand)p 844 4682 V 49 w(prompt)45 b Fe(\()p Fs(char)29
+b(*prompt)p Fe(\))390 4792 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)d(c)m
+(haracter)j(sequences)f(in)f Fi(prompt)h Ft(and)f(set)i(up)d(the)i(lo)s
+(cal)f(Readline)390 4902 y(prompt)35 b(redispla)m(y)f(v)-5
+b(ariables.)55 b(This)34 b(function)h(is)g(called)g(b)m(y)g
+Fs(readline\(\))p Ft(.)55 b(It)35 b(ma)m(y)i(also)f(b)s(e)390
+5011 y(called)20 b(to)i(expand)f(the)g(primary)e(prompt)h(if)h(the)g
+Fs(rl_on_new_line_with_prom)o(pt\()o(\))15 b Ft(function)390
+5121 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)24
+b(is)g(used.)39 b(It)25 b(returns)f(the)i(n)m(um)m(b)s(er)e(of)i
+(visible)c(c)m(haracters)390 5230 y(on)34 b(the)g(last)f(line)f(of)i
+(the)g(\(p)s(ossibly)d(m)m(ulti-line\))h(prompt.)50 b(Applications)31
+b(ma)m(y)k(indicate)d(that)390 5340 y(the)c(prompt)f(con)m(tains)h(c)m
+(haracters)h(that)g(tak)m(e)g(up)e(no)h(ph)m(ysical)e(screen)i(space)g
+(when)f(displa)m(y)m(ed)p eop
+%%Page: 34 38
+34 37 bop 150 -116 a Ft(34)2600 b(GNU)31 b(Readline)e(Library)390
+299 y(b)m(y)41 b(brac)m(k)m(eting)h(a)f(sequence)g(of)g(suc)m(h)g(c)m
+(haracters)h(with)e(the)h(sp)s(ecial)f(mark)m(ers)h Fs(RL_PROMPT_)390
+408 y(START_IGNORE)27 b Ft(and)k Fs(RL_PROMPT_END_IGNORE)25
+b Ft(\(declared)30 b(in)g(`)p Fs(readline.h)p Ft('.)39
+b(This)29 b(ma)m(y)j(b)s(e)390 518 y(used)e(to)h(em)m(b)s(ed)f
+(terminal-sp)s(eci\014c)e(escap)s(e)i(sequences)h(in)e(prompts.)3350
+710 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+710 35 5 v 51 w(set)p 626 710 V 49 w(prompt)45 b Fe(\()p
+Fs(const)30 b(char)f(*prompt)p Fe(\))390 819 y Ft(Mak)m(e)f(Readline)e
+(use)h Fi(prompt)h Ft(for)e(subsequen)m(t)h(redispla)m(y)-8
+b(.)38 b(This)25 b(calls)h Fs(rl_expand_prompt\(\))390
+929 y Ft(to)31 b(expand)f(the)g(prompt)g(and)g(sets)g
+Fs(rl_prompt)e Ft(to)j(the)g(result.)150 1161 y Fh(2.4.7)63
+b(Mo)s(difying)42 b(T)-10 b(ext)3350 1408 y Ft([F)i(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 1408 V 51 w(insert)p 769 1408
+V 49 w(text)44 b Fe(\()p Fs(const)30 b(char)f(*text)p
+Fe(\))390 1518 y Ft(Insert)i Fi(text)k Ft(in)m(to)c(the)h(line)e(at)i
+(the)g(curren)m(t)f(cursor)g(p)s(osition.)43 b(Returns)30
+b(the)i(n)m(um)m(b)s(er)f(of)g(c)m(har-)390 1628 y(acters)g(inserted.)
+3350 1819 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p
+432 1819 V 51 w(delete)p 783 1819 V 47 w(text)45 b Fe(\()p
+Fs(int)30 b(start,)f(int)g(end)p Fe(\))390 1929 y Ft(Delete)39
+b(the)f(text)h(b)s(et)m(w)m(een)f Fi(start)i Ft(and)d
+Fi(end)k Ft(in)36 b(the)i(curren)m(t)g(line.)61 b(Returns)36
+b(the)i(n)m(um)m(b)s(er)f(of)390 2039 y(c)m(haracters)32
+b(deleted.)3350 2230 y([F)-8 b(unction])-3600 b Fg(char)39
+b(*)g Ff(rl)p 575 2230 V 50 w(cop)m(y)p 854 2230 V 51
+w(text)44 b Fe(\()p Fs(int)30 b(start,)f(int)g(end)p
+Fe(\))390 2340 y Ft(Return)h(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m
+(w)m(een)g Fi(start)i Ft(and)d Fi(end)j Ft(in)c(the)i(curren)m(t)f
+(line.)3350 2532 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(rl)p 432 2532 V 51 w(kill)p 639 2532 V 50 w(text)44
+b Fe(\()p Fs(int)30 b(start,)f(int)g(end)p Fe(\))390
+2641 y Ft(Cop)m(y)34 b(the)g(text)i(b)s(et)m(w)m(een)e
+Fi(start)j Ft(and)d Fi(end)j Ft(in)c(the)h(curren)m(t)g(line)e(to)j
+(the)f(kill)e(ring,)i(app)s(ending)390 2751 y(or)g(prep)s(ending)d(to)k
+(the)f(last)g(kill)d(if)i(the)h(last)g(command)g(w)m(as)g(a)h(kill)c
+(command.)51 b(The)34 b(text)h(is)390 2861 y(deleted.)50
+b(If)33 b Fi(start)j Ft(is)d(less)g(than)g Fi(end)p Ft(,)h(the)g(text)g
+(is)f(app)s(ended,)g(otherwise)g(prep)s(ended.)48 b(If)33
+b(the)390 2970 y(last)d(command)g(w)m(as)h(not)g(a)f(kill,)f(a)i(new)e
+(kill)f(ring)i(slot)g(is)f(used.)3350 3162 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 3162 V 51 w(push)p 720 3162
+V 49 w(macro)p 1075 3162 V 51 w(input)44 b Fe(\()p Fs(char)29
+b(*macro)p Fe(\))390 3271 y Ft(Cause)f Fi(macro)33 b
+Ft(to)c(b)s(e)f(inserted)f(in)m(to)h(the)h(line,)e(as)h(if)g(it)f(had)h
+(b)s(een)g(in)m(v)m(ok)m(ed)g(b)m(y)g(a)h(k)m(ey)g(b)s(ound)d(to)390
+3381 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)e(useful;)g(use)h
+Fs(rl_insert_text\(\))c Ft(instead.)150 3613 y Fh(2.4.8)63
+b(Character)39 b(Input)3350 3861 y Ft([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 3861 V 51 w(read)p 703 3861
+V 49 w(k)m(ey)46 b Fe(\()p Fs(void)p Fe(\))390 3970 y
+Ft(Return)29 b(the)g(next)h(c)m(haracter)h(a)m(v)-5 b(ailable)29
+b(from)g(Readline's)f(curren)m(t)h(input)f(stream.)41
+b(This)27 b(han-)390 4080 y(dles)e(input)g(inserted)g(in)m(to)i(the)f
+(input)f(stream)i(via)f Fi(rl)p 2227 4080 28 4 v 39 w(p)s(ending)p
+2584 4080 V 37 w(input)h Ft(\(see)g(Section)g(2.3)g([Read-)390
+4189 y(line)38 b(V)-8 b(ariables],)41 b(page)f(24\))g(and)f
+Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m(haracters)h(read)f
+(from)390 4299 y(the)34 b(k)m(eyb)s(oard.)52 b(While)33
+b(w)m(aiting)g(for)h(input,)f(this)g(function)g(will)e(call)j(an)m(y)g
+(function)f(assigned)390 4408 y(to)e(the)g Fs(rl_event_hook)26
+b Ft(v)-5 b(ariable.)3350 4600 y([F)d(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 4600 35 5 v 51 w(getc)44 b
+Fe(\()p Fs(FILE)30 b(*stream)p Fe(\))390 4710 y Ft(Return)20
+b(the)i(next)f(c)m(haracter)i(a)m(v)-5 b(ailable)21 b(from)f
+Fi(stream)p Ft(,)k(whic)m(h)c(is)g(assumed)h(to)h(b)s(e)e(the)i(k)m
+(eyb)s(oard.)3350 4902 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(rl)p 432 4902 V 51 w(stu\013)p 704 4902 V 49 w(c)m(har)45
+b Fe(\()p Fs(int)30 b(c)p Fe(\))390 5011 y Ft(Insert)i
+Fi(c)39 b Ft(in)m(to)33 b(the)g(Readline)e(input)g(stream.)49
+b(It)33 b(will)d(b)s(e)i Fs(")p Ft(read)p Fs(")g Ft(b)s(efore)h
+(Readline)e(attempts)390 5121 y(to)c(read)g(c)m(haracters)h(from)f(the)
+g(terminal)e(with)g Fs(rl_read_key\(\))p Ft(.)36 b(Up)27
+b(to)g(512)h(c)m(haracters)g(ma)m(y)390 5230 y(b)s(e)i(pushed)f(bac)m
+(k.)42 b Fs(rl_stuff_char)27 b Ft(returns)i(1)i(if)e(the)i(c)m
+(haracter)h(w)m(as)f(successfully)e(inserted;)390 5340
+y(0)i(otherwise.)p eop
+%%Page: 35 39
+35 38 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(35)3350 299 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(execute)p 862
+299 V 48 w(next)45 b Fe(\()p Fs(int)30 b(c)p Fe(\))390
+408 y Ft(Mak)m(e)37 b Fi(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)j(called.)56 b(This)390 518 y(sets)31 b Fi(rl)p
+636 518 28 4 v 39 w(p)s(ending)p 993 518 V 37 w(input)p
+Ft(.)3350 699 y([F)-8 b(unction])-3600 b Fg(int)39 b
+Ff(rl)p 432 699 35 5 v 51 w(clear)p 722 699 V 49 w(p)s(ending)p
+1172 699 V 49 w(input)44 b Fe(\()p Fs(void)p Fe(\))390
+808 y Ft(Unset)e Fi(rl)p 730 808 28 4 v 39 w(p)s(ending)p
+1087 808 V 37 w(input)p Ft(,)h(e\013ectiv)m(ely)g(negating)f(the)g
+(e\013ect)h(of)f(an)m(y)g(previous)e(call)h(to)i Fs(rl_)390
+918 y(execute_next\(\))p Ft(.)59 b(This)35 b(w)m(orks)j(only)f(if)f
+(the)i(p)s(ending)d(input)h(has)h(not)h(already)f(b)s(een)g(read)390
+1028 y(with)29 b Fs(rl_read_key\(\))p Ft(.)3350 1208
+y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 1208
+35 5 v 51 w(set)p 626 1208 V 49 w(k)m(eyb)s(oard)p 1136
+1208 V 51 w(input)p 1456 1208 V 48 w(timeout)45 b Fe(\()p
+Fs(int)29 b(u)p Fe(\))390 1318 y Ft(While)39 b(w)m(aiting)g(for)h(k)m
+(eyb)s(oard)g(input)e(in)h Fs(rl_read_key\(\))p Ft(,)g(Readline)g(will)
+e(w)m(ait)j(for)g Fi(u)g Ft(mi-)390 1427 y(croseconds)h(for)g(input)e
+(b)s(efore)h(calling)g(an)m(y)h(function)e(assigned)h(to)i
+Fs(rl_event_hook)p Ft(.)68 b(The)390 1537 y(default)30
+b(w)m(aiting)f(p)s(erio)s(d)f(is)i(one-ten)m(th)h(of)g(a)g(second.)40
+b(Returns)30 b(the)g(old)g(timeout)g(v)-5 b(alue.)150
+1758 y Fh(2.4.9)63 b(T)-10 b(erminal)40 b(Managemen)m(t)3350
+2000 y Ft([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p
+484 2000 V 51 w(prep)p 763 2000 V 49 w(terminal)44 b
+Fe(\()p Fs(int)30 b(meta_flag)p Fe(\))390 2110 y Ft(Mo)s(dify)41
+b(the)i(terminal)e(settings)h(for)g(Readline's)g(use,)j(so)e
+Fs(readline\(\))c Ft(can)k(read)f(a)h(single)390 2220
+y(c)m(haracter)32 b(at)g(a)f(time)g(from)f(the)h(k)m(eyb)s(oard.)43
+b(The)30 b Fi(meta)p 2376 2220 28 4 v 41 w(\015ag)39
+b Ft(argumen)m(t)31 b(should)e(b)s(e)h(non-zero)390 2329
+y(if)f(Readline)g(should)g(read)h(eigh)m(t-bit)g(input.)3350
+2510 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p
+484 2510 35 5 v 51 w(deprep)p 880 2510 V 48 w(terminal)45
+b Fe(\()p Fs(void)p Fe(\))390 2619 y Ft(Undo)31 b(the)h(e\013ects)h(of)
+f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)k(the)h(terminal)e(in)
+g(the)i(state)h(in)d(whic)m(h)390 2729 y(it)g(w)m(as)h(b)s(efore)f(the)
+g(most)h(recen)m(t)g(call)f(to)h Fs(rl_prep_terminal\(\))p
+Ft(.)3350 2910 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(rl)p 484 2910 V 51 w(tt)m(y)p 682 2910 V 50 w(set)p
+875 2910 V 49 w(default)p 1273 2910 V 49 w(bindings)44
+b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 3019 y Ft(Read)37
+b(the)g(op)s(erating)g(system's)g(terminal)e(editing)h(c)m(haracters)i
+(\(as)g(w)m(ould)d(b)s(e)i(displa)m(y)m(ed)e(b)m(y)390
+3129 y Fs(stty)p Ft(\))30 b(to)h(their)e(Readline)g(equiv)-5
+b(alen)m(ts.)40 b(The)30 b(bindings)d(are)k(p)s(erformed)e(in)g
+Fi(kmap)p Ft(.)3350 3310 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(rl)p 484 3310 V 51 w(tt)m(y)p 682 3310 V 50 w(unset)p
+1003 3310 V 49 w(default)p 1401 3310 V 48 w(bindings)44
+b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 3419 y Ft(Reset)k(the)f
+(bindings)c(manipulated)i(b)m(y)i Fs(rl_tty_set_default_bind)o(ing)o(s)
+26 b Ft(so)32 b(that)g(the)g(ter-)390 3529 y(minal)38
+b(editing)g(c)m(haracters)j(are)f(b)s(ound)e(to)i Fs(rl_insert)p
+Ft(.)66 b(The)39 b(bindings)d(are)k(p)s(erformed)e(in)390
+3638 y Fi(kmap)p Ft(.)3350 3819 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 3819 V 51 w(reset)p 726 3819
+V 49 w(terminal)44 b Fe(\()p Fs(const)29 b(char)h(*terminal_name)p
+Fe(\))390 3929 y Ft(Reinitialize)21 b(Readline's)i(idea)g(of)h(the)g
+(terminal)f(settings)g(using)g Fi(terminal)p 2979 3929
+28 4 v 38 w(name)29 b Ft(as)24 b(the)g(termi-)390 4038
+y(nal)31 b(t)m(yp)s(e)h(\(e.g.,)i Fs(vt100)p Ft(\).)44
+b(If)31 b Fi(terminal)p 1755 4038 V 39 w(name)37 b Ft(is)30
+b Fs(NULL)p Ft(,)i(the)g(v)-5 b(alue)31 b(of)h(the)g
+Fs(TERM)e Ft(en)m(vironmen)m(t)390 4148 y(v)-5 b(ariable)29
+b(is)h(used.)150 4368 y Fh(2.4.10)63 b(Utilit)m(y)40
+b(F)-10 b(unctions)3350 4611 y Ft([F)i(unction])-3600
+b Fg(void)39 b Ff(rl)p 484 4611 35 5 v 51 w(replace)p
+891 4611 V 49 w(line)44 b Fe(\()p Fs(const)29 b(char)g(*text,)g(int)g
+(clear_undo)p Fe(\))390 4721 y Ft(Replace)40 b(the)f(con)m(ten)m(ts)i
+(of)f Fs(rl_line_buffer)35 b Ft(with)j Fi(text)p Ft(.)69
+b(The)39 b(p)s(oin)m(t)g(and)f(mark)h(are)h(pre-)390
+4831 y(serv)m(ed,)27 b(if)d(p)s(ossible.)37 b(If)25 b
+Fi(clear)p 1423 4831 28 4 v 40 w(undo)k Ft(is)c(non-zero,)i(the)f(undo)
+e(list)g(asso)s(ciated)i(with)e(the)i(curren)m(t)390
+4940 y(line)j(is)g(cleared.)3350 5121 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 5121 35 5 v 51 w(extend)p 822
+5121 V 48 w(line)p 1051 5121 V 50 w(bu\013er)44 b Fe(\()p
+Fs(int)30 b(len)p Fe(\))390 5230 y Ft(Ensure)f(that)h
+Fs(rl_line_buffer)d Ft(has)j(enough)f(space)i(to)g(hold)e
+Fi(len)g Ft(c)m(haracters,)j(p)s(ossibly)27 b(real-)390
+5340 y(lo)s(cating)j(it)g(if)f(necessary)-8 b(.)p eop
+%%Page: 36 40
+36 39 bop 150 -116 a Ft(36)2600 b(GNU)31 b(Readline)e(Library)3350
+299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+299 35 5 v 51 w(initialize)j Fe(\()p Fs(void)p Fe(\))390
+408 y Ft(Initialize)35 b(or)i(re-initialize)d(Readline's)i(in)m(ternal)
+f(state.)62 b(It's)37 b(not)g(strictly)f(necessary)h(to)h(call)390
+518 y(this;)30 b Fs(readline\(\))d Ft(calls)j(it)g(b)s(efore)g(reading)
+f(an)m(y)i(input.)3350 687 y([F)-8 b(unction])-3600 b
+Fg(int)39 b Ff(rl)p 432 687 V 51 w(ding)44 b Fe(\()p
+Fs(void)p Fe(\))390 796 y Ft(Ring)29 b(the)i(terminal)e(b)s(ell,)f(ob)s
+(eying)i(the)g(setting)h(of)f Fs(bell-style)p Ft(.)3350
+965 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+965 V 51 w(alphab)s(etic)j Fe(\()p Fs(int)30 b(c)p Fe(\))390
+1074 y Ft(Return)g(1)g(if)g Fi(c)36 b Ft(is)29 b(an)i(alphab)s(etic)e
+(c)m(haracter.)3350 1243 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(rl)p 484 1243 V 51 w(displa)m(y)p 885 1243 V 49
+w(matc)m(h)p 1242 1243 V 50 w(list)45 b Fe(\()p Fs(char)29
+b(**matches,)f(int)h(len,)h(int)f(max)p Fe(\))390 1352
+y Ft(A)35 b(con)m(v)m(enience)g(function)e(for)h(displa)m(ying)e(a)j
+(list)e(of)i(strings)e(in)g(columnar)g(format)i(on)f(Read-)390
+1462 y(line's)e(output)h(stream.)51 b Fs(matches)31 b
+Ft(is)i(the)g(list)g(of)g(strings,)h(in)e(argv)i(format,)h(suc)m(h)e
+(as)h(a)g(list)e(of)390 1572 y(completion)24 b(matc)m(hes.)39
+b Fs(len)24 b Ft(is)f(the)h(n)m(um)m(b)s(er)f(of)i(strings)e(in)g
+Fs(matches)p Ft(,)g(and)h Fs(max)f Ft(is)h(the)g(length)g(of)390
+1681 y(the)i(longest)h(string)e(in)g Fs(matches)p Ft(.)37
+b(This)24 b(function)h(uses)h(the)g(setting)h(of)f Fs
+(print-completions-)390 1791 y(horizontally)33 b Ft(to)k(select)g(ho)m
+(w)f(the)g(matc)m(hes)i(are)e(displa)m(y)m(ed)f(\(see)i(Section)f
+(1.3.1)i([Readline)390 1900 y(Init)29 b(File)h(Syn)m(tax],)h(page)g
+(4\).)275 2069 y(The)g(follo)m(wing)g(are)h(implemen)m(ted)f(as)h
+(macros,)h(de\014ned)e(in)g Fs(chardefs.h)p Ft(.)43 b(Applications)30
+b(should)150 2179 y(refrain)f(from)h(using)f(them.)3350
+2347 y([F)-8 b(unction])-3600 b Fg(int)p 353 2347 V 90
+w Ff(rl)p 483 2347 V 50 w(upp)s(ercase)p 1033 2347 V
+48 w(p)46 b Fe(\()p Fs(int)29 b(c)p Fe(\))390 2457 y
+Ft(Return)h(1)g(if)g Fi(c)36 b Ft(is)29 b(an)i(upp)s(ercase)e(alphab)s
+(etic)g(c)m(haracter.)3350 2625 y([F)-8 b(unction])-3600
+b Fg(int)p 353 2625 V 90 w Ff(rl)p 483 2625 V 50 w(lo)m(w)m(ercase)p
+1004 2625 V 49 w(p)45 b Fe(\()p Fs(int)30 b(c)p Fe(\))390
+2735 y Ft(Return)g(1)g(if)g Fi(c)36 b Ft(is)29 b(a)i(lo)m(w)m(ercase)h
+(alphab)s(etic)d(c)m(haracter.)3350 2903 y([F)-8 b(unction])-3600
+b Fg(int)p 353 2903 V 90 w Ff(rl)p 483 2903 V 50 w(digit)p
+763 2903 V 49 w(p)46 b Fe(\()p Fs(int)29 b(c)p Fe(\))390
+3013 y Ft(Return)h(1)g(if)g Fi(c)36 b Ft(is)29 b(a)i(n)m(umeric)e(c)m
+(haracter.)3350 3182 y([F)-8 b(unction])-3600 b Fg(int)p
+353 3182 V 90 w Ff(rl)p 483 3182 V 50 w(to)p 635 3182
+V 50 w(upp)s(er)44 b Fe(\()p Fs(int)30 b(c)p Fe(\))390
+3291 y Ft(If)23 b Fi(c)30 b Ft(is)23 b(a)h(lo)m(w)m(ercase)h(alphab)s
+(etic)d(c)m(haracter,)27 b(return)c(the)h(corresp)s(onding)d(upp)s
+(ercase)i(c)m(haracter.)3350 3460 y([F)-8 b(unction])-3600
+b Fg(int)p 353 3460 V 90 w Ff(rl)p 483 3460 V 50 w(to)p
+635 3460 V 50 w(lo)m(w)m(er)45 b Fe(\()p Fs(int)30 b(c)p
+Fe(\))390 3569 y Ft(If)e Fi(c)35 b Ft(is)28 b(an)h(upp)s(ercase)f
+(alphab)s(etic)f(c)m(haracter,)k(return)d(the)h(corresp)s(onding)e(lo)m
+(w)m(ercase)j(c)m(harac-)390 3679 y(ter.)3350 3847 y([F)-8
+b(unction])-3600 b Fg(int)p 353 3847 V 90 w Ff(rl)p 483
+3847 V 50 w(digit)p 763 3847 V 49 w(v)-6 b(alue)45 b
+Fe(\()p Fs(int)30 b(c)p Fe(\))390 3957 y Ft(If)g Fi(c)36
+b Ft(is)30 b(a)g(n)m(um)m(b)s(er,)g(return)f(the)h(v)-5
+b(alue)30 b(it)g(represen)m(ts.)150 4165 y Fh(2.4.11)63
+b(Miscellaneous)42 b(F)-10 b(unctions)3350 4404 y Ft([F)i(unction])
+-3600 b Fg(int)39 b Ff(rl)p 432 4404 V 51 w(macro)p 789
+4404 V 50 w(bind)45 b Fe(\()p Fs(const)29 b(char)g(*keyseq,)f(const)h
+(char)g(*macro,)g(Keymap)565 4514 y(map)p Fe(\))390 4623
+y Ft(Bind)22 b(the)h(k)m(ey)h(sequence)g Fi(k)m(eyseq)i
+Ft(to)e(in)m(v)m(ok)m(e)g(the)g(macro)f Fi(macro)p Ft(.)39
+b(The)23 b(binding)d(is)j(p)s(erformed)e(in)390 4733
+y Fi(map)p Ft(.)39 b(When)28 b Fi(k)m(eyseq)i Ft(is)d(in)m(v)m(ok)m
+(ed,)i(the)e Fi(macro)33 b Ft(will)25 b(b)s(e)i(inserted)f(in)m(to)i
+(the)f(line.)39 b(This)25 b(function)390 4843 y(is)k(deprecated;)j(use)
+e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 5011 y([F)-8
+b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 5011 V 51
+w(macro)p 841 5011 V 51 w(dump)s(er)45 b Fe(\()p Fs(int)29
+b(readable)p Fe(\))390 5121 y Ft(Prin)m(t)d(the)h(k)m(ey)h(sequences)g
+(b)s(ound)d(to)j(macros)f(and)g(their)f(v)-5 b(alues,)27
+b(using)f(the)h(curren)m(t)g(k)m(eymap,)390 5230 y(to)32
+b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fi(readable)k Ft(is)c(non-zero,)h
+(the)f(list)f(is)g(formatted)i(in)e(suc)m(h)h(a)g(w)m(a)m(y)i(that)e
+(it)390 5340 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f
+Fs(inputrc)e Ft(\014le)i(and)f(re-read.)p eop
+%%Page: 37 41
+37 40 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(37)3350 299 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(v)-6 b(ariable)p
+877 299 V 48 w(bind)45 b Fe(\()p Fs(const)29 b(char)g(*variable,)f
+(const)h(char)g(*value)p Fe(\))390 408 y Ft(Mak)m(e)i(the)e(Readline)e
+(v)-5 b(ariable)28 b Fi(v)-5 b(ariable)33 b Ft(ha)m(v)m(e)d
+Fi(v)-5 b(alue)p Ft(.)40 b(This)27 b(b)s(eha)m(v)m(es)i(as)h(if)e(the)h
+(readline)e(com-)390 518 y(mand)h(`)p Fs(set)i Fl(variable)38
+b(value)11 b Ft(')28 b(had)g(b)s(een)g(executed)i(in)d(an)i
+Fs(inputrc)e Ft(\014le)h(\(see)h(Section)g(1.3.1)390
+628 y([Readline)g(Init)g(File)h(Syn)m(tax],)h(page)g(4\).)3350
+807 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p 484
+807 V 51 w(v)-6 b(ariable)p 929 807 V 49 w(dump)s(er)44
+b Fe(\()p Fs(int)30 b(readable)p Fe(\))390 916 y Ft(Prin)m(t)e(the)g
+(readline)f(v)-5 b(ariable)28 b(names)g(and)g(their)g(curren)m(t)g(v)-5
+b(alues)28 b(to)i Fs(rl_outstream)p Ft(.)37 b(If)28 b
+Fi(read-)390 1026 y(able)39 b Ft(is)33 b(non-zero,)j(the)e(list)e(is)h
+(formatted)i(in)e(suc)m(h)h(a)g(w)m(a)m(y)h(that)g(it)e(can)h(b)s(e)g
+(made)g(part)g(of)g(an)390 1135 y Fs(inputrc)28 b Ft(\014le)i(and)g
+(re-read.)3350 1314 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(rl)p 432 1314 V 51 w(set)p 626 1314 V 49 w(paren)p
+959 1314 V 49 w(blink)p 1260 1314 V 50 w(timeout)44 b
+Fe(\()p Fs(int)30 b(u)p Fe(\))390 1424 y Ft(Set)25 b(the)h(time)e(in)m
+(terv)-5 b(al)25 b(\(in)f(microseconds\))h(that)h(Readline)d(w)m(aits)i
+(when)f(sho)m(wing)h(a)g(balancing)390 1533 y(c)m(haracter)32
+b(when)d Fs(blink-matching-paren)c Ft(has)30 b(b)s(een)g(enabled.)3350
+1712 y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(rl)p
+575 1712 V 50 w(get)p 780 1712 V 50 w(termcap)45 b Fe(\()p
+Fs(const)29 b(char)g(*cap)p Fe(\))390 1822 y Ft(Retriev)m(e)f(the)f
+(string)f(v)-5 b(alue)26 b(of)h(the)h(termcap)f(capabilit)m(y)f
+Fi(cap)p Ft(.)40 b(Readline)25 b(fetc)m(hes)j(the)g(termcap)390
+1931 y(en)m(try)34 b(for)f(the)h(curren)m(t)f(terminal)f(name)i(and)f
+(uses)g(those)h(capabilities)d(to)j(mo)m(v)m(e)h(around)e(the)390
+2041 y(screen)21 b(line)f(and)g(p)s(erform)g(other)h(terminal-sp)s
+(eci\014c)e(op)s(erations,)j(lik)m(e)e(erasing)h(a)g(line.)36
+b(Readline)390 2151 y(do)s(es)f(not)g(use)g(all)e(of)j(a)f(terminal's)e
+(capabilities,)i(and)f(this)g(function)g(will)e(return)i(v)-5
+b(alues)34 b(for)390 2260 y(only)29 b(those)i(capabilities)e(Readline)g
+(uses.)150 2479 y Fh(2.4.12)63 b(Alternate)40 b(In)m(terface)275
+2721 y Ft(An)k(alternate)h(in)m(terface)g(is)f(a)m(v)-5
+b(ailable)44 b(to)i(plain)c Fs(readline\(\))p Ft(.)81
+b(Some)45 b(applications)e(need)h(to)150 2831 y(in)m(terlea)m(v)m(e)30
+b(k)m(eyb)s(oard)f(I/O)g(with)e(\014le,)i(device,)h(or)f(windo)m(w)e
+(system)i(I/O,)g(t)m(ypically)f(b)m(y)h(using)f(a)h(main)150
+2940 y(lo)s(op)e(to)h Fs(select\(\))e Ft(on)h(v)-5 b(arious)27
+b(\014le)g(descriptors.)38 b(T)-8 b(o)28 b(accomo)s(date)i(this)d
+(need,)h(readline)e(can)i(also)g(b)s(e)150 3050 y(in)m(v)m(ok)m(ed)k
+(as)f(a)h(`callbac)m(k')f(function)f(from)h(an)g(ev)m(en)m(t)h(lo)s
+(op.)43 b(There)30 b(are)i(functions)e(a)m(v)-5 b(ailable)30
+b(to)i(mak)m(e)150 3160 y(this)d(easy)-8 b(.)3350 3338
+y([F)g(unction])-3600 b Fg(void)39 b Ff(rl)p 484 3338
+V 51 w(callbac)m(k)p 934 3338 V 49 w(handler)p 1363 3338
+V 49 w(install)44 b Fe(\()p Fs(const)29 b(char)g(*prompt,)565
+3448 y(rl_vcpfunc_t)e(*lhandler)p Fe(\))390 3558 y Ft(Set)e(up)f(the)h
+(terminal)e(for)h(readline)g(I/O)g(and)g(displa)m(y)f(the)i(initial)d
+(expanded)i(v)-5 b(alue)25 b(of)g Fi(prompt)p Ft(.)390
+3667 y(Sa)m(v)m(e)33 b(the)f(v)-5 b(alue)31 b(of)h Fi(lhandler)j
+Ft(to)e(use)e(as)h(a)g(function)e(to)i(call)f(when)g(a)h(complete)g
+(line)e(of)i(input)390 3777 y(has)e(b)s(een)g(en)m(tered.)41
+b(The)30 b(function)f(tak)m(es)j(the)e(text)i(of)e(the)h(line)e(as)h
+(an)g(argumen)m(t.)3350 3956 y([F)-8 b(unction])-3600
+b Fg(void)39 b Ff(rl)p 484 3956 V 51 w(callbac)m(k)p
+934 3956 V 49 w(read)p 1203 3956 V 50 w(c)m(har)44 b
+Fe(\()p Fs(void)p Fe(\))390 4065 y Ft(Whenev)m(er)34
+b(an)g(application)e(determines)g(that)j(k)m(eyb)s(oard)e(input)f(is)h
+(a)m(v)-5 b(ailable,)34 b(it)f(should)f(call)390 4175
+y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)k(will)e(read)i
+(the)h(next)g(c)m(haracter)h(from)f(the)f(curren)m(t)h(input)390
+4284 y(source.)77 b(If)41 b(that)i(c)m(haracter)h(completes)f(the)f
+(line,)i Fs(rl_callback_read_char)36 b Ft(will)k(in)m(v)m(ok)m(e)390
+4394 y(the)c Fi(lhandler)j Ft(function)34 b(sa)m(v)m(ed)i(b)m(y)g
+Fs(rl_callback_handler_ins)o(tall)29 b Ft(to)36 b(pro)s(cess)f(the)g
+(line.)390 4504 y(Before)28 b(calling)d(the)i Fi(lhandler)j
+Ft(function,)d(the)f(terminal)g(settings)g(are)h(reset)h(to)f(the)g(v)
+-5 b(alues)26 b(they)390 4613 y(had)j(b)s(efore)g(calling)g
+Fs(rl_callback_handler_ins)o(tall)o Ft(.)35 b(If)29 b(the)h
+Fi(lhandler)k Ft(function)28 b(returns,)390 4723 y(the)d(terminal)e
+(settings)i(are)g(mo)s(di\014ed)d(for)j(Readline's)e(use)h(again.)39
+b Fs(EOF)24 b Ft(is)g(indicated)f(b)m(y)h(calling)390
+4832 y Fi(lhandler)34 b Ft(with)29 b(a)i Fs(NULL)e Ft(line.)3350
+5011 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p
+484 5011 V 51 w(callbac)m(k)p 934 5011 V 49 w(handler)p
+1363 5011 V 49 w(remo)m(v)m(e)45 b Fe(\()p Fs(void)p
+Fe(\))390 5121 y Ft(Restore)38 b(the)f(terminal)f(to)i(its)e(initial)f
+(state)j(and)f(remo)m(v)m(e)h(the)g(line)d(handler.)59
+b(This)36 b(ma)m(y)i(b)s(e)390 5230 y(called)d(from)h(within)e(a)j
+(callbac)m(k)f(as)h(w)m(ell)e(as)h(indep)s(enden)m(tly)-8
+b(.)56 b(If)36 b(the)h Fi(lhandler)j Ft(installed)34
+b(b)m(y)390 5340 y Fs(rl_callback_handler_inst)o(all)e
+Ft(do)s(es)39 b(not)g(exit)f(the)h(program,)i(either)d(this)g(function)
+f(or)p eop
+%%Page: 38 42
+38 41 bop 150 -116 a Ft(38)2600 b(GNU)31 b(Readline)e(Library)390
+299 y(the)j(function)e(referred)g(to)i(b)m(y)g(the)f(v)-5
+b(alue)31 b(of)h Fs(rl_deprep_term_function)25 b Ft(should)k(b)s(e)i
+(called)390 408 y(b)s(efore)f(the)h(program)f(exits)g(to)h(reset)g(the)
+f(terminal)f(settings.)150 660 y Fh(2.4.13)63 b(A)41
+b(Readline)f(Example)275 918 y Ft(Here)f(is)f(a)h(function)f(whic)m(h)g
+(c)m(hanges)i(lo)m(w)m(ercase)g(c)m(haracters)h(to)e(their)f(upp)s
+(ercase)g(equiv)-5 b(alen)m(ts,)150 1027 y(and)38 b(upp)s(ercase)f(c)m
+(haracters)j(to)f(lo)m(w)m(ercase.)67 b(If)37 b(this)h(function)f(w)m
+(as)i(b)s(ound)d(to)j(`)p Fs(M-c)p Ft(',)h(then)e(t)m(yping)150
+1137 y(`)p Fs(M-c)p Ft(')26 b(w)m(ould)f(c)m(hange)i(the)g(case)g(of)g
+(the)f(c)m(haracter)i(under)d(p)s(oin)m(t.)38 b(T)m(yping)25
+b(`)p Fs(M-1)30 b(0)g(M-c)p Ft(')c(w)m(ould)f(c)m(hange)150
+1247 y(the)31 b(case)g(of)g(the)f(follo)m(wing)f(10)i(c)m(haracters,)h
+(lea)m(ving)e(the)h(cursor)f(on)g(the)g(last)h(c)m(haracter)h(c)m
+(hanged.)390 1395 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f
+(following)g(characters.)e(*/)390 1504 y(int)390 1614
+y(invert_case_line)f(\(count,)j(key\))629 1724 y(int)h(count,)f(key;)
+390 1833 y({)485 1943 y(register)g(int)h(start,)f(end,)h(i;)485
+2162 y(start)g(=)g(rl_point;)485 2381 y(if)h(\(rl_point)d(>=)i
+(rl_end\))581 2491 y(return)f(\(0\);)485 2710 y(if)i(\(count)e(<)h(0\))
+581 2819 y({)676 2929 y(direction)f(=)h(-1;)676 3039
+y(count)g(=)g(-count;)581 3148 y(})485 3258 y(else)581
+3367 y(direction)e(=)j(1;)485 3587 y(/*)g(Find)e(the)h(end)g(of)g(the)g
+(range)g(to)g(modify.)f(*/)485 3696 y(end)h(=)h(start)e(+)i(\(count)e
+(*)h(direction\);)485 3915 y(/*)h(Force)e(it)h(to)g(be)h(within)e
+(range.)g(*/)485 4025 y(if)i(\(end)e(>)i(rl_end\))581
+4134 y(end)f(=)g(rl_end;)485 4244 y(else)g(if)g(\(end)g(<)g(0\))581
+4354 y(end)g(=)g(0;)485 4573 y(if)h(\(start)e(==)h(end\))581
+4682 y(return)f(\(0\);)485 4902 y(if)i(\(start)e(>)h(end\))581
+5011 y({)676 5121 y(int)g(temp)g(=)g(start;)676 5230
+y(start)g(=)g(end;)676 5340 y(end)g(=)h(temp;)p eop
+%%Page: 39 43
+39 42 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(39)581 299 y Fs(})485
+518 y(/*)48 b(Tell)e(readline)g(that)g(we)i(are)f(modifying)e(the)i
+(line,)629 628 y(so)g(it)g(will)g(save)f(the)h(undo)g(information.)d
+(*/)485 737 y(rl_modifying)h(\(start,)h(end\);)485 956
+y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f(i++\))581
+1066 y({)676 1176 y(if)i(\(_rl_uppercase_p)43 b
+(\(rl_line_buffer[i]\)\))772 1285 y(rl_line_buffer[i])g(=)k
+(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 1395 y(else)i(if)g
+(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 1504
+y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581
+1614 y(})485 1724 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
+(last)g(character)e(changed.)g(*/)485 1833 y(rl_point)h(=)h
+(\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f(:)h(start;)485
+1943 y(return)f(\(0\);)390 2052 y(})150 2298 y Fr(2.5)68
+b(Readline)47 b(Signal)e(Handling)275 2538 y Ft(Signals)39
+b(are)j(async)m(hronous)g(ev)m(en)m(ts)h(sen)m(t)f(to)g(a)g(pro)s(cess)
+f(b)m(y)h(the)g(Unix)e(k)m(ernel,)k(sometimes)e(on)150
+2647 y(b)s(ehalf)c(of)i(another)g(pro)s(cess.)68 b(They)39
+b(are)h(in)m(tended)f(to)h(indicate)f(exceptional)h(ev)m(en)m(ts,)k
+(lik)m(e)39 b(a)h(user)150 2757 y(pressing)28 b(the)j(in)m(terrupt)d(k)
+m(ey)j(on)f(his)e(terminal,)h(or)h(a)g(net)m(w)m(ork)h(connection)f(b)s
+(eing)f(brok)m(en.)40 b(There)30 b(is)150 2866 y(a)d(class)f(of)g
+(signals)f(that)i(can)g(b)s(e)f(sen)m(t)h(to)g(the)f(pro)s(cess)g
+(curren)m(tly)g(reading)f(input)f(from)i(the)h(k)m(eyb)s(oard.)150
+2976 y(Since)f(Readline)f(c)m(hanges)j(the)e(terminal)g(attributes)g
+(when)g(it)g(is)f(called,)i(it)f(needs)h(to)g(p)s(erform)e(sp)s(ecial)
+150 3086 y(pro)s(cessing)h(when)h(suc)m(h)g(a)h(signal)e(is)h(receiv)m
+(ed)h(in)e(order)h(to)h(restore)h(the)e(terminal)f(to)j(a)f(sane)f
+(state,)j(or)150 3195 y(pro)m(vide)f(application)g(writers)g(with)g
+(functions)g(to)i(do)g(so)f(man)m(ually)-8 b(.)275 3326
+y(Readline)38 b(con)m(tains)j(an)f(in)m(ternal)f(signal)g(handler)g
+(that)i(is)e(installed)f(for)i(a)h(n)m(um)m(b)s(er)e(of)h(signals)150
+3435 y(\()p Fs(SIGINT)p Ft(,)k Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p
+Ft(,)g Fs(SIGALRM)p Ft(,)h Fs(SIGTSTP)p Ft(,)f Fs(SIGTTIN)p
+Ft(,)g(and)e Fs(SIGTTOU)p Ft(\).)75 b(When)41 b(one)i(of)150
+3545 y(these)32 b(signals)e(is)h(receiv)m(ed,)i(the)f(signal)e(handler)
+g(will)f(reset)j(the)g(terminal)e(attributes)i(to)g(those)g(that)150
+3654 y(w)m(ere)c(in)e(e\013ect)i(b)s(efore)f Fs(readline\(\))d
+Ft(w)m(as)k(called,)f(reset)h(the)g(signal)d(handling)g(to)j(what)f(it)
+g(w)m(as)g(b)s(efore)150 3764 y Fs(readline\(\))42 b
+Ft(w)m(as)k(called,)i(and)c(resend)h(the)g(signal)f(to)i(the)f(calling)
+f(application.)83 b(If)44 b(and)h(when)150 3874 y(the)34
+b(calling)f(application's)f(signal)h(handler)f(returns,)i(Readline)e
+(will)g(reinitialize)f(the)j(terminal)f(and)150 3983
+y(con)m(tin)m(ue)28 b(to)h(accept)h(input.)38 b(When)28
+b(a)h Fs(SIGINT)d Ft(is)i(receiv)m(ed,)h(the)f(Readline)f(signal)g
+(handler)g(p)s(erforms)150 4093 y(some)39 b(additional)e(w)m(ork,)k
+(whic)m(h)c(will)f(cause)j(an)m(y)h(partially-en)m(tered)d(line)g(to)j
+(b)s(e)e(ab)s(orted)g(\(see)i(the)150 4202 y(description)28
+b(of)j Fs(rl_free_line_state\(\))25 b Ft(b)s(elo)m(w\).)275
+4333 y(There)e(is)h(an)g(additional)e(Readline)h(signal)g(handler,)h
+(for)g Fs(SIGWINCH)p Ft(,)g(whic)m(h)f(the)h(k)m(ernel)g(sends)f(to)j
+(a)150 4442 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)e(size)i(c)m
+(hanges)h(\(for)f(example,)g(if)f(a)h(user)f(resizes)h(an)f
+Fs(xterm)p Ft(\).)39 b(The)150 4552 y(Readline)34 b Fs(SIGWINCH)g
+Ft(handler)f(up)s(dates)i(Readline's)f(in)m(ternal)h(screen)g(size)h
+(information,)f(and)g(then)150 4662 y(calls)e(an)m(y)h
+Fs(SIGWINCH)e Ft(signal)g(handler)g(the)i(calling)e(application)g(has)i
+(installed.)48 b(Readline)33 b(calls)g(the)150 4771 y(application's)h
+Fs(SIGWINCH)f Ft(signal)g(handler)h(without)g(resetting)h(the)h
+(terminal)d(to)j(its)f(original)e(state.)150 4881 y(If)e(the)i
+(application's)d(signal)h(handler)f(do)s(es)h(more)h(than)g(up)s(date)f
+(its)h(idea)f(of)h(the)g(terminal)f(size)h(and)150 4990
+y(return)c(\(for)i(example,)g(a)g Fs(longjmp)d Ft(bac)m(k)k(to)f(a)g
+(main)f(pro)s(cessing)f(lo)s(op\),)h(it)g Fn(must)39
+b Ft(call)29 b Fs(rl_cleanup_)150 5100 y(after_signal\(\))d
+Ft(\(describ)s(ed)j(b)s(elo)m(w\),)h(to)h(restore)g(the)g(terminal)e
+(state.)275 5230 y(Readline)e(pro)m(vides)g(t)m(w)m(o)j(v)-5
+b(ariables)27 b(that)j(allo)m(w)e(application)f(writers)g(to)i(con)m
+(trol)g(whether)f(or)h(not)150 5340 y(it)k(will)d(catc)m(h)35
+b(certain)e(signals)e(and)i(act)h(on)f(them)g(when)f(they)i(are)f
+(receiv)m(ed.)50 b(It)33 b(is)f(imp)s(ortan)m(t)g(that)p
eop
-%%Page: 17 19
-17 18 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(17)75 149 y Ft(delete-char-or-list)13 b(\(\))315 204
-y Fu(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f
-(at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315
-259 y(\(lik)o(e)i Ft(delete-char)p Fu(\).)j(If)d(at)f(the)h(end)g(of)f
-(the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d
-Ft(possible-)315 314 y(completions)p Fu(.)k(This)e(command)f(is)h(un)o
-(b)q(ound)g(b)o(y)f(default.)75 428 y Fj(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 551 y Ft(start-kbd-macro)13 b(\(C-x)i(\(\))315
-606 y Fu(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699
-y Ft(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fu(Stop)f(sa)o(ving)f(the)h
-(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q
-(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75
-902 y Ft(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y
-Fu(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o
-(y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012
-y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q
-(oard.)75 1126 y Fj(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-1249 y Ft(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304
-y Fu(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fk(inputrc)k
-Fu(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
-(ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75
-1452 y Ft(abort)e(\(C-g\))315 1507 y Fu(Ab)q(ort)f(the)g(curren)o(t)h
-(editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s
-(ject)e(to)g(the)315 1561 y(setting)i(of)g Ft(bell-style)p
-Fu(\).)75 1655 y Ft(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fk(x)p Ft(,)h(...\))315 1710 y Fu(If)f(the)g(meta\014ed)g(c)o(haracter)
-f Fk(x)k Fu(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g
-(b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o
-(haracter.)75 1858 y Ft(prefix-meta)e(\()377 1856 y Fn(h)p
-389 1830 70 2 v 389 1858 a Fm(ESC)p 389 1866 V 456 1856
-a Fn(i)471 1858 y Ft(\))315 1913 y Fu(Metafy)k(the)h(next)g(c)o
-(haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h
-(without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485
-1966 y Fn(h)p 496 1939 V 496 1968 a Fm(ESC)p 496 1975
-V 563 1966 a Fn(i)593 1968 y Ft(f)p Fu(')f(is)h(equiv)m(alen)o(t)h(to)d
-(t)o(yping)i Fo(M-f)p Fu(.)75 2061 y Ft(undo)f(\(C-_)f(or)h(C-x)g
-(C-u\))315 2116 y Fu(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
-(ered)g(for)e(eac)o(h)h(line.)75 2209 y Ft(revert-line)f(\(M-r\))315
-2264 y Fu(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26
-b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Ft(undo)f
-Fu(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 2412 y Ft(tilde-expand)f(\(M-~\))315
-2467 y Fu(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)75 2560 y Ft(set-mark)f(\(C-@\))315 2615 y Fu(Set)i(the)h(mark)f
-(to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f
-(is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q
-(osition.)p eop
-%%Page: 18 20
-18 19 bop 75 -58 a Fu(18)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Ft(exchange-point-and-mark)c(\(C-x)j(C-x\))315
-204 y Fu(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c
-(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed)
-315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g
-(sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Ft(character-search)e(\(C-]\))
-315 402 y Fu(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g
-(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o
-(haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f
-(previous)i(o)q(ccurrences.)75 544 y Ft(character-search-backward)c
-(\(M-C-]\))315 599 y Fu(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q
-(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)
-e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o
-(hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y
-Ft(insert-comment)d(\(M-#\))315 796 y Fu(Without)18 b(a)f(n)o(umeric)i
-(argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Ft(comment-begin)f
-Fu(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i
-(of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o
-(t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:)
-26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g
-(line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e
-Ft(comment-begin)p Fu(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h
-(the)315 1015 y(c)o(haracters)j(in)i Ft(comment-begin)d
-Fu(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36
-b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g
-(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158
-y Ft(dump-functions)c(\(\))315 1213 y Fu(Prin)o(t)g(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g
-(output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i
-(supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o
-(y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
-Fk(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
-(y)f(default.)75 1410 y Ft(dump-variables)e(\(\))315
-1465 y Fu(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f
-(their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315
-1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e
-(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315
-1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fk(inputrc)k
-Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)
-75 1662 y Ft(dump-macros)f(\(\))315 1717 y Fu(Prin)o(t)j(all)h(of)e
-(the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h
-(the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h
-(argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j
-(suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g
-(part)g(of)f(an)h Fk(inputrc)k Fu(\014le.)i(This)15 b(command)g(is)h
-(un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y
-Ft(emacs-editing-mode)d(\(C-e\))315 2024 y Fu(When)j(in)g
-Ft(vi)e Fu(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g
-Ft(emacs)f Fu(editing)j(mo)q(de.)75 2111 y Ft(vi-editing-mode)c
-(\(M-C-j\))315 2166 y Fu(When)j(in)g Ft(emacs)e Fu(editing)j(mo)q(de,)e
-(this)g(causes)h(a)f(switc)o(h)g(to)g Ft(vi)f Fu(editing)j(mo)q(de.)75
-2290 y Fs(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385
-y Fu(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f
-(a)h(full)h(set)f(of)f Ft(vi)g Fu(editing)j(functions,)f(it)f(do)q(es)g
-(con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h
-(of)d(the)i(line.)27 b(The)17 b(Readline)h Ft(vi)f Fu(mo)q(de)g(b)q
-(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c
-Fp(posix)g Fu(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o
-(h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Ft(emacs)e
-Fu(and)i Ft(vi)f Fu(editing)i(mo)q(des,)f(use)f(the)h(command)75
-2615 y Fo(M-C-j)j Fu(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e
-(in)h Ft(vi)f Fu(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e
-Ft(emacs)75 2670 y Fu(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f
-Ft(emacs)g Fu(mo)q(de.)p eop
-%%Page: 19 21
-19 20 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e
-Ft(vi)g Fu(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g
-(`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h
-(an)f(`)p Ft(i)p Fu('.)18 b(Pressing)608 202 y Fn(h)p
-620 176 70 2 v 620 204 a Fm(ESC)p 620 212 V 687 202 a
-Fn(i)715 204 y Fu(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q
-(de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g
-(line)h(with)g(the)f(standard)f Ft(vi)h Fu(mo)o(v)o(emen)o(t)f(k)o
-(eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75
-314 y(`)p Ft(k)p Fu(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p
-Ft(j)p Fu(',)e(and)h(so)g(forth.)p eop
-%%Page: 20 22
-20 21 bop 75 -58 a Fu(20)1299 b(GNU)15 b(Readline)h(Library)p
+%%Page: 40 44
+40 43 bop 150 -116 a Ft(40)2600 b(GNU)31 b(Readline)e(Library)150
+299 y(applications)35 b(c)m(hange)j(the)e(v)-5 b(alues)36
+b(of)h(these)g(v)-5 b(ariables)35 b(only)h(when)g(calling)f
+Fs(readline\(\))p Ft(,)g(not)i(in)f(a)150 408 y(signal)29
+b(handler,)g(so)h(Readline's)g(in)m(ternal)f(signal)g(state)j(is)d(not)
+i(corrupted.)3371 596 y([V)-8 b(ariable])-3600 b Fg(int)39
+b Ff(rl)p 432 596 35 5 v 51 w(catc)m(h)p 747 596 V 48
+w(signals)390 705 y Ft(If)28 b(this)g(v)-5 b(ariable)28
+b(is)g(non-zero,)i(Readline)d(will)f(install)h(signal)g(handlers)g(for)
+i Fs(SIGINT)p Ft(,)f Fs(SIGQUIT)p Ft(,)390 815 y Fs(SIGTERM)p
+Ft(,)h Fs(SIGALRM)p Ft(,)f Fs(SIGTSTP)p Ft(,)h Fs(SIGTTIN)p
+Ft(,)g(and)g Fs(SIGTTOU)p Ft(.)390 951 y(The)h(default)f(v)-5
+b(alue)30 b(of)h Fs(rl_catch_signals)26 b Ft(is)j(1.)3371
+1138 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+1138 V 51 w(catc)m(h)p 747 1138 V 48 w(sigwinc)m(h)390
+1248 y Ft(If)30 b(this)f(v)-5 b(ariable)29 b(is)h(non-zero,)h(Readline)
+e(will)f(install)g(a)j(signal)e(handler)f(for)i Fs(SIGWINCH)p
+Ft(.)390 1384 y(The)g(default)f(v)-5 b(alue)30 b(of)h
+Fs(rl_catch_sigwinch)25 b Ft(is)30 b(1.)275 1571 y(If)g(an)h
+(application)e(do)s(es)i(not)g(wish)e(to)j(ha)m(v)m(e)g(Readline)e
+(catc)m(h)i(an)m(y)f(signals,)f(or)h(to)h(handle)d(signals)150
+1681 y(other)39 b(than)f(those)h(Readline)f(catc)m(hes)i(\()p
+Fs(SIGHUP)p Ft(,)g(for)e(example\),)j(Readline)c(pro)m(vides)h(con)m(v)
+m(enience)150 1791 y(functions)29 b(to)i(do)f(the)h(necessary)g
+(terminal)e(and)g(in)m(ternal)g(state)j(clean)m(up)e(up)s(on)f(receipt)
+h(of)h(a)f(signal.)3350 1978 y([F)-8 b(unction])-3600
+b Fg(void)39 b Ff(rl)p 484 1978 V 51 w(clean)m(up)p 916
+1978 V 48 w(after)p 1200 1978 V 49 w(signal)45 b Fe(\()p
+Fs(void)p Fe(\))390 2088 y Ft(This)32 b(function)h(will)e(reset)j(the)g
+(state)i(of)e(the)g(terminal)e(to)j(what)f(it)f(w)m(as)h(b)s(efore)g
+Fs(readline\(\))390 2197 y Ft(w)m(as)c(called,)f(and)f(remo)m(v)m(e)j
+(the)f(Readline)e(signal)g(handlers)f(for)i(all)f(signals,)h(dep)s
+(ending)e(on)i(the)390 2307 y(v)-5 b(alues)30 b(of)g
+Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p
+Ft(.)3350 2494 y([F)-8 b(unction])-3600 b Fg(void)39
+b Ff(rl)p 484 2494 V 51 w(free)p 723 2494 V 49 w(line)p
+953 2494 V 50 w(state)44 b Fe(\()p Fs(void)p Fe(\))390
+2604 y Ft(This)37 b(will)g(free)i(an)m(y)h(partial)e(state)i(asso)s
+(ciated)g(with)e(the)h(curren)m(t)g(input)e(line)h(\(undo)g(infor-)390
+2713 y(mation,)45 b(an)m(y)e(partial)f(history)f(en)m(try)-8
+b(,)47 b(an)m(y)42 b(partially-en)m(tered)g(k)m(eyb)s(oard)g(macro,)47
+b(and)42 b(an)m(y)390 2823 y(partially-en)m(tered)47
+b(n)m(umeric)f(argumen)m(t\).)94 b(This)46 b(should)g(b)s(e)h(called)g
+(b)s(efore)g Fs(rl_cleanup_)390 2932 y(after_signal\(\))p
+Ft(.)74 b(The)42 b(Readline)f(signal)g(handler)g(for)i
+Fs(SIGINT)e Ft(calls)g(this)h(to)h(ab)s(ort)g(the)390
+3042 y(curren)m(t)30 b(input)f(line.)3350 3229 y([F)-8
+b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 3229 V 51
+w(reset)p 778 3229 V 49 w(after)p 1063 3229 V 50 w(signal)44
+b Fe(\()p Fs(void)p Fe(\))390 3339 y Ft(This)27 b(will)e(reinitialize)h
+(the)j(terminal)e(and)h(reinstall)e(an)m(y)j(Readline)e(signal)g
+(handlers,)g(dep)s(end-)390 3449 y(ing)j(on)g(the)g(v)-5
+b(alues)30 b(of)h Fs(rl_catch_signals)26 b Ft(and)j Fs
+(rl_catch_sigwinch)p Ft(.)275 3636 y(If)38 b(an)i(application)d(do)s
+(es)i(not)h(wish)e(Readline)g(to)i(catc)m(h)h Fs(SIGWINCH)p
+Ft(,)e(it)g(ma)m(y)h(call)f Fs(rl_resize_)150 3746 y(terminal\(\))24
+b Ft(or)j Fs(rl_set_screen_size\(\))22 b Ft(to)28 b(force)g(Readline)d
+(to)j(up)s(date)f(its)f(idea)h(of)g(the)g(terminal)150
+3855 y(size)j(when)g(a)g Fs(SIGWINCH)e Ft(is)i(receiv)m(ed.)3350
+4043 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p
+484 4043 V 51 w(resize)p 816 4043 V 49 w(terminal)45
+b Fe(\()p Fs(void)p Fe(\))390 4152 y Ft(Up)s(date)30
+b(Readline's)f(in)m(ternal)g(screen)i(size)f(b)m(y)g(reading)g(v)-5
+b(alues)30 b(from)g(the)g(k)m(ernel.)3350 4339 y([F)-8
+b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 4339 V 51
+w(set)p 678 4339 V 49 w(screen)p 1040 4339 V 50 w(size)45
+b Fe(\()p Fs(int)30 b(rows,)f(int)g(cols)p Fe(\))390
+4449 y Ft(Set)i(Readline's)e(idea)h(of)g(the)h(terminal)e(size)h(to)h
+Fi(ro)m(ws)j Ft(ro)m(ws)c(and)g Fi(cols)k Ft(columns.)275
+4636 y(If)e(an)i(application)d(do)s(es)i(not)h(w)m(an)m(t)g(to)g
+(install)d(a)j Fs(SIGWINCH)d Ft(handler,)i(but)f(is)h(still)e(in)m
+(terested)i(in)150 4746 y(the)e(screen)f(dimensions,)e(Readline's)h
+(idea)h(of)h(the)f(screen)h(size)f(ma)m(y)h(b)s(e)f(queried.)3350
+4933 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p
+484 4933 V 51 w(get)p 690 4933 V 50 w(screen)p 1053 4933
+V 49 w(size)45 b Fe(\()p Fs(int)30 b(*rows,)e(int)i(*cols)p
+Fe(\))390 5043 y Ft(Return)f(Readline's)g(idea)h(of)g(the)g(terminal's)
+f(size)h(in)f(the)h(v)-5 b(ariables)29 b(p)s(oin)m(ted)g(to)h(b)m(y)g
+(the)h(argu-)390 5153 y(men)m(ts.)275 5340 y(The)e(follo)m(wing)g
+(functions)g(install)f(and)i(remo)m(v)m(e)i(Readline's)d(signal)g
+(handlers.)p eop
+%%Page: 41 45
+41 44 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(41)3350 299 y([F)-8 b(unction])-3600
+b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(set)p 626 299
+V 49 w(signals)45 b Fe(\()p Fs(void)p Fe(\))390 408 y
+Ft(Install)34 b(Readline's)f(signal)h(handler)f(for)i
+Fs(SIGINT)p Ft(,)g Fs(SIGQUIT)p Ft(,)g Fs(SIGTERM)p Ft(,)f
+Fs(SIGALRM)p Ft(,)h Fs(SIGTSTP)p Ft(,)390 518 y Fs(SIGTTIN)p
+Ft(,)23 b Fs(SIGTTOU)p Ft(,)g(and)f Fs(SIGWINCH)p Ft(,)h(dep)s(ending)e
+(on)i(the)g(v)-5 b(alues)22 b(of)i Fs(rl_catch_signals)19
+b Ft(and)390 628 y Fs(rl_catch_sigwinch)p Ft(.)3350 820
+y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 820
+V 51 w(clear)p 722 820 V 49 w(signals)45 b Fe(\()p Fs(void)p
+Fe(\))390 929 y Ft(Remo)m(v)m(e)32 b(all)d(of)i(the)g(Readline)e
+(signal)g(handlers)f(installed)g(b)m(y)i Fs(rl_set_signals\(\))p
+Ft(.)150 1196 y Fr(2.6)68 b(Custom)45 b(Completers)275
+1444 y Ft(T)m(ypically)-8 b(,)32 b(a)i(program)f(that)h(reads)f
+(commands)f(from)h(the)g(user)g(has)g(a)g(w)m(a)m(y)i(of)e(disam)m
+(biguating)150 1554 y(commands)i(and)g(data.)56 b(If)35
+b(y)m(our)h(program)f(is)f(one)i(of)g(these,)h(then)e(it)g(can)h(pro)m
+(vide)e(completion)h(for)150 1663 y(commands,)29 b(data,)i(or)e(b)s
+(oth.)39 b(The)29 b(follo)m(wing)f(sections)h(describ)s(e)e(ho)m(w)j(y)
+m(our)f(program)g(and)f(Readline)150 1773 y(co)s(op)s(erate)j(to)h(pro)
+m(vide)d(this)g(service.)150 2004 y Fh(2.6.1)63 b(Ho)m(w)40
+b(Completing)h(W)-10 b(orks)275 2252 y Ft(In)33 b(order)h(to)h
+(complete)g(some)f(text,)j(the)d(full)e(list)h(of)h(p)s(ossible)e
+(completions)i(m)m(ust)g(b)s(e)f(a)m(v)-5 b(ailable.)150
+2362 y(That)34 b(is,)g(it)g(is)f(not)h(p)s(ossible)e(to)i(accurately)h
+(expand)e(a)i(partial)e(w)m(ord)g(without)g(kno)m(wing)h(all)f(of)h
+(the)150 2472 y(p)s(ossible)e(w)m(ords)j(whic)m(h)f(mak)m(e)i(sense)e
+(in)g(that)i(con)m(text.)56 b(The)34 b(Readline)g(library)f(pro)m
+(vides)g(the)j(user)150 2581 y(in)m(terface)e(to)g(completion,)f(and)g
+(t)m(w)m(o)i(of)e(the)g(most)h(common)g(completion)e(functions:)45
+b(\014lename)33 b(and)150 2691 y(username.)k(F)-8 b(or)23
+b(completing)e(other)g(t)m(yp)s(es)h(of)g(text,)j(y)m(ou)d(m)m(ust)f
+(write)g(y)m(our)g(o)m(wn)h(completion)f(function.)150
+2800 y(This)29 b(section)h(describ)s(es)f(exactly)i(what)f(suc)m(h)g
+(functions)f(m)m(ust)h(do,)h(and)f(pro)m(vides)f(an)h(example.)275
+2939 y(There)f(are)i(three)g(ma)5 b(jor)30 b(functions)f(used)h(to)h(p)
+s(erform)e(completion:)199 3077 y(1.)61 b(The)43 b(user-in)m(terface)g
+(function)f Fs(rl_complete\(\))p Ft(.)76 b(This)42 b(function)g(is)g
+(called)h(with)f(the)i(same)330 3186 y(argumen)m(ts)36
+b(as)g(other)g(bindable)d(Readline)h(functions:)50 b
+Fi(coun)m(t)38 b Ft(and)d Fi(in)m(v)m(oking)p 3109 3186
+28 4 v 39 w(k)m(ey)p Ft(.)57 b(It)36 b(isolates)330 3296
+y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)h(and)e(calls)h
+Fs(rl_completion_matches\(\))31 b Ft(to)39 b(generate)g(a)f(list)e(of)
+330 3406 y(p)s(ossible)29 b(completions.)42 b(It)31 b(then)g(either)f
+(lists)g(the)h(p)s(ossible)e(completions,)h(inserts)g(the)h(p)s
+(ossible)330 3515 y(completions,)48 b(or)d(actually)g(p)s(erforms)f
+(the)h(completion,)j(dep)s(ending)43 b(on)i(whic)m(h)f(b)s(eha)m(vior)g
+(is)330 3625 y(desired.)199 3761 y(2.)61 b(The)33 b(in)m(ternal)f
+(function)h Fs(rl_completion_matches\(\))27 b Ft(uses)33
+b(an)g(application-supplied)c Fi(gener-)330 3871 y(ator)44
+b Ft(function)36 b(to)i(generate)g(the)f(list)f(of)h(p)s(ossible)d
+(matc)m(hes,)40 b(and)d(then)f(returns)g(the)h(arra)m(y)h(of)330
+3980 y(these)h(matc)m(hes.)68 b(The)39 b(caller)f(should)f(place)i(the)
+g(address)f(of)h(its)f(generator)j(function)c(in)h Fs(rl_)330
+4090 y(completion_entry_functio)o(n)p Ft(.)199 4226 y(3.)61
+b(The)22 b(generator)i(function)e(is)g(called)g(rep)s(eatedly)g(from)h
+Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 4336
+y(a)33 b(string)f(eac)m(h)i(time.)48 b(The)32 b(argumen)m(ts)h(to)h
+(the)f(generator)h(function)d(are)i Fi(text)j Ft(and)c
+Fi(state)p Ft(.)50 b Fi(text)330 4446 y Ft(is)31 b(the)h(partial)f(w)m
+(ord)h(to)h(b)s(e)e(completed.)46 b Fi(state)38 b Ft(is)31
+b(zero)i(the)f(\014rst)g(time)f(the)i(function)d(is)h(called,)330
+4555 y(allo)m(wing)43 b(the)h(generator)h(to)f(p)s(erform)f(an)m(y)h
+(necessary)g(initialization,)h(and)e(a)h(p)s(ositiv)m(e)f(non-)330
+4665 y(zero)30 b(in)m(teger)g(for)e(eac)m(h)j(subsequen)m(t)d(call.)40
+b(The)29 b(generator)h(function)e(returns)g Fs(\(char)h(*\)NULL)e
+Ft(to)330 4774 y(inform)36 b Fs(rl_completion_matches\(\))c
+Ft(that)39 b(there)f(are)g(no)g(more)g(p)s(ossibilities)c(left.)64
+b(Usually)330 4884 y(the)39 b(generator)h(function)d(computes)i(the)g
+(list)e(of)i(p)s(ossible)d(completions)i(when)g Fi(state)45
+b Ft(is)38 b(zero,)330 4994 y(and)25 b(returns)f(them)i(one)f(at)i(a)f
+(time)f(on)g(subsequen)m(t)g(calls.)38 b(Eac)m(h)26 b(string)f(the)h
+(generator)g(function)330 5103 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m
+(ust)f(b)s(e)f(allo)s(cated)h(with)e Fs(malloc\(\))p
+Ft(;)h(Readline)f(frees)i(the)g(strings)f(when)330 5213
+y(it)i(has)h(\014nished)d(with)i(them.)51 b(Suc)m(h)33
+b(a)h(generator)h(function)e(is)g(referred)g(to)h(as)h(an)e
+Fi(application-)330 5322 y(sp)s(eci\014c)c(completion)h(function)p
+Ft(.)p eop
+%%Page: 42 46
+42 45 bop 150 -116 a Ft(42)2600 b(GNU)31 b(Readline)e(Library)3350
+299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+299 35 5 v 51 w(complete)44 b Fe(\()p Fs(int)30 b(ignore,)e(int)h
+(invoking_key)p Fe(\))390 408 y Ft(Complete)h(the)h(w)m(ord)g(at)g(or)g
+(b)s(efore)f(p)s(oin)m(t.)40 b(Y)-8 b(ou)32 b(ha)m(v)m(e)g(supplied)27
+b(the)k(function)e(that)i(do)s(es)g(the)390 518 y(initial)38
+b(simple)h(matc)m(hing)j(selection)e(algorithm)h(\(see)h
+Fs(rl_completion_matches\(\))o Ft(\).)67 b(The)390 628
+y(default)30 b(is)f(to)i(do)f(\014lename)g(completion.)3371
+811 y([V)-8 b(ariable])-3600 b Fg(rl_compentry_func_t)44
+b(*)38 b Ff(rl)p 1359 811 V 51 w(completion)p 1960 811
+V 49 w(en)m(try)p 2275 811 V 50 w(function)390 921 y
+Ft(This)g(is)h(a)h(p)s(oin)m(ter)f(to)i(the)f(generator)h(function)e
+(for)g Fs(rl_completion_matches\(\))p Ft(.)63 b(If)40
+b(the)390 1031 y(v)-5 b(alue)23 b(of)h Fs(rl_completion_entry_funct)o
+(ion)17 b Ft(is)23 b Fs(NULL)g Ft(then)g(the)h(default)f(\014lename)g
+(generator)390 1140 y(function,)48 b Fs(rl_filename_completion_)o(fun)o
+(ctio)o(n\(\))p Ft(,)42 b(is)i(used.)84 b(An)44 b Fi(application-sp)s
+(eci\014c)390 1250 y(completion)20 b(function)g Ft(is)g(a)i(function)d
+(whose)i(address)f(is)g(assigned)h(to)g Fs(rl_completion_entry_)390
+1359 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)30
+b(are)h(used)e(to)j(generate)f(p)s(ossible)d(completions.)150
+1583 y Fh(2.6.2)63 b(Completion)40 b(F)-10 b(unctions)275
+1827 y Ft(Here)30 b(is)g(the)g(complete)h(list)e(of)i(callable)e
+(completion)h(functions)f(presen)m(t)h(in)f(Readline.)3350
+2010 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+2010 V 51 w(complete)p 933 2010 V 49 w(in)m(ternal)k
+Fe(\()p Fs(int)30 b(what_to_do)p Fe(\))390 2120 y Ft(Complete)36
+b(the)h(w)m(ord)f(at)i(or)e(b)s(efore)g(p)s(oin)m(t.)59
+b Fi(what)p 2208 2120 28 4 v 40 w(to)p 2328 2120 V 41
+w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e(with)f(the)i(com-)390
+2230 y(pletion.)42 b(A)31 b(v)-5 b(alue)31 b(of)g(`)p
+Fs(?)p Ft(')g(means)h(list)d(the)j(p)s(ossible)c(completions.)43
+b(`)p Fs(TAB)p Ft(')31 b(means)g(do)g(standard)390 2339
+y(completion.)42 b(`)p Fs(*)p Ft(')32 b(means)f(insert)f(all)g(of)h
+(the)g(p)s(ossible)e(completions.)42 b(`)p Fs(!)p Ft(')32
+b(means)f(to)h(displa)m(y)d(all)390 2449 y(of)35 b(the)f(p)s(ossible)e
+(completions,)j(if)e(there)i(is)e(more)h(than)h(one,)g(as)g(w)m(ell)e
+(as)i(p)s(erforming)d(partial)390 2558 y(completion.)39
+b(`)p Fs(@)p Ft(')27 b(is)g(similar)d(to)k(`)p Fs(!)p
+Ft(',)h(but)d(p)s(ossible)f(completions)i(are)g(not)h(listed)e(if)g
+(the)h(p)s(ossible)390 2668 y(completions)j(share)g(a)g(common)h
+(pre\014x.)3350 2852 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(rl)p 432 2852 35 5 v 51 w(complete)44 b Fe(\()p
+Fs(int)30 b(ignore,)e(int)h(invoking_key)p Fe(\))390
+2961 y Ft(Complete)41 b(the)g(w)m(ord)g(at)h(or)f(b)s(efore)g(p)s(oin)m
+(t.)72 b(Y)-8 b(ou)41 b(ha)m(v)m(e)i(supplied)37 b(the)42
+b(function)e(that)h(do)s(es)390 3071 y(the)33 b(initial)d(simple)h
+(matc)m(hing)i(selection)g(algorithm)f(\(see)i Fs
+(rl_completion_matches\(\))27 b Ft(and)390 3180 y Fs
+(rl_completion_entry_func)o(tion)o Ft(\).)52 b(The)35
+b(default)g(is)g(to)i(do)e(\014lename)g(completion.)57
+b(This)390 3290 y(calls)30 b Fs(rl_complete_internal\(\))24
+b Ft(with)29 b(an)h(argumen)m(t)h(dep)s(ending)d(on)i
+Fi(in)m(v)m(oking)p 3316 3290 28 4 v 39 w(k)m(ey)p Ft(.)3350
+3474 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+3474 35 5 v 51 w(p)s(ossible)p 878 3474 V 49 w(completions)45
+b Fe(\()p Fs(int)30 b(count,)e(int)i(invoking_key)p Fe(\))390
+3583 y Ft(List)40 b(the)g(p)s(ossible)e(completions.)71
+b(See)40 b(description)f(of)i Fs(rl_complete)27 b(\(\))p
+Ft(.)70 b(This)39 b(calls)h Fs(rl_)390 3693 y(complete_internal\(\))25
+b Ft(with)k(an)h(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350
+3877 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432
+3877 V 51 w(insert)p 769 3877 V 49 w(completions)44 b
+Fe(\()p Fs(int)30 b(count,)f(int)g(invoking_key)p Fe(\))390
+3986 y Ft(Insert)k(the)h(list)e(of)i(p)s(ossible)d(completions)i(in)m
+(to)g(the)h(line,)f(deleting)g(the)h(partially-completed)390
+4096 y(w)m(ord.)44 b(See)32 b(description)e(of)i Fs(rl_complete\(\))p
+Ft(.)41 b(This)30 b(calls)h Fs(rl_complete_internal\(\))25
+b Ft(with)390 4205 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p
+Ft('.)3350 4389 y([F)-8 b(unction])-3600 b Fg(int)39
+b Ff(rl)p 432 4389 V 51 w(completion)p 1033 4389 V 49
+w(mo)s(de)45 b Fe(\()p Fs(rl_command_func_t)26 b(*cfunc)p
+Fe(\))390 4499 y Ft(Returns)50 b(the)g(apppriate)g(v)-5
+b(alue)49 b(to)j(pass)e(to)h Fs(rl_complete_internal\(\))44
+b Ft(dep)s(ending)k(on)390 4608 y(whether)40 b Fi(cfunc)46
+b Ft(w)m(as)41 b(called)f(t)m(wice)h(in)f(succession)g(and)g(the)h(v)-5
+b(alues)40 b(of)h(the)g Fs(show-all-if-)390 4718 y(ambiguous)25
+b Ft(and)i Fs(show-all-if-unmodified)21 b Ft(v)-5 b(ariables.)39
+b(Application-sp)s(eci\014c)25 b(completion)390 4827
+y(functions)k(ma)m(y)i(use)f(this)f(function)g(to)i(presen)m(t)g(the)f
+(same)h(in)m(terface)g(as)g Fs(rl_complete\(\))p Ft(.)3350
+5011 y([F)-8 b(unction])-3600 b Fg(char)39 b(**)g Ff(rl)p
+627 5011 V 51 w(completion)p 1228 5011 V 49 w(matc)m(hes)44
+b Fe(\()p Fs(const)30 b(char)f(*text,)565 5121 y(rl_compentry_func_t)c
+(*entry_func)p Fe(\))390 5230 y Ft(Returns)37 b(an)h(arra)m(y)g(of)g
+(strings)f(whic)m(h)f(is)h(a)h(list)f(of)h(completions)f(for)g
+Fi(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 5340
+y(completions,)d(returns)e Fs(NULL)p Ft(.)52 b(The)34
+b(\014rst)f(en)m(try)i(in)e(the)i(returned)e(arra)m(y)i(is)f(the)g
+(substitution)p eop
+%%Page: 43 47
+43 46 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(43)390 299 y(for)26 b
+Fi(text)p Ft(.)40 b(The)26 b(remaining)f(en)m(tries)h(are)h(the)f(p)s
+(ossible)e(completions.)38 b(The)26 b(arra)m(y)h(is)e(terminated)390
+408 y(with)k(a)i Fs(NULL)e Ft(p)s(oin)m(ter.)390 544
+y Fi(en)m(try)p 603 544 28 4 v 40 w(func)44 b Ft(is)39
+b(a)h(function)e(of)i(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
+653 y Fi(text)p Ft(.)66 b(The)39 b(second)f(is)g(a)h(state)h(argumen)m
+(t;)j(it)38 b(is)g(zero)h(on)g(the)g(\014rst)f(call,)i(and)e(non-zero)h
+(on)390 763 y(subsequen)m(t)33 b(calls.)50 b Fi(en)m(try)p
+1320 763 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f
+Ft(p)s(oin)m(ter)f(to)j(the)f(caller)f(when)g(there)h(are)g(no)390
+872 y(more)d(matc)m(hes.)3350 1058 y([F)-8 b(unction])-3600
+b Fg(char)39 b(*)g Ff(rl)p 575 1058 35 5 v 50 w(\014lename)p
+1042 1058 V 49 w(completion)p 1641 1058 V 49 w(function)44
+b Fe(\()p Fs(const)30 b(char)f(*text,)g(int)565 1168
+y(state)p Fe(\))390 1277 y Ft(A)d(generator)h(function)d(for)h
+(\014lename)g(completion)g(in)f(the)i(general)g(case.)40
+b Fi(text)28 b Ft(is)d(a)h(partial)f(\014le-)390 1387
+y(name.)38 b(The)21 b(Bash)g(source)h(is)f(a)g(useful)f(reference)i
+(for)f(writing)f(application-sp)s(eci\014c)f(completion)390
+1497 y(functions)29 b(\(the)i(Bash)f(completion)g(functions)f(call)h
+(this)f(and)h(other)g(Readline)f(functions\).)3350 1682
+y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(rl)p 575
+1682 V 50 w(username)p 1102 1682 V 50 w(completion)p
+1702 1682 V 49 w(function)44 b Fe(\()p Fs(const)29 b(char)g(*text,)g
+(int)565 1792 y(state)p Fe(\))390 1901 y Ft(A)g(completion)e(generator)
+j(for)e(usernames.)40 b Fi(text)31 b Ft(con)m(tains)e(a)g(partial)e
+(username)h(preceded)g(b)m(y)390 2011 y(a)j(random)f(c)m(haracter)i
+(\(usually)c(`)p Fs(~)p Ft('\).)42 b(As)31 b(with)e(all)g(completion)h
+(generators,)i Fi(state)37 b Ft(is)30 b(zero)h(on)390
+2121 y(the)g(\014rst)e(call)h(and)g(non-zero)h(for)f(subsequen)m(t)f
+(calls.)150 2346 y Fh(2.6.3)63 b(Completion)40 b(V)-10
+b(ariables)3371 2591 y Ft([V)i(ariable])-3600 b Fg(rl_compentry_func_t)
+44 b(*)38 b Ff(rl)p 1359 2591 V 51 w(completion)p 1960
+2591 V 49 w(en)m(try)p 2275 2591 V 50 w(function)390
+2701 y Ft(A)c(p)s(oin)m(ter)e(to)i(the)g(generator)h(function)d(for)h
+Fs(rl_completion_matches\(\))p Ft(.)44 b Fs(NULL)32 b
+Ft(means)h(to)390 2810 y(use)d Fs(rl_filename_completion_fu)o(nct)o
+(ion\()o(\))p Ft(,)25 b(the)30 b(default)g(\014lename)f(completer.)3371
+2996 y([V)-8 b(ariable])-3600 b Fg(rl_completion_func_t)44
+b(*)39 b Ff(rl)p 1412 2996 V 50 w(attempted)p 1982 2996
+V 48 w(completion)p 2580 2996 V 49 w(function)390 3105
+y Ft(A)c(p)s(oin)m(ter)f(to)h(an)g(alternativ)m(e)g(function)e(to)j
+(create)g(matc)m(hes.)55 b(The)34 b(function)g(is)f(called)h(with)390
+3215 y Fi(text)p Ft(,)26 b Fi(start)p Ft(,)f(and)d Fi(end)p
+Ft(.)38 b Fi(start)25 b Ft(and)e Fi(end)j Ft(are)d(indices)e(in)h
+Fs(rl_line_buffer)d Ft(de\014ning)i(the)i(b)s(ound-)390
+3325 y(aries)i(of)i Fi(text)p Ft(,)h(whic)m(h)c(is)h(a)i(c)m(haracter)g
+(string.)38 b(If)26 b(this)f(function)f(exists)i(and)f(returns)g
+Fs(NULL)p Ft(,)h(or)g(if)390 3434 y(this)21 b(v)-5 b(ariable)20
+b(is)h(set)i(to)f Fs(NULL)p Ft(,)h(then)f Fs(rl_complete\(\))c
+Ft(will)h(call)i(the)h(v)-5 b(alue)22 b(of)g Fs(rl_completion_)390
+3544 y(entry_function)i Ft(to)30 b(generate)f(matc)m(hes,)i(otherwise)c
+(the)i(arra)m(y)g(of)f(strings)g(returned)f(will)f(b)s(e)390
+3653 y(used.)37 b(If)22 b(this)f(function)g(sets)i(the)g
+Fs(rl_attempted_completion)o(_ove)o(r)16 b Ft(v)-5 b(ariable)22
+b(to)h(a)f(non-zero)390 3763 y(v)-5 b(alue,)34 b(Readline)f(will)e(not)
+j(p)s(erform)f(its)g(default)g(completion)g(ev)m(en)i(if)e(this)g
+(function)f(returns)390 3873 y(no)e(matc)m(hes.)3371
+4058 y([V)-8 b(ariable])-3600 b Fg(rl_quote_func_t)43
+b(*)38 b Ff(rl)p 1150 4058 V 51 w(\014lename)p 1618 4058
+V 48 w(quoting)p 2045 4058 V 51 w(function)390 4168 y
+Ft(A)33 b(p)s(oin)m(ter)e(to)i(a)g(function)f(that)h(will)d(quote)j(a)g
+(\014lename)e(in)h(an)g(application-sp)s(eci\014c)e(fashion.)390
+4278 y(This)37 b(is)i(called)f(if)g(\014lename)h(completion)f(is)g(b)s
+(eing)g(attempted)j(and)d(one)i(of)f(the)g(c)m(haracters)390
+4387 y(in)32 b Fs(rl_filename_quote_charac)o(ter)o(s)27
+b Ft(app)s(ears)33 b(in)f(a)h(completed)g(\014lename.)49
+b(The)32 b(function)390 4497 y(is)k(called)g(with)f Fi(text)p
+Ft(,)40 b Fi(matc)m(h)p 1438 4497 28 4 v 41 w(t)m(yp)s(e)p
+Ft(,)f(and)d Fi(quote)p 2119 4497 V 41 w(p)s(oin)m(ter)p
+Ft(.)59 b(The)36 b Fi(text)k Ft(is)c(the)h(\014lename)f(to)i(b)s(e)390
+4606 y(quoted.)76 b(The)42 b Fi(matc)m(h)p 1210 4606
+V 41 w(t)m(yp)s(e)48 b Ft(is)41 b(either)h Fs(SINGLE_MATCH)p
+Ft(,)g(if)f(there)h(is)g(only)f(one)i(completion)390
+4716 y(matc)m(h,)33 b(or)e Fs(MULT_MATCH)p Ft(.)41 b(Some)31
+b(functions)f(use)h(this)g(to)h(decide)e(whether)h(or)h(not)f(to)h
+(insert)f(a)390 4825 y(closing)20 b(quote)h(c)m(haracter.)40
+b(The)20 b Fi(quote)p 1751 4825 V 41 w(p)s(oin)m(ter)26
+b Ft(is)20 b(a)h(p)s(oin)m(ter)f(to)h(an)m(y)h(op)s(ening)d(quote)i(c)m
+(haracter)390 4935 y(the)31 b(user)e(t)m(yp)s(ed.)41
+b(Some)30 b(functions)f(c)m(ho)s(ose)i(to)g(reset)g(this)f(c)m
+(haracter.)3371 5121 y([V)-8 b(ariable])-3600 b Fg(rl_dequote_func_t)43
+b(*)c Ff(rl)p 1255 5121 35 5 v 50 w(\014lename)p 1722
+5121 V 49 w(dequoting)p 2267 5121 V 49 w(function)390
+5230 y Ft(A)30 b(p)s(oin)m(ter)e(to)j(a)f(function)e(that)i(will)d
+(remo)m(v)m(e)k(application-sp)s(eci\014c)c(quoting)i(c)m(haracters)i
+(from)390 5340 y(a)i(\014lename)f(b)s(efore)g(completion)f(is)h
+(attempted,)i(so)f(those)g(c)m(haracters)h(do)e(not)h(in)m(terfere)f
+(with)p eop
+%%Page: 44 48
+44 47 bop 150 -116 a Ft(44)2600 b(GNU)31 b(Readline)e(Library)390
+299 y(matc)m(hing)38 b(the)g(text)i(against)e(names)g(in)f(the)h
+(\014lesystem.)63 b(It)38 b(is)f(called)h(with)e Fi(text)p
+Ft(,)42 b(the)c(text)390 408 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g
+(dequoted,)j(and)d Fi(quote)p 2014 408 28 4 v 41 w(c)m(har)p
+Ft(,)j(whic)m(h)c(is)h(the)g(quoting)g(c)m(haracter)h(that)390
+518 y(delimits)30 b(the)i(\014lename)f(\(usually)g(`)p
+Fs(')p Ft(')h(or)g(`)p Fs(")p Ft('\).)46 b(If)32 b Fi(quote)p
+2368 518 V 41 w(c)m(har)39 b Ft(is)31 b(zero,)j(the)e(\014lename)f(w)m
+(as)i(not)390 628 y(in)c(an)h(em)m(b)s(edded)g(string.)3371
+847 y([V)-8 b(ariable])-3600 b Fg(rl_linebuf_func_t)43
+b(*)c Ff(rl)p 1255 847 35 5 v 50 w(c)m(har)p 1520 847
+V 50 w(is)p 1647 847 V 50 w(quoted)p 2040 847 V 50 w(p)390
+956 y Ft(A)e(p)s(oin)m(ter)f(to)h(a)g(function)f(to)h(call)f(that)i
+(determines)e(whether)g(or)h(not)g(a)g(sp)s(eci\014c)e(c)m(haracter)390
+1066 y(in)e(the)i(line)d(bu\013er)i(is)f(quoted,)j(according)f(to)g
+(whatev)m(er)g(quoting)f(mec)m(hanism)g(the)g(program)390
+1176 y(calling)23 b(Readline)h(uses.)38 b(The)24 b(function)g(is)g
+(called)g(with)f(t)m(w)m(o)j(argumen)m(ts:)39 b Fi(text)p
+Ft(,)27 b(the)e(text)h(of)f(the)390 1285 y(line,)k(and)i
+Fi(index)p Ft(,)e(the)i(index)e(of)i(the)g(c)m(haracter)i(in)c(the)i
+(line.)40 b(It)31 b(is)f(used)g(to)h(decide)f(whether)h(a)390
+1395 y(c)m(haracter)h(found)d(in)f Fs(rl_completer_word_break_ch)o(ara)
+o(cter)o(s)c Ft(should)k(b)s(e)i(used)f(to)i(break)390
+1504 y(w)m(ords)f(for)g(the)h(completer.)3371 1724 y([V)-8
+b(ariable])-3600 b Fg(rl_compignore_func_t)44 b(*)39
+b Ff(rl)p 1412 1724 V 50 w(ignore)p 1772 1724 V 50 w(some)p
+2072 1724 V 51 w(completions)p 2718 1724 V 50 w(function)390
+1833 y Ft(This)d(function,)i(if)f(de\014ned,)h(is)f(called)g(b)m(y)g
+(the)h(completer)g(when)f(real)g(\014lename)g(completion)390
+1943 y(is)c(done,)i(after)f(all)f(the)i(matc)m(hing)f(names)f(ha)m(v)m
+(e)j(b)s(een)d(generated.)53 b(It)34 b(is)f(passed)g(a)i
+Fs(NULL)d Ft(ter-)390 2052 y(minated)e(arra)m(y)h(of)g(matc)m(hes.)43
+b(The)31 b(\014rst)f(elemen)m(t)h(\()p Fs(matches[0])p
+Ft(\))e(is)g(the)i(maximal)f(substring)390 2162 y(common)f(to)g(all)f
+(matc)m(hes.)41 b(This)27 b(function)h(can)h(re-arrange)g(the)g(list)f
+(of)h(matc)m(hes)g(as)g(required,)390 2271 y(but)h(eac)m(h)h(elemen)m
+(t)g(deleted)f(from)g(the)h(arra)m(y)g(m)m(ust)f(b)s(e)g(freed.)3371
+2491 y([V)-8 b(ariable])-3600 b Fg(rl_icppfunc_t)42 b(*)d
+Ff(rl)p 1046 2491 V 50 w(directory)p 1552 2491 V 50 w(completion)p
+2152 2491 V 49 w(ho)s(ok)390 2600 y Ft(This)k(function,)48
+b(if)d(de\014ned,)j(is)c(allo)m(w)m(ed)h(to)h(mo)s(dify)d(the)j
+(directory)f(p)s(ortion)e(of)j(\014lenames)390 2710 y(Readline)35
+b(completes.)60 b(It)36 b(is)g(called)f(with)h(the)g(address)g(of)h(a)g
+(string)e(\(the)i(curren)m(t)f(directory)390 2819 y(name\))i(as)f(an)g
+(argumen)m(t,)i(and)e(ma)m(y)h(mo)s(dify)d(that)j(string.)59
+b(If)37 b(the)g(string)g(is)f(replaced)g(with)390 2929
+y(a)k(new)g(string,)h(the)f(old)f(v)-5 b(alue)40 b(should)e(b)s(e)h
+(freed.)69 b(An)m(y)40 b(mo)s(di\014ed)e(directory)h(name)h(should)390
+3039 y(ha)m(v)m(e)30 b(a)g(trailing)d(slash.)39 b(The)29
+b(mo)s(di\014ed)e(v)-5 b(alue)29 b(will)d(b)s(e)j(displa)m(y)m(ed)e(as)
+j(part)f(of)g(the)g(completion,)390 3148 y(replacing)e(the)h(directory)
+g(p)s(ortion)f(of)h(the)h(pathname)f(the)g(user)g(t)m(yp)s(ed.)39
+b(It)28 b(returns)f(an)i(in)m(teger)390 3258 y(that)34
+b(should)d(b)s(e)h(non-zero)i(if)d(the)j(function)d(mo)s(di\014es)h
+(its)g(directory)g(argumen)m(t.)49 b(It)34 b(could)e(b)s(e)390
+3367 y(used)e(to)h(expand)e(sym)m(b)s(olic)g(links)f(or)j(shell)d(v)-5
+b(ariables)29 b(in)g(pathnames.)3371 3587 y([V)-8 b(ariable])-3600
+b Fg(rl_compdisp_func_t)44 b(*)38 b Ff(rl)p 1307 3587
+V 51 w(completion)p 1908 3587 V 49 w(displa)m(y)p 2307
+3587 V 49 w(matc)m(hes)p 2762 3587 V 50 w(ho)s(ok)390
+3696 y Ft(If)22 b(non-zero,)i(then)e(this)f(is)g(the)h(address)f(of)h
+(a)g(function)f(to)i(call)e(when)g(completing)g(a)i(w)m(ord)e(w)m(ould)
+390 3806 y(normally)f(displa)m(y)h(the)h(list)f(of)h(p)s(ossible)e
+(matc)m(hes.)39 b(This)20 b(function)h(is)g(called)h(in)f(lieu)f(of)i
+(Readline)390 3915 y(displa)m(ying)34 b(the)k(list.)59
+b(It)37 b(tak)m(es)i(three)e(argumen)m(ts:)54 b(\()p
+Fs(char)30 b(**)p Fi(matc)m(hes)p Ft(,)39 b Fs(int)d
+Fi(n)m(um)p 3370 3915 28 4 v 40 w(matc)m(hes)p Ft(,)390
+4025 y Fs(int)26 b Fi(max)p 735 4025 V 40 w(length)p
+Ft(\))g(where)g Fi(matc)m(hes)31 b Ft(is)26 b(the)g(arra)m(y)h(of)g
+(matc)m(hing)f(strings,)h Fi(n)m(um)p 3152 4025 V 39
+w(matc)m(hes)k Ft(is)26 b(the)390 4134 y(n)m(um)m(b)s(er)i(of)h
+(strings)f(in)g(that)h(arra)m(y)-8 b(,)31 b(and)d Fi(max)p
+2020 4134 V 40 w(length)h Ft(is)f(the)h(length)g(of)g(the)g(longest)g
+(string)f(in)390 4244 y(that)h(arra)m(y)-8 b(.)41 b(Readline)26
+b(pro)m(vides)h(a)i(con)m(v)m(enience)g(function,)e Fs
+(rl_display_match_list)p Ft(,)c(that)390 4354 y(tak)m(es)36
+b(care)g(of)f(doing)f(the)h(displa)m(y)d(to)k(Readline's)d(output)i
+(stream.)54 b(That)35 b(function)e(ma)m(y)j(b)s(e)390
+4463 y(called)30 b(from)f(this)h(ho)s(ok.)3371 4682 y([V)-8
+b(ariable])-3600 b Fg(const)40 b(char)f(*)g Ff(rl)p 875
+4682 35 5 v 50 w(basic)p 1173 4682 V 50 w(w)m(ord)p 1471
+4682 V 50 w(break)p 1801 4682 V 50 w(c)m(haracters)390
+4792 y Ft(The)44 b(basic)f(list)g(of)h(c)m(haracters)i(that)f(signal)e
+(a)h(break)g(b)s(et)m(w)m(een)h(w)m(ords)f(for)g(the)g(completer)390
+4902 y(routine.)60 b(The)37 b(default)f(v)-5 b(alue)36
+b(of)i(this)e(v)-5 b(ariable)36 b(is)g(the)h(c)m(haracters)i(whic)m(h)d
+(break)h(w)m(ords)f(for)390 5011 y(completion)30 b(in)f(Bash:)41
+b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 5230
+y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g Ff(rl)p
+875 5230 V 50 w(basic)p 1173 5230 V 50 w(quote)p 1502
+5230 V 50 w(c)m(haracters)390 5340 y Ft(A)30 b(list)g(of)g(quote)h(c)m
+(haracters)h(whic)m(h)d(can)i(cause)g(a)f(w)m(ord)g(break.)p
eop
-%%Page: 21 23
-21 22 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(21)75 149 y Fq(2)41 b(Programming)28
-b(with)e(GNU)i(Readline)137 267 y Fu(This)18 b(c)o(hapter)f(describ)q
-(es)h(the)f(in)o(terface)g(b)q(et)o(w)o(een)h(the)f Fp(gnu)g
-Fu(Readline)h(Library)f(and)g(other)g(pro-)75 322 y(grams.)h(If)11
-b(y)o(ou)g(are)g(a)g(programmer,)f(and)i(y)o(ou)f(wish)g(to)g(include)j
-(the)d(features)g(found)g(in)i Fp(gnu)e Fu(Readline)75
-377 y(suc)o(h)h(as)f(completion,)h(line)h(editing,)g(and)f(in)o
-(teractiv)o(e)g(history)f(manipulation)i(in)f(y)o(our)f(o)o(wn)g
-(programs,)75 432 y(this)16 b(section)f(is)h(for)f(y)o(ou.)75
-561 y Fs(2.1)33 b(Basic)22 b(Beha)n(vior)137 658 y Fu(Man)o(y)15
-b(programs)f(pro)o(vide)i(a)f(command)g(line)i(in)o(terface,)e(suc)o(h)
-h(as)f Ft(mail)p Fu(,)f Ft(ftp)p Fu(,)h(and)g Ft(sh)p
-Fu(.)20 b(F)l(or)15 b(suc)o(h)75 713 y(programs,)e(the)h(default)h(b)q
-(eha)o(viour)g(of)f(Readline)i(is)e(su\016cien)o(t.)21
-b(This)14 b(section)h(describ)q(es)h(ho)o(w)e(to)g(use)75
-768 y(Readline)k(in)h(the)e(simplest)h(w)o(a)o(y)e(p)q(ossible,)j(p)q
-(erhaps)f(to)f(replace)h(calls)g(in)g(y)o(our)f(co)q(de)h(to)e
-Ft(gets\(\))g Fu(or)75 822 y Ft(fgets\(\))p Fu(.)137
-890 y(The)h(function)g Ft(readline\(\))e Fu(prin)o(ts)h(a)g(prompt)g
-Fk(prompt)h Fu(and)f(then)h(reads)f(and)h(returns)f(a)g(single)75
-945 y(line)i(of)e(text)g(from)f(the)i(user.)23 b(If)17
-b Fk(prompt)g Fu(is)g Ft(NULL)e Fu(or)h(the)h(empt)o(y)f(string,)g(no)g
-(prompt)g(is)h(displa)o(y)o(ed.)75 1000 y(The)i(line)h
-Ft(readline)d Fu(returns)i(is)g(allo)q(cated)g(with)g
-Ft(malloc\(\))p Fu(;)g(the)g(caller)g(should)h Ft(free\(\))e
-Fu(the)g(line)75 1054 y(when)e(it)f(has)g(\014nished)i(with)f(it.)k
-(The)15 b(declaration)h(for)f Ft(readline)f Fu(in)i(ANSI)g(C)f(is)195
-1119 y Ft(char)23 b(*readline)g(\(const)g(char)g(*)p
-Fk(prompt)q Ft(\);)75 1187 y Fu(So,)15 b(one)g(migh)o(t)g(sa)o(y)195
-1251 y Ft(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)
-75 1319 y Fu(in)12 b(order)f(to)g(read)h(a)f(line)i(of)e(text)g(from)f
-(the)i(user.)19 b(The)11 b(line)j(returned)d(has)h(the)f(\014nal)h
-(newline)i(remo)o(v)o(ed,)75 1374 y(so)h(only)h(the)f(text)g(remains.)
-137 1441 y(If)21 b Ft(readline)e Fu(encoun)o(ters)h(an)g
-Ft(EOF)g Fu(while)i(reading)f(the)f(line,)j(and)d(the)h(line)g(is)g
-(empt)o(y)f(at)g(that)75 1496 y(p)q(oin)o(t,)15 b(then)g
-Ft(\(char)f(*\)NULL)g Fu(is)h(returned.)21 b(Otherwise,)15
-b(the)g(line)h(is)f(ended)h(just)e(as)h(if)g(a)f(newline)j(had)75
-1551 y(b)q(een)f(t)o(yp)q(ed.)137 1618 y(If)d(y)o(ou)g(w)o(an)o(t)f
-(the)h(user)g(to)f(b)q(e)i(able)g(to)e(get)g(at)h(the)g(line)h(later,)f
-(\(with)1325 1616 y Fn(h)p 1338 1590 57 2 v 1338 1618
-a Fm(C-p)p 1338 1626 V 1392 1616 a Fn(i)1420 1618 y Fu(for)f
-(example\),)i(y)o(ou)f(m)o(ust)75 1673 y(call)j Ft(add_history\(\))e
-Fu(to)g(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)d(in)i(a)e
-Fk(history)19 b Fu(list)d(of)f(suc)o(h)h(lines.)195 1738
-y Ft(add_history)22 b(\(line\);)75 1805 y Fu(F)l(or)15
-b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f
-(asso)q(ciated)g(man)o(ual.)137 1873 y(It)h(is)g(preferable)h(to)e(a)o
-(v)o(oid)g(sa)o(ving)h(empt)o(y)f(lines)i(on)f(the)g(history)f(list,)i
-(since)f(users)g(rarely)g(ha)o(v)o(e)f(a)75 1928 y(burning)h(need)g(to)
-e(reuse)h(a)g(blank)g(line.)22 b(Here)15 b(is)g(a)g(function)g(whic)o
-(h)h(usefully)h(replaces)e(the)g(standard)75 1983 y Ft(gets\(\))f
-Fu(library)i(function,)g(and)f(has)g(the)h(adv)m(an)o(tage)e(of)h(no)g
-(static)g(bu\013er)g(to)g(o)o(v)o(er\015o)o(w:)195 2047
-y Ft(/*)24 b(A)f(static)g(variable)g(for)h(holding)e(the)i(line.)f(*/)
-195 2099 y(static)g(char)g(*line_read)g(=)h(\(char)f(*\)NULL;)195
-2203 y(/*)h(Read)f(a)h(string,)f(and)g(return)g(a)h(pointer)f(to)g(it.)
-267 2255 y(Returns)f(NULL)i(on)f(EOF.)h(*/)195 2307 y(char)f(*)195
-2359 y(rl_gets)g(\(\))195 2411 y({)243 2462 y(/*)g(If)h(the)f(buffer)g
-(has)h(already)f(been)g(allocated,)314 2514 y(return)g(the)h(memory)f
-(to)g(the)h(free)f(pool.)g(*/)243 2566 y(if)g(\(line_read\))290
-2618 y({)338 2670 y(free)g(\(line_read\);)p eop
-%%Page: 22 24
-22 23 bop 75 -58 a Fu(22)1299 b(GNU)15 b(Readline)h(Library)338
-149 y Ft(line_read)23 b(=)h(\(char)f(*\)NULL;)290 201
-y(})243 305 y(/*)g(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)243
-357 y(line_read)f(=)i(readline)f(\(""\);)243 461 y(/*)g(If)h(the)f
-(line)h(has)f(any)h(text)f(in)g(it,)314 513 y(save)h(it)f(on)h(the)f
-(history.)g(*/)243 565 y(if)g(\(line_read)g(&&)g(*line_read\))290
-616 y(add_history)g(\(line_read\);)243 720 y(return)g(\(line_read\);)
-195 772 y(})137 848 y Fu(This)13 b(function)f(giv)o(es)h(the)e(user)h
-(the)g(default)h(b)q(eha)o(viour)g(of)1169 846 y Fn(h)p
-1181 820 74 2 v 1181 848 a Fm(T)m(AB)p 1181 856 V 1253
-846 a Fn(i)1280 848 y Fu(completion:)19 b(completion)13
-b(on)f(\014le)75 903 y(names.)20 b(If)c(y)o(ou)f(do)g(not)g(w)o(an)o(t)
-f(Readline)j(to)d(complete)j(on)e(\014lenames,)h(y)o(ou)f(can)g(c)o
-(hange)h(the)f(binding)75 958 y(of)g(the)205 956 y Fn(h)p
-217 930 V 217 958 a Fm(T)m(AB)p 217 965 V 289 956 a Fn(i)319
-958 y Fu(k)o(ey)g(with)h Ft(rl_bind_key\(\))p Fu(.)195
-1031 y Ft(int)23 b(rl_bind_key)g(\(int)g Fk(k)o(ey)p
-Ft(,)h(rl_command_func_t)d(*)p Fk(function)p Ft(\);)137
-1107 y(rl_bind_key\(\))15 b Fu(tak)o(es)h(t)o(w)o(o)g(argumen)o(ts:)22
-b Fk(k)o(ey)e Fu(is)e(the)e(c)o(haracter)g(that)g(y)o(ou)h(w)o(an)o(t)f
-(to)g(bind,)i(and)75 1161 y Fk(function)h Fu(is)f(the)g(address)g(of)g
-(the)g(function)g(to)g(call)h(when)f Fk(k)o(ey)k Fu(is)c(pressed.)29
-b(Binding)1628 1159 y Fn(h)p 1641 1133 V 1641 1161 a
-Fm(T)m(AB)p 1641 1169 V 1712 1159 a Fn(i)1745 1161 y
-Fu(to)17 b Ft(rl_)75 1216 y(insert\(\))f Fu(mak)o(es)422
-1214 y Fn(h)p 434 1188 V 434 1216 a Fm(T)m(AB)p 434 1224
-V 506 1214 a Fn(i)539 1216 y Fu(insert)i(itself.)28 b
-Ft(rl_bind_key\(\))15 b Fu(returns)j(non-zero)g(if)g
-Fk(k)o(ey)j Fu(is)d(not)f(a)g(v)m(alid)75 1271 y(ASCI)q(I)f(c)o
-(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g(255\).)137
-1347 y(Th)o(us,)g(to)g(disable)h(the)g(default)703 1345
-y Fn(h)p 716 1319 V 716 1347 a Fm(T)m(AB)p 716 1354 V
-787 1345 a Fn(i)817 1347 y Fu(b)q(eha)o(vior,)g(the)f(follo)o(wing)h
-(su\016ces:)195 1420 y Ft(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137
-1496 y Fu(This)14 b(co)q(de)g(should)g(b)q(e)g(executed)g(once)g(at)e
-(the)h(start)f(of)h(y)o(our)g(program;)f(y)o(ou)h(migh)o(t)g(write)g(a)
-g(func-)75 1551 y(tion)k(called)h Ft(initialize_readline\(\))13
-b Fu(whic)o(h)k(p)q(erforms)f(this)h(and)g(other)f(desired)h
-(initializations,)75 1605 y(suc)o(h)f(as)e(installing)k(custom)c
-(completers)i(\(see)f(Section)h(2.6)f([Custom)f(Completers],)g(page)h
-(41\).)75 1756 y Fs(2.2)33 b(Custom)21 b(F)-6 b(unctions)137
-1861 y Fu(Readline)14 b(pro)o(vides)f(man)o(y)e(functions)i(for)f
-(manipulating)i(the)e(text)g(of)g(the)g(line,)i(but)e(it)h(isn't)f(p)q
-(ossi-)75 1915 y(ble)i(to)f(an)o(ticipate)h(the)f(needs)h(of)f(all)h
-(programs.)k(This)13 b(section)h(describ)q(es)h(the)e(v)m(arious)h
-(functions)g(and)75 1970 y(v)m(ariables)g(de\014ned)h(within)f(the)f
-(Readline)i(library)e(whic)o(h)h(allo)o(w)g(a)e(user)h(program)f(to)h
-(add)g(customized)75 2025 y(functionalit)o(y)j(to)f(Readline.)137
-2101 y(Before)j(declaring)i(an)o(y)e(functions)h(that)f(customize)g
-(Readline's)h(b)q(eha)o(vior,)h(or)d(using)i(an)o(y)f(func-)75
-2156 y(tionalit)o(y)23 b(Readline)h(pro)o(vides)g(in)f(other)g(co)q
-(de,)h(an)f(application)i(writer)d(should)i(include)h(the)e(\014le)75
-2211 y Ft(<readline/readline.h>)14 b Fu(in)j(an)o(y)g(\014le)h(that)e
-(uses)h(Readline's)g(features.)24 b(Since)19 b(some)d(of)g(the)h
-(de\014-)75 2265 y(nitions)g(in)f Ft(readline.h)e Fu(use)i(the)g
-Ft(stdio)f Fu(library)l(,)h(the)g(\014le)g Ft(<stdio.h>)f
-Fu(should)h(b)q(e)g(included)j(b)q(efore)75 2320 y Ft(readline.h)p
-Fu(.)137 2396 y Ft(readline.h)14 b Fu(de\014nes)i(a)f(C)h(prepro)q
-(cessor)f(v)m(ariable)i(that)d(should)i(b)q(e)g(treated)f(as)g(an)g(in)
-o(teger,)g Ft(RL_)75 2451 y(READLINE_VERSION)p Fu(,)9
-b(whic)o(h)j(ma)o(y)f(b)q(e)g(used)h(to)e(conditionally)k(compile)e
-(application)h(co)q(de)f(dep)q(ending)75 2506 y(on)17
-b(the)h(installed)h(Readline)g(v)o(ersion.)27 b(The)18
-b(v)m(alue)h(is)f(a)f(hexadecimal)i(enco)q(ding)g(of)e(the)h(ma)s(jor)e
-(and)75 2560 y(minor)h(v)o(ersion)h(n)o(um)o(b)q(ers)f(of)g(the)g
-(library)l(,)h(of)f(the)g(form)f(0x)p Fk(MMmm)p Fu(.)25
-b Fk(MM)c Fu(is)c(the)h(t)o(w)o(o-digit)e(ma)s(jor)75
-2615 y(v)o(ersion)f(n)o(um)o(b)q(er;)f Fk(mm)h Fu(is)g(the)f(t)o(w)o
-(o-digit)g(minor)h(v)o(ersion)g(n)o(um)o(b)q(er.)20 b(F)l(or)14
-b(Readline)h(4.2,)f(for)f(example,)75 2670 y(the)i(v)m(alue)i(of)d
-Ft(RL_READLINE_VERSION)f Fu(w)o(ould)j(b)q(e)f Ft(0x0402)p
-Fu(.)p eop
-%%Page: 23 25
-23 24 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(23)75 149 y Fj(2.2.1)30 b(Readline)20
-b(T)n(yp)r(edefs)137 251 y Fu(F)l(or)15 b(readabilt)o(y)l(,)g(w)o(e)g
-(declare)i(a)d(n)o(um)o(b)q(er)i(of)f(new)g(ob)s(ject)g(t)o(yp)q(es,)g
-(all)h(p)q(oin)o(ters)f(to)g(functions.)137 324 y(The)j(reason)g(for)f
-(declaring)i(these)f(new)g(t)o(yp)q(es)g(is)h(to)e(mak)o(e)g(it)h
-(easier)h(to)e(write)h(co)q(de)g(describing)75 379 y(p)q(oin)o(ters)e
-(to)e(C)h(functions)h(with)g(appropriately)f(protot)o(yp)q(ed)g
-(argumen)o(ts)g(and)g(return)g(v)m(alues.)137 452 y(F)l(or)j(instance,)
-i(sa)o(y)e(w)o(e)g(w)o(an)o(t)f(to)h(declare)h(a)f(v)m(ariable)i
-Fk(func)i Fu(as)c(a)g(p)q(oin)o(ter)h(to)f(a)g(function)h(whic)o(h)75
-507 y(tak)o(es)12 b(t)o(w)o(o)g Ft(int)g Fu(argumen)o(ts)g(and)h
-(returns)g(an)g Ft(int)f Fu(\(this)h(is)g(the)g(t)o(yp)q(e)g(of)g(all)g
-(of)g(the)g(Readline)h(bindable)75 561 y(functions\).)20
-b(Instead)c(of)f(the)g(classic)h(C)f(declaration)137
-634 y Ft(int)g(\(*func\)\(\);)75 707 y Fu(or)g(the)g(ANSI-C)h(st)o(yle)
-f(declaration)137 780 y Ft(int)g(\(*func\)\(int,)f(int\);)75
-853 y Fu(w)o(e)h(ma)o(y)f(write)137 926 y Ft(rl_command_func_t)f
-(*func;)137 999 y Fu(The)j(full)g(list)g(of)f(function)h(p)q(oin)o(ter)
-g(t)o(yp)q(es)f(a)o(v)m(ailable)i(is)75 1087 y Ft(typedef)d(int)h
-(rl_command_func_t)e(\(int,)h(int\);)75 1157 y(typedef)g(char)h
-(*rl_compentry_func_t)d(\(const)j(char)f(*,)h(int\);)75
-1227 y(typedef)f(char)h(**rl_completion_func_t)d(\(const)i(char)h(*,)g
-(int,)f(int\);)75 1297 y(typedef)g(char)h(*rl_quote_func_t)e(\(char)h
-(*,)h(int,)g(char)f(*\);)75 1367 y(typedef)g(char)h(*rl_dequote_func_t)
-d(\(char)j(*,)g(int\);)75 1437 y(typedef)f(int)h(rl_compignore_func_t)d
-(\(char)j(**\);)75 1507 y(typedef)f(void)h(rl_compdisp_func_t)d(\(char)
-j(**,)g(int,)f(int\);)75 1577 y(typedef)g(int)h(rl_hook_func_t)e
-(\(void\);)75 1647 y(typedef)h(int)h(rl_getc_func_t)e(\(FILE)i(*\);)75
-1717 y(typedef)f(int)h(rl_linebuf_func_t)e(\(char)h(*,)h(int\);)75
-1787 y(typedef)f(int)h(rl_intfunc_t)e(\(int\);)75 1857
-y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)75 1927 y(typedef)h(int)h
-(rl_icpfunc_t)e(\(char)i(*\);)75 1997 y(typedef)f(int)h(rl_icppfunc_t)e
-(\(char)i(**\);)75 2067 y(typedef)f(void)h(rl_voidfunc_t)e(\(void\);)75
-2137 y(typedef)h(void)h(rl_vintfunc_t)e(\(int\);)75 2208
-y(typedef)h(void)h(rl_vcpfunc_t)e(\(char)i(*\);)75 2278
-y(typedef)f(void)h(rl_vcppfunc_t)e(\(char)i(**\);)75
-2386 y Fj(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5
-b(unction)137 2488 y Fu(In)17 b(order)f(to)f(write)h(new)h(functions)g
-(for)e(Readline,)i(y)o(ou)f(need)h(to)e(kno)o(w)h(the)g(calling)i(con)o
-(v)o(en)o(tions)75 2542 y(for)g(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)h
-(functions,)g(and)g(the)f(names)h(of)f(the)g(v)m(ariables)i(that)d
-(describ)q(e)k(the)d(curren)o(t)75 2597 y(state)c(of)h(the)g(line)i
-(read)e(so)g(far.)137 2670 y(The)h(calling)h(sequence)f(for)f(a)f
-(command)i Ft(foo)e Fu(lo)q(oks)i(lik)o(e)p eop
-%%Page: 24 26
-24 25 bop 75 -58 a Fu(24)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(int)23 b(foo)h(\(int)f(count,)g(int)h(key\))75
-221 y Fu(where)18 b Fk(coun)o(t)h Fu(is)f(the)g(n)o(umeric)h(argumen)o
-(t)e(\(or)h(1)f(if)i(defaulted\))f(and)g Fk(k)o(ey)k
-Fu(is)d(the)f(k)o(ey)g(that)f(in)o(v)o(ok)o(ed)75 276
-y(this)f(function.)137 348 y(It)c(is)g(completely)h(up)f(to)f(the)g
-(function)i(as)e(to)g(what)g(should)h(b)q(e)g(done)g(with)g(the)g(n)o
-(umeric)g(argumen)o(t.)75 403 y(Some)20 b(functions)h(use)f(it)g(as)g
-(a)g(rep)q(eat)g(coun)o(t,)g(some)g(as)g(a)f(\015ag,)i(and)f(others)g
-(to)f(c)o(ho)q(ose)h(alternate)75 457 y(b)q(eha)o(vior)i(\(refreshing)g
-(the)g(curren)o(t)f(line)j(as)d(opp)q(osed)h(to)f(refreshing)i(the)e
-(screen,)j(for)d(example\).)75 512 y(Some)c(c)o(ho)q(ose)f(to)g(ignore)
-h(it.)24 b(In)18 b(general,)f(if)g(a)f(function)h(uses)g(the)g(n)o
-(umeric)h(argumen)o(t)d(as)i(a)f(rep)q(eat)75 567 y(coun)o(t,)e(it)g
-(should)h(b)q(e)f(able)h(to)e(do)h(something)h(useful)g(with)f(b)q(oth)
-g(negativ)o(e)g(and)g(p)q(ositiv)o(e)h(argumen)o(ts.)75
-622 y(A)o(t)g(the)g(v)o(ery)g(least,)g(it)g(should)h(b)q(e)g(a)o(w)o
-(are)e(that)h(it)g(can)g(b)q(e)h(passed)g(a)f(negativ)o(e)g(argumen)o
-(t.)137 693 y(A)f(command)g(function)h(should)g(return)e(0)h(if)g(its)g
-(action)h(completes)f(successfully)l(,)i(and)e(a)g(non-zero)75
-748 y(v)m(alue)i(if)g(some)f(error)f(o)q(ccurs.)75 888
-y Fs(2.3)33 b(Readline)23 b(V)-6 b(ariables)137 989 y
-Fu(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h
-(writers.)1773 1120 y(V)l(ariable)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 1120 18 3 v 21 w(line)p 395 1120 V
-23 w(bu\013er)195 1174 y Fu(This)d(is)g(the)g(line)h(gathered)f(so)f
-(far.)20 b(Y)l(ou)c(are)f(w)o(elcome)h(to)f(mo)q(dify)h(the)g(con)o
-(ten)o(ts)f(of)g(the)h(line,)195 1229 y(but)i(see)g(Section)h(2.4.5)d
-([Allo)o(wing)i(Undoing],)h(page)e(32.)27 b(The)18 b(function)h
-Ft(rl_extend_line_)195 1284 y(buffer)14 b Fu(is)i(a)o(v)m(ailable)h(to)
-d(increase)j(the)e(memory)f(allo)q(cated)j(to)d Ft(rl_line_buffer)p
-Fu(.)1773 1414 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
-215 1414 V 21 w(p)r(oin)n(t)195 1469 y Fu(The)15 b(o\013set)g(of)f(the)
-i(curren)o(t)f(cursor)g(p)q(osition)h(in)g Ft(rl_line_buffer)d
-Fu(\(the)i Fl(p)n(oint)t Fu(\).)1773 1600 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1600 V 21 w(end)195 1655 y
-Fu(The)14 b(n)o(um)o(b)q(er)g(of)g(c)o(haracters)f(presen)o(t)h(in)h
-Ft(rl_line_buffer)p Fu(.)i(When)e Ft(rl_point)e Fu(is)h(at)f(the)h(end)
-195 1709 y(of)h(the)g(line,)i Ft(rl_point)d Fu(and)h
-Ft(rl_end)f Fu(are)h(equal.)1773 1840 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1840 V 21 w(mark)195 1895 y
-Fu(The)f Fk(mark)h Fu(\(sa)o(v)o(ed)e(p)q(osition\))h(in)g(the)g
-(curren)o(t)f(line.)31 b(If)19 b(set,)g(the)f(mark)g(and)h(p)q(oin)o(t)
-g(de\014ne)g(a)195 1950 y Fl(r)n(e)n(gion)p Fu(.)1773
-2080 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2080
-V 21 w(done)195 2135 y Fu(Setting)11 b(this)g(to)g(a)f(non-zero)h(v)m
-(alue)h(causes)f(Readline)h(to)f(return)f(the)h(curren)o(t)g(line)h
-(immediately)l(.)1773 2265 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 2265 V 21 w(n)n(um)p 347 2265 V 19 w(c)n(hars)p
-496 2265 V 20 w(to)p 567 2265 V 21 w(read)195 2320 y
-Fu(Setting)d(this)g(to)f(a)g(p)q(ositiv)o(e)h(v)m(alue)h(b)q(efore)f
-(calling)h Ft(readline\(\))d Fu(causes)h(Readline)i(to)e(return)195
-2375 y(after)h(accepting)i(that)e(man)o(y)g(c)o(haracters,)h(rather)f
-(than)h(reading)g(up)g(to)f(a)h(c)o(haracter)f(b)q(ound)195
-2430 y(to)e Ft(accept-line)p Fu(.)1773 2560 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 2560 V 21 w(p)r(ending)p 436
-2560 V 20 w(input)195 2615 y Fu(Setting)13 b(this)g(to)f(a)g(v)m(alue)i
-(mak)o(es)e(it)h(the)f(next)h(k)o(eystrok)o(e)f(read.)19
-b(This)13 b(is)g(a)f(w)o(a)o(y)g(to)f(stu\013)h(a)h(single)195
-2670 y(c)o(haracter)h(in)o(to)i(the)f(input)h(stream.)p
+%%Page: 45 49
+45 48 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(45)3371 299 y([V)-8 b(ariable])-3600
+b Fg(const)40 b(char)f(*)g Ff(rl)p 875 299 35 5 v 50
+w(completer)p 1422 299 V 49 w(w)m(ord)p 1719 299 V 50
+w(break)p 2049 299 V 50 w(c)m(haracters)390 408 y Ft(The)64
+b(list)g(of)h(c)m(haracters)h(that)g(signal)e(a)h(break)g(b)s(et)m(w)m
+(een)g(w)m(ords)g(for)f Fs(rl_complete_)390 518 y(internal\(\))p
+Ft(.)38 b(The)30 b(default)f(list)g(is)h(the)g(v)-5 b(alue)30
+b(of)h Fs(rl_basic_word_break_cha)o(ract)o(ers)p Ft(.)3371
+710 y([V)-8 b(ariable])-3600 b Fg(rl_cpvfunc_t)42 b(*)c
+Ff(rl)p 993 710 V 51 w(completion)p 1594 710 V 49 w(w)m(ord)p
+1891 710 V 50 w(break)p 2221 710 V 50 w(ho)s(ok)390 819
+y Ft(If)31 b(non-zero,)i(this)d(is)h(the)g(address)g(of)g(a)h(function)
+f(to)h(call)f(when)f(Readline)g(is)h(deciding)e(where)390
+929 y(to)35 b(separate)g(w)m(ords)f(for)g(w)m(ord)g(completion.)52
+b(It)34 b(should)e(return)h(a)i(c)m(haracter)h(string)d(lik)m(e)h
+Fs(rl_)390 1039 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 1148 y(The)24 b(function)g(ma)m(y)h(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.)37 b(If)25 b(the)390 1258 y(function)k(returns)g
+Fs(NULL)p Ft(,)h Fs(rl_completer_word_break)o(_cha)o(rac)o(ters)24
+b Ft(is)29 b(used.)3371 1450 y([V)-8 b(ariable])-3600
+b Fg(const)40 b(char)f(*)g Ff(rl)p 875 1450 V 50 w(completer)p
+1422 1450 V 49 w(quote)p 1750 1450 V 50 w(c)m(haracters)390
+1559 y Ft(A)34 b(list)e(of)i(c)m(haracters)h(whic)m(h)d(can)i(b)s(e)g
+(used)e(to)j(quote)f(a)g(substring)e(of)i(the)f(line.)49
+b(Completion)390 1669 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)h
+(substring,)e(and)g(within)f(the)i(substring)f Fs
+(rl_completer_word_break)o(_)390 1778 y(characters)32
+b Ft(are)k(treated)g(as)f(an)m(y)h(other)f(c)m(haracter,)j(unless)c
+(they)h(also)g(app)s(ear)f(within)f(this)390 1888 y(list.)3371
+2080 y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g
+Ff(rl)p 875 2080 V 50 w(\014lename)p 1342 2080 V 49 w(quote)p
+1670 2080 V 50 w(c)m(haracters)390 2189 y Ft(A)34 b(list)e(of)i(c)m
+(haracters)h(that)f(cause)h(a)f(\014lename)f(to)h(b)s(e)f(quoted)h(b)m
+(y)f(the)h(completer)g(when)f(they)390 2299 y(app)s(ear)d(in)f(a)i
+(completed)f(\014lename.)40 b(The)30 b(default)f(is)h(the)g(n)m(ull)f
+(string.)3371 2491 y([V)-8 b(ariable])-3600 b Fg(const)40
+b(char)f(*)g Ff(rl)p 875 2491 V 50 w(sp)s(ecial)p 1261
+2491 V 49 w(pre\014xes)390 2600 y Ft(The)27 b(list)g(of)g(c)m
+(haracters)j(that)e(are)g(w)m(ord)f(break)h(c)m(haracters,)i(but)d
+(should)e(b)s(e)i(left)h(in)e Fi(text)31 b Ft(when)390
+2710 y(it)24 b(is)g(passed)g(to)h(the)g(completion)f(function.)37
+b(Programs)25 b(can)g(use)f(this)g(to)h(help)e(determine)h(what)390
+2819 y(kind)j(of)j(completing)e(to)i(do.)41 b(F)-8 b(or)30
+b(instance,)f(Bash)h(sets)f(this)f(v)-5 b(ariable)29
+b(to)h Fs(")p Ft($)p Fs(@")e Ft(so)i(that)g(it)f(can)390
+2929 y(complete)i(shell)d(v)-5 b(ariables)29 b(and)h(hostnames.)3371
+3121 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+3121 V 51 w(completion)p 1033 3121 V 49 w(query)p 1366
+3121 V 51 w(items)390 3230 y Ft(Up)d(to)h(this)e(man)m(y)h(items)g
+(will)d(b)s(e)j(displa)m(y)m(ed)f(in)f(resp)s(onse)i(to)h(a)f(p)s
+(ossible-completions)d(call.)390 3340 y(After)c(that,)h(w)m(e)f(ask)f
+(the)h(user)f(if)f(she)i(is)e(sure)h(she)g(w)m(an)m(ts)i(to)f(see)g
+(them)g(all.)39 b(The)28 b(default)f(v)-5 b(alue)390
+3450 y(is)29 b(100.)3371 3641 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 3641 V 51 w(completion)p 1033
+3641 V 49 w(app)s(end)p 1450 3641 V 48 w(c)m(haracter)390
+3751 y Ft(When)33 b(a)h(single)d(completion)i(alternativ)m(e)h(matc)m
+(hes)g(at)g(the)f(end)g(of)g(the)h(command)f(line,)f(this)390
+3861 y(c)m(haracter)23 b(is)d(app)s(ended)g(to)i(the)g(inserted)e
+(completion)h(text.)39 b(The)20 b(default)h(is)g(a)g(space)h(c)m
+(haracter)390 3970 y(\(`)31 b('\).)86 b(Setting)45 b(this)f(to)i(the)g
+(n)m(ull)d(c)m(haracter)k(\(`)p Fs(\\0)p Ft('\))f(prev)m(en)m(ts)g(an)m
+(ything)f(b)s(eing)f(app)s(ended)390 4080 y(automatically)-8
+b(.)63 b(This)36 b(can)i(b)s(e)f(c)m(hanged)h(in)f(application-sp)s
+(eci\014c)e(completion)i(functions)f(to)390 4189 y(pro)m(vide)j(the)h
+(\\most)g(sensible)e(w)m(ord)h(separator)i(c)m(haracter")h(according)d
+(to)i(an)e(application-)390 4299 y(sp)s(eci\014c)29 b(command)h(line)f
+(syn)m(tax)i(sp)s(eci\014cation.)3371 4491 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 4491 V 51 w(completion)p 1033
+4491 V 49 w(suppress)p 1509 4491 V 50 w(app)s(end)390
+4600 y Ft(If)33 b(non-zero,)i Fi(rl)p 950 4600 28 4 v
+38 w(completion)p 1423 4600 V 40 w(app)s(end)p 1755 4600
+V 38 w(c)m(haracter)42 b Ft(is)32 b(not)h(app)s(ended)f(to)i(matc)m
+(hes)g(at)g(the)g(end)390 4710 y(of)28 b(the)f(command)h(line,)f(as)g
+(describ)s(ed)f(ab)s(o)m(v)m(e.)41 b(It)27 b(is)g(set)h(to)g(0)g(b)s
+(efore)g(an)m(y)f(application-sp)s(eci\014c)390 4819
+y(completion)j(function)f(is)g(called,)h(and)g(ma)m(y)h(only)e(b)s(e)h
+(c)m(hanged)h(within)d(suc)m(h)i(a)h(function.)3371 5011
+y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 5011
+35 5 v 51 w(completion)p 1033 5011 V 49 w(quote)p 1361
+5011 V 50 w(c)m(haracter)390 5121 y Ft(When)d(Readline)f(is)g
+(completing)g(quoted)i(text,)h(as)f(delimited)d(b)m(y)i(one)g(of)g(the)
+h(c)m(haracters)g(in)390 5230 y Fi(rl)p 458 5230 28 4
+v 39 w(completer)p 886 5230 V 40 w(quote)p 1145 5230
+V 41 w(c)m(haracters)p Ft(,)43 b(it)38 b(sets)h(this)f(v)-5
+b(ariable)38 b(to)i(the)f(quoting)f(c)m(haracter)j(found.)390
+5340 y(This)29 b(is)g(set)i(b)s(efore)f(an)m(y)h(application-sp)s
+(eci\014c)c(completion)j(function)f(is)h(called.)p eop
+%%Page: 46 50
+46 49 bop 150 -116 a Ft(46)2600 b(GNU)31 b(Readline)e(Library)3371
+299 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+299 35 5 v 51 w(completion)p 1033 299 V 49 w(suppress)p
+1509 299 V 50 w(quote)390 408 y Ft(If)32 b(non-zero,)h(Readline)e(do)s
+(es)h(not)h(app)s(end)d(a)j(matc)m(hing)f(quote)h(c)m(haracter)h(when)d
+(p)s(erforming)390 518 y(completion)23 b(on)g(a)h(quoted)g(string.)37
+b(It)24 b(is)e(set)i(to)h(0)f(b)s(efore)f(an)m(y)h(application-sp)s
+(eci\014c)d(completion)390 628 y(function)29 b(is)g(called,)h(and)g(ma)
+m(y)h(only)f(b)s(e)f(c)m(hanged)i(within)d(suc)m(h)i(a)h(function.)3371
+800 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+800 V 51 w(completion)p 1033 800 V 49 w(found)p 1366
+800 V 50 w(quote)390 909 y Ft(When)31 b(Readline)g(is)f(completing)h
+(quoted)h(text,)h(it)e(sets)h(this)f(v)-5 b(ariable)30
+b(to)j(a)f(non-zero)g(v)-5 b(alue)31 b(if)390 1019 y(the)21
+b(w)m(ord)g(b)s(eing)f(completed)h(con)m(tains)g(or)g(is)f(delimited)f
+(b)m(y)i(an)m(y)g(quoting)g(c)m(haracters,)j(including)390
+1129 y(bac)m(kslashes.)41 b(This)28 b(is)i(set)h(b)s(efore)f(an)m(y)g
+(application-sp)s(eci\014c)e(completion)i(function)f(is)g(called.)3371
+1301 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+1301 V 51 w(completion)p 1033 1301 V 49 w(mark)p 1340
+1301 V 51 w(symlink)p 1779 1301 V 51 w(dirs)390 1410
+y Ft(If)31 b(non-zero,)i(a)f(slash)f(will)e(b)s(e)i(app)s(ended)f(to)j
+(completed)f(\014lenames)e(that)j(are)f(sym)m(b)s(olic)e(links)390
+1520 y(to)25 b(directory)f(names,)h(sub)5 b(ject)24 b(to)h(the)f(v)-5
+b(alue)24 b(of)g(the)h(user-settable)f Fi(mark-directories)j
+Ft(v)-5 b(ariable.)390 1630 y(This)26 b(v)-5 b(ariable)26
+b(exists)h(so)g(that)h(application-sp)s(eci\014c)d(completion)i
+(functions)f(can)h(o)m(v)m(erride)h(the)390 1739 y(user's)42
+b(global)f(preference)i(\(set)g(via)f(the)g Fi(mark-symlink)m
+(ed-directories)i Ft(Readline)d(v)-5 b(ariable\))390
+1849 y(if)37 b(appropriate.)61 b(This)36 b(v)-5 b(ariable)36
+b(is)h(set)h(to)g(the)g(user's)f(preference)g(b)s(efore)g(an)m(y)h
+(application-)390 1958 y(sp)s(eci\014c)30 b(completion)h(function)g(is)
+f(called,)i(so)g(unless)e(that)i(function)e(mo)s(di\014es)g(the)i(v)-5
+b(alue,)32 b(the)390 2068 y(user's)e(preferences)g(are)h(honored.)3371
+2240 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432
+2240 V 51 w(ignore)p 793 2240 V 50 w(completion)p 1393
+2240 V 49 w(duplicates)390 2350 y Ft(If)30 b(non-zero,)h(then)f
+(duplicates)f(in)g(the)i(matc)m(hes)g(are)g(remo)m(v)m(ed.)42
+b(The)29 b(default)h(is)f(1.)3371 2522 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 2522 V 51 w(\014lename)p 900
+2522 V 48 w(completion)p 1498 2522 V 50 w(desired)390
+2632 y Ft(Non-zero)33 b(means)f(that)g(the)g(results)e(of)i(the)g(matc)
+m(hes)h(are)f(to)h(b)s(e)e(treated)i(as)f(\014lenames.)44
+b(This)390 2741 y(is)39 b Fn(always)49 b Ft(zero)41 b(when)e
+(completion)g(is)g(attempted,)k(and)d(can)g(only)f(b)s(e)g(c)m(hanged)i
+(within)c(an)390 2851 y(application-sp)s(eci\014c)g(completion)i
+(function.)66 b(If)39 b(it)g(is)f(set)i(to)h(a)e(non-zero)h(v)-5
+b(alue)39 b(b)m(y)g(suc)m(h)h(a)390 2960 y(function,)23
+b(directory)f(names)g(ha)m(v)m(e)h(a)g(slash)e(app)s(ended)f(and)i
+(Readline)f(attempts)i(to)g(quote)g(com-)390 3070 y(pleted)34
+b(\014lenames)g(if)g(they)i(con)m(tain)f(an)m(y)g(c)m(haracters)i(in)d
+Fs(rl_filename_quote_chara)o(cter)o(s)390 3180 y Ft(and)c
+Fs(rl_filename_quoting_des)o(ired)24 b Ft(is)29 b(set)i(to)g(a)g
+(non-zero)g(v)-5 b(alue.)3371 3352 y([V)d(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 3352 V 51 w(\014lename)p 900
+3352 V 48 w(quoting)p 1327 3352 V 50 w(desired)390 3461
+y Ft(Non-zero)29 b(means)f(that)h(the)f(results)f(of)h(the)g(matc)m
+(hes)i(are)e(to)h(b)s(e)e(quoted)h(using)f(double)f(quotes)390
+3571 y(\(or)43 b(an)f(application-sp)s(eci\014c)e(quoting)i(mec)m
+(hanism\))g(if)f(the)i(completed)f(\014lename)g(con)m(tains)390
+3680 y(an)m(y)28 b(c)m(haracters)h(in)d Fs(rl_filename_quote_chars)p
+Ft(.)34 b(This)26 b(is)g Fn(always)37 b Ft(non-zero)28
+b(when)f(comple-)390 3790 y(tion)g(is)g(attempted,)i(and)e(can)h(only)f
+(b)s(e)g(c)m(hanged)h(within)d(an)j(application-sp)s(eci\014c)d
+(completion)390 3900 y(function.)36 b(The)21 b(quoting)f(is)g
+(e\013ected)j(via)d(a)i(call)e(to)i(the)f(function)f(p)s(oin)m(ted)g
+(to)h(b)m(y)g Fs(rl_filename_)390 4009 y(quoting_function)p
+Ft(.)3371 4181 y([V)-8 b(ariable])-3600 b Fg(int)39 b
+Ff(rl)p 432 4181 V 51 w(attempted)p 1003 4181 V 47 w(completion)p
+1600 4181 V 49 w(o)m(v)m(er)390 4291 y Ft(If)93 b(an)h(application-sp)s
+(eci\014c)e(completion)h(function)g(assigned)g(to)i Fs(rl_attempted_)
+390 4401 y(completion_function)48 b Ft(sets)53 b(this)f(v)-5
+b(ariable)52 b(to)i(a)f(non-zero)h(v)-5 b(alue,)59 b(Readline)51
+b(will)g(not)390 4510 y(p)s(erform)28 b(its)h(default)g(\014lename)g
+(completion)g(ev)m(en)h(if)f(the)g(application's)f(completion)h
+(function)390 4620 y(returns)g(no)h(matc)m(hes.)42 b(It)31
+b(should)d(b)s(e)i(set)h(only)e(b)m(y)i(an)f(application's)f
+(completion)g(function.)3371 4792 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 4792 V 51 w(completion)p 1033
+4792 V 49 w(t)m(yp)s(e)390 4902 y Ft(Set)c(to)h(a)f(c)m(haracter)i
+(describing)c(the)i(t)m(yp)s(e)g(of)g(completion)g(Readline)e(is)h
+(curren)m(tly)h(attempt-)390 5011 y(ing;)f(see)g(the)g(description)d
+(of)i Fs(rl_complete_internal\(\))28 b Ft(\(see)34 b(Section)f(2.6.2)i
+([Completion)390 5121 y(F)-8 b(unctions],)38 b(page)g(42\))f(for)g(the)
+g(list)e(of)i(c)m(haracters.)61 b(This)35 b(is)g(set)j(to)f(the)g
+(appropriate)e(v)-5 b(alue)390 5230 y(b)s(efore)31 b(an)m(y)h
+(application-sp)s(eci\014c)d(completion)i(function)g(is)f(called,)i
+(allo)m(wing)e(suc)m(h)h(functions)390 5340 y(to)g(presen)m(t)g(the)f
+(same)h(in)m(terface)g(as)f Fs(rl_complete\(\))p Ft(.)p
eop
-%%Page: 25 27
-25 26 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(25)1773 149 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(dispatc)n(hing)195 204
-y Fu(Set)12 b(to)g(a)f(non-zero)i(v)m(alue)g(if)g(a)f(function)h(is)f
-(b)q(eing)i(called)f(from)f(a)f(k)o(ey)h(binding;)j(zero)d(otherwise.)
-195 259 y(Application)20 b(functions)e(can)g(test)g(this)g(to)f(disco)o
-(v)o(er)h(whether)g(they)g(w)o(ere)g(called)h(directly)g(or)195
-314 y(b)o(y)c(Readline's)h(dispatc)o(hing)h(mec)o(hanism.)1773
-423 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 423
-V 21 w(erase)p 363 423 V 20 w(empt)n(y)p 540 423 V 20
-w(line)195 478 y Fu(Setting)j(this)h(to)e(a)h(non-zero)g(v)m(alue)h
-(causes)f(Readline)i(to)d(completely)i(erase)f(the)g(curren)o(t)195
-533 y(line,)g(including)h(an)o(y)c(prompt,)h(an)o(y)g(time)g(a)f
-(newline)j(is)e(t)o(yp)q(ed)g(as)f(the)h(only)g(c)o(haracter)f(on)195
-588 y(an)e(otherwise-empt)o(y)g(line.)31 b(The)18 b(cursor)g(is)h(mo)o
-(v)o(ed)e(to)h(the)g(b)q(eginning)i(of)e(the)g(newly-blank)195
-643 y(line.)1773 752 y(V)l(ariable)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 752 V 21 w(prompt)195 807 y Fu(The)13
-b(prompt)g(Readline)h(uses.)20 b(This)13 b(is)h(set)f(from)f(the)h
-(argumen)o(t)g(to)f Ft(readline\(\))p Fu(,)g(and)h(should)195
-862 y(not)g(b)q(e)h(assigned)g(to)f(directly)l(.)21 b(The)14
-b Ft(rl_set_prompt\(\))d Fu(function)j(\(see)g(Section)g(2.4.6)e
-([Redis-)195 917 y(pla)o(y],)j(page)g(33\))f(ma)o(y)h(b)q(e)g(used)h
-(to)f(mo)q(dify)h(the)f(prompt)g(string)g(after)f(calling)j
-Ft(readline\(\))p Fu(.)1773 1026 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1026 V 21 w(already)p 419 1026
-V 21 w(prompted)195 1081 y Fu(If)e(an)g(application)i(wishes)f(to)f
-(displa)o(y)h(the)f(prompt)g(itself,)h(rather)f(than)g(ha)o(v)o(e)g
-(Readline)h(do)195 1136 y(it)e(the)f(\014rst)g(time)h
-Ft(readline\(\))e Fu(is)i(called,)h(it)e(should)i(set)e(this)h(v)m
-(ariable)g(to)f(a)g(non-zero)h(v)m(alue)195 1191 y(after)h(displa)o
-(ying)j(the)e(prompt.)31 b(The)19 b(prompt)g(m)o(ust)f(also)h(b)q(e)h
-(passed)f(as)f(the)h(argumen)o(t)g(to)195 1245 y Ft(readline\(\))c
-Fu(so)h(the)h(redispla)o(y)g(functions)h(can)e(up)q(date)h(the)g
-(displa)o(y)h(prop)q(erly)l(.)24 b(The)17 b(calling)195
-1300 y(application)g(is)f(resp)q(onsible)h(for)d(managing)h(the)h(v)m
-(alue;)g(Readline)g(nev)o(er)g(sets)e(it.)1773 1410 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1410 V 21 w(library)p
-625 1410 V 21 w(v)n(ersion)195 1465 y Fu(The)c(v)o(ersion)h(n)o(um)o(b)
-q(er)f(of)g(this)h(revision)g(of)f(the)g(library)l(.)1773
-1574 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1574
-V 21 w(readline)p 434 1574 V 22 w(v)n(ersion)195 1629
-y Fu(An)d(in)o(teger)h(enco)q(ding)g(the)f(curren)o(t)g(v)o(ersion)g
-(of)g(the)g(library)l(.)27 b(The)17 b(enco)q(ding)h(is)g(of)f(the)g
-(form)195 1684 y(0x)p Fk(MMmm)p Fu(,)g(where)i Fk(MM)j
-Fu(is)d(the)f(t)o(w)o(o-digit)g(ma)s(jor)f(v)o(ersion)i(n)o(um)o(b)q
-(er,)g(and)f Fk(mm)g Fu(is)h(the)f(t)o(w)o(o-)195 1738
-y(digit)i(minor)e(v)o(ersion)h(n)o(um)o(b)q(er.)31 b(F)l(or)18
-b(example,)i(for)e(Readline-4.2,)i Ft(rl_readline_version)195
-1793 y Fu(w)o(ould)c(ha)o(v)o(e)e(the)i(v)m(alue)g(0x0402.)1773
-1903 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1903
-V 21 w(gn)n(u)p 327 1903 V 20 w(readline)p 545 1903 V
-22 w(p)195 1958 y Fu(Alw)o(a)o(ys)15 b(set)g(to)f(1,)h(denoting)h(that)
-e(this)i(is)g Fp(gnu)f Fu(readline)h(rather)f(than)g(some)g(em)o
-(ulation.)1773 2067 y(V)l(ariable)-1861 b Fi(const)20
-b(char)g(*)f Fh(rl)p 436 2067 V 21 w(terminal)p 668 2067
-V 21 w(name)195 2122 y Fu(The)14 b(terminal)h(t)o(yp)q(e,)f(used)h(for)
-e(initialization.)23 b(If)14 b(not)f(set)h(b)o(y)g(the)g(application,)i
-(Readline)f(sets)195 2177 y(this)h(to)e(the)h(v)m(alue)i(of)e(the)g
-Ft(TERM)g Fu(en)o(vironmen)o(t)g(v)m(ariable)i(the)e(\014rst)g(time)g
-(it)h(is)f(called.)1773 2286 y(V)l(ariable)-1861 b Fi(const)20
-b(char)g(*)f Fh(rl)p 436 2286 V 21 w(readline)p 655 2286
-V 22 w(name)195 2341 y Fu(This)d(v)m(ariable)h(is)f(set)g(to)f(a)g
-(unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.)23
-b(The)16 b(v)m(alue)195 2396 y(allo)o(ws)e(conditional)i(parsing)e(of)g
-(the)g(inputrc)h(\014le)g(\(see)f(Section)h(1.3.2)d([Conditional)j
-(Init)g(Con-)195 2451 y(structs],)f(page)h(9\).)1773
-2560 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286
-2560 V 21 w(instream)195 2615 y Fu(The)i(stdio)f(stream)g(from)g(whic)o
-(h)h(Readline)h(reads)e(input.)37 b(If)21 b Ft(NULL)p
-Fu(,)g(Readline)h(defaults)f(to)195 2670 y Fk(stdin)p
-Fu(.)p eop
-%%Page: 26 28
-26 27 bop 75 -58 a Fu(26)1299 b(GNU)15 b(Readline)h(Library)1773
-149 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286
-149 18 3 v 21 w(outstream)195 204 y Fu(The)e(stdio)h(stream)e(to)h
-(whic)o(h)h(Readline)g(p)q(erforms)f(output.)26 b(If)18
-b Ft(NULL)p Fu(,)e(Readline)j(defaults)f(to)195 259 y
-Fk(stdout)p Fu(.)1773 381 y(V)l(ariable)-1861 b Fi(rl_command_func_t)22
-b(*)d Fh(rl)p 626 381 V 21 w(last)p 735 381 V 21 w(func)195
-436 y Fu(The)f(address)f(of)g(the)g(last)h(command)f(function)h
-(Readline)h(executed.)27 b(Ma)o(y)17 b(b)q(e)h(used)g(to)f(test)195
-490 y(whether)e(or)g(not)g(a)g(function)h(is)f(b)q(eing)i(executed)f(t)
-o(wice)g(in)g(succession,)g(for)e(example.)1773 612 y(V)l(ariable)-1861
-b Fi(rl_hook_func_t)21 b(*)e Fh(rl)p 547 612 V 22 w(startup)p
-752 612 V 19 w(ho)r(ok)195 667 y Fu(If)e(non-zero,)h(this)g(is)f(the)h
-(address)f(of)f(a)h(function)h(to)f(call)h(just)f(b)q(efore)g
-Ft(readline)f Fu(prin)o(ts)i(the)195 722 y(\014rst)d(prompt.)1773
-844 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
-Fh(rl)p 547 844 V 22 w(pre)p 651 844 V 20 w(input)p 804
-844 V 21 w(ho)r(ok)195 898 y Fu(If)f(non-zero,)g(this)g(is)h(the)f
-(address)f(of)h(a)f(function)i(to)e(call)i(after)e(the)h(\014rst)f
-(prompt)g(has)h(b)q(een)195 953 y(prin)o(ted)e(and)f(just)g(b)q(efore)h
-Ft(readline)e Fu(starts)g(reading)h(input)i(c)o(haracters.)1773
-1075 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
-Fh(rl)p 547 1075 V 22 w(ev)n(en)n(t)p 701 1075 V 22 w(ho)r(ok)195
-1130 y Fu(If)i(non-zero,)g(this)g(is)g(the)f(address)g(of)g(a)g
-(function)h(to)f(call)i(p)q(erio)q(dically)h(when)e(Readline)g(is)195
-1184 y(w)o(aiting)15 b(for)f(terminal)h(input.)21 b(By)14
-b(default,)h(this)g(will)i(b)q(e)e(called)h(at)e(most)g(ten)g(times)h
-(a)f(second)195 1239 y(if)i(there)f(is)h(no)f(k)o(eyb)q(oard)g(input.)
-1773 1361 y(V)l(ariable)-1861 b Fi(rl_getc_func_t)21
-b(*)e Fh(rl)p 547 1361 V 22 w(getc)p 671 1361 V 21 w(function)195
-1416 y Fu(If)c(non-zero,)h(Readline)g(will)h(call)f(indirectly)i
-(through)d(this)g(p)q(oin)o(ter)h(to)f(get)f(a)h(c)o(haracter)g(from)
-195 1471 y(the)k(input)i(stream.)31 b(By)19 b(default,)h(it)g(is)g(set)
-f(to)f Ft(rl_getc)p Fu(,)h(the)g(default)h(Readline)h(c)o(haracter)195
-1525 y(input)16 b(function)g(\(see)f(Section)h(2.4.8)e([Character)g
-(Input],)h(page)g(34\).)1773 1647 y(V)l(ariable)-1861
-b Fi(rl_voidfunc_t)21 b(*)e Fh(rl)p 521 1647 V 21 w(redispla)n(y)p
-765 1647 V 22 w(function)195 1702 y Fu(If)f(non-zero,)h(Readline)g
-(will)h(call)f(indirectly)h(through)e(this)g(p)q(oin)o(ter)h(to)e(up)q
-(date)i(the)f(displa)o(y)195 1757 y(with)c(the)f(curren)o(t)h(con)o
-(ten)o(ts)f(of)g(the)g(editing)i(bu\013er.)k(By)14 b(default,)g(it)g
-(is)g(set)f(to)g Ft(rl_redisplay)p Fu(,)195 1812 y(the)i(default)h
-(Readline)h(redispla)o(y)f(function)g(\(see)f(Section)h(2.4.6)e
-([Redispla)o(y],)h(page)g(33\).)1773 1933 y(V)l(ariable)-1861
-b Fi(rl_vintfunc_t)21 b(*)e Fh(rl)p 521 1933 V 21 w(prep)p
-656 1933 V 21 w(term)p 798 1933 V 19 w(function)195 1988
-y Fu(If)12 b(non-zero,)h(Readline)g(will)h(call)f(indirectly)h(through)
-e(this)g(p)q(oin)o(ter)h(to)e(initialize)k(the)e(terminal.)195
-2043 y(The)19 b(function)g(tak)o(es)f(a)g(single)i(argumen)o(t,)e(an)h
-Ft(int)f Fu(\015ag)g(that)g(sa)o(ys)g(whether)g(or)h(not)f(to)g(use)195
-2098 y(eigh)o(t-bit)g(c)o(haracters.)25 b(By)17 b(default,)h(this)f(is)
-h(set)e(to)h Ft(rl_prep_terminal)e Fu(\(see)i(Section)h(2.4.9)195
-2152 y([T)l(erminal)e(Managemen)o(t],)d(page)i(35\).)1773
-2274 y(V)l(ariable)-1861 b Fi(rl_voidfunc_t)21 b(*)e
-Fh(rl)p 521 2274 V 21 w(deprep)p 714 2274 V 21 w(term)p
-856 2274 V 19 w(function)195 2329 y Fu(If)g(non-zero,)g(Readline)g
-(will)h(call)g(indirectly)g(through)e(this)h(p)q(oin)o(ter)f(to)g
-(reset)g(the)h(terminal.)195 2384 y(This)f(function)g(should)h(undo)f
-(the)f(e\013ects)h(of)f Ft(rl_prep_term_function)p Fu(.)24
-b(By)17 b(default,)i(this)195 2439 y(is)d(set)f(to)f
-Ft(rl_deprep_terminal)f Fu(\(see)i(Section)h(2.4.9)e([T)l(erminal)i
-(Managemen)o(t],)d(page)i(35\).)1773 2560 y(V)l(ariable)-1861
-b Fi(Keymap)20 b Fh(rl)p 293 2560 V 21 w(executing)p
-551 2560 V 22 w(k)n(eymap)195 2615 y Fu(This)f(v)m(ariable)g(is)f(set)g
-(to)g(the)g(k)o(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h
-(29\))f(in)i(whic)o(h)195 2670 y(the)c(curren)o(tly)h(executing)g
-(readline)h(function)f(w)o(as)f(found.)p eop
-%%Page: 27 29
-27 28 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(27)1773 149 y(V)l(ariable)-1861 b Fi(Keymap)20
-b Fh(rl)p 293 149 18 3 v 21 w(binding)p 501 149 V 22
-w(k)n(eymap)195 204 y Fu(This)f(v)m(ariable)g(is)f(set)g(to)g(the)g(k)o
-(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h(29\))f(in)i
-(whic)o(h)195 259 y(the)c(last)g(k)o(ey)g(binding)j(o)q(ccurred.)1773
-383 y(V)l(ariable)-1861 b Fi(char)20 b(*)f Fh(rl)p 286
-383 V 21 w(executing)p 544 383 V 22 w(macro)195 438 y
-Fu(This)d(v)m(ariable)g(is)g(set)f(to)g(the)g(text)g(of)f(an)o(y)h
-(curren)o(tly-executing)i(macro.)1773 562 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 562 V 21 w(readline)p 434 562
-V 22 w(state)195 617 y Fu(A)d(v)m(ariable)i(with)e(bit)h(v)m(alues)h
-(that)d(encapsulate)i(the)g(curren)o(t)f(Readline)h(state.)25
-b(A)18 b(bit)f(is)h(set)195 671 y(with)h(the)g Ft(RL_SETSTATE)f
-Fu(macro,)h(and)g(unset)g(with)g(the)g Ft(RL_UNSETSTATE)e
-Fu(macro.)31 b(Use)19 b(the)195 726 y Ft(RL_ISSTATE)e
-Fu(macro)h(to)g(test)g(whether)h(a)f(particular)i(state)d(bit)j(is)f
-(set.)30 b(Curren)o(t)18 b(state)g(bits)195 781 y(include:)195
-864 y Ft(RL_STATE_NONE)435 919 y Fu(Readline)e(has)g(not)e(y)o(et)h(b)q
-(een)h(called,)h(nor)e(has)g(it)g(b)q(egun)h(to)f(in)o(tialize.)195
-1001 y Ft(RL_STATE_INITIALIZING)435 1056 y Fu(Readline)h(is)g
-(initializi)q(ng)i(its)d(in)o(ternal)h(data)f(structures.)195
-1138 y Ft(RL_STATE_INITIALIZED)435 1192 y Fu(Readline)h(has)g
-(completed)g(its)f(initialization.)195 1274 y Ft(RL_STATE_TERMPREPPED)
-435 1329 y Fu(Readline)h(has)e(mo)q(di\014ed)i(the)e(terminal)h(mo)q
-(des)g(to)e(do)i(its)f(o)o(wn)g(input)h(and)g(redis-)435
-1384 y(pla)o(y)l(.)195 1466 y Ft(RL_STATE_READCMD)435
-1521 y Fu(Readline)h(is)g(reading)g(a)f(command)g(from)f(the)i(k)o(eyb)
-q(oard.)195 1603 y Ft(RL_STATE_METANEXT)435 1658 y Fu(Readline)g(is)g
-(reading)g(more)f(input)h(after)e(reading)i(the)f(meta-pre\014x)h(c)o
-(haracter.)195 1740 y Ft(RL_STATE_DISPATCHING)435 1794
-y Fu(Readline)g(is)g(dispatc)o(hing)h(to)d(a)h(command.)195
-1876 y Ft(RL_STATE_MOREINPUT)435 1931 y Fu(Readline)h(is)g(reading)g
-(more)f(input)h(while)h(executing)f(an)f(editing)i(command.)195
-2013 y Ft(RL_STATE_ISEARCH)435 2068 y Fu(Readline)f(is)g(p)q(erforming)
-g(an)f(incremen)o(tal)h(history)f(searc)o(h.)195 2150
-y Ft(RL_STATE_NSEARCH)435 2205 y Fu(Readline)h(is)g(p)q(erforming)g(a)f
-(non-incremen)o(tal)h(history)g(searc)o(h.)195 2287 y
-Ft(RL_STATE_SEARCH)435 2342 y Fu(Readline)11 b(is)g(searc)o(hing)g(bac)
-o(kw)o(ard)e(or)h(forw)o(ard)f(through)h(the)g(history)g(for)f(a)h
-(string.)195 2424 y Ft(RL_STATE_NUMERICARG)435 2478 y
-Fu(Readline)16 b(is)g(reading)g(a)f(n)o(umeric)h(argumen)o(t.)195
-2560 y Ft(RL_STATE_MACROINPUT)435 2615 y Fu(Readline)d(is)g(curren)o
-(tly)g(getting)f(its)g(input)h(from)e(a)h(previously-de\014ned)j(k)o
-(eyb)q(oard)435 2670 y(macro.)p eop
-%%Page: 28 30
-28 29 bop 75 -58 a Fu(28)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(RL_STATE_MACRODEF)435 204 y Fu(Readline)g(is)g(curren)o(tly)g
-(reading)g(c)o(haracters)e(de\014ning)j(a)e(k)o(eyb)q(oard)g(macro.)195
-286 y Ft(RL_STATE_OVERWRITE)435 341 y Fu(Readline)h(is)g(in)g(o)o(v)o
-(erwrite)f(mo)q(de.)195 423 y Ft(RL_STATE_COMPLETING)435
-478 y Fu(Readline)h(is)g(p)q(erforming)g(w)o(ord)e(completion.)195
-560 y Ft(RL_STATE_SIGHANDLER)435 615 y Fu(Readline)i(is)g(curren)o(tly)
-g(executing)g(the)f(readline)i(signal)f(handler.)195
-697 y Ft(RL_STATE_UNDOING)435 752 y Fu(Readline)g(is)g(p)q(erforming)g
-(an)f(undo.)195 834 y Ft(RL_STATE_DONE)435 889 y Fu(Readline)g(has)f
-(read)g(a)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e Ft(accept-line)f
-Fu(and)i(is)h(ab)q(out)f(to)435 944 y(return)h(the)g(line)i(to)e(the)g
-(caller.)1773 1068 y(V)l(ariable)-1861 b Fi(int)20 b
-Fh(rl)p 215 1068 18 3 v 21 w(explicit)p 417 1068 V 24
-w(arg)195 1123 y Fu(Set)f(to)g(a)g(non-zero)h(v)m(alue)h(if)e(an)h
-(explicit)h(n)o(umeric)g(argumen)o(t)d(w)o(as)h(sp)q(eci\014ed)i(b)o(y)
-f(the)f(user.)195 1178 y(Only)d(v)m(alid)h(in)f(a)f(bindable)i(command)
-f(function.)1773 1302 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 1302 V 21 w(n)n(umeric)p 437 1302 V 20
-w(arg)195 1357 y Fu(Set)j(to)f(the)g(v)m(alue)i(of)f(an)o(y)f(n)o
-(umeric)h(argumen)o(t)f(explicitly)k(sp)q(eci\014ed)f(b)o(y)d(the)h
-(user)g(b)q(efore)195 1412 y(executing)14 b(the)f(curren)o(t)g
-(Readline)h(function.)20 b(Only)14 b(v)m(alid)h(in)f(a)f(bindable)i
-(command)d(function.)1773 1536 y(V)l(ariable)-1861 b
-Fi(int)20 b Fh(rl)p 215 1536 V 21 w(editing)p 407 1536
-V 22 w(mo)r(de)195 1591 y Fu(Set)13 b(to)f(a)g(v)m(alue)i(denoting)f
-(Readline's)g(curren)o(t)g(editing)h(mo)q(de.)19 b(A)12
-b(v)m(alue)i(of)e Fk(1)k Fu(means)d(Readline)195 1646
-y(is)j(curren)o(tly)f(in)h(emacs)g(mo)q(de;)f Fk(0)j
-Fu(means)d(that)g(vi)h(mo)q(de)f(is)h(activ)o(e.)75 1781
-y Fs(2.4)33 b(Readline)23 b(Con)n(v)n(enience)g(F)-6
-b(unctions)75 1927 y Fj(2.4.1)30 b(Naming)20 b(a)g(F)-5
-b(unction)137 2025 y Fu(The)20 b(user)g(can)g(dynamically)i(c)o(hange)e
-(the)g(bindings)i(of)d(k)o(eys)h(while)h(using)g(Readline.)35
-b(This)20 b(is)75 2080 y(done)f(b)o(y)f(represen)o(ting)h(the)g
-(function)g(with)g(a)f(descriptiv)o(e)i(name.)29 b(The)19
-b(user)f(is)h(able)h(to)d(t)o(yp)q(e)i(the)75 2135 y(descriptiv)o(e)e
-(name)e(when)h(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14
-b(in)i(an)f(init)i(\014le,)f(one)f(migh)o(t)g(\014nd)195
-2202 y Ft(Meta-Rubout:)46 b(backward-kill-word)137 2272
-y Fu(This)21 b(binds)g(the)f(k)o(eystrok)o(e)661 2270
-y Fn(h)p 673 2244 209 2 v 673 2272 a Fm(Meta-Rub)q(out)p
-673 2279 V 879 2270 a Fn(i)914 2272 y Fu(to)g(the)g(function)g
-Fl(descriptively)k Fu(named)c Ft(backward-)75 2326 y(kill-word)p
-Fu(.)29 b(Y)l(ou,)19 b(as)f(the)h(programmer,)f(should)i(bind)f(the)g
-(functions)h(y)o(ou)e(write)h(to)e(descriptiv)o(e)75
-2381 y(names)e(as)g(w)o(ell.)21 b(Readline)16 b(pro)o(vides)g(a)f
-(function)h(for)e(doing)i(that:)1762 2506 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 18 3 v 21 w(add)p 328
-2506 V 20 w(defun)i Fg(\()p Ft(const)14 b(char)h(*name,)f
-(rl_command_func_t)283 2560 y(*function,)f(int)i(key)p
-Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)h(list)h(of)e(named)h
-(functions.)28 b(Mak)o(e)17 b Fk(function)h Fu(b)q(e)g(the)g(function)h
-(that)d(gets)195 2670 y(called.)21 b(If)16 b Fk(k)o(ey)j
-Fu(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fk(function)i
-Fu(using)g Ft(rl_bind_key\(\))p Fu(.)p eop
-%%Page: 29 31
-29 30 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(29)137 149 y(Using)16 b(this)f(function)h(alone)g(is)f
-(su\016cien)o(t)h(for)f(most)f(applications.)21 b(It)15
-b(is)h(the)f(recommended)h(w)o(a)o(y)75 204 y(to)d(add)h(a)f(few)g
-(functions)h(to)f(the)h(default)g(functions)g(that)f(Readline)i(has)e
-(built)i(in.)20 b(If)14 b(y)o(ou)f(need)h(to)f(do)75
-259 y(something)k(other)g(than)f(adding)i(a)e(function)i(to)e
-(Readline,)i(y)o(ou)f(ma)o(y)f(need)i(to)e(use)h(the)g(underlying)75
-314 y(functions)f(describ)q(ed)h(b)q(elo)o(w.)75 442
-y Fj(2.4.2)30 b(Selecting)20 b(a)h(Keymap)137 546 y Fu(Key)16
-b(bindings)i(tak)o(e)c(place)j(on)e(a)g Fk(k)o(eymap)p
-Fu(.)21 b(The)15 b(k)o(eymap)h(is)f(the)h(asso)q(ciation)g(b)q(et)o(w)o
-(een)g(the)f(k)o(eys)75 601 y(that)f(the)g(user)g(t)o(yp)q(es)g(and)h
-(the)f(functions)h(that)f(get)g(run.)19 b(Y)l(ou)c(can)f(mak)o(e)g(y)o
-(our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 656 y(existing)i(k)o(eymaps,)f
-(and)g(tell)h(Readline)h(whic)o(h)f(k)o(eymap)f(to)f(use.)1762
-797 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-797 18 3 v 21 w(mak)n(e)p 445 797 V 20 w(bare)p 575 797
-V 20 w(k)n(eymap)j Fg(\()p Ft(void)p Fg(\))195 851 y
-Fu(Returns)12 b(a)f(new,)i(empt)o(y)f(k)o(eymap.)18 b(The)13
-b(space)f(for)f(the)i(k)o(eymap)e(is)i(allo)q(cated)g(with)f
-Ft(malloc\(\))p Fu(;)195 906 y(the)j(caller)i(should)f(free)f(it)h(b)o
-(y)f(calling)i Ft(rl_discard_keymap\(\))12 b Fu(when)k(done.)1762
-1047 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-1047 V 21 w(cop)n(y)p 428 1047 V 21 w(k)n(eymap)j Fg(\()p
-Ft(Keymap)14 b(map)p Fg(\))195 1102 y Fu(Return)h(a)g(new)g(k)o(eymap)g
-(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fk(map)p Fu(.)1762
-1243 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-1243 V 21 w(mak)n(e)p 445 1243 V 20 w(k)n(eymap)j Fg(\()p
-Ft(void)p Fg(\))195 1298 y Fu(Return)16 b(a)f(new)i(k)o(eymap)e(with)i
-(the)f(prin)o(ting)h(c)o(haracters)e(b)q(ound)i(to)e(rl)p
-1457 1298 14 2 v 17 w(insert,)h(the)g(lo)o(w)o(ercase)195
-1353 y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)f(equiv)m
-(alen)o(ts,)j(and)d(the)h(Meta)e(digits)i(b)q(ound)g(to)f(pro)q(duce)
-195 1407 y(n)o(umeric)16 b(argumen)o(ts.)1762 1548 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 1548 18 3 v 21 w(discard)p
-441 1548 V 21 w(k)n(eymap)i Fg(\()p Ft(Keymap)14 b(keymap)p
-Fg(\))195 1603 y Fu(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f
-Fk(k)o(eymap)p Fu(.)137 1711 y(Readline)24 b(has)f(sev)o(eral)g(in)o
-(ternal)g(k)o(eymaps.)42 b(These)23 b(functions)g(allo)o(w)g(y)o(ou)f
-(to)g(c)o(hange)h(whic)o(h)75 1766 y(k)o(eymap)15 b(is)h(activ)o(e.)
-1762 1907 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p
-293 1907 V 21 w(get)p 391 1907 V 21 w(k)n(eymap)i Fg(\()p
-Ft(void)p Fg(\))195 1962 y Fu(Returns)15 b(the)g(curren)o(tly)h(activ)o
-(e)f(k)o(eymap.)1762 2103 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 2103 V 21 w(set)p 333 2103 V 21 w(k)n(eymap)i
-Fg(\()p Ft(Keymap)14 b(keymap)p Fg(\))195 2158 y Fu(Mak)o(es)g
-Fk(k)o(eymap)j Fu(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1762
-2298 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-2298 V 21 w(get)p 391 2298 V 21 w(k)n(eymap)p 605 2298
-V 20 w(b)n(y)p 685 2298 V 21 w(name)i Fg(\()p Ft(const)14
-b(char)g(*name)p Fg(\))195 2353 y Fu(Return)i(the)h(k)o(eymap)f(matc)o
-(hing)h Fk(name)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2408 y(keymap)e
-Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g
-(page)f(4\).)1762 2549 y(F)l(unction)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 2549 V 21 w(get)p 384 2549 V 21 w(k)n(eymap)p
-598 2549 V 20 w(name)i Fg(\()p Ft(Keymap)14 b(keymap)p
-Fg(\))195 2604 y Fu(Return)i(the)h(name)g(matc)o(hing)f
-Fk(k)o(eymap)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2659 y(keymap)e
-Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g
-(page)f(4\).)p eop
-%%Page: 30 32
-30 31 bop 75 -58 a Fu(30)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.3)30 b(Binding)20 b(Keys)137 244 y Fu(Key)13
-b(sequences)g(are)e(asso)q(ciate)h(with)h(functions)f(through)g(the)g
-(k)o(eymap.)19 b(Readline)13 b(has)f(sev)o(eral)g(in-)75
-299 y(ternal)j(k)o(eymaps:)k Ft(emacs_standard_keymap)p
-Fu(,)11 b Ft(emacs_meta_keymap)p Fu(,)h Ft(emacs_ctlx_keymap)p
-Fu(,)g Ft(vi_)75 354 y(movement_keymap)p Fu(,)20 b(and)i
-Ft(vi_insertion_keymap)p Fu(.)35 b Ft(emacs_standard_keymap)18
-b Fu(is)k(the)f(default,)75 408 y(and)15 b(the)h(examples)g(in)g(this)f
-(man)o(ual)h(assume)f(that.)137 474 y(Since)h Ft(readline\(\))c
-Fu(installs)j(a)f(set)f(of)h(default)g(k)o(ey)g(bindings)h(the)f
-(\014rst)g(time)g(it)g(is)g(called,)i(there)d(is)75 529
-y(alw)o(a)o(ys)j(the)g(danger)g(that)g(a)g(custom)g(binding)i
-(installed)g(b)q(efore)f(the)f(\014rst)g(call)i(to)d
-Ft(readline\(\))g Fu(will)75 584 y(b)q(e)f(o)o(v)o(erridden.)19
-b(An)13 b(alternate)g(mec)o(hanism)h(is)f(to)f(install)i(custom)f(k)o
-(ey)g(bindings)h(in)g(an)f(initialization)75 638 y(function)19
-b(assigned)h(to)d(the)i Ft(rl_startup_hook)e Fu(v)m(ariable)j(\(see)e
-(Section)h(2.3)f([Readline)i(V)l(ariables],)75 693 y(page)15
-b(24\).)137 759 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1762
-868 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 868
-18 3 v 21 w(bind)p 347 868 V 21 w(k)n(ey)k Fg(\()p Ft(int)14
-b(key,)h(rl_command_func_t)d(*function)p Fg(\))195 922
-y Fu(Binds)18 b Fk(k)o(ey)i Fu(to)c Fk(function)h Fu(in)h(the)e(curren)
-o(tly)h(activ)o(e)g(k)o(eymap.)23 b(Returns)16 b(non-zero)h(in)g(the)g
-(case)195 977 y(of)e(an)g(in)o(v)m(alid)i Fk(k)o(ey)p
-Fu(.)1762 1086 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1086 V 21 w(bind)p 347 1086 V 21 w(k)n(ey)p 452 1086
-V 21 w(in)p 520 1086 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h
-(rl_command_func_t)e(*function,)283 1141 y(Keymap)h(map)p
-Fg(\))195 1196 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c Fk(function)h
-Fu(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(the)f(case)g(of)g
-(an)g(in)o(v)m(alid)j Fk(k)o(ey)p Fu(.)1762 1304 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1304 V 21 w(un)n(bind)p 409
-1304 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 b(key)p Fg(\))195
-1359 y Fu(Bind)19 b Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i(function)f(in)g
-(the)f(curren)o(tly)g(activ)o(e)h(k)o(eymap.)28 b(Returns)18
-b(non-zero)g(in)195 1414 y(case)d(of)g(error.)1762 1523
-y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1523 V
-21 w(un)n(bind)p 409 1523 V 21 w(k)n(ey)p 514 1523 V
-21 w(in)p 582 1523 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Keymap)f
-(map)p Fg(\))195 1577 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i
-(function)f(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(case)f
-(of)g(error.)1762 1686 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 1686 V 21 w(un)n(bind)p 409 1686 V 21 w(function)p
-635 1686 V 21 w(in)p 703 1686 V 21 w(map)h Fg(\()p Ft
-(rl_command_func_t)13 b(*function,)283 1741 y(Keymap)h(map)p
-Fg(\))195 1796 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(execute)i
-Fk(function)g Fu(in)g Fk(map)p Fu(.)1762 1905 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1905 V 21 w(un)n(bind)p 409
-1905 V 21 w(command)p 674 1905 V 17 w(in)p 738 1905 V
-22 w(map)h Fg(\()p Ft(const)14 b(char)h(*command,)f(Keymap)283
-1959 y(map)p Fg(\))195 2014 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f
-(are)h(b)q(ound)h(to)f Fk(command)i Fu(in)f Fk(map)p
-Fu(.)1762 2123 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2123 V 21 w(set)p 307 2123 V 20 w(k)n(ey)k Fg(\()p
-Ft(const)14 b(char)h(*keyseq,)f(rl_command_func_t)f(*function,)283
-2178 y(Keymap)h(map)p Fg(\))195 2232 y Fu(Bind)g(the)e(k)o(ey)h
-(sequence)h(represen)o(ted)f(b)o(y)f(the)h(string)f Fk(k)o(eyseq)i
-Fu(to)e(the)g(function)i Fk(function)p Fu(.)19 b(This)195
-2287 y(mak)o(es)13 b(new)g(k)o(eymaps)g(as)f(necessary)l(.)20
-b(The)13 b(initial)j(k)o(eymap)c(in)i(whic)o(h)g(to)f(do)g(bindings)i
-(is)f Fk(map)p Fu(.)1762 2396 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 2396 V 21 w(generic)p 413 2396 V 21 w(bind)j
-Fg(\()p Ft(int)15 b(type,)f(const)h(char)f(*keyseq,)g(char)h(*data,)283
-2451 y(Keymap)f(map)p Fg(\))195 2506 y Fu(Bind)h(the)e(k)o(ey)h
-(sequence)h(represen)o(ted)e(b)o(y)h(the)g(string)f Fk(k)o(eyseq)i
-Fu(to)d(the)i(arbitrary)f(p)q(oin)o(ter)h Fk(data)p Fu(.)195
-2560 y Fk(t)o(yp)q(e)j Fu(sa)o(ys)c(what)h(kind)h(of)f(data)g(is)g(p)q
-(oin)o(ted)i(to)d(b)o(y)h Fk(data)p Fu(;)g(this)h(can)f(b)q(e)h(a)f
-(function)h(\()p Ft(ISFUNC)p Fu(\),)d(a)195 2615 y(macro)i(\()p
-Ft(ISMACR)p Fu(\),)f(or)h(a)h(k)o(eymap)f(\()p Ft(ISKMAP)p
-Fu(\).)k(This)e(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.)20
-b(The)195 2670 y(initial)d(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g
-(bindings)i(is)f Fk(map)p Fu(.)p eop
-%%Page: 31 33
-31 32 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(31)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(parse)p 369 149 V 19 w(and)p
-480 149 V 21 w(bind)j Fg(\()p Ft(char)14 b(*line)p Fg(\))195
-204 y Fu(P)o(arse)g Fk(line)19 b Fu(as)14 b(if)h(it)g(had)g(b)q(een)h
-(read)f(from)f(the)g Ft(inputrc)g Fu(\014le)i(and)f(p)q(erform)f(an)o
-(y)h(k)o(ey)f(bindings)195 259 y(and)h(v)m(ariable)i(assignmen)o(ts)e
-(found)h(\(see)f(Section)h(1.3)e([Readline)i(Init)g(File],)g(page)f
-(4\).)1762 359 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 359 V 21 w(read)p 346 359 V 20 w(init)p 450 359 V
-22 w(\014le)k Fg(\()p Ft(const)14 b(char)h(*filename)p
-Fg(\))195 414 y Fu(Read)g(k)o(eybindings)j(and)e(v)m(ariable)h
-(assignmen)o(ts)f(from)f Fk(\014lename)k Fu(\(see)d(Section)g(1.3)f
-([Readline)195 469 y(Init)h(File],)g(page)f(4\).)75 571
-y Fj(2.4.4)30 b(Asso)r(ciating)20 b(F)-5 b(unction)20
-b(Names)h(and)f(Bindings)137 664 y Fu(These)11 b(functions)h(allo)o(w)e
-(y)o(ou)h(to)f(\014nd)h(out)f(what)g(k)o(eys)h(in)o(v)o(ok)o(e)f(named)
-h(functions)h(and)e(the)h(functions)75 718 y(in)o(v)o(ok)o(ed)j(b)o(y)g
-(a)f(particular)h(k)o(ey)g(sequence.)21 b(Y)l(ou)14 b(ma)o(y)f(also)g
-(asso)q(ciate)h(a)g(new)g(function)g(name)g(with)g(an)75
-773 y(arbitrary)h(function.)1762 873 y(F)l(unction)-1861
-b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 873 V 21
-w(named)p 814 873 V 19 w(function)k Fg(\()p Ft(const)14
-b(char)h(*name)p Fg(\))195 928 y Fu(Return)g(the)g(function)h(with)g
-(name)f Fk(name)p Fu(.)1762 1028 y(F)l(unction)-1861
-b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 1028 V 21
-w(function)p 852 1028 V 21 w(of)p 920 1028 V 20 w(k)n(eyseq)24
-b Fg(\()p Ft(const)14 b(char)283 1083 y(*keyseq,)g(Keymap)g(map,)h(int)
-f(*type)p Fg(\))195 1138 y Fu(Return)i(the)g(function)h(in)o(v)o(ok)o
-(ed)g(b)o(y)f Fk(k)o(eyseq)h Fu(in)g(k)o(eymap)f Fk(map)p
-Fu(.)23 b(If)17 b Fk(map)g Fu(is)g Ft(NULL)p Fu(,)f(the)g(curren)o(t)
-195 1193 y(k)o(eymap)i(is)h(used.)31 b(If)18 b Fk(t)o(yp)q(e)j
-Fu(is)e(not)g Ft(NULL)p Fu(,)f(the)g(t)o(yp)q(e)h(of)f(the)h(ob)s(ject)
-f(is)h(returned)g(in)g(the)f Ft(int)195 1247 y Fu(v)m(ariable)f(it)e(p)
-q(oin)o(ts)h(to)e(\(one)h(of)g Ft(ISFUNC)p Fu(,)f Ft(ISKMAP)p
-Fu(,)g(or)h Ft(ISMACR)p Fu(\).)1762 1347 y(F)l(unction)-1861
-b Fi(char)20 b(**)f Fh(rl)p 312 1347 V 21 w(in)n(v)n(oking)p
-541 1347 V 23 w(k)n(eyseqs)k Fg(\()p Ft(rl_command_func_t)13
-b(*function)p Fg(\))195 1402 y Fu(Return)i(an)h(arra)o(y)e(of)h
-(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
-o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1457 y(the)f(curren)o(t)g(k)o
-(eymap.)1762 1557 y(F)l(unction)-1861 b Fi(char)20 b(**)f
-Fh(rl)p 312 1557 V 21 w(in)n(v)n(oking)p 541 1557 V 23
-w(k)n(eyseqs)p 750 1557 V 21 w(in)p 818 1557 V 22 w(map)i
-Fg(\()p Ft(rl_command_func_t)283 1612 y(*function,)13
-b(Keymap)i(map)p Fg(\))195 1667 y Fu(Return)g(an)h(arra)o(y)e(of)h
-(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
-o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1722 y(the)f(k)o(eymap)g
-Fk(map)p Fu(.)1762 1822 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1822 V 21 w(function)p 467 1822 V 21 w(dump)r(er)g
-Fg(\()p Ft(int)15 b(readable)p Fg(\))195 1876 y Fu(Prin)o(t)g(the)f
-(readline)j(function)e(names)g(and)f(the)h(k)o(ey)g(sequences)g(curren)
-o(tly)g(b)q(ound)h(to)e(them)h(to)195 1931 y Ft(rl_outstream)p
-Fu(.)j(If)c Fk(readable)j Fu(is)d(non-zero,)g(the)g(list)g(is)h
-(formatted)d(in)j(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)195
-1986 y(b)q(e)i(made)f(part)g(of)f(an)i Ft(inputrc)e Fu(\014le)i(and)f
-(re-read.)1762 2086 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 2086 V 21 w(list)p 337 2086 V 22 w(funmap)p
-550 2086 V 18 w(names)h Fg(\()p Ft(void)p Fg(\))195 2141
-y Fu(Prin)o(t)15 b(the)g(names)h(of)e(all)j(bindable)g(Readline)f
-(functions)g(to)f Ft(rl_outstream)p Fu(.)1762 2241 y(F)l(unction)-1861
-b Fi(const)20 b(char)g(**)f Fh(rl)p 462 2241 V 21 w(funmap)p
-674 2241 V 18 w(names)i Fg(\()p Ft(void)p Fg(\))195 2296
-y Fu(Return)13 b(a)f(NULL)i(terminated)g(arra)o(y)d(of)i(kno)o(wn)g
-(function)g(names.)20 b(The)13 b(arra)o(y)f(is)h(sorted.)19
-b(The)195 2351 y(arra)o(y)11 b(itself)j(is)f(allo)q(cated,)h(but)f(not)
-f(the)h(strings)f(inside.)21 b(Y)l(ou)13 b(should)h Ft(free\(\))d
-Fu(the)i(arra)o(y)e(when)195 2405 y(y)o(ou)k(are)g(done,)g(but)g(not)g
-(the)g(p)q(oin)o(ters.)1762 2506 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(add)p 328 2506
-V 20 w(funmap)p 539 2506 V 18 w(en)n(try)j Fg(\()p Ft(const)14
-b(char)h(*name,)f(rl_command_func_t)283 2560 y(*function)p
-Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)g(list)h(of)f(bindable)
-j(Readline)f(command)e(names,)g(and)h(mak)o(e)f Fk(function)h
-Fu(the)195 2670 y(function)f(to)f(b)q(e)g(called)i(when)f
-Fk(name)i Fu(is)d(in)o(v)o(ok)o(ed.)p eop
-%%Page: 32 34
-32 33 bop 75 -58 a Fu(32)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.5)30 b(Allo)n(wing)21 b(Undoing)137 251
-y Fu(Supp)q(orting)14 b(the)g(undo)f(command)g(is)h(a)f(painless)h
-(thing,)g(and)f(mak)o(es)g(y)o(our)f(functions)i(m)o(uc)o(h)f(more)75
-306 y(useful.)21 b(It)15 b(is)h(certainly)g(easy)f(to)g(try)f
-(something)i(if)f(y)o(ou)g(kno)o(w)g(y)o(ou)g(can)g(undo)h(it.)137
-378 y(If)21 b(y)o(our)f(function)h(simply)h(inserts)f(text)e(once,)j
-(or)e(deletes)h(text)f(once,)i(and)f(uses)f Ft(rl_insert_)75
-433 y(text\(\))13 b Fu(or)h Ft(rl_delete_text\(\))d Fu(to)j(do)f(it,)h
-(then)h(undoing)g(is)f(already)g(done)h(for)e(y)o(ou)h(automatically)l
-(.)137 506 y(If)d(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o
-(ultiple)i(deletions,)g(or)e(an)o(y)g(com)o(bination)h(of)f(these)g(op)
-q(erations,)75 560 y(y)o(ou)19 b(should)h(group)e(them)h(together)g(in)
-o(to)g(one)g(op)q(eration.)31 b(This)20 b(is)f(done)h(with)f
-Ft(rl_begin_undo_)75 615 y(group\(\))14 b Fu(and)i Ft
-(rl_end_undo_group\(\))p Fu(.)137 688 y(The)g(t)o(yp)q(es)f(of)g(ev)o
-(en)o(ts)g(that)f(can)h(b)q(e)h(undone)g(are:)195 757
-y Ft(enum)23 b(undo_code)g({)h(UNDO_DELETE,)e(UNDO_INSERT,)g
-(UNDO_BEGIN,)g(UNDO_END)h(};)137 830 y Fu(Notice)16 b(that)e
-Ft(UNDO_DELETE)g Fu(means)h(to)g(insert)g(some)g(text,)f(and)i
-Ft(UNDO_INSERT)d Fu(means)i(to)g(delete)75 885 y(some)e(text.)19
-b(That)14 b(is,)g(the)g(undo)g(co)q(de)g(tells)h(what)e(to)h(undo,)g
-(not)f(ho)o(w)g(to)g(undo)i(it.)k Ft(UNDO_BEGIN)13 b
-Fu(and)75 939 y Ft(UNDO_END)h Fu(are)h(tags)f(added)i(b)o(y)f
-Ft(rl_begin_undo_group\(\))d Fu(and)k Ft(rl_end_undo_group\(\))p
-Fu(.)1762 1072 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1072 18 3 v 21 w(b)r(egin)p 372 1072 V 20 w(undo)p
-517 1072 V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1127
-y Fu(Begins)16 b(sa)o(ving)g(undo)g(information)f(in)i(a)e(group)g
-(construct.)20 b(The)c(undo)g(information)g(usually)195
-1182 y(comes)21 b(from)f(calls)i(to)e Ft(rl_insert_text\(\))e
-Fu(and)j Ft(rl_delete_text\(\))p Fu(,)f(but)h(could)g(b)q(e)h(the)195
-1237 y(result)16 b(of)e(calls)j(to)d Ft(rl_add_undo\(\))p
-Fu(.)1762 1370 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1370 V 21 w(end)p 326 1370 V 20 w(undo)p 471 1370
-V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1424 y Fu(Closes)15
-b(the)f(curren)o(t)h(undo)g(group)f(started)g(with)g
-Ft(rl_begin_undo_group)f(\(\))p Fu(.)19 b(There)c(should)195
-1479 y(b)q(e)h(one)f(call)i(to)d Ft(rl_end_undo_group\(\))f
-Fu(for)h(eac)o(h)h(call)i(to)d Ft(rl_begin_undo_group\(\))p
-Fu(.)1762 1612 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p
-241 1612 V 21 w(add)p 354 1612 V 20 w(undo)i Fg(\()p
-Ft(enum)14 b(undo_code)g(what,)g(int)h(start,)g(int)f(end,)h(char)283
-1667 y(*text)p Fg(\))195 1722 y Fu(Remem)o(b)q(er)i(ho)o(w)f(to)h(undo)
-g(an)g(ev)o(en)o(t)g(\(according)g(to)g Fk(what)q Fu(\).)24
-b(The)17 b(a\013ected)g(text)f(runs)i(from)195 1776 y
-Fk(start)d Fu(to)g Fk(end)p Fu(,)g(and)g(encompasses)h
-Fk(text)p Fu(.)1762 1909 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1909 V 21 w(free)p 356 1909 V 20 w(undo)p
-501 1909 V 20 w(list)k Fg(\()p Ft(void)p Fg(\))195 1964
-y Fu(F)l(ree)15 b(the)h(existing)g(undo)f(list.)1762
-2097 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2097
-V 21 w(do)p 297 2097 V 20 w(undo)i Fg(\()p Ft(void)p
-Fg(\))195 2152 y Fu(Undo)12 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h
-(list.)19 b(Returns)11 b Ft(0)h Fu(if)g(there)f(w)o(as)g(nothing)h(to)e
-(undo,)j(non-zero)195 2206 y(if)j(something)f(w)o(as)f(undone.)137
-2309 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i
-(text,)e(but)g(directly)i(mo)q(dify)f(the)g(existing)g(text)g(\(e.g.,)
-75 2364 y(c)o(hange)j(its)h(case\),)g(call)g Ft(rl_modifying\(\))e
-Fu(once,)i(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)f(text.)32
-b(Y)l(ou)20 b(m)o(ust)75 2419 y(supply)c(the)g(indices)h(of)e(the)g
-(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q(dify)l(.)1762
-2552 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2552
-V 21 w(mo)r(difying)h Fg(\()p Ft(int)15 b(start,)f(int)h(end)p
-Fg(\))195 2606 y Fu(T)l(ell)22 b(Readline)f(to)e(sa)o(v)o(e)h(the)g
-(text)g(b)q(et)o(w)o(een)g Fk(start)g Fu(and)g Fk(end)j
-Fu(as)c(a)h(single)h(undo)g(unit.)35 b(It)20 b(is)195
-2661 y(assumed)15 b(that)g(y)o(ou)g(will)i(subsequen)o(tly)f(mo)q(dify)
-g(that)e(text.)p eop
-%%Page: 33 35
-33 34 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(33)75 149 y Fj(2.4.6)30 b(Redispla)n(y)1762
-302 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241
-302 18 3 v 21 w(redispla)n(y)k Fg(\()p Ft(void)p Fg(\))195
-356 y Fu(Change)19 b(what's)f(displa)o(y)o(ed)i(on)f(the)g(screen)g(to)
-f(re\015ect)i(the)f(curren)o(t)f(con)o(ten)o(ts)h(of)f
-Ft(rl_line_)195 411 y(buffer)p Fu(.)1762 534 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 534 V 21 w(forced)p 390 534
-V 20 w(up)r(date)p 584 534 V 20 w(displa)n(y)k Fg(\()p
-Ft(void)p Fg(\))195 589 y Fu(F)l(orce)c(the)g(line)h(to)e(b)q(e)i(up)q
-(dated)f(and)g(redispla)o(y)o(ed,)i(whether)e(or)g(not)f(Readline)i
-(thinks)g(the)195 644 y(screen)16 b(displa)o(y)g(is)g(correct.)1762
-767 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 767
-V 21 w(on)p 297 767 V 20 w(new)p 416 767 V 21 w(line)k
-Fg(\()p Ft(void)p Fg(\))195 822 y Fu(T)l(ell)16 b(the)f(up)q(date)h
-(functions)g(that)e(w)o(e)g(ha)o(v)o(e)h(mo)o(v)o(ed)f(on)o(to)g(a)h
-(new)g(\(empt)o(y\))f(line,)i(usually)h(after)195 877
-y(ouputting)f(a)e(newline.)1762 1000 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1000 V 21 w(on)p 297 1000 V
-20 w(new)p 416 1000 V 21 w(line)p 525 1000 V 22 w(with)p
-657 1000 V 22 w(prompt)h Fg(\()p Ft(void)p Fg(\))195
-1055 y Fu(T)l(ell)14 b(the)e(up)q(date)h(functions)g(that)f(w)o(e)g(ha)
-o(v)o(e)g(mo)o(v)o(ed)f(on)o(to)h(a)g(new)g(line,)i(with)f
-Fk(rl)p 1556 1055 14 2 v 17 w(prompt)g Fu(already)195
-1109 y(displa)o(y)o(ed.)21 b(This)15 b(could)g(b)q(e)g(used)g(b)o(y)f
-(applications)i(that)e(w)o(an)o(t)f(to)h(output)g(the)g(prompt)g
-(string)195 1164 y(themselv)o(es,)g(but)g(still)h(need)g(Readline)g(to)
-e(kno)o(w)g(the)h(prompt)f(string)h(length)g(for)f(redispla)o(y)l(.)21
-b(It)195 1219 y(should)16 b(b)q(e)g(used)g(after)e(setting)i
-Fk(rl)p 795 1219 V 16 w(already)p 956 1219 V 17 w(prompted)p
-Fu(.)1762 1342 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1342 18 3 v 21 w(reset)p 357 1342 V 20 w(line)p 465
-1342 V 23 w(state)j Fg(\()p Ft(void)p Fg(\))195 1397
-y Fu(Reset)17 b(the)g(displa)o(y)i(state)d(to)h(a)g(clean)h(state)f
-(and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)195
-1452 y(new)e(line.)1762 1575 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 1575 V 21 w(crlf)j Fg(\()p Ft(void)p Fg(\))195
-1630 y Fu(Mo)o(v)o(e)14 b(the)h(cursor)g(to)g(the)g(start)f(of)h(the)g
-(next)g(screen)h(line.)1762 1753 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1753 V 21 w(sho)n(w)p 359 1753
-V 20 w(c)n(har)j Fg(\()p Ft(int)14 b(c)p Fg(\))195 1807
-y Fu(Displa)o(y)j(c)o(haracter)e Fk(c)20 b Fu(on)c Ft(rl_outstream)p
-Fu(.)21 b(If)c(Readline)g(has)f(not)g(b)q(een)i(set)e(to)f(displa)o(y)j
-(meta)195 1862 y(c)o(haracters)12 b(directly)l(,)j(this)e(will)i(con)o
-(v)o(ert)d(meta)h(c)o(haracters)f(to)g(a)h(meta-pre\014xed)g(k)o(ey)g
-(sequence.)195 1917 y(This)j(is)f(in)o(tended)i(for)e(use)g(b)o(y)g
-(applications)i(whic)o(h)f(wish)g(to)f(do)g(their)g(o)o(wn)g(redispla)o
-(y)l(.)1762 2040 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2040 V 21 w(message)g Fg(\()p Ft(const)14 b(char)h(*,)g(...)p
-Fg(\))195 2095 y Fu(The)c(argumen)o(ts)e(are)h(a)g(format)f(string)h
-(as)g(w)o(ould)h(b)q(e)g(supplied)i(to)c Ft(printf)p
-Fu(,)h(p)q(ossibly)i(con)o(taining)195 2150 y(con)o(v)o(ersion)22
-b(sp)q(eci\014cations)i(suc)o(h)f(as)e(`)p Ft(\045d)p
-Fu(',)i(and)f(an)o(y)g(additional)h(argumen)o(ts)e(necessary)i(to)195
-2205 y(satisfy)d(the)h(con)o(v)o(ersion)g(sp)q(eci\014cations.)38
-b(The)21 b(resulting)h(string)e(is)i(displa)o(y)o(ed)g(in)f(the)g
-Fk(ec)o(ho)195 2259 y(area)p Fu(.)e(The)d(ec)o(ho)f(area)g(is)g(also)g
-(used)h(to)f(displa)o(y)h(n)o(umeric)g(argumen)o(ts)f(and)g(searc)o(h)g
-(strings.)1762 2382 y(F)l(unction)-1861 b Fi(int)20 b
-Fh(rl)p 215 2382 V 21 w(clear)p 354 2382 V 21 w(message)h
-Fg(\()p Ft(void)p Fg(\))195 2437 y Fu(Clear)15 b(the)h(message)e(in)i
-(the)g(ec)o(ho)f(area.)1762 2560 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(sa)n(v)n(e)p 365
-2560 V 21 w(prompt)h Fg(\()p Ft(void)p Fg(\))195 2615
-y Fu(Sa)o(v)o(e)g(the)h(lo)q(cal)g(Readline)h(prompt)e(displa)o(y)i
-(state)e(in)h(preparation)f(for)g(displa)o(ying)j(a)d(new)195
-2670 y(message)15 b(in)h(the)f(message)g(area)f(with)i
-Ft(rl_message\(\))p Fu(.)p eop
-%%Page: 34 36
-34 35 bop 75 -58 a Fu(34)1299 b(GNU)15 b(Readline)h(Library)1762
-149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149
-18 3 v 21 w(restore)p 436 149 V 20 w(prompt)g Fg(\()p
-Ft(void)p Fg(\))195 204 y Fu(Restore)g(the)i(lo)q(cal)g(Readline)h
-(prompt)e(displa)o(y)h(state)f(sa)o(v)o(ed)g(b)o(y)g(the)g(most)g
-(recen)o(t)g(call)i(to)195 259 y Ft(rl_save_prompt)p
-Fu(.)1762 369 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 369 V 21 w(expand)p 416 369 V 20 w(prompt)h Fg(\()p
-Ft(char)14 b(*prompt)p Fg(\))195 423 y Fu(Expand)22 b(an)o(y)f(sp)q
-(ecial)i(c)o(haracter)e(sequences)h(in)g Fk(prompt)g
-Fu(and)g(set)f(up)h(the)f(lo)q(cal)i(Readline)195 478
-y(prompt)17 b(redispla)o(y)i(v)m(ariables.)30 b(This)18
-b(function)h(is)f(called)i(b)o(y)e Ft(readline\(\))p
-Fu(.)26 b(It)18 b(ma)o(y)f(also)h(b)q(e)195 533 y(called)12
-b(to)e(expand)h(the)g(primary)g(prompt)f(if)h(the)f Ft
-(rl_on_new_line_with_prompt\(\))d Fu(function)195 588
-y(or)12 b Ft(rl_already_prompted)e Fu(v)m(ariable)k(is)g(used.)19
-b(It)13 b(returns)g(the)f(n)o(um)o(b)q(er)i(of)e(visible)j(c)o
-(haracters)195 643 y(on)g(the)g(last)h(line)g(of)f(the)g(\(p)q(ossibly)
-i(m)o(ulti-line\))g(prompt.)1762 752 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 752 V 21 w(set)p 307 752 V
-20 w(prompt)h Fg(\()p Ft(const)14 b(char)h(*prompt)p
-Fg(\))195 807 y Fu(Mak)o(e)e(Readline)i(use)e Fk(prompt)h
-Fu(for)f(subsequen)o(t)h(redispla)o(y)l(.)21 b(This)14
-b(calls)g Ft(rl_expand_prompt\(\))195 862 y Fu(to)h(expand)g(the)h
-(prompt)e(and)i(sets)f Ft(rl_prompt)f Fu(to)g(the)h(result.)75
-970 y Fj(2.4.7)30 b(Mo)r(difying)20 b(T)-5 b(ext)1762
-1108 y Fu(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1108 V 21 w(insert)p 378 1108 V 21 w(text)k Fg(\()p Ft(const)14
-b(char)g(*text)p Fg(\))195 1163 y Fu(Insert)i Fk(text)g
-Fu(in)o(to)g(the)g(line)h(at)f(the)g(curren)o(t)f(cursor)h(p)q
-(osition.)22 b(Returns)16 b(the)g(n)o(um)o(b)q(er)g(of)f(c)o(har-)195
-1218 y(acters)g(inserted.)1762 1328 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1328 V 21 w(delete)p 383 1328
-V 22 w(text)k Fg(\()p Ft(int)14 b(start,)h(int)f(end)p
-Fg(\))195 1382 y Fu(Delete)19 b(the)g(text)g(b)q(et)o(w)o(een)g
-Fk(start)g Fu(and)g Fk(end)i Fu(in)f(the)f(curren)o(t)f(line.)33
-b(Returns)18 b(the)h(n)o(um)o(b)q(er)g(of)195 1437 y(c)o(haracters)14
-b(deleted.)1762 1547 y(F)l(unction)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 1547 V 21 w(cop)n(y)p 421 1547 V 21
-w(text)24 b Fg(\()p Ft(int)14 b(start,)h(int)g(end)p
-Fg(\))195 1602 y Fu(Return)g(a)g(cop)o(y)g(of)g(the)g(text)f(b)q(et)o
-(w)o(een)i Fk(start)f Fu(and)g Fk(end)j Fu(in)e(the)f(curren)o(t)g
-(line.)1762 1711 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1711 V 21 w(kill)p 311 1711 V 23 w(text)k Fg(\()p
-Ft(int)14 b(start,)h(int)g(end)p Fg(\))195 1766 y Fu(Cop)o(y)i(the)g
-(text)f(b)q(et)o(w)o(een)i Fk(start)f Fu(and)g Fk(end)i
-Fu(in)f(the)f(curren)o(t)g(line)i(to)e(the)g(kill)i(ring,)e(app)q
-(ending)195 1821 y(or)f(prep)q(ending)k(to)c(the)h(last)g(kill)i(if)e
-(the)g(last)g(command)g(w)o(as)f(a)h(kill)i(command.)25
-b(The)17 b(text)f(is)195 1876 y(deleted.)26 b(If)17 b
-Fk(start)g Fu(is)g(less)g(than)g Fk(end)p Fu(,)g(the)g(text)g(is)g(app)
-q(ended,)h(otherwise)f(prep)q(ended.)27 b(If)17 b(the)195
-1930 y(last)e(command)g(w)o(as)g(not)f(a)h(kill,)i(a)e(new)g(kill)i
-(ring)f(slot)f(is)h(used.)1762 2040 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2040 V 21 w(push)p 355 2040
-V 19 w(macro)p 529 2040 V 19 w(input)k Fg(\()p Ft(char)14
-b(*macro)p Fg(\))195 2095 y Fu(Cause)g Fk(macro)i Fu(to)d(b)q(e)i
-(inserted)g(in)o(to)f(the)g(line,)i(as)e(if)g(it)h(had)f(b)q(een)h(in)o
-(v)o(ok)o(ed)g(b)o(y)f(a)g(k)o(ey)g(b)q(ound)h(to)195
-2150 y(a)g(macro.)k(Not)c(esp)q(ecially)i(useful;)f(use)g
-Ft(rl_insert_text\(\))d Fu(instead.)75 2257 y Fj(2.4.8)30
-b(Character)21 b(Input)1762 2396 y Fu(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2396 V 21 w(read)p 346 2396
-V 20 w(k)n(ey)k Fg(\()p Ft(void)p Fg(\))195 2451 y Fu(Return)14
-b(the)h(next)g(c)o(haracter)f(a)o(v)m(ailable)i(from)e(Readline's)i
-(curren)o(t)f(input)g(stream.)k(This)d(han-)195 2506
-y(dles)f(input)g(inserted)f(in)o(to)g(the)g(input)h(stream)e(via)h
-Fk(rl)p 1117 2506 14 2 v 17 w(p)q(ending)p 1290 2506
-V 18 w(input)i Fu(\(see)e(Section)h(2.3)e([Read-)195
-2560 y(line)21 b(V)l(ariables],)g(page)f(24\))f(and)h
-Ft(rl_stuff_char\(\))p Fu(,)e(macros,)h(and)h(c)o(haracters)f(read)h
-(from)195 2615 y(the)d(k)o(eyb)q(oard.)25 b(While)19
-b(w)o(aiting)e(for)f(input,)j(this)e(function)h(will)h(call)f(an)o(y)e
-(function)i(assigned)195 2670 y(to)d(the)g Ft(rl_event_hook)e
-Fu(v)m(ariable.)p eop
-%%Page: 35 37
-35 36 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(35)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(getc)j Fg(\()p Ft(FILE)14
-b(*stream)p Fg(\))195 204 y Fu(Return)c(the)h(next)g(c)o(haracter)f(a)o
-(v)m(ailable)i(from)e Fk(stream)p Fu(,)g(whic)o(h)i(is)f(assumed)f(to)g
-(b)q(e)i(the)e(k)o(eyb)q(oard.)1762 342 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 342 V 21 w(stu\013)p 346 342
-V 20 w(c)n(har)j Fg(\()p Ft(int)15 b(c)p Fg(\))195 397
-y Fu(Insert)i Fk(c)i Fu(in)o(to)d(the)h(Readline)h(input)f(stream.)23
-b(It)16 b(will)i(b)q(e)f Ft(")p Fu(read)p Ft(")g Fu(b)q(efore)f
-(Readline)i(attempts)195 452 y(to)13 b(read)g(c)o(haracters)g(from)f
-(the)i(terminal)g(with)g Ft(rl_read_key\(\))p Fu(.)j(Up)d(to)f(512)f(c)
-o(haracters)h(ma)o(y)195 507 y(b)q(e)j(pushed)g(bac)o(k.)k
-Ft(rl_stuff_char)14 b Fu(returns)h(1)g(if)h(the)f(c)o(haracter)g(w)o
-(as)f(successfully)j(inserted;)195 562 y(0)e(otherwise.)1762
-700 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 700
-V 21 w(execute)p 423 700 V 22 w(next)j Fg(\()p Ft(int)15
-b(c)p Fg(\))195 754 y Fu(Mak)o(e)i Fk(c)k Fu(b)q(e)d(the)g(next)g
-(command)g(to)f(b)q(e)i(executed)f(when)h Ft(rl_read_key\(\))d
-Fu(is)i(called.)29 b(This)195 809 y(sets)15 b Fk(rl)p
-317 809 14 2 v 17 w(p)q(ending)p 490 809 V 18 w(input)p
-Fu(.)1762 947 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 947 18 3 v 21 w(clear)p 354 947 V 21 w(p)r(ending)p
-575 947 V 21 w(input)j Fg(\()p Ft(void)p Fg(\))195 1002
-y Fu(Unset)f Fk(rl)p 365 1002 14 2 v 16 w(p)q(ending)p
-537 1002 V 19 w(input)p Fu(,)h(e\013ectiv)o(ely)g(negating)e(the)h
-(e\013ect)f(of)g(an)o(y)h(previous)g(call)h(to)d Ft(rl_)195
-1057 y(execute_next\(\))p Fu(.)29 b(This)19 b(w)o(orks)f(only)h(if)h
-(the)e(p)q(ending)j(input)f(has)f(not)f(already)h(b)q(een)h(read)195
-1112 y(with)c Ft(rl_read_key\(\))p Fu(.)1762 1250 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1250 18 3 v 21 w(set)p 307
-1250 V 20 w(k)n(eyb)r(oard)p 558 1250 V 21 w(input)p
-712 1250 V 21 w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195
-1305 y Fu(While)21 b(w)o(aiting)g(for)e(k)o(eyb)q(oard)h(input)h(in)g
-Ft(rl_read_key\(\))p Fu(,)e(Readline)i(will)h(w)o(ait)e(for)f
-Fk(u)h Fu(mi-)195 1360 y(croseconds)h(for)e(input)j(b)q(efore)f
-(calling)h(an)o(y)e(function)h(assigned)g(to)f Ft(rl_event_hook)p
-Fu(.)34 b(The)195 1414 y(default)16 b(w)o(aiting)f(p)q(erio)q(d)i(is)e
-(one-ten)o(th)h(of)e(a)h(second.)21 b(Returns)14 b(the)i(old)f(timeout)
-h(v)m(alue.)75 1540 y Fj(2.4.9)30 b(T)-5 b(erminal)20
-b(Managemen)n(t)1762 1708 y Fu(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1708 V 21 w(prep)p 376 1708 V 20 w(terminal)j
-Fg(\()p Ft(int)14 b(meta_flag)p Fg(\))195 1762 y Fu(Mo)q(dify)22
-b(the)f(terminal)h(settings)f(for)g(Readline's)h(use,)h(so)d
-Ft(readline\(\))g Fu(can)i(read)f(a)g(single)195 1817
-y(c)o(haracter)15 b(at)g(a)g(time)i(from)d(the)i(k)o(eyb)q(oard.)22
-b(The)16 b Fk(meta)p 1192 1817 14 2 v 15 w(\015ag)k Fu(argumen)o(t)15
-b(should)h(b)q(e)h(non-zero)195 1872 y(if)f(Readline)g(should)g(read)f
-(eigh)o(t-bit)i(input.)1762 2010 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2010 18 3 v 21 w(deprep)p
-434 2010 V 20 w(terminal)j Fg(\()p Ft(void)p Fg(\))195
-2065 y Fu(Undo)16 b(the)g(e\013ects)f(of)h Ft(rl_prep_terminal\(\))p
-Fu(,)d(lea)o(ving)k(the)e(terminal)i(in)g(the)e(state)g(in)i(whic)o(h)
-195 2120 y(it)e(w)o(as)g(b)q(efore)g(the)h(most)e(recen)o(t)h(call)i
-(to)d Ft(rl_prep_terminal\(\))p Fu(.)1762 2258 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2258 V 21 w(tt)n(y)p 334 2258
-V 22 w(set)p 427 2258 V 20 w(default)p 620 2258 V 21
-w(bindings)k Fg(\()p Ft(Keymap)14 b(kmap)p Fg(\))195
-2313 y Fu(Read)k(the)h(op)q(erating)f(system's)g(terminal)h(editing)h
-(c)o(haracters)e(\(as)f(w)o(ould)i(b)q(e)g(displa)o(y)o(ed)h(b)o(y)195
-2367 y Ft(stty)p Fu(\))14 b(to)h(their)h(Readline)g(equiv)m(alen)o(ts.)
-22 b(The)15 b(bindings)i(are)e(p)q(erformed)g(in)h Fk(kmap)p
-Fu(.)1762 2506 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2506 V 21 w(reset)p 357 2506 V 20 w(terminal)j Fg(\()p
-Ft(const)15 b(char)f(*terminal_name)p Fg(\))195 2560
-y Fu(Reinitialize)h(Readline's)e(idea)g(of)f(the)g(terminal)h(settings)
-g(using)g Fk(terminal)p 1491 2560 14 2 v 17 w(name)h
-Fu(as)e(the)h(termi-)195 2615 y(nal)k(t)o(yp)q(e)f(\(e.g.,)f
-Ft(vt100)p Fu(\).)21 b(If)c Fk(terminal)p 878 2615 V
-17 w(name)i Fu(is)d Ft(NULL)p Fu(,)g(the)g(v)m(alue)h(of)f(the)g
-Ft(TERM)g Fu(en)o(vironmen)o(t)195 2670 y(v)m(ariable)h(is)e(used.)p
+%%Page: 47 51
+47 50 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(47)3371 299 y([V)-8 b(ariable])-3600
+b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(inhibit)p 816
+299 V 48 w(completion)390 408 y Ft(If)28 b(this)f(v)-5
+b(ariable)27 b(is)g(non-zero,)j(completion)d(is)g(inhibited.)37
+b(The)28 b(completion)f(c)m(haracter)j(will)c(b)s(e)390
+518 y(inserted)j(as)i(an)m(y)g(other)f(b)s(ound)e(to)k
+Fs(self-insert)p Ft(.)150 742 y Fh(2.6.4)63 b(A)40 b(Short)i
+(Completion)f(Example)275 986 y Ft(Here)20 b(is)g(a)h(small)d
+(application)h(demonstrating)h(the)g(use)g(of)h(the)g(GNU)f(Readline)f
+(library)-8 b(.)36 b(It)20 b(is)g(called)150 1096 y Fs(fileman)p
+Ft(,)35 b(and)g(the)h(source)f(co)s(de)h(resides)e(in)h(`)p
+Fs(examples/fileman.c)p Ft('.)51 b(This)34 b(sample)h(application)150
+1205 y(pro)m(vides)25 b(completion)h(of)g(command)g(names,)h(line)d
+(editing)h(features,)j(and)d(access)j(to)f(the)f(history)f(list.)p
eop
-%%Page: 36 38
-36 37 bop 75 -58 a Fu(36)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.10)29 b(Utilit)n(y)22 b(F)-5 b(unctions)1762
-287 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241
-287 18 3 v 21 w(replace)p 438 287 V 22 w(line)k Fg(\()p
-Ft(const)14 b(char)h(*text,)f(int)h(clear_undo)p Fg(\))195
-342 y Fu(Replace)20 b(the)g(con)o(ten)o(ts)f(of)g Ft(rl_line_buffer)f
-Fu(with)i Fk(text)p Fu(.)33 b(The)20 b(p)q(oin)o(t)g(and)g(mark)f(are)h
-(pre-)195 397 y(serv)o(ed,)13 b(if)h(p)q(ossible.)21
-b(If)13 b Fk(clear)p 712 397 14 2 v 17 w(undo)j Fu(is)d(non-zero,)h
-(the)f(undo)g(list)h(asso)q(ciated)g(with)f(the)g(curren)o(t)195
-452 y(line)k(is)f(cleared.)1762 561 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 561 18 3 v 21 w(extend)p 404
-561 V 21 w(line)p 513 561 V 22 w(bu\013er)j Fg(\()p Ft(int)15
-b(len)p Fg(\))195 616 y Fu(Ensure)g(that)g Ft(rl_line_buffer)e
-Fu(has)i(enough)g(space)h(to)e(hold)i Fk(len)g Fu(c)o(haracters,)e(p)q
-(ossibly)i(real-)195 670 y(lo)q(cating)g(it)f(if)h(necessary)l(.)1762
-779 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 779
-V 21 w(initiali)q(z)q(e)26 b Fg(\()p Ft(void)p Fg(\))195
-834 y Fu(Initialize)21 b(or)d(re-initialize)k(Readline's)d(in)o(ternal)
-h(state.)28 b(It's)18 b(not)g(strictly)h(necessary)g(to)f(call)195
-889 y(this;)d Ft(readline\(\))f Fu(calls)i(it)g(b)q(efore)f(reading)h
-(an)o(y)f(input.)1762 998 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 998 V 21 w(ding)j Fg(\()p Ft(void)p Fg(\))195
-1053 y Fu(Ring)15 b(the)g(terminal)h(b)q(ell,)h(ob)q(eying)f(the)g
-(setting)f(of)g Ft(bell-style)p Fu(.)1762 1162 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1162 V 21 w(alphab)r(etic)k
-Fg(\()p Ft(int)14 b(c)p Fg(\))195 1217 y Fu(Return)h(1)g(if)g
-Fk(c)j Fu(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1762
-1325 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1325
-V 21 w(displa)n(y)p 435 1325 V 22 w(matc)n(h)p 611 1325
-V 20 w(list)25 b Fg(\()p Ft(char)14 b(**matches,)g(int)g(len,)h(int)g
-(max)p Fg(\))195 1380 y Fu(A)i(con)o(v)o(enience)i(function)f(for)f
-(displa)o(ying)i(a)e(list)h(of)e(strings)h(in)i(columnar)e(format)f(on)
-h(Read-)195 1435 y(line's)h(output)f(stream.)23 b Ft(matches)16
-b Fu(is)h(the)g(list)h(of)e(strings,)h(in)g(argv)f(format,)g(suc)o(h)h
-(as)f(a)h(list)g(of)195 1490 y(completion)c(matc)o(hes.)19
-b Ft(len)11 b Fu(is)i(the)f(n)o(um)o(b)q(er)h(of)e(strings)h(in)h
-Ft(matches)p Fu(,)f(and)g Ft(max)g Fu(is)g(the)h(length)f(of)195
-1545 y(the)h(longest)g(string)g(in)h Ft(matches)p Fu(.)19
-b(This)13 b(function)h(uses)f(the)h(setting)f(of)f Ft
-(print-completions-)195 1599 y(horizontally)k Fu(to)i(select)h(ho)o(w)e
-(the)i(matc)o(hes)e(are)h(displa)o(y)o(ed)h(\(see)g(Section)g(1.3.1)d
-([Readline)195 1654 y(Init)g(File)g(Syn)o(tax],)e(page)h(4\).)137
-1742 y(The)i(follo)o(wing)f(are)g(implemen)o(ted)i(as)e(macros,)f
-(de\014ned)i(in)g Ft(chardefs.h)p Fu(.)k(Applications)d(should)75
-1796 y(refrain)d(from)g(using)h(them.)1762 1905 y(F)l(unction)-1861
-b Fi(int)p 176 1905 V 40 w Fh(rl)p 235 1905 V 21 w(upp)r(ercase)p
-506 1905 V 20 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
-1960 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(an)f(upp)q(ercase)i(alphab)q
-(etic)f(c)o(haracter.)1762 2069 y(F)l(unction)-1861 b
-Fi(int)p 176 2069 V 40 w Fh(rl)p 235 2069 V 21 w(lo)n(w)n(ercase)p
-489 2069 V 23 w(p)22 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-2124 y Fu(Return)g(1)g(if)g Fk(c)j Fu(is)e(a)f(lo)o(w)o(ercase)g
-(alphab)q(etic)i(c)o(haracter.)1762 2233 y(F)l(unction)-1861
-b Fi(int)p 176 2233 V 40 w Fh(rl)p 235 2233 V 21 w(digit)p
-369 2233 V 22 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
-2288 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(a)f(n)o(umeric)h(c)o
-(haracter.)1762 2397 y(F)l(unction)-1861 b Fi(int)p 176
-2397 V 40 w Fh(rl)p 235 2397 V 21 w(to)p 307 2397 V 21
-w(upp)r(er)21 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 2451
-y Fu(If)d Fk(c)j Fu(is)d(a)g(lo)o(w)o(ercase)f(alphab)q(etic)j(c)o
-(haracter,)d(return)h(the)g(corresp)q(onding)h(upp)q(ercase)g(c)o
-(haracter.)1762 2560 y(F)l(unction)-1861 b Fi(int)p 176
-2560 V 40 w Fh(rl)p 235 2560 V 21 w(to)p 307 2560 V 21
-w(lo)n(w)n(er)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-2615 y Fu(If)g Fk(c)i Fu(is)e(an)f(upp)q(ercase)i(alphab)q(etic)g(c)o
-(haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o(w)o(ercase)f(c)o
-(harac-)195 2670 y(ter.)p eop
-%%Page: 37 39
-37 38 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(37)1762 149 y(F)l(unction)-1861 b Fi(int)p
-176 149 18 3 v 40 w Fh(rl)p 235 149 V 21 w(digit)p 369
-149 V 22 w(v)m(alue)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-204 y Fu(If)g Fk(c)k Fu(is)c(a)g(n)o(um)o(b)q(er,)g(return)g(the)h(v)m
-(alue)g(it)g(represen)o(ts.)75 325 y Fj(2.4.11)29 b(Miscellaneous)22
-b(F)-5 b(unctions)1762 484 y Fu(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 484 V 21 w(macro)p 391 484 V 19 w(bind)j
-Fg(\()p Ft(const)14 b(char)g(*keyseq,)h(const)f(char)h(*macro,)283
-539 y(Keymap)f(map)p Fg(\))195 593 y Fu(Bind)f(the)f(k)o(ey)f(sequence)
-i Fk(k)o(eyseq)g Fu(to)e(in)o(v)o(ok)o(e)g(the)h(macro)f
-Fk(macro)p Fu(.)18 b(The)12 b(binding)h(is)f(p)q(erformed)g(in)195
-648 y Fk(map)p Fu(.)19 b(When)14 b Fk(k)o(eyseq)h Fu(is)f(in)o(v)o(ok)o
-(ed,)g(the)g Fk(macro)i Fu(will)f(b)q(e)f(inserted)h(in)o(to)f(the)g
-(line.)21 b(This)14 b(function)195 703 y(is)i(deprecated;)f(use)h
-Ft(rl_generic_bind\(\))d Fu(instead.)1762 833 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 833 V 21 w(macro)p 417 833
-V 19 w(dump)r(er)g Fg(\()p Ft(int)15 b(readable)p Fg(\))195
-888 y Fu(Prin)o(t)f(the)f(k)o(ey)h(sequences)g(b)q(ound)h(to)e(macros)g
-(and)g(their)h(v)m(alues,)h(using)f(the)g(curren)o(t)g(k)o(eymap,)195
-943 y(to)h Ft(rl_outstream)p Fu(.)k(If)d Fk(readable)j
-Fu(is)d(non-zero,)g(the)g(list)g(is)g(formatted)f(in)h(suc)o(h)g(a)f(w)
-o(a)o(y)g(that)g(it)195 997 y(can)g(b)q(e)h(made)f(part)g(of)g(an)g
-Ft(inputrc)f Fu(\014le)i(and)g(re-read.)1762 1127 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1127 V 21 w(v)m(ariable)p 431
-1127 V 22 w(bind)j Fg(\()p Ft(const)14 b(char)g(*variable,)g(const)h
-(char)f(*value)p Fg(\))195 1182 y Fu(Mak)o(e)22 b(the)g(Readline)i(v)m
-(ariable)g Fk(v)m(ariable)j Fu(ha)o(v)o(e)22 b Fk(v)m(alue)p
-Fu(.)43 b(This)23 b(b)q(eha)o(v)o(es)g(as)f(if)h(the)f(readline)195
-1237 y(command)12 b(`)p Ft(set)j Fk(v)m(ariable)k(v)m(alue)s
-Fu(')12 b(had)h(b)q(een)g(executed)h(in)f(an)f Ft(inputrc)g
-Fu(\014le)h(\(see)f(Section)i(1.3.1)195 1292 y([Readline)i(Init)g(File)
-h(Syn)o(tax],)d(page)h(4\).)1762 1422 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 1422 V 21 w(v)m(ariable)p
-457 1422 V 22 w(dump)r(er)g Fg(\()p Ft(int)14 b(readable)p
-Fg(\))195 1476 y Fu(Prin)o(t)g(the)h(readline)h(v)m(ariable)f(names)g
-(and)f(their)h(curren)o(t)f(v)m(alues)i(to)d Ft(rl_outstream)p
-Fu(.)18 b(If)d Fk(read-)195 1531 y(able)20 b Fu(is)e(non-zero,)f(the)g
-(list)h(is)g(formatted)e(in)h(suc)o(h)h(a)e(w)o(a)o(y)g(that)h(it)g
-(can)g(b)q(e)h(made)f(part)f(of)h(an)195 1586 y Ft(inputrc)d
-Fu(\014le)i(and)g(re-read.)1762 1716 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1716 V 21 w(set)p 307 1716
-V 20 w(paren)p 469 1716 V 20 w(blink)p 613 1716 V 23
-w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195 1771 y
-Fu(Set)e(the)f(time)h(in)o(terv)m(al)h(\(in)f(microseconds\))g(that)f
-(Readline)i(w)o(aits)e(when)h(sho)o(wing)f(a)h(balancing)195
-1826 y(c)o(haracter)h(when)i Ft(blink-matching-paren)d
-Fu(has)i(b)q(een)h(enabled.)1762 1956 y(F)l(unction)-1861
-b Fi(char)20 b(*)f Fh(rl)p 286 1956 V 21 w(get)p 384
-1956 V 21 w(termcap)j Fg(\()p Ft(const)14 b(char)g(*cap)p
-Fg(\))195 2010 y Fu(Retriev)o(e)f(the)h(string)f(v)m(alue)i(of)e(the)h
-(termcap)f(capabilit)o(y)i Fk(cap)p Fu(.)k(Readline)c(fetc)o(hes)f(the)
-f(termcap)195 2065 y(en)o(try)j(for)h(the)f(curren)o(t)h(terminal)h
-(name)e(and)h(uses)g(those)g(capabilities)i(to)d(mo)o(v)o(e)g(around)h
-(the)195 2120 y(screen)11 b(line)h(and)f(p)q(erform)f(other)g
-(terminal-sp)q(eci\014c)k(op)q(erations,)d(lik)o(e)h(erasing)e(a)h
-(line.)20 b(Readline)195 2175 y(do)q(es)e(not)f(use)h(all)g(of)f(a)g
-(terminal's)h(capabilities,)i(and)e(this)g(function)g(will)h(return)f
-(v)m(alues)h(for)195 2230 y(only)d(those)f(capabilities)i(Readline)g
-(uses.)75 2350 y Fj(2.4.12)29 b(Alternate)21 b(In)n(terface)137
-2451 y Fu(An)i(alternate)f(in)o(terface)h(is)g(a)o(v)m(ailable)h(to)d
-(plain)j Ft(readline\(\))p Fu(.)40 b(Some)22 b(applications)i(need)g
-(to)75 2506 y(in)o(terlea)o(v)o(e)15 b(k)o(eyb)q(oard)f(I/O)h(with)g
-(\014le,)h(device,)f(or)f(windo)o(w)h(system)f(I/O,)h(t)o(ypically)h(b)
-o(y)e(using)h(a)g(main)75 2560 y(lo)q(op)f(to)g Ft(select\(\))e
-Fu(on)i(v)m(arious)g(\014le)h(descriptors.)20 b(T)l(o)14
-b(accomo)q(date)f(this)h(need,)h(readline)g(can)f(also)g(b)q(e)75
-2615 y(in)o(v)o(ok)o(ed)i(as)f(a)g(`callbac)o(k')h(function)h(from)d
-(an)i(ev)o(en)o(t)f(lo)q(op.)22 b(There)16 b(are)f(functions)h(a)o(v)m
-(ailable)i(to)c(mak)o(e)75 2670 y(this)i(easy)l(.)p eop
-%%Page: 38 40
-38 39 bop 75 -58 a Fu(38)1299 b(GNU)15 b(Readline)h(Library)1762
-149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149
-18 3 v 21 w(callbac)n(k)p 458 149 V 23 w(handler)p 670
-149 V 21 w(install)25 b Fg(\()p Ft(const)14 b(char)h(*prompt,)283
-204 y(rl_vcpfunc_t)e(*lhandler)p Fg(\))195 259 y Fu(Set)f(up)h(the)g
-(terminal)g(for)f(readline)i(I/O)f(and)f(displa)o(y)i(the)e(initial)j
-(expanded)e(v)m(alue)h(of)e Fk(prompt)p Fu(.)195 314
-y(Sa)o(v)o(e)j(the)h(v)m(alue)h(of)f Fk(lhandler)21 b
-Fu(to)15 b(use)h(as)f(a)h(function)h(to)e(call)i(when)f(a)g(complete)g
-(line)i(of)d(input)195 369 y(has)g(b)q(een)h(en)o(tered.)21
-b(The)15 b(function)h(tak)o(es)e(the)i(text)e(of)h(the)g(line)i(as)e
-(an)g(argumen)o(t.)1762 480 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 480 V 21 w(callbac)n(k)p 458 480 V 23 w(read)p
-591 480 V 20 w(c)n(har)j Fg(\()p Ft(void)p Fg(\))195
-535 y Fu(Whenev)o(er)17 b(an)g(application)h(determines)g(that)e(k)o
-(eyb)q(oard)h(input)h(is)f(a)o(v)m(ailable,)i(it)e(should)h(call)195
-590 y Ft(rl_callback_read_char\(\))p Fu(,)8 b(whic)o(h)k(will)g(read)f
-(the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)195
-645 y(source.)38 b(If)21 b(that)g(c)o(haracter)f(completes)i(the)f
-(line,)j Ft(rl_callback_read_char)18 b Fu(will)23 b(in)o(v)o(ok)o(e)195
-699 y(the)18 b Fk(lhandler)k Fu(function)d(sa)o(v)o(ed)e(b)o(y)h
-Ft(rl_callback_handler_insta)o(ll)d Fu(to)i(pro)q(cess)h(the)g(line.)
-195 754 y(Before)13 b(calling)i(the)f Fk(lhandler)k Fu(function,)c(the)
-g(terminal)g(settings)f(are)g(reset)g(to)g(the)g(v)m(alues)i(they)195
-809 y(had)g(b)q(efore)g(calling)i Ft(rl_callback_handler_insta)o(ll)p
-Fu(.)g(If)e(the)g Fk(lhandler)20 b Fu(function)15 b(returns,)195
-864 y(the)d(terminal)i(settings)e(are)g(mo)q(di\014ed)i(for)d
-(Readline's)i(use)g(again.)19 b Ft(EOF)12 b Fu(is)h(indicated)h(b)o(y)e
-(calling)195 919 y Fk(lhandler)20 b Fu(with)c(a)f Ft(NULL)f
-Fu(line.)1762 1030 y(F)l(unction)-1861 b Fi(void)20 b
-Fh(rl)p 241 1030 V 21 w(callbac)n(k)p 458 1030 V 23 w(handler)p
-670 1030 V 21 w(remo)n(v)n(e)i Fg(\()p Ft(void)p Fg(\))195
-1085 y Fu(Restore)c(the)g(terminal)i(to)d(its)i(initial)i(state)d(and)g
-(remo)o(v)o(e)g(the)h(line)h(handler.)31 b(This)19 b(ma)o(y)f(b)q(e)195
-1140 y(called)i(from)d(within)j(a)d(callbac)o(k)j(as)d(w)o(ell)i(as)f
-(indep)q(enden)o(tly)m(.)31 b(If)19 b(the)f Fk(lhandler)23
-b Fu(installed)d(b)o(y)195 1195 y Ft(rl_callback_handler_instal)o(l)d
-Fu(do)q(es)i(not)g(exit)h(the)g(program,)e(either)i(this)g(function)g
-(or)195 1249 y(the)c(function)g(referred)g(to)f(b)o(y)h(the)g(v)m(alue)
-h(of)e Ft(rl_deprep_term_function)d Fu(should)17 b(b)q(e)f(called)195
-1304 y(b)q(efore)f(the)h(program)e(exits)h(to)g(reset)g(the)g(terminal)
-h(settings.)75 1413 y Fj(2.4.13)29 b(A)21 b(Readline)g(Example)137
-1508 y Fu(Here)f(is)g(a)f(function)i(whic)o(h)f(c)o(hanges)f(lo)o(w)o
-(ercase)h(c)o(haracters)e(to)h(their)h(upp)q(ercase)h(equiv)m(alen)o
-(ts,)75 1563 y(and)e(upp)q(ercase)i(c)o(haracters)d(to)h(lo)o(w)o
-(ercase.)31 b(If)20 b(this)f(function)h(w)o(as)f(b)q(ound)h(to)f(`)p
-Ft(M-c)p Fu(',)f(then)i(t)o(yping)75 1618 y(`)p Ft(M-c)p
-Fu(')12 b(w)o(ould)h(c)o(hange)h(the)f(case)g(of)g(the)g(c)o(haracter)g
-(under)g(p)q(oin)o(t.)20 b(T)o(yping)14 b(`)p Ft(M-1)g(0)h(M-c)p
-Fu(')d(w)o(ould)i(c)o(hange)75 1673 y(the)h(case)g(of)g(the)h(follo)o
-(wing)f(10)g(c)o(haracters,)f(lea)o(ving)i(the)f(cursor)g(on)g(the)h
-(last)f(c)o(haracter)f(c)o(hanged.)195 1736 y Ft(/*)24
-b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h(following)e(characters.)h
-(*/)195 1788 y(int)195 1840 y(invert_case_line)f(\(count,)h(key\))314
-1892 y(int)h(count,)f(key;)195 1944 y({)243 1995 y(register)f(int)i
-(start,)f(end,)g(i;)243 2099 y(start)g(=)h(rl_point;)243
-2203 y(if)f(\(rl_point)g(>=)h(rl_end\))290 2255 y(return)f(\(0\);)243
-2359 y(if)g(\(count)g(<)h(0\))290 2411 y({)338 2462 y(direction)f(=)h
-(-1;)338 2514 y(count)f(=)h(-count;)290 2566 y(})243
-2618 y(else)290 2670 y(direction)f(=)h(1;)p eop
-%%Page: 39 41
-39 40 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(39)243 201 y Ft(/*)23 b(Find)h(the)f(end)h(of)f(the)h
-(range)f(to)g(modify.)g(*/)243 253 y(end)g(=)h(start)f(+)h(\(count)f(*)
-h(direction\);)243 357 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g
-(*/)243 409 y(if)g(\(end)h(>)f(rl_end\))290 461 y(end)h(=)g(rl_end;)243
-513 y(else)f(if)h(\(end)f(<)h(0\))290 565 y(end)g(=)g(0;)243
-668 y(if)f(\(start)g(==)h(end\))290 720 y(return)f(\(0\);)243
-824 y(if)g(\(start)g(>)h(end\))290 876 y({)338 928 y(int)g(temp)f(=)h
-(start;)338 980 y(start)f(=)h(end;)338 1032 y(end)g(=)f(temp;)290
-1083 y(})243 1187 y(/*)g(Tell)h(readline)e(that)i(we)f(are)h(modifying)
-e(the)i(line,)314 1239 y(so)g(it)f(will)h(save)f(the)h(undo)f
-(information.)f(*/)243 1291 y(rl_modifying)g(\(start,)h(end\);)243
-1395 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))290
-1447 y({)338 1499 y(if)h(\(_rl_uppercase_p)d(\(rl_line_buffer[i]\)\))
-386 1550 y(rl_line_buffer[i])g(=)j(_rl_to_lower)e
-(\(rl_line_buffer[i]\);)338 1602 y(else)h(if)h(\(_rl_lowercase_p)e
-(\(rl_line_buffer[i]\)\))386 1654 y(rl_line_buffer[i])f(=)j
-(_rl_to_upper)e(\(rl_line_buffer[i]\);)290 1706 y(})243
-1758 y(/*)h(Move)h(point)f(to)g(on)h(top)f(of)h(the)f(last)h(character)
-e(changed.)h(*/)243 1810 y(rl_point)f(=)i(\(direction)f(==)g(1\))h(?)g
-(end)f(-)h(1)g(:)f(start;)243 1862 y(return)g(\(0\);)195
-1914 y(})75 2057 y Fs(2.5)33 b(Readline)23 b(Signal)h(Handling)137
-2159 y Fu(Signals)e(are)f(async)o(hronous)f(ev)o(en)o(ts)h(sen)o(t)f
-(to)h(a)f(pro)q(cess)h(b)o(y)g(the)g(Unix)h(k)o(ernel,)g(sometimes)f
-(on)75 2213 y(b)q(ehalf)g(of)e(another)h(pro)q(cess.)34
-b(They)20 b(are)g(in)o(tended)h(to)e(indicate)j(exceptional)f(ev)o(en)o
-(ts,)f(lik)o(e)h(a)f(user)75 2268 y(pressing)c(the)f(in)o(terrupt)g(k)o
-(ey)g(on)g(his)h(terminal,)f(or)g(a)f(net)o(w)o(ork)g(connection)i(b)q
-(eing)g(brok)o(en.)k(There)15 b(is)75 2323 y(a)e(class)g(of)g(signals)h
-(that)f(can)g(b)q(e)h(sen)o(t)f(to)f(the)i(pro)q(cess)f(curren)o(tly)h
-(reading)f(input)i(from)d(the)h(k)o(eyb)q(oard.)75 2378
-y(Since)i(Readline)f(c)o(hanges)g(the)f(terminal)h(attributes)f(when)h
-(it)g(is)g(called,)h(it)e(needs)h(to)f(p)q(erform)g(sp)q(ecial)75
-2433 y(pro)q(cessing)i(when)f(suc)o(h)g(a)g(signal)g(is)g(receiv)o(ed)h
-(in)g(order)f(to)f(restore)g(the)h(terminal)g(to)f(a)h(sane)g(state,)e
-(or)75 2487 y(pro)o(vide)k(application)h(writers)e(with)g(functions)h
-(to)f(do)g(so)g(man)o(ually)l(.)137 2560 y(Readline)22
-b(con)o(tains)e(an)g(in)o(ternal)h(signal)g(handler)g(that)f(is)h
-(installed)h(for)d(a)h(n)o(um)o(b)q(er)g(of)g(signals)75
-2615 y(\()p Ft(SIGINT)p Fu(,)h Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p
-Fu(,)g Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)g Ft(SIGTTIN)p
-Fu(,)h(and)f Ft(SIGTTOU)p Fu(\).)36 b(When)21 b(one)g(of)75
-2670 y(these)16 b(signals)h(is)f(receiv)o(ed,)h(the)f(signal)h(handler)
-f(will)i(reset)e(the)g(terminal)g(attributes)g(to)f(those)h(that)p
+%%Page: 48 52
+48 51 bop 150 -116 a Ft(48)2600 b(GNU)31 b(Readline)e(Library)390
+299 y Fd(/*)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)
+508 473 y(to)e(manipulate)j(files)e(and)g(their)h(modes.)f(*/)390
+648 y(#include)h(<stdio.h>)390 735 y(#include)g(<sys/types.h>)390
+822 y(#include)g(<sys/file.h>)390 909 y(#include)g(<sys/stat.h>)390
+996 y(#include)g(<sys/errno.h>)390 1171 y(#include)g
+(<readline/readline.h>)390 1258 y(#include)g(<readline/history.h>)390
+1432 y(extern)g(char)f(*xmalloc)h(\(\);)390 1606 y(/*)f(The)g(names)g
+(of)g(functions)h(that)f(actually)h(do)f(the)g(manipulation.)i(*/)390
+1694 y(int)e(com_list)h(__P\(\(char)g(*\)\);)390 1781
+y(int)f(com_view)h(__P\(\(char)g(*\)\);)390 1868 y(int)f(com_rename)h
+(__P\(\(char)h(*\)\);)390 1955 y(int)e(com_stat)h(__P\(\(char)g(*\)\);)
+390 2042 y(int)f(com_pwd)h(__P\(\(char)g(*\)\);)390 2130
+y(int)f(com_delete)h(__P\(\(char)h(*\)\);)390 2217 y(int)e(com_help)h
+(__P\(\(char)g(*\)\);)390 2304 y(int)f(com_cd)g(__P\(\(char)i(*\)\);)
+390 2391 y(int)e(com_quit)h(__P\(\(char)g(*\)\);)390
+2565 y(/*)f(A)f(structure)i(which)g(contains)g(information)h(on)d(the)h
+(commands)h(this)f(program)508 2653 y(can)g(understand.)h(*/)390
+2827 y(typedef)g(struct)f({)468 2914 y(char)h(*name;)f(/*)g(User)g
+(printable)h(name)f(of)g(the)g(function.)h(*/)468 3001
+y(rl_icpfunc_t)h(*func;)f(/*)f(Function)h(to)e(call)i(to)e(do)h(the)g
+(job.)g(*/)468 3088 y(char)h(*doc;)f(/*)g(Documentation)i(for)e(this)g
+(function.)80 b(*/)390 3176 y(})39 b(COMMAND;)390 3350
+y(COMMAND)i(commands[])g(=)f({)468 3437 y({)g("cd",)g(com_cd,)h
+("Change)g(to)f(directory)h(DIR")f(},)468 3524 y({)g("delete",)h
+(com_delete,)h("Delete)f(FILE")f(},)468 3611 y({)g("help",)h(com_help,)
+g("Display)g(this)f(text")h(},)468 3699 y({)f("?",)g(com_help,)h
+("Synonym)g(for)f(`help'")h(},)468 3786 y({)f("list",)h(com_list,)g
+("List)f(files)h(in)e(DIR")i(},)468 3873 y({)f("ls",)g(com_list,)i
+("Synonym)f(for)f(`list'")g(},)468 3960 y({)g("pwd",)g(com_pwd,)i
+("Print)e(the)g(current)h(working)g(directory")g(},)468
+4047 y({)f("quit",)h(com_quit,)g("Quit)f(using)h(Fileman")g(},)468
+4134 y({)f("rename",)h(com_rename,)h("Rename)f(FILE)f(to)g(NEWNAME")h
+(},)468 4222 y({)f("stat",)h(com_stat,)g("Print)g(out)f(statistics)h
+(on)f(FILE")g(},)468 4309 y({)g("view",)h(com_view,)g("View)f(the)g
+(contents)h(of)f(FILE")g(},)468 4396 y({)g(\(char)g(*\)NULL,)h
+(\(rl_icpfunc_t)h(*\)NULL,)f(\(char)f(*\)NULL)h(})390
+4483 y(};)390 4658 y(/*)f(Forward)g(declarations.)j(*/)390
+4745 y(char)d(*stripwhite)i(\(\);)390 4832 y(COMMAND)f(*find_command)h
+(\(\);)390 5006 y(/*)e(The)g(name)g(of)f(this)i(program,)g(as)e(taken)i
+(from)f(argv[0].)h(*/)390 5093 y(char)f(*progname;)390
+5268 y(/*)g(When)g(non-zero,)h(this)f(means)h(the)f(user)g(is)f(done)h
+(using)h(this)f(program.)h(*/)p eop
+%%Page: 49 53
+49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(49)390 299 y Fd(int)40
+b(done;)390 473 y(char)g(*)390 560 y(dupstr)h(\(s\))586
+648 y(int)f(s;)390 735 y({)468 822 y(char)h(*r;)468 996
+y(r)f(=)f(xmalloc)i(\(strlen)g(\(s\))f(+)f(1\);)468 1083
+y(strcpy)i(\(r,)f(s\);)468 1171 y(return)h(\(r\);)390
+1258 y(})390 1432 y(main)f(\(argc,)h(argv\))586 1519
+y(int)f(argc;)586 1606 y(char)g(**argv;)390 1694 y({)468
+1781 y(char)h(*line,)f(*s;)468 1955 y(progname)h(=)f(argv[0];)468
+2130 y(initialize_readline)k(\(\);)c(/*)g(Bind)g(our)g(completer.)h(*/)
+468 2304 y(/*)f(Loop)g(reading)h(and)f(executing)h(lines)g(until)f(the)
+g(user)g(quits.)h(*/)468 2391 y(for)f(\()g(;)f(done)h(==)g(0;)g(\))547
+2478 y({)625 2565 y(line)g(=)g(readline)h(\("FileMan:)h("\);)625
+2740 y(if)e(\(!line\))704 2827 y(break;)625 3001 y(/*)g(Remove)h
+(leading)f(and)g(trailing)h(whitespace)h(from)e(the)g(line.)743
+3088 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 3176 y(and)f(execute)h(it.)f(*/)625
+3263 y(s)g(=)f(stripwhite)j(\(line\);)625 3437 y(if)e(\(*s\))704
+3524 y({)782 3611 y(add_history)i(\(s\);)782 3699 y(execute_line)g
+(\(s\);)704 3786 y(})625 3960 y(free)e(\(line\);)547
+4047 y(})468 4134 y(exit)h(\(0\);)390 4222 y(})390 4396
+y(/*)f(Execute)g(a)g(command)h(line.)f(*/)390 4483 y(int)390
+4570 y(execute_line)i(\(line\))586 4658 y(char)e(*line;)390
+4745 y({)468 4832 y(register)h(int)f(i;)468 4919 y(COMMAND)h(*command;)
+468 5006 y(char)g(*word;)468 5181 y(/*)f(Isolate)h(the)f(command)h
+(word.)f(*/)468 5268 y(i)g(=)f(0;)p eop
+%%Page: 50 54
+50 53 bop 150 -116 a Ft(50)2600 b(GNU)31 b(Readline)e(Library)468
+299 y Fd(while)41 b(\(line[i])g(&&)f(whitespace)h(\(line[i]\)\))547
+386 y(i++;)468 473 y(word)g(=)e(line)h(+)g(i;)468 648
+y(while)h(\(line[i])g(&&)f(!whitespace)h(\(line[i]\)\))547
+735 y(i++;)468 909 y(if)f(\(line[i]\))547 996 y(line[i++])h(=)f('\\0';)
+468 1171 y(command)h(=)f(find_command)i(\(word\);)468
+1345 y(if)e(\(!command\))547 1432 y({)625 1519 y(fprintf)h(\(stderr,)g
+("\045s:)f(No)g(such)g(command)h(for)f(FileMan.\\n",)i(word\);)625
+1606 y(return)f(\(-1\);)547 1694 y(})468 1868 y(/*)f(Get)g(argument)h
+(to)f(command,)h(if)f(any.)g(*/)468 1955 y(while)h(\(whitespace)h
+(\(line[i]\)\))547 2042 y(i++;)468 2217 y(word)f(=)e(line)h(+)g(i;)468
+2391 y(/*)g(Call)g(the)g(function.)h(*/)468 2478 y(return)g
+(\(\(*\(command->func\)\))j(\(word\)\);)390 2565 y(})390
+2740 y(/*)c(Look)g(up)f(NAME)i(as)e(the)h(name)g(of)g(a)g(command,)h
+(and)e(return)i(a)f(pointer)g(to)g(that)508 2827 y(command.)80
+b(Return)41 b(a)e(NULL)h(pointer)h(if)f(NAME)g(isn't)g(a)g(command)g
+(name.)h(*/)390 2914 y(COMMAND)g(*)390 3001 y(find_command)h(\(name\))
+586 3088 y(char)e(*name;)390 3176 y({)468 3263 y(register)h(int)f(i;)
+468 3437 y(for)g(\(i)g(=)f(0;)h(commands[i].name;)j(i++\))547
+3524 y(if)d(\(strcmp)g(\(name,)h(commands[i].name\))i(==)d(0\))625
+3611 y(return)h(\(&commands[i]\);)468 3786 y(return)g(\(\(COMMAND)g
+(*\)NULL\);)390 3873 y(})390 4047 y(/*)f(Strip)g(whitespace)i(from)e
+(the)g(start)g(and)g(end)g(of)f(STRING.)81 b(Return)40
+b(a)g(pointer)508 4134 y(into)g(STRING.)h(*/)390 4222
+y(char)f(*)390 4309 y(stripwhite)h(\(string\))586 4396
+y(char)f(*string;)390 4483 y({)468 4570 y(register)h(char)g(*s,)f(*t;)
+468 4745 y(for)g(\(s)g(=)f(string;)i(whitespace)h(\(*s\);)e(s++\))547
+4832 y(;)468 5006 y(if)g(\(*s)g(==)g(0\))547 5093 y(return)g(\(s\);)468
+5268 y(t)g(=)f(s)h(+)f(strlen)i(\(s\))f(-)f(1;)p eop
+%%Page: 51 55
+51 54 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(51)468 299 y Fd(while)41
+b(\(t)e(>)h(s)f(&&)h(whitespace)i(\(*t\)\))547 386 y(t--;)468
+473 y(*++t)f(=)e('\\0';)468 648 y(return)i(s;)390 735
+y(})390 909 y(/*)f(******************************)q(*****)q(****)q
+(*****)q(****)q(****)q(*****)q(****)q(***)45 b(*/)390
+996 y(/*)2589 b(*/)390 1083 y(/*)707 b(Interface)41 b(to)f(Readline)h
+(Completion)629 b(*/)390 1171 y(/*)2589 b(*/)390 1258
+y(/*)40 b(******************************)q(*****)q(****)q(*****)q(****)
+q(****)q(*****)q(****)q(***)45 b(*/)390 1432 y(char)40
+b(*command_generator)j(__P\(\(const)f(char)e(*,)g(int\)\);)390
+1519 y(char)g(**fileman_completion)k(__P\(\(const)d(char)g(*,)e(int,)h
+(int\)\);)390 1694 y(/*)g(Tell)g(the)g(GNU)g(Readline)h(library)g(how)e
+(to)h(complete.)81 b(We)39 b(want)h(to)g(try)g(to)508
+1781 y(complete)h(on)e(command)i(names)g(if)e(this)h(is)g(the)g(first)g
+(word)h(in)e(the)h(line,)g(or)508 1868 y(on)f(filenames)j(if)d(not.)h
+(*/)390 1955 y(initialize_readline)k(\(\))390 2042 y({)468
+2130 y(/*)c(Allow)g(conditional)i(parsing)f(of)f(the)g(~/.inputrc)h
+(file.)g(*/)468 2217 y(rl_readline_name)i(=)d("FileMan";)468
+2391 y(/*)g(Tell)g(the)g(completer)h(that)g(we)e(want)h(a)g(crack)g
+(first.)h(*/)468 2478 y(rl_attempted_completion_fun)q(ctio)q(n)k(=)39
+b(fileman_completion;)390 2565 y(})390 2740 y(/*)h(Attempt)g(to)g
+(complete)h(on)f(the)g(contents)h(of)f(TEXT.)79 b(START)41
+b(and)e(END)508 2827 y(bound)h(the)g(region)h(of)e(rl_line_buffer)k
+(that)d(contains)h(the)f(word)g(to)508 2914 y(complete.)80
+b(TEXT)40 b(is)g(the)g(word)g(to)g(complete.)80 b(We)40
+b(can)g(use)g(the)g(entire)508 3001 y(contents)h(of)e(rl_line_buffer)k
+(in)d(case)g(we)f(want)h(to)g(do)g(some)g(simple)508
+3088 y(parsing.)80 b(Returnthe)41 b(array)g(of)e(matches,)i(or)f(NULL)g
+(if)g(there)g(aren't)h(any.)f(*/)390 3176 y(char)g(**)390
+3263 y(fileman_completion)j(\(text,)e(start,)g(end\))586
+3350 y(const)f(char)h(*text;)586 3437 y(int)f(start,)h(end;)390
+3524 y({)468 3611 y(char)g(**matches;)468 3786 y(matches)g(=)f(\(char)g
+(**\)NULL;)468 3960 y(/*)g(If)g(this)g(word)g(is)g(at)f(the)h(start)h
+(of)e(the)h(line,)h(then)f(it)g(is)f(a)h(command)586
+4047 y(to)g(complete.)80 b(Otherwise)42 b(it)d(is)h(the)g(name)g(of)g
+(a)f(file)h(in)g(the)g(current)586 4134 y(directory.)i(*/)468
+4222 y(if)e(\(start)h(==)e(0\))547 4309 y(matches)i(=)e
+(rl_completion_matches)44 b(\(text,)d(command_generator\);)468
+4483 y(return)g(\(matches\);)390 4570 y(})390 4745 y(/*)f(Generator)h
+(function)g(for)f(command)h(completion.)81 b(STATE)40
+b(lets)g(us)508 4832 y(know)g(whether)h(to)e(start)i(from)f(scratch;)h
+(without)g(any)f(state)508 4919 y(\(i.e.)g(STATE)g(==)g(0\),)g(then)g
+(we)g(start)g(at)g(the)g(top)g(of)f(the)h(list.)h(*/)390
+5006 y(char)f(*)390 5093 y(command_generator)j(\(text,)e(state\))586
+5181 y(const)f(char)h(*text;)586 5268 y(int)f(state;)p
eop
-%%Page: 40 42
-40 41 bop 75 -58 a Fu(40)1299 b(GNU)15 b(Readline)h(Library)75
-149 y(w)o(ere)d(in)i(e\013ect)e(b)q(efore)h Ft(readline\(\))e
-Fu(w)o(as)h(called,)i(reset)f(the)f(signal)i(handling)g(to)e(what)g(it)
-h(w)o(as)f(b)q(efore)75 204 y Ft(readline\(\))21 b Fu(w)o(as)h(called,)
-j(and)e(resend)g(the)g(signal)g(to)f(the)h(calling)h(application.)44
-b(If)23 b(and)f(when)75 259 y(the)17 b(calling)i(application's)f
-(signal)g(handler)g(returns,)f(Readline)h(will)h(reinitialize)h(the)d
-(terminal)h(and)75 314 y(con)o(tin)o(ue)d(to)e(accept)i(input.)20
-b(When)15 b(a)e Ft(SIGINT)h Fu(is)g(receiv)o(ed,)h(the)g(Readline)g
-(signal)g(handler)g(p)q(erforms)75 369 y(some)k(additional)i(w)o(ork,)e
-(whic)o(h)h(will)h(cause)f(an)o(y)f(partially-en)o(tered)i(line)g(to)d
-(b)q(e)i(ab)q(orted)g(\(see)f(the)75 423 y(description)e(of)d
-Ft(rl_free_line_state\(\))f Fu(b)q(elo)o(w\).)137 488
-y(There)g(is)f(an)g(additional)i(Readline)g(signal)f(handler,)g(for)f
-Ft(SIGWINCH)p Fu(,)f(whic)o(h)i(the)f(k)o(ernel)h(sends)g(to)e(a)75
-543 y(pro)q(cess)k(whenev)o(er)g(the)f(terminal's)h(size)g(c)o(hanges)f
-(\(for)g(example,)h(if)g(a)f(user)h(resizes)g(an)f Ft(xterm)p
-Fu(\).)19 b(The)75 598 y(Readline)g Ft(SIGWINCH)e Fu(handler)i(up)q
-(dates)f(Readline's)h(in)o(ternal)f(screen)h(size)f(information,)h(and)
-f(then)75 653 y(calls)g(an)o(y)f Ft(SIGWINCH)e Fu(signal)j(handler)g
-(the)f(calling)i(application)f(has)f(installed.)27 b(Readline)18
-b(calls)g(the)75 708 y(application's)h Ft(SIGWINCH)d
-Fu(signal)j(handler)f(without)g(resetting)g(the)f(terminal)i(to)e(its)g
-(original)i(state.)75 762 y(If)d(the)g(application's)h(signal)g
-(handler)g(do)q(es)g(more)e(than)h(up)q(date)h(its)f(idea)h(of)e(the)h
-(terminal)h(size)g(and)75 817 y(return)e(\(for)f(example,)h(a)f
-Ft(longjmp)g Fu(bac)o(k)h(to)f(a)h(main)g(pro)q(cessing)g(lo)q(op\),)g
-(it)g Fl(must)20 b Fu(call)c Ft(rl_cleanup_)75 872 y(after_signal\(\))d
-Fu(\(describ)q(ed)k(b)q(elo)o(w\),)e(to)g(restore)f(the)h(terminal)h
-(state.)137 937 y(Readline)g(pro)o(vides)f(t)o(w)o(o)e(v)m(ariables)i
-(that)f(allo)o(w)g(application)i(writers)e(to)g(con)o(trol)g(whether)h
-(or)e(not)75 992 y(it)k(will)h(catc)o(h)e(certain)h(signals)h(and)f
-(act)f(on)g(them)h(when)g(they)f(are)h(receiv)o(ed.)25
-b(It)16 b(is)i(imp)q(ortan)o(t)e(that)75 1047 y(applications)k(c)o
-(hange)e(the)h(v)m(alues)g(of)f(these)h(v)m(ariables)g(only)g(when)g
-(calling)h Ft(readline\(\))p Fu(,)d(not)h(in)h(a)75 1101
-y(signal)d(handler,)g(so)f(Readline's)h(in)o(ternal)g(signal)g(state)e
-(is)i(not)f(corrupted.)1773 1208 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1208 18 3 v 21 w(catc)n(h)p
-366 1208 V 22 w(signals)195 1262 y Fu(If)15 b(this)g(v)m(ariable)g(is)g
-(non-zero,)g(Readline)h(will)g(install)f(signal)h(handlers)f(for)f
-Ft(SIGINT)p Fu(,)f Ft(SIGQUIT)p Fu(,)195 1317 y Ft(SIGTERM)p
-Fu(,)h Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)f Ft(SIGTTIN)p
-Fu(,)h(and)i Ft(SIGTTOU)p Fu(.)195 1382 y(The)f(default)h(v)m(alue)h
-(of)d Ft(rl_catch_signals)f Fu(is)j(1.)1773 1488 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1488 V 21 w(catc)n(h)p 366
-1488 V 22 w(sigwinc)n(h)195 1543 y Fu(If)15 b(this)h(v)m(ariable)h(is)e
-(non-zero,)g(Readline)i(will)g(install)f(a)f(signal)h(handler)h(for)d
-Ft(SIGWINCH)p Fu(.)195 1608 y(The)h(default)h(v)m(alue)h(of)d
-Ft(rl_catch_sigwinch)f Fu(is)j(1.)137 1694 y(If)g(an)f(application)j
-(do)q(es)d(not)g(wish)i(to)d(ha)o(v)o(e)h(Readline)i(catc)o(h)f(an)o(y)
-f(signals,)h(or)f(to)f(handle)j(signals)75 1749 y(other)i(than)g(those)
-g(Readline)i(catc)o(hes)e(\()p Ft(SIGHUP)p Fu(,)g(for)g(example\),)h
-(Readline)h(pro)o(vides)e(con)o(v)o(enience)75 1804 y(functions)d(to)f
-(do)g(the)g(necessary)g(terminal)h(and)g(in)o(ternal)g(state)e(clean)o
-(up)i(up)q(on)g(receipt)g(of)f(a)g(signal.)1762 1910
-y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1910 V
-21 w(clean)n(up)p 450 1910 V 22 w(after)p 590 1910 V
-20 w(signal)j Fg(\()p Ft(void)p Fg(\))195 1965 y Fu(This)18
-b(function)f(will)i(reset)e(the)g(state)f(of)g(the)h(terminal)h(to)e
-(what)h(it)g(w)o(as)f(b)q(efore)h Ft(readline\(\))195
-2019 y Fu(w)o(as)d(called,)i(and)f(remo)o(v)o(e)f(the)g(Readline)i
-(signal)g(handlers)g(for)e(all)h(signals,)g(dep)q(ending)i(on)e(the)195
-2074 y(v)m(alues)h(of)f Ft(rl_catch_signals)e Fu(and)i
-Ft(rl_catch_sigwinch)p Fu(.)1762 2180 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2180 V 21 w(free)p 356 2180
-V 20 w(line)p 464 2180 V 23 w(state)j Fg(\()p Ft(void)p
-Fg(\))195 2235 y Fu(This)d(will)h(free)f(an)o(y)f(partial)h(state)f
-(asso)q(ciated)h(with)g(the)g(curren)o(t)f(input)i(line)g(\(undo)f
-(infor-)195 2290 y(mation,)i(an)o(y)f(partial)h(history)f(en)o(try)l(,)
-h(an)o(y)f(partially-en)o(tered)i(k)o(eyb)q(oard)e(macro,)h(and)f(an)o
-(y)195 2345 y(partially-en)o(tered)k(n)o(umeric)g(argumen)o(t\).)45
-b(This)24 b(should)h(b)q(e)g(called)g(b)q(efore)g Ft(rl_cleanup_)195
-2399 y(after_signal\(\))p Fu(.)36 b(The)22 b(Readline)h(signal)f
-(handler)g(for)f Ft(SIGINT)f Fu(calls)j(this)e(to)g(ab)q(ort)g(the)195
-2454 y(curren)o(t)15 b(input)h(line.)1762 2560 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(reset)p 383 2560
-V 20 w(after)p 521 2560 V 21 w(signal)j Fg(\()p Ft(void)p
-Fg(\))195 2615 y Fu(This)15 b(will)h(reinitialize)h(the)d(terminal)h
-(and)g(reinstall)h(an)o(y)d(Readline)j(signal)f(handlers,)g(dep)q(end-)
-195 2670 y(ing)h(on)f(the)g(v)m(alues)i(of)d Ft(rl_catch_signals)f
-Fu(and)j Ft(rl_catch_sigwinch)p Fu(.)p eop
-%%Page: 41 43
-41 42 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(41)137 149 y(If)20 b(an)g(application)h(do)q(es)f(not)g
-(wish)g(Readline)h(to)e(catc)o(h)g Ft(SIGWINCH)p Fu(,)h(it)g(ma)o(y)f
-(call)h Ft(rl_resize_)75 204 y(terminal\(\))12 b Fu(or)h
-Ft(rl_set_screen_size\(\))e Fu(to)i(force)g(Readline)i(to)e(up)q(date)h
-(its)g(idea)g(of)g(the)f(terminal)75 259 y(size)j(when)g(a)f
-Ft(SIGWINCH)f Fu(is)h(receiv)o(ed.)1762 360 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 360 18 3 v 21 w(resize)p 401
-360 V 22 w(terminal)j Fg(\()p Ft(void)p Fg(\))195 415
-y Fu(Up)q(date)16 b(Readline's)g(in)o(ternal)g(screen)f(size)i(b)o(y)e
-(reading)g(v)m(alues)i(from)d(the)i(k)o(ernel.)1762 516
-y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 516 V
-21 w(set)p 333 516 V 21 w(screen)p 510 516 V 20 w(size)k
-Fg(\()p Ft(int)15 b(rows,)f(int)h(cols)p Fg(\))195 571
-y Fu(Set)g(Readline's)h(idea)g(of)f(the)g(terminal)h(size)g(to)f
-Fk(ro)o(ws)h Fu(ro)o(ws)e(and)i Fk(cols)h Fu(columns.)137
-653 y(If)g(an)g(application)h(do)q(es)f(not)f(w)o(an)o(t)g(to)g
-(install)i(a)f Ft(SIGWINCH)e Fu(handler,)j(but)f(is)g(still)h(in)o
-(terested)f(in)75 708 y(the)e(screen)h(dimensions,)g(Readline's)h(idea)
-e(of)g(the)h(screen)f(size)h(ma)o(y)f(b)q(e)h(queried.)1762
-809 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 809
-V 21 w(get)p 339 809 V 21 w(screen)p 516 809 V 20 w(size)k
-Fg(\()p Ft(int)15 b(*rows,)f(int)h(*cols)p Fg(\))195
-864 y Fu(Return)g(Readline's)h(idea)f(of)g(the)g(terminal's)g(size)h
-(in)g(the)f(v)m(ariables)i(p)q(oin)o(ted)f(to)e(b)o(y)h(the)g(argu-)195
-918 y(men)o(ts.)137 1001 y(The)h(follo)o(wing)g(functions)g(install)g
-(and)g(remo)o(v)o(e)e(Readline's)i(signal)g(handlers.)1762
-1102 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1102
-V 21 w(set)p 307 1102 V 20 w(signals)j Fg(\()p Ft(void)p
-Fg(\))195 1157 y Fu(Install)c(Readline's)f(signal)h(handler)f(for)f
-Ft(SIGINT)p Fu(,)g Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p Fu(,)g
-Ft(SIGALRM)p Fu(,)f Ft(SIGTSTP)p Fu(,)195 1211 y Ft(SIGTTIN)p
-Fu(,)11 b Ft(SIGTTOU)p Fu(,)g(and)h Ft(SIGWINCH)p Fu(,)e(dep)q(ending)k
-(on)e(the)f(v)m(alues)i(of)e Ft(rl_catch_signals)f Fu(and)195
-1266 y Ft(rl_catch_sigwinch)p Fu(.)1762 1367 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1367 V 21 w(clear)p 354 1367
-V 21 w(signals)j Fg(\()p Ft(void)p Fg(\))195 1422 y Fu(Remo)o(v)o(e)14
-b(all)i(of)f(the)g(Readline)i(signal)f(handlers)g(installed)h(b)o(y)e
-Ft(rl_set_signals\(\))p Fu(.)75 1541 y Fs(2.6)33 b(Custom)21
-b(Completers)137 1634 y Fu(T)o(ypically)l(,)e(a)d(program)f(that)h
-(reads)h(commands)f(from)g(the)h(user)f(has)h(a)f(w)o(a)o(y)g(of)g
-(disam)o(biguating)75 1689 y(commands)i(and)f(data.)27
-b(If)18 b(y)o(our)f(program)g(is)h(one)g(of)f(these,)i(then)f(it)g(can)
-f(pro)o(vide)i(completion)g(for)75 1744 y(commands,)14
-b(data,)g(or)g(b)q(oth.)20 b(The)15 b(follo)o(wing)g(sections)g
-(describ)q(e)h(ho)o(w)e(y)o(our)g(program)g(and)h(Readline)75
-1798 y(co)q(op)q(erate)g(to)g(pro)o(vide)g(this)h(service.)75
-1901 y Fj(2.6.1)30 b(Ho)n(w)21 b(Completing)f(W)-5 b(orks)137
-1994 y Fu(In)18 b(order)f(to)f(complete)i(some)f(text,)g(the)g(full)i
-(list)e(of)g(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o(v)m
-(ailable.)75 2049 y(That)e(is,)i(it)f(is)h(not)f(p)q(ossible)h(to)f
-(accurately)g(expand)h(a)e(partial)i(w)o(ord)e(without)h(kno)o(wing)g
-(all)h(of)f(the)75 2104 y(p)q(ossible)i(w)o(ords)e(whic)o(h)h(mak)o(e)f
-(sense)h(in)h(that)d(con)o(text.)26 b(The)18 b(Readline)h(library)f
-(pro)o(vides)g(the)g(user)75 2158 y(in)o(terface)f(to)f(completion,)i
-(and)e(t)o(w)o(o)g(of)g(the)h(most)f(common)g(completion)i(functions:)
-23 b(\014lename)18 b(and)75 2213 y(username.)h(F)l(or)10
-b(completing)i(other)e(t)o(yp)q(es)h(of)f(text,)h(y)o(ou)g(m)o(ust)f
-(write)h(y)o(our)f(o)o(wn)h(completion)g(function.)75
-2268 y(This)16 b(section)g(describ)q(es)g(exactly)g(what)f(suc)o(h)g
-(functions)h(m)o(ust)f(do,)f(and)i(pro)o(vides)f(an)h(example.)137
-2332 y(There)g(are)f(three)g(ma)s(jor)f(functions)i(used)f(to)g(p)q
-(erform)g(completion:)100 2396 y(1.)29 b(The)22 b(user-in)o(terface)g
-(function)h Ft(rl_complete\(\))p Fu(.)37 b(This)22 b(function)h(is)f
-(called)h(with)f(the)g(same)165 2451 y(argumen)o(ts)17
-b(as)h(other)g(bindable)i(Readline)f(functions:)27 b
-Fk(coun)o(t)19 b Fu(and)f Fk(in)o(v)o(oking)p 1556 2451
-14 2 v 17 w(k)o(ey)p Fu(.)28 b(It)19 b(isolates)165 2506
-y(the)g(w)o(ord)f(to)g(b)q(e)i(completed)f(and)g(calls)h
-Ft(rl_completion_matches\(\))c Fu(to)i(generate)g(a)h(list)g(of)165
-2560 y(p)q(ossible)e(completions.)22 b(It)16 b(then)g(either)g(lists)g
-(the)g(p)q(ossible)h(completions,)g(inserts)f(the)f(p)q(ossible)165
-2615 y(completions,)25 b(or)d(actually)i(p)q(erforms)e(the)g
-(completion,)k(dep)q(ending)e(on)f(whic)o(h)g(b)q(eha)o(vior)g(is)165
-2670 y(desired.)p eop
-%%Page: 42 44
-42 43 bop 75 -58 a Fu(42)1299 b(GNU)15 b(Readline)h(Library)100
-149 y(2.)29 b(The)17 b(in)o(ternal)h(function)f Ft
-(rl_completion_matches\(\))d Fu(uses)j(an)g(application-supplie)q(d)j
-Fk(gener-)165 204 y(ator)h Fu(function)e(to)f(generate)g(the)h(list)g
-(of)f(p)q(ossible)i(matc)o(hes,)f(and)f(then)h(returns)g(the)f(arra)o
-(y)f(of)165 259 y(these)j(matc)o(hes.)32 b(The)20 b(caller)g(should)h
-(place)f(the)g(address)f(of)h(its)f(generator)g(function)h(in)g
-Ft(rl_)165 314 y(completion_entry_function)p Fu(.)100
-383 y(3.)29 b(The)12 b(generator)e(function)i(is)g(called)h(rep)q
-(eatedly)g(from)e Ft(rl_completion_matches\(\))p Fu(,)d(returning)165
-438 y(a)16 b(string)g(eac)o(h)h(time.)24 b(The)17 b(argumen)o(ts)e(to)h
-(the)g(generator)g(function)h(are)f Fk(text)h Fu(and)g
-Fk(state)p Fu(.)22 b Fk(text)165 493 y Fu(is)17 b(the)f(partial)g(w)o
-(ord)f(to)h(b)q(e)h(completed.)23 b Fk(state)18 b Fu(is)e(zero)g(the)g
-(\014rst)g(time)g(the)g(function)h(is)g(called,)165 547
-y(allo)o(wing)23 b(the)f(generator)f(to)g(p)q(erform)h(an)o(y)g
-(necessary)g(initialization,)k(and)c(a)g(p)q(ositiv)o(e)h(non-)165
-602 y(zero)14 b(in)o(teger)h(for)f(eac)o(h)h(subsequen)o(t)g(call.)21
-b(The)15 b(generator)e(function)j(returns)e Ft(\(char)h(*\)NULL)f
-Fu(to)165 657 y(inform)19 b Ft(rl_completion_matches\(\))d
-Fu(that)i(there)h(are)g(no)g(more)g(p)q(ossibilities)j(left.)32
-b(Usually)165 712 y(the)19 b(generator)g(function)h(computes)g(the)f
-(list)h(of)f(p)q(ossible)i(completions)g(when)e Fk(state)j
-Fu(is)d(zero,)165 767 y(and)13 b(returns)g(them)f(one)h(at)f(a)h(time)g
-(on)g(subsequen)o(t)g(calls.)20 b(Eac)o(h)13 b(string)f(the)h
-(generator)f(function)165 821 y(returns)k(as)f(a)h(matc)o(h)f(m)o(ust)h
-(b)q(e)g(allo)q(cated)h(with)g Ft(malloc\(\))p Fu(;)d(Readline)k(frees)
-e(the)g(strings)f(when)165 876 y(it)g(has)h(\014nished)g(with)g(them.)
-1762 1005 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1005 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
-(invoking_key)p Fg(\))195 1059 y Fu(Complete)h(the)f(w)o(ord)g(at)f(or)
-h(b)q(efore)h(p)q(oin)o(t.)21 b(Y)l(ou)15 b(ha)o(v)o(e)g(supplied)j
-(the)d(function)i(that)d(do)q(es)i(the)195 1114 y(initial)23
-b(simple)f(matc)o(hing)e(selection)i(algorithm)f(\(see)f
-Ft(rl_completion_matches\(\))p Fu(\).)33 b(The)195 1169
-y(default)16 b(is)f(to)g(do)g(\014lename)h(completion.)1773
-1298 y(V)l(ariable)-1861 b Fi(rl_compentry_func_t)22
-b(*)d Fh(rl)p 678 1298 V 21 w(completion)p 973 1298 V
-21 w(en)n(try)p 1126 1298 V 22 w(function)195 1352 y
-Fu(This)i(is)f(a)g(p)q(oin)o(ter)g(to)f(the)h(generator)g(function)g
-(for)g Ft(rl_completion_matches\(\))p Fu(.)31 b(If)20
-b(the)195 1407 y(v)m(alue)13 b(of)f Ft(rl_completion_entry_fun)o(ction)
-d Fu(is)j Ft(NULL)f Fu(then)h(the)g(default)h(\014lename)g(generator)
-195 1462 y(function,)j Ft(rl_filename_completion_f)o(unction)o(\(\))p
-Fu(,)c(is)k(used.)75 1582 y Fj(2.6.2)30 b(Completion)20
-b(F)-5 b(unctions)137 1682 y Fu(Here)16 b(is)f(the)h(complete)g(list)g
-(of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.)
-1762 1810 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1810 V 21 w(complete)p 460 1810 V 21 w(in)n(ternal)k
-Fg(\()p Ft(int)15 b(what_to_do)p Fg(\))195 1865 y Fu(Complete)k(the)g
-(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)31 b Fk(what)p
-1108 1865 14 2 v 16 w(to)p 1165 1865 V 16 w(do)21 b Fu(sa)o(ys)d(what)g
-(to)g(do)h(with)g(the)g(com-)195 1920 y(pletion.)j(A)16
-b(v)m(alue)h(of)e(`)p Ft(?)p Fu(')g(means)g(list)i(the)e(p)q(ossible)j
-(completions.)k(`)p Ft(TAB)p Fu(')14 b(means)i(do)f(standard)195
-1975 y(completion.)22 b(`)p Ft(*)p Fu(')15 b(means)g(insert)h(all)h(of)
-e(the)h(p)q(ossible)h(completions.)22 b(`)p Ft(!)p Fu(')15
-b(means)g(to)g(displa)o(y)i(all)195 2029 y(of)g(the)g(p)q(ossible)i
-(completions,)f(if)g(there)f(is)h(more)f(than)g(one,)g(as)g(w)o(ell)h
-(as)f(p)q(erforming)h(partial)195 2084 y(completion.)1762
-2213 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2213
-18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
-(invoking_key)p Fg(\))195 2268 y Fu(Complete)21 b(the)g(w)o(ord)e(at)h
-(or)g(b)q(efore)h(p)q(oin)o(t.)37 b(Y)l(ou)21 b(ha)o(v)o(e)f(supplied)j
-(the)d(function)i(that)e(do)q(es)195 2322 y(the)d(initial)h(simple)g
-(matc)o(hing)f(selection)h(algorithm)e(\(see)g Ft
-(rl_completion_matches\(\))e Fu(and)195 2377 y Ft
-(rl_completion_entry_functi)o(on)p Fu(\).)25 b(The)18
-b(default)h(is)f(to)f(do)h(\014lename)h(completion.)29
-b(This)195 2432 y(calls)16 b Ft(rl_complete_internal\(\))c
-Fu(with)k(an)f(argumen)o(t)f(dep)q(ending)k(on)d Fk(in)o(v)o(oking)p
-1657 2432 14 2 v 17 w(k)o(ey)p Fu(.)1762 2560 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2560 18 3 v 21 w(p)r(ossible)p
-433 2560 V 20 w(completions)j Fg(\()p Ft(int)15 b(count,)f(int)h
-(invoking_key)p Fg(\))195 2615 y Fu(List)21 b(the)f(p)q(ossible)i
-(completions.)36 b(See)21 b(description)h(of)e Ft(rl_complete)13
-b(\(\))p Fu(.)35 b(This)21 b(calls)g Ft(rl_)195 2670
-y(complete_internal\(\))13 b Fu(with)i(an)g(argumen)o(t)g(of)f(`)p
-Ft(?)p Fu('.)p eop
-%%Page: 43 45
-43 44 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(43)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(insert)p 378 149 V 21 w(completions)j
-Fg(\()p Ft(int)14 b(count,)g(int)h(invoking_key)p Fg(\))195
-204 y Fu(Insert)i(the)g(list)h(of)e(p)q(ossible)j(completions)e(in)o
-(to)g(the)g(line,)i(deleting)f(the)f(partially-completed)195
-259 y(w)o(ord.)k(See)c(description)g(of)e Ft(rl_complete\(\))p
-Fu(.)20 b(This)d(calls)g Ft(rl_complete_internal\(\))c
-Fu(with)195 314 y(an)i(argumen)o(t)g(of)f(`)p Ft(*)p
-Fu('.)1762 434 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 434 V 21 w(completion)p 510 434 V 21 w(mo)r(de)h
-Fg(\()p Ft(rl_command_func_t)12 b(*cfunc)p Fg(\))195
-489 y Fu(Returns)25 b(the)g(apppriate)h(v)m(alue)g(to)f(pass)g(to)f
-Ft(rl_complete_internal\(\))f Fu(dep)q(ending)k(on)195
-543 y(whether)22 b Fk(cfunc)j Fu(w)o(as)d(called)h(t)o(wice)f(in)h
-(succession)g(and)f(the)g(v)m(alue)h(of)f(the)g Ft(show-all-if-)195
-598 y(ambiguous)14 b Fu(v)m(ariable.)21 b(Application-sp)q(ec)q(i\014c)
-e(completion)d(functions)g(ma)o(y)f(use)g(this)h(function)195
-653 y(to)f(presen)o(t)g(the)g(same)g(in)o(terface)g(as)g
-Ft(rl_complete\(\))p Fu(.)1762 773 y(F)l(unction)-1861
-b Fi(char)20 b(**)f Fh(rl)p 312 773 V 21 w(completion)p
-607 773 V 21 w(matc)n(hes)j Fg(\()p Ft(const)15 b(char)f(*text,)283
-828 y(rl_compentry_func_t)e(*entry_func)p Fg(\))195 883
-y Fu(Returns)18 b(an)h(arra)o(y)f(of)g(strings)h(whic)o(h)h(is)g(a)e
-(list)i(of)e(completions)i(for)f Fk(text)p Fu(.)30 b(If)19
-b(there)g(are)g(no)195 937 y(completions,)f(returns)g
-Ft(NULL)p Fu(.)25 b(The)17 b(\014rst)g(en)o(try)g(in)h(the)f(returned)h
-(arra)o(y)e(is)i(the)f(substitution)195 992 y(for)c Fk(text)p
-Fu(.)18 b(The)c(remaining)g(en)o(tries)f(are)g(the)h(p)q(ossible)g
-(completions.)21 b(The)13 b(arra)o(y)f(is)i(terminated)195
-1047 y(with)i(a)e Ft(NULL)h Fu(p)q(oin)o(ter.)195 1115
-y Fk(en)o(try)p 302 1115 14 2 v 16 w(func)h Fu(is)e(a)f(function)h(of)e
-(t)o(w)o(o)g(args,)g(and)i(returns)f(a)f Ft(char)j(*)p
-Fu(.)k(The)13 b(\014rst)g(argumen)o(t)f(is)i Fk(text)p
-Fu(.)195 1170 y(The)f(second)g(is)f(a)h(state)e(argumen)o(t;)h(it)h(is)
-g(zero)f(on)g(the)h(\014rst)f(call,)i(and)e(non-zero)h(on)f(subsequen)o
-(t)195 1225 y(calls.)20 b Fk(en)o(try)p 420 1225 V 16
-w(func)15 b Fu(returns)e(a)e Ft(NULL)h Fu(p)q(oin)o(ter)h(to)e(the)i
-(caller)g(when)g(there)f(are)g(no)g(more)g(matc)o(hes.)1762
-1345 y(F)l(unction)-1861 b Fi(char)20 b(*)f Fh(rl)p 286
-1345 18 3 v 21 w(\014lename)p 515 1345 V 20 w(completion)p
-809 1345 V 21 w(function)k Fg(\()p Ft(const)15 b(char)f(*text,)h(int)
-283 1400 y(state)p Fg(\))195 1454 y Fu(A)e(generator)f(function)h(for)g
-(\014lename)h(completion)f(in)h(the)f(general)g(case.)19
-b Fk(text)14 b Fu(is)f(a)g(partial)g(\014le-)195 1509
-y(name.)20 b(The)15 b(Bash)f(source)h(is)g(a)g(useful)g(reference)h
-(for)e(writing)h(custom)f(completion)i(functions)195
-1564 y(\(the)f(Bash)g(completion)i(functions)e(call)i(this)e(and)h
-(other)f(Readline)h(functions\).)1762 1684 y(F)l(unction)-1861
-b Fi(char)20 b(*)f Fh(rl)p 286 1684 V 21 w(username)p
-547 1684 V 19 w(completion)p 840 1684 V 21 w(function)k
-Fg(\()p Ft(const)14 b(char)g(*text,)283 1739 y(int)g(state)p
-Fg(\))195 1794 y Fu(A)g(completion)i(generator)d(for)h(usernames.)19
-b Fk(text)c Fu(con)o(tains)f(a)g(partial)h(username)f(preceded)i(b)o(y)
-195 1848 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p
-Ft(~)p Fu('\).)i(As)c(with)g(all)i(completion)f(generators,)e
-Fk(state)j Fu(is)f(zero)f(on)195 1903 y(the)g(\014rst)g(call)h(and)g
-(non-zero)f(for)g(subsequen)o(t)h(calls.)75 2017 y Fj(2.6.3)30
-b(Completion)20 b(V)-5 b(ariables)1773 2166 y Fu(V)l(ariable)-1861
-b Fi(rl_compentry_func_t)22 b(*)d Fh(rl)p 678 2166 V
-21 w(completion)p 973 2166 V 21 w(en)n(try)p 1126 2166
-V 22 w(function)195 2221 y Fu(A)e(p)q(oin)o(ter)g(to)f(the)h(generator)
-f(function)h(for)f Ft(rl_completion_matches\(\))p Fu(.)22
-b Ft(NULL)16 b Fu(means)h(to)195 2276 y(use)f Ft
-(rl_filename_completion_)o(functio)o(n\(\))p Fu(,)c(the)j(default)h
-(\014lename)g(completer.)1773 2396 y(V)l(ariable)-1861
-b Fi(rl_completion_func_t)22 b(*)d Fh(rl)p 704 2396 V
-22 w(attempted)p 985 2396 V 20 w(completion)p 1279 2396
-V 21 w(function)195 2451 y Fu(A)e(p)q(oin)o(ter)h(to)f(an)g(alternativ)
-o(e)h(function)g(to)f(create)g(matc)o(hes.)26 b(The)18
-b(function)g(is)g(called)h(with)195 2506 y Fk(text)p
-Fu(,)11 b Fk(start)p Fu(,)g(and)h Fk(end)p Fu(.)19 b
-Fk(start)11 b Fu(and)h Fk(end)i Fu(are)d(indices)i(in)g
-Ft(rl_line_buffer)c Fu(de\014ning)k(the)f(b)q(ound-)195
-2560 y(aries)h(of)g Fk(text)p Fu(,)f(whic)o(h)i(is)g(a)e(c)o(haracter)h
-(string.)19 b(If)13 b(this)g(function)h(exists)g(and)f(returns)g
-Ft(NULL)p Fu(,)f(or)g(if)195 2615 y(this)f(v)m(ariable)i(is)e(set)g(to)
-f Ft(NULL)p Fu(,)h(then)g Ft(rl_complete\(\))e Fu(will)k(call)f(the)f
-(v)m(alue)h(of)f Ft(rl_completion_)195 2670 y(entry_function)h
-Fu(to)i(generate)g(matc)o(hes,)f(otherwise)i(the)f(arra)o(y)f(of)h
-(strings)g(returned)g(will)i(b)q(e)p eop
-%%Page: 44 46
-44 45 bop 75 -58 a Fu(44)1299 b(GNU)15 b(Readline)h(Library)195
-149 y(used.)j(If)12 b(this)f(function)h(sets)f(the)g
-Ft(rl_attempted_completion_over)d Fu(v)m(ariable)k(to)f(a)g(non-zero)
-195 204 y(v)m(alue,)18 b(Readline)h(will)f(not)f(p)q(erform)f(its)i
-(default)f(completion)h(ev)o(en)f(if)h(this)f(function)h(returns)195
-259 y(no)d(matc)o(hes.)1773 380 y(V)l(ariable)-1861 b
-Fi(rl_quote_func_t)21 b(*)f Fh(rl)p 574 380 18 3 v 21
-w(\014lename)p 803 380 V 20 w(quoting)p 1012 380 V 21
-w(function)195 434 y Fu(A)c(p)q(oin)o(ter)h(to)f(a)g(function)h(that)e
-(will)j(quote)e(a)g(\014lename)i(in)f(an)f(application-sp)q(eci\014)q
-(c)j(fashion.)195 489 y(This)h(is)g(called)i(if)e(\014lename)g
-(completion)h(is)f(b)q(eing)h(attempted)e(and)h(one)g(of)f(the)h(c)o
-(haracters)195 544 y(in)d Ft(rl_filename_quote_characters)c
-Fu(app)q(ears)k(in)g(a)g(completed)g(\014lename.)25 b(The)17
-b(function)195 599 y(is)i(called)i(with)e Fk(text)p Fu(,)g
-Fk(matc)o(h)p 722 599 14 2 v 16 w(t)o(yp)q(e)p Fu(,)g(and)g
-Fk(quote)p 1059 599 V 17 w(p)q(oin)o(ter)p Fu(.)31 b(The)19
-b Fk(text)h Fu(is)f(the)g(\014lename)h(to)e(b)q(e)195
-654 y(quoted.)39 b(The)21 b Fk(matc)o(h)p 607 654 V 16
-w(t)o(yp)q(e)j Fu(is)e(either)g Ft(SINGLE_MATCH)p Fu(,)f(if)h(there)f
-(is)h(only)g(one)g(completion)195 708 y(matc)o(h,)15
-b(or)g Ft(MULT_MATCH)p Fu(.)20 b(Some)c(functions)g(use)g(this)g(to)f
-(decide)j(whether)e(or)f(not)g(to)g(insert)h(a)195 763
-y(closing)c(quote)e(c)o(haracter.)18 b(The)11 b Fk(quote)p
-877 763 V 16 w(p)q(oin)o(ter)k Fu(is)c(a)f(p)q(oin)o(ter)i(to)e(an)o(y)
-g(op)q(ening)i(quote)f(c)o(haracter)195 818 y(the)k(user)h(t)o(yp)q
-(ed.)k(Some)15 b(functions)h(c)o(ho)q(ose)f(to)g(reset)g(this)g(c)o
-(haracter.)1773 938 y(V)l(ariable)-1861 b Fi(rl_dequote_func_t)22
-b(*)d Fh(rl)p 626 938 18 3 v 21 w(\014lename)p 855 938
-V 20 w(dequoting)p 1122 938 V 21 w(function)195 993 y
-Fu(A)c(p)q(oin)o(ter)g(to)f(a)h(function)g(that)g(will)h(remo)o(v)o(e)e
-(application-sp)q(eci\014)q(c)k(quoting)d(c)o(haracters)f(from)195
-1048 y(a)i(\014lename)h(b)q(efore)g(completion)g(is)g(attempted,)f(so)f
-(those)h(c)o(haracters)g(do)g(not)g(in)o(terfere)h(with)195
-1103 y(matc)o(hing)i(the)g(text)g(against)f(names)h(in)h(the)f
-(\014lesystem.)33 b(It)19 b(is)g(called)i(with)e Fk(text)p
-Fu(,)g(the)g(text)195 1158 y(of)i(the)g(w)o(ord)g(to)g(b)q(e)h
-(dequoted,)h(and)e Fk(quote)p 1009 1158 14 2 v 17 w(c)o(har)p
-Fu(,)h(whic)o(h)g(is)g(the)f(quoting)h(c)o(haracter)f(that)195
-1212 y(delimits)d(the)e(\014lename)i(\(usually)f(`)p
-Ft(')p Fu(')f(or)f(`)p Ft(")p Fu('\).)22 b(If)17 b Fk(quote)p
-1187 1212 V 16 w(c)o(har)i Fu(is)e(zero,)f(the)g(\014lename)i(w)o(as)d
-(not)195 1267 y(in)h(an)f(em)o(b)q(edded)i(string.)1773
-1388 y(V)l(ariable)-1861 b Fi(rl_linebuf_func_t)22 b(*)d
-Fh(rl)p 626 1388 18 3 v 21 w(c)n(har)p 754 1388 V 21
-w(is)p 813 1388 V 21 w(quoted)p 1005 1388 V 21 w(p)195
-1443 y Fu(A)f(p)q(oin)o(ter)h(to)f(a)g(function)h(to)f(call)i(that)d
-(determines)j(whether)e(or)g(not)g(a)g(sp)q(eci\014c)j(c)o(haracter)195
-1497 y(in)d(the)f(line)i(bu\013er)e(is)h(quoted,)g(according)f(to)g
-(whatev)o(er)f(quoting)i(mec)o(hanism)g(the)f(program)195
-1552 y(calling)d(Readline)g(uses.)19 b(The)13 b(function)g(is)g(called)
-h(with)f(t)o(w)o(o)e(argumen)o(ts:)17 b Fk(text)p Fu(,)12
-b(the)h(text)f(of)g(the)195 1607 y(line,)17 b(and)e Fk(index)p
-Fu(,)i(the)e(index)i(of)e(the)g(c)o(haracter)g(in)h(the)g(line.)22
-b(It)15 b(is)h(used)g(to)f(decide)i(whether)e(a)195 1662
-y(c)o(haracter)f(found)i(in)g Ft(rl_completer_word_break_)o(charact)o
-(ers)c Fu(should)k(b)q(e)g(used)g(to)e(break)195 1717
-y(w)o(ords)g(for)h(the)g(completer.)1773 1837 y(V)l(ariable)-1861
-b Fi(rl_compignore_func_t)22 b(*)d Fh(rl)p 704 1837 V
-22 w(ignore)p 881 1837 V 20 w(some)p 1028 1837 V 19 w(completions)p
-1344 1837 V 21 w(function)195 1892 y Fu(This)g(function,)i(if)e
-(de\014ned,)i(is)e(called)h(b)o(y)f(the)g(completer)g(when)h(real)f
-(\014lename)h(completion)195 1947 y(is)e(done,)f(after)f(all)i(the)f
-(matc)o(hing)g(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)25
-b(It)17 b(is)h(passed)f(a)g Ft(NULL)f Fu(ter-)195 2001
-y(minated)g(arra)o(y)e(of)h(matc)o(hes.)20 b(The)c(\014rst)f(elemen)o
-(t)h(\()p Ft(matches[0])p Fu(\))d(is)j(the)g(maximal)g(substring)195
-2056 y(common)e(to)g(all)h(matc)o(hes.)k(This)c(function)g(can)g
-(re-arrange)f(the)g(list)h(of)f(matc)o(hes)g(as)g(required,)195
-2111 y(but)h(eac)o(h)h(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f
-(m)o(ust)g(b)q(e)i(freed.)1773 2232 y(V)l(ariable)-1861
-b Fi(rl_icppfunc_t)21 b(*)e Fh(rl)p 521 2232 V 21 w(directory)p
-769 2232 V 22 w(completion)p 1065 2232 V 21 w(ho)r(ok)195
-2286 y Fu(This)k(function,)i(if)e(de\014ned,)j(is)d(allo)o(w)o(ed)g(to)
-f(mo)q(dify)h(the)g(directory)g(p)q(ortion)g(of)f(\014lenames)195
-2341 y(Readline)e(completes.)29 b(It)19 b(is)f(called)i(with)f(the)f
-(address)h(of)e(a)h(string)h(\(the)f(curren)o(t)g(directory)195
-2396 y(name\))g(as)g(an)h(argumen)o(t,)f(and)h(ma)o(y)f(mo)q(dify)h
-(that)f(string.)30 b(If)19 b(the)f(string)h(is)g(replaced)h(with)195
-2451 y(a)g(new)g(string,)h(the)f(old)g(v)m(alue)h(should)g(b)q(e)g
-(freed.)34 b(An)o(y)20 b(mo)q(di\014ed)i(directory)e(name)g(should)195
-2506 y(ha)o(v)o(e)14 b(a)g(trailing)i(slash.)k(The)15
-b(mo)q(di\014ed)h(v)m(alue)g(will)g(b)q(e)f(displa)o(y)o(ed)h(as)e
-(part)g(of)h(the)f(completion,)195 2560 y(replacing)h(the)g(directory)f
-(p)q(ortion)g(of)g(the)g(pathname)g(the)h(user)f(t)o(yp)q(ed.)20
-b(It)14 b(returns)g(an)g(in)o(teger)195 2615 y(that)i(should)h(b)q(e)g
-(non-zero)g(if)g(the)g(function)g(mo)q(di\014es)h(its)e(directory)h
-(argumen)o(t.)23 b(It)17 b(could)g(b)q(e)195 2670 y(used)f(to)e(expand)
-i(sym)o(b)q(olic)h(links)f(or)f(shell)i(v)m(ariables)f(in)g(pathnames.)
-p eop
-%%Page: 45 47
-45 46 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(45)1773 149 y(V)l(ariable)-1861 b Fi
-(rl_compdisp_func_t)22 b(*)d Fh(rl)p 652 149 18 3 v 21
-w(completion)p 947 149 V 21 w(displa)n(y)p 1141 149 V
-22 w(matc)n(hes)p 1366 149 V 21 w(ho)r(ok)195 204 y Fu(If)11
-b(non-zero,)h(then)f(this)h(is)f(the)g(address)g(of)g(a)g(function)g
-(to)g(call)h(when)f(completing)i(a)d(w)o(ord)h(w)o(ould)195
-259 y(normally)h(displa)o(y)g(the)f(list)h(of)f(p)q(ossible)h(matc)o
-(hes.)18 b(This)12 b(function)g(is)g(called)g(in)g(lieu)h(of)e
-(Readline)195 314 y(displa)o(ying)21 b(the)d(list.)32
-b(It)19 b(tak)o(es)f(three)h(argumen)o(ts:)26 b(\()p
-Ft(char)14 b(**)p Fk(matc)o(hes)p Fu(,)19 b Ft(int)f
-Fk(n)o(um)p 1688 314 14 2 v 17 w(matc)o(hes)p Fu(,)195
-369 y Ft(int)13 b Fk(max)p 368 369 V 16 w(length)p Fu(\))i(where)f
-Fk(matc)o(hes)h Fu(is)f(the)g(arra)o(y)f(of)g(matc)o(hing)h(strings,)g
-Fk(n)o(um)p 1578 369 V 16 w(matc)o(hes)i Fu(is)e(the)195
-423 y(n)o(um)o(b)q(er)h(of)f(strings)h(in)h(that)e(arra)o(y)l(,)f(and)i
-Fk(max)p 1012 423 V 16 w(length)h Fu(is)f(the)g(length)g(of)g(the)f
-(longest)h(string)g(in)195 478 y(that)e(arra)o(y)l(.)19
-b(Readline)c(pro)o(vides)g(a)e(con)o(v)o(enience)j(function,)f
-Ft(rl_display_match_list)p Fu(,)c(that)195 533 y(tak)o(es)17
-b(care)g(of)g(doing)h(the)f(displa)o(y)i(to)d(Readline's)j(output)e
-(stream.)26 b(That)16 b(function)j(ma)o(y)d(b)q(e)195
-588 y(called)h(from)d(this)i(ho)q(ok.)1773 704 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 704 18 3 v 21
-w(basic)p 580 704 V 21 w(w)n(ord)p 725 704 V 21 w(break)p
-886 704 V 20 w(c)n(haracters)195 759 y Fu(The)j(basic)h(list)g(of)f(c)o
-(haracters)f(that)g(signal)i(a)f(break)g(b)q(et)o(w)o(een)g(w)o(ords)g
-(for)f(the)h(completer)195 814 y(routine.)30 b(The)19
-b(default)g(v)m(alue)h(of)e(this)h(v)m(ariable)h(is)f(the)g(c)o
-(haracters)f(whic)o(h)h(break)g(w)o(ords)f(for)195 869
-y(completion)e(in)g(Bash:)k Ft(")15 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p
-Fu(.)1773 985 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f
-Fh(rl)p 436 985 V 21 w(basic)p 580 985 V 21 w(quote)p
-740 985 V 21 w(c)n(haracters)195 1040 y Fu(A)c(list)h(of)f(quote)g(c)o
-(haracters)f(whic)o(h)i(can)g(cause)f(a)g(w)o(ord)g(break.)1773
-1156 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1156 V 21 w(completer)p 705 1156 V 21 w(w)n(ord)p
-850 1156 V 20 w(break)p 1010 1156 V 20 w(c)n(haracters)195
-1211 y Fu(The)33 b(list)g(of)f(c)o(haracters)g(that)f(signal)j(a)e
-(break)g(b)q(et)o(w)o(een)h(w)o(ords)f(for)g Ft(rl_complete_)195
-1266 y(internal\(\))p Fu(.)18 b(The)e(default)g(list)g(is)f(the)h(v)m
-(alue)g(of)f Ft(rl_basic_word_break_chara)o(cters)p Fu(.)1773
-1382 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1382 V 21 w(completer)p 705 1382 V 21 w(quote)p 865
-1382 V 20 w(c)n(haracters)195 1437 y Fu(A)e(list)h(of)e(c)o(haracters)g
-(whic)o(h)i(can)f(b)q(e)g(used)h(to)e(quote)h(a)f(substring)h(of)g(the)
-g(line.)26 b(Completion)195 1492 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)
-g(substring,)h(and)f(within)i(the)e(substring)g Ft
-(rl_completer_word_break_)195 1547 y(characters)j Fu(are)h(treated)g
-(as)h(an)o(y)f(other)g(c)o(haracter,)g(unless)i(they)e(also)h(app)q
-(ear)g(within)h(this)195 1601 y(list.)1773 1718 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1718 V 21 w(\014lename)p
-665 1718 V 20 w(quote)p 824 1718 V 21 w(c)n(haracters)195
-1773 y Fu(A)e(list)h(of)e(c)o(haracters)g(that)g(cause)h(a)g
-(\014lename)h(to)e(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)h(when)f
-(they)195 1828 y(app)q(ear)e(in)h(a)f(completed)h(\014lename.)21
-b(The)16 b(default)g(is)f(the)h(n)o(ull)g(string.)1773
-1944 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1944 V 21 w(sp)r(ecial)p 623 1944 V 22 w(pre\014xes)195
-1999 y Fu(The)14 b(list)h(of)e(c)o(haracters)g(that)g(are)h(w)o(ord)f
-(break)h(c)o(haracters,)f(but)h(should)h(b)q(e)f(left)g(in)h
-Fk(text)f Fu(when)195 2054 y(it)f(is)f(passed)h(to)f(the)g(completion)h
-(function.)20 b(Programs)11 b(can)h(use)h(this)g(to)f(help)h(determine)
-h(what)195 2108 y(kind)i(of)e(completing)i(to)e(do.)19
-b(F)l(or)14 b(instance,)i(Bash)e(sets)h(this)g(v)m(ariable)h(to)e
-Ft(")p Fu($)p Ft(@")g Fu(so)g(that)g(it)h(can)195 2163
-y(complete)h(shell)h(v)m(ariables)f(and)g(hostnames.)1773
-2280 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2280
-V 21 w(completion)p 510 2280 V 21 w(query)p 673 2280
-V 21 w(items)195 2334 y Fu(Up)e(to)g(this)g(man)o(y)g(items)g(will)i(b)
-q(e)f(displa)o(y)o(ed)g(in)g(resp)q(onse)g(to)e(a)h(p)q
-(ossible-completions)j(call.)195 2389 y(After)14 b(that,)f(w)o(e)h(ask)
-g(the)h(user)f(if)h(she)f(is)h(sure)g(she)f(w)o(an)o(ts)f(to)h(see)h
-(them)f(all.)20 b(The)15 b(default)g(v)m(alue)195 2444
-y(is)h(100.)1773 2560 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 2560 V 21 w(completion)p 510 2560 V 21
-w(app)r(end)p 715 2560 V 19 w(c)n(haracter)195 2615 y
-Fu(When)d(a)f(single)i(completion)g(alternativ)o(e)f(matc)o(hes)f(at)g
-(the)h(end)g(of)f(the)h(command)f(line,)j(this)195 2670
-y(c)o(haracter)10 b(is)h(app)q(ended)i(to)d(the)g(inserted)i
-(completion)g(text.)18 b(The)11 b(default)g(is)g(a)g(space)g(c)o
-(haracter)p eop
-%%Page: 46 48
-46 47 bop 75 -58 a Fu(46)1299 b(GNU)15 b(Readline)h(Library)195
-149 y(\(`)e('\).)19 b(Setting)14 b(this)f(to)g(the)g(n)o(ull)i(c)o
-(haracter)e(\(`)p Ft(\\0)p Fu('\))e(prev)o(en)o(ts)i(an)o(ything)h(b)q
-(eing)h(app)q(ended)f(auto-)195 204 y(matically)l(.)21
-b(This)15 b(can)f(b)q(e)h(c)o(hanged)g(in)g(custom)f(completion)i
-(functions)f(to)f(pro)o(vide)h(the)f(\\most)195 259 y(sensible)i(w)o
-(ord)c(separator)h(c)o(haracter")f(according)i(to)f(an)h
-(application-sp)q(eci\014c)j(command)c(line)195 314 y(syn)o(tax)h(sp)q
-(eci\014cation.)1773 423 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 423 18 3 v 21 w(completion)p 510 423 V
-21 w(suppress)p 746 423 V 19 w(app)r(end)195 478 y Fu(If)e(non-zero,)g
-Fk(rl)p 476 478 14 2 v 17 w(completion)p 709 478 V 18
-w(app)q(end)p 871 478 V 17 w(c)o(haracter)i Fu(is)f(not)e(app)q(ended)i
-(to)e(matc)o(hes)g(at)h(the)f(end)195 533 y(of)c(the)h(command)g(line,)
-h(as)f(describ)q(ed)h(ab)q(o)o(v)o(e.)k(It)14 b(is)h(set)e(to)g(0)h(b)q
-(efore)g(an)o(y)f(application-sp)q(eci)q(\014c)195 588
-y(completion)j(function)g(is)g(called.)1773 697 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 697 18 3 v 21 w(completion)p
-510 697 V 21 w(mark)p 662 697 V 19 w(symlink)p 875 697
-V 21 w(dirs)195 752 y Fu(If)c(non-zero,)g(a)g(slash)g(will)i(b)q(e)e
-(app)q(ended)i(to)d(completed)i(\014lenames)g(that)e(are)g(sym)o(b)q
-(olic)j(links)195 807 y(to)11 b(directory)i(names,)f(sub)s(ject)g(to)f
-(the)i(v)m(alue)g(of)f(the)g(user-settable)g Fk(mark-directories)j
-Fu(v)m(ariable.)195 862 y(This)i(v)m(ariable)h(exists)f(so)g(that)e
-(application)k(completion)f(functions)f(can)g(o)o(v)o(erride)g(the)f
-(user's)195 917 y(global)f(preference)g(\(set)e(via)h(the)g
-Fk(mark-symlink)o(ed-directories)k Fu(Readline)e(v)m(ariable\))f(if)f
-(appro-)195 971 y(priate.)20 b(This)15 b(v)m(ariable)g(is)g(set)f(to)f
-(the)i(user's)e(preference)j(b)q(efore)e(an)o(y)g(application)i
-(completion)195 1026 y(function)j(is)g(called,)h(so)e(unless)h(that)f
-(function)h(mo)q(di\014es)g(the)f(v)m(alue,)i(the)e(user's)g
-(preferences)195 1081 y(are)d(honored.)1773 1191 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1191 V 21 w(ignore)p 391 1191
-V 20 w(completion)p 685 1191 V 21 w(duplicates)195 1245
-y Fu(If)15 b(non-zero,)h(then)f(duplicates)i(in)f(the)f(matc)o(hes)g
-(are)g(remo)o(v)o(ed.)k(The)d(default)g(is)f(1.)1773
-1355 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1355
-V 21 w(\014lename)p 444 1355 V 20 w(completion)p 738
-1355 V 21 w(desired)195 1410 y Fu(Non-zero)c(means)g(that)f(the)h
-(results)g(of)g(the)g(matc)o(hes)f(are)h(to)f(b)q(e)i(treated)e(as)g
-(\014lenames.)23 b(This)195 1465 y(is)14 b Fl(always)j
-Fu(zero)c(on)g(en)o(try)l(,)g(and)h(can)f(only)h(b)q(e)g(c)o(hanged)f
-(within)i(a)e(completion)h(en)o(try)f(generator)195 1519
-y(function.)38 b(If)21 b(it)g(is)g(set)g(to)f(a)g(non-zero)h(v)m(alue,)
-i(directory)e(names)g(ha)o(v)o(e)g(a)f(slash)h(app)q(ended)195
-1574 y(and)d(Readline)h(attempts)d(to)h(quote)g(completed)i
-(\014lenames)f(if)g(they)g(con)o(tain)g(an)o(y)f(c)o(haracters)195
-1629 y(in)f Ft(rl_filename_quote_character)o(s)d Fu(and)i
-Ft(rl_filename_quoting_desired)d Fu(is)k(set)f(to)f(a)195
-1684 y(non-zero)h(v)m(alue.)1773 1793 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1793 V 21 w(\014lename)p 444
-1793 V 20 w(quoting)p 653 1793 V 21 w(desired)195 1848
-y Fu(Non-zero)14 b(means)g(that)f(the)i(results)f(of)g(the)g(matc)o
-(hes)f(are)h(to)f(b)q(e)i(quoted)f(using)h(double)g(quotes)195
-1903 y(\(or)c(an)h(application-sp)q(eci\014)q(c)j(quoting)d(mec)o
-(hanism\))g(if)h(the)f(completed)h(\014lename)g(con)o(tains)f(an)o(y)
-195 1958 y(c)o(haracters)i(in)i Ft(rl_filename_quote_chars)p
-Fu(.)h(This)f(is)f Fl(always)k Fu(non-zero)d(on)f(en)o(try)l(,)f(and)i
-(can)195 2012 y(only)c(b)q(e)g(c)o(hanged)g(within)h(a)f(completion)g
-(en)o(try)g(generator)e(function.)20 b(The)12 b(quoting)g(is)g
-(e\013ected)195 2067 y(via)j(a)g(call)i(to)d(the)i(function)g(p)q(oin)o
-(ted)g(to)e(b)o(y)h Ft(rl_filename_quoting_function)p
-Fu(.)1773 2177 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
-215 2177 V 21 w(attempted)p 495 2177 V 20 w(completion)p
-789 2177 V 21 w(o)n(v)n(er)195 2232 y Fu(If)47 b(an)g(application-sp)q
-(eci\014)q(c)j(completion)e(function)g(assigned)f(to)g
-Ft(rl_attempted_)195 2286 y(completion_function)24 b
-Fu(sets)i(this)h(v)m(ariable)h(to)e(a)g(non-zero)h(v)m(alue,)j
-(Readline)e(will)g(not)195 2341 y(p)q(erform)15 b(its)g(default)g
-(\014lename)h(completion)g(ev)o(en)f(if)g(the)g(application's)h
-(completion)g(function)195 2396 y(returns)f(no)g(matc)o(hes.)20
-b(It)15 b(should)h(b)q(e)g(set)f(only)h(b)o(y)f(an)g(application's)h
-(completion)h(function.)1773 2506 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(completion)p 510
-2506 V 21 w(t)n(yp)r(e)195 2560 y Fu(Set)e(to)e(a)i(c)o(haracter)f
-(describing)i(the)e(t)o(yp)q(e)h(of)f(completion)i(Readline)g(is)f
-(curren)o(tly)g(attempt-)195 2615 y(ing;)g(see)f(the)f(description)i
-(of)f Ft(rl_complete_internal\(\))c Fu(\(see)k(Section)h(2.6.2)d
-([Completion)195 2670 y(F)l(unctions],)g(page)g(42\))g(for)f(the)h
-(list)h(of)f(c)o(haracters.)p eop
-%%Page: 47 49
-47 48 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(47)1773 149 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(inhibit)p 399 149 V 23
-w(completion)195 204 y Fu(If)14 b(this)h(v)m(ariable)g(is)g(non-zero,)f
-(completion)i(is)e(inhibited.)22 b(The)15 b(completion)g(c)o(haracter)e
-(will)j(b)q(e)195 259 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to)
-e Ft(self-insert)p Fu(.)75 371 y Fj(2.6.4)30 b(A)21 b(Short)f
-(Completion)g(Example)137 467 y Fu(Here)11 b(is)f(a)g(small)h
-(application)h(demonstrating)e(the)g(use)h(of)e(the)i(GNU)f(Readline)h
-(library)l(.)19 b(It)11 b(is)f(called)75 522 y Ft(fileman)p
-Fu(,)17 b(and)h(the)g(source)g(co)q(de)g(resides)h(in)f(`)p
-Ft(examples/fileman.c)p Fu('.)25 b(This)18 b(sample)g(application)75
-577 y(pro)o(vides)c(completion)g(of)e(command)h(names,)g(line)i
-(editing)g(features,)d(and)i(access)f(to)f(the)h(history)h(list.)p
+%%Page: 52 56
+52 55 bop 150 -116 a Ft(52)2600 b(GNU)31 b(Readline)e(Library)390
+299 y Fd({)468 386 y(static)41 b(int)f(list_index,)i(len;)468
+473 y(char)f(*name;)468 648 y(/*)f(If)g(this)g(is)g(a)f(new)h(word)g
+(to)g(complete,)h(initialize)h(now.)79 b(This)586 735
+y(includes)41 b(saving)g(the)f(length)g(of)g(TEXT)g(for)g(efficiency,)i
+(and)586 822 y(initializing)g(the)e(index)g(variable)h(to)f(0.)g(*/)468
+909 y(if)g(\(!state\))547 996 y({)625 1083 y(list_index)i(=)d(0;)625
+1171 y(len)h(=)g(strlen)g(\(text\);)547 1258 y(})468
+1432 y(/*)g(Return)h(the)f(next)g(name)g(which)g(partially)i(matches)e
+(from)h(the)586 1519 y(command)g(list.)f(*/)468 1606
+y(while)h(\(name)f(=)g(commands[list_index].name\))547
+1694 y({)625 1781 y(list_index++;)625 1955 y(if)g(\(strncmp)h(\(name,)g
+(text,)f(len\))g(==)g(0\))704 2042 y(return)g(\(dupstr\(name\)\);)547
+2130 y(})468 2304 y(/*)g(If)g(no)f(names)i(matched,)g(then)f(return)h
+(NULL.)f(*/)468 2391 y(return)h(\(\(char)g(*\)NULL\);)390
+2478 y(})390 2653 y(/*)f(******************************)q(*****)q(****)
+q(*****)q(****)q(****)q(*****)q(****)q(***)45 b(*/)390
+2740 y(/*)2589 b(*/)390 2827 y(/*)903 b(FileMan)41 b(Commands)1060
+b(*/)390 2914 y(/*)2589 b(*/)390 3001 y(/*)40 b
+(******************************)q(*****)q(****)q(*****)q(****)q(****)q
+(*****)q(****)q(***)45 b(*/)390 3176 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 3263 y(commands.)h(*/)390 3350 y(static)g(char)f
+(syscom[1024];)390 3524 y(/*)g(List)g(the)g(file\(s\))h(named)f(in)g
+(arg.)g(*/)390 3611 y(com_list)h(\(arg\))586 3699 y(char)f(*arg;)390
+3786 y({)468 3873 y(if)g(\(!arg\))547 3960 y(arg)g(=)f("";)468
+4134 y(sprintf)i(\(syscom,)g("ls)f(-FClg)h(\045s",)f(arg\);)468
+4222 y(return)h(\(system)g(\(syscom\)\);)390 4309 y(})390
+4483 y(com_view)g(\(arg\))586 4570 y(char)f(*arg;)390
+4658 y({)468 4745 y(if)g(\(!valid_argument)j(\("view",)e(arg\)\))547
+4832 y(return)f(1;)468 5006 y(sprintf)h(\(syscom,)g("more)g(\045s",)f
+(arg\);)468 5093 y(return)h(\(system)g(\(syscom\)\);)390
+5181 y(})p eop
+%%Page: 53 57
+53 56 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(53)390 299 y Fd(com_rename)41
+b(\(arg\))586 386 y(char)f(*arg;)390 473 y({)468 560
+y(too_dangerous)j(\("rename"\);)468 648 y(return)e(\(1\);)390
+735 y(})390 909 y(com_stat)g(\(arg\))586 996 y(char)f(*arg;)390
+1083 y({)468 1171 y(struct)h(stat)f(finfo;)468 1345 y(if)g
+(\(!valid_argument)j(\("stat",)e(arg\)\))547 1432 y(return)f(\(1\);)468
+1606 y(if)g(\(stat)g(\(arg,)h(&finfo\))g(==)e(-1\))547
+1694 y({)625 1781 y(perror)i(\(arg\);)625 1868 y(return)g(\(1\);)547
+1955 y(})468 2130 y(printf)g(\("Statistics)h(for)e(`\045s':\\n",)h
+(arg\);)468 2304 y(printf)g(\("\045s)f(has)g(\045d)g(link\045s,)h(and)f
+(is)f(\045d)h(byte\045s)g(in)g(length.\\n",)i(arg,)782
+2391 y(finfo.st_nlink,)782 2478 y(\(finfo.st_nlink)h(==)d(1\))f(?)h("")
+f(:)h("s",)782 2565 y(finfo.st_size,)782 2653 y(\(finfo.st_size)j(==)c
+(1\))h(?)g("")f(:)h("s"\);)468 2740 y(printf)h(\("Inode)g(Last)f
+(Change)h(at:)f(\045s",)g(ctime)g(\(&finfo.st_ctime\)\);)468
+2827 y(printf)h(\(")236 b(Last)40 b(access)h(at:)f(\045s",)g(ctime)g
+(\(&finfo.st_atime\)\);)468 2914 y(printf)h(\(")157 b(Last)41
+b(modified)g(at:)f(\045s",)g(ctime)g(\(&finfo.st_mtime\)\);)468
+3001 y(return)h(\(0\);)390 3088 y(})390 3263 y(com_delete)g(\(arg\))586
+3350 y(char)f(*arg;)390 3437 y({)468 3524 y(too_dangerous)j
+(\("delete"\);)468 3611 y(return)e(\(1\);)390 3699 y(})390
+3873 y(/*)f(Print)g(out)g(help)g(for)g(ARG,)g(or)g(for)g(all)g(of)f
+(the)h(commands)h(if)f(ARG)g(is)508 3960 y(not)g(present.)h(*/)390
+4047 y(com_help)g(\(arg\))586 4134 y(char)f(*arg;)390
+4222 y({)468 4309 y(register)h(int)f(i;)468 4396 y(int)g(printed)h(=)f
+(0;)468 4570 y(for)g(\(i)g(=)f(0;)h(commands[i].name;)j(i++\))547
+4658 y({)625 4745 y(if)d(\(!*arg)h(||)e(\(strcmp)i(\(arg,)g
+(commands[i].name\))i(==)c(0\)\))704 4832 y({)782 4919
+y(printf)i(\("\045s\\t\\t\045s.\\n",)i(commands[i].name,)g
+(commands[i].doc\);)782 5006 y(printed++;)704 5093 y(})547
+5181 y(})p eop
+%%Page: 54 58
+54 57 bop 150 -116 a Ft(54)2600 b(GNU)31 b(Readline)e(Library)468
+299 y Fd(if)40 b(\(!printed\))547 386 y({)625 473 y(printf)h(\("No)f
+(commands)h(match)g(`\045s'.)79 b(Possibilties)42 b(are:\\n",)f(arg\);)
+625 648 y(for)f(\(i)g(=)f(0;)h(commands[i].name;)j(i++\))704
+735 y({)782 822 y(/*)d(Print)g(in)g(six)g(columns.)h(*/)782
+909 y(if)f(\(printed)h(==)f(6\))861 996 y({)939 1083
+y(printed)h(=)e(0;)939 1171 y(printf)i(\("\\n"\);)861
+1258 y(})782 1432 y(printf)g(\("\045s\\t",)g(commands[i].name\);)782
+1519 y(printed++;)704 1606 y(})625 1781 y(if)f(\(printed\))704
+1868 y(printf)g(\("\\n"\);)547 1955 y(})468 2042 y(return)h(\(0\);)390
+2130 y(})390 2304 y(/*)f(Change)g(to)g(the)g(directory)h(ARG.)f(*/)390
+2391 y(com_cd)h(\(arg\))586 2478 y(char)f(*arg;)390 2565
+y({)468 2653 y(if)g(\(chdir)h(\(arg\))f(==)g(-1\))547
+2740 y({)625 2827 y(perror)h(\(arg\);)625 2914 y(return)g(1;)547
+3001 y(})468 3176 y(com_pwd)g(\(""\);)468 3263 y(return)g(\(0\);)390
+3350 y(})390 3524 y(/*)f(Print)g(out)g(the)g(current)h(working)g
+(directory.)g(*/)390 3611 y(com_pwd)g(\(ignore\))586
+3699 y(char)f(*ignore;)390 3786 y({)468 3873 y(char)h(dir[1024],)g(*s;)
+468 4047 y(s)f(=)f(getcwd)i(\(dir,)f(sizeof\(dir\))i(-)e(1\);)468
+4134 y(if)g(\(s)g(==)f(0\))547 4222 y({)625 4309 y(printf)i(\("Error)g
+(getting)g(pwd:)f(\045s\\n",)g(dir\);)625 4396 y(return)h(1;)547
+4483 y(})468 4658 y(printf)g(\("Current)g(directory)h(is)d(\045s\\n",)i
+(dir\);)468 4745 y(return)g(0;)390 4832 y(})390 5006
+y(/*)f(The)g(user)g(wishes)g(to)g(quit)g(using)h(this)f(program.)80
+b(Just)40 b(set)g(DONE)508 5093 y(non-zero.)h(*/)390
+5181 y(com_quit)g(\(arg\))586 5268 y(char)f(*arg;)p eop
+%%Page: 55 59
+55 58 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29
+b(with)g(GNU)i(Readline)1681 b(55)390 299 y Fd({)468
+386 y(done)41 b(=)e(1;)468 473 y(return)i(\(0\);)390
+560 y(})390 735 y(/*)f(Function)h(which)f(tells)g(you)g(that)h(you)e
+(can't)i(do)e(this.)i(*/)390 822 y(too_dangerous)h(\(caller\))586
+909 y(char)e(*caller;)390 996 y({)468 1083 y(fprintf)h(\(stderr,)821
+1171 y("\045s:)g(Too)f(dangerous)h(for)f(me)f(to)h(distribute.\\n")821
+1258 y(caller\);)468 1345 y(fprintf)h(\(stderr,)g("Write)g(it)f
+(yourself.\\n"\);)390 1432 y(})390 1606 y(/*)g(Return)g(non-zero)h(if)f
+(ARG)g(is)g(a)f(valid)h(argument)h(for)f(CALLER,)508
+1694 y(else)g(print)g(an)g(error)g(message)h(and)f(return)h(zero.)f(*/)
+390 1781 y(int)390 1868 y(valid_argument)i(\(caller,)f(arg\))586
+1955 y(char)f(*caller,)h(*arg;)390 2042 y({)468 2130
+y(if)f(\(!arg)g(||)g(!*arg\))547 2217 y({)625 2304 y(fprintf)h
+(\(stderr,)g("\045s:)f(Argument)h(required.\\n",)i(caller\);)625
+2391 y(return)e(\(0\);)547 2478 y(})468 2653 y(return)g(\(1\);)390
+2740 y(})p eop
+%%Page: 56 60
+56 59 bop 150 -116 a Ft(56)2600 b(GNU)31 b(Readline)e(Library)p
eop
-%%Page: 48 50
-48 49 bop 75 -58 a Fu(48)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(/*)24 b(fileman.c)e(--)i(A)g(tiny)f(application)f(which)h
-(demonstrates)g(how)g(to)h(use)f(the)267 201 y(GNU)g(Readline)g
-(library.)46 b(This)24 b(application)e(interactively)g(allows)h(users)
-267 253 y(to)g(manipulate)g(files)g(and)g(their)g(modes.)h(*/)195
-357 y(#include)f(<stdio.h>)195 409 y(#include)g(<sys/types.h>)195
-461 y(#include)g(<sys/file.h>)195 513 y(#include)g(<sys/stat.h>)195
-565 y(#include)g(<sys/errno.h>)195 668 y(#include)g
-(<readline/readline.h>)195 720 y(#include)g(<readline/history.h>)195
-824 y(extern)g(char)g(*xmalloc)g(\(\);)195 928 y(/*)h(The)f(names)g(of)
-h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)195
-980 y(int)h(com_list)g(__P\(\(char)g(*\)\);)195 1032
-y(int)g(com_view)g(__P\(\(char)g(*\)\);)195 1083 y(int)g(com_rename)g
-(__P\(\(char)g(*\)\);)195 1135 y(int)g(com_stat)g(__P\(\(char)g(*\)\);)
-195 1187 y(int)g(com_pwd)g(__P\(\(char)g(*\)\);)195 1239
-y(int)g(com_delete)g(__P\(\(char)g(*\)\);)195 1291 y(int)g(com_help)g
-(__P\(\(char)g(*\)\);)195 1343 y(int)g(com_cd)g(__P\(\(char)g(*\)\);)
-195 1395 y(int)g(com_quit)g(__P\(\(char)g(*\)\);)195
-1499 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f
-(commands)g(this)g(program)267 1550 y(can)g(understand.)f(*/)195
-1654 y(typedef)h(struct)g({)243 1706 y(char)g(*name;)g(/*)h(User)f
-(printable)g(name)g(of)h(the)f(function.)g(*/)243 1758
-y(rl_icpfunc_t)f(*func;)h(/*)h(Function)e(to)i(call)f(to)h(do)f(the)h
-(job.)f(*/)243 1810 y(char)g(*doc;)g(/*)h(Documentation)e(for)h(this)h
-(function.)46 b(*/)195 1862 y(})24 b(COMMAND;)195 1966
-y(COMMAND)f(commands[])f(=)i({)243 2017 y({)f("cd",)h(com_cd,)f
-("Change)f(to)i(directory)f(DIR")g(},)243 2069 y({)g("delete",)g
-(com_delete,)f("Delete)h(FILE")h(},)243 2121 y({)f("help",)g(com_help,)
-g("Display)g(this)g(text")g(},)243 2173 y({)g("?",)h(com_help,)e
-("Synonym)h(for)h(`help'")f(},)243 2225 y({)g("list",)g(com_list,)g
-("List)g(files)g(in)h(DIR")f(},)243 2277 y({)g("ls",)h(com_list,)e
-("Synonym)h(for)g(`list'")g(},)243 2329 y({)g("pwd",)g(com_pwd,)g
-("Print)g(the)h(current)f(working)g(directory")f(},)243
-2381 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)243
-2433 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g
-(},)243 2484 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g
-(on)h(FILE")f(},)243 2536 y({)g("view",)g(com_view,)g("View)g(the)h
-(contents)e(of)i(FILE")f(},)243 2588 y({)g(\(char)h(*\)NULL,)f
-(\(rl_icpfunc_t)f(*\)NULL,)h(\(char)g(*\)NULL)g(})195
-2640 y(};)p eop
-%%Page: 49 51
-49 50 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(49)195 201 y Ft(/*)24 b(Forward)e(declarations.)h(*/)
-195 253 y(char)g(*stripwhite)g(\(\);)195 305 y(COMMAND)g(*find_command)
-f(\(\);)195 409 y(/*)i(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f
-(from)g(argv[0].)g(*/)195 461 y(char)g(*progname;)195
-565 y(/*)h(When)f(non-zero,)g(this)g(means)g(the)g(user)h(is)f(done)h
-(using)f(this)g(program.)g(*/)195 616 y(int)g(done;)195
-720 y(char)g(*)195 772 y(dupstr)g(\(s\))314 824 y(int)h(s;)195
-876 y({)243 928 y(char)f(*r;)243 1032 y(r)g(=)h(xmalloc)f(\(strlen)g
-(\(s\))g(+)h(1\);)243 1083 y(strcpy)f(\(r,)g(s\);)243
-1135 y(return)g(\(r\);)195 1187 y(})195 1291 y(main)g(\(argc,)g(argv\))
-314 1343 y(int)h(argc;)314 1395 y(char)g(**argv;)195
-1447 y({)243 1499 y(char)f(*line,)g(*s;)243 1602 y(progname)f(=)i
-(argv[0];)243 1706 y(initialize_readline)d(\(\);)i(/*)h(Bind)f(our)h
-(completer.)e(*/)243 1810 y(/*)h(Loop)h(reading)f(and)g(executing)g
-(lines)g(until)g(the)g(user)h(quits.)f(*/)243 1862 y(for)g(\()h(;)g
-(done)f(==)h(0;)f(\))290 1914 y({)338 1966 y(line)g(=)h(readline)f
-(\("FileMan:)f("\);)338 2069 y(if)i(\(!line\))386 2121
-y(break;)338 2225 y(/*)g(Remove)f(leading)g(and)g(trailing)g
-(whitespace)f(from)i(the)f(line.)410 2277 y(Then,)g(if)h(there)f(is)g
-(anything)g(left,)g(add)h(it)f(to)h(the)f(history)g(list)410
-2329 y(and)g(execute)g(it.)h(*/)338 2381 y(s)g(=)g(stripwhite)e
-(\(line\);)338 2484 y(if)i(\(*s\))386 2536 y({)434 2588
-y(add_history)e(\(s\);)434 2640 y(execute_line)g(\(s\);)p
+%%Page: 57 61
+57 60 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(57)150 299 y Fp(App)t(endix)53 b(A)40 b(Cop)l(ying)52
+b(This)j(Man)l(ual)150 690 y Fr(A.1)67 b(GNU)45 b(F)-11
+b(ree)45 b(Do)t(cumen)l(tation)h(License)1396 909 y Ft(V)-8
+b(ersion)30 b(1.2,)i(No)m(v)m(em)m(b)s(er)g(2002)390
+1052 y(Cop)m(yrigh)m(t)842 1049 y(c)817 1052 y Fq(\015)e
+Ft(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)31 b(Inc.)390 1161 y(59)g(T)-8 b(emple)30
+b(Place,)h(Suite)e(330,)j(Boston,)g(MA)61 b(02111-1307,)35
+b(USA)390 1380 y(Ev)m(ery)m(one)c(is)f(p)s(ermitted)f(to)i(cop)m(y)g
+(and)f(distribute)e(v)m(erbatim)i(copies)390 1490 y(of)h(this)e
+(license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m
+(w)m(ed.)199 1632 y(0.)61 b(PREAMBLE)330 1770 y(The)37
+b(purp)s(ose)e(of)i(this)f(License)h(is)f(to)i(mak)m(e)g(a)g(man)m
+(ual,)g(textb)s(o)s(ok,)i(or)d(other)g(functional)f(and)330
+1880 y(useful)28 b(do)s(cumen)m(t)i Fi(free)36 b Ft(in)28
+b(the)j(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j
+(the)e(e\013ectiv)m(e)i(freedom)330 1990 y(to)g(cop)m(y)g(and)f
+(redistribute)e(it,)i(with)g(or)g(without)f(mo)s(difying)f(it,)j
+(either)f(commercially)f(or)h(non-)330 2099 y(commercially)-8
+b(.)53 b(Secondarily)-8 b(,)34 b(this)g(License)g(preserv)m(es)h(for)f
+(the)h(author)f(and)g(publisher)d(a)k(w)m(a)m(y)330 2209
+y(to)i(get)g(credit)f(for)g(their)f(w)m(ork,)j(while)c(not)i(b)s(eing)f
+(considered)g(resp)s(onsible)e(for)j(mo)s(di\014cations)330
+2318 y(made)30 b(b)m(y)h(others.)330 2457 y(This)21 b(License)i(is)f(a)
+i(kind)d(of)j(\\cop)m(yleft",)i(whic)m(h)c(means)h(that)h(deriv)-5
+b(ativ)m(e)22 b(w)m(orks)h(of)h(the)f(do)s(cumen)m(t)330
+2566 y(m)m(ust)34 b(themselv)m(es)g(b)s(e)f(free)h(in)f(the)h(same)g
+(sense.)51 b(It)34 b(complemen)m(ts)g(the)g(GNU)g(General)g(Public)330
+2676 y(License,)c(whic)m(h)f(is)h(a)g(cop)m(yleft)h(license)f(designed)
+f(for)h(free)h(soft)m(w)m(are.)330 2814 y(W)-8 b(e)31
+b(ha)m(v)m(e)f(designed)f(this)f(License)h(in)f(order)h(to)i(use)e(it)g
+(for)g(man)m(uals)g(for)g(free)h(soft)m(w)m(are,)h(b)s(ecause)330
+2924 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:)
+64 b(a)42 b(free)h(program)f(should)e(come)j(with)e(man)m(uals)330
+3033 y(pro)m(viding)27 b(the)i(same)g(freedoms)f(that)i(the)f(soft)m(w)
+m(are)h(do)s(es.)40 b(But)29 b(this)e(License)i(is)f(not)h(limited)d
+(to)330 3143 y(soft)m(w)m(are)32 b(man)m(uals;)e(it)g(can)h(b)s(e)f
+(used)g(for)g(an)m(y)h(textual)g(w)m(ork,)g(regardless)f(of)h(sub)5
+b(ject)30 b(matter)i(or)330 3252 y(whether)f(it)g(is)f(published)e(as)k
+(a)f(prin)m(ted)f(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)g
+(License)g(principally)c(for)330 3362 y(w)m(orks)j(whose)h(purp)s(ose)d
+(is)i(instruction)e(or)i(reference.)199 3500 y(1.)61
+b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3639 y(This)38
+b(License)i(applies)e(to)i(an)m(y)h(man)m(ual)e(or)h(other)g(w)m(ork,)i
+(in)d(an)m(y)h(medium,)h(that)f(con)m(tains)h(a)330 3748
+y(notice)h(placed)f(b)m(y)g(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying)
+h(it)g(can)h(b)s(e)f(distributed)d(under)i(the)i(terms)330
+3858 y(of)c(this)e(License.)61 b(Suc)m(h)37 b(a)h(notice)g(gran)m(ts)g
+(a)g(w)m(orld-wide,)f(ro)m(y)m(alt)m(y-free)j(license,)e(unlimited)c
+(in)330 3967 y(duration,)48 b(to)e(use)f(that)g(w)m(ork)h(under)d(the)j
+(conditions)d(stated)j(herein.)84 b(The)45 b(\\Do)s(cumen)m(t",)330
+4077 y(b)s(elo)m(w,)28 b(refers)g(to)h(an)m(y)g(suc)m(h)f(man)m(ual)g
+(or)g(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)e(is)h
+(a)i(licensee,)g(and)330 4187 y(is)24 b(addressed)g(as)h(\\y)m(ou".)40
+b(Y)-8 b(ou)26 b(accept)g(the)f(license)f(if)g(y)m(ou)i(cop)m(y)-8
+b(,)27 b(mo)s(dify)c(or)i(distribute)e(the)i(w)m(ork)330
+4296 y(in)k(a)i(w)m(a)m(y)g(requiring)d(p)s(ermission)f(under)i(cop)m
+(yrigh)m(t)i(la)m(w.)330 4435 y(A)j(\\Mo)s(di\014ed)e(V)-8
+b(ersion")34 b(of)g(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f
+(con)m(taining)h(the)g(Do)s(cumen)m(t)g(or)330 4544 y(a)k(p)s(ortion)e
+(of)i(it,)h(either)e(copied)g(v)m(erbatim,)i(or)e(with)g(mo)s
+(di\014cations)e(and/or)j(translated)f(in)m(to)330 4654
+y(another)31 b(language.)330 4792 y(A)26 b(\\Secondary)g(Section")g(is)
+f(a)i(named)e(app)s(endix)e(or)j(a)h(fron)m(t-matter)g(section)f(of)g
+(the)g(Do)s(cumen)m(t)330 4902 y(that)c(deals)f(exclusiv)m(ely)f(with)g
+(the)h(relationship)e(of)i(the)h(publishers)17 b(or)k(authors)g(of)h
+(the)f(Do)s(cumen)m(t)330 5011 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m
+(v)m(erall)e(sub)5 b(ject)37 b(\(or)h(to)g(related)f(matters\))h(and)f
+(con)m(tains)g(nothing)f(that)330 5121 y(could)j(fall)g(directly)g
+(within)f(that)j(o)m(v)m(erall)g(sub)5 b(ject.)70 b(\(Th)m(us,)42
+b(if)d(the)i(Do)s(cumen)m(t)g(is)e(in)g(part)i(a)330
+5230 y(textb)s(o)s(ok)24 b(of)g(mathematics,)i(a)e(Secondary)f(Section)
+g(ma)m(y)h(not)g(explain)e(an)m(y)i(mathematics.\))39
+b(The)330 5340 y(relationship)25 b(could)h(b)s(e)h(a)g(matter)i(of)e
+(historical)f(connection)h(with)f(the)i(sub)5 b(ject)27
+b(or)g(with)f(related)p eop
+%%Page: 58 62
+58 61 bop 150 -116 a Ft(58)2600 b(GNU)31 b(Readline)e(Library)330
+299 y(matters,)38 b(or)d(of)h(legal,)g(commercial,)h(philosophical,)d
+(ethical)h(or)g(p)s(olitical)e(p)s(osition)h(regarding)330
+408 y(them.)330 549 y(The)25 b(\\In)m(v)-5 b(arian)m(t)26
+b(Sections")g(are)g(certain)f(Secondary)h(Sections)f(whose)g(titles)g
+(are)h(designated,)h(as)330 659 y(b)s(eing)e(those)i(of)g(In)m(v)-5
+b(arian)m(t)26 b(Sections,)i(in)d(the)i(notice)g(that)g(sa)m(ys)g(that)
+g(the)g(Do)s(cumen)m(t)g(is)f(released)330 769 y(under)g(this)h
+(License.)39 b(If)27 b(a)h(section)g(do)s(es)g(not)f(\014t)h(the)g(ab)s
+(o)m(v)m(e)h(de\014nition)c(of)j(Secondary)f(then)h(it)f(is)330
+878 y(not)32 b(allo)m(w)m(ed)g(to)g(b)s(e)g(designated)f(as)h(In)m(v)-5
+b(arian)m(t.)45 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)h(zero)
+f(In)m(v)-5 b(arian)m(t)330 988 y(Sections.)38 b(If)25
+b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)e(an)m(y)i(In)m(v)
+-5 b(arian)m(t)24 b(Sections)h(then)f(there)h(are)g(none.)330
+1129 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)f
+(short)h(passages)g(of)g(text)g(that)h(are)f(listed,)g(as)f(F)-8
+b(ron)m(t-Co)m(v)m(er)330 1238 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m
+(er)j(T)-8 b(exts,)27 b(in)c(the)i(notice)h(that)f(sa)m(ys)h(that)g
+(the)f(Do)s(cumen)m(t)h(is)e(released)g(under)330 1348
+y(this)h(License.)39 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29
+b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a)
+g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1457
+y(b)s(e)k(at)h(most)g(25)g(w)m(ords.)330 1598 y(A)36
+b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h
+(means)g(a)g(mac)m(hine-readable)f(cop)m(y)-8 b(,)38
+b(represen)m(ted)330 1708 y(in)c(a)i(format)g(whose)g(sp)s
+(eci\014cation)e(is)h(a)m(v)-5 b(ailable)35 b(to)i(the)f(general)f
+(public,)g(that)h(is)f(suitable)f(for)330 1817 y(revising)c(the)i(do)s
+(cumen)m(t)f(straigh)m(tforw)m(ardly)g(with)f(generic)i(text)h(editors)
+e(or)g(\(for)h(images)g(com-)330 1927 y(p)s(osed)23 b(of)h(pixels\))e
+(generic)i(pain)m(t)f(programs)h(or)f(\(for)h(dra)m(wings\))f(some)h
+(widely)e(a)m(v)-5 b(ailable)23 b(dra)m(wing)330 2037
+y(editor,)29 b(and)g(that)g(is)f(suitable)g(for)h(input)e(to)j(text)g
+(formatters)f(or)g(for)g(automatic)h(translation)e(to)330
+2146 y(a)f(v)-5 b(ariet)m(y)27 b(of)g(formats)g(suitable)f(for)g(input)
+f(to)j(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)f(an)h
+(otherwise)330 2256 y(T)-8 b(ransparen)m(t)37 b(\014le)g(format)h
+(whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f
+(arranged)g(to)330 2365 y(th)m(w)m(art)27 b(or)g(discourage)f
+(subsequen)m(t)g(mo)s(di\014cation)f(b)m(y)i(readers)f(is)f(not)i(T)-8
+b(ransparen)m(t.)39 b(An)27 b(image)330 2475 y(format)35
+b(is)e(not)i(T)-8 b(ransparen)m(t)34 b(if)f(used)h(for)g(an)m(y)g
+(substan)m(tial)f(amoun)m(t)i(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g
+(is)330 2585 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)e(called)h
+(\\Opaque".)330 2725 y(Examples)52 b(of)h(suitable)f(formats)h(for)g(T)
+-8 b(ransparen)m(t)53 b(copies)g(include)e(plain)g Fm(asci)r(i)i
+Ft(without)330 2835 y(markup,)41 b(T)-8 b(exinfo)39 b(input)f(format,)k
+(LaT)1775 2855 y(E)1826 2835 y(X)d(input)f(format,)43
+b Fm(sgml)c Ft(or)g Fm(xml)g Ft(using)f(a)i(publicly)330
+2945 y(a)m(v)-5 b(ailable)31 b Fm(dtd)p Ft(,)g(and)g
+(standard-conforming)f(simple)g Fm(html)p Ft(,)h(P)m(ostScript)g(or)g
+Fm(pdf)g Ft(designed)f(for)330 3054 y(h)m(uman)37 b(mo)s(di\014cation.)
+63 b(Examples)37 b(of)h(transparen)m(t)g(image)h(formats)f(include)e
+Fm(png)p Ft(,)k Fm(x)n(cf)e Ft(and)330 3164 y Fm(jpg)p
+Ft(.)63 b(Opaque)38 b(formats)g(include)e(proprietary)h(formats)h(that)
+h(can)f(b)s(e)g(read)g(and)f(edited)h(only)330 3273 y(b)m(y)h
+(proprietary)f(w)m(ord)h(pro)s(cessors,)j Fm(sgml)c Ft(or)i
+Fm(xml)e Ft(for)i(whic)m(h)e(the)h Fm(dtd)g Ft(and/or)g(pro)s(cessing)
+330 3383 y(to)s(ols)31 b(are)g(not)g(generally)f(a)m(v)-5
+b(ailable,)31 b(and)f(the)h(mac)m(hine-generated)h Fm(html)p
+Ft(,)e(P)m(ostScript)h(or)g Fm(pdf)330 3493 y Ft(pro)s(duced)e(b)m(y)h
+(some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8
+b(.)330 3634 y(The)34 b(\\Title)f(P)m(age")k(means,)e(for)f(a)h(prin)m
+(ted)e(b)s(o)s(ok,)i(the)f(title)g(page)h(itself,)f(plus)f(suc)m(h)g
+(follo)m(wing)330 3743 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)f
+(legibly)-8 b(,)27 b(the)h(material)f(this)g(License)g(requires)f(to)i
+(app)s(ear)f(in)g(the)330 3853 y(title)f(page.)40 b(F)-8
+b(or)28 b(w)m(orks)e(in)f(formats)i(whic)m(h)f(do)g(not)h(ha)m(v)m(e)h
+(an)m(y)e(title)h(page)g(as)g(suc)m(h,)g(\\Title)f(P)m(age")330
+3962 y(means)31 b(the)f(text)i(near)e(the)h(most)g(prominen)m(t)f(app)s
+(earance)g(of)h(the)g(w)m(ork's)g(title,)f(preceding)g(the)330
+4072 y(b)s(eginning)e(of)i(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330
+4213 y(A)f(section)g(\\En)m(titled)f(XYZ")h(means)f(a)h(named)g
+(subunit)d(of)i(the)h(Do)s(cumen)m(t)h(whose)e(title)g(either)330
+4322 y(is)e(precisely)f(XYZ)i(or)f(con)m(tains)h(XYZ)g(in)e(paren)m
+(theses)j(follo)m(wing)d(text)j(that)f(translates)g(XYZ)f(in)330
+4432 y(another)e(language.)39 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g
+(sp)s(eci\014c)f(section)h(name)g(men)m(tioned)g(b)s(elo)m(w,)g(suc)m
+(h)330 4542 y(as)j(\\Ac)m(kno)m(wledgemen)m(ts",)k(\\Dedications",)d
+(\\Endorsemen)m(ts",)g(or)f(\\History".\))41 b(T)-8 b(o)29
+b(\\Preserv)m(e)330 4651 y(the)34 b(Title")f(of)g(suc)m(h)h(a)g
+(section)f(when)g(y)m(ou)h(mo)s(dify)d(the)j(Do)s(cumen)m(t)h(means)e
+(that)h(it)f(remains)g(a)330 4761 y(section)e(\\En)m(titled)e(XYZ")i
+(according)f(to)h(this)f(de\014nition.)330 4902 y(The)d(Do)s(cumen)m(t)
+i(ma)m(y)f(include)d(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)c(next)i(to)
+g(the)g(notice)g(whic)m(h)e(states)j(that)330 5011 y(this)k(License)g
+(applies)f(to)j(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8
+b(arran)m(t)m(y)36 b(Disclaimers)c(are)j(considered)d(to)330
+5121 y(b)s(e)37 b(included)e(b)m(y)i(reference)h(in)f(this)f(License,)j
+(but)e(only)g(as)h(regards)f(disclaiming)e(w)m(arran)m(ties:)330
+5230 y(an)m(y)i(other)g(implication)e(that)i(these)g(W)-8
+b(arran)m(t)m(y)39 b(Disclaimers)c(ma)m(y)j(ha)m(v)m(e)g(is)e(v)m(oid)g
+(and)g(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)e(of)i
+(this)e(License.)p eop
+%%Page: 59 63
+59 62 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(59)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330
+445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)f(the)i(Do)s
+(cumen)m(t)h(in)e(an)m(y)h(medium,)g(either)g(commercially)f(or)330
+555 y(noncommercially)-8 b(,)45 b(pro)m(vided)c(that)i(this)e(License,)
+46 b(the)c(cop)m(yrigh)m(t)h(notices,)j(and)c(the)h(license)330
+664 y(notice)36 b(sa)m(ying)g(this)e(License)i(applies)d(to)k(the)f(Do)
+s(cumen)m(t)g(are)g(repro)s(duced)e(in)h(all)f(copies,)k(and)330
+774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)f(whatso)s(ev)m
+(er)j(to)f(those)g(of)g(this)e(License.)39 b(Y)-8 b(ou)27
+b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)33 b(measures)f(to)i
+(obstruct)f(or)g(con)m(trol)g(the)g(reading)f(or)h(further)e(cop)m
+(ying)i(of)g(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g
+(distribute.)36 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h
+(comp)s(ensation)e(in)f(exc)m(hange)k(for)d(copies.)330
+1103 y(If)32 b(y)m(ou)g(distribute)e(a)j(large)f(enough)g(n)m(um)m(b)s
+(er)f(of)h(copies)g(y)m(ou)g(m)m(ust)h(also)f(follo)m(w)f(the)h
+(conditions)330 1212 y(in)d(section)i(3.)330 1358 y(Y)-8
+b(ou)21 b(ma)m(y)h(also)e(lend)g(copies,)i(under)e(the)h(same)g
+(conditions)e(stated)j(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g
+(publicly)330 1468 y(displa)m(y)29 b(copies.)199 1614
+y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25
+b(y)m(ou)g(publish)d(prin)m(ted)h(copies)i(\(or)h(copies)f(in)f(media)g
+(that)i(commonly)f(ha)m(v)m(e)h(prin)m(ted)e(co)m(v)m(ers\))j(of)330
+1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)d(more)i(than)f
+(100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)d(notice)i(requires)330
+1979 y(Co)m(v)m(er)j(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)h
+(the)f(copies)g(in)f(co)m(v)m(ers)j(that)f(carry)-8 b(,)36
+b(clearly)d(and)h(legibly)-8 b(,)34 b(all)330 2089 y(these)40
+b(Co)m(v)m(er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41
+b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44
+b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330
+2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m)
+m(ust)e(also)g(clearly)f(and)h(legibly)e(iden)m(tify)g(y)m(ou)j(as)f
+(the)h(publisher)330 2308 y(of)k(these)h(copies.)52 b(The)34
+b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)d(title)i
+(with)e(all)i(w)m(ords)f(of)i(the)f(title)330 2418 y(equally)c
+(prominen)m(t)f(and)h(visible.)40 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g
+(other)g(material)f(on)h(the)g(co)m(v)m(ers)h(in)d(addition.)330
+2527 y(Cop)m(ying)35 b(with)g(c)m(hanges)i(limited)d(to)j(the)g(co)m(v)
+m(ers,)i(as)d(long)g(as)h(they)f(preserv)m(e)g(the)h(title)e(of)i(the)
+330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)h(these)g(conditions,)h(can)f
+(b)s(e)g(treated)h(as)f(v)m(erbatim)g(cop)m(ying)g(in)f(other)330
+2746 y(resp)s(ects.)330 2892 y(If)c(the)h(required)e(texts)j(for)e
+(either)g(co)m(v)m(er)j(are)e(to)s(o)g(v)m(oluminous)e(to)i(\014t)g
+(legibly)-8 b(,)32 b(y)m(ou)h(should)e(put)330 3002 y(the)i(\014rst)f
+(ones)h(listed)e(\(as)j(man)m(y)f(as)g(\014t)g(reasonably\))f(on)h(the)
+g(actual)g(co)m(v)m(er,)i(and)e(con)m(tin)m(ue)g(the)330
+3112 y(rest)e(on)m(to)g(adjacen)m(t)h(pages.)330 3258
+y(If)27 b(y)m(ou)g(publish)c(or)k(distribute)e(Opaque)h(copies)h(of)g
+(the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)e(more)j(than)e(100,)330
+3367 y(y)m(ou)i(m)m(ust)g(either)g(include)d(a)k(mac)m(hine-readable)e
+(T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)f(with)e(eac)m(h)j(Opaque)
+330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)e(or)h(with)f(eac)m(h)i
+(Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)f(from)f
+(whic)m(h)330 3587 y(the)24 b(general)h(net)m(w)m(ork-using)f(public)d
+(has)j(access)i(to)f(do)m(wnload)e(using)g(public-standard)e(net)m(w)m
+(ork)330 3696 y(proto)s(cols)39 b(a)g(complete)g(T)-8
+b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g
+(added)f(material.)65 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)g
+(option,)h(y)m(ou)g(m)m(ust)e(tak)m(e)j(reasonably)d(pruden)m(t)f
+(steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)c(of)j
+(Opaque)g(copies)g(in)e(quan)m(tit)m(y)-8 b(,)42 b(to)c(ensure)g(that)h
+(this)e(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330
+4025 y(remain)29 b(th)m(us)h(accessible)g(at)h(the)f(stated)h(lo)s
+(cation)f(un)m(til)e(at)j(least)g(one)f(y)m(ear)h(after)g(the)f(last)g
+(time)330 4134 y(y)m(ou)37 b(distribute)d(an)j(Opaque)f(cop)m(y)i
+(\(directly)e(or)g(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))f
+(of)h(that)330 4244 y(edition)29 b(to)i(the)g(public.)330
+4390 y(It)k(is)e(requested,)j(but)e(not)h(required,)f(that)h(y)m(ou)g
+(con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330
+4500 y(b)s(efore)28 b(redistributing)d(an)m(y)k(large)g(n)m(um)m(b)s
+(er)e(of)i(copies,)g(to)g(giv)m(e)g(them)g(a)g(c)m(hance)h(to)f(pro)m
+(vide)f(y)m(ou)330 4609 y(with)h(an)h(up)s(dated)f(v)m(ersion)h(of)h
+(the)f(Do)s(cumen)m(t.)199 4755 y(4.)61 b(MODIFICA)-8
+b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)e(a)
+j(Mo)s(di\014ed)e(V)-8 b(ersion)25 b(of)h(the)g(Do)s(cumen)m(t)g(under)
+e(the)h(conditions)330 5011 y(of)c(sections)g(2)h(and)e(3)h(ab)s(o)m(v)
+m(e,)k(pro)m(vided)19 b(that)j(y)m(ou)f(release)h(the)f(Mo)s(di\014ed)e
+(V)-8 b(ersion)21 b(under)e(precisely)330 5121 y(this)28
+b(License,)h(with)f(the)h(Mo)s(di\014ed)e(V)-8 b(ersion)29
+b(\014lling)d(the)j(role)g(of)g(the)g(Do)s(cumen)m(t,)h(th)m(us)f
+(licensing)330 5230 y(distribution)h(and)k(mo)s(di\014cation)e(of)j
+(the)f(Mo)s(di\014ed)e(V)-8 b(ersion)34 b(to)h(who)s(ev)m(er)f(p)s
+(ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)40 b(In)30
+b(addition,)f(y)m(ou)h(m)m(ust)h(do)f(these)h(things)e(in)g(the)i(Mo)s
+(di\014ed)d(V)-8 b(ersion:)p eop
+%%Page: 60 64
+60 63 bop 150 -116 a Ft(60)2600 b(GNU)31 b(Readline)e(Library)357
+299 y(A.)60 b(Use)33 b(in)e(the)i(Title)f(P)m(age)i(\(and)f(on)f(the)h
+(co)m(v)m(ers,)i(if)d(an)m(y\))h(a)g(title)f(distinct)f(from)i(that)g
+(of)g(the)510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f
+(previous)e(v)m(ersions)h(\(whic)m(h)g(should,)g(if)g(there)h(w)m(ere)g
+(an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)f(in)g(the)h(History)g
+(section)g(of)h(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)f(as)510 628 y(a)g(previous)e(v)m
+(ersion)g(if)h(the)g(original)f(publisher)e(of)j(that)h(v)m(ersion)f
+(giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)30
+b(on)g(the)h(Title)e(P)m(age,)k(as)d(authors,)h(one)g(or)f(more)h(p)s
+(ersons)e(or)h(en)m(tities)h(resp)s(onsible)c(for)510
+867 y(authorship)d(of)i(the)h(mo)s(di\014cations)d(in)h(the)h(Mo)s
+(di\014ed)e(V)-8 b(ersion,)27 b(together)h(with)c(at)j(least)g(\014v)m
+(e)510 977 y(of)d(the)g(principal)d(authors)i(of)i(the)f(Do)s(cumen)m
+(t)g(\(all)f(of)i(its)e(principal)e(authors,)k(if)e(it)g(has)h(few)m
+(er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)e(they)i(release)f(y)m
+(ou)h(from)f(this)f(requiremen)m(t.)359 1217 y(C.)60
+b(State)32 b(on)e(the)h(Title)f(page)h(the)g(name)g(of)g(the)g
+(publisher)c(of)k(the)g(Mo)s(di\014ed)e(V)-8 b(ersion,)31
+b(as)g(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31
+b(all)e(the)i(cop)m(yrigh)m(t)g(notices)f(of)h(the)f(Do)s(cumen)m(t.)
+363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)e(cop)m(yrigh)m(t)i
+(notice)f(for)h(y)m(our)f(mo)s(di\014cations)e(adjacen)m(t)k(to)f(the)g
+(other)510 1696 y(cop)m(yrigh)m(t)f(notices.)365 1826
+y(F.)61 b(Include,)27 b(immediately)f(after)i(the)h(cop)m(yrigh)m(t)f
+(notices,)h(a)f(license)f(notice)h(giving)f(the)h(public)510
+1936 y(p)s(ermission)21 b(to)26 b(use)e(the)g(Mo)s(di\014ed)f(V)-8
+b(ersion)24 b(under)f(the)i(terms)f(of)h(this)e(License,)j(in)d(the)h
+(form)510 2045 y(sho)m(wn)30 b(in)f(the)h(Addendum)f(b)s(elo)m(w.)353
+2176 y(G.)61 b(Preserv)m(e)23 b(in)f(that)h(license)f(notice)h(the)g
+(full)e(lists)g(of)i(In)m(v)-5 b(arian)m(t)22 b(Sections)h(and)f
+(required)f(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)f(in)f
+(the)i(Do)s(cumen)m(t's)g(license)f(notice.)357 2415
+y(H.)60 b(Include)29 b(an)h(unaltered)f(cop)m(y)i(of)g(this)e(License.)
+392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)g(En)m(titled)f
+(\\History",)i(Preserv)m(e)g(its)e(Title,)h(and)f(add)h(to)h(it)e(an)h
+(item)510 2655 y(stating)c(at)h(least)f(the)h(title,)f(y)m(ear,)i(new)d
+(authors,)i(and)e(publisher)d(of)29 b(the)f(Mo)s(di\014ed)e(V)-8
+b(ersion)510 2765 y(as)32 b(giv)m(en)f(on)g(the)h(Title)e(P)m(age.)45
+b(If)31 b(there)h(is)e(no)h(section)h(En)m(titled)e(\\History")i(in)e
+(the)h(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)g(the)g
+(title,)g(y)m(ear,)i(authors,)f(and)e(publisher)d(of)k(the)g(Do)s
+(cumen)m(t)510 2984 y(as)h(giv)m(en)g(on)g(its)g(Title)f(P)m(age,)k
+(then)d(add)g(an)g(item)f(describing)f(the)i(Mo)s(di\014ed)f(V)-8
+b(ersion)36 b(as)510 3093 y(stated)31 b(in)e(the)i(previous)e(sen)m
+(tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s
+(cation,)g(if)e(an)m(y)-8 b(,)34 b(giv)m(en)e(in)g(the)g(Do)s(cumen)m
+(t)h(for)g(public)c(access)34 b(to)510 3333 y(a)e(T)-8
+b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m
+(ewise)e(the)j(net)m(w)m(ork)g(lo)s(cations)e(giv)m(en)h(in)510
+3443 y(the)h(Do)s(cumen)m(t)g(for)g(previous)e(v)m(ersions)h(it)g(w)m
+(as)h(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)g(in)g(the)
+510 3552 y(\\History")26 b(section.)39 b(Y)-8 b(ou)25
+b(ma)m(y)h(omit)f(a)g(net)m(w)m(ork)h(lo)s(cation)e(for)h(a)h(w)m(ork)f
+(that)g(w)m(as)h(published)510 3662 y(at)36 b(least)g(four)f(y)m(ears)i
+(b)s(efore)e(the)h(Do)s(cumen)m(t)h(itself,)f(or)f(if)g(the)h(original)
+e(publisher)e(of)k(the)510 3771 y(v)m(ersion)30 b(it)g(refers)g(to)h
+(giv)m(es)g(p)s(ermission.)354 3902 y(K.)60 b(F)-8 b(or)24
+b(an)m(y)h(section)e(En)m(titled)g(\\Ac)m(kno)m(wledgemen)m(ts")j(or)e
+(\\Dedications",)i(Preserv)m(e)e(the)g(Title)510 4011
+y(of)j(the)f(section,)i(and)e(preserv)m(e)h(in)e(the)i(section)f(all)g
+(the)g(substance)h(and)f(tone)h(of)f(eac)m(h)i(of)f(the)510
+4121 y(con)m(tributor)j(ac)m(kno)m(wledgemen)m(ts)i(and/or)e
+(dedications)f(giv)m(en)i(therein.)368 4251 y(L.)60 b(Preserv)m(e)36
+b(all)e(the)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(of)g(the)h(Do)s
+(cumen)m(t,)h(unaltered)e(in)f(their)g(text)j(and)510
+4361 y(in)e(their)g(titles.)56 b(Section)36 b(n)m(um)m(b)s(ers)e(or)i
+(the)g(equiv)-5 b(alen)m(t)36 b(are)g(not)g(considered)f(part)h(of)g
+(the)510 4470 y(section)31 b(titles.)341 4600 y(M.)61
+b(Delete)32 b(an)m(y)f(section)g(En)m(titled)e(\\Endorsemen)m(ts".)42
+b(Suc)m(h)30 b(a)i(section)e(ma)m(y)i(not)f(b)s(e)f(included)510
+4710 y(in)f(the)i(Mo)s(di\014ed)d(V)-8 b(ersion.)357
+4840 y(N.)60 b(Do)29 b(not)g(retitle)f(an)m(y)g(existing)g(section)g
+(to)h(b)s(e)f(En)m(titled)f(\\Endorsemen)m(ts")i(or)f(to)h(con\015ict)f
+(in)510 4950 y(title)i(with)f(an)m(y)i(In)m(v)-5 b(arian)m(t)30
+b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)f
+(V)-8 b(ersion)33 b(includes)e(new)i(fron)m(t-matter)i(sections)e(or)g
+(app)s(endices)f(that)i(qualify)330 5340 y(as)28 b(Secondary)g
+(Sections)f(and)g(con)m(tain)i(no)e(material)h(copied)f(from)g(the)h
+(Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop
+%%Page: 61 65
+61 64 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(61)330 299 y(y)m(our)32 b(option)g(designate)h(some)f(or)h
+(all)e(of)h(these)h(sections)g(as)f(in)m(v)-5 b(arian)m(t.)46
+b(T)-8 b(o)33 b(do)f(this,)g(add)g(their)330 408 y(titles)j(to)h(the)f
+(list)f(of)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(in)f(the)i(Mo)s
+(di\014ed)e(V)-8 b(ersion's)35 b(license)f(notice.)56
+b(These)330 518 y(titles)30 b(m)m(ust)g(b)s(e)g(distinct)f(from)g(an)m
+(y)i(other)g(section)f(titles.)330 650 y(Y)-8 b(ou)43
+b(ma)m(y)g(add)f(a)g(section)h(En)m(titled)e(\\Endorsemen)m(ts",)46
+b(pro)m(vided)41 b(it)h(con)m(tains)g(nothing)g(but)330
+759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)f(V)-8
+b(ersion)30 b(b)m(y)f(v)-5 b(arious)29 b(parties|for)g(example,)g
+(statemen)m(ts)j(of)330 869 y(p)s(eer)27 b(review)f(or)h(that)h(the)f
+(text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)f
+(as)g(the)h(authoritativ)m(e)330 978 y(de\014nition)g(of)j(a)f
+(standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g
+(up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er)
+30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330
+1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8
+b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)f(of)h(Co)m(v)m(er)h(T)-8
+b(exts)27 b(in)f(the)i(Mo)s(di\014ed)330 1329 y(V)-8
+b(ersion.)57 b(Only)34 b(one)i(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m
+(er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8
+b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through)
+f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8
+b(.)41 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548
+y(includes)k(a)i(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m(er,)h
+(previously)c(added)h(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m(t)330
+1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)h(y)m(ou)g(are)f
+(acting)h(on)f(b)s(ehalf)e(of,)k(y)m(ou)f(ma)m(y)g(not)f(add)g
+(another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)f(the)g(old)f
+(one,)j(on)e(explicit)e(p)s(ermission)f(from)i(the)i(previous)d
+(publisher)e(that)330 1877 y(added)g(the)g(old)g(one.)330
+2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))d(of)k(the)f(Do)s
+(cumen)m(t)h(do)g(not)f(b)m(y)h(this)e(License)h(giv)m(e)h(p)s
+(ermission)330 2118 y(to)31 b(use)f(their)f(names)i(for)f(publicit)m(y)
+d(for)k(or)f(to)h(assert)g(or)f(imply)e(endorsemen)m(t)i(of)h(an)m(y)g
+(Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61
+b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m
+(bine)g(the)g(Do)s(cumen)m(t)g(with)f(other)g(do)s(cumen)m(ts)h
+(released)f(under)g(this)f(License,)330 2600 y(under)g(the)h(terms)g
+(de\014ned)f(in)g(section)h(4)h(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)e
+(v)m(ersions,)k(pro)m(vided)d(that)i(y)m(ou)330 2710
+y(include)23 b(in)h(the)h(com)m(bination)g(all)f(of)i(the)f(In)m(v)-5
+b(arian)m(t)25 b(Sections)g(of)h(all)e(of)h(the)h(original)d(do)s
+(cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)i(and)h(list)f(them)i(all)e
+(as)i(In)m(v)-5 b(arian)m(t)27 b(Sections)f(of)h(y)m(our)g(com)m(bined)
+f(w)m(ork)g(in)g(its)g(license)330 2929 y(notice,)31
+b(and)f(that)h(y)m(ou)f(preserv)m(e)h(all)e(their)h(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)f(w)m
+(ork)i(need)e(only)h(con)m(tain)g(one)h(cop)m(y)g(of)f(this)f(License,)
+i(and)e(m)m(ultiple)f(iden)m(tical)330 3170 y(In)m(v)-5
+b(arian)m(t)32 b(Sections)g(ma)m(y)h(b)s(e)f(replaced)g(with)f(a)i
+(single)e(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)d(In)m
+(v)-5 b(arian)m(t)330 3280 y(Sections)26 b(with)g(the)h(same)g(name)g
+(but)f(di\013eren)m(t)g(con)m(ten)m(ts,)j(mak)m(e)f(the)f(title)f(of)h
+(eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)32 b(b)m(y)i(adding)e
+(at)j(the)f(end)g(of)g(it,)g(in)f(paren)m(theses,)j(the)e(name)g(of)g
+(the)g(original)e(author)i(or)330 3499 y(publisher)21
+b(of)k(that)h(section)f(if)f(kno)m(wn,)i(or)f(else)g(a)g(unique)e(n)m
+(um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330
+3608 y(to)g(the)g(section)f(titles)g(in)f(the)i(list)e(of)h(In)m(v)-5
+b(arian)m(t)25 b(Sections)f(in)f(the)h(license)g(notice)h(of)f(the)h
+(com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m
+(bination,)j(y)m(ou)d(m)m(ust)g(com)m(bine)g(an)m(y)h(sections)f(En)m
+(titled)f(\\History")i(in)e(the)h(v)-5 b(ari-)330 3959
+y(ous)32 b(original)e(do)s(cumen)m(ts,)j(forming)e(one)h(section)g(En)m
+(titled)f(\\History";)j(lik)m(ewise)d(com)m(bine)h(an)m(y)330
+4069 y(sections)g(En)m(titled)e(\\Ac)m(kno)m(wledgemen)m(ts",)35
+b(and)c(an)m(y)h(sections)g(En)m(titled)f(\\Dedications".)45
+b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)h(all)e(sections)i(En)m
+(titled)e(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28
+b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f
+(collection)f(consisting)g(of)h(the)g(Do)s(cumen)m(t)g(and)g(other)g
+(do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)g(License,)k
+(and)d(replace)g(the)h(individual)38 b(copies)k(of)g(this)f(License)h
+(in)f(the)i(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42
+b(with)f(a)i(single)e(cop)m(y)j(that)f(is)e(included)f(in)h(the)i
+(collection,)i(pro)m(vided)c(that)j(y)m(ou)330 4770 y(follo)m(w)36
+b(the)i(rules)d(of)i(this)f(License)h(for)g(v)m(erbatim)g(cop)m(ying)g
+(of)g(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)g(all)330
+4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32
+b(ma)m(y)g(extract)h(a)f(single)e(do)s(cumen)m(t)h(from)g(suc)m(h)g(a)h
+(collection,)f(and)g(distribute)e(it)i(individu-)330
+5121 y(ally)j(under)f(this)h(License,)i(pro)m(vided)e(y)m(ou)h(insert)f
+(a)h(cop)m(y)h(of)f(this)f(License)g(in)m(to)h(the)h(extracted)330
+5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)g(this)f(License)h(in)g(all)f
+(other)i(resp)s(ects)f(regarding)g(v)m(erbatim)g(cop)m(ying)h(of)330
+5340 y(that)e(do)s(cumen)m(t.)p eop
+%%Page: 62 66
+62 65 bop 150 -116 a Ft(62)2600 b(GNU)31 b(Readline)e(Library)199
+299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)
+330 428 y(A)d(compilation)f(of)h(the)g(Do)s(cumen)m(t)h(or)f(its)f
+(deriv)-5 b(ativ)m(es)28 b(with)e(other)j(separate)g(and)e(indep)s
+(enden)m(t)330 538 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)e(or)i
+(on)f(a)g(v)m(olume)g(of)h(a)f(storage)i(or)e(distribution)d(medium,)i
+(is)h(called)330 648 y(an)d(\\aggregate")k(if)29 b(the)h(cop)m(yrigh)m
+(t)h(resulting)d(from)h(the)i(compilation)d(is)h(not)i(used)e(to)i
+(limit)d(the)330 757 y(legal)e(righ)m(ts)g(of)h(the)g(compilation's)e
+(users)h(b)s(ey)m(ond)g(what)g(the)h(individual)22 b(w)m(orks)k(p)s
+(ermit.)38 b(When)330 867 y(the)28 b(Do)s(cumen)m(t)g(is)f(included)e
+(an)i(aggregate,)32 b(this)26 b(License)h(do)s(es)h(not)g(apply)e(to)i
+(the)g(other)g(w)m(orks)330 976 y(in)h(the)i(aggregate)i(whic)m(h)c
+(are)i(not)f(themselv)m(es)h(deriv)-5 b(ativ)m(e)30 b(w)m(orks)g(of)h
+(the)f(Do)s(cumen)m(t.)330 1106 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8
+b(ext)23 b(requiremen)m(t)f(of)h(section)g(3)g(is)f(applicable)f(to)i
+(these)h(copies)e(of)h(the)g(Do)s(cumen)m(t,)330 1215
+y(then)f(if)f(the)i(Do)s(cumen)m(t)g(is)f(less)f(than)h(one)h(half)e
+(of)i(the)g(en)m(tire)f(aggregate,)27 b(the)c(Do)s(cumen)m(t's)g(Co)m
+(v)m(er)330 1325 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)g(on)h(co)m
+(v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)d(the)j
+(aggregate,)j(or)d(the)330 1435 y(electronic)35 b(equiv)-5
+b(alen)m(t)34 b(of)i(co)m(v)m(ers)g(if)e(the)h(Do)s(cumen)m(t)h(is)e
+(in)g(electronic)h(form.)54 b(Otherwise)34 b(they)330
+1544 y(m)m(ust)c(app)s(ear)g(on)g(prin)m(ted)f(co)m(v)m(ers)j(that)f
+(brac)m(k)m(et)h(the)f(whole)e(aggregate.)199 1674 y(8.)61
+b(TRANSLA)-8 b(TION)330 1803 y(T)g(ranslation)39 b(is)g(considered)f(a)
+j(kind)d(of)i(mo)s(di\014cation,)h(so)f(y)m(ou)g(ma)m(y)h(distribute)c
+(translations)330 1913 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h
+(terms)h(of)f(section)h(4.)83 b(Replacing)43 b(In)m(v)-5
+b(arian)m(t)44 b(Sections)g(with)330 2022 y(translations)g(requires)g
+(sp)s(ecial)g(p)s(ermission)f(from)i(their)f(cop)m(yrigh)m(t)i
+(holders,)i(but)d(y)m(ou)g(ma)m(y)330 2132 y(include)22
+b(translations)i(of)g(some)h(or)g(all)e(In)m(v)-5 b(arian)m(t)24
+b(Sections)g(in)f(addition)g(to)i(the)g(original)e(v)m(ersions)330
+2242 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)32 b(Sections.)43
+b(Y)-8 b(ou)32 b(ma)m(y)g(include)d(a)j(translation)e(of)i(this)e
+(License,)i(and)e(all)h(the)330 2351 y(license)40 b(notices)h(in)f(the)
+i(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42
+b(Disclaimers,)h(pro)m(vided)d(that)i(y)m(ou)330 2461
+y(also)e(include)e(the)i(original)e(English)g(v)m(ersion)h(of)h(this)f
+(License)h(and)f(the)h(original)e(v)m(ersions)i(of)330
+2570 y(those)35 b(notices)f(and)f(disclaimers.)50 b(In)33
+b(case)i(of)g(a)f(disagreemen)m(t)g(b)s(et)m(w)m(een)h(the)f
+(translation)g(and)330 2680 y(the)h(original)f(v)m(ersion)g(of)i(this)e
+(License)h(or)g(a)g(notice)h(or)f(disclaimer,)f(the)i(original)d(v)m
+(ersion)i(will)330 2790 y(prev)-5 b(ail.)330 2919 y(If)28
+b(a)h(section)g(in)e(the)i(Do)s(cumen)m(t)h(is)d(En)m(titled)h(\\Ac)m
+(kno)m(wledgemen)m(ts",)j(\\Dedications",)f(or)f(\\His-)330
+3029 y(tory",)f(the)f(requiremen)m(t)e(\(section)i(4\))g(to)g(Preserv)m
+(e)g(its)e(Title)h(\(section)g(1\))h(will)d(t)m(ypically)h(require)330
+3138 y(c)m(hanging)30 b(the)h(actual)g(title.)199 3268
+y(9.)61 b(TERMINA)-8 b(TION)330 3397 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m
+(y)-8 b(,)31 b(mo)s(dify)-8 b(,)29 b(sublicense,)f(or)i(distribute)d
+(the)j(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3507
+y(pro)m(vided)40 b(for)i(under)e(this)h(License.)74 b(An)m(y)42
+b(other)g(attempt)h(to)g(cop)m(y)-8 b(,)46 b(mo)s(dify)-8
+b(,)43 b(sublicense)d(or)330 3616 y(distribute)34 b(the)j(Do)s(cumen)m
+(t)g(is)f(v)m(oid,)i(and)e(will)e(automatically)i(terminate)h(y)m(our)f
+(righ)m(ts)g(under)330 3726 y(this)27 b(License.)39 b(Ho)m(w)m(ev)m
+(er,)31 b(parties)c(who)g(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)e
+(righ)m(ts,)h(from)g(y)m(ou)g(under)e(this)330 3836 y(License)36
+b(will)e(not)j(ha)m(v)m(e)h(their)e(licenses)f(terminated)i(so)g(long)f
+(as)h(suc)m(h)f(parties)g(remain)g(in)f(full)330 3945
+y(compliance.)154 4075 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e
+(LICENSE)330 4204 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
+b(oundation)42 b(ma)m(y)g(publish)c(new,)44 b(revised)c(v)m(ersions)h
+(of)h(the)g(GNU)g(F)-8 b(ree)330 4314 y(Do)s(cumen)m(tation)33
+b(License)e(from)h(time)g(to)h(time.)45 b(Suc)m(h)31
+b(new)h(v)m(ersions)f(will)f(b)s(e)h(similar)e(in)i(spirit)330
+4423 y(to)k(the)g(presen)m(t)f(v)m(ersion,)h(but)f(ma)m(y)h(di\013er)e
+(in)g(detail)g(to)i(address)f(new)g(problems)e(or)j(concerns.)330
+4533 y(See)c Fs(http://www.gnu.org/copy)o(left)o(/)p
+Ft(.)330 4663 y(Eac)m(h)f(v)m(ersion)f(of)h(the)f(License)g(is)g(giv)m
+(en)g(a)h(distinguishing)25 b(v)m(ersion)k(n)m(um)m(b)s(er.)39
+b(If)29 b(the)g(Do)s(cumen)m(t)330 4772 y(sp)s(eci\014es)44
+b(that)i(a)g(particular)d(n)m(um)m(b)s(ered)h(v)m(ersion)h(of)g(this)f
+(License)h(\\or)h(an)m(y)g(later)f(v)m(ersion")330 4882
+y(applies)31 b(to)i(it,)g(y)m(ou)f(ha)m(v)m(e)i(the)f(option)f(of)g
+(follo)m(wing)f(the)i(terms)f(and)g(conditions)f(either)h(of)g(that)330
+4991 y(sp)s(eci\014ed)k(v)m(ersion)i(or)f(of)h(an)m(y)h(later)f(v)m
+(ersion)f(that)h(has)g(b)s(een)f(published)d(\(not)39
+b(as)f(a)g(draft\))g(b)m(y)330 5101 y(the)33 b(F)-8 b(ree)34
+b(Soft)m(w)m(are)f(F)-8 b(oundation.)48 b(If)32 b(the)h(Do)s(cumen)m(t)
+g(do)s(es)g(not)g(sp)s(ecify)e(a)i(v)m(ersion)f(n)m(um)m(b)s(er)g(of)
+330 5210 y(this)h(License,)j(y)m(ou)e(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g
+(v)m(ersion)f(ev)m(er)h(published)c(\(not)k(as)g(a)f(draft\))h(b)m(y)f
+(the)h(F)-8 b(ree)330 5320 y(Soft)m(w)m(are)31 b(F)-8
+b(oundation.)p eop
+%%Page: 63 67
+63 66 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(63)150 299 y Fh(A.1.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g
+(use)g(this)g(License)g(for)g(y)m(our)g(do)s(cumen)m(ts)275
+543 y Ft(T)-8 b(o)27 b(use)g(this)f(License)h(in)f(a)i(do)s(cumen)m(t)f
+(y)m(ou)h(ha)m(v)m(e)g(written,)f(include)e(a)j(cop)m(y)g(of)f(the)h
+(License)f(in)f(the)150 653 y(do)s(cumen)m(t)k(and)g(put)g(the)g(follo)
+m(wing)f(cop)m(yrigh)m(t)i(and)f(license)f(notices)h(just)g(after)h
+(the)g(title)f(page:)468 765 y Fd(Copyright)42 b(\(C\))79
+b Fc(year)88 b(your)40 b(name)p Fd(.)468 852 y(Permission)i(is)e
+(granted)g(to)g(copy,)h(distribute)g(and/or)g(modify)f(this)g(document)
+468 939 y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i
+(License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h
+(published)h(by)d(the)h(Free)g(Software)h(Foundation;)468
+1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g
+(and)f(no)f(Back-Cover)j(Texts.)468 1200 y(A)e(copy)g(of)g(the)g
+(license)g(is)g(included)h(in)f(the)g(section)h(entitled)g(``GNU)468
+1288 y(Free)g(Documentation)h(License''.)275 1410 y Ft(If)d(y)m(ou)h
+(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)40 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)d(the)150 1520 y(\\with...T)-8
+b(exts.")42 b(line)28 b(with)i(this:)547 1632 y Fd(with)40
+b(the)g(Invariant)h(Sections)g(being)g Fc(list)f(their)g(titles)p
+Fd(,)h(with)547 1719 y(the)f(Front-Cover)i(Texts)e(being)g
+Fc(list)p Fd(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547
+1806 y(being)f Fc(list)p Fd(.)275 1929 y Ft(If)34 b(y)m(ou)i(ha)m(v)m
+(e)g(In)m(v)-5 b(arian)m(t)35 b(Sections)g(without)f(Co)m(v)m(er)i(T)-8
+b(exts,)38 b(or)d(some)g(other)h(com)m(bination)e(of)i(the)150
+2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)g(to)g
+(suit)e(the)i(situation.)275 2173 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f
+(con)m(tains)h(non)m(trivial)e(examples)i(of)g(program)f(co)s(de,)j(w)m
+(e)e(recommend)g(releasing)150 2283 y(these)44 b(examples)e(in)g
+(parallel)f(under)h(y)m(our)h(c)m(hoice)h(of)f(free)g(soft)m(w)m(are)h
+(license,)i(suc)m(h)d(as)g(the)g(GNU)150 2392 y(General)30
+b(Public)e(License,)j(to)g(p)s(ermit)d(their)i(use)g(in)f(free)h(soft)m
+(w)m(are.)p eop
+%%Page: 64 68
+64 67 bop 150 -116 a Ft(64)2600 b(GNU)31 b(Readline)e(Library)p
eop
-%%Page: 50 52
-50 51 bop 75 -58 a Fu(50)1299 b(GNU)15 b(Readline)h(Library)386
-149 y Ft(})338 253 y(free)23 b(\(line\);)290 305 y(})243
-357 y(exit)g(\(0\);)195 409 y(})195 513 y(/*)h(Execute)e(a)i(command)f
-(line.)g(*/)195 565 y(int)195 616 y(execute_line)f(\(line\))314
-668 y(char)i(*line;)195 720 y({)243 772 y(register)e(int)i(i;)243
-824 y(COMMAND)f(*command;)243 876 y(char)g(*word;)243
-980 y(/*)g(Isolate)g(the)h(command)f(word.)g(*/)243 1032
-y(i)g(=)h(0;)243 1083 y(while)f(\(line[i])g(&&)g(whitespace)g
-(\(line[i]\)\))290 1135 y(i++;)243 1187 y(word)g(=)h(line)f(+)h(i;)243
-1291 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))290
-1343 y(i++;)243 1447 y(if)g(\(line[i]\))290 1499 y(line[i++])g(=)h
-('\\0';)243 1602 y(command)f(=)g(find_command)g(\(word\);)243
-1706 y(if)g(\(!command\))290 1758 y({)338 1810 y(fprintf)g(\(stderr,)g
-("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)338
-1862 y(return)g(\(-1\);)290 1914 y(})243 2017 y(/*)g(Get)h(argument)f
-(to)g(command,)g(if)g(any.)h(*/)243 2069 y(while)f(\(whitespace)f
-(\(line[i]\)\))290 2121 y(i++;)243 2225 y(word)h(=)h(line)f(+)h(i;)243
-2329 y(/*)f(Call)h(the)f(function.)g(*/)243 2381 y(return)g
-(\(\(*\(command->func\)\))e(\(word\)\);)195 2433 y(})195
-2536 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g
-(and)h(return)f(a)g(pointer)g(to)h(that)267 2588 y(command.)46
-b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f
-(name.)g(*/)195 2640 y(COMMAND)g(*)p eop
-%%Page: 51 53
-51 52 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(51)195 149 y Ft(find_command)22 b(\(name\))314
-201 y(char)i(*name;)195 253 y({)243 305 y(register)e(int)i(i;)243
-409 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290
-461 y(if)i(\(strcmp)f(\(name,)g(commands[i].name\))f(==)h(0\))338
-513 y(return)g(\(&commands[i]\);)243 616 y(return)g(\(\(COMMAND)f
-(*\)NULL\);)195 668 y(})195 772 y(/*)i(Strip)f(whitespace)f(from)i(the)
-f(start)g(and)h(end)f(of)h(STRING.)46 b(Return)24 b(a)f(pointer)267
-824 y(into)g(STRING.)g(*/)195 876 y(char)g(*)195 928
-y(stripwhite)f(\(string\))314 980 y(char)i(*string;)195
-1032 y({)243 1083 y(register)e(char)i(*s,)f(*t;)243 1187
-y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))290
-1239 y(;)243 1343 y(if)g(\(*s)h(==)f(0\))290 1395 y(return)g(\(s\);)243
-1499 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)243 1550
-y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))290
-1602 y(t--;)243 1654 y(*++t)h(=)h('\\0';)243 1758 y(return)f(s;)195
-1810 y(})195 1914 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)195 1966 y(/*)1575
-b(*/)195 2017 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381
-b(*/)195 2069 y(/*)1575 b(*/)195 2121 y(/*)24 b
-(***********************)o(*******)o(********)o(*******)o(*******)o
-(********)o(****)d(*/)195 2225 y(char)i(*command_generator)f
-(__P\(\(const)g(char)i(*,)f(int\)\);)195 2277 y(char)g
-(**fileman_completion)e(__P\(\(const)i(char)g(*,)h(int,)f(int\)\);)195
-2381 y(/*)h(Tell)f(the)g(GNU)h(Readline)f(library)f(how)i(to)g
-(complete.)46 b(We)24 b(want)f(to)h(try)f(to)267 2433
-y(complete)f(on)i(command)f(names)g(if)h(this)f(is)h(the)f(first)g
-(word)g(in)h(the)g(line,)f(or)267 2484 y(on)g(filenames)g(if)g(not.)h
-(*/)195 2536 y(initialize_readline)d(\(\))195 2588 y({)243
-2640 y(/*)i(Allow)g(conditional)g(parsing)g(of)g(the)h(~/.inputrc)e
-(file.)h(*/)p eop
-%%Page: 52 54
-52 53 bop 75 -58 a Fu(52)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(rl_readline_name)21 b(=)j("FileMan";)243 253
-y(/*)f(Tell)h(the)f(completer)g(that)g(we)h(want)f(a)h(crack)f(first.)g
-(*/)243 305 y(rl_attempted_completion_)o(functio)o(n)e(=)j
-(fileman_completion;)195 357 y(})195 461 y(/*)g(Attempt)e(to)i
-(complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23
-b(and)h(END)267 513 y(bound)f(the)g(region)g(of)h(rl_line_buffer)e
-(that)h(contains)g(the)g(word)h(to)267 565 y(complete.)46
-b(TEXT)23 b(is)h(the)f(word)h(to)f(complete.)47 b(We)23
-b(can)h(use)f(the)h(entire)267 616 y(contents)e(of)i(rl_line_buffer)e
-(in)h(case)h(we)f(want)h(to)f(do)h(some)f(simple)267
-668 y(parsing.)46 b(Returnthe)23 b(array)g(of)h(matches,)e(or)i(NULL)f
-(if)h(there)f(aren't)g(any.)g(*/)195 720 y(char)g(**)195
-772 y(fileman_completion)e(\(text,)i(start,)g(end\))314
-824 y(const)g(char)h(*text;)314 876 y(int)g(start,)f(end;)195
-928 y({)243 980 y(char)g(**matches;)243 1083 y(matches)g(=)g(\(char)h
-(**\)NULL;)243 1187 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g
-(of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)314
-1239 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h
-(a)f(file)h(in)f(the)h(current)314 1291 y(directory.)f(*/)243
-1343 y(if)g(\(start)g(==)h(0\))290 1395 y(matches)f(=)h
-(rl_completion_matches)d(\(text,)i(command_generator\);)243
-1499 y(return)g(\(matches\);)195 1550 y(})195 1654 y(/*)h(Generator)e
-(function)h(for)g(command)g(completion.)47 b(STATE)23
-b(lets)g(us)267 1706 y(know)g(whether)g(to)g(start)h(from)f(scratch;)g
-(without)g(any)g(state)267 1758 y(\(i.e.)g(STATE)g(==)h(0\),)f(then)g
-(we)h(start)f(at)h(the)f(top)h(of)f(the)h(list.)f(*/)195
-1810 y(char)g(*)195 1862 y(command_generator)f(\(text,)h(state\))314
-1914 y(const)g(char)h(*text;)314 1966 y(int)g(state;)195
-2017 y({)243 2069 y(static)f(int)g(list_index,)g(len;)243
-2121 y(char)g(*name;)243 2225 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g
-(to)h(complete,)f(initialize)f(now.)47 b(This)314 2277
-y(includes)23 b(saving)g(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)f
-(and)314 2329 y(initializing)h(the)g(index)g(variable)g(to)h(0.)f(*/)
-243 2381 y(if)g(\(!state\))290 2433 y({)338 2484 y(list_index)g(=)g(0;)
-338 2536 y(len)h(=)f(strlen)g(\(text\);)290 2588 y(})p
+%%Page: 65 69
+65 68 bop 150 -116 a Ft(Concept)31 b(Index)2927 b(65)150
+299 y Fp(Concept)52 b(Index)150 638 y Fr(A)150 759 y
+Fb(application-sp)r(eci\014c)27 b(completion)e(functions)9
+b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)35 b Fb(41)150 1022
+y Fr(C)150 1143 y Fb(command)24 b(editing)c Fa(.)12 b(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(1)150 1406 y Fr(E)150
+1527 y Fb(editing)26 b(command)e(lines)g Fa(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+49 b Fb(1)150 1789 y Fr(F)150 1910 y Fb(FDL,)26 b(GNU)f(F)-6
+b(ree)25 b(Do)r(cumen)n(tation)g(License)11 b Fa(.)j(.)e(.)g(.)h(.)f(.)
+g(.)37 b Fb(57)150 2173 y Fr(I)150 2294 y Fb(initialization)28
+b(\014le,)e(readline)8 b Fa(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(4)150
+2384 y(in)n(teraction,)27 b(readline)10 b Fa(.)j(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)36 b Fb(1)2025 638 y Fr(K)2025 759 y Fb(kill)26
+b(ring)15 b Fa(.)e(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)42 b Fb(3)2025 849 y(killing)26
+b(text)18 b Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)44 b Fb(2)2025 1111 y Fr(N)2025 1233
+y Fb(notation,)26 b(readline)13 b Fa(.)h(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)40 b Fb(1)2025 1495 y Fr(R)2025 1616 y Fb(readline,)26
+b(function)15 b Fa(.)e(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41
+b Fb(21)2025 1879 y Fr(V)2025 2000 y Fb(v)l(ariables,)27
+b(readline)8 b Fa(.)k(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34
+b Fb(5)2025 2263 y Fr(Y)2025 2384 y Fb(y)n(anking)25
+b(text)8 b Fa(.)j(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)34 b Fb(2)p eop
+%%Page: 66 70
+66 69 bop 150 -116 a Ft(66)2600 b(GNU)31 b(Readline)e(Library)p
eop
-%%Page: 53 55
-53 54 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(53)243 149 y Ft(/*)23 b(Return)g(the)h(next)f(name)g
-(which)h(partially)e(matches)h(from)g(the)314 201 y(command)g(list.)g
-(*/)243 253 y(while)g(\(name)g(=)h(commands[list_index].name)o(\))290
-305 y({)338 357 y(list_index++;)338 461 y(if)g(\(strncmp)f(\(name,)g
-(text,)g(len\))g(==)h(0\))386 513 y(return)f(\(dupstr\(name\)\);)290
-565 y(})243 668 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f
-(NULL.)g(*/)243 720 y(return)g(\(\(char)g(*\)NULL\);)195
-772 y(})195 876 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)195 928 y(/*)1575
-b(*/)195 980 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)195
-1032 y(/*)1575 b(*/)195 1083 y(/*)24 b(***********************)o
-(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)195
-1187 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47
-b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)267
-1239 y(commands.)f(*/)195 1291 y(static)h(char)g(syscom[1024];)195
-1395 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)195
-1447 y(com_list)g(\(arg\))314 1499 y(char)h(*arg;)195
-1550 y({)243 1602 y(if)f(\(!arg\))290 1654 y(arg)h(=)g("";)243
-1758 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)243
-1810 y(return)g(\(system)g(\(syscom\)\);)195 1862 y(})195
-1966 y(com_view)g(\(arg\))314 2017 y(char)h(*arg;)195
-2069 y({)243 2121 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))290
-2173 y(return)g(1;)243 2277 y(sprintf)g(\(syscom,)f("more)i(\045s",)f
-(arg\);)243 2329 y(return)g(\(system)g(\(syscom\)\);)195
-2381 y(})195 2484 y(com_rename)f(\(arg\))314 2536 y(char)i(*arg;)195
-2588 y({)243 2640 y(too_dangerous)e(\("rename"\);)p eop
-%%Page: 54 56
-54 55 bop 75 -58 a Fu(54)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(return)23 b(\(1\);)195 201 y(})195 305 y(com_stat)g(\(arg\))
-314 357 y(char)h(*arg;)195 409 y({)243 461 y(struct)f(stat)g(finfo;)243
-565 y(if)g(\(!valid_argument)f(\("stat",)h(arg\)\))290
-616 y(return)g(\(1\);)243 720 y(if)g(\(stat)g(\(arg,)h(&finfo\))f(==)g
-(-1\))290 772 y({)338 824 y(perror)g(\(arg\);)338 876
-y(return)g(\(1\);)290 928 y(})243 1032 y(printf)g(\("Statistics)f(for)h
-(`\045s':\\n",)g(arg\);)243 1135 y(printf)g(\("\045s)g(has)h(\045d)f
-(link\045s,)g(and)g(is)h(\045d)g(byte\045s)f(in)g(length.\\n",)g(arg,)
-434 1187 y(finfo.st_nlink,)434 1239 y(\(finfo.st_nlink)e(==)j(1\))g(?)f
-("")h(:)g("s",)434 1291 y(finfo.st_size,)434 1343 y(\(finfo.st_size)e
-(==)h(1\))h(?)f("")h(:)g("s"\);)243 1395 y(printf)f(\("Inode)g(Last)g
-(Change)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_ctime\)\);)243
-1447 y(printf)g(\(")143 b(Last)23 b(access)g(at:)g(\045s",)h(ctime)f
-(\(&finfo.st_atime\)\);)243 1499 y(printf)g(\(")95 b(Last)23
-b(modified)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_mtime\)\);)243
-1550 y(return)g(\(0\);)195 1602 y(})195 1706 y(com_delete)f(\(arg\))314
-1758 y(char)i(*arg;)195 1810 y({)243 1862 y(too_dangerous)e
-(\("delete"\);)243 1914 y(return)h(\(1\);)195 1966 y(})195
-2069 y(/*)h(Print)f(out)g(help)h(for)f(ARG,)g(or)h(for)f(all)h(of)f
-(the)h(commands)f(if)g(ARG)h(is)267 2121 y(not)f(present.)g(*/)195
-2173 y(com_help)g(\(arg\))314 2225 y(char)h(*arg;)195
-2277 y({)243 2329 y(register)e(int)i(i;)243 2381 y(int)f(printed)g(=)h
-(0;)243 2484 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290
-2536 y({)338 2588 y(if)i(\(!*arg)f(||)g(\(strcmp)g(\(arg,)g
-(commands[i].name\))f(==)i(0\)\))386 2640 y({)p eop
-%%Page: 55 57
-55 56 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(55)434 149 y Ft(printf)23 b(\("\045s\\t\\t\045s.\\n",)e
-(commands[i].name,)h(commands[i].doc\);)434 201 y(printed++;)386
-253 y(})290 305 y(})243 409 y(if)h(\(!printed\))290 461
-y({)338 513 y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48
-b(Possibilties)22 b(are:\\n",)h(arg\);)338 616 y(for)h(\(i)f(=)h(0;)g
-(commands[i].name;)d(i++\))386 668 y({)434 720 y(/*)i(Print)g(in)h(six)
-f(columns.)g(*/)434 772 y(if)g(\(printed)g(==)h(6\))481
-824 y({)529 876 y(printed)f(=)h(0;)529 928 y(printf)f(\("\\n"\);)481
-980 y(})434 1083 y(printf)g(\("\045s\\t",)f(commands[i].name\);)434
-1135 y(printed++;)386 1187 y(})338 1291 y(if)i(\(printed\))386
-1343 y(printf)f(\("\\n"\);)290 1395 y(})243 1447 y(return)g(\(0\);)195
-1499 y(})195 1602 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)195
-1654 y(com_cd)f(\(arg\))314 1706 y(char)h(*arg;)195 1758
-y({)243 1810 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))290
-1862 y({)338 1914 y(perror)g(\(arg\);)338 1966 y(return)g(1;)290
-2017 y(})243 2121 y(com_pwd)g(\(""\);)243 2173 y(return)g(\(0\);)195
-2225 y(})195 2329 y(/*)h(Print)f(out)g(the)h(current)f(working)f
-(directory.)h(*/)195 2381 y(com_pwd)g(\(ignore\))314
-2433 y(char)h(*ignore;)195 2484 y({)243 2536 y(char)f(dir[1024],)g(*s;)
-243 2640 y(s)g(=)h(getcwd)f(\(dir,)g(sizeof\(dir\))g(-)g(1\);)p
+%%Page: 67 71
+67 70 bop 150 -116 a Ft(F)-8 b(unction)30 b(and)g(V)-8
+b(ariable)30 b(Index)2370 b(67)150 299 y Fp(F)-13 b(unction)53
+b(and)g(V)-13 b(ariable)55 b(Index)p 159 610 41 6 v 150
+732 a Fd(_rl_digit_p)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)46 b Fb(36)150 822 y Fd(_rl_digit_value)15
+b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fb(36)150
+912 y Fd(_rl_lowercase_p)15 b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)40 b Fb(36)150 1002 y Fd(_rl_to_lower)22 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45
+b Fb(36)150 1092 y Fd(_rl_to_upper)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(36)150 1182 y Fd(_rl_uppercase_p)15
+b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fb(36)150
+1448 y Fr(A)150 1570 y Fd(abort)27 b(\(C-g\))9 b Fa(.)k(.)g(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(18)150
+1660 y Fd(accept-line)28 b(\(Newline)g(or)e(Return\))12
+b Fa(.)h(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37
+b Fb(13)150 1927 y Fr(B)150 2048 y Fd(backward-char)29
+b(\(C-b\))16 b Fa(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41 b Fb(13)150
+2138 y Fd(backward-delete-char)30 b(\(Rubout\))21 b Fa(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b
+Fb(15)150 2228 y Fd(backward-kill-line)30 b(\(C-x)c(Rubout\))f
+Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 b
+Fb(16)150 2318 y Fd(backward-kill-word)30 b(\(M-)999
+2315 y Fk(h)p 1024 2262 146 4 v 1024 2318 a Fj(DEL)p
+1024 2334 V 1165 2315 a Fk(i)1195 2318 y Fd(\))21 b Fa(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46
+b Fb(16)150 2408 y Fd(backward-word)29 b(\(M-b\))16 b
+Fa(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)41 b Fb(13)150 2498 y Fd
+(beginning-of-history)30 b(\(M-<\))25 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)49 b Fb(14)150
+2588 y Fd(beginning-of-line)29 b(\(C-a\))10 b Fa(.)k(.)e(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(13)150 2678 y(b)r(ell-st)n(yle)14 b Fa(.)f(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b
+Fb(5)150 2943 y Fr(C)150 3064 y Fd(call-last-kbd-macro)30
+b(\(C-x)c(e\))11 b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)36 b Fb(18)150 3154 y Fd(capitalize-word)29
+b(\(M-c\))13 b Fa(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(15)150 3244
+y Fd(character-search)29 b(\(C-]\))11 b Fa(.)j(.)e(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(18)150 3334 y Fd(character-search-backward)31 b(\(M-C-]\))14
+b Fa(.)g(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(19)150
+3424 y Fd(clear-screen)28 b(\(C-l\))17 b Fa(.)d(.)e(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+43 b Fb(13)150 3514 y(commen)n(t-b)r(egin)18 b Fa(.)10
+b(.)i(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44
+b Fb(5)150 3605 y Fd(complete)27 b(\()528 3602 y Fk(h)p
+553 3548 148 4 v 553 3605 a Fj(T)-6 b(AB)p 553 3620 V
+697 3602 a Fk(i)726 3605 y Fd(\))20 b Fa(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)45 b Fb(17)150 3695 y(completion-query-items)8
+b Fa(.)i(.)i(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(5)150 3785 y(con)n(v)n(ert-meta)17
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(5)150 3875 y Fd(copy-backward-word)30 b(\(\))13
+b Fa(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)38 b Fb(16)150 3965 y Fd(copy-forward-word)29
+b(\(\))14 b Fa(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(16)150 4055
+y Fd(copy-region-as-kill)30 b(\(\))11 b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(16)150 4321 y Fr(D)150 4443 y Fd(delete-char)28
+b(\(C-d\))20 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44
+b Fb(15)150 4533 y Fd(delete-char-or-list)30 b(\(\))11
+b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)37 b Fb(17)150 4623 y Fd(delete-horizontal-space)31
+b(\(\))24 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)49 b Fb(16)150 4713 y Fd(digit-argument)29
+b(\()p Fc(M-0)p Fd(,)e Fc(M-1)p Fd(,)f(...)g Fc(M--)p
+Fd(\))14 b Fa(.)g(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b
+Fb(17)150 4803 y(disable-completion)16 b Fa(.)d(.)f(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)42 b Fb(5)150 4893 y Fd(do-uppercase-version)30
+b(\(M-a,)d(M-b,)f(M-)p Fc(x)p Fd(,)h(...)q(\))318 4980
+y Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(18)150 5070 y Fd(downcase-word)29
+b(\(M-l\))16 b Fa(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41 b Fb(15)150
+5160 y Fd(dump-functions)29 b(\(\))19 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)44 b Fb(19)150 5250 y Fd(dump-macros)28 b(\(\))c
+Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48
+b Fb(19)150 5340 y Fd(dump-variables)29 b(\(\))19 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(19)2025 610 y
+Fr(E)2025 727 y Fb(editing-mo)r(de)18 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(5)2025 815
+y Fd(emacs-editing-mode)29 b(\(C-e\))8 b Fa(.)14 b(.)f(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34
+b Fb(19)2025 902 y(enable-k)n(eypad)18 b Fa(.)10 b(.)j(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)44 b Fb(5)2025 990 y
+Fd(end-kbd-macro)28 b(\(C-x)f(\)\))20 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45
+b Fb(18)2025 1077 y Fd(end-of-history)29 b(\(M->\))14
+b Fa(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)2025 1165 y Fd(end-of-line)28
+b(\(C-e\))20 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44
+b Fb(13)2025 1253 y Fd(exchange-point-and-mark)31 b(\(C-x)26
+b(C-x\))21 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
+b Fb(18)2025 1340 y(expand-tilde)11 b Fa(.)g(.)i(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(5)2025 1592
+y Fr(F)2025 1709 y Fd(forward-backward-delete-char)32
+b(\(\))16 b Fa(.)d(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42
+b Fb(15)2025 1796 y Fd(forward-char)28 b(\(C-f\))17 b
+Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(13)2025 1884 y
+Fd(forward-search-history)30 b(\(C-s\))22 b Fa(.)13 b(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)47 b Fb(14)2025 1972
+y Fd(forward-word)28 b(\(M-f\))17 b Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43
+b Fb(13)2025 2215 y Fr(H)2025 2332 y Fb(history-preserv)n(e-p)r(oin)n
+(t)16 b Fa(.)11 b(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(5)2025
+2419 y Fd(history-search-backward)31 b(\(\))24 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49
+b Fb(14)2025 2507 y Fd(history-search-forward)30 b(\(\))7
+b Fa(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)33 b Fb(14)2025 2595 y(horizon)n(tal-scroll-mo)r(de)11
+b Fa(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(6)2025 2830 y
+Fr(I)2025 2946 y Fb(input-meta)15 b Fa(.)c(.)h(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(6)2025 3034
+y Fd(insert-comment)29 b(\(M-#\))14 b Fa(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40
+b Fb(19)2025 3122 y Fd(insert-completions)29 b(\(M-*\))8
+b Fa(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)34 b Fb(17)2025 3209 y(isearc)n(h-terminators)6
+b Fa(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33 b Fb(6)2025
+3444 y Fr(K)2025 3561 y Fb(k)n(eymap)17 b Fa(.)11 b(.)h(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44
+b Fb(6)2025 3649 y Fd(kill-line)27 b(\(C-k\))c Fa(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(16)2025
+3736 y Fd(kill-region)28 b(\(\))23 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)49 b Fb(16)2025 3824 y Fd(kill-whole-line)29
+b(\(\))17 b Fa(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(16)2025
+3911 y Fd(kill-word)27 b(\(M-d\))c Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)47 b Fb(16)2025 4155 y Fr(M)2025 4272 y Fb(mark-mo)r
+(di\014ed-lines)15 b Fa(.)10 b(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42
+b Fb(6)2025 4359 y(mark-symlink)n(ed-directories)18 b
+Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)47 b Fb(6)2025 4447 y(matc)n(h-hidden-\014les)19
+b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(6)2025
+4534 y Fd(menu-complete)28 b(\(\))21 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)46 b Fb(17)2025 4622 y(meta-\015ag)9 b Fa(.)i(.)i(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(6)2025 4874 y Fr(N)2025 4990 y Fd(next-history)28
+b(\(C-n\))17 b Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(14)2025
+5078 y Fd(non-incremental-forward-search)q(-hist)q(ory)32
+b(\(M-n\))2193 5165 y Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)2025
+5253 y Fd(non-incremental-reverse-search)q(-hist)q(ory)32
+b(\(M-p\))2193 5340 y Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)p
eop
-%%Page: 56 58
-56 57 bop 75 -58 a Fu(56)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(if)23 b(\(s)h(==)f(0\))290 201 y({)338 253 y(printf)g
-(\("Error)g(getting)g(pwd:)g(\045s\\n",)g(dir\);)338
-305 y(return)g(1;)290 357 y(})243 461 y(printf)g(\("Current)f
-(directory)h(is)h(\045s\\n",)f(dir\);)243 513 y(return)g(0;)195
-565 y(})195 668 y(/*)h(The)f(user)g(wishes)g(to)h(quit)f(using)g(this)h
-(program.)46 b(Just)24 b(set)f(DONE)267 720 y(non-zero.)f(*/)195
-772 y(com_quit)h(\(arg\))314 824 y(char)h(*arg;)195 876
-y({)243 928 y(done)f(=)h(1;)243 980 y(return)f(\(0\);)195
-1032 y(})195 1135 y(/*)h(Function)e(which)i(tells)f(you)g(that)g(you)h
-(can't)f(do)h(this.)f(*/)195 1187 y(too_dangerous)f(\(caller\))314
-1239 y(char)i(*caller;)195 1291 y({)243 1343 y(fprintf)f(\(stderr,)457
-1395 y("\045s:)h(Too)f(dangerous)g(for)g(me)h(to)g(distribute.\\n")457
-1447 y(caller\);)243 1499 y(fprintf)f(\(stderr,)f("Write)h(it)h
-(yourself.\\n"\);)195 1550 y(})195 1654 y(/*)g(Return)f(non-zero)f(if)i
-(ARG)f(is)h(a)g(valid)f(argument)g(for)g(CALLER,)267
-1706 y(else)g(print)g(an)h(error)f(message)g(and)g(return)g(zero.)g(*/)
-195 1758 y(int)195 1810 y(valid_argument)f(\(caller,)h(arg\))314
-1862 y(char)h(*caller,)e(*arg;)195 1914 y({)243 1966
-y(if)h(\(!arg)g(||)h(!*arg\))290 2017 y({)338 2069 y(fprintf)f
-(\(stderr,)g("\045s:)g(Argument)g(required.\\n",)f(caller\);)338
-2121 y(return)h(\(0\);)290 2173 y(})243 2277 y(return)g(\(1\);)195
-2329 y(})p eop
-%%Page: 57 59
-57 58 bop 75 -58 a Fu(Concept)15 b(Index)1466 b(57)75
-149 y Fq(Concept)27 b(Index)75 321 y Fs(C)75 382 y Ff(command)14
-b(editing)e Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(1)75 511 y Fs(E)75 572 y Ff(editing)15 b(command)f(lines)f
-Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Ff(1)75 702 y Fs(I)75
-763 y Ff(initiali)q(zati)q(on)16 b(\014le,)e(readline)t
-Fe(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)17 b Ff(4)75 808 y(in)o(teraction,)e(readline)5
-b Fe(.)j(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(1)75
-938 y Fs(K)75 999 y Ff(kill)d(ring)8 b Fe(.)f(.)f(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20
-b Ff(3)75 1044 y(killing)c(text)9 b Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(2)1012 321
-y Fs(N)1012 390 y Ff(notation,)15 b(readline)7 b Fe(.)h(.)e(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(1)1012 539 y Fs(R)1012
-608 y Ff(readline,)15 b(function)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)21 b Ff(21)1012 757 y Fs(V)1012 826 y Ff(v)n(ariables,)15
-b(readline)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17
-b Ff(4)1012 976 y Fs(Y)1012 1044 y Ff(y)o(anking)e(text)t
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17
-b Ff(2)p eop
-%%Page: 58 60
-58 59 bop 75 -58 a Fu(58)1299 b(GNU)15 b(Readline)h(Library)p
+%%Page: 68 72
+68 71 bop 150 -116 a Ft(68)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fr(O)150 417 y Fb(output-meta)10 b Fa(.)h(.)h(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(7)150 506
+y Fd(overwrite-mode)29 b(\(\))19 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)44 b Fb(15)150 754 y Fr(P)150 872 y Fb(page-completions)22
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(7)150 961 y Fd(possible-completions)30 b(\(M-?\))25
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+49 b Fb(17)150 1049 y Fd(prefix-meta)28 b(\()646 1046
+y Fk(h)p 671 993 139 4 v 671 1049 a Fj(ESC)p 671 1064
+V 804 1046 a Fk(i)834 1049 y Fd(\))20 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+45 b Fb(18)150 1137 y Fd(previous-history)29 b(\(C-p\))11
+b Fa(.)j(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)37 b Fb(14)150 1396 y Fr(Q)150 1514 y
+Fd(quoted-insert)29 b(\(C-q)d(or)g(C-v\))20 b Fa(.)13
+b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(15)150 1772 y Fr(R)150 1891 y Fd(re-read-init-file)29
+b(\(C-x)e(C-r\))11 b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)36 b Fb(18)150 1979 y Fd(readline)7 b
+Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)32 b Fb(21)150 2068 y Fd(redraw-current-line)e(\(\))11
+b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)37 b Fb(13)150 2156 y Fd(reverse-search-history)31
+b(\(C-r\))22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)46 b Fb(14)150 2245 y Fd(revert-line)28 b(\(M-r\))20
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(18)150
+2333 y Fd(rl_add_defun)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)45 b Fb(28)150 2421 y Fd(rl_add_funmap_entry)9
+b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(31)150 2510
+y Fd(rl_add_undo)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)46 b Fb(32)150 2598 y Fd(rl_alphabetic)18
+b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
+b Fb(36)150 2687 y Fd(rl_already_prompted)9 b Fa(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(25)150 2775 y Fd
+(rl_attempted_completion_funct)q(ion)9 b Fa(.)18 b(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150 2864 y
+Fd(rl_attempted_completion_over)15 b Fa(.)j(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(46)150 2952 y Fd
+(rl_basic_quote_characters)18 b Fa(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fb(44)150 3041
+y Fd(rl_basic_word_break_character)q(s)11 b Fa(.)18 b(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b Fb(44)150
+3129 y Fd(rl_begin_undo_group)9 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34
+b Fb(32)150 3217 y Fd(rl_bind_key)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(29)150 3306 y
+Fd(rl_bind_key_if_unbound)28 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(29)150
+3394 y Fd(rl_bind_key_if_unbound_in_map)14 b Fa(.)j(.)c(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(29)150 3483 y Fd(rl_bind_key_in_map)
+10 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(29)150
+3571 y Fd(rl_bind_keyseq)16 b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)42 b Fb(30)150 3660 y Fd(rl_bind_keyseq_if_unbound)18
+b Fa(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)44 b Fb(30)150 3748 y Fd(rl_bind_keyseq_if_unbound_in_)q(map)9
+b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b
+Fb(30)150 3836 y Fd(rl_bind_keyseq_in_map)29 b Fa(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)50 b Fb(30)150 3925 y Fd(rl_binding_keymap)12
+b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(26)150 4013
+y Fd(rl_callback_handler_install)16 b Fa(.)i(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fb(37)150 4102 y
+Fd(rl_callback_handler_remove)17 b Fa(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(37)150 4190 y
+Fd(rl_callback_read_char)29 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fb(37)150
+4279 y Fd(rl_catch_signals)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+39 b Fb(40)150 4367 y Fd(rl_catch_sigwinch)12 b Fa(.)k(.)c(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)37 b Fb(40)150 4456 y Fd(rl_char_is_quoted_p)9
+b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(44)150 4544
+y Fd(rl_cleanup_after_signal)26 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(40)150
+4632 y Fd(rl_clear_message)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+39 b Fb(33)150 4721 y Fd(rl_clear_pending_input)28 b
+Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)48 b Fb(35)150 4809 y Fd(rl_clear_signals)13
+b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fb(41)150
+4898 y Fd(rl_complete)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)46 b Fb(42)150 4986 y Fd(rl_complete_internal)7
+b Fa(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(42)150 5075 y Fd
+(rl_completer_quote_characters)14 b Fa(.)j(.)c(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)38 b Fb(45)150 5163 y Fd
+(rl_completer_word_break_chara)q(cter)q(s)29 b Fa(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(45)150 5252 y Fd
+(rl_completion_append_characte)q(r)11 b Fa(.)18 b(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b Fb(45)150
+5340 y Fd(rl_completion_display_matches)q(_hoo)q(k)29
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(44)2025 299
+y Fd(rl_completion_entry_function)7 b Fa(.)18 b(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fb(42,)27 b(43)2025
+387 y Fd(rl_completion_found_quote)18 b Fa(.)g(.)12 b(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(46)2025
+476 y Fd(rl_completion_mark_symlink_dir)q(s)10 b Fa(.)18
+b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(46)2025
+564 y Fd(rl_completion_matches)29 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)50
+b Fb(42)2025 653 y Fd(rl_completion_mode)10 b Fa(.)17
+b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(42)2025 741 y Fd
+(rl_completion_query_items)18 b Fa(.)g(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(45)2025 830
+y Fd(rl_completion_quote_character)13 b Fa(.)18 b(.)13
+b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(45)2025
+918 y Fd(rl_completion_suppress_append)13 b Fa(.)18 b(.)13
+b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(45)2025
+1006 y Fd(rl_completion_suppress_quote)15 b Fa(.)i(.)c(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(46)2025 1095 y
+Fd(rl_completion_type)10 b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
+b Fb(46)2025 1183 y Fd(rl_completion_word_break_hook)13
+b Fa(.)18 b(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(45)2025 1272 y Fd(rl_copy_keymap)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)42 b Fb(28)2025 1360 y Fd(rl_copy_text)22
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(34)2025 1449 y Fd(rl_crlf)8 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(33)2025
+1537 y Fd(rl_delete_text)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)42 b Fb(34)2025 1625 y Fd(rl_deprep_term_function)26
+b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)47 b Fb(26)2025 1714 y Fd(rl_deprep_terminal)10
+b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(35)2025
+1802 y Fd(rl_ding)8 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(36)2025 1891
+y Fd(rl_directory_completion_hook)15 b Fa(.)i(.)c(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(44)2025 1979 y Fd(rl_discard_keymap)
+12 b Fa(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38 b Fb(29)2025
+2068 y Fd(rl_dispatching)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)42 b Fb(24)2025 2156 y Fd(rl_display_match_list)29
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)50 b Fb(36)2025 2245 y Fd(rl_do_undo)24
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fb(32)2025 2333 y Fd(rl_done)8 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(24)2025
+2421 y Fd(rl_editing_mode)15 b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)40 b Fb(28)2025 2510 y Fd(rl_end)10 b Fa(.)j(.)f(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(24)2025 2598 y Fd(rl_end_undo_group)12 b Fa(.)k(.)c(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)38 b Fb(32)2025 2687 y Fd(rl_erase_empty_line)9
+b Fa(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(24)2025 2775 y
+Fd(rl_event_hook)18 b Fa(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)43 b Fb(26)2025 2864 y Fd(rl_execute_next)15 b Fa(.)g(.)e(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(35)2025 2952 y Fd(rl_executing_keymap)9
+b Fa(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(26)2025 3041 y
+Fd(rl_executing_macro)10 b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
+b Fb(26)2025 3129 y Fd(rl_expand_prompt)13 b Fa(.)j(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)39 b Fb(33)2025 3217 y Fd(rl_explicit_arg)15
+b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(27)2025
+3306 y Fd(rl_extend_line_buffer)29 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)50
+b Fb(35)2025 3394 y Fd(rl_filename_completion_desired)12
+b Fa(.)18 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(46)2025 3483 y Fd(rl_filename_completion_functio)q(n)10
+b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(43)2025 3571 y Fd(rl_filename_dequoting_function)12
+b Fa(.)18 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fb(43)2025 3660 y Fd(rl_filename_quote_characters)15
+b Fa(.)i(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(45)2025 3748 y Fd(rl_filename_quoting_desired)16
+b Fa(.)i(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(46)2025 3836 y Fd(rl_filename_quoting_function)15
+b Fa(.)i(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fb(43)2025 3925 y Fd(rl_forced_update_display)25 b
+Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)46 b Fb(33)2025 4013 y Fd(rl_free_line_state)10
+b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(40)2025
+4102 y Fd(rl_free_undo_list)12 b Fa(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38
+b Fb(32)2025 4190 y Fd(rl_function_dumper)10 b Fa(.)17
+b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(31)2025 4279 y Fd
+(rl_function_of_keyseq)29 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)50 b Fb(31)2025
+4367 y Fd(rl_funmap_names)15 b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)40 b Fb(31)2025 4456 y Fd(rl_generic_bind)15 b Fa(.)g(.)e(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(30)2025 4544 y Fd(rl_get_keymap)18
+b Fa(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
+b Fb(29)2025 4632 y Fd(rl_get_keymap_by_name)29 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)50 b Fb(29)2025 4721 y Fd(rl_get_keymap_name)10
+b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(29)2025
+4809 y Fd(rl_get_screen_size)10 b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+36 b Fb(40)2025 4898 y Fd(rl_get_termcap)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)42 b Fb(37)2025 4986 y Fd(rl_getc)8
+b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)34 b Fb(34)2025 5075 y Fd(rl_getc_function)13
+b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(26)2025
+5163 y Fd(rl_gnu_readline_p)12 b Fa(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38
+b Fb(25)2025 5252 y Fd(rl_ignore_completion_duplicate)q(s)10
+b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(46)2025 5340 y Fd(rl_ignore_some_completions_fun)q(ction)29
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)48 b Fb(44)p eop
+%%Page: 69 73
+69 72 bop 150 -116 a Ft(F)-8 b(unction)30 b(and)g(V)-8
+b(ariable)30 b(Index)2370 b(69)150 299 y Fd(rl_inhibit_completion)29
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)50 b Fb(47)150 386 y Fd(rl_initialize)18
+b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
+b Fb(36)150 473 y Fd(rl_insert_completions)29 b Fa(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)50 b Fb(42)150 561 y Fd(rl_insert_text)16
+b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b
+Fb(34)150 648 y Fd(rl_instream)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(25)150 735 y Fd
+(rl_invoking_keyseqs)9 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34
+b Fb(31)150 823 y Fd(rl_invoking_keyseqs_in_map)17 b
+Fa(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(31)150 910 y Fd(rl_kill_text)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(34)150 997 y Fd(rl_last_func)22
+b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45
+b Fb(25)150 1084 y Fd(rl_library_version)10 b Fa(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(25)150 1172 y Fd(rl_line_buffer)16
+b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b
+Fb(24)150 1259 y Fd(rl_list_funmap_names)7 b Fa(.)17
+b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)33 b Fb(31)150 1346 y Fd(rl_macro_bind)18
+b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
+b Fb(36)150 1433 y Fd(rl_macro_dumper)15 b Fa(.)g(.)e(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)40 b Fb(36)150 1521 y Fd(rl_make_bare_keymap)9
+b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(28)150 1608
+y Fd(rl_make_keymap)16 b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+42 b Fb(28)150 1695 y Fd(rl_mark)8 b Fa(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b
+Fb(24)150 1783 y Fd(rl_message)24 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(33)150 1870 y
+Fd(rl_modifying)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)45 b Fb(32)150 1957 y Fd(rl_named_function)12
+b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(31)150 2044
+y Fd(rl_num_chars_to_read)7 b Fa(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fb(24)150 2132 y Fd(rl_numeric_arg)16 b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)42 b Fb(28)150 2219 y Fd(rl_on_new_line)16
+b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b
+Fb(33)150 2306 y Fd(rl_on_new_line_with_prompt)17 b Fa(.)h(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(33)150 2393 y Fd(rl_outstream)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(25)150 2481 y Fd(rl_parse_and_bind)
+12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(30)150
+2568 y Fd(rl_pending_input)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+39 b Fb(24)150 2655 y Fd(rl_point)7 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(24)150
+2743 y Fd(rl_possible_completions)26 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b
+Fb(42)150 2830 y Fd(rl_pre_input_hook)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)37 b Fb(25)150 2917 y Fd(rl_prep_term_function)29
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)50 b Fb(26)150 3004 y Fd(rl_prep_terminal)13
+b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fb(35)150
+3092 y Fd(rl_prompt)25 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(25)150 3179 y Fd(rl_push_macro_input)9
+b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(34)150 3266
+y Fd(rl_read_init_file)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37
+b Fb(31)150 3353 y Fd(rl_read_key)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(34)150 3441 y
+Fd(rl_readline_name)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39
+b Fb(25)150 3528 y Fd(rl_readline_state)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)37 b Fb(26)150 3615 y Fd(rl_readline_version)9
+b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(25)150 3703
+y Fd(rl_redisplay)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)45 b Fb(32)150 3790 y Fd(rl_redisplay_function)29
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)50 b Fb(26)150 3877 y Fd(rl_replace_line)15
+b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fb(35)150
+3964 y Fd(rl_reset_after_signal)29 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50
+b Fb(40)150 4052 y Fd(rl_reset_line_state)9 b Fa(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(33)150 4139 y Fd(rl_reset_terminal)12
+b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(35)150 4226
+y Fd(rl_resize_terminal)10 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fb(40)150 4314 y Fd(rl_restore_prompt)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)37 b Fb(33)150 4401 y Fd(rl_save_prompt)16 b
+Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(33)150
+4488 y Fd(rl_set_key)24 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)47 b Fb(30)150 4575 y Fd
+(rl_set_keyboard_input_timeout)14 b Fa(.)j(.)c(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)38 b Fb(35)150 4663 y Fd(rl_set_keymap)18
+b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
+b Fb(29)150 4750 y Fd(rl_set_paren_blink_timeout)17 b
+Fa(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(37)150 4837 y Fd(rl_set_prompt)18 b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)43 b Fb(34)2025 299 y Fd(rl_set_screen_size)10
+b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(40)2025
+386 y Fd(rl_set_signals)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)42 b Fb(41)2025 474 y Fd(rl_show_char)22 b Fa(.)12
+b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fb(33)2025 562 y Fd(rl_special_prefixes)9 b Fa(.)16
+b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(45)2025 649 y Fd(rl_startup_hook)15
+b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(25)2025
+737 y Fd(rl_stuff_char)18 b Fa(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)43 b Fb(34)2025 824 y Fd(rl_terminal_name)13
+b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(25)2025
+912 y Fd(rl_tty_set_default_bindings)16 b Fa(.)i(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fb(35)2025 1000 y Fd(rl_tty_unset_default_bindings)13
+b Fa(.)18 b(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(35)2025 1087 y Fd(rl_unbind_command_in_map)25 b
+Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)46 b Fb(30)2025 1175 y Fd(rl_unbind_function_in_map)18
+b Fa(.)g(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)44 b Fb(30)2025 1262 y Fd(rl_unbind_key)18 b Fa(.)d(.)d(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(30)2025 1350 y Fd
+(rl_unbind_key_in_map)7 b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fb(30)2025 1438 y Fd(rl_username_completion_functio)q(n)10
+b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fb(43)2025 1525 y Fd(rl_variable_bind)13 b Fa(.)j(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)39 b Fb(37)2025 1613 y Fd(rl_variable_dumper)10
+b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(37)2025
+1866 y Fr(S)2025 1983 y Fd(self-insert)28 b(\(a,)e(b,)g(A,)g(1,)g(!,)g
+(...)q(\))13 b Fa(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38
+b Fb(15)2025 2071 y Fd(set-mark)27 b(\(C-@\))d Fa(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 b Fb(18)2025
+2158 y(sho)n(w-all-if-am)n(biguous)21 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)47 b Fb(7)2025 2246 y(sho)n(w-all-if-unmo)r(di\014ed)12
+b Fa(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fb(7)2025 2333 y
+Fd(start-kbd-macro)29 b(\(C-x)d(\(\))17 b Fa(.)c(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
+b Fb(18)2025 2577 y Fr(T)2025 2694 y Fd(tab-insert)28
+b(\(M-)2560 2691 y Fk(h)p 2585 2637 148 4 v 2585 2694
+a Fj(T)-6 b(AB)p 2585 2709 V 2728 2691 a Fk(i)2758 2694
+y Fd(\))13 b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(15)2025 2781
+y Fd(tilde-expand)28 b(\(M-~\))17 b Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43
+b Fb(18)2025 2869 y Fd(transpose-chars)29 b(\(C-t\))13
+b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)39 b Fb(15)2025 2956 y Fd(transpose-words)29
+b(\(M-t\))13 b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)39 b Fb(15)2025 3210
+y Fr(U)2025 3327 y Fd(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))15
+b Fa(.)e(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)41 b Fb(18)2025 3414 y Fd(universal-argument)29
+b(\(\))13 b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)39 b Fb(17)2025 3502 y
+Fd(unix-filename-rubout)30 b(\(\))10 b Fa(.)j(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fb(16)2025 3589 y Fd(unix-line-discard)29 b(\(C-u\))10
+b Fa(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)36 b Fb(16)2025 3677 y Fd(unix-word-rubout)29
+b(\(C-w\))11 b Fa(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)37 b Fb(16)2025 3765 y
+Fd(upcase-word)28 b(\(M-u\))20 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+44 b Fb(15)2025 4018 y Fr(V)2025 4135 y Fd(vi-editing-mode)29
+b(\(M-C-j\))10 b Fa(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(19)2025 4223 y(visible-stats)22
+b Fa(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+47 b Fb(7)2025 4458 y Fr(Y)2025 4574 y Fd(yank)26 b(\(C-y\))11
+b Fa(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36
+b Fb(17)2025 4662 y Fd(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))20
+b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)45 b Fb(14)2025 4750 y Fd(yank-nth-arg)28 b(\(M-C-y\))14
+b Fa(.)g(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)2025 4837 y Fd(yank-pop)27
+b(\(M-y\))d Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49
+b Fb(17)p eop
+%%Page: 70 74
+70 73 bop 150 -116 a Ft(70)2600 b(GNU)31 b(Readline)e(Library)p
eop
-%%Page: 59 61
-59 60 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
-b(59)75 149 y Fq(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
-b(Index)p 79 307 21 3 v 75 369 a Fd(_rl_digit_)o(p)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(36)75 415 y Fd(_rl_digit_)o(va)o(lue)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)20 b Ff(37)75 462 y Fd(_rl_lowerc)o(as)o(e_p)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(36)75
-508 y Fd(_rl_to_low)o(er)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)22 b Ff(36)75 554 y Fd(_rl_to_upp)o(er)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(36)75 600 y Fd(_rl_upperc)o(as)o(e_p)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)20 b Ff(36)75 733 y Fs(A)75 794 y
-Fd(abort)11 b(\(C-g\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)17 b Ff(17)75 841 y Fd(accept-lin)o(e)10
-b(\(Newline)f(or)j(Return\))6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)19 b Ff(12)75 973 y Fs(B)75 1035 y Fd(backward-c)o(ha)o(r)10
-b(\(C-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(12)75
-1081 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))e
-Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(14)75 1127 y Fd(backward-k)o(il)o(l-l)o(in)o(e)10
-b(\(C-x)h(Rubout\))e Fe(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(15)75 1174 y Fd(backward-k)o(il)o(l-w)o(or)o(d)10
-b(\(M-)501 1172 y Fn(h)p 512 1146 73 2 v 512 1174 a Fm(DEL)p
-512 1181 V 583 1172 a Fn(i)598 1174 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 b Ff(15)75 1220 y
-Fd(backward-w)o(or)o(d)10 b(\(M-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21
-b Ff(12)75 1266 y Fd(beginning-)o(of)o(-hi)o(st)o(ory)9
-b(\(M-<\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)25 b Ff(13)75 1312 y Fd(beginning-)o(of)o(-li)o(ne)9
-b(\(C-a\))c Fe(.)t(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(12)75 1359 y(b)q(ell-st)o(yle)7
-b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)20 b Ff(5)75 1490 y Fs(C)75 1552 y Fd(call-last-)o(kb)o(d-m)
-o(ac)o(ro)9 b(\(C-x)j(e\))5 b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)18 b Ff(17)75 1598 y Fd(capitalize)o(-w)o(ord)9
-b(\(M-c\))d Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(14)75 1644 y Fd(character-)o(se)
-o(arc)o(h)10 b(\(C-]\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(18)75
-1691 y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9
-b(\(M-C-]\))e Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(18)75 1737 y Fd(clear-scre)o(en)9 b(\(C-l\))g Fe(.)t(.)d(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)21 b Ff(12)75 1783 y(commen)o(t-b)q(egin)9
-b Fe(.)f(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)21
-b Ff(5)75 1829 y Fd(complete)10 b(\()265 1827 y Fn(h)p
-276 1801 74 2 v 276 1829 a Fm(T)m(AB)p 276 1837 V 348
-1827 a Fn(i)363 1829 y Fd(\))f Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-22 b Ff(16)75 1875 y(completion-query-i)q(tems)t Fe(.)9
-b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(5)75 1922 y(con)o(v)o(ert-meta)10
-b Fe(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
-b Ff(5)75 1968 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10
-b(\(\))c Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)75 2014 y Fd(copy-forwa)o(rd)o
-(-wo)o(rd)9 b(\(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75
-2060 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(15)75 2193 y Fs(D)75 2255 y Fd(delete-cha)o(r)10
-b(\(C-d\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(14)75
-2301 y Fd(delete-cha)o(r-)o(or-)o(li)o(st)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(17)75 2347 y Fd(delete-hor)o(iz)o(ont)o(al)o
-(-sp)o(ace)9 b(\(\))i Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)25 b Ff(15)75 2393 y Fd(digit-argu)o(me)o(nt)9
-b(\()p Fc(M-0)p Fd(,)i Fc(M-1)p Fd(,)h(...)f Fc(M--)p
-Fd(\))c Fe(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75
-2439 y(disable-comple)q(tion)9 b Fe(.)g(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)21 b Ff(5)75 2486 y Fd(do-upperca)o(se)o(-ve)o(rs)o(ion)9
-b(\(M-a,)i(M-b,)g(M-)p Fb(x)p Fd(,)h(...)o(\))159 2531
-y Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(17)75 2578 y Fd(downcase-w)o(or)o(d)10
-b(\(M-l\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(14)75
-2624 y Fd(dump-funct)o(io)o(ns)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)22 b Ff(18)75 2670 y Fd(dump-macro)o(s)10 b(\(\))g
-Fe(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Ff(18)1012
-307 y Fd(dump-variab)o(le)o(s)10 b(\(\))e Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)23 b Ff(18)1012 449 y Fs(E)1012 514 y Ff(editing-mo)q(de)12
-b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(5)1012 562 y Fd(emacs-editi)o(ng)o(-mo)o(de)9 b(\(C-e\))t
-Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)18 b Ff(18)1012 610 y(enable-k)o(eypad)9 b Fe(.)g(.)d(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(5)1012
-658 y Fd(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))e Fe(.)e(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23
-b Ff(17)1012 706 y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))d
-Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 754 y Fd(end-of-line)9
-b(\(C-e\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(12)1012
-802 y Fd(exchange-po)o(in)o(t-a)o(nd)o(-ma)o(rk)9 b(\(C-x)j(C-x\))c
-Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(18)1012
-850 y(expand-tilde)6 b Fe(.)j(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)19 b Ff(5)1012 991 y Fs(F)1012 1056
-y Fd(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o(-ch)o(ar)9
-b(\(\))f Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
-b Ff(14)1012 1104 y Fd(forward-cha)o(r)10 b(\(C-f\))f
-Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1152 y
-Fd(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))e
-Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
-b Ff(13)1012 1200 y Fd(forward-wor)o(d)10 b(\(M-f\))f
-Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1334 y
-Fs(H)1012 1400 y Ff(history-preserv)o(e-p)q(oi)q(n)o(t)8
-b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Ff(5)1012 1448 y
-Fd(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9 b(\(\))i
-Fe(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)25
-b Ff(13)1012 1496 y Fd(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10
-b(\(\))s Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Ff(13)1012 1543 y(horizon)o(tal-scrol)q(l-mo)r(de)6
-b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(6)1012 1678 y
-Fs(I)1012 1743 y Ff(input-meta)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012 1791
-y Fd(insert-comm)o(en)o(t)10 b(\(M-#\))d Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(18)1012 1839 y Fd(insert-comp)o(le)o(tio)o(ns)9
-b(\(M-*\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)18 b Ff(16)1012 1887 y(isearc)o(h-terminators)t
-Fe(.)8 b(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 b Ff(6)1012
-2021 y Fs(K)1012 2087 y Ff(k)o(eymap)9 b Fe(.)e(.)f(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(6)1012 2135 y Fd(kill-line)10 b(\(C-k\))f Fe(.)d(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)24 b Ff(15)1012 2183 y Fd(kill-region)9
-b(\(\))i Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(15)1012 2231 y Fd(kill-whole-)o(li)o(ne)9 b(\(\))g
-Fe(.)c(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(15)1012 2278 y
-Fd(kill-word)10 b(\(M-d\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-24 b Ff(15)1012 2413 y Fs(M)1012 2478 y Ff(mark-mo)q(di\014ed-li)q(nes)
-8 b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012
-2526 y(mark-symlink)o(ed-di)q(rectori)q(es)14 b Fe(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)23 b Ff(6)1012 2574 y(matc)o(h-hidden-\014l)q(es)14
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Ff(6)1012
-2622 y Fd(menu-comple)o(te)9 b(\(\))g Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)23 b Ff(16)1012 2670 y(meta-\015ag)t Fe(.)8 b(.)e(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18
-b Ff(6)p eop
-%%Page: 60 62
-60 61 bop 75 -58 a Fu(60)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fs(N)75 210 y Fd(next-histo)o(ry)9 b(\(C-n\))g
-Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(13)75 256 y Fd(non-increm)o(en)o
-(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9
-b(\(M-n\))159 302 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(13)75
-347 y Fd(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o
-(st)o(ory)9 b(\(M-p\))159 393 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(13)75 515 y Fs(O)75 576 y Ff(output-meta)5 b Fe(.)i(.)f(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(6)75
-622 y Fd(overwrite-)o(mo)o(de)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)22 b Ff(15)75 744 y Fs(P)75 805 y Ff(page-completions)14
-b Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23
-b Ff(7)75 851 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9
-b(\(M-?\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)25 b Ff(16)75 897 y Fd(prefix-met)o(a)10 b(\()324
-895 y Fn(h)p 335 868 70 2 v 335 897 a Fm(ESC)p 335 904
-V 402 895 a Fn(i)417 897 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23
-b Ff(17)75 942 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))c
-Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(12)75 1072 y Fs(Q)75 1133 y Fd(quoted-ins)o(er)o
-(t)10 b(\(C-q)h(or)h(C-v\))c Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(14)75 1263 y Fs(R)75
-1323 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))5
-b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Ff(17)75 1369 y Fd(readline)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(21)75
-1415 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(12)75 1461 y Fd(reverse-se)o(ar)o(ch-)o(hi)o
-(sto)o(ry)9 b(\(C-r\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)23 b Ff(13)75 1506 y Fd(revert-lin)o(e)10
-b(\(M-r\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(17)75
-1552 y Fd(rl_add_def)o(un)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)22 b Ff(28)75 1598 y Fd(rl_add_fun)o(ma)o(p_e)o(nt)o(ry)
-t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75 1643 y Fd(rl_add_und)o(o)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(32)75 1689 y Fd(rl_alphabe)o(ti)o(c)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 1735 y Fd(rl_already)o(_p)o(rom)o
-(pt)o(ed)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(25)75
-1781 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_f)o(unc)o(ti)o(on)t
-Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(43)75
-1826 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)6
-b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(46)75 1872 y Fd(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-22 b Ff(45)75 1918 y Fd(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o(ra)o
-(cte)o(rs)5 b Fe(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Ff(45)75 1964 y Fd(rl_begin_u)o(nd)o(o_g)o(ro)o(up)t
-Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(32)75 2009 y Fd(rl_bind_ke)o(y)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(30)75 2055 y Fd(rl_bind_ke)o(y_)o(in_)o(ma)o(p)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(30)75 2101 y
-Fd(rl_binding)o(_k)o(eym)o(ap)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(27)75 2146 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7
-b Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(38)75 2192 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
-b Ff(38)75 2238 y Fd(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(38)75 2284 y Fd(rl_catch_s)o(ig)o(nal)o(s)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(40)75
-2329 y Fd(rl_catch_s)o(ig)o(win)o(ch)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)19 b Ff(40)75 2375 y Fd(rl_char_is)o(_q)o(uot)o(ed)o(_p)t
-Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(44)75 2421 y Fd(rl_cleanup)o(_a)o
-(fte)o(r_)o(sig)o(nal)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(40)75 2467 y
-Fd(rl_clear_m)o(es)o(sag)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-19 b Ff(33)75 2512 y Fd(rl_clear_p)o(en)o(din)o(g_)o(inp)o(ut)8
-b Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)24 b Ff(35)1012 149 y Fd(rl_clear_si)o(gn)o(als)6
-b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(41)1012
-196 y Fd(rl_complete)6 b Fe(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)24 b Ff(42)1012 242 y Fd(rl_complete)o(_i)o(nte)o(rn)o(al)s
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(42)1012 288 y Fd(rl_complete)o(r_)o
-(quo)o(te)o(_ch)o(ar)o(act)o(ers)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)20 b Ff(45)1012 335 y Fd(rl_complete)o(r_)o(wor)o
-(d_)o(bre)o(ak)o(_ch)o(ara)o(ct)o(ers)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)
-25 b Ff(45)1012 381 y Fd(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o
-(cte)o(r)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(45)1012 427 y Fd(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o
-(hes)o(_h)o(ook)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)25 b
-Ff(45)1012 474 y Fd(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o(on)s
-Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(42,)c(43)1012
-520 y Fd(rl_completi)o(on)o(_ma)o(rk)o(_sy)o(ml)o(ink)o(_di)o(rs)t
-Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(46)1012
-566 y Fd(rl_completi)o(on)o(_ma)o(tc)o(hes)8 b Fe(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(43)1012 613 y Fd(rl_completi)o(on)o(_mo)o(de)t Fe(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(43)1012 659 y Fd(rl_completi)o(on)o(_qu)
-o(er)o(y_i)o(te)o(ms)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(45)1012 705 y Fd(rl_completi)o(on)o(_su)
-o(pp)o(res)o(s_)o(app)o(end)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)20 b Ff(46)1012 752 y Fd(rl_completi)o(on)o(_ty)o(pe)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(46)1012 798 y
-Fd(rl_copy_key)o(ma)o(p)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)21 b Ff(29)1012 844 y Fd(rl_copy_tex)o(t)6 b Fe(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)1012 891 y
-Fd(rl_crlf)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(33)1012 937 y Fd(rl_delete_t)o(ex)o(t)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b
-Ff(34)1012 983 y Fd(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)7
-b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)24 b Ff(26)1012 1030 y Fd(rl_deprep_t)o(er)o(min)o(al)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(35)1012 1076
-y Fd(rl_ding)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(36)1012 1122 y Fd(rl_director)o(y_)o
-(com)o(pl)o(eti)o(on)o(_ho)o(ok)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(44)1012 1169 y Fd(rl_discard_)o(ke)o
-(yma)o(p)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(29)1012
-1215 y Fd(rl_dispatch)o(in)o(g)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)21 b Ff(25)1012 1261 y Fd(rl_display_)o(ma)o(tch)o(_l)o
-(ist)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)25 b Ff(36)1012 1308 y Fd(rl_do_undo)8
-b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(32)1012 1354 y Fd(rl_done)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(24)1012
-1400 y Fd(rl_editing_)o(mo)o(de)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)21 b Ff(28)1012 1447 y Fd(rl_end)5 b Fe(.)t(.)h(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
-b Ff(24)1012 1493 y Fd(rl_end_undo)o(_g)o(rou)o(p)6 b
-Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(32)1012 1539
-y Fd(rl_erase_em)o(pt)o(y_l)o(in)o(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18
-b Ff(25)1012 1586 y Fd(rl_event_ho)o(ok)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(26)1012 1632 y Fd(rl_execute_)o(ne)o
-(xt)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(35)1012 1678 y Fd(rl_executin)o(g_)o(key)o(ma)o(p)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(26)1012 1725 y Fd(rl_executin)o(g_)
-o(mac)o(ro)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(27)1012
-1771 y Fd(rl_expand_p)o(ro)o(mpt)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)20 b Ff(34)1012 1817 y Fd(rl_explicit)o(_a)o(rg)7
-b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(28)1012
-1864 y Fd(rl_extend_l)o(in)o(e_b)o(uf)o(fer)8 b Fe(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(36)1012 1910 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(des)o
-(ire)o(d)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(46)1012 1956 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o
-(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
-b Ff(43)1012 2003 y Fd(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o
-(tio)o(n)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(44)1012 2049 y Fd(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o
-(rs)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(45)1012 2095 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o
-(d)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Ff(46)1012 2142 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o(cti)o
-(on)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(44)1012 2188 y Fd(rl_forced_u)o(pd)o(ate)o(_d)o(isp)o(la)o(y)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)23 b Ff(33)1012 2234 y Fd(rl_free_lin)o(e_)o(sta)o(te)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(40)1012 2281
-y Fd(rl_free_und)o(o_)o(lis)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-19 b Ff(32)1012 2327 y Fd(rl_function)o(_d)o(ump)o(er)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(31)1012 2373
-y Fd(rl_function)o(_o)o(f_k)o(ey)o(seq)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(31)1012 2420 y Fd(rl_funmap_n)o(am)o(es)7 b Fe(.)s(.)f(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)21 b Ff(31)1012 2466 y Fd(rl_generic_)o(bi)o(nd)7
-b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(30)1012
-2512 y Fd(rl_get_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)22 b Ff(29)p eop
-%%Page: 61 63
-61 62 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
-b(61)75 149 y Fd(rl_get_key)o(ma)o(p_b)o(y_)o(nam)o(e)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(29)75 196 y Fd(rl_get_key)o(ma)o(p_n)o(am)o(e)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(29)75 242 y Fd(rl_get_scr)o(ee)
-o(n_s)o(iz)o(e)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18
-b Ff(41)75 288 y Fd(rl_get_ter)o(mc)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)21 b Ff(37)75 335 y Fd(rl_getc)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Ff(35)75 381 y Fd(rl_getc_fu)o(nc)o(tio)o(n)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(26)75
-427 y Fd(rl_gnu_rea)o(dl)o(ine)o(_p)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)19 b Ff(25)75 474 y Fd(rl_ignore_)o(co)o(mpl)o(et)o(ion)o(_du)o(pl)
-o(ica)o(te)o(s)5 b Fe(.)s(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18
-b Ff(46)75 520 y Fd(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o(s_f)o
-(un)o(cti)o(on)7 b Fe(.)g(.)f(.)g(.)g(.)g(.)24 b Ff(44)75
-566 y Fd(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(47)75 613 y Fd(rl_initial)o(iz)o(e)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 659 y Fd(rl_insert_)o(co)o(mpl)o
-(et)o(ion)o(s)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(43)75 705 y Fd(rl_insert_)o(te)
-o(xt)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(34)75 752 y Fd(rl_instrea)o(m)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(25)75 798 y Fd(rl_invokin)o(g_)o
-(key)o(se)o(qs)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75
-844 y Fd(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o(p)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
-b Ff(31)75 891 y Fd(rl_kill_te)o(xt)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(34)75 937 y Fd(rl_last_fu)o(nc)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(26)75 983 y Fd(rl_library)o(_v)o(ers)o(io)o(n)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(25)75 1030 y
-Fd(rl_line_bu)o(ff)o(er)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)21 b Ff(24)75 1076 y Fd(rl_list_fu)o(nm)o(ap_)o(na)o(mes)s
-Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(31)75 1122 y Fd(rl_macro_b)o(in)o(d)9
-b Fe(.)s(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
-b Ff(37)75 1169 y Fd(rl_macro_d)o(um)o(per)6 b Fe(.)t(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)20 b Ff(37)75 1215 y Fd(rl_make_ba)o(re)o(_ke)o(ym)
-o(ap)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(29)75 1261
-y Fd(rl_make_ke)o(ym)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)21 b Ff(29)75 1308 y Fd(rl_mark)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17
-b Ff(24)75 1354 y Fd(rl_message)7 b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(33)75 1400 y Fd(rl_modifyi)o(ng)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(32)75 1447 y Fd(rl_named_f)o(un)o(cti)o(on)5 b Fe(.)s(.)i(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)19 b Ff(31)75 1493 y Fd(rl_num_cha)o(rs)o(_to)o(_r)o
-(ead)s Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(24)75 1539 y Fd(rl_numeric)o(_a)
-o(rg)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(28)75 1586 y Fd(rl_on_new_)o(li)o(ne)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(33)75 1632 y Fd(rl_on_new_)o(li)o(ne_)o
-(wi)o(th_)o(pro)o(mp)o(t)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(33)75 1678 y Fd(rl_outstre)o(am)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(26)75 1725 y Fd(rl_parse_a)o(nd)o(_bi)o(nd)5 b Fe(.)s(.)i(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)19 b Ff(31)75 1771 y Fd(rl_pending)o(_i)o(npu)o(t)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(24)75
-1817 y Fd(rl_point)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(24)75 1864 y Fd(rl_possibl)o(e_)o
-(com)o(pl)o(eti)o(ons)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(42)75 1910 y
-Fd(rl_pre_inp)o(ut)o(_ho)o(ok)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(26)75 1956 y Fd(rl_prep_te)o(rm)o(_fu)o(nc)o(tio)o(n)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(26)75 2003 y Fd(rl_prep_te)o(rm)o(ina)o(l)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(35)75
-2049 y Fd(rl_prompt)8 b Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)24 b Ff(25)75 2095 y Fd(rl_push_ma)o(cr)o(o_i)o(np)
-o(ut)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(34)75 2142
-y Fd(rl_read_in)o(it)o(_fi)o(le)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-19 b Ff(31)75 2188 y Fd(rl_read_ke)o(y)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)75 2234 y
-Fd(rl_readlin)o(e_)o(nam)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-19 b Ff(25)75 2281 y Fd(rl_readlin)o(e_)o(sta)o(te)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(27)75 2327
-y Fd(rl_readlin)o(e_)o(ver)o(si)o(on)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17
-b Ff(25)75 2373 y Fd(rl_redispl)o(ay)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(33)75 2420 y Fd(rl_redispl)o(ay)o(_fu)o
-(nc)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(26)75 2466 y
-Fd(rl_replace)o(_l)o(ine)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-20 b Ff(36)75 2512 y Fd(rl_reset_a)o(ft)o(er_)o(si)o(gna)o(l)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(40)1012 149 y Fd(rl_reset_li)o(ne)o(_st)o(at)o
-(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(33)1012 195
-y Fd(rl_reset_te)o(rm)o(ina)o(l)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-19 b Ff(35)1012 241 y Fd(rl_resize_t)o(er)o(min)o(al)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 287 y
-Fd(rl_restore_)o(pr)o(omp)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19
-b Ff(34)1012 333 y Fd(rl_save_pro)o(mp)o(t)8 b Fe(.)s(.)e(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)21 b Ff(33)1012 379 y Fd(rl_set_key)8
-b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(30)1012 424 y Fd(rl_set_keyb)o(oa)o(rd_)o(in)o(put)o(_t)o(ime)o
-(out)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20
-b Ff(35)1012 470 y Fd(rl_set_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(29)1012 516 y Fd(rl_set_pare)o(n_)o
-(bli)o(nk)o(_ti)o(me)o(out)7 b Fe(.)t(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Ff(37)1012 562 y Fd(rl_set_prom)o(pt)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(34)1012 608 y Fd(rl_set_scre)o(en)o(_si)o(ze)t Fe(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 654 y Fd(rl_set_sign)o(al)o(s)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b
-Ff(41)1012 700 y Fd(rl_show_cha)o(r)6 b Fe(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(33)1012 745 y Fd(rl_special_)o(pr)o
-(efi)o(xe)o(s)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(45)1012
-791 y Fd(rl_startup_)o(ho)o(ok)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)21 b Ff(26)1012 837 y Fd(rl_stuff_ch)o(ar)8 b
-Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(35)1012 883 y Fd(rl_terminal)o(_n)o(ame)6 b Fe(.)s(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)20 b Ff(25)1012 929 y Fd(rl_tty_set_)o(de)o(fau)o(lt)o
-(_bi)o(nd)o(ing)o(s)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)21 b Ff(35)1012 975 y Fd(rl_unbind_c)o(om)o(man)o(d_)o
-(in_)o(ma)o(p)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)23 b Ff(30)1012 1020 y Fd(rl_unbind_f)o(un)o(cti)o
-(on)o(_in)o(_m)o(ap)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(30)1012 1066 y Fd(rl_unbind_k)o(ey)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(30)1012 1112 y Fd(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)s
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(30)1012 1158 y Fd(rl_username)o(_c)o
-(omp)o(le)o(tio)o(n_)o(fun)o(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)18 b Ff(43)1012 1204 y Fd(rl_variable)o(_b)o(ind)6
-b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(37)1012
-1250 y Fd(rl_variable)o(_d)o(ump)o(er)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)19 b Ff(37)1012 1380 y Fs(S)1012 1441 y Fd(self-insert)9
-b(\(a,)j(b,)g(A,)g(1,)g(!,)g(...)o(\))6 b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1487 y Fd(set-mark)10
-b(\(C-@\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(17)1012 1533 y(sho)o(w-all-if-am)o(bigu)q(ous)14
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(7)1012 1579
-y Fd(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))c Fe(.)d(.)i(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
-b Ff(17)1012 1701 y Fs(T)1012 1763 y Fd(tab-insert)9
-b(\(M-)1281 1761 y Fn(h)p 1292 1735 74 2 v 1292 1763
-a Fm(T)m(AB)p 1292 1770 V 1364 1761 a Fn(i)1379 1763
-y Fd(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(14)1012 1808
-y Fd(tilde-expan)o(d)10 b(\(M-~\))f Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(17)1012 1854 y Fd(transpose-c)o(ha)o(rs)9 b(\(C-t\))d
-Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1900 y Fd(transpose-w)o(or)o(ds)9
-b(\(M-t\))d Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 2030 y
-Fs(U)1012 2092 y Fd(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))c
-Fe(.)t(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(17)1012 2137 y Fd(universal-a)o(rg)o
-(ume)o(nt)9 b(\(\))d Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(16)1012
-2183 y Fd(unix-line-d)o(is)o(car)o(d)10 b(\(C-u\))5 b
-Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)18 b Ff(15)1012 2229 y Fd(unix-word-r)o(ub)o(out)9
-b(\(C-w\))d Fe(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)1012 2275 y Fd(upcase-word)9
-b(\(M-u\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(14)1012
-2405 y Fs(V)1012 2466 y Fd(vi-editing-)o(mo)o(de)9 b(\(M-C-j\))c
-Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)18 b Ff(18)1012 2512 y(visible-stats)c Fe(.)6
-b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
-b Ff(7)p eop
-%%Page: 62 64
-62 63 bop 75 -58 a Fu(62)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fs(Y)75 242 y Fd(yank)11 b(\(C-y\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(16)1012
-149 y Fd(yank-last-a)o(rg)9 b(\(M-.)i(or)h(M-_\))c Fe(.)f(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(13)1012 196 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))d
-Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 242 y Fd(yank-pop)10
-b(\(M-y\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(16)p eop
-%%Page: -1 65
--1 64 bop 1862 -58 a Fu(i)75 149 y Fq(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fs(1)67 b(Command)22 b(Line)i(Editing)d
-Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
-(.)f(.)g(.)g(.)42 b Fs(1)224 389 y Fu(1.1)j(In)o(tro)q(duction)16
-b(to)f(Line)h(Editing)e Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)27 b Fu(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8
-b Fl(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)23 b Fu(1)374 499 y(1.2.1)44 b(Readline)16
-b(Bare)f(Essen)o(tials)f Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fu(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands)
-7 b Fl(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)21 b Fu(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands)
-11 b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)25 b Fu(2)374 663 y(1.2.4)44 b(Readline)16
-b(Argumen)o(ts)c Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
-b Fu(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
-(the)f(History)e Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fu(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)29 b Fu(4)374 827 y(1.3.1)44 b(Readline)16
-b(Init)g(File)h(Syn)o(tax)7 b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fu(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
-b Fl(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)19 b Fu(9)374 937 y(1.3.3)44 b(Sample)16
-b(Init)g(File)11 b Fl(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)26 b Fu(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands)
-6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(12)374
-1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fu(12)374 1101 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fl(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fu(12)374 1156 y(1.4.3)44
-b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fl(.)8
-b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
-b Fu(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
-b Fl(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fu(15)374
-1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
-b Fu(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l
-(or)g(Y)l(ou)10 b Fl(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)25 b Fu(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
-b(Macros)6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fu(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
-b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-22 b Fu(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)28 b Fu(18)75 1606 y Fs(2)67 b(Programming)23
-b(with)g(GNU)f(Readline)12 b Fa(.)f(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)35
-b Fs(21)224 1675 y Fu(2.1)45 b(Basic)16 b(Beha)o(vior)8
-b Fl(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fu(21)224 1729 y(2.2)45
-b(Custom)14 b(F)l(unctions)7 b Fl(.)i(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fu(22)374
-1784 y(2.2.1)44 b(Readline)16 b(T)o(yp)q(edefs)9 b Fl(.)g(.)e(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)24 b Fu(23)374 1839 y(2.2.2)44
-b(W)l(riting)16 b(a)e(New)i(F)l(unction)6 b Fl(.)i(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-21 b Fu(23)224 1894 y(2.3)45 b(Readline)16 b(V)l(ariables)g
-Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)29 b Fu(24)224 1949 y(2.4)45 b(Readline)16
-b(Con)o(v)o(enience)h(F)l(unctions)7 b Fl(.)i(.)e(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-23 b Fu(28)374 2003 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e
-Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fu(28)374
-2058 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6 b Fl(.)h(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)21 b Fu(29)374 2113 y(2.4.3)44 b(Binding)17
-b(Keys)5 b Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)20 b Fu(30)374 2168 y(2.4.4)44 b(Asso)q(ciating)16
-b(F)l(unction)g(Names)f(and)g(Bindings)8 b Fl(.)h(.)f(.)f(.)h(.)f(.)h
-(.)23 b Fu(31)374 2222 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f
-Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b
-Fu(32)374 2277 y(2.4.6)44 b(Redispla)o(y)10 b Fl(.)e(.)g(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fu(33)374 2332 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)7
-b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fu(34)374 2387 y(2.4.8)44 b(Character)14 b(Input)c
-Fl(.)f(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25
-b Fu(34)374 2442 y(2.4.9)44 b(T)l(erminal)16 b(Managemen)o(t)11
-b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(35)374 2496 y(2.4.10)43
-b(Utilit)o(y)17 b(F)l(unctions)c Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)28 b Fu(36)374 2551 y(2.4.11)43 b(Miscellaneous)18
-b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(37)374
-2606 y(2.4.12)43 b(Alternate)16 b(In)o(terface)f Fl(.)7
-b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 b Fu(37)374 2661
-y(2.4.13)43 b(A)16 b(Readline)g(Example)9 b Fl(.)f(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)24 b Fu(38)p eop
-%%Page: -2 66
--2 65 bop 75 -58 a Fu(ii)1321 b(GNU)15 b(Readline)h(Library)224
-42 y(2.5)45 b(Readline)16 b(Signal)h(Handling)12 b Fl(.)c(.)g(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(39)224 96
-y(2.6)45 b(Custom)14 b(Completers)f Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)28 b Fu(41)374
-151 y(2.6.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)10
-b Fl(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fu(41)374 206 y(2.6.2)44
-b(Completion)16 b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-21 b Fu(42)374 261 y(2.6.3)44 b(Completion)16 b(V)l(ariables)c
-Fl(.)c(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(43)374 315
-y(2.6.4)44 b(A)15 b(Short)g(Completion)h(Example)5 b
-Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)20 b Fu(47)75 437 y Fs(Concept)i(Index)10 b Fa(.)i(.)e(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)33 b Fs(57)75 572
-y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)9
-b Fa(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)32 b Fs(59)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
diff --git a/doc/readline_3.ps b/doc/readline_3.ps
index 7d20e17..8ce4b47 100644
--- a/doc/readline_3.ps
+++ b/doc/readline_3.ps
@@ -1,17 +1,21 @@
%!PS-Adobe-3.0
-%%Creator: groff version 1.17.2
-%%CreationDate: Thu Jun 27 13:54:44 2002
+%%Creator: groff version 1.19
+%%CreationDate: Tue Jun 29 11:02:47 2004
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.17 2
+%%DocumentSuppliedResources: procset grops 1.19 0
%%Pages: 14
%%PageOrder: Ascend
+%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
+%%BeginDefaults
+%%PageMedia: Default
+%%EndDefaults
%%BeginProlog
-%%BeginResource: procset grops 1.17 2
+%%BeginResource: procset grops 1.19 0
/setpacking where{
pop
currentpacking
@@ -109,11 +113,26 @@ TM setmatrix
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
+/Fr{
+setrgbcolor fill
}bind def
-/BL/fill load def
+/setcmykcolor where{
+pop
+/Fk{
+setcmykcolor fill
+}bind def
+}if
+/Fg{
+setgray fill
+}bind def
+/FL/fill load def
/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/setcmykcolor where{
+pop
+/Ck/setcmykcolor load def
+}if
+/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
@@ -155,6 +174,7 @@ newpath
/CNT countdictstack def
userdict begin
/showpage{}def
+/setpagedevice{}def
}bind def
/PEND{
clear
@@ -167,13 +187,16 @@ pop
setpacking
}if
%%EndResource
+%%BeginFeature: *PageSize Default
+<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
+%%EndFeature
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
%%IncludeResource: font Times-Italic
%%IncludeResource: font Courier
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
@@ -215,7 +238,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\2552002 by the Free Softw)-.1 E(are F)-.1 E
+(yright \251 1989\2552004 by the 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)
@@ -249,25 +272,25 @@ F(If)6.089 E F2(EOF)3.589 E F0 1.089(is encountered)3.589 F .283
(An emacs-style notation is used to denote k)108 398.4 R -.15(ey)-.1 G
(strok).15 E 2.681(es. Control)-.1 F -.1(ke)2.681 G .18
(ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 2.68(,e)C .18
-(.g., C\255n means)-2.68 F 2.625(Control\255N. Similarly)108 410.4 R(,)
--.65 E F3(meta)2.625 E F0 -.1(ke)2.625 G .125(ys are denoted by M\255)
--.05 F F3 -.1(ke)C(y)-.2 E F0 2.625(,s)C 2.625(oM)-2.625 G .125
-(\255x means Meta\255X.)-2.625 F .126(\(On k)5.126 F -.15(ey)-.1 G .126
-(boards without a).15 F F3(meta)108 422.4 Q F0 -.1(ke)3.309 G 2.109 -.65
-(y, M)-.05 H<ad>.65 E F3(x)A F0 .809(means ESC)3.309 F F3(x)3.309 E F0
-3.309(,i)C .809(.e., press the Escape k)-3.309 F 1.108 -.15(ey t)-.1 H
-.808(hen the).15 F F3(x)3.308 E F0 -.1(ke)3.308 G 4.608 -.65(y. T)-.05 H
-.808(his mak).65 F .808(es ESC the)-.1 F F3 .808(meta pr)3.308 F(e\214x)
--.37 E F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A F0 .48
+(.g., C\255n means)-2.68 F 2.582(Control\255N. Similarly)108 410.4 R(,)
+-.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
(hen hold the Control k).15 F .78 -.15(ey w)-.1 H(hile).15 E
-(pressing the)108 446.4 Q F3(x)2.5 E F0 -.1(ke)2.5 G -.65(y.)-.05 G(\))
-.65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G 3.119
-(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
-.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E
-(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti)
-.4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
+(pressing the)108 446.4 Q F3(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G
+(\)).65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G
+3.119(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w)
+.27 G .619(hich normally act as a repeat count.)-3.119 F(Sometimes,)
+5.619 E(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H
+3.118(ti).4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
(ument to a command that).18 F 1.019(acts in the forw)108 487.2 R 1.018
@@ -308,15 +331,15 @@ le is read, and the k)-5.359 F .658 -.15(ey b)-.1 H(ind-).15 E 1.083
(wn commands and bindings.)-.25 E -.15(Fo)108 669.6 S 2.5(re).15 G
(xample, placing)-2.65 E(M\255Control\255u: uni)144 686.4 Q -.15(ve)-.25
G(rsal\255ar).15 E(gument)-.18 E(or)108 698.4 Q(C\255Meta\255u: uni)144
-710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(GNU Readline 4.3)
-72 768 Q(2002 January 22)126.24 E(1)195.95 E EP
+710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(GNU Readline 5.0)
+72 768 Q(2004 January 28)126.24 E(1)195.95 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.5 E(c)-.37 E F0 -.1
-(wo)2.5 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G
+(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
@@ -331,30 +354,30 @@ 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
-.382(The syntax for controlling k)108 175.2 R .682 -.15(ey b)-.1 H .382
-(indings in the).15 F F1(inputr)2.882 E(c)-.37 E F0 .382
-(\214le is simple.)2.882 F .382(All that is required is the name of the)
-5.382 F .382(command or the te)108 187.2 R .383(xt of a macro and a k)
+.366(The syntax for controlling k)108 175.2 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 .382(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(sequence.)108 211.2 Q 1.766(When using the form)108 228 R F2
--.1(ke)4.266 G(yname).1 E F0(:)A F1(function-name).833 E F0(or)4.266 E
-F1(macr)4.267 E(o)-.45 E F0(,)A F1 -.1(ke)4.267 G(yname)-.2 E F0 1.767
-(is the name of a k)4.267 F 2.067 -.15(ey s)-.1 H 1.767(pelled out in)
+(ey)-.1 G(sequence.)108 211.2 Q 1.755(When using the form)108 228 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 240 R(or e)-.15 E(xample:)-.15 E
(Control\255u: uni)144 264 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18
E(Meta\255Rubout: backw)144 276 Q(ard\255kill\255w)-.1 E(ord)-.1 E
-(Control\255o: "> output")144 288 Q .229(In the abo)108 304.8 R .529
--.15(ve ex)-.15 H(ample,).15 E F1(C\255u)2.729 E F0 .229
-(is bound to the function)2.729 F F2(uni)2.729 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)2.729 E F0 .228
-(is bound to the function)2.729 F F2(backward\255kill\255w)108 316.8 Q
-(ord)-.1 E F0 3.837(,a)C(nd)-3.837 E F1(C\255o)3.837 E F0 1.337
-(is bound to run the macro e)3.837 F 1.337
+(Control\255o: "> output")144 288 Q .148(In the abo)108 304.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 316.8 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
328.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 345.6 R F2("k)2.556
@@ -370,17 +393,17 @@ ay be speci\214ed by placing the sequence within double quotes.).15 F
(are not recognized.)108 381.6 Q("\\C\255u": uni)144 405.6 Q -.15(ve)
-.25 G(rsal\255ar).15 E(gument)-.18 E
("\\C\255x\\C\255r": re\255read\255init\255\214le)144 417.6 Q
-("\\e[11~": "Function K)144 429.6 Q .3 -.15(ey 1)-.25 H(").15 E .237
-(In this e)108 446.4 R(xample,)-.15 E F1(C-u)2.737 E F0 .237(is ag)2.737
-F .238(ain bound to the function)-.05 F F2(uni)2.738 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .238(C-x C-r)5.238 F F0 .238
-(is bound to the function)2.738 F F2 -.18(re)108 458.4 S<ad72>.18 E
-(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)2.5 E
-F0(is bound to insert the te)2.5 E(xt)-.15 E F3(Function Key 1)2.5 E F0
-(.)A(The full set of GNU Emacs style escape sequences a)108 475.2 Q -.25
-(va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H(equences is)
-.15 E F2<5c43ad>144 487.2 Q F0(control pre\214x)20.3 E F2<5c4dad>144
-499.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 511.2 Q F0
+("\\e[11~": "Function K)144 429.6 Q .3 -.15(ey 1)-.25 H(").15 E .198
+(In this e)108 446.4 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 458.4 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 475.2 Q
+-.25(va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H
+(equences is).15 E F2<5c43ad>144 487.2 Q F0(control pre\214x)20.3 E F2
+<5c4dad>144 499.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 511.2 Q F0
(an escape character)28.78 E F2(\\\\)144 523.2 Q F0(backslash)30.44 E F2
(\\")144 535.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 547.2 Q
F0(literal ', a single quote)29.89 E(In addition to the GNU Emacs style\
@@ -402,8 +425,8 @@ o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 712.8 R
5.089 F 2.59(,t)-.65 G .09(he backslash escapes described abo)-2.59 F
-.15(ve)-.15 G(are e)108 724.8 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(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(2)195.95 E EP
+(xt, including " and '.)-.15 E(GNU Readline 5.0)72 768 Q
+(2004 January 28)126.24 E(2)195.95 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -416,17 +439,17 @@ BP
(The editing mode may be switched during interacti)108 96 R 1.395 -.15
(ve u)-.25 H 1.095(se by using the).15 F F1<ad6f>3.595 E F0 1.095
(option to the)3.595 F F1(set)3.595 E F0 -.2(bu)3.595 G 1.095
-(iltin com-).2 F 3.097(mand. Other)108 108 R .597
-(programs using this library pro)3.097 F .597(vide similar mechanisms.)
--.15 F(The)5.597 E/F2 10/Times-Italic@0 SF(inputr)3.097 E(c)-.37 E F0
-.596(\214le may be edited and)3.096 F(re-read if a program does not pro)
+(iltin com-).2 F 3.076(mand. Other)108 108 R .576
+(programs using this library pro)3.076 F .575(vide similar mechanisms.)
+-.15 F(The)5.575 E/F2 10/Times-Italic@0 SF(inputr)3.085 E(c)-.37 E F0
+.575(\214le may be edited and)3.385 F(re-read if a program does not pro)
108 120 Q(vide an)-.15 E 2.5(yo)-.15 G(ther means to incorporate ne)-2.5
E 2.5(wb)-.25 G(indings.)-2.5 E F1 -.92(Va)87 136.8 S(riables).92 E F0
-.043(Readline has v)108 148.8 R .044
+.043(Readline has v)108 148.8 R .043
(ariables that can be used to further customize its beha)-.25 F(vior)-.2
-E 5.044(.A)-.55 G -.25(va)-2.5 G .044(riable may be set in the).25 F F2
-(inpu-)2.544 E(tr)108 160.8 Q(c)-.37 E F0
-(\214le with a statement of the form)2.5 E F1(set)144 177.6 Q F2
+E 5.043(.A)-.55 G -.25(va)-2.5 G .043(riable may be set in the).25 F F2
+(inpu-)2.554 E(tr)108 160.8 Q(c)-.37 E F0
+(\214le with a statement of the form)2.81 E F1(set)144 177.6 Q F2
(variable\255name value)2.5 E F0 .807(Except where noted, readline v)108
194.4 R .807(ariables can tak)-.25 F 3.307(et)-.1 G .807(he v)-3.307 F
(alues)-.25 E F1(On)3.307 E F0(or)3.307 E F1(Off)3.307 E F0 .807
@@ -500,8 +523,8 @@ he eighth bit in the char)-2.867 F(-)-.2 E .956(acters it reads\), re)
144 691.2 R -.05(ga)-.15 G .956
(rdless of what the terminal claims it can support.).05 F .957(The name)
5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F(synon)144 703.2 Q
-(ym for this v)-.15 E(ariable.)-.25 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(3)195.95 E EP
+(ym for this v)-.15 E(ariable.)-.25 E(GNU Readline 5.0)72 768 Q
+(2004 January 28)126.24 E(3)195.95 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
@@ -564,731 +587,748 @@ E F1(sho)108 432 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .477
2.978 E F0 2.978(,w)C .478(ords which ha)-3.078 F .778 -.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 456 R(bell.)144 468 Q F1
-(visible\255stats \(Off\))108 480 Q F0 .846(If set to)144 492 R F1(On)
+(sho)108 480 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345
+(This alters the def)144 492 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 504 Q(w\255all\255if\255ambiguous)-.1 E F0 6.923(.I)C
+4.423(fs)-6.923 G 1.923(et to)-4.423 F F1(on)4.423 E F0 4.423(,w)C 1.923
+(ords which ha)-4.523 F 2.222 -.15(ve m)-.2 H 1.922
+(ore than one possible completion).15 F 1.039(without an)144 516 R 3.539
+(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 528 Q F1
+(visible\255stats \(Off\))108 540 Q F0 .847(If set to)144 552 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 504 Q F1(Conditional Constructs)
-87 520.8 Q F0 .05(Readline implements a f)108 532.8 R .05(acility simil\
+(when listing possible completions.)144 564 Q F1(Conditional Constructs)
+87 580.8 Q F0 .05(Readline implements a f)108 592.8 R .05(acility simil\
ar in spirit to the conditional compilation features of the C preproces\
-sor)-.1 F .096(which allo)108 544.8 R .096(ws k)-.25 F .396 -.15(ey b)
+sor)-.1 F .097(which allo)108 604.8 R .097(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 .097
-(There are four parser)5.096 F(directi)108 556.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 573.6 Q F0(The)24.89 E F1($if)2.963 E
-F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\
- editing mode, the terminal being used,)-.25 F .477
-(or the application using readline.)144 585.6 R .477(The te)5.477 F .477
+(ariable settings to be performed as the result of tests.)-.25 F .096
+(There are four parser)5.096 F(directi)108 616.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 633.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 645.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 597.6 Q F1(mode)144 614.4 Q F0(The)
-12.67 E F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0
+(are required to isolate it.)144 657.6 Q F1(mode)144 674.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
(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 626.4 R .565(may be used in conjunction with the)3.065 F
+(mode. This)180 686.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 .03(set bindings in the)180 638.4 R F2(emacs-standar)2.529 E(d)
+3.065 F .029(set bindings in the)180 698.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 650.4
-Q F1(term)144 667.2 Q F0(The)15.46 E 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 679.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(the)180 691.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
-703.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.5 E F0
-(to match both)2.5 E F2(sun)2.5 E F0(and)2.5 E F2(sun\255cmd)2.5 E F0
-2.5(,f).77 G(or instance.)-2.5 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(4)195.95 E EP
+(ymaps only if readline is starting out)-.05 F(in emacs mode.)180 710.4
+Q(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(4)195.95 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(application)144 84 Q F0(The)180 96 Q F1(application)
-3.003 E F0 .503
+/Times-Bold@0 SF(term)144 84 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 96 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(the)180 108 Q F1(=)3.004 E F0
+.504(is tested ag)3.004 F .503(ainst the full name of the terminal and \
+the portion of the terminal name)-.05 F(before the \214rst)180 120 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(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
+136.8 Q F0(The)180 148.8 Q F1(application)3.003 E F0 .503
(construct is used to include application-speci\214c settings.)3.003 F
.503(Each program)5.503 F .114(using the readline library sets the)180
-108 R/F2 10/Times-Italic@0 SF .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 120 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
-132 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 .397
-(equence that quotes the).15 F(current or pre)180 144 Q(vious w)-.25 E
-(ord in Bash:)-.1 E F1($if)180 168 Q F0(Bash)2.5 E 2.5(#Q)180 180 S
-(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
-("\\C-xq": "\\eb\\"\\ef\\"")180 192 Q F1($endif)180 204 Q($endif)108
-220.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
+160.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
+172.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 184.8 R -.15(Fo)5.397 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 196.8
+Q(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 220.8 Q F0(Bash)2.5 E 2.5
+(#Q)180 232.8 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
+("\\C-xq": "\\eb\\"\\ef\\"")180 244.8 Q F1($endif)180 256.8 Q($endif)108
+273.6 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else)
-108 237.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
+108 290.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 254.4 Q F0 .357
-(This directi)144 266.4 R .657 -.15(ve t)-.25 H(ak).15 E .357
-(es a single \214lename as an ar)-.1 F .356
+(cuted if the test f).15 E(ails.)-.1 E F1($include)108 307.2 Q F0 .356
+(This directi)144 319.2 R .656 -.15(ve t)-.25 H(ak).15 E .356
+(es a single \214lename as an ar)-.1 F .357
(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 278.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+144 331.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 302.4 Q F2(/etc/inputr)5.833 E(c)-.37 E/F3 10.95
-/Times-Bold@0 SF(SEARCHING)72 319.2 Q F0 1.003(Readline pro)108 331.2 R
+($include)144 355.2 Q F2(/etc/inputr)5.833 E(c)-.37 E/F3 10.95
+/Times-Bold@0 SF(SEARCHING)72 372 Q F0 1.004(Readline pro)108 384 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 343.2 R(are tw)
-2.5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.5 E(emental)-.37 E F0
-(and)2.5 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51 E .698
-(Incremental searches be)108 360 R .698
+s containing a speci\214ed)-.15 F 2.5(string. There)108 396 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 412.8 R .697
(gin before the user has \214nished typing the search string.)-.15 F
-.697(As each character of the)5.697 F .112
-(search string is typed, readline displays the ne)108 372 R .112
+.698(As each character of the)5.698 F .113
+(search string is typed, readline displays the ne)108 424.8 R .112
(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
-E 5.113(.A)-.55 G(n)-5.113 E .545
-(incremental search requires only as man)108 384 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 396 Q .18
+E 5.112(.A)-.55 G(n)-5.112 E .544
+(incremental search requires only as man)108 436.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 448.8 Q .181
(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.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 408 R .354(alue of the)-.25 F F1
+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 460.8 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 420
-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 .123(incremental search.)108 432 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 444 Q 2.406 -.8
-(To \214)108 460.8 T .806
+(riable are used to terminate an incremen-).25 F .6(tal search.)108
+472.8 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 484.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 496.8 Q 2.407 -.8
+(To \214)108 513.6 T .806
(nd other matching entries in the history list, type).8 F F1(C\255s)
3.306 E F0(or)3.306 E F1(C\255r)3.306 E F0 .806(as appropriate.)3.306 F
-.807(This will search back-)5.806 F -.1(wa)108 472.8 S 1.309(rd or forw)
+.806(This will search back-)5.806 F -.1(wa)108 525.6 S 1.308(rd or forw)
.1 F 1.309(ard in the history for the ne)-.1 F 1.309
(xt line matching the search string typed so f)-.15 F(ar)-.1 E 6.309(.A)
--.55 G 1.609 -.15(ny o)-6.309 H 1.308(ther k).15 F -.15(ey)-.1 G .317
+-.55 G 1.609 -.15(ny o)-6.309 H 1.309(ther k).15 F -.15(ey)-.1 G .317
(sequence bound to a readline command will terminate the search and e)
-108 484.8 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 496.8 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 508.8 R(mo)3.061 E -.15(ve)-.15 G .562
+108 537.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 549.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 561.6 R(mo)3.062 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 520.8 Q .567(Non-incremental searches read the entire sea\
+(editing.)108 573.6 Q .567(Non-incremental searches read the entire sea\
rch string before starting to search for matching history lines.)108
-537.6 R(The search string may be typed by the user or be part of the co\
-ntents of the current line.)108 549.6 Q F3(EDITING COMMANDS)72 566.4 Q
-F0 1.391(The follo)108 578.4 R 1.391
+590.4 R(The search string may be typed by the user or be part of the co\
+ntents of the current line.)108 602.4 Q F3(EDITING COMMANDS)72 619.2 Q
+F0 1.392(The follo)108 631.2 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.892(ya)-.15 G(re)-3.892 E 2.5(bound. Command)108 590.4 R
+3.891(ya)-.15 G(re)-3.891 E 2.5(bound. Command)108 643.2 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 .055(In the follo)108
-607.2 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 619.2 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 .054(In the follo)108 660
+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 672 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 636 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 648 Q F0(Mo)144 660 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 672 Q F0(Mo)144 684 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 696 S
-(rward\255char \(C\255f\)).25 E F0(Mo)144 708 Q .3 -.15(ve f)-.15 H(orw)
-.15 E(ard a character)-.1 E(.)-.55 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(5)195.95 E EP
+2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 688.8 Q(or Mo)-.25 E(ving)-.1
+E(beginning\255of\255line \(C\255a\))108 700.8 Q F0(Mo)144 712.8 Q .3
+-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E
+(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(5)195.95 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/F1 10
-/Times-Bold@0 SF(backward\255char \(C\255b\))108 84 Q F0(Mo)144 96 Q .3
--.15(ve b)-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 108 S
-(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 120 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 132 Q F1(backward\255w)108 144 Q(ord \(M\255b\))
--.1 E F0(Mo)144 156 Q 1.71 -.15(ve b)-.15 H 1.41
+/Times-Bold@0 SF(end\255of\255line \(C\255e\))108 84 Q F0(Mo)144 96 Q .3
+-.15(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108
+108 S(rward\255char \(C\255f\)).25 E F0(Mo)144 120 Q .3 -.15(ve f)-.15 H
+(orw).15 E(ard a character)-.1 E(.)-.55 E F1
+(backward\255char \(C\255b\))108 132 Q F0(Mo)144 144 Q .3 -.15(ve b)-.15
+H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 156 S(rward\255w).25 E
+(ord \(M\255f\))-.1 E F0(Mo)144 168 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 180 Q F1(backward\255w)108 192 Q(ord \(M\255b\))
+-.1 E F0(Mo)144 204 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 168 Q F1(clear\255scr)108 180 Q
-(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 192 R .993
+(characters \(letters and digits\).)144 216 Q F1(clear\255scr)108 228 Q
+(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 240 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 204 Q F1 -.18(re)108 216
+(current line without clearing the screen.)144 252 Q F1 -.18(re)108 264
S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-228 Q F1(Commands f)87 244.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 256.8 Q(n\))-.15 E F0 .365
-(Accept the line re)144 268.8 R -.05(ga)-.15 G .364
+276 Q F1(Commands f)87 292.8 Q(or Manipulating the History)-.25 E
+(accept\255line \(Newline, Retur)108 304.8 Q(n\))-.15 E F0 .364
+(Accept the line re)144 316.8 R -.05(ga)-.15 G .364
(rdless of where the cursor is.).05 F .364(If this line is non-empty)
-5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G .364(ay be added to the)-2.864
-F .74(history list for future recall with)144 280.8 R F1
-(add_history\(\))3.24 E F0 5.741(.I)C 3.241(ft)-5.741 G .741
+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 328.8 R F1
+(add_history\(\))3.241 E F0 5.741(.I)C 3.241(ft)-5.741 G .74
(he line is a modi\214ed history line, the history)-3.241 F
-(line is restored to its original state.)144 292.8 Q F1(pr)108 304.8 Q
+(line is restored to its original state.)144 340.8 Q F1(pr)108 352.8 Q
-.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144
-316.8 Q(vious command from the history list, mo)-.25 E
-(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 328.8 Q
-F0(Fetch the ne)144 340.8 Q(xt command from the history list, mo)-.15 E
+364.8 Q(vious command from the history list, mo)-.25 E
+(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 376.8 Q
+F0(Fetch the ne)144 388.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 352.8 Q F0(Mo)144 364.8 Q .3
+(beginning\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 \214rst line in the history)-2.5 E(.)
--.65 E F1(end\255of\255history \(M\255>\))108 376.8 Q F0(Mo)144 388.8 Q
+-.65 E F1(end\255of\255history \(M\255>\))108 424.8 Q F0(Mo)144 436.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 400.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.471(Search backw)144 412.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.47
+(re v)108 448.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
+1.47(Search backw)144 460.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 424.8 Q F1 -.25(fo)108 436.8 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
-(Search forw)144 448.8 R 1.131(ard starting at the current line and mo)
--.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)
--.25 F(.)-.65 E(This is an incremental search.)144 460.8 Q F1
-(non\255incr)108 472.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
-(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)
-144 484.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 496.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 508.8 Q
+(This is an incremental search.)144 472.8 Q F1 -.25(fo)108 484.8 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
+(Search forw)144 496.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 508.8 Q F1
+(non\255incr)108 520.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 532.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 544.8 S
+(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 556.8 Q
(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.353(Search forw)144 520.8 R 1.354(ard through the history using \
+E F0 1.354(Search forw)144 568.8 R 1.354(ard through the history using \
a non-incremental search for a string supplied by the)-.1 F(user)144
-532.8 Q(.)-.55 E F1(history\255sear)108 544.8 Q(ch\255f)-.18 E(orward)
--.25 E F0 .249(Search forw)144 556.8 R .249(ard through the history for\
+580.8 Q(.)-.55 E F1(history\255sear)108 592.8 Q(ch\255f)-.18 E(orward)
+-.25 E F0 .248(Search forw)144 604.8 R .249(ard through the history for\
the string of characters between the start of the current line)-.1 F
-(and the current cursor position \(the)144 568.8 Q/F2 10/Times-Italic@0
+(and the current cursor position \(the)144 616.8 Q/F2 10/Times-Italic@0
SF(point)2.5 E F0 2.5(\). This)B(is a non-incremental search.)2.5 E F1
-(history\255sear)108 580.8 Q(ch\255backward)-.18 E F0 .95(Search backw)
-144 592.8 R .951(ard through the history for the string of characters b\
-etween the start of the current)-.1 F(line and the point.)144 604.8 Q
-(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 616.8 Q
+(history\255sear)108 628.8 Q(ch\255backward)-.18 E F0 .951(Search backw)
+144 640.8 R .951(ard through the history for the string of characters b\
+etween the start of the current)-.1 F(line and the point.)144 652.8 Q
+(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 664.8 Q
2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144
-628.8 R .622(gument to the pre)-.18 F .622
+676.8 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 .794(at point.)144 640.8 R -.4(Wi)5.794 G .794
+.622(vious line\))-.25 F .795(at point.)144 688.8 R -.4(Wi)5.795 G .794
(th an ar).4 F(gument)-.18 E F2(n)3.294 E F0 3.294(,i).24 G .794
(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794(ord from the pre)
--.1 F .794(vious command \(the w)-.25 F .795(ords in the)-.1 F(pre)144
-652.8 Q .292(vious command be)-.25 F .292(gin with w)-.15 F .291
+-.1 F .794(vious command \(the w)-.25 F .794(ords in the)-.1 F(pre)144
+700.8 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 .291(ord from the end of)-.1 F(the pre)144 664.8 Q
-(vious command.)-.25 E F1(yank\255last\255ar)108 676.8 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 688.8 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 700.8 S .736(th an ar).4 F
-.736(gument, beha)-.18 F 1.036 -.15(ve ex)-.2 H .736(actly lik).15 F(e)
--.1 E F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.735(.S)C(uccessi)-5.735
-E 1.035 -.15(ve c)-.25 H .735(alls to).15 F F1(yank\255last\255ar)3.235
-E(g)-.1 E F0(mo)3.235 E -.15(ve)-.15 G
-(back through the history list, inserting the last ar)144 712.8 Q
-(gument of each line in turn.)-.18 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(6)195.95 E EP
+F0 .291(th w)B .292(ord from the end of)-.1 F(the pre)144 712.8 Q
+(vious command.)-.25 E(GNU Readline 5.0)72 768 Q(2004 January 28)126.24
+E(6)195.95 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(Commands f)87 84 Q(or Changing T)-.25 E(ext)-.92 E
-(delete\255char \(C\255d\))108 96 Q F0 .357
-(Delete the character at point.)144 108 R .358(If point is at the be)
-5.358 F .358(ginning of the line, there are no characters in the)-.15 F
-(line, and the last character typed w)144 120 Q(as not bound to)-.1 E F1
-(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E/F2 9/Times-Bold@0 SF
-(EOF)2.5 E/F3 9/Times-Roman@0 SF(.)A F1
-(backward\255delete\255char \(Rubout\))108 132 Q F0 .553
-(Delete the character behind the cursor)144 144 R 5.553(.W)-.55 G .553
+/Times-Bold@0 SF(yank\255last\255ar)108 84 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
+96 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 108 S .735(th an ar).4 F .735(gument, beha)-.18 F 1.035 -.15
+(ve ex)-.2 H .735(actly lik).15 F(e)-.1 E F1(yank\255nth\255ar)3.235 E
+(g)-.1 E F0 5.736(.S)C(uccessi)-5.736 E 1.036 -.15(ve c)-.25 H .736
+(alls to).15 F F1(yank\255last\255ar)3.236 E(g)-.1 E F0(mo)3.236 E -.15
+(ve)-.15 G(back through the history list, inserting the last ar)144 120
+Q(gument of each line in turn.)-.18 E F1(Commands f)87 136.8 Q
+(or Changing T)-.25 E(ext)-.92 E(delete\255char \(C\255d\))108 148.8 Q
+F0 .358(Delete the character at point.)144 160.8 R .358
+(If point is at the be)5.358 F .358
+(ginning of the line, there are no characters in the)-.15 F
+(line, and the last character typed w)144 172.8 Q(as not bound to)-.1 E
+F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E/F2 9/Times-Bold@0
+SF(EOF)2.5 E/F3 9/Times-Roman@0 SF(.)A F1
+(backward\255delete\255char \(Rubout\))108 184.8 Q F0 .552
+(Delete the character behind the cursor)144 196.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 156 Q F1 -.25(fo)108 168 S
-(rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 180 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 192 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 204 Q F0 1.229(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.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 228 Q
-F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108 240 Q
-(AB\))-.9 E F0(Insert a tab character)144 252 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 264 Q F0
-(Insert the character typed.)144 276 Q F1(transpose\255chars \(C\255t\))
-108 288 Q F0 .321(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 .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 312
-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 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 F1
-(transpose\255w)108 336 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-348 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 360 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 372 Q
-(ord \(M\255u\))-.1 E F0 1.699(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.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
-(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 F1(do)108 408 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 420 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 432 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 444 Q
-(ord \(M\255c\))-.1 E F0 1.975(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.974
-(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 F1 -.1(ove)108 480
-S(rwrite\255mode).1 E F0 -.8(To)144 492 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 504 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
+.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 208.8 Q F1 -.25(fo)108 220.8 S
+(rward\255backward\255delete\255char).25 E F0 .474
+(Delete the character under the cursor)144 232.8 R 2.974(,u)-.4 G .474
+(nless the cursor is at the end of the line, in which case the)-2.974 F
+(character behind the cursor is deleted.)144 244.8 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 256.8 Q F0 1.228(Add the ne)144
+268.8 R 1.228(xt character that you type to the line v)-.15 F 3.728
+(erbatim. This)-.15 F 1.228(is ho)3.728 F 3.729(wt)-.25 G 3.729(oi)
+-3.729 G 1.229(nsert characters lik)-3.729 F(e)-.1 E F1(C\255q)144 280.8
+Q F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108
+292.8 Q(AB\))-.9 E F0(Insert a tab character)144 304.8 Q(.)-.55 E F1
+(self\255insert \(a, b, A, 1, !, ...\))108 316.8 Q F0
+(Insert the character typed.)144 328.8 Q F1
+(transpose\255chars \(C\255t\))108 340.8 Q F0 .322
+(Drag the character before point forw)144 352.8 R .321(ard o)-.1 F -.15
+(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321
+(ving point forw)-.15 F .321(ard as well.)-.1 F 1.182
+(If point is at the end of the line, then this transposes the tw)144
+364.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E
+-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 376.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 388.8 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144
+400.8 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 412.8 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 424.8 Q
+(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144
+436.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.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 448.8 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 460.8 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 472.8 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 484.8 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 496.8 Q
+(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144
+508.8 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 520.8 S(rd, b)
+.1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108
+532.8 S(rwrite\255mode).1 E F0 -.8(To)144 544.8 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 556.8 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 .78(This command af)5.781 F
-(fects)-.25 E(only)144 516 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
+(gument, switches to insert mode.)-.18 F .781(This command af)5.781 F
+(fects)-.25 E(only)144 568.8 Q F1(emacs)4.395 E F0(mode;)4.395 E F1(vi)
+4.395 E F0 1.894(mode does o)4.395 F -.15(ve)-.15 G 1.894(rwrite dif).15
F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F4 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 528 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 540 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 552 Q
-(By def)5 E(ault, this command is unbound.)-.1 E F1(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 F1
-(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 F1
-(unix\255line\255discard \(C\255u\))108 628.8 Q F0(Kill backw)144 640.8
+/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 580.8 R -.15(ove)3.968 G
+1.468(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
+F0 1.469(replace the te)3.969 F 1.469(xt at point rather than)-.15 F
+.958(pushing the te)144 592.8 R .958(xt to the right.)-.15 F .957
+(Characters bound to)5.958 F F1(backward\255delete\255char)3.457 E F0
+.957(replace the character)3.457 F(before point with a space.)144 604.8
+Q(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
+621.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 633.6 Q F0
+(Kill the te)144 645.6 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 657.6 Q F0(Kill backw)
+144 669.6 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 681.6 Q F0(Kill backw)144 693.6
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 652.8 Q F0
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 705.6 Q F0
(Kill all characters on the current line, no matter where point is.)144
-664.8 Q F1(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.307
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 700.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(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(7)195.95 E EP
+717.6 Q(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(7)195.95 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(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 .364(Kill the w)144 120 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
-132 Q F1(delete\255horizontal\255space \(M\255\\\))108 144 Q F0
-(Delete all spaces and tabs around point.)144 156 Q F1(kill\255r)108 168
-Q(egion)-.18 E F0 1.13(Kill the te)144 180 R 1.13
+/Times-Bold@0 SF(kill\255w)108 84 Q(ord \(M\255d\))-.1 E F0 1.308
+(Kill from point the end of the current w)144 96 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 108 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 120 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 132 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 144 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 156 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
+168 Q F1(unix\255\214lename\255rubout)108 180 Q F0 .166(Kill the w)144
+192 R .166
+(ord behind point, using white space and the slash character as the w)
+-.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 204 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 216 Q F0
+(Delete all spaces and tabs around point.)144 228 Q F1(kill\255r)108 240
+Q(egion)-.18 E F0 1.13(Kill the te)144 252 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
-192 S(gion)-.03 E F0(.)A F1(copy\255r)108 204 Q(egion\255as\255kill)-.18
-E F0(Cop)144 216 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
+264 S(gion)-.03 E F0(.)A F1(copy\255r)108 276 Q(egion\255as\255kill)-.18
+E F0(Cop)144 288 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 228 Q(ord)-.1 E F0(Cop)144 240 Q 4.8(yt)-.1 G
+(copy\255backward\255w)108 300 Q(ord)-.1 E F0(Cop)144 312 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 252
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 264 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 276 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1
+(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 324
+Q(ord)-.1 E F0(.)A F1(copy\255f)108 336 Q(orward\255w)-.25 E(ord)-.1 E
+F0(Cop)144 348 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 288 Q(ord)-.1 E F0(.)A F1
-(yank \(C\255y\))108 300 Q F0 -1(Ya)144 312 S
+-.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 360 Q(ord)-.1 E F0(.)A F1
+(yank \(C\255y\))108 372 Q F0 -1(Ya)144 384 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 324 Q F0
-(Rotate the kill ring, and yank the ne)144 336 Q 2.5(wt)-.25 G 2.5
+E F1(yank\255pop \(M\255y\))108 396 Q F0
+(Rotate the kill ring, and yank the ne)144 408 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 352.8 Q
-(guments)-.1 E(digit\255ar)108 364.8 Q
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 424.8 Q
+(guments)-.1 E(digit\255ar)108 436.8 Q
(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641
-(Add this digit to the ar)144 376.8 R .641
+(Add this digit to the ar)144 448.8 R .641
(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
(rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-)
--.15 E(ati)144 388.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 400.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
-(This is another w)144 412.8 R .779(ay to specify an ar)-.1 F 3.279
+-.15 E(ati)144 460.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
+(uni)108 472.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
+(This is another w)144 484.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
-424.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-436.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+496.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+508.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 448.8 R .898
+-.2 F(-)-.2 E .898(wise ignored.)144 520.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 460.8 R .243
+(neither a digit or minus sign, the ar)144 532.8 R .243
(gument count for the ne)-.18 F .243(xt command is multiplied by four)
--.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 472.8 Q .378
+-.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 544.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 484.8 Q 2.5(,as)-.4 G(econd time mak)
+.378(gument count)-.18 F(four)144 556.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 501.6 Q(complete \(T)108 513.6 Q(AB\))-.9 E F0 1.909
-(Attempt to perform completion on the te)144 525.6 R 1.908
+(Completing)87 573.6 Q(complete \(T)108 585.6 Q(AB\))-.9 E F0 1.909
+(Attempt to perform completion on the te)144 597.6 R 1.908
(xt before point.)-.15 F 1.908(The actual completion performed is)6.908
-F(application-speci\214c.)144 537.6 Q F1(Bash)5.517 E F0 3.017(,f)C .518
+F(application-speci\214c.)144 609.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 549.6 Q .657
+(xt as a v)-.15 F .518(ariable \(if the)-.25 F(te)144 621.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.156 E F0 .656(\), or)B .929
-(command \(including aliases and functions\) in turn.)144 561.6 R .93
+(command \(including aliases and functions\) in turn.)144 633.6 R .93
(If none of these produces a match, \214lename)5.929 F 1.274
-(completion is attempted.)144 573.6 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773
+(completion is attempted.)144 645.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 585.6 S(riab\
+(ws completion of program functions and)-.25 F -.25(va)144 657.6 S(riab\
les, and only attempts \214lename completion under certain circumstance\
-s.).25 E F1(possible\255completions \(M\255?\))108 597.6 Q F0
-(List the possible completions of the te)144 609.6 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 621.6 Q F0 .783
-(Insert all completions of the te)144 633.6 R .783
+s.).25 E F1(possible\255completions \(M\255?\))108 669.6 Q F0
+(List the possible completions of the te)144 681.6 Q(xt before point.)
+-.15 E F1(insert\255completions \(M\255*\))108 693.6 Q F0 .783
+(Insert all completions of the te)144 705.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.283 E(pletions)144
-645.6 Q F0(.)A F1(menu\255complete)108 657.6 Q F0 .929(Similar to)144
-669.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
-F .929(ord to be completed with a single match from the list of)-.1 F
-1.193(possible completions.)144 681.6 R 1.193(Repeated e)6.193 F -.15
-(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
-(steps through the list of possible)3.694 F .829
-(completions, inserting each match in turn.)144 693.6 R .828
-(At the end of the list of completions, the bell is rung)5.828 F .965
-(\(subject to the setting of)144 705.6 R F1 .965
-(0and the original text is r)3.465 F(estor)-.18 E 3.465(ed. An)-.18 F
-(ar)3.465 E .966(gument of)-.1 F F2(n)3.466 E F1(mo)3.466 E -.1(ve)-.1 G
-(s).1 E F2(n)3.466 E F1(posi-)3.466 E 1.249(tions f)144 717.6 R 1.249
-(orward in the list of matches; a negati)-.25 F 1.449 -.1(ve a)-.1 H -.1
-(rg).1 G 1.248(ument may be used to mo).1 F 1.448 -.1(ve b)-.1 H
-(ackward).1 E(thr)144 729.6 Q(ough the list.)-.18 E
-(This command is intended to be bound to T)5 E(AB, b)-.9 E
-(ut is unbound by default.)-.2 E F0(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(8)195.95 E EP
+717.6 Q F0(.)A(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(8)
+195.95 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(delete\255char\255or\255list)108 84 Q F0 .373
-(Deletes the character under the cursor if not at the be)144 96 R .374
+/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 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 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(delete\255char\255or\255list)108 168 Q F0 .373
+(Deletes the character under the cursor if not at the be)144 180 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 108 Q -.15(ve)-.2 G 2.5(si)
+F0(\).)A(If at the end of the line, beha)144 192 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 124.8 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)108
-136.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 148.8 Q
+(Ke)87 208.8 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)108
+220.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 232.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 160.8 Q 2.5(o\()
--.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 172.8 Q
+(ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 244.8 Q 2.5(o\()
+-.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 256.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 184.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 196.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
+(call\255last\255kbd\255macr)108 268.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 280.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F(typed at the k)144 208.8 Q -.15(ey)-.1 G(board.).15 E F1
-(Miscellaneous)87 225.6 Q -.18(re)108 237.6 S<ad72>.18 E
+ear as if).15 F(typed at the k)144 292.8 Q -.15(ey)-.1 G(board.).15 E F1
+(Miscellaneous)87 309.6 Q -.18(re)108 321.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 249.6 R/F2 10/Times-Italic@0 SF(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 261.6 Q F1(abort \(C\255g\))108 273.6 Q F0 3.249
-(Abort the current editing command and ring the terminal')144 285.6 R
+(Read in the contents of the)144 333.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
+345.6 Q F1(abort \(C\255g\))108 357.6 Q F0 3.249
+(Abort the current editing command and ring the terminal')144 369.6 R
5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
-(bell\255style)144 297.6 Q F0(\).)A F1(do\255upper)108 309.6 Q
+(bell\255style)144 381.6 Q F0(\).)A F1(do\255upper)108 393.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 321.6 R F2(x)
+C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 405.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 333.6 Q(.)-.55 E F1(pr)108 345.6 Q
-(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 357.6 Q
+(uppercase character)144 417.6 Q(.)-.55 E F1(pr)108 429.6 Q
+(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 441.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 369.6 Q F0
-(Incremental undo, separately remembered for each line.)144 381.6 Q F1
--2.29 -.18(re v)108 393.6 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 405.6 R 1.095(This is lik)6.095
+(undo \(C\255_, C\255x C\255u\))108 453.6 Q F0
+(Incremental undo, separately remembered for each line.)144 465.6 Q F1
+-2.29 -.18(re v)108 477.6 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 489.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 417.6 Q F1
-(tilde\255expand \(M\255&\))108 429.6 Q F0(Perform tilde e)144 441.6 Q
+(return the line to its initial state.)144 501.6 Q F1
+(tilde\255expand \(M\255&\))108 513.6 Q F0(Perform tilde e)144 525.6 Q
(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 453.6 Q F0
-(Set the mark to the point.)144 465.6 Q(If a numeric ar)5 E
+(set\255mark \(C\255@, M\255<space>\))108 537.6 Q F0
+(Set the mark to the point.)144 549.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 477.6 Q F0(Sw)
-144 489.6 Q .282(ap the point with the mark.)-.1 F .283
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 561.6 Q F0(Sw)
+144 573.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.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
-144 501.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 513.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
-525.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G
+144 585.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 597.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
+609.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 537.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 549.6 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 561.6 S 1.043
+144 621.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 633.6 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 645.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.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 573.6 Q F1
-(insert\255comment \(M\255#\))108 585.6 Q F0 -.4(Wi)144 597.6 S .481
+(count searches for subsequent occurrences.)144 657.6 Q F1
+(insert\255comment \(M\255#\))108 669.6 Q F0 -.4(Wi)144 681.6 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 609.6 Q .097
+2.981 G .48(riable is inserted at the).25 F(be)144 693.6 Q .097
(ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098
(gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E
-.322(the characters at the be)144 621.6 R .321
+.322(the characters at the be)144 705.6 R .321
(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
--.25 F 1.013(inserted, otherwise the characters in)144 633.6 R F1
+-.25 F 1.013(inserted, otherwise the characters in)144 717.6 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 645.6 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 657.6 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 669.6 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
-681.6 Q F0 .627(Print all of the functions and their k)144 693.6 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 705.6 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(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(9)
-195.95 E EP
+(ginning of the line.)-.15 F 2.943
+(In either case, the line is accepted as if a ne)144 729.6 R 2.943
+(wline had been typed.)-.25 F 2.943(The def)7.943 F 2.943(ault v)-.1 F
+2.942(alue of)-.25 F(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E
+(9)195.95 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/F1 10
-/Times-Bold@0 SF(dump\255v)108 84 Q(ariables)-.1 E F0 .283
-(Print all of the settable v)144 96 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 108 Q
+/Times-Bold@0 SF(comment\255begin)144 84 Q F0(mak)2.904 E .404
+(es the current line a shell comment.)-.1 F .404(If a numeric ar)5.404 F
+.405(gument causes the com-)-.18 F(ment character to be remo)144 96 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 108 Q F0 .627
+(Print all of the functions and their k)144 120 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 132 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\255macr)108 120 Q(os)-.18 E F0
-.756(Print all of the readline k)144 132 R 1.056 -.15(ey s)-.1 H .756
-(equences bound to macros and the strings the).15 F 3.256(yo)-.15 G
-3.256(uput. If)-3.256 F 3.255(an)3.255 G(umeric)-3.255 E(ar)144 144 Q
+2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 144 Q(ariables)-.1 E F0
+.283(Print all of the settable v)144 156 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 168 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 180 Q(os)-.18 E F0 .593
+(Print all of the readline k)144 192 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 204 Q
.528(gument is supplied, the output is formatted in such a w)-.18 F .528
(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
-(\214le.)144 156 Q F1(emacs\255editing\255mode \(C\255e\))108 168 Q F0
-(When in)144 180 Q F1(vi)2.5 E F0(command mode, this causes a switch to)
+(\214le.)144 216 Q F1(emacs\255editing\255mode \(C\255e\))108 228 Q F0
+(When in)144 240 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 192 Q F0(When in)144 204 Q F1
+(vi\255editing\255mode \(M\255C\255j\))108 252 Q F0(When in)144 264 Q F1
(emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E
-F0(editing mode.)2.5 E/F3 10.95/Times-Bold@0 SF(DEF)72 220.8 Q -.548(AU)
+F0(editing mode.)2.5 E/F3 10.95/Times-Bold@0 SF(DEF)72 280.8 Q -.548(AU)
-.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo)
-108 232.8 R .065(wing is a list of the def)-.25 F .065
+108 292.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 .615
-(M\255<character>, and are referred to as)108 244.8 R F2(meta\214ed)
-3.115 E F0 3.115(characters. The)3.115 F .616
-(printable ASCII characters not mentioned)3.116 F 1.116
-(in the list of emacs standard bindings are bound to the)108 256.8 R F1
+(Characters with the eighth bit set are written as)5.064 F .527
+(M\255<character>, and are referred to as)108 304.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.116
+(in the list of emacs standard bindings are bound to the)108 316.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
-268.8 R .945(In vi insertion mode, all characters not speci\214cally me\
-ntioned are bound to)5.945 F F1(self\255insert)108 280.8 Q F0 5.359(.C)C
+328.8 R .945(In vi insertion mode, all characters not speci\214cally me\
+ntioned are bound to)5.945 F F1(self\255insert)108 340.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 .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 292.8
+.15 H .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 352.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 304.8 R
+nd to the same function in the emacs)-.25 F .305(mode meta k)108 364.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 316.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5
-G(riable\).).25 E F1(Emacs Mode)87 333.6 Q F0(Emacs Standard bindings)
-151.2 345.6 Q 2.5("C-@" set-mark)151.2 369.6 R 2.5("C-A" be)151.2 381.6
-R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 393.6 R(ard-char)-.1 E
-2.5("C-D" delete-char)151.2 405.6 R 2.5("C-E" end-of-line)151.2 417.6 R
-2.5("C-F" forw)151.2 429.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 441.6
-R 2.5("C-H" backw)151.2 453.6 R(ard-delete-char)-.1 E 2.5
-("C-I" complete)151.2 465.6 R 2.5("C-J" accept-line)151.2 477.6 R 2.5
-("C-K" kill-line)151.2 489.6 R 2.5("C-L" clear)151.2 501.6 R(-screen)-.2
-E 2.5("C-M" accept-line)151.2 513.6 R 2.5("C-N" ne)151.2 525.6 R
-(xt-history)-.15 E 2.5("C-P" pre)151.2 537.6 R(vious-history)-.25 E 2.5
-("C-Q" quoted-insert)151.2 549.6 R 2.5("C-R" re)151.2 561.6 R -.15(ve)
--.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 573.6 R
-(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 585.6 R 2.5
-("C-U" unix-line-discard)151.2 597.6 R 2.5("C-V" quoted-insert)151.2
-609.6 R 2.5("C-W" unix-w)151.2 621.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)
-151.2 633.6 R 2.5("C-]" character)151.2 645.6 R(-search)-.2 E 2.5
-("C-_" undo)151.2 657.6 R 3.333("")151.2 669.6 S(to "/")-.833 E
-(self-insert)5 E 2.5("0" to)151.2 681.6 R 2.5("9" self-insert)2.5 F 2.5
-(":" to)151.2 693.6 R 2.5("~" self-insert)2.5 F 2.5("C-?" backw)151.2
-705.6 R(ard-delete-char)-.1 E(Emacs Meta bindings)151.2 722.4 Q
-(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(10)190.95 E EP
+(to the setting of the)108 376.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5
+G(riable\).).25 E F1(Emacs Mode)87 393.6 Q F0(Emacs Standard bindings)
+151.2 405.6 Q 2.5("C-@" set-mark)151.2 429.6 R 2.5("C-A" be)151.2 441.6
+R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 453.6 R(ard-char)-.1 E
+2.5("C-D" delete-char)151.2 465.6 R 2.5("C-E" end-of-line)151.2 477.6 R
+2.5("C-F" forw)151.2 489.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 501.6
+R 2.5("C-H" backw)151.2 513.6 R(ard-delete-char)-.1 E 2.5
+("C-I" complete)151.2 525.6 R 2.5("C-J" accept-line)151.2 537.6 R 2.5
+("C-K" kill-line)151.2 549.6 R 2.5("C-L" clear)151.2 561.6 R(-screen)-.2
+E 2.5("C-M" accept-line)151.2 573.6 R 2.5("C-N" ne)151.2 585.6 R
+(xt-history)-.15 E 2.5("C-P" pre)151.2 597.6 R(vious-history)-.25 E 2.5
+("C-Q" quoted-insert)151.2 609.6 R 2.5("C-R" re)151.2 621.6 R -.15(ve)
+-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 633.6 R
+(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 645.6 R 2.5
+("C-U" unix-line-discard)151.2 657.6 R 2.5("C-V" quoted-insert)151.2
+669.6 R 2.5("C-W" unix-w)151.2 681.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)
+151.2 693.6 R 2.5("C-]" character)151.2 705.6 R(-search)-.2 E 2.5
+("C-_" undo)151.2 717.6 R 3.333("")151.2 729.6 S(to "/")-.833 E
+(self-insert)5 E(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(10)
+190.95 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 2.5
-("M-C-G" abort)151.2 84 R 2.5("M-C-H" backw)151.2 96 R(ard-kill-w)-.1 E
-(ord)-.1 E 2.5("M-C-I" tab-insert)151.2 108 R 2.5
-("M-C-J" vi-editing-mode)151.2 120 R 2.5("M-C-M" vi-editing-mode)151.2
-132 R 2.5("M-C-R" re)151.2 144 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-C-Y" yank-nth-ar)151.2 156 R(g)-.18 E 2.5("M-C-[" complete)151.2 168
-R 2.5("M-C-]" character)151.2 180 R(-search-backw)-.2 E(ard)-.1 E 2.5
-("M-space" set-mark)151.2 192 R 2.5("M-#" insert-comment)151.2 204 R 2.5
-("M-&" tilde-e)151.2 216 R(xpand)-.15 E 2.5("M-*" insert-completions)
-151.2 228 R 2.5("M--" digit-ar)151.2 240 R(gument)-.18 E 2.5
-("M-." yank-last-ar)151.2 252 R(g)-.18 E 2.5("M-0" digit-ar)151.2 264 R
-(gument)-.18 E 2.5("M-1" digit-ar)151.2 276 R(gument)-.18 E 2.5
-("M-2" digit-ar)151.2 288 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 300 R
-(gument)-.18 E 2.5("M-4" digit-ar)151.2 312 R(gument)-.18 E 2.5
-("M-5" digit-ar)151.2 324 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 336 R
-(gument)-.18 E 2.5("M-7" digit-ar)151.2 348 R(gument)-.18 E 2.5
-("M-8" digit-ar)151.2 360 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 372 R
-(gument)-.18 E 2.5("M-<" be)151.2 384 R(ginning-of-history)-.15 E 2.5
-("M-=" possible-completions)151.2 396 R 2.5("M->" end-of-history)151.2
-408 R 2.5("M-?" possible-completions)151.2 420 R 2.5("M-B" backw)151.2
-432 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 444 R(ord)-.1 E
-2.5("M-D" kill-w)151.2 456 R(ord)-.1 E 2.5("M-F" forw)151.2 468 R(ard-w)
--.1 E(ord)-.1 E 2.5("M-L" do)151.2 480 R(wncase-w)-.25 E(ord)-.1 E 2.5
-("M-N" non-incremental-forw)151.2 492 R(ard-search-history)-.1 E 2.5
-("M-P" non-incremental-re)151.2 504 R -.15(ve)-.25 G(rse-search-history)
-.15 E 2.5("M-R" re)151.2 516 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-T" transpose-w)151.2 528 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 540 R
-(ord)-.1 E 2.5("M-Y" yank-pop)151.2 552 R 2.5
-("M-\\" delete-horizontal-space)151.2 564 R 2.5("M-~" tilde-e)151.2 576
-R(xpand)-.15 E 2.5("M-C-?" backw)151.2 588 R(ard-kill-w)-.1 E(ord)-.1 E
-2.5("M-_" yank-last-ar)151.2 600 R(g)-.18 E(Emacs Control-X bindings)
-151.2 616.8 Q 2.5("C-XC-G" abort)151.2 640.8 R 2.5
-("C-XC-R" re-read-init-\214le)151.2 652.8 R 2.5("C-XC-U" undo)151.2
-664.8 R 2.5("C-XC-X" e)151.2 676.8 R(xchange-point-and-mark)-.15 E 2.5
-("C-X\(" start-kbd-macro)151.2 688.8 R 2.5("C-X\)" end-kbd-macro)151.2
-700.8 R 2.5("C-XE" call-last-kbd-macro)151.2 712.8 R 2.5("C-XC-?" backw)
-151.2 724.8 R(ard-kill-line)-.1 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(11)190.95 E EP
+("0" to)151.2 84 R 2.5("9" self-insert)2.5 F 2.5(":" to)151.2 96 R 2.5
+("~" self-insert)2.5 F 2.5("C-?" backw)151.2 108 R(ard-delete-char)-.1 E
+(Emacs Meta bindings)151.2 124.8 Q 2.5("M-C-G" abort)151.2 148.8 R 2.5
+("M-C-H" backw)151.2 160.8 R(ard-kill-w)-.1 E(ord)-.1 E 2.5
+("M-C-I" tab-insert)151.2 172.8 R 2.5("M-C-J" vi-editing-mode)151.2
+184.8 R 2.5("M-C-M" vi-editing-mode)151.2 196.8 R 2.5("M-C-R" re)151.2
+208.8 R -.15(ve)-.25 G(rt-line).15 E 2.5("M-C-Y" yank-nth-ar)151.2 220.8
+R(g)-.18 E 2.5("M-C-[" complete)151.2 232.8 R 2.5("M-C-]" character)
+151.2 244.8 R(-search-backw)-.2 E(ard)-.1 E 2.5("M-space" set-mark)151.2
+256.8 R 2.5("M-#" insert-comment)151.2 268.8 R 2.5("M-&" tilde-e)151.2
+280.8 R(xpand)-.15 E 2.5("M-*" insert-completions)151.2 292.8 R 2.5
+("M--" digit-ar)151.2 304.8 R(gument)-.18 E 2.5("M-." yank-last-ar)151.2
+316.8 R(g)-.18 E 2.5("M-0" digit-ar)151.2 328.8 R(gument)-.18 E 2.5
+("M-1" digit-ar)151.2 340.8 R(gument)-.18 E 2.5("M-2" digit-ar)151.2
+352.8 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 364.8 R(gument)-.18 E 2.5
+("M-4" digit-ar)151.2 376.8 R(gument)-.18 E 2.5("M-5" digit-ar)151.2
+388.8 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 400.8 R(gument)-.18 E 2.5
+("M-7" digit-ar)151.2 412.8 R(gument)-.18 E 2.5("M-8" digit-ar)151.2
+424.8 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 436.8 R(gument)-.18 E 2.5
+("M-<" be)151.2 448.8 R(ginning-of-history)-.15 E 2.5
+("M-=" possible-completions)151.2 460.8 R 2.5("M->" end-of-history)151.2
+472.8 R 2.5("M-?" possible-completions)151.2 484.8 R 2.5("M-B" backw)
+151.2 496.8 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 508.8 R
+(ord)-.1 E 2.5("M-D" kill-w)151.2 520.8 R(ord)-.1 E 2.5("M-F" forw)151.2
+532.8 R(ard-w)-.1 E(ord)-.1 E 2.5("M-L" do)151.2 544.8 R(wncase-w)-.25 E
+(ord)-.1 E 2.5("M-N" non-incremental-forw)151.2 556.8 R
+(ard-search-history)-.1 E 2.5("M-P" non-incremental-re)151.2 568.8 R
+-.15(ve)-.25 G(rse-search-history).15 E 2.5("M-R" re)151.2 580.8 R -.15
+(ve)-.25 G(rt-line).15 E 2.5("M-T" transpose-w)151.2 592.8 R(ords)-.1 E
+2.5("M-U" upcase-w)151.2 604.8 R(ord)-.1 E 2.5("M-Y" yank-pop)151.2
+616.8 R 2.5("M-\\" delete-horizontal-space)151.2 628.8 R 2.5
+("M-~" tilde-e)151.2 640.8 R(xpand)-.15 E 2.5("M-C-?" backw)151.2 652.8
+R(ard-kill-w)-.1 E(ord)-.1 E 2.5("M-_" yank-last-ar)151.2 664.8 R(g)-.18
+E(Emacs Control-X bindings)151.2 681.6 Q 2.5("C-XC-G" abort)151.2 705.6
+R 2.5("C-XC-R" re-read-init-\214le)151.2 717.6 R 2.5("C-XC-U" undo)151.2
+729.6 R(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(11)190.95 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/F1 10
-/Times-Bold@0 SF(VI Mode bindings)87 84 Q F0(VI Insert Mode functions)
-151.2 96 Q 2.5("C-D" vi-eof-maybe)151.2 120 R 2.5("C-H" backw)151.2 132
-R(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 144 R 2.5
-("C-J" accept-line)151.2 156 R 2.5("C-M" accept-line)151.2 168 R 2.5
-("C-R" re)151.2 180 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 192 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 204 R 2.5("C-U" unix-line-discard)151.2 216
-R 2.5("C-V" quoted-insert)151.2 228 R 2.5("C-W" unix-w)151.2 240 R
-(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 252 R 2.5("C-[" vi-mo)151.2 264 R
--.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 276 R 3.333("")151.2
-288 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)151.2 300 R
-(ard-delete-char)-.1 E(VI Command Mode functions)151.2 316.8 Q 2.5
-("C-D" vi-eof-maybe)151.2 340.8 R 2.5("C-E" emacs-editing-mode)151.2
-352.8 R 2.5("C-G" abort)151.2 364.8 R 2.5("C-H" backw)151.2 376.8 R
-(ard-char)-.1 E 2.5("C-J" accept-line)151.2 388.8 R 2.5("C-K" kill-line)
-151.2 400.8 R 2.5("C-L" clear)151.2 412.8 R(-screen)-.2 E 2.5
-("C-M" accept-line)151.2 424.8 R 2.5("C-N" ne)151.2 436.8 R(xt-history)
--.15 E 2.5("C-P" pre)151.2 448.8 R(vious-history)-.25 E 2.5
-("C-Q" quoted-insert)151.2 460.8 R 2.5("C-R" re)151.2 472.8 R -.15(ve)
--.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 484.8 R
-(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 496.8 R 2.5
-("C-U" unix-line-discard)151.2 508.8 R 2.5("C-V" quoted-insert)151.2
-520.8 R 2.5("C-W" unix-w)151.2 532.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)
-151.2 544.8 R 2.5("C-_" vi-undo)151.2 556.8 R -4.166 3.333("" f)151.2
-568.8 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 580.8 R
-2.5("$" end-of-line)151.2 592.8 R 2.5("%" vi-match)151.2 604.8 R 2.5
-("&" vi-tilde-e)151.2 616.8 R(xpand)-.15 E 2.5("*" vi-complete)151.2
-628.8 R 2.5("+" ne)151.2 640.8 R(xt-history)-.15 E 2.5("," vi-char)151.2
-652.8 R(-search)-.2 E 2.5("-" pre)151.2 664.8 R(vious-history)-.25 E 2.5
-("." vi-redo)151.2 676.8 R 2.5("/" vi-search)151.2 688.8 R 2.5("0" be)
-151.2 700.8 R(ginning-of-line)-.15 E("1" to "9")151.2 712.8 Q(vi-ar)5 E
-(g-digit)-.18 E 2.5(";" vi-char)151.2 724.8 R(-search)-.2 E
-(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(12)190.95 E EP
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
+("C-XC-X" e)151.2 84 R(xchange-point-and-mark)-.15 E 2.5
+("C-X\(" start-kbd-macro)151.2 96 R 2.5("C-X\)" end-kbd-macro)151.2 108
+R 2.5("C-XE" call-last-kbd-macro)151.2 120 R 2.5("C-XC-?" backw)151.2
+132 R(ard-kill-line)-.1 E/F1 10/Times-Bold@0 SF(VI Mode bindings)87
+160.8 Q F0(VI Insert Mode functions)151.2 172.8 Q 2.5
+("C-D" vi-eof-maybe)151.2 196.8 R 2.5("C-H" backw)151.2 208.8 R
+(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 220.8 R 2.5
+("C-J" accept-line)151.2 232.8 R 2.5("C-M" accept-line)151.2 244.8 R 2.5
+("C-R" re)151.2 256.8 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
+("C-S" forw)151.2 268.8 R(ard-search-history)-.1 E 2.5
+("C-T" transpose-chars)151.2 280.8 R 2.5("C-U" unix-line-discard)151.2
+292.8 R 2.5("C-V" quoted-insert)151.2 304.8 R 2.5("C-W" unix-w)151.2
+316.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 328.8 R 2.5("C-[" vi-mo)
+151.2 340.8 R -.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 352.8
+R 3.333("")151.2 364.8 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)
+151.2 376.8 R(ard-delete-char)-.1 E(VI Command Mode functions)151.2
+393.6 Q 2.5("C-D" vi-eof-maybe)151.2 417.6 R 2.5
+("C-E" emacs-editing-mode)151.2 429.6 R 2.5("C-G" abort)151.2 441.6 R
+2.5("C-H" backw)151.2 453.6 R(ard-char)-.1 E 2.5("C-J" accept-line)151.2
+465.6 R 2.5("C-K" kill-line)151.2 477.6 R 2.5("C-L" clear)151.2 489.6 R
+(-screen)-.2 E 2.5("C-M" accept-line)151.2 501.6 R 2.5("C-N" ne)151.2
+513.6 R(xt-history)-.15 E 2.5("C-P" pre)151.2 525.6 R(vious-history)-.25
+E 2.5("C-Q" quoted-insert)151.2 537.6 R 2.5("C-R" re)151.2 549.6 R -.15
+(ve)-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 561.6 R
+(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 573.6 R 2.5
+("C-U" unix-line-discard)151.2 585.6 R 2.5("C-V" quoted-insert)151.2
+597.6 R 2.5("C-W" unix-w)151.2 609.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)
+151.2 621.6 R 2.5("C-_" vi-undo)151.2 633.6 R -4.166 3.333("" f)151.2
+645.6 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 657.6 R
+2.5("$" end-of-line)151.2 669.6 R 2.5("%" vi-match)151.2 681.6 R 2.5
+("&" vi-tilde-e)151.2 693.6 R(xpand)-.15 E 2.5("*" vi-complete)151.2
+705.6 R 2.5("+" ne)151.2 717.6 R(xt-history)-.15 E 2.5("," vi-char)151.2
+729.6 R(-search)-.2 E(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E
+(12)190.95 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
-("=" vi-complete)151.2 84 R 2.5("?" vi-search)151.2 96 R 2.5
-("A" vi-append-eol)151.2 108 R 2.5("B" vi-pre)151.2 120 R(v-w)-.25 E
-(ord)-.1 E 2.5("C" vi-change-to)151.2 132 R 2.5("D" vi-delete-to)151.2
-144 R 2.5("E" vi-end-w)151.2 156 R(ord)-.1 E 2.5("F" vi-char)151.2 168 R
-(-search)-.2 E 2.5("G" vi-fetch-history)151.2 180 R 2.5
-("I" vi-insert-be)151.2 192 R(g)-.15 E 2.5("N" vi-search-ag)151.2 204 R
-(ain)-.05 E 2.5("P" vi-put)151.2 216 R 2.5("R" vi-replace)151.2 228 R
-2.5("S" vi-subst)151.2 240 R 2.5("T" vi-char)151.2 252 R(-search)-.2 E
-2.5("U" re)151.2 264 R -.15(ve)-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2
-276 R(xt-w)-.15 E(ord)-.1 E 2.5("X" backw)151.2 288 R(ard-delete-char)
--.1 E 2.5("Y" vi-yank-to)151.2 300 R 2.5("\\" vi-complete)151.2 312 R
-2.5("^" vi-\214rst-print)151.2 324 R 2.5("_" vi-yank-ar)151.2 336 R(g)
--.18 E 2.5("`" vi-goto-mark)151.2 348 R 2.5("a" vi-append-mode)151.2 360
-R 2.5("b" vi-pre)151.2 372 R(v-w)-.25 E(ord)-.1 E 2.5("c" vi-change-to)
-151.2 384 R 2.5("d" vi-delete-to)151.2 396 R 2.5("e" vi-end-w)151.2 408
-R(ord)-.1 E 2.5("f" vi-char)151.2 420 R(-search)-.2 E 2.5("h" backw)
-151.2 432 R(ard-char)-.1 E 2.5("i" vi-insertion-mode)151.2 444 R 2.5
-("j" ne)151.2 456 R(xt-history)-.15 E 2.5("k" pre)151.2 468 R(v-history)
--.25 E 2.5("l" forw)151.2 480 R(ard-char)-.1 E 2.5("m" vi-set-mark)151.2
-492 R 2.5("n" vi-search-ag)151.2 504 R(ain)-.05 E 2.5("p" vi-put)151.2
-516 R 2.5("r" vi-change-char)151.2 528 R 2.5("s" vi-subst)151.2 540 R
-2.5("t" vi-char)151.2 552 R(-search)-.2 E 2.5("u" vi-undo)151.2 564 R
-2.5("w" vi-ne)151.2 576 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2
-588 R 2.5("y" vi-yank-to)151.2 600 R 2.5("|" vi-column)151.2 612 R 2.5
-("~" vi-change-case)151.2 624 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72
-640.8 Q/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 652.8 Q(ary)
--.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2
-(The Gnu History Libr)108 664.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F2(bash)108 676.8 Q F0(\(1\))A F1
-(FILES)72 693.6 Q F2(~/.inputr)109.666 705.6 Q(c)-.37 E F0(Indi)144
-717.6 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF -.18(re)2.5 G(adline).18 E
-F0(initialization \214le)2.5 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(13)190.95 E EP
+("-" pre)151.2 84 R(vious-history)-.25 E 2.5("." vi-redo)151.2 96 R 2.5
+("/" vi-search)151.2 108 R 2.5("0" be)151.2 120 R(ginning-of-line)-.15 E
+("1" to "9")151.2 132 Q(vi-ar)5 E(g-digit)-.18 E 2.5(";" vi-char)151.2
+144 R(-search)-.2 E 2.5("=" vi-complete)151.2 156 R 2.5("?" vi-search)
+151.2 168 R 2.5("A" vi-append-eol)151.2 180 R 2.5("B" vi-pre)151.2 192 R
+(v-w)-.25 E(ord)-.1 E 2.5("C" vi-change-to)151.2 204 R 2.5
+("D" vi-delete-to)151.2 216 R 2.5("E" vi-end-w)151.2 228 R(ord)-.1 E 2.5
+("F" vi-char)151.2 240 R(-search)-.2 E 2.5("G" vi-fetch-history)151.2
+252 R 2.5("I" vi-insert-be)151.2 264 R(g)-.15 E 2.5("N" vi-search-ag)
+151.2 276 R(ain)-.05 E 2.5("P" vi-put)151.2 288 R 2.5("R" vi-replace)
+151.2 300 R 2.5("S" vi-subst)151.2 312 R 2.5("T" vi-char)151.2 324 R
+(-search)-.2 E 2.5("U" re)151.2 336 R -.15(ve)-.25 G(rt-line).15 E 2.5
+("W" vi-ne)151.2 348 R(xt-w)-.15 E(ord)-.1 E 2.5("X" backw)151.2 360 R
+(ard-delete-char)-.1 E 2.5("Y" vi-yank-to)151.2 372 R 2.5
+("\\" vi-complete)151.2 384 R 2.5("^" vi-\214rst-print)151.2 396 R 2.5
+("_" vi-yank-ar)151.2 408 R(g)-.18 E 2.5("`" vi-goto-mark)151.2 420 R
+2.5("a" vi-append-mode)151.2 432 R 2.5("b" vi-pre)151.2 444 R(v-w)-.25 E
+(ord)-.1 E 2.5("c" vi-change-to)151.2 456 R 2.5("d" vi-delete-to)151.2
+468 R 2.5("e" vi-end-w)151.2 480 R(ord)-.1 E 2.5("f" vi-char)151.2 492 R
+(-search)-.2 E 2.5("h" backw)151.2 504 R(ard-char)-.1 E 2.5
+("i" vi-insertion-mode)151.2 516 R 2.5("j" ne)151.2 528 R(xt-history)
+-.15 E 2.5("k" pre)151.2 540 R(v-history)-.25 E 2.5("l" forw)151.2 552 R
+(ard-char)-.1 E 2.5("m" vi-set-mark)151.2 564 R 2.5("n" vi-search-ag)
+151.2 576 R(ain)-.05 E 2.5("p" vi-put)151.2 588 R 2.5
+("r" vi-change-char)151.2 600 R 2.5("s" vi-subst)151.2 612 R 2.5
+("t" vi-char)151.2 624 R(-search)-.2 E 2.5("u" vi-undo)151.2 636 R 2.5
+("w" vi-ne)151.2 648 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2 660
+R 2.5("y" vi-yank-to)151.2 672 R 2.5("|" vi-column)151.2 684 R 2.5
+("~" vi-change-case)151.2 696 R(GNU Readline 5.0)72 768 Q
+(2004 January 28)126.24 E(13)190.95 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/F1
-10.95/Times-Bold@0 SF -.548(AU)72 84 S(THORS).548 E F0(Brian F)108 96 Q
-(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 108
-Q(g)-.18 E(Chet Rame)108 124.8 Q 1.3 -.65(y, C)-.15 H(ase W).65 E
-(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E
-(chet@ins.CWR)108 136.8 Q(U.Edu)-.4 E F1 -.11(BU)72 153.6 S 2.738(GR).11
-G(EPOR)-2.738 E(TS)-.438 E F0 .69(If you \214nd a b)108 165.6 R .69
-(ug in)-.2 F/F2 10/Times-Bold@0 SF -.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 177.6 Q(ersion of the)-.15 E F2
+10.95/Times-Bold@0 SF(SEE ALSO)72 84 Q/F2 10/Times-Italic@0 SF
+(The Gnu Readline Libr)108 96 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 108 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 120 Q F0(\(1\))A F1(FILES)72 136.8 Q F2(~/.inputr)109.666
+148.8 Q(c)-.37 E F0(Indi)144 160.8 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
+177.6 S(THORS).548 E F0(Brian F)108 189.6 Q(ox, Free Softw)-.15 E(are F)
+-.1 E(oundation)-.15 E(bfox@gnu.or)108 201.6 Q(g)-.18 E(Chet Rame)108
+218.4 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@ins.CWR)108 230.4 Q(U.Edu)
+-.4 E F1 -.11(BU)72 247.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0
+.69(If you \214nd a b)108 259.2 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 271.2 Q(ersion of the)-.15 E F3
-.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.)
-.15 E .705(Once you ha)108 194.4 R 1.005 -.15(ve d)-.2 H .705
+.15 E .705(Once you ha)108 288 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/F3 10/Times-Italic@0 SF -.2(bu)3.204 G
-(g\255r).2 E(eadline)-.37 E F0(@)A F3(gnu.or)A(g)-.37 E F0 5.704(.I)C
-3.204(fy)-5.704 G(ou)-3.204 E(ha)108 206.4 Q 1.809 -.15(ve a \214)-.2 H
-1.509(x, you are welcome to mail that as well!).15 F 1.51
+-.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 300 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 218.4 Q F3 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F3
-(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2
-(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 235.2 Q
-(ug reports concerning this manual page should be directed to)-.2 E F3
+(mailed to)108 312 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 328.8 Q
+(ug reports concerning this manual page should be directed to)-.2 E F2
-.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E F1
--.11(BU)72 252 S(GS).11 E F0(It')108 264 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(14)190.95 E EP
+-.11(BU)72 345.6 S(GS).11 E F0(It')108 357.6 Q 2.5(st)-.55 G
+(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 5.0)72 768 Q
+(2004 January 28)126.24 E(14)190.95 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/rlman.texi b/doc/rlman.texi
new file mode 100644
index 0000000..f834b58
--- /dev/null
+++ b/doc/rlman.texi
@@ -0,0 +1,101 @@
+\input texinfo @c -*-texinfo-*-
+@comment %**start of header (This is for running Texinfo on a region.)
+@setfilename readline.info
+@settitle GNU Readline Library
+@comment %**end of header (This is for running Texinfo on a region.)
+@synindex vr fn
+@setchapternewpage odd
+
+@include version.texi
+
+@copying
+This manual describes the GNU Readline Library
+(version @value{VERSION}, @value{UPDATED}), a library which aids in the
+consistency of user interface across discrete programs which provide
+a command line interface.
+
+Copyright @copyright{} 1988-2004 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below. A copy of the license is
+included in the section entitled ``GNU Free Documentation License.''
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+@end quotation
+@end copying
+
+@dircategory Libraries
+@direntry
+* Readline: (readline). The GNU readline library API.
+@end direntry
+
+@titlepage
+@title GNU Readline Library
+@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
+@subtitle @value{UPDATED-MONTH}
+@author Chet Ramey, Case Western Reserve University
+@author Brian Fox, Free Software Foundation
+
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+
+@sp 1
+Published by the Free Software Foundation @*
+59 Temple Place, Suite 330, @*
+Boston, MA 02111-1307 @*
+USA @*
+
+@end titlepage
+
+@contents
+
+@ifnottex
+@node Top
+@top 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.
+
+@menu
+* Command Line Editing:: GNU Readline User's Manual.
+* Programming with GNU Readline:: GNU Readline Programmer's Manual.
+* Copying This Manual:: Copying this manual.
+* Concept Index:: Index of concepts described in this manual.
+* Function and Variable Index:: Index of externally visible functions
+ and variables.
+@end menu
+@end ifnottex
+
+@include rluser.texi
+@include rltech.texi
+
+@node Copying This Manual
+@appendix Copying This Manual
+
+@menu
+* GNU Free Documentation License:: License for copying this manual.
+@end menu
+
+@include fdl.texi
+
+@node Concept Index
+@unnumbered Concept Index
+@printindex cp
+
+@node Function and Variable Index
+@unnumbered Function and Variable Index
+@printindex fn
+
+@bye
diff --git a/doc/rltech.texi b/doc/rltech.texi
new file mode 100644
index 0000000..af9bc53
--- /dev/null
+++ b/doc/rltech.texi
@@ -0,0 +1,2259 @@
+@comment %**start of header (This is for running Texinfo on a region.)
+@setfilename rltech.info
+@comment %**end of header (This is for running Texinfo on a region.)
+@setchapternewpage odd
+
+@ifinfo
+This document describes the GNU Readline Library, a utility for aiding
+in the consitency of user interface across discrete programs that need
+to provide a command line interface.
+
+Copyright (C) 1988-2004 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.
+
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+@end ignore
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Foundation.
+@end ifinfo
+
+@node Programming with GNU Readline
+@chapter Programming with GNU Readline
+
+This chapter describes the interface between the @sc{gnu} Readline Library and
+other programs. If you are a programmer, and you wish to include the
+features found in @sc{gnu} Readline
+such as completion, line editing, and interactive history manipulation
+in your own programs, this section is for you.
+
+@menu
+* Basic Behavior:: Using the default behavior of Readline.
+* Custom Functions:: Adding your own functions to Readline.
+* Readline Variables:: Variables accessible to custom
+ functions.
+* Readline Convenience Functions:: Functions which Readline supplies to
+ aid in writing your own custom
+ functions.
+* Readline Signal Handling:: How Readline behaves when it receives signals.
+* Custom Completers:: Supplanting or supplementing Readline's
+ completion functions.
+@end menu
+
+@node Basic Behavior
+@section Basic Behavior
+
+Many programs provide a command line interface, such as @code{mail},
+@code{ftp}, and @code{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
+@code{gets()} or @code{fgets()}.
+
+@findex readline
+@cindex readline, function
+
+The function @code{readline()} prints a prompt @var{prompt}
+and then reads and returns a single line of text from the user.
+If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed.
+The line @code{readline} returns is allocated with @code{malloc()};
+the caller should @code{free()} the line when it has finished with it.
+The declaration for @code{readline} in ANSI C is
+
+@example
+@code{char *readline (const char *@var{prompt});}
+@end example
+
+@noindent
+So, one might say
+@example
+@code{char *line = readline ("Enter a line: ");}
+@end example
+@noindent
+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 @code{readline} encounters an @code{EOF} while reading the line, and the
+line is empty at that point, then @code{(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
+@key{C-p} for example), you must call @code{add_history()} to save the
+line away in a @dfn{history} list of such lines.
+
+@example
+@code{add_history (line)};
+@end example
+
+@noindent
+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 @code{gets()} library
+function, and has the advantage of no static buffer to overflow:
+
+@example
+/* A static variable for holding the line. */
+static char *line_read = (char *)NULL;
+
+/* Read a string, and return a pointer to it.
+ Returns NULL on EOF. */
+char *
+rl_gets ()
+@{
+ /* If the buffer has already been allocated,
+ return the memory to the free pool. */
+ if (line_read)
+ @{
+ free (line_read);
+ line_read = (char *)NULL;
+ @}
+
+ /* Get a line from the user. */
+ line_read = readline ("");
+
+ /* If the line has any text in it,
+ save it on the history. */
+ if (line_read && *line_read)
+ add_history (line_read);
+
+ return (line_read);
+@}
+@end example
+
+This function gives the user the default behaviour of @key{TAB}
+completion: completion on file names. If you do not want Readline to
+complete on filenames, you can change the binding of the @key{TAB} key
+with @code{rl_bind_key()}.
+
+@example
+@code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});}
+@end example
+
+@code{rl_bind_key()} takes two arguments: @var{key} is the character that
+you want to bind, and @var{function} is the address of the function to
+call when @var{key} is pressed. Binding @key{TAB} to @code{rl_insert()}
+makes @key{TAB} insert itself.
+@code{rl_bind_key()} returns non-zero if @var{key} is not a valid
+ASCII character code (between 0 and 255).
+
+Thus, to disable the default @key{TAB} behavior, the following suffices:
+@example
+@code{rl_bind_key ('\t', rl_insert);}
+@end example
+
+This code should be executed once at the start of your program; you
+might write a function called @code{initialize_readline()} which
+performs this and other desired initializations, such as installing
+custom completers (@pxref{Custom Completers}).
+
+@node Custom Functions
+@section Custom Functions
+
+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 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 @code{<readline/readline.h>}
+in any file that uses Readline's features. Since some of the definitions
+in @code{readline.h} use the @code{stdio} library, the file
+@code{<stdio.h>} should be included before @code{readline.h}.
+
+@code{readline.h} defines a C preprocessor variable that should
+be treated as an integer, @code{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 0x@var{MMmm}. @var{MM} is the two-digit major
+version number; @var{mm} is the two-digit minor version number.
+For Readline 4.2, for example, the value of
+@code{RL_READLINE_VERSION} would be @code{0x0402}.
+
+@menu
+* Readline Typedefs:: C declarations to make code readable.
+* Function Writing:: Variables and calling conventions.
+@end menu
+
+@node Readline Typedefs
+@subsection Readline Typedefs
+
+For readabilty, we declare a number of new object types, all pointers
+to functions.
+
+The reason for declaring these new types is to make it easier to write
+code describing pointers to C functions with appropriately prototyped
+arguments and return values.
+
+For instance, say we want to declare a variable @var{func} as a pointer
+to a function which takes two @code{int} arguments and returns an
+@code{int} (this is the type of all of the Readline bindable functions).
+Instead of the classic C declaration
+
+@code{int (*func)();}
+
+@noindent
+or the ANSI-C style declaration
+
+@code{int (*func)(int, int);}
+
+@noindent
+we may write
+
+@code{rl_command_func_t *func;}
+
+The full list of function pointer types available is
+
+@table @code
+@item typedef int rl_command_func_t (int, int);
+
+@item typedef char *rl_compentry_func_t (const char *, int);
+
+@item typedef char **rl_completion_func_t (const char *, int, int);
+
+@item typedef char *rl_quote_func_t (char *, int, char *);
+
+@item typedef char *rl_dequote_func_t (char *, int);
+
+@item typedef int rl_compignore_func_t (char **);
+
+@item typedef void rl_compdisp_func_t (char **, int, int);
+
+@item typedef int rl_hook_func_t (void);
+
+@item typedef int rl_getc_func_t (FILE *);
+
+@item typedef int rl_linebuf_func_t (char *, int);
+
+@item typedef int rl_intfunc_t (int);
+@item #define rl_ivoidfunc_t rl_hook_func_t
+@item typedef int rl_icpfunc_t (char *);
+@item typedef int rl_icppfunc_t (char **);
+
+@item typedef void rl_voidfunc_t (void);
+@item typedef void rl_vintfunc_t (int);
+@item typedef void rl_vcpfunc_t (char *);
+@item typedef void rl_vcppfunc_t (char **);
+
+@end table
+
+@node Function Writing
+@subsection Writing a New Function
+
+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 @code{foo} looks like
+
+@example
+@code{int foo (int count, int key)}
+@end example
+
+@noindent
+where @var{count} is the numeric argument (or 1 if defaulted) and
+@var{key} is the key that invoked this function.
+
+It is completely up to the function as to what should be done with the
+numeric argument. Some functions use it as a repeat count, some
+as a flag, and others to choose alternate behavior (refreshing the current
+line as opposed to refreshing the screen, for example). Some choose to
+ignore it. In general, if a
+function uses the numeric argument as a repeat count, it should be able
+to do something useful with both 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.
+
+@node Readline Variables
+@section Readline Variables
+
+These variables are available to function writers.
+
+@deftypevar {char *} rl_line_buffer
+This is the line gathered so far. You are welcome to modify the
+contents of the line, but see @ref{Allowing Undoing}. The
+function @code{rl_extend_line_buffer} is available to increase
+the memory allocated to @code{rl_line_buffer}.
+@end deftypevar
+
+@deftypevar int rl_point
+The offset of the current cursor position in @code{rl_line_buffer}
+(the @emph{point}).
+@end deftypevar
+
+@deftypevar int rl_end
+The number of characters present in @code{rl_line_buffer}. When
+@code{rl_point} is at the end of the line, @code{rl_point} and
+@code{rl_end} are equal.
+@end deftypevar
+
+@deftypevar int rl_mark
+The @var{mark} (saved position) in the current line. If set, the mark
+and point define a @emph{region}.
+@end deftypevar
+
+@deftypevar int rl_done
+Setting this to a non-zero value causes Readline to return the current
+line immediately.
+@end deftypevar
+
+@deftypevar int rl_num_chars_to_read
+Setting this to a positive value before calling @code{readline()} causes
+Readline to return after accepting that many characters, rather
+than reading up to a character bound to @code{accept-line}.
+@end deftypevar
+
+@deftypevar int rl_pending_input
+Setting this to a value makes it the next keystroke read. This is a
+way to stuff a single character into the input stream.
+@end deftypevar
+
+@deftypevar int rl_dispatching
+Set to a non-zero value if a function is being called from a key binding;
+zero otherwise. Application functions can test this to discover whether
+they were called directly or by Readline's dispatching mechanism.
+@end deftypevar
+
+@deftypevar 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.
+@end deftypevar
+
+@deftypevar {char *} rl_prompt
+The prompt Readline uses. This is set from the argument to
+@code{readline()}, and should not be assigned to directly.
+The @code{rl_set_prompt()} function (@pxref{Redisplay}) may
+be used to modify the prompt string after calling @code{readline()}.
+@end deftypevar
+
+@deftypevar int rl_already_prompted
+If an application wishes to display the prompt itself, rather than have
+Readline do it the first time @code{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 @code{readline()} so
+the redisplay functions can update the display properly.
+The calling application is responsible for managing the value; Readline
+never sets it.
+@end deftypevar
+
+@deftypevar {const char *} rl_library_version
+The version number of this revision of the library.
+@end deftypevar
+
+@deftypevar int rl_readline_version
+An integer encoding the current version of the library. The encoding is
+of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version
+number, and @var{mm} is the two-digit minor version number.
+For example, for Readline-4.2, @code{rl_readline_version} would have the
+value 0x0402.
+@end deftypevar
+
+@deftypevar {int} rl_gnu_readline_p
+Always set to 1, denoting that this is @sc{gnu} readline rather than some
+emulation.
+@end deftypevar
+
+@deftypevar {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 @env{TERM} environment variable
+the first time it is called.
+@end deftypevar
+
+@deftypevar {const char *} rl_readline_name
+This variable is set to a unique name by each application using Readline.
+The value allows conditional parsing of the inputrc file
+(@pxref{Conditional Init Constructs}).
+@end deftypevar
+
+@deftypevar {FILE *} rl_instream
+The stdio stream from which Readline reads input.
+If @code{NULL}, Readline defaults to @var{stdin}.
+@end deftypevar
+
+@deftypevar {FILE *} rl_outstream
+The stdio stream to which Readline performs output.
+If @code{NULL}, Readline defaults to @var{stdout}.
+@end deftypevar
+
+@deftypevar {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.
+@end deftypevar
+
+@deftypevar {rl_hook_func_t *} rl_startup_hook
+If non-zero, this is the address of a function to call just
+before @code{readline} prints the first prompt.
+@end deftypevar
+
+@deftypevar {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 @code{readline}
+starts reading input characters.
+@end deftypevar
+
+@deftypevar {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.
+@end deftypevar
+
+@deftypevar {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
+@code{rl_getc}, the default Readline character input function
+(@pxref{Character Input}).
+@end deftypevar
+
+@deftypevar {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 @code{rl_redisplay}, the default Readline
+redisplay function (@pxref{Redisplay}).
+@end deftypevar
+
+@deftypevar {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
+@code{int} flag that says whether or not to use eight-bit characters.
+By default, this is set to @code{rl_prep_terminal}
+(@pxref{Terminal Management}).
+@end deftypevar
+
+@deftypevar {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
+@code{rl_prep_term_function}.
+By default, this is set to @code{rl_deprep_terminal}
+(@pxref{Terminal Management}).
+@end deftypevar
+
+@deftypevar {Keymap} rl_executing_keymap
+This variable is set to the keymap (@pxref{Keymaps}) in which the
+currently executing readline function was found.
+@end deftypevar
+
+@deftypevar {Keymap} rl_binding_keymap
+This variable is set to the keymap (@pxref{Keymaps}) in which the
+last key binding occurred.
+@end deftypevar
+
+@deftypevar {char *} rl_executing_macro
+This variable is set to the text of any currently-executing macro.
+@end deftypevar
+
+@deftypevar {int} rl_readline_state
+A variable with bit values that encapsulate the current Readline state.
+A bit is set with the @code{RL_SETSTATE} macro, and unset with the
+@code{RL_UNSETSTATE} macro. Use the @code{RL_ISSTATE} macro to test
+whether a particular state bit is set. Current state bits include:
+
+@table @code
+@item RL_STATE_NONE
+Readline has not yet been called, nor has it begun to intialize.
+@item RL_STATE_INITIALIZING
+Readline is initializing its internal data structures.
+@item RL_STATE_INITIALIZED
+Readline has completed its initialization.
+@item RL_STATE_TERMPREPPED
+Readline has modified the terminal modes to do its own input and redisplay.
+@item RL_STATE_READCMD
+Readline is reading a command from the keyboard.
+@item RL_STATE_METANEXT
+Readline is reading more input after reading the meta-prefix character.
+@item RL_STATE_DISPATCHING
+Readline is dispatching to a command.
+@item RL_STATE_MOREINPUT
+Readline is reading more input while executing an editing command.
+@item RL_STATE_ISEARCH
+Readline is performing an incremental history search.
+@item RL_STATE_NSEARCH
+Readline is performing a non-incremental history search.
+@item RL_STATE_SEARCH
+Readline is searching backward or forward through the history for a string.
+@item RL_STATE_NUMERICARG
+Readline is reading a numeric argument.
+@item RL_STATE_MACROINPUT
+Readline is currently getting its input from a previously-defined keyboard
+macro.
+@item RL_STATE_MACRODEF
+Readline is currently reading characters defining a keyboard macro.
+@item RL_STATE_OVERWRITE
+Readline is in overwrite mode.
+@item RL_STATE_COMPLETING
+Readline is performing word completion.
+@item RL_STATE_SIGHANDLER
+Readline is currently executing the readline signal handler.
+@item RL_STATE_UNDOING
+Readline is performing an undo.
+@item RL_STATE_DONE
+Readline has read a key sequence bound to @code{accept-line}
+and is about to return the line to the caller.
+@end table
+
+@end deftypevar
+
+@deftypevar {int} rl_explicit_arg
+Set to a non-zero value if an explicit numeric argument was specified by
+the user. Only valid in a bindable command function.
+@end deftypevar
+
+@deftypevar {int} rl_numeric_arg
+Set to the value of any numeric argument explicitly specified by the user
+before executing the current Readline function. Only valid in a bindable
+command function.
+@end deftypevar
+
+@deftypevar {int} rl_editing_mode
+Set to a value denoting Readline's current editing mode. A value of
+@var{1} means Readline is currently in emacs mode; @var{0}
+means that vi mode is active.
+@end deftypevar
+
+
+@node Readline Convenience Functions
+@section Readline Convenience Functions
+
+@menu
+* Function Naming:: How to give a function you write a name.
+* Keymaps:: Making keymaps.
+* Binding Keys:: Changing Keymaps.
+* Associating Function Names and Bindings:: Translate function names to
+ key sequences.
+* Allowing Undoing:: How to make your functions undoable.
+* Redisplay:: Functions to control line display.
+* Modifying Text:: Functions to modify @code{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.
+* A Readline Example:: An example Readline function.
+@end menu
+
+@node Function Naming
+@subsection Naming a Function
+
+The user can dynamically change the bindings of keys while using
+Readline. This is done by representing the function with a descriptive
+name. The user is able to type the descriptive name when referring to
+the function. Thus, in an init file, one might find
+
+@example
+Meta-Rubout: backward-kill-word
+@end example
+
+This binds the keystroke @key{Meta-Rubout} to the function
+@emph{descriptively} named @code{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:
+
+@deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key)
+Add @var{name} to the list of named functions. Make @var{function} be
+the function that gets called. If @var{key} is not -1, then bind it to
+@var{function} using @code{rl_bind_key()}.
+@end deftypefun
+
+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.
+
+@node Keymaps
+@subsection Selecting a Keymap
+
+Key bindings take place on a @dfn{keymap}. The keymap is the
+association between the keys that the user types and the functions that
+get run. You can make your own keymaps, copy existing keymaps, and tell
+Readline which keymap to use.
+
+@deftypefun Keymap rl_make_bare_keymap (void)
+Returns a new, empty keymap. The space for the keymap is allocated with
+@code{malloc()}; the caller should free it by calling
+@code{rl_discard_keymap()} when done.
+@end deftypefun
+
+@deftypefun Keymap rl_copy_keymap (Keymap map)
+Return a new keymap which is a copy of @var{map}.
+@end deftypefun
+
+@deftypefun Keymap rl_make_keymap (void)
+Return a new keymap with the printing characters bound to rl_insert,
+the lowercase Meta characters bound to run their equivalents, and
+the Meta digits bound to produce numeric arguments.
+@end deftypefun
+
+@deftypefun void rl_discard_keymap (Keymap keymap)
+Free the storage associated with @var{keymap}.
+@end deftypefun
+
+Readline has several internal keymaps. These functions allow you to
+change which keymap is active.
+
+@deftypefun Keymap rl_get_keymap (void)
+Returns the currently active keymap.
+@end deftypefun
+
+@deftypefun void rl_set_keymap (Keymap keymap)
+Makes @var{keymap} the currently active keymap.
+@end deftypefun
+
+@deftypefun Keymap rl_get_keymap_by_name (const char *name)
+Return the keymap matching @var{name}. @var{name} is one which would
+be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
+@end deftypefun
+
+@deftypefun {char *} rl_get_keymap_name (Keymap keymap)
+Return the name matching @var{keymap}. @var{name} is one which would
+be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
+@end deftypefun
+
+@node Binding Keys
+@subsection Binding Keys
+
+Key sequences are associate with functions through the keymap.
+Readline has several internal keymaps: @code{emacs_standard_keymap},
+@code{emacs_meta_keymap}, @code{emacs_ctlx_keymap},
+@code{vi_movement_keymap}, and @code{vi_insertion_keymap}.
+@code{emacs_standard_keymap} is the default, and the examples in
+this manual assume that.
+
+Since @code{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 @code{readline()} will be overridden.
+An alternate mechanism is to install custom key bindings in an
+initialization function assigned to the @code{rl_startup_hook} variable
+(@pxref{Readline Variables}).
+
+These functions manage key bindings.
+
+@deftypefun int rl_bind_key (int key, rl_command_func_t *function)
+Binds @var{key} to @var{function} in the currently active keymap.
+Returns non-zero in the case of an invalid @var{key}.
+@end deftypefun
+
+@deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map)
+Bind @var{key} to @var{function} in @var{map}.
+Returns non-zero in the case of an invalid @var{key}.
+@end deftypefun
+
+@deftypefun int rl_bind_key_if_unbound (int key, rl_command_func_t *function)
+Binds @var{key} to @var{function} if it is not already bound in the
+currently active keymap.
+Returns non-zero in the case of an invalid @var{key} or if @var{key} is
+already bound.
+@end deftypefun
+
+@deftypefun int rl_bind_key_if_unbound_in_map (int key, rl_command_func_t *function, Keymap map)
+Binds @var{key} to @var{function} if it is not already bound in @var{map}.
+Returns non-zero in the case of an invalid @var{key} or if @var{key} is
+already bound.
+@end deftypefun
+
+@deftypefun int rl_unbind_key (int key)
+Bind @var{key} to the null function in the currently active keymap.
+Returns non-zero in case of error.
+@end deftypefun
+
+@deftypefun int rl_unbind_key_in_map (int key, Keymap map)
+Bind @var{key} to the null function in @var{map}.
+Returns non-zero in case of error.
+@end deftypefun
+
+@deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map)
+Unbind all keys that execute @var{function} in @var{map}.
+@end deftypefun
+
+@deftypefun int rl_unbind_command_in_map (const char *command, Keymap map)
+Unbind all keys that are bound to @var{command} in @var{map}.
+@end deftypefun
+
+@deftypefun int rl_bind_keyseq (const char *keyseq, rl_command_func_t *function)
+Bind the key sequence represented by the string @var{keyseq} to the function
+@var{function}, beginning in the current keymap.
+This makes new keymaps as necessary.
+The return value is non-zero if @var{keyseq} is invalid.
+@end deftypefun
+
+@deftypefun int rl_bind_keyseq_in_map (const char *keyseq, rl_command_func_t *function, Keymap map)
+Bind the key sequence represented by the string @var{keyseq} to the function
+@var{function}. This makes new keymaps as necessary.
+Initial bindings are performed in @var{map}.
+The return value is non-zero if @var{keyseq} is invalid.
+@end deftypefun
+
+@deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map)
+Equivalent to @code{rl_bind_keyseq_in_map}.
+@end deftypefun
+
+@deftypefun int rl_bind_keyseq_if_unbound (const char *keyseq, rl_command_func_t *function)
+Binds @var{keyseq} to @var{function} if it is not already bound in the
+currently active keymap.
+Returns non-zero in the case of an invalid @var{keyseq} or if @var{keyseq} is
+already bound.
+@end deftypefun
+
+@deftypefun int rl_bind_keyseq_if_unbound_in_map (const char *keyseq, rl_command_func_t *function, Keymap map)
+Binds @var{keyseq} to @var{function} if it is not already bound in @var{map}.
+Returns non-zero in the case of an invalid @var{keyseq} or if @var{keyseq} is
+already bound.
+@end deftypefun
+
+@deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
+Bind the key sequence represented by the string @var{keyseq} to the arbitrary
+pointer @var{data}. @var{type} says what kind of data is pointed to by
+@var{data}; this can be a function (@code{ISFUNC}), a macro
+(@code{ISMACR}), or a keymap (@code{ISKMAP}). This makes new keymaps as
+necessary. The initial keymap in which to do bindings is @var{map}.
+@end deftypefun
+
+@deftypefun int rl_parse_and_bind (char *line)
+Parse @var{line} as if it had been read from the @code{inputrc} file and
+perform any key bindings and variable assignments found
+(@pxref{Readline Init File}).
+@end deftypefun
+
+@deftypefun int rl_read_init_file (const char *filename)
+Read keybindings and variable assignments from @var{filename}
+(@pxref{Readline Init File}).
+@end deftypefun
+
+@node Associating Function Names and Bindings
+@subsection Associating Function Names and Bindings
+
+These functions allow you to find out what keys invoke named functions
+and the functions invoked by a particular key sequence. You may also
+associate a new function name with an arbitrary function.
+
+@deftypefun {rl_command_func_t *} rl_named_function (const char *name)
+Return the function with name @var{name}.
+@end deftypefun
+
+@deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type)
+Return the function invoked by @var{keyseq} in keymap @var{map}.
+If @var{map} is @code{NULL}, the current keymap is used. If @var{type} is
+not @code{NULL}, the type of the object is returned in the @code{int} variable
+it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
+@end deftypefun
+
+@deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
+Return an array of strings representing the key sequences used to
+invoke @var{function} in the current keymap.
+@end deftypefun
+
+@deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map)
+Return an array of strings representing the key sequences used to
+invoke @var{function} in the keymap @var{map}.
+@end deftypefun
+
+@deftypefun void rl_function_dumper (int readable)
+Print the readline function names and the key sequences currently
+bound to them to @code{rl_outstream}. If @var{readable} is non-zero,
+the list is formatted in such a way that it can be made part of an
+@code{inputrc} file and re-read.
+@end deftypefun
+
+@deftypefun void rl_list_funmap_names (void)
+Print the names of all bindable Readline functions to @code{rl_outstream}.
+@end deftypefun
+
+@deftypefun {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 @code{free()} the array when you are done, but not the pointers.
+@end deftypefun
+
+@deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function)
+Add @var{name} to the list of bindable Readline command names, and make
+@var{function} the function to be called when @var{name} is invoked.
+@end deftypefun
+
+@node Allowing Undoing
+@subsection Allowing Undoing
+
+Supporting the undo command is a painless thing, and makes your
+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 @code{rl_insert_text()} or @code{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 @code{rl_begin_undo_group()} and
+@code{rl_end_undo_group()}.
+
+The types of events that can be undone are:
+
+@smallexample
+enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @};
+@end smallexample
+
+Notice that @code{UNDO_DELETE} means to insert some text, and
+@code{UNDO_INSERT} means to delete some text. That is, the undo code
+tells what to undo, not how to undo it. @code{UNDO_BEGIN} and
+@code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and
+@code{rl_end_undo_group()}.
+
+@deftypefun int rl_begin_undo_group (void)
+Begins saving undo information in a group construct. The undo
+information usually comes from calls to @code{rl_insert_text()} and
+@code{rl_delete_text()}, but could be the result of calls to
+@code{rl_add_undo()}.
+@end deftypefun
+
+@deftypefun int rl_end_undo_group (void)
+Closes the current undo group started with @code{rl_begin_undo_group
+()}. There should be one call to @code{rl_end_undo_group()}
+for each call to @code{rl_begin_undo_group()}.
+@end deftypefun
+
+@deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text)
+Remember how to undo an event (according to @var{what}). The affected
+text runs from @var{start} to @var{end}, and encompasses @var{text}.
+@end deftypefun
+
+@deftypefun void rl_free_undo_list (void)
+Free the existing undo list.
+@end deftypefun
+
+@deftypefun int rl_do_undo (void)
+Undo the first thing on the undo list. Returns @code{0} if there was
+nothing to undo, non-zero if something was undone.
+@end deftypefun
+
+Finally, if you neither insert nor delete text, but directly modify the
+existing text (e.g., change its case), call @code{rl_modifying()}
+once, just before you modify the text. You must supply the indices of
+the text range that you are going to modify.
+
+@deftypefun int rl_modifying (int start, int end)
+Tell Readline to save the text between @var{start} and @var{end} as a
+single undo unit. It is assumed that you will subsequently modify
+that text.
+@end deftypefun
+
+@node Redisplay
+@subsection Redisplay
+
+@deftypefun void rl_redisplay (void)
+Change what's displayed on the screen to reflect the current contents
+of @code{rl_line_buffer}.
+@end deftypefun
+
+@deftypefun int rl_forced_update_display (void)
+Force the line to be updated and redisplayed, whether or not
+Readline thinks the screen display is correct.
+@end deftypefun
+
+@deftypefun int rl_on_new_line (void)
+Tell the update functions that we have moved onto a new (empty) line,
+usually after ouputting a newline.
+@end deftypefun
+
+@deftypefun int rl_on_new_line_with_prompt (void)
+Tell the update functions that we have moved onto a new line, with
+@var{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 @var{rl_already_prompted}.
+@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.
+@end deftypefun
+
+@deftypefun int rl_crlf (void)
+Move the cursor to the start of the next screen line.
+@end deftypefun
+
+@deftypefun int rl_show_char (int c)
+Display character @var{c} on @code{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.
+@end deftypefun
+
+@deftypefun int rl_message (const char *, @dots{})
+The arguments are a format string as would be supplied to @code{printf},
+possibly containing conversion specifications such as @samp{%d}, and
+any additional arguments necessary to satisfy the conversion specifications.
+The resulting string is displayed in the @dfn{echo area}. The echo area
+is also used to display numeric arguments and search strings.
+@end deftypefun
+
+@deftypefun int rl_clear_message (void)
+Clear the message in the echo area.
+@end deftypefun
+
+@deftypefun void rl_save_prompt (void)
+Save the local Readline prompt display state in preparation for
+displaying a new message in the message area with @code{rl_message()}.
+@end deftypefun
+
+@deftypefun void rl_restore_prompt (void)
+Restore the local Readline prompt display state saved by the most
+recent call to @code{rl_save_prompt}.
+@end deftypefun
+
+@deftypefun int rl_expand_prompt (char *prompt)
+Expand any special character sequences in @var{prompt} and set up the
+local Readline prompt redisplay variables.
+This function is called by @code{readline()}. It may also be called to
+expand the primary prompt if the @code{rl_on_new_line_with_prompt()}
+function or @code{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 @code{RL_PROMPT_START_IGNORE}
+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
+
+@deftypefun int rl_set_prompt (const char *prompt)
+Make Readline use @var{prompt} for subsequent redisplay. This calls
+@code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt}
+to the result.
+@end deftypefun
+
+@node Modifying Text
+@subsection Modifying Text
+
+@deftypefun int rl_insert_text (const char *text)
+Insert @var{text} into the line at the current cursor position.
+Returns the number of characters inserted.
+@end deftypefun
+
+@deftypefun int rl_delete_text (int start, int end)
+Delete the text between @var{start} and @var{end} in the current line.
+Returns the number of characters deleted.
+@end deftypefun
+
+@deftypefun {char *} rl_copy_text (int start, int end)
+Return a copy of the text between @var{start} and @var{end} in
+the current line.
+@end deftypefun
+
+@deftypefun int rl_kill_text (int start, int end)
+Copy the text between @var{start} and @var{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 @var{start} is less than @var{end},
+the text is appended, otherwise prepended. If the last command was
+not a kill, a new kill ring slot is used.
+@end deftypefun
+
+@deftypefun int rl_push_macro_input (char *macro)
+Cause @var{macro} to be inserted into the line, as if it had been invoked
+by a key bound to a macro. Not especially useful; use
+@code{rl_insert_text()} instead.
+@end deftypefun
+
+@node Character Input
+@subsection Character Input
+
+@deftypefun int rl_read_key (void)
+Return the next character available from Readline's current input stream.
+This handles input inserted into
+the input stream via @var{rl_pending_input} (@pxref{Readline Variables})
+and @code{rl_stuff_char()}, macros, and characters read from the keyboard.
+While waiting for input, this function will call any function assigned to
+the @code{rl_event_hook} variable.
+@end deftypefun
+
+@deftypefun int rl_getc (FILE *stream)
+Return the next character available from @var{stream}, which is assumed to
+be the keyboard.
+@end deftypefun
+
+@deftypefun int rl_stuff_char (int c)
+Insert @var{c} into the Readline input stream. It will be "read"
+before Readline attempts to read characters from the terminal with
+@code{rl_read_key()}. Up to 512 characters may be pushed back.
+@code{rl_stuff_char} returns 1 if the character was successfully inserted;
+0 otherwise.
+@end deftypefun
+
+@deftypefun int rl_execute_next (int c)
+Make @var{c} be the next command to be executed when @code{rl_read_key()}
+is called. This sets @var{rl_pending_input}.
+@end deftypefun
+
+@deftypefun int rl_clear_pending_input (void)
+Unset @var{rl_pending_input}, effectively negating the effect of any
+previous call to @code{rl_execute_next()}. This works only if the
+pending input has not already been read with @code{rl_read_key()}.
+@end deftypefun
+
+@deftypefun int rl_set_keyboard_input_timeout (int u)
+While waiting for keyboard input in @code{rl_read_key()}, Readline will
+wait for @var{u} microseconds for input before calling any function
+assigned to @code{rl_event_hook}. The default waiting period is
+one-tenth of a second. Returns the old timeout value.
+@end deftypefun
+
+@node Terminal Management
+@subsection Terminal Management
+
+@deftypefun void rl_prep_terminal (int meta_flag)
+Modify the terminal settings for Readline's use, so @code{readline()}
+can read a single character at a time from the keyboard.
+The @var{meta_flag} argument should be non-zero if Readline should
+read eight-bit input.
+@end deftypefun
+
+@deftypefun void rl_deprep_terminal (void)
+Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in
+the state in which it was before the most recent call to
+@code{rl_prep_terminal()}.
+@end deftypefun
+
+@deftypefun void rl_tty_set_default_bindings (Keymap kmap)
+Read the operating system's terminal editing characters (as would be
+displayed by @code{stty}) to their Readline equivalents.
+The bindings are performed in @var{kmap}.
+@end deftypefun
+
+@deftypefun void rl_tty_unset_default_bindings (Keymap kmap)
+Reset the bindings manipulated by @code{rl_tty_set_default_bindings} so
+that the terminal editing characters are bound to @code{rl_insert}.
+The bindings are performed in @var{kmap}.
+@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}).
+If @var{terminal_name} is @code{NULL}, the value of the @code{TERM}
+environment variable is used.
+@end deftypefun
+
+@node Utility Functions
+@subsection Utility Functions
+
+@deftypefun void rl_replace_line (const char *text, int clear_undo)
+Replace the contents of @code{rl_line_buffer} with @var{text}.
+The point and mark are preserved, if possible.
+If @var{clear_undo} is non-zero, the undo list associated with the
+current line is cleared.
+@end deftypefun
+
+@deftypefun int rl_extend_line_buffer (int len)
+Ensure that @code{rl_line_buffer} has enough space to hold @var{len}
+characters, possibly reallocating it if necessary.
+@end deftypefun
+
+@deftypefun int rl_initialize (void)
+Initialize or re-initialize Readline's internal state.
+It's not strictly necessary to call this; @code{readline()} calls it before
+reading any input.
+@end deftypefun
+
+@deftypefun int rl_ding (void)
+Ring the terminal bell, obeying the setting of @code{bell-style}.
+@end deftypefun
+
+@deftypefun int rl_alphabetic (int c)
+Return 1 if @var{c} is an alphabetic character.
+@end deftypefun
+
+@deftypefun 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. @code{matches} is the list
+of strings, in argv format, such as a list of completion matches.
+@code{len} is the number of strings in @code{matches}, and @code{max}
+is the length of the longest string in @code{matches}. This function uses
+the setting of @code{print-completions-horizontally} to select how the
+matches are displayed (@pxref{Readline Init File Syntax}).
+@end deftypefun
+
+The following are implemented as macros, defined in @code{chardefs.h}.
+Applications should refrain from using them.
+
+@deftypefun int _rl_uppercase_p (int c)
+Return 1 if @var{c} is an uppercase alphabetic character.
+@end deftypefun
+
+@deftypefun int _rl_lowercase_p (int c)
+Return 1 if @var{c} is a lowercase alphabetic character.
+@end deftypefun
+
+@deftypefun int _rl_digit_p (int c)
+Return 1 if @var{c} is a numeric character.
+@end deftypefun
+
+@deftypefun int _rl_to_upper (int c)
+If @var{c} is a lowercase alphabetic character, return the corresponding
+uppercase character.
+@end deftypefun
+
+@deftypefun int _rl_to_lower (int c)
+If @var{c} is an uppercase alphabetic character, return the corresponding
+lowercase character.
+@end deftypefun
+
+@deftypefun int _rl_digit_value (int c)
+If @var{c} is a number, return the value it represents.
+@end deftypefun
+
+@node Miscellaneous Functions
+@subsection Miscellaneous Functions
+
+@deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map)
+Bind the key sequence @var{keyseq} to invoke the macro @var{macro}.
+The binding is performed in @var{map}. When @var{keyseq} is invoked, the
+@var{macro} will be inserted into the line. This function is deprecated;
+use @code{rl_generic_bind()} instead.
+@end deftypefun
+
+@deftypefun void rl_macro_dumper (int readable)
+Print the key sequences bound to macros and their values, using
+the current keymap, to @code{rl_outstream}.
+If @var{readable} is non-zero, the list is formatted in such a way
+that it can be made part of an @code{inputrc} file and re-read.
+@end deftypefun
+
+@deftypefun int rl_variable_bind (const char *variable, const char *value)
+Make the Readline variable @var{variable} have @var{value}.
+This behaves as if the readline command
+@samp{set @var{variable} @var{value}} had been executed in an @code{inputrc}
+file (@pxref{Readline Init File Syntax}).
+@end deftypefun
+
+@deftypefun void rl_variable_dumper (int readable)
+Print the readline variable names and their current values
+to @code{rl_outstream}.
+If @var{readable} is non-zero, the list is formatted in such a way
+that it can be made part of an @code{inputrc} file and re-read.
+@end deftypefun
+
+@deftypefun int rl_set_paren_blink_timeout (int u)
+Set the time interval (in microseconds) that Readline waits when showing
+a balancing character when @code{blink-matching-paren} has been enabled.
+@end deftypefun
+
+@deftypefun {char *} rl_get_termcap (const char *cap)
+Retrieve the string value of the termcap capability @var{cap}.
+Readline fetches the termcap entry for the current terminal name and
+uses those capabilities to move around the screen line and perform other
+terminal-specific operations, like erasing a line. Readline does not
+use all of a terminal's capabilities, and this function will return
+values for only those capabilities Readline uses.
+@end deftypefun
+
+@node Alternate Interface
+@subsection Alternate Interface
+
+An alternate interface is available to plain @code{readline()}. Some
+applications need to interleave keyboard I/O with file, device, or
+window system I/O, typically by using a main loop to @code{select()}
+on various file descriptors. To accomodate this need, readline can
+also be invoked as a `callback' function from an event loop. There
+are functions available to make this easy.
+
+@deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
+Set up the terminal for readline I/O and display the initial
+expanded value of @var{prompt}. Save the value of @var{lhandler} to
+use as a function to call when a complete line of input has been entered.
+The function takes the text of the line as an argument.
+@end deftypefun
+
+@deftypefun void rl_callback_read_char (void)
+Whenever an application determines that keyboard input is available, it
+should call @code{rl_callback_read_char()}, which will read the next
+character from the current input source.
+If that character completes the line, @code{rl_callback_read_char} will
+invoke the @var{lhandler} function saved by @code{rl_callback_handler_install}
+to process the line.
+Before calling the @var{lhandler} function, the terminal settings are
+reset to the values they had before calling
+@code{rl_callback_handler_install}.
+If the @var{lhandler} function returns,
+the terminal settings are modified for Readline's use again.
+@code{EOF} is indicated by calling @var{lhandler} with a
+@code{NULL} line.
+@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.
+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
+the program exits to reset the terminal settings.
+@end deftypefun
+
+@node A Readline Example
+@subsection A Readline Example
+
+Here is a function which changes lowercase characters to their uppercase
+equivalents, and uppercase characters to lowercase. If
+this function was bound to @samp{M-c}, then typing @samp{M-c} would
+change the case of the character under point. Typing @samp{M-1 0 M-c}
+would change the case of the following 10 characters, leaving the cursor on
+the last character changed.
+
+@example
+/* Invert the case of the COUNT following characters. */
+int
+invert_case_line (count, key)
+ int count, key;
+@{
+ register int start, end, i;
+
+ start = rl_point;
+
+ if (rl_point >= rl_end)
+ return (0);
+
+ if (count < 0)
+ @{
+ direction = -1;
+ count = -count;
+ @}
+ else
+ direction = 1;
+
+ /* Find the end of the range to modify. */
+ end = start + (count * direction);
+
+ /* Force it to be within range. */
+ if (end > rl_end)
+ end = rl_end;
+ else if (end < 0)
+ end = 0;
+
+ if (start == end)
+ return (0);
+
+ if (start > end)
+ @{
+ int temp = start;
+ start = end;
+ end = temp;
+ @}
+
+ /* Tell readline that we are modifying the line,
+ so it will save the undo information. */
+ rl_modifying (start, end);
+
+ for (i = start; i != end; i++)
+ @{
+ if (_rl_uppercase_p (rl_line_buffer[i]))
+ rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
+ else if (_rl_lowercase_p (rl_line_buffer[i]))
+ rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
+ @}
+ /* Move point to on top of the last character changed. */
+ rl_point = (direction == 1) ? end - 1 : start;
+ return (0);
+@}
+@end example
+
+@node Readline Signal Handling
+@section Readline Signal Handling
+
+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 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 (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM},
+@code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}).
+When one of these signals is received, the signal handler
+will reset the terminal attributes to those that were in effect before
+@code{readline()} was called, reset the signal handling to what it was
+before @code{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 @code{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 @code{rl_free_line_state()} below).
+
+There is an additional Readline signal handler, for @code{SIGWINCH}, which
+the kernel sends to a process whenever the terminal's size changes (for
+example, if a user resizes an @code{xterm}). The Readline @code{SIGWINCH}
+handler updates Readline's internal screen size information, and then calls
+any @code{SIGWINCH} signal handler the calling application has installed.
+Readline calls the application's @code{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 @code{longjmp} back to a main processing loop), it @emph{must}
+call @code{rl_cleanup_after_signal()} (described below), to restore the
+terminal state.
+
+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 @code{readline()}, not in
+a signal handler, so Readline's internal signal state is not corrupted.
+
+@deftypevar int rl_catch_signals
+If this variable is non-zero, Readline will install signal handlers for
+@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM},
+@code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}.
+
+The default value of @code{rl_catch_signals} is 1.
+@end deftypevar
+
+@deftypevar int rl_catch_sigwinch
+If this variable is non-zero, Readline will install a signal handler for
+@code{SIGWINCH}.
+
+The default value of @code{rl_catch_sigwinch} is 1.
+@end deftypevar
+
+If an application does not wish to have Readline catch any signals, or
+to handle signals other than those Readline catches (@code{SIGHUP},
+for example),
+Readline provides convenience functions to do the necessary terminal
+and internal state cleanup upon receipt of a signal.
+
+@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
+all signals, depending on the values of @code{rl_catch_signals} and
+@code{rl_catch_sigwinch}.
+@end deftypefun
+
+@deftypefun 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 @code{rl_cleanup_after_signal()}. The
+Readline signal handler for @code{SIGINT} calls this to abort the
+current input line.
+@end deftypefun
+
+@deftypefun void rl_reset_after_signal (void)
+This will reinitialize the terminal and reinstall any Readline signal
+handlers, depending on the values of @code{rl_catch_signals} and
+@code{rl_catch_sigwinch}.
+@end deftypefun
+
+If an application does not wish Readline to catch @code{SIGWINCH}, it may
+call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force
+Readline to update its idea of the terminal size when a @code{SIGWINCH}
+is received.
+
+@deftypefun void rl_resize_terminal (void)
+Update Readline's internal screen size by reading values from the kernel.
+@end deftypefun
+
+@deftypefun void rl_set_screen_size (int rows, int cols)
+Set Readline's idea of the terminal size to @var{rows} rows and
+@var{cols} columns.
+@end deftypefun
+
+If an application does not want to install a @code{SIGWINCH} handler, but
+is still interested in the screen dimensions, Readline's idea of the screen
+size may be queried.
+
+@deftypefun void rl_get_screen_size (int *rows, int *cols)
+Return Readline's idea of the terminal's size in the
+variables pointed to by the arguments.
+@end deftypefun
+
+The following functions install and remove Readline's signal handlers.
+
+@deftypefun int rl_set_signals (void)
+Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT},
+@code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN},
+@code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of
+@code{rl_catch_signals} and @code{rl_catch_sigwinch}.
+@end deftypefun
+
+@deftypefun int rl_clear_signals (void)
+Remove all of the Readline signal handlers installed by
+@code{rl_set_signals()}.
+@end deftypefun
+
+@node Custom Completers
+@section Custom Completers
+@cindex application-specific completion functions
+
+Typically, a program that reads commands from the user has a way of
+disambiguating commands and data. If your program is one of these, then
+it can provide completion for commands, data, or both.
+The following sections describe how your program and Readline
+cooperate to provide this service.
+
+@menu
+* How Completing Works:: The logic used to do completion.
+* Completion Functions:: Functions provided by Readline.
+* Completion Variables:: Variables which control completion.
+* A Short Completion Example:: An example of writing completer subroutines.
+@end menu
+
+@node How Completing Works
+@subsection How Completing Works
+
+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 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:
+
+@enumerate
+@item
+The user-interface function @code{rl_complete()}. This function is
+called with the same arguments as other bindable Readline functions:
+@var{count} and @var{invoking_key}.
+It isolates the word to be completed and calls
+@code{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.
+
+@item
+The internal function @code{rl_completion_matches()} uses an
+application-supplied @dfn{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
+@code{rl_completion_entry_function}.
+
+@item
+The generator function is called repeatedly from
+@code{rl_completion_matches()}, returning a string each time. The
+arguments to the generator function are @var{text} and @var{state}.
+@var{text} is the partial word to be completed. @var{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
+@code{(char *)NULL} to inform @code{rl_completion_matches()} that there are
+no more possibilities left. Usually the generator function computes the
+list of possible completions when @var{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 @code{malloc()}; Readline
+frees the strings when it has finished with them.
+Such a generator function is referred to as an
+@dfn{application-specific completion function}.
+
+@end enumerate
+
+@deftypefun 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
+@code{rl_completion_matches()}). The default is to do filename completion.
+@end deftypefun
+
+@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
+This is a pointer to the generator function for
+@code{rl_completion_matches()}.
+If the value of @code{rl_completion_entry_function} is
+@code{NULL} then the default filename generator
+function, @code{rl_filename_completion_function()}, is used.
+An @dfn{application-specific completion function} is a function whose
+address is assigned to @code{rl_completion_entry_function} and whose
+return values are used to generate possible completions.
+@end deftypevar
+
+@node Completion Functions
+@subsection Completion Functions
+
+Here is the complete list of callable completion functions present in
+Readline.
+
+@deftypefun int rl_complete_internal (int what_to_do)
+Complete the word at or before point. @var{what_to_do} says what to do
+with the completion. A value of @samp{?} means list the possible
+completions. @samp{TAB} means do standard completion. @samp{*} means
+insert all of the possible completions. @samp{!} means to display
+all of the possible completions, if there is more than one, as well as
+performing partial completion. @samp{@@} is similar to @samp{!}, but
+possible completions are not listed if the possible completions share
+a common prefix.
+@end deftypefun
+
+@deftypefun 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
+@code{rl_completion_matches()} and @code{rl_completion_entry_function}).
+The default is to do filename
+completion. This calls @code{rl_complete_internal()} with an
+argument depending on @var{invoking_key}.
+@end deftypefun
+
+@deftypefun int rl_possible_completions (int count, int invoking_key)
+List the possible completions. See description of @code{rl_complete
+()}. This calls @code{rl_complete_internal()} with an argument of
+@samp{?}.
+@end deftypefun
+
+@deftypefun 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 @code{rl_complete()}.
+This calls @code{rl_complete_internal()} with an argument of @samp{*}.
+@end deftypefun
+
+@deftypefun int rl_completion_mode (rl_command_func_t *cfunc)
+Returns the apppriate value to pass to @code{rl_complete_internal()}
+depending on whether @var{cfunc} was called twice in succession and
+the values of the @code{show-all-if-ambiguous} and
+@code{show-all-if-unmodified} variables.
+Application-specific completion functions may use this function to present
+the same interface as @code{rl_complete()}.
+@end deftypefun
+
+@deftypefun {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
+@var{text}. If there are no completions, returns @code{NULL}.
+The first entry in the returned array is the substitution for @var{text}.
+The remaining entries are the possible completions. The array is
+terminated with a @code{NULL} pointer.
+
+@var{entry_func} is a function of two args, and returns a
+@code{char *}. The first argument is @var{text}. The second is a
+state argument; it is zero on the first call, and non-zero on subsequent
+calls. @var{entry_func} returns a @code{NULL} pointer to the caller
+when there are no more matches.
+@end deftypefun
+
+@deftypefun {char *} rl_filename_completion_function (const char *text, int state)
+A generator function for filename completion in the general case.
+@var{text} is a partial filename.
+The Bash source is a useful reference for writing application-specific
+completion functions (the Bash completion functions call this and other
+Readline functions).
+@end deftypefun
+
+@deftypefun {char *} rl_username_completion_function (const char *text, int state)
+A completion generator for usernames. @var{text} contains a partial
+username preceded by a random character (usually @samp{~}). As with all
+completion generators, @var{state} is zero on the first call and non-zero
+for subsequent calls.
+@end deftypefun
+
+@node Completion Variables
+@subsection Completion Variables
+
+@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
+A pointer to the generator function for @code{rl_completion_matches()}.
+@code{NULL} means to use @code{rl_filename_completion_function()},
+the default filename completer.
+@end deftypevar
+
+@deftypevar {rl_completion_func_t *} rl_attempted_completion_function
+A pointer to an alternative function to create matches.
+The function is called with @var{text}, @var{start}, and @var{end}.
+@var{start} and @var{end} are indices in @code{rl_line_buffer} defining
+the boundaries of @var{text}, which is a character string.
+If this function exists and returns @code{NULL}, or if this variable is
+set to @code{NULL}, then @code{rl_complete()} will call the value of
+@code{rl_completion_entry_function} to generate matches, otherwise the
+array of strings returned will be used.
+If this function sets the @code{rl_attempted_completion_over}
+variable to a non-zero value, Readline will not perform its default
+completion even if this function returns no matches.
+@end deftypevar
+
+@deftypevar {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 @code{rl_filename_quote_characters}
+appears in a completed filename. The function is called with
+@var{text}, @var{match_type}, and @var{quote_pointer}. The @var{text}
+is the filename to be quoted. The @var{match_type} is either
+@code{SINGLE_MATCH}, if there is only one completion match, or
+@code{MULT_MATCH}. Some functions use this to decide whether or not to
+insert a closing quote character. The @var{quote_pointer} is a pointer
+to any opening quote character the user typed. Some functions choose
+to reset this character.
+@end deftypevar
+
+@deftypevar {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 @var{text}, the text of the word
+to be dequoted, and @var{quote_char}, which is the quoting character
+that delimits the filename (usually @samp{'} or @samp{"}). If
+@var{quote_char} is zero, the filename was not in an embedded string.
+@end deftypevar
+
+@deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p
+A pointer to a function to call that determines whether or not a specific
+character in the line buffer is quoted, according to whatever quoting
+mechanism the program calling Readline uses. The function is called with
+two arguments: @var{text}, the text of the line, and @var{index}, the
+index of the character in the line. It is used to decide whether a
+character found in @code{rl_completer_word_break_characters} should be
+used to break words for the completer.
+@end deftypevar
+
+@deftypevar {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 @code{NULL} terminated array of matches.
+The first element (@code{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.
+@end deftypevar
+
+@deftypevar {rl_icppfunc_t *} rl_directory_completion_hook
+This function, if defined, is allowed to modify the directory portion
+of filenames Readline completes. 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 displayed as part of the completion, replacing
+the directory portion of the pathname the user typed.
+It returns an integer that should be non-zero if the function modifies
+its directory argument.
+It could be used to expand symbolic links or shell variables in pathnames.
+@end deftypevar
+
+@deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook
+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:
+(@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length})
+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.
+@end deftypevar
+
+@deftypevar {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:
+@code{" \t\n\"\\'`@@$><=;|&@{("}.
+@end deftypevar
+
+@deftypevar {const char *} rl_basic_quote_characters
+A list of quote characters which can cause a word break.
+@end deftypevar
+
+@deftypevar {const char *} rl_completer_word_break_characters
+The list of characters that signal a break between words for
+@code{rl_complete_internal()}. The default list is the value of
+@code{rl_basic_word_break_characters}.
+@end deftypevar
+
+@deftypevar {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 @code{rl_completer_word_break_characters} to be
+used to perform the current completion. The function may choose to set
+@code{rl_completer_word_break_characters} itself. If the function
+returns @code{NULL}, @code{rl_completer_word_break_characters} is used.
+@end deftypevar
+
+@deftypevar {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
+@code{rl_completer_word_break_characters} are treated as any other character,
+unless they also appear within this list.
+@end deftypevar
+
+@deftypevar {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.
+@end deftypevar
+
+@deftypevar {const char *} rl_special_prefixes
+The list of characters that are word break characters, but should be
+left in @var{text} when it is passed to the completion function.
+Programs can use this to help determine what kind of completing to do.
+For instance, Bash sets this variable to "$@@" so that it can complete
+shell variables and hostnames.
+@end deftypevar
+
+@deftypevar int rl_completion_query_items
+Up to this many items will be displayed in response to a
+possible-completions call. After that, we ask the user if she is sure
+she wants to see them all. The default value is 100.
+@end deftypevar
+
+@deftypevar {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 (@samp{ }). Setting this to the null
+character (@samp{\0}) prevents anything being appended automatically.
+This can be changed in application-specific completion functions to
+provide the ``most sensible word separator character'' according to
+an application-specific command line syntax specification.
+@end deftypevar
+
+@deftypevar int rl_completion_suppress_append
+If non-zero, @var{rl_completion_append_character} is not appended to
+matches at the end of the command line, as described above.
+It is set to 0 before any application-specific completion function
+is called, and may only be changed within such a function.
+@end deftypevar
+
+@deftypevar int rl_completion_quote_character
+When Readline is completing quoted text, as delimited by one of the
+characters in @var{rl_completer_quote_characters}, it sets this variable
+to the quoting character found.
+This is set before any application-specific completion function is called.
+@end deftypevar
+
+@deftypevar int rl_completion_suppress_quote
+If non-zero, Readline does not append a matching quote character when
+performing completion on a quoted string.
+It is set to 0 before any application-specific completion function
+is called, and may only be changed within such a function.
+@end deftypevar
+
+@deftypevar 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.
+@end deftypevar
+
+@deftypevar int rl_completion_mark_symlink_dirs
+If non-zero, a slash will be appended to completed filenames that are
+symbolic links to directory names, subject to the value of the
+user-settable @var{mark-directories} variable.
+This variable exists so that application-specific completion functions
+can override the user's global preference (set via the
+@var{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.
+@end deftypevar
+
+@deftypevar int rl_ignore_completion_duplicates
+If non-zero, then duplicates in the matches are removed.
+The default is 1.
+@end deftypevar
+
+@deftypevar int rl_filename_completion_desired
+Non-zero means that the results of the matches are to be treated as
+filenames. This is @emph{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 @code{rl_filename_quote_characters} and
+@code{rl_filename_quoting_desired} is set to a non-zero value.
+@end deftypevar
+
+@deftypevar 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
+@code{rl_filename_quote_chars}. This is @emph{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 @code{rl_filename_quoting_function}.
+@end deftypevar
+
+@deftypevar int rl_attempted_completion_over
+If an application-specific completion function assigned to
+@code{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.
+@end deftypevar
+
+@deftypevar int rl_completion_type
+Set to a character describing the type of completion Readline is currently
+attempting; see the description of @code{rl_complete_internal()}
+(@pxref{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 @code{rl_complete()}.
+@end deftypevar
+
+@deftypevar int rl_inhibit_completion
+If this variable is non-zero, completion is inhibited. The completion
+character will be inserted as any other bound to @code{self-insert}.
+@end deftypevar
+
+@node A Short Completion Example
+@subsection A Short Completion Example
+
+Here is a small application demonstrating the use of the GNU Readline
+library. It is called @code{fileman}, and the source code resides in
+@file{examples/fileman.c}. This sample application provides
+completion of command names, line editing features, and access to the
+history list.
+
+@page
+@smallexample
+/* fileman.c -- A tiny application which demonstrates how to use the
+ GNU Readline library. This application interactively allows users
+ to manipulate files and their modes. */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/file.h>
+#include <sys/stat.h>
+#include <sys/errno.h>
+
+#include <readline/readline.h>
+#include <readline/history.h>
+
+extern char *xmalloc ();
+
+/* The names of functions that actually do the manipulation. */
+int com_list __P((char *));
+int com_view __P((char *));
+int com_rename __P((char *));
+int com_stat __P((char *));
+int com_pwd __P((char *));
+int com_delete __P((char *));
+int com_help __P((char *));
+int com_cd __P((char *));
+int com_quit __P((char *));
+
+/* A structure which contains information on the commands this program
+ can understand. */
+
+typedef struct @{
+ char *name; /* User printable name of the function. */
+ rl_icpfunc_t *func; /* Function to call to do the job. */
+ char *doc; /* Documentation for this function. */
+@} COMMAND;
+
+COMMAND commands[] = @{
+ @{ "cd", com_cd, "Change to directory DIR" @},
+ @{ "delete", com_delete, "Delete FILE" @},
+ @{ "help", com_help, "Display this text" @},
+ @{ "?", com_help, "Synonym for `help'" @},
+ @{ "list", com_list, "List files in DIR" @},
+ @{ "ls", com_list, "Synonym for `list'" @},
+ @{ "pwd", com_pwd, "Print the current working directory" @},
+ @{ "quit", com_quit, "Quit using Fileman" @},
+ @{ "rename", com_rename, "Rename FILE to NEWNAME" @},
+ @{ "stat", com_stat, "Print out statistics on FILE" @},
+ @{ "view", com_view, "View the contents of FILE" @},
+ @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @}
+@};
+
+/* Forward declarations. */
+char *stripwhite ();
+COMMAND *find_command ();
+
+/* The name of this program, as taken from argv[0]. */
+char *progname;
+
+/* When non-zero, this means the user is done using this program. */
+int done;
+
+char *
+dupstr (s)
+ int s;
+@{
+ char *r;
+
+ r = xmalloc (strlen (s) + 1);
+ strcpy (r, s);
+ return (r);
+@}
+
+main (argc, argv)
+ int argc;
+ char **argv;
+@{
+ char *line, *s;
+
+ progname = argv[0];
+
+ initialize_readline (); /* Bind our completer. */
+
+ /* Loop reading and executing lines until the user quits. */
+ for ( ; done == 0; )
+ @{
+ line = readline ("FileMan: ");
+
+ if (!line)
+ break;
+
+ /* Remove leading and trailing whitespace from the line.
+ Then, if there is anything left, add it to the history list
+ and execute it. */
+ s = stripwhite (line);
+
+ if (*s)
+ @{
+ add_history (s);
+ execute_line (s);
+ @}
+
+ free (line);
+ @}
+ exit (0);
+@}
+
+/* Execute a command line. */
+int
+execute_line (line)
+ char *line;
+@{
+ register int i;
+ COMMAND *command;
+ char *word;
+
+ /* Isolate the command word. */
+ i = 0;
+ while (line[i] && whitespace (line[i]))
+ i++;
+ word = line + i;
+
+ while (line[i] && !whitespace (line[i]))
+ i++;
+
+ if (line[i])
+ line[i++] = '\0';
+
+ command = find_command (word);
+
+ if (!command)
+ @{
+ fprintf (stderr, "%s: No such command for FileMan.\n", word);
+ return (-1);
+ @}
+
+ /* Get argument to command, if any. */
+ while (whitespace (line[i]))
+ i++;
+
+ word = line + i;
+
+ /* Call the function. */
+ return ((*(command->func)) (word));
+@}
+
+/* Look up NAME as the name of a command, and return a pointer to that
+ command. Return a NULL pointer if NAME isn't a command name. */
+COMMAND *
+find_command (name)
+ char *name;
+@{
+ register int i;
+
+ for (i = 0; commands[i].name; i++)
+ if (strcmp (name, commands[i].name) == 0)
+ return (&commands[i]);
+
+ return ((COMMAND *)NULL);
+@}
+
+/* Strip whitespace from the start and end of STRING. Return a pointer
+ into STRING. */
+char *
+stripwhite (string)
+ char *string;
+@{
+ register char *s, *t;
+
+ for (s = string; whitespace (*s); s++)
+ ;
+
+ if (*s == 0)
+ return (s);
+
+ t = s + strlen (s) - 1;
+ while (t > s && whitespace (*t))
+ t--;
+ *++t = '\0';
+
+ return s;
+@}
+
+/* **************************************************************** */
+/* */
+/* Interface to Readline Completion */
+/* */
+/* **************************************************************** */
+
+char *command_generator __P((const char *, int));
+char **fileman_completion __P((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. */
+initialize_readline ()
+@{
+ /* Allow conditional parsing of the ~/.inputrc file. */
+ rl_readline_name = "FileMan";
+
+ /* Tell the completer that we want a crack first. */
+ rl_attempted_completion_function = fileman_completion;
+@}
+
+/* Attempt to complete on the contents of TEXT. START and END
+ bound the region of rl_line_buffer that contains the word to
+ complete. TEXT is the word to complete. We can use the entire
+ contents of rl_line_buffer in case we want to do some simple
+ parsing. Returnthe array of matches, or NULL if there aren't any. */
+char **
+fileman_completion (text, start, end)
+ const char *text;
+ int start, end;
+@{
+ char **matches;
+
+ matches = (char **)NULL;
+
+ /* If this word is at the start of the line, then it is a command
+ to complete. Otherwise it is the name of a file in the current
+ directory. */
+ if (start == 0)
+ matches = rl_completion_matches (text, command_generator);
+
+ return (matches);
+@}
+
+/* Generator function for command completion. STATE lets us
+ know whether to start from scratch; without any state
+ (i.e. STATE == 0), then we start at the top of the list. */
+char *
+command_generator (text, state)
+ const char *text;
+ int state;
+@{
+ static int list_index, len;
+ char *name;
+
+ /* If this is a new word to complete, initialize now. This
+ includes saving the length of TEXT for efficiency, and
+ initializing the index variable to 0. */
+ if (!state)
+ @{
+ list_index = 0;
+ len = strlen (text);
+ @}
+
+ /* Return the next name which partially matches from the
+ command list. */
+ while (name = commands[list_index].name)
+ @{
+ list_index++;
+
+ if (strncmp (name, text, len) == 0)
+ return (dupstr(name));
+ @}
+
+ /* If no names matched, then return NULL. */
+ return ((char *)NULL);
+@}
+
+/* **************************************************************** */
+/* */
+/* FileMan Commands */
+/* */
+/* **************************************************************** */
+
+/* String to pass to system (). This is for the LIST, VIEW and RENAME
+ commands. */
+static char syscom[1024];
+
+/* List the file(s) named in arg. */
+com_list (arg)
+ char *arg;
+@{
+ if (!arg)
+ arg = "";
+
+ sprintf (syscom, "ls -FClg %s", arg);
+ return (system (syscom));
+@}
+
+com_view (arg)
+ char *arg;
+@{
+ if (!valid_argument ("view", arg))
+ return 1;
+
+ sprintf (syscom, "more %s", arg);
+ return (system (syscom));
+@}
+
+com_rename (arg)
+ char *arg;
+@{
+ too_dangerous ("rename");
+ return (1);
+@}
+
+com_stat (arg)
+ char *arg;
+@{
+ struct stat finfo;
+
+ if (!valid_argument ("stat", arg))
+ return (1);
+
+ if (stat (arg, &finfo) == -1)
+ @{
+ perror (arg);
+ return (1);
+ @}
+
+ printf ("Statistics for `%s':\n", arg);
+
+ printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
+ finfo.st_nlink,
+ (finfo.st_nlink == 1) ? "" : "s",
+ finfo.st_size,
+ (finfo.st_size == 1) ? "" : "s");
+ printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
+ printf (" Last access at: %s", ctime (&finfo.st_atime));
+ printf (" Last modified at: %s", ctime (&finfo.st_mtime));
+ return (0);
+@}
+
+com_delete (arg)
+ char *arg;
+@{
+ too_dangerous ("delete");
+ return (1);
+@}
+
+/* Print out help for ARG, or for all of the commands if ARG is
+ not present. */
+com_help (arg)
+ char *arg;
+@{
+ register int i;
+ int printed = 0;
+
+ for (i = 0; commands[i].name; i++)
+ @{
+ if (!*arg || (strcmp (arg, commands[i].name) == 0))
+ @{
+ printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
+ printed++;
+ @}
+ @}
+
+ if (!printed)
+ @{
+ printf ("No commands match `%s'. Possibilties are:\n", arg);
+
+ for (i = 0; commands[i].name; i++)
+ @{
+ /* Print in six columns. */
+ if (printed == 6)
+ @{
+ printed = 0;
+ printf ("\n");
+ @}
+
+ printf ("%s\t", commands[i].name);
+ printed++;
+ @}
+
+ if (printed)
+ printf ("\n");
+ @}
+ return (0);
+@}
+
+/* Change to the directory ARG. */
+com_cd (arg)
+ char *arg;
+@{
+ if (chdir (arg) == -1)
+ @{
+ perror (arg);
+ return 1;
+ @}
+
+ com_pwd ("");
+ return (0);
+@}
+
+/* Print out the current working directory. */
+com_pwd (ignore)
+ char *ignore;
+@{
+ char dir[1024], *s;
+
+ s = getcwd (dir, sizeof(dir) - 1);
+ if (s == 0)
+ @{
+ printf ("Error getting pwd: %s\n", dir);
+ return 1;
+ @}
+
+ printf ("Current directory is %s\n", dir);
+ return 0;
+@}
+
+/* The user wishes to quit using this program. Just set DONE
+ non-zero. */
+com_quit (arg)
+ char *arg;
+@{
+ done = 1;
+ return (0);
+@}
+
+/* Function which tells you that you can't do this. */
+too_dangerous (caller)
+ char *caller;
+@{
+ fprintf (stderr,
+ "%s: Too dangerous for me to distribute.\n"
+ caller);
+ fprintf (stderr, "Write it yourself.\n");
+@}
+
+/* Return non-zero if ARG is a valid argument for CALLER,
+ else print an error message and return zero. */
+int
+valid_argument (caller, arg)
+ char *caller, *arg;
+@{
+ if (!arg || !*arg)
+ @{
+ fprintf (stderr, "%s: Argument required.\n", caller);
+ return (0);
+ @}
+
+ return (1);
+@}
+@end smallexample
diff --git a/doc/rluser.texi b/doc/rluser.texi
new file mode 100644
index 0000000..6fa9350
--- /dev/null
+++ b/doc/rluser.texi
@@ -0,0 +1,1824 @@
+@comment %**start of header (This is for running Texinfo on a region.)
+@setfilename rluser.info
+@comment %**end of header (This is for running Texinfo on a region.)
+@setchapternewpage odd
+
+@ignore
+This file documents the end user interface to the GNU command line
+editing features. It is to be an appendix to manuals for programs which
+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-2004 Free Software Foundation, Inc.
+
+Authored by Brian Fox and Chet Ramey.
+
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission notice
+identical to this one except for the removal of this paragraph (this
+paragraph not being relevant to the printed manual).
+
+Permission is granted to make and distribute verbatim copies of this manual
+provided the copyright notice and this permission notice are preserved on
+all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+GNU Copyright statement is available to the distributee, and provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end ignore
+
+@comment If you are including this manual as an appendix, then set the
+@comment variable readline-appendix.
+
+@ifclear BashFeatures
+@defcodeindex bt
+@end ifclear
+
+@node Command Line Editing
+@chapter Command Line Editing
+
+This chapter describes the basic features of the @sc{gnu}
+command line editing interface.
+@ifset BashFeatures
+Command line editing is provided by the Readline library, which is
+used by several different programs, including Bash.
+@end ifset
+
+@menu
+* Introduction and Notation:: Notation used in this text.
+* Readline Interaction:: The minimum set of commands for editing a line.
+* Readline Init File:: Customizing Readline from a user's view.
+* Bindable Readline Commands:: A description of most of the Readline commands
+ available for binding
+* Readline vi Mode:: A short description of how to make Readline
+ behave like the vi editor.
+@ifset BashFeatures
+* Programmable Completion:: How to specify the possible completions for
+ a specific command.
+* Programmable Completion Builtins:: Builtin commands to specify how to
+ complete arguments for a particular command.
+@end ifset
+@end menu
+
+@node Introduction and Notation
+@section Introduction to Line Editing
+
+The following paragraphs describe the notation used to represent
+keystrokes.
+
+The text @kbd{C-k} is read as `Control-K' and describes the character
+produced when the @key{k} key is pressed while the Control key
+is depressed.
+
+The text @kbd{M-k} is read as `Meta-K' and describes the character
+produced when the Meta key (if you have one) is depressed, and the @key{k}
+key is pressed.
+The Meta key is labeled @key{ALT} on many keyboards.
+On keyboards with two keys labeled @key{ALT} (usually to either side of
+the space bar), the @key{ALT} on the left side is generally set to
+work as a Meta key.
+The @key{ALT} key on the right may also be configured to work as a
+Meta key or may be configured as some other modifier, such as a
+Compose key for typing accented characters.
+
+If you do not have a Meta or @key{ALT} key, or another key working as
+a Meta key, the identical keystroke can be generated by typing @key{ESC}
+@emph{first}, and then typing @key{k}.
+Either process is known as @dfn{metafying} the @key{k} key.
+
+The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the
+character produced by @dfn{metafying} @kbd{C-k}.
+
+In addition, several keys have their own names. Specifically,
+@key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all
+stand for themselves when seen in this text, or in an init file
+(@pxref{Readline Init File}).
+If your keyboard lacks a @key{LFD} key, typing @key{C-j} will
+produce the desired character.
+The @key{RET} key may be labeled @key{Return} or @key{Enter} on
+some keyboards.
+
+@node Readline Interaction
+@section Readline Interaction
+@cindex interaction, readline
+
+Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled. The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line. Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections. Then, when you are satisfied with
+the line, you simply press @key{RET}. You do not have to be at the
+end of the line to press @key{RET}; the entire line is accepted
+regardless of the location of the cursor within the line.
+
+@menu
+* Readline Bare Essentials:: The least you need to know about Readline.
+* Readline Movement Commands:: Moving about the input line.
+* Readline Killing Commands:: How to delete text, and how to get it back!
+* Readline Arguments:: Giving numeric arguments to commands.
+* Searching:: Searching through previous lines.
+@end menu
+
+@node Readline Bare Essentials
+@subsection Readline Bare Essentials
+@cindex notation, readline
+@cindex command editing
+@cindex editing command lines
+
+In order to enter characters into the line, simply type them. The typed
+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 @kbd{C-b} to move the cursor to the left, and then
+correct your mistake. Afterwards, you can move the cursor to the right
+with @kbd{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.
+
+@table @asis
+@item @kbd{C-b}
+Move back one character.
+@item @kbd{C-f}
+Move forward one character.
+@item @key{DEL} or @key{Backspace}
+Delete the character to the left of the cursor.
+@item @kbd{C-d}
+Delete the character underneath the cursor.
+@item @w{Printing characters}
+Insert the character into the line at the cursor.
+@item @kbd{C-_} or @kbd{C-x C-u}
+Undo the last editing command. You can undo all the way back to an
+empty line.
+@end table
+
+@noindent
+(Depending on your configuration, the @key{Backspace} key be set to
+delete the character to the left of the cursor and the @key{DEL} key set
+to delete the character underneath the cursor, like @kbd{C-d}, rather
+than the character to the left of the cursor.)
+
+@node Readline Movement Commands
+@subsection Readline Movement Commands
+
+
+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 @kbd{C-b}, @kbd{C-f},
+@kbd{C-d}, and @key{DEL}. Here are some commands for moving more rapidly
+about the line.
+
+@table @kbd
+@item C-a
+Move to the start of the line.
+@item C-e
+Move to the end of the line.
+@item M-f
+Move forward a word, where a word is composed of letters and digits.
+@item M-b
+Move backward a word.
+@item C-l
+Clear the screen, reprinting the current line at the top.
+@end table
+
+Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves
+forward a word. It is a loose convention that control keystrokes
+operate on characters while meta keystrokes operate on words.
+
+@node Readline Killing Commands
+@subsection Readline Killing Commands
+
+@cindex killing text
+@cindex yanking text
+
+@dfn{Killing} text means to delete the text from the line, but to save
+it away for later use, usually by @dfn{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 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 @dfn{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.
+@cindex kill ring
+
+Here is the list of commands for killing text.
+
+@table @kbd
+@item C-k
+Kill the text from the current cursor position to the end of the line.
+
+@item 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 @kbd{M-f}.
+
+@item M-@key{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 @kbd{M-b}.
+
+@item C-w
+Kill from the cursor to the previous whitespace. This is different than
+@kbd{M-@key{DEL}} because the word boundaries differ.
+
+@end table
+
+Here is how to @dfn{yank} the text back into the line. Yanking
+means to copy the most-recently-killed text from the kill buffer.
+
+@table @kbd
+@item C-y
+Yank the most recently killed text back into the buffer at the cursor.
+
+@item M-y
+Rotate the kill-ring, and yank the new top. You can only do this if
+the prior command is @kbd{C-y} or @kbd{M-y}.
+@end table
+
+@node Readline Arguments
+@subsection Readline Arguments
+
+You can pass numeric arguments to Readline commands. Sometimes the
+argument acts as a repeat count, other times it is the @i{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 @samp{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 (@samp{-}), 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 @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d},
+which will delete the next ten characters on the input line.
+
+@node Searching
+@subsection Searching for Commands in the History
+
+Readline provides commands for searching through the command history
+@ifset BashFeatures
+(@pxref{Bash History Facilities})
+@end ifset
+for lines containing a specified string.
+There are two search modes: @dfn{incremental} and @dfn{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
+@kbd{C-r}. Typing @kbd{C-s} searches forward through the history.
+The characters present in the value of the @code{isearch-terminators} variable
+are used to terminate an incremental search.
+If that variable has not been assigned a value, the @key{ESC} and
+@kbd{C-J} characters will terminate an incremental search.
+@kbd{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 @kbd{C-r} or
+@kbd{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 @key{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
+@kbd{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
+typed by the user or be part of the contents of the current line.
+
+@node Readline Init File
+@section Readline Init File
+@cindex initialization file, readline
+
+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 @dfn{inputrc} file, conventionally in his home directory.
+The name of this
+@ifset BashFeatures
+file is taken from the value of the shell variable @env{INPUTRC}. If
+@end ifset
+@ifclear BashFeatures
+file is taken from the value of the environment variable @env{INPUTRC}. If
+@end ifclear
+that variable is unset, the default is @file{~/.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 @code{C-x C-r} command re-reads this init file, thus
+incorporating any changes that you might have made to it.
+
+@menu
+* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
+
+* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
+
+* Sample Init File:: An example inputrc file.
+@end menu
+
+@node Readline Init File Syntax
+@subsection 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 @samp{#} are comments.
+Lines beginning with a @samp{$} indicate conditional
+constructs (@pxref{Conditional Init Constructs}). Other lines
+denote variable settings and key bindings.
+
+@table @asis
+@item Variable Settings
+You can modify the run-time behavior of Readline by
+altering the values of variables in Readline
+using the @code{set} command within the init file.
+The syntax is simple:
+
+@example
+set @var{variable} @var{value}
+@end example
+
+@noindent
+Here, for example, is how to
+change from the default Emacs-like key binding to use
+@code{vi} line editing commands:
+
+@example
+set editing-mode vi
+@end example
+
+Variable names and values, where appropriate, are recognized without regard
+to case.
+
+@ifset BashFeatures
+The @w{@code{bind -V}} command lists the current Readline variable names
+and values. @xref{Bash Builtins}.
+@end ifset
+
+A great deal of run-time behavior is changeable with the following
+variables.
+
+@cindex variables, readline
+@table @code
+
+@item bell-style
+@vindex bell-style
+Controls what happens when Readline wants to ring the terminal bell.
+If set to @samp{none}, Readline never rings the bell. If set to
+@samp{visible}, Readline uses a visible bell if one is available.
+If set to @samp{audible} (the default), Readline attempts to ring
+the terminal's bell.
+
+@item comment-begin
+@vindex comment-begin
+The string to insert at the beginning of the line when the
+@code{insert-comment} command is executed. The default value
+is @code{"#"}.
+
+@item completion-ignore-case
+If set to @samp{on}, Readline performs filename matching and completion
+in a case-insensitive fashion.
+The default value is @samp{off}.
+
+@item completion-query-items
+@vindex completion-query-items
+The number of possible completions that determines when the user is
+asked whether the list of possibilities should be displayed.
+If the number of possible completions is greater than this value,
+Readline will ask the user whether or not he wishes to view
+them; otherwise, they are simply listed.
+This variable must be set to an integer value greater than or equal to 0.
+The default limit is @code{100}.
+
+@item convert-meta
+@vindex convert-meta
+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}.
+
+@item disable-completion
+@vindex disable-completion
+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 editing-mode
+@vindex editing-mode
+The @code{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 @samp{emacs} or @samp{vi}.
+
+@item enable-keypad
+@vindex enable-keypad
+When set to @samp{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 @samp{off}.
+
+@item expand-tilde
+@vindex expand-tilde
+If set to @samp{on}, tilde expansion is performed when Readline
+attempts word completion. The default is @samp{off}.
+
+@vindex history-preserve-point
+If set to @samp{on}, the history code attempts to place point at the
+same location on each history line retrieved with @code{previous-history}
+or @code{next-history}.
+
+@item horizontal-scroll-mode
+@vindex horizontal-scroll-mode
+This variable can be set to either @samp{on} or @samp{off}. Setting it
+to @samp{on} means that the text of the lines being edited will scroll
+horizontally on a single screen line when they are longer than the width
+of the screen, instead of wrapping onto a new screen line. By default,
+this variable is set to @samp{off}.
+
+@item input-meta
+@vindex input-meta
+@vindex meta-flag
+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.
+
+@item isearch-terminators
+@vindex isearch-terminators
+The string of characters that should terminate an incremental search without
+subsequently executing the character as a command (@pxref{Searching}).
+If this variable has not been given a value, the characters @key{ESC} and
+@kbd{C-J} will terminate an incremental search.
+
+@item keymap
+@vindex keymap
+Sets Readline's idea of the current keymap for key binding commands.
+Acceptable @code{keymap} names are
+@code{emacs},
+@code{emacs-standard},
+@code{emacs-meta},
+@code{emacs-ctlx},
+@code{vi},
+@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}.
+The value of the @code{editing-mode} variable also affects the
+default keymap.
+
+@item mark-directories
+If set to @samp{on}, completed directory names have a slash
+appended. The default is @samp{on}.
+
+@item mark-modified-lines
+@vindex mark-modified-lines
+This variable, when set to @samp{on}, causes Readline to display an
+asterisk (@samp{*}) at the start of history lines which have been modified.
+This variable is @samp{off} by default.
+
+@item mark-symlinked-directories
+@vindex mark-symlinked-directories
+If set to @samp{on}, completed names which are symbolic links
+to directories have a slash appended (subject to the value of
+@code{mark-directories}).
+The default is @samp{off}.
+
+@item match-hidden-files
+@vindex match-hidden-files
+This variable, when set to @samp{on}, causes Readline to match files whose
+names begin with a @samp{.} (hidden files) when performing filename
+completion, unless the leading @samp{.} is
+supplied by the user in the filename to be completed.
+This variable is @samp{on} by default.
+
+@item output-meta
+@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}.
+
+@item page-completions
+@vindex page-completions
+If set to @samp{on}, Readline uses an internal @code{more}-like pager
+to display a screenful of possible completions at a time.
+This variable is @samp{on} by default.
+
+@item print-completions-horizontally
+If set to @samp{on}, Readline will display completions with matches
+sorted horizontally in alphabetical order, rather than down the screen.
+The default is @samp{off}.
+
+@item show-all-if-ambiguous
+@vindex show-all-if-ambiguous
+This alters the default behavior of the completion functions. If
+set to @samp{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 @samp{off}.
+
+@item show-all-if-unmodified
+@vindex show-all-if-unmodified
+This alters the default behavior of the completion functions in
+a fashion similar to @var{show-all-if-ambiguous}.
+If set to @samp{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 @samp{off}.
+
+@item visible-stats
+@vindex visible-stats
+If set to @samp{on}, a character denoting a file's type
+is appended to the filename when listing possible
+completions. The default is @samp{off}.
+
+@end table
+
+@item 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.
+
+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, a colon, and then the name of the
+command. 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 @var{macro}).
+
+@ifset BashFeatures
+The @w{@code{bind -p}} command displays Readline function names and
+bindings in a format that can put directly into an initialization file.
+@xref{Bash Builtins}.
+@end ifset
+
+@table @asis
+@item @w{@var{keyname}: @var{function-name} or @var{macro}}
+@var{keyname} is the name of a key spelled out in English. For example:
+@example
+Control-u: universal-argument
+Meta-Rubout: backward-kill-word
+Control-o: "> output"
+@end example
+
+In the above example, @kbd{C-u} is bound to the function
+@code{universal-argument},
+@kbd{M-DEL} is bound to the function @code{backward-kill-word}, and
+@kbd{C-o} is bound to run the macro
+expressed on the right hand side (that is, to insert the text
+@samp{> output} into the line).
+
+A number of symbolic character names are recognized while
+processing this key binding syntax:
+@var{DEL},
+@var{ESC},
+@var{ESCAPE},
+@var{LFD},
+@var{NEWLINE},
+@var{RET},
+@var{RETURN},
+@var{RUBOUT},
+@var{SPACE},
+@var{SPC},
+and
+@var{TAB}.
+
+@item @w{"@var{keyseq}": @var{function-name} or @var{macro}}
+@var{keyseq} differs from @var{keyname} above in that strings
+denoting an entire key sequence can be specified, by placing
+the key sequence in double quotes. Some @sc{gnu} Emacs style key
+escapes can be used, as in the following example, but the
+special character names are not recognized.
+
+@example
+"\C-u": universal-argument
+"\C-x\C-r": re-read-init-file
+"\e[11~": "Function Key 1"
+@end example
+
+In the above example, @kbd{C-u} is again bound to the function
+@code{universal-argument} (just as it was in the first example),
+@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file},
+and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert
+the text @samp{Function Key 1}.
+
+@end table
+
+The following @sc{gnu} Emacs style escape sequences are available when
+specifying key sequences:
+
+@table @code
+@item @kbd{\C-}
+control prefix
+@item @kbd{\M-}
+meta prefix
+@item @kbd{\e}
+an escape character
+@item @kbd{\\}
+backslash
+@item @kbd{\"}
+@key{"}, a double quotation mark
+@item @kbd{\'}
+@key{'}, a single quote or apostrophe
+@end table
+
+In addition to the @sc{gnu} Emacs style escape sequences, a second
+set of backslash escapes is available:
+
+@table @code
+@item \a
+alert (bell)
+@item \b
+backspace
+@item \d
+delete
+@item \f
+form feed
+@item \n
+newline
+@item \r
+carriage return
+@item \t
+horizontal tab
+@item \v
+vertical tab
+@item \@var{nnn}
+the eight-bit character whose value is the octal value @var{nnn}
+(one to three digits)
+@item \x@var{HH}
+the eight-bit character whose value is the hexadecimal value @var{HH}
+(one or two hex digits)
+@end table
+
+When entering the text of a macro, single or double quotes must
+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 @samp{"} and @samp{'}.
+For example, the following binding will make @samp{@kbd{C-x} \}
+insert a single @samp{\} into the line:
+@example
+"\C-x\\": "\\"
+@end example
+
+@end table
+
+@node Conditional Init Constructs
+@subsection Conditional Init 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.
+
+@table @code
+@item $if
+The @code{$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.
+
+@table @code
+@item mode
+The @code{mode=} form of the @code{$if} directive is used to test
+whether Readline is in @code{emacs} or @code{vi} mode.
+This may be used in conjunction
+with the @samp{set keymap} command, for instance, to set bindings in
+the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if
+Readline is starting out in @code{emacs} mode.
+
+@item term
+The @code{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
+@samp{=} is tested against both the full name of the terminal and
+the portion of the terminal name before the first @samp{-}. This
+allows @code{sun} to match both @code{sun} and @code{sun-cmd},
+for instance.
+
+@item application
+The @var{application} construct is used to include
+application-specific settings. Each program using the Readline
+library sets the @var{application name}, and you 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 Bash:
+@example
+$if Bash
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+$endif
+@end example
+@end table
+
+@item $endif
+This command, as seen in the previous example, terminates an
+@code{$if} command.
+
+@item $else
+Commands in this branch of the @code{$if} directive are executed if
+the test fails.
+
+@item $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 @file{/etc/inputrc}:
+@example
+$include /etc/inputrc
+@end example
+@end table
+
+@node Sample Init File
+@subsection Sample Init File
+
+Here is an example of an @var{inputrc} file. This illustrates key
+binding, variable assignment, and conditional syntax.
+
+@example
+@page
+# This file controls the behaviour of line input editing for
+# programs that use the GNU Readline library. Existing
+# programs include FTP, Bash, and GDB.
+#
+# You can re-read the inputrc file with C-x C-r.
+# Lines beginning with '#' are comments.
+#
+# First, include any systemwide bindings and variable
+# assignments from /etc/Inputrc
+$include /etc/Inputrc
+
+#
+# Set various bindings for emacs mode.
+
+set editing-mode emacs
+
+$if mode=emacs
+
+Meta-Control-h: backward-kill-word Text after the function name is ignored
+
+#
+# Arrow keys in keypad mode
+#
+#"\M-OD": backward-char
+#"\M-OC": forward-char
+#"\M-OA": previous-history
+#"\M-OB": next-history
+#
+# Arrow keys in ANSI mode
+#
+"\M-[D": backward-char
+"\M-[C": forward-char
+"\M-[A": previous-history
+"\M-[B": next-history
+#
+# Arrow keys in 8 bit keypad mode
+#
+#"\M-\C-OD": backward-char
+#"\M-\C-OC": forward-char
+#"\M-\C-OA": previous-history
+#"\M-\C-OB": next-history
+#
+# Arrow keys in 8 bit ANSI mode
+#
+#"\M-\C-[D": backward-char
+#"\M-\C-[C": forward-char
+#"\M-\C-[A": previous-history
+#"\M-\C-[B": next-history
+
+C-q: quoted-insert
+
+$endif
+
+# An old-style binding. This happens to be the default.
+TAB: complete
+
+# Macros that are convenient for shell interaction
+$if Bash
+# edit the path
+"\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f"
+# prepare to type a quoted word --
+# insert open and close double quotes
+# and move to just after the open quote
+"\C-x\"": "\"\"\C-b"
+# insert a backslash (testing backslash escapes
+# in sequences and macros)
+"\C-x\\": "\\"
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+# Add a binding to refresh the line, which is unbound
+"\C-xr": redraw-current-line
+# Edit variable on current line.
+"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
+$endif
+
+# use a visible bell if one is available
+set bell-style visible
+
+# don't strip characters to 7 bits when reading
+set input-meta on
+
+# allow iso-latin1 characters to be inserted rather
+# than converted to prefix-meta sequences
+set convert-meta off
+
+# display characters with the eighth bit set directly
+# rather than as meta-prefixed characters
+set output-meta on
+
+# if there are more than 150 possible completions for
+# a word, ask the user if he wants to see all of them
+set completion-query-items 150
+
+# For FTP
+$if Ftp
+"\C-xg": "get \M-?"
+"\C-xt": "put \M-?"
+"\M-.": yank-last-arg
+$endif
+@end example
+
+@node Bindable Readline Commands
+@section Bindable Readline Commands
+
+@menu
+* Commands For Moving:: Moving about the line.
+* Commands For History:: Getting at previous lines.
+* Commands For Text:: Commands for changing text.
+* Commands For Killing:: Commands for killing and yanking.
+* Numeric Arguments:: Specifying numeric arguments, repeat counts.
+* Commands For Completion:: Getting Readline to do the typing for you.
+* Keyboard Macros:: Saving and re-executing typed characters
+* Miscellaneous Commands:: Other miscellaneous commands.
+@end menu
+
+This section describes Readline commands that may be bound to key
+sequences.
+@ifset BashFeatures
+You can list your key bindings by executing
+@w{@code{bind -P}} or, for a more terse format, suitable for an
+@var{inputrc} file, @w{@code{bind -p}}. (@xref{Bash Builtins}.)
+@end ifset
+Command names without an accompanying key sequence are unbound by default.
+
+In the following descriptions, @dfn{point} refers to the current cursor
+position, and @dfn{mark} refers to a cursor position saved by the
+@code{set-mark} command.
+The text between the point and mark is referred to as the @dfn{region}.
+
+@node Commands For Moving
+@subsection Commands For Moving
+@ftable @code
+@item beginning-of-line (C-a)
+Move to the start of the current line.
+
+@item end-of-line (C-e)
+Move to the end of the line.
+
+@item forward-char (C-f)
+Move forward a character.
+
+@item backward-char (C-b)
+Move back a character.
+
+@item forward-word (M-f)
+Move forward to the end of the next word. Words are composed of
+letters and digits.
+
+@item backward-word (M-b)
+Move back to the start of the current or previous word. Words are
+composed of letters and digits.
+
+@item clear-screen (C-l)
+Clear the screen and redraw the current line,
+leaving the current line at the top of the screen.
+
+@item redraw-current-line ()
+Refresh the current line. By default, this is unbound.
+
+@end ftable
+
+@node Commands For History
+@subsection Commands For Manipulating The History
+
+@ftable @code
+@item accept-line (Newline or Return)
+@ifset BashFeatures
+Accept the line regardless of where the cursor is.
+If this line is
+non-empty, add it to the history list according to the setting of
+the @env{HISTCONTROL} and @env{HISTIGNORE} variables.
+If this line is a modified history line, then restore the history line
+to its original state.
+@end ifset
+@ifclear BashFeatures
+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
+@code{add_history()}.
+If this line is a modified history line, the history line is restored
+to its original state.
+@end ifclear
+
+@item previous-history (C-p)
+Move `back' through the history list, fetching the previous command.
+
+@item next-history (C-n)
+Move `forward' through the history list, fetching the next command.
+
+@item beginning-of-history (M-<)
+Move to the first line in the history.
+
+@item end-of-history (M->)
+Move to the end of the input history, i.e., the line currently
+being entered.
+
+@item reverse-search-history (C-r)
+Search backward starting at the current line and moving `up' through
+the history as necessary. This is an incremental search.
+
+@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.
+
+@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.
+
+@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
+for a string supplied by the user.
+
+@item history-search-forward ()
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+This is a non-incremental search.
+By default, this command is unbound.
+
+@item history-search-backward ()
+Search backward through the history for the string of characters
+between the start of the current line and the point. This
+is a non-incremental search. By default, this command is unbound.
+
+@item 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 @var{n},
+insert the @var{n}th word from the previous command (the words
+in the previous command begin with word 0). A negative argument
+inserts the @var{n}th word from the end of the previous command.
+
+@item yank-last-arg (M-. or M-_)
+Insert last argument to the previous command (the last word of the
+previous history entry). With an
+argument, behave exactly like @code{yank-nth-arg}.
+Successive calls to @code{yank-last-arg} move back through the history
+list, inserting the last argument of each line in turn.
+
+@end ftable
+
+@node Commands For Text
+@subsection Commands For Changing Text
+
+@ftable @code
+@item delete-char (C-d)
+Delete the character at point. If point is at the
+beginning of the line, there are no characters in the line, and
+the last character typed was not bound to @code{delete-char}, then
+return @sc{eof}.
+
+@item backward-delete-char (Rubout)
+Delete the character behind the cursor. A numeric argument means
+to kill the characters instead of deleting them.
+
+@item 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.
+
+@item quoted-insert (C-q or C-v)
+Add the next character typed to the line verbatim. This is
+how to insert key sequences like @kbd{C-q}, for example.
+
+@ifclear BashFeatures
+@item tab-insert (M-@key{TAB})
+Insert a tab character.
+@end ifclear
+
+@item self-insert (a, b, A, 1, !, @dots{})
+Insert yourself.
+
+@item 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.
+
+@item 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.
+
+@item upcase-word (M-u)
+Uppercase the current (or following) word. With a negative argument,
+uppercase the previous word, but do not move the cursor.
+
+@item downcase-word (M-l)
+Lowercase the current (or following) word. With a negative argument,
+lowercase the previous word, but do not move the cursor.
+
+@item capitalize-word (M-c)
+Capitalize the current (or following) word. With a negative argument,
+capitalize the previous word, but do not move the cursor.
+
+@item 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
+@code{emacs} mode; @code{vi} mode does overwrite differently.
+Each call to @code{readline()} starts in insert mode.
+
+In overwrite mode, characters bound to @code{self-insert} replace
+the text at point rather than pushing the text to the right.
+Characters bound to @code{backward-delete-char} replace the character
+before point with a space.
+
+By default, this command is unbound.
+
+@end ftable
+
+@node Commands For Killing
+@subsection Killing And Yanking
+
+@ftable @code
+
+@item kill-line (C-k)
+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.
+
+@item unix-line-discard (C-u)
+Kill backward from the cursor to the beginning of the current line.
+
+@item kill-whole-line ()
+Kill all characters on the current line, no matter where point is.
+By default, this is unbound.
+
+@item 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 @code{forward-word}.
+
+@item backward-kill-word (M-@key{DEL})
+Kill the word behind point.
+Word boundaries are the same as @code{backward-word}.
+
+@item unix-word-rubout (C-w)
+Kill the word behind point, using white space as a word boundary.
+The killed text is saved on the kill-ring.
+
+@item 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.
+
+@item delete-horizontal-space ()
+Delete all spaces and tabs around point. By default, this is unbound.
+
+@item kill-region ()
+Kill the text in the current region.
+By default, this command is unbound.
+
+@item 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.
+
+@item copy-backward-word ()
+Copy the word before point to the kill buffer.
+The word boundaries are the same as @code{backward-word}.
+By default, this command is unbound.
+
+@item copy-forward-word ()
+Copy the word following point to the kill buffer.
+The word boundaries are the same as @code{forward-word}.
+By default, this command is unbound.
+
+@item yank (C-y)
+Yank the top of the kill ring into the buffer at point.
+
+@item yank-pop (M-y)
+Rotate the kill-ring, and yank the new top. You can only do this if
+the prior command is @code{yank} or @code{yank-pop}.
+@end ftable
+
+@node Numeric Arguments
+@subsection Specifying Numeric Arguments
+@ftable @code
+
+@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--})
+Add this digit to the argument already accumulating, or start a new
+argument. @kbd{M--} starts a negative argument.
+
+@item 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 @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
+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.
+@end ftable
+
+@node Commands For Completion
+@subsection Letting Readline Type For You
+
+@ftable @code
+@item complete (@key{TAB})
+Attempt to perform completion on the text before point.
+The actual completion performed is application-specific.
+@ifset BashFeatures
+Bash attempts completion treating the text as a variable (if the
+text begins with @samp{$}), username (if the text begins with
+@samp{~}), hostname (if the text begins with @samp{@@}), or
+command (including aliases and functions) in turn. If none
+of these produces a match, filename completion is attempted.
+@end ifset
+@ifclear BashFeatures
+The default is filename completion.
+@end ifclear
+
+@item possible-completions (M-?)
+List the possible completions of the text before point.
+
+@item insert-completions (M-*)
+Insert all completions of the text before point that would have
+been generated by @code{possible-completions}.
+
+@item menu-complete ()
+Similar to @code{complete}, but replaces the word to be completed
+with a single match from the list of possible completions.
+Repeated execution of @code{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 @code{bell-style})
+and the original text is restored.
+An argument of @var{n} moves @var{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 @key{TAB}, but is unbound
+by default.
+
+@item delete-char-or-list ()
+Deletes the character under the cursor if not at the beginning or
+end of the line (like @code{delete-char}).
+If at the end of the line, behaves identically to
+@code{possible-completions}.
+This command is unbound by default.
+
+@ifset BashFeatures
+@item complete-filename (M-/)
+Attempt filename completion on the text before point.
+
+@item possible-filename-completions (C-x /)
+List the possible completions of the text before point,
+treating it as a filename.
+
+@item complete-username (M-~)
+Attempt completion on the text before point, treating
+it as a username.
+
+@item possible-username-completions (C-x ~)
+List the possible completions of the text before point,
+treating it as a username.
+
+@item complete-variable (M-$)
+Attempt completion on the text before point, treating
+it as a shell variable.
+
+@item possible-variable-completions (C-x $)
+List the possible completions of the text before point,
+treating it as a shell variable.
+
+@item complete-hostname (M-@@)
+Attempt completion on the text before point, treating
+it as a hostname.
+
+@item possible-hostname-completions (C-x @@)
+List the possible completions of the text before point,
+treating it as a hostname.
+
+@item complete-command (M-!)
+Attempt completion on the text before point, treating
+it as a command name. Command completion attempts to
+match the text against aliases, reserved words, shell
+functions, shell builtins, and finally executable filenames,
+in that order.
+
+@item possible-command-completions (C-x !)
+List the possible completions of the text before point,
+treating it as a command name.
+
+@item dynamic-complete-history (M-@key{TAB})
+Attempt completion on the text before point, comparing
+the text against lines from the history list for possible
+completion matches.
+
+@item complete-into-braces (M-@{)
+Perform filename completion and insert the list of possible completions
+enclosed within braces so the list is available to the shell
+(@pxref{Brace Expansion}).
+
+@end ifset
+@end ftable
+
+@node Keyboard Macros
+@subsection Keyboard Macros
+@ftable @code
+
+@item start-kbd-macro (C-x ()
+Begin saving the characters typed into the current keyboard macro.
+
+@item end-kbd-macro (C-x ))
+Stop saving the characters typed into the current keyboard macro
+and save the definition.
+
+@item 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.
+
+@end ftable
+
+@node Miscellaneous Commands
+@subsection Some Miscellaneous Commands
+@ftable @code
+
+@item re-read-init-file (C-x C-r)
+Read in the contents of the @var{inputrc} file, and incorporate
+any bindings or variable assignments found there.
+
+@item abort (C-g)
+Abort the current editing command and
+ring the terminal's bell (subject to the setting of
+@code{bell-style}).
+
+@item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{})
+If the metafied character @var{x} is lowercase, run the command
+that is bound to the corresponding uppercase character.
+
+@item prefix-meta (@key{ESC})
+Metafy the next character typed. This is for keyboards
+without a meta key. Typing @samp{@key{ESC} f} is equivalent to typing
+@kbd{M-f}.
+
+@item undo (C-_ or C-x C-u)
+Incremental undo, separately remembered for each line.
+
+@item revert-line (M-r)
+Undo all changes made to this line. This is like executing the @code{undo}
+command enough times to get back to the beginning.
+
+@ifset BashFeatures
+@item tilde-expand (M-&)
+@end ifset
+@ifclear BashFeatures
+@item tilde-expand (M-~)
+@end ifclear
+Perform tilde expansion on the current word.
+
+@item set-mark (C-@@)
+Set the mark to the point. If a
+numeric argument is supplied, the mark is set to that position.
+
+@item 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.
+
+@item 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.
+
+@item 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.
+
+@item insert-comment (M-#)
+Without a numeric argument, the value of the @code{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 @code{comment-begin}, the value is inserted, otherwise
+the characters in @code{comment-begin} are deleted from the beginning of
+the line.
+In either case, the line is accepted as if a newline had been typed.
+@ifset BashFeatures
+The default value of @code{comment-begin} causes this command
+to make 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.
+@end ifset
+
+@item 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 @var{inputrc} file. This command is unbound by default.
+
+@item 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 @var{inputrc} file. This command is unbound by default.
+
+@item 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 @var{inputrc} file. This command is unbound by default.
+
+@ifset BashFeatures
+@item glob-complete-word (M-g)
+The word before point is treated as a pattern for pathname expansion,
+with an asterisk implicitly appended. This pattern is used to
+generate a list of matching file names for possible completions.
+
+@item glob-expand-word (C-x *)
+The word before point is treated as a pattern for pathname expansion,
+and the list of matching file names is inserted, replacing the word.
+If a numeric argument is supplied, a @samp{*} is appended before
+pathname expansion.
+
+@item glob-list-expansions (C-x g)
+The list of expansions that would have been generated by
+@code{glob-expand-word} is displayed, and the line is redrawn.
+If a numeric argument is supplied, a @samp{*} is appended before
+pathname expansion.
+
+@item display-shell-version (C-x C-v)
+Display version information about the current instance of Bash.
+
+@item shell-expand-line (M-C-e)
+Expand the line as the shell does.
+This performs alias and history expansion as well as all of the shell
+word expansions (@pxref{Shell Expansions}).
+
+@item history-expand-line (M-^)
+Perform history expansion on the current line.
+
+@item magic-space ()
+Perform history expansion on the current line and insert a space
+(@pxref{History Interaction}).
+
+@item alias-expand-line ()
+Perform alias expansion on the current line (@pxref{Aliases}).
+
+@item history-and-alias-expand-line ()
+Perform history and alias expansion on the current line.
+
+@item insert-last-argument (M-. or M-_)
+A synonym for @code{yank-last-arg}.
+
+@item operate-and-get-next (C-o)
+Accept the current line for execution and fetch the next line
+relative to the current line from the history for editing. Any
+argument is ignored.
+
+@item edit-and-execute-command (C-xC-e)
+Invoke an editor on the current command line, and execute the result as shell
+commands.
+Bash attempts to invoke
+@code{$VISUAL}, @code{$EDITOR}, and @code{emacs}
+as the editor, in that order.
+
+@end ifset
+
+@ifclear BashFeatures
+@item emacs-editing-mode (C-e)
+When in @code{vi} command mode, this causes a switch to @code{emacs}
+editing mode.
+
+@item vi-editing-mode (M-C-j)
+When in @code{emacs} editing mode, this causes a switch to @code{vi}
+editing mode.
+
+@end ifclear
+
+@end ftable
+
+@node Readline vi Mode
+@section Readline vi Mode
+
+While the Readline library does not have a full set of @code{vi}
+editing functions, it does contain enough to allow simple editing
+of the line. The Readline @code{vi} mode behaves as specified in
+the @sc{posix} 1003.2 standard.
+
+@ifset BashFeatures
+In order to switch interactively between @code{emacs} and @code{vi}
+editing modes, use the @samp{set -o emacs} and @samp{set -o vi}
+commands (@pxref{The Set Builtin}).
+@end ifset
+@ifclear BashFeatures
+In order to switch interactively between @code{emacs} and @code{vi}
+editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode
+when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode).
+@end ifclear
+The Readline default is @code{emacs} mode.
+
+When you enter a line in @code{vi} mode, you are already placed in
+`insertion' mode, as if you had typed an @samp{i}. Pressing @key{ESC}
+switches you into `command' mode, where you can edit the text of the
+line with the standard @code{vi} movement keys, move to previous
+history lines with @samp{k} and subsequent lines with @samp{j}, and
+so forth.
+
+@ifset BashFeatures
+@node Programmable Completion
+@section Programmable Completion
+@cindex programmable completion
+
+When word completion is attempted for an argument to a command for
+which a completion specification (a @var{compspec}) has been defined
+using the @code{complete} builtin (@pxref{Programmable Completion Builtins}),
+the programmable completion facilities are invoked.
+
+First, the command name is identified.
+If a compspec has been defined for that command, the
+compspec is used to generate the list of possible completions for the word.
+If the command word is a full pathname, a compspec for the full
+pathname is searched for first.
+If no compspec is found for the full pathname, an attempt is made to
+find a compspec for the portion following the final slash.
+
+Once a compspec has been found, it is used to generate the list of
+matching words.
+If a compspec is not found, the default Bash completion
+described above (@pxref{Commands For Completion}) is performed.
+
+First, the actions specified by the compspec are used.
+Only matches which are prefixed by the word being completed are
+returned.
+When the @option{-f} or @option{-d} option is used for filename or
+directory name completion, the shell variable @env{FIGNORE} is
+used to filter the matches.
+@xref{Bash Variables}, for a description of @env{FIGNORE}.
+
+Any completions specified by a filename expansion pattern to the
+@option{-G} option are generated next.
+The words generated by the pattern need not match the word being completed.
+The @env{GLOBIGNORE} shell variable is not used to filter the matches,
+but the @env{FIGNORE} shell variable is used.
+
+Next, the string specified as the argument to the @option{-W} option
+is considered.
+The string is first split using the characters in the @env{IFS}
+special variable as delimiters.
+Shell quoting is honored.
+Each word is then expanded using
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, and pathname expansion,
+as described above (@pxref{Shell Expansions}).
+The results are split using the rules described above
+(@pxref{Word Splitting}).
+The results of the expansion are prefix-matched against the word being
+completed, and the matching words become the possible completions.
+
+After these matches have been generated, any shell function or command
+specified with the @option{-F} and @option{-C} options is invoked.
+When the command or function is invoked, the @env{COMP_LINE} and
+@env{COMP_POINT} variables are assigned values as described above
+(@pxref{Bash Variables}).
+If a shell function is being invoked, the @env{COMP_WORDS} and
+@env{COMP_CWORD} variables are also set.
+When the function or command is invoked, the first argument is the
+name of the command whose arguments are being completed, the
+second argument is the word being completed, and the third argument
+is the word preceding the word being completed on the current command line.
+No filtering of the generated completions against the word being completed
+is performed; the function or command has complete freedom in generating
+the matches.
+
+Any function specified with @option{-F} is invoked first.
+The function may use any of the shell facilities, including the
+@code{compgen} builtin described below
+(@pxref{Programmable Completion Builtins}), to generate the matches.
+It must put the possible completions in the @env{COMPREPLY} array
+variable.
+
+Next, any command specified with the @option{-C} option is invoked
+in an environment equivalent to command substitution.
+It should print a list of completions, one per line, to
+the standard output.
+Backslash may be used to escape a newline, if necessary.
+
+After all of the possible completions are generated, any filter
+specified with the @option{-X} option is applied to the list.
+The filter is a pattern as used for pathname expansion; a @samp{&}
+in the pattern is replaced with the text of the word being completed.
+A literal @samp{&} may be escaped with a backslash; the backslash
+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.
+
+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
+returned to the Readline completion code as the list of possible
+completions.
+
+If the previously-applied actions do not generate any matches, and the
+@option{-o dirnames} option was supplied to @code{complete} when the
+compspec was defined, directory name completion is attempted.
+
+If the @option{-o plusdirs} option was supplied to @code{complete} when
+the compspec was defined, directory name completion is attempted and any
+matches are added to the results of the other actions.
+
+By default, if a compspec is found, whatever it generates is returned to
+the completion code as the full set of possible completions.
+The default Bash completions are not attempted, and the Readline default
+of filename completion is disabled.
+If the @option{-o bashdefault} option was supplied to @code{complete} when
+the compspec was defined, the default Bash completions are attempted
+if the compspec generates no matches.
+If the @option{-o default} option was supplied to @code{complete} when the
+compspec was defined, Readline's default completion will be performed
+if the compspec (and, if attempted, the default Bash completions)
+generate no matches.
+
+When a compspec indicates that directory name completion is desired,
+the programmable completion functions force Readline to append a slash
+to completed names which are symbolic links to directories, subject to
+the value of the @var{mark-directories} Readline variable, regardless
+of the setting of the @var{mark-symlinked-directories} Readline variable.
+
+@node Programmable Completion Builtins
+@section Programmable Completion Builtins
+@cindex completion builtins
+
+Two builtin commands are available to manipulate the programmable completion
+facilities.
+
+@table @code
+@item compgen
+@btindex compgen
+@example
+@code{compgen [@var{option}] [@var{word}]}
+@end example
+
+Generate possible completion matches for @var{word} according to
+the @var{option}s, which may be any option accepted by the
+@code{complete}
+builtin with the exception of @option{-p} and @option{-r}, and write
+the matches to the standard output.
+When using the @option{-F} or @option{-C} options, the various shell variables
+set by the programmable completion facilities, while available, will not
+have useful values.
+
+The matches will be generated in the same way as if the programmable
+completion code had generated them directly from a completion specification
+with the same flags.
+If @var{word} is specified, only those completions matching @var{word}
+will be displayed.
+
+The return value is true unless an invalid option is supplied, or no
+matches were generated.
+
+@item complete
+@btindex complete
+@example
+@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
+[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}]
+[-C @var{command}] @var{name} [@var{name} @dots{}]}
+@code{complete -pr [@var{name} @dots{}]}
+@end example
+
+Specify how arguments to each @var{name} should be completed.
+If the @option{-p} option is supplied, or if no options are supplied, existing
+completion specifications are printed in a way that allows them to be
+reused as input.
+The @option{-r} option removes a completion specification for
+each @var{name}, or, if no @var{name}s are supplied, all
+completion specifications.
+
+The process of applying these completion specifications when word completion
+is attempted is described above (@pxref{Programmable Completion}).
+
+Other options, if specified, have the following meanings.
+The arguments to the @option{-G}, @option{-W}, and @option{-X} options
+(and, if necessary, the @option{-P} and @option{-S} options)
+should be quoted to protect them from expansion before the
+@code{complete} builtin is invoked.
+
+
+@table @code
+@item -o @var{comp-option}
+The @var{comp-option} controls several aspects of the compspec's behavior
+beyond the simple generation of completions.
+@var{comp-option} may be one of:
+
+@table @code
+
+@item bashdefault
+Perform the rest of the default Bash completions if the compspec
+generates no matches.
+
+@item default
+Use Readline's default filename completion if the compspec generates
+no matches.
+
+@item dirnames
+Perform directory name completion if the compspec generates no matches.
+
+@item filenames
+Tell Readline that the compspec generates filenames, so it can perform any
+filename-specific processing (like adding a slash to directory names or
+suppressing trailing spaces). This option is intended to be used with
+shell functions specified with @option{-F}.
+
+@item nospace
+Tell Readline not to append a space (the default) to words completed at
+the end of the line.
+@end table
+
+@item -A @var{action}
+The @var{action} may be one of the following to generate a list of possible
+completions:
+
+@table @code
+@item alias
+Alias names. May also be specified as @option{-a}.
+
+@item arrayvar
+Array variable names.
+
+@item binding
+Readline key binding names (@pxref{Bindable Readline Commands}).
+
+@item builtin
+Names of shell builtin commands. May also be specified as @option{-b}.
+
+@item command
+Command names. May also be specified as @option{-c}.
+
+@item directory
+Directory names. May also be specified as @option{-d}.
+
+@item disabled
+Names of disabled shell builtins.
+
+@item enabled
+Names of enabled shell builtins.
+
+@item export
+Names of exported shell variables. May also be specified as @option{-e}.
+
+@item file
+File names. May also be specified as @option{-f}.
+
+@item function
+Names of shell functions.
+
+@item group
+Group names. May also be specified as @option{-g}.
+
+@item helptopic
+Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}).
+
+@item hostname
+Hostnames, as taken from the file specified by the
+@env{HOSTFILE} shell variable (@pxref{Bash Variables}).
+
+@item job
+Job names, if job control is active. May also be specified as @option{-j}.
+
+@item keyword
+Shell reserved words. May also be specified as @option{-k}.
+
+@item running
+Names of running jobs, if job control is active.
+
+@item service
+Service names. May also be specified as @option{-s}.
+
+@item setopt
+Valid arguments for the @option{-o} option to the @code{set} builtin
+(@pxref{The Set Builtin}).
+
+@item shopt
+Shell option names as accepted by the @code{shopt} builtin
+(@pxref{Bash Builtins}).
+
+@item signal
+Signal names.
+
+@item stopped
+Names of stopped jobs, if job control is active.
+
+@item user
+User names. May also be specified as @option{-u}.
+
+@item variable
+Names of all shell variables. May also be specified as @option{-v}.
+@end table
+
+@item -G @var{globpat}
+The filename expansion pattern @var{globpat} is expanded to generate
+the possible completions.
+
+@item -W @var{wordlist}
+The @var{wordlist} is split using the characters in the
+@env{IFS} special variable as delimiters, and each resultant word
+is expanded.
+The possible completions are the members of the resultant list which
+match the word being completed.
+
+@item -C @var{command}
+@var{command} is executed in a subshell environment, and its output is
+used as the possible completions.
+
+@item -F @var{function}
+The shell function @var{function} is executed in the current shell
+environment.
+When it finishes, the possible completions are retrieved from the value
+of the @env{COMPREPLY} array variable.
+
+@item -X @var{filterpat}
+@var{filterpat} is a pattern as used for filename expansion.
+It is applied to the list of possible completions generated by the
+preceding options and arguments, and each completion matching
+@var{filterpat} is removed from the list.
+A leading @samp{!} in @var{filterpat} negates the pattern; in this
+case, any completion not matching @var{filterpat} is removed.
+
+@item -P @var{prefix}
+@var{prefix} is added at the beginning of each possible completion
+after all other options have been applied.
+
+@item -S @var{suffix}
+@var{suffix} is appended to each possible completion
+after all other options have been applied.
+@end table
+
+The return value is true unless an invalid option is supplied, an option
+other than @option{-p} or @option{-r} is supplied without a @var{name}
+argument, an attempt is made to remove a completion specification for
+a @var{name} for which no specification exists, or
+an error occurs adding a completion specification.
+
+@end table
+@end ifset
diff --git a/doc/rluserman.dvi b/doc/rluserman.dvi
index a2339aa..55667c3 100644
--- a/doc/rluserman.dvi
+++ b/doc/rluserman.dvi
Binary files differ
diff --git a/doc/rluserman.html b/doc/rluserman.html
index ac8bfbd..6055fbe 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 June, 27 2002 by texi2html 1.64 -->
+<!-- Created on July, 27 2004 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -34,11 +34,12 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
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 that need to provide a command line interface.
+programs which provide a command line interface.
</P><P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC1">1. Command Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline User's Manual.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC23">A. Copying This Manual</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
</TABLE></BLOCKQUOTE>
<P>
@@ -49,7 +50,7 @@ programs that need to provide a command line interface.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC2"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
@@ -83,7 +84,7 @@ command line editing interface.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
@@ -593,8 +594,8 @@ The default value is <SAMP>`off'</SAMP>.
<DT><CODE>completion-query-items</CODE>
<DD><A NAME="IDX7"></A>
The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
+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.
@@ -639,7 +640,7 @@ attempts word completion. The default is <SAMP>`off'</SAMP>.
<A NAME="IDX13"></A>
If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
-same location on each history line retrived with <CODE>previous-history</CODE>
+same location on each history line retrieved with <CODE>previous-history</CODE>
or <CODE>next-history</CODE>.
</P><P>
@@ -746,8 +747,20 @@ matches to be listed immediately instead of ringing the bell.
The default value is <SAMP>`off'</SAMP>.
<P>
-<DT><CODE>visible-stats</CODE>
+<DT><CODE>show-all-if-unmodified</CODE>
<DD><A NAME="IDX25"></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>,
+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 <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>visible-stats</CODE>
+<DD><A NAME="IDX26"></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>.
@@ -1161,54 +1174,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="IDX26"></A>
+<A NAME="IDX27"></A>
<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX27"></A>
+<DD><A NAME="IDX28"></A>
Move to the start of the current line.
<P>
-<A NAME="IDX28"></A>
+<A NAME="IDX29"></A>
<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX29"></A>
+<DD><A NAME="IDX30"></A>
Move to the end of the line.
<P>
-<A NAME="IDX30"></A>
+<A NAME="IDX31"></A>
<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX31"></A>
+<DD><A NAME="IDX32"></A>
Move forward a character.
<P>
-<A NAME="IDX32"></A>
+<A NAME="IDX33"></A>
<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX33"></A>
+<DD><A NAME="IDX34"></A>
Move back a character.
<P>
-<A NAME="IDX34"></A>
+<A NAME="IDX35"></A>
<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX35"></A>
+<DD><A NAME="IDX36"></A>
Move forward to the end of the next word. Words are composed of
letters and digits.
<P>
-<A NAME="IDX36"></A>
+<A NAME="IDX37"></A>
<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX37"></A>
+<DD><A NAME="IDX38"></A>
Move back to the start of the current or previous word. Words are
composed of letters and digits.
<P>
-<A NAME="IDX38"></A>
+<A NAME="IDX39"></A>
<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX39"></A>
+<DD><A NAME="IDX40"></A>
Clear the screen and redraw the current line,
leaving the current line at the top of the screen.
<P>
-<A NAME="IDX40"></A>
+<A NAME="IDX41"></A>
<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX41"></A>
+<DD><A NAME="IDX42"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1234,9 +1247,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX42"></A>
+<A NAME="IDX43"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX43"></A>
+<DD><A NAME="IDX44"></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
@@ -1245,81 +1258,81 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX44"></A>
+<A NAME="IDX45"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX45"></A>
+<DD><A NAME="IDX46"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX46"></A>
+<A NAME="IDX47"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX47"></A>
+<DD><A NAME="IDX48"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX48"></A>
+<A NAME="IDX49"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX49"></A>
+<DD><A NAME="IDX50"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX50"></A>
+<A NAME="IDX51"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX51"></A>
+<DD><A NAME="IDX52"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX52"></A>
+<A NAME="IDX53"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX53"></A>
+<DD><A NAME="IDX54"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX54"></A>
+<A NAME="IDX55"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX55"></A>
+<DD><A NAME="IDX56"></A>
Search forward starting at the current line and moving `down' through
the the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX56"></A>
+<A NAME="IDX57"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX57"></A>
+<DD><A NAME="IDX58"></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.
<P>
-<A NAME="IDX58"></A>
+<A NAME="IDX59"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX59"></A>
+<DD><A NAME="IDX60"></A>
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.
<P>
-<A NAME="IDX60"></A>
+<A NAME="IDX61"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX61"></A>
+<DD><A NAME="IDX62"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX62"></A>
+<A NAME="IDX63"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX63"></A>
+<DD><A NAME="IDX64"></A>
Search backward through the history for the string of characters
between the start of the current line and the point. This
is a non-incremental search. By default, this command is unbound.
<P>
-<A NAME="IDX64"></A>
+<A NAME="IDX65"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX65"></A>
+<DD><A NAME="IDX66"></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>,
@@ -1328,9 +1341,9 @@ in the previous command begin with word 0). A negative argument
inserts the <VAR>n</VAR>th word from the end of the previous command.
<P>
-<A NAME="IDX66"></A>
+<A NAME="IDX67"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX67"></A>
+<DD><A NAME="IDX68"></A>
Insert last argument to the previous command (the last word of the
previous history entry). With an
argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -1360,52 +1373,52 @@ list, inserting the last argument of each line in turn.
<P>
<DL COMPACT>
-<A NAME="IDX68"></A>
+<A NAME="IDX69"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX69"></A>
+<DD><A NAME="IDX70"></A>
Delete the character at point. If point is at the
beginning of the line, there are no characters in the line, and
the last character typed was not bound to <CODE>delete-char</CODE>, then
return EOF.
<P>
-<A NAME="IDX70"></A>
+<A NAME="IDX71"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX71"></A>
+<DD><A NAME="IDX72"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX72"></A>
+<A NAME="IDX73"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX73"></A>
+<DD><A NAME="IDX74"></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="IDX74"></A>
+<A NAME="IDX75"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX75"></A>
+<DD><A NAME="IDX76"></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="IDX76"></A>
+<A NAME="IDX77"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX77"></A>
+<DD><A NAME="IDX78"></A>
Insert a tab character.
<P>
-<A NAME="IDX78"></A>
+<A NAME="IDX79"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX79"></A>
+<DD><A NAME="IDX80"></A>
Insert yourself.
<P>
-<A NAME="IDX80"></A>
+<A NAME="IDX81"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX81"></A>
+<DD><A NAME="IDX82"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1414,39 +1427,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX82"></A>
+<A NAME="IDX83"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX83"></A>
+<DD><A NAME="IDX84"></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="IDX84"></A>
+<A NAME="IDX85"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX85"></A>
+<DD><A NAME="IDX86"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX86"></A>
+<A NAME="IDX87"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX87"></A>
+<DD><A NAME="IDX88"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX88"></A>
+<A NAME="IDX89"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX89"></A>
+<DD><A NAME="IDX90"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX90"></A>
+<A NAME="IDX91"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX91"></A>
+<DD><A NAME="IDX92"></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
@@ -1486,98 +1499,106 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX92"></A>
+<A NAME="IDX93"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX93"></A>
+<DD><A NAME="IDX94"></A>
Kill the text from point to the end of the line.
<P>
-<A NAME="IDX94"></A>
+<A NAME="IDX95"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX95"></A>
+<DD><A NAME="IDX96"></A>
Kill backward to the beginning of the line.
<P>
-<A NAME="IDX96"></A>
+<A NAME="IDX97"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX97"></A>
+<DD><A NAME="IDX98"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX98"></A>
+<A NAME="IDX99"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX99"></A>
+<DD><A NAME="IDX100"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX100"></A>
+<A NAME="IDX101"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX101"></A>
+<DD><A NAME="IDX102"></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="IDX102"></A>
+<A NAME="IDX103"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX103"></A>
+<DD><A NAME="IDX104"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX104"></A>
+<A NAME="IDX105"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX105"></A>
+<DD><A NAME="IDX106"></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="IDX106"></A>
+<A NAME="IDX107"></A>
+<DT><CODE>unix-filename-rubout ()</CODE>
+<DD><A NAME="IDX108"></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="IDX109"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX107"></A>
+<DD><A NAME="IDX110"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX108"></A>
+<A NAME="IDX111"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX109"></A>
+<DD><A NAME="IDX112"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX110"></A>
+<A NAME="IDX113"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX111"></A>
+<DD><A NAME="IDX114"></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="IDX112"></A>
+<A NAME="IDX115"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX113"></A>
+<DD><A NAME="IDX116"></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="IDX114"></A>
+<A NAME="IDX117"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX115"></A>
+<DD><A NAME="IDX118"></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="IDX116"></A>
+<A NAME="IDX119"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX117"></A>
+<DD><A NAME="IDX120"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX118"></A>
+<A NAME="IDX121"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX119"></A>
+<DD><A NAME="IDX122"></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>
@@ -1601,16 +1622,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX120"></A>
+<A NAME="IDX123"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
+<DD><A NAME="IDX124"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX122"></A>
+<A NAME="IDX125"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX123"></A>
+<DD><A NAME="IDX126"></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.
@@ -1645,30 +1666,30 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX124"></A>
+<A NAME="IDX127"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX125"></A>
+<DD><A NAME="IDX128"></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="IDX126"></A>
+<A NAME="IDX129"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX127"></A>
+<DD><A NAME="IDX130"></A>
List the possible completions of the text before point.
<P>
-<A NAME="IDX128"></A>
+<A NAME="IDX131"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX129"></A>
+<DD><A NAME="IDX132"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX130"></A>
+<A NAME="IDX133"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX131"></A>
+<DD><A NAME="IDX134"></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
@@ -1683,9 +1704,9 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX132"></A>
+<A NAME="IDX135"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX133"></A>
+<DD><A NAME="IDX136"></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
@@ -1714,22 +1735,22 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX134"></A>
+<A NAME="IDX137"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX135"></A>
+<DD><A NAME="IDX138"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX136"></A>
+<A NAME="IDX139"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX137"></A>
+<DD><A NAME="IDX140"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX138"></A>
+<A NAME="IDX141"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX139"></A>
+<DD><A NAME="IDX142"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
@@ -1755,87 +1776,87 @@ in the macro appear as if typed at the keyboard.
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX140"></A>
+<A NAME="IDX143"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX141"></A>
+<DD><A NAME="IDX144"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX142"></A>
+<A NAME="IDX145"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX143"></A>
+<DD><A NAME="IDX146"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX144"></A>
+<A NAME="IDX147"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX145"></A>
+<DD><A NAME="IDX148"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
-<A NAME="IDX146"></A>
+<A NAME="IDX149"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX147"></A>
+<DD><A NAME="IDX150"></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="IDX148"></A>
+<A NAME="IDX151"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX149"></A>
+<DD><A NAME="IDX152"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX150"></A>
+<A NAME="IDX153"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX151"></A>
+<DD><A NAME="IDX154"></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="IDX152"></A>
+<A NAME="IDX155"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX153"></A>
+<DD><A NAME="IDX156"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX154"></A>
+<A NAME="IDX157"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX155"></A>
+<DD><A NAME="IDX158"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX156"></A>
+<A NAME="IDX159"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX157"></A>
+<DD><A NAME="IDX160"></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="IDX158"></A>
+<A NAME="IDX161"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX159"></A>
+<DD><A NAME="IDX162"></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="IDX160"></A>
+<A NAME="IDX163"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX161"></A>
+<DD><A NAME="IDX164"></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="IDX162"></A>
+<A NAME="IDX165"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX163"></A>
+<DD><A NAME="IDX166"></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
@@ -1846,43 +1867,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX164"></A>
+<A NAME="IDX167"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX165"></A>
+<DD><A NAME="IDX168"></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="IDX166"></A>
+<A NAME="IDX169"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX167"></A>
+<DD><A NAME="IDX170"></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="IDX168"></A>
+<A NAME="IDX171"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX169"></A>
+<DD><A NAME="IDX172"></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="IDX170"></A>
+<A NAME="IDX173"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX171"></A>
+<DD><A NAME="IDX174"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX172"></A>
+<A NAME="IDX175"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX173"></A>
+<DD><A NAME="IDX176"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -1895,10 +1916,10 @@ editing mode.
<A NAME="SEC22"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC21"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
@@ -1928,6 +1949,567 @@ history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>,
so forth.
</P><P>
+<A NAME="Copying This Manual"></A>
+<HR SIZE="6">
+<A NAME="SEC23"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC24"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H1> A. Copying This Manual </H1>
+<!--docid::SEC23::-->
+<P>
+
+<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC24">A.1 GNU Free Documentation License</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">License for copying this manual.</TD></TR>
+</TABLE></BLOCKQUOTE>
+<P>
+
+<A NAME="GNU Free Documentation License"></A>
+<HR SIZE="6">
+<A NAME="SEC24"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC25"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> A.1 GNU Free Documentation License </H2>
+<!--docid::SEC24::-->
+<P>
+
+<A NAME="IDX177"></A>
+<center>
+ Version 1.2, November 2002
+</center>
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=display><pre style="font-family: serif">Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table></P><P>
+
+<OL>
+<LI>
+PREAMBLE
+<P>
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document <EM>free</EM> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</P><P>
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</P><P>
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a 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 instruction or reference.
+</P><P>
+
+<LI>
+APPLICABILITY AND DEFINITIONS
+<P>
+
+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 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.
+</P><P>
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</P><P>
+
+A "Secondary Section" is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</P><P>
+
+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.
+</P><P>
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</P><P>
+
+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".
+</P><P>
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input
+format, <FONT SIZE="-1">SGML</FONT> or <FONT SIZE="-1">XML</FONT> using a publicly available
+<FONT SIZE="-1">DTD</FONT>, and standard-conforming simple <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> designed for human modification. Examples
+of transparent image formats include <FONT SIZE="-1">PNG</FONT>, <FONT SIZE="-1">XCF</FONT> and
+<FONT SIZE="-1">JPG</FONT>. Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <FONT SIZE="-1">SGML</FONT> or
+<FONT SIZE="-1">XML</FONT> for which the <FONT SIZE="-1">DTD</FONT> and/or processing tools are
+not generally available, and the machine-generated <FONT SIZE="-1">HTML</FONT>,
+PostScript or <FONT SIZE="-1">PDF</FONT> produced by some word processors for
+output purposes only.
+</P><P>
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+</P><P>
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+</P><P>
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</P><P>
+
+<LI>
+VERBATIM COPYING
+<P>
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You 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.
+</P><P>
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</P><P>
+
+<LI>
+COPYING IN QUANTITY
+<P>
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all 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.
+</P><P>
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</P><P>
+
+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.
+</P><P>
+
+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.
+</P><P>
+
+<LI>
+MODIFICATIONS
+<P>
+
+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:
+</P><P>
+
+<OL>
+<LI>
+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.
+<P>
+
+<LI>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+<P>
+
+<LI>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+<P>
+
+<LI>
+Preserve all the copyright notices of the Document.
+<P>
+
+<LI>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+<P>
+
+<LI>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+<P>
+
+<LI>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+<P>
+
+<LI>
+Include an unaltered copy of this License.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+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 acknowledgements and/or
+dedications given therein.
+<P>
+
+<LI>
+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.
+<P>
+
+<LI>
+Delete any section Entitled "Endorsements". Such a section
+may not be included in the Modified Version.
+<P>
+
+<LI>
+Do not retitle any existing section to be Entitled "Endorsements" or
+to conflict in title with any Invariant Section.
+<P>
+
+<LI>
+Preserve any Warranty Disclaimers.
+</OL>
+<P>
+
+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.
+</P><P>
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</P><P>
+
+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.
+</P><P>
+
+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 assert or
+imply endorsement of any Modified Version.
+</P><P>
+
+<LI>
+COMBINING DOCUMENTS
+<P>
+
+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, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</P><P>
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</P><P>
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all
+sections Entitled "Endorsements."
+</P><P>
+
+<LI>
+COLLECTIONS OF DOCUMENTS
+<P>
+
+You may make a collection consisting of the Document and other 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.
+</P><P>
+
+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.
+</P><P>
+
+<LI>
+AGGREGATION WITH INDEPENDENT WORKS
+<P>
+
+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 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 an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</P><P>
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</P><P>
+
+<LI>
+TRANSLATION
+<P>
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</P><P>
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</P><P>
+
+<LI>
+TERMINATION
+<P>
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</P><P>
+
+<LI>
+FUTURE REVISIONS OF THIS LICENSE
+<P>
+
+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
+<A HREF="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</A>.
+</P><P>
+
+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.
+</OL>
+<P>
+
+<HR SIZE="6">
+<A NAME="SEC25"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC24"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC23"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC24"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H3> A.1.1 ADDENDUM: How to use this License for your documents </H3>
+<!--docid::SEC25::-->
+<P>
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre> Copyright (C) <VAR>year</VAR> <VAR>your name</VAR>.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre> with the Invariant Sections being <VAR>list their titles</VAR>, with
+ the Front-Cover Texts being <VAR>list</VAR>, and with the Back-Cover Texts
+ being <VAR>list</VAR>.
+</FONT></pre></td></tr></table></P><P>
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</P><P>
+
+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.
+</P><P>
+
<HR SIZE="6">
<A NAME="SEC_Contents"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
@@ -1990,6 +2572,16 @@ so forth.
<A NAME="TOC22" HREF="rluserman.html#SEC22">1.5 Readline vi Mode</A>
<BR>
</UL>
+<A NAME="TOC23" HREF="rluserman.html#SEC23">A. Copying This Manual</A>
+<BR>
+<UL>
+<A NAME="TOC24" HREF="rluserman.html#SEC24">A.1 GNU Free Documentation License</A>
+<BR>
+<UL>
+<A NAME="TOC25" HREF="rluserman.html#SEC25">A.1.1 ADDENDUM: How to use this License for your documents</A>
+<BR>
+</UL>
+</UL>
</UL>
<HR SIZE=1>
<A NAME="SEC_OVERVIEW"></A>
@@ -2003,6 +2595,8 @@ so forth.
<BLOCKQUOTE>
<A NAME="TOC1" HREF="rluserman.html#SEC1">1. Command Line Editing</A>
<BR>
+<A NAME="TOC23" HREF="rluserman.html#SEC23">A. Copying This Manual</A>
+<BR>
</BLOCKQUOTE>
<HR SIZE=1>
@@ -2014,7 +2608,7 @@ so forth.
<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>June, 27 2002</I>
+This document was generated by <I>Chet Ramey</I> on <I>July, 27 2004</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2176,7 +2770,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
+by <I>Chet Ramey</I> on <I>July, 27 2004</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 3fccbd4..4a9507c 100644
--- a/doc/rluserman.info
+++ b/doc/rluserman.info
@@ -1,30 +1,33 @@
-This is rluserman.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/rluserman.texinfo.
+This is rluserman.info, produced by makeinfo version 4.5 from
+/usr/homes/chet/src/bash/readline-src/doc/rluserman.texi.
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* RLuserman: (rluserman). The GNU readline library User's Manual.
-END-INFO-DIR-ENTRY
+This manual describes the end user interface of the GNU Readline Library
+(version 5.0, 28 January 2004), a library which aids in the consistency
+of user interface across discrete programs which provide a command line
+interface.
- 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 that need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
+ Copyright (C) 1988-2004 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
+manual provided the copyright notice and this permission notice are
preserved on all copies.
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.1 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, with the Front-Cover texts
+ being "A GNU Manual," and with the Back-Cover Texts as in (a)
+ below. A copy of the license is included in the section entitled
+ "GNU Free Documentation License."
+
+ (a) The FSF's Back-Cover Text is: "You have freedom to copy and
+ modify this GNU Manual, like GNU software. Copies published by
+ the Free Software Foundation raise funds for GNU development."
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* RLuserman: (rluserman). The GNU readline library User's Manual.
+END-INFO-DIR-ENTRY

File: rluserman.info, Node: Top, Next: Command Line Editing, Up: (dir)
@@ -34,14 +37,15 @@ 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 that need to provide a command line interface.
+across discrete programs which provide a command line interface.
* Menu:
* Command Line Editing:: GNU Readline User's Manual.
+* Copying This Manual:: Copying This Manual.

-File: rluserman.info, Node: Command Line Editing, Prev: Top, Up: Top
+File: rluserman.info, Node: Command Line Editing, Next: Copying This Manual, Prev: Top, Up: Top
Command Line Editing
********************
@@ -240,6 +244,7 @@ available to be yanked back later, when you are typing another line.
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.
@@ -390,12 +395,12 @@ Variable Settings
`completion-query-items'
The number of possible completions that determines when the
- user is asked whether he wants to see the list of
- possibilities. 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. The default limit is `100'.
+ 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. The default limit is `100'.
`convert-meta'
If set to `on', Readline will convert characters with the
@@ -424,7 +429,7 @@ Variable Settings
attempts word completion. The default is `off'.
If set to `on', the history code attempts to place point at
- the same location on each history line retrived with
+ the same location on each history line retrieved with
`previous-history' or `next-history'.
`horizontal-scroll-mode'
@@ -499,11 +504,21 @@ Variable Settings
completion cause the matches to be listed immediately instead
of ringing the bell. The default value is `off'.
+ `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
+ 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'.
+
`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
@@ -554,6 +569,7 @@ Key Bindings
`<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:
@@ -619,6 +635,7 @@ Key Bindings
the line:
"\C-x\\": "\\"
+

File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
@@ -848,6 +865,7 @@ Commands For Moving
`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
@@ -917,6 +935,7 @@ Commands For Manipulating The History
through the history list, inserting the last argument of each line
in turn.
+

File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -984,6 +1003,7 @@ Commands For Changing Text
By default, this command is unbound.
+

File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
@@ -1016,6 +1036,11 @@ Killing And Yanking
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
+`unix-filename-rubout ()'
+ Kill the word behind point, using white space and the slash
+ character as the word boundaries. The killed text is saved on the
+ kill-ring.
+
`delete-horizontal-space ()'
Delete all spaces and tabs around point. By default, this is
unbound.
@@ -1104,6 +1129,7 @@ Letting Readline Type For You
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
@@ -1121,6 +1147,7 @@ Keyboard Macros
Re-execute the last keyboard macro defined, by making the
characters in the macro appear as if typed at the keyboard.
+

File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
@@ -1208,6 +1235,7 @@ Some Miscellaneous Commands
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
@@ -1230,31 +1258,474 @@ 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: Copying This Manual, Prev: Command Line Editing, Up: Top
+
+Copying This Manual
+*******************
+
+* Menu:
+
+* GNU Free Documentation License:: License for copying this manual.
+
+
+File: rluserman.info, Node: GNU Free Documentation License, Up: Copying This Manual
+
+GNU Free Documentation License
+==============================
+
+ Version 1.2, November 2002
+ Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ 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
+ 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
+ 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.
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ 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.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ 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".
+
+ 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.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ 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.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ 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.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ 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.
+
+ 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.
+
+ 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:
+
+ 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.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this 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.
+
+ 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.
+
+ 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
+ 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.
+
+ M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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.
+
+ You may add a section Entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ 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.
+
+ 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
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ 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,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ "History" in the various original documents, forming one section
+ Entitled "History"; likewise combine any sections Entitled
+ "Acknowledgements", and any sections Entitled "Dedications". You
+ must delete all sections Entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ 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.
+
+ 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.
+
+ 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
+ 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 an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided for under this License. Any other
+ attempt to copy, modify, sublicense or distribute the Document is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 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/'.
+
+ 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.
+
+ADDENDUM: How to use this License for your documents
+----------------------------------------------------
+
+ To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+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
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+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.
+

Tag Table:
-Node: Top1208
-Node: Command Line Editing1604
-Node: Introduction and Notation2218
-Node: Readline Interaction3837
-Node: Readline Bare Essentials5025
-Node: Readline Movement Commands6807
-Node: Readline Killing Commands7765
-Node: Readline Arguments9675
-Node: Searching10712
-Node: Readline Init File12856
-Node: Readline Init File Syntax13918
-Node: Conditional Init Constructs24802
-Node: Sample Init File27328
-Node: Bindable Readline Commands30513
-Node: Commands For Moving31564
-Node: Commands For History32414
-Node: Commands For Text35273
-Node: Commands For Killing37988
-Node: Numeric Arguments39940
-Node: Commands For Completion41069
-Node: Keyboard Macros42602
-Node: Miscellaneous Commands43162
-Node: Readline vi Mode46512
+Node: Top1379
+Node: Command Line Editing1814
+Node: Introduction and Notation2456
+Node: Readline Interaction4075
+Node: Readline Bare Essentials5263
+Node: Readline Movement Commands7045
+Node: Readline Killing Commands8003
+Node: Readline Arguments9914
+Node: Searching10951
+Node: Readline Init File13095
+Node: Readline Init File Syntax14157
+Node: Conditional Init Constructs25521
+Node: Sample Init File28047
+Node: Bindable Readline Commands31232
+Node: Commands For Moving32283
+Node: Commands For History33134
+Node: Commands For Text35994
+Node: Commands For Killing38710
+Node: Numeric Arguments40842
+Node: Commands For Completion41971
+Node: Keyboard Macros43505
+Node: Miscellaneous Commands44066
+Node: Readline vi Mode47417
+Node: Copying This Manual48333
+Node: GNU Free Documentation License48543

End Tag Table
diff --git a/doc/rluserman.pdf b/doc/rluserman.pdf
new file mode 100644
index 0000000..4a2184b
--- /dev/null
+++ b/doc/rluserman.pdf
Binary files differ
diff --git a/doc/rluserman.ps b/doc/rluserman.ps
index b46417a..44c02be 100644
--- a/doc/rluserman.ps
+++ b/doc/rluserman.ps
@@ -1,14 +1,14 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: rluserman.dvi
-%%Pages: 24
+%%Pages: 32
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o rluserman.ps rluserman.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
+%DVIPSCommandLine: dvips -D 600 -t letter -o rluserman.ps rluserman.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.07.27:0931
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -67,700 +67,1616 @@ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (rluserman.dvi)
+TeXDict begin 40258431 52099146 1000 600 600 (rluserman.dvi)
@start
-%DVIPSBitmapFont: Fa cmbxti10 14.4 1
-/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
+%DVIPSBitmapFont: Fa cmsltt10 9 13
+/Fa 13 122 df<EB7FF83801FFFE00076D7E8148809038F01FF0EBE0036C486C7EEA0180
+C8FC140114FF011F5B90B5FC1203120F481383387FF00301805BEAFE005A5A1407A24A5A
+6C133F38FF01FF90B6FC6C15807E000F01E313003803FE0021207A9F27>97
+D<EB03FE90380FFF80013F13E090B512F04814F83903FE03FC3807F800EA0FE04848137E
+5B48C7123EA2127E007FB512FEA4B612FC00FCC8FCA2127C127E1578007F14F8383F8001
+EBC003391FF80FF06CB512E06C14C0000114806CEBFE00EB1FF01F207A9F27>101
+D<EBFFC05AA37E1307130FA25CA4131FA2EC07F8EC1FFEEC7FFF91B512804914C0ECFC1F
+ECE00FECC0071480140049130F137E1680137CA301FC131FA2491400A400015CA249133E
+A33A7FFF87FFF0B500CF13F8A36C018713F0252E7FAD27>104 D<143814FE1301A46D5A
+147891C7FCA73803FFF0487FA37EEA00015CA41303A25CA41307A25CA4130FA25CA3007F
+B512C0B612E0A315C01B2F79AE27>I<90B5FC5AA37EEB001F5CA2143EA4147EA2147CA4
+14FCA25CA41301A25CA41303A25CA41307A25CA3007FB512F8B612FCA36C14F81E2E7BAD
+27>108 D<3A03F0FC07E03A07FBFE1FF090B5EA3FF8EDFFFCA2C690388FFC7C9039FE07
+F03C01FC13E001F813C0A23A01F00F807CA2167801E01300A300034913F8A2D9C01E13F0
+A40007EB3E01A2D9803C13E0A33A7FF0FF87FCD8FFF9EBCFFEA3D87FF1EB8FFC2720809F
+27>I<3903FE07F83907FF1FFEEC7FFF91B5128016C039003FFC1FECE00FECC007148014
+0049130F137E1680137CA301FC131FA2491400A400015CA249133EA33A7FFF87FFF0B500
+CF13F8A36C018713F025207F9F27>I<EB01FCEB0FFF013F13C090B512E04814F03903FC
+0FF83807F003390FE000FC1380001F147C48C7127E003E143EA25AA400FC147CA215FC00
+7C14F81401007EEB03F0A26CEB0FE09038801FC0391FE07F8090B512006C5B6C13F80001
+5B38007F801F207A9F27>I<3A07FF803FC0489038C1FFF002C713F802CF13FC6C90B5FC
+D8000F13E3ED03F89138FC01F09138F800604A1300495A5CA25CA291C8FC5BA2133EA413
+7EA2137CA3B6FCA526207D9F27>114 D<903807FF1C013F13FE90B5FC5A1207EBFC0139
+0FE000FC49137C5BA2153801E01300EA07FEEBFFF8000113FF6C6C13C0010F13E0903800
+7FF0EC03F8001C1301003EEB00FC157C007E14FC127FEC01F8EB80039038E01FF090B5FC
+B612C0158000F8EBFE0038703FF01F207B9F27>I<131E133FA2133EA4137EA2007FB512
+F0B612F8A36C14F0D800FCC7FC5BA41201A25BA41203A25BA2EC01E015F01403A2EC07E0
+140F9038F83FC090B5128015006C5B38007FF8EB1FC01D2979A827>I<397FC00FF839FF
+E01FFCA4000713004913F8A4000F1301A2018013F0A4001F1303A2010013E0A314075A14
+0F003EEB1FC0003F133FEB80FF90B512FE6C14FFA2000713EF0001EB07FE20207A9F27>
+I<3A01FFE01FFF486D5AA39138E01FFE3A001E0003C0A2011FEB0780A26DEB0F00A2151E
+148001075BA25DA26E5A1303ECC1E0A2ECC3C0EB01E3ECE780A202EFC7FC130014FEA25C
+A2147814F85C13015C13035C130700085BEA7E0F49C8FCEAFE3EEAF8FEB45A5B6C5AEA3F
+C06CC9FC28317F9F27>121 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmbx12 13.14 46
-/Fb 46 122 df<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA212
-00B3AA387FFFFCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC38
-7C00FE12FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F
-00131E5B1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA21823
-7DA21F>I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C010000
-13FCA2EB03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210
-127C12FEA214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14
-381478A214F81301130313071306130C131C13381330136013E0EA01C01380EA03005A12
-0E5A12185A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C00
-1F137CEBFFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8
-000813FCC7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FF
-C03801FE0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F
-005AA2007E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4
-003E137E123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C
-003FB512C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA2
-5BA2133CA25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F838
-1C007C48133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313
-E014F8000F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C13
-38381F80F03807FFE00001130018237DA21F>I<141CA2143EA3147FA24A7EA39038019F
-C0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FC
-A29039E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229
-257EA42E>65 D<B612E015FC3903F0007FED3F80ED1FC0ED0FE0A216F0A21507150FA216
-E0151F16C0ED7F80913801FE0090B512F815FF9039F0003FC0ED0FE0ED07F016F8150316
-FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F826257EA42C>I<9138FF8008010FEBF0
-1890393FC03C789039FE0006F8D801F81303484813014848130048481478121F48481438
-A2007F151890C8FCA2481500A97E16187F123FA26C6C1430120F6C6C14606C6C14C06C6C
-EB0180D800FEEB070090383FC01E90380FFFF8010013C025257DA42C>I<B7FCA23903F8
-007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFEA2EBF81E140E14
-06A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428>69
-D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F80
-80A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FCA2
-9038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A213
-257EA417>I<B539E007FF80A2D803F8C7EA780016605E4B5A0307C7FC150E15185D5D5D
-EC03804AC8FC140E141F4A7E147FECDFC09038FB8FE09038FF0FF0EBFC07496C7E816E7E
-1400157F82153F6F7E6F7E8215076F7E82B539E03FFFC0A22A257EA430>75
-D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FCB6FCA220257E
-A425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C130CA26D6C1318
-A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3EC3F06A2EC1F8C
-A2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>I<D8FFF8903807
-FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13036D7E6D7E80EC7F80EC3F
-C0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3FD8ED1FF8150F15071503A2
-150115001678486C1438D8FFFC1418A22B257EA430>I<B67E15F83903F801FEEC007F6F
-7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F803F06E7E6E7E157EA2157F
-A482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B257EA42E>82
-D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<
-007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400
-B3A390B512FEA226247EA32B>I<B539C001FFE0A2D807F8C7EA1C006C6C141816386C6C
-14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7FC90380FF006150E903807F80C6D6C
-5A15386D6C5A903800FF6015E06E5A6E5AAE90380FFFFCA22B257FA42E>89
-D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
-00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
-D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
-A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
-7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
-EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
-0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
-FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
-12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
-17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
-C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
-007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
-13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
-FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
-07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
-C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC1FF0A2EC0780
-EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB80FC147E80A2
-EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EAFFFCA20E267E
-A511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001
-A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E
-0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803FFF038
-07C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A2381F807E
-6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F007E001
-C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00
-EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013
-A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF0
-00A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0
-EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB5
-12C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07F
-E0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<39FFF8
-0FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00005B13FE
-EB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A2390FC00F
-003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EB
-E0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
-D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
-005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
-1370EA68E0EA7FC0001FC8FC1D237F9720>I E
+%DVIPSBitmapFont: Fb cmtt9 9 48
+/Fb 48 122 df<120FEA1FC0123F13E0A213F0121F120F1201A4120313E01207EA0FC0A2
+EA3F80EA7F005A5A12F812700C1773AD27>39 D<EB01C0EB03E0130F131FEB3FC0EB7F80
+EBFE00485A5B1203485A5B485AA2485AA248C7FCA3127EA45AAC127EA47EA36C7EA26C7E
+A26C7E7F6C7E12017F6C7EEB7F80EB3FC0EB1FE0130F1303EB01C0133A73B327>I<1270
+12F812FE7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA27FA2EB1F80A3EB0FC0A4EB07
+E0ACEB0FC0A4EB1F80A3EB3F00A2137EA25B1201485A5B1207485AEA3FC0485A48C7FC5A
+12F81270133A7AB327>I<120FEA3FC013E0EA7FF0A213F8A2123FA2120F120113F01203
+EA07E0121FEA7FC0EAFF8013005A12700D14738927>44 D<007FB512F8B612FCA46C14F8
+1E067C9927>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A728927>I<1538157C15FC
+A2140115F8140315F0140715E0140F15C0141F1580143F1500A25C147E14FE5C13015C13
+035C13075C130F5CA2131F5C133F91C7FC5B137E13FE5B12015B12035BA212075B120F5B
+121F5B123F90C8FC5A127E12FE5AA25A12781E3A7CB327>I<130E131FA25B5BA25B5A5A
+127FB5FCA213BFEA7E3F1200B3AA003FB512805A15C01580A21A2F79AE27>49
+D<EB3FE03801FFF84813FE000FEBFF804814C0393FE07FE0EB800F397F0007F0007EEB03
+F800FE13015A6C14FC1400A3127CC8FCA2140115F8A2140315F01407EC0FE0EC1FC0143F
+EC7F80ECFF00495A495A495A495A495A495A495A01FEC7FC485AD807F81378484813FC48
+5A485A48B5FCB6FCA36C14F81E2F7CAE27>I<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00
+C7FCAC120FEA3F8013C0127F13E0A3123FA2120F120713C0120FA2EA3F80EA7F005A5A12
+F812700B2A739F27>59 D<EB03F0497EA2497EA4143CEB1F3EA5EB3F3FA3EB3E1FA2017E
+7FA4496C7EA548486C7EA390B5FCA24880A3EBF003A248486C7EA4000F803A7FFC0FFF80
+00FF15C06D5A497E007F1580222F7EAE27>65 D<007FB5FCB612C08115F87E3907E003FC
+EC00FE157E157F81A6157EA25D1403EC0FF890B55A15C015F081819038E000FE157FED3F
+80151FA2ED0FC0A6151F1680153FED7F004A5A007FB55AB65A5D15E06C1480222E7FAD27
+>I<903803F80E90381FFE1F90383FFFBF90B6FC5A3803FE0F3807F803497E48487E485A
+49137FA248C7123FA25A127E151E150012FE5AAA7E127EA2151E007F143F7EA26C7E157F
+6D137E6C6C13FE3907F001FCEBF8033903FE0FF86CB512F06C14E0013F13C06D1300EB03
+F820307DAE27>I<387FFFFC14FFB612C06C80813907E00FF81407EC01FC6E7EA2157E15
+7F811680151FA316C0150FABED1F80A3153F1600A25D15FEA24A5A4A5A140F007FB55A5D
+B65A6C91C7FC14FC222E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092C7
+FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387FFF80B57EA36C5B222E7EAD27
+>70 D<903807F03890381FFC7C90387FFFFC90B5FC5A3803FC1F3807F00F380FE007EBC0
+03001F13011380123F90C7FCA2127EA2157892C7FC5AA8EC1FFF4A1380A3007E6D1300EC
+00FCA36C1301A21380121FEBC003120FEBE0073807F00F3803FC1F6CB5FC7EEB7FFE9038
+1FFC78D907F0C7FC21307DAE27>I<007FB512E0B612F0A36C14E039001F8000B3B2007F
+B512E0B612F0A36C14E01C2E7BAD27>73 D<387FFFC080B5FC7E5CD803F0C8FCB3AAED07
+80ED0FC0A7007FB6FCA2B7FC7E1680222E7FAD27>76 D<3A7FF003FFE0486C4813F0A213
+FC007F6D13E000079038003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3
+EBC0F8A31478147CA2143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401
+A26C486C5A242E7FAD27>78 D<007FB5FCB612E081816C803907E003FEEC00FF81ED3F80
+151F16C0150FA6151F1680153FED7F005DEC03FE90B55A5D5D5D92C7FC01E0C8FCADEA7F
+FEB5FCA36C5A222E7FAD27>80 D<90387FC0E03901FFF1F0000713FF5A5AEA3FE0EB801F
+387F000F007E130712FE5A1403A3EC01E06C90C7FC127E127FEA3FC013F86CB47E6C13F8
+6C13FE6CEBFF80C614C0010F13E0010013F0140FEC07F81403140115FC1400127812FCA4
+6CEB01F8A26C130390388007F09038F01FE090B5FC15C0150000F85B38701FF81E307CAE
+27>83 D<007FB61280B712C0A439FC03F00FA60078EC0780000091C7FCB3AB90B512C048
+80A36C5C222E7EAD27>I<3A7FFE01FFF8B54813FCA36C486C13F83A07E0001F80B3AB6D
+133F00031500A26D5B0001147E6D13FE6C6C485A90387F87F814FF6D5B010F13C06D5BD9
+01FEC7FC262F80AD27>I<3A7FFC03FFE06D5A00FF15F0007F15E0497E3A07E0007E00A4
+6C6C5BA4EBF80100015CA46C6C485AA490387E07E0A56D485AA4011F5B149FA3010F90C7
+FCA5EB07FEA46D5AA26D5A242F7FAD27>I<13E0EA01F01207120F13E0EA1FC0EA3F00A2
+127E127C12FC5AA4B4FC138013C0127FA2123F1380EA0F000C1773B227>96
+D<3803FFC0000F13F04813FC4813FF811380EC1FC0381F000F000480C71207A2EB0FFF13
+7F0003B5FC120F5A383FFC07EA7FC0130012FE5AA46C130F007F131FEBC0FF6CB612806C
+15C07E000313F1C69038807F8022207C9F27>I<EA7FE0487EA3127F1203A914FF01F313
+C090B512F08181EC81FE49C67E49EB3F8049131F16C049130FA216E01507A6150F16C07F
+151F6DEB3F80157F6DEBFF009038FF83FEECFFFC5D5D01F313C02601E0FEC7FC232E7FAD
+27>I<EB0FFF017F13C048B512E04814F05A380FF807EA1FE0393FC003E0903880008048
+C8FC127EA212FE5AA67E127EA2007F14F0393F8001F813C0381FE003390FF80FF06CB5FC
+6C14E06C14C06C6C1300EB0FF81D207B9F27>I<EC3FF04A7EA3143F1401A9EB0FE1EB7F
+FD48B5FC5A5A380FF83F381FE00F383FC007EB8003EA7F00007E1301A212FE5AA67E007E
+1303A2127F6C1307EB800F381FE01F380FF03F6CB612C06C15E06C13FD38007FF9D91FE0
+13C0232E7EAD27>I<EB0FF8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003F8
+EBC001D83F8013FC48C7FC127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D
+137E6C7E01F013FE390FFC07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D9F
+27>I<EC1FF0ECFFF84913FC4913FE5BEB0FF014C0011F137CEC8000A6007FB512F0B612
+F8A36C14F039001F8000B3A4003FB512C04814E0A36C14C01F2E7EAD27>I<153F90391F
+C0FF80D97FF313C048B612E05A4814EF390FF07F873A1FC01FC3C0EDC000EB800F48486C
+7EA66C6C485AEBC01FA2390FF07F8090B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC
+15E015F84814FE4880EB8001007EC7EA3F80007C140F00FC15C0481407A46C140F007C15
+80007F143F6C6CEB7F009038F807FF6CB55A000714F86C5CC614C0D90FFCC7FC23337EA0
+27>I<EA7FE0487EA3127F1203A9147F9038F1FFC001F713F090B5FC8114C1EC01FCEBFE
+005B5BA25BB03A7FFF83FFE0B500C713F0A36C018313E0242E7FAD27>I<130F497E497E
+A46D5A6DC7FC90C8FCA7383FFF80487FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D
+2F7BAE27>I<EA7FE07F12FF127FA21201A991383FFFC04A13E0A36E13C0913803F8004A
+5A4A5A4A5A4A5A02FFC7FCEBF1FEEBF3FCEBF7F8EBFFFC8080143F496C7E496C7E01F87F
+EBF0076E7E6E7E816E7E157E3A7FFFC1FFF002C313F8B512E36C13C316F0252E80AD27>
+107 D<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C14F81E2E7CAD27>I<39
+7F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001
+C01300A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701F813E36C4801C313002920
+819F27>I<387FE07F39FFF1FFC001F713F090B5FC6C80000313C1EC01FCEBFE005B5BA2
+5BB03A7FFF83FFE0B500C713F0A36C018313E024207F9F27>I<EB1FE0EB7FF83801FFFE
+487F481480390FF03FC0391FC00FE0393F8007F0EB00034814F8007E1301A248EB00FCA7
+6C1301007E14F8A2007F1303393F8007F0A2391FE01FE0390FF03FC06CB512806C14006C
+5B38007FF8EB1FE01E207C9F27>I<387FE0FFD8FFF313C090B512F0816C800003EB81FE
+49C67E49EB3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEB
+FF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC387FFF80B57EA36C5B2331
+7F9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5FC39007FFE1F14F89138
+F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67EA36C5C22207E9F27>
+114 D<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC07806C90C7FCEA7F80
+13FC383FFFF06C13FC000713FF00011480D8000F13C09038003FE014070078EB03F000FC
+1301A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707FF01C207B9F27>I<
+133C137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415FE6D13FC1483EC
+FFF86D13F06D13E0010313C0010013001F297EA827>I<397FE01FF8486C487EA3007F13
+1F00031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87FE024207F9F27>
+I<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE00100035CA2EBF0030001
+5CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214FE6D5AA36D5AA26D
+5A22207E9F27>I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80001F00A36D5B00
+07143EA414F0EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8A2EBFF0F6C5CA3EB
+FE0790387C03E024207F9F27>I<393FFC1FFF486C5A168016006C487E3901F807E06C6C
+485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E143EEB3E3FEB7E
+1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C486C1380A22220
+7E9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07E000F800000313015D13F000
+01130301F85B1200A26D485A137CA290387E0F80133EA2011F90C7FC5CA2130F149E14BE
+130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F007F5B131FD87E7FC8FCEA
+7FFE6C5A5B6C5AEA07C022317E9F27>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmsl10 10.95 40
-/Fc 40 122 df<EAFFF0A20C027E8A0F>45 D<1408140C141C143CA2147C147E149EA2EB
-011EA21302801304A21308A20110138014071320A2EB7FFF90384007C0EB8003A2EA0100
-A21202EC01E01206001F130339FF801FFE1F207F9F22>65 D<0007B5FC3900F803C09038
-7801E0EC00F04913F8A515F03801E001EC03E015C0EC0F809038FFFE009038E00F803903
-C003C0EC01E015F0A21400A2485A1401A215E01403EC07C0390F000F80EC3E00B512F01D
-1F7E9E20>I<ECFE02903807018690381C004E0170133E49131E4848131C4848130C1207
-48C7FC5A121E003E1408003C1400127CA45AA4127815101520A27E1540001C14806CEB01
-006C13023803800C3800E030EB3FC01F217C9F21>I<0007B57E3900F801E09038780070
-81497F151E150E150FA348481480A6484814005DA3151E153E4848133C5DA25D4A5A4A5A
-260F000FC7FC143CB512F0211F7E9E23>I<0007B512FC3900F8007C0178131C150C5B15
-04A414043901E00800A31438EBFFF8EBE0383803C010A4EC00081510485AA21520A21560
-15C0380F00011407B612801E1F7E9E1F>I<0007B512F83900F800780178133815185B15
-08A53901E00800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D
-1F7E9E1E>I<3A07FF83FFC03A00F8007C000178133CA2495BA648485BA490B5FCEBE000
-4848485AA64848485AA64848485A01807F39FFF07FF8221F7E9E22>72
-D<3807FF803800F8001378A25BA6485AA6485AA6485AA648C7FC7FEAFFF0111F7E9E10>
-I<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC1402140848485A5C1460
-14F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E81140781140381380F
-00016D487E39FFF00FFE231F7E9E23>75 D<3807FFE0D800FCC7FC1378A25BA6485AA648
-5AA41580EC0100EA0780A25C14021406140E380F001E147CB512FC191F7E9E1C>I<D807
-F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83C0D801035BEB01E0
-A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A21401000C5C001E1300
-B47E221F7E9E22>78 D<EB01FCEB0E0790383801C090387000E0484813F048481378485A
-153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01F0007C14E01403
-003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F801F217C9F23>I<
-0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC01E0EC03C0EC0F
-00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807FFFE3900F80780
-90387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00EBFFF03803C038
-80141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078CC7EA01F020207E
-9E22>82 D<EB1F82EB7066EBC01E3801800EEA030048130C00061304120EA3000F1300A2
-7FEA07F013FF6C13C06C13E038003FF0EB03F813001478143CA200401338A31430006013
-70146000F013C038E8018038C60300EA81FC17217E9F19>I<003FB512F0383C07800030
-1430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383FFFE01C1F7A9E21
->I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A6485BA600705BA25C
-A200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFFF07FF81FF03B1F
-000FC007C0001E903907800380001FED01006C1502140F5EEC17C002135B142301805C00
-0713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C415F2EBC80015F4
-EA01F015F85B5D5B15605B000014402C207A9E2F>87 D<EA07F8EA0C0CEA1E061307121C
-1200A313FFEA07C7EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F87801414
-7D9317>97 D<1207123F120F7EA2120EA65A137CEA1D83381E0180001C13C0EB00E05A14
-F0A5387001E0A214C013031480EB0700EAE80EEACC38EA83E014207B9F19>I<13FEEA03
-83380E0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D
-9314>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA
-7002EA3004EA1C18EA07E011147D9314>101 D<EB07C0EB1C60EB30F01360EBE0E0EBC0
-001201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB
-3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FC
-A21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0381C0700EA07FC
-181F809417>I<EA01C0EA03E0A213C0EA0180C7FCA6EA0380121F12071203A2EA0700A6
-120EA65A121EEAFF800B1F7F9E0C>105 D<13E0120712011200A2485AA6485AEB81FCEB
-80F014C0EB81801400EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07
-C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A612
-0EA65A121EEAFF800B207F9F0C>I<390387C07C391F9861863907A072073903C03403EB
-80380007EB7807EB0070A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E93
-26>I<38038F80381F90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380
-001E13C038FF8FF014147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012
-F0A438E001E0A214C0130300F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3
-E03807EC383801F01C6C487E140F48487E1580A53903800F00A2140E141E141C5C380740
-70EB61C0011FC7FC90C8FCA3120EA4121EEAFFC0191D809319>I<EBFC2038038260EA07
-02381E01E0123C003813C0127812F0A438E00380A212F0A21307127038380F00EA1C37EA
-07C7EA0007A3130EA4131EEBFFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300
-EA078090C7FCA5120EA65A121EEAFFC011147E9312>I<EA01F9EA0607EA080312181301
-EA3802EA3C00121F13F0EA07FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA
-87E010147F9312>I<1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2
-EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4
-131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E
-01005B13025B12075BA25BEA039013A013E05B5B120190C7FC15147C9318>I<381FF0FF
-3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E134E1387EA0107
-380203801204380C01C0383C03E038FE07FC18147F9318>120 D<390FF83F803901E00E
-00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C13381318
-1310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I
+%DVIPSBitmapFont: Fc cmbx12 13.14 50
+/Fc 50 122 df<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0
+1010778F22>46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B200
+7FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC4881480101EBFF
+802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D7F00
+FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D17E0
+4B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131FEC3F
+804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC5A5A
+5A5A5A5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F14FC013F14FF90267FE0
+1F7F9026FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE817F486D80167FA3805C16
+FF7E91C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7FCED3FFC4AB45A49B512
+E0168016E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83A2701380A318C0EA07E0
+EA1FF8487E487EA2B5FCA31880A25E491600127F494A5A6C485D01E05B001F4A5BD80FFC
+495B2707FFC03F13C06C90B65AC64BC7FC013F14F8010714E09026007FFEC8FC32487BC6
+3D>I<EE07E0160FA2161F163F167F16FFA25D5D5DA25D5D5DA2157D15FDEC01F915F1EC
+03E11407EC0FC1EC1F811501143F147E14FC14F8EB01F01303EB07E014C0EB0F80131FEB
+3F00133E5B13FC485A485A5B1207485A485A90C7FC123E127E5AB912FCA5C80003EBE000
+AD023FB612FCA536487DC73D>I<D8038015E001E0140301FC143F9039FFE003FF91B612
+C017801700A25E5E16F05E5E93C7FC15FC15F001E790C8FC01E0C9FCAAEC1FFC01E1B512
+C001E714F001EF14FC9039FFE01FFFDA0007138001FC6D13C001F06D13E04915F0497F17
+F8C913FC167F17FEA417FFA3EA0FC0EA3FF0487EA2487EA317FEA34914FF6C4815FC5B01
+8015F86CC74813F07F6C6C4913E0D80FF04913C0D807FC011F13806CB46CB512006C90B5
+12FC6C5D013F14C0010F91C7FC010113F030487AC63D>I<ED7FF8913807FFFE021F6D7E
+027F80903A01FFF01FE0010790388003F04948486C7E49486D7ED93FF013074948130F01
+FF4A7E4849133F5C5A4890C7FCA25A705A48486E5A705A003F92C8FCA3485AA215209138
+07FFE0021F13FC00FF497F4A6D7EDAFC017F9026FDF0007F4A6D7ED9FFC06D7E4A6D7E83
+91C7FC8382491680A318C05BA3127FA6123FA27F001F1780A3000F4B1300A26C6C5DA26C
+6D495A6C6D5C6C6D495A6D6C48485A90263FFC075B6DB65A6D4AC7FC01035C010014F002
+0F90C8FC32487BC63D>I<121F7F7F13FE90B812E0A45A18C0188018005F5FA25F485E90
+C8EA07E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B5AC8485A4B5AA24BC8FC
+157EA25D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FFA3495BA45BA55BAA6D5B
+A26D90C9FCEB007C334B79C93D>I<EC1FFF49B512F0010714FC011F14FF90263FF00713
+C049C77F01FCEC3FF04848EC0FF848481407000782491403000F821601A2121F7FA27F13
+FE6D140302C05C14F002FC495A6C6D130FDAFF805B9238E01FE06C6E485A9238FCFF806C
+91B5C7FC6C15FC6C5D7F6D14FE6D806D15C06D81011F81017F81D9FFDF804813072603FE
+018048486C804848133F4848010F1480003F8049130148486D6C13C0161F824848140382
+A282A2177FA218807F127FEFFF007F6C6C4A5AA2D81FFC4A5A6C6CEC0FF86C6C6CEB3FF0
+6C9039F003FFE06C90B612806C6C92C7FC011F14FC010714E09026003FFEC8FC32487BC6
+3D>I<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0C7FCB0EA
+07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0103077AF22>58
+D<EE01F8A24C7EA34C7EA24C7EA34C7FA24C7FA34C7FA293B57EA34B8016F303038016E3
+16E103078016C0030F805E83031F814C7E4B81153E83037E81037C7F03FC815D83020182
+4B7F0203825D830207824B7F020F825D84021F8392B8FC4A83A34A83027CC8120F02FC83
+5C840101844A810103845C840107844A81010F845C85011F85496C82B600C091B712F0A5
+544D7CCC5D>65 D<B912F0F0FF8019F019FC19FFD8001F0180C780061F7F727F727F727F
+727FA2727FA2197F86A84F5AA2626062604E5B4E5B4E1380067F90C7FC943803FFFC92B7
+12F0198019F019FC0380C7383FFF80060F7F060313F0727F727F737E86851B80851BC0A2
+1BE0A48561A41BC0A2611B80611B0096B5FC4E5B4E5B060F5B067F5BBB12C097C7FC19FC
+19F04EC8FC4B4B7CCA57>I<93261FFF80EB01C00307B500F81303033F02FE13074AB7EA
+800F0207EEE01F021F903AFE007FF83F027F01E0903807FC7F91B5C73801FEFF010301FC
+EC007F4901F0814901C0150F4949814990C97E494882495A48498248197F5C48193F5C48
+191F5C48190FA2485BA21A075AA391CDFCA2B5FCAD7EA280F207C0A27EA36C7F1A0F6C1A
+80806C191F6E18006C61806C197E6C6D177C6D6C17FC6D6C4C5A6D6D4B5A6D6D4B5A6D01
+F0ED1FC06D01FC4B5A010001FF03FFC7FC6E01E0EB07FE021F01FEEB3FFC020790B612F0
+020116C0DA003F92C8FC030714F8DB001F13804A4D79CB59>I<B912F0F0FF8019F019FC
+19FFD8001F902680000114C0DD001F7F060713F806017F726C7E737E737F737F737F8587
+737F8587A2747EA38786A21C80A51CC0A586A462A51C80A51C00A26263A2631AFF636163
+614F5B634F5B073F90C7FC4F5A4F5A06035B061F5B4DB512C0BBC8FC19FC19F0198006F0
+C9FC524B7CCA5E>I<BB12C0A486D8000F01E0C77E18071801F0007F193F191F190F1907
+861903A31901A3EF0F80A2737EA497C7FC171FA2173F177F17FF160392B6FCA5EDE00316
+00177F173F171FA2050FEC0F80A3F21F00A494C8FC621A3EA21A7EA31AFE6219011903A2
+1907190FF13FF819FF1803183FBBFCA262A3494A7CC951>I<BBFCA41A80D8001F01C0C7
+FC181F18038484197F193F191F1AC0190FA31907A4171FF103E0A496C7FCA25FA25F5F5E
+160792B6FCA5EDC0071601828383A283A794C9FCB1B8FCA5434A7CC94D>I<B7D8FC01B7
+12FCA5D8001F01C0C8001FEBC000B3AA92B9FCA503C0C8121FB3AEB7D8FC01B712FCA556
+4B7BCA60>72 D<B712FEA5D8000FEBE000B3B3B3ABB712FEA5274B7DCA2E>I<B700F802
+7FB512F0A5D8001F01C0C9EBC00074C7FCF101FE4F5A4F5AF10FE04F5A4F5A4FC8FCF001
+FE4E5A4E5AF00FE04E5A4E5A4EC9FCEF01FE4D5A4D5AEF0FE04D5A4D5A4DCAFCEE01FE16
+034C7E4C7F5E4C7F93B57E03C18015C303C780DBCFE77FDBDFC37FEDFF8104017F4B6C80
+4B7F4B6D7F03E0814B6D7F8385717F717F83857180727F8486727F8486727F727F848672
+80737F8587737F87B700F8010FB612FCA5564B7CCA60>75 D<B8FCA5D8001F01C0C9FCB3
+B3A4193EA4197E197CA519FCA31801A2F003F8A21807180F181F183F187FEF01FF170717
+3FBA12F0A53F4B7BCA4A>I<B600E04DB612806F5FA26F5FA2D8001F09FCC7FC6FEF0F7F
+A2DABFFE171EA2DA9FFF173CA3028F6D1678A202876D16F0A202836DED01E0A302816DED
+03C0A202806DED0780A26F6CED0F00A36F6C151EA26F6C5DA26F6D5CA26F6D5CA36F6D49
+5AA26F6D495AA26F6D495AA3706C49C7FCA2706C131EA2706C5BA3706D5AA2706D5AA270
+EBE1E0A370EBF3C0A270EBFF80A27190C8FCA2715AA3715AA2715A497EB600F06D480103
+B71280A3715A715A694B7BCA74>I<B600E092B612FC8181A281D8001F6D9239001FE000
+6F705A82A28202BF7F029F7FA2028F7F02877F02837F8214810280806F7F6F7F83816F7F
+6F7F6F7F83816F80707F707F8482707F707F707FA2707F7014807113C019E0837113F071
+13F87113FC19FE837113FF71148F7213CF1AEF847213FF8484A284848485A2858585A285
+858585497EB600F8167F1A3F1A1F1A0FA2564B7BCA60>I<B9FC18F8F0FF8019E019F8D8
+000F9026C0000713FE9439007FFF80061F7F727F727F727F84868684A286A862A24E5BA2
+624E5B4E5B4E5B4E5B95B5C8FC050713FC92B712F0198006FCC9FC18FF9226C0003F13C0
+050713F0717F717F717F187F85727FA28486A786A71C3E86A28474137E72157C726D13FC
+B700FC6D9038FE01F872EBFF8373EBFFF0071F14E007031480CD383FFE00574C7CCA5C>
+82 D<DA7FFCEB01C00103B5EAC003011FECF00749ECFC0F90B7121F48D9E00F13BF4890
+C713FFD807FC141F4848804848140382484880177F485A173F171F12FFA2170F7FA21707
+7F7F7F6D92C7FC6D7E6C13F014FF15F86CECFF8016F86C15FF6C16C0836C826C826C826C
+82013F816D1680010716C01300020F15E01400030714F0ED007F160F16037013F882177F
+127800F8163FA3171FA27E18F0A27EA26CEE3FE07F18C001E0157F6DEDFF8001FC160001
+FF140302E0EB0FFED97FFEEB3FFC486CB612F0D8FC0F5DD8F803158048C66C49C7FC4801
+0313F0354D79CB44>I<003FBB12C0A5DA80019038FC001FD9FC001601D87FF09438007F
+E001C0183F49181F90C7170FA2007E1907A3007C1903A500FC1AF0481901A5C894C7FCB3
+B3A749B812FCA54C4A7CC955>I<B700F8023FB512F8A5D8001F01C0C9380FE000745AB3
+B3AD6D180F63811A1F6D96C7FC626D7F1A7E6D7F6D606E6C4B5A6E6CED07F06E6C4B5A6E
+01C0EC3FC06E01F049B45A020101FF011F90C8FC6E91B55A033F15F8030715E0030092C9
+FC040713F0554C7CCA5E>I<B700F84AB6FCA5D8001F01F0C93803FC006F705A6D4E5A6D
+6D4C5A816D4E5A6D6D4C5A826D4EC7FC6E6D5D70157E6E5F6E7F704A5A6E4C5A6E7F704A
+5A6E4C5A6E7F71495A6E4CC8FC6F7F71137E6F5D6F7F71485A6F4A5A6F13FC71485A6F4A
+5A6F13FFF09F806F02BFC9FC7013FF60705B8260705B8260B3A7037FB612FEA5584B7ECA
+5D>89 D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFF2703FC00077F486C6D7F
+486C6D7F6E7E83707EA3707E6C90C7FC6C5A6C5AC9FCA4ED1FFF021FB5FC49B6FC130F01
+3FEBC03F9038FFFE00000313F04813C04890C7FC485A485AA2485AA2485AA4167FA26D14
+FF007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038E07F076C9038FFFE03
+00014A7ED8003F9038F0007F0103018090C7FC37337CB13C>97 D<EB7FC0B5FCA512037E
+B3A2ED0FFF037F13F002C1B512FC02C714FF9126CFF80F7F9126FFC00113E092C76C7E02
+FC6E7E4A6E7E5C4A6E7E84831980A219C083A319E0AC19C0A25F1980A34D1300606E141F
+606E4A5A6E4A5A02BF4A5A91261F80035B9027FE0FF01F5B496CB548C7FC496C14F849C6
+14E0C8D80FFEC8FC3B4D7CCB44>I<91380FFF8091B512F8010314FF010F158090263FFE
+0013C0D97FF8EB1FE0D9FFE0EB3FF04849EB7FF8484913FF4890C7FC5A5B121F5B003FED
+7FF0EE3FE0007FED1FC093C7FC5BA212FFAC127F7FA2123FA26D153E121F6D157E6C167C
+6C6D14FC6C16F86C6D13036C01F0EB07F0D97FFCEB1FE06DB4EBFFC0010F90B512000103
+5C010014F0020F13802F337CB137>I<EF1FF0EE3FFFA51600177FB3A2EC0FFF91B512E0
+010314F8010F14FE013FEB01FF903A7FF8003FFFD9FFE0130F48497F48497F4890C77E48
+81485AA2485AA3127F5BA212FFAC127FA37F123FA2121F7F000F5D6C6C5C5E6C6D5B6C01
+E0497F6C6D017FEBFFE090393FFE03FE6DB512F801075C010114C09027001FFC00EBC000
+3B4D7CCB44>I<EC0FFF91B512F0010314FC010F14FF90263FFE077F90267FF0007F4948
+EB3FE04801806D7E48824890C76C7E4848140783485A003F6F7EA3485A701380A312FFA2
+90B8FCA401F8CAFCA5127FA27FA2123FA26C6CED0F80A2000F161F6C6C16006E5C6C6D14
+7E6C6D5C6C6D495AD97FFCEB07F0903A1FFF803FE06D90B55A010392C7FCD9007F13FC02
+0713C031337DB138>I<ED7FE0913807FFFC021F7F027F7F902601FFE0138049018113C0
+902607FE0113E049485A14F8131FEB3FF0A26F13C0EB7FE06F1380EE3E0093C7FCADB77E
+A526007FF0C8FCB3B3A2003FB512F8A52B4D7DCC26>I<DA7FFCEB0FF00103B538807FF8
+011F9138F1FFFC4991B512FE90267FF01F13F32701FFC007138348EB0001A248486DEBC1
+FC000FEEE0F849027F1300A2001F82A8000F5EA26D14FF00075E6C6C495BA26CD9C00790
+C7FC6C9038F01FFC4890B55A5ED803C314809026C07FFCC8FC000790CAFCA47FA27F13FC
+90B612FCEEFFC06C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13
+F8D83FF0140049153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3F
+F06C6CED7FE0D80FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15
+F001071580D9003F01F0C7FC37487DB03D>I<EB7FC0B5FCA512037EB3A2923801FFC003
+0F13F8033F13FE4B7F9126C1FE077F9126C3F0037F9138C7C001DACF8080150002DE7F02
+FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B4C7BCB44>I<13FCEA03FF487F487FA248
+7FA66C5BA26C5B6C90C7FCEA00FC90C8FCACEB7FC0B5FCA512037EB3B3B61280A5194D7B
+CC22>I<EB7FC0B5FCA512037EB3A393383FFFFEA5040390C7FC17FCEE0FF04C5A4C5A4C
+5A04FEC8FCED03FC4B5A4B5AED1FC0ED7F804BC9FC14C102C37F14CF02DF7F91B57E825C
+4A6C7E02F87F4A6C7E9138C01FFF81836F7F6F7F816F7F83707E163F707E83707F707F84
+B6D8803FEBFF80A5394C7CCB41>107 D<EB7FC0B5FCA512037EB3B3B3AAB61280A5194C
+7BCB22>I<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D010F804B6D6C4814E0
+DBFE079026C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F8806CDA8000D9F1E06D
+7E02CFC7EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5DA34A5DB3A9B6D8C0
+3FB5D8F00FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8033F13FE4B7F9126
+C1FE077F9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02FC81A25CA25CA35C
+B3A9B6D8C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103B6FC010F15C09026
+1FFE017F903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817804980000F17C048
+486E13E0A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F
+17E06D5C000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FF
+F0010FB612C0010392C7FCD9007F13F80207138036337DB13D>I<90397FC00FFFB5017F
+13F002C1B512FC02C714FF9126CFF80F7F9126FFC00313E0000391C77F6C01FC6E7E4A6E
+7E5C4A6E7E848319808319C0A47113E0AC4D13C0A319805FA219004D5A804D5A6E4A5A6E
+4A5A02FF495BDB80075B9126EFF01F5B02E7B548C7FC02E314F802E014E0DB0FFEC8FC92
+CAFCAFB612C0A53B467CB044>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E11380
+EC8F830003D99F0713C06C139E14BCA214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7
+B612E0A52A317CB032>114 D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0
+003F4848130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC0
+15F06C14FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F1401913800
+3FFE150F0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE0
+01FFEBFFC091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>I<14F8A61301
+A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3
+A6167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C13
+00EC0FFC26467EC430>I<D97FE0EC3FF0B5EC7FFFA5000315016C81B3AB5EA25EA25E7E
+6EEB0F7F017F021E7F6E017CEBFFE090393FFE01F86DB512F0010714E0010114C0902700
+3FFE00EBC0003B327BB044>I<B66C90B512C0A5000101E0C73807F0006E5D6C5F6E140F
+017F5E80171F013F93C7FC6E5C011F153E6E147E6D157C6F13FC6D5DEDC001A26D01E05B
+16036D5DEDF0076D5DEDF80F027F5CEDFC1F023F91C8FC15FE5E021F133EEDFF7E6E137C
+16FC6E5BA26E5BA36E5BA26E5BA26F5AA26FC9FCA23A317DAF41>I<B60081B500FC9038
+7FFFF0A500019026E000030180903803FC006E715A6C6F5E6E6F1303017F61A26E496D13
+07013F616E6F130F011F4A5EA26E6F131F6D4A93C7FCDD9FFC5B6DD9801F153E170F03C0
+6E137E6D023F157C93383E07FFDBE07E15FC6DDA7C035C03F015816D02FC5D4C7E03F815
+C3DA7FF95E9226FDF00013E7DA3FFF5E4C137F19FF6E5F4C7FA26E496D90C8FCA26E5E93
+C7120FA26E486E5AA202015E4B1403A26E486E5A54317EAF59>I<B6D88007B512C0A526
+007FFCC7387F8000013F037EC7FC6E14FE6D6C495A6D6D485A6D6D485A6D01E05B4C5A6D
+6D485A6DEBF83F6E6C48C8FC91383FFEFE6E6C5A5E6E5B6E5B806E7FA26E7F82824A7F5C
+4A80DA0FE77FDA1FC37FDA3F817F4AC67F147E4A6D7E49486D7E01036E7E49486D7F4948
+7F49488149486D7F017F6E7FB500F8011FEBFFF0A53C307EAF41>I<007FB500C090387F
+FFE0A5C601F0C73803F8006E5D017F5E6E1407013F5E6E140F011F5E6E141FA26D6D91C7
+FC5F6D153E6F137E6D157C6F13FC6D5DEDF0016D5DEDF803027F5C15FC1607DA3FFE5B16
+0F021F5CEDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E5BA26F5AA26F5AA26F5AA3
+93C9FC5D153E157E157CD81F8013FC486C5B387FE001D8FFF05B14035D14074A5A49485A
+007F49CAFCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B467EAF41>I
E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmti10 10.95 8
-/Fd 8 117 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
-12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
-0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
-D<127012F8A212F012E005057B840E>46 D<EB3C60EBE2703801C1E0EA0380EA07005A38
-0E01C0121EA3383C0380A4EB0700A2EA1C0F1317EA0C2EEA03CEEA000EA25BA21230EA78
-38485AEA60E0EA3F80141D7E9315>103 D<13C0EA01E0A213C0C7FCA7120E12131223EA
-4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C0B1F7C9E0E>105
-D<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB03840038
-1388A2EB0708EB031000701330383001C016147C931A>110 D<EA1C1EEA266138278380
-EA47871307EB0300008EC7FC120EA35AA45AA45A123011147C9313>114
-D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0EA07F8EA03FCEA003E130E1270
-EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<EA018013C0EA0380A4EA0700A2
-EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA3100121E0C1C7C9B0F>I
-E
+%DVIPSBitmapFont: Fd cmsl10 10.95 41
+/Fd 41 122 df<007FB5FCA2B512FEA418067C961E>45 D<17E016011603831607A2160F
+A2161F83163FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E15
+1E151C153C03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021F
+B6FC5CA20270C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2
+137CD801FE4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65
+D<013FB7FC18E018FC903B007FE00007FE6E48903801FF809438007FC05DF03FE0F01FF0
+A3027F16F892C8FCA54A16F04A153F19E0187F19C0F0FF8001014B13004A4A5A4D5AEF1F
+F04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0EF0FF0EF07FC717E010715014A8171
+1380A319C0130F5CA5011F4B13805C19005F601707013F4B5A4A4A5A4D5A4D5A017F9138
+01FF8001FF020F90C7FCB812FC17F094C8FC3D3E7DBD40>I<DCFFC01338030F01F01378
+037F01FC13F0913A01FF803F01913A07FC000781DA1FE0EB03C3DA7FC0EB01E74AC812FF
+4948ED7FE0D907FC153F495A4948151F495A4948150F494816C018074890C9FC485AA248
+5A000F1880491603121FA248481607A295C7FC485AA412FF5BA75BA2181C183C1838A27F
+007F1778187018F0003F5F6D150160001F16036C6C4B5A95C7FC6C6C5D6C6C151E6C6C5D
+6C6C15F86D6C495A6D6CEB07C0D91FF0EB1F80D907FE01FEC8FC0101B512F86D6C13E0DA
+07FEC9FC3D4276BF42>I<013FB7FC18E018F8903B007FF0000FFE6E48EB01FF9438007F
+C04B6E7E180F85727E727E147F4B6E7EA2727EA302FF178092C9FCA54918C05CA41A8013
+034A5DA41A0013074A5DA261A24E5A130F4A5E180F61181F61011F4C5A5C4E5A4EC7FC4D
+5A4D5A013F4B5A4A4A5AEF3FE0EF7F80017F4A48C8FC01FFEC1FFCB812F0178004FCC9FC
+423E7DBD45>I<013FB812F8A39026007FF0C7127F6E48140F18034B14011800A3197814
+7F4B1570A502FF147092C7FCA3190017F0495D4A1301A21607161F91B6FC495DA29138FC
+003F160F1607160301075D5CA219E0180119C0010FEC07004A90C712031980A218071900
+011F5E5C181EA2183E183C013F167C4A15FC4D5A1707017F151F01FF4AB45AB9FCA2603D
+3E7DBD3E>I<013FB812E0A3903A007FF000016E48EB003F180F4B14071803A31801147F
+4B15C0A514FF92C71270A395C7FC17F0495D5C160116031607161F49B65AA39138FC003F
+160F160701075D4A1303A5010F4AC8FC5C93C9FCA4131F5CA5133F5CA3137FEBFFF0B612
+F8A33B3E7DBD3B>I<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5A
+A24B5DA4180F147F4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA3
+18FF13074A93C7FCA45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A
+7EB6D8E01FB512FC6115C0483E7DBD44>72 D<011FB512FC5BA29039003FF8006E5AA25D
+A5143F5DA5147F5DA514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F
+497E007FB512F0A2B6FC263E7EBD21>I<013FB500F8010FB5FC4C5BA29026007FF0C700
+0313E06E486E130019FC4B15F04E5A4E5A4E5A061EC7FC027F5D4B5C4D5A4D5AEF07804D
+C8FC02FF141E92C7127C5FEE01E04C5A4C5A49021FC9FC4A5B5E4C7E5D03077F01035B91
+39FC1F3FE0153C4B6C7E15F09139FFE00FF84913C092380007FC5C4A6D7E5C707E130F4A
+6D7F84177F717EA2011F6F7E5C717EA2717EA2013F6F7E5C84A2017F83496C4A13E0B600
+E0017F13FFA24B90B6FC483E7DBD47>75 D<013FB512FEA25E9026007FF8C8FCEC3FE0A2
+5DA5147F5DA514FF92C9FCA55B5CA513035CA513075CA21838A21870130F5CA218E0A301
+1F15014A15C01703A21707EF0F80013F151F4A143F177FEFFF00017F140301FF143FB9FC
+5FA2353E7DBD39>I<90263FFFE0023FB5FC6F16FEA29026003FF8020313C0021F030013
+004A6C157C023B163C6F15381439810238167802787FDA707F157082153F82031F15F002
+F07FDAE00F5D8215078203031401010180DAC0015D82811780047F1303010315C04A013F
+5C17E0161F17F0040F1307010715F891C7000791C7FC17FC160317FE04015B4915FF010E
+6E130E188E177F18CEEF3FDE011E16FE011C6F5AA2170FA21707133C01386F5A133C017C
+150113FE2607FF801400B512FC18705C483E7DBD44>78 D<923803FF80031F13F09238FE
+01FE913903F0003FDA0FC0EB1FC0DA3F80EB07E0027EC76C7E49486E7E49488149486E7E
+4948157F495A013F17804948ED3FC049C9FCA24848EE1FE012035B000718F05B120FA248
+5A19F8123F5BA2127FA219F04848163FA5F07FE0A35BF0FFC0A219805F19007F4D5A127F
+4D5A60003F160F6D5E001F4C5A4D5A6C6C4B5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C
+4A5A017FEC1FC06D6C495AD90FE001FEC8FC903903F807F80100B512C0DA0FFCC9FC3D42
+76BF47>I<013FB612FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC018
+3F19E0F01FF0A2147F5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D
+5A4D5AEF0FF80103ED3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5C
+A5131F5CA5133F5CA3137F497EB612E0A25D3D3E7DBD3E>I<013FB612F017FF18E0903B
+007FF0003FF86E48EB07FCEF01FE4B6D7EF07F8019C0183F19E0147F4B15F0A502FFED7F
+E092C8FCA219C0F0FF80A2494B13004A5D4D5AEF0FF04D5AEF7F800103DA07FEC7FC91B6
+12F017809139FC0007E0EE03F8EE00FC0107814A147F717EA284A2130F5CA484011F157F
+5CA41902013F17075CA2F0F00F017F170E496C143FB600E0011F131C94380FF83C4B0107
+1378CA3801FFE09438003F8040407DBD43>82 D<9238FF80070207EBE00F021FEBF81E91
+387F00FE02FCEB1F3ED903F0EB0FFE49481307494813034AEB01FC49C7FC491400133E13
+7E177C491578A57F1770A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14F06D14FC01
+0380010080143F02031480DA003F13C015031500EE7FE0163F161FA2160F121CA3160716
+0F003C16C0A31780003E151F1700007E5D007F153E6D5C16FC01E0495AD87DF0495AD8FC
+FCEB0FC03AF87F803F8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF33>I<0007
+B912F0A33C0FFE000FF8003F01F0160F01C04A13034848160190C7FC121EF000E048141F
+5E1238A212781270153F5E5AA3C81600157F5EA515FF93C9FCA55C5DA514035DA514075D
+A5140F5DA3141FEC7FFC0003B7FCA33C3D76BC42>I<B600E090B512FC4B15F8A2000101
+C0C7000F13006C49EC03FCEF01F091C9FC60A317015A495EA417031203495EA417071207
+4993C7FCA45F120F49150EA4171E121F49151CA4173C123F491538A31778177017F05F00
+1F15015F16036D4A5A000F93C8FC5E6C6C141E6C6C5C000115F86C6C495A017FEB07C090
+393FC03F8090260FFFFEC9FC010313F89038007FC03E4073BD44>I<B6017FB5D88007B5
+12804A1A00A2000701C0010101E0C713F06C90C80180EC3FC06C48735A99C7FC057F150E
+1B1E6D191C6C1A3C1B3805FF15787214705E636EEB03BF017F4E5AEE073F505A040E7F05
+1F4AC8FC161C6E170E013F143862167804706D5BEEF00F04E05D90381FE00104C015F003
+035E0480140106F85B9226070007130302F05F010F010E150797C9FC5D190E4BEB03FC61
+6E5A01075F5D61DAF9C014FE05015BECFB8002FF6F5A7F92C75CA24A93CAFC835C606D5A
+605C604A15781870594074BD5D>87 D<EC7FC0903803FFF890380FC07E90383E003F496D
+7E01FF6D7E82A248140782A26C5A137890C7120FA25EA2EC03FF147F903807FF1FEB1FE0
+D97F805B3801FE00EA03F8485A4848133F485A003F5D49EC81C048C7FCA2157F48ED0380
+4814FFA2007F5B913903BF0700903880073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF8
+3A007FC003E02A2A7CA82D>97 D<EB3F80EA1FFFA3C6FC137FA291C9FCA55B5BA512015B
+A4EC07F80003EB3FFF9039F8F80FC09039FBE003E09039FF8001F891C77E5B4848147E49
+147F5B821780A2120F5B17C0A3167F001F16805BA4EEFF00123F5B4B5AA24B5A5E007F4A
+5AA24B5A6D495A4BC7FCD87CE0137E39F87001F839F03C07E039E00FFF80260003FCC8FC
+2A4077BE33>I<EC1FF0ECFFFE903903F01F8090390FC003C0D93F0013E0017E130F4913
+1F000115F04848EB3FE0485AA24848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90
+C9FCA96CEC0380150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F802600
+7FFEC7FCEB0FF0242A7AA828>I<EC3FE0903801FFF8903807E07E90380F801F90393F00
+0F80017E14C049EB07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FC
+A2D8FF80C8FC90C9FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B
+6C6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828>101 D<ED07F0ED3FFCEDFC1E91
+3803F03F4A48B4FC4A481380141FEC3F81DA7F0113008102FE137C93C7FCA213015CA513
+035CA50007B512F8A3260007F0C8FCA3130F5CA5131F5CA5133F5CA5137F91C9FCA55B5B
+A4EA03FF007F13FEB5FCA229407DBF1C>I<177C913907F803FE91393FFE0F8F9139FC0F
+9C3F903901F007F8903907E003E0D90FC013F0011F903801F80C02801400133FD97F007F
+A315035B495CA3017E495A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038
+E07F8091C9FC485AA47FA27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED8
+0F801300003FC8127F003E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0F
+C0D80FC0013FC7FC3903F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313
+017FA25CA513015CA513035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F380
+07E0ECF70002FE14F0495A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F
+91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478
+EB01FE130314FFA25B14FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA3
+14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A
+>I<147FEB3FFFA313017FA25CA513015CA513035CA501070103B5FC02F014FEA26F13F0
+6F1380EEFE00010F14F84A485AED03C04B5A031FC7FC153E011F13784A5AECC3E0ECC7F0
+ECCFF814FF497F14F9ECE1FE14C04A7E4A7E4980017E133F82151F82150F01FE80491307
+82A2000181486C49B4FCB5D8F03F13F04B13E0A2303F7EBE30>107
+D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A513
+1F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>I<9027
+07F007F8EB03FCD803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00FEBF0073E
+001FE38007E1C003F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14F84A5CA2
+4A5C011F020F14074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C74914C0A5
+49027F143F4992C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FEA347287D
+A74C>I<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E09038
+0FE70002EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F
+91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>I<EC0F
+F0ECFFFE903903F01F8090390FC007C049C66C7E013E6D7E01FC6D7E48488049147C0003
+157E485A000F157F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E5A6C4A5A7E4B
+5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE090383FFF80D90FF8
+C8FC292A7BA82D>I<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F8903A03FF
+E000FE6D49137F4B7F92C713804A15C04A141FA218E0A20103150F5C18F0A3171F010716
+E05CA3173F18C0130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE1FC06E495A
+D93FDC017EC7FC91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFCA45BA25BA3
+1201487EB512F8A3343A81A733>I<91390FE003C0DAFFFC1380903903F81E0790390FE0
+070F90391F80038FD97F0013DF01FE13014848903800FF00485A1207485A8248485C123F
+495CA2485AA2150112FF90C75BA41503A25EA37E15077F003F4A5A151F6C6C133F6C6C13
+7F000714FF3903F003CF3A00FC0F8FE090383FFE0FEB0FF090C7FC151F5EA5153F5EA415
+7F4B7E023F13FEA32A3A7AA730>I<903907F01F80D803FFEB7FE09138E1E1F09138E387
+F839001FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F
+5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA724>I<9138FF81C0010713E390
+381F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEB
+FF8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA2
+123C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FF
+FC38C01FE0222A7DA824>I<EB0380A4130791C7FCA25BA25BA2133EA2137E13FE120112
+07001FB512C0B6FCA2D801FCC7FCA312035BA512075BA5120F5BA41407001F130E13C0A4
+141E141C1380A26D5AA2000F5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01
+FE147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914F8A4150712
+0F4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE09138
+073FFF3803F01E3801FFF826003FE01380282977A733>I<B500C3B53803FFFCA204FE14
+F8290FFE003FE00013C0D807F86D48EB7F000003173E183C150F18386D5E0001141F705B
+153F4D5A15776D4B5A0000ECE7F04DC7FCEC01C3170E9038FF0383017F5D91380703F85F
+EC0E01021E5CD93F9C14F002BC6D5A02B813FDDAF8005B4A13FF5F6D5A94C8FC5C4A137E
+167C6DC7FC1678010E14383E2878A642>119 D<48B539C07FFFC0A33C000FFE003FF800
+6D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1F
+C7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F02707FECE01F0101
+80903803C00F49486C7ED90F007F491303017E80D801FE80D807FF497EB5D8803F13F8A3
+32277FA630>I<90B539E007FFF05E18E0902707FE000313006D48EB01FC705A5F01014A
+5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05EED81C015C19138
+1FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E14
+1C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80
+A630>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fe cmr8 8 26
-/Fe 26 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
-D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
-D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
-13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
-381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
-1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
-132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
-381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
-E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
-3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
-0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
-1303B5FC13177F9616>76 D<EAFFFE381C0380EB00C014601470A4146014C0EB0380381F
-FE00001CC7FCAAB47E14177F9618>80 D<EAFFFC381C0380EB00C014E01470A414E014C0
-EB0380381FFE00381C0780EB01C0EB00E0A514E1A2147238FF803C18177F961A>82
-D<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C
-130E13061280A3EAC004EAE008EAD810EA87E00F177E9614>I<387FFFF8386038180040
-1308A200801304A300001300AF3803FF8016177F9619>I<12FCA212C0B3AB12FCA20621
-7D980A>91 D<EA3FC0EA70601330EA20381200EA03F8EA1E3812301270EAE039A21379EA
-70FFEA1F1E100E7F8D12>97 D<EA07F0EA18381230EA7010EA600012E0A41260EA700812
-30EA1830EA07C00D0E7F8D10>99 D<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000
-A31260EA7008EA3010EA1830EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5
-EA1F801203AF1243EAE30012E7127C091D82960B>106 D<12F81238A8133E1338133013
-4013801239EA3FC0EA39E0123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1C
-EA3C0E1238AA38FE3F80110E7F8D14>110 D<EAF9F0EA3E1CEA380613077F1480A41400
-5B130EEA3E1CEA39F00038C7FCA512FE11147F8D14>112 D<EAF9E0EA3A70123CEA3820
-1300A9B4FC0C0E7F8D0E>114 D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA
-01E0EA8060A212C0EAE0C0EA9F000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A7
-1340A4EA1C80EA0F000A147F930E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D
-14>I E
+/Fe 26 118 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A
+5A126009157AAD14>39 D<B512C0A412047F9018>45 D<130C133C137CEA03FC12FFEAFC
+7C1200B3B113FE387FFFFEA2172C7AAB23>49 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419
+A2EC30FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2
+011FB57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0
+D80FF0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 D<B612FCEDFF803A03F8000FC00001
+EC03F06F7E6F7E82167E167FA6167E16FE5E4B5A4B5AED0FE0ED7F8090B6C7FC16E09039
+F80003F0ED01FC6F7E167F821780161F17C0A61780163F17005E16FEED03FC0003EC0FF0
+B712C04BC7FC2A2D7DAC32>I<DA1FF013C09138FFFE01903903F00F8390390F8001E301
+3FC71277017C143F4848141F4848140F48481407A248481403121F491401123F90C8FC48
+1500A300FE1600AB127F17C0A27E7F001F15016D1580120F6C6C1403EE07006C6C14066C
+6C140ED8007C5C013F147890390F8001E0903903F00FC0902600FFFEC7FCEC1FF02A2F7C
+AD33>I<B612F815FF3A03F8001FE00001EC03F0ED00F8167E82EE1F80160F17C0EE07E0
+A2EE03F0A217F81601A317FCAA17F8A3EE03F0A217E0160717C0160FEE1F80EE3F00167E
+5EED03F00003EC1FE0B7128003F8C7FC2E2D7DAC36>I<B712FEA23903F800010001EC00
+3E828282A282A3178016011518A293C7FCA31538157815F890B5FCA2EBF8001578153815
+18A21760A392C712C0A4160117801603A21607160F163F0003913801FF00B8FCA22B2D7E
+AC30>I<B712FCA23903F800030001EC007C163E161E160EA21606A3160716031518A216
+00A31538157815F890B5FCA2EBF800157815381518A592C7FCAB487EB512F8A2282D7EAC
+2E>I<B512F8A2D803FCC8FC6C5AB3A7160CA41618A41638A2167816F81501ED07F00003
+141FB7FCA2262D7EAC2C>76 D<B612FCEDFF803A03F8000FE00001EC03F0ED00F882167E
+167F821780A617005E167E5E5EED03F0ED0FE090B6128003FCC7FC01F8C9FCB2487EB512
+F0A2292D7EAC30>80 D<B612C015FC3903F8007F0001EC0FC06F7E6F7E6F7E82150082A5
+5E15015E4B5A4B5A4B5A037FC7FC90B512FC15F09038F800FC153E6F7E150F826F7EA582
+A5170316F815031707486C903801FC0EB539F000FE1CEE3FF8C9EA07E0302E7DAC34>82
+D<90383F80303901FFF0703807C07C390F000EF0001E13074813034813011400127000F0
+1470A315307EA26C1400127E127FEA3FE013FE381FFFE06C13FC6C13FF00011480D8003F
+13E013039038003FF0EC07F81401140015FC157C12C0153CA37EA215787E6C14706C14F0
+6CEB01E039F78003C039E3F00F0038E07FFE38C00FF01E2F7CAD27>I<007FB712F8A290
+39000FC003007C150000701638A200601618A200E0161CA248160CA5C71500B3A94A7E01
+1FB512E0A22E2D7EAC33>I<EAFFE0A3EAE000B3B3B3A7EAFFE0A30B4379B114>91
+D<13FF000713C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07FF137F3801
+FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007FEBEF8C391F
+83C7FC390FFF03F83901FC01E01F207D9E23>97 D<EB1FE0EB7FFC3801F01E3803E00739
+07C01F80EA0F80EA1F005A003EEB0F00007E90C7FCA2127C12FCA9127EA215C07E6C1301
+01801380380FC0033907E007003801F03E38007FF8EB1FC01A207E9E1F>99
+D<EB1F80EBFFF03803E0783807C03E380F801E381F001FEC0F80123E007E130715C0127C
+12FCA3B6FCA200FCC8FCA5127EA2003E14C0123F6C1301390F80038001C013003803E00F
+3801F03C38007FF8EB1FC01A207E9E1F>101 D<130FEB1F80EB3FC0A4EB1F80EB0F0090
+C7FCA8EB07C013FFA2130F1307B3AD1230127838FC0F80A21400485AEA783EEA3FF8EA07
+E0123C83AD16>106 D<EA07C012FFA2120F1207ADEC1FFEA2EC0FF0EC07C05D020EC7FC
+5C5C5C5CEBC3C013C7EBCFE0EBDFF013F9EBF0F8497EEBC07E143E80816E7E14076E7E81
+6E7E486C487E3AFFFE07FF80A2212E7EAD25>I<3807C0FE39FFC3FF809038C703E0390F
+DE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>110
+D<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC49137E49133E49133FED1F
+80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE07E09038C7FF
+80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>112 D<380781F838FF87FEEB8E
+3FEA0F9CEA07B813B0EBF01EEBE000A45BB0487EB5FCA2181E7E9D1C>114
+D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7EB41300EA7FF06CB4
+FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C133CA26C13
+7838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A21207121FB5
+12F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7FA81B>I<
+D807C013F800FF131FA2000F130100071300B21401A314033803E007EC0EFC3A01F81CFF
+C038007FF890391FE0F800221F7E9D27>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff cmsy9 9 2
-/Ff 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
-A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
-0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
+/Ff 2 106 df<EB0180EB03C01307A21480130FA2EB1F00A2131E133EA25BA2137813F8
+A2485AA25B1203A2485AA25B120FA248C7FCA2121E123EA25AA2127812F8A41278127CA2
+7EA2121E121FA26C7EA212077FA26C7EA212017FA26C7EA21378137CA27FA2131E131FA2
+EB0F80A2130714C0A21303EB0180124A79B71E>104 D<126012F07EA21278127CA27EA2
+121E121FA26C7EA212077FA26C7EA212017FA26C7EA21378137CA27FA2131E131FA2EB0F
+80A2130714C0A41480130FA2EB1F00A2131E133EA25BA2137813F8A2485AA25B1203A248
+5AA25B120FA248C7FCA2121E123EA25AA2127812F8A25A1260124A7CB71E>I
E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmsltt10 10.95 29
-/Fg 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
-769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
-C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
-7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
-120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
-4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
-380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
-78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
-07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
-A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
-1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
-EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
-A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
-B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
-5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
-1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
-D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
-00A2137FEA07FF121FEA3F813878038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
-14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
-38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
-A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
-5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
-0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
-FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
-7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
-3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
-B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
-EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
-EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
-D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
-13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
-0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
-EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
-FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
-12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
-7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
-FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
-0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
-7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
-E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
-E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
-D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
-EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
-F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
-78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
-E
+%DVIPSBitmapFont: Fg cmsltt10 10.95 33
+/Fg 33 122 df<137C13FE487E1480A214C0A3EA007F130F131F1480A3133F14005B137E
+13FE485A1203485AEA1FF0485AB45A5B90C7FC127C1238121D6BB730>39
+D<007FB612E0B712F016F8A316F06C15E02507769E30>45 D<EC07F8EC1FFEEC7FFF49B5
+12C04914E04914F090380FF81F90391FE00FF890383FC00790397F8003FC9038FF000149
+14FE48481300485A16FF4848147FA2485AA2485AA25B123FA348C8FCA500FE15FEA4ED01
+FCA3ED03F8A215076C15F0150F6C15E0151F6D14C0ED3F80003F147F6DEBFF004A5A381F
+E0036D485A390FFC1FF86CB55A6C5C6C14806C91C7FCEB7FFCEB0FE0283A78B830>48
+D<EC03C0EC07E0A2140F141FA2143FEC7FC014FF1303130F90B5FC5A48148014BFEBFE3F
+EA01F8C7FC147F1500A55C5CA513015CA513035CA513075CA5130F5CA2007FB512F8B612
+FCA46C14F81E3976B830>I<913903FC01E091391FFF81F0027F13E391B512F7010314FF
+5B49130790261FF80113E049487ED97FC0137F495A91C7123F485A484815C0A2485A5B12
+0F5B001FED1F80491500003F92C7FC5BA3127F90CAFCA45A5AA716F86C4A7EA26C14035E
+A26D1307003F5D6D130F001F4A5A6D133F6C6C495A6D495A2607FF0790C7FC6CEBFFFE6C
+5C6C5C6D13E0011F1380D907FCC8FC2C3A78B830>67 D<013FB512E04914FC90B67EEEFF
+806D15C07F902607F00013E0EE3FF0161FEE0FF81607010F15FC4A1303A2160117FEA201
+1F14005CA5133F5CA5017FEC01FC91C7FCA3EE03F8A25B49EC07F0A2160F17E0161F0001
+16C049143FEE7F80EEFF005D4B5A00034A5A49EB1FF8ED7FF0007FB65AB75A5E4BC7FC15
+F86C14C02F387EB730>I<013FB7FC49168090B812C0A27F7FD903F8C7EA3F80A4177F13
+074A150083171E94C7FCA2130F5CED01E04B7E821507131F91B55AA55B9138800FE0A46F
+5A017F90C9FC91CAFCA417F0494A7E491403A416071201495DA2003FB7FC5AB8FCA26C5E
+6C5E32387EB730>I<903B7FFF801FFFE090B56C4813F003E014F8A203C014F06D496C13
+E0903B07F00001FC00A41603130F4A5CA41607131F4A5CA4160F133F91B65AA55B91C7EA
+1FC0A4163F5B495DA4167F12014992C7FCA45E1203495CA23B7FFF801FFFE0B56C487FA4
+6C496C5B35387EB730>72 D<0203B512F04A14F8A46E14F091390001FC00A41503A25EA4
+1507A25EA4150FA25EA4151FA25EA4153FA25EA4157FA293C7FC123E127F5D6D5B38FF00
+014A5A6C13079038E03FF86CB55A5D6C5C000791C8FC6C13FC38007FE02D3979B730>74
+D<90387FFFF890B57EA46D5BD903F8C8FCA513075CA5130F5CA5131F5CA5133F5CA5137F
+91C9FCA4EE03C049EC07E049140FA4161F12014915C0A2007FB7FCB8FCA317806C16002B
+387DB730>76 D<D93FF8ECFFE0496C4913F0496C4913F8A2017F4A13F0013F16E0010F91
+380FFE0002DE147E02DF131FA2EE3EFE131F029FEB7EFC167C16FC16F8ED80F9013F1381
+021FEBF1F8158316E1EC0F8716C3137F017E018F5B1683159F160316079038FE07BE01FC
+01FE5B15FCA215F8160F0001EB03F09026F801E05B91C7FCA3161F1203495DA4163F1207
+4992C7FCA2D87FFC903803FFE0486C497FA46C486D5B35387EB730>I<1278127C12FEA2
+7EA27EA27FA2123F7FA2121F7FA2120FA27FA212077FA212037FA21201A27FA212007FA2
+7F80A2133FA280A2131F80A2130F80A2130780A21303A280A2130180A2130080A280A215
+80A2143F15C0A2141FA3140FEC07801A4771BE30>92 D<003FB612F05AB712F8A36C15F0
+7E25077C7D30>95 D<903803FF80011F13F0017F13FC90B57E4880488149C67F49133F48
+486D7E0003140F5BC65A90C77FA25EA2EC3FFF0107B5FC133F90B6FC1203485D48EBE01F
+381FFE00EA3FF0D87FC0133F5B48C75B5AA2157FA215FF6C4990C7FCEB8007267FE07F13
+FE90B7FC6C16806C14BF6C020F130000039038F803FEC601C0C8FC292A79A830>97
+D<EA3FF8487E487EA2127F123FEA01FCA512035BA4EC1FF00007EBFFFC01F313FF01F714
+8090B612C016E09138F03FF048EB800F9039FE0007F85B49EB03FC4913015B121F5B16FE
+1500A21501003F15FC5BA3150316F8127F1507ED0FF0A2ED1FE06DEB3FC000FF147F6DEB
+FF80D9F00313009038FC1FFE90B55A5D485C486C13C0D8781F90C7FC380007F8273977B7
+30>I<ED07FF4B13804B13C0A281819238003F80A4167FA21700A491387FC0FF903803FF
+F0010FEBFCFE4913FE017F13FF90B6FC48EBE07F48EB001F48486D5A4913074848130348
+5A5B485A495C127FA290C7FC15075A485DA4150FA25E151F6C143F7E157F6D13FF6C6C48
+5BEBE007261FF81F13FF6CB71280A26C14BF0001141F6CD9FC0F1300D91FE0C8FC2A397A
+B730>100 D<EC1FE0ECFFFC010313FF010F1480013F14C04914E09039FFF03FF048EB80
+0F3A03FE0007F8484813035B485A4848EB01FC5B123F5B127F90C7FC90B6FCA2B712F8A3
+16F048C9FCA37E7EED03C06DEB07E0003FEC0FF07F6C6CEB1FE06DEB7FC0390FFE03FF6C
+B612806C15006C14FC6C6C5B011F13E0010390C7FC262A79A830>I<EEFF80030713E003
+1F13F0157F92B512F85C4AEB07F0EC07FC03F813E091390FF001C04BC7FCA2141F5DA548
+B612FE48815AA36C5DC7D87F80C7FC92C8FCA55C5CA513015CA513035CA513075CA2007F
+B512FEB7FCA46C5C2D397CB830>I<913907F801FE913A3FFF0FFF804A13BF49B712C05B
+5B90260FFC0FEB1F8090271FF007F8130049486C6CC7FCECC001EB7F801400A25B5BA315
+034B5A7F6D495A9138803FE090383FE0FF49B55A90B65A93C8FC4814FC01F913F09038F8
+7F80000390CAFC5BA27F120190B512FCEDFF8016E04815F8488148813A1FF00007FFD83F
+C01300498048C86C7E007E151F12FE5AA2163F94C7FC5E5E6C4A5AD87F80EB07FC6D131F
+3A3FFC01FFF86CB612E06C5D6C92C8FC000114FC6C6C13F0010F90C9FC323E7EA730>I<
+15E0EC03F8140781A35D6E5A6E5A91C8FCA990B512C048805AA27E7EEB001F5DA5143F5D
+A5147F92C7FCA55C5CA513015CA2007FB61280B712C016E0A216C06C1580233979B830>
+105 D<163816FE150116FFA316FEED00FC16781600A991B512F04914F8A47FEC000716F0
+A4150FA216E0A4151FA216C0A4153FA21680A4157FA21600A45DA25DA414015DA414035D
+1407003C5C007E130FB4495A4A5A14FF90B55A92C7FC6C5B6C13F86C13E000071380284E
+7EB830>I<EB3FF8497E80A3133FEB00FCA513015CA5010390380FFFFE4A487F1880A218
+006F5B0107010013804A4890C7FCED03FC4B5AED1FF04B5A010FEB7F804A48C8FCECC3FE
+ECC7FCECCFF8ECDFFCEB1FFF814A7E4A7E02F87FECE03F49486C7E02807FEC000F6F7E82
+15034980017E13016F7E3B3FFFF80FFFF0486D487FB56C5AA26C497E6C496C5B31387FB7
+30>I<90383FFFF8497F81A37F90380001FCA514035DA514075DA5140F5DA5141F5DA514
+3F5DA5147F92C7FCA55C5CA2003FB612F04815F8B712FCA26C15F86C15F026387BB730>
+I<ED0FF03A01FFE07FFE4801F1B5FC4801F7148091B6FC6C16C06CECF03FD8000F903880
+1FE015004A130F14F8A24A131F494814C0A25CA3163F133F4A1480A4167F137F91C71300
+A45E5B495CA23B7FFFF81FFFF8B56C4813FC5DA2816C496C13F82E287FA730>110
+D<EC1FE0ECFFFC010313FF010F14804914E0137F9039FFE07FF0489038800FF83903FE00
+0749EB03FC48481301484814FE491300485A123F5B167F48C8FCA300FE15FEA4150116FC
+A26CEC03F8150716F06C6C130FED1FE06DEB3FC06C6C137F3A1FF001FF80D9FC0713006C
+B55A6C14F86C5C6C14C06C6C90C7FCEB0FF8282A79A830>I<91383FE00F903A01FFF81F
+800107EBFE3F011F13FF4914FF5B9038FFF03F48EB800F48496C1300D807FC7F48487F5B
+485A48487F5E5B127F90C8FC15015A485DA41503A25E6C1407150F6C141F7F6C6C133FED
+FFF0381FF001EBFC0F6CB6FC7E6C14EF6CEC8FE039007FFE0FEB0FF090C7FC151F5EA515
+3F5EA591381FFFFE4A7F5CA2806E5B293C7AA730>113 D<EE3FE03B01FFFC01FFF848D9
+FE0F13FC485C037F13FE6C91B5FC6C90B512E1D80001EC01FC15FC9238F000704B13005D
+5D4990C8FC5CA25CA25C13075CA5130F5CA5131F5CA2007FB512FCB67EA46C5C2F287DA7
+30>I<91387FF838903903FFFE7C011FEBFFFC5B5B90B6FC48EBC01F3903FC0007491303
+484814F85BA3ED01F06D90C7FCEA03FEEBFFF06CEBFF806C14F06D13FC011F13FF010714
+80D9007F13C0020113E0EC001F001FEC0FF06D1307003F1403A27FA21507486CEB0FE015
+1F6DEB3FC09039FC03FF8090B6FC1600B612FC00FC5C013F13E0267807FEC7FC262A79A8
+30>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00011401495CA4150312
+03495CA415071207495CA4150F120F495CA3151F153F001F147F4B5A000F5BD9F80F13FF
+90B712807EA26C149FC6D9FE0F1300D93FF0C8FC29287AA630>117
+D<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B03F00007F0006D5C150F
+00015D151F5E153F6D91C7FC5D0000147E15FE5D140101FE5BA290387E03F0A24A5AA24A
+5A137F4A5A133F4AC8FCA2147E14FE5C131F5CA25C6D5A2B2778A630>I<3B3FFFC01FFF
+E0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA7E00A35EA34B5AA34B5A143E14
+7F4A485A13E1A249495A158FEBC7EF9138CF9F8014DF13CF029F90C7FC15BFEBDF8FEC0F
+BEA201FE13FE5D13FCA25D496C5A3903E003E02D2779A630>I<903AFFFE07FFF0486D48
+13F84816FCA26C16F86C496C13F0903A07F001FC006D6C485A6D6C485A4B5A6D6C485A4B
+5ADA7F7FC7FC157EEC3FFE6E5A5D6E5A5DA24A7E143F4A7EA2ECFCFCEB01F8903803F07E
+903807E07F49487E011F8090383F801FD97F007F01FE6D7E263FFFC0B5FC4801E11480B5
+15C0A26C16806C01C014002E277DA630>I<90B53801FFFE4802837F481780A26C17006C
+02015B903A07E0001FC05F163F6E91C7FCA20103147EA25E804B5A13014B5AA26E485AA2
+0100495AA24B5AA2027E90C8FC5D153E157E157C143E5D143F5DA26E5AA25DA25DA2143F
+92C9FC5C147E14FE5C1301003C5B387E03F0EAFF07495A48485AEB7F80B5FC91CAFC13FC
+6C5AEA3FE0EA1F80313C7EA630>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmcsc10 10.95 12
-/Fh 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
-FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
-D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
-127812386C1310120C000713603803818038007E0015177E961B>99
-D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
-14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
-13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
-9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
-387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
-0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
-0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
-D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
-70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
-I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
-19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
-001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
-D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
-D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
-133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
-18177F961C>120 D E
+%DVIPSBitmapFont: Fh cmcsc10 10.95 18
+/Fh 18 121 df<EC01E0A24A7EA34A7EA34A7EA24A7E141CA2EC3CFFEC387FA24A6C7EA3
+4A6C7EA2010180ECC00FA249486C7EA349486C7EA24980010E1301010FB5FC4980A2011C
+C7FC49147FA20178810170143FA201F08149141F1201486C811207486CEC3FF8D8FFFE49
+B512C0A332317DB038>97 D<DA0FF81330DA7FFF13700103B5EAC0F090390FFC03F19039
+1FE000F9D97F80133F01FEC7121F4848140F48481407485A000F1503491401121F491400
+123F5B127F1770A248C9FC1700AA6C6C1570A3123F6D15F0121F6D15E0000F15016D15C0
+000715036C6C15806C6C14076C6CEC0F00D97F80133ED91FE05B90390FFC03F00103B55A
+D9007F1380DA0FF8C7FC2C317BAF36>99 D<B612FCEDFFC016F03A03FE000FF86C48EB01
+FEED007FEE3F80EE1FC0EE0FE0EE07F0160317F8160117FCA2EE00FEA417FFAA17FEA3EE
+01FCA3EE03F817F01607EE0FE017C0EE3F80EE7F00ED01FE486CEB0FFCB712F016C04BC7
+FC302F7CAE39>I<B8FCA33903FE00016C489038003F80161F160F1607A21603A317C0ED
+1C01A393C7FCA2153CA215FC90B5FCA3EBFC00153CA2151CA21770A392C712E0A41601A2
+EE03C0A21607160F161F486C14FFB81280A32C2F7CAE33>I<B712FEA33903FE00036C48
+EB007F828282A282A3EE0380A21538A293C7FCA31578A2EC01F890B5FCA3EBFC01EC0078
+A21538A592C8FCAA487EB512FCA3292F7CAE31>I<DA0FF81360DAFFFE13E00103EBFF81
+90390FF807E390393FC000F34948137F01FEC7123F4848141F4848140F48481407120F49
+1403485A003F1501A25B007F1500A348C9FC1700A8031FB5FCA26C7E9238001FF0EE0FE0
+123F7FA26C7E120F7F12076C7E6C7E6C6C141FD97F80133FD93FE0137B90390FFC03F101
+03B512E00100EC8060DA0FFCC7FC30317BAF3A>I<B5D8F81FB5FCA3D803FEC7EA7FC06C
+48EC3F80B190B7FCA301FCC7123FB3486CEC7FC0B5D8F81FB5FCA3302F7CAE38>I<B512
+F8A33803FE006C5AB3B3A3487EB512F8A3152F7DAE1B>I<90383FFFFCA39038007FC0EC
+3F80B3AD1218127EB4FCA3EC7F005A007C137E007813FE383C01F8381F03F03807FFC0C6
+48C7FC1E307CAE27>I<B512FCA3D803FEC8FC6C5AB3A7160EA4161CA4163CA2167C16FC
+1501ED03F8486C131FB7FCA3272F7CAE2F>108 D<D8FFFE923807FFF0A3D803FF92380F
+FC006C5FD9DF80141DA3D9CFC01439A2D9C7E01471A3D9C3F014E1A2D9C1F8EB01C1A3D9
+C0FCEB0381A2027EEB0701A36E130EA291381F801CA391380FC038A2913807E070A39138
+03F0E0A3913801F9C0A2913800FF80A3486CEB7F00487E486C013E497EB5008091B512F0
+A2151C3C2F7CAE44>I<D8FFFC49B5FC7F7F00019138001FF06EEB0FE06EEB07C0EE0380
+EBDFE0EBCFF013C780EBC3FC13C180EBC0FF801580EC3FC0EC1FE0A2EC0FF0EC07F8A2EC
+03FCEC01FE140015FFED7F83153F16C3ED1FE3ED0FF3A2ED07FBED03FFA28181A2167F16
+3F486C141F487E486C140FB56C1307A21603302F7CAE38>I<EC1FF891B5FC903907F00F
+E090390FC003F0013FC712FC017E147E49804848EC1F804848EC0FC04848EC07E0000F16
+F0491403001F16F8491401003F16FCA2007F16FE90C9FCA34816FFAA6C6CEC01FEA3003F
+16FCA26D1403001F16F86C6CEC07F0A26C6CEC0FE0000316C06C6CEC1F806C6CEC3F0001
+7E147E6D5C90390FC003F0903907F00FE00100B5C7FCEC1FF830317BAF3A>I<B612FCED
+FF8016E03A03FE000FF86C48EB03FCED00FE167FA2EE3F80A217C0A61780A2EE7F00A216
+FEED03F8ED0FF090B612C093C7FC01FCC9FCB2487EB512F8A32A2F7CAE33>I<90383FC0
+0C9038FFF81C0003EBFE3C390FE03FFC381F8007EB0003003E1301481300157C5A153CA3
+6C141CA27E6C14006C7E13E013FE383FFFE06C13FE6CEBFF806C14E0000114F06C6C13F8
+010F13FC1300EC07FE14011400157F153F12E0151FA37EA2151E6C143E6C143C6C147C6C
+14F89038C001F039FBF807E000F1B512C0D8E07F130038C007FC20317BAF2A>115
+D<007FB712F8A39039801FF0073A7E000FE00000781678A20070163800F0163CA348161C
+A5C71500B3A8EC3FF8011FB512F0A32E2E7CAD36>I<B5D8F801B5FCA3D803FEC7EA1FF0
+6C48EC0FE0EE07C0EE0380B3AB16076C6C1500A2017E5C017F141E6D141C6D6C133C6D6C
+5B6D6C485A903903FC07E00100B51280DA3FFEC7FCEC07F830307CAE38>I<3B7FFFF001
+FFFEA30003D9C00013E0C649EB7F80017F027EC7FC167C6D6C13786D6C5B6D6C5B15016D
+6C485AD903FC5B15076D6C48C8FC903800FF1EEC7F9C15BCEC3FF86E5AA2140F6E7E1403
+4A7E4A7EEC1EFF141C91383C7F804A6C7E14709138F01FE049486C7E49486C7E14800107
+6D7E49486C7E130E011E6D7E496E7E017C6E7E13FC000382D80FFEEC7FF8B549B512C0A3
+322F7DAE38>120 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 17.28 18
-/Fi 18 117 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB
-079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607A248
-5A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D15
-0E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7
-FCD9003F13F80203138031317CB03A>67 D<B812F0A3C6903880003FEE07F816031600A2
-1778A21738A3171C1507A31700A25D5D5D91B5FCA3EC803F818181A21707A392C7120EA4
-171EA2173CA2177C17FC16011607163FB812F8A330317EB035>69
-D<B67EA3000190C9FCB3A9EE0380A416071700A25EA35E5E5E5E4B5A150FB7FCA329317D
-B030>76 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780
-A3481603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<EBFFF0000313FF390F803F80
-9038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FCA414FF131FEBFFE33803FC03EA0FF0
-EA1FC0123FEA7F80A2EAFF00A31407A2387F800D393FC01DFE3A1FE078FFF03907FFE07F
-C6EB803F24207E9F27>97 D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039
-FF001F8049EB0FC04914E049EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB
-0FE06D14C001E7EB3F809039C3C0FE00903880FFF89038003FC027327EB12D>I<ED0FC0
-EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F484813
-3F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F
-3FFE38007FFEEB0FF027327DB12D>100 D<EB0FFC90387FFF803901FC0FC03903F003E0
-3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
-FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
-FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
-1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
-391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
-00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
-121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
-140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
-D8001F90C7FC242F7E9F28>I<EA03C0487E487E487EA46C5A6C5A6C5AC8FCA9EA01F812
-7FA31207B3A7B51280A311337DB217>105 D<EA01F812FFA3120F1207B3B3A6B512C0A3
-12327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC02C09038
-8300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3B500C3B5380F
-FFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1801FC03807F3
-0001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFFC03901FC07F0
-3903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300FF15E0A8007F
-15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF039007FFFC0D9
-07FCC7FC23207E9F28>I<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90
-C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F01001380143F0060131F00
-E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F8019207D9F20>115
-D<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A712
-01EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I E
+%DVIPSBitmapFont: Fi cmti10 10.95 8
+/Fi 8 117 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C
+137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218
+E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214
+3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101
+13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2
+49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12
+D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 D<EC03F0EC0FFC91383E
+0E1C9138FC077E903901F003FE1303903807E001D90FC013FCEB1F80A2EB3F004914F813
+7E01FE1303A2484814F0A2150712034914E0A2150F12074914C0A2151FA216805B153F12
+03ED7F006D5BA200015B0000495A9038F80F7E90387C1EFEEB1FF8903807E0FC90C7FC14
+01A25DA21403A25D001C1307007F5C48130F5D4A5A4AC7FC48137E00F85B387C03F0381F
+FFC0D803FEC8FC273B7CA72A>103 D<1478EB01FCA21303A314F8EB00E01400AD137C48
+B4FC38038F80EA0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F1400
+12005B137E13FE5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2
+EB81C01383148038078700EA03FEEA00F8163E79BC1C>105 D<D801F0EB3F803A07FC01
+FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C001C49137E003C13F012385C38783FC0
+12705C91C7FC00F015FE495CEA007EA2150101FE5C5BA2150300015D5B15075E0003020F
+13704914C0A2031F13F00007ED80E05B1681EE01C0120F49EC0380A2EE0700001FEC0F0E
+49EB07FC0007C7EA01F02C2979A733>110 D<D801F013FC3A07FC07FF803A0F3E0F03C0
+260E1F1C13E0001EEB380F001C1370003CEBE01F123814C0D8783F14C000709038800700
+92C7FC91C8FC12F05BEA007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B
+0007C9FC232979A726>114 D<EC7F80903801FFE0903807C0F890381F003C013E131C01
+3C131E017C133E49137E15FEA2000114FCA215706D13007FEBFFC014FC6C13FF15806D13
+C06D13E0010F13F01300140F14071403120C123F387F80011403D8FF0013E0A300FCEB07
+C000F0EB0F8012700078EB1F006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB
+01C0EB03F01307A25CA2130FA25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500
+D8007EC7FC13FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380
+A2003F133C1438EB0078147014F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B8
+1E>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmsy10 10.95 1
-/Fj 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
+%DVIPSBitmapFont: Fj cmbxti10 14.4 1
+/Fj 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
+EA0FE0121271912B>46 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmbx12 14.4 39
-/Fk 39 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED
-07F0150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216
-FFA616FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>66
-D<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484814
-7F4848143F4848141F485A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E
-6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE0090
-38007FF028297CA831>I<B712E0A33903FC001FED07F01501A215001670A3913801C078
-1638A302031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C163816
-7816F815011503151FB712F0A327297EA82C>69 D<B712C0A33903FC003FED0FE0150315
-01A21500A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FC
-A9B512FCA324297EA82A>I<B512F0A33803FC00B3B1B512F0A314297EA819>73
-D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F157F913801FF00
-B7FCA322297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99F
-C0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338
-A2027F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5A
-A26E5AD8FFFE0203B51280A2157039297DA840>I<B612E015FE6F7E3A03FC003FE0ED0F
-F06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC0
-6F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>82
-D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2
-14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB
-007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00
-00E15B38C01FF01C297CA825>I<B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F
-0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7FC2F297EA834
->85 D<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C
-604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F0
-9126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA291
-3AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141E
-A242297FA845>87 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4
-EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F38
-03FC031E1B7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F0
-9038F001F89038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C
-0FE090380FFF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F
-80EA3F00A248133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE0
-0E3803F83C3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807
-F03F380FC00F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E0
-7FFF3801FFE738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F13
-0048EB0F80127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003
-803907C007003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC
-7FEA03F813F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<90
-38FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E13
-3E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14
-C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC0
-1F806CB5120038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC0
-01E413E0EBE80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA
-1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>
-I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0
-903AC307E0C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFF
-FE3FFF8FFFE0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC807
-01D813F013D0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390F
-C01F80391F800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A239
-1F800FC0390FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFC1F0EBC7FC
-EBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
-D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
-13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
-C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
-AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
-07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
-0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
-FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
-EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
-FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
-803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
-00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
-3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
-EA74F0EA3FE0EA0F8020277F9A23>I E
+%DVIPSBitmapFont: Fk cmbx12 17.28 25
+/Fk 25 122 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007
+C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<F00FE04E7EA24E7EA34E7EA24E7EA34D
+7FA24D80A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E
+04038217F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E
+4C825E03016F7FA24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E
+037F707F93B9FCA292BA7EA24A85A203FCC912070203865D020771805D86020F864B8202
+1F865D87023F864B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E0
+92B812FEA66F647BE37A>65 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0
+131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F00201
+13C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B5488249028082
+4991CB7E49498449498449498449865D49498490B5FC484A84A2484A84A24891CD127FA2
+5A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA37E6E
+1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A6D
+6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0ED1F
+F8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC030117F86F
+6C16E004071680DC007F02F8C9FC050191CAFC626677E375>67 D<BD12FCA488A2D80001
+02C0C71201F1000F1A01F2007F1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3197E
+A3F40FC0A499C7FC19FEA31801A218031807181F18FF93B6FCA6EEC000181F1807180318
+01A21800A21D7E197EA21DFCA696C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE0
+1C7F1CFF63631B0F093F13C098B5FC1A0797B6FCBEFCA31D80A35F617AE06A>69
+D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5F30FC0A61B1FA31B3F1C80A21B7FA21BFF
+A262A262625013006262624FB5FC1907191F4EB6FCBDFC63A553627AE161>76
+D<B700C0083FB612F070627097B7FCA37061D800010DF8C7FC70F103EFA202FD6DF107CF
+A202FC6DF10F8FA36F6DF01F0FA26F6D183EA26F6D187CA26F6D18F8A36F6DEF01F0A26F
+6DEF03E0A26F6DEF07C0A26F6DEF0F80A3706DEE1F00A2706D163EA2706D5EA2706D5EA3
+706D4B5AA2706D4B5AA2706D4B5AA2706D4B5AA3716D4AC7FCA2716D143EA2716D5CA271
+6D5CA3716D495AA2716D495AA2716D495AA2716D495AA3726D48C8FCA272EBC03EA2726D
+5AA2726D5AA372EBF9F0A272EBFFE0A2725CA2725CA37390C9FCA2735AA2735A90381FFF
+C0B700F86E480207B812F0A3735AA2735A8C627AE199>I<001FBEFCA64849C79126E000
+0F148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C918
+1FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84
+D<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077F
+D9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090
+C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891
+C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903
+F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC13
+0F010302F001011400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3
+A8EFFFF8040FEBFF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFF
+C001077F93C76C7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A3
+7313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A
+5B4AB402075B4A6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC0
+0115F84A6C15E091C7001F91C8FC90C8000313E04F657BE35A>I<F17FF8050FB5FCA6EF
+000F8484B3A892380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF349
+9039F8000FFB011F01E00103B5FC494913004990C87E49488148498148834A815A485BA2
+485BA25AA3485BA4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5
+FC6D6C6C0103806D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CEC
+FE07021F14F8020314E09127003FFE00ECC0004F657BE35A>100
+D<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE037F499039F0007FFF
+011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A804884485B727E5A5C48
+717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F80
+6C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE001
+0301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0020092C8FC030713
+F041437CC14A>I<EE3FFC0307B51280033F14C04AB612F0020715F84A9038F03FFC4AEB
+807F913A7FFE00FFFE4A5A4B4813FF4913F05B4913E0A24913C0A27013FE4949EB7FFCEF
+3FF8EF1FF0EF07C094C7FCB0B812C0A6D8001F01C0C8FCB3B3B0007FB612FCA638657CE4
+31>I<F107F8DB7FFEEC3FFE020FB5D8F001B5FC027FDAFE03148049B7128F49DCDFFD13
+C0010FD9F00FEBFFC149D9800114014990C7EBFC0349486E6C7E4948EC3FFF48496E0181
+13800780130048F0C03E97C7FC48496E7FA34884A96C60A36C6D4A5BA26C60A26C6D4A90
+C8FC6D6C4A5A6D6C4A5A6D6D485BDBF00F5B4990B612C060D97C7F4AC9FCD9FC0F14F091
+26007FFECAFC92CCFC1201A47FA27F8014F091B77E18FE6CEFFFC019F06D17FC19FF6D84
+6D846D846D84013F8490BAFC0003854801E0C712014890C9000F7F484816014848EE007F
+4848717E8512FF5B85A56D5F007F616D173F003F616D177F6C6C4D5A6C01C003035B6C6D
+4B5B6C01F8031F5BC601FF92B5C7FC6D01F8011F5B011F90B712F8010717E0010094C8FC
+020F15F0DA003F01FCC9FC4A607CC151>I<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94
+B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB
+8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A65164
+7BE35A>I<EB0FE0EB3FF8497E48B5FCA24880A24880A76C5CA26C91C7FCA238007FFC6D
+5AEB0FE090C9FCAF903807FF80007FB5FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>I<
+903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108
+D<902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B6
+12F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026
+F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEE
+FDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB6
+12FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14FF4C8193267F
+E07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC
+8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<923807FFE092B6FC
+020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C001037F49496D
+7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13F0A24819F8A3
+48496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19
+E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13
+E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E048437CC151>
+I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F010114C09227
+BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A2
+7313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F
+92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7
+B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A>
+I<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F
+D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14
+E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0
+1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217
+1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC
+EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>115
+D<EC07E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FE
+B8FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D
+5B6DEBFF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FF
+C0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F
+6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F
+018002F0C7FC51427BC05A>I<007FB600C0017FB512F8A6D8001F01F8C70007EBF0006D
+040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D495A7049C8FC
+6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9FC5F6F5B816F
+7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B486C7F4B486C
+7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC86C7F49486F7F
+4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>120 D<B700C00103B512FCA6D8
+003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D6D5E193F6D95C7FC6F5D6D
+177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70130F6E5E70131FA26E6D495A
+A26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7F0A26FEBF7E017FF6F5CA2
+6F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA25F163F94CAFC5E167E16FE
+D807E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F4B5A6C4849CBFC15FEEBFC
+01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE04E5D7DBF55>I
+E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmtt10 10.95 77
-/Fl 77 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<1238127CA2127E123E120EA3121CA2123812F8
-12F012C0070E789B18>39 D<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA4
-5AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F012
-787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F0012
-1E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07
-F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A411147D9718>I<121C123E127E
-127F123F121F1207120E121E127C12F81260080C788518>44 D<387FFFC0B512E0A26C13
-C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F14005B
-131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A121E123E
-123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C073838
-0380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C0700EA1F
-1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12431203
-B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C
-0780383003C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFC
-EA03F0131C7E9B18>53 D<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13
-F05BA2485AA3485AA448C7FCA7131D7E9C18>55 D<EA03F8EA0FFE487E383E0F80EA3803
-387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0
-EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812
-FCA2127812301200A81230127812FCA2127812300614779318>58
-D<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C
-7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E9918>60
-D<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0130C7E9318>I<126012
-F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE0048
-5AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F
-38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A111C
-7D9B18>I<137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C1
-12E1EAE380A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC0
-0001138038007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
-A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>I<EA7FFC
-B5FC6C1380381C03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03EB00E014
-F01470A414F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07
-FFEA0F07EA1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA0F073807
-FF803803FE00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E013
-00A214F01470A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C7F9B18>
-I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A315
-1C7F9B18>I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0
-A3141C7E9B18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5
-EB0FF0131F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B
-18>I<387F07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8
-387F07F0151C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C
-7D9B18>I<387F07F038FF87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0
-121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0
-151C7F9B18>75 D<EAFFC0A3001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE
-03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C
-7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA213E1A313611371A213
-311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF8048
-13C0EA7803EA700100F013E0EAE000B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00
-131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF
-1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA0FFE383FFF804813C0EA7803EA7001
-00F013E0EAE000AE1370A2EAF079387039C0EA783FEA7FFF6C1380380FFE00EA000FEB07
-80A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE6C7E381C0F80130314C01301A31303
-1480130F381FFF005BA2EA1C0F7FEB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B
-18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FE
-C67EEB0F80EB03C01301EB00E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8
-131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF
-83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300EA007C171C809B18>I<38
-FE03F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3
-EA00F8A21370A9EA01FC487E6C5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D
-24779F18>91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F
-12017F12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<
-EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0B512E0A26C13C013047E7F18>
-95 D<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F03127812E0A3
-EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>97 D<127E12FE127E120EA5133EEB
-FF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
-38063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FCA25AA61270
-EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F131F1303A5
-EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA3C1F381FFF
-F0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F38380780EA7003A2
-38E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA01F812147D
-9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801C000AEEA7F
-FFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA
-1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0
-EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF8000
-0F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>I<EA0380EA
-07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338137CA31338
-1300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E
-12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB03
-8014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>I<
-38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E17148093
-18>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7
-FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF001
-007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF
-80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
-EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA38
-0FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB
-3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FC
-A9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1F
-FCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<48
-7E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F
-9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714
-809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038E
-A3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0A4381C01C013
-7113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF013
-9F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707
-000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F038
-0E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313
-F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB
-078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318>
-I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE013
-1F130713247E9F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005B
-ABEA03C012FF90C7FC127C13247E9F18>125 D<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA
-60C00F067C9B18>I E
+%DVIPSBitmapFont: Fl cmsy10 10.95 1
+/Fl 1 14 df<EE7FFE0307B512E0033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA
+3FE0EC07FCDA7F80EC01FED901FEC9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948
+707E49CB7E017E187E498449844848F00F8000031AC04918074848F003E0A24848F001F0
+A248CD12F8A2001E1A78003E1A7CA2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A
+0FAB6C1A1FA200781A1EA3007C1A3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6C
+F001F0A26C6CF003E0A26C6CF007C06D180F00011A806C6CF01F006D60017E187E6D606D
+6C4C5A6D6C4C5A6D6C4C5AD903F8EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0
+EC07FCDA0FFCEC3FF0913B03FFC003FFC0020090B6C8FC033F14FC030714E09226007FFE
+C9FC50557BC05B>13 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmr10 10.95 71
-/Fm 71 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<127012F812FCA212741204A312
-08A21210A212201240060E7C9F0D>39 D<13401380EA01005A12061204120C5AA2123812
-30A212701260A412E0AC1260A412701230A212381218A27E120412067E7EEA008013400A
-2E7BA112>I<7E12407E12307E1208120C7EA212077EA213801201A413C0AC1380A41203
-1300A25A1206A25A120812185A12205A5A0A2E7EA112>I<127012F012F8A212781208A3
-1210A31220A21240050E7C840D>44 D<EAFFF0A20C02808A0F>I<127012F8A312700505
-7C840D>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
-0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>48 D<13801203120F12F31203B3A6
-EA07C0EA7FFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF8
-03A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380
-EA3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12
-001400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F0138012
-40EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2
-EA010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17
->I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214
-C0A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137C
-EA0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406
-EAF807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D
-17>I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E0
-5B1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A312
-7038780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01
-C012C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E
-18487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E3380003
-80A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A3
-12701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A2
-12781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB
-2078A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14
-E039FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEB
-FFF0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E
-20>I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A
-1510127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E0
-0300EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F01570
-1578A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F
-7F9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF1301
-13001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780
-071401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE
-1A1F7F9E1E>I<90380FE02090387818609038E004E03803800238070001481300001E14
-60A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E380380
-023900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5
-FCEB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<39FF
-F007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E013
-41EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75
-D<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<B4
-6CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A29038
-0E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>
-I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03
-C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22
->I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14
-F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C0
-6C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80
-EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>82
-D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8
-6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180
-38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014
-3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00
-80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003
-FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213
-F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0
-7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003
-5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14
-4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39
-FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06
-EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89
-D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<12FFA21203B3B3A512FFA2082D80A10D
->93 D<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
+%DVIPSBitmapFont: Fm cmbx12 14.4 45
+/Fm 45 122 df<EA07F0EA1FF8487E487E7FB5FC1480A314C0A37EA27E7EEA07F3EA0003
+A213071480A3130F1400A25B131E133E133C137C5BA2485A485A485A485A48C7FC121E12
+0C1228769025>44 D<EA07F0487E487E487E487EB51280A76C13006C5A6C5A6C5A6C5A11
+11769025>46 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7
+FCB3B3B3A6007FB712FEA52F4E76CD43>49 D<EC3FFE0103B512E0010F14FC013F14FF90
+B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F48488001F016
+80486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E05EA218C0
+5E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48
+C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD91F801407
+49C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43>I<9138
+0FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803
+F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC16
+80C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA
+000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FE
+A2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F0
+4A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F15800103
+02FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167F
+A216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC
+1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A
+485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>I<D80380
+150ED807E0157E01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F016C093C8
+FC15F801E190C9FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FFF8077FDA
+C0017F49C713F8496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0A3EA0FE0
+487E487E487E487EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C4A5A6D5D
+6C6C4A5AD807F8495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14F8010314
+C09026007FF8C8FC344F79CD43>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7F
+A24C7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E08303
+0F814C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B80
+0207835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A
+820103854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD3
+66>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F070F7F73
+7F878587858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A060713F892B8
+12E097C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87737F747E1C
+807413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F5B19074F
+5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601FFFCEC01
+C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F
+01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982
+4949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0F
+A25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C
+006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE
+7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612
+C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FCF1FF801A
+F01AFCD8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E747F747F86
+747F747F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80A2631D00
+A3515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B512C0060F
+91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8C7000114C0
+F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01A497C7FC17
+01A317031707170F177F92B6FCA59238F8007F170F170717031701A317001B3EA31B7CA3
+95C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101FF1907191F
+0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF0007F191F19
+0785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A317031707170F17
+7F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A517CD055>
+I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203
+DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901
+F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA248
+49181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000
+A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF
+6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE
+001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B812C0A5D8000701F8
+C7FCB3B3B3B2B812C0A52A527CD132>73 D<B812F8A5D8000701F8CAFCB3B3A91A7CA41A
+FC1AF8A51901A31903A219071AF0190FA2191F193F197F19FF180360183F4DB5FCBB12E0
+A546527CD151>76 D<B600FC073FB512FE6F61A26F96B6FCA2D80007F5C00070EF01EFA2
+02EF6DEF03CFA202E76DEF078FA202E36DEF0F0FA202E16D171EA302E06D173CA26F6C17
+78A26F6C17F0A26F6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F00A26F6D151EA2
+6F6D5DA3706C5DA2706C5DA2706D495AA2706D495AA2706D495AA3706D49C7FCA2706D13
+1EA2706D5BA2716C5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A27101FFC8FCA371
+5BA2715BA2725AA2725AA2D93FFC6F5AB74DB712FEA2725AA2725A77527CD180>I<B600
+FC93B7FC8181A282D800076E9239003FFC0070EE07E08282A28202EF7F02E77F02E380A2
+02E18002E0806F7F6F7F6F7FA26F7F6F7F6F806F80A26F80707F707F707F707FA2707F70
+80708070808583717F717F717F717FA27114807114C07114E07213F07213F8A27213FC72
+13FE7213FF721487A27214C77214E77313F77313FF85A285858585A28586868686A28686
+8686A2D93FFC187FB7173F1B1F1B0F1B07755A60527CD169>I<B912F0F0FF8019F819FF
+1AC0D8000701F0C714F0060F7F060113FE727F737F737F85737F87A2737FA387A863A261
+6363A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092B8C9FC19F819E019F89226
+F0000313FE9439007FFF80727F727F727F727F727F8684A28684A787A71D1C75133EA385
+75137E73157C7513FC731401B86C6D9038F803F807039038FE07F07390B512E0736C14C0
+080F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B500F85B010702FF5B011FED
+C03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F
+001F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF
+15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F821303
+010082021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F8
+82A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C0
+4A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F0
+48D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87F
+F8060113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03
+A6C994C7FCB3B3AC91B912F0A553517BD05E>I<B800C00103B612FCA5D8000701F8CAEB
+F000F31F80B3B3B11B3FA26D97C7FC81637F1B7E6D6D17FE505A6E7E505A6E6D15076E4D
+5A6E6D4B5A6E6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0FFE6F9039F001FFF803
+0F90B65A030316C0DB007F92C9FC040F14F8DC007F13805E537CD167>I<B700FC017FB6
+00FE91B612F0A5D8003F01C0C8001F01E0C9EBF8006F71EE0FC06D7161876F1C1F6D7196
+C7FC6F8373606D1E3E6F836D7160876F1CFC6D666F4B801F016D66704A806E525A88704A
+17076E059F5F70021F80080F160F6E6570023F806EDC3E074CC8FC8870027E5F6EDC7C03
+163E7002FC804F6C167E6E1C7C700101814F6C16FC6E745B70010317016E4C6D5D060716
+C00580496D14036F63DDC00F16E04F6D14076F07F05BDDE01F170F6F92C76C5D1DF8DDF0
+3E6E141F6F98C9FCDDF87E16FC067C6E5C6FF1FE3EDDFCFC177E6F4A6E147C1DFFDDFFF0
+6E14FC6F62A24E816F62A270496F5BA24E817061A295C97E7061A270487090CAFCA37048
+705AA24D1601040360A27048705A84537DD18B>87 D<EC7FFF0107B512F0013F14FE90B7
+7E48D9E00F7F2703FE000113F0486C6D7F6EEB3FFC48826E131F83707FA36C496D7FA26C
+90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC01071487013FEBF0074913803901FFFC00
+4813F0485B485B485B4890C7FC5A5BA2485AA45EA26D5C007F151D163D6C6C02797F6C6D
+01F113F86C9026C003E1EBFFE06C9026F81FC014F06C90B5487EC6ED001F011F01FC0107
+13E0010101E090C8FC3C387CB641>97 D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F
+13FE033FEBFFC092B612F002F301017F913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C
+7F4A6E7F4A824A6E7FA2727EA285A28584A31A80AC1A00A44E5AA36118FF616E4A5BA26E
+4A5B6E4A5B6F495BDACFC04990C7FCDA87F0EB7FFC913A03FE03FFF849C6B612E0496D14
+8049011F01FCC8FC90C7000313C041547BD24B>I<913801FFF8021FEBFF8091B612F001
+0315FC010F9038C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A48
+5BA2486F138091C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17
+076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E0
+1FF0010390B55A01001580023F49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE
+001F1707B3A4913801FFE0021F13FC91B6FC010315C7010F9038E03FE74990380007F7D9
+7FFC0101B5FC49487F4849143F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA3
+6C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A
+0FFFC07FCF6D90B5128F0101ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<9138
+03FFC0023F13FC49B6FC010715C04901817F903A3FFC007FF849486D7E49486D7E484913
+0F48496D7E48178048497F18C0488191C7FC4817E0A248815B18F0A212FFA490B8FCA318
+E049CAFCA6127FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F
+6C6DEC3F806D6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A010015C0021F49C7
+FC020113F034387CB63D>I<ED3FFC0203B5FC020F14C0023F14E09139FFF81FF0499038
+C03FF849EB807F49903800FFFC495A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAE
+B712E0A526007FF8C8FCB3B3A7007FB512FEA52E547CD329>I<DA3FFF14FF0103B5D8F0
+0713C0010FDAFC1F13E0013FECFF7F90267FFC0F9038FF9FF09026FFE001EBF83F48496C
+13E0484990387FF01F4890C7D83FF813E0489338FC0FC0F0078048486E6CC7FCA2003F82
+A9001F5EA26C6C4A5AA26C5E6C6D495A6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF
+14FC01C314F02607C03F90C9FC91CBFCA2120FA37FA213F813FE90B7FC6C16F817FF18C0
+6C836C836C836D828448B9FC12074848C700031480D81FF8EC003F4848150748486F13C0
+83485A83A56D5D007F18806D5D003F18006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E0
+49485A6C01FE011F5B6C6CB71280010F03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543
+>I<EB3FF0B5FCA51203C6FCB3A4EE1FFC93B512C0030314F0030F8092391FE07FFC9239
+3F001FFE037C8003F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F8
+07B612C0A542537BD24B>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7
+FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I<EB3FF0B5FCA51201
+7EB3B3B3B1B612F0A51C537BD225>108 D<D93FF0D91FFCEDFFE0B591B500C0010713FE
+030302F0011F6D7E030F6E017F8092271FE07FFCD9FF037F922A3F001FFE01F8007F0003
+027C9126FF03E080C602F06DD90780137FDAF1E0038FC77FDAF3C0159EDAF7806D01BC14
+3F07FC8102FFC75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB512FEA567367BB570>
+I<D93FF0EB1FFCB591B512C0030314F0030F8092391FE07FFC92393F001FFE0003027C80
+C602F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542
+367BB54B>I<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000F
+FED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F
+7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D
+4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015
+C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE033FEBFFC092B6
+12F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F
+4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A
+5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480031F01FCC8FC0303
+13C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80033F13E04B13F0
+9238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC
+5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114
+D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980
+127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C
+816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00
+F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF
+C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414
+FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE
+07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203
+13802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35F
+A2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B512
+03010114FE6D6C13F8020701E091C7FC42377BB54B>I<B600F00107B5FCA5000101F8C8
+EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D5E6F13016D5E8117036D5E6F
+13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E023F147C6F13FC6E5C16816E
+5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A
+6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101F0C701F0C7381FF8006E027F
+ED07E06C715DA26E023F150F017F705DA26E181F013F4B6C92C7FC6E606D70143E94B5FC
+6F177E6D4A6E137C03C001F315FC6D715B160303E001E114016D020702E05B03F013C06D
+71485A160F03F8D9807F13076D05F85B93381F003F03FC160F027F4902FC5BDBFE3E011F
+131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F
+6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9FC5A367DB461>I<007FB500
+F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D
+91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9
+FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E
+020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E
+49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600F00107B5FCA5C601F8C8EA7F
+E06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D
+5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F147C6F13FCA26E6D5A16816EEB
+C1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E
+150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C13FC5D14015D14034A5A6C48
+485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC690CBFC404D7DB447>I
+E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmbx12 20.736 19
-/Fn 19 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B612F8A439007FF000B3B3AFB612F8A41D3B7DBA24>73
-D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F17FF5E04
-071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F92390007E000
-6E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F
-7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C318E37013
-F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F18071803A243
-3B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F717E717EA2
-84171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A29139F0007F
-F0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B600F89039
-3FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<903801FF
-F0010F13FE013FEBFF809039FF801FC03901FE003F4848EB7FE0485A485A121F4848EB3F
-C0ED1F80007FEC0F004990C7FCA212FFAA127F7FA2123F6D14F0121F6C6CEB01E012076C
-6CEB03C06CB4EB0F806C9038C03F0090383FFFFE010F13F8010113C024267DA52B>I<EE
-3F80ED3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348
-487F48487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801
-FE011F13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>I<49B47E01
-0F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15
-F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C
-13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013C025267DA5
-2C>I<EC1FF0ECFFFC010313FF90390FF83F8090381FE07F90393FC0FFC0495A13FFA248
-9038007F80ED3F00151E92C7FCAAB67EA4000190C8FCB3AC007F13FEA4223C7DBB1E>I<
-EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512
-F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108
-D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701607F0003497E01
-FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
-D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
-01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
-0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
-07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
-12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
-B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
-01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
-7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
-C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
-1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
-1FFCEA07F02E377EA533>121 D E
+%DVIPSBitmapFont: Fn cmtt10 10.95 77
+/Fn 77 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00
+A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14
+00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2
+02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F
+90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2
+29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE
+FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3
+6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01
+1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC
+A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C
+5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<EA07C0EA0FF0
+EA1FF8A213FCA213FE120F1207EA007EA513FE13FCA2120113F81203EA07F0120FEA1FE0
+127FEAFFC013801300127C12380F1D70B730>39 D<141E147F14FF5BEB03FEEB07FCEB0F
+F0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7
+FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0
+EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812FE7E7F6C7E6C
+7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC13
+01A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F
+1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14
+E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13
+C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048B512F0488000
+0F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD87E03EB0FC000
+38EC0380000091C7FCA66D5A6D5A23277AAE30>I<EA03E0EA0FF0EA1FF813FCEA3FFEA2
+13FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFFE0EA7F8013
+00123C1019708B30>44 D<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3F
+C0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507
+A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5A
+A24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FC
+A2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE
+30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB
+3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00
+FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6C
+EB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC
+273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF138F
+EA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C14F81F3977B830>I<000FB612
+804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0
+007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC15
+0716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C
+6C5C6C14E06C6C1380D90FFCC7FC25397BB730>53 D<127CB712FC16FEA416FC48C7EA0F
+F816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA2
+4AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>
+55 D<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF0
+49131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C
+6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE48
+802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C7120148
+15FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FF
+E06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<120FEA3FC0
+EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7F
+E0A2EA3FC0EA0F000C276EA630>58 D<16F01503ED07F8151F157FEDFFF014034A13C002
+1F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B000F1380
+4890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E9038
+0FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8151F1507ED
+03F01500252F7BB230>60 D<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612FE4881
+B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000
+037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C00201
+13F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801FFF0495B01
+0F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC12
+7E1278252F7BB230>I<EB1FFE90B512E0000314F8000F14FE4880481580267FF80313C0
+9038C0007F48C7121F16E0150FA3127E151F0018EC7FC0C812FF020313804A13004A5AEC
+1FF84A5AEC7FC04A5A92C7FC495AA2495A5CA213075CA86D5A90C9FCA8EB01C0EB07F0A2
+497EA36D5AA2EB01C023397AB830>I<EC1FE0ECFFF8010313FE010F7F4914804914C090
+397FF03FE09038FF800F4890380007F0D803FC13033A07F801FBF89038F007FF380FE01F
+4A13FCEA1FC0495A003FEBFF0F903800FE07903901FC03FE007FEBF801EA7E03ECF000A2
+EAFE0700FC49137EAA00FE6D13FED87E0314FCA2ECF801D87F0114F8003FEBFC03903900
+FE07F0903880FF0F001F90387FFFE06D6C13C0EA0FE06E13803A07F007FE009038F801F8
+6C6CC7127C6CB414FE6CEB800390387FF01F6DB512FC6D14F86D14E0010314C00100EBFE
+00EC1FF0273A7CB830>I<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1
+A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881A39038FC001F0003
+8149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<
+007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A
+1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3
+EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB7
+30>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F
+3903FE000F484813075B48481303A2484813015B123F491300A2127F90C8FC167C16005A
+5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0F
+F03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A
+7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E
+15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B
+5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<
+007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4
+157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB7128048
+16C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4
+153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F
+13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A491307121F
+5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03
+F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90
+B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D
+4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3
+A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I<
+007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730
+>I<D83FFF90380FFF80486D4813C0B56C5AA26C497E6C496C1380D803F0903803F8004B
+5A4B5A151F4B5A5E4BC7FC15FE14014A5A5D4A5A4A5A141F5D4A5A4AC8FC5C13F18101F3
+7F13F790B57E14EFECC7F01483EC03F8140101FE7F496C7E5B157F497F82151F82150F82
+6F7EA26F7E1501821500D83FFF903803FFC0486D4813E0B56C5AA26C497E6C496C13C02B
+387FB730>75 D<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003F
+B7FC5AB8FCA27E6C16802A387EB730>I<D83FF8ECFFE0486C4913F0486C4913F8A2007F
+16F06C6C4913E00007160001EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF0
+7EA201E1137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091
+C7FCADD83FFC903801FFE0486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730
+>I<D83FFC90381FFF80486C4913C0B54913E0A26C6D6C13C06C6E13800003913801F800
+EBF7C0A3EBF3E0A314F013F1A214F8A213F014FCA2147C147EA2143E143FA2141FA21581
+A2140F15C1A2140715E1A2140315F1A21401A215F91400A3157DA3153FEA3FFF481380B5
+EAC01FA26CEB800F6C496C5A2B387EB730>I<90383FFFE048B512FC000714FF48158048
+15C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A2
+6C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FC
+D8003F13E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED
+03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E1680
+4BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC00
+0714FF4815804815C04815E0EBF80001E0133F4848EB1FF049130F90C71207A44815F848
+1403B3A8147E14FE6CEBFF076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014E0
+EBF80F90B6FC6C15C06C15806C1500000114FCD8003F7FEB00016E7EA21680157F16C015
+3F16E0151F16F0150FED07E025467BB830>I<003FB57E4814F0B612FC15FF6C816C8126
+03F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90
+B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB
+4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390FF8
+03C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F
+5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114
+F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C14
+0312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8
+FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F80
+0FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007
+FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13
+016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1F
+F02F3980B730>I<D87FFF90381FFFC0B56C4813E0A46C496C13C0D803F8903803F8006D
+1307A26C6C495AA26C6C5C151F6D5CEC803F013F5CECC07F011F91C7FCA290380FE0FEA2
+14F101075BA2903803FBF8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA2
+6D5B6D5B2B387EB730>89 D<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C14
+0019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212
+017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7E
+A26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2
+ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A500
+7FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8A36C15F0A225077B7D30>
+95 D<EB7FF80003B5FC4814C04880488048809038E01FFC9038C003FE14016E7E6C487F
+6CC77FC8123FA491B5FC130F137F48B6FC12075A48EB803F383FF800EA7FE0138048C7FC
+5AA4157F7E6C6C13FFEBC003263FF01FEBFF8090B712C07E6C14EF000314876CD9FE0113
+8026003FE0C8FC2A2A7BA830>97 D<EA3FFC487E12FFA2127F123F1200AAEC03FE91381F
+FF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13804A137F4AEB3FC091C712
+1F17E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313
+009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC90380003FC2C3980B730>I<EC
+FFE0010713FC011F7F017F7F90B612804815C048EB807F3907FC003F485A485A49EB1F80
+4848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F
+6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B011F13F801075B0101138023
+2A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A
+5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140F
+A27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F7
+6D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F
+7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307
+127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D
+1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013
+C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5FC491387903803FE079138
+FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C15C0260007F0C7FCB3A900
+3FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC13FF90261FFF8713C04913
+DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7FCA2497F001F8149133FA5
+6D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0
+C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE0001FFE0180130148C8127F00
+7E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B5
+5A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730>I<EA3FFC487E12FFA212
+7F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA29138FE07FCECF8039138E0
+01FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC
+14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFF
+F8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>I<EC01
+C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F04814F8A47EEB0003B3B3A5EC
+07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C14005C6C5B000F13F0000313C0
+1D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14C017E0A217C06E14809139
+001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7EC
+E3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C
+4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B57EA47EEA0001B3B3A8007F
+B612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B5
+00CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A3
+01E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>I<EC
+01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C9038FE07FCC6EBF8039138E0
+01FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC
+14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014
+013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A3
+00FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE0
+6D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA8
+30>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C816CEBFE07C69038
+F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8160FA217E07F16
+1F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C6E13C0021F90C7
+FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I<49B413F8010FEBC1
+FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A49130312
+7F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC137F3907FF
+01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512F84A14FC
+A46E14F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C
+9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512
+FC4880B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B5129F000714FF5A5A5A387FF0
+07EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E00001
+14F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB
+3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830
+>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FC
+A5ECE003010FEB07F814F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF0
+26337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A4
+1501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF801
+0001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C1380
+3B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7
+FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E
+5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7
+EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147D
+A2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D
+277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE
+90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F8190
+3803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE
+6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3F
+FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C
+137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15
+FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA200
+0F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA6
+30>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E4913
+00C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E
+4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3FF09138
+03FFF8140F5C147F16F09138FFF00092C7FC495A5CB3A21303495A133F383FFFF0B55A5C
+91C8FC14C080003F7F38003FF813076D7E1301B3A2806D7E15F091387FFFF016F8141F80
+14039138003FF025477BBE30>I<EA7FE0EAFFFE6D7E8014F07EC66C7E13076D7E1301B3
+A2806D7E15E091387FFFE06E13F8801407141F5C4A13E09138FFE00092C7FC495A5CB3A2
+1303495A137F387FFFF0B5FC14C05C49C8FCEA7FE025477BBE30>125
+D<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713
+C0486C1380D87C0113003838007C1F0C78B730>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fo cmr10 10.95 80
+/Fo 80 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
+F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
+FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
+D<EC03FE91383FFF809138FE03E0903903F800F0D90FE013384948137C90393F8001FE90
+387F00035B5BA2485A6F5AED007093C7FCAA16FEB7FCA33901FC000315011500B3AC486C
+497EB5D8F87F13FCA32E407EBF33>I<EC03FF023F13EE9138FE01FEEB03F090380FE003
+EB1FC0EB3F80EB7F005B5B150148481300AEB7FCA3D801FCC7FCB3AE486C497EB5D8F87F
+13FCA32E407EBF33>I<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F13
+3F391E600F3000001300A401E01370491360A3000114E04913C000031301010013804813
+03000EEB070048130E0018130C0038131C003013181C1C7DBE2D>34
+D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A
+120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03801307EB0F00131E
+133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C
+12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F13
+3E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E121E7E
+6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A613
+0314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B
+485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<121EEA7F8012FF13C0A213E0A3
+127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C798919
+>44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>
+I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C157CA2157815F8A25D14
+01A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2147814F8A25C1301
+A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813F8A25B1201A25B12
+03A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A1260225B7B
+C32D>I<EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F4848EB0F80
+A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8A56C6CEB
+07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C5B90383F
+03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F137FEA07FFB5FC13
+9FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090B512E039
+03F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05AED3FE01270B4FC6D
+EB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16004A5A5D4A5A4A5A5D
+4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C5B4914E0485A485A
+485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90383FFF809038F80F
+E03901E003F839078001FCD80F007F000E6D7E001E1580D81F80137F486C14C07FA27F5B
+A2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038
+000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C123F487E487EA316
+E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC3903F80FF0C6B55A01
+3F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE1401A21403EC077E14
+06140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B120148
+5A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<
+00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE
+90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216
+E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C
+6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC
+2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E017EEB1FC049133F48
+48137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485AA214FE903887FF80
+39FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914C0A2ED1FE0A34914F0
+A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C137E6C6C5B6C6C48
+5A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238123C123F90B612FCA3
+16F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8127015F0
+4A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3130F5CA2
+131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090387C07E09038F001
+F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4123FA26DEB0F807F6C
+6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D
+13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F800313C048487E4890
+38007FE0003E143F007E141F007CEC0FF01507481403A31501A46C15E0007C1403A2007E
+15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB512E0011F1380D903
+FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E48486C7E4848
+137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A5127F153FA3
+6C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91FFE13E0EB
+07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485AEB800739
+1E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F
+80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779
+A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A412
+7F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>I<15
+074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA34AC67EA3
+020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249819138800001
+A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2017882170F13FC00
+034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 D<B712FCEEFF8017F0000190
+3980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318
+F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE
+01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC1707A218FEA718FC170FA2EF1FF8
+18F0173FEF7FE0EFFFC00403138048486C90380FFE00B85A17E094C7FC373E7DBD40>I<
+DB3FF01306912603FFFE130E020F9038FF801E913A3FF007E03E9139FF8000F8D903FEC7
+EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A91C812014848150012034848
+167E5B000F173EA24848161EA2123F5B180E127FA349160012FFAC127F7F180EA2123FA2
+7F001F171E181C6C7EA20007173C6D16386C6C1678000117706C6C16F06EEC01E06D6C15
+C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600FF8013F891393FF007F0020F
+B512C0020391C7FC9138003FF037427BBF42>I<B712FCEEFF8017E000019039C0001FF8
+6C6C48EB03FEEE00FF717E717EEF0FE084717E717E170184717EA21980187F19C0A3F03F
+E0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA24D5A6017074D5A4D5AEF7FC04DC7
+FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD45>I<B912E0A300019038C00001
+6C6C48EB001FEF0FF01703A217011700A31870A418381638A41800A21678A216F8150115
+0791B5FCA3EC8007150115001678A21638A2180EA3181C93C7FCA4183C1838A21878A318
+F8EF01F0A21707170F173F48486CEB03FFB912E0A3373E7DBD3E>I<B91280A300019038
+C000036C6C48EB007FEF1FC0170F1707A21703A31701A4EF00E0A21638A31800A31678A2
+16F81501150791B5FCA3EC8007150115001678A21638A693C8FCAF3801FFE0B612F0A333
+3E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038FF803C913A7FF00FC07C9139FF00
+01F0D903FC90380078FC4948143DD91FE0141F4948140F4948140701FF15034890C8FC49
+1501485A000716005B000F177C5B001F173CA2485AA2181C127FA25B95C7FC12FFAB041F
+B512F0127FA26D9139000FFE00EF03FC123FA27F121FA26C7EA212077F12036C7E7F6C7F
+6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C902600FF80EBF83C913A7FF007F01C
+021FB5EAC00C020391C8FC9138003FF03C427BBF47>I<B6D8C01FB512F8A3000101E0C7
+383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3A92601FFE0EC3FFCB6D8C01FB5
+12F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>
+I<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D87F005B
+007C130700385C003C495A6C495A6C495A2603E07EC7FC3800FFF8EB3FC026407CBD2F>
+I<B600C090387FFFFCA3000101E0C7000F138026007F80913807FE0018F818E0604D5A4D
+C7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E4B5A4B5AED07804B7E151F4B7E4B7E
+15FF913881EFF8913883C7FCEC878791388F03FE91389E01FF14BCDAF8007F4A6D7E5C4A
+6D7E4A6D7EA2707E707EA2707E707EA2707F717E84173F717E717EA2717E848419802601
+FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612F8A3000101E0C9FC38007F80B3B0EF
+0380A517071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>I<B500
+C093B512C0A300016D4BEBE000D8007F1880D977F0ED03BFA3D973F8ED073FA3D971FC15
+0EA2D970FE151CA3027F1538A36E6C1470A36E6C14E0A26E6CEB01C0A36E6CEB0380A36E
+6CEB0700A26E6C130EA36E6C5BA3037F5BA26F6C5AA36F6C5AA392380FE1C0A3923807F3
+80A26FB4C7FCA36F5AA213F8486C6D5AD807FFEFFFE0B500F80178017FEBFFC0A34A3E7C
+BD53>I<B56C91B512F88080D8007F030713006EEC01FC6E6E5A1870EB77FCEB73FEA2EB
+71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E6F7EA2
+6F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE01FF70
+13F0A2177F173FA2171F170FA2170701F81503487ED807FF1501B500F81400A218703D3E
+7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E0007E04948EB03F8D907F0EB00FE
+4948147F49486E7E49486E7E49C86C7E01FE6F7E00018349150300038348486F7EA24848
+6F7EA2001F188049167F003F18C0A3007F18E049163FA300FF18F0AC007F18E06D167FA4
+003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00035F6D150700015F6C6C4B5A6D5E
+6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03F8D9007FEB0FE091391FC03F8091
+2607FFFEC8FC9138007FE03C427BBF47>I<B712F8EEFF8017E000019039C0003FF86C6C
+48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A218F8A818F0A2EF3FE0A218C0EF7F
+80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9FCB3A73801FFE0B612C0A3353E7D
+BD3E>I<ED7FE0913807FFFE91391FC03F8091397F000FE0D901FCEB03F8D907F0EB00FE
+4948147F49486E7E49486E7E49C86C7E498248486F7E49150300038348486F7EA2000F83
+4981001F1880A24848EE7FC0A3007F18E0A249163FA200FF18F0AC007F18E0A26D167FA3
+003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F805B6C6C90393FE003FCED70706C6C
+496C485A6C6C48486C485A017FD9800E5BD93F819038061FC0D91FC19038073F80D90FE1
+4AC7FCD907F1EB03FE902601FDC013F8903A007EE007E091271FF03FC013180207B5FC91
+39007FE1E0DB0001143883711378A2706C13F0EFFF0318FFA27113E0A37113C071138071
+1300715AEF01F83D527BBF47>I<B712C016FCEEFF800001D9C00013E06C6C48EB1FF0EE
+07FCEE01FE707E84717EA2717EA284A760177F606017FF95C7FCEE01FCEE07F8EE1FE0EE
+FF8091B500FCC8FC16F091388001FCED003FEE1FC0707E707E83160383160183A383A484
+A4F0C004190EA28218E0057F131E2601FFE0161CB600C0EB3FF094381FF83805071370CA
+3801FFE09438003F803F407DBD43>I<D907FC131890391FFF8038017FEBE0783901FC03
+F83A03F0007CF8D807C0133F4848130F001F140748C7FC003E1403007E1401A2007C1400
+12FC1678A46C1538A27EA26C6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F06C14FC
+6C14FF6C15C0013F14E0010714F0EB007F020713F89138007FFC150FED07FE15031501ED
+00FFA200E0157FA3163FA27EA3163E7E167E6C157C6C15FC6C15F86D13016DEB03F06DEB
+07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8E00713F839C0007FC028427BBF33>
+I<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E1707127C007817
+03A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>I<B600
+C090B512F8A3000101E0C70007130026007F80EC01FC715A1870B3B3A4013F16F06E5DA2
+1701011F5E80010F15036E4A5A010793C7FC6D6C5C6D6C141E6D6C5C027F14F86E6C485A
+91390FF00FE00203B51280020049C8FCED1FF03D407DBD44>I<B691380FFFFEA3000301
+E0020113E06C01809138007F806CEF3F00017F163E181C6E153C013F1638A26E1578011F
+1670A26D6C5DA26E140101075EA26E140301035EA26D6C4AC7FCA2806D150EA26F131E02
+7F141CA26F133C023F1438A26E6C5BA26F13F0020F5CA2EDF80102075CA26E6C485AA2ED
+FE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED3FF8A36F5AA36F5AA26F5AA36F5A3F
+407EBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C90C849EC3FE0
+7148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A293
+3801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5AA2040EEB7F80
+6D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C047814F0DBE07001
+0F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01FE
+DA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA20378151E033815
+1C58407EBD5D>I<007FB5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D
+6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485A
+DA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E
+6F7EA28282153FED3BFEED71FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E02
+0E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E49
+6F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FEA33F3E7EBD44>I<B66C0103B5
+1280A3000101F0C8EBF8006C6C48ED3FC0725A013F041EC7FC6D7E606D6C15386D6C1578
+606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C5B170E6E6C131E171C6E6C5B6E6C13
+7817706E6C13F06F5B6E13016EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE5E150F6F5AB3
+A4ED1FFC020FB512FCA3413E7FBD44>I<003FB712F8A391C7EA1FF013F801E0EC3FE001
+80EC7FC090C8FC003EEDFF80A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A
+4B5AA2C8485A4A90C7FCA24A5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A
+4948141CA2495A495AA2495A495A173C495AA24890C8FC485A1778485A484815F8A24848
+140116034848140F4848143FED01FFB8FCA32E3E7BBD38>I<EAFFFCA4EAF000B3B3B3B3
+ABEAFFFCA40E5B77C319>I<486C13C00003130101001380481303000EEB070048130E00
+18130C0038131C003013180070133800601330A300E01370481360A400CFEB678039FFC0
+7FE001E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D>I<EAFFFCA4
+EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>I<EA0180120313005A120E5A121812381230
+12701260A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA0F000B1C7ABE19>96
+D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C
+5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485A
+A248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C
+0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA3120712031201B1EC03
+FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91C77E49158049141F17
+C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE
+9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<
+49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B121FA248
+48EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C1307
+6C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828
+>I<ED01FC15FFA3150715031501B114FF010713E190381F80F990387E003D49131FD803
+F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F
+14037F000714076C6C497E6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE
+01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C7E4848137E
+48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FC
+A67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90
+381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E0
+7E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE48
+7E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038
+F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00
+075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA2
+7F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14004815
+7E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017F
+C7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE9138
+07FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3
+A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8
+FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB
+03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14
+FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC
+12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C0
+4A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E
+7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3
+120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC0
+0313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C06D487F
+000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F8
+7FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091387803F0
+00079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8
+F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F4848EB0F
+804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C
+15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D800
+7EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381F
+FF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC0
+17E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001
+F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733
+>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848EB0FFC
+150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C13
+0F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512
+F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB
+1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901
+FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E6D1300
+EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF8
+00E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F0038E0
+FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001FB512C0
+B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700EB07FE
+EB01F81B397EB723>I<D801FC14FE00FF147FA3000714030003140100011400B3A51501
+A31503120015076DEB06FF017E010E13806D4913FC90381FC078903807FFE00100903880
+FE002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC5E00015D7F00005D
+A26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D
+6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630
+>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C4817006D010F141E
+00016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC0
+4A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F9
+148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A1303027E5CA2027C130102
+3C5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F00
+13E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF
+6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F01
+1E6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539
+E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA2017F495AA2EC800301
+3F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001
+005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A2147800181370127EB45B
+A2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA630>I<001FB61280
+A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FC
+C6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B4848130712074914
+00485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I<BE12C0A25A0280
+985B>124 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fp cmbx12 20.736 19
+/Fp 19 122 df<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14074CB96C
+130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C09039003FFF
+814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A02F8834A
+02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A85495C8A4991
+CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2795A489B
+C9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80A36C80A2
+7E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F05F6E806E
+02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F138703039226FF
+8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4CC7120105
+0304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71
+D<BA12F8A8C7001F02C0C7FCB3B3B3B3B3ACBA12F8A83D767BF548>73
+D<BBFCA8C7003F0280CCFCB3B3B3A9F507F8A41D0F1EF0A61D1FA31EE01D3FA31D7FA31D
+FFA25213C0A26464A26464646499B5FC09031480631B1F1B7F0803B6FC1A7FBFFCA31E00
+A565767AF574>76 D<B800C00507B812C083838383A28383C7003F6F93C7001F01F0C7FC
+72060190C8FC84A284848403EF8015E703E3808503E18103E08170808270808570807080
+708182867081718071808371808671807181718183728087728072807280848772817281
+72818573808873807380738085738189738174807480868974807480741580867415C01E
+E07514F07514F87514FC877514FE1EFF7515817515C1877614E11FF17614F97614FD7691
+B5FC8888A28888898989A289898989A2898A8A8A8AA28A8A8A8A8B903803FFFEB800F885
+8B8B8BA28B8B795A8A767AF597>78 D<BC7E1BFF1CF01CFF1DC01DF81DFE777EC7003F91
+C8000715E0E0003F80090714FC090180756C7F7680768076807680A276808B888BA37680
+A38CAA9DC8FCA3525CA267A2525C676467525C525C5291C9FC99B512FC515C090F5C097F
+14C0080FB6CAFC94B912FC1DE09ACBFC1CF81CFE767E94C8003F14E0080780080114FC74
+6C7F757F7580758075807580A275808A87A28A888AA78BA78BA779147E22FFA288A28B76
+5E22FE76802103766E14FCBA00C06E6E1307766EEB0FF876ED801F779138E07FF00B1F91
+B512E00B0716C00B011680E3003FECFE00D1000714F8E4000F13E088787AF590>82
+D<BA00E0030FB8FCA8C7003F0280CC003FEBC000E503FCC7FCB3B3B3B3A46E1C0768A283
+6E1C0F68A26E1C1F7162A26E1C3F714F5A806E525A71606F6D97C8FC6F505A7118076F6D
+4E5A6F6EEF3FF86F6E4D5A6F6EEE01FF6F02F84C5B6F02FE041F5B043F6D6C037F90C9FC
+7002F0913807FFFE0407DAFF8090B55A040192B712F07061051F188005074DCAFC050017
+F0061F16C0060103FCCBFCDE000391CCFC88787AF595>85 D<92383FFFF80207B612E002
+7F15FC49B87E010717E0011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D
+806F6D80727F486E6E7F8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E0
+90CAFCA70507B6FC041FB7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800
+010F14C04991C7FC017F13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC
+5CA360A36E5DA26C5F6E5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02
+E090263FE07F14FE00019139FC03FFC06C91B6487E013F4B487E010F4B1307010303F013
+01D9003F0280D9003F13FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E13
+1F7FB3ADF0FFFC050FEBFFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226
+FDFFF001077F92B500C001018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93
+C915804B7014C0A27414E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098
+B5FC1DE0A25014C0A26F1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B5
+5A9226C3FF8001035C038101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C0
+4A010393C8FC4A010015F84A023F14C090C9000301F0C9FC5F797AF76C>I<93383FFFF0
+0307B612C0033F15F84AB712FE0207707E021F17E0027F8391B526FC001F7F010302C001
+037F4991C7487F49495C495B4901F04A7F5B90B55A485CA2485C4891C8FCA248715B5C48
+715B725B4A6F5B489438007FC0071FC7FC96C8FC5AA25CA3B5FCAF7E80A47E80A27E806C
+F11F80F23FC06C6E167FA26C6EEEFF80816C606C6E17006D6D4B5A6D6D15076D6D4B5A6D
+6D6C4A5A6D02E0EC7FF06D02F849485A01009126FF801F5B6E91B6C7FC021F5E020716F8
+020116E06E6C1580030702FCC8FCDB003F13804A507ACE56>I<97380FFFE00607B6FCA8
+F00003190086B3AD93383FFF800307B512F8033F14FF4AB712C0020716F0021F16FC027F
+9039FE007FFE91B500F0EB0FFF01030280010190B5FC4949C87E49498149498149498149
+498190B548814884484A8192CAFC5AA2485BA25A5C5AA35A5CA4B5FCAF7EA4807EA37EA2
+807EA26C7F616C6E5D6C606C80616D6D5D6D6D5D6D6D92B67E6D6D4A15FC010301FF0207
+EDFFFE6D02C0EB3FFE6D6C9039FC01FFF86E90B65A020F16C002031600DA007F14FC030F
+14E09226007FFEC749C7FC5F797AF76C>I<93387FFF80030FB512FC037FECFF804AB712
+E0020716F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E04901FC020F7F4949
+6E7F49498049496E7F49496E7F90B55A48727E92C914804884485B1BC048841BE0485BA2
+7313F05AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA3807EA47E806CF103
+F0F207F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B1380
+6D6D4B13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A02
+0F178002034CC7FC020016F8031F15E0030392C8FCDB000F13E04D507BCE58>I<EF7FFE
+040FB512C093B612F0030715FC031F814B8192B5D8F01F13800203DA803F13C04A9026FC
+007F13E04A4990B5FC4A5B4A494814F04A13C091B51280A2491400A2495BA27114E05B4B
+6E13C0721380721300F007FC95C8FCB3B912C0A8D8000749CAFCB3B3B3A7007FB712FCA8
+44797AF83B>I<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880A76C5CA26C5C
+A26D5B6D5B6D5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C67E131F7FB3B3
+B3A5B81280A8297979F835>105 D<903801FFFCB6FCA8C67E131F7FB3B3B3B3B3ABB812
+C0A82A7879F735>108 D<902601FFF891380FFFE0B692B512FE05036E7E050F15E0053F
+15F84D81932701FFF01F7F4CD900077FDC07FC6D80C66CDA0FF06D80011FDA1FC07F6D4A
+48824CC8FC047E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293C9FCA45DB3B3A6B8D8E0
+03B81280A8614E79CD6C>110 D<902601FFF8EB07FEB691383FFFC094B512F00403804C
+14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9
+FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA2
+5DA65DB3B3A2B812F8A8434E7ACD4F>114 D<912603FFFCEB0780027F9039FFE00FC001
+03B6EAF83F010FEDFEFF013F92B5FC49EB000F2601FFF01300480180143F4890C8120F48
+48814848814981123F83485A187FA212FF6D163FA37F7F6DEE1F8002C092C7FC14F014FE
+ECFFF06CECFF8016FEEEFFE06C16FC6C16FF18C06C836C17F86C836C836C83013F17806D
+17C0010717E0010117F0EB003F020716F8EC001F030015FC1607EE007F051F13FE170700
+7E82B482836D167FA2183F7F181FA27F19FC7FA26D163F6D17F86D167F19F06D16FF6E4A
+13E002E04A13C06E4A138002FE023F1300913AFFC003FFFE01E790B65A01C316F0018016
+C026FE003F92C7FC48010714F80070D9007F90C8FC3F507ACE4C>I<15FFA75CA55CA45C
+A25CA25CA25CA25C91B5FCA25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FCB3B3A3F0
+1FE0AE183F7014C07F187F7014806D16FF826D4B13006E6D485AEEFE0F6E90B55A020F5D
+6E5D020115C06E6C5C031F49C7FC030113F03B6E7CEC4B>I<B892B612F8A8D8001F49C9
+0003EBF0006D6D04001380A26D6E94C7FC626D6E5E1A03A26D6E4B5AA26D6E4B5AA26E6D
+5E1A1F6E6D5E1A3F6E6070157FA26E6D4B5AA26E6E4990C8FCA26E6E5C19036E6E5C1907
+A26E6E495AA26F6D495AA26F6D5C193F6F6D5C197F6F5E7113FFA26F028190C9FCA26FEC
+C3FEA26FECE3FC18E76FECF7F818FFA2705CA2705CA2705CA2705CA37091CAFCA2705BA2
+705BA2705BA2715AA3715AA24D5AA26017FF95CBFC5EA24C5AEA03F8D80FFE4A5A487E48
+6D495A487F5FB56C131F5F163F4C5AA24C5A4B90CCFC6C49485A4B5AEC800F6C9038003F
+F849EBFFF0261FFC0713C06CB65A6C92CDFC6C14FCC614F0013F13C0D907FCCEFC5D6F7C
+CC66>121 D E
%EndDVIPSBitmapFont
end
%%EndProlog
%%BeginSetup
-%%Feature: *Resolution 300dpi
+%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: Letter
letter
@@ -768,1232 +1684,1871 @@ letter
%%EndSetup
%%Page: 1 1
-1 0 bop 75 659 a Fn(GNU)33 b(Readline)h(Library)e(User)h(In)m(terface)p
-75 709 1800 17 v 936 757 a Fm(Edition)17 b(4.3,)c(for)i
-Fl(Readline)f(Library)g Fm(V)l(ersion)i(4.3.)1643 811
-y(Marc)o(h)e(2002)75 2467 y Fk(Brian)23 b(F)-6 b(o)n(x,)23
-b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75
-2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
-b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop
+1 0 bop 150 1318 a Fp(GNU)65 b(Readline)i(Library)f(User)f(In)-5
+b(terface)p 150 1418 3600 34 v 1873 1515 a Fo(Edition)28
+b(5.0,)k(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)30
+b(5.0.)3218 1623 y(Jan)m(uary)g(2004)150 4935 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
%%Page: 2 2
-2 1 bop 75 217 a Fm(This)22 b(do)q(cumen)o(t)f(describ)q(es)i(the)f
-(end)f(user)h(in)o(terface)f(of)g(the)g(GNU)g(Readline)i(Library)l(,)g
-(a)e(utilit)o(y)75 271 y(whic)o(h)14 b(aids)f(in)g(the)g(consistency)h
-(of)e(user)h(in)o(terface)g(across)f(discrete)h(programs)f(that)g(need)
-h(to)f(pro)o(vide)75 326 y(a)j(command)g(line)i(in)o(terface.)75
-394 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)75 448 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
-503 y(Boston,)d(MA)h(02111)f(USA)75 570 y(P)o(ermission)j(is)f(gran)o
-(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
-(this)h(man)o(ual)f(pro)o(vided)h(the)75 625 y(cop)o(yrigh)o(t)e
-(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
-(on)f(all)h(copies.)75 692 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
-(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
-(man)o(ual)g(under)h(the)f(con-)75 747 y(ditions)k(for)e(v)o(erbatim)h
-(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
-(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 802 y(under)h(the)f(terms)g
-(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-869 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 924 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 979 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fj(\015)h Fm(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(1)75 149 y Fi(1)41 b(Command)28 b(Line)e(Editing)137
-271 y Fm(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fh(gnu)g Fm(command)g(line)i(editing)f(in)o(terface.)75
-403 y Fk(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
-501 y Fm(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
-(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
-569 y(The)h(text)f Fg(C-k)h Fm(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
-(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
-567 y Ff(h)p 1844 541 19 2 v 1844 569 a Fe(k)p 1844 577
-V 1860 567 a Ff(i)75 624 y Fm(k)o(ey)d(is)h(pressed)g(while)g(the)f
-(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
-Fg(M-k)f Fm(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
-(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
-o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
-745 y Ff(h)p 942 719 V 942 747 a Fe(k)p 942 755 V 958
-745 a Ff(i)987 747 y Fm(k)o(ey)g(is)h(pressed.)20 b(The)15
-b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Ff(h)p 1791
-719 72 2 v 1791 747 a Fe(AL)m(T)p 1791 755 V 1860 745
-a Ff(i)75 802 y Fm(on)e(man)o(y)g(k)o(eyb)q(oards.)19
-b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
-1213 800 y Ff(h)p 1225 774 V 1225 802 a Fe(AL)m(T)p 1225
-810 V 1294 800 a Ff(i)1322 802 y Fm(\(usually)i(to)e(either)i(side)g
-(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Ff(h)p
-400 829 V 400 857 a Fe(AL)m(T)p 400 865 V 469 855 a Ff(i)499
-857 y Fm(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
-(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Ff(h)p
-1709 829 V 1709 857 a Fe(AL)m(T)p 1709 865 V 1778 855
-a Ff(i)1808 857 y Fm(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
-(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
-(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
-y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
-(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
-y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
-1033 y Ff(h)p 706 1007 V 706 1035 a Fe(AL)m(T)p 706 1043
-V 775 1033 a Ff(i)801 1035 y Fm(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
-o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
-1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
-809 1088 y Ff(h)p 822 1062 70 2 v 822 1090 a Fe(ESC)p
-822 1098 V 888 1088 a Ff(i)915 1090 y Fd(\014rst)p Fm(,)g(and)g(then)h
-(t)o(yping)1339 1088 y Ff(h)p 1351 1062 19 2 v 1351 1090
-a Fe(k)p 1351 1098 V 1368 1088 a Ff(i)1383 1090 y Fm(.)18
-b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
-Fc(metafying)k Fm(the)425 1143 y Ff(h)p 437 1117 V 437
-1145 a Fe(k)p 437 1153 V 454 1143 a Ff(i)484 1145 y Fm(k)o(ey)l(.)137
-1214 y(The)i(text)e Fg(M-C-k)h Fm(is)h(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
-1268 y Fc(metafying)e Fg(C-k)p Fm(.)137 1337 y(In)g(addition,)h(sev)o
-(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
-b(Sp)q(eci\014cally)l(,)1384 1335 y Ff(h)p 1396 1309
-73 2 v 1396 1337 a Fe(DEL)p 1396 1345 V 1467 1335 a Ff(i)1482
-1337 y Fm(,)1514 1335 y Ff(h)p 1526 1309 70 2 v 1526
-1337 a Fe(ESC)p 1526 1345 V 1593 1335 a Ff(i)1608 1337
-y Fm(,)1640 1335 y Ff(h)p 1652 1309 72 2 v 1652 1337
-a Fe(LFD)p 1652 1345 V 1722 1335 a Ff(i)1737 1337 y Fm(,)1768
-1335 y Ff(h)p 1780 1309 70 2 v 1780 1337 a Fe(SPC)p 1780
-1345 V 1847 1335 a Ff(i)1862 1337 y Fm(,)75 1390 y Ff(h)p
-87 1364 76 2 v 87 1392 a Fe(RET)p 87 1399 V 160 1390
-a Ff(i)175 1392 y Fm(,)23 b(and)306 1390 y Ff(h)p 318
-1364 74 2 v 318 1392 a Fe(T)m(AB)p 318 1399 V 390 1390
-a Ff(i)427 1392 y Fm(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
-(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
-1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32
-b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
-1445 y Ff(h)p 1456 1419 72 2 v 1456 1447 a Fe(LFD)p 1456
-1454 V 1526 1445 a Ff(i)1560 1447 y Fm(k)o(ey)l(,)h(t)o(yping)1802
-1445 y Ff(h)p 1814 1419 49 2 v 1814 1447 a Fe(C-j)p 1814
-1454 V 1860 1445 a Ff(i)75 1501 y Fm(will)c(pro)q(duce)g(the)f(desired)
-h(c)o(haracter.)j(The)874 1499 y Ff(h)p 886 1473 76 2
-v 886 1501 a Fe(RET)p 886 1509 V 959 1499 a Ff(i)989
-1501 y Fm(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
-y Ff(h)p 1397 1473 109 2 v 1397 1501 a Fe(Return)p 1397
-1509 V 1503 1499 a Ff(i)1533 1501 y Fm(or)1588 1499 y
-Ff(h)p 1600 1473 86 2 v 1600 1501 a Fe(En)o(ter)p 1600
-1509 V 1684 1499 a Ff(i)1714 1501 y Fm(on)f(some)75 1556
-y(k)o(eyb)q(oards.)75 1688 y Fk(1.2)33 b(Readline)23
-b(In)n(teraction)137 1786 y Fm(Often)13 b(during)h(an)e(in)o(teractiv)o
-(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
-h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
-(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f
-(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
-1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
-g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
-(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
-(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
-(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
-y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
-(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
-2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
-(ou)e(simply)i(press)1160 2058 y Ff(h)p 1172 2032 76
-2 v 1172 2060 a Fe(RET)p 1172 2068 V 1245 2058 a Ff(i)1260
-2060 y Fm(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
-(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
-2113 y Ff(h)p 575 2087 V 575 2115 a Fe(RET)p 575 2122
-V 648 2113 a Ff(i)663 2115 y Fm(;)i(the)f(en)o(tire)h(line)g(is)g
-(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
-2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fb(1.2.1)30
-b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fm(In)12
-b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
-(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
-(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
-(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
-b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
-(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
-(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
-y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
-(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
-o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
-b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fg(C-b)f
-Fm(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
-2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
-b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
-(with)g Fg(C-f)p Fm(.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fm(2)1322 b(GNU)15 b(Readline)h(Library)137
-149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
-(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
-204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
-(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
-b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
-(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
-(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
-(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
-(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
-369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
-(ws.)75 449 y Fg(C-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
-(haracter.)75 530 y Fg(C-f)168 b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
-(c)o(haracter.)75 608 y Ff(h)p 87 582 73 2 v 87 610 a
-Fe(DEL)p 87 618 V 158 608 a Ff(i)188 610 y Fm(or)244
-608 y Ff(h)p 256 582 159 2 v 256 610 a Fe(Bac)o(kspace)p
-256 618 V 412 608 a Ff(i)315 665 y Fm(Delete)h(the)f(c)o(haracter)g(to)
-f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fg(C-d)168
-b Fm(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
-825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
-961 y Fg(C-_)g Fm(or)f Fg(C-x)h(C-u)315 1015 y Fm(Undo)i(the)g(last)f
-(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
-(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
-1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
-1149 y Ff(h)p 875 1123 V 875 1151 a Fe(Bac)o(kspace)p
-875 1159 V 1032 1149 a Ff(i)1063 1151 y Fm(k)o(ey)g(b)q(e)h(set)f(to)f
-(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
-(cursor)f(and)g(the)596 1204 y Ff(h)p 608 1178 73 2 v
-608 1206 a Fe(DEL)p 608 1213 V 679 1204 a Ff(i)710 1206
-y Fm(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
-(the)g(cursor,)f(lik)o(e)75 1260 y Fg(C-d)p Fm(,)e(rather)h(than)g(the)
-g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
-1374 y Fb(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
-1471 y Fm(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
-(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
-(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
-b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
-(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fg(C-b)p
-Fm(,)h Fg(C-f)p Fm(,)f Fg(C-d)p Fm(,)g(and)522 1578 y
-Ff(h)p 534 1552 V 534 1580 a Fe(DEL)p 534 1588 V 605
-1578 a Ff(i)619 1580 y Fm(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
-f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
-y(line.)75 1716 y Fg(C-a)168 b Fm(Mo)o(v)o(e)14 b(to)h(the)g(start)f
-(of)h(the)g(line.)75 1796 y Fg(C-e)168 b Fm(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fg(M-f)168
-b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
-(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
-y Fg(M-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
-2037 y Fg(C-l)168 b Fm(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
-(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
-Fg(C-f)g Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
-Fg(M-f)e Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
-b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
-o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
-(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
-2341 y Fb(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
-2438 y Fc(Killing)26 b Fm(text)18 b(means)g(to)g(delete)i(the)f(text)f
-(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
-h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fc(y)o(anking)22
-b Fm(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
-b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
-2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
-2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
-(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
-(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
-(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
-(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fc(kill-ring)p Fm(.)21
-b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
-204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
-(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
-(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
-(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
-(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
-314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
-(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
-(of)e(commands)h(for)g(killing)j(text.)75 458 y Fg(C-k)168
-b Fm(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
-(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
-Fg(M-d)168 b Fm(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
-(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
-e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
-(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
-Fg(M-f)p Fm(.)75 668 y Fg(M-)123 666 y Ff(h)p 135 640
-73 2 v 135 668 a Fe(DEL)p 135 675 V 206 666 a Ff(i)315
-668 y Fm(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o
-(t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315
-723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19
-b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315
-777 y Fg(M-b)p Fm(.)75 855 y Fg(C-w)168 b Fm(Kill)18
-b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
-b(This)16 b(is)g(di\013eren)o(t)g(than)f Fg(M-)1777 853
-y Ff(h)p 1789 827 V 1789 855 a Fe(DEL)p 1789 863 V 1860
-853 a Ff(i)315 910 y Fm(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
-(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fc(y)o(ank)j
-Fm(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
-b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
-(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fg(C-y)168
-b Fm(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
-(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
-y Fg(M-y)168 b Fm(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h
-(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior)
-315 1252 y(command)d(is)h Fg(C-y)f Fm(or)f Fg(M-y)p Fm(.)75
-1361 y Fb(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
-y Fm(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
-(Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
-1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
-(the)g Fd(sign)j Fm(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
-(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
-f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
-(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
-(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
-(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
-(t)o(yp)q(e)g(`)p Fl(M--)f(C-k)p Fm('.)137 1742 y(The)h(general)f(w)o
-(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
-h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
-y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
-g(min)o(us)g(sign)g(\(`)p Fl(-)p Fm('\),)d(then)j(the)f(sign)h(of)f
-(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
-b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
-(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
-1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
-(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
-Fg(C-d)75 1961 y Fm(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
-(could)i(t)o(yp)q(e)f(`)p Fl(M-1)14 b(0)h(C-d)p Fm(',)k(whic)o(h)g
-(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
-b(on)i(the)f(input)h(line.)75 2125 y Fb(1.2.5)30 b(Searc)n(hing)21
-b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fm(Readline)d(pro)o
-(vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g
-(history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i
-(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
-b Fc(incremen)o(tal)e Fm(and)e Fc(non-incremen)o(tal)p
-Fm(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
-(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
-19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
-(string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en)
-o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
-b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
-(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
-2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
-(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
-(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fg(C-r)p
-Fm(.)k(T)o(yping)d Fg(C-s)e Fm(searc)o(hes)h(forw)o(ard)e(through)h
-(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
-2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Fl(isearch-terminators)d
-Fm(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
-2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
-(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Ff(h)p
-1301 2642 70 2 v 1301 2670 a Fe(ESC)p 1301 2678 V 1368
-2668 a Ff(i)1402 2670 y Fm(and)e Fg(C-J)f Fm(c)o(haracters)g(will)p
+2 1 bop 150 3024 a Fo(This)37 b(man)m(ual)h(describ)s(es)f(the)i(end)f
+(user)g(in)m(terface)h(of)g(the)g(GNU)g(Readline)e(Library)g(\(v)m
+(ersion)i(5.0,)150 3133 y(28)c(Jan)m(uary)f(2004\),)k(a)d(library)d
+(whic)m(h)h(aids)h(in)f(the)h(consistency)h(of)f(user)g(in)m(terface)h
+(across)g(discrete)150 3243 y(programs)30 b(whic)m(h)f(pro)m(vide)h(a)g
+(command)g(line)f(in)m(terface.)150 3377 y(Cop)m(yrigh)m(t)602
+3374 y(c)577 3377 y Fl(\015)h Fo(1988-2004)k(F)-8 b(ree)32
+b(Soft)m(w)m(are)f(F)-8 b(oundation,)31 b(Inc.)150 3512
+y(P)m(ermission)f(is)i(gran)m(ted)h(to)f(mak)m(e)i(and)d(distribute)f
+(v)m(erbatim)i(copies)g(of)g(this)f(man)m(ual)h(pro)m(vided)f(the)150
+3621 y(cop)m(yrigh)m(t)g(notice)f(and)g(this)f(p)s(ermission)f(notice)i
+(are)h(preserv)m(ed)f(on)h(all)e(copies.)390 3756 y(P)m(ermission)k(is)
+i(gran)m(ted)g(to)h(cop)m(y)-8 b(,)38 b(distribute)33
+b(and/or)i(mo)s(dify)e(this)h(do)s(cumen)m(t)h(under)390
+3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m
+(tation)g(License,)g(V)-8 b(ersion)38 b(1.1)h(or)f(an)m(y)g(later)390
+3975 y(v)m(ersion)27 b(published)c(b)m(y)28 b(the)f(F)-8
+b(ree)29 b(Soft)m(w)m(are)f(F)-8 b(oundation;)29 b(with)d(no)h(In)m(v)
+-5 b(arian)m(t)27 b(Sections,)390 4085 y(with)i(the)i(F)-8
+b(ron)m(t-Co)m(v)m(er)33 b(texts)e(b)s(eing)f(\\A)h(GNU)g(Man)m(ual,")g
+(and)f(with)f(the)i(Bac)m(k-Co)m(v)m(er)390 4194 y(T)-8
+b(exts)33 b(as)g(in)e(\(a\))i(b)s(elo)m(w.)46 b(A)33
+b(cop)m(y)g(of)f(the)h(license)e(is)h(included)d(in)i(the)i(section)f
+(en)m(titled)390 4304 y(\\GNU)f(F)-8 b(ree)32 b(Do)s(cumen)m(tation)f
+(License.")390 4438 y(\(a\))39 b(The)f(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T)
+-8 b(ext)39 b(is:)55 b(\\Y)-8 b(ou)39 b(ha)m(v)m(e)g(freedom)f(to)h
+(cop)m(y)f(and)g(mo)s(dify)390 4548 y(this)31 b(GNU)j(Man)m(ual,)f(lik)
+m(e)f(GNU)h(soft)m(w)m(are.)49 b(Copies)31 b(published)e(b)m(y)j(the)h
+(F)-8 b(ree)34 b(Soft)m(w)m(are)390 4658 y(F)-8 b(oundation)30
+b(raise)g(funds)e(for)j(GNU)g(dev)m(elopmen)m(t.")150
+4902 y(Published)c(b)m(y)j(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation)150 5011 y(59)31 b(T)-8 b(emple)30 b(Place,)h(Suite)e(330,)
+150 5121 y(Boston,)j(MA)e(02111-1307)150 5230 y(USA)p
+eop
+%%Page: -1 3
+-1 2 bop 3725 -116 a Fo(i)150 299 y Fk(T)-13 b(able)54
+b(of)g(Con)l(ten)l(ts)150 641 y Fm(1)135 b(Command)45
+b(Line)g(Editing)40 b Fj(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)84 b Fm(1)449 778
+y Fo(1.1)92 b(In)m(tro)s(duction)29 b(to)i(Line)e(Editing)23
+b Fi(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55
+b Fo(1)449 888 y(1.2)92 b(Readline)29 b(In)m(teraction)16
+b Fi(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)46 b Fo(1)748 997 y(1.2.1)93 b(Readline)29
+b(Bare)i(Essen)m(tials)25 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
+b Fo(1)748 1107 y(1.2.2)93 b(Readline)29 b(Mo)m(v)m(emen)m(t)j
+(Commands)14 b Fi(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)44 b Fo(2)748 1216 y(1.2.3)93 b(Readline)29
+b(Killing)e(Commands)22 b Fi(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)51 b Fo(2)748
+1326 y(1.2.4)93 b(Readline)29 b(Argumen)m(ts)c Fi(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fo(3)748
+1435 y(1.2.5)93 b(Searc)m(hing)29 b(for)i(Commands)e(in)g(the)h
+(History)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
+b Fo(3)449 1545 y(1.3)92 b(Readline)29 b(Init)g(File)f
+Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)58 b Fo(4)748 1655 y(1.3.1)93 b(Readline)29
+b(Init)g(File)g(Syn)m(tax)13 b Fi(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43
+b Fo(4)748 1764 y(1.3.2)93 b(Conditional)27 b(Init)j(Constructs)9
+b Fi(.)14 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)39 b Fo(9)748 1874 y(1.3.3)93
+b(Sample)29 b(Init)g(File)21 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)51 b Fo(10)449 1983 y(1.4)92 b(Bindable)29
+b(Readline)g(Commands)12 b Fi(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41
+b Fo(13)748 2093 y(1.4.1)93 b(Commands)29 b(F)-8 b(or)31
+b(Mo)m(ving)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fo(13)748
+2203 y(1.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)d(The)i
+(History)18 b Fi(.)d(.)g(.)g(.)g(.)g(.)g(.)47 b Fo(13)748
+2312 y(1.4.3)93 b(Commands)29 b(F)-8 b(or)31 b(Changing)e(T)-8
+b(ext)30 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)58 b Fo(14)748 2422 y(1.4.4)93 b(Killing)27
+b(And)i(Y)-8 b(anking)17 b Fi(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)46
+b Fo(16)748 2531 y(1.4.5)93 b(Sp)s(ecifying)27 b(Numeric)j(Argumen)m
+(ts)25 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)54 b Fo(17)748 2641 y(1.4.6)93 b(Letting)30
+b(Readline)f(T)m(yp)s(e)h(F)-8 b(or)31 b(Y)-8 b(ou)19
+b Fi(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+49 b Fo(17)748 2751 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)11
+b Fi(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41
+b Fo(17)748 2860 y(1.4.8)93 b(Some)30 b(Miscellaneous)f(Commands)13
+b Fi(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+42 b Fo(18)449 2970 y(1.5)92 b(Readline)29 b(vi)g(Mo)s(de)e
+Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)56 b Fo(19)150 3212 y Fm(App)t(endix)44
+b(A)99 b(Cop)l(ying)46 b(This)e(Man)l(ual)29 b Fj(.)20
+b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)74 b Fm(21)449
+3349 y Fo(A.1)92 b(GNU)31 b(F)-8 b(ree)31 b(Do)s(cumen)m(tation)g
+(License)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fo(21)748 3459 y(A.1.1)92
+b(ADDENDUM:)33 b(Ho)m(w)e(to)g(use)f(this)f(License)h(for)h(y)m(our)930
+3568 y(do)s(cumen)m(ts)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Fo(27)p
eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fm(4)1322 b(GNU)15 b(Readline)h(Library)75
-149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37
-b Fg(C-g)21 b Fm(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
-(and)g(restore)g(the)75 204 y(original)16 b(line.)21
-b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
-(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
-y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i
-(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
-(yp)q(e)f Fg(C-r)g Fm(or)g Fg(C-s)g Fm(as)h(appropriate.)k(This)75
-380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
-(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
-(searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30
-b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10
-b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
-487 y Ff(h)p 1076 461 76 2 v 1076 489 a Fe(RET)p 1076
-497 V 1149 487 a Ff(i)1174 489 y Fm(will)g(terminate)f(the)g(searc)o(h)
-f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
-(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
-(command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
-(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
-(editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen)
-o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f
-Fg(C-r)p Fm(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o
-(terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f
-(string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75
-774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the)
-f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o
-(h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22
-b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fk(1.3)33 b(Readline)23
-b(Init)h(File)137 1169 y Fm(Although)f(the)g(Readline)h(library)f
-(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
-(installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
-(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
-b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15
-b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e
-Fc(inputrc)k Fm(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
-1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
-(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
-(v)m(ariable)75 1388 y Fl(INPUTRC)p Fm(.)i(If)c(that)g(v)m(ariable)h
-(is)g(unset,)f(the)g(default)h(is)g(`)p Fl(~/.inputrc)p
-Fm('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline)
-h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g
-(the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574
-y(In)f(addition,)h(the)e Fl(C-x)i(C-r)e Fm(command)g(re-reads)h(this)g
-(init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75
-1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
-1737 y Fb(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1832 y Fm(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w)
-o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18
-b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d
-(a)h(`)p Fl(#)p Fm(')e(are)h(commen)o(ts.)35 b(Lines)22
-b(b)q(eginning)h(with)e(a)f(`)p Fl($)p Fm(')f(indicate)75
-1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
-([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75
-1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
-2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g
-(the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h
-(the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f
-(the)g Fl(set)g Fm(command)f(within)i(the)f(init)h(\014le.)26
-b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300
-y Fl(set)23 b Fc(v)m(ariable)28 b(v)m(alue)315 2366 y
-Fm(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f
-(the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315
-2421 y(use)g Fl(vi)e Fm(line)j(editing)g(commands:)435
-2484 y Fl(set)23 b(editing-mode)g(vi)315 2549 y Fm(V)l(ariable)c(names)
-e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without)
-e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g
-(run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o
-(wing)f(v)m(ariables.)p eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(5)315 149 y Fl(bell-style)555 204 y Fm(Con)o(trols)21
-b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f
-(termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p
-Fl(none)p Fm(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32
-b(If)19 b(set)g(to)555 314 y(`)p Fl(visible)p Fm(',)c(Readline)i(uses)g
-(a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26
-b(If)16 b(set)h(to)555 369 y(`)p Fl(audible)p Fm(')g(\(the)h
-(default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555
-423 y(b)q(ell.)315 504 y Fl(comment-begin)555 559 y Fm(The)c(string)f
-(to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g
-Fl(insert-)555 614 y(comment)f Fm(command)h(is)h(executed.)21
-b(The)15 b(default)h(v)m(alue)g(is)g Fl("#")p Fm(.)315
-694 y Fl(completion-ignore-case)555 749 y Fm(If)e(set)f(to)g(`)p
-Fl(on)p Fm(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f
-(and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k
-(The)15 b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)315
-884 y Fl(completion-query-items)555 939 y Fm(The)d(n)o(um)o(b)q(er)h
-(of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f
-(user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i
-(see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21
-b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f
-(is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555
-1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to)
-f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20
-b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
-h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
-(default)f(limit)i(is)f Fl(100)p Fm(.)315 1294 y Fl(convert-meta)555
-1348 y Fm(If)11 b(set)g(to)g(`)p Fl(on)p Fm(',)f(Readline)i(will)h(con)
-o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555
-1403 y(to)f(an)h Fh(asci)q(i)e Fm(k)o(ey)i(sequence)g(b)o(y)g
-(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
-1456 y Ff(h)p 567 1430 70 2 v 567 1458 a Fe(ESC)p 567
-1466 V 634 1456 a Ff(i)666 1458 y Fm(c)o(haracter,)k(con)o(v)o(erting)h
-(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
-1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Fl(on)p Fm('.)315
-1593 y Fl(disable-completion)555 1648 y Fm(If)k(set)f(to)f(`)p
-Fl(On)p Fm(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30
-b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g
-(in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555
-1758 y(to)h Fl(self-insert)p Fm(.)j(The)d(default)h(is)g(`)p
-Fl(off)p Fm('.)315 1838 y Fl(editing-mode)555 1893 y
-Fm(The)f Fl(editing-mode)d Fm(v)m(ariable)k(con)o(trols)e(whic)o(h)h
-(default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20
-b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i
-(mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555
-2058 y(b)q(e)g(set)f(to)f(either)i(`)p Fl(emacs)p Fm(')e(or)h(`)p
-Fl(vi)p Fm('.)315 2138 y Fl(enable-keypad)555 2193 y
-Fm(When)d(set)f(to)h(`)p Fl(on)p Fm(',)e(Readline)j(will)h(try)d(to)g
-(enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h
-(called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g
-(arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p
-Fl(off)p Fm('.)315 2383 y Fl(expand-tilde)555 2438 y
-Fm(If)e(set)g(to)f(`)p Fl(on)p Fm(',)f(tilde)k(expansion)e(is)h(p)q
-(erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g
-(completion.)21 b(The)15 b(default)h(is)f(`)p Fl(off)p
-Fm('.)555 2560 y(If)g(set)g(to)f(`)p Fl(on)p Fm(',)g(the)g(history)h
-(co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555
-2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g
-(with)f Fl(previous-history)e Fm(or)555 2670 y Fl(next-history)p
-Fm(.)p eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fm(6)1322 b(GNU)15 b(Readline)h(Library)315
-149 y Fl(horizontal-scroll-mode)555 204 y Fm(This)j(v)m(ariable)g(can)f
-(b)q(e)g(set)g(to)f(either)i(`)p Fl(on)p Fm(')e(or)g(`)p
-Fl(off)p Fm('.)27 b(Setting)19 b(it)f(to)f(`)p Fl(on)p
-Fm(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing)
-f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i
-(screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g
-(the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g
-(screen)h(line.)21 b(By)13 b(default,)h(this)555 423
-y(v)m(ariable)j(is)e(set)g(to)g(`)p Fl(off)p Fm('.)315
-506 y Fl(input-meta)555 560 y Fm(If)h(set)f(to)g(`)p
-Fl(on)p Fm(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it)
-g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c)
-o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555
-670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20
-b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)33 b(The)555
-725 y(name)15 b Fl(meta-flag)f Fm(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
-m(ariable.)315 807 y Fl(isearch-terminators)555 862 y
-Fm(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
-(an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o
-(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
-971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
-b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17
-b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
-1024 y Ff(h)p 1259 998 70 2 v 1259 1026 a Fe(ESC)p 1259
-1034 V 1326 1024 a Ff(i)1357 1026 y Fm(and)g Fg(C-J)f
-Fm(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315
-1163 y Fl(keymap)96 b Fm(Sets)19 b(Readline's)i(idea)f(of)f(the)g
-(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555
-1218 y(mands.)41 b(Acceptable)23 b Fl(keymap)f Fm(names)g(are)f
-Fl(emacs)p Fm(,)i Fl(emacs-standard)p Fm(,)555 1273 y
-Fl(emacs-meta)p Fm(,)49 b Fl(emacs-ctlx)p Fm(,)g Fl(vi)p
-Fm(,)h Fl(vi-move)p Fm(,)f Fl(vi-command)p Fm(,)g(and)555
-1328 y Fl(vi-insert)p Fm(.)31 b Fl(vi)20 b Fm(is)g(equiv)m(alen)o(t)h
-(to)e Fl(vi-command)p Fm(;)g Fl(emacs)g Fm(is)h(equiv)m(alen)o(t)555
-1382 y(to)15 b Fl(emacs-standard)p Fm(.)20 b(The)d(default)f(v)m(alue)h
-(is)g Fl(emacs)p Fm(.)k(The)16 b(v)m(alue)h(of)f(the)555
-1437 y Fl(editing-mode)e Fm(v)m(ariable)i(also)f(a\013ects)g(the)g
-(default)h(k)o(eymap.)315 1519 y Fl(mark-directories)555
-1574 y Fm(If)j(set)g(to)g(`)p Fl(on)p Fm(',)f(completed)i(directory)g
-(names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629
-y(The)15 b(default)h(is)g(`)p Fl(on)p Fm('.)315 1711
-y Fl(mark-modified-lines)555 1766 y Fm(This)j(v)m(ariable,)g(when)g
-(set)e(to)h(`)p Fl(on)p Fm(',)f(causes)h(Readline)h(to)e(displa)o(y)i
-(an)f(as-)555 1821 y(terisk)f(\(`)p Fl(*)p Fm('\))e(at)i(the)f(start)g
-(of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q
-(di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Fl(off)p
-Fm(')e(b)o(y)h(default.)315 1958 y Fl(mark-symlinked-directories)555
-2012 y Fm(If)23 b(set)f(to)f(`)p Fl(on)p Fm(',)i(completed)g(names)g
-(whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555
-2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject)
-e(to)f(the)i(v)m(alue)g(of)f Fl(mark-)555 2122 y(directories)p
-Fm(\).)18 b(The)d(default)h(is)g(`)p Fl(off)p Fm('.)315
-2204 y Fl(match-hidden-files)555 2259 y Fm(This)c(v)m(ariable,)h(when)e
-(set)g(to)g(`)p Fl(on)p Fm(',)f(causes)h(Readline)i(to)d(matc)o(h)h
-(\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p
-Fl(.)p Fm(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename)
-555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p
-Fl(.)p Fm(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555
-2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15
-b(v)m(ariable)i(is)f(`)p Fl(on)p Fm(')e(b)o(y)h(default.)315
-2506 y Fl(output-meta)555 2560 y Fm(If)j(set)f(to)g(`)p
-Fl(on)p Fm(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j
-(the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-2670 y(default)16 b(is)f(`)p Fl(off)p Fm('.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(7)315 149 y Fl(page-completions)555 204 y Fm(If)17
-b(set)g(to)f(`)p Fl(on)p Fm(',)g(Readline)i(uses)g(an)e(in)o(ternal)i
-Fl(more)p Fm(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259
-y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23
-b(This)17 b(v)m(ariable)g(is)g(`)p Fl(on)p Fm(')555 314
-y(b)o(y)e(default.)315 395 y Fl(print-completions-horizont)o(ally)555
-450 y Fm(If)d(set)g(to)f(`)p Fl(on)p Fm(',)h(Readline)h(will)g(displa)o
-(y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505
-y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p
-Fl(off)p Fm('.)315 641 y Fl(show-all-if-ambiguous)555
-696 y Fm(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h
-(completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p
-Fl(on)p Fm(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h
-(p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f
-(b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q
-(ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Fl(off)p
-Fm('.)315 942 y Fl(visible-stats)555 997 y Fm(If)h(set)g(to)f(`)p
-Fl(on)p Fm(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q
-(e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g
-(listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p
-Fl(off)p Fm('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21
-b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f
-(init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315
-1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f
-(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315
-1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g
-(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315
-1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q
-(es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
-1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
-(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
-1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
-(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
-1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)
-e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g
-(readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h
-(pressed)g(\(a)e Fc(macro)r Fm(\).)315 1790 y Fc(k)o(eyname)s
-Fm(:)19 b Fc(function-name)g Fm(or)c Fc(macro)555 1845
-y(k)o(eyname)i Fm(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out)
-d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y
-Fl(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g
-(backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555
-2082 y Fm(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fg(C-u)e
-Fm(is)h(b)q(ound)g(to)f(the)g(function)h Fl(universal-)555
-2137 y(argument)p Fm(,)e Fg(M-DEL)h Fm(is)g(b)q(ound)h(to)e(the)h
-(function)h Fl(backward-kill-word)p Fm(,)555 2191 y(and)g
-Fg(C-o)f Fm(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
-(the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i
-(the)f(text)g(`)p Fl(>)f(output)p Fm(')g(in)o(to)i(the)f(line\).)555
-2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e
-(names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13
-b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fc(DEL)p
-Fm(,)11 b Fc(ESC)p Fm(,)h Fc(ESCAPE)p Fm(,)f Fc(LFD)p
-Fm(,)g Fc(NEW-)555 2424 y(LINE)p Fm(,)16 b Fc(RET)p Fm(,)e
-Fc(RETURN)p Fm(,)f Fc(R)o(UBOUT)p Fm(,)i Fc(SP)l(A)o(CE)p
-Fm(,)g Fc(SPC)p Fm(,)f(and)i Fc(T)l(AB)p Fm(.)315 2506
-y Fl(")p Fc(k)o(eyseq)q Fl(")p Fm(:)k Fc(function-name)e
-Fm(or)d Fc(macro)555 2560 y(k)o(eyseq)i Fm(di\013ers)e(from)g
-Fc(k)o(eyname)j Fm(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
-(an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555
-2670 y(double)e(quotes.)j(Some)c Fh(gnu)g Fm(Emacs)f(st)o(yle)h(k)o(ey)
-g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fm(8)1322 b(GNU)15 b(Readline)h(Library)555
-149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o
-(haracter)d(names)h(are)f(not)555 204 y(recognized.)675
-270 y Fl("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f
-(re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555
-442 y Fm(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b
-Fg(C-u)32 b Fm(is)h(again)f(b)q(ound)h(to)f(the)g(function)555
-497 y Fl(universal-argument)19 b Fm(\(just)j(as)f(it)h(w)o(as)f(in)i
-(the)f(\014rst)f(example\),)j(`)p Fg(C-x)555 551 y(C-r)p
-Fm(')c(is)h(b)q(ound)g(to)f(the)h(function)g Fl(re-read-init-file)p
-Fm(,)f(and)g(`)1731 549 y Ff(h)p 1743 523 70 2 v 1743
-551 a Fe(ESC)p 1743 559 V 1810 549 a Ff(i)15 b(h)p 1852
-523 10 2 v 1852 551 a Fe([)p 1852 560 V 1860 549 a Ff(i)555
-604 y(h)p 567 578 18 2 v 567 606 a Fe(1)p 567 614 V 583
-604 a Ff(i)g(h)p 625 578 V 625 606 a Fe(1)p 625 614 V
-640 604 a Ff(i)g(h)p 683 578 24 2 v 683 606 a Fl(~)p
-683 614 V 704 604 a Ff(i)719 606 y Fm(')g(is)h(b)q(ound)g(to)e(insert)i
-(the)f(text)g(`)p Fl(Function)f(Key)g(1)p Fm('.)315 688
-y(The)h(follo)o(wing)h Fh(gnu)e Fm(Emacs)h(st)o(yle)g(escap)q(e)h
-(sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315
-743 y(k)o(ey)g(sequences:)315 825 y Fg(\\C-)168 b Fm(con)o(trol)15
-b(pre\014x)315 907 y Fg(\\M-)168 b Fm(meta)15 b(pre\014x)315
-989 y Fg(\\e)192 b Fm(an)15 b(escap)q(e)h(c)o(haracter)315
-1071 y Fg(\\\\)192 b Fm(bac)o(kslash)315 1152 y Fg(\\)p
-Fl(")555 1150 y Ff(h)p 567 1124 V 567 1152 a Fl(")p 567
-1160 V 589 1150 a Ff(i)604 1152 y Fm(,)15 b(a)f(double)j(quotation)e
-(mark)315 1234 y Fg(\\')555 1232 y Ff(h)p 567 1206 10
-2 v 567 1234 a Fe(')p 567 1242 V 575 1232 a Ff(i)590
-1234 y Fm(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
-1316 y(In)f(addition)h(to)f(the)f Fh(gnu)h Fm(Emacs)g(st)o(yle)f(escap)
-q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
-1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y
-Fl(\\a)192 b Fm(alert)15 b(\(b)q(ell\))315 1535 y Fl(\\b)192
-b Fm(bac)o(kspace)315 1617 y Fl(\\d)g Fm(delete)315 1699
-y Fl(\\f)g Fm(form)14 b(feed)315 1781 y Fl(\\n)192 b
-Fm(newline)315 1862 y Fl(\\r)g Fm(carriage)15 b(return)315
-1944 y Fl(\\t)192 b Fm(horizon)o(tal)16 b(tab)315 2026
-y Fl(\\v)192 b Fm(v)o(ertical)16 b(tab)315 2108 y Fl(\\)p
-Fc(nnn)141 b Fm(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m
-(alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fc(nnn)f Fm(\(one)f(to)555
-2163 y(three)e(digits\))315 2245 y Fl(\\x)p Fc(HH)124
-b Fm(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f
-(the)g(hexadecimal)h(v)m(alue)g Fc(HH)555 2300 y Fm(\(one)15
-b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g
-(text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q
-(e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20
-b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i
-(name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
-(kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.)
-20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o
-(haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p
-Fl(")p Fm(')c(and)h(`)p Fl(')p Fm('.)34 b(F)l(or)315
-2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`)
-p Fg(C-x)i Fl(\\)p Fm(')f(insert)g(a)g(single)h(`)p Fl(\\)p
-Fm(')e(in)o(to)h(the)g(line:)435 2666 y Fl("\\C-x\\\\":)23
-b("\\\\")p eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(9)75 149 y Fb(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137
-246 y Fm(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g
-(spirit)f(to)f(the)h(conditional)h(compilation)g(features)75
-301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g
-(bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f
-(as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g
-(directiv)o(es)h(used.)75 435 y Fl($if)168 b Fm(The)16
-b Fl($if)f Fm(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g
-(based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490
-y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e
-(Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545
-y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f
-(are)h(required)i(to)d(isolate)i(it.)315 624 y Fl(mode)144
-b Fm(The)11 b Fl(mode=)e Fm(form)h(of)g(the)h Fl($if)f
-Fm(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555
-679 y(is)k(in)h Fl(emacs)e Fm(or)g Fl(vi)g Fm(mo)q(de.)20
-b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555
-734 y(`)p Fl(set)f(keymap)p Fm(')f(command,)g(for)h(instance,)g(to)f
-(set)h(bindings)h(in)g(the)f Fl(emacs-)555 789 y(standard)d
-Fm(and)i Fl(emacs-ctlx)e Fm(k)o(eymaps)h(only)i(if)f(Readline)g(is)g
-(starting)f(out)555 844 y(in)k Fl(emacs)f Fm(mo)q(de.)315
-923 y Fl(term)144 b Fm(The)14 b Fl(term=)e Fm(form)h(ma)o(y)g(b)q(e)h
-(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555
-978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13
-b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g
-(the)g(`)p Fl(=)p Fm(')f(is)h(tested)g(against)555 1088
-y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q
-(ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g
-(\014rst)f(`)p Fl(-)p Fm('.)24 b(This)17 b(allo)o(ws)g
-Fl(sun)f Fm(to)g(matc)o(h)h(b)q(oth)f Fl(sun)h Fm(and)555
-1197 y Fl(sun-cmd)p Fm(,)d(for)g(instance.)315 1277 y
-Fl(application)555 1332 y Fm(The)d Fc(application)i Fm(construct)e(is)g
-(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
-1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i
-(library)f(sets)f(the)g Fc(application)555 1441 y(name)p
-Fm(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20
-b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18
-b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q
-(eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17
-b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f
-(quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j
-(Bash:)675 1670 y Fl($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96
-b Fm(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g
-(terminates)f(an)g Fl($if)f Fm(command.)75 1985 y Fl($else)120
-b Fm(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i
-Fl($if)e Fm(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75
-2065 y Fl($include)48 b Fm(This)22 b(directiv)o(e)h(tak)o(es)e(a)h
-(single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33
-b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e
-(from)315 2174 y(`)p Fl(/etc/inputrc)p Fm(':)435 2239
-y Fl($include)k(/etc/inputrc)75 2351 y Fb(1.3.3)30 b(Sample)20
-b(Init)h(File)137 2447 y Fm(Here)16 b(is)g(an)f(example)h(of)f(an)g
-Fc(inputrc)k Fm(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i
-(v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.)
-p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fm(10)1299 b(GNU)15 b(Readline)h(Library)195
-201 y Fl(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU)
-f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e
-(include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195
-409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f
-(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.)
-195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g
-(bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h
-(/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772
-y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195
-928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
-1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
-f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
-195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
-1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
-1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
-(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
-1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
-1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
-1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
-(previous-history)195 1914 y("\\M-[B":)g(next-history)195
-1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
-2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
-(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
-2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
-2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
-(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
+%%Page: -2 4
+-2 3 bop 150 -116 a Fo(ii)2638 b(GNU)31 b(Readline)e(Library)p
eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(11)195 201 y Fl(C-q:)23 b(quoted-insert)195 305 y($endif)195
-409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
-(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
-(are)h(convenient)e(for)h(shell)h(interaction)195 616
-y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
-y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
-772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195
-824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195
-876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195
-928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash)
-g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g
-(macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g
-(the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f
-(redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g
-(line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)
-o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h
-(one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195
-1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading)
-195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f
-(characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f
-(converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g
-(convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h
-(eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h
-(meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195
-2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g
-(completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g
-(he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g
-(completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195
-2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195
-2640 y("\\C-xt":)g("put)g(\\M-?")p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fm(12)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Fl("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75
-329 y Fk(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
-425 y Fm(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that)
-e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22
-b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o
-(ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137
-547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fc(p)q(oin)o(t)f
-Fm(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e
-Fc(mark)i Fm(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o
-(ed)f(b)o(y)h(the)f Fl(set-mark)g Fm(command.)32 b(The)20
-b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75
-656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fc(region)p
-Fm(.)75 767 y Fb(1.4.1)30 b(Commands)21 b(F)-5 b(or)19
-b(Mo)n(ving)75 888 y Fl(beginning-of-line)13 b(\(C-a\))315
-942 y Fm(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.)
-75 1034 y Fl(end-of-line)f(\(C-e\))315 1088 y Fm(Mo)o(v)o(e)g(to)h(the)
-g(end)h(of)f(the)g(line.)75 1179 y Fl(forward-char)f(\(C-f\))315
-1234 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75
-1325 y Fl(backward-char)e(\(C-b\))315 1380 y Fm(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)75 1471 y Fl(forward-word)f(\(M-f\))315
-1526 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h
-(w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315
-1581 y(digits.)75 1672 y Fl(backward-word)e(\(M-b\))315
-1727 y Fm(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o
-(t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315
-1782 y(of)e(letters)g(and)g(digits.)75 1873 y Fl(clear-screen)f
-(\(C-l\))315 1928 y Fm(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g
-(curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g
-(top)315 1982 y(of)i(the)g(screen.)75 2074 y Fl(redraw-current-line)e
-(\(\))315 2128 y Fm(Refresh)i(the)g(curren)o(t)g(line.)22
-b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239
-y Fb(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f
-(History)75 2360 y Fl(accept-line)14 b(\(Newline)g(or)h(Return\))315
-2414 y Fm(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
-f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
-2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
-(future)g(recall)h(with)f Fl(add_history\(\))p Fm(.)k(If)d(this)315
-2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history)
-g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75
-2615 y Fl(previous-history)c(\(C-p\))315 2670 y Fm(Mo)o(v)o(e)h(`bac)o
-(k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h
-(command.)p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(13)75 149 y Fl(next-history)14 b(\(C-n\))315 204 y
-Fm(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o
-(hing)h(the)f(next)h(command.)75 307 y Fl(beginning-of-history)c
-(\(M-<\))315 362 y Fm(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f
-(the)f(history)l(.)75 465 y Fl(end-of-history)e(\(M->\))315
-520 y Fm(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f
-(i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75
-624 y Fl(reverse-search-history)c(\(C-r\))315 678 y Fm(Searc)o(h)k(bac)
-o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)
-h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836
-y Fl(forward-search-history)c(\(C-s\))315 891 y Fm(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)
-o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049
-y Fl(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
-1104 y Fm(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o
-(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315
-1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o
-(h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214
-y(user.)75 1317 y Fl(non-incremental-forward-se)o(arch-hi)o(story)12
-b(\(M-n\))315 1372 y Fm(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f
-(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)
-315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i
-(searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315
-1481 y(user.)75 1584 y Fl(history-search-forward)f(\(\))315
-1639 y Fm(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f
-(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315
-1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
-(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
-b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-1852 y Fl(history-search-backward)c(\(\))315 1907 y Fm(Searc)o(h)18
-b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f
-(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h
-(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18
-b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315
-2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-2120 y Fl(yank-nth-arg)e(\(M-C-y\))315 2174 y Fm(Insert)f(the)g
-(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h
-(the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e
-(p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fc(n)p
-Fm(,)h(insert)g(the)g Fc(n)p Fm(th)g(w)o(ord)g(from)f(the)315
-2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i
-(command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315
-2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g
-Fc(n)p Fm(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g
-(command.)75 2442 y Fl(yank-last-arg)g(\(M-.)i(or)g(M-_\))315
-2497 y Fm(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e
-(\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552
-y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)
-o(e)g(exactly)h(lik)o(e)g Fl(yank-nth-arg)p Fm(.)j(Succes-)315
-2606 y(siv)o(e)f(calls)g(to)f Fl(yank-last-arg)e Fm(mo)o(v)o(e)i(bac)o
-(k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315
-2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p
+%%Page: 1 5
+1 4 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(1)150 299 y Fk(1)80 b(Command)52
+b(Line)i(Editing)275 511 y Fo(This)28 b(c)m(hapter)j(describ)s(es)e
+(the)h(basic)g(features)h(of)f(the)h Fh(gnu)f Fo(command)g(line)f
+(editing)g(in)m(terface.)150 755 y Fm(1.1)68 b(In)l(tro)t(duction)45
+b(to)g(Line)h(Editing)275 995 y Fo(The)29 b(follo)m(wing)g(paragraphs)h
+(describ)s(e)f(the)h(notation)h(used)e(to)j(represen)m(t)e(k)m(eystrok)
+m(es.)275 1125 y(The)i(text)j Fg(C-k)d Fo(is)h(read)g(as)h(`Con)m
+(trol-K')f(and)g(describ)s(es)f(the)h(c)m(haracter)i(pro)s(duced)d
+(when)g(the)3663 1122 y Ff(h)p 3687 1069 38 4 v 3687
+1125 a Fe(k)p 3687 1140 V 3720 1122 a Ff(i)150 1235 y
+Fo(k)m(ey)f(is)f(pressed)f(while)f(the)j(Con)m(trol)f(k)m(ey)h(is)f
+(depressed.)275 1365 y(The)h(text)i Fg(M-k)e Fo(is)g(read)g(as)i
+(`Meta-K')g(and)f(describ)s(es)e(the)i(c)m(haracter)h(pro)s(duced)e
+(when)f(the)i(Meta)150 1474 y(k)m(ey)d(\(if)f(y)m(ou)h(ha)m(v)m(e)g
+(one\))g(is)f(depressed,)g(and)f(the)1859 1471 y Ff(h)p
+1883 1418 V 1883 1474 a Fe(k)p 1883 1490 V 1916 1471
+a Ff(i)1974 1474 y Fo(k)m(ey)j(is)d(pressed.)39 b(The)28
+b(Meta)i(k)m(ey)f(is)f(lab)s(eled)3558 1471 y Ff(h)p
+3582 1418 143 4 v 3582 1474 a Fe(AL)-6 b(T)p 3582 1490
+V 3720 1471 a Ff(i)150 1584 y Fo(on)26 b(man)m(y)g(k)m(eyb)s(oards.)39
+b(On)26 b(k)m(eyb)s(oards)g(with)f(t)m(w)m(o)i(k)m(eys)g(lab)s(eled)
+2425 1581 y Ff(h)p 2450 1528 V 2450 1584 a Fe(AL)-6 b(T)p
+2450 1599 V 2587 1581 a Ff(i)2643 1584 y Fo(\(usually)25
+b(to)i(either)e(side)g(of)i(the)150 1693 y(space)32 b(bar\),)g(the)775
+1690 y Ff(h)p 799 1637 V 799 1693 a Fe(AL)-6 b(T)p 799
+1709 V 937 1690 a Ff(i)998 1693 y Fo(on)32 b(the)f(left)g(side)g(is)f
+(generally)h(set)g(to)i(w)m(ork)e(as)h(a)f(Meta)i(k)m(ey)-8
+b(.)45 b(The)3393 1690 y Ff(h)p 3417 1637 V 3417 1693
+a Fe(AL)-6 b(T)p 3417 1709 V 3555 1690 a Ff(i)3616 1693
+y Fo(k)m(ey)150 1803 y(on)33 b(the)h(righ)m(t)f(ma)m(y)h(also)f(b)s(e)g
+(con\014gured)f(to)i(w)m(ork)g(as)g(a)f(Meta)i(k)m(ey)f(or)g(ma)m(y)g
+(b)s(e)e(con\014gured)h(as)h(some)150 1913 y(other)d(mo)s(di\014er,)d
+(suc)m(h)i(as)h(a)g(Comp)s(ose)f(k)m(ey)h(for)f(t)m(yping)g(accen)m
+(ted)i(c)m(haracters.)275 2043 y(If)21 b(y)m(ou)h(do)g(not)g(ha)m(v)m
+(e)h(a)f(Meta)h(or)1388 2040 y Ff(h)p 1412 1987 V 1412
+2043 a Fe(AL)-6 b(T)p 1412 2058 V 1550 2040 a Ff(i)1601
+2043 y Fo(k)m(ey)e(,)25 b(or)d(another)g(k)m(ey)h(w)m(orking)e(as)h(a)g
+(Meta)h(k)m(ey)-8 b(,)25 b(the)d(iden)m(tical)150 2152
+y(k)m(eystrok)m(e)i(can)f(b)s(e)f(generated)i(b)m(y)e(t)m(yping)1619
+2149 y Ff(h)p 1643 2096 139 4 v 1643 2152 a Fe(ESC)p
+1643 2168 V 1777 2149 a Ff(i)1829 2152 y Fi(\014rst)p
+Fo(,)j(and)d(then)g(t)m(yping)2678 2149 y Ff(h)p 2703
+2096 38 4 v 2703 2152 a Fe(k)p 2703 2168 V 2736 2149
+a Ff(i)2765 2152 y Fo(.)38 b(Either)22 b(pro)s(cess)g(is)f(kno)m(wn)150
+2262 y(as)31 b Fd(metafying)38 b Fo(the)850 2259 y Ff(h)p
+874 2206 V 874 2262 a Fe(k)p 874 2277 V 907 2259 a Ff(i)968
+2262 y Fo(k)m(ey)-8 b(.)275 2392 y(The)39 b(text)j Fg(M-C-k)d
+Fo(is)g(read)h(as)h(`Meta-Con)m(trol-k')i(and)c(describ)s(es)g(the)h(c)
+m(haracter)i(pro)s(duced)d(b)m(y)150 2501 y Fd(metafying)f
+Fg(C-k)p Fo(.)275 2632 y(In)e(addition,)h(sev)m(eral)g(k)m(eys)g(ha)m
+(v)m(e)h(their)e(o)m(wn)h(names.)60 b(Sp)s(eci\014cally)-8
+b(,)2768 2629 y Ff(h)p 2792 2576 146 4 v 2792 2632 a
+Fe(DEL)p 2792 2647 V 2934 2629 a Ff(i)2964 2632 y Fo(,)3028
+2629 y Ff(h)p 3052 2576 139 4 v 3052 2632 a Fe(ESC)p
+3052 2647 V 3186 2629 a Ff(i)3216 2632 y Fo(,)3279 2629
+y Ff(h)p 3303 2576 144 4 v 3303 2632 a Fe(LFD)p 3303
+2647 V 3443 2629 a Ff(i)3473 2632 y Fo(,)3537 2629 y
+Ff(h)p 3561 2576 139 4 v 3561 2632 a Fe(SPC)p 3561 2647
+V 3695 2629 a Ff(i)3725 2632 y Fo(,)150 2738 y Ff(h)p
+174 2685 151 4 v 174 2741 a Fe(RET)p 174 2757 V 321 2738
+a Ff(i)351 2741 y Fo(,)47 b(and)612 2738 y Ff(h)p 637
+2685 148 4 v 637 2741 a Fe(T)-6 b(AB)p 637 2757 V 780
+2738 a Ff(i)853 2741 y Fo(all)43 b(stand)g(for)g(themselv)m(es)h(when)e
+(seen)i(in)e(this)g(text,)48 b(or)43 b(in)f(an)i(init)d(\014le)i(\(see)
+150 2851 y(Section)c(1.3)g([Readline)f(Init)f(File],)k(page)e(4\).)67
+b(If)38 b(y)m(our)h(k)m(eyb)s(oard)f(lac)m(ks)h(a)2888
+2848 y Ff(h)p 2912 2795 144 4 v 2912 2851 a Fe(LFD)p
+2912 2866 V 3052 2848 a Ff(i)3121 2851 y Fo(k)m(ey)-8
+b(,)42 b(t)m(yping)3604 2848 y Ff(h)p 3628 2795 97 4
+v 3628 2851 a Fe(C-j)p 3628 2866 V 3720 2848 a Ff(i)150
+2960 y Fo(will)27 b(pro)s(duce)h(the)i(desired)e(c)m(haracter.)42
+b(The)1748 2957 y Ff(h)p 1772 2904 151 4 v 1772 2960
+a Fe(RET)p 1772 2976 V 1919 2957 a Ff(i)1978 2960 y Fo(k)m(ey)30
+b(ma)m(y)g(b)s(e)f(lab)s(eled)2770 2957 y Ff(h)p 2794
+2904 217 4 v 2794 2960 a Fe(Return)p 2794 2976 V 3007
+2957 a Ff(i)3066 2960 y Fo(or)3176 2957 y Ff(h)p 3201
+2904 172 4 v 3201 2960 a Fe(En)n(ter)p 3201 2976 V 3368
+2957 a Ff(i)3427 2960 y Fo(on)h(some)150 3070 y(k)m(eyb)s(oards.)150
+3314 y Fm(1.2)68 b(Readline)47 b(In)l(teraction)275 3554
+y Fo(Often)24 b(during)f(an)i(in)m(teractiv)m(e)h(session)f(y)m(ou)g(t)
+m(yp)s(e)h(in)e(a)h(long)g(line)e(of)j(text,)h(only)e(to)g(notice)h
+(that)g(the)150 3663 y(\014rst)32 b(w)m(ord)g(on)g(the)g(line)f(is)h
+(missp)s(elled.)43 b(The)32 b(Readline)f(library)f(giv)m(es)i(y)m(ou)h
+(a)g(set)g(of)f(commands)g(for)150 3773 y(manipulating)27
+b(the)j(text)h(as)f(y)m(ou)g(t)m(yp)s(e)g(it)f(in,)g(allo)m(wing)f(y)m
+(ou)i(to)h(just)e(\014x)g(y)m(our)h(t)m(yp)s(o,)g(and)g(not)g(forcing)
+150 3883 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)28
+b(of)g(the)h(line.)38 b(Using)27 b(these)i(editing)e(commands,)h(y)m
+(ou)h(mo)m(v)m(e)g(the)g(cursor)150 3992 y(to)35 b(the)f(place)h(that)f
+(needs)g(correction,)i(and)e(delete)g(or)g(insert)g(the)g(text)h(of)g
+(the)f(corrections.)53 b(Then,)150 4102 y(when)30 b(y)m(ou)i(are)f
+(satis\014ed)f(with)g(the)h(line,)f(y)m(ou)i(simply)c(press)2320
+4099 y Ff(h)p 2344 4046 151 4 v 2344 4102 a Fe(RET)p
+2344 4117 V 2491 4099 a Ff(i)2520 4102 y Fo(.)43 b(Y)-8
+b(ou)32 b(do)f(not)g(ha)m(v)m(e)i(to)e(b)s(e)g(at)h(the)150
+4211 y(end)j(of)h(the)g(line)e(to)j(press)1126 4208 y
+Ff(h)p 1150 4155 V 1150 4211 a Fe(RET)p 1150 4227 V 1297
+4208 a Ff(i)1327 4211 y Fo(;)h(the)e(en)m(tire)g(line)e(is)h(accepted)i
+(regardless)e(of)h(the)g(lo)s(cation)g(of)g(the)150 4321
+y(cursor)30 b(within)e(the)i(line.)150 4532 y Fc(1.2.1)63
+b(Readline)40 b(Bare)h(Essen)m(tials)275 4772 y Fo(In)22
+b(order)g(to)i(en)m(ter)g(c)m(haracters)g(in)m(to)f(the)h(line,)f
+(simply)d(t)m(yp)s(e)k(them.)38 b(The)22 b(t)m(yp)s(ed)h(c)m(haracter)i
+(app)s(ears)150 4881 y(where)32 b(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.)46
+b(If)32 b(y)m(ou)h(mist)m(yp)s(e)f(a)150 4991 y(c)m(haracter,)g(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)i(the)g(mist)m(yp)s(ed)d(c)m(haracter.)275 5121
+y(Sometimes)i(y)m(ou)h(ma)m(y)h(mist)m(yp)s(e)d(a)j(c)m(haracter,)g
+(and)e(not)i(notice)f(the)g(error)f(un)m(til)f(y)m(ou)i(ha)m(v)m(e)h(t)
+m(yp)s(ed)150 5230 y(sev)m(eral)d(other)g(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,)h(and)150
+5340 y(then)g(correct)i(y)m(our)e(mistak)m(e.)41 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)f
+(with)f Fg(C-f)p Fo(.)p eop
+%%Page: 2 6
+2 5 bop 150 -116 a Fo(2)2645 b(GNU)31 b(Readline)e(Library)275
+299 y(When)j(y)m(ou)h(add)f(text)h(in)e(the)i(middle)d(of)j(a)g(line,)f
+(y)m(ou)g(will)e(notice)j(that)g(c)m(haracters)h(to)g(the)e(righ)m(t)
+150 408 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(that)f(y)m(ou)g(ha)m(v)m(e)h
+(inserted.)39 b(Lik)m(ewise,)150 518 y(when)e(y)m(ou)g(delete)h(text)h
+(b)s(ehind)34 b(the)k(cursor,)h(c)m(haracters)g(to)f(the)g(righ)m(t)f
+(of)h(the)g(cursor)e(are)i(`pulled)150 628 y(bac)m(k')24
+b(to)f(\014ll)e(in)g(the)i(blank)e(space)j(created)f(b)m(y)g(the)g
+(remo)m(v)-5 b(al)23 b(of)g(the)g(text.)39 b(A)23 b(list)e(of)i(the)g
+(bare)f(essen)m(tials)150 737 y(for)30 b(editing)f(the)i(text)g(of)g
+(an)f(input)e(line)h(follo)m(ws.)150 892 y Fg(C-b)336
+b Fo(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)150
+1048 y Fg(C-f)336 b Fo(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m
+(haracter.)150 1200 y Ff(h)p 174 1147 146 4 v 174 1203
+a Fe(DEL)p 174 1218 V 316 1200 a Ff(i)376 1203 y Fo(or)487
+1200 y Ff(h)p 512 1147 317 4 v 512 1203 a Fe(Bac)n(kspace)p
+512 1218 V 824 1200 a Ff(i)630 1312 y Fo(Delete)h(the)e(c)m(haracter)i
+(to)f(the)g(left)f(of)g(the)h(cursor.)150 1467 y Fg(C-d)336
+b Fo(Delete)32 b(the)e(c)m(haracter)i(underneath)d(the)i(cursor.)150
+1622 y(Prin)m(ting)e(c)m(haracters)630 1732 y(Insert)h(the)g(c)m
+(haracter)i(in)m(to)f(the)f(line)f(at)i(the)g(cursor.)150
+1887 y Fg(C-_)e Fo(or)i Fg(C-x)e(C-u)630 1997 y Fo(Undo)k(the)h(last)f
+(editing)f(command.)50 b(Y)-8 b(ou)34 b(can)f(undo)g(all)f(the)h(w)m(a)
+m(y)i(bac)m(k)f(to)g(an)g(empt)m(y)630 2106 y(line.)150
+2262 y(\(Dep)s(ending)f(on)h(y)m(our)g(con\014guration,)g(the)1726
+2259 y Ff(h)p 1750 2205 V 1750 2262 a Fe(Bac)n(kspace)p
+1750 2277 V 2063 2259 a Ff(i)2127 2262 y Fo(k)m(ey)h(b)s(e)e(set)h(to)h
+(delete)f(the)g(c)m(haracter)i(to)f(the)150 2371 y(left)e(of)g(the)g
+(cursor)f(and)h(the)1192 2368 y Ff(h)p 1216 2315 146
+4 v 1216 2371 a Fe(DEL)p 1216 2386 V 1358 2368 a Ff(i)1421
+2371 y Fo(k)m(ey)g(set)h(to)g(delete)f(the)g(c)m(haracter)i(underneath)
+c(the)i(cursor,)h(lik)m(e)150 2481 y Fg(C-d)p Fo(,)c(rather)g(than)g
+(the)h(c)m(haracter)h(to)f(the)f(left)g(of)h(the)f(cursor.\))150
+2698 y Fc(1.2.2)63 b(Readline)40 b(Mo)m(v)m(emen)m(t)g(Commands)275
+2940 y Fo(The)25 b(ab)s(o)m(v)m(e)i(table)f(describ)s(es)f(the)h(most)h
+(basic)e(k)m(eystrok)m(es)j(that)f(y)m(ou)f(need)g(in)f(order)g(to)i
+(do)f(editing)150 3050 y(of)g(the)f(input)f(line.)37
+b(F)-8 b(or)27 b(y)m(our)e(con)m(v)m(enience,)j(man)m(y)d(other)h
+(commands)f(ha)m(v)m(e)i(b)s(een)e(added)g(in)f(addition)150
+3160 y(to)33 b Fg(C-b)p Fo(,)e Fg(C-f)p Fo(,)h Fg(C-d)p
+Fo(,)g(and)1043 3157 y Ff(h)p 1067 3104 V 1067 3160 a
+Fe(DEL)p 1067 3175 V 1209 3157 a Ff(i)1239 3160 y Fo(.)45
+b(Here)33 b(are)f(some)g(commands)g(for)g(mo)m(ving)g(more)g(rapidly)d
+(ab)s(out)j(the)150 3269 y(line.)150 3424 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
+3579 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 3735 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)f(comp)s(osed)h(of)h(letters)g(and)e
+(digits.)150 3890 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 4045 y Fg(C-l)336 b Fo(Clear)30 b(the)g(screen,)h
+(reprin)m(ting)d(the)j(curren)m(t)f(line)f(at)i(the)f(top.)275
+4200 y(Notice)25 b(ho)m(w)g Fg(C-f)e Fo(mo)m(v)m(es)j(forw)m(ard)e(a)h
+(c)m(haracter,)j(while)23 b Fg(M-f)g Fo(mo)m(v)m(es)j(forw)m(ard)e(a)h
+(w)m(ord.)39 b(It)24 b(is)g(a)h(lo)s(ose)150 4310 y(con)m(v)m(en)m
+(tion)31 b(that)g(con)m(trol)f(k)m(eystrok)m(es)i(op)s(erate)e(on)g(c)m
+(haracters)h(while)d(meta)j(k)m(eystrok)m(es)h(op)s(erate)e(on)150
+4419 y(w)m(ords.)150 4637 y Fc(1.2.3)63 b(Readline)40
+b(Killing)i(Commands)275 4879 y Fd(Killing)f Fo(text)e(means)e(to)h
+(delete)f(the)h(text)g(from)f(the)g(line,)h(but)f(to)h(sa)m(v)m(e)h(it)
+d(a)m(w)m(a)m(y)k(for)d(later)g(use,)150 4988 y(usually)32
+b(b)m(y)i Fd(y)m(anking)41 b Fo(\(re-inserting\))33 b(it)h(bac)m(k)h
+(in)m(to)f(the)g(line.)50 b(\(`Cut')35 b(and)e(`paste')i(are)g(more)f
+(recen)m(t)150 5098 y(jargon)d(for)f(`kill')e(and)i(`y)m(ank'.\))275
+5230 y(If)f(the)i(description)d(for)i(a)h(command)f(sa)m(ys)g(that)h
+(it)f(`kills')e(text,)k(then)e(y)m(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m
+(ou)150 5340 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)e(a)i(di\013eren)m
+(t)f(\(or)h(the)f(same\))h(place)g(later.)p eop
+%%Page: 3 7
+3 6 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(3)275 299 y(When)23 b(y)m(ou)g(use)g(a)h(kill)d
+(command,)j(the)g(text)g(is)e(sa)m(v)m(ed)j(in)d(a)h
+Fd(kill-ring)p Fo(.)35 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv)
+m(e)150 408 y(kills)28 b(sa)m(v)m(e)33 b(all)d(of)h(the)g(killed)e
+(text)j(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)e(bac)m
+(k,)i(y)m(ou)g(get)g(it)e(all.)41 b(The)150 518 y(kill)30
+b(ring)h(is)g(not)i(line)e(sp)s(eci\014c;)h(the)h(text)g(that)g(y)m(ou)
+g(killed)c(on)k(a)f(previously)e(t)m(yp)s(ed)j(line)d(is)i(a)m(v)-5
+b(ailable)150 628 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)g
+(when)e(y)m(ou)i(are)g(t)m(yping)e(another)i(line.)275
+760 y(Here)f(is)g(the)g(list)f(of)i(commands)f(for)g(killing)d(text.)
+150 916 y Fg(C-k)336 b Fo(Kill)28 b(the)i(text)i(from)e(the)g(curren)m
+(t)g(cursor)g(p)s(osition)f(to)i(the)f(end)g(of)g(the)h(line.)150
+1072 y Fg(M-d)336 b Fo(Kill)24 b(from)i(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)d(b)s(et)m(w)m(een)i(w)m
+(ords,)g(to)g(the)630 1182 y(end)j(of)g(the)h(next)f(w)m(ord.)41
+b(W)-8 b(ord)30 b(b)s(oundaries)e(are)j(the)g(same)f(as)h(those)g(used)
+f(b)m(y)g Fg(M-f)p Fo(.)150 1337 y Fg(M-)246 1334 y Ff(h)p
+270 1281 146 4 v 270 1337 a Fe(DEL)p 270 1353 V 411 1334
+a Ff(i)630 1337 y Fo(Kill)e(from)i(the)h(cursor)f(the)g(start)h(of)g
+(the)g(curren)m(t)f(w)m(ord,)h(or,)f(if)g(b)s(et)m(w)m(een)h(w)m(ords,)
+f(to)i(the)630 1447 y(start)39 b(of)f(the)h(previous)e(w)m(ord.)64
+b(W)-8 b(ord)39 b(b)s(oundaries)d(are)j(the)f(same)h(as)g(those)f(used)
+g(b)m(y)630 1557 y Fg(M-b)p Fo(.)150 1712 y Fg(C-w)336
+b Fo(Kill)29 b(from)h(the)i(cursor)e(to)i(the)g(previous)d(whitespace.)
+43 b(This)30 b(is)g(di\013eren)m(t)h(than)g Fg(M-)3555
+1709 y Ff(h)p 3578 1656 V 3578 1712 a Fe(DEL)p 3578 1728
+V 3720 1709 a Ff(i)630 1822 y Fo(b)s(ecause)f(the)h(w)m(ord)f(b)s
+(oundaries)e(di\013er.)275 1978 y(Here)42 b(is)e(ho)m(w)i(to)g
+Fd(y)m(ank)47 b Fo(the)42 b(text)g(bac)m(k)h(in)m(to)e(the)h(line.)72
+b(Y)-8 b(anking)42 b(means)f(to)h(cop)m(y)h(the)e(most-)150
+2087 y(recen)m(tly-killed)29 b(text)i(from)f(the)g(kill)f(bu\013er.)150
+2243 y Fg(C-y)336 b Fo(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)g
+(killed)d(text)j(bac)m(k)g(in)m(to)g(the)f(bu\013er)g(at)h(the)f
+(cursor.)150 2399 y Fg(M-y)336 b Fo(Rotate)36 b(the)f(kill-ring,)e(and)
+h(y)m(ank)h(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i
+(this)e(if)h(the)h(prior)630 2509 y(command)30 b(is)g
+Fg(C-y)f Fo(or)h Fg(M-y)p Fo(.)150 2727 y Fc(1.2.4)63
+b(Readline)40 b(Argumen)m(ts)275 2970 y Fo(Y)-8 b(ou)29
+b(can)h(pass)f(n)m(umeric)f(argumen)m(ts)h(to)h(Readline)e(commands.)40
+b(Sometimes)29 b(the)g(argumen)m(t)h(acts)150 3079 y(as)40
+b(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)e(it)h(is)f(the)h
+Fi(sign)47 b Fo(of)41 b(the)f(argumen)m(t)g(that)h(is)e(signi\014can)m
+(t.)69 b(If)40 b(y)m(ou)150 3189 y(pass)33 b(a)h(negativ)m(e)h(argumen)
+m(t)f(to)g(a)g(command)f(whic)m(h)f(normally)g(acts)i(in)e(a)i(forw)m
+(ard)f(direction,)g(that)150 3298 y(command)i(will)e(act)j(in)e(a)i
+(bac)m(kw)m(ard)f(direction.)55 b(F)-8 b(or)36 b(example,)g(to)g(kill)d
+(text)j(bac)m(k)g(to)g(the)g(start)g(of)150 3408 y(the)31
+b(line,)e(y)m(ou)h(migh)m(t)g(t)m(yp)s(e)h(`)p Fn(M--)f(C-k)p
+Fo('.)275 3541 y(The)d(general)h(w)m(a)m(y)i(to)e(pass)g(n)m(umeric)f
+(argumen)m(ts)i(to)g(a)f(command)g(is)f(to)i(t)m(yp)s(e)f(meta)i
+(digits)c(b)s(efore)150 3650 y(the)31 b(command.)42 b(If)30
+b(the)h(\014rst)f(`digit')g(t)m(yp)s(ed)h(is)f(a)h(min)m(us)e(sign)h
+(\(`)p Fn(-)p Fo('\),)i(then)f(the)g(sign)e(of)i(the)g(argumen)m(t)150
+3760 y(will)36 b(b)s(e)h(negativ)m(e.)65 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)e(to)h(get)i(the)e(argumen)m(t)h
+(started,)i(y)m(ou)150 3869 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)e
+(of)i(the)g(digits,)f(and)h(then)f(the)h(command.)40
+b(F)-8 b(or)30 b(example,)f(to)g(giv)m(e)h(the)f Fg(C-d)150
+3979 y Fo(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)e
+(t)m(yp)s(e)i(`)p Fn(M-1)29 b(0)h(C-d)p Fo(',)39 b(whic)m(h)d(will)f
+(delete)j(the)f(next)h(ten)150 4089 y(c)m(haracters)32
+b(on)e(the)h(input)d(line.)150 4307 y Fc(1.2.5)63 b(Searc)m(hing)40
+b(for)h(Commands)f(in)h(the)g(History)275 4550 y Fo(Readline)30
+b(pro)m(vides)i(commands)g(for)g(searc)m(hing)g(through)f(the)i
+(command)f(history)f(for)h(lines)e(con-)150 4659 y(taining)f(a)i(sp)s
+(eci\014ed)e(string.)39 b(There)30 b(are)h(t)m(w)m(o)h(searc)m(h)f(mo)s
+(des:)40 b Fd(incremen)m(tal)33 b Fo(and)d Fd(non-incremen)m(tal)p
+Fo(.)275 4792 y(Incremen)m(tal)25 b(searc)m(hes)i(b)s(egin)d(b)s(efore)
+h(the)h(user)f(has)h(\014nished)d(t)m(yping)i(the)h(searc)m(h)g
+(string.)38 b(As)26 b(eac)m(h)150 4902 y(c)m(haracter)37
+b(of)e(the)h(searc)m(h)g(string)e(is)h(t)m(yp)s(ed,)h(Readline)e
+(displa)m(ys)g(the)h(next)h(en)m(try)g(from)e(the)i(history)150
+5011 y(matc)m(hing)24 b(the)g(string)f(t)m(yp)s(ed)h(so)g(far.)39
+b(An)23 b(incremen)m(tal)h(searc)m(h)g(requires)f(only)g(as)h(man)m(y)g
+(c)m(haracters)i(as)150 5121 y(needed)i(to)i(\014nd)d(the)i(desired)e
+(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)e(the)i(history)f(for)g(a)i(particular)150
+5230 y(string,)f(t)m(yp)s(e)g Fg(C-r)p Fo(.)40 b(T)m(yping)28
+b Fg(C-s)h Fo(searc)m(hes)h(forw)m(ard)f(through)g(the)g(history)-8
+b(.)40 b(The)29 b(c)m(haracters)i(presen)m(t)150 5340
+y(in)37 b(the)h(v)-5 b(alue)37 b(of)h(the)g Fn(isearch-terminators)33
+b Fo(v)-5 b(ariable)37 b(are)h(used)f(to)i(terminate)f(an)g(incremen)m
+(tal)p eop
+%%Page: 4 8
+4 7 bop 150 -116 a Fo(4)2645 b(GNU)31 b(Readline)e(Library)150
+299 y(searc)m(h.)63 b(If)38 b(that)g(v)-5 b(ariable)36
+b(has)i(not)g(b)s(een)f(assigned)g(a)h(v)-5 b(alue,)39
+b(the)2578 296 y Ff(h)p 2602 243 139 4 v 2602 299 a Fe(ESC)p
+2602 314 V 2736 296 a Ff(i)2804 299 y Fo(and)e Fg(C-J)f
+Fo(c)m(haracters)k(will)150 408 y(terminate)i(an)h(incremen)m(tal)e
+(searc)m(h.)78 b Fg(C-g)41 b Fo(will)f(ab)s(ort)i(an)g(incremen)m(tal)g
+(searc)m(h)h(and)f(restore)h(the)150 518 y(original)27
+b(line.)39 b(When)28 b(the)h(searc)m(h)h(is)e(terminated,)h(the)g
+(history)f(en)m(try)h(con)m(taining)f(the)h(searc)m(h)h(string)150
+628 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 769 y(T)-8
+b(o)31 b(\014nd)e(other)j(matc)m(hing)f(en)m(tries)g(in)e(the)i
+(history)f(list,)g(t)m(yp)s(e)i Fg(C-r)e Fo(or)h Fg(C-s)f
+Fo(as)h(appropriate.)42 b(This)150 878 y(will)23 b(searc)m(h)k(bac)m
+(kw)m(ard)g(or)f(forw)m(ard)g(in)e(the)j(history)e(for)h(the)g(next)g
+(en)m(try)h(matc)m(hing)f(the)g(searc)m(h)h(string)150
+988 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)f(command)g(will)e(terminate)j
+(the)150 1098 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38
+b(F)-8 b(or)22 b(instance,)g(a)2127 1095 y Ff(h)p 2151
+1042 151 4 v 2151 1098 a Fe(RET)p 2151 1113 V 2298 1095
+a Ff(i)2349 1098 y Fo(will)c(terminate)j(the)g(searc)m(h)h(and)e
+(accept)150 1207 y(the)30 b(line,)e(thereb)m(y)h(executing)h(the)f
+(command)g(from)g(the)h(history)e(list.)39 b(A)29 b(mo)m(v)m(emen)m(t)j
+(command)d(will)150 1317 y(terminate)h(the)h(searc)m(h,)g(mak)m(e)h
+(the)e(last)g(line)f(found)g(the)i(curren)m(t)f(line,)f(and)h(b)s(egin)
+f(editing.)275 1458 y(Readline)k(remem)m(b)s(ers)h(the)h(last)g
+(incremen)m(tal)f(searc)m(h)h(string.)53 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 1567
+y(an)m(y)i(in)m(terv)m(ening)e(c)m(haracters)j(de\014ning)d(a)i(new)f
+(searc)m(h)h(string,)g(an)m(y)g(remem)m(b)s(ered)e(searc)m(h)i(string)f
+(is)150 1677 y(used.)275 1818 y(Non-incremen)m(tal)46
+b(searc)m(hes)i(read)e(the)h(en)m(tire)g(searc)m(h)g(string)f(b)s
+(efore)g(starting)g(to)i(searc)m(h)f(for)150 1928 y(matc)m(hing)c
+(history)e(lines.)76 b(The)42 b(searc)m(h)h(string)f(ma)m(y)h(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
+2037 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
+2311 y Fm(1.3)68 b(Readline)47 b(Init)e(File)275 2562
+y Fo(Although)f(the)h(Readline)f(library)e(comes)k(with)e(a)i(set)f(of)
+g(Emacs-lik)m(e)g(k)m(eybindings)e(installed)150 2672
+y(b)m(y)f(default,)h(it)f(is)e(p)s(ossible)f(to)k(use)e(a)h(di\013eren)
+m(t)f(set)h(of)g(k)m(eybindings.)72 b(An)m(y)42 b(user)f(can)h
+(customize)150 2781 y(programs)32 b(that)h(use)f(Readline)f(b)m(y)i
+(putting)e(commands)h(in)f(an)h Fd(inputrc)k Fo(\014le,)d(con)m(v)m(en)
+m(tionally)f(in)f(his)150 2891 y(home)i(directory)-8
+b(.)49 b(The)33 b(name)g(of)g(this)f(\014le)h(is)f(tak)m(en)i(from)f
+(the)g(v)-5 b(alue)33 b(of)g(the)g(en)m(vironmen)m(t)g(v)-5
+b(ariable)150 3000 y Fn(INPUTRC)p Fo(.)39 b(If)30 b(that)h(v)-5
+b(ariable)29 b(is)g(unset,)h(the)h(default)f(is)f(`)p
+Fn(~/.inputrc)p Fo('.)275 3142 y(When)g(a)h(program)f(whic)m(h)g(uses)g
+(the)h(Readline)e(library)f(starts)j(up,)f(the)h(init)e(\014le)g(is)h
+(read,)h(and)f(the)150 3251 y(k)m(ey)i(bindings)c(are)k(set.)275
+3392 y(In)26 b(addition,)g(the)h Fn(C-x)i(C-r)d Fo(command)h(re-reads)g
+(this)e(init)g(\014le,)i(th)m(us)g(incorp)s(orating)e(an)m(y)i(c)m
+(hanges)150 3502 y(that)k(y)m(ou)g(migh)m(t)f(ha)m(v)m(e)h(made)g(to)g
+(it.)150 3739 y Fc(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275
+3990 y Fo(There)33 b(are)h(only)f(a)h(few)f(basic)g(constructs)h(allo)m
+(w)m(ed)f(in)g(the)h(Readline)e(init)g(\014le.)50 b(Blank)33
+b(lines)f(are)150 4100 y(ignored.)71 b(Lines)40 b(b)s(eginning)e(with)i
+(a)h(`)p Fn(#)p Fo(')g(are)h(commen)m(ts.)73 b(Lines)40
+b(b)s(eginning)e(with)h(a)j(`)p Fn($)p Fo(')f(indicate)150
+4209 y(conditional)26 b(constructs)i(\(see)g(Section)g(1.3.2)h
+([Conditional)d(Init)g(Constructs],)j(page)f(9\).)41
+b(Other)27 b(lines)150 4319 y(denote)k(v)-5 b(ariable)29
+b(settings)h(and)g(k)m(ey)h(bindings.)150 4488 y(V)-8
+b(ariable)30 b(Settings)630 4598 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)d
+(the)j(run-time)e(b)s(eha)m(vior)g(of)i(Readline)e(b)m(y)h(altering)f
+(the)i(v)-5 b(alues)40 b(of)630 4707 y(v)-5 b(ariables)32
+b(in)g(Readline)h(using)f(the)h Fn(set)g Fo(command)g(within)e(the)j
+(init)e(\014le.)49 b(The)33 b(syn)m(tax)630 4817 y(is)c(simple:)870
+4955 y Fn(set)47 b Fg(variable)56 b(value)630 5093 y
+Fo(Here,)29 b(for)e(example,)g(is)g(ho)m(w)g(to)h(c)m(hange)g(from)f
+(the)g(default)g(Emacs-lik)m(e)g(k)m(ey)h(binding)c(to)630
+5202 y(use)30 b Fn(vi)g Fo(line)f(editing)g(commands:)870
+5340 y Fn(set)47 b(editing-mode)d(vi)p eop
+%%Page: 5 9
+5 8 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(5)630 299 y(V)-8 b(ariable)34
+b(names)h(and)g(v)-5 b(alues,)35 b(where)g(appropriate,)g(are)h
+(recognized)f(without)f(regard)630 408 y(to)d(case.)630
+541 y(A)f(great)i(deal)e(of)h(run-time)e(b)s(eha)m(vior)g(is)g(c)m
+(hangeable)j(with)d(the)h(follo)m(wing)f(v)-5 b(ariables.)630
+697 y Fn(bell-style)1110 806 y Fo(Con)m(trols)43 b(what)h(happ)s(ens)e
+(when)h(Readline)g(w)m(an)m(ts)h(to)h(ring)d(the)i(termi-)1110
+916 y(nal)36 b(b)s(ell.)59 b(If)37 b(set)h(to)g(`)p Fn(none)p
+Fo(',)g(Readline)e(nev)m(er)i(rings)d(the)j(b)s(ell.)59
+b(If)36 b(set)i(to)1110 1026 y(`)p Fn(visible)p Fo(',)32
+b(Readline)g(uses)h(a)g(visible)d(b)s(ell)h(if)h(one)h(is)f(a)m(v)-5
+b(ailable.)48 b(If)33 b(set)g(to)1110 1135 y(`)p Fn(audible)p
+Fo(')j(\(the)i(default\),)h(Readline)d(attempts)i(to)h(ring)d(the)h
+(terminal's)1110 1245 y(b)s(ell.)630 1401 y Fn(comment-begin)1110
+1510 y Fo(The)29 b(string)f(to)i(insert)e(at)i(the)f(b)s(eginning)e(of)
+i(the)h(line)d(when)h(the)i Fn(insert-)1110 1620 y(comment)e
+Fo(command)j(is)e(executed.)42 b(The)29 b(default)h(v)-5
+b(alue)30 b(is)f Fn("#")p Fo(.)630 1775 y Fn(completion-ignore-case)
+1110 1885 y Fo(If)e(set)h(to)g(`)p Fn(on)p Fo(',)g(Readline)e(p)s
+(erforms)g(\014lename)g(matc)m(hing)i(and)f(completion)1110
+1995 y(in)i(a)i(case-insensitiv)m(e)f(fashion.)39 b(The)30
+b(default)g(v)-5 b(alue)29 b(is)h(`)p Fn(off)p Fo('.)630
+2150 y Fn(completion-query-items)1110 2260 y Fo(The)c(n)m(um)m(b)s(er)f
+(of)h(p)s(ossible)e(completions)h(that)i(determines)e(when)g(the)i
+(user)1110 2370 y(is)h(ask)m(ed)i(whether)f(the)h(list)e(of)h(p)s
+(ossibilities)c(should)i(b)s(e)i(displa)m(y)m(ed.)39
+b(If)29 b(the)1110 2479 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)d
+(completions)i(is)g(greater)i(than)e(this)g(v)-5 b(alue,)27
+b(Readline)1110 2589 y(will)d(ask)j(the)f(user)g(whether)g(or)g(not)h
+(he)f(wishes)f(to)j(view)d(them;)j(otherwise,)1110 2698
+y(they)d(are)f(simply)e(listed.)38 b(This)22 b(v)-5 b(ariable)23
+b(m)m(ust)i(b)s(e)e(set)i(to)g(an)g(in)m(teger)f(v)-5
+b(alue)1110 2808 y(greater)32 b(than)e(or)g(equal)g(to)h(0.)41
+b(The)30 b(default)g(limit)e(is)h Fn(100)p Fo(.)630 2964
+y Fn(convert-meta)1110 3073 y Fo(If)22 b(set)g(to)h(`)p
+Fn(on)p Fo(',)h(Readline)d(will)e(con)m(v)m(ert)24 b(c)m(haracters)f
+(with)e(the)h(eigh)m(th)g(bit)f(set)1110 3183 y(to)h(an)f
+Fh(asci)r(i)g Fo(k)m(ey)h(sequence)g(b)m(y)f(stripping)d(the)k(eigh)m
+(th)f(bit)f(and)h(pre\014xing)e(an)1110 3289 y Ff(h)p
+1134 3236 139 4 v 1134 3292 a Fe(ESC)p 1134 3308 V 1268
+3289 a Ff(i)1332 3292 y Fo(c)m(haracter,)36 b(con)m(v)m(erting)f(them)f
+(to)g(a)h(meta-pre\014xed)f(k)m(ey)g(sequence.)1110 3402
+y(The)c(default)f(v)-5 b(alue)30 b(is)g(`)p Fn(on)p Fo('.)630
+3558 y Fn(disable-completion)1110 3667 y Fo(If)36 b(set)h(to)h(`)p
+Fn(On)p Fo(',)g(Readline)d(will)f(inhibit)f(w)m(ord)k(completion.)58
+b(Completion)1110 3777 y(c)m(haracters)28 b(will)23 b(b)s(e)i(inserted)
+g(in)m(to)h(the)h(line)d(as)i(if)f(they)i(had)e(b)s(een)g(mapp)s(ed)
+1110 3886 y(to)31 b Fn(self-insert)p Fo(.)38 b(The)30
+b(default)f(is)h(`)p Fn(off)p Fo('.)630 4042 y Fn(editing-mode)1110
+4152 y Fo(The)e Fn(editing-mode)e Fo(v)-5 b(ariable)27
+b(con)m(trols)i(whic)m(h)e(default)h(set)i(of)e(k)m(ey)i(bind-)1110
+4261 y(ings)24 b(is)g(used.)38 b(By)26 b(default,)f(Readline)f(starts)h
+(up)f(in)g(Emacs)h(editing)f(mo)s(de,)1110 4371 y(where)29
+b(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)c(to)k(Emacs.)40
+b(This)28 b(v)-5 b(ariable)28 b(can)1110 4481 y(b)s(e)i(set)h(to)g
+(either)f(`)p Fn(emacs)p Fo(')f(or)h(`)p Fn(vi)p Fo('.)630
+4636 y Fn(enable-keypad)1110 4746 y Fo(When)23 b(set)h(to)g(`)p
+Fn(on)p Fo(',)h(Readline)d(will)f(try)i(to)h(enable)f(the)g
+(application)f(k)m(eypad)1110 4855 y(when)k(it)g(is)f(called.)39
+b(Some)27 b(systems)f(need)h(this)e(to)i(enable)f(the)h(arro)m(w)g(k)m
+(eys.)1110 4965 y(The)j(default)f(is)h(`)p Fn(off)p Fo('.)630
+5121 y Fn(expand-tilde)1110 5230 y Fo(If)d(set)h(to)h(`)p
+Fn(on)p Fo(',)f(tilde)e(expansion)h(is)f(p)s(erformed)g(when)h
+(Readline)f(attempts)1110 5340 y(w)m(ord)k(completion.)40
+b(The)30 b(default)f(is)h(`)p Fn(off)p Fo('.)p eop
+%%Page: 6 10
+6 9 bop 150 -116 a Fo(6)2645 b(GNU)31 b(Readline)e(Library)1110
+299 y(If)g(set)i(to)f(`)p Fn(on)p Fo(',)g(the)g(history)f(co)s(de)h
+(attempts)g(to)h(place)e(p)s(oin)m(t)g(at)i(the)f(same)1110
+408 y(lo)s(cation)j(on)g(eac)m(h)i(history)d(line)g(retriev)m(ed)h
+(with)f Fn(previous-history)d Fo(or)1110 518 y Fn(next-history)p
+Fo(.)630 696 y Fn(horizontal-scroll-mode)1110 806 y Fo(This)34
+b(v)-5 b(ariable)35 b(can)h(b)s(e)f(set)h(to)h(either)e(`)p
+Fn(on)p Fo(')h(or)g(`)p Fn(off)p Fo('.)57 b(Setting)35
+b(it)g(to)i(`)p Fn(on)p Fo(')1110 915 y(means)26 b(that)h(the)f(text)h
+(of)g(the)f(lines)e(b)s(eing)h(edited)h(will)d(scroll)i(horizon)m
+(tally)1110 1025 y(on)32 b(a)g(single)e(screen)i(line)e(when)g(they)i
+(are)g(longer)g(than)f(the)h(width)e(of)i(the)1110 1134
+y(screen,)27 b(instead)f(of)g(wrapping)e(on)m(to)j(a)f(new)g(screen)g
+(line.)37 b(By)27 b(default,)f(this)1110 1244 y(v)-5
+b(ariable)29 b(is)h(set)g(to)i(`)p Fn(off)p Fo('.)630
+1422 y Fn(input-meta)1110 1532 y Fo(If)f(set)g(to)h(`)p
+Fn(on)p Fo(',)g(Readline)e(will)e(enable)j(eigh)m(t-bit)g(input)e(\(it)
+i(will)d(not)k(clear)1110 1641 y(the)40 b(eigh)m(th)f(bit)g(in)f(the)i
+(c)m(haracters)h(it)e(reads\),)k(regardless)38 b(of)i(what)g(the)1110
+1751 y(terminal)e(claims)h(it)h(can)g(supp)s(ort.)68
+b(The)39 b(default)g(v)-5 b(alue)39 b(is)g(`)p Fn(off)p
+Fo('.)69 b(The)1110 1861 y(name)30 b Fn(meta-flag)e Fo(is)i(a)g(synon)m
+(ym)g(for)g(this)g(v)-5 b(ariable.)630 2039 y Fn(isearch-terminators)
+1110 2148 y Fo(The)51 b(string)g(of)h(c)m(haracters)h(that)f(should)d
+(terminate)j(an)g(incremen)m(tal)1110 2258 y(searc)m(h)25
+b(without)f(subsequen)m(tly)g(executing)h(the)g(c)m(haracter)h(as)f(a)g
+(command)1110 2367 y(\(see)45 b(Section)g(1.2.5)h([Searc)m(hing],)i
+(page)e(3\).)84 b(If)44 b(this)f(v)-5 b(ariable)43 b(has)i(not)1110
+2477 y(b)s(een)31 b(giv)m(en)g(a)h(v)-5 b(alue,)31 b(the)h(c)m
+(haracters)2494 2474 y Ff(h)p 2518 2421 139 4 v 2518
+2477 a Fe(ESC)p 2518 2492 V 2652 2474 a Ff(i)2713 2477
+y Fo(and)f Fg(C-J)g Fo(will)e(terminate)i(an)1110 2587
+y(incremen)m(tal)f(searc)m(h.)630 2765 y Fn(keymap)192
+b Fo(Sets)39 b(Readline's)e(idea)i(of)g(the)g(curren)m(t)f(k)m(eymap)h
+(for)g(k)m(ey)g(binding)d(com-)1110 2874 y(mands.)81
+b(Acceptable)46 b Fn(keymap)c Fo(names)i(are)h Fn(emacs)p
+Fo(,)i Fn(emacs-standard)p Fo(,)1110 2984 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 3093 y Fn(vi-insert)p
+Fo(.)64 b Fn(vi)38 b Fo(is)g(equiv)-5 b(alen)m(t)39 b(to)g
+Fn(vi-command)p Fo(;)i Fn(emacs)c Fo(is)h(equiv)-5 b(alen)m(t)1110
+3203 y(to)33 b Fn(emacs-standard)p Fo(.)41 b(The)31 b(default)g(v)-5
+b(alue)31 b(is)g Fn(emacs)p Fo(.)44 b(The)31 b(v)-5 b(alue)32
+b(of)g(the)1110 3313 y Fn(editing-mode)27 b Fo(v)-5 b(ariable)29
+b(also)i(a\013ects)g(the)g(default)e(k)m(eymap.)630 3491
+y Fn(mark-directories)1110 3600 y Fo(If)38 b(set)g(to)h(`)p
+Fn(on)p Fo(',)i(completed)d(directory)f(names)h(ha)m(v)m(e)i(a)e(slash)
+f(app)s(ended.)1110 3710 y(The)30 b(default)f(is)h(`)p
+Fn(on)p Fo('.)630 3888 y Fn(mark-modified-lines)1110
+3998 y Fo(This)k(v)-5 b(ariable,)36 b(when)f(set)h(to)h(`)p
+Fn(on)p Fo(',)g(causes)g(Readline)d(to)j(displa)m(y)d(an)h(as-)1110
+4107 y(terisk)e(\(`)p Fn(*)p Fo('\))i(at)f(the)g(start)g(of)g(history)f
+(lines)f(whic)m(h)g(ha)m(v)m(e)j(b)s(een)e(mo)s(di\014ed.)1110
+4217 y(This)c(v)-5 b(ariable)29 b(is)g(`)p Fn(off)p Fo(')h(b)m(y)g
+(default.)630 4395 y Fn(mark-symlinked-directori)o(es)1110
+4504 y Fo(If)44 b(set)h(to)h(`)p Fn(on)p Fo(',)i(completed)d(names)g
+(whic)m(h)e(are)i(sym)m(b)s(olic)e(links)g(to)i(di-)1110
+4614 y(rectories)i(ha)m(v)m(e)g(a)g(slash)e(app)s(ended)f(\(sub)5
+b(ject)47 b(to)g(the)f(v)-5 b(alue)46 b(of)g Fn(mark-)1110
+4724 y(directories)p Fo(\).)38 b(The)30 b(default)f(is)h(`)p
+Fn(off)p Fo('.)630 4902 y Fn(match-hidden-files)1110
+5011 y Fo(This)20 b(v)-5 b(ariable,)23 b(when)f(set)g(to)h(`)p
+Fn(on)p Fo(',)h(causes)f(Readline)e(to)i(matc)m(h)g(\014les)e(whose)
+1110 5121 y(names)44 b(b)s(egin)f(with)g(a)h(`)p Fn(.)p
+Fo(')g(\(hidden)e(\014les\))i(when)f(p)s(erforming)f(\014lename)1110
+5230 y(completion,)i(unless)c(the)h(leading)f(`)p Fn(.)p
+Fo(')i(is)f(supplied)d(b)m(y)j(the)h(user)f(in)f(the)1110
+5340 y(\014lename)30 b(to)h(b)s(e)e(completed.)41 b(This)29
+b(v)-5 b(ariable)29 b(is)g(`)p Fn(on)p Fo(')i(b)m(y)f(default.)p
eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fm(14)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fb(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5
-b(ext)75 286 y Fl(delete-char)14 b(\(C-d\))315 341 y
-Fm(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33
-b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g
-(line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j
-(and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q
-(ound)i(to)315 450 y Fl(delete-char)p Fm(,)13 b(then)j(return)f
-Fh(eof)p Fm(.)75 552 y Fl(backward-delete-char)d(\(Rubout\))315
-607 y Fm(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c
-(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315
-661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
-763 y Fl(forward-backward-delete-ch)o(ar)12 b(\(\))315
-818 y Fm(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
-(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
-872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
-(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
-927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029
-y Fl(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fm(Add)j(the)f(next)
-g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26
-b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138
-y(sequences)f(lik)o(e)h Fg(C-q)p Fm(,)d(for)h(example.)75
-1240 y Fl(tab-insert)f(\(M-)401 1238 y Ff(h)p 412 1212
-74 2 v 412 1240 a Fe(T)m(AB)p 412 1247 V 484 1238 a Ff(i)499
-1240 y Fl(\))315 1294 y Fm(Insert)h(a)g(tab)g(c)o(haracter.)75
-1396 y Fl(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
-1451 y Fm(Insert)g(y)o(ourself.)75 1552 y Fl(transpose-chars)e(\(C-t\))
-315 1607 y Fm(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e
-(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315
-1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28
-b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e
-(the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o
-(w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11
-b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75
-1873 y Fl(transpose-words)e(\(M-t\))315 1927 y Fm(Drag)i(the)h(w)o(ord)
-g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
-(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982
-y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e
-(is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the)
-315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75
-2138 y Fl(upcase-word)f(\(M-u\))315 2193 y Fm(Upp)q(ercase)j(the)f
-(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16
-b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248
-y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the)
-i(cursor.)75 2349 y Fl(downcase-word)d(\(M-l\))315 2404
-y Fm(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o
-(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase)
-315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)75 2560 y Fl(capitalize-word)e(\(M-c\))315
-2615 y Fm(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o
-(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315
-2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)p eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(15)75 149 y Fl(overwrite-mode)13 b(\(\))315 204 y Fm(T)l(oggle)j(o)o
-(v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f
-(n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10
-b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q
-(ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315
-314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h
-Fl(emacs)e Fm(mo)q(de;)h Fl(vi)g Fm(mo)q(de)h(do)q(es)g(o)o(v)o
-(erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15
-b(call)h(to)f Fl(readline\(\))f Fm(starts)f(in)k(insert)e(mo)q(de.)315
-436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
-Fl(self-insert)f Fm(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315
-491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
-b(Characters)20 b(b)q(ound)i(to)e Fl(backward-)315 546
-y(delete-char)14 b Fm(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q
-(oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 729 y Fb(1.4.4)30 b(Killing)20
-b(And)h(Y)-5 b(anking)75 853 y Fl(kill-line)14 b(\(C-k\))315
-908 y Fm(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
-(the)g(line.)75 1002 y Fl(backward-kill-line)e(\(C-x)h(Rubout\))315
-1057 y Fm(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)75 1151 y Fl(unix-line-discard)e(\(C-u\))315 1205
-y Fm(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
-(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Fl(kill-whole-line)
-e(\(\))315 1354 y Fm(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
-o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29
-b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75
-1503 y Fl(kill-word)f(\(M-d\))315 1558 y Fm(Kill)j(from)d(p)q(oin)o(t)h
-(to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o
-(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o
-(ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
-Fl(forward-word)p Fm(.)75 1707 y Fl(backward-kill-word)e(\(M-)592
-1705 y Ff(h)p 603 1679 73 2 v 603 1707 a Fe(DEL)p 603
-1714 V 674 1705 a Ff(i)689 1707 y Fl(\))315 1761 y Fm(Kill)k(the)d(w)o
-(ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f
-(the)h(same)f(as)g Fl(backward-word)p Fm(.)75 1855 y
-Fl(unix-word-rubout)f(\(C-w\))315 1910 y Fm(Kill)18 b(the)e(w)o(ord)f
-(b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g
-(b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o
-(ed)g(on)g(the)h(kill-ring.)75 2059 y Fl(delete-horizontal-space)c
-(\(\))315 2114 y Fm(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q
-(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75
-2208 y Fl(kill-region)e(\(\))315 2263 y Fm(Kill)j(the)f(text)e(in)i
-(the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 2357 y Fl(copy-region-as-kill)d(\(\))315
-2412 y Fm(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
-(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
-(a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 2560 y Fl(copy-backward-word)d(\(\))315 2615
-y Fm(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
-(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
-2670 y(same)c(as)g Fl(backward-word)p Fm(.)j(By)d(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fm(16)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fl(copy-forward-word)d(\(\))315 204 y Fm(Cop)o(y)i(the)h(w)o(ord)
-e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o
-(ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g
-Fl(forward-word)p Fm(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 342 y Fl(yank)f(\(C-y\))315 397 y Fm(Y)l(ank)g(the)h(top)f
-(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.)
-75 481 y Fl(yank-pop)g(\(M-y\))315 535 y Fm(Rotate)i(the)h(kill-ring,)j
-(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f
-(this)h(if)f(the)h(prior)315 590 y(command)d(is)h Fl(yank)e
-Fm(or)h Fl(yank-pop)p Fm(.)75 693 y Fb(1.4.5)30 b(Sp)r(ecifying)20
-b(Numeric)h(Argumen)n(ts)75 806 y Fl(digit-argument)13
-b(\()p Fg(M-0)p Fl(,)i Fg(M-1)p Fl(,)f(...)h Fg(M--)p
-Fl(\))315 861 y Fm(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
-(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
-915 y Fg(M--)h Fm(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75
-999 y Fl(universal-argument)e(\(\))315 1054 y Fm(This)g(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
-1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o
-(us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315
-1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
-(digits,)g(executing)g Fl(universal-argument)315 1218
-y Fm(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
-(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
-1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)
-f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
-1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
-(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315
-1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
-(executing)i(this)f(function)h(the)e(\014rst)h(time)315
-1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
-(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fb(1.4.6)30
-b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1708 y Fl(complete)14 b(\()305 1706 y Ff(h)p
-317 1680 74 2 v 317 1708 a Fe(T)m(AB)p 317 1715 V 389
-1706 a Ff(i)404 1708 y Fl(\))315 1762 y Fm(A)o(ttempt)c(to)h(p)q
-(erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
-b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h
-(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
-g(completion.)75 1901 y Fl(possible-completions)c(\(M-?\))315
-1955 y Fm(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 2039 y Fl(insert-completions)d(\(M-*\))315
-2093 y Fm(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
-q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
-2148 y(b)o(y)f Fl(possible-completions)p Fm(.)75 2232
-y Fl(menu-complete)e(\(\))315 2286 y Fm(Similar)g(to)f
-Fl(complete)p Fm(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
-(completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list)
-h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19
-b(execution)h(of)f Fl(menu-complete)315 2396 y Fm(steps)h(through)g
-(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
-(matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
-(of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f
-(the)i(setting)315 2506 y(of)f Fl(bell-style)p Fm(\))e(and)i(the)g
-(original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fc(n)i Fm(mo)o(v)o(es)e Fc(n)315 2560 y Fm(p)q(ositions)h(forw)o(ard)e
-(in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g
-(ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
-(through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f
-(b)q(e)h(b)q(ound)g(to)315 2668 y Ff(h)p 327 2642 V 327
-2670 a Fe(T)m(AB)p 327 2678 V 399 2668 a Ff(i)414 2670
-y Fm(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p
+%%Page: 7 11
+7 10 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(7)630 299 y Fn(output-meta)1110
+408 y Fo(If)35 b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)d(will)f
+(displa)m(y)g(c)m(haracters)k(with)d(the)i(eigh)m(th)f(bit)1110
+518 y(set)i(directly)e(rather)h(than)g(as)h(a)g(meta-pre\014xed)f
+(escap)s(e)h(sequence.)59 b(The)1110 628 y(default)30
+b(is)f(`)p Fn(off)p Fo('.)630 789 y Fn(page-completions)1110
+898 y Fo(If)k(set)i(to)f(`)p Fn(on)p Fo(',)h(Readline)e(uses)g(an)h(in)
+m(ternal)f Fn(more)p Fo(-lik)m(e)f(pager)i(to)h(displa)m(y)1110
+1008 y(a)e(screenful)e(of)h(p)s(ossible)e(completions)i(at)h(a)g(time.)
+46 b(This)30 b(v)-5 b(ariable)32 b(is)f(`)p Fn(on)p Fo(')1110
+1118 y(b)m(y)f(default.)630 1279 y Fn(print-completions-horizo)o(ntal)o
+(ly)1110 1388 y Fo(If)23 b(set)i(to)g(`)p Fn(on)p Fo(',)g(Readline)e
+(will)e(displa)m(y)h(completions)h(with)g(matc)m(hes)i(sorted)1110
+1498 y(horizon)m(tally)42 b(in)g(alphab)s(etical)g(order,)47
+b(rather)c(than)g(do)m(wn)g(the)h(screen.)1110 1608 y(The)30
+b(default)f(is)h(`)p Fn(off)p Fo('.)630 1769 y Fn
+(show-all-if-ambiguous)1110 1878 y Fo(This)e(alters)i(the)g(default)f
+(b)s(eha)m(vior)g(of)h(the)h(completion)e(functions.)39
+b(If)29 b(set)1110 1988 y(to)f(`)p Fn(on)p Fo(',)g(w)m(ords)f(whic)m(h)
+f(ha)m(v)m(e)j(more)f(than)f(one)h(p)s(ossible)d(completion)h(cause)
+1110 2097 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)f(immediately)h
+(instead)g(of)h(ringing)e(the)i(b)s(ell.)1110 2207 y(The)30
+b(default)f(v)-5 b(alue)30 b(is)g(`)p Fn(off)p Fo('.)630
+2368 y Fn(show-all-if-unmodified)1110 2478 y Fo(This)37
+b(alters)h(the)h(default)f(b)s(eha)m(vior)g(of)g(the)h(completion)f
+(functions)f(in)h(a)1110 2587 y(fashion)24 b(similar)f(to)j
+Fd(sho)m(w-all-if-am)m(biguous)p Fo(.)37 b(If)25 b(set)h(to)h(`)p
+Fn(on)p Fo(',)f(w)m(ords)f(whic)m(h)1110 2697 y(ha)m(v)m(e)32
+b(more)f(than)f(one)i(p)s(ossible)c(completion)i(without)g(an)m(y)h(p)s
+(ossible)d(par-)1110 2807 y(tial)41 b(completion)h(\(the)h(p)s(ossible)
+d(completions)h(don't)h(share)g(a)h(common)1110 2916
+y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)e
+(immediately)h(instead)g(of)i(ring-)1110 3026 y(ing)f(the)g(b)s(ell.)39
+b(The)30 b(default)f(v)-5 b(alue)30 b(is)f(`)p Fn(off)p
+Fo('.)630 3187 y Fn(visible-stats)1110 3296 y Fo(If)i(set)i(to)f(`)p
+Fn(on)p Fo(',)h(a)f(c)m(haracter)i(denoting)d(a)h(\014le's)f(t)m(yp)s
+(e)h(is)f(app)s(ended)f(to)j(the)1110 3406 y(\014lename)d(when)f
+(listing)f(p)s(ossible)g(completions.)40 b(The)30 b(default)f(is)h(`)p
+Fn(off)p Fo('.)150 3567 y(Key)g(Bindings)630 3677 y(The)41
+b(syn)m(tax)i(for)f(con)m(trolling)e(k)m(ey)j(bindings)c(in)i(the)h
+(init)e(\014le)h(is)g(simple.)73 b(First)42 b(y)m(ou)630
+3786 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
+3896 y(sections)36 b(con)m(tain)g(tables)g(of)g(the)g(command)f(name,)j
+(the)e(default)f(k)m(eybinding,)g(if)g(an)m(y)-8 b(,)630
+4006 y(and)30 b(a)h(short)f(description)e(of)j(what)f(the)g(command)h
+(do)s(es.)630 4141 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
+(the)g(command,)h(simply)d(place)i(on)f(a)i(line)d(in)h(the)h(init)630
+4251 y(\014le)d(the)h(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)e(to)i
+(bind)e(the)i(command)f(to,)i(a)f(colon,)h(and)e(then)630
+4360 y(the)f(name)g(of)g(the)g(command.)46 b(The)31 b(name)h(of)g(the)g
+(k)m(ey)h(can)f(b)s(e)f(expressed)h(in)e(di\013eren)m(t)630
+4470 y(w)m(a)m(ys,)h(dep)s(ending)d(on)j(what)f(y)m(ou)h(\014nd)d(most)
+j(comfortable.)630 4605 y(In)k(addition)f(to)j(command)f(names,)i
+(readline)c(allo)m(ws)h(k)m(eys)i(to)g(b)s(e)e(b)s(ound)f(to)j(a)f
+(string)630 4715 y(that)31 b(is)e(inserted)h(when)f(the)i(k)m(ey)g(is)e
+(pressed)h(\(a)h Fd(macro)5 b Fo(\).)630 4876 y Fd(k)m(eyname)g
+Fo(:)42 b Fd(function-name)34 b Fo(or)d Fd(macro)1110
+4985 y(k)m(eyname)k Fo(is)28 b(the)g(name)h(of)g(a)g(k)m(ey)h(sp)s
+(elled)c(out)j(in)f(English.)37 b(F)-8 b(or)30 b(example:)1350
+5121 y Fn(Control-u:)45 b(universal-argument)1350 5230
+y(Meta-Rubout:)f(backward-kill-word)1350 5340 y(Control-o:)h(">)i
+(output")p eop
+%%Page: 8 12
+8 11 bop 150 -116 a Fo(8)2645 b(GNU)31 b(Readline)e(Library)1110
+299 y(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)g Fg(C-u)e
+Fo(is)g(b)s(ound)e(to)k(the)e(function)g Fn(universal-)1110
+408 y(argument)p Fo(,)g Fg(M-DEL)e Fo(is)h(b)s(ound)f(to)i(the)g
+(function)f Fn(backward-kill-word)p Fo(,)1110 518 y(and)h
+Fg(C-o)g Fo(is)g(b)s(ound)f(to)j(run)d(the)j(macro)f(expressed)g(on)f
+(the)i(righ)m(t)e(hand)1110 628 y(side)29 b(\(that)j(is,)d(to)i(insert)
+f(the)g(text)i(`)p Fn(>)e(output)p Fo(')f(in)m(to)h(the)h(line\).)1110
+764 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)e(c)m(haracter)k
+(names)e(are)g(recognized)g(while)e(pro-)1110 873 y(cessing)23
+b(this)g(k)m(ey)h(binding)d(syn)m(tax:)37 b Fd(DEL)p
+Fo(,)24 b Fd(ESC)p Fo(,)f Fd(ESCAPE)p Fo(,)g Fd(LFD)p
+Fo(,)h Fd(NEW-)1110 983 y(LINE)p Fo(,)30 b Fd(RET)p Fo(,)g
+Fd(RETURN)p Fo(,)h Fd(R)m(UBOUT)p Fo(,)g Fd(SP)-8 b(A)m(CE)p
+Fo(,)30 b Fd(SPC)p Fo(,)g(and)f Fd(T)-8 b(AB)p Fo(.)630
+1146 y Fn(")p Fd(k)m(eyseq)r Fn(")p Fo(:)41 b Fd(function-name)35
+b Fo(or)30 b Fd(macro)1110 1256 y(k)m(eyseq)k Fo(di\013ers)c(from)g
+Fd(k)m(eyname)37 b Fo(ab)s(o)m(v)m(e)32 b(in)e(that)i(strings)e
+(denoting)g(an)h(en-)1110 1365 y(tire)i(k)m(ey)i(sequence)f(can)g(b)s
+(e)f(sp)s(eci\014ed,)g(b)m(y)g(placing)g(the)h(k)m(ey)g(sequence)g(in)
+1110 1475 y(double)28 b(quotes.)41 b(Some)29 b Fh(gnu)h
+Fo(Emacs)f(st)m(yle)h(k)m(ey)g(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
+1110 1584 y(in)j(the)i(follo)m(wing)f(example,)h(but)f(the)h(sp)s
+(ecial)f(c)m(haracter)i(names)f(are)g(not)1110 1694 y(recognized.)1350
+1830 y Fn("\\C-u":)46 b(universal-argument)1350 1940
+y("\\C-x\\C-r":)f(re-read-init-file)1350 2049 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 2186 y Fo(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)73
+b Fg(C-u)64 b Fo(is)f(again)i(b)s(ound)d(to)k(the)e(function)1110
+2295 y Fn(universal-argument)39 b Fo(\(just)k(as)h(it)f(w)m(as)h(in)f
+(the)g(\014rst)g(example\),)48 b(`)p Fg(C-x)1110 2405
+y(C-r)p Fo(')41 b(is)f(b)s(ound)f(to)j(the)f(function)f
+Fn(re-read-init-file)p Fo(,)f(and)i(`)3462 2402 y Ff(h)p
+3486 2349 139 4 v 3486 2405 a Fe(ESC)p 3486 2420 V 3620
+2402 a Ff(i)31 b(h)p 3705 2349 20 4 v 3705 2405 a Fe([)p
+3705 2421 V 3720 2402 a Ff(i)1110 2511 y(h)p 1134 2458
+36 4 v 1134 2514 a Fe(1)p 1134 2530 V 1165 2511 a Ff(i)f(h)p
+1250 2458 V 1250 2514 a Fe(1)p 1250 2530 V 1281 2511
+a Ff(i)g(h)p 1365 2458 48 4 v 1365 2514 a Fn(~)p 1365
+2530 V 1409 2511 a Ff(i)1438 2514 y Fo(')h(is)e(b)s(ound)g(to)i(insert)
+e(the)i(text)g(`)p Fn(Function)d(Key)i(1)p Fo('.)630
+2677 y(The)f(follo)m(wing)f Fh(gnu)i Fo(Emacs)g(st)m(yle)g(escap)s(e)g
+(sequences)g(are)g(a)m(v)-5 b(ailable)29 b(when)g(sp)s(ecifying)630
+2787 y(k)m(ey)i(sequences:)630 2950 y Fg(\\C-)336 b Fo(con)m(trol)31
+b(pre\014x)630 3113 y Fg(\\M-)336 b Fo(meta)31 b(pre\014x)630
+3276 y Fg(\\e)384 b Fo(an)30 b(escap)s(e)h(c)m(haracter)630
+3438 y Fg(\\\\)384 b Fo(bac)m(kslash)630 3601 y Fg(\\)p
+Fn(")1110 3598 y Ff(h)p 1134 3545 V 1134 3601 a Fn(")p
+1134 3617 V 1178 3598 a Ff(i)1208 3601 y Fo(,)30 b(a)h(double)e
+(quotation)h(mark)630 3764 y Fg(\\')1110 3761 y Ff(h)p
+1134 3708 20 4 v 1134 3764 a Fe(')p 1134 3780 V 1150
+3761 a Ff(i)1179 3764 y Fo(,)h(a)g(single)e(quote)i(or)f(ap)s(ostrophe)
+630 3927 y(In)d(addition)f(to)i(the)g Fh(gnu)f Fo(Emacs)h(st)m(yle)g
+(escap)s(e)g(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
+4037 y(escap)s(es)j(is)e(a)m(v)-5 b(ailable:)630 4200
+y Fn(\\a)384 b Fo(alert)30 b(\(b)s(ell\))630 4363 y Fn(\\b)384
+b Fo(bac)m(kspace)630 4525 y Fn(\\d)g Fo(delete)630 4688
+y Fn(\\f)g Fo(form)30 b(feed)630 4851 y Fn(\\n)384 b
+Fo(newline)630 5014 y Fn(\\r)g Fo(carriage)31 b(return)630
+5177 y Fn(\\t)384 b Fo(horizon)m(tal)30 b(tab)630 5340
+y Fn(\\v)384 b Fo(v)m(ertical)30 b(tab)p eop
+%%Page: 9 13
+9 12 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2151 b(9)630 299 y Fn(\\)p Fg(nnn)288
+b Fo(the)35 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5
+b(alue)34 b(is)g(the)g(o)s(ctal)h(v)-5 b(alue)34 b Fd(nnn)f
+Fo(\(one)i(to)1110 408 y(three)c(digits\))630 564 y Fn(\\x)p
+Fg(HH)288 b Fo(the)40 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5
+b(alue)38 b(is)h(the)g(hexadecimal)g(v)-5 b(alue)39 b
+Fd(HH)1110 674 y Fo(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
+830 y(When)37 b(en)m(tering)g(the)h(text)g(of)g(a)g(macro,)i(single)c
+(or)h(double)f(quotes)i(m)m(ust)f(b)s(e)g(used)f(to)630
+939 y(indicate)21 b(a)g(macro)h(de\014nition.)36 b(Unquoted)21
+b(text)i(is)d(assumed)h(to)h(b)s(e)f(a)h(function)e(name.)38
+b(In)630 1049 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
+b(the)e(bac)m(kslash)g(escap)s(es)h(describ)s(ed)d(ab)s(o)m(v)m(e)k
+(are)e(expanded.)37 b(Bac)m(kslash)630 1158 y(will)g(quote)k(an)m(y)f
+(other)g(c)m(haracter)i(in)c(the)j(macro)f(text,)k(including)36
+b(`)p Fn(")p Fo(')k(and)g(`)p Fn(')p Fo('.)69 b(F)-8
+b(or)630 1268 y(example,)27 b(the)f(follo)m(wing)e(binding)e(will)h
+(mak)m(e)k(`)p Fg(C-x)j Fn(\\)p Fo(')c(insert)e(a)i(single)f(`)p
+Fn(\\)p Fo(')h(in)m(to)f(the)h(line:)870 1401 y Fn("\\C-x\\\\":)45
+b("\\\\")150 1619 y Fc(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+275 1862 y Fo(Readline)34 b(implemen)m(ts)f(a)j(facilit)m(y)f(similar)d
+(in)i(spirit)f(to)j(the)g(conditional)e(compilation)g(features)150
+1971 y(of)h(the)f(C)g(prepro)s(cessor)g(whic)m(h)f(allo)m(ws)h(k)m(ey)h
+(bindings)c(and)j(v)-5 b(ariable)33 b(settings)i(to)g(b)s(e)f(p)s
+(erformed)f(as)150 2081 y(the)e(result)e(of)h(tests.)42
+b(There)30 b(are)h(four)e(parser)h(directiv)m(es)g(used.)150
+2237 y Fn($if)336 b Fo(The)31 b Fn($if)f Fo(construct)i(allo)m(ws)f
+(bindings)d(to)k(b)s(e)e(made)i(based)f(on)g(the)g(editing)f(mo)s(de,)i
+(the)630 2346 y(terminal)37 b(b)s(eing)f(used,)k(or)e(the)g
+(application)e(using)h(Readline.)62 b(The)38 b(text)h(of)f(the)g(test)
+630 2456 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)e(no)h(c)m
+(haracters)i(are)f(required)d(to)j(isolate)g(it.)630
+2612 y Fn(mode)288 b Fo(The)20 b Fn(mode=)g Fo(form)g(of)h(the)g
+Fn($if)f Fo(directiv)m(e)h(is)f(used)g(to)h(test)h(whether)e(Readline)
+1110 2721 y(is)28 b(in)h Fn(emacs)f Fo(or)h Fn(vi)g Fo(mo)s(de.)40
+b(This)28 b(ma)m(y)i(b)s(e)e(used)h(in)f(conjunction)h(with)f(the)1110
+2831 y(`)p Fn(set)i(keymap)p Fo(')c(command,)i(for)f(instance,)h(to)g
+(set)g(bindings)d(in)h(the)i Fn(emacs-)1110 2940 y(standard)23
+b Fo(and)h Fn(emacs-ctlx)f Fo(k)m(eymaps)i(only)f(if)g(Readline)g(is)g
+(starting)h(out)1110 3050 y(in)k Fn(emacs)g Fo(mo)s(de.)630
+3206 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)d(terminal-sp)s(eci\014c)f(k)m(ey)k(bind-)1110
+3315 y(ings,)37 b(p)s(erhaps)d(to)j(bind)d(the)i(k)m(ey)h(sequences)f
+(output)g(b)m(y)g(the)g(terminal's)1110 3425 y(function)23
+b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)e(side)g(of)h
+(the)g(`)p Fn(=)p Fo(')g(is)f(tested)i(against)1110 3534
+y(b)s(oth)k(the)h(full)e(name)i(of)g(the)g(terminal)f(and)g(the)i(p)s
+(ortion)d(of)i(the)g(terminal)1110 3644 y(name)k(b)s(efore)f(the)g
+(\014rst)g(`)p Fn(-)p Fo('.)50 b(This)32 b(allo)m(ws)h
+Fn(sun)g Fo(to)h(matc)m(h)g(b)s(oth)f Fn(sun)g Fo(and)1110
+3754 y Fn(sun-cmd)p Fo(,)c(for)h(instance.)630 3909 y
+Fn(application)1110 4019 y Fo(The)21 b Fd(application)g
+Fo(construct)h(is)f(used)g(to)i(include)d(application-sp)s(eci\014c)f
+(set-)1110 4129 y(tings.)38 b(Eac)m(h)26 b(program)e(using)f(the)i
+(Readline)e(library)g(sets)i(the)g Fd(application)1110
+4238 y(name)p Fo(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)f
+(v)-5 b(alue.)38 b(This)21 b(could)h(b)s(e)h(used)f(to)1110
+4348 y(bind)31 b(k)m(ey)i(sequences)g(to)h(functions)d(useful)g(for)i
+(a)g(sp)s(eci\014c)e(program.)48 b(F)-8 b(or)1110 4457
+y(instance,)34 b(the)f(follo)m(wing)e(command)i(adds)f(a)i(k)m(ey)f
+(sequence)h(that)f(quotes)1110 4567 y(the)e(curren)m(t)f(or)g(previous)
+f(w)m(ord)h(in)f(Bash:)1350 4700 y Fn($if)47 b(Bash)1350
+4809 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
+4919 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 5028 y($endif)150
+5184 y($endif)192 b Fo(This)28 b(command,)j(as)f(seen)h(in)e(the)h
+(previous)f(example,)h(terminates)g(an)h Fn($if)e Fo(command.)150
+5340 y Fn($else)240 b Fo(Commands)29 b(in)g(this)h(branc)m(h)f(of)i
+(the)f Fn($if)g Fo(directiv)m(e)g(are)h(executed)g(if)e(the)i(test)g
+(fails.)p eop
+%%Page: 10 14
+10 13 bop 150 -116 a Fo(10)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fn($include)96 b Fo(This)42 b(directiv)m(e)h(tak)m(es)i(a)e
+(single)g(\014lename)f(as)i(an)f(argumen)m(t)h(and)f(reads)g(commands)
+630 408 y(and)38 b(bindings)d(from)j(that)i(\014le.)64
+b(F)-8 b(or)39 b(example,)i(the)e(follo)m(wing)e(directiv)m(e)h(reads)g
+(from)630 518 y(`)p Fn(/etc/inputrc)p Fo(':)870 653 y
+Fn($include)46 b(/etc/inputrc)150 877 y Fc(1.3.3)63 b(Sample)40
+b(Init)h(File)275 1121 y Fo(Here)31 b(is)e(an)h(example)h(of)f(an)g
+Fd(inputrc)k Fo(\014le.)41 b(This)28 b(illustrates)h(k)m(ey)i(binding,)
+d(v)-5 b(ariable)29 b(assignmen)m(t,)150 1230 y(and)h(conditional)e
+(syn)m(tax.)p eop
+%%Page: 11 15
+11 14 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(11)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)g(FTP,)g(Bash,)h(and)g
+(GDB.)390 737 y(#)390 847 y(#)g(You)g(can)g(re-read)f(the)h(inputrc)f
+(file)g(with)h(C-x)g(C-r.)390 956 y(#)g(Lines)g(beginning)e(with)i('#')
+g(are)g(comments.)390 1066 y(#)390 1176 y(#)g(First,)g(include)e(any)i
+(systemwide)e(bindings)h(and)h(variable)390 1285 y(#)g(assignments)e
+(from)i(/etc/Inputrc)390 1395 y($include)f(/etc/Inputrc)390
+1614 y(#)390 1724 y(#)h(Set)g(various)f(bindings)g(for)h(emacs)f(mode.)
+390 1943 y(set)h(editing-mode)d(emacs)390 2162 y($if)j(mode=emacs)390
+2381 y(Meta-Control-h:)91 b(backward-kill-word)43 b(Text)k(after)f(the)
+h(function)f(name)g(is)h(ignored)p 3971 2401 42 76 v
+390 2600 a(#)390 2710 y(#)g(Arrow)g(keys)f(in)i(keypad)e(mode)390
+2819 y(#)390 2929 y(#"\\M-OD":)379 b(backward-char)390
+3039 y(#"\\M-OC":)g(forward-char)390 3148 y(#"\\M-OA":)g
+(previous-history)390 3258 y(#"\\M-OB":)g(next-history)390
+3367 y(#)390 3477 y(#)47 b(Arrow)g(keys)f(in)i(ANSI)e(mode)390
+3587 y(#)390 3696 y("\\M-[D":)380 b(backward-char)390
+3806 y("\\M-[C":)g(forward-char)390 3915 y("\\M-[A":)g
+(previous-history)390 4025 y("\\M-[B":)g(next-history)390
+4134 y(#)390 4244 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)
+390 4354 y(#)390 4463 y(#"\\M-\\C-OD":)331 b(backward-char)390
+4573 y(#"\\M-\\C-OC":)g(forward-char)390 4682 y(#"\\M-\\C-OA":)g
+(previous-history)390 4792 y(#"\\M-\\C-OB":)g(next-history)390
+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
+%%Page: 12 16
+12 15 bop 150 -116 a Fo(12)2600 b(GNU)31 b(Readline)e(Library)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)g(default.)390 1176
+y(TAB:)g(complete)390 1395 y(#)g(Macros)g(that)f(are)h(convenient)e
+(for)i(shell)f(interaction)390 1504 y($if)h(Bash)390
+1614 y(#)g(edit)g(the)g(path)390 1724 y("\\C-xp":)f
+("PATH=${PATH}\\e\\C-e\\C-a)o(\\ef)o(\\C-f)o(")390 1833
+y(#)h(prepare)f(to)h(type)g(a)h(quoted)e(word)g(--)390
+1943 y(#)h(insert)g(open)f(and)h(close)f(double)h(quotes)390
+2052 y(#)g(and)g(move)g(to)g(just)g(after)f(the)h(open)g(quote)390
+2162 y("\\C-x\\"":)e("\\"\\"\\C-b")390 2271 y(#)i(insert)g(a)g
+(backslash)e(\(testing)h(backslash)f(escapes)390 2381
+y(#)i(in)h(sequences)d(and)i(macros\))390 2491 y("\\C-x\\\\":)e("\\\\")
+390 2600 y(#)i(Quote)g(the)g(current)f(or)h(previous)e(word)390
+2710 y("\\C-xq":)h("\\eb\\"\\ef\\"")390 2819 y(#)h(Add)g(a)h(binding)e
+(to)h(refresh)f(the)h(line,)f(which)g(is)h(unbound)390
+2929 y("\\C-xr":)f(redraw-current-line)390 3039 y(#)h(Edit)g(variable)f
+(on)h(current)f(line.)390 3148 y("\\M-\\C-v":)f
+("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-)o(a\\C-)o(y=")390 3258
+y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
+(available)390 3587 y(set)f(bell-style)e(visible)390
+3806 y(#)i(don't)g(strip)f(characters)f(to)i(7)h(bits)e(when)h(reading)
+390 3915 y(set)g(input-meta)e(on)390 4134 y(#)i(allow)g(iso-latin1)e
+(characters)g(to)i(be)g(inserted)f(rather)390 4244 y(#)h(than)g
+(converted)e(to)j(prefix-meta)c(sequences)390 4354 y(set)j
+(convert-meta)d(off)390 4573 y(#)j(display)f(characters)f(with)i(the)g
+(eighth)f(bit)h(set)g(directly)390 4682 y(#)g(rather)g(than)f(as)h
+(meta-prefixed)e(characters)390 4792 y(set)i(output-meta)e(on)390
+5011 y(#)i(if)h(there)e(are)h(more)g(than)f(150)h(possible)f
+(completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
+(he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
+(completion-query-items)42 b(150)p eop
+%%Page: 13 17
+13 16 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(13)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 1098 y Fm(1.4)68 b(Bindable)45 b(Readline)i(Commands)
+275 1340 y Fo(This)29 b(section)j(describ)s(es)d(Readline)h(commands)h
+(that)h(ma)m(y)g(b)s(e)f(b)s(ound)e(to)j(k)m(ey)g(sequences.)44
+b(Com-)150 1449 y(mand)30 b(names)g(without)f(an)h(accompan)m(ying)h(k)
+m(ey)h(sequence)e(are)h(un)m(b)s(ound)d(b)m(y)i(default.)275
+1582 y(In)25 b(the)h(follo)m(wing)f(descriptions,)g Fd(p)s(oin)m(t)i
+Fo(refers)f(to)h(the)f(curren)m(t)g(cursor)g(p)s(osition,)f(and)h
+Fd(mark)31 b Fo(refers)150 1691 y(to)40 b(a)f(cursor)f(p)s(osition)f
+(sa)m(v)m(ed)j(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)f(and)150
+1801 y(mark)30 b(is)g(referred)f(to)i(as)g(the)f Fd(region)p
+Fo(.)150 2018 y Fc(1.4.1)63 b(Commands)40 b(F)-10 b(or)41
+b(Mo)m(ving)150 2260 y Fn(beginning-of-line)26 b(\(C-a\))630
+2370 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 2525 y Fn(end-of-line)d(\(C-e\))630 2635 y
+Fo(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
+2790 y Fn(forward-char)c(\(C-f\))630 2899 y Fo(Mo)m(v)m(e)32
+b(forw)m(ard)e(a)h(c)m(haracter.)150 3054 y Fn(backward-char)c(\(C-b\))
+630 3164 y Fo(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
+3319 y Fn(forward-word)d(\(M-f\))630 3429 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)h(and)630
+3538 y(digits.)150 3693 y Fn(backward-word)c(\(M-b\))630
+3803 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)f(w)m(ord.)50 b(W)-8 b(ords)34
+b(are)g(comp)s(osed)630 3913 y(of)d(letters)f(and)g(digits.)150
+4068 y Fn(clear-screen)d(\(C-l\))630 4177 y Fo(Clear)f(the)h(screen)f
+(and)h(redra)m(w)f(the)h(curren)m(t)f(line,)g(lea)m(ving)g(the)h
+(curren)m(t)g(line)e(at)i(the)g(top)630 4287 y(of)k(the)f(screen.)150
+4442 y Fn(redraw-current-line)25 b(\(\))630 4552 y Fo(Refresh)30
+b(the)g(curren)m(t)h(line.)39 b(By)30 b(default,)g(this)f(is)h(un)m(b)s
+(ound.)150 4769 y Fc(1.4.2)63 b(Commands)40 b(F)-10 b(or)41
+b(Manipulating)h(The)f(History)150 5011 y Fn(accept-line)27
+b(\(Newline)h(or)i(Return\))630 5121 y Fo(Accept)36 b(the)g(line)d
+(regardless)i(of)g(where)g(the)g(cursor)g(is.)54 b(If)34
+b(this)g(line)g(is)g(non-empt)m(y)-8 b(,)37 b(it)630
+5230 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)f(list)g(for)g
+(future)g(recall)h(with)e Fn(add_history\(\))p Fo(.)42
+b(If)31 b(this)630 5340 y(line)e(is)g(a)i(mo)s(di\014ed)d(history)h
+(line,)g(the)i(history)e(line)g(is)g(restored)i(to)g(its)f(original)e
+(state.)p eop
+%%Page: 14 18
+14 17 bop 150 -116 a Fo(14)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fn(previous-history)d(\(C-p\))630 408 y Fo(Mo)m(v)m(e)32
+b(`bac)m(k')g(through)e(the)g(history)g(list,)f(fetc)m(hing)h(the)h
+(previous)e(command.)150 586 y Fn(next-history)e(\(C-n\))630
+696 y Fo(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i(history)e
+(list,)h(fetc)m(hing)g(the)h(next)f(command.)150 873
+y Fn(beginning-of-history)25 b(\(M-<\))630 983 y Fo(Mo)m(v)m(e)32
+b(to)g(the)e(\014rst)g(line)e(in)i(the)g(history)-8 b(.)150
+1161 y Fn(end-of-history)26 b(\(M->\))630 1270 y Fo(Mo)m(v)m(e)32
+b(to)g(the)e(end)g(of)g(the)h(input)d(history)-8 b(,)30
+b(i.e.,)h(the)g(line)d(curren)m(tly)i(b)s(eing)f(en)m(tered.)150
+1448 y Fn(reverse-search-history)24 b(\(C-r\))630 1558
+y Fo(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h(the)f(curren)m(t)g
+(line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g(his-)630
+1667 y(tory)g(as)f(necessary)-8 b(.)42 b(This)28 b(is)i(an)g(incremen)m
+(tal)g(searc)m(h.)150 1845 y Fn(forward-search-history)24
+b(\(C-s\))630 1955 y Fo(Searc)m(h)30 b(forw)m(ard)f(starting)g(at)h
+(the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn')g(through)g(the)
+h(the)630 2064 y(history)f(as)i(necessary)-8 b(.)41 b(This)29
+b(is)g(an)i(incremen)m(tal)e(searc)m(h.)150 2242 y Fn
+(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
+b(\(M-p\))630 2352 y Fo(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h
+(the)f(curren)m(t)g(line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g
+(his-)630 2461 y(tory)36 b(as)g(necessary)h(using)d(a)j(non-incremen)m
+(tal)e(searc)m(h)h(for)g(a)g(string)f(supplied)e(b)m(y)j(the)630
+2571 y(user.)150 2748 y Fn(non-incremental-forward-)o(sear)o(ch-h)o
+(ist)o(ory)24 b(\(M-n\))630 2858 y Fo(Searc)m(h)30 b(forw)m(ard)f
+(starting)g(at)h(the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn')
+g(through)g(the)h(the)630 2968 y(history)c(as)g(necessary)i(using)d(a)i
+(non-incremen)m(tal)e(searc)m(h)j(for)e(a)h(string)f(supplied)d(b)m(y)k
+(the)630 3077 y(user.)150 3255 y Fn(history-search-forward)d(\(\))630
+3364 y Fo(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)e(for)h
+(the)h(string)e(of)i(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
+3474 y(start)36 b(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m
+(t.)54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56
+b(By)630 3584 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150
+3761 y Fn(history-search-backward)24 b(\(\))630 3871
+y Fo(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)f(for)h
+(the)f(string)g(of)h(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
+3981 y(start)g(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m(t.)
+54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56
+b(By)630 4090 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150
+4268 y Fn(yank-nth-arg)d(\(M-C-y\))630 4377 y Fo(Insert)e(the)i
+(\014rst)e(argumen)m(t)h(to)h(the)f(previous)f(command)g(\(usually)f
+(the)i(second)g(w)m(ord)g(on)630 4487 y(the)k(previous)f(line\))f(at)j
+(p)s(oin)m(t.)39 b(With)30 b(an)g(argumen)m(t)g Fd(n)p
+Fo(,)g(insert)e(the)j Fd(n)p Fo(th)e(w)m(ord)g(from)h(the)630
+4597 y(previous)25 b(command)i(\(the)h(w)m(ords)e(in)g(the)h(previous)e
+(command)i(b)s(egin)e(with)h(w)m(ord)h(0\).)40 b(A)630
+4706 y(negativ)m(e)27 b(argumen)m(t)f(inserts)e(the)i
+Fd(n)p Fo(th)f(w)m(ord)g(from)g(the)h(end)f(of)h(the)g(previous)e
+(command.)150 4884 y Fn(yank-last-arg)j(\(M-.)i(or)h(M-_\))630
+4994 y Fo(Insert)k(last)h(argumen)m(t)h(to)g(the)f(previous)e(command)i
+(\(the)h(last)e(w)m(ord)h(of)g(the)g(previous)630 5103
+y(history)30 b(en)m(try\).)41 b(With)30 b(an)h(argumen)m(t,)g(b)s(eha)m
+(v)m(e)g(exactly)h(lik)m(e)e Fn(yank-nth-arg)p Fo(.)38
+b(Succes-)630 5213 y(siv)m(e)c(calls)g(to)h Fn(yank-last-arg)c
+Fo(mo)m(v)m(e)36 b(bac)m(k)g(through)d(the)i(history)f(list,)g
+(inserting)f(the)630 5322 y(last)d(argumen)m(t)h(of)g(eac)m(h)g(line)e
+(in)g(turn.)p eop
+%%Page: 15 19
+15 18 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(15)150 299 y Fc(1.4.3)63 b(Commands)40
+b(F)-10 b(or)41 b(Changing)g(T)-10 b(ext)150 547 y Fn(delete-char)27
+b(\(C-d\))630 656 y Fo(Delete)40 b(the)f(c)m(haracter)i(at)e(p)s(oin)m
+(t.)65 b(If)39 b(p)s(oin)m(t)e(is)h(at)i(the)f(b)s(eginning)d(of)j(the)
+g(line,)h(there)630 766 y(are)d(no)g(c)m(haracters)i(in)c(the)j(line,)f
+(and)f(the)h(last)g(c)m(haracter)i(t)m(yp)s(ed)e(w)m(as)g(not)g(b)s
+(ound)e(to)630 875 y Fn(delete-char)p Fo(,)28 b(then)i(return)f
+Fh(eof)p Fo(.)150 1042 y Fn(backward-delete-char)c(\(Rubout\))630
+1152 y Fo(Delete)31 b(the)g(c)m(haracter)g(b)s(ehind)d(the)i(cursor.)40
+b(A)30 b(n)m(umeric)f(argumen)m(t)i(means)f(to)h(kill)d(the)630
+1261 y(c)m(haracters)k(instead)d(of)i(deleting)e(them.)150
+1428 y Fn(forward-backward-delete-)o(char)24 b(\(\))630
+1538 y Fo(Delete)39 b(the)g(c)m(haracter)h(under)c(the)j(cursor,)h
+(unless)c(the)j(cursor)e(is)g(at)i(the)g(end)e(of)i(the)630
+1647 y(line,)31 b(in)f(whic)m(h)g(case)j(the)f(c)m(haracter)h(b)s
+(ehind)c(the)j(cursor)f(is)f(deleted.)45 b(By)32 b(default,)f(this)630
+1757 y(is)e(not)i(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+1924 y Fn(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 2033
+y Fo(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)f
+(v)m(erbatim.)52 b(This)32 b(is)i(ho)m(w)g(to)h(insert)e(k)m(ey)630
+2143 y(sequences)e(lik)m(e)e Fg(C-q)p Fo(,)h(for)g(example.)150
+2310 y Fn(tab-insert)e(\(M-)802 2307 y Ff(h)p 825 2254
+148 4 v 825 2310 a Fe(T)-6 b(AB)p 825 2325 V 969 2307
+a Ff(i)998 2310 y Fn(\))630 2419 y Fo(Insert)30 b(a)h(tab)f(c)m
+(haracter.)150 2586 y Fn(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
+(\))630 2696 y Fo(Insert)g(y)m(ourself.)150 2862 y Fn(transpose-chars)c
+(\(C-t\))630 2972 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 3081 y(mo)m(ving)j(the)h(cursor)f(forw)m(ard)g(as)g(w)m
+(ell.)55 b(If)35 b(the)h(insertion)e(p)s(oin)m(t)g(is)g(at)j(the)e(end)
+g(of)h(the)630 3191 y(line,)22 b(then)g(this)f(transp)s(oses)g(the)h
+(last)g(t)m(w)m(o)h(c)m(haracters)g(of)f(the)h(line.)36
+b(Negativ)m(e)24 b(argumen)m(ts)630 3301 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)150 3467 y Fn(transpose-words)c(\(M-t\))630
+3577 y Fo(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(past)h
+(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)h(mo)m(ving)f(p)s(oin)m(t)f(past)
+h(that)630 3687 y(w)m(ord)c(as)h(w)m(ell.)39 b(If)27
+b(the)i(insertion)d(p)s(oin)m(t)i(is)f(at)i(the)g(end)e(of)i(the)f
+(line,)g(this)f(transp)s(oses)h(the)630 3796 y(last)i(t)m(w)m(o)i(w)m
+(ords)e(on)g(the)h(line.)150 3963 y Fn(upcase-word)c(\(M-u\))630
+4073 y Fo(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))f
+(w)m(ord.)45 b(With)31 b(a)h(negativ)m(e)i(argumen)m(t,)f(upp)s(er-)630
+4182 y(case)e(the)g(previous)e(w)m(ord,)h(but)g(do)g(not)h(mo)m(v)m(e)h
+(the)e(cursor.)150 4349 y Fn(downcase-word)d(\(M-l\))630
+4458 y Fo(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))f
+(w)m(ord.)37 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h(lo)m(w)m
+(ercase)630 4568 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i(not)f(mo)m
+(v)m(e)i(the)f(cursor.)150 4735 y Fn(capitalize-word)26
+b(\(M-c\))630 4844 y Fo(Capitalize)20 b(the)i(curren)m(t)f(\(or)g
+(follo)m(wing\))f(w)m(ord.)38 b(With)20 b(a)i(negativ)m(e)g(argumen)m
+(t,)i(capitalize)630 4954 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i
+(not)f(mo)m(v)m(e)i(the)f(cursor.)150 5121 y Fn(overwrite-mode)26
+b(\(\))630 5230 y Fo(T)-8 b(oggle)34 b(o)m(v)m(erwrite)g(mo)s(de.)48
+b(With)32 b(an)h(explicit)e(p)s(ositiv)m(e)h(n)m(umeric)g(argumen)m(t,)
+i(switc)m(hes)630 5340 y(to)22 b(o)m(v)m(erwrite)h(mo)s(de.)37
+b(With)21 b(an)h(explicit)e(non-p)s(ositiv)m(e)g(n)m(umeric)h(argumen)m
+(t,)j(switc)m(hes)d(to)p eop
+%%Page: 16 20
+16 19 bop 150 -116 a Fo(16)2600 b(GNU)31 b(Readline)e(Library)630
+299 y(insert)g(mo)s(de.)41 b(This)29 b(command)i(a\013ects)h(only)d
+Fn(emacs)g Fo(mo)s(de;)i Fn(vi)f Fo(mo)s(de)g(do)s(es)g(o)m(v)m
+(erwrite)630 408 y(di\013eren)m(tly)-8 b(.)40 b(Eac)m(h)31
+b(call)f(to)h Fn(readline\(\))c Fo(starts)k(in)e(insert)g(mo)s(de.)630
+539 y(In)f(o)m(v)m(erwrite)i(mo)s(de,)f(c)m(haracters)i(b)s(ound)c(to)j
+Fn(self-insert)c Fo(replace)j(the)h(text)g(at)g(p)s(oin)m(t)630
+648 y(rather)41 b(than)h(pushing)d(the)j(text)g(to)g(the)g(righ)m(t.)74
+b(Characters)42 b(b)s(ound)d(to)j Fn(backward-)630 758
+y(delete-char)27 b Fo(replace)k(the)f(c)m(haracter)i(b)s(efore)e(p)s
+(oin)m(t)g(with)f(a)h(space.)630 888 y(By)h(default,)e(this)h(command)g
+(is)f(un)m(b)s(ound.)150 1099 y Fc(1.4.4)63 b(Killing)42
+b(And)e(Y)-10 b(anking)150 1339 y Fn(kill-line)28 b(\(C-k\))630
+1449 y Fo(Kill)g(the)i(text)i(from)e(p)s(oin)m(t)f(to)i(the)g(end)e(of)
+i(the)f(line.)150 1599 y Fn(backward-kill-line)25 b(\(C-x)30
+b(Rubout\))630 1709 y Fo(Kill)e(bac)m(kw)m(ard)j(to)g(the)f(b)s
+(eginning)e(of)i(the)h(line.)150 1860 y Fn(unix-line-discard)26
+b(\(C-u\))630 1969 y Fo(Kill)i(bac)m(kw)m(ard)j(from)e(the)i(cursor)f
+(to)h(the)f(b)s(eginning)e(of)j(the)f(curren)m(t)g(line.)150
+2120 y Fn(kill-whole-line)c(\(\))630 2230 y Fo(Kill)34
+b(all)h(c)m(haracters)j(on)f(the)f(curren)m(t)h(line,)f(no)h(matter)g
+(where)f(p)s(oin)m(t)g(is.)58 b(By)36 b(default,)630
+2339 y(this)29 b(is)h(un)m(b)s(ound.)150 2490 y Fn(kill-word)e(\(M-d\))
+630 2600 y Fo(Kill)f(from)i(p)s(oin)m(t)f(to)i(the)g(end)e(of)i(the)f
+(curren)m(t)h(w)m(ord,)f(or)g(if)g(b)s(et)m(w)m(een)h(w)m(ords,)f(to)h
+(the)g(end)630 2709 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+b(ord)31 b(b)s(oundaries)d(are)i(the)h(same)g(as)f Fn(forward-word)p
+Fo(.)150 2860 y Fn(backward-kill-word)25 b(\(M-)1183
+2857 y Ff(h)p 1207 2804 146 4 v 1207 2860 a Fe(DEL)p
+1207 2875 V 1348 2857 a Ff(i)1378 2860 y Fn(\))630 2970
+y Fo(Kill)h(the)j(w)m(ord)g(b)s(ehind)d(p)s(oin)m(t.)39
+b(W)-8 b(ord)29 b(b)s(oundaries)e(are)i(the)g(same)g(as)g
+Fn(backward-word)p Fo(.)150 3120 y Fn(unix-word-rubout)d(\(C-w\))630
+3230 y Fo(Kill)j(the)j(w)m(ord)f(b)s(ehind)e(p)s(oin)m(t,)i(using)f
+(white)h(space)h(as)g(a)g(w)m(ord)f(b)s(oundary)-8 b(.)43
+b(The)31 b(killed)630 3339 y(text)g(is)f(sa)m(v)m(ed)h(on)g(the)f
+(kill-ring.)150 3490 y Fn(unix-filename-rubout)25 b(\(\))630
+3600 y Fo(Kill)34 b(the)i(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t,)j(using)e
+(white)g(space)i(and)f(the)g(slash)f(c)m(haracter)j(as)f(the)630
+3709 y(w)m(ord)30 b(b)s(oundaries.)38 b(The)30 b(killed)e(text)j(is)f
+(sa)m(v)m(ed)h(on)g(the)f(kill-ring.)150 3860 y Fn
+(delete-horizontal-space)24 b(\(\))630 3970 y Fo(Delete)32
+b(all)d(spaces)i(and)e(tabs)i(around)e(p)s(oin)m(t.)40
+b(By)31 b(default,)e(this)h(is)f(un)m(b)s(ound.)150 4121
+y Fn(kill-region)e(\(\))630 4230 y Fo(Kill)h(the)i(text)i(in)d(the)h
+(curren)m(t)h(region.)40 b(By)31 b(default,)e(this)h(command)g(is)f(un)
+m(b)s(ound.)150 4381 y Fn(copy-region-as-kill)c(\(\))630
+4490 y Fo(Cop)m(y)34 b(the)g(text)h(in)e(the)h(region)f(to)i(the)f
+(kill)e(bu\013er,)i(so)g(it)g(can)g(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)e
+(a)m(w)m(a)m(y)-8 b(.)630 4600 y(By)31 b(default,)e(this)h(command)g
+(is)f(un)m(b)s(ound.)150 4751 y Fn(copy-backward-word)c(\(\))630
+4860 y Fo(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(to)j
+(the)e(kill)e(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)e(are)j
+(the)630 4970 y(same)31 b(as)f Fn(backward-word)p Fo(.)38
+b(By)30 b(default,)g(this)f(command)h(is)g(un)m(b)s(ound.)150
+5121 y Fn(copy-forward-word)c(\(\))630 5230 y Fo(Cop)m(y)31
+b(the)g(w)m(ord)g(follo)m(wing)e(p)s(oin)m(t)h(to)i(the)f(kill)e
+(bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)d(are)k(the)630
+5340 y(same)f(as)f Fn(forward-word)p Fo(.)38 b(By)30
+b(default,)g(this)g(command)g(is)f(un)m(b)s(ound.)p eop
+%%Page: 17 21
+17 20 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(17)150 299 y Fn(yank)29 b(\(C-y\))630
+408 y Fo(Y)-8 b(ank)31 b(the)f(top)h(of)g(the)f(kill)e(ring)h(in)m(to)i
+(the)f(bu\013er)g(at)h(p)s(oin)m(t.)150 552 y Fn(yank-pop)d(\(M-y\))630
+661 y Fo(Rotate)36 b(the)f(kill-ring,)e(and)h(y)m(ank)h(the)f(new)g
+(top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i(this)e(if)h(the)h(prior)630
+771 y(command)30 b(is)g Fn(yank)f Fo(or)h Fn(yank-pop)p
+Fo(.)150 971 y Fc(1.4.5)63 b(Sp)s(ecifying)41 b(Numeric)f(Argumen)m(ts)
+150 1207 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 1317 y Fo(Add)d(this)g(digit)f
+(to)j(the)f(argumen)m(t)g(already)g(accum)m(ulating,)g(or)g(start)h(a)f
+(new)f(argumen)m(t.)630 1427 y Fg(M--)j Fo(starts)i(a)g(negativ)m(e)h
+(argumen)m(t.)150 1570 y Fn(universal-argument)25 b(\(\))630
+1680 y Fo(This)f(is)g(another)i(w)m(a)m(y)g(to)h(sp)s(ecify)d(an)h
+(argumen)m(t.)40 b(If)25 b(this)f(command)i(is)e(follo)m(w)m(ed)h(b)m
+(y)h(one)630 1789 y(or)k(more)f(digits,)g(optionally)f(with)g(a)i
+(leading)f(min)m(us)f(sign,)h(those)h(digits)e(de\014ne)h(the)h(ar-)630
+1899 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)f(follo)m(w)m(ed)g(b)
+m(y)h(digits,)g(executing)g Fn(universal-argument)630
+2008 y Fo(again)j(ends)f(the)h(n)m(umeric)e(argumen)m(t,)j(but)e(is)g
+(otherwise)g(ignored.)44 b(As)32 b(a)g(sp)s(ecial)f(case,)630
+2118 y(if)h(this)g(command)g(is)g(immediately)f(follo)m(w)m(ed)i(b)m(y)
+f(a)h(c)m(haracter)i(that)e(is)f(neither)g(a)h(digit)630
+2228 y(or)28 b(min)m(us)e(sign,)i(the)g(argumen)m(t)g(coun)m(t)h(for)e
+(the)i(next)f(command)f(is)g(m)m(ultiplied)e(b)m(y)i(four.)630
+2337 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)g(initially)d(one,)39
+b(so)f(executing)f(this)f(function)g(the)i(\014rst)e(time)630
+2447 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e
+(time)h(mak)m(es)g(the)g(argumen)m(t)g(coun)m(t)h(six-)630
+2556 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)f(this)f(is)g(not)i
+(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 2757 y Fc(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 2993 y Fn(complete)28 b(\()610 2990
+y Ff(h)p 634 2937 148 4 v 634 2993 a Fe(T)-6 b(AB)p 634
+3008 V 778 2990 a Ff(i)808 2993 y Fn(\))630 3102 y Fo(A)m(ttempt)24
+b(to)f(p)s(erform)e(completion)h(on)h(the)g(text)g(b)s(efore)f(p)s(oin)
+m(t.)38 b(The)22 b(actual)h(completion)630 3212 y(p)s(erformed)29
+b(is)g(application-sp)s(eci\014c.)38 b(The)30 b(default)g(is)f
+(\014lename)h(completion.)150 3355 y Fn(possible-completions)25
+b(\(M-?\))630 3465 y Fo(List)30 b(the)g(p)s(ossible)e(completions)i(of)
+g(the)h(text)g(b)s(efore)f(p)s(oin)m(t.)150 3608 y Fn
+(insert-completions)25 b(\(M-*\))630 3718 y Fo(Insert)30
+b(all)f(completions)h(of)h(the)g(text)g(b)s(efore)f(p)s(oin)m(t)g(that)
+h(w)m(ould)e(ha)m(v)m(e)j(b)s(een)e(generated)630 3827
+y(b)m(y)g Fn(possible-completions)p Fo(.)150 3971 y Fn(menu-complete)d
+(\(\))630 4080 y Fo(Similar)21 b(to)j Fn(complete)p Fo(,)f(but)h
+(replaces)f(the)h(w)m(ord)g(to)g(b)s(e)f(completed)h(with)e(a)j(single)
+d(matc)m(h)630 4190 y(from)37 b(the)h(list)f(of)h(p)s(ossible)d
+(completions.)62 b(Rep)s(eated)39 b(execution)f(of)g
+Fn(menu-complete)630 4300 y Fo(steps)i(through)g(the)g(list)f(of)h(p)s
+(ossible)e(completions,)k(inserting)c(eac)m(h)k(matc)m(h)f(in)e(turn.)
+630 4409 y(A)m(t)f(the)f(end)f(of)h(the)g(list)e(of)i(completions,)g
+(the)g(b)s(ell)e(is)h(rung)g(\(sub)5 b(ject)36 b(to)i(the)f(setting)630
+4519 y(of)f Fn(bell-style)p Fo(\))e(and)h(the)h(original)f(text)i(is)e
+(restored.)57 b(An)36 b(argumen)m(t)h(of)f Fd(n)f Fo(mo)m(v)m(es)i
+Fd(n)630 4628 y Fo(p)s(ositions)c(forw)m(ard)h(in)f(the)i(list)f(of)g
+(matc)m(hes;)39 b(a)c(negativ)m(e)h(argumen)m(t)f(ma)m(y)g(b)s(e)f
+(used)g(to)630 4738 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(list.)63 b(This)37 b(command)h(is)f(in)m(tended)g(to)i(b)s(e)f(b)s
+(ound)e(to)630 4845 y Ff(h)p 654 4792 V 654 4848 a Fe(T)-6
+b(AB)p 654 4863 V 798 4845 a Ff(i)828 4848 y Fo(,)30
+b(but)g(is)f(un)m(b)s(ound)f(b)m(y)i(default.)150 4991
+y Fn(delete-char-or-list)25 b(\(\))630 5101 y Fo(Deletes)j(the)f(c)m
+(haracter)h(under)e(the)h(cursor)f(if)g(not)h(at)g(the)g(b)s(eginning)e
+(or)h(end)h(of)g(the)g(line)630 5210 y(\(lik)m(e)i Fn(delete-char)p
+Fo(\).)37 b(If)29 b(at)h(the)f(end)f(of)i(the)f(line,)f(b)s(eha)m(v)m
+(es)i(iden)m(tically)d(to)i Fn(possible-)630 5320 y(completions)p
+Fo(.)38 b(This)28 b(command)i(is)g(un)m(b)s(ound)e(b)m(y)i(default.)p
eop
-%%Page: 17 19
-17 18 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(17)75 149 y Fl(delete-char-or-list)13 b(\(\))315 204
-y Fm(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f
-(at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315
-259 y(\(lik)o(e)i Fl(delete-char)p Fm(\).)j(If)d(at)f(the)h(end)g(of)f
-(the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d
-Fl(possible-)315 314 y(completions)p Fm(.)k(This)e(command)f(is)h(un)o
-(b)q(ound)g(b)o(y)f(default.)75 428 y Fb(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 551 y Fl(start-kbd-macro)13 b(\(C-x)i(\(\))315
-606 y Fm(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699
-y Fl(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fm(Stop)f(sa)o(ving)f(the)h
-(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q
-(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75
-902 y Fl(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y
-Fm(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o
-(y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012
-y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q
-(oard.)75 1126 y Fb(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-1249 y Fl(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304
-y Fm(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fc(inputrc)k
-Fm(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
-(ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75
-1452 y Fl(abort)e(\(C-g\))315 1507 y Fm(Ab)q(ort)f(the)g(curren)o(t)h
-(editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s
-(ject)e(to)g(the)315 1561 y(setting)i(of)g Fl(bell-style)p
-Fm(\).)75 1655 y Fl(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fc(x)p Fl(,)h(...\))315 1710 y Fm(If)f(the)g(meta\014ed)g(c)o(haracter)
-f Fc(x)k Fm(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g
-(b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o
-(haracter.)75 1858 y Fl(prefix-meta)e(\()377 1856 y Ff(h)p
-389 1830 70 2 v 389 1858 a Fe(ESC)p 389 1866 V 456 1856
-a Ff(i)471 1858 y Fl(\))315 1913 y Fm(Metafy)k(the)h(next)g(c)o
-(haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h
-(without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485
-1966 y Ff(h)p 496 1939 V 496 1968 a Fe(ESC)p 496 1975
-V 563 1966 a Ff(i)593 1968 y Fl(f)p Fm(')f(is)h(equiv)m(alen)o(t)h(to)d
-(t)o(yping)i Fg(M-f)p Fm(.)75 2061 y Fl(undo)f(\(C-_)f(or)h(C-x)g
-(C-u\))315 2116 y Fm(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
-(ered)g(for)e(eac)o(h)h(line.)75 2209 y Fl(revert-line)f(\(M-r\))315
-2264 y Fm(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26
-b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Fl(undo)f
-Fm(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 2412 y Fl(tilde-expand)f(\(M-~\))315
-2467 y Fm(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)75 2560 y Fl(set-mark)f(\(C-@\))315 2615 y Fm(Set)i(the)h(mark)f
-(to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f
-(is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q
-(osition.)p eop
-%%Page: 18 20
-18 19 bop 75 -58 a Fm(18)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fl(exchange-point-and-mark)c(\(C-x)j(C-x\))315
-204 y Fm(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c
-(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed)
-315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g
-(sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Fl(character-search)e(\(C-]\))
-315 402 y Fm(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g
-(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o
-(haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f
-(previous)i(o)q(ccurrences.)75 544 y Fl(character-search-backward)c
-(\(M-C-]\))315 599 y Fm(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q
-(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)
-e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o
-(hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y
-Fl(insert-comment)d(\(M-#\))315 796 y Fm(Without)18 b(a)f(n)o(umeric)i
-(argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Fl(comment-begin)f
-Fm(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i
-(of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o
-(t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:)
-26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g
-(line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e
-Fl(comment-begin)p Fm(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h
-(the)315 1015 y(c)o(haracters)j(in)i Fl(comment-begin)d
-Fm(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36
-b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g
-(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158
-y Fl(dump-functions)c(\(\))315 1213 y Fm(Prin)o(t)g(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g
-(output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i
-(supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o
-(y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
-Fc(inputrc)k Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
-(y)f(default.)75 1410 y Fl(dump-variables)e(\(\))315
-1465 y Fm(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f
-(their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315
-1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e
-(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315
-1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fc(inputrc)k
-Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)
-75 1662 y Fl(dump-macros)f(\(\))315 1717 y Fm(Prin)o(t)j(all)h(of)e
-(the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h
-(the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h
-(argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j
-(suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g
-(part)g(of)f(an)h Fc(inputrc)k Fm(\014le.)i(This)15 b(command)g(is)h
-(un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y
-Fl(emacs-editing-mode)d(\(C-e\))315 2024 y Fm(When)j(in)g
-Fl(vi)e Fm(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g
-Fl(emacs)f Fm(editing)j(mo)q(de.)75 2111 y Fl(vi-editing-mode)c
-(\(M-C-j\))315 2166 y Fm(When)j(in)g Fl(emacs)e Fm(editing)j(mo)q(de,)e
-(this)g(causes)h(a)f(switc)o(h)g(to)g Fl(vi)f Fm(editing)j(mo)q(de.)75
-2290 y Fk(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385
-y Fm(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f
-(a)h(full)h(set)f(of)f Fl(vi)g Fm(editing)j(functions,)f(it)f(do)q(es)g
-(con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h
-(of)d(the)i(line.)27 b(The)17 b(Readline)h Fl(vi)f Fm(mo)q(de)g(b)q
-(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c
-Fh(posix)g Fm(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o
-(h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Fl(emacs)e
-Fm(and)i Fl(vi)f Fm(editing)i(mo)q(des,)f(use)f(the)h(command)75
-2615 y Fg(M-C-j)j Fm(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e
-(in)h Fl(vi)f Fm(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e
-Fl(emacs)75 2670 y Fm(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f
-Fl(emacs)g Fm(mo)q(de.)p eop
-%%Page: 19 21
-19 20 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e
-Fl(vi)g Fm(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g
-(`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h
-(an)f(`)p Fl(i)p Fm('.)18 b(Pressing)608 202 y Ff(h)p
-620 176 70 2 v 620 204 a Fe(ESC)p 620 212 V 687 202 a
-Ff(i)715 204 y Fm(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q
-(de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g
-(line)h(with)g(the)f(standard)f Fl(vi)h Fm(mo)o(v)o(emen)o(t)f(k)o
-(eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75
-314 y(`)p Fl(k)p Fm(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p
-Fl(j)p Fm(',)e(and)h(so)g(forth.)p eop
-%%Page: 20 22
-20 21 bop 75 -58 a Fm(20)1299 b(GNU)15 b(Readline)h(Library)p
+%%Page: 18 22
+18 21 bop 150 -116 a Fo(18)2600 b(GNU)31 b(Readline)e(Library)150
+299 y Fc(1.4.7)63 b(Keyb)s(oard)41 b(Macros)150 545 y
+Fn(start-kbd-macro)26 b(\(C-x)j(\(\))630 655 y Fo(Begin)h(sa)m(ving)h
+(the)f(c)m(haracters)i(t)m(yp)s(ed)e(in)m(to)g(the)h(curren)m(t)f(k)m
+(eyb)s(oard)g(macro.)150 818 y Fn(end-kbd-macro)d(\(C-x)i(\)\))630
+927 y Fo(Stop)e(sa)m(ving)g(the)h(c)m(haracters)g(t)m(yp)s(ed)f(in)m
+(to)h(the)f(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i
+(the)630 1037 y(de\014nition.)150 1200 y Fn(call-last-kbd-macro)c
+(\(C-x)k(e\))630 1310 y Fo(Re-execute)37 b(the)e(last)g(k)m(eyb)s(oard)
+g(macro)h(de\014ned,)f(b)m(y)h(making)e(the)h(c)m(haracters)i(in)d(the)
+630 1419 y(macro)d(app)s(ear)f(as)g(if)g(t)m(yp)s(ed)g(at)h(the)f(k)m
+(eyb)s(oard.)150 1651 y Fc(1.4.8)63 b(Some)40 b(Miscellaneous)j
+(Commands)150 1898 y Fn(re-read-init-file)26 b(\(C-x)j(C-r\))630
+2007 y Fo(Read)22 b(in)f(the)h(con)m(ten)m(ts)h(of)f(the)g
+Fd(inputrc)k Fo(\014le,)d(and)e(incorp)s(orate)g(an)m(y)i(bindings)18
+b(or)k(v)-5 b(ariable)630 2117 y(assignmen)m(ts)30 b(found)f(there.)150
+2280 y Fn(abort)g(\(C-g\))630 2390 y Fo(Ab)s(ort)d(the)h(curren)m(t)f
+(editing)f(command)h(and)g(ring)g(the)g(terminal's)f(b)s(ell)g(\(sub)5
+b(ject)26 b(to)i(the)630 2499 y(setting)i(of)h Fn(bell-style)p
+Fo(\).)150 2663 y Fn(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p
+Fg(x)p Fn(,)g(...)o(\))630 2772 y Fo(If)e(the)h(meta\014ed)g(c)m
+(haracter)h Fd(x)34 b Fo(is)27 b(lo)m(w)m(ercase,)i(run)e(the)g
+(command)h(that)g(is)f(b)s(ound)e(to)k(the)630 2882 y(corresp)s(onding)
+f(upp)s(ercase)i(c)m(haracter.)150 3045 y Fn(prefix-meta)d(\()753
+3042 y Ff(h)p 777 2989 139 4 v 777 3045 a Fe(ESC)p 777
+3060 V 911 3042 a Ff(i)941 3045 y Fn(\))630 3155 y Fo(Metafy)39
+b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62 b(This)36
+b(is)g(for)i(k)m(eyb)s(oards)f(without)f(a)i(meta)g(k)m(ey)-8
+b(.)630 3264 y(T)m(yping)29 b(`)968 3261 y Ff(h)p 993
+3208 V 993 3264 a Fe(ESC)p 993 3280 V 1127 3261 a Ff(i)1187
+3264 y Fn(f)p Fo(')h(is)f(equiv)-5 b(alen)m(t)30 b(to)h(t)m(yping)f
+Fg(M-f)p Fo(.)150 3428 y Fn(undo)f(\(C-_)g(or)h(C-x)g(C-u\))630
+3537 y Fo(Incremen)m(tal)g(undo,)g(separately)g(remem)m(b)s(ered)g(for)
+g(eac)m(h)i(line.)150 3700 y Fn(revert-line)27 b(\(M-r\))630
+3810 y Fo(Undo)33 b(all)f(c)m(hanges)i(made)f(to)h(this)e(line.)47
+b(This)31 b(is)h(lik)m(e)h(executing)g(the)g Fn(undo)f
+Fo(command)630 3920 y(enough)e(times)g(to)h(get)h(bac)m(k)f(to)g(the)f
+(b)s(eginning.)150 4083 y Fn(tilde-expand)d(\(M-~\))630
+4192 y Fo(P)m(erform)j(tilde)f(expansion)h(on)g(the)g(curren)m(t)h(w)m
+(ord.)150 4356 y Fn(set-mark)d(\(C-@\))630 4465 y Fo(Set)33
+b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)47 b(If)32 b(a)h(n)m(umeric)f
+(argumen)m(t)h(is)f(supplied,)e(the)j(mark)g(is)e(set)630
+4575 y(to)g(that)g(p)s(osition.)150 4738 y Fn(exchange-point-and-mark)
+24 b(\(C-x)29 b(C-x\))630 4848 y Fo(Sw)m(ap)i(the)g(p)s(oin)m(t)f(with)
+g(the)h(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)g(is)g
+(set)i(to)f(the)h(sa)m(v)m(ed)630 4957 y(p)s(osition,)d(and)g(the)i
+(old)f(cursor)f(p)s(osition)g(is)g(sa)m(v)m(ed)j(as)e(the)h(mark.)150
+5121 y Fn(character-search)26 b(\(C-]\))630 5230 y Fo(A)f(c)m(haracter)
+h(is)e(read)h(and)f(p)s(oin)m(t)g(is)g(mo)m(v)m(ed)i(to)g(the)f(next)g
+(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 5340 y(A)30
+b(negativ)m(e)i(coun)m(t)f(searc)m(hes)g(for)f(previous)f(o)s
+(ccurrences.)p eop
+%%Page: 19 23
+19 22 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29
+b(Line)h(Editing)2105 b(19)150 299 y Fn(character-search-backwar)o(d)24
+b(\(M-C-]\))630 408 y Fo(A)45 b(c)m(haracter)h(is)e(read)h(and)f(p)s
+(oin)m(t)g(is)g(mo)m(v)m(ed)i(to)f(the)g(previous)e(o)s(ccurrence)i(of)
+g(that)630 518 y(c)m(haracter.)d(A)31 b(negativ)m(e)g(coun)m(t)g(searc)
+m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150 677
+y Fn(insert-comment)d(\(M-#\))630 787 y Fo(Without)35
+b(a)h(n)m(umeric)f(argumen)m(t,)i(the)f(v)-5 b(alue)35
+b(of)h(the)g Fn(comment-begin)c Fo(v)-5 b(ariable)34
+b(is)h(in-)630 897 y(serted)d(at)g(the)g(b)s(eginning)d(of)j(the)f
+(curren)m(t)h(line.)43 b(If)31 b(a)h(n)m(umeric)e(argumen)m(t)i(is)f
+(supplied,)630 1006 y(this)k(command)i(acts)g(as)g(a)g(toggle:)54
+b(if)36 b(the)g(c)m(haracters)i(at)g(the)e(b)s(eginning)e(of)j(the)g
+(line)630 1116 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
+b(alue)30 b(of)g Fn(comment-begin)p Fo(,)e(the)i(v)-5
+b(alue)30 b(is)g(inserted,)g(otherwise)g(the)630 1225
+y(c)m(haracters)42 b(in)c Fn(comment-begin)f Fo(are)j(deleted)g(from)g
+(the)g(b)s(eginning)e(of)i(the)g(line.)69 b(In)630 1335
+y(either)30 b(case,)i(the)e(line)f(is)g(accepted)j(as)f(if)e(a)i
+(newline)d(had)i(b)s(een)f(t)m(yp)s(ed.)150 1494 y Fn(dump-functions)d
+(\(\))630 1604 y Fo(Prin)m(t)f(all)h(of)g(the)h(functions)e(and)h
+(their)f(k)m(ey)i(bindings)c(to)28 b(the)e(Readline)f(output)h(stream.)
+630 1714 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(supplied,)e(the)
+j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a)m(y)g(that)630
+1823 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h Fd(inputrc)j
+Fo(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d(b)m(y)k
+(default.)150 1983 y Fn(dump-variables)26 b(\(\))630
+2092 y Fo(Prin)m(t)20 b(all)g(of)i(the)f(settable)h(v)-5
+b(ariables)20 b(and)h(their)f(v)-5 b(alues)21 b(to)h(the)f(Readline)f
+(output)h(stream.)630 2202 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)
+f(supplied,)e(the)j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a)
+m(y)g(that)630 2311 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h
+Fd(inputrc)j Fo(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d
+(b)m(y)k(default.)150 2471 y Fn(dump-macros)c(\(\))630
+2580 y Fo(Prin)m(t)33 b(all)f(of)i(the)g(Readline)e(k)m(ey)j(sequences)
+f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)f(they)630
+2690 y(output.)53 b(If)35 b(a)g(n)m(umeric)e(argumen)m(t)j(is)d
+(supplied,)g(the)i(output)g(is)e(formatted)j(in)d(suc)m(h)i(a)630
+2800 y(w)m(a)m(y)c(that)g(it)e(can)h(b)s(e)g(made)g(part)f(of)i(an)e
+Fd(inputrc)34 b Fo(\014le.)40 b(This)28 b(command)i(is)f(un)m(b)s(ound)
+e(b)m(y)630 2909 y(default.)150 3068 y Fn(emacs-editing-mode)e(\(C-e\))
+630 3178 y Fo(When)30 b(in)f Fn(vi)h Fo(command)g(mo)s(de,)g(this)g
+(causes)g(a)h(switc)m(h)f(to)h Fn(emacs)e Fo(editing)g(mo)s(de.)150
+3337 y Fn(vi-editing-mode)d(\(M-C-j\))630 3447 y Fo(When)k(in)f
+Fn(emacs)g Fo(editing)g(mo)s(de,)h(this)g(causes)g(a)h(switc)m(h)f(to)h
+Fn(vi)f Fo(editing)f(mo)s(de.)150 3704 y Fm(1.5)68 b(Readline)47
+b(vi)e(Mo)t(de)275 3949 y Fo(While)22 b(the)i(Readline)e(library)f(do)s
+(es)j(not)g(ha)m(v)m(e)g(a)h(full)c(set)j(of)g Fn(vi)f
+Fo(editing)f(functions,)i(it)f(do)s(es)h(con)m(tain)150
+4058 y(enough)34 b(to)h(allo)m(w)e(simple)f(editing)h(of)h(the)g(line.)
+50 b(The)34 b(Readline)e Fn(vi)i Fo(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f
+(sp)s(eci\014ed)e(in)150 4168 y(the)f Fh(posix)e Fo(1003.2)k(standard.)
+275 4302 y(In)28 b(order)g(to)i(switc)m(h)f(in)m(teractiv)m(ely)g(b)s
+(et)m(w)m(een)g Fn(emacs)f Fo(and)g Fn(vi)h Fo(editing)e(mo)s(des,)i
+(use)g(the)g(command)150 4412 y Fg(M-C-j)36 b Fo(\(b)s(ound)h(to)h
+(emacs-editing-mo)s(de)g(when)f(in)f Fn(vi)i Fo(mo)s(de)f(and)g(to)i
+(vi-editing-mo)s(de)d(in)g Fn(emacs)150 4521 y Fo(mo)s(de\).)41
+b(The)30 b(Readline)f(default)g(is)g Fn(emacs)g Fo(mo)s(de.)275
+4656 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)d(in)h Fn(vi)g
+Fo(mo)s(de,)h(y)m(ou)h(are)f(already)g(placed)f(in)g(`insertion')f(mo)s
+(de,)i(as)h(if)e(y)m(ou)150 4765 y(had)d(t)m(yp)s(ed)g(an)g(`)p
+Fn(i)p Fo('.)39 b(Pressing)1215 4762 y Ff(h)p 1239 4709
+139 4 v 1239 4765 a Fe(ESC)p 1239 4781 V 1373 4762 a
+Ff(i)1429 4765 y Fo(switc)m(hes)26 b(y)m(ou)h(in)m(to)f(`command')g(mo)
+s(de,)h(where)f(y)m(ou)h(can)f(edit)g(the)150 4875 y(text)35
+b(of)f(the)g(line)e(with)g(the)i(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)f(history)f(lines)g(with)150
+4985 y(`)p Fn(k)p Fo(')f(and)e(subsequen)m(t)h(lines)f(with)g(`)p
+Fn(j)p Fo(',)h(and)g(so)h(forth.)p eop
+%%Page: 20 24
+20 23 bop 150 -116 a Fo(20)2600 b(GNU)31 b(Readline)e(Library)p
eop
-%%Page: -1 23
--1 22 bop 1862 -58 a Fm(i)75 149 y Fi(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fk(1)67 b(Command)22 b(Line)i(Editing)d
-Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
-(.)f(.)g(.)g(.)42 b Fk(1)224 389 y Fm(1.1)j(In)o(tro)q(duction)16
-b(to)f(Line)h(Editing)e Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)27 b Fm(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8
-b Fd(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)23 b Fm(1)374 499 y(1.2.1)44 b(Readline)16
-b(Bare)f(Essen)o(tials)f Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fm(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands)
-7 b Fd(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)21 b Fm(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands)
-11 b Fd(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)25 b Fm(2)374 663 y(1.2.4)44 b(Readline)16
-b(Argumen)o(ts)c Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
-b Fm(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
-(the)f(History)e Fd(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fm(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)29 b Fm(4)374 827 y(1.3.1)44 b(Readline)16
-b(Init)g(File)h(Syn)o(tax)7 b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fm(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
-b Fd(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)19 b Fm(9)374 937 y(1.3.3)44 b(Sample)16
-b(Init)g(File)11 b Fd(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)26 b Fm(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands)
-6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fm(12)374
-1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fm(12)374 1101 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fd(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fm(12)374 1156 y(1.4.3)44
-b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fd(.)8
-b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
-b Fm(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
-b Fd(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fm(15)374
-1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
-b Fm(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l
-(or)g(Y)l(ou)10 b Fd(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)25 b Fm(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
-b(Macros)6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fm(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
-b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-22 b Fm(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)28 b Fm(18)p eop
-%%Page: -2 24
--2 23 bop 75 -58 a Fm(ii)1321 b(GNU)15 b(Readline)h(Library)p
+%%Page: 21 25
+21 24 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(21)150 299 y Fk(App)t(endix)53 b(A)40 b(Cop)l(ying)52
+b(This)j(Man)l(ual)150 690 y Fm(A.1)67 b(GNU)45 b(F)-11
+b(ree)45 b(Do)t(cumen)l(tation)h(License)1396 909 y Fo(V)-8
+b(ersion)30 b(1.2,)i(No)m(v)m(em)m(b)s(er)g(2002)390
+1052 y(Cop)m(yrigh)m(t)842 1049 y(c)817 1052 y Fl(\015)e
+Fo(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)31 b(Inc.)390 1161 y(59)g(T)-8 b(emple)30
+b(Place,)h(Suite)e(330,)j(Boston,)g(MA)61 b(02111-1307,)35
+b(USA)390 1380 y(Ev)m(ery)m(one)c(is)f(p)s(ermitted)f(to)i(cop)m(y)g
+(and)f(distribute)e(v)m(erbatim)i(copies)390 1490 y(of)h(this)e
+(license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m
+(w)m(ed.)199 1632 y(0.)61 b(PREAMBLE)330 1770 y(The)37
+b(purp)s(ose)e(of)i(this)f(License)h(is)f(to)i(mak)m(e)g(a)g(man)m
+(ual,)g(textb)s(o)s(ok,)i(or)d(other)g(functional)f(and)330
+1880 y(useful)28 b(do)s(cumen)m(t)i Fd(free)36 b Fo(in)28
+b(the)j(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j
+(the)e(e\013ectiv)m(e)i(freedom)330 1990 y(to)g(cop)m(y)g(and)f
+(redistribute)e(it,)i(with)g(or)g(without)f(mo)s(difying)f(it,)j
+(either)f(commercially)f(or)h(non-)330 2099 y(commercially)-8
+b(.)53 b(Secondarily)-8 b(,)34 b(this)g(License)g(preserv)m(es)h(for)f
+(the)h(author)f(and)g(publisher)d(a)k(w)m(a)m(y)330 2209
+y(to)i(get)g(credit)f(for)g(their)f(w)m(ork,)j(while)c(not)i(b)s(eing)f
+(considered)g(resp)s(onsible)e(for)j(mo)s(di\014cations)330
+2318 y(made)30 b(b)m(y)h(others.)330 2457 y(This)21 b(License)i(is)f(a)
+i(kind)d(of)j(\\cop)m(yleft",)i(whic)m(h)c(means)h(that)h(deriv)-5
+b(ativ)m(e)22 b(w)m(orks)h(of)h(the)f(do)s(cumen)m(t)330
+2566 y(m)m(ust)34 b(themselv)m(es)g(b)s(e)f(free)h(in)f(the)h(same)g
+(sense.)51 b(It)34 b(complemen)m(ts)g(the)g(GNU)g(General)g(Public)330
+2676 y(License,)c(whic)m(h)f(is)h(a)g(cop)m(yleft)h(license)f(designed)
+f(for)h(free)h(soft)m(w)m(are.)330 2814 y(W)-8 b(e)31
+b(ha)m(v)m(e)f(designed)f(this)f(License)h(in)f(order)h(to)i(use)e(it)g
+(for)g(man)m(uals)g(for)g(free)h(soft)m(w)m(are,)h(b)s(ecause)330
+2924 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:)
+64 b(a)42 b(free)h(program)f(should)e(come)j(with)e(man)m(uals)330
+3033 y(pro)m(viding)27 b(the)i(same)g(freedoms)f(that)i(the)f(soft)m(w)
+m(are)h(do)s(es.)40 b(But)29 b(this)e(License)i(is)f(not)h(limited)d
+(to)330 3143 y(soft)m(w)m(are)32 b(man)m(uals;)e(it)g(can)h(b)s(e)f
+(used)g(for)g(an)m(y)h(textual)g(w)m(ork,)g(regardless)f(of)h(sub)5
+b(ject)30 b(matter)i(or)330 3252 y(whether)f(it)g(is)f(published)e(as)k
+(a)f(prin)m(ted)f(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)g
+(License)g(principally)c(for)330 3362 y(w)m(orks)j(whose)h(purp)s(ose)d
+(is)i(instruction)e(or)i(reference.)199 3500 y(1.)61
+b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3639 y(This)38
+b(License)i(applies)e(to)i(an)m(y)h(man)m(ual)e(or)h(other)g(w)m(ork,)i
+(in)d(an)m(y)h(medium,)h(that)f(con)m(tains)h(a)330 3748
+y(notice)h(placed)f(b)m(y)g(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying)
+h(it)g(can)h(b)s(e)f(distributed)d(under)i(the)i(terms)330
+3858 y(of)c(this)e(License.)61 b(Suc)m(h)37 b(a)h(notice)g(gran)m(ts)g
+(a)g(w)m(orld-wide,)f(ro)m(y)m(alt)m(y-free)j(license,)e(unlimited)c
+(in)330 3967 y(duration,)48 b(to)e(use)f(that)g(w)m(ork)h(under)d(the)j
+(conditions)d(stated)j(herein.)84 b(The)45 b(\\Do)s(cumen)m(t",)330
+4077 y(b)s(elo)m(w,)28 b(refers)g(to)h(an)m(y)g(suc)m(h)f(man)m(ual)g
+(or)g(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)e(is)h
+(a)i(licensee,)g(and)330 4187 y(is)24 b(addressed)g(as)h(\\y)m(ou".)40
+b(Y)-8 b(ou)26 b(accept)g(the)f(license)f(if)g(y)m(ou)i(cop)m(y)-8
+b(,)27 b(mo)s(dify)c(or)i(distribute)e(the)i(w)m(ork)330
+4296 y(in)k(a)i(w)m(a)m(y)g(requiring)d(p)s(ermission)f(under)i(cop)m
+(yrigh)m(t)i(la)m(w.)330 4435 y(A)j(\\Mo)s(di\014ed)e(V)-8
+b(ersion")34 b(of)g(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f
+(con)m(taining)h(the)g(Do)s(cumen)m(t)g(or)330 4544 y(a)k(p)s(ortion)e
+(of)i(it,)h(either)e(copied)g(v)m(erbatim,)i(or)e(with)g(mo)s
+(di\014cations)e(and/or)j(translated)f(in)m(to)330 4654
+y(another)31 b(language.)330 4792 y(A)26 b(\\Secondary)g(Section")g(is)
+f(a)i(named)e(app)s(endix)e(or)j(a)h(fron)m(t-matter)g(section)f(of)g
+(the)g(Do)s(cumen)m(t)330 4902 y(that)c(deals)f(exclusiv)m(ely)f(with)g
+(the)h(relationship)e(of)i(the)h(publishers)17 b(or)k(authors)g(of)h
+(the)f(Do)s(cumen)m(t)330 5011 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m
+(v)m(erall)e(sub)5 b(ject)37 b(\(or)h(to)g(related)f(matters\))h(and)f
+(con)m(tains)g(nothing)f(that)330 5121 y(could)j(fall)g(directly)g
+(within)f(that)j(o)m(v)m(erall)g(sub)5 b(ject.)70 b(\(Th)m(us,)42
+b(if)d(the)i(Do)s(cumen)m(t)g(is)e(in)g(part)i(a)330
+5230 y(textb)s(o)s(ok)24 b(of)g(mathematics,)i(a)e(Secondary)f(Section)
+g(ma)m(y)h(not)g(explain)e(an)m(y)i(mathematics.\))39
+b(The)330 5340 y(relationship)25 b(could)h(b)s(e)h(a)g(matter)i(of)e
+(historical)f(connection)h(with)f(the)i(sub)5 b(ject)27
+b(or)g(with)f(related)p eop
+%%Page: 22 26
+22 25 bop 150 -116 a Fo(22)2600 b(GNU)31 b(Readline)e(Library)330
+299 y(matters,)38 b(or)d(of)h(legal,)g(commercial,)h(philosophical,)d
+(ethical)h(or)g(p)s(olitical)e(p)s(osition)h(regarding)330
+408 y(them.)330 549 y(The)25 b(\\In)m(v)-5 b(arian)m(t)26
+b(Sections")g(are)g(certain)f(Secondary)h(Sections)f(whose)g(titles)g
+(are)h(designated,)h(as)330 659 y(b)s(eing)e(those)i(of)g(In)m(v)-5
+b(arian)m(t)26 b(Sections,)i(in)d(the)i(notice)g(that)g(sa)m(ys)g(that)
+g(the)g(Do)s(cumen)m(t)g(is)f(released)330 769 y(under)g(this)h
+(License.)39 b(If)27 b(a)h(section)g(do)s(es)g(not)f(\014t)h(the)g(ab)s
+(o)m(v)m(e)h(de\014nition)c(of)j(Secondary)f(then)h(it)f(is)330
+878 y(not)32 b(allo)m(w)m(ed)g(to)g(b)s(e)g(designated)f(as)h(In)m(v)-5
+b(arian)m(t.)45 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)h(zero)
+f(In)m(v)-5 b(arian)m(t)330 988 y(Sections.)38 b(If)25
+b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)e(an)m(y)i(In)m(v)
+-5 b(arian)m(t)24 b(Sections)h(then)f(there)h(are)g(none.)330
+1129 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)f
+(short)h(passages)g(of)g(text)g(that)h(are)f(listed,)g(as)f(F)-8
+b(ron)m(t-Co)m(v)m(er)330 1238 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m
+(er)j(T)-8 b(exts,)27 b(in)c(the)i(notice)h(that)f(sa)m(ys)h(that)g
+(the)f(Do)s(cumen)m(t)h(is)e(released)g(under)330 1348
+y(this)h(License.)39 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29
+b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a)
+g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1457
+y(b)s(e)k(at)h(most)g(25)g(w)m(ords.)330 1598 y(A)36
+b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h
+(means)g(a)g(mac)m(hine-readable)f(cop)m(y)-8 b(,)38
+b(represen)m(ted)330 1708 y(in)c(a)i(format)g(whose)g(sp)s
+(eci\014cation)e(is)h(a)m(v)-5 b(ailable)35 b(to)i(the)f(general)f
+(public,)g(that)h(is)f(suitable)f(for)330 1817 y(revising)c(the)i(do)s
+(cumen)m(t)f(straigh)m(tforw)m(ardly)g(with)f(generic)i(text)h(editors)
+e(or)g(\(for)h(images)g(com-)330 1927 y(p)s(osed)23 b(of)h(pixels\))e
+(generic)i(pain)m(t)f(programs)h(or)f(\(for)h(dra)m(wings\))f(some)h
+(widely)e(a)m(v)-5 b(ailable)23 b(dra)m(wing)330 2037
+y(editor,)29 b(and)g(that)g(is)f(suitable)g(for)h(input)e(to)j(text)g
+(formatters)f(or)g(for)g(automatic)h(translation)e(to)330
+2146 y(a)f(v)-5 b(ariet)m(y)27 b(of)g(formats)g(suitable)f(for)g(input)
+f(to)j(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)f(an)h
+(otherwise)330 2256 y(T)-8 b(ransparen)m(t)37 b(\014le)g(format)h
+(whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f
+(arranged)g(to)330 2365 y(th)m(w)m(art)27 b(or)g(discourage)f
+(subsequen)m(t)g(mo)s(di\014cation)f(b)m(y)i(readers)f(is)f(not)i(T)-8
+b(ransparen)m(t.)39 b(An)27 b(image)330 2475 y(format)35
+b(is)e(not)i(T)-8 b(ransparen)m(t)34 b(if)f(used)h(for)g(an)m(y)g
+(substan)m(tial)f(amoun)m(t)i(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g
+(is)330 2585 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)e(called)h
+(\\Opaque".)330 2725 y(Examples)52 b(of)h(suitable)f(formats)h(for)g(T)
+-8 b(ransparen)m(t)53 b(copies)g(include)e(plain)g Fh(asci)r(i)i
+Fo(without)330 2835 y(markup,)41 b(T)-8 b(exinfo)39 b(input)f(format,)k
+(LaT)1775 2855 y(E)1826 2835 y(X)d(input)f(format,)43
+b Fh(sgml)c Fo(or)g Fh(xml)g Fo(using)f(a)i(publicly)330
+2945 y(a)m(v)-5 b(ailable)31 b Fh(dtd)p Fo(,)g(and)g
+(standard-conforming)f(simple)g Fh(html)p Fo(,)h(P)m(ostScript)g(or)g
+Fh(pdf)g Fo(designed)f(for)330 3054 y(h)m(uman)37 b(mo)s(di\014cation.)
+63 b(Examples)37 b(of)h(transparen)m(t)g(image)h(formats)f(include)e
+Fh(png)p Fo(,)k Fh(x)n(cf)e Fo(and)330 3164 y Fh(jpg)p
+Fo(.)63 b(Opaque)38 b(formats)g(include)e(proprietary)h(formats)h(that)
+h(can)f(b)s(e)g(read)g(and)f(edited)h(only)330 3273 y(b)m(y)h
+(proprietary)f(w)m(ord)h(pro)s(cessors,)j Fh(sgml)c Fo(or)i
+Fh(xml)e Fo(for)i(whic)m(h)e(the)h Fh(dtd)g Fo(and/or)g(pro)s(cessing)
+330 3383 y(to)s(ols)31 b(are)g(not)g(generally)f(a)m(v)-5
+b(ailable,)31 b(and)f(the)h(mac)m(hine-generated)h Fh(html)p
+Fo(,)e(P)m(ostScript)h(or)g Fh(pdf)330 3493 y Fo(pro)s(duced)e(b)m(y)h
+(some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8
+b(.)330 3634 y(The)34 b(\\Title)f(P)m(age")k(means,)e(for)f(a)h(prin)m
+(ted)e(b)s(o)s(ok,)i(the)f(title)g(page)h(itself,)f(plus)f(suc)m(h)g
+(follo)m(wing)330 3743 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)f
+(legibly)-8 b(,)27 b(the)h(material)f(this)g(License)g(requires)f(to)i
+(app)s(ear)f(in)g(the)330 3853 y(title)f(page.)40 b(F)-8
+b(or)28 b(w)m(orks)e(in)f(formats)i(whic)m(h)f(do)g(not)h(ha)m(v)m(e)h
+(an)m(y)e(title)h(page)g(as)g(suc)m(h,)g(\\Title)f(P)m(age")330
+3962 y(means)31 b(the)f(text)i(near)e(the)h(most)g(prominen)m(t)f(app)s
+(earance)g(of)h(the)g(w)m(ork's)g(title,)f(preceding)g(the)330
+4072 y(b)s(eginning)e(of)i(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330
+4213 y(A)f(section)g(\\En)m(titled)f(XYZ")h(means)f(a)h(named)g
+(subunit)d(of)i(the)h(Do)s(cumen)m(t)h(whose)e(title)g(either)330
+4322 y(is)e(precisely)f(XYZ)i(or)f(con)m(tains)h(XYZ)g(in)e(paren)m
+(theses)j(follo)m(wing)d(text)j(that)f(translates)g(XYZ)f(in)330
+4432 y(another)e(language.)39 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g
+(sp)s(eci\014c)f(section)h(name)g(men)m(tioned)g(b)s(elo)m(w,)g(suc)m
+(h)330 4542 y(as)j(\\Ac)m(kno)m(wledgemen)m(ts",)k(\\Dedications",)d
+(\\Endorsemen)m(ts",)g(or)f(\\History".\))41 b(T)-8 b(o)29
+b(\\Preserv)m(e)330 4651 y(the)34 b(Title")f(of)g(suc)m(h)h(a)g
+(section)f(when)g(y)m(ou)h(mo)s(dify)d(the)j(Do)s(cumen)m(t)h(means)e
+(that)h(it)f(remains)g(a)330 4761 y(section)e(\\En)m(titled)e(XYZ")i
+(according)f(to)h(this)f(de\014nition.)330 4902 y(The)d(Do)s(cumen)m(t)
+i(ma)m(y)f(include)d(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)c(next)i(to)
+g(the)g(notice)g(whic)m(h)e(states)j(that)330 5011 y(this)k(License)g
+(applies)f(to)j(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8
+b(arran)m(t)m(y)36 b(Disclaimers)c(are)j(considered)d(to)330
+5121 y(b)s(e)37 b(included)e(b)m(y)i(reference)h(in)f(this)f(License,)j
+(but)e(only)g(as)h(regards)f(disclaiming)e(w)m(arran)m(ties:)330
+5230 y(an)m(y)i(other)g(implication)e(that)i(these)g(W)-8
+b(arran)m(t)m(y)39 b(Disclaimers)c(ma)m(y)j(ha)m(v)m(e)g(is)e(v)m(oid)g
+(and)g(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)e(of)i
+(this)e(License.)p eop
+%%Page: 23 27
+23 26 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(23)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330
+445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)f(the)i(Do)s
+(cumen)m(t)h(in)e(an)m(y)h(medium,)g(either)g(commercially)f(or)330
+555 y(noncommercially)-8 b(,)45 b(pro)m(vided)c(that)i(this)e(License,)
+46 b(the)c(cop)m(yrigh)m(t)h(notices,)j(and)c(the)h(license)330
+664 y(notice)36 b(sa)m(ying)g(this)e(License)i(applies)d(to)k(the)f(Do)
+s(cumen)m(t)g(are)g(repro)s(duced)e(in)h(all)f(copies,)k(and)330
+774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)f(whatso)s(ev)m
+(er)j(to)f(those)g(of)g(this)e(License.)39 b(Y)-8 b(ou)27
+b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)33 b(measures)f(to)i
+(obstruct)f(or)g(con)m(trol)g(the)g(reading)f(or)h(further)e(cop)m
+(ying)i(of)g(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g
+(distribute.)36 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h
+(comp)s(ensation)e(in)f(exc)m(hange)k(for)d(copies.)330
+1103 y(If)32 b(y)m(ou)g(distribute)e(a)j(large)f(enough)g(n)m(um)m(b)s
+(er)f(of)h(copies)g(y)m(ou)g(m)m(ust)h(also)f(follo)m(w)f(the)h
+(conditions)330 1212 y(in)d(section)i(3.)330 1358 y(Y)-8
+b(ou)21 b(ma)m(y)h(also)e(lend)g(copies,)i(under)e(the)h(same)g
+(conditions)e(stated)j(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g
+(publicly)330 1468 y(displa)m(y)29 b(copies.)199 1614
+y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25
+b(y)m(ou)g(publish)d(prin)m(ted)h(copies)i(\(or)h(copies)f(in)f(media)g
+(that)i(commonly)f(ha)m(v)m(e)h(prin)m(ted)e(co)m(v)m(ers\))j(of)330
+1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)d(more)i(than)f
+(100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)d(notice)i(requires)330
+1979 y(Co)m(v)m(er)j(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)h
+(the)f(copies)g(in)f(co)m(v)m(ers)j(that)f(carry)-8 b(,)36
+b(clearly)d(and)h(legibly)-8 b(,)34 b(all)330 2089 y(these)40
+b(Co)m(v)m(er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41
+b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44
+b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330
+2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m)
+m(ust)e(also)g(clearly)f(and)h(legibly)e(iden)m(tify)g(y)m(ou)j(as)f
+(the)h(publisher)330 2308 y(of)k(these)h(copies.)52 b(The)34
+b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)d(title)i
+(with)e(all)i(w)m(ords)f(of)i(the)f(title)330 2418 y(equally)c
+(prominen)m(t)f(and)h(visible.)40 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g
+(other)g(material)f(on)h(the)g(co)m(v)m(ers)h(in)d(addition.)330
+2527 y(Cop)m(ying)35 b(with)g(c)m(hanges)i(limited)d(to)j(the)g(co)m(v)
+m(ers,)i(as)d(long)g(as)h(they)f(preserv)m(e)g(the)h(title)e(of)i(the)
+330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)h(these)g(conditions,)h(can)f
+(b)s(e)g(treated)h(as)f(v)m(erbatim)g(cop)m(ying)g(in)f(other)330
+2746 y(resp)s(ects.)330 2892 y(If)c(the)h(required)e(texts)j(for)e
+(either)g(co)m(v)m(er)j(are)e(to)s(o)g(v)m(oluminous)e(to)i(\014t)g
+(legibly)-8 b(,)32 b(y)m(ou)h(should)e(put)330 3002 y(the)i(\014rst)f
+(ones)h(listed)e(\(as)j(man)m(y)f(as)g(\014t)g(reasonably\))f(on)h(the)
+g(actual)g(co)m(v)m(er,)i(and)e(con)m(tin)m(ue)g(the)330
+3112 y(rest)e(on)m(to)g(adjacen)m(t)h(pages.)330 3258
+y(If)27 b(y)m(ou)g(publish)c(or)k(distribute)e(Opaque)h(copies)h(of)g
+(the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)e(more)j(than)e(100,)330
+3367 y(y)m(ou)i(m)m(ust)g(either)g(include)d(a)k(mac)m(hine-readable)e
+(T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)f(with)e(eac)m(h)j(Opaque)
+330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)e(or)h(with)f(eac)m(h)i
+(Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)f(from)f
+(whic)m(h)330 3587 y(the)24 b(general)h(net)m(w)m(ork-using)f(public)d
+(has)j(access)i(to)f(do)m(wnload)e(using)g(public-standard)e(net)m(w)m
+(ork)330 3696 y(proto)s(cols)39 b(a)g(complete)g(T)-8
+b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g
+(added)f(material.)65 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)g
+(option,)h(y)m(ou)g(m)m(ust)e(tak)m(e)j(reasonably)d(pruden)m(t)f
+(steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)c(of)j
+(Opaque)g(copies)g(in)e(quan)m(tit)m(y)-8 b(,)42 b(to)c(ensure)g(that)h
+(this)e(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330
+4025 y(remain)29 b(th)m(us)h(accessible)g(at)h(the)f(stated)h(lo)s
+(cation)f(un)m(til)e(at)j(least)g(one)f(y)m(ear)h(after)g(the)f(last)g
+(time)330 4134 y(y)m(ou)37 b(distribute)d(an)j(Opaque)f(cop)m(y)i
+(\(directly)e(or)g(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))f
+(of)h(that)330 4244 y(edition)29 b(to)i(the)g(public.)330
+4390 y(It)k(is)e(requested,)j(but)e(not)h(required,)f(that)h(y)m(ou)g
+(con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330
+4500 y(b)s(efore)28 b(redistributing)d(an)m(y)k(large)g(n)m(um)m(b)s
+(er)e(of)i(copies,)g(to)g(giv)m(e)g(them)g(a)g(c)m(hance)h(to)f(pro)m
+(vide)f(y)m(ou)330 4609 y(with)h(an)h(up)s(dated)f(v)m(ersion)h(of)h
+(the)f(Do)s(cumen)m(t.)199 4755 y(4.)61 b(MODIFICA)-8
+b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)e(a)
+j(Mo)s(di\014ed)e(V)-8 b(ersion)25 b(of)h(the)g(Do)s(cumen)m(t)g(under)
+e(the)h(conditions)330 5011 y(of)c(sections)g(2)h(and)e(3)h(ab)s(o)m(v)
+m(e,)k(pro)m(vided)19 b(that)j(y)m(ou)f(release)h(the)f(Mo)s(di\014ed)e
+(V)-8 b(ersion)21 b(under)e(precisely)330 5121 y(this)28
+b(License,)h(with)f(the)h(Mo)s(di\014ed)e(V)-8 b(ersion)29
+b(\014lling)d(the)j(role)g(of)g(the)g(Do)s(cumen)m(t,)h(th)m(us)f
+(licensing)330 5230 y(distribution)h(and)k(mo)s(di\014cation)e(of)j
+(the)f(Mo)s(di\014ed)e(V)-8 b(ersion)34 b(to)h(who)s(ev)m(er)f(p)s
+(ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)40 b(In)30
+b(addition,)f(y)m(ou)h(m)m(ust)h(do)f(these)h(things)e(in)g(the)i(Mo)s
+(di\014ed)d(V)-8 b(ersion:)p eop
+%%Page: 24 28
+24 27 bop 150 -116 a Fo(24)2600 b(GNU)31 b(Readline)e(Library)357
+299 y(A.)60 b(Use)33 b(in)e(the)i(Title)f(P)m(age)i(\(and)f(on)f(the)h
+(co)m(v)m(ers,)i(if)d(an)m(y\))h(a)g(title)f(distinct)f(from)i(that)g
+(of)g(the)510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f
+(previous)e(v)m(ersions)h(\(whic)m(h)g(should,)g(if)g(there)h(w)m(ere)g
+(an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)f(in)g(the)h(History)g
+(section)g(of)h(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)f(as)510 628 y(a)g(previous)e(v)m
+(ersion)g(if)h(the)g(original)f(publisher)e(of)j(that)h(v)m(ersion)f
+(giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)30
+b(on)g(the)h(Title)e(P)m(age,)k(as)d(authors,)h(one)g(or)f(more)h(p)s
+(ersons)e(or)h(en)m(tities)h(resp)s(onsible)c(for)510
+867 y(authorship)d(of)i(the)h(mo)s(di\014cations)d(in)h(the)h(Mo)s
+(di\014ed)e(V)-8 b(ersion,)27 b(together)h(with)c(at)j(least)g(\014v)m
+(e)510 977 y(of)d(the)g(principal)d(authors)i(of)i(the)f(Do)s(cumen)m
+(t)g(\(all)f(of)i(its)e(principal)e(authors,)k(if)e(it)g(has)h(few)m
+(er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)e(they)i(release)f(y)m
+(ou)h(from)f(this)f(requiremen)m(t.)359 1217 y(C.)60
+b(State)32 b(on)e(the)h(Title)f(page)h(the)g(name)g(of)g(the)g
+(publisher)c(of)k(the)g(Mo)s(di\014ed)e(V)-8 b(ersion,)31
+b(as)g(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31
+b(all)e(the)i(cop)m(yrigh)m(t)g(notices)f(of)h(the)f(Do)s(cumen)m(t.)
+363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)e(cop)m(yrigh)m(t)i
+(notice)f(for)h(y)m(our)f(mo)s(di\014cations)e(adjacen)m(t)k(to)f(the)g
+(other)510 1696 y(cop)m(yrigh)m(t)f(notices.)365 1826
+y(F.)61 b(Include,)27 b(immediately)f(after)i(the)h(cop)m(yrigh)m(t)f
+(notices,)h(a)f(license)f(notice)h(giving)f(the)h(public)510
+1936 y(p)s(ermission)21 b(to)26 b(use)e(the)g(Mo)s(di\014ed)f(V)-8
+b(ersion)24 b(under)f(the)i(terms)f(of)h(this)e(License,)j(in)d(the)h
+(form)510 2045 y(sho)m(wn)30 b(in)f(the)h(Addendum)f(b)s(elo)m(w.)353
+2176 y(G.)61 b(Preserv)m(e)23 b(in)f(that)h(license)f(notice)h(the)g
+(full)e(lists)g(of)i(In)m(v)-5 b(arian)m(t)22 b(Sections)h(and)f
+(required)f(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)f(in)f
+(the)i(Do)s(cumen)m(t's)g(license)f(notice.)357 2415
+y(H.)60 b(Include)29 b(an)h(unaltered)f(cop)m(y)i(of)g(this)e(License.)
+392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)g(En)m(titled)f
+(\\History",)i(Preserv)m(e)g(its)e(Title,)h(and)f(add)h(to)h(it)e(an)h
+(item)510 2655 y(stating)c(at)h(least)f(the)h(title,)f(y)m(ear,)i(new)d
+(authors,)i(and)e(publisher)d(of)29 b(the)f(Mo)s(di\014ed)e(V)-8
+b(ersion)510 2765 y(as)32 b(giv)m(en)f(on)g(the)h(Title)e(P)m(age.)45
+b(If)31 b(there)h(is)e(no)h(section)h(En)m(titled)e(\\History")i(in)e
+(the)h(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)g(the)g
+(title,)g(y)m(ear,)i(authors,)f(and)e(publisher)d(of)k(the)g(Do)s
+(cumen)m(t)510 2984 y(as)h(giv)m(en)g(on)g(its)g(Title)f(P)m(age,)k
+(then)d(add)g(an)g(item)f(describing)f(the)i(Mo)s(di\014ed)f(V)-8
+b(ersion)36 b(as)510 3093 y(stated)31 b(in)e(the)i(previous)e(sen)m
+(tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s
+(cation,)g(if)e(an)m(y)-8 b(,)34 b(giv)m(en)e(in)g(the)g(Do)s(cumen)m
+(t)h(for)g(public)c(access)34 b(to)510 3333 y(a)e(T)-8
+b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m
+(ewise)e(the)j(net)m(w)m(ork)g(lo)s(cations)e(giv)m(en)h(in)510
+3443 y(the)h(Do)s(cumen)m(t)g(for)g(previous)e(v)m(ersions)h(it)g(w)m
+(as)h(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)g(in)g(the)
+510 3552 y(\\History")26 b(section.)39 b(Y)-8 b(ou)25
+b(ma)m(y)h(omit)f(a)g(net)m(w)m(ork)h(lo)s(cation)e(for)h(a)h(w)m(ork)f
+(that)g(w)m(as)h(published)510 3662 y(at)36 b(least)g(four)f(y)m(ears)i
+(b)s(efore)e(the)h(Do)s(cumen)m(t)h(itself,)f(or)f(if)g(the)h(original)
+e(publisher)e(of)k(the)510 3771 y(v)m(ersion)30 b(it)g(refers)g(to)h
+(giv)m(es)g(p)s(ermission.)354 3902 y(K.)60 b(F)-8 b(or)24
+b(an)m(y)h(section)e(En)m(titled)g(\\Ac)m(kno)m(wledgemen)m(ts")j(or)e
+(\\Dedications",)i(Preserv)m(e)e(the)g(Title)510 4011
+y(of)j(the)f(section,)i(and)e(preserv)m(e)h(in)e(the)i(section)f(all)g
+(the)g(substance)h(and)f(tone)h(of)f(eac)m(h)i(of)f(the)510
+4121 y(con)m(tributor)j(ac)m(kno)m(wledgemen)m(ts)i(and/or)e
+(dedications)f(giv)m(en)i(therein.)368 4251 y(L.)60 b(Preserv)m(e)36
+b(all)e(the)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(of)g(the)h(Do)s
+(cumen)m(t,)h(unaltered)e(in)f(their)g(text)j(and)510
+4361 y(in)e(their)g(titles.)56 b(Section)36 b(n)m(um)m(b)s(ers)e(or)i
+(the)g(equiv)-5 b(alen)m(t)36 b(are)g(not)g(considered)f(part)h(of)g
+(the)510 4470 y(section)31 b(titles.)341 4600 y(M.)61
+b(Delete)32 b(an)m(y)f(section)g(En)m(titled)e(\\Endorsemen)m(ts".)42
+b(Suc)m(h)30 b(a)i(section)e(ma)m(y)i(not)f(b)s(e)f(included)510
+4710 y(in)f(the)i(Mo)s(di\014ed)d(V)-8 b(ersion.)357
+4840 y(N.)60 b(Do)29 b(not)g(retitle)f(an)m(y)g(existing)g(section)g
+(to)h(b)s(e)f(En)m(titled)f(\\Endorsemen)m(ts")i(or)f(to)h(con\015ict)f
+(in)510 4950 y(title)i(with)f(an)m(y)i(In)m(v)-5 b(arian)m(t)30
+b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)f
+(V)-8 b(ersion)33 b(includes)e(new)i(fron)m(t-matter)i(sections)e(or)g
+(app)s(endices)f(that)i(qualify)330 5340 y(as)28 b(Secondary)g
+(Sections)f(and)g(con)m(tain)i(no)e(material)h(copied)f(from)g(the)h
+(Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop
+%%Page: 25 29
+25 28 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(25)330 299 y(y)m(our)32 b(option)g(designate)h(some)f(or)h
+(all)e(of)h(these)h(sections)g(as)f(in)m(v)-5 b(arian)m(t.)46
+b(T)-8 b(o)33 b(do)f(this,)g(add)g(their)330 408 y(titles)j(to)h(the)f
+(list)f(of)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(in)f(the)i(Mo)s
+(di\014ed)e(V)-8 b(ersion's)35 b(license)f(notice.)56
+b(These)330 518 y(titles)30 b(m)m(ust)g(b)s(e)g(distinct)f(from)g(an)m
+(y)i(other)g(section)f(titles.)330 650 y(Y)-8 b(ou)43
+b(ma)m(y)g(add)f(a)g(section)h(En)m(titled)e(\\Endorsemen)m(ts",)46
+b(pro)m(vided)41 b(it)h(con)m(tains)g(nothing)g(but)330
+759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)f(V)-8
+b(ersion)30 b(b)m(y)f(v)-5 b(arious)29 b(parties|for)g(example,)g
+(statemen)m(ts)j(of)330 869 y(p)s(eer)27 b(review)f(or)h(that)h(the)f
+(text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)f
+(as)g(the)h(authoritativ)m(e)330 978 y(de\014nition)g(of)j(a)f
+(standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g
+(up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er)
+30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330
+1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8
+b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)f(of)h(Co)m(v)m(er)h(T)-8
+b(exts)27 b(in)f(the)i(Mo)s(di\014ed)330 1329 y(V)-8
+b(ersion.)57 b(Only)34 b(one)i(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m
+(er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8
+b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through)
+f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8
+b(.)41 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548
+y(includes)k(a)i(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m(er,)h
+(previously)c(added)h(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m(t)330
+1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)h(y)m(ou)g(are)f
+(acting)h(on)f(b)s(ehalf)e(of,)k(y)m(ou)f(ma)m(y)g(not)f(add)g
+(another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)f(the)g(old)f
+(one,)j(on)e(explicit)e(p)s(ermission)f(from)i(the)i(previous)d
+(publisher)e(that)330 1877 y(added)g(the)g(old)g(one.)330
+2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))d(of)k(the)f(Do)s
+(cumen)m(t)h(do)g(not)f(b)m(y)h(this)e(License)h(giv)m(e)h(p)s
+(ermission)330 2118 y(to)31 b(use)f(their)f(names)i(for)f(publicit)m(y)
+d(for)k(or)f(to)h(assert)g(or)f(imply)e(endorsemen)m(t)i(of)h(an)m(y)g
+(Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61
+b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m
+(bine)g(the)g(Do)s(cumen)m(t)g(with)f(other)g(do)s(cumen)m(ts)h
+(released)f(under)g(this)f(License,)330 2600 y(under)g(the)h(terms)g
+(de\014ned)f(in)g(section)h(4)h(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)e
+(v)m(ersions,)k(pro)m(vided)d(that)i(y)m(ou)330 2710
+y(include)23 b(in)h(the)h(com)m(bination)g(all)f(of)i(the)f(In)m(v)-5
+b(arian)m(t)25 b(Sections)g(of)h(all)e(of)h(the)h(original)d(do)s
+(cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)i(and)h(list)f(them)i(all)e
+(as)i(In)m(v)-5 b(arian)m(t)27 b(Sections)f(of)h(y)m(our)g(com)m(bined)
+f(w)m(ork)g(in)g(its)g(license)330 2929 y(notice,)31
+b(and)f(that)h(y)m(ou)f(preserv)m(e)h(all)e(their)h(W)-8
+b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)f(w)m
+(ork)i(need)e(only)h(con)m(tain)g(one)h(cop)m(y)g(of)f(this)f(License,)
+i(and)e(m)m(ultiple)f(iden)m(tical)330 3170 y(In)m(v)-5
+b(arian)m(t)32 b(Sections)g(ma)m(y)h(b)s(e)f(replaced)g(with)f(a)i
+(single)e(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)d(In)m
+(v)-5 b(arian)m(t)330 3280 y(Sections)26 b(with)g(the)h(same)g(name)g
+(but)f(di\013eren)m(t)g(con)m(ten)m(ts,)j(mak)m(e)f(the)f(title)f(of)h
+(eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)32 b(b)m(y)i(adding)e
+(at)j(the)f(end)g(of)g(it,)g(in)f(paren)m(theses,)j(the)e(name)g(of)g
+(the)g(original)e(author)i(or)330 3499 y(publisher)21
+b(of)k(that)h(section)f(if)f(kno)m(wn,)i(or)f(else)g(a)g(unique)e(n)m
+(um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330
+3608 y(to)g(the)g(section)f(titles)g(in)f(the)i(list)e(of)h(In)m(v)-5
+b(arian)m(t)25 b(Sections)f(in)f(the)h(license)g(notice)h(of)f(the)h
+(com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m
+(bination,)j(y)m(ou)d(m)m(ust)g(com)m(bine)g(an)m(y)h(sections)f(En)m
+(titled)f(\\History")i(in)e(the)h(v)-5 b(ari-)330 3959
+y(ous)32 b(original)e(do)s(cumen)m(ts,)j(forming)e(one)h(section)g(En)m
+(titled)f(\\History";)j(lik)m(ewise)d(com)m(bine)h(an)m(y)330
+4069 y(sections)g(En)m(titled)e(\\Ac)m(kno)m(wledgemen)m(ts",)35
+b(and)c(an)m(y)h(sections)g(En)m(titled)f(\\Dedications".)45
+b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)h(all)e(sections)i(En)m
+(titled)e(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28
+b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f
+(collection)f(consisting)g(of)h(the)g(Do)s(cumen)m(t)g(and)g(other)g
+(do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)g(License,)k
+(and)d(replace)g(the)h(individual)38 b(copies)k(of)g(this)f(License)h
+(in)f(the)i(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42
+b(with)f(a)i(single)e(cop)m(y)j(that)f(is)e(included)f(in)h(the)i
+(collection,)i(pro)m(vided)c(that)j(y)m(ou)330 4770 y(follo)m(w)36
+b(the)i(rules)d(of)i(this)f(License)h(for)g(v)m(erbatim)g(cop)m(ying)g
+(of)g(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)g(all)330
+4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32
+b(ma)m(y)g(extract)h(a)f(single)e(do)s(cumen)m(t)h(from)g(suc)m(h)g(a)h
+(collection,)f(and)g(distribute)e(it)i(individu-)330
+5121 y(ally)j(under)f(this)h(License,)i(pro)m(vided)e(y)m(ou)h(insert)f
+(a)h(cop)m(y)h(of)f(this)f(License)g(in)m(to)h(the)h(extracted)330
+5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)g(this)f(License)h(in)g(all)f
+(other)i(resp)s(ects)f(regarding)g(v)m(erbatim)g(cop)m(ying)h(of)330
+5340 y(that)e(do)s(cumen)m(t.)p eop
+%%Page: 26 30
+26 29 bop 150 -116 a Fo(26)2600 b(GNU)31 b(Readline)e(Library)199
+299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)
+330 428 y(A)d(compilation)f(of)h(the)g(Do)s(cumen)m(t)h(or)f(its)f
+(deriv)-5 b(ativ)m(es)28 b(with)e(other)j(separate)g(and)e(indep)s
+(enden)m(t)330 538 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)e(or)i
+(on)f(a)g(v)m(olume)g(of)h(a)f(storage)i(or)e(distribution)d(medium,)i
+(is)h(called)330 648 y(an)d(\\aggregate")k(if)29 b(the)h(cop)m(yrigh)m
+(t)h(resulting)d(from)h(the)i(compilation)d(is)h(not)i(used)e(to)i
+(limit)d(the)330 757 y(legal)e(righ)m(ts)g(of)h(the)g(compilation's)e
+(users)h(b)s(ey)m(ond)g(what)g(the)h(individual)22 b(w)m(orks)k(p)s
+(ermit.)38 b(When)330 867 y(the)28 b(Do)s(cumen)m(t)g(is)f(included)e
+(an)i(aggregate,)32 b(this)26 b(License)h(do)s(es)h(not)g(apply)e(to)i
+(the)g(other)g(w)m(orks)330 976 y(in)h(the)i(aggregate)i(whic)m(h)c
+(are)i(not)f(themselv)m(es)h(deriv)-5 b(ativ)m(e)30 b(w)m(orks)g(of)h
+(the)f(Do)s(cumen)m(t.)330 1106 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8
+b(ext)23 b(requiremen)m(t)f(of)h(section)g(3)g(is)f(applicable)f(to)i
+(these)h(copies)e(of)h(the)g(Do)s(cumen)m(t,)330 1215
+y(then)f(if)f(the)i(Do)s(cumen)m(t)g(is)f(less)f(than)h(one)h(half)e
+(of)i(the)g(en)m(tire)f(aggregate,)27 b(the)c(Do)s(cumen)m(t's)g(Co)m
+(v)m(er)330 1325 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)g(on)h(co)m
+(v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)d(the)j
+(aggregate,)j(or)d(the)330 1435 y(electronic)35 b(equiv)-5
+b(alen)m(t)34 b(of)i(co)m(v)m(ers)g(if)e(the)h(Do)s(cumen)m(t)h(is)e
+(in)g(electronic)h(form.)54 b(Otherwise)34 b(they)330
+1544 y(m)m(ust)c(app)s(ear)g(on)g(prin)m(ted)f(co)m(v)m(ers)j(that)f
+(brac)m(k)m(et)h(the)f(whole)e(aggregate.)199 1674 y(8.)61
+b(TRANSLA)-8 b(TION)330 1803 y(T)g(ranslation)39 b(is)g(considered)f(a)
+j(kind)d(of)i(mo)s(di\014cation,)h(so)f(y)m(ou)g(ma)m(y)h(distribute)c
+(translations)330 1913 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h
+(terms)h(of)f(section)h(4.)83 b(Replacing)43 b(In)m(v)-5
+b(arian)m(t)44 b(Sections)g(with)330 2022 y(translations)g(requires)g
+(sp)s(ecial)g(p)s(ermission)f(from)i(their)f(cop)m(yrigh)m(t)i
+(holders,)i(but)d(y)m(ou)g(ma)m(y)330 2132 y(include)22
+b(translations)i(of)g(some)h(or)g(all)e(In)m(v)-5 b(arian)m(t)24
+b(Sections)g(in)f(addition)g(to)i(the)g(original)e(v)m(ersions)330
+2242 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)32 b(Sections.)43
+b(Y)-8 b(ou)32 b(ma)m(y)g(include)d(a)j(translation)e(of)i(this)e
+(License,)i(and)e(all)h(the)330 2351 y(license)40 b(notices)h(in)f(the)
+i(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42
+b(Disclaimers,)h(pro)m(vided)d(that)i(y)m(ou)330 2461
+y(also)e(include)e(the)i(original)e(English)g(v)m(ersion)h(of)h(this)f
+(License)h(and)f(the)h(original)e(v)m(ersions)i(of)330
+2570 y(those)35 b(notices)f(and)f(disclaimers.)50 b(In)33
+b(case)i(of)g(a)f(disagreemen)m(t)g(b)s(et)m(w)m(een)h(the)f
+(translation)g(and)330 2680 y(the)h(original)f(v)m(ersion)g(of)i(this)e
+(License)h(or)g(a)g(notice)h(or)f(disclaimer,)f(the)i(original)d(v)m
+(ersion)i(will)330 2790 y(prev)-5 b(ail.)330 2919 y(If)28
+b(a)h(section)g(in)e(the)i(Do)s(cumen)m(t)h(is)d(En)m(titled)h(\\Ac)m
+(kno)m(wledgemen)m(ts",)j(\\Dedications",)f(or)f(\\His-)330
+3029 y(tory",)f(the)f(requiremen)m(t)e(\(section)i(4\))g(to)g(Preserv)m
+(e)g(its)e(Title)h(\(section)g(1\))h(will)d(t)m(ypically)h(require)330
+3138 y(c)m(hanging)30 b(the)h(actual)g(title.)199 3268
+y(9.)61 b(TERMINA)-8 b(TION)330 3397 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m
+(y)-8 b(,)31 b(mo)s(dify)-8 b(,)29 b(sublicense,)f(or)i(distribute)d
+(the)j(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3507
+y(pro)m(vided)40 b(for)i(under)e(this)h(License.)74 b(An)m(y)42
+b(other)g(attempt)h(to)g(cop)m(y)-8 b(,)46 b(mo)s(dify)-8
+b(,)43 b(sublicense)d(or)330 3616 y(distribute)34 b(the)j(Do)s(cumen)m
+(t)g(is)f(v)m(oid,)i(and)e(will)e(automatically)i(terminate)h(y)m(our)f
+(righ)m(ts)g(under)330 3726 y(this)27 b(License.)39 b(Ho)m(w)m(ev)m
+(er,)31 b(parties)c(who)g(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)e
+(righ)m(ts,)h(from)g(y)m(ou)g(under)e(this)330 3836 y(License)36
+b(will)e(not)j(ha)m(v)m(e)h(their)e(licenses)f(terminated)i(so)g(long)f
+(as)h(suc)m(h)f(parties)g(remain)g(in)f(full)330 3945
+y(compliance.)154 4075 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e
+(LICENSE)330 4204 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
+b(oundation)42 b(ma)m(y)g(publish)c(new,)44 b(revised)c(v)m(ersions)h
+(of)h(the)g(GNU)g(F)-8 b(ree)330 4314 y(Do)s(cumen)m(tation)33
+b(License)e(from)h(time)g(to)h(time.)45 b(Suc)m(h)31
+b(new)h(v)m(ersions)f(will)f(b)s(e)h(similar)e(in)i(spirit)330
+4423 y(to)k(the)g(presen)m(t)f(v)m(ersion,)h(but)f(ma)m(y)h(di\013er)e
+(in)g(detail)g(to)i(address)f(new)g(problems)e(or)j(concerns.)330
+4533 y(See)c Fn(http://www.gnu.org/copy)o(left)o(/)p
+Fo(.)330 4663 y(Eac)m(h)f(v)m(ersion)f(of)h(the)f(License)g(is)g(giv)m
+(en)g(a)h(distinguishing)25 b(v)m(ersion)k(n)m(um)m(b)s(er.)39
+b(If)29 b(the)g(Do)s(cumen)m(t)330 4772 y(sp)s(eci\014es)44
+b(that)i(a)g(particular)d(n)m(um)m(b)s(ered)h(v)m(ersion)h(of)g(this)f
+(License)h(\\or)h(an)m(y)g(later)f(v)m(ersion")330 4882
+y(applies)31 b(to)i(it,)g(y)m(ou)f(ha)m(v)m(e)i(the)f(option)f(of)g
+(follo)m(wing)f(the)i(terms)f(and)g(conditions)f(either)h(of)g(that)330
+4991 y(sp)s(eci\014ed)k(v)m(ersion)i(or)f(of)h(an)m(y)h(later)f(v)m
+(ersion)f(that)h(has)g(b)s(een)f(published)d(\(not)39
+b(as)f(a)g(draft\))g(b)m(y)330 5101 y(the)33 b(F)-8 b(ree)34
+b(Soft)m(w)m(are)f(F)-8 b(oundation.)48 b(If)32 b(the)h(Do)s(cumen)m(t)
+g(do)s(es)g(not)g(sp)s(ecify)e(a)i(v)m(ersion)f(n)m(um)m(b)s(er)g(of)
+330 5210 y(this)h(License,)j(y)m(ou)e(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g
+(v)m(ersion)f(ev)m(er)h(published)c(\(not)k(as)g(a)f(draft\))h(b)m(y)f
+(the)h(F)-8 b(ree)330 5320 y(Soft)m(w)m(are)31 b(F)-8
+b(oundation.)p eop
+%%Page: 27 31
+27 30 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m
+(ual)2104 b(27)150 299 y Fc(A.1.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g
+(use)g(this)g(License)g(for)g(y)m(our)g(do)s(cumen)m(ts)275
+543 y Fo(T)-8 b(o)27 b(use)g(this)f(License)h(in)f(a)i(do)s(cumen)m(t)f
+(y)m(ou)h(ha)m(v)m(e)g(written,)f(include)e(a)j(cop)m(y)g(of)f(the)h
+(License)f(in)f(the)150 653 y(do)s(cumen)m(t)k(and)g(put)g(the)g(follo)
+m(wing)f(cop)m(yrigh)m(t)i(and)f(license)f(notices)h(just)g(after)h
+(the)g(title)f(page:)468 765 y Fb(Copyright)42 b(\(C\))79
+b Fa(year)88 b(your)40 b(name)p Fb(.)468 852 y(Permission)i(is)e
+(granted)g(to)g(copy,)h(distribute)g(and/or)g(modify)f(this)g(document)
+468 939 y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i
+(License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h
+(published)h(by)d(the)h(Free)g(Software)h(Foundation;)468
+1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g
+(and)f(no)f(Back-Cover)j(Texts.)468 1200 y(A)e(copy)g(of)g(the)g
+(license)g(is)g(included)h(in)f(the)g(section)h(entitled)g(``GNU)468
+1288 y(Free)g(Documentation)h(License''.)275 1410 y Fo(If)d(y)m(ou)h
+(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)40 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)d(the)150 1520 y(\\with...T)-8
+b(exts.")42 b(line)28 b(with)i(this:)547 1632 y Fb(with)40
+b(the)g(Invariant)h(Sections)g(being)g Fa(list)f(their)g(titles)p
+Fb(,)h(with)547 1719 y(the)f(Front-Cover)i(Texts)e(being)g
+Fa(list)p Fb(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547
+1806 y(being)f Fa(list)p Fb(.)275 1929 y Fo(If)34 b(y)m(ou)i(ha)m(v)m
+(e)g(In)m(v)-5 b(arian)m(t)35 b(Sections)g(without)f(Co)m(v)m(er)i(T)-8
+b(exts,)38 b(or)d(some)g(other)h(com)m(bination)e(of)i(the)150
+2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)g(to)g
+(suit)e(the)i(situation.)275 2173 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f
+(con)m(tains)h(non)m(trivial)e(examples)i(of)g(program)f(co)s(de,)j(w)m
+(e)e(recommend)g(releasing)150 2283 y(these)44 b(examples)e(in)g
+(parallel)f(under)h(y)m(our)h(c)m(hoice)h(of)f(free)g(soft)m(w)m(are)h
+(license,)i(suc)m(h)d(as)g(the)g(GNU)150 2392 y(General)30
+b(Public)e(License,)j(to)g(p)s(ermit)d(their)i(use)g(in)f(free)h(soft)m
+(w)m(are.)p eop
+%%Page: 28 32
+28 31 bop 150 -116 a Fo(28)2600 b(GNU)31 b(Readline)e(Library)p
eop
%%Trailer
end
diff --git a/doc/rluserman.texi b/doc/rluserman.texi
new file mode 100644
index 0000000..8681a86
--- /dev/null
+++ b/doc/rluserman.texi
@@ -0,0 +1,88 @@
+\input texinfo @c -*-texinfo-*-
+@comment %**start of header (This is for running Texinfo on a region.)
+@setfilename rluserman.info
+@settitle GNU Readline Library
+@comment %**end of header (This is for running Texinfo on a region.)
+
+@setchapternewpage odd
+
+@include version.texi
+
+@copying
+This manual describes the end user interface of the GNU Readline Library
+(version @value{VERSION}, @value{UPDATED}), a library which aids in the
+consistency of user interface across discrete programs which provide
+a command line interface.
+
+Copyright @copyright{} 1988-2004 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below. A copy of the license is
+included in the section entitled ``GNU Free Documentation License.''
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+@end quotation
+@end copying
+
+@dircategory Libraries
+@direntry
+* RLuserman: (rluserman). The GNU readline library User's Manual.
+@end direntry
+
+@titlepage
+@title GNU Readline Library User Interface
+@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
+@subtitle @value{UPDATED-MONTH}
+@author Chet Ramey, Case Western Reserve University
+@author Brian Fox, Free Software Foundation
+
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+
+@sp 1
+Published by the Free Software Foundation @*
+59 Temple Place, Suite 330, @*
+Boston, MA 02111-1307 @*
+USA @*
+
+@end titlepage
+
+@contents
+
+@ifnottex
+@node Top
+@top 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.
+
+@menu
+* Command Line Editing:: GNU Readline User's Manual.
+* Copying This Manual:: Copying This Manual.
+@end menu
+@end ifnottex
+
+@include rluser.texi
+
+@node Copying This Manual
+@appendix Copying This Manual
+
+@menu
+* GNU Free Documentation License:: License for copying this manual.
+@end menu
+
+@include fdl.texi
+
+@bye
diff --git a/doc/texi2dvi b/doc/texi2dvi
index 5439e08..010b586 100755
--- a/doc/texi2dvi
+++ b/doc/texi2dvi
@@ -1,8 +1,9 @@
#! /bin/sh
# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources.
-# $Id: texi2dvi,v 0.43 1999/09/28 19:36:53 karl Exp $
+# $Id: texi2dvi,v 1.14 2003/02/05 00:42:33 karl Exp $
#
-# Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,
+# 2002, 2003 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
@@ -26,12 +27,12 @@
# the `--debug' option when making a bug report.
# This string is expanded by rcs automatically when this file is checked out.
-rcs_revision='$Revision: 0.43 $'
+rcs_revision='$Revision: 1.14 $'
rcs_version=`set - $rcs_revision; echo $2`
program=`echo $0 | sed -e 's!.*/!!'`
-version="texi2dvi (GNU Texinfo 4.0) $rcs_version
+version="texi2dvi (GNU Texinfo 4.5) $rcs_version
-Copyright (C) 1999 Free Software Foundation, Inc.
+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."
@@ -46,46 +47,52 @@ is used to determine its language (LaTeX or Texinfo).
Makeinfo is used to perform Texinfo macro expansion before running TeX
when needed.
-Options:
- -@ Use @input instead of \input; for preloaded Texinfo.
- -b, --batch No interaction.
- -c, --clean Remove all auxiliary files.
- -D, --debug Turn on shell debugging (set -x).
- -e, --expand Force macro expansion using makeinfo.
- -I DIR Search DIR for Texinfo files.
- -h, --help Display this help and exit successfully.
- -l, --language=LANG Specify the LANG of FILE: LaTeX or Texinfo.
- -p, --pdf Use pdftex or pdflatex for processing.
- -q, --quiet No output unless errors (implies --batch).
- -s, --silent Same as --quiet.
- -t, --texinfo=CMD Insert CMD after @setfilename in copy of input file.
- Multiple values accumulate.
- -v, --version Display version information and exit successfully.
- -V, --verbose Report on what is done.
+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
+
+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>."
+general questions and discussion to <help-texinfo@gnu.org>.
+Texinfo home page: http://www.gnu.org/software/texinfo/"
# 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.
-escape='\'
batch=false # eval for batch mode
clean=
debug=
+escape='\'
expand= # t for expansion via makeinfo
+miincludes= # makeinfo include path
oformat=dvi
+oname= # --output
+quiet= # by default let the tools' message be displayed
set_language=
-miincludes= # makeinfo include path
textra=
tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems.
-txincludes= # TEXINPUTS extensions
+txincludes= # TEXINPUTS extensions, with trailing colon
txiprereq=19990129 # minimum texinfo.tex version to have macro expansion
-quiet= # by default let the tools' message be displayed
verbose=false # echo for verbose mode
orig_pwd=`pwd`
@@ -98,6 +105,12 @@ else
path_sep=":"
fi
+# Pacify verbose cds.
+CDPATH=${ZSH_VERSION+.}$path_sep
+
+# In case someone crazy insists on using grep -E.
+: ${EGREP=egrep}
+
# Save this so we can construct a new TEXINPUTS path for each file.
TEXINPUTS_orig="$TEXINPUTS"
# Unfortunately makeindex does not read TEXINPUTS.
@@ -136,14 +149,21 @@ while test x"$1" != x"$arg_sep"; do
-q | -s | --q* | --s*) quiet=t; batch=eval;;
-c | --c*) clean=t;;
-D | --d*) debug=t;;
- -e | --e*) expand=t;;
+ -e | -E | --e*) expand=t;;
-h | --h*) echo "$usage"; exit 0;;
-I | --I*)
shift
miincludes="$miincludes -I $1"
- txincludes="$txincludes$path_sep$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";;
@@ -168,11 +188,20 @@ done
shift
# Interpret remaining command line args as filenames.
-if test $# = 0; then
+case $# in
+ 0)
echo "$0: Missing file arguments." >&2
echo "$0: Try \`--help' for more information." >&2
exit 2
-fi
+ ;;
+ 1) ;;
+ *)
+ if test -n "$oname"; then
+ echo "$0: Can't use option \`--output' with more than one argument." >&2
+ exit 2
+ fi
+ ;;
+esac
# Prepare the temporary directory. Remove it at exit, unless debugging.
if test -z "$debug"; then
@@ -205,14 +234,23 @@ cat <<EOF >$comment_iftex_sed
s/^@c texi2dvi//
}
}
-/^@html/,/^@end html/d
-/^@ifhtml/,/^@end ifhtml/d
-/^@ifnottex/,/^@end ifnottex/d
+/^@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
- d
+ 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
@@ -230,7 +268,7 @@ cat <<\EOF >$get_xref_files
# 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
-# LaTeX tables and lists.
+# 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
@@ -273,7 +311,7 @@ for command_line_filename in ${1+"$@"}; do
# 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" | $EGREP '^(/|[A-z]:/)' >/dev/null \
|| command_line_filename="./$command_line_filename"
# See if the file exists. If it doesn't we're in trouble since, even
@@ -314,22 +352,67 @@ for command_line_filename in ${1+"$@"}; do
# 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. Put `.' and
- # directory where source file(s) reside in TEXINPUTS before anything
- # else. `.' goes first to ensure that any old .aux, .cps,
+ # 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=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep"
+ 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" | fgrep 'input texinfo' >/dev/null; then
+ elif sed 1q "$command_line_filename" | grep 'input texinfo' >/dev/null; then
language=texinfo
else
language=
@@ -373,9 +456,9 @@ for command_line_filename in ${1+"$@"}; do
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'`
+ 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=
@@ -467,10 +550,14 @@ for command_line_filename in ${1+"$@"}; do
# 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?.
+ # 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!./$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
@@ -489,8 +576,8 @@ for command_line_filename in ${1+"$@"}; do
# Prevent $ESCAPE from being interpreted by the shell if it happens
# to be `/'.
$batch tex_args="\\${escape}nonstopmode\ \\${escape}input"
- $verbose "Running $cmd ..."
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
@@ -508,7 +595,7 @@ for command_line_filename in ${1+"$@"}; do
# 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 fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then
+ if grep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then
finished=
fi
@@ -550,8 +637,13 @@ for command_line_filename in ${1+"$@"}; do
# - the next file is processed in correct conditions
# - the temporary file can be removed
if test -n "$clean"; then
- $verbose "Copying $oformat file from `pwd` to $orig_pwd"
- cp -p "./$filename_noext.$oformat" "$orig_pwd"
+ 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
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index c49af9f..555a077 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,10 +3,10 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{1999-09-25.10}
+\def\texinfoversion{2003-02-03.16}
%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
-% Free Software Foundation, Inc.
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 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
@@ -29,16 +29,17 @@
%
% Please try the latest version of texinfo.tex before submitting bug
% reports; you can get the latest version from:
-% ftp://ftp.gnu.org/gnu/texinfo.tex
-% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-% ftp://texinfo.org/tex/texinfo.tex
-% ftp://us.ctan.org/macros/texinfo/texinfo.tex
-% (and all CTAN mirrors, finger ctan@us.ctan.org for a list).
-% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
+% ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex
+% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
+% ftp://tug.org/tex/texinfo.tex
+% (and all CTAN mirrors, see http://www.ctan.org),
+% and /home/gd/gnu/doc/texinfo.tex on the GNU machines.
+%
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+%
% The texinfo.tex in any given Texinfo distribution could well be out
% of date, so if that's what you're using, please check.
-% Texinfo has a small home page at http://texinfo.org/.
-%
+%
% Send bug reports to bug-texinfo@gnu.org. Please include including a
% complete document in each bug report with which we can reproduce the
% problem. Patches are, of course, greatly appreciated.
@@ -50,13 +51,14 @@
% texindex foo.??
% tex foo.texi
% tex foo.texi
-% dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps.
-% The extra runs of TeX get the cross-reference information correct.
+% dvips foo.dvi -o # or whatever; this makes foo.ps.
+% The extra TeX runs get the cross-reference information correct.
% Sometimes one run after texindex suffices, and sometimes you need more
% than two; texi2dvi does it as many times as necessary.
-%
-% It is possible to adapt texinfo.tex for other languages. You can get
-% the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/.
+%
+% It is possible to adapt texinfo.tex for other languages, to some
+% extent. You can get the existing language-specific files from the
+% full Texinfo distribution.
\message{Loading texinfo [version \texinfoversion]:}
@@ -66,6 +68,13 @@
\everyjob{\message{[Texinfo version \texinfoversion]}%
\catcode`+=\active \catcode`\_=\active}
+\message{Basics,}
+\chardef\other=12
+
+% We never want plain's outer \+ definition in Texinfo.
+% For @tex, we can use \tabalign.
+\let\+ = \relax
+
% Save some parts of plain tex whose names we will redefine.
\let\ptexb=\b
\let\ptexbullet=\bullet
@@ -76,19 +85,16 @@
\let\ptexend=\end
\let\ptexequiv=\equiv
\let\ptexexclam=\!
+\let\ptexgtr=>
+\let\ptexhat=^
\let\ptexi=\i
\let\ptexlbrace=\{
+\let\ptexless=<
+\let\ptexplus=+
\let\ptexrbrace=\}
\let\ptexstar=\*
\let\ptext=\t
-% We never want plain's outer \+ definition in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-\message{Basics,}
-\chardef\other=12
-
% If this character appears in an error message or help string, it
% starts a new line in the output.
\newlinechar = `^^J
@@ -135,40 +141,74 @@
\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi
+% In some macros, we cannot use the `\? notation---the left quote is
+% in some cases the escape char.
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dotChar = `\.
+\chardef\equalChar = `\=
+\chardef\exclamChar= `\!
+\chardef\questChar = `\?
+\chardef\semiChar = `\;
+\chardef\spaceChar = `\ %
+\chardef\underChar = `\_
+
% Ignore a token.
%
\def\gobble#1{}
+% True if #1 is the empty string, i.e., called like `\ifempty{}'.
+%
+\def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}%
+\def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}%
+
+% Hyphenation fixes.
\hyphenation{ap-pen-dix}
\hyphenation{mini-buf-fer mini-buf-fers}
\hyphenation{eshell}
\hyphenation{white-space}
% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
+\newdimen\bindingoffset
+\newdimen\normaloffset
\newdimen\pagewidth \newdimen\pageheight
% 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.
+% since that produces some useless output on the terminal. We also make
+% some effort to order the tracing commands to reduce output in the log
+% file; cf. trace.sty in LaTeX.
%
\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\ifx\eTeXversion\undefined
-\def\loggingall{\tracingcommands2 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\else
-\def\loggingall{\tracingcommands3 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \tracingscantokens1 \tracingassigns1 \tracingifs1
- \tracinggroups1 \tracingnesting2
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
+\def\loggingall{%
+ \tracingstats2
+ \tracingpages1
+ \tracinglostchars2 % 2 gives us more in etex
+ \tracingparagraphs1
+ \tracingoutput1
+ \tracingmacros2
+ \tracingrestores1
+ \showboxbreadth\maxdimen \showboxdepth\maxdimen
+ \ifx\eTeXversion\undefined\else % etex gives us more logging
+ \tracingscantokens1
+ \tracingifs1
+ \tracinggroups1
+ \tracingnesting2
+ \tracingassigns1
+ \fi
+ \tracingcommands3 % 3 gives us more in etex
+ \errorcontextlines\maxdimen
}%
-\fi
+
+% add check for \lastpenalty to plain's definitions. If the last thing
+% we did was a \nobreak, we don't want to insert more space.
+%
+\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
+ \removelastskip\penalty-50\smallskip\fi\fi}
+\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
+ \removelastskip\penalty-100\medskip\fi\fi}
+\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\penalty-200\bigskip\fi\fi}
% For @cropmarks command.
% Do @cropmarks to get crop marks.
@@ -214,6 +254,9 @@
\normalturnoffactive % \ in index entries must not stay \, e.g., if
% the page break happens to be in the middle of an example.
\shipout\vbox{%
+ % Do this early so pdf references go to the beginning of the page.
+ \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
+ %
\ifcropmarks \vbox to \outervsize\bgroup
\hsize = \outerhsize
\vskip-\topandbottommargin
@@ -243,8 +286,6 @@
\unvbox\footlinebox
\fi
%
- \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
- %
\ifcropmarks
\egroup % end of \vbox\bgroup
\hfil\egroup % end of (centering) \line\bgroup
@@ -262,7 +303,7 @@
\egroup % \vbox from first cropmarks clause
\fi
}% end of \shipout\vbox
- }% end of group with \turnoffactive
+ }% end of group with \normalturnoffactive
\advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi
}
@@ -422,17 +463,6 @@
}
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
- % Why was this kern here? It messes up equalizing space above and below
- % environments. --karl, 6may93
- %{\advance \baselineskip by -\singlespaceskip
- %\kern \baselineskip}%
- \setleading \singlespaceskip
-}
-
%% Simple single-character @ commands
% @@ prints an @
@@ -452,16 +482,19 @@
\let\{=\mylbrace
\let\}=\myrbrace
\begingroup
- % Definitions to produce actual \{ & \} command in an index.
- \catcode`\{ = 12 \catcode`\} = 12
+ % Definitions to produce \{ and \} commands for indices,
+ % and @{ and @} for the aux file.
+ \catcode`\{ = \other \catcode`\} = \other
\catcode`\[ = 1 \catcode`\] = 2
- \catcode`\@ = 0 \catcode`\\ = 12
- @gdef@lbracecmd[\{]%
- @gdef@rbracecmd[\}]%
-@endgroup
+ \catcode`\! = 0 \catcode`\\ = \other
+ !gdef!lbracecmd[\{]%
+ !gdef!rbracecmd[\}]%
+ !gdef!lbraceatcmd[@{]%
+ !gdef!rbraceatcmd[@}]%
+!endgroup
% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
\let\, = \c
\let\dotaccent = \.
\def\ringaccent#1{{\accent23 #1}}
@@ -470,7 +503,7 @@
\let\udotaccent = \d
% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
\def\questiondown{?`}
\def\exclamdown{!`}
@@ -525,6 +558,16 @@
% therefore, no glue is inserted, and the space between the headline and
% the text is small, which looks bad.
%
+% Another complication is that the group might be very large. This can
+% cause the glue on the previous page to be unduly stretched, because it
+% does not have much material. In this case, it's better to add an
+% explicit \vfill so that the extra space is at the bottom. The
+% threshold for doing this is if the group is more than \vfilllimit
+% percent of a page (\vfilllimit can be changed inside of @tex).
+%
+\newbox\groupbox
+\def\vfilllimit{0.7}
+%
\def\group{\begingroup
\ifnum\catcode13=\active \else
\errhelp = \groupinvalidhelp
@@ -538,10 +581,22 @@
% above. But it's pretty close.
\def\Egroup{%
\egroup % End the \vtop.
+ % \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).
+ \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
+ % if the group doesn't fit on the current page, and it's a big big
+ % group, force a page break.
+ \ifdim \dimen0 > \dimen2
+ \ifdim \pagetotal < \vfilllimit\pageheight
+ \page
+ \fi
+ \fi
+ \copy\groupbox
\endgroup % End the \group.
}%
%
- \vtop\bgroup
+ \setbox\groupbox = \vtop\bgroup
% We have to put a strut on the last line in case the @group is in
% the midst of an example, rather than completely enclosing it.
% Otherwise, the interline space between the last line of the group
@@ -687,44 +742,88 @@ where each line of input produces a line of output.}
\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
\leftline{\hskip\leftskip{\rm#1}}}}
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
- \vtop to \strutdepth{\baselineskip\strutdepth\vss
- \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
+% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+% paragraph. For more general purposes, use the \margin insertion
+% class. WHICH is `l' or `r'.
+%
\newskip\inmarginspacing \inmarginspacing=1cm
\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
+%
+\def\doinmargin#1#2{\strut\vadjust{%
+ \nobreak
+ \kern-\strutdepth
+ \vtop to \strutdepth{%
+ \baselineskip=\strutdepth
+ \vss
+ % if you have multiple lines of stuff to put here, you'll need to
+ % make the vbox yourself of the appropriate size.
+ \ifx#1l%
+ \llap{\ignorespaces #2\hskip\inmarginspacing}%
+ \else
+ \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+ \fi
+ \null
+ }%
+}}
+\def\inleftmargin{\doinmargin l}
+\def\inrightmargin{\doinmargin r}
+%
+% @inmargin{TEXT [, RIGHT-TEXT]}
+% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+% else use TEXT for both).
+%
+\def\inmargin#1{\parseinmargin #1,,\finish}
+\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \def\lefttext{#1}% have both texts
+ \def\righttext{#2}%
+ \else
+ \def\lefttext{#1}% have only one text
+ \def\righttext{#1}%
+ \fi
+ %
+ \ifodd\pageno
+ \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+ \else
+ \def\temp{\inleftmargin\lefttext}%
+ \fi
+ \temp
+}
% @include file insert text of that file as input.
% Allow normal characters that we make active in the argument (a file name).
\def\include{\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
+ \catcode`\\=\other
+ \catcode`~=\other
+ \catcode`^=\other
+ \catcode`_=\other
+ \catcode`|=\other
+ \catcode`<=\other
+ \catcode`>=\other
+ \catcode`+=\other
\parsearg\includezzz}
% Restore active chars for included file.
\def\includezzz#1{\endgroup\begingroup
% Read the included file in a group so nested @include's work.
\def\thisfile{#1}%
+ \let\value=\expandablevalue
\input\thisfile
\endgroup}
\def\thisfile{}
-% @center line outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
+% @center line
+% outputs that line, centered.
+%
+\def\center{\parsearg\docenter}
+\def\docenter#1{{%
+ \ifhmode \hfil\break \fi
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{\hfil \ignorespaces#1\unskip \hfil}%
+ \ifhmode \break \fi
+}}
% @sp n outputs n lines of vertical space
@@ -784,18 +883,56 @@ where each line of input produces a line of output.}
%
\def\asis#1{#1}
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written. Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo). So we must use a
-% control sequence to switch into and out of math mode.
+% @math outputs its argument in math mode.
+% We don't use $'s directly in the definition of \math because we need
+% to set catcodes according to plain TeX first, to allow for subscripts,
+% superscripts, special math chars, etc.
+%
+\let\implicitmath = $%$ font-lock fix
%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
+% One complication: _ usually means subscripts, but it could also mean
+% an actual _ character, as in @math{@var{some_variable} + 1}. So make
+% _ within @math be active (mathcode "8000), and distinguish by seeing
+% if the current family is \slfam, which is what @var uses.
+%
+{\catcode\underChar = \active
+\gdef\mathunderscore{%
+ \catcode\underChar=\active
+ \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+}}
%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
+% Another complication: we want \\ (and @\) to output a \ character.
+% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
+% this is not advertised and we don't care. Texinfo does not
+% otherwise define @\.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+ \tex
+ \mathcode`\_="8000 \mathunderscore
+ \let\\ = \mathbackslash
+ \mathactive
+ \implicitmath\finishmath}
+\def\finishmath#1{#1\implicitmath\Etex}
+
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an
+% argument to a command which set the catcodes (such as @item or @section).
+%
+{
+ \catcode`^ = \active
+ \catcode`< = \active
+ \catcode`> = \active
+ \catcode`+ = \active
+ \gdef\mathactive{%
+ \let^ = \ptexhat
+ \let< = \ptexless
+ \let> = \ptexgtr
+ \let+ = \ptexplus
+ }
+}
% @bullet and @minus need the same treatment as @math, just above.
\def\bullet{\implicitmath\ptexbullet\implicitmath}
@@ -878,20 +1015,26 @@ where each line of input produces a line of output.}
\def\dopdfimage#1#2#3{%
\def\imagewidth{#2}%
\def\imageheight{#3}%
+ % without \immediate, pdftex seg faults when the same image is
+ % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
\ifnum\pdftexversion < 14
- \pdfimage
+ \immediate\pdfimage
\else
- \pdfximage
+ \immediate\pdfximage
\fi
\ifx\empty\imagewidth\else width \imagewidth \fi
\ifx\empty\imageheight\else height \imageheight \fi
- {#1.pdf}%
+ \ifnum\pdftexversion<13
+ #1.pdf%
+ \else
+ {#1.pdf}%
+ \fi
\ifnum\pdftexversion < 14 \else
\pdfrefximage \pdflastximage
\fi}
- \def\pdfmkdest#1{\pdfdest name{#1@} xyz}
- \def\pdfmkpgn#1{#1@}
- \let\linkcolor = \Cyan
+ \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}}
+ \def\pdfmkpgn#1{#1}
+ \let\linkcolor = \Blue % was Cyan, but that seems light?
\def\endlink{\Black\pdfendlink}
% Adding outlines to PDF; macros for calculating structure of outlines
% come from Petr Olsak
@@ -902,41 +1045,43 @@ where each line of input produces a line of output.}
\expandafter\xdef\csname#1\endcsname{\the\tempnum}}
\def\pdfmakeoutlines{{%
\openin 1 \jobname.toc
- \ifeof 1\else\bgroup
+ \ifeof 1\else\begingroup
\closein 1
- \indexnofonts
- \def\tt{}
- % thanh's hack / proper braces in bookmarks
+ % Thanh's hack / proper braces in bookmarks
\edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
%
\def\chapentry ##1##2##3{}
- \def\unnumbchapentry ##1##2{}
\def\secentry ##1##2##3##4{\advancenumber{chap##2}}
- \def\unnumbsecentry ##1##2{}
\def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
- \def\unnumbsubsecentry ##1##2{}
\def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
- \def\unnumbsubsubsecentry ##1##2{}
+ \let\appendixentry = \chapentry
+ \let\unnumbchapentry = \chapentry
+ \let\unnumbsecentry = \secentry
+ \let\unnumbsubsecentry = \subsecentry
+ \let\unnumbsubsubsecentry = \subsubsecentry
\input \jobname.toc
\def\chapentry ##1##2##3{%
\pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
- \def\unnumbchapentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\secentry ##1##2##3##4{%
\pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
- \def\unnumbsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\subsecentry ##1##2##3##4##5{%
\pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
- \def\unnumbsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\subsubsecentry ##1##2##3##4##5##6{%
\pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
- \def\unnumbsubsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
+ \let\appendixentry = \chapentry
+ \let\unnumbchapentry = \chapentry
+ \let\unnumbsecentry = \secentry
+ \let\unnumbsubsecentry = \subsecentry
+ \let\unnumbsubsubsecentry = \subsubsecentry
+ %
+ % Make special characters normal for writing to the pdf file.
+ %
+ \indexnofonts
+ \let\tt=\relax
+ \turnoffactive
\input \jobname.toc
- \egroup\fi
+ \endgroup\fi
}}
\def\makelinks #1,{%
\def\params{#1}\def\E{END}%
@@ -986,6 +1131,7 @@ where each line of input produces a line of output.}
\def\pdfurl#1{%
\begingroup
\normalturnoffactive\def\@{@}%
+ \let\value=\expandablevalue
\leavevmode\Red
\startlink attr{/Border [0 0 0]}%
user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
@@ -1013,9 +1159,8 @@ where each line of input produces a line of output.}
\def\makelink{\addtokens{\toksB}%
{\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
\def\pdflink#1{%
- \startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}}
+ \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
\linkcolor #1\endlink}
- \def\mkpgn#1{#1@}
\def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
\fi % \ifx\pdfoutput
@@ -1032,9 +1177,26 @@ where each line of input produces a line of output.}
% We don't need math for this one.
\def\ttsl{\tenttsl}
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
+% Default leading.
+\newdimen\textleading \textleading = 13.2pt
+
+% Set the baselineskip to #1, and the lineskip and strut size
+% correspondingly. There is no deep meaning behind these magic numbers
+% used as factors; they just match (closely enough) what Knuth defined.
+%
+\def\lineskipfactor{.08333}
+\def\strutheightpercent{.70833}
+\def\strutdepthpercent {.29167}
+%
+\def\setleading#1{%
+ \normalbaselineskip = #1\relax
+ \normallineskip = \lineskipfactor\normalbaselineskip
+ \normalbaselines
+ \setbox\strutbox =\hbox{%
+ \vrule width0pt height\strutheightpercent\baselineskip
+ depth \strutdepthpercent \baselineskip
+ }%
+}
% Set the font macro #1 to the font named #2, adding on the
% specified font prefix (normally `cm').
@@ -1064,17 +1226,21 @@ where each line of input produces a line of output.}
\def\scshape{csc}
\def\scbshape{csc}
+\newcount\mainmagstep
\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
+ % not really supported.
+ \mainmagstep=\magstep1
+ \setfont\textrm\rmshape{12}{1000}
+ \setfont\texttt\ttshape{12}{1000}
\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
+ \mainmagstep=\magstephalf
+ \setfont\textrm\rmshape{10}{\mainmagstep}
+ \setfont\texttt\ttshape{10}{\mainmagstep}
\fi
-% Instead of cmb10, you many want to use cmbx10.
+% Instead of cmb10, you may want to use cmbx10.
% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
+% looks better when embedded in a line with cmr10
+% (in Bob's opinion).
\setfont\textbf\bfshape{10}{\mainmagstep}
\setfont\textit\itshape{10}{\mainmagstep}
\setfont\textsl\slshape{10}{\mainmagstep}
@@ -1101,6 +1267,18 @@ where each line of input produces a line of output.}
\font\smalli=cmmi9
\font\smallsy=cmsy9
+% Fonts for small examples (8pt).
+\setfont\smallerrm\rmshape{8}{1000}
+\setfont\smallertt\ttshape{8}{1000}
+\setfont\smallerbf\bfshape{10}{800}
+\setfont\smallerit\itshape{8}{1000}
+\setfont\smallersl\slshape{8}{1000}
+\setfont\smallersf\sfshape{8}{1000}
+\setfont\smallersc\scshape{10}{800}
+\setfont\smallerttsl\ttslshape{10}{800}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+
% Fonts for title page:
\setfont\titlerm\rmbshape{12}{\magstep3}
\setfont\titleit\itbshape{10}{\magstep4}
@@ -1113,6 +1291,7 @@ where each line of input produces a line of output.}
\font\titlei=cmmi12 scaled \magstep3
\font\titlesy=cmsy10 scaled \magstep4
\def\authorrm{\secrm}
+\def\authortt{\sectt}
% Chapter (and unnumbered) fonts (17.28pt).
\setfont\chaprm\rmbshape{12}{\magstep2}
@@ -1138,20 +1317,6 @@ where each line of input produces a line of output.}
\font\seci=cmmi12 scaled \magstep1
\font\secsy=cmsy10 scaled \magstep2
-% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
% Subsection fonts (13.15pt).
\setfont\ssecrm\rmbshape{12}{\magstephalf}
\setfont\ssecit\itbshape{10}{1315}
@@ -1168,17 +1333,16 @@ where each line of input produces a line of output.}
% 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, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
+% 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).
%
\def\resetmathfonts{%
- \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
- \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
- \textfont\ttfam = \tentt \textfont\sffam = \tensf
+ \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
+ \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
+ \textfont\ttfam=\tentt \textfont\sffam=\tensf
}
-
% The font-changing commands redefine the meanings of \tenSTYLE, instead
% of just \STYLE. We do this so that font changes will continue to work
% in math mode, where it is the current \fam that is relevant in most
@@ -1189,7 +1353,7 @@ where each line of input produces a line of output.}
\let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
\let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
\let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
- \resetmathfonts}
+ \resetmathfonts \setleading{\textleading}}
\def\titlefonts{%
\let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
\let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
@@ -1218,7 +1382,32 @@ where each line of input produces a line of output.}
\let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
\let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
\let\tenttsl=\smallttsl
- \resetmathfonts \setleading{11pt}}
+ \resetmathfonts \setleading{10.5pt}}
+\def\smallerfonts{%
+ \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
+ \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
+ \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
+ \let\tenttsl=\smallerttsl
+ \resetmathfonts \setleading{9.5pt}}
+
+% Set the fonts to use with the @small... environments.
+\let\smallexamplefonts = \smallfonts
+
+% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
+% can fit this many characters:
+% 8.5x11=86 smallbook=72 a4=90 a5=69
+% If we use \smallerfonts (8pt), then we can fit this many characters:
+% 8.5x11=90+ smallbook=80 a4=90+ a5=77
+% For me, subjectively, the few extra characters that fit aren't worth
+% the additional smallness of 8pt. So I'm making the default 9pt.
+%
+% By the way, for comparison, here's what fits with @example (10pt):
+% 8.5x11=71 smallbook=60 a4=75 a5=58
+%
+% I wish we used A4 paper on this side of the Atlantic.
+%
+% --karl, 24jan03.
+
% Set up the default fonts, so we can use them for creating boxes.
%
@@ -1235,6 +1424,7 @@ where each line of input produces a line of output.}
\setfont\shortcontrm\rmshape{12}{1000}
\setfont\shortcontbf\bxshape{12}{1000}
\setfont\shortcontsl\slshape{12}{1000}
+\setfont\shortconttt\ttshape{12}{1000}
%% Add scribe-like font environments, plus @l for inline lisp (usually sans
%% serif) and @ii for TeX italic
@@ -1242,8 +1432,8 @@ where each line of input produces a line of output.}
% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
% unless the following character is such as not to need one.
\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
+\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
+\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
\let\i=\smartitalic
\let\var=\smartslanted
@@ -1261,6 +1451,17 @@ where each line of input produces a line of output.}
\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
\def\restorehyphenation{\hyphenchar\font = `- }
+% Set sfcode to normal for the chars that usually have another value.
+% Can't use plain's \frenchspacing because it uses the `\x notation, and
+% sometimes \x has an active definition that messes things up.
+%
+\catcode`@=11
+ \def\frenchspacing{%
+ \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+ \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+ }
+\catcode`@=\other
+
\def\t#1{%
{\tt \rawbackslash \frenchspacing #1}%
\null
@@ -1332,11 +1533,19 @@ where each line of input produces a line of output.}
\def\realdash{-}
\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
+\def\codeunder{%
+ % this is all so @math{@code{var_name}+1} can work. In math mode, _
+ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+ % will therefore expand the active definition of _, which is us
+ % (inside @code that is), therefore an endless loop.
+ \ifusingtt{\ifmmode
+ \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+ \else\normalunderscore \fi
+ \discretionary{}{}{}}%
+ {\_}%
+}
\def\codex #1{\tclose{#1}\endgroup}
-%\let\exp=\tclose %Was temporary
-
% @kbd is like @code, except that if the argument is just one @key command,
% then @kbd has no effect.
@@ -1352,15 +1561,17 @@ where each line of input produces a line of output.}
\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
\else\ifx\arg\wordcode
\gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle `\arg'}%
\fi\fi\fi
}
\def\worddistinct{distinct}
\def\wordexample{example}
\def\wordcode{code}
-% Default is kbdinputdistinct. (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
+% Default is `distinct.'
+\kbdinputstyle distinct
\def\xkey{\key}
\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
@@ -1474,7 +1685,8 @@ where each line of input produces a line of output.}
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
%
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
+ \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+ \let\tt=\authortt}%
%
% Leave some space at the very top of the page.
\vglue\titlepagetopglue
@@ -1521,6 +1733,10 @@ where each line of input produces a line of output.}
\oldpage
\endgroup
%
+ % Need this before the \...aftertitlepage checks so that if they are
+ % in effect the toc pages will come out with page numbers.
+ \HEADINGSon
+ %
% If they want short, they certainly want long too.
\ifsetshortcontentsaftertitlepage
\shortcontents
@@ -1534,10 +1750,6 @@ where each line of input produces a line of output.}
\global\let\contents = \relax
\global\let\shortcontents = \relax
\fi
- %
- \ifpdf \pdfmakepagedesttrue \fi
- %
- \HEADINGSon
}
\def\finishtitlepage{%
@@ -1670,7 +1882,10 @@ where each line of input produces a line of output.}
}
% Subroutines used in generating headings
-% Produces Day Month Year style of output.
+% This produces Day Month Year style of output.
+% Only define if not already defined, in case a txi-??.tex file has set
+% up a different format (e.g., txi-cs.tex does this).
+\ifx\today\undefined
\def\today{%
\number\day\space
\ifcase\month
@@ -1679,6 +1894,7 @@ where each line of input produces a line of output.}
\or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
\fi
\space\number\year}
+\fi
% @settitle line... specifies the title of the document, for headings.
% It generates no output of its own.
@@ -1751,10 +1967,18 @@ where each line of input produces a line of output.}
% \parskip glue -- logically it's part of the @item we just started.
\nobreak \vskip-\parskip
%
- % Stop a page break at the \parskip glue coming up. Unfortunately
+ % Stop a page break at the \parskip glue coming up. (Unfortunately
% we can't prevent a possible page break at the following
- % \baselineskip glue.
- \nobreak
+ % \baselineskip glue.) However, if what follows is an environment
+ % such as @example, there will be no \parskip glue; then
+ % the negative vskip we just would cause the example and the item to
+ % crash together. So we use this bizarre value of 10001 as a signal
+ % to \aboveenvbreak to insert \parskip glue after all.
+ % (Possibly there are other commands that could be followed by
+ % @example which need the same treatment, but not section titles; or
+ % maybe section titles are the only special case and they should be
+ % penalty 10001...)
+ \penalty 10001
\endgroup
\itemxneedsnegativevskipfalse
\else
@@ -1860,11 +2084,6 @@ where each line of input produces a line of output.}
\def\itemcontents{#1}%
\let\item=\itemizeitem}
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
- \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
% \splitoff TOKENS\endmark defines \first to be the first token in
% TOKENS, and \rest to be the remainder.
%
@@ -2086,8 +2305,8 @@ where each line of input produces a line of output.}
\let\go\pickupwholefraction
\else
\global\advance\colcount by 1
- \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
+ \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+ % separator; typically that is always in the input, anyway.
\expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
\fi
\fi
@@ -2102,18 +2321,18 @@ where each line of input produces a line of output.}
\go
}
-% This used to have \hskip1sp. But then the space in a template line is
-% not enough. That is bad. So let's go back to just & until we
-% encounter the problem it was intended to solve again.
-% --karl, nathan@acm.org, 20apr99.
-\def\tab{&}
-
% @multitable ... @end multitable definitions:
%
\def\multitable{\parsearg\dotable}
\def\dotable#1{\bgroup
\vskip\parskip
- \let\item\crcr
+ \let\item=\crcrwithfootnotes
+ % 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 encounter the problem it was intended to solve again. --karl,
+ % nathan@acm.org, 20apr99.
+ \let\tab=&%
+ \let\startfootins=\startsavedfootnote
\tolerance=9500
\hbadness=9500
\setmultitablespacing
@@ -2121,7 +2340,11 @@ where each line of input produces a line of output.}
\parindent=\multitableparindent
\overfullrule=0pt
\global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
+ \def\Emultitable{%
+ \global\setpercentfalse
+ \crcrwithfootnotes\crcr
+ \egroup\egroup
+ }%
%
% To parse everything between @multitable and @item:
\setuptable#1 \endsetuptable
@@ -2210,6 +2433,25 @@ width0pt\relax} \fi
%% than skip between lines in the table.
\fi}
+% In case 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. Otherwise, the insertion is lost, it never migrates to the
+% main vertical list. --kasal, 22jan03.
+%
+\newbox\savedfootnotes
+%
+% \dotable \let's \startfootins to this, so that \dofootnote will call
+% it instead of starting the insertion right away.
+\def\startsavedfootnote{%
+ \global\setbox\savedfootnotes = \vbox\bgroup
+ \unvbox\savedfootnotes
+}
+\def\crcrwithfootnotes{%
+ \crcr
+ \ifvoid\savedfootnotes \else
+ \noalign{\insert\footins{\box\savedfootnotes}}%
+ \fi
+}
\message{conditionals,}
% Prevent errors for section commands.
@@ -2245,64 +2487,117 @@ width0pt\relax} \fi
% and so want to turn off most commands, in case they are used
% incorrectly.
%
+% We use \empty instead of \relax for the @def... commands, so that \end
+% doesn't throw an error. For instance:
+% @ignore
+% @deffn ...
+% @end deffn
+% @end ignore
+%
+% The @end deffn is going to get expanded, because we're trying to allow
+% nested conditionals. But we don't want to expand the actual @deffn,
+% since it might be syntactically correct and intended to be ignored.
+% Since \end checks for \relax, using \empty does not cause an error.
+%
\def\ignoremorecommands{%
\let\defcodeindex = \relax
- \let\defcv = \relax
- \let\deffn = \relax
- \let\deffnx = \relax
+ \let\defcv = \empty
+ \let\defcvx = \empty
+ \let\Edefcv = \empty
+ \let\deffn = \empty
+ \let\deffnx = \empty
+ \let\Edeffn = \empty
\let\defindex = \relax
- \let\defivar = \relax
- \let\defmac = \relax
- \let\defmethod = \relax
- \let\defop = \relax
- \let\defopt = \relax
- \let\defspec = \relax
- \let\deftp = \relax
- \let\deftypefn = \relax
- \let\deftypefun = \relax
- \let\deftypeivar = \relax
- \let\deftypeop = \relax
- \let\deftypevar = \relax
- \let\deftypevr = \relax
- \let\defun = \relax
- \let\defvar = \relax
- \let\defvr = \relax
- \let\ref = \relax
- \let\xref = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\settitle = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\everyheading = \relax
+ \let\defivar = \empty
+ \let\defivarx = \empty
+ \let\Edefivar = \empty
+ \let\defmac = \empty
+ \let\defmacx = \empty
+ \let\Edefmac = \empty
+ \let\defmethod = \empty
+ \let\defmethodx = \empty
+ \let\Edefmethod = \empty
+ \let\defop = \empty
+ \let\defopx = \empty
+ \let\Edefop = \empty
+ \let\defopt = \empty
+ \let\defoptx = \empty
+ \let\Edefopt = \empty
+ \let\defspec = \empty
+ \let\defspecx = \empty
+ \let\Edefspec = \empty
+ \let\deftp = \empty
+ \let\deftpx = \empty
+ \let\Edeftp = \empty
+ \let\deftypefn = \empty
+ \let\deftypefnx = \empty
+ \let\Edeftypefn = \empty
+ \let\deftypefun = \empty
+ \let\deftypefunx = \empty
+ \let\Edeftypefun = \empty
+ \let\deftypeivar = \empty
+ \let\deftypeivarx = \empty
+ \let\Edeftypeivar = \empty
+ \let\deftypemethod = \empty
+ \let\deftypemethodx = \empty
+ \let\Edeftypemethod = \empty
+ \let\deftypeop = \empty
+ \let\deftypeopx = \empty
+ \let\Edeftypeop = \empty
+ \let\deftypevar = \empty
+ \let\deftypevarx = \empty
+ \let\Edeftypevar = \empty
+ \let\deftypevr = \empty
+ \let\deftypevrx = \empty
+ \let\Edeftypevr = \empty
+ \let\defun = \empty
+ \let\defunx = \empty
+ \let\Edefun = \empty
+ \let\defvar = \empty
+ \let\defvarx = \empty
+ \let\Edefvar = \empty
+ \let\defvr = \empty
+ \let\defvrx = \empty
+ \let\Edefvr = \empty
+ \let\clear = \relax
+ \let\down = \relax
+ \let\evenfooting = \relax
\let\evenheading = \relax
- \let\oddheading = \relax
\let\everyfooting = \relax
- \let\evenfooting = \relax
- \let\oddfooting = \relax
+ \let\everyheading = \relax
\let\headings = \relax
\let\include = \relax
+ \let\item = \relax
\let\lowersections = \relax
- \let\down = \relax
+ \let\oddfooting = \relax
+ \let\oddheading = \relax
+ \let\printindex = \relax
+ \let\pxref = \relax
\let\raisesections = \relax
- \let\up = \relax
+ \let\ref = \relax
\let\set = \relax
- \let\clear = \relax
- \let\item = \relax
+ \let\setchapternewpage = \relax
+ \let\setchapterstyle = \relax
+ \let\settitle = \relax
+ \let\up = \relax
+ \let\verbatiminclude = \relax
+ \let\xref = \relax
}
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
+% Ignore @ignore, @ifhtml, @ifinfo, and the like.
%
-\def\ifinfo{\doignore{ifinfo}}
+\def\direntry{\doignore{direntry}}
+\def\documentdescriptionword{documentdescription}
+\def\documentdescription{\doignore{documentdescription}}
+\def\html{\doignore{html}}
\def\ifhtml{\doignore{ifhtml}}
+\def\ifinfo{\doignore{ifinfo}}
\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
+\def\ifplaintext{\doignore{ifplaintext}}
+\def\ifxml{\doignore{ifxml}}
+\def\ignore{\doignore{ignore}}
\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
+\def\xml{\doignore{xml}}
% @dircategory CATEGORY -- specify a category of the dir file
% which this file should belong to. Ignore this in TeX.
@@ -2320,7 +2615,7 @@ width0pt\relax} \fi
\long\def\doignoretext##1@end #1{\enddoignore}%
%
% Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode32 = 10
+ \catcode\spaceChar = 10
%
% Ignore braces, too, so mismatched braces don't cause trouble.
\catcode`\{ = 9
@@ -2329,14 +2624,21 @@ width0pt\relax} \fi
% We must not have @c interpreted as a control sequence.
\catcode`\@ = 12
%
- % Make the letter c a comment character so that the rest of the line
- % will be ignored. This way, the document can have (for example)
- % @c @end ifinfo
- % and the @end ifinfo will be properly ignored.
- % (We've just changed @ to catcode 12.)
- \catcode`\c = 14
+ \def\ignoreword{#1}%
+ \ifx\ignoreword\documentdescriptionword
+ % The c kludge breaks documentdescription, since
+ % `documentdescription' contains a `c'. Means not everything will
+ % be ignored inside @documentdescription, but oh well...
+ \else
+ % Make the letter c a comment character so that the rest of the line
+ % will be ignored. This way, the document can have (for example)
+ % @c @end ifinfo
+ % and the @end ifinfo will be properly ignored.
+ % (We've just changed @ to catcode 12.)
+ \catcode`\c = 14
+ \fi
%
- % And now expand that command.
+ % And now expand the command defined above.
\doignoretext
}
@@ -2355,7 +2657,7 @@ width0pt\relax} \fi
\immediate\write16{If you are running another version of TeX, relax.}
\immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
\immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
+ \immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)}
\immediate\write16{If you are stuck with version 3.0, run the}
\immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
\immediate\write16{ to use a workaround.}
@@ -2377,8 +2679,8 @@ width0pt\relax} \fi
% We must actually expand the ignored text to look for the @end
% command, so that nested ignore constructs work. Thus, we put the
% text into a \vbox and then do nothing with the result. To minimize
- % the change of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook: make the current font be a dummy font.
+ % the chance of memory overflow, we follow the approach outlined on
+ % page 401 of the TeXbook.
%
\setbox0 = \vbox\bgroup
% Don't complain about control sequences we have declared \outer.
@@ -2399,8 +2701,8 @@ width0pt\relax} \fi
%
% Set the current font to be \nullfont, a TeX primitive, and define
% all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because not all sites
- % might have that installed. Therefore, math mode will still
+ % dummy.tfm, as suggested in the TeXbook, because some sites
+ % might not have that installed. Therefore, math mode will still
% produce output, but that should be an extremely small amount of
% stuff compared to the main input.
%
@@ -2408,10 +2710,14 @@ width0pt\relax} \fi
\let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
\let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
\let\tensf=\nullfont
- % Similarly for index fonts (mostly for their use in smallexample).
+ % Similarly for index fonts.
\let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
\let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
\let\smallsf=\nullfont
+ % Similarly for smallexample fonts.
+ \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont
+ \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont
+ \let\smallersf=\nullfont
%
% Don't complain when characters are missing from the fonts.
\tracinglostchars = 0
@@ -2425,7 +2731,7 @@ width0pt\relax} \fi
% Do minimal line-breaking.
\pretolerance = 10000
%
- % Do not execute instructions in @tex
+ % Do not execute instructions in @tex.
\def\tex{\doignore{tex}}%
% Do not execute macro definitions.
% `c' is a comment character, so the word `macro' will get cut off.
@@ -2470,7 +2776,7 @@ width0pt\relax} \fi
% we're called from @code, as @code{@value{foo-bar_}}. So \let any
% such active characters to their normal equivalents.
\gdef\value{\begingroup
- \catcode`\-=12 \catcode`\_=12
+ \catcode`\-=\other \catcode`\_=\other
\indexbreaks \let_\normalunderscore
\valuexxx}
}
@@ -2479,15 +2785,17 @@ width0pt\relax} \fi
% We have this subroutine so that we can handle at least some @value's
% properly in indexes (we \let\value to this in \indexdummies). Ones
% whose names contain - or _ still won't work, but we can't do anything
-% about that. The command has to be fully expandable, since the result
-% winds up in the index file. This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
+% about that. The command has to be fully expandable (if the variable
+% is set), since the result winds up in the index file. This means that
+% if the variable's value contains other Texinfo commands, it's almost
+% certain it will fail (although perhaps we could fix that with
+% sufficient work to do a one-level expansion on the result, instead of
+% complete).
%
\def\expandablevalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
{[No value for ``#1'']}%
+ \message{Variable `#1', used in @value, is not set.}%
\else
\csname SET#1\endcsname
\fi
@@ -2496,13 +2804,14 @@ width0pt\relax} \fi
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
+\def\ifset{\parsearg\doifset}
+\def\doifset#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifsetfail
+ \let\next=\ifsetfail
\else
- \expandafter\ifsetsucceed
+ \let\next=\ifsetsucceed
\fi
+ \next
}
\def\ifsetsucceed{\conditionalsucceed{ifset}}
\def\ifsetfail{\nestedignore{ifset}}
@@ -2511,51 +2820,39 @@ width0pt\relax} \fi
% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
% defined with @set, or has been undefined with @clear.
%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
+\def\ifclear{\parsearg\doifclear}
+\def\doifclear#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifclearsucceed
+ \let\next=\ifclearsucceed
\else
- \expandafter\ifclearfail
+ \let\next=\ifclearfail
\fi
+ \next
}
\def\ifclearsucceed{\conditionalsucceed{ifclear}}
\def\ifclearfail{\nestedignore{ifclear}}
\defineunmatchedend{ifclear}
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.). Make `@end iftex'
-% (etc.) valid only after an @iftex.
+% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we
+% read the text following, through the first @end iftex (etc.). Make
+% `@end iftex' (etc.) valid only after an @iftex.
%
\def\iftex{\conditionalsucceed{iftex}}
\def\ifnothtml{\conditionalsucceed{ifnothtml}}
\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
+\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}}
\defineunmatchedend{iftex}
\defineunmatchedend{ifnothtml}
\defineunmatchedend{ifnotinfo}
+\defineunmatchedend{ifnotplaintext}
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group). So we must
-% define \Eiftex to redefine itself to be its previous value. (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
- \edef\temp{%
- % Remember the current value of \E#1.
- \let\nece{prevE#1} = \nece{E#1}%
- %
- % At the `@end #1', redefine \E#1 to be its previous value.
- \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
- }%
- \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
+% True conditional. Since \set globally defines its variables, we can
+% just start and end a group (to keep the @end definition undefined at
+% the outer level).
%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
+\def\conditionalsucceed#1{\begingroup
+ \expandafter\def\csname E#1\endcsname{\endgroup}%
+}
% @defininfoenclose.
\let\definfoenclose=\comment
@@ -2587,42 +2884,48 @@ width0pt\relax} \fi
}
% @defindex foo == \newindex{foo}
-
+%
\def\defindex{\parsearg\newindex}
% Define @defcodeindex, like @defindex except put all entries in @code.
-
+%
+\def\defcodeindex{\parsearg\newcodeindex}
+%
\def\newcodeindex#1{%
\iflinks
\expandafter\newwrite \csname#1indfile\endcsname
\openout \csname#1indfile\endcsname \jobname.#1
\fi
\expandafter\xdef\csname#1index\endcsname{%
- \noexpand\docodeindex{#1}}
+ \noexpand\docodeindex{#1}}%
}
-\def\defcodeindex{\parsearg\newcodeindex}
% @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.
-% The \closeout helps reduce unnecessary open files; the limit on the
-% Acorn RISC OS is a mere 16 files.
-\def\synindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\doindex{#2}}%
-}
-
+%
% @syncodeindex foo bar similar, but put all entries made for index foo
% inside @code.
-\def\syncodeindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\docodeindex{#2}}%
+%
+\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+
+% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+% #3 the target index (bar).
+\def\dosynindex#1#2#3{%
+ % Only do \closeout if we haven't already done it, else we'll end up
+ % closing the target index.
+ \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+ % The \closeout helps reduce unnecessary open files; the limit on the
+ % Acorn RISC OS is a mere 16 files.
+ \expandafter\closeout\csname#2indfile\endcsname
+ \expandafter\let\csname\donesynindex#2\endcsname = 1
+ \fi
+ % redefine \fooindfile:
+ \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+ \expandafter\let\csname#2indfile\endcsname=\temp
+ % redefine \fooindex:
+ \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
}
% Define \doindex, the driver for all \fooindex macros.
@@ -2642,171 +2945,254 @@ width0pt\relax} \fi
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
\def\singlecodeindexer #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.
+%
\def\indexdummies{%
-\def\ { }%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-% Need these in case \tex is in effect and \{ is a \delimiter again.
-% But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
-\let\{ = \mylbrace
-\let\} = \myrbrace
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\uref##1{\realbackslash uref {##1}}%
-\def\url##1{\realbackslash url {##1}}%
-\def\env##1{\realbackslash env {##1}}%
-\def\command##1{\realbackslash command {##1}}%
-\def\option##1{\realbackslash option {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\acronym##1{\realbackslash acronym {##1}}%
-%
-% Handle some cases of @value -- where the variable name does not
-% contain - or _, and the value does not contain any
-% (non-fully-expandable) commands.
-\let\value = \expandablevalue
-%
-\unsepspaces
-% Turn off macro expansion
-\turnoffmacros
+ \def\@{@}% change to @@ when we switch to @ as escape char in index files.
+ \def\ {\realbackslash\space }%
+ % Need these in case \tex is in effect and \{ is a \delimiter again.
+ % But can't use \lbracecmd and \rbracecmd because texindex assumes
+ % braces and backslashes are used only as delimiters.
+ \let\{ = \mylbrace
+ \let\} = \myrbrace
+ %
+ % \definedummyword defines \#1 as \realbackslash #1\space, thus
+ % effectively preventing its expansion. This is used only for control
+ % words, not control letters, because the \space would be incorrect
+ % for control characters, but is needed to separate the control word
+ % from whatever follows.
+ %
+ % For control letters, we have \definedummyletter, which omits the
+ % space.
+ %
+ % These can be used both for control words that take an argument and
+ % those that do not. If it is followed by {arg} in the input, then
+ % that will dutifully get written to the index (or wherever).
+ %
+ \def\definedummyword##1{%
+ \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}%
+ }%
+ \def\definedummyletter##1{%
+ \expandafter\def\csname ##1\endcsname{\realbackslash ##1}%
+ }%
+ %
+ % Do the redefinitions.
+ \commondummies
+}
+
+% For the aux file, @ is the escape character. So we want to redefine
+% everything using @ instead of \realbackslash. When everything uses
+% @, this will be simpler.
+%
+\def\atdummies{%
+ \def\@{@@}%
+ \def\ {@ }%
+ \let\{ = \lbraceatcmd
+ \let\} = \rbraceatcmd
+ %
+ % (See comments in \indexdummies.)
+ \def\definedummyword##1{%
+ \expandafter\def\csname ##1\endcsname{@##1\space}%
+ }%
+ \def\definedummyletter##1{%
+ \expandafter\def\csname ##1\endcsname{@##1}%
+ }%
+ %
+ % Do the redefinitions.
+ \commondummies
+}
+
+% Called from \indexdummies and \atdummies. \definedummyword and
+% \definedummyletter must be defined first.
+%
+\def\commondummies{%
+ %
+ \normalturnoffactive
+ %
+ % Control letters and accents.
+ \definedummyletter{_}%
+ \definedummyletter{,}%
+ \definedummyletter{"}%
+ \definedummyletter{`}%
+ \definedummyletter{'}%
+ \definedummyletter{^}%
+ \definedummyletter{~}%
+ \definedummyletter{=}%
+ \definedummyword{u}%
+ \definedummyword{v}%
+ \definedummyword{H}%
+ \definedummyword{dotaccent}%
+ \definedummyword{ringaccent}%
+ \definedummyword{tieaccent}%
+ \definedummyword{ubaraccent}%
+ \definedummyword{udotaccent}%
+ \definedummyword{dotless}%
+ %
+ % Other non-English letters.
+ \definedummyword{AA}%
+ \definedummyword{AE}%
+ \definedummyword{L}%
+ \definedummyword{OE}%
+ \definedummyword{O}%
+ \definedummyword{aa}%
+ \definedummyword{ae}%
+ \definedummyword{l}%
+ \definedummyword{oe}%
+ \definedummyword{o}%
+ \definedummyword{ss}%
+ %
+ % Although these internal commands shouldn't show up, sometimes they do.
+ \definedummyword{bf}%
+ \definedummyword{gtr}%
+ \definedummyword{hat}%
+ \definedummyword{less}%
+ \definedummyword{sf}%
+ \definedummyword{sl}%
+ \definedummyword{tclose}%
+ \definedummyword{tt}%
+ %
+ % Texinfo font commands.
+ \definedummyword{b}%
+ \definedummyword{i}%
+ \definedummyword{r}%
+ \definedummyword{sc}%
+ \definedummyword{t}%
+ %
+ \definedummyword{TeX}%
+ \definedummyword{acronym}%
+ \definedummyword{cite}%
+ \definedummyword{code}%
+ \definedummyword{command}%
+ \definedummyword{dfn}%
+ \definedummyword{dots}%
+ \definedummyword{emph}%
+ \definedummyword{env}%
+ \definedummyword{file}%
+ \definedummyword{kbd}%
+ \definedummyword{key}%
+ \definedummyword{math}%
+ \definedummyword{option}%
+ \definedummyword{samp}%
+ \definedummyword{strong}%
+ \definedummyword{uref}%
+ \definedummyword{url}%
+ \definedummyword{var}%
+ \definedummyword{w}%
+ %
+ % Assorted special characters.
+ \definedummyword{bullet}%
+ \definedummyword{copyright}%
+ \definedummyword{dots}%
+ \definedummyword{enddots}%
+ \definedummyword{equiv}%
+ \definedummyword{error}%
+ \definedummyword{expansion}%
+ \definedummyword{minus}%
+ \definedummyword{pounds}%
+ \definedummyword{point}%
+ \definedummyword{print}%
+ \definedummyword{result}%
+ %
+ % Handle some cases of @value -- where the variable name does not
+ % contain - or _, and the value does not contain any
+ % (non-fully-expandable) commands.
+ \let\value = \expandablevalue
+ %
+ % Normal spaces, not active ones.
+ \unsepspaces
+ %
+ % No macro expansion.
+ \turnoffmacros
}
% If an index command is used in an @example environment, any spaces
% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
+% expansion of \tie (\leavevmode \penalty \@M \ ).
{\obeyspaces
\gdef\unsepspaces{\obeyspaces\let =\space}}
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
+
+% \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
+% would be for a given command (usually its argument).
+%
\def\indexdummytex{TeX}
\def\indexdummydots{...}
-
+%
\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\url=\indexdummyfont
-\let\uref=\indexdummyfont
-\let\env=\indexdummyfont
-\let\acronym=\indexdummyfont
-\let\command=\indexdummyfont
-\let\option=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
- @gdef@realbackslash{\}}
+ \def\ { }%
+ \def\@{@}%
+ % how to handle braces?
+ \def\_{\normalunderscore}%
+ %
+ \let\,=\asis
+ \let\"=\asis
+ \let\`=\asis
+ \let\'=\asis
+ \let\^=\asis
+ \let\~=\asis
+ \let\==\asis
+ \let\u=\asis
+ \let\v=\asis
+ \let\H=\asis
+ \let\dotaccent=\asis
+ \let\ringaccent=\asis
+ \let\tieaccent=\asis
+ \let\ubaraccent=\asis
+ \let\udotaccent=\asis
+ \let\dotless=\asis
+ %
+ % Other non-English letters.
+ \def\AA{AA}%
+ \def\AE{AE}%
+ \def\L{L}%
+ \def\OE{OE}%
+ \def\O{O}%
+ \def\aa{aa}%
+ \def\ae{ae}%
+ \def\l{l}%
+ \def\oe{oe}%
+ \def\o{o}%
+ \def\ss{ss}%
+ \def\exclamdown{!}%
+ \def\questiondown{?}%
+ %
+ % Don't no-op \tt, since it isn't a user-level command
+ % and is used in the definitions of the active chars like <, >, |, etc.
+ % Likewise with the other plain tex font commands.
+ %\let\tt=\asis
+ %
+ % Texinfo font commands.
+ \let\b=\asis
+ \let\i=\asis
+ \let\r=\asis
+ \let\sc=\asis
+ \let\t=\asis
+ %
+ \let\TeX=\indexdummytex
+ \let\acronym=\asis
+ \let\cite=\asis
+ \let\code=\asis
+ \let\command=\asis
+ \let\dfn=\asis
+ \let\dots=\indexdummydots
+ \let\emph=\asis
+ \let\env=\asis
+ \let\file=\asis
+ \let\kbd=\asis
+ \let\key=\asis
+ \let\math=\asis
+ \let\option=\asis
+ \let\samp=\asis
+ \let\strong=\asis
+ \let\uref=\asis
+ \let\url=\asis
+ \let\var=\asis
+ \let\w=\asis
+}
\let\indexbackslash=0 %overridden during \printindex.
\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
@@ -2838,32 +3224,29 @@ width0pt\relax} \fi
\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
% so it will be output as is; and it will print as backslash.
%
- \def\thirdarg{#3}%
- %
- % If third arg is present, precede it with space in sort key.
- \ifx\thirdarg\emptymacro
- \let\subentry = \empty
- \else
- \def\subentry{ #3}%
- \fi
- %
- % First process the index entry with all font commands turned
- % off to get the string to sort by.
- {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
- %
- % Now the real index entry with the fonts.
+ % The main index entry text.
\toks0 = {#2}%
%
- % If third (subentry) arg is present, add it to the index
- % string. And include a space.
+ % If third arg is present, precede it with space in sort key.
+ \def\thirdarg{#3}%
\ifx\thirdarg\emptymacro \else
+ % If the third (subentry) arg is present, add it to the index
+ % line to write.
\toks0 = \expandafter{\the\toks0 \space #3}%
\fi
%
- % Set up the complete index entry, with both the sort key
- % and the original text, including any font commands. We write
- % three arguments to \entry to the .?? file, texindex reduces to
- % two when writing the .??s sorted result.
+ % Process the index entry with all font commands turned off, to
+ % get the string to sort by.
+ {\indexnofonts
+ \edef\temp{\the\toks0}% need full expansion
+ \xdef\indexsorttmp{\temp}%
+ }%
+ %
+ % Set up the complete index entry, with both the sort key and
+ % the original text, including any font commands. We write
+ % three arguments to \entry to the .?? file (four in the
+ % subentry case), texindex reduces to two when writing the .??s
+ % sorted result.
\edef\temp{%
\write\csname#1indfile\endcsname{%
\realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
@@ -2889,12 +3272,11 @@ width0pt\relax} \fi
\iflinks
\ifvmode
\skip0 = \lastskip
- \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi
+ \ifdim\lastskip = 0pt \else \nobreak\vskip-\skip0 \fi
\fi
%
\temp % do the write
%
- %
\ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
\fi
}%
@@ -3085,11 +3467,18 @@ width0pt\relax} \fi
\def\primary #1{\line{#1\hfil}}
\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
+\def\secondary#1#2{{%
+ \parfillskip=0in
+ \parskip=0in
+ \hangindent=1in
+ \hangafter=1
+ \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+ \ifpdf
+ \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+ \else
+ #2
+ \fi
+ \par
}}
% Define two-column mode, which we use to typeset indexes.
@@ -3149,7 +3538,6 @@ width0pt\relax} \fi
%
% Double the \vsize as well. (We don't need a separate register here,
% since nobody clobbers \vsize.)
- \advance\vsize by -\ht\partialpage
\vsize = 2\vsize
}
@@ -3163,6 +3551,7 @@ width0pt\relax} \fi
% previous page.
\dimen@ = \vsize
\divide\dimen@ by 2
+ \advance\dimen@ by -\ht\partialpage
%
% box0 will be the left-hand column, box2 the right.
\setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
@@ -3170,15 +3559,18 @@ width0pt\relax} \fi
\unvbox255
\penalty\outputpenalty
}
+%
+% Re-output the contents of the output page -- any previous material,
+% followed by the two boxes we just split, in box0 and box2.
\def\pagesofar{%
- % Re-output the contents of the output page -- any previous material,
- % followed by the two boxes we just split, in box0 and box2.
\unvbox\partialpage
%
\hsize = \doublecolumnhsize
\wd0=\hsize \wd2=\hsize
\hbox to\pagewidth{\box0\hfil\box2}%
}
+%
+% All done with double columns.
\def\enddoublecolumns{%
\output = {%
% Split the last of the double-column material. Leave it on the
@@ -3203,8 +3595,9 @@ width0pt\relax} \fi
% \endgroup where \vsize got restored).
\pagegoal = \vsize
}
+%
+% Called at the end of the double column material.
\def\balancecolumns{%
- % Called at the end of the double column material.
\setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
\dimen@ = \ht0
\advance\dimen@ by \topskip
@@ -3359,42 +3752,41 @@ width0pt\relax} \fi
\outer\def\chapter{\parsearg\chapteryyy}
\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
\def\chapterzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\the\chapno}}}%
-\temp
-\donoderef
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}
+ \secno=0 \subsecno=0 \subsubsecno=0
+ \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
+ \chapmacro {#1}{\the\chapno}%
+ \gdef\thissection{#1}%
+ \gdef\thischaptername{#1}%
+ % We don't substitute the actual chapter name into \thischapter
+ % because we don't want its macros evaluated now.
+ \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
+ \writetocentry{chap}{#1}{{\the\chapno}}
+ \donoderef
+ \global\let\section = \numberedsec
+ \global\let\subsection = \numberedsubsec
+ \global\let\subsubsection = \numberedsubsubsec
+}
+
+% we use \chapno to avoid indenting back
+\def\appendixbox#1{%
+ \setbox0 = \hbox{\putwordAppendix{} \the\chapno}%
+ \hbox to \wd0{#1\hss}}
\outer\def\appendix{\parsearg\appendixyyy}
\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
\def\appendixzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1
-\message{\putwordAppendix\space \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\putwordAppendix{} \appendixletter}}}%
-\temp
-\appendixnoderef
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
+ \secno=0 \subsecno=0 \subsubsecno=0
+ \global\advance \appendixno by 1
+ \message{\putwordAppendix\space \appendixletter}%
+ \chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}}%
+ \gdef\thissection{#1}%
+ \gdef\thischaptername{#1}%
+ \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
+ \writetocentry{appendix}{#1}{{\appendixletter}}
+ \appendixnoderef
+ \global\let\section = \appendixsec
+ \global\let\subsection = \appendixsubsec
+ \global\let\subsubsection = \appendixsubsubsec
}
% @centerchap is like @unnumbered, but the heading is centered.
@@ -3407,149 +3799,121 @@ width0pt\relax} \fi
\outer\def\unnumbered{\parsearg\unnumberedyyy}
\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
\def\unnumberedzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message. Therefore, if #1 contained @-commands, TeX
-% expanded them. For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself. We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of <toks register>. (We also do this for
-% the toc entries.)
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
+ \secno=0 \subsecno=0 \subsubsecno=0
+ %
+ % This used to be simply \message{#1}, but TeX fully expands the
+ % argument to \message. Therefore, if #1 contained @-commands, TeX
+ % expanded them. For example, in `@unnumbered The @cite{Book}', TeX
+ % expanded @cite (which turns out to cause errors because \cite is meant
+ % to be executed, not expanded).
+ %
+ % Anyway, we don't want the fully-expanded definition of @cite to appear
+ % as a result of the \message, we just want `@cite' itself. We use
+ % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+ % simply yielding the contents of <toks register>. (We also do this for
+ % the toc entries.)
+ \toks0 = {#1}\message{(\the\toks0)}%
+ %
+ \unnumbchapmacro {#1}%
+ \gdef\thischapter{#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbchap}{#1}{{\the\chapno}}
+ \unnumbnoderef
+ \global\let\section = \unnumberedsec
+ \global\let\subsection = \unnumberedsubsec
+ \global\let\subsubsection = \unnumberedsubsubsec
}
% Sections.
\outer\def\numberedsec{\parsearg\secyyy}
\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
\def\seczzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\the\chapno}{\the\secno}}}%
-\temp
-\donoderef
-\nobreak
+ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
+ \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
+ \writetocentry{sec}{#1}{{\the\chapno}{\the\secno}}
+ \donoderef
+ \nobreak
}
\outer\def\appendixsection{\parsearg\appendixsecyyy}
\outer\def\appendixsec{\parsearg\appendixsecyyy}
\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
\def\appendixsectionzzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\appendixletter}{\the\secno}}}%
-\temp
-\appendixnoderef
-\nobreak
+ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
+ \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
+ \writetocentry{sec}{#1}{{\appendixletter}{\the\secno}}
+ \appendixnoderef
+ \nobreak
}
\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
\def\unnumberedseczzz #1{%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
+ \plainsecheading {#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbsec}{#1}{{\the\chapno}{\the\secno}}
+ \unnumbnoderef
+ \nobreak
}
% Subsections.
\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
\def\numberedsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}}}%
-\temp
-\donoderef
-\nobreak
+ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
+ \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
+ \writetocentry{subsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
+ \donoderef
+ \nobreak
}
\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
\def\appendixsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
+ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
+ \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
+ \writetocentry{subsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}}
+ \appendixnoderef
+ \nobreak
}
\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
\def\unnumberedsubseczzz #1{%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
+ \plainsubsecheading {#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
+ \unnumbnoderef
+ \nobreak
}
% Subsubsections.
\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
\def\numberedsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\donoderef
-\nobreak
+ \gdef\thissection{#1}\global\advance \subsubsecno by 1 %
+ \subsubsecheading {#1}
+ {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
+ \writetocentry{subsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
+ \donoderef
+ \nobreak
}
\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
\def\appendixsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
+ \gdef\thissection{#1}\global\advance \subsubsecno by 1 %
+ \subsubsecheading {#1}
+ {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
+ \writetocentry{subsubsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
+ \appendixnoderef
+ \nobreak
}
\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
\def\unnumberedsubsubseczzz #1{%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
+ \plainsubsubsecheading {#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbsubsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
+ \unnumbnoderef
+ \nobreak
}
% These are variants which are not "outer", so they can appear in @ifinfo.
@@ -3590,16 +3954,16 @@ width0pt\relax} \fi
\def\majorheading{\parsearg\majorheadingzzz}
\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
+ {\advance\chapheadingskip by 10pt \chapbreak }%
+ {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}\bigskip \par\penalty 200}
\def\chapheading{\parsearg\chapheadingzzz}
\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
+ {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}\bigskip \par\penalty 200}
% @heading, @subheading, @subsubheading.
\def\heading{\parsearg\plainsecheading}
@@ -3745,7 +4109,16 @@ width0pt\relax} \fi
\hangindent = \wd0 % zero if no section number
\unhbox0 #3}%
}%
- \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
+ % Add extra space after the heading -- either a line space or a
+ % paragraph space, whichever is more. (Some people like to set
+ % \parskip to large values for some reason.) Don't allow stretch, though.
+ \nobreak
+ \ifdim\parskip>\normalbaselineskip
+ \kern\parskip
+ \else
+ \kern\normalbaselineskip
+ \fi
+ \nobreak
}
@@ -3757,16 +4130,30 @@ width0pt\relax} \fi
% Called from @chapter, etc. We supply {\folio} at the end of the
% argument, which will end up as the last argument to the \...entry macro.
%
-% We open the .toc file here instead of at @setfilename or any other
-% given time so that @contents can be put in the document anywhere.
+% Usage: \writetocentry{chap}{The Name of The Game}{{\the\chapno}}
+% We open the .toc file for writing here instead of at @setfilename (or
+% any other fixed time) so that @contents can be anywhere in the document.
%
\newif\iftocfileopened
-\def\writetocentry#1{%
+\def\writetocentry#1#2#3{%
\iftocfileopened\else
\immediate\openout\tocfile = \jobname.toc
\global\tocfileopenedtrue
\fi
- \iflinks \write\tocfile{#1{\folio}}\fi
+ %
+ \iflinks
+ \toks0 = {#2}%
+ \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}#3{\folio}}}%
+ \temp
+ \fi
+ %
+ % Tell \shipout to create a page destination if we're doing pdf, which
+ % will be the target of the links in the table of contents. We can't
+ % just do it on every page because the title pages are numbered 1 and
+ % 2 (the page numbers aren't printed), and so are the first two pages
+ % of the document. Thus, we'd have two destinations named `1', and
+ % two named `2'.
+ \ifpdf \pdfmakepagedesttrue \fi
}
\newskip\contentsrightmargin \contentsrightmargin=1in
@@ -3797,7 +4184,7 @@ width0pt\relax} \fi
\advance\hsize by -\contentsrightmargin % Don't use the full line length.
%
% Roman numerals for page numbers.
- \ifnum \pageno>0 \pageno = \lastnegativepageno \fi
+ \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
}
@@ -3814,7 +4201,7 @@ width0pt\relax} \fi
\pdfmakeoutlines
\endgroup
\lastnegativepageno = \pageno
- \pageno = \savepageno
+ \global\pageno = \savepageno
}
% And just the chapters.
@@ -3822,19 +4209,21 @@ width0pt\relax} \fi
\startcontents{\putwordShortTOC}%
%
\let\chapentry = \shortchapentry
+ \let\appendixentry = \shortappendixentry
\let\unnumbchapentry = \shortunnumberedentry
% We want a true roman here for the page numbers.
\secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
+ \let\rm=\shortcontrm \let\bf=\shortcontbf
+ \let\sl=\shortcontsl \let\tt=\shortconttt
\rm
\hyphenpenalty = 10000
\advance\baselineskip by 1pt % Open it up a little.
\def\secentry ##1##2##3##4{}
- \def\unnumbsecentry ##1##2{}
\def\subsecentry ##1##2##3##4##5{}
- \def\unnumbsubsecentry ##1##2{}
\def\subsubsecentry ##1##2##3##4##5##6{}
- \def\unnumbsubsubsecentry ##1##2{}
+ \let\unnumbsecentry = \secentry
+ \let\unnumbsubsecentry = \subsecentry
+ \let\unnumbsubsubsecentry = \subsubsecentry
\openin 1 \jobname.toc
\ifeof 1 \else
\closein 1
@@ -3844,7 +4233,7 @@ width0pt\relax} \fi
\contentsalignmacro % in case @setchapternewpage odd is in effect
\endgroup
\lastnegativepageno = \pageno
- \pageno = \savepageno
+ \global\pageno = \savepageno
}
\let\shortcontents = \summarycontents
@@ -3857,16 +4246,24 @@ width0pt\relax} \fi
% The last argument is the page number.
% The arguments in between are the chapter number, section number, ...
-% Chapter-level things, for both the long and short contents.
+% Chapters, in the main contents.
\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
+%
+% Chapters, in the short toc.
+% See comments in \dochapentry re vbox and related settings.
\def\shortchapentry#1#2#3{%
\tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
}
+% Appendices, in the main contents.
+\def\appendixentry#1#2#3{%
+ \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}}
+%
+% Appendices, in the short toc.
+\let\shortappendixentry = \shortchapentry
+
% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
+% The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter.
% We could simplify the code here by writing out an \appendixentry
% command in the toc file for appendices, instead of using \chapentry
% for both, but it doesn't seem worth it.
@@ -3874,38 +4271,31 @@ width0pt\relax} \fi
\newdimen\shortappendixwidth
%
\def\shortchaplabel#1{%
- % Compute width of word "Appendix", may change with language.
- \setbox0 = \hbox{\shortcontrm \putwordAppendix}%
- \shortappendixwidth = \wd0
- %
- % We typeset #1 in a box of constant width, regardless of the text of
- % #1, so the chapter titles will come out aligned.
- \setbox0 = \hbox{#1}%
- \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
- %
- % This space should be plenty, since a single number is .5em, and the
+ % This space should be enough, since a single number is .5em, and the
% widest letter (M) is 1em, at least in the Computer Modern fonts.
+ % But use \hss just in case.
% (This space doesn't include the extra space that gets added after
% the label; that gets put in by \shortchapentry above.)
- \advance\dimen0 by 1.1em
- \hbox to \dimen0{#1\hfil}%
+ \dimen0 = 1em
+ \hbox to \dimen0{#1\hss}%
}
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
+% Unnumbered chapters.
+\def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}}
+\def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}}
% Sections.
\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
+\def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}}
% Subsections.
\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
+\def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}}
% And subsubsections.
\def\subsubsecentry#1#2#3#4#5#6{%
\dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
+\def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}}
% This parameter controls the indentation of the various levels.
\newdimen\tocindent \tocindent = 3pc
@@ -3946,7 +4336,7 @@ width0pt\relax} \fi
\def\tocentry#1#2{\begingroup
\vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
% Do not use \turnoffactive in these arguments. Since the toc is
- % typeset in cmr, so characters such as _ would come out wrong; we
+ % typeset in cmr, characters such as _ would come out wrong; we
% have to do the usual translation tricks.
\entry{#1}{#2}%
\endgroup}
@@ -3966,36 +4356,27 @@ width0pt\relax} \fi
\message{environments,}
% @foo ... @end foo.
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
% Since these characters are used in examples, it should be an even number of
% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox \newbox\longdblarrowbox
-\newbox\pushcharbox \newbox\bullbox
-\newbox\equivbox \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-% depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
\def\point{$\star$}
\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+% The @error{} command.
% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
{\tentt \global\dimen0 = 3em}% Width of the box.
\dimen2 = .55pt % Thickness of rules
% The text. (`r' is open on the right, `e' somewhat less so on the left.)
\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
+%
\global\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
\advance\hsize by -2\dimen2 % Rules.
@@ -4006,8 +4387,7 @@ width0pt\relax} \fi
\kern3pt\vrule width\dimen2}% Space to right.
\hrule height\dimen2}
\hfil}
-
-% The @error{} command.
+%
\def\error{\leavevmode\lower.7ex\copy\errorbox}
% @tex ... @end tex escapes into raw Tex temporarily.
@@ -4017,14 +4397,14 @@ width0pt\relax} \fi
\def\tex{\begingroup
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
+ \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
\catcode `\%=14
- \catcode 43=12 % plus
- \catcode`\"=12
- \catcode`\==12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
+ \catcode `\+=\other
+ \catcode `\"=\other
+ \catcode `\==\other
+ \catcode `\|=\other
+ \catcode `\<=\other
+ \catcode `\>=\other
\escapechar=`\\
%
\let\b=\ptexb
@@ -4047,9 +4427,9 @@ width0pt\relax} \fi
\def\@{@}%
\let\Etex=\endgroup}
-% Define @lisp ... @endlisp.
+% Define @lisp ... @end lisp.
% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
+% including the definition of @end lisp (which normally is erroneous).
% Amount to narrow the margins by for @lisp.
\newskip\lispnarrowing \lispnarrowing=0.4in
@@ -4078,11 +4458,22 @@ width0pt\relax} \fi
% Make spacing and below environment symmetrical. We use \parskip here
% to help in doing that, since in @example-like environments \parskip
% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
+% start of the next paragraph will insert \parskip.
+%
+\def\aboveenvbreak{{%
+ % =10000 instead of <10000 because of a special case in \itemzzz, 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 \else \penalty-50 \fi
+ \vskip\envskipamount
+ \fi
+ \fi
+}}
\let\afterenvbreak = \aboveenvbreak
@@ -4110,7 +4501,8 @@ width0pt\relax} \fi
%
\newskip\lskip\newskip\rskip
-\long\def\cartouche{%
+\def\cartouche{%
+\par % can't be in the midst of a paragraph.
\begingroup
\lskip=\leftskip \rskip=\rightskip
\leftskip=0pt\rightskip=0pt %we want these *outside*.
@@ -4157,7 +4549,6 @@ width0pt\relax} \fi
\inENV % This group ends at the end of the body
\hfuzz = 12pt % Don't be fussy
\sepspaces % Make spaces be word-separators rather than space tokens.
- \singlespace
\let\par = \lisppar % don't ignore blank lines
\obeylines % each line of input is a line of output
\parskip = 0pt
@@ -4196,27 +4587,16 @@ width0pt\relax} \fi
% @example: Same as @lisp.
\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-% @small... is usually equivalent to the non-small (@smallbook
-% redefines). We must call \example (or whatever) last in the
-% definition, since it reads the return following the @example (or
-% whatever) command.
-%
-% This actually allows (for example) @end display inside an
-% @smalldisplay. Too bad, but makeinfo will catch the error anyway.
-%
-\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display}
-\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format}
-\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts.
+% @smallexample and @smalllisp: use smaller fonts.
% Originally contributed by Pavel@xerox.
-\def\smalllispx{\begingroup
+\def\smalllisp{\begingroup
\def\Esmalllisp{\nonfillfinish\endgroup}%
\def\Esmallexample{\nonfillfinish\endgroup}%
- \smallfonts
+ \smallexamplefonts
\lisp
}
+\let\smallexample = \smalllisp
+
% @display: same as @lisp except keep current font.
%
@@ -4225,12 +4605,12 @@ width0pt\relax} \fi
\let\Edisplay = \nonfillfinish
\gobble
}
-
-% @smalldisplay (when @smallbook): @display plus smaller fonts.
%
-\def\smalldisplayx{\begingroup
+% @smalldisplay: @display plus smaller fonts.
+%
+\def\smalldisplay{\begingroup
\def\Esmalldisplay{\nonfillfinish\endgroup}%
- \smallfonts \rm
+ \smallexamplefonts \rm
\display
}
@@ -4242,12 +4622,12 @@ width0pt\relax} \fi
\let\Eformat = \nonfillfinish
\gobble
}
-
-% @smallformat (when @smallbook): @format plus smaller fonts.
%
-\def\smallformatx{\begingroup
+% @smallformat: @format plus smaller fonts.
+%
+\def\smallformat{\begingroup
\def\Esmallformat{\nonfillfinish\endgroup}%
- \smallfonts \rm
+ \smallexamplefonts \rm
\format
}
@@ -4265,13 +4645,13 @@ width0pt\relax} \fi
\gobble
}
+
% @quotation does normal linebreaking (hence we can't use \nonfillstart)
% and narrows the margins.
%
\def\quotation{%
\begingroup\inENV %This group ends at the end of the @quotation body
{\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \singlespace
\parindent=0pt
% We have retained a nonzero parskip for the environment, since we're
% doing normal filling. So to avoid extra space below the environment...
@@ -4287,23 +4667,257 @@ width0pt\relax} \fi
}
+% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
+% If we want to allow any <char> as delimiter,
+% we need the curly braces so that makeinfo sees the @verb command, eg:
+% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
+%
+% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
+%
+% [Knuth] p.344; only we need to do the other characters Texinfo sets
+% active too. Otherwise, they get lost as the first character on a
+% verbatim line.
+\def\dospecials{%
+ \do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+ \do\<\do\>\do\|\do\@\do+\do\"%
+}
+%
+% [Knuth] p. 380
+\def\uncatcodespecials{%
+ \def\do##1{\catcode`##1=12}\dospecials}
+%
+% [Knuth] pp. 380,381,391
+% Disable Spanish ligatures ?` and !` of \tt font
+\begingroup
+ \catcode`\`=\active\gdef`{\relax\lq}
+\endgroup
+%
+% Setup for the @verb command.
+%
+% Eight spaces for a tab
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+\endgroup
+%
+\def\setupverb{%
+ \tt % easiest (and conventionally used) font for verbatim
+ \def\par{\leavevmode\endgraf}%
+ \catcode`\`=\active
+ \tabeightspaces
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count
+ % must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
+}
+
+% Setup for the @verbatim environment
+%
+% Real tab expansion
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+\def\starttabbox{\setbox0=\hbox\bgroup}
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabexpand{%
+ \catcode`\^^I=\active
+ \def^^I{\leavevmode\egroup
+ \dimen0=\wd0 % the width so far, or since the previous tab
+ \divide\dimen0 by\tabw
+ \multiply\dimen0 by\tabw % compute previous multiple of \tabw
+ \advance\dimen0 by\tabw % advance to next multiple of \tabw
+ \wd0=\dimen0 \box0 \starttabbox
+ }%
+ }
+\endgroup
+\def\setupverbatim{%
+ % Easiest (and conventionally used) font for verbatim
+ \tt
+ \def\par{\leavevmode\egroup\box0\endgraf}%
+ \catcode`\`=\active
+ \tabexpand
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count
+ % must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
+ \everypar{\starttabbox}%
+}
+
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters. Before first delimiter expect a
+% right brace, after last delimiter expect closing brace:
+%
+% \def\doverb'{'<char>#1<char>'}'{#1}
+%
+% [Knuth] p. 382; only eat outer {}
+\begingroup
+ \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12
+ \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+\endgroup
+%
+\def\verb{\begingroup\setupverb\doverb}
+%
+%
+% Do the @verbatim magic: define the macro \doverbatim so that
+% the (first) argument ends when '@end verbatim' is reached, ie:
+%
+% \def\doverbatim#1@end verbatim{#1}
+%
+% For Texinfo it's a lot easier than for LaTeX,
+% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+% we need not redefine '\', '{' and '}'.
+%
+% Inspired by LaTeX's verbatim command set [latex.ltx]
+%% Include LaTeX hack for completeness -- never know
+%% \begingroup
+%% \catcode`|=0 \catcode`[=1
+%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active
+%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[
+%% #1|endgroup|def|Everbatim[]|end[verbatim]]
+%% |endgroup
+%
+\begingroup
+ \catcode`\ =\active
+ \obeylines %
+ % ignore everything up to the first ^^M, that's the newline at the end
+ % of the @verbatim input line itself. Otherwise we get an extra blank
+ % line in the output.
+ \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}%
+\endgroup
+%
+\def\verbatim{%
+ \def\Everbatim{\nonfillfinish\endgroup}%
+ \begingroup
+ \nonfillstart
+ \advance\leftskip by -\defbodyindent
+ \begingroup\setupverbatim\doverbatim
+}
+
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+% Allow normal characters that we make active in the argument (a file name).
+\def\verbatiminclude{%
+ \begingroup
+ \catcode`\\=\other
+ \catcode`~=\other
+ \catcode`^=\other
+ \catcode`_=\other
+ \catcode`|=\other
+ \catcode`<=\other
+ \catcode`>=\other
+ \catcode`+=\other
+ \parsearg\doverbatiminclude
+}
+\def\setupverbatiminclude{%
+ \begingroup
+ \nonfillstart
+ \advance\leftskip by -\defbodyindent
+ \begingroup\setupverbatim
+}
+%
+\def\doverbatiminclude#1{%
+ % Restore active chars for included file.
+ \endgroup
+ \begingroup
+ \let\value=\expandablevalue
+ \def\thisfile{#1}%
+ \expandafter\expandafter\setupverbatiminclude\input\thisfile
+ \endgroup
+ \nonfillfinish
+ \endgroup
+}
+
+% @copying ... @end copying.
+% Save the text away for @insertcopying later. Many commands won't be
+% allowed in this context, but that's ok.
+%
+% We save the uninterpreted tokens, rather than creating a box.
+% Saving the text in a box would be much easier, but then all the
+% 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.
+%
+\def\copying{\begingroup
+ % Define a command to swallow text until we reach `@end copying'.
+ % \ is the escape char in this texinfo.tex file, so it is the
+ % delimiter for the command; @ will be the escape char when we read
+ % it, but that doesn't matter.
+ \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}%
+ %
+ % We must preserve ^^M's in the input file; see \insertcopying below.
+ \catcode`\^^M = \active
+ \docopying
+}
+
+% What we do to finish off the copying text.
+%
+\def\enddocopying{\endgroup\ignorespaces}
+
+% @insertcopying. Here we must play games with ^^M's. On the one hand,
+% we need them to delimit commands such as `@end quotation', so they
+% must be active. On the other hand, we certainly don't want every
+% end-of-line to be a \par, as would happen with the normal active
+% definition of ^^M. On the third hand, two ^^M's in a row should still
+% generate a \par.
+%
+% Our approach is to make ^^M insert a space and a penalty1 normally;
+% then it can also check if \lastpenalty=1. If it does, then manually
+% do \par.
+%
+% This messes up the normal definitions of @c[omment], so we redefine
+% it. Similarly for @ignore. (These commands are used in the gcc
+% manual for man page generation.)
+%
+% Seems pretty fragile, most line-oriented commands will presumably
+% fail, but for the limited use of getting the copying text (which
+% should be quite simple) inserted, we can hope it's ok.
+%
+{\catcode`\^^M=\active %
+\gdef\insertcopying{\begingroup %
+ \parindent = 0pt % looks wrong on title page
+ \def^^M{%
+ \ifnum \lastpenalty=1 %
+ \par %
+ \else %
+ \space \penalty 1 %
+ \fi %
+ }%
+ %
+ % Fix @c[omment] for catcode 13 ^^M's.
+ \def\c##1^^M{\ignorespaces}%
+ \let\comment = \c %
+ %
+ % Don't bother jumping through all the hoops that \doignore does, it
+ % would be very hard since the catcodes are already set.
+ \long\def\ignore##1\end ignore{\ignorespaces}%
+ %
+ \copyingtext %
+\endgroup}%
+}
+
\message{defuns,}
% @defun etc.
% Allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
+\def\setdeffont#1 {\csname DEF#1\endcsname}
\newskip\defbodyindent \defbodyindent=.4in
\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
\newskip\deflastargmargin \deflastargmargin=18pt
\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
+
+% We want ()&[] to print specially on the defun line.
+%
\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
+ \catcode`\(=\active \catcode`\)=\active
+ \catcode`\&=\active
+ \catcode`\[=\active \catcode`\]=\active
+}
% Make control sequences which act like normal parenthesis chars.
\let\lparen = ( \let\rparen = )
@@ -4350,88 +4964,124 @@ width0pt\relax} \fi
% Active &'s sneak into the index arguments, so make sure it's defined.
{
- \catcode`& = 13
+ \catcode`& = \active
\global\let& = \ampnr
}
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\noindent
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2
-\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
+% \defname, which formats the name of the @def (not the args).
+% #1 is the function name.
+% #2 is the type of definition, such as "Function".
+%
+\def\defname#1#2{%
+ % How we'll output the type name. Putting it in brackets helps
+ % distinguish it from the body text that may end up on the next line
+ % just below it.
+ \ifempty{#2}%
+ \def\defnametype{}%
+ \else
+ \def\defnametype{[\rm #2]}%
+ \fi
+ %
+ % Get the values of \leftskip and \rightskip as they were outside the @def...
+ \dimen2=\leftskip
+ \advance\dimen2 by -\defbodyindent
+ %
+ % Figure out values for the paragraph shape.
+ \setbox0=\hbox{\hskip \deflastargmargin{\defnametype}}%
+ \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
+ \dimen1=\hsize \advance \dimen1 by -\defargsindent % size for continuations
+ \parshape 2 0in \dimen0 \defargsindent \dimen1
+ %
+ % Output arg 2 ("Function" or some such) but stuck inside a box of
+ % width 0 so it does not interfere with linebreaking.
+ \noindent
+ %
+ {% Adjust \hsize to exclude the ambient margins,
+ % so that \rightline will obey them.
+ \advance \hsize by -\dimen2
+ \dimen3 = 0pt % was -1.25pc
+ \rlap{\rightline{\defnametype\kern\dimen3}}%
+ }%
+ %
+ % Allow all lines to be underfull without complaint:
+ \tolerance=10000 \hbadness=10000
+ \advance\leftskip by -\defbodyindent
+ \exdentamount=\defbodyindent
+ {\df #1}\enskip % output function name
+ % \defunargs will be called next to output the arguments, if any.
+}
+% Common pieces to start any @def...
% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
+% #2 is the \...x control sequence (which our caller defines).
+% #3 is the control sequence to process the header, such as \defunheader.
+%
+\def\parsebodycommon#1#2#3{%
+ \begingroup\inENV
+ % If there are two @def commands in a row, we'll have a \nobreak,
+ % which is there to keep the function description together with its
+ % header. But if there's nothing but headers, we want to allow a
+ % break after all. Check for penalty 10002 (inserted by
+ % \defargscommonending) instead of 10000, since the sectioning
+ % commands insert a \penalty10000, and we don't want to allow a break
+ % between a section heading and a defun.
+ \ifnum\lastpenalty=10002 \penalty0 \fi
+ \medbreak
+ %
+ % Define the \E... end token that this defining construct specifies
+ % so that it will exit this group.
+ \def#1{\endgraf\endgroup\medbreak}%
+ %
+ \parindent=0in
+ \advance\leftskip by \defbodyindent
+ \exdentamount=\defbodyindent
+}
+
+% Common part of the \...x definitions.
+%
+\def\defxbodycommon{%
+ % As with \parsebodycommon above, allow line break if we have multiple
+ % x headers in a row. It's not a great place, though.
+ \ifnum\lastpenalty=10000 \penalty1000 \fi
+ %
+ \begingroup\obeylines
+}
+
+% Process body of @defun, @deffn, @defmac, etc.
+%
+\def\defparsebody#1#2#3{%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2{\defxbodycommon \activeparens \spacesplit#3}%
+ \catcode\equalChar=\active
+ \begingroup\obeylines\activeparens
+ \spacesplit#3%
+}
+
+% #1, #2, #3 are the common arguments (see \parsebodycommon above).
% #4, delimited by the space, is the class name.
%
-\def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
+\def\defmethparsebody#1#2#3#4 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}}%
+ \begingroup\obeylines\activeparens
+ % The \empty here prevents misinterpretation of a construct such as
+ % @deffn {whatever} {Enharmonic comma}
+ % See comments at \deftpparsebody, although in our case we don't have
+ % to remove the \empty afterwards, since it is empty.
+ \spacesplit{#3{#4}}\empty
+}
% Used for @deftypemethod and @deftypeivar.
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
+% #1, #2, #3 are the common arguments (see \defparsebody).
% #4, delimited by a space, is the class name.
% #5 is the method's return type.
%
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV
- \medbreak
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
+\def\deftypemethparsebody#1#2#3#4 #5 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}}%
+ \begingroup\obeylines\activeparens
+ \spacesplit{#3{#4}{#5}}%
+}
% Used for @deftypeop. The change from \deftypemethparsebody is an
% extra argument at the beginning which is the `category', instead of it
@@ -4440,64 +5090,48 @@ width0pt\relax} \fi
% input at hand. Thus also need a control sequence (passed as #5) for
% the \E... definition to assign the category name to.
%
-\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV
- \medbreak
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 ##3 {%
- \def#4{##1}%
- \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
+\def\deftypeopparsebody#1#2#3#4#5 #6 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 ##3 {\def#4{##1}%
+ \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}}%
+ \begingroup\obeylines\activeparens
+ \spacesplit{#3{#5}{#6}}%
+}
+
+% For @defop.
+\def\defopparsebody #1#2#3#4#5 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 {\def#4{##1}%
+ \defxbodycommon \activeparens \spacesplit{#3{##2}}}%
+ \begingroup\obeylines\activeparens
+ \spacesplit{#3{#5}}%
+}
% These parsing functions are similar to the preceding ones
% except that they do not make parens into active characters.
% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody. It could probably be used for
-% some of the others, too, with some judicious conditionals.
%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV %
- \medbreak %
- % Define the end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
+\def\defvarparsebody #1#2#3{%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2{\defxbodycommon \spacesplit#3}%
+ \catcode\equalChar=\active
+ \begingroup\obeylines
+ \spacesplit#3%
+}
+
+% @defopvar.
+\def\defopvarparsebody #1#2#3#4#5 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 {\def#4{##1}%
+ \defxbodycommon \spacesplit{#3{##2}}}%
\begingroup\obeylines
+ \spacesplit{#3{#5}}%
}
\def\defvrparsebody#1#2#3#4 {%
\parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}%
+ \begingroup\obeylines
\spacesplit{#3{#4}}%
}
@@ -4512,6 +5146,8 @@ width0pt\relax} \fi
%
\def\deftpparsebody #1#2#3#4 {%
\parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}%
+ \begingroup\obeylines
\spacesplit{\parsetpheaderline{#3{#4}}}\empty
}
@@ -4528,38 +5164,37 @@ width0pt\relax} \fi
#1{\removeemptybraces#2\relax}{#3}%
}%
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
+% Split up #2 (the rest of the input line) at the first space token.
% call #1 with two arguments:
% the first is all of #2 before the space token,
% the second is all of #2 after that space token.
% If #2 contains no space token, all of it is passed as the first arg
% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
+%
+{\obeylines %
+ \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx}%
+ \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{%
+ \ifx\relax #3%
+ #1{#2}{}%
+ \else %
+ #1{#2}{#3#4}%
+ \fi}%
+}
% Define @defun.
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
+% This is called to end the arguments processing for all the @def... commands.
+%
+\def\defargscommonending{%
+ \interlinepenalty = 10000
+ \advance\rightskip by 0pt plus 1fil
+ \endgraf
+ \nobreak\vskip -\parskip
+ \penalty 10002 % signal to \parsebodycommon.
+}
+% This expands the args and terminates the paragraph they comprise.
+%
\def\defunargs#1{\functionparens \sl
% Expand, preventing hyphenation at `-' chars.
% Note that groups don't affect changes in \hyphenchar.
@@ -4568,9 +5203,7 @@ width0pt\relax} \fi
#1%
{\tensl\hyphenchar\font=45}%
\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
+ \defargscommonending
}
\def\deftypefunargs #1{%
@@ -4579,9 +5212,7 @@ width0pt\relax} \fi
% Use \boldbraxnoamp, not \functionparens, so that & is not special.
\boldbraxnoamp
\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
+ \defargscommonending
}
% Do complete processing of one @defun or @defunx line already parsed.
@@ -4592,7 +5223,7 @@ width0pt\relax} \fi
\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defun == @deffn Function
@@ -4602,7 +5233,7 @@ width0pt\relax} \fi
\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
\begingroup\defname {#1}{\putwordDeffunc}%
\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @deftypefun int foobar (int @var{foo}, float @var{bar})
@@ -4614,18 +5245,18 @@ width0pt\relax} \fi
% #1 is the data type, #2 the name, #3 the args.
\def\deftypefunheaderx #1#2 #3\relax{%
\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}%
+\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}%
\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-% \defheaderxcond#1\relax$$$
+% \defheaderxcond#1\relax$.$
% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
+\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi}
% #1 is the classification. #2 is the data type. #3 is the name and args.
\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
@@ -4635,9 +5266,9 @@ width0pt\relax} \fi
\begingroup
\normalparens % notably, turn off `&' magic, which prevents
% at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
+\defname {\defheaderxcond#2\relax$.$#3}{#1}%
\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defmac == @deffn Macro
@@ -4647,7 +5278,7 @@ width0pt\relax} \fi
\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
\begingroup\defname {#1}{\putwordDefmac}%
\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defspec == @deffn Special Form
@@ -4657,7 +5288,7 @@ width0pt\relax} \fi
\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
\begingroup\defname {#1}{\putwordDefspec}%
\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defop CATEGORY CLASS OPERATION ARG...
@@ -4666,9 +5297,11 @@ width0pt\relax} \fi
\defopparsebody\Edefop\defopx\defopheader\defoptype}
%
\def\defopheader#1#2#3{%
-\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}%
-\defunargs {#3}\endgroup %
+ \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% function index entry
+ \begingroup
+ \defname{#2}{\defoptype\ \putwordon\ #1}%
+ \defunargs{#3}%
+ \endgroup
}
% @deftypeop CATEGORY CLASS TYPE OPERATION ARG...
@@ -4681,7 +5314,7 @@ width0pt\relax} \fi
\def\deftypeopheader#1#2#3#4{%
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
\begingroup
- \defname{\defheaderxcond#2\relax$$$#3}
+ \defname{\defheaderxcond#2\relax$.$#3}
{\deftypeopcategory\ \putwordon\ \code{#1}}%
\deftypefunargs{#4}%
\endgroup
@@ -4696,7 +5329,7 @@ width0pt\relax} \fi
\def\deftypemethodheader#1#2#3#4{%
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
\begingroup
- \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
+ \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}%
\deftypefunargs{#4}%
\endgroup
}
@@ -4710,7 +5343,8 @@ width0pt\relax} \fi
\def\deftypeivarheader#1#2#3{%
\dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
\begingroup
- \defname{#3}{\putwordInstanceVariableof\ \code{#1}}%
+ \defname{\defheaderxcond#2\relax$.$#3}
+ {\putwordInstanceVariableof\ \code{#1}}%
\defvarargs{#3}%
\endgroup
}
@@ -4734,9 +5368,11 @@ width0pt\relax} \fi
\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}%
-\defvarargs {#3}\endgroup %
+ \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% variable index entry
+ \begingroup
+ \defname{#2}{\defcvtype\ \putwordof\ #1}%
+ \defvarargs{#3}%
+ \endgroup
}
% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME
@@ -4744,7 +5380,7 @@ width0pt\relax} \fi
\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
%
\def\defivarheader#1#2#3{%
- \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index
+ \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% entry in var index
\begingroup
\defname{#2}{\putwordInstanceVariableof\ #1}%
\defvarargs{#3}%
@@ -4756,8 +5392,8 @@ width0pt\relax} \fi
% This is actually simple: just print them in roman.
% This must expand the args and terminate the paragraph they make up
\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak}
+ \defargscommonending
+}
% @defvr Counter foo-count
@@ -4792,9 +5428,8 @@ width0pt\relax} \fi
% is actually part of the data type, which should not be put into the index.
\def\deftypevarheader #1#2{%
\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
+\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}%
+ \defargscommonending
\endgroup}
\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
@@ -4803,9 +5438,8 @@ width0pt\relax} \fi
\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
+\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1}
+ \defargscommonending
\endgroup}
% Now define @deftp
@@ -4854,7 +5488,7 @@ width0pt\relax} \fi
\def\scanmacro#1{%
\begingroup \newlinechar`\^^M
% Undo catcode changes of \startcontents and \doprintindex
- \catcode`\@=0 \catcode`\\=12 \escapechar=`\@
+ \catcode`\@=0 \catcode`\\=\other \escapechar=`\@
% Append \endinput to make sure that TeX does not see the ending newline.
\toks0={#1\endinput}%
\immediate\openout\macscribble=\jobname.tmp
@@ -4868,7 +5502,7 @@ width0pt\relax} \fi
\def\scanmacro#1{%
\begingroup \newlinechar`\^^M
% Undo catcode changes of \startcontents and \doprintindex
-\catcode`\@=0 \catcode`\\=12 \escapechar=`\@
+\catcode`\@=0 \catcode`\\=\other \escapechar=`\@
\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup}
\fi
@@ -4898,7 +5532,7 @@ width0pt\relax} \fi
}
% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=12\catcode`\Q=3%
+{\catcode`\^^M=\other \catcode`\Q=3%
\gdef\eatcr #1{\eatcra #1Q^^MQ}%
\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
\gdef\eatcrb#1Q#2Q{#1}%
@@ -4913,29 +5547,29 @@ width0pt\relax} \fi
% body, and then making it the \newlinechar in \scanmacro.
\def\macrobodyctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\{=12
- \catcode`\}=12
- \catcode`\@=12
- \catcode`\^^M=12
+ \catcode`\~=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\+=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\@=\other
+ \catcode`\^^M=\other
\usembodybackslash}
\def\macroargctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\@=12
- \catcode`\\=12}
+ \catcode`\~=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\+=\other
+ \catcode`\@=\other
+ \catcode`\\=\other}
% \mbodybackslash is the definition of \ in @macro bodies.
% It maps \foo\ => \csname macarg.foo\endcsname => #N
@@ -4963,7 +5597,7 @@ width0pt\relax} \fi
\message{Warning: redefining \the\macname}%
\else
\expandafter\ifx\csname \the\macname\endcsname \relax
- \else \errmessage{The name \the\macname\space is reserved}\fi
+ \else \errmessage{Macro name \the\macname\space already defined}\fi
\global\cslet{macsave.\the\macname}{\the\macname}%
\global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
% Add the macroname to \macrolist
@@ -4976,32 +5610,33 @@ width0pt\relax} \fi
\else \expandafter\parsemacbody
\fi}
-\def\unmacro{\parsearg\unmacroxxx}
-\def\unmacroxxx#1{%
+\def\unmacro{\parsearg\dounmacro}
+\def\dounmacro#1{%
\if1\csname ismacro.#1\endcsname
\global\cslet{#1}{macsave.#1}%
\global\expandafter\let \csname ismacro.#1\endcsname=0%
- % Remove the macro name from \macrolist
+ % Remove the macro name from \macrolist:
\begingroup
- \edef\tempa{\expandafter\noexpand\csname#1\endcsname}%
- \def\do##1{%
- \def\tempb{##1}%
- \ifx\tempa\tempb
- % remove this
- \else
- \toks0 = \expandafter{\newmacrolist\do}%
- \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}%
- \fi}%
- \def\newmacrolist{}%
- % Execute macro list to define \newmacrolist
- \macrolist
- \global\let\macrolist\newmacrolist
+ \expandafter\let\csname#1\endcsname \relax
+ \let\do\unmacrodo
+ \xdef\macrolist{\macrolist}%
\endgroup
\else
\errmessage{Macro #1 not defined}%
\fi
}
+% Called by \do from \dounmacro on each macro. The idea is to omit any
+% macro definitions that have been changed to \relax.
+%
+\def\unmacrodo#1{%
+ \ifx#1\relax
+ % remove this
+ \else
+ \noexpand\do \noexpand #1%
+ \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.
@@ -5184,15 +5819,23 @@ width0pt\relax} \fi
\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
-% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
-% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have
-% to set \indexdummies so commands such as @code in a section title
-% aren't expanded. It would be nicer not to expand the titles in the
-% first place, but there's so many layers that that is hard to do.
+% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+% anchor), namely NAME-title (the corresponding @chapter/etc. name),
+% NAME-pg (the page number), and NAME-snt (section number and type).
+% Called from \foonoderef.
+%
+% We have to set \indexdummies so commands such as @code in a section
+% title aren't expanded. It would be nicer not to expand the titles in
+% the first place, but there's so many layers that that is hard to do.
%
+% Likewise, use \turnoffactive so that punctuation chars such as underscore
+% and backslash work in node names.
+%
\def\setref#1#2{{%
- \indexdummies
+ \atdummies
\pdfmkdest{#1}%
+ %
+ \turnoffactive
\dosetq{#1-title}{Ytitle}%
\dosetq{#1-pg}{Ypagenumber}%
\dosetq{#1-snt}{#2}%
@@ -5244,13 +5887,15 @@ width0pt\relax} \fi
\ifpdf
\leavevmode
\getfilename{#4}%
- \ifnum\filenamelength>0
- \startlink attr{/Border [0 0 0]}%
- goto file{\the\filename.pdf} name{#1@}%
- \else
- \startlink attr{/Border [0 0 0]}%
- goto name{#1@}%
- \fi
+ {\turnoffactive \otherbackslash
+ \ifnum\filenamelength>0
+ \startlink attr{/Border [0 0 0]}%
+ goto file{\the\filename.pdf} name{#1}%
+ \else
+ \startlink attr{/Border [0 0 0]}%
+ goto name{#1}%
+ \fi
+ }%
\linkcolor
\fi
%
@@ -5262,7 +5907,7 @@ width0pt\relax} \fi
% into the usual \leavevmode...\vrule stuff for purposes of
% printing. So we \turnoffactive for the \refx-snt, back on for the
% printing, back off for the \refx-pg.
- {\normalturnoffactive
+ {\turnoffactive \otherbackslash
% Only output a following space if the -snt ref is nonempty; for
% @unnumbered and @anchor, it won't be.
\setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
@@ -5271,73 +5916,74 @@ width0pt\relax} \fi
% [mynode],
[\printednodename],\space
% page 3
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
\fi
\endlink
\endgroup}
-% \dosetq is the interface for calls from other macros
-
-% Use \normalturnoffactive so that punctuation chars such as underscore
-% and backslash work in node names. (\turnoffactive doesn't do \.)
+% \dosetq is called from \setref to do the actual \write (\iflinks).
+%
\def\dosetq#1#2{%
{\let\folio=0%
- \normalturnoffactive
\edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
- \iflinks
- \next
- \fi
+ \iflinks \next \fi
}%
}
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
+% \internalsetq{foo}{page} expands into
+% CHARACTERS @xrdef{foo}{...expansion of \page...}
+\def\internalsetq#1#2{@xrdef{#1}{\csname #2\endcsname}}
+% Things to be expanded by \internalsetq.
+%
\def\Ypagenumber{\folio}
-
\def\Ytitle{\thissection}
-
\def\Ynothing{}
-
\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
+ \ifnum\secno=0
+ \putwordChapter@tie \the\chapno
+ \else \ifnum\subsecno=0
+ \putwordSection@tie \the\chapno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
+ \ifnum\secno=0
+ \putwordAppendix@tie @char\the\appendixno{}%
+ \else \ifnum\subsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie
+ @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
% Use TeX 3.0's \inputlineno to get the line number, for better error
% messages, but if we're using an old version of TeX, don't do anything.
%
\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Non-3.0.
+ \let\linenumber = \empty % Pre-3.0.
\else
\def\linenumber{\the\inputlineno:\space}
\fi
% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
% If its value is nonempty, SUFFIX is output afterward.
-
+%
\def\refx#1#2{%
- \expandafter\ifx\csname X#1\endcsname\relax
+ {%
+ \indexnofonts
+ \otherbackslash
+ \expandafter\global\expandafter\let\expandafter\thisrefX
+ \csname X#1\endcsname
+ }%
+ \ifx\thisrefX\relax
% If not defined, say something at least.
\angleleft un\-de\-fined\angleright
\iflinks
@@ -5352,19 +5998,14 @@ width0pt\relax} \fi
\fi
\else
% It's defined, so just use it.
- \csname X#1\endcsname
+ \thisrefX
\fi
#2% Output the suffix in any case.
}
% This is the macro invoked by entries in the aux file.
%
-\def\xrdef#1{\begingroup
- % Reenable \ as an escape while reading the second argument.
- \catcode`\\ = 0
- \afterassignment\endgroup
- \expandafter\gdef\csname X#1\endcsname
-}
+\def\xrdef#1{\expandafter\gdef\csname X#1\endcsname}
% Read the last existing aux file, if any. No error if none exists.
\def\readauxfile{\begingroup
@@ -5395,9 +6036,7 @@ width0pt\relax} \fi
\catcode`\^^]=\other
\catcode`\^^^=\other
\catcode`\^^_=\other
- \catcode`\@=\other
- \catcode`\^=\other
- % It was suggested to define this as 7, which would allow ^^e4 etc.
+ % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
% in xref tags, i.e., node names. But since ^^e4 notation isn't
% supported in the main text, it doesn't seem desirable. Furthermore,
% that is not enough: for node names that actually contain a ^
@@ -5410,6 +6049,9 @@ width0pt\relax} \fi
% \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
% and then to call \auxhat in \setq.
%
+ \catcode`\^=\other
+ %
+ % Special characters. Should be turned off anyway, but...
\catcode`\~=\other
\catcode`\[=\other
\catcode`\]=\other
@@ -5421,7 +6063,9 @@ width0pt\relax} \fi
\catcode`\$=\other
\catcode`\#=\other
\catcode`\&=\other
+ \catcode`\%=\other
\catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+ %
% Make the characters 128-255 be printing characters
{%
\count 1=128
@@ -5431,17 +6075,18 @@ width0pt\relax} \fi
\ifnum \count 1<256 \loop \fi
}%
}%
- % The aux file uses ' as the escape (for now).
+ %
% Turn off \ as an escape so we do not lose on
% entries which were dumped with control sequences in their names.
- % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
+ % For example, @xrdef{$\leq $-fun}{page ...} made by @defun ^^
% Reference to such entries still does not work the way one would wish,
% but at least they do not bomb out when the aux file is read in.
+ \catcode`\\=\other
+ %
+ % @ is our escape character in .aux files.
\catcode`\{=1
\catcode`\}=2
- \catcode`\%=\other
- \catcode`\'=0
- \catcode`\\=\other
+ \catcode`\@=0
%
\openin 1 \jobname.aux
\ifeof 1 \else
@@ -5486,7 +6131,7 @@ width0pt\relax} \fi
% Remove inadvertent blank space before typesetting the footnote number.
\unskip
\thisfootno\@sf
- \footnotezzz
+ \dofootnote
}%
% Don't bother with the trickery in plain.tex to not require the
@@ -5496,10 +6141,17 @@ width0pt\relax} \fi
% \parseargline fail inside footnotes because the tokens are fixed when
% the footnote is read. --karl, 16nov96.
%
-\long\gdef\footnotezzz{\insert\footins\bgroup
+% The start of the footnote looks usually like this:
+\gdef\startfootins{\insert\footins\bgroup}
+%
+% ... but this macro is redefined inside @multitable.
+%
+\gdef\dofootnote{%
+ \startfootins
% 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.
+ \hsize=\pagewidth
\interlinepenalty\interfootnotelinepenalty
\splittopskip\ht\strutbox % top baseline for broken footnotes
\splitmaxdepth\dp\strutbox
@@ -5512,8 +6164,15 @@ width0pt\relax} \fi
%
\smallfonts \rm
%
- % Hang the footnote text off the number.
- \hang
+ % Because we use hanging indentation in footnotes, a @noindent appears
+ % to exdent this text, so make it be a no-op. makeinfo does not use
+ % hanging indentation so @noindent can still be needed within footnote
+ % text after an @example or the like (not that this is good style).
+ \let\noindent = \relax
+ %
+ % Hang the footnote text off the number. Use \everypar in case the
+ % footnote extends for more than one paragraph.
+ \everypar = {\hang}%
\textindent{\thisfootno}%
%
% Don't crash into the line above the footnote text. Since this
@@ -5522,32 +6181,8 @@ width0pt\relax} \fi
\footstrut
\futurelet\next\fo@t
}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\par\egroup}
-
}%end \catcode `\@=11
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly. There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
- \normalbaselineskip = #1\relax
- \normallineskip = \lineskipfactor\normalbaselineskip
- \normalbaselines
- \setbox\strutbox =\hbox{%
- \vrule width0pt height\strutheightpercent\baselineskip
- depth \strutdepthpercent \baselineskip
- }%
-}
-
% @| inserts a changebar to the left of the current line. It should
% surround any changed text. This approach does *not* work if the
% change spans more than two lines of output. To handle that, we would
@@ -5592,8 +6227,8 @@ width0pt\relax} \fi
\openin 1 = epsf.tex
\ifeof 1 \else
\closein 1
- % Do not bother showing banner with post-v2.7 epsf.tex (available in
- % doc/epsf.tex until it shows up on ctan).
+ % Do not bother showing banner with epsf.tex v2.7k (available in
+ % doc/epsf.tex and on ctan).
\def\epsfannounce{\toks0 = }%
\input epsf.tex
\fi
@@ -5612,40 +6247,44 @@ width0pt\relax} \fi
\global\warnednoepsftrue
\fi
\else
- \imagexxx #1,,,\finish
+ \imagexxx #1,,,,,\finish
\fi
}
%
% Arguments to @image:
% #1 is (mandatory) image filename; we tack on .eps extension.
% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
+% #4 is (ignored optional) html alt text.
+% #5 is (ignored optional) extension.
+% #6 is just the usual extra ignored arg for parsing this stuff.
+\newif\ifimagevmode
+\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
+ % If the image is by itself, center it.
+ \ifvmode
+ \imagevmodetrue
+ \nobreak\bigskip
+ % Usually we'll have text after the image which will insert
+ % \parskip glue, so insert it here too to equalize the space
+ % above and below.
+ \nobreak\vskip\parskip
+ \nobreak
+ \line\bgroup\hss
+ \fi
+ %
+ % Output the image.
\ifpdf
- \centerline{\dopdfimage{#1}{#2}{#3}}%
+ \dopdfimage{#1}{#2}{#3}%
\else
% \epsfbox itself resets \epsf?size at each figure.
\setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
\setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
- \begingroup
- \catcode`\^^M = 5 % in case we're inside an example
- % If the image is by itself, center it.
- \ifvmode
- \nobreak\bigskip
- % Usually we'll have text after the image which will insert
- % \parskip glue, so insert it here too to equalize the space
- % above and below.
- \nobreak\vskip\parskip
- \nobreak
- \centerline{\epsfbox{#1.eps}}%
- \bigbreak
- \else
- % In the middle of a paragraph, no extra space.
- \epsfbox{#1.eps}%
- \fi
- \endgroup
+ \epsfbox{#1.eps}%
\fi
-}
+ %
+ \ifimagevmode \hss \egroup \bigbreak \fi % space after the image
+\endgroup}
\message{localization,}
@@ -5714,10 +6353,13 @@ should work if nowhere else does.}
}
% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can
-% set \parskip and call \setleading for \baselineskip.
+% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8)
+% physical page width.
+%
+% We also call \setleading{\textleading}, so the caller should define
+% \textleading. The caller should also set \parskip.
%
-\def\internalpagesizes#1#2#3#4#5#6{%
+\def\internalpagesizes#1#2#3#4#5#6#7#8{%
\voffset = #3\relax
\topskip = #6\relax
\splittopskip = \topskip
@@ -5736,6 +6378,13 @@ should work if nowhere else does.}
\normaloffset = #4\relax
\bindingoffset = #5\relax
%
+ \ifpdf
+ \pdfpageheight #7\relax
+ \pdfpagewidth #8\relax
+ \fi
+ %
+ \setleading{\textleading}
+ %
\parindent = \defaultparindent
\setemergencystretch
}
@@ -5743,61 +6392,99 @@ should work if nowhere else does.}
% @letterpaper (the default).
\def\letterpaper{{\globaldefs = 1
\parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
+ \textleading = 13.2pt
%
% If page is nothing but text, make it come out even.
- \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}%
+ \internalpagesizes{46\baselineskip}{6in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{36pt}%
+ {11in}{8.5in}%
}}
% Use @smallbook to reset parameters for 7x9.5 (or so) format.
\def\smallbook{{\globaldefs = 1
\parskip = 2pt plus 1pt
- \setleading{12pt}%
+ \textleading = 12pt
%
- \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}%
+ \internalpagesizes{7.5in}{5in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{16pt}%
+ {9.25in}{7in}%
%
\lispnarrowing = 0.3in
\tolerance = 700
\hfuzz = 1pt
\contentsrightmargin = 0pt
- \deftypemargin = 0pt
\defbodyindent = .5cm
- %
- \let\smalldisplay = \smalldisplayx
- \let\smallexample = \smalllispx
- \let\smallformat = \smallformatx
- \let\smalllisp = \smalllispx
}}
% Use @afourpaper to print on European A4 paper.
\def\afourpaper{{\globaldefs = 1
- \setleading{12pt}%
\parskip = 3pt plus 2pt minus 1pt
+ \textleading = 13.2pt
%
- \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%
+ % Double-side printing via postscript on Laserjet 4050
+ % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+ % To change the settings for a different printer or situation, adjust
+ % \normaloffset until the front-side and back-side texts align. Then
+ % do the same for \bindingoffset. You can set these for testing in
+ % your texinfo source file like this:
+ % @tex
+ % \global\normaloffset = -6mm
+ % \global\bindingoffset = 10mm
+ % @end tex
+ \internalpagesizes{51\baselineskip}{160mm}
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{44pt}%
+ {297mm}{210mm}%
%
\tolerance = 700
\hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 5mm
}}
-% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex{{\globaldefs = 1
- \setleading{13.6pt}%
+% Use @afivepaper to print on European A5 paper.
+% From romildo@urano.iceb.ufop.br, 2 July 2000.
+% He also recommends making @example and @lisp be small.
+\def\afivepaper{{\globaldefs = 1
+ \parskip = 2pt plus 1pt minus 0.1pt
+ \textleading = 12.5pt
+ %
+ \internalpagesizes{160mm}{120mm}%
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{8pt}%
+ {210mm}{148mm}%
%
+ \lispnarrowing = 0.2in
+ \tolerance = 800
+ \hfuzz = 1.2pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 2mm
+ \tableindent = 12mm
+}}
+
+% A specific text layout, 24x15cm overall, intended for A4 paper.
+\def\afourlatex{{\globaldefs = 1
\afourpaper
- \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
+ \internalpagesizes{237mm}{150mm}%
+ {\voffset}{4.6mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
%
+ % Must explicitly reset to 0 because we call \afourpaper.
\globaldefs = 0
}}
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{%
+% Use @afourwide to print on A4 paper in landscape format.
+\def\afourwide{{\globaldefs = 1
\afourpaper
- \internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
- %
+ \internalpagesizes{241mm}{165mm}%
+ {\voffset}{-2.95mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
\globaldefs = 0
-}
+}}
% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
% Perhaps we should allow setting the margins, \topskip, \parskip,
@@ -5810,9 +6497,18 @@ should work if nowhere else does.}
\globaldefs = 1
%
\parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
+ \setleading{\textleading}%
+ %
+ \dimen0 = #1
+ \advance\dimen0 by \voffset
%
- \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}%
+ \dimen2 = \hsize
+ \advance\dimen2 by \normaloffset
+ %
+ \internalpagesizes{#1}{\hsize}%
+ {\voffset}{\normaloffset}%
+ {\bindingoffset}{44pt}%
+ {\dimen0}{\dimen2}%
}}
% Set default to letter.
@@ -5840,7 +6536,7 @@ should work if nowhere else does.}
\def\normalless{<}
\def\normalgreater{>}
\def\normalplus{+}
-\def\normaldollar{$}
+\def\normaldollar{$}%$ font-lock fix
% This macro is used to make a character print one way in ttfont
% where it can probably just be output, and another way in other fonts,
@@ -5876,7 +6572,7 @@ should work if nowhere else does.}
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
+\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
\catcode`\|=\active
\def|{{\tt\char124}}
@@ -5889,9 +6585,7 @@ should work if nowhere else does.}
\catcode`\+=\active
\def+{{\tt \char 43}}
\catcode`\$=\active
-\def${\ifusingit{{\sl\$}}\normaldollar}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
+\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
% Set up an active definition for =, but don't enable it most of the time.
{\catcode`\==\active
@@ -5908,44 +6602,46 @@ should work if nowhere else does.}
\catcode`\@=0
-% \rawbackslashxx output one backslash character in current font
+% \rawbackslashxx outputs one backslash character in current font,
+% as in \char`\\.
\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
+% \rawbackslash defines an active \ to do \rawbackslashxx.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
+ @gdef@rawbackslash{@let\=@rawbackslashxx}
+ @gdef@otherbackslash{@let\=@realbackslash}
+}
+
+% \realbackslash is an actual character `\' with catcode other.
+{\catcode`\\=\other @gdef@realbackslash{\}}
% \normalbackslash outputs one backslash in fixed width font.
\def\normalbackslash{{\tt\rawbackslashxx}}
-% \catcode 17=0 % Define control-q
\catcode`\\=\active
% Used sometimes to turn off (effectively) the active characters
% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}
+@def@turnoffactive{%
+ @let"=@normaldoublequote
+ @let\=@realbackslash
+ @let~=@normaltilde
+ @let^=@normalcaret
+ @let_=@normalunderscore
+ @let|=@normalverticalbar
+ @let<=@normalless
+ @let>=@normalgreater
+ @let+=@normalplus
+ @let$=@normaldollar %$ font-lock fix
+}
+
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'. (Thus, \ is not expandable when this is in
+% effect.)
+%
+@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
% Make _ and + \other characters, temporarily.
% This is canceled by @fixbackslash.
diff --git a/doc/version.texi b/doc/version.texi
new file mode 100644
index 0000000..0beb276
--- /dev/null
+++ b/doc/version.texi
@@ -0,0 +1,10 @@
+@ignore
+Copyright (C) 1988-2004 Free Software Foundation, Inc.
+@end ignore
+
+@set EDITION 5.0
+@set VERSION 5.0
+@set UPDATED 28 January 2004
+@set UPDATED-MONTH January 2004
+
+@set LASTCHANGE Wed Jan 28 15:46:54 EST 2004
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 72c9904..f1b2434 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -50,7 +50,7 @@ TERMCAP_LIB = @TERMCAP_LIB@
$(CC) $(CCFLAGS) -c $<
EXECUTABLES = fileman rltest rl rlcat rlversion histexamp
-OBJECTS = fileman.o rltest.o rl.o rlversion.o histexamp.o
+OBJECTS = fileman.o rltest.o rl.o rlcat.o rlversion.o histexamp.o
all: $(EXECUTABLES)
everything: all rlfe
diff --git a/examples/histexamp.c b/examples/histexamp.c
index 45651df..e875e65 100644
--- a/examples/histexamp.c
+++ b/examples/histexamp.c
@@ -31,9 +31,10 @@ main (argc, argv)
char **argv;
{
char line[1024], *t;
- int len, done = 0;
+ int len, done;
line[0] = 0;
+ done = 0;
using_history ();
while (!done)
@@ -42,71 +43,80 @@ main (argc, argv)
fflush (stdout);
t = fgets (line, sizeof (line) - 1, stdin);
if (t && *t)
- {
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- }
+ {
+ len = strlen (t);
+ if (t[len - 1] == '\n')
+ t[len - 1] = '\0';
+ }
if (!t)
- strcpy (line, "quit");
+ strcpy (line, "quit");
if (line[0])
- {
- char *expansion;
- int result;
+ {
+ char *expansion;
+ int result;
- using_history ();
+ using_history ();
- result = history_expand (line, &expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
+ result = history_expand (line, &expansion);
+ if (result)
+ fprintf (stderr, "%s\n", expansion);
- if (result < 0 || result == 2)
- {
- free (expansion);
- continue;
- }
+ if (result < 0 || result == 2)
+ {
+ free (expansion);
+ continue;
+ }
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- }
+ add_history (expansion);
+ strncpy (line, expansion, sizeof (line) - 1);
+ free (expansion);
+ }
if (strcmp (line, "quit") == 0)
- done = 1;
+ done = 1;
else if (strcmp (line, "save") == 0)
- write_history ("history_file");
+ write_history ("history_file");
else if (strcmp (line, "read") == 0)
- read_history ("history_file");
+ read_history ("history_file");
else if (strcmp (line, "list") == 0)
- {
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]->line);
- }
+ {
+ register HIST_ENTRY **the_list;
+ register int i;
+ time_t tt;
+ char timestr[128];
+
+ the_list = history_list ();
+ if (the_list)
+ for (i = 0; the_list[i]; i++)
+ {
+ tt = history_get_time (the_list[i]);
+ if (tt)
+ strftime (timestr, sizeof (timestr), "%a %R", localtime(&tt));
+ else
+ strcpy (timestr, "??");
+ printf ("%d: %s: %s\n", i + history_base, timestr, the_list[i]->line);
+ }
+ }
else if (strncmp (line, "delete", 6) == 0)
- {
- int which;
- if ((sscanf (line + 6, "%d", &which)) == 1)
- {
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- {
- free (entry->line);
- free (entry);
- }
- }
- else
- {
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- }
- }
+ {
+ int which;
+ if ((sscanf (line + 6, "%d", &which)) == 1)
+ {
+ HIST_ENTRY *entry = remove_history (which);
+ if (!entry)
+ fprintf (stderr, "No such entry %d\n", which);
+ else
+ {
+ free (entry->line);
+ free (entry);
+ }
+ }
+ else
+ {
+ fprintf (stderr, "non-numeric arg given to `delete'\n");
+ }
+ }
}
}
diff --git a/examples/rl-fgets.c b/examples/rl-fgets.c
new file mode 100644
index 0000000..5512b94
--- /dev/null
+++ b/examples/rl-fgets.c
@@ -0,0 +1,374 @@
+/*
+Date: Tue, 16 Mar 2004 19:38:40 -0800
+From: Harold Levy <Harold.Levy@synopsys.com>
+Subject: fgets(stdin) --> readline() redirector
+To: chet@po.cwru.edu
+
+Hi Chet,
+
+Here is something you may find useful enough to include in the readline
+distribution. It is a shared library that redirects calls to fgets(stdin)
+to readline() via LD_PRELOAD, and it supports a custom prompt and list of
+command names. Many people have asked me for this file, so I thought I'd
+pass it your way in hope of just including it with readline to begin with.
+
+Best Regards,
+
+-Harold
+*/
+
+/******************************************************************************
+*******************************************************************************
+
+ FILE NAME: fgets.c TARGET: libfgets.so
+ AUTHOR: Harold Levy VERSION: 1.0
+ hlevy@synopsys.com
+
+ ABSTRACT: Customize fgets() behavior via LD_PRELOAD in the following ways:
+
+ -- If fgets(stdin) is called, redirect to GNU readline() to obtain
+ command-line editing, file-name completion, history, etc.
+
+ -- A list of commands for command-name completion can be configured by
+ setting the environment-variable FGETS_COMMAND_FILE to a file containing
+ the list of commands to be used.
+
+ -- Command-line editing with readline() works best when the prompt string
+ is known; you can set this with the FGETS_PROMPT environment variable.
+
+ -- There special strings that libfgets will interpret as internal commands:
+
+ _fgets_reset_ reset the command list
+
+ _fgets_dump_ dump status
+
+ _fgets_debug_ toggle debug messages
+
+ HOW TO BUILD: Here are examples of how to build libfgets.so on various
+ platforms; you will have to add -I and -L flags to configure access to
+ the readline header and library files.
+
+ (32-bit builds with gcc)
+ AIX: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldl -lreadline -ltermcap
+ HP-UX: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldld -lreadline
+ Linux: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldl -lreadline
+ SunOS: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldl -lgen -lreadline
+
+ (64-bit builds without gcc)
+ SunOS: SUNWspro/bin/cc -D_LARGEFILE64_SOURCE=1 -xtarget=ultra -xarch=v9 \
+ -KPIC fgets.c -Bdynamic -lc -ldl -lgen -ltermcap -lreadline
+
+ HOW TO USE: Different operating systems have different levels of support
+ for the LD_PRELOAD concept. The generic method for 32-bit platforms is to
+ put libtermcap.so, libfgets.so, and libreadline.so (with absolute paths)
+ in the LD_PRELOAD environment variable, and to put their parent directories
+ in the LD_LIBRARY_PATH environment variable. Unfortunately there is no
+ generic method for 64-bit platforms; e.g. for 64-bit SunOS, you would have
+ to build both 32-bit and 64-bit libfgets and libreadline libraries, and
+ use the LD_FLAGS_32 and LD_FLAGS_64 environment variables with preload and
+ library_path configurations (a mix of 32-bit and 64-bit calls are made under
+ 64-bit SunOS).
+
+ EXAMPLE WRAPPER: Here is an example shell script wrapper around the
+ program "foo" that uses fgets() for command-line input:
+
+ #!/bin/csh
+ #### replace this with the libtermcap.so directory:
+ set dir1 = "/usr/lib"
+ #### replace this with the libfgets.so directory:
+ set dir2 = "/usr/fgets"
+ #### replace this with the libreadline.so directory:
+ set dir3 = "/usr/local/lib"
+ set lib1 = "${dir1}/libtermcap.so"
+ set lib2 = "${dir2}/libfgets.so"
+ set lib3 = "${dir3}/libreadline.so"
+ if ( "${?LD_PRELOAD}" ) then
+ setenv LD_PRELOAD "${lib1}:${lib2}:${lib3}:${LD_PRELOAD}"
+ else
+ setenv LD_PRELOAD "${lib1}:${lib2}:${lib3}"
+ endif
+ if ( "${?LD_LIBRARY_PATH}" ) then
+ setenv LD_LIBRARY_PATH "${dir1}:${dir2}:${dir3}:${LD_LIBRARY_PATH}"
+ else
+ setenv LD_LIBRARY_PATH "${dir1}:${dir2}:${dir3}"
+ endif
+ setenv FGETS_COMMAND_FILE "${dir2}/foo.commands"
+ setenv FGETS_PROMPT "foo> "
+ exec "foo" $*
+
+ Copyright (C)©2003-2004 Harold Levy.
+
+ This code links to the GNU readline library, and as such is bound by the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation, either version 2 or (at your option) any later version.
+
+ The GNU General Public License is often shipped with GNU software, and is
+ generally kept in a file called COPYING or LICENSE. If you do not have a
+ copy of the license, write to the Free Software Foundation, 59 Temple Place,
+ Suite 330, Boston, MA 02111 USA.
+
+ 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.
+
+*******************************************************************************
+******************************************************************************/
+
+
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <readline/readline.h>
+#include <readline/history.h>
+
+
+
+/* for dynamically connecting to the native fgets() */
+#if defined(RTLD_NEXT)
+#define REAL_LIBC RTLD_NEXT
+#else
+#define REAL_LIBC ((void *) -1L)
+#endif
+typedef char * ( * fgets_t ) ( char * s, int n, FILE * stream ) ;
+
+
+
+/* private data */
+/* -- writeable data is stored in the shared library's data segment
+ -- every process that uses the shared library gets a private memory copy of
+ its entire data segment
+ -- static data in the shared library is not copied to the application
+ -- only read-only (i.e. 'const') data is stored in the shared library's
+ text segment
+*/
+static char ** my_fgets_names = NULL ;
+static int my_fgets_number_of_names = 0 ;
+static int my_fgets_debug_flag = 0 ;
+
+
+
+/* invoked with _fgets_reset_ */
+static void
+my_fgets_reset (
+ void
+) {
+ if ( my_fgets_names && (my_fgets_number_of_names > 0) ) {
+ int i ;
+ if ( my_fgets_debug_flag ) {
+ printf ( "libfgets: removing command list\n" ) ;
+ }
+ for ( i = 0 ; i < my_fgets_number_of_names ; i ++ ) {
+ if ( my_fgets_names[i] ) free ( my_fgets_names[i] ) ;
+ }
+ free ( my_fgets_names ) ;
+ }
+ my_fgets_names = NULL ;
+ my_fgets_number_of_names = 0 ;
+}
+
+
+
+/* invoked with _fgets_dump_ */
+static void
+my_fgets_dump (
+ void
+) {
+ char * s ;
+ printf ( "\n" ) ;
+ s = getenv ( "FGETS_PROMPT" ) ;
+ printf ( "FGETS_PROMPT = %s\n", s ? s : "" ) ;
+ s = getenv ( "FGETS_COMMAND_FILE" ) ;
+ printf ( "FGETS_COMMAND_FILE = %s\n", s ? s : "" ) ;
+ printf ( "debug flag = %d\n", my_fgets_debug_flag ) ;
+ printf ( "#commands = %d\n", my_fgets_number_of_names ) ;
+ if ( my_fgets_debug_flag ) {
+ if ( my_fgets_names && (my_fgets_number_of_names > 0) ) {
+ int i ;
+ for ( i = 0 ; i < my_fgets_number_of_names ; i ++ ) {
+ printf ( "%s\n", my_fgets_names[i] ) ;
+ }
+ }
+ }
+ printf ( "\n" ) ;
+}
+
+
+
+/* invoked with _fgets_debug_ */
+static void
+my_fgets_debug_toggle (
+ void
+) {
+ my_fgets_debug_flag = my_fgets_debug_flag ? 0 : 1 ;
+ if ( my_fgets_debug_flag ) {
+ printf ( "libfgets: debug flag = %d\n", my_fgets_debug_flag ) ;
+ }
+}
+
+
+
+/* read the command list if needed, return the i-th name */
+static char *
+my_fgets_lookup (
+ int index
+) {
+ if ( (! my_fgets_names) || (! my_fgets_number_of_names) ) {
+ char * fname ;
+ FILE * fp ;
+ fgets_t _fgets ;
+ int i ;
+ char buf1[256], buf2[256] ;
+ fname = getenv ( "FGETS_COMMAND_FILE" ) ;
+ if ( ! fname ) {
+ if ( my_fgets_debug_flag ) {
+ printf ( "libfgets: empty or unset FGETS_COMMAND_FILE\n" ) ;
+ }
+ return NULL ;
+ }
+ fp = fopen ( fname, "r" ) ;
+ if ( ! fp ) {
+ if ( my_fgets_debug_flag ) {
+ printf ( "libfgets: cannot open '%s' for reading\n", fname ) ;
+ }
+ return NULL ;
+ }
+ _fgets = (fgets_t) dlsym ( REAL_LIBC, "fgets" ) ;
+ if ( ! _fgets ) {
+ fprintf ( stderr,
+ "libfgets: failed to dynamically link to native fgets()\n"
+ ) ;
+ return NULL ;
+ }
+ for ( i = 0 ; _fgets(buf1,255,fp) ; i ++ ) ;
+ if ( ! i ) { fclose(fp) ; return NULL ; }
+ my_fgets_names = (char**) calloc ( i, sizeof(char*) ) ;
+ rewind ( fp ) ;
+ i = 0 ;
+ while ( _fgets(buf1,255,fp) ) {
+ buf1[255] = 0 ;
+ if ( 1 == sscanf(buf1,"%s",buf2) ) {
+ my_fgets_names[i] = strdup(buf2) ;
+ i ++ ;
+ }
+ }
+ fclose ( fp ) ;
+ my_fgets_number_of_names = i ;
+ if ( my_fgets_debug_flag ) {
+ printf ( "libfgets: successfully read %d commands\n", i ) ;
+ }
+ }
+ if ( index < my_fgets_number_of_names ) {
+ return my_fgets_names[index] ;
+ } else {
+ return NULL ;
+ }
+}
+
+
+
+/* generate a list of partial name matches for readline() */
+static char *
+my_fgets_generator (
+ const char * text,
+ int state
+)
+{
+ static int list_index, len ;
+ char * name ;
+ if ( ! state ) {
+ list_index = 0 ;
+ len = strlen ( text ) ;
+ }
+ while ( ( name = my_fgets_lookup(list_index) ) ) {
+ list_index ++ ;
+ if ( ! strncmp ( name, text, len ) ) {
+ return ( strdup ( name ) ) ;
+ }
+ }
+ return ( NULL ) ;
+}
+
+
+
+/* partial name completion callback for readline() */
+static char **
+my_fgets_completion (
+ const char * text,
+ int start,
+ int end
+)
+{
+ char ** matches ;
+ matches = NULL ;
+ if ( ! start ) {
+ matches = rl_completion_matches ( text, my_fgets_generator ) ;
+ }
+ return ( matches ) ;
+}
+
+
+
+/* fgets() intercept */
+char *
+fgets (
+ char * s,
+ int n,
+ FILE * stream
+)
+{
+ if ( ! s ) return NULL ;
+ if ( stream == stdin ) {
+ char * prompt ;
+ char * my_fgets_line ;
+ rl_already_prompted = 1 ;
+ rl_attempted_completion_function = my_fgets_completion ;
+ rl_catch_signals = 1 ;
+ rl_catch_sigwinch = 1 ;
+ rl_set_signals () ;
+ prompt = getenv ( "FGETS_PROMPT" ) ;
+ for (
+ my_fgets_line = 0 ; ! my_fgets_line ; my_fgets_line=readline(prompt)
+ ) ;
+ if ( ! strncmp(my_fgets_line, "_fgets_reset_", 13) ) {
+ my_fgets_reset () ;
+ free ( my_fgets_line ) ;
+ strcpy ( s, "\n" ) ;
+ return ( s ) ;
+ }
+ if ( ! strncmp(my_fgets_line, "_fgets_dump_", 12) ) {
+ my_fgets_dump () ;
+ free ( my_fgets_line ) ;
+ strcpy ( s, "\n" ) ;
+ return ( s ) ;
+ }
+ if ( ! strncmp(my_fgets_line, "_fgets_debug_", 13) ) {
+ my_fgets_debug_toggle () ;
+ free ( my_fgets_line ) ;
+ strcpy ( s, "\n" ) ;
+ return ( s ) ;
+ }
+ (void) strncpy ( s, my_fgets_line, n-1 ) ;
+ (void) strcat ( s, "\n" ) ;
+ if ( *my_fgets_line ) add_history ( my_fgets_line ) ;
+ free ( my_fgets_line ) ;
+ return ( s ) ;
+ } else {
+ static fgets_t _fgets ;
+ _fgets = (fgets_t) dlsym ( REAL_LIBC, "fgets" ) ;
+ if ( ! _fgets ) {
+ fprintf ( stderr,
+ "libfgets: failed to dynamically link to native fgets()\n"
+ ) ;
+ strcpy ( s, "\n" ) ;
+ return ( s ) ;
+ }
+ return (
+ _fgets ( s, n, stream )
+ ) ;
+ }
+}
diff --git a/funmap.c b/funmap.c
index fe9a1da..28c8cc6 100644
--- a/funmap.c
+++ b/funmap.c
@@ -131,6 +131,7 @@ static FUNMAP default_funmap[] = {
{ "tty-status", rl_tty_status },
{ "undo", rl_undo_command },
{ "universal-argument", rl_universal_argument },
+ { "unix-filename-rubout", rl_unix_filename_rubout },
{ "unix-line-discard", rl_unix_line_discard },
{ "unix-word-rubout", rl_unix_word_rubout },
{ "upcase-word", rl_upcase_word },
diff --git a/histexpand.c b/histexpand.c
index 6c81196..2ab34cb 100644
--- a/histexpand.c
+++ b/histexpand.c
@@ -1,6 +1,6 @@
/* histexpand.c -- history expansion. */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2004 Free Software Foundation, Inc.
This file contains the GNU History Library (the Library), a set of
routines for managing the text of previously typed lines.
@@ -52,6 +52,8 @@
#define HISTORY_WORD_DELIMITERS " \t\n;&()|<>"
#define HISTORY_QUOTE_CHARACTERS "\"'`"
+#define slashify_in_quotes "\\`\"$"
+
typedef int _hist_search_func_t PARAMS((const char *, int));
extern int rl_byte_oriented; /* declared in mbutil.c */
@@ -65,6 +67,8 @@ static int subst_rhs_len;
static char *get_history_word_specifier PARAMS((char *, char *, int *));
static char *history_find_word PARAMS((char *, int));
+static int history_tokenize_word PARAMS((const char *, int));
+static char *history_substring PARAMS((const char *, int, int));
static char *quote_breaks PARAMS((char *));
@@ -211,8 +215,8 @@ get_history_event (string, caller_index, delimiting_quote)
memset (&ps, 0, sizeof (mbstate_t));
/* These produce warnings because we're passing a const string to a
function that takes a non-const string. */
- _rl_adjust_point (string, i, &ps);
- if ((v = _rl_get_char_len (string + i, &ps)) > 1)
+ _rl_adjust_point ((char *)string, i, &ps);
+ if ((v = _rl_get_char_len ((char *)string + i, &ps)) > 1)
{
i += v - 1;
continue;
@@ -517,7 +521,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
char *current_line; /* for !# */
{
int i, n, starting_index;
- int substitute_globally, want_quotes, print_only;
+ int substitute_globally, subst_bywords, want_quotes, print_only;
char *event, *temp, *result, *tstr, *t, c, *word_spec;
int result_len;
#if defined (HANDLE_MULTIBYTE)
@@ -599,19 +603,25 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
FREE (word_spec);
/* Perhaps there are other modifiers involved. Do what they say. */
- want_quotes = substitute_globally = print_only = 0;
+ want_quotes = substitute_globally = subst_bywords = print_only = 0;
starting_index = i;
while (string[i] == ':')
{
c = string[i + 1];
- if (c == 'g')
+ if (c == 'g' || c == 'a')
{
substitute_globally = 1;
i++;
c = string[i + 1];
}
+ else if (c == 'G')
+ {
+ subst_bywords = 1;
+ i++;
+ c = string[i + 1];
+ }
switch (c)
{
@@ -683,7 +693,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
case 's':
{
char *new_event;
- int delimiter, failed, si, l_temp;
+ int delimiter, failed, si, l_temp, ws, we;
if (c == 's')
{
@@ -760,33 +770,67 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
}
/* Find the first occurrence of THIS in TEMP. */
- si = 0;
+ /* Substitute SUBST_RHS for SUBST_LHS in TEMP. There are three
+ cases to consider:
+
+ 1. substitute_globally == subst_bywords == 0
+ 2. substitute_globally == 1 && subst_bywords == 0
+ 3. substitute_globally == 0 && subst_bywords == 1
+
+ In the first case, we substitute for the first occurrence only.
+ In the second case, we substitute for every occurrence.
+ In the third case, we tokenize into words and substitute the
+ first occurrence of each word. */
+
+ si = we = 0;
for (failed = 1; (si + subst_lhs_len) <= l_temp; si++)
- if (STREQN (temp+si, subst_lhs, subst_lhs_len))
- {
- int len = subst_rhs_len - subst_lhs_len + l_temp;
- new_event = (char *)xmalloc (1 + len);
- strncpy (new_event, temp, si);
- strncpy (new_event + si, subst_rhs, subst_rhs_len);
- strncpy (new_event + si + subst_rhs_len,
- temp + si + subst_lhs_len,
- l_temp - (si + subst_lhs_len));
- new_event[len] = '\0';
- free (temp);
- temp = new_event;
-
- failed = 0;
-
- if (substitute_globally)
- {
- si += subst_rhs_len;
- l_temp = strlen (temp);
- substitute_globally++;
- continue;
- }
- else
- break;
- }
+ {
+ /* First skip whitespace and find word boundaries if
+ we're past the end of the word boundary we found
+ the last time. */
+ if (subst_bywords && si > we)
+ {
+ for (; temp[si] && whitespace (temp[si]); si++)
+ ;
+ ws = si;
+ we = history_tokenize_word (temp, si);
+ }
+
+ if (STREQN (temp+si, subst_lhs, subst_lhs_len))
+ {
+ int len = subst_rhs_len - subst_lhs_len + l_temp;
+ new_event = (char *)xmalloc (1 + len);
+ strncpy (new_event, temp, si);
+ strncpy (new_event + si, subst_rhs, subst_rhs_len);
+ strncpy (new_event + si + subst_rhs_len,
+ temp + si + subst_lhs_len,
+ l_temp - (si + subst_lhs_len));
+ new_event[len] = '\0';
+ free (temp);
+ temp = new_event;
+
+ failed = 0;
+
+ if (substitute_globally)
+ {
+ /* Reported to fix a bug that causes it to skip every
+ other match when matching a single character. Was
+ si += subst_rhs_len previously. */
+ si += subst_rhs_len - 1;
+ l_temp = strlen (temp);
+ substitute_globally++;
+ continue;
+ }
+ else if (subst_bywords)
+ {
+ si = we;
+ l_temp = strlen (temp);
+ continue;
+ }
+ else
+ break;
+ }
+ }
if (substitute_globally > 1)
{
@@ -879,7 +923,7 @@ history_expand (hstring, output)
char **output;
{
register int j;
- int i, r, l, passc, cc, modified, eindex, only_printing;
+ int i, r, l, passc, cc, modified, eindex, only_printing, dquote;
char *string;
/* The output string, and its length. */
@@ -942,7 +986,7 @@ history_expand (hstring, output)
/* `!' followed by one of the characters in history_no_expand_chars
is NOT an expansion. */
- for (i = 0; string[i]; i++)
+ for (i = dquote = 0; string[i]; i++)
{
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -984,9 +1028,19 @@ history_expand (hstring, output)
else
break;
}
- /* XXX - at some point, might want to extend this to handle
- double quotes as well. */
- else if (history_quotes_inhibit_expansion && string[i] == '\'')
+ /* Shell-like quoting: allow backslashes to quote double quotes
+ inside a double-quoted string. */
+ else if (dquote && string[i] == '\\' && cc == '"')
+ i++;
+ /* More shell-like quoting: if we're paying attention to single
+ quotes and letting them quote the history expansion character,
+ then we need to pay attention to double quotes, because single
+ quotes are not special inside double-quoted strings. */
+ else if (history_quotes_inhibit_expansion && string[i] == '"')
+ {
+ dquote = 1 - dquote;
+ }
+ else if (dquote == 0 && history_quotes_inhibit_expansion && string[i] == '\'')
{
/* If this is bash, single quotes inhibit history expansion. */
i++;
@@ -999,6 +1053,7 @@ history_expand (hstring, output)
if (cc == '\'' || cc == history_expansion_char)
i++;
}
+
}
if (string[i] != history_expansion_char)
@@ -1010,7 +1065,7 @@ history_expand (hstring, output)
}
/* Extract and perform the substitution. */
- for (passc = i = j = 0; i < l; i++)
+ for (passc = dquote = i = j = 0; i < l; i++)
{
int tchar = string[i];
@@ -1061,11 +1116,16 @@ history_expand (hstring, output)
ADD_CHAR (tchar);
break;
+ case '"':
+ dquote = 1 - dquote;
+ ADD_CHAR (tchar);
+ break;
+
case '\'':
{
/* If history_quotes_inhibit_expansion is set, single quotes
inhibit history expansion. */
- if (history_quotes_inhibit_expansion)
+ if (dquote == 0 && history_quotes_inhibit_expansion)
{
int quote, slen;
@@ -1160,7 +1220,9 @@ history_expand (hstring, output)
if (only_printing)
{
+#if 0
add_history (result);
+#endif
return (2);
}
@@ -1223,7 +1285,10 @@ get_history_word_specifier (spec, from, caller_index)
if (spec[i] == '-')
first = 0;
else if (spec[i] == '^')
- first = 1;
+ {
+ first = 1;
+ i++;
+ }
else if (_rl_digit_p (spec[i]) && expecting_word_spec)
{
for (first = 0; _rl_digit_p (spec[i]); i++)
@@ -1338,7 +1403,103 @@ history_arg_extract (first, last, string)
return (result);
}
-#define slashify_in_quotes "\\`\"$"
+static int
+history_tokenize_word (string, ind)
+ const char *string;
+ int ind;
+{
+ register int i;
+ int delimiter;
+
+ i = ind;
+ delimiter = 0;
+
+ if (member (string[i], "()\n"))
+ {
+ i++;
+ return i;
+ }
+
+ if (member (string[i], "<>;&|$"))
+ {
+ int peek = string[i + 1];
+
+ if (peek == string[i] && peek != '$')
+ {
+ if (peek == '<' && string[i + 2] == '-')
+ i++;
+ i += 2;
+ return i;
+ }
+ else
+ {
+ if ((peek == '&' && (string[i] == '>' || string[i] == '<')) ||
+ (peek == '>' && string[i] == '&') ||
+ (peek == '(' && (string[i] == '>' || string[i] == '<')) || /* ) */
+ (peek == '(' && string[i] == '$')) /* ) */
+ {
+ i += 2;
+ return i;
+ }
+ }
+
+ if (string[i] != '$')
+ {
+ i++;
+ return i;
+ }
+ }
+
+ /* Get word from string + i; */
+
+ if (member (string[i], HISTORY_QUOTE_CHARACTERS))
+ delimiter = string[i++];
+
+ for (; string[i]; i++)
+ {
+ if (string[i] == '\\' && string[i + 1] == '\n')
+ {
+ i++;
+ continue;
+ }
+
+ if (string[i] == '\\' && delimiter != '\'' &&
+ (delimiter != '"' || member (string[i], slashify_in_quotes)))
+ {
+ i++;
+ continue;
+ }
+
+ if (delimiter && string[i] == delimiter)
+ {
+ delimiter = 0;
+ continue;
+ }
+
+ if (!delimiter && (member (string[i], history_word_delimiters)))
+ break;
+
+ if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS))
+ delimiter = string[i];
+ }
+
+ return i;
+}
+
+static char *
+history_substring (string, start, end)
+ const char *string;
+ int start, end;
+{
+ register int len;
+ register char *result;
+
+ len = end - start;
+ result = (char *)xmalloc (len + 1);
+ strncpy (result, string + start, len);
+ result[len] = '\0';
+ return result;
+}
/* Parse STRING into tokens and return an array of strings. If WIND is
not -1 and INDP is not null, we also want the word surrounding index
@@ -1351,7 +1512,6 @@ history_tokenize_internal (string, wind, indp)
{
char **result;
register int i, start, result_index, size;
- int len, delimiter;
/* If we're searching for a string that's not part of a word (e.g., " "),
make sure we set *INDP to a reasonable value. */
@@ -1362,8 +1522,6 @@ history_tokenize_internal (string, wind, indp)
exactly where the shell would split them. */
for (i = result_index = size = 0, result = (char **)NULL; string[i]; )
{
- delimiter = 0;
-
/* Skip leading whitespace. */
for (; string[i] && whitespace (string[i]); i++)
;
@@ -1371,88 +1529,30 @@ history_tokenize_internal (string, wind, indp)
return (result);
start = i;
-
- if (member (string[i], "()\n"))
- {
- i++;
- goto got_token;
- }
- if (member (string[i], "<>;&|$"))
- {
- int peek = string[i + 1];
+ i = history_tokenize_word (string, start);
- if (peek == string[i] && peek != '$')
- {
- if (peek == '<' && string[i + 2] == '-')
- i++;
- i += 2;
- goto got_token;
- }
- else
- {
- if ((peek == '&' && (string[i] == '>' || string[i] == '<')) ||
- ((peek == '>') && (string[i] == '&')) ||
- ((peek == '(') && (string[i] == '$')))
- {
- i += 2;
- goto got_token;
- }
- }
- if (string[i] != '$')
- {
- i++;
- goto got_token;
- }
- }
-
- /* Get word from string + i; */
-
- if (member (string[i], HISTORY_QUOTE_CHARACTERS))
- delimiter = string[i++];
-
- for (; string[i]; i++)
+ /* If we have a non-whitespace delimiter character (which would not be
+ skipped by the loop above), use it and any adjacent delimiters to
+ make a separate field. Any adjacent white space will be skipped the
+ next time through the loop. */
+ if (i == start && history_word_delimiters)
{
- if (string[i] == '\\' && string[i + 1] == '\n')
- {
- i++;
- continue;
- }
-
- if (string[i] == '\\' && delimiter != '\'' &&
- (delimiter != '"' || member (string[i], slashify_in_quotes)))
- {
- i++;
- continue;
- }
-
- if (delimiter && string[i] == delimiter)
- {
- delimiter = 0;
- continue;
- }
-
- if (!delimiter && (member (string[i], history_word_delimiters)))
- break;
-
- if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS))
- delimiter = string[i];
+ i++;
+ while (string[i] && member (string[i], history_word_delimiters))
+ i++;
}
- got_token:
-
/* If we are looking for the word in which the character at a
particular index falls, remember it. */
if (indp && wind != -1 && wind >= start && wind < i)
*indp = result_index;
- len = i - start;
if (result_index + 2 >= size)
result = (char **)xrealloc (result, ((size += 10) * sizeof (char *)));
- result[result_index] = (char *)xmalloc (1 + len);
- strncpy (result[result_index], string + start, len);
- result[result_index][len] = '\0';
- result[++result_index] = (char *)NULL;
+
+ result[result_index++] = history_substring (string, start, i);
+ result[result_index] = (char *)NULL;
}
return (result);
diff --git a/histfile.c b/histfile.c
index 60a9125..717bbee 100644
--- a/histfile.c
+++ b/histfile.c
@@ -1,6 +1,6 @@
/* histfile.c - functions to manipulate the history file. */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2003 Free Software Foundation, Inc.
This file contains the GNU History Library (the Library), a set of
routines for managing the text of previously typed lines.
@@ -23,8 +23,13 @@
/* The goal is to make the implementation transparent, so that you
don't have to know what data types are used, just what functions
you can call. I think I have done that. */
+
#define READLINE_LIBRARY
+#if defined (__TANDEM)
+# include <floss.h>
+#endif
+
#if defined (HAVE_CONFIG_H)
# include <config.h>
#endif
@@ -32,7 +37,7 @@
#include <stdio.h>
#include <sys/types.h>
-#ifndef _MINIX
+#if ! defined (_MINIX) && defined (HAVE_SYS_FILE_H)
# include <sys/file.h>
#endif
#include "posixstat.h"
@@ -52,7 +57,7 @@
# undef HAVE_MMAP
#endif
-#ifdef HAVE_MMAP
+#ifdef HISTORY_USE_MMAP
# include <sys/mman.h>
# ifdef MAP_FILE
@@ -67,7 +72,7 @@
# define MAP_FAILED ((void *)-1)
# endif
-#endif /* HAVE_MMAP */
+#endif /* HISTORY_USE_MMAP */
/* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment
on win 95/98/nt), we want to open files with O_BINARY mode so that there
@@ -93,6 +98,13 @@ extern int errno;
#include "rlshell.h"
#include "xmalloc.h"
+/* If non-zero, we write timestamps to the history file in history_do_write() */
+int history_write_timestamps = 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)
+
/* Return the string that should be used in the place of this
filename. This only matters when you don't specify the
filename to read_history (), or write_history (). */
@@ -151,13 +163,20 @@ read_history_range (filename, from, to)
const char *filename;
int from, to;
{
- register char *line_start, *line_end;
- char *input, *buffer, *bufend;
+ register char *line_start, *line_end, *p;
+ char *input, *buffer, *bufend, *last_ts;
int file, current_line, chars_read;
struct stat finfo;
size_t file_size;
+#if defined (EFBIG)
+ int overflow_errno = EFBIG;
+#elif defined (EOVERFLOW)
+ int overflow_errno = EOVERFLOW;
+#else
+ int overflow_errno = EIO;
+#endif
- buffer = (char *)NULL;
+ buffer = last_ts = (char *)NULL;
input = history_filename (filename);
file = open (input, O_RDONLY|O_BINARY, 0666);
@@ -169,37 +188,42 @@ read_history_range (filename, from, to)
/* check for overflow on very large files */
if (file_size != finfo.st_size || file_size + 1 < file_size)
{
-#if defined (EFBIG)
- errno = EFBIG;
-#elif defined (EOVERFLOW)
- errno = EOVERFLOW;
-#endif
+ errno = overflow_errno;
goto error_and_exit;
}
-#ifdef HAVE_MMAP
+#ifdef HISTORY_USE_MMAP
/* We map read/write and private so we can change newlines to NULs without
affecting the underlying object. */
buffer = (char *)mmap (0, file_size, PROT_READ|PROT_WRITE, MAP_RFLAGS, file, 0);
if ((void *)buffer == MAP_FAILED)
- goto error_and_exit;
+ {
+ errno = overflow_errno;
+ goto error_and_exit;
+ }
chars_read = file_size;
#else
buffer = (char *)malloc (file_size + 1);
if (buffer == 0)
- goto error_and_exit;
+ {
+ errno = overflow_errno;
+ goto error_and_exit;
+ }
chars_read = read (file, buffer, file_size);
#endif
if (chars_read < 0)
{
error_and_exit:
- chars_read = errno;
+ if (errno != 0)
+ chars_read = errno;
+ else
+ chars_read = EIO;
if (file >= 0)
close (file);
FREE (input);
-#ifndef HAVE_MMAP
+#ifndef HISTORY_USE_MMAP
FREE (buffer);
#endif
@@ -220,8 +244,12 @@ read_history_range (filename, from, to)
for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
if (*line_end == '\n')
{
- current_line++;
- line_start = line_end + 1;
+ p = line_end + 1;
+ /* If we see something we think is a timestamp, continue with this
+ line. We should check more extensively here... */
+ if (HIST_TIMESTAMP_START(p) == 0)
+ current_line++;
+ line_start = p;
}
/* If there are lines left to gobble, then gobble them now. */
@@ -231,7 +259,22 @@ read_history_range (filename, from, to)
*line_end = '\0';
if (*line_start)
- add_history (line_start);
+ {
+ if (HIST_TIMESTAMP_START(line_start) == 0)
+ {
+ add_history (line_start);
+ if (last_ts)
+ {
+ add_history_time (last_ts);
+ last_ts = NULL;
+ }
+ }
+ else
+ {
+ last_ts = line_start;
+ current_line--;
+ }
+ }
current_line++;
@@ -242,7 +285,7 @@ read_history_range (filename, from, to)
}
FREE (input);
-#ifndef HAVE_MMAP
+#ifndef HISTORY_USE_MMAP
FREE (buffer);
#else
munmap (buffer, file_size);
@@ -259,7 +302,7 @@ history_truncate_file (fname, lines)
const char *fname;
int lines;
{
- char *buffer, *filename, *bp;
+ char *buffer, *filename, *bp, *bp1; /* bp1 == bp+1 */
int file, chars_read, rv;
struct stat finfo;
size_t file_size;
@@ -322,11 +365,14 @@ history_truncate_file (fname, lines)
}
/* Count backwards from the end of buffer until we have passed
- LINES lines. */
- for (bp = buffer + chars_read - 1; lines && bp > buffer; bp--)
+ 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
+ both a newline and the history comment character, it should be OK. */
+ for (bp1 = bp = buffer + chars_read - 1; lines && bp > buffer; bp--)
{
- if (*bp == '\n')
+ if (*bp == '\n' && HIST_TIMESTAMP_START(bp1) == 0)
lines--;
+ bp1 = bp;
}
/* If this is the first line, then the file contains exactly the
@@ -335,11 +381,14 @@ history_truncate_file (fname, lines)
the current value of i and 0. Otherwise, write from the start of
this line until the end of the buffer. */
for ( ; bp > buffer; bp--)
- if (*bp == '\n')
- {
- bp++;
- break;
- }
+ {
+ if (*bp == '\n' && HIST_TIMESTAMP_START(bp1) == 0)
+ {
+ bp++;
+ break;
+ }
+ bp1 = bp;
+ }
/* Write only if there are more lines in the file than we want to
truncate to. */
@@ -374,9 +423,9 @@ history_do_write (filename, nelements, overwrite)
register int i;
char *output;
int file, mode, rv;
+#ifdef HISTORY_USE_MMAP
size_t cursize;
-#ifdef HAVE_MMAP
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;
@@ -390,7 +439,7 @@ history_do_write (filename, nelements, overwrite)
return (errno);
}
-#ifdef HAVE_MMAP
+#ifdef HISTORY_USE_MMAP
cursize = overwrite ? 0 : lseek (file, 0, SEEK_END);
#endif
@@ -408,10 +457,18 @@ history_do_write (filename, nelements, overwrite)
the_history = history_list ();
/* Calculate the total number of bytes to write. */
for (buffer_size = 0, i = history_length - nelements; i < history_length; i++)
- buffer_size += 1 + strlen (the_history[i]->line);
+#if 0
+ buffer_size += 2 + HISTENT_BYTES (the_history[i]);
+#else
+ {
+ if (history_write_timestamps && the_history[i]->timestamp && the_history[i]->timestamp[0])
+ buffer_size += strlen (the_history[i]->timestamp) + 1;
+ buffer_size += strlen (the_history[i]->line) + 1;
+ }
+#endif
/* Allocate the buffer, and fill it. */
-#ifdef HAVE_MMAP
+#ifdef HISTORY_USE_MMAP
if (ftruncate (file, buffer_size+cursize) == -1)
goto mmap_error;
buffer = (char *)mmap (0, buffer_size, PROT_READ|PROT_WRITE, MAP_WFLAGS, file, cursize);
@@ -436,12 +493,18 @@ mmap_error:
for (j = 0, i = history_length - nelements; i < history_length; i++)
{
+ if (history_write_timestamps && the_history[i]->timestamp && the_history[i]->timestamp[0])
+ {
+ strcpy (buffer + j, the_history[i]->timestamp);
+ j += strlen (the_history[i]->timestamp);
+ buffer[j++] = '\n';
+ }
strcpy (buffer + j, the_history[i]->line);
j += strlen (the_history[i]->line);
buffer[j++] = '\n';
}
-#ifdef HAVE_MMAP
+#ifdef HISTORY_USE_MMAP
if (msync (buffer, buffer_size, 0) != 0 || munmap (buffer, buffer_size) != 0)
rv = errno;
#else
diff --git a/history.c b/history.c
index 4242f33..d99b76e 100644
--- a/history.c
+++ b/history.c
@@ -1,6 +1,6 @@
-/* History.c -- standalone history library */
+/* history.c -- standalone history library */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2003 Free Software Foundation, Inc.
This file contains the GNU History Library (the Library), a set of
routines for managing the text of previously typed lines.
@@ -52,6 +52,8 @@
/* The number of slots to increase the_history by. */
#define DEFAULT_HISTORY_GROW_SIZE 50
+static char *hist_inittime PARAMS((void));
+
/* **************************************************************** */
/* */
/* History Functions */
@@ -123,14 +125,15 @@ using_history ()
}
/* Return the number of bytes that the primary history entries are using.
- This just adds up the lengths of the_history->lines. */
+ This just adds up the lengths of the_history->lines and the associated
+ timestamps. */
int
history_total_bytes ()
{
register int i, result;
for (i = result = 0; the_history && the_history[i]; i++)
- result += strlen (the_history[i]->line);
+ result += HISTENT_BYTES (the_history[i]);
return (result);
}
@@ -206,6 +209,40 @@ history_get (offset)
: the_history[local_index];
}
+time_t
+history_get_time (hist)
+ HIST_ENTRY *hist;
+{
+ char *ts;
+ time_t t;
+
+ if (hist == 0 || hist->timestamp == 0)
+ return 0;
+ ts = hist->timestamp;
+ if (ts[0] != history_comment_char)
+ return 0;
+ t = (time_t) atol (ts + 1); /* XXX - should use strtol() here */
+ return t;
+}
+
+static char *
+hist_inittime ()
+{
+ time_t t;
+ char ts[64], *ret;
+
+ t = (time_t) time ((time_t *)0);
+#if defined (HAVE_VSNPRINTF) /* assume snprintf if vsnprintf exists */
+ snprintf (ts, sizeof (ts) - 1, "X%lu", (unsigned long) t);
+#else
+ sprintf (ts, "X%lu", (unsigned long) t);
+#endif
+ ret = savestring (ts);
+ ret[0] = history_comment_char;
+
+ return ret;
+}
+
/* Place STRING at the end of the history list. The data field
is set to NULL. */
void
@@ -225,10 +262,7 @@ add_history (string)
/* If there is something in the slot, then remove it. */
if (the_history[0])
- {
- free (the_history[0]->line);
- free (the_history[0]);
- }
+ (void) free_history_entry (the_history[0]);
/* Copy the rest of the entries, moving down one slot. */
for (i = 0; i < history_length; i++)
@@ -260,10 +294,41 @@ add_history (string)
temp->line = savestring (string);
temp->data = (char *)NULL;
+ temp->timestamp = hist_inittime ();
+
the_history[history_length] = (HIST_ENTRY *)NULL;
the_history[history_length - 1] = temp;
}
+/* Change the time stamp of the most recent history entry to STRING. */
+void
+add_history_time (string)
+ const char *string;
+{
+ HIST_ENTRY *hs;
+
+ hs = the_history[history_length - 1];
+ FREE (hs->timestamp);
+ hs->timestamp = savestring (string);
+}
+
+/* Free HIST and return the data so the calling application can free it
+ if necessary and desired. */
+histdata_t
+free_history_entry (hist)
+ HIST_ENTRY *hist;
+{
+ histdata_t x;
+
+ if (hist == 0)
+ return ((histdata_t) 0);
+ FREE (hist->line);
+ FREE (hist->timestamp);
+ x = hist->data;
+ free (hist);
+ return (x);
+}
+
/* Make the history entry at WHICH have LINE and DATA. This returns
the old entry so you can dispose of the data. In the case of an
invalid WHICH, a NULL pointer is returned. */
@@ -283,6 +348,7 @@ replace_history_entry (which, line, data)
temp->line = savestring (line);
temp->data = data;
+ temp->timestamp = savestring (old_value->timestamp);
the_history[which] = temp;
return (old_value);
@@ -327,10 +393,7 @@ stifle_history (max)
{
/* This loses because we cannot free the data. */
for (i = 0, j = history_length - max; i < j; i++)
- {
- free (the_history[i]->line);
- free (the_history[i]);
- }
+ free_history_entry (the_history[i]);
history_base = i;
for (j = 0, i = history_length - max; j < max; i++, j++)
@@ -372,8 +435,7 @@ clear_history ()
/* This loses because we cannot free the data. */
for (i = 0; i < history_length; i++)
{
- free (the_history[i]->line);
- free (the_history[i]);
+ free_history_entry (the_history[i]);
the_history[i] = (HIST_ENTRY *)NULL;
}
diff --git a/history.h b/history.h
index 58b5de4..14ca2a9 100644
--- a/history.h
+++ b/history.h
@@ -1,5 +1,5 @@
-/* History.h -- the names of functions that you can call in history. */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
+/* history.h -- the names of functions that you can call in history. */
+/* Copyright (C) 1989-2003 Free Software Foundation, Inc.
This file contains the GNU History Library (the Library), a set of
routines for managing the text of previously typed lines.
@@ -26,6 +26,8 @@
extern "C" {
#endif
+#include <time.h> /* XXX - for history timestamp code */
+
#if defined READLINE_LIBRARY
# include "rlstdc.h"
# include "rltypedefs.h"
@@ -43,9 +45,13 @@ typedef char *histdata_t;
/* The structure used to store a history entry. */
typedef struct _hist_entry {
char *line;
+ char *timestamp; /* char * rather than time_t for read/write */
histdata_t data;
} HIST_ENTRY;
+/* Size of the history-library-managed space in history entry HS. */
+#define HISTENT_BYTES(hs) (strlen ((hs)->line) + strlen ((hs)->timestamp))
+
/* A structure used to pass the current state of the history stuff around. */
typedef struct _hist_state {
HIST_ENTRY **entries; /* Pointer to the entries themselves. */
@@ -76,11 +82,19 @@ extern void history_set_history_state PARAMS((HISTORY_STATE *));
The associated data field (if any) is set to NULL. */
extern void add_history PARAMS((const char *));
+/* Change the timestamp associated with the most recent history entry to
+ STRING. */
+extern void add_history_time PARAMS((const char *));
+
/* A reasonably useless function, only here for completeness. WHICH
is the magic number that tells us which element to delete. The
elements are numbered from 0. */
extern HIST_ENTRY *remove_history PARAMS((int));
+/* Free the history entry H and return any application-specific data
+ associated with it. */
+extern histdata_t free_history_entry PARAMS((HIST_ENTRY *));
+
/* Make the history entry at WHICH have LINE and DATA. This returns
the old entry so you can dispose of the data. In the case of an
invalid WHICH, a NULL pointer is returned. */
@@ -119,6 +133,10 @@ extern HIST_ENTRY *current_history PARAMS((void));
array. OFFSET is relative to history_base. */
extern HIST_ENTRY *history_get PARAMS((int));
+/* Return the timestamp associated with the HIST_ENTRY * passed as an
+ argument */
+extern time_t history_get_time PARAMS((HIST_ENTRY *));
+
/* Return the number of bytes that the primary history entries are using.
This just adds up the lengths of the_history->lines. */
extern int history_total_bytes PARAMS((void));
@@ -231,6 +249,8 @@ extern char *history_no_expand_chars;
extern char *history_search_delimiter_chars;
extern int history_quotes_inhibit_expansion;
+extern int history_write_timestamps;
+
/* Backwards compatibility */
extern int max_input_history;
diff --git a/histsearch.c b/histsearch.c
index d94fd6c..1cc5875 100644
--- a/histsearch.c
+++ b/histsearch.c
@@ -77,11 +77,11 @@ history_search_internal (string, direction, anchored)
if (string == 0 || *string == '\0')
return (-1);
- if (!history_length || ((i == history_length) && !reverse))
+ if (!history_length || ((i >= history_length) && !reverse))
return (-1);
- if (reverse && (i == history_length))
- i--;
+ if (reverse && (i >= history_length))
+ i = history_length - 1;
#define NEXT_LINE() do { if (reverse) i--; else i++; } while (0)
diff --git a/input.c b/input.c
index 841f05d..044338e 100644
--- a/input.c
+++ b/input.c
@@ -21,6 +21,10 @@
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#define READLINE_LIBRARY
+#if defined (__TANDEM)
+# include <floss.h>
+#endif
+
#if defined (HAVE_CONFIG_H)
# include <config.h>
#endif
@@ -154,6 +158,12 @@ _rl_unget_char (key)
return (0);
}
+int
+_rl_pushed_input_available ()
+{
+ return (push_index != pop_index);
+}
+
/* If a character is available to be read, then read it and stuff it into
IBUFFER. Otherwise, just return. Returns number of characters read
(0 if none available) and -1 on error (EIO). */
@@ -162,7 +172,7 @@ rl_gather_tyi ()
{
int tty;
register int tem, result;
- int chars_avail;
+ int chars_avail, k;
char input;
#if defined(HAVE_SELECT)
fd_set readfds, exceptfds;
@@ -202,6 +212,11 @@ rl_gather_tyi ()
fcntl (tty, F_SETFL, tem);
if (chars_avail == -1 && errno == EAGAIN)
return 0;
+ if (chars_avail == 0) /* EOF */
+ {
+ rl_stuff_char (EOF);
+ return (0);
+ }
}
#endif /* O_NDELAY */
@@ -225,7 +240,12 @@ rl_gather_tyi ()
if (result != -1)
{
while (chars_avail--)
- rl_stuff_char ((*rl_getc_function) (rl_instream));
+ {
+ k = (*rl_getc_function) (rl_instream);
+ rl_stuff_char (k);
+ if (k == NEWLINE || k == RETURN)
+ break;
+ }
}
else
{
diff --git a/keymaps.c b/keymaps.c
index 12506d3..70d0cc0 100644
--- a/keymaps.c
+++ b/keymaps.c
@@ -64,11 +64,13 @@ rl_make_bare_keymap ()
keymap[i].function = (rl_command_func_t *)NULL;
}
+#if 0
for (i = 'A'; i < ('Z' + 1); i++)
{
keymap[i].type = ISFUNC;
keymap[i].function = rl_do_lowercase_version;
}
+#endif
return (keymap);
}
@@ -79,8 +81,9 @@ rl_copy_keymap (map)
Keymap map;
{
register int i;
- Keymap temp = rl_make_bare_keymap ();
+ Keymap temp;
+ temp = rl_make_bare_keymap ();
for (i = 0; i < KEYMAP_SIZE; i++)
{
temp[i].type = map[i].type;
@@ -109,12 +112,8 @@ rl_make_keymap ()
newmap[CTRL('H')].function = rl_rubout;
#if KEYMAP_SIZE > 128
- /* Printing characters in some 8-bit character sets. */
- for (i = 128; i < 160; i++)
- newmap[i].function = rl_insert;
-
- /* ISO Latin-1 printing characters should self-insert. */
- for (i = 160; i < 256; i++)
+ /* Printing characters in ISO Latin-1 and some 8-bit character sets. */
+ for (i = 128; i < 256; i++)
newmap[i].function = rl_insert;
#endif /* KEYMAP_SIZE > 128 */
diff --git a/kill.c b/kill.c
index a616b92..1d3254c 100644
--- a/kill.c
+++ b/kill.c
@@ -339,6 +339,47 @@ rl_unix_word_rubout (count, key)
if (rl_editing_mode == emacs_mode)
rl_mark = rl_point;
}
+
+ return 0;
+}
+
+/* This deletes one filename component in a Unix pathname. That is, it
+ deletes backward to directory separator (`/') or whitespace. */
+int
+rl_unix_filename_rubout (count, key)
+ int count, key;
+{
+ int orig_point, c;
+
+ if (rl_point == 0)
+ rl_ding ();
+ else
+ {
+ orig_point = rl_point;
+ if (count <= 0)
+ count = 1;
+
+ while (count--)
+ {
+ c = rl_line_buffer[rl_point - 1];
+ while (rl_point && (whitespace (c) || c == '/'))
+ {
+ rl_point--;
+ c = rl_line_buffer[rl_point - 1];
+ }
+
+ while (rl_point && (whitespace (c) == 0) && c != '/')
+ {
+ rl_point--;
+ c = rl_line_buffer[rl_point - 1];
+ }
+ }
+
+ rl_kill_text (orig_point, rl_point);
+ if (rl_editing_mode == emacs_mode)
+ rl_mark = rl_point;
+ }
+
return 0;
}
diff --git a/mbutil.c b/mbutil.c
index 8794d02..9a8f17c 100644
--- a/mbutil.c
+++ b/mbutil.c
@@ -1,6 +1,6 @@
/* mbutil.c -- readline multibyte character utility functions */
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -92,12 +92,12 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
/* if this is true, means that seed was not pointed character
started byte. So correct the point and consume count */
if (seed < point)
- count --;
+ count--;
while (count > 0)
{
tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps);
- if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
+ if (MB_INVALIDCH ((size_t)tmp))
{
/* invalid bytes. asume a byte represents a character */
point++;
@@ -105,9 +105,8 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
/* reset states. */
memset(&ps, 0, sizeof(mbstate_t));
}
- else if (tmp == (size_t)0)
- /* found '\0' char */
- break;
+ else if (MB_NULLWCH (tmp))
+ break; /* found wide '\0' */
else
{
/* valid bytes */
@@ -160,7 +159,7 @@ _rl_find_prev_mbchar_internal (string, seed, find_non_zero)
while (point < seed)
{
tmp = mbrtowc (&wc, string + point, length - point, &ps);
- if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
+ if (MB_INVALIDCH ((size_t)tmp))
{
/* in this case, bytes are invalid or shorted to compose
multibyte char, so assume that the first byte represents
@@ -169,8 +168,12 @@ _rl_find_prev_mbchar_internal (string, seed, find_non_zero)
/* clear the state of the byte sequence, because
in this case effect of mbstate is undefined */
memset(&ps, 0, sizeof (mbstate_t));
+
+ /* Since we're assuming that this byte represents a single
+ non-zero-width character, don't forget about it. */
+ prev = point;
}
- else if (tmp == 0)
+ else if (MB_NULLWCH (tmp))
break; /* Found '\0' char. Can this happen? */
else
{
@@ -273,7 +276,7 @@ _rl_adjust_point(string, point, ps)
while (pos < point)
{
tmp = mbrlen (string + pos, length - pos, ps);
- if((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
+ if (MB_INVALIDCH ((size_t)tmp))
{
/* in this case, bytes are invalid or shorted to compose
multibyte char, so assume that the first byte represents
@@ -284,7 +287,7 @@ _rl_adjust_point(string, point, ps)
if (ps)
memset (ps, 0, sizeof (mbstate_t));
}
- else if (tmp == 0)
+ else if (MB_NULLWCH (tmp))
pos++;
else
pos += tmp;
diff --git a/misc.c b/misc.c
index f3775d3..ab1e133 100644
--- a/misc.c
+++ b/misc.c
@@ -1,6 +1,6 @@
/* misc.c -- miscellaneous bindable readline functions. */
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -253,6 +253,8 @@ rl_maybe_unsave_line ()
{
if (_rl_saved_line_for_history)
{
+ /* Can't call with `1' because rl_undo_list might point to an undo
+ list from a history entry, as in rl_replace_from_history() below. */
rl_replace_line (_rl_saved_line_for_history->line, 0);
rl_undo_list = (UNDO_LIST *)_rl_saved_line_for_history->data;
_rl_free_history_entry (_rl_saved_line_for_history);
@@ -274,6 +276,13 @@ rl_maybe_save_line ()
_rl_saved_line_for_history->line = savestring (rl_line_buffer);
_rl_saved_line_for_history->data = (char *)rl_undo_list;
}
+ else if (STREQ (rl_line_buffer, _rl_saved_line_for_history->line) == 0)
+ {
+ free (_rl_saved_line_for_history->line);
+ _rl_saved_line_for_history->line = savestring (rl_line_buffer);
+ _rl_saved_line_for_history->data = (char *)rl_undo_list; /* XXX possible memleak */
+ }
+
return 0;
}
@@ -298,7 +307,7 @@ _rl_history_set_point ()
rl_point = rl_end;
#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
+ if (rl_editing_mode == vi_mode && _rl_keymap != vi_insertion_keymap)
rl_point = 0;
#endif /* VI_MODE */
@@ -311,6 +320,8 @@ rl_replace_from_history (entry, flags)
HIST_ENTRY *entry;
int flags; /* currently unused */
{
+ /* Can't call with `1' because rl_undo_list might point to an undo list
+ from a history entry, just like we're setting up here. */
rl_replace_line (entry->line, 0);
rl_undo_list = (UNDO_LIST *)entry->data;
rl_point = rl_end;
@@ -435,6 +446,7 @@ rl_get_previous_history (count, key)
rl_replace_from_history (temp, 0);
_rl_history_set_point ();
}
+
return 0;
}
diff --git a/nls.c b/nls.c
index 706c819..bcee875 100644
--- a/nls.c
+++ b/nls.c
@@ -75,6 +75,23 @@ static char *normalize_codeset PARAMS((char *));
static char *find_codeset PARAMS((char *, size_t *));
#endif /* !HAVE_SETLOCALE */
+static char *_rl_get_locale_var PARAMS((const char *));
+
+static char *
+_rl_get_locale_var (v)
+ const char *v;
+{
+ char *lspec;
+
+ lspec = sh_get_env_value ("LC_ALL");
+ if (lspec == 0 || *lspec == 0)
+ lspec = sh_get_env_value (v);
+ if (lspec == 0 || *lspec == 0)
+ lspec = sh_get_env_value ("LANG");
+
+ return lspec;
+}
+
/* Check for LC_ALL, LC_CTYPE, and LANG and use the first with a value
to decide the defaults for 8-bit character input and output. Returns
1 if we set eight-bit mode. */
@@ -84,10 +101,21 @@ _rl_init_eightbit ()
/* If we have setlocale(3), just check the current LC_CTYPE category
value, and go into eight-bit mode if it's not C or POSIX. */
#if defined (HAVE_SETLOCALE)
- char *t;
+ char *lspec, *t;
/* Set the LC_CTYPE locale category from environment variables. */
- t = setlocale (LC_CTYPE, "");
+ lspec = _rl_get_locale_var ("LC_CTYPE");
+ /* Since _rl_get_locale_var queries the right environment variables,
+ we query the current locale settings with setlocale(), and, if
+ that doesn't return anything, we set lspec to the empty string to
+ force the subsequent call to setlocale() to define the `native'
+ environment. */
+ if (lspec == 0 || *lspec == 0)
+ lspec = setlocale (LC_CTYPE, (char *)NULL);
+ if (lspec == 0)
+ lspec = "";
+ t = setlocale (LC_CTYPE, lspec);
+
if (t && *t && (t[0] != 'C' || t[1]) && (STREQ (t, "POSIX") == 0))
{
_rl_meta_flag = 1;
@@ -105,9 +133,8 @@ _rl_init_eightbit ()
/* We don't have setlocale. Finesse it. Check the environment for the
appropriate variables and set eight-bit mode if they have the right
values. */
- lspec = sh_get_env_value ("LC_ALL");
- if (lspec == 0) lspec = sh_get_env_value ("LC_CTYPE");
- if (lspec == 0) lspec = sh_get_env_value ("LANG");
+ lspec = _rl_get_locale_var ("LC_CTYPE");
+
if (lspec == 0 || (t = normalize_codeset (lspec)) == 0)
return (0);
for (i = 0; t && legal_lang_values[i]; i++)
diff --git a/parens.c b/parens.c
index 54ef1f3..737f767 100644
--- a/parens.c
+++ b/parens.c
@@ -21,6 +21,10 @@
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#define READLINE_LIBRARY
+#if defined (__TANDEM)
+# include <floss.h>
+#endif
+
#include "rlconf.h"
#if defined (HAVE_CONFIG_H)
diff --git a/posixdir.h b/posixdir.h
index 505e279..91f6d96 100644
--- a/posixdir.h
+++ b/posixdir.h
@@ -25,7 +25,11 @@
#if defined (HAVE_DIRENT_H)
# include <dirent.h>
-# define D_NAMLEN(d) (strlen ((d)->d_name))
+# if defined (HAVE_STRUCT_DIRENT_D_NAMLEN)
+# define D_NAMLEN(d) ((d)->d_namlen)
+# else
+# define D_NAMLEN(d) (strlen ((d)->d_name))
+# endif /* !HAVE_STRUCT_DIRENT_D_NAMLEN */
#else
# if defined (HAVE_SYS_NDIR_H)
# include <sys/ndir.h>
@@ -42,11 +46,11 @@
# define D_NAMLEN(d) ((d)->d_namlen)
#endif /* !HAVE_DIRENT_H */
-#if defined (STRUCT_DIRENT_HAS_D_INO) && !defined (STRUCT_DIRENT_HAS_D_FILENO)
+#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO)
# define d_fileno d_ino
#endif
-#if defined (_POSIX_SOURCE) && (!defined (STRUCT_DIRENT_HAS_D_INO) || defined (BROKEN_DIRENT_D_INO))
+#if defined (_POSIX_SOURCE) && (!defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO))
/* Posix does not require that the d_ino field be present, and some
systems do not provide it. */
# define REAL_DIR_ENTRY(dp) 1
diff --git a/readline.c b/readline.c
index f583358..a70d80f 100644
--- a/readline.c
+++ b/readline.c
@@ -68,11 +68,11 @@
#include "xmalloc.h"
#ifndef RL_LIBRARY_VERSION
-# define RL_LIBRARY_VERSION "4.3"
+# define RL_LIBRARY_VERSION "5.0"
#endif
#ifndef RL_READLINE_VERSION
-# define RL_READLINE_VERSION 0x0403
+# define RL_READLINE_VERSION 0x0500
#endif
extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
@@ -85,6 +85,7 @@ static void bind_arrow_keys_internal PARAMS((Keymap));
static void bind_arrow_keys PARAMS((void));
static void readline_default_bindings PARAMS((void));
+static void reset_default_bindings PARAMS((void));
/* **************************************************************** */
/* */
@@ -347,7 +348,7 @@ readline_internal_setup ()
#if defined (VI_MODE)
if (rl_editing_mode == vi_mode)
- rl_vi_insertion_mode (1, 0);
+ rl_vi_insertion_mode (1, 'i');
#endif /* VI_MODE */
if (rl_pre_input_hook)
@@ -650,7 +651,21 @@ _rl_dispatch_subseq (key, map, got_subseq)
the function. The recursive call to _rl_dispatch_subseq has
already taken care of pushing any necessary input back onto
the input queue with _rl_unget_char. */
- r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key));
+ {
+#if 0
+ r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key));
+#else
+ /* XXX - experimental code -- might never be executed. Save
+ for later. */
+ Keymap m = FUNCTION_TO_KEYMAP (map, key);
+ int 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
+ r = _rl_dispatch (ANYOTHERKEY, m);
+#endif
+ }
else if (r && map[ANYOTHERKEY].function)
{
/* We didn't match (r is probably -1), so return something to
@@ -839,7 +854,7 @@ readline_initialize_everything ()
/* 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 = rl_basic_word_break_characters;
+ rl_completer_word_break_characters = (char *)rl_basic_word_break_characters;
}
/* If this system allows us to look at the values of the regular
@@ -851,6 +866,15 @@ readline_default_bindings ()
rl_tty_set_default_bindings (_rl_keymap);
}
+/* Reset the default bindings for the terminal special characters we're
+ interested in back to rl_insert and read the new ones. */
+static void
+reset_default_bindings ()
+{
+ rl_tty_unset_default_bindings (_rl_keymap);
+ rl_tty_set_default_bindings (_rl_keymap);
+}
+
/* Bind some common arrow key sequences in MAP. */
static void
bind_arrow_keys_internal (map)
@@ -862,25 +886,25 @@ bind_arrow_keys_internal (map)
_rl_keymap = map;
#if defined (__MSDOS__)
- _rl_bind_if_unbound ("\033[0A", rl_get_previous_history);
- _rl_bind_if_unbound ("\033[0B", rl_backward_char);
- _rl_bind_if_unbound ("\033[0C", rl_forward_char);
- _rl_bind_if_unbound ("\033[0D", rl_get_next_history);
+ rl_bind_keyseq_if_unbound ("\033[0A", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\033[0B", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\033[0C", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\033[0D", rl_get_next_history);
#endif
- _rl_bind_if_unbound ("\033[A", rl_get_previous_history);
- _rl_bind_if_unbound ("\033[B", rl_get_next_history);
- _rl_bind_if_unbound ("\033[C", rl_forward_char);
- _rl_bind_if_unbound ("\033[D", rl_backward_char);
- _rl_bind_if_unbound ("\033[H", rl_beg_of_line);
- _rl_bind_if_unbound ("\033[F", rl_end_of_line);
-
- _rl_bind_if_unbound ("\033OA", rl_get_previous_history);
- _rl_bind_if_unbound ("\033OB", rl_get_next_history);
- _rl_bind_if_unbound ("\033OC", rl_forward_char);
- _rl_bind_if_unbound ("\033OD", rl_backward_char);
- _rl_bind_if_unbound ("\033OH", rl_beg_of_line);
- _rl_bind_if_unbound ("\033OF", rl_end_of_line);
+ rl_bind_keyseq_if_unbound ("\033[A", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\033[B", rl_get_next_history);
+ rl_bind_keyseq_if_unbound ("\033[C", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\033[D", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\033[H", rl_beg_of_line);
+ rl_bind_keyseq_if_unbound ("\033[F", rl_end_of_line);
+
+ rl_bind_keyseq_if_unbound ("\033OA", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\033OB", rl_get_next_history);
+ rl_bind_keyseq_if_unbound ("\033OC", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\033OD", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\033OH", rl_beg_of_line);
+ rl_bind_keyseq_if_unbound ("\033OF", rl_end_of_line);
_rl_keymap = xkeymap;
}
diff --git a/readline.h b/readline.h
index f11b3d0..222b317 100644
--- a/readline.h
+++ b/readline.h
@@ -1,6 +1,6 @@
/* Readline.h -- the names of functions callable from within readline. */
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -40,9 +40,9 @@ extern "C" {
#endif
/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0403 /* Readline 4.3 */
-#define RL_VERSION_MAJOR 4
-#define RL_VERSION_MINOR 3
+#define RL_READLINE_VERSION 0x0500 /* Readline 5.0 */
+#define RL_VERSION_MAJOR 5
+#define RL_VERSION_MINOR 0
/* Readline data structures. */
@@ -160,6 +160,7 @@ extern int rl_kill_line PARAMS((int, int));
extern int rl_backward_kill_line PARAMS((int, int));
extern int rl_kill_full_line PARAMS((int, int));
extern int rl_unix_word_rubout PARAMS((int, int));
+extern int rl_unix_filename_rubout PARAMS((int, int));
extern int rl_unix_line_discard PARAMS((int, int));
extern int rl_copy_region_to_kill PARAMS((int, int));
extern int rl_kill_region PARAMS((int, int));
@@ -258,6 +259,8 @@ extern int rl_vi_check PARAMS((void));
extern int rl_vi_domove PARAMS((int, int *));
extern int rl_vi_bracktype PARAMS((int));
+extern void rl_vi_start_inserting PARAMS((int, int, int));
+
/* VI-mode pseudo-bindable commands, used as utility functions. */
extern int rl_vi_fWord PARAMS((int, int));
extern int rl_vi_bWord PARAMS((int, int));
@@ -290,12 +293,20 @@ extern int rl_bind_key PARAMS((int, rl_command_func_t *));
extern int rl_bind_key_in_map PARAMS((int, rl_command_func_t *, Keymap));
extern int rl_unbind_key PARAMS((int));
extern int rl_unbind_key_in_map PARAMS((int, Keymap));
+extern int rl_bind_key_if_unbound PARAMS((int, rl_command_func_t *));
+extern int rl_bind_key_if_unbound_in_map PARAMS((int, rl_command_func_t *, Keymap));
extern int rl_unbind_function_in_map PARAMS((rl_command_func_t *, Keymap));
extern int rl_unbind_command_in_map PARAMS((const char *, Keymap));
-extern int rl_set_key PARAMS((const char *, rl_command_func_t *, Keymap));
+extern int rl_bind_keyseq PARAMS((const char *, rl_command_func_t *));
+extern int rl_bind_keyseq_in_map PARAMS((const char *, rl_command_func_t *, Keymap));
+extern int rl_bind_keyseq_if_unbound PARAMS((const char *, rl_command_func_t *));
+extern int rl_bind_keyseq_if_unbound_in_map PARAMS((const char *, rl_command_func_t *, Keymap));
extern int rl_generic_bind PARAMS((int, const char *, char *, Keymap));
extern int rl_variable_bind PARAMS((const char *, const char *));
+/* Backwards compatibility, use rl_bind_keyseq_in_map instead. */
+extern int rl_set_key PARAMS((const char *, rl_command_func_t *, Keymap));
+
/* Backwards compatibility, use rl_generic_bind instead. */
extern int rl_macro_bind PARAMS((const char *, const char *, Keymap));
@@ -358,7 +369,7 @@ extern int rl_clear_message PARAMS((void));
extern int rl_reset_line_state PARAMS((void));
extern int rl_crlf PARAMS((void));
-#if (defined (__STDC__) || defined (__cplusplus)) && defined (USE_VARARGS) && defined (PREFER_STDARG)
+#if defined (USE_VARARGS) && defined (PREFER_STDARG)
extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
#else
extern int rl_message ();
@@ -384,6 +395,7 @@ extern char *rl_copy_text PARAMS((int, int));
extern void rl_prep_terminal PARAMS((int));
extern void rl_deprep_terminal PARAMS((void));
extern void rl_tty_set_default_bindings PARAMS((Keymap));
+extern void rl_tty_unset_default_bindings PARAMS((Keymap));
extern int rl_reset_terminal PARAMS((const char *));
extern void rl_resize_terminal PARAMS((void));
@@ -603,7 +615,12 @@ extern const char *rl_basic_word_break_characters;
/* The list of characters that signal a break between words for
rl_complete_internal. The default list is the contents of
rl_basic_word_break_characters. */
-extern const char *rl_completer_word_break_characters;
+extern /*const*/ char *rl_completer_word_break_characters;
+
+/* Hook function to allow an application to set the completion word
+ break characters before readline breaks up the line. Allows
+ position-dependent word break characters. */
+extern rl_cpvfunc_t *rl_completion_word_break_hook;
/* List of characters which can be used to quote a substring of the line.
Completion occurs on the entire substring, and within the substring
@@ -687,6 +704,11 @@ extern int rl_attempted_completion_over;
functions. */
extern int rl_completion_type;
+/* Up to this many items will be displayed in response to a
+ possible-completions call. After that, we ask the user if she
+ is sure she wants to see them all. The default value is 100. */
+extern int rl_completion_query_items;
+
/* Character appended to completed words when at the end of the line. The
default is a space. Nothing is added if this is '\0'. */
extern int rl_completion_append_character;
@@ -695,10 +717,18 @@ extern int rl_completion_append_character;
rl_completion_append_character will not be appended. */
extern int rl_completion_suppress_append;
-/* Up to this many items will be displayed in response to a
- possible-completions call. After that, we ask the user if she
- is sure she wants to see them all. The default value is 100. */
-extern int rl_completion_query_items;
+/* Set to any quote character readline thinks it finds before any application
+ completion function is called. */
+extern int rl_completion_quote_character;
+
+/* Set to a non-zero value if readline found quoting anywhere in the word to
+ be completed; set before any application completion function is called. */
+extern int rl_completion_found_quote;
+
+/* If non-zero, the completion functions don't append any closing quote.
+ This is set to 0 by rl_complete_internal and may be changed by an
+ application-specific completion function. */
+extern int rl_completion_suppress_quote;
/* If non-zero, a slash will be appended to completed filenames that are
symbolic links to directory names, subject to the value of the
@@ -749,6 +779,7 @@ extern int rl_inhibit_completion;
#define RL_STATE_SIGHANDLER 0x08000 /* in readline sighandler */
#define RL_STATE_UNDOING 0x10000 /* doing an undo */
#define RL_STATE_INPUTPENDING 0x20000 /* rl_execute_next called */
+#define RL_STATE_TTYCSAVED 0x40000 /* tty special chars saved */
#define RL_STATE_DONE 0x80000 /* done; accepted line */
@@ -785,6 +816,12 @@ struct readline_state {
int catchsigs;
int catchsigwinch;
+ /* search state */
+
+ /* completion state */
+
+ /* options state */
+
/* reserved for future expansion, so the struct size doesn't change */
char reserved[64];
};
diff --git a/rldefs.h b/rldefs.h
index 4a28bd1..0d60040 100644
--- a/rldefs.h
+++ b/rldefs.h
@@ -77,7 +77,7 @@ extern int _rl_stricmp PARAMS((char *, char *));
extern int _rl_strnicmp PARAMS((char *, char *, int));
#endif
-#if defined (HAVE_STRPBRK)
+#if defined (HAVE_STRPBRK) && !defined (HAVE_MULTIBYTE)
# define _rl_strpbrk(a,b) strpbrk((a),(b))
#else
extern char *_rl_strpbrk PARAMS((const char *, const char *));
diff --git a/rlmbutil.h b/rlmbutil.h
index 27ca32b..77cc026 100644
--- a/rlmbutil.h
+++ b/rlmbutil.h
@@ -35,11 +35,18 @@
#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H)
# include <wchar.h>
# include <wctype.h>
-# if defined (HAVE_MBSRTOWCS) /* system is supposed to support XPG5 */
+# if defined (HAVE_MBSRTOWCS) && defined (HAVE_MBRTOWC) && defined (HAVE_MBRLEN) && defined (HAVE_WCWIDTH)
+ /* system is supposed to support XPG5 */
# define HANDLE_MULTIBYTE 1
# endif
#endif
+/* If we don't want multibyte chars even on a system that supports them, let
+ the configuring user turn multibyte support off. */
+#if defined (NO_MULTIBYTE_SUPPORT)
+# undef HANDLE_MULTIBYTE
+#endif
+
/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
#if HANDLE_MULTIBYTE && !defined (HAVE_MBSTATE_T)
# define wcsrtombs(dest, src, len, ps) (wcsrtombs) (dest, src, len, 0)
@@ -90,6 +97,9 @@ extern int _rl_read_mbstring PARAMS((int, char *, int));
extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int));
+#define MB_INVALIDCH(x) ((x) == (size_t)-1 || (x) == (size_t)-2)
+#define MB_NULLWCH(x) ((x) == 0)
+
#else /* !HANDLE_MULTIBYTE */
#undef MB_LEN_MAX
@@ -101,6 +111,9 @@ extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int));
#define _rl_find_prev_mbchar(b, i, f) (((i) == 0) ? (i) : ((i) - 1))
#define _rl_find_next_mbchar(b, i1, i2, f) ((i1) + (i2))
+#define MB_INVALIDCH(x) (0)
+#define MB_NULLWCH(x) (0)
+
#endif /* !HANDLE_MULTIBYTE */
extern int rl_byte_oriented;
diff --git a/rlprivate.h b/rlprivate.h
index ccb9144..c3cee91 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 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -103,7 +103,6 @@ extern int readline_internal_char PARAMS((void));
#endif /* READLINE_CALLBACKS */
/* bind.c */
-extern void _rl_bind_if_unbound PARAMS((const char *, rl_command_func_t *));
/* complete.c */
extern char _rl_find_completion_word PARAMS((int *, int *));
@@ -131,6 +130,7 @@ extern int _rl_input_available PARAMS((void));
extern int _rl_input_queued PARAMS((int));
extern void _rl_insert_typein PARAMS((int));
extern int _rl_unget_char PARAMS((int));
+extern int _rl_pushed_input_available PARAMS((void));
/* macro.c */
extern void _rl_with_macro_input PARAMS((char *));
@@ -219,6 +219,7 @@ extern const char *_rl_possible_meta_prefixes[];
/* complete.c */
extern int _rl_complete_show_all;
+extern int _rl_complete_show_unmodified;
extern int _rl_complete_mark_directories;
extern int _rl_complete_mark_symlink_dirs;
extern int _rl_print_completions_horizontally;
@@ -281,4 +282,7 @@ extern int _rl_term_autowrap;
extern int _rl_doing_an_undo;
extern int _rl_undo_group_level;
+/* vi_mode.c */
+extern int _rl_vi_last_command;
+
#endif /* _RL_PRIVATE_H_ */
diff --git a/rlstdc.h b/rlstdc.h
index d6a22b3..847fa9c 100644
--- a/rlstdc.h
+++ b/rlstdc.h
@@ -37,7 +37,7 @@
#endif
#ifndef __attribute__
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
# define __attribute__(x)
# endif
#endif
diff --git a/rltty.c b/rltty.c
index 755efeb..1a31f35 100644
--- a/rltty.c
+++ b/rltty.c
@@ -186,6 +186,8 @@ static int set_tty_settings PARAMS((int, TIOTYPE *));
static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
+static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t));
+
static void
save_tty_chars (tiop)
TIOTYPE *tiop;
@@ -400,6 +402,9 @@ static int set_tty_settings PARAMS((int, TIOTYPE *));
static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
+static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t));
+static void _rl_bind_tty_special_chars PARAMS((Keymap, TIOTYPE));
+
#if defined (FLUSHO)
# define OUTPUT_BEING_FLUSHED(tp) (tp->c_lflag & FLUSHO)
#else
@@ -652,7 +657,10 @@ rl_prep_terminal (meta_flag)
otio = tio;
+ rl_tty_unset_default_bindings (_rl_keymap);
save_tty_chars (&otio);
+ RL_SETSTATE(RL_STATE_TTYCSAVED);
+ _rl_bind_tty_special_chars (_rl_keymap, tio);
prepare_terminal_settings (meta_flag, otio, &tio);
@@ -776,70 +784,97 @@ rl_stop_output (count, key)
/* */
/* **************************************************************** */
-/* Set the system's default editing characters to their readline equivalents
- in KMAP. Should be static, now that we have rl_tty_set_default_bindings. */
-void
-rltty_set_default_bindings (kmap)
- Keymap kmap;
-{
- TIOTYPE ttybuff;
- int tty = fileno (rl_instream);
+#define SET_SPECIAL(sc, func) set_special_char(kmap, &ttybuff, sc, func)
#if defined (NEW_TTY_DRIVER)
+static void
+set_special_char (kmap, tiop, sc, func)
+ Keymap kmap;
+ TIOTYPE *tiop;
+ int sc;
+ rl_command_func_t *func;
+{
+ if (sc != -1 && kmap[(unsigned char)sc].type == ISFUNC)
+ kmap[(unsigned char)sc].function = func;
+}
-#define SET_SPECIAL(sc, func) \
- do \
- { \
- int ic; \
- ic = sc; \
- if (ic != -1 && kmap[(unsigned char)ic].type == ISFUNC) \
- kmap[(unsigned char)ic].function = func; \
- } \
- while (0)
+#define RESET_SPECIAL(c) \
+ if (c != -1 && kmap[(unsigned char)c].type == ISFUNC)
+ kmap[(unsigned char)c].function = rl_insert;
- if (get_tty_settings (tty, &ttybuff) == 0)
+static void
+_rl_bind_tty_special_chars (kmap, ttybuff)
+ Keymap kmap;
+ TIOTYPE ttybuff;
+{
+ if (ttybuff.flags & SGTTY_SET)
{
- if (ttybuff.flags & SGTTY_SET)
- {
- SET_SPECIAL (ttybuff.sgttyb.sg_erase, rl_rubout);
- SET_SPECIAL (ttybuff.sgttyb.sg_kill, rl_unix_line_discard);
- }
+ SET_SPECIAL (ttybuff.sgttyb.sg_erase, rl_rubout);
+ SET_SPECIAL (ttybuff.sgttyb.sg_kill, rl_unix_line_discard);
+ }
# if defined (TIOCGLTC)
- if (ttybuff.flags & LTCHARS_SET)
- {
- SET_SPECIAL (ttybuff.ltchars.t_werasc, rl_unix_word_rubout);
- SET_SPECIAL (ttybuff.ltchars.t_lnextc, rl_quoted_insert);
- }
-# endif /* TIOCGLTC */
+ if (ttybuff.flags & LTCHARS_SET)
+ {
+ SET_SPECIAL (ttybuff.ltchars.t_werasc, rl_unix_word_rubout);
+ SET_SPECIAL (ttybuff.ltchars.t_lnextc, rl_quoted_insert);
}
+# endif /* TIOCGLTC */
+}
#else /* !NEW_TTY_DRIVER */
+static void
+set_special_char (kmap, tiop, sc, func)
+ Keymap kmap;
+ TIOTYPE *tiop;
+ int sc;
+ rl_command_func_t *func;
+{
+ unsigned char uc;
-#define SET_SPECIAL(sc, func) \
- do \
- { \
- unsigned char uc; \
- uc = ttybuff.c_cc[sc]; \
- if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC) \
- kmap[uc].function = func; \
- } \
- while (0)
+ uc = tiop->c_cc[sc];
+ if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC)
+ kmap[uc].function = func;
+}
- if (get_tty_settings (tty, &ttybuff) == 0)
- {
- SET_SPECIAL (VERASE, rl_rubout);
- SET_SPECIAL (VKILL, rl_unix_line_discard);
+/* used later */
+#define RESET_SPECIAL(uc) \
+ if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC) \
+ kmap[uc].function = rl_insert;
+
+static void
+_rl_bind_tty_special_chars (kmap, ttybuff)
+ Keymap kmap;
+ TIOTYPE ttybuff;
+{
+ SET_SPECIAL (VERASE, rl_rubout);
+ SET_SPECIAL (VKILL, rl_unix_line_discard);
# if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER)
- SET_SPECIAL (VLNEXT, rl_quoted_insert);
+ SET_SPECIAL (VLNEXT, rl_quoted_insert);
# endif /* VLNEXT && TERMIOS_TTY_DRIVER */
# if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER)
- SET_SPECIAL (VWERASE, rl_unix_word_rubout);
+ SET_SPECIAL (VWERASE, rl_unix_word_rubout);
# endif /* VWERASE && TERMIOS_TTY_DRIVER */
- }
+}
+
#endif /* !NEW_TTY_DRIVER */
+
+/* Set the system's default editing characters to their readline equivalents
+ in KMAP. Should be static, now that we have rl_tty_set_default_bindings. */
+void
+rltty_set_default_bindings (kmap)
+ Keymap kmap;
+{
+ TIOTYPE ttybuff;
+ int tty;
+ static int called = 0;
+
+ tty = fileno (rl_instream);
+
+ if (get_tty_settings (tty, &ttybuff) == 0)
+ _rl_bind_tty_special_chars (kmap, ttybuff);
}
/* New public way to set the system default editing chars to their readline
@@ -851,6 +886,30 @@ rl_tty_set_default_bindings (kmap)
rltty_set_default_bindings (kmap);
}
+/* Rebind all of the tty special chars that readline worries about back
+ to self-insert. Call this before saving the current terminal special
+ chars with save_tty_chars(). This only works on POSIX termios or termio
+ systems. */
+void
+rl_tty_unset_default_bindings (kmap)
+ Keymap kmap;
+{
+ /* Don't bother before we've saved the tty special chars at least once. */
+ if (RL_ISSTATE(RL_STATE_TTYCSAVED) == 0)
+ return;
+
+ RESET_SPECIAL (_rl_tty_chars.t_erase);
+ RESET_SPECIAL (_rl_tty_chars.t_kill);
+
+# if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER)
+ RESET_SPECIAL (_rl_tty_chars.t_lnext);
+# endif /* VLNEXT && TERMIOS_TTY_DRIVER */
+
+# if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER)
+ RESET_SPECIAL (_rl_tty_chars.t_werase);
+# endif /* VWERASE && TERMIOS_TTY_DRIVER */
+}
+
#if defined (HANDLE_SIGNALS)
#if defined (NEW_TTY_DRIVER)
diff --git a/rltty.h b/rltty.h
index 029a3fb..142e96b 100644
--- a/rltty.h
+++ b/rltty.h
@@ -61,22 +61,22 @@
#endif /* !NEW_TTY_DRIVER && !_POSIX_VDISABLE */
typedef struct _rl_tty_chars {
- char t_eof;
- char t_eol;
- char t_eol2;
- char t_erase;
- char t_werase;
- char t_kill;
- char t_reprint;
- char t_intr;
- char t_quit;
- char t_susp;
- char t_dsusp;
- char t_start;
- char t_stop;
- char t_lnext;
- char t_flush;
- char t_status;
+ unsigned char t_eof;
+ unsigned char t_eol;
+ unsigned char t_eol2;
+ unsigned char t_erase;
+ unsigned char t_werase;
+ unsigned char t_kill;
+ unsigned char t_reprint;
+ unsigned char t_intr;
+ unsigned char t_quit;
+ unsigned char t_susp;
+ unsigned char t_dsusp;
+ unsigned char t_start;
+ unsigned char t_stop;
+ unsigned char t_lnext;
+ unsigned char t_flush;
+ unsigned char t_status;
} _RL_TTY_CHARS;
#endif /* _RLTTY_H_ */
diff --git a/rltypedefs.h b/rltypedefs.h
index f3280e9..862bdb8 100644
--- a/rltypedefs.h
+++ b/rltypedefs.h
@@ -1,6 +1,6 @@
/* rltypedefs.h -- Type declarations for readline functions. */
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -79,6 +79,12 @@ typedef void rl_voidfunc_t PARAMS((void));
typedef void rl_vintfunc_t PARAMS((int));
typedef void rl_vcpfunc_t PARAMS((char *));
typedef void rl_vcppfunc_t PARAMS((char **));
+
+typedef char *rl_cpvfunc_t PARAMS((void));
+typedef char *rl_cpifunc_t PARAMS((int));
+typedef char *rl_cpcpfunc_t PARAMS((char *));
+typedef char *rl_cpcppfunc_t PARAMS((char **));
+
#endif /* _RL_FUNCTION_TYPEDEF */
#ifdef __cplusplus
diff --git a/savestring.c b/savestring.c
index c7ebeb1..820428d 100644
--- a/savestring.c
+++ b/savestring.c
@@ -1,6 +1,6 @@
/* savestring.c */
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998,2003 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -19,6 +19,7 @@
is generally kept in a file called COPYING or LICENSE. If you do not
have a copy of the license, write to the Free Software Foundation,
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+#define READLINE_LIBRARY
#include <config.h>
#ifdef HAVE_STRING_H
diff --git a/search.c b/search.c
index 7e0d60b..ce7d54e 100644
--- a/search.c
+++ b/search.c
@@ -82,8 +82,13 @@ static void
make_history_line_current (entry)
HIST_ENTRY *entry;
{
- rl_replace_line (entry->line, 0);
+#if 0
+ rl_replace_line (entry->line, 1);
rl_undo_list = (UNDO_LIST *)entry->data;
+#else
+ _rl_replace_text (entry->line, 0, rl_end);
+ _rl_fix_point (1);
+#endif
if (_rl_saved_line_for_history)
_rl_free_history_entry (_rl_saved_line_for_history);
@@ -189,6 +194,11 @@ noninc_search (dir, pchar)
saved_point = rl_point;
saved_mark = rl_mark;
+ /* Clear the undo list, since reading the search string should create its
+ own undo list, and the whole list will end up being freed when we
+ finish reading the search string. */
+ rl_undo_list = 0;
+
/* Use the line buffer to read the search string. */
rl_line_buffer[0] = 0;
rl_end = rl_point = 0;
diff --git a/shell.c b/shell.c
index ad27cc1..a07e2b9 100644
--- a/shell.c
+++ b/shell.c
@@ -126,6 +126,7 @@ sh_set_lines_and_columns (lines, cols)
b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1);
sprintf (b, "LINES=%d", lines);
putenv (b);
+
b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1);
sprintf (b, "COLUMNS=%d", cols);
putenv (b);
@@ -134,9 +135,12 @@ sh_set_lines_and_columns (lines, cols)
b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
sprintf (b, "%d", lines);
setenv ("LINES", b, 1);
+ free (b);
+
b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
sprintf (b, "%d", cols);
setenv ("COLUMNS", b, 1);
+ free (b);
# endif /* HAVE_SETENV */
#endif /* !HAVE_PUTENV */
}
diff --git a/shlib/Makefile.in b/shlib/Makefile.in
index 0cba57e..e6db619 100644
--- a/shlib/Makefile.in
+++ b/shlib/Makefile.in
@@ -1,7 +1,7 @@
## -*- text -*- ##
# Makefile for the GNU readline library shared library support.
#
-# Copyright (C) 1998 Free Software Foundation, Inc.
+# Copyright (C) 1998-2003 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
@@ -17,6 +17,14 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+PACKAGE = @PACKAGE_NAME@
+VERSION = @PACKAGE_VERSION@
+
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+
RL_LIBRARY_VERSION = @LIBVERSION@
RL_LIBRARY_NAME = readline
@@ -46,6 +54,8 @@ prefix = @prefix@
exec_prefix = @exec_prefix@
includedir = @includedir@
libdir = @libdir@
+datadir = @datadir@
+localedir = $(datadir)/locale
# Support an alternate destination root directory for package building
DESTDIR =
@@ -72,7 +82,7 @@ SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
SHOBJ_LIBS = @SHOBJ_LIBS@
-SHLIB_XLDFLAGS = @SHLIB_XLDFLAGS@
+SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@
SHLIB_LIBS = @SHLIB_LIBS@
SHLIB_LIBSUFF = @SHLIB_LIBSUFF@
@@ -390,7 +400,7 @@ search.so: $(topdir)/search.c
shell.so: $(topdir)/shell.c
signals.so: $(topdir)/signals.c
terminal.so: $(topdir)/terminal.c
-text.so: $(topdir)/terminal.c
+text.so: $(topdir)/text.c
tilde.so: $(topdir)/tilde.c
undo.so: $(topdir)/undo.c
util.so: $(topdir)/util.c
@@ -424,7 +434,7 @@ search.so: search.c
signals.so: signals.c
shell.so: shell.c
terminal.so: terminal.c
-text.so: terminal.c
+text.so: text.c
tilde.so: tilde.c
undo.so: undo.c
util.so: util.c
diff --git a/signals.c b/signals.c
index 0a1468b..8e9c0ae 100644
--- a/signals.c
+++ b/signals.c
@@ -73,6 +73,10 @@ typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt
# define sigemptyset(m)
#endif /* !HAVE_POSIX_SIGNALS */
+#ifndef SA_RESTART
+# define SA_RESTART 0
+#endif
+
static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
@@ -85,6 +89,8 @@ int rl_catch_signals = 1;
/* If non-zero, readline will install a signal handler for SIGWINCH. */
#ifdef SIGWINCH
int rl_catch_sigwinch = 1;
+#else
+int rl_catch_sigwinch = 0; /* for the readline state struct in readline.c */
#endif
static int signals_set_flag;
@@ -233,7 +239,7 @@ rl_set_sighandler (sig, handler, ohandler)
struct sigaction act;
act.sa_handler = handler;
- act.sa_flags = 0; /* XXX - should we set SA_RESTART for SIGWINCH? */
+ act.sa_flags = (sig == SIGWINCH) ? SA_RESTART : 0;
sigemptyset (&act.sa_mask);
sigemptyset (&ohandler->sa_mask);
sigaction (sig, &act, &old_handler);
diff --git a/support/config.guess b/support/config.guess
index 5668108..9a8a499 100755
--- a/support/config.guess
+++ b/support/config.guess
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
-timestamp='2002-03-20'
+timestamp='2002-11-30'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -88,40 +88,47 @@ if test $# != 0; then
exit 1
fi
+trap 'exit 1' 1 2 15
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
-# CC_FOR_BUILD -- compiler used by this script.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
-set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int dummy(){}" > $dummy.c ;
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+ || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
- ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
- if test $? = 0 ; then
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
- rm -f $dummy.c $dummy.o $dummy.rel ;
+ rm -f $files ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac'
+esac ;
+unset files'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
-elif (test -f /usr/5bin/uname) >/dev/null 2>&1 ; then # bash
- PATH=$PATH:/usr/5bin
fi
-UNAME=`(uname) 2>/dev/null` || UNAME=unknown # bash
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
@@ -130,61 +137,6 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- # NOTE -- begin cases added for bash (mostly legacy) -- NOTE
- mac68k:machten:*:*)
- echo mac68k-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- concurrent*:*:*:*)
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo concurrent-concurrent-sysv3
- else
- echo concurrent-concurrent-bsd
- fi
- exit 0 ;;
- ppc*:SunOS:5.*:*)
- echo ppc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sparc:UNIX_SV:4.*:*)
- echo sparc-unknown-sysv${UNAME_RELEASE}
- exit 0 ;;
- mips:UNIX_SV:4.*:*)
- echo mips-mips-sysv${UNAME_RELEASE}
- exit 0 ;;
- mips:OSF*1:*:*)
- echo mips-mips-osf1
- exit 0 ;;
- mips:4.4BSD:*:*)
- echo mips-mips-bsd4.4
- exit 0 ;;
- MIS*:SMP_DC.OSx:*:dcosx) # not the same as below
- echo pyramid-pyramid-sysv4
- exit 0 ;;
- news*:NEWS*:*:*)
- echo mips-sony-newsos${UNAME_RELEASE}
- exit 0 ;;
- *370:AIX:*:*)
- echo ibm370-ibm-aix${UNAME_RELEASE}
- exit 0 ;;
- ksr1:OSF*1:*:*)
- echo ksr1-ksr-osf1
- exit 0 ;;
- esa:OSF*1:*:* | ESA:OSF*:*:*)
- echo esa-ibm-osf1
- exit 0 ;;
- DNP*:DNIX:*:*)
- echo m68k-dnix-sysv
- exit 0 ;;
- *3b2*:*:*:*)
- echo we32k-att-sysv3
- exit 0 ;;
- Alpha*:Windows_NT:*:SP*)
- echo alpha-pc-opennt
- exit 0 ;;
- *:Windows_NT:*:SP*)
- echo i386-pc-opennt
- exit 0 ;;
-
- # NOTE -- end legacy cases added for bash -- NOTE
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -200,6 +152,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
@@ -225,7 +178,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
;;
esac
# The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
@@ -264,9 +228,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun3:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
- vax:OpenBSD:*:*) # bash
- echo vax-dec-openbsd${UNAME_RELEASE}
- exit 0 ;;
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
@@ -281,6 +242,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
+ eval $set_cc_for_build
cat <<EOF >$dummy.s
.data
\$Lformat:
@@ -306,10 +268,9 @@ main:
jsr \$26,exit
.end main
EOF
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+ $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
if test "$?" = 0 ; then
- case `./$dummy` in
+ case `$dummy` in
0-0)
UNAME_MACHINE="alpha"
;;
@@ -331,9 +292,12 @@ EOF
2-1307)
UNAME_MACHINE="alphaev68"
;;
+ 3-1307)
+ UNAME_MACHINE="alphaev7"
+ ;;
esac
fi
- rm -f $dummy.s $dummy
+ rm -f $dummy.s $dummy && rmdir $tmpdir
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
Alpha\ *:Windows_NT*:*)
@@ -374,6 +338,10 @@ EOF
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
@@ -480,15 +448,21 @@ EOF
exit (-1);
}
EOF
- $CC_FOR_BUILD $dummy.c -o $dummy \
- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit 0 ;;
@@ -561,8 +535,8 @@ EOF
exit(0);
}
EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
@@ -660,9 +634,9 @@ EOF
exit (0);
}
EOF
- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy`
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
- rm -f $dummy.c $dummy
+ rm -f $dummy.c $dummy && rmdir $tmpdir
fi ;;
esac
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -698,8 +672,8 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -781,8 +755,23 @@ EOF
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
+ amd64:FreeBSD:*:*)
+ echo x86_64-unknown-freebsd
+ exit 0 ;;
*:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ # Determine whether the default compiler uses glibc.
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #if __GLIBC__ >= 2
+ LIBC=gnu
+ #else
+ LIBC=
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ rm -f $dummy.c && rmdir $tmpdir
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
exit 0 ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
@@ -794,13 +783,16 @@ EOF
echo ${UNAME_MACHINE}-pc-pw32
exit 0 ;;
x86:Interix*:3*)
- echo i386-pc-interix3
+ echo i586-pc-interix3
+ exit 0 ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
+ echo i586-pc-interix
exit 0 ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
@@ -843,8 +835,28 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- rm -f $dummy.c
- test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+ rm -f $dummy.c && rmdir $tmpdir
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ rm -f $dummy.c && rmdir $tmpdir
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
@@ -906,7 +918,7 @@ EOF
;;
a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
+ exit 0 ;;
coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit 0 ;;
@@ -939,7 +951,7 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- rm -f $dummy.c
+ rm -f $dummy.c && rmdir $tmpdir
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
@@ -957,6 +969,23 @@ EOF
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -978,22 +1007,19 @@ EOF
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1017,9 +1043,15 @@ EOF
# "miniframe"
echo m68010-convergent-sysv
exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -1036,9 +1068,6 @@ EOF
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
@@ -1110,6 +1139,9 @@ EOF
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
@@ -1130,7 +1162,7 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit 0 ;;
- NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
+ NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit 0 ;;
*:NonStop-UX:*:*)
@@ -1153,11 +1185,6 @@ EOF
fi
echo ${UNAME_MACHINE}-unknown-plan9
exit 0 ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
exit 0 ;;
@@ -1176,12 +1203,6 @@ EOF
*:ITS:*:*)
echo pdp10-unknown-its
exit 0 ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1302,8 +1323,8 @@ main ()
}
EOF
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
# Apollos put the system type in the environment.
@@ -1335,17 +1356,6 @@ then
esac
fi
-# NOTE -- Begin fallback cases added for bash -- NOTE
-case "$UNAME" in
-uts) echo uts-amdahl-sysv${UNAME_RELEASE}; exit 0 ;;
-esac
-
-if [ -f /bin/fxc.info ]; then
- echo fxc-alliant-concentrix
- exit 0
-fi
-# NOTE -- End fallback cases added for bash -- NOTE
-
cat >&2 <<EOF
$0: unable to guess system type
diff --git a/support/config.rpath b/support/config.rpath
new file mode 100755
index 0000000..fa24bfc
--- /dev/null
+++ b/support/config.rpath
@@ -0,0 +1,548 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+# Copyright 1996-2003 Free Software Foundation, Inc.
+# Taken from GNU libtool, 2001
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+# than 256 bytes, otherwise the compiler driver will dump core. The only
+# known workaround is to choose shorter directory names for the build
+# directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+ wl='-Wl,'
+else
+ case "$host_os" in
+ aix*)
+ wl='-Wl,'
+ ;;
+ mingw* | pw32* | os2*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ wl='-Wl,'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ wl='-Wl,'
+ ;;
+ newsos6)
+ ;;
+ linux*)
+ case $CC in
+ icc|ecc)
+ wl='-Wl,'
+ ;;
+ ccc)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ osf3* | osf4* | osf5*)
+ wl='-Wl,'
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ wl='-Wl,'
+ ;;
+ sunos4*)
+ wl='-Qoption ld '
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ wl='-Wl,'
+ ;;
+ sysv4*MP*)
+ ;;
+ uts4*)
+ ;;
+ esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ case "$host_os" in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ netbsd*)
+ ;;
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ sunos4*)
+ hardcode_direct=yes
+ ;;
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ if test "$ld_shlibs" = yes; then
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ fi
+else
+ case "$host_os" in
+ aix3*)
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ else
+ aix_use_runtimelinking=no
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+ fi
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+ fi
+ # Begin _LT_AC_SYS_LIBPATH_AIX.
+ echo 'int main () { return 0; }' > conftest.c
+ ${CC} ${LDFLAGS} conftest.c -o conftest
+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ fi
+ if test -z "$aix_libpath"; then
+ aix_libpath="/usr/lib:/lib"
+ fi
+ rm -f conftest.c conftest
+ # End _LT_AC_SYS_LIBPATH_AIX.
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ else
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ fi
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+ bsdi4*)
+ ;;
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ libext=lib
+ ;;
+ darwin* | rhapsody*)
+ if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
+ hardcode_direct=no
+ fi
+ ;;
+ dgux*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+ freebsd2.2*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ freebsd2*)
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ freebsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ hpux10* | hpux11*)
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=no
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+ irix5* | irix6* | nonstopux*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ netbsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ newsos6)
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ openbsd*)
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ osf3*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ osf4* | osf5*)
+ if test "$GCC" = yes; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ # Both cc and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ sunos4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ sysv4)
+ case $host_vendor in
+ sni)
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ hardcode_direct=no
+ ;;
+ motorola)
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ ;;
+ sysv4.3*)
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ ld_shlibs=yes
+ fi
+ ;;
+ sysv4.2uw2*)
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ ;;
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ ;;
+ sysv5*)
+ hardcode_libdir_flag_spec=
+ ;;
+ uts4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+libname_spec='lib$name'
+case "$host_os" in
+ aix3*)
+ ;;
+ aix4* | aix5*)
+ ;;
+ amigaos*)
+ ;;
+ beos*)
+ ;;
+ bsdi4*)
+ ;;
+ cygwin* | mingw* | pw32*)
+ shrext=.dll
+ ;;
+ darwin* | rhapsody*)
+ shrext=.dylib
+ ;;
+ dgux*)
+ ;;
+ freebsd1*)
+ ;;
+ freebsd*)
+ ;;
+ gnu*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case "$host_cpu" in
+ ia64*)
+ shrext=.so
+ ;;
+ hppa*64*)
+ shrext=.sl
+ ;;
+ *)
+ shrext=.sl
+ ;;
+ esac
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case "$host_os" in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+ *) libsuff= shlibsuff= ;;
+ esac
+ ;;
+ esac
+ ;;
+ linux*oldld* | linux*aout* | linux*coff*)
+ ;;
+ linux*)
+ ;;
+ netbsd*)
+ ;;
+ newsos6)
+ ;;
+ nto-qnx)
+ ;;
+ openbsd*)
+ ;;
+ os2*)
+ libname_spec='$name'
+ shrext=.dll
+ ;;
+ osf3* | osf4* | osf5*)
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ ;;
+ sunos4*)
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ ;;
+ sysv4*MP*)
+ ;;
+ uts4*)
+ ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/support/config.sub b/support/config.sub
index 538dc09..aefb7e1 100644..100755
--- a/support/config.sub
+++ b/support/config.sub
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
-timestamp='2002-03-07'
+timestamp='2002-11-30'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -118,7 +118,7 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -229,24 +229,34 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | c4x | clipper \
- | d10v | d30v | dsp16xx \
- | fr30 \
+ | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
+ | ip2k \
| m32r | m68000 | m68k | m88k | mcore \
- | mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el | mips64vr4300 \
- | mips64vr4300el | mips64vr5000 | mips64vr5000el \
- | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
- | mipsisa32 | mipsisa64 \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| ns16k | ns32k \
| openrisc | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[34] | sh[34]eb | shbe | shle | sh64 \
+ | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
| strongarm \
| tahoe | thumb | tic80 | tron \
@@ -267,7 +277,7 @@ case $basic_machine in
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
+ i*86 | x86_64 | amd64)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
@@ -281,34 +291,46 @@ case $basic_machine in
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armv*-* \
+ | amd64-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
| bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c54x-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
| clipper-* | cydra-* \
- | d10v-* | d30v-* \
+ | d10v-* | d30v-* | dlx-* \
| elxsi-* \
- | f30[01]-* | f700-* | fr30-* | fx80-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* \
| m32r-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | mcore-* \
- | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
- | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \
- | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39 | mipstx39el \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
+ | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
+ | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
@@ -316,14 +338,6 @@ case $basic_machine in
| ymp-* \
| z8k-*)
;;
-
- # NOTE -- BEGIN cases added for Bash -- NOTE
- butterfly-bbn* | cadmus-* | ews*-nec | masscomp-masscomp \
- | tandem-* | symmetric-* | drs6000-icl | *-*ardent | concurrent-* \
- | ksr1-* | esa-ibm | fxc-alliant | *370-amdahl | sx[45]*-nec )
- ;;
- # NOTE -- END cases added for Bash -- NOTE
-
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
@@ -457,7 +471,7 @@ case $basic_machine in
basic_machine=elxsi-elxsi
os=-bsd
;;
- encore | umax | mmax | multimax) # bash
+ encore | umax | mmax)
basic_machine=ns32k-encore
;;
es1800 | OSE68k | ose68k | ose | OSE)
@@ -498,9 +512,6 @@ case $basic_machine in
basic_machine=m88k-harris
os=-sysv3
;;
- hbullx20-bull)
- basic_machine=m68k-bull # bash
- ;;
hp300-*)
basic_machine=m68k-hp
;;
@@ -552,9 +563,6 @@ case $basic_machine in
basic_machine=hppa1.1-hp
os=-proelf
;;
- ibm032-*)
- basic_machine=ibmrt-ibm # bash
- ;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
@@ -575,14 +583,6 @@ case $basic_machine in
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
- i386-go32)
- basic_machine=i386-pc # bash
- os=-go32
- ;;
- i386-mingw32)
- basic_machine=i386-pc # bash
- os=-mingw32
- ;;
i386mach)
basic_machine=i386-mach
os=-mach
@@ -605,12 +605,9 @@ case $basic_machine in
basic_machine=m68k-isi
os=-sysv
;;
- luna88k-omron* | m88k-omron*) # bash
+ m88k-omron*)
basic_machine=m88k-omron
;;
- magicstation*)
- basic_machine=magicstation-unknown # bash
- ;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
@@ -723,10 +720,6 @@ case $basic_machine in
nsr-tandem)
basic_machine=nsr-tandem
;;
- odt | odt3 | odt4) # SCO Open Desktop
- basic_machine=i386-pc # bash
- os=-sco3.2v4
- ;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
@@ -739,10 +732,6 @@ case $basic_machine in
basic_machine=m68000-ericsson
os=-ose
;;
- osr5 | sco5) # SCO Open Server
- basic_machine=i386-pc # bash
- os=-sco3.2v5
- ;;
os68k)
basic_machine=m68k-none
os=-os68k
@@ -761,13 +750,13 @@ case $basic_machine in
pbb)
basic_machine=m68k-tti
;;
- pc532 | pc532-*)
+ pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
- pentiumpro | p6 | 6x86 | athlon)
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc
;;
pentiumii | pentium2)
@@ -788,22 +777,22 @@ case $basic_machine in
power) basic_machine=power-ibm
;;
ppc) basic_machine=powerpc-unknown
- ;;
+ ;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
- ;;
+ ;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
- ;;
+ ;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
- ;;
+ ;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
@@ -834,6 +823,12 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
sequent)
basic_machine=i386-sequent
;;
@@ -899,7 +894,7 @@ case $basic_machine in
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
- sv1)
+ sv1)
basic_machine=sv1-cray
os=-unicos
;;
@@ -919,6 +914,10 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
+ tic4x | c4x*)
+ basic_machine=tic4x-unknown
+ os=-coff
+ ;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
@@ -944,14 +943,6 @@ case $basic_machine in
basic_machine=a29k-nyu
os=-sym1
;;
- uw2 | unixware | unixware2) # bash
- basic_machine=i386-pc
- os=-sysv4.2uw2.1
- ;;
- uw7 | unixware7) # bash
- basic_machine=i386-pc
- os=-sysv5uw7
- ;;
v810 | necv810)
basic_machine=v810-nec
os=-none
@@ -965,8 +956,8 @@ case $basic_machine in
os=-vms
;;
vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
+ basic_machine=f301-fujitsu
+ ;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
@@ -987,11 +978,7 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xps | xps100)
+ xps | xps100)
basic_machine=xps100-honeywell
;;
ymp)
@@ -1037,7 +1024,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh3eb | sh4eb)
+ sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
basic_machine=sh-unknown
;;
sh64)
@@ -1046,7 +1033,7 @@ case $basic_machine in
sparc | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
- cydra)
+ cydra)
basic_machine=cydra-cydrome
;;
orion)
@@ -1061,10 +1048,6 @@ case $basic_machine in
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
- c4x*)
- basic_machine=c4x-none
- os=-coff
- ;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
@@ -1103,9 +1086,6 @@ case $os in
-svr4*)
os=-sysv4
;;
- -unixware7*) # bash
- os=-sysv5uw7
- ;;
-unixware*)
os=-sysv4.2uw
;;
@@ -1130,17 +1110,14 @@ case $os in
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova*)
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
- # NOTE -- BEGIN CASES ADDED FOR Bash -- NOTE
- -powerux* | -superux*)
- ;;
- # NOTE -- END CASES ADDED FOR Bash -- NOTE
-qnx*)
case $basic_machine in
x86-* | i*86-*)
@@ -1150,8 +1127,10 @@ case $os in
;;
esac
;;
+ -nto-qnx*)
+ ;;
-nto*)
- os=-nto-qnx
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
@@ -1203,7 +1182,7 @@ case $os in
os=-rtmk-nova
;;
-ns2 )
- os=-nextstep2
+ os=-nextstep2
;;
-nsk*)
os=-nsk
@@ -1230,9 +1209,6 @@ case $os in
-sysvr4)
os=-sysv4
;;
- -sysvr5) # bash
- os=-sysv5
- ;;
# This must come after -sysvr4.
-sysv*)
;;
@@ -1245,8 +1221,8 @@ case $os in
-xenix)
os=-xenix
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
;;
-none)
;;
@@ -1283,7 +1259,7 @@ case $basic_machine in
pdp10-*)
os=-tops20
;;
- pdp11-*)
+ pdp11-*)
os=-none
;;
*-dec | vax-*)
@@ -1376,19 +1352,19 @@ case $basic_machine in
*-next)
os=-nextstep3
;;
- *-gould)
+ *-gould)
os=-sysv
;;
- *-highlevel)
+ *-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
- *-sgi)
+ *-sgi)
os=-irix
;;
- *-siemens)
+ *-siemens)
os=-sysv4
;;
*-masscomp)
@@ -1427,9 +1403,6 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
- -lynxos*) # bash
- vendor=lynx
- ;;
-aix*)
vendor=ibm
;;
@@ -1463,7 +1436,7 @@ case $basic_machine in
-ptx*)
vendor=sequent
;;
- -vxsim* | -vxworks*)
+ -vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
-aux*)
diff --git a/support/mkinstalldirs b/support/mkinstalldirs
new file mode 100755
index 0000000..d2d5f21
--- /dev/null
+++ b/support/mkinstalldirs
@@ -0,0 +1,111 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage" 1>&2
+ exit 0
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+case $dirmode in
+ '')
+ if mkdir -p -- . 2>/dev/null; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ fi
+ ;;
+esac
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=""
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# End:
+# mkinstalldirs ends here
diff --git a/support/shlib-install b/support/shlib-install
index 654cfa9..a15b7d8 100755
--- a/support/shlib-install
+++ b/support/shlib-install
@@ -88,24 +88,38 @@ case "$LIBNAME" in
LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]\.[0-9]:\1:'` # libname.dylib
esac
-INSTALL_LINK1='cd $INSTALLDIR ; ln -s $LIBNAME $LINK1'
-INSTALL_LINK2='cd $INSTALLDIR ; ln -s $LIBNAME $LINK2'
+INSTALL_LINK1='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK1'
+INSTALL_LINK2='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK2'
#
# Create symlinks to the installed library. This section is incomplete.
#
case "$host_os" in
-*linux*|bsdi4*|*gnu*|darwin*|macosx*)
+*linux*)
# libname.so.M -> libname.so.M.N
${echo} ${RM} ${INSTALLDIR}/$LINK2
if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
+ eval $INSTALL_LINK2
+ fi
+
+ # libname.so -> libname.so.M
+ ${echo} ${RM} ${INSTALLDIR}/$LINK1
+ if [ -z "$uninstall" ]; then
+ ${echo} cd $INSTALLDIR && ${echo} ${LN} $LINK2 $LINK1
+ fi
+ ;;
+
+bsdi4*|*gnu*|darwin*|macosx*|k*bsd*-gnu)
+ # libname.so.M -> libname.so.M.N
+ ${echo} ${RM} ${INSTALLDIR}/$LINK2
+ if [ -z "$uninstall" ]; then
+ eval $INSTALL_LINK2
fi
# libname.so -> libname.so.M.N
${echo} ${RM} ${INSTALLDIR}/$LINK1
if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+ eval $INSTALL_LINK1
fi
;;
@@ -113,7 +127,7 @@ solaris2*|aix4.[2-9]*|osf*|irix[56]*|sysv[45]*|dgux*)
# libname.so -> libname.so.M
${echo} ${RM} ${INSTALLDIR}/$LINK1
if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+ eval $INSTALL_LINK1
fi
;;
@@ -124,19 +138,19 @@ freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
# libname.so -> libname.so.M
${echo} ${RM} ${INSTALLDIR}/$LINK1
if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+ eval $INSTALL_LINK1
fi
else
# libname.so.M -> libname.so.M.N
${echo} ${RM} ${INSTALLDIR}/$LINK2
if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
+ eval $INSTALL_LINK2
fi
# libname.so -> libname.so.M.N
${echo} ${RM} ${INSTALLDIR}/$LINK1
if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
+ eval $INSTALL_LINK1
fi
fi
;;
@@ -145,8 +159,7 @@ hpux1*)
# libname.sl -> libname.M
${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
if [ -z "$uninstall" ]; then
-# ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}.sl
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}
+ eval $INSTALL_LINK1
fi
;;
diff --git a/support/shobj-conf b/support/shobj-conf
index 6bd7fb1..4c13717 100755
--- a/support/shobj-conf
+++ b/support/shobj-conf
@@ -97,7 +97,7 @@ sunos5*|solaris2*)
;;
# All versions of Linux or the semi-mythical GNU Hurd.
-linux*|gnu*)
+linux*-*|gnu*-*|k*bsd*-gnu-*)
SHOBJ_CFLAGS=-fPIC
SHOBJ_LD='${CC}'
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
@@ -138,17 +138,23 @@ darwin*|macosx*)
SHOBJ_STATUS=unsupported
SHLIB_STATUS=supported
- SHOBJ_CFLAGS='-dynamic -fno-common'
+ SHOBJ_CFLAGS='-fno-common'
- SHOBJ_LD=/usr/bin/libtool
+ SHOBJ_LD='${CC}'
SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
SHLIB_LIBSUFF='dylib'
- SHOBJ_LDFLAGS='-dynamic'
- SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ case "${host_os}" in
+ darwin7*) SHOBJ_LDFLAGS=''
+ SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ ;;
+ *) SHOBJ_LDFLAGS='-dynamic'
+ SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ ;;
+ esac
- SHLIB_LIBS='-lSystem'
+ SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
;;
openbsd*)
@@ -296,6 +302,8 @@ hpux10*-*gcc*)
# must use gcc; the bundled cc cannot compile PIC code
SHOBJ_CFLAGS='-fpic'
SHOBJ_LD='${CC}'
+ # if you have problems linking here, moving the `-Wl,+h,$@' from
+ # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
diff --git a/terminal.c b/terminal.c
index f3f5b6c..b95aea8 100644
--- a/terminal.c
+++ b/terminal.c
@@ -347,11 +347,7 @@ get_term_capabilities (bp)
register int i;
for (i = 0; i < NUM_TC_STRINGS; i++)
-# ifdef __LCC__
*(tc_strings[i].tc_value) = tgetstr ((char *)tc_strings[i].tc_var, bp);
-# else
- *(tc_strings[i].tc_value) = tgetstr (tc_strings[i].tc_var, bp);
-# endif
#endif
tcap_initialized = 1;
}
@@ -489,13 +485,13 @@ bind_termcap_arrow_keys (map)
xkeymap = _rl_keymap;
_rl_keymap = map;
- _rl_bind_if_unbound (_rl_term_ku, rl_get_previous_history);
- _rl_bind_if_unbound (_rl_term_kd, rl_get_next_history);
- _rl_bind_if_unbound (_rl_term_kr, rl_forward);
- _rl_bind_if_unbound (_rl_term_kl, rl_backward);
+ rl_bind_keyseq_if_unbound (_rl_term_ku, rl_get_previous_history);
+ rl_bind_keyseq_if_unbound (_rl_term_kd, rl_get_next_history);
+ rl_bind_keyseq_if_unbound (_rl_term_kr, rl_forward_char);
+ rl_bind_keyseq_if_unbound (_rl_term_kl, rl_backward_char);
- _rl_bind_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
- _rl_bind_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
+ rl_bind_keyseq_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
+ rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
_rl_keymap = xkeymap;
}
diff --git a/text.c b/text.c
index 2a7b724..d917e99 100644
--- a/text.c
+++ b/text.c
@@ -1,6 +1,6 @@
/* text.c -- text handling commands for readline. */
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -170,6 +170,9 @@ _rl_fix_point (fix_mark_too)
}
#undef _RL_FIX_POINT
+/* Replace the contents of the line buffer between START and END with
+ TEXT. The operation is undoable. To replace the entire line in an
+ undoable mode, use _rl_replace_text(text, 0, rl_end); */
int
_rl_replace_text (text, start, end)
const char *text;
@@ -801,13 +804,10 @@ _rl_overwrite_char (count, c)
k = _rl_read_mbstring (c, mbkey, MB_LEN_MAX);
#endif
+ rl_begin_undo_group ();
+
for (i = 0; i < count; i++)
{
- rl_begin_undo_group ();
-
- if (rl_point < rl_end)
- rl_delete (1, c);
-
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
rl_insert_text (mbkey);
@@ -815,9 +815,12 @@ _rl_overwrite_char (count, c)
#endif
_rl_insert_char (1, c);
- rl_end_undo_group ();
+ if (rl_point < rl_end)
+ rl_delete (1, c);
}
+ rl_end_undo_group ();
+
return 0;
}
@@ -877,7 +880,8 @@ rl_newline (count, key)
if (rl_editing_mode == vi_mode)
{
_rl_vi_done_inserting ();
- _rl_vi_reset_last ();
+ if (_rl_vi_textmod_command (_rl_vi_last_command) == 0) /* XXX */
+ _rl_vi_reset_last ();
}
#endif /* VI_MODE */
@@ -935,9 +939,12 @@ _rl_overwrite_rubout (count, key)
rl_delete_text (opoint, rl_point);
/* Emacs puts point at the beginning of the sequence of spaces. */
- opoint = rl_point;
- _rl_insert_char (l, ' ');
- rl_point = opoint;
+ if (rl_point < rl_end)
+ {
+ opoint = rl_point;
+ _rl_insert_char (l, ' ');
+ rl_point = opoint;
+ }
rl_end_undo_group ();
diff --git a/util.c b/util.c
index c7bd360..a632d81 100644
--- a/util.c
+++ b/util.c
@@ -250,7 +250,7 @@ _rl_strpbrk (string1, string2)
{
v = _rl_get_char_len (string1, &ps);
if (v > 1)
- string += v - 1; /* -1 to account for auto-increment in loop */
+ string1 += v - 1; /* -1 to account for auto-increment in loop */
}
#endif
}
diff --git a/vi_mode.c b/vi_mode.c
index 8930364..74d8acb 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, 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -63,6 +63,8 @@
#define member(c, s) ((c) ? (char *)strchr ((s), (c)) != (char *)NULL : 0)
#endif
+int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
+
/* Non-zero means enter insertion mode. */
static int _rl_vi_doing_insert;
@@ -83,7 +85,6 @@ static int vi_continued_command;
static char *vi_insert_buffer;
static int vi_insert_buffer_size;
-static int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
static int _rl_vi_last_repeat = 1;
static int _rl_vi_last_arg_sign = 1;
static int _rl_vi_last_motion;
@@ -135,6 +136,16 @@ _rl_vi_set_last (key, repeat, sign)
_rl_vi_last_arg_sign = sign;
}
+/* A convenience function that calls _rl_vi_set_last to save the last command
+ information and enters insertion mode. */
+void
+rl_vi_start_inserting (key, repeat, sign)
+ int key, repeat, sign;
+{
+ _rl_vi_set_last (key, repeat, sign);
+ rl_vi_insertion_mode (1, key);
+}
+
/* Is the command C a VI mode text modification command? */
int
_rl_vi_textmod_command (c)
@@ -297,10 +308,8 @@ rl_vi_complete (ignore, key)
rl_complete (0, key);
if (key == '*' || key == '\\')
- {
- _rl_vi_set_last (key, 1, rl_arg_sign);
- rl_vi_insertion_mode (1, key);
- }
+ rl_vi_start_inserting (key, 1, rl_arg_sign);
+
return (0);
}
@@ -310,8 +319,7 @@ rl_vi_tilde_expand (ignore, key)
int ignore, key;
{
rl_tilde_expand (0, key);
- _rl_vi_set_last (key, 1, rl_arg_sign); /* XXX */
- rl_vi_insertion_mode (1, key);
+ rl_vi_start_inserting (key, 1, rl_arg_sign);
return (0);
}
@@ -429,7 +437,8 @@ rl_vi_eWord (count, ignore)
/* Move to the next non-whitespace character (to the start of the
next word). */
- while (++rl_point < rl_end && whitespace (rl_line_buffer[rl_point]));
+ while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
+ rl_point++;
if (rl_point && rl_point < rl_end)
{
@@ -640,7 +649,7 @@ _rl_vi_done_inserting ()
}
else
{
- if (_rl_vi_last_key_before_insert == 'i' && rl_undo_list)
+ if ((_rl_vi_last_key_before_insert == 'i' || _rl_vi_last_key_before_insert == 'a') && rl_undo_list)
_rl_vi_save_insert (rl_undo_list);
/* XXX - Other keys probably need to be checked. */
else if (_rl_vi_last_key_before_insert == 'C')
@@ -704,7 +713,7 @@ _rl_vi_change_mbchar_case (count)
/* Vi is kind of strange here. */
if (wc)
{
- mblen = wctomb (mb, wc);
+ mblen = wcrtomb (mb, wc, &ps);
if (mblen >= 0)
mb[mblen] = '\0';
rl_begin_undo_group ();
@@ -725,12 +734,13 @@ int
rl_vi_change_case (count, ignore)
int count, ignore;
{
- char c = 0;
+ int c, p;
/* Don't try this on an empty line. */
if (rl_point >= rl_end)
return (0);
+ c = 0;
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
return (_rl_vi_change_mbchar_case (count));
@@ -752,8 +762,11 @@ rl_vi_change_case (count, ignore)
/* Vi is kind of strange here. */
if (c)
{
+ p = rl_point;
rl_begin_undo_group ();
- rl_delete (1, c);
+ rl_vi_delete (1, c);
+ if (rl_point < p) /* Did we retreat at EOL? */
+ rl_point++;
_rl_insert_char (1, c);
rl_end_undo_group ();
rl_vi_check ();
@@ -771,7 +784,9 @@ rl_vi_put (count, key)
if (!_rl_uppercase_p (key) && (rl_point + 1 <= rl_end))
rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
- rl_yank (1, key);
+ while (count--)
+ rl_yank (1, key);
+
rl_backward_char (1, key);
return (0);
}
@@ -819,6 +834,7 @@ rl_vi_domove (key, nextkey)
{
save = rl_numeric_arg;
rl_numeric_arg = _rl_digit_value (c);
+ rl_explicit_arg = 1;
rl_digit_loop1 ();
rl_numeric_arg *= save;
RL_SETSTATE(RL_STATE_MOREINPUT);
@@ -1017,8 +1033,7 @@ rl_vi_change_to (count, key)
/* `C' does not save the text inserted for undoing or redoing. */
if (_rl_uppercase_p (key) == 0)
_rl_vi_doing_insert = 1;
- _rl_vi_set_last (key, count, rl_arg_sign);
- rl_vi_insertion_mode (1, key);
+ rl_vi_start_inserting (key, rl_numeric_arg, rl_arg_sign);
}
return (0);
@@ -1267,14 +1282,14 @@ rl_vi_bracktype (c)
/* XXX - think about reading an entire mbchar with _rl_read_mbchar and
inserting it in one bunch instead of the loop below (like in
- rl_vi_char_search or _rl_vi_change_mbchar_case. Set c to mbchar[0]
+ rl_vi_char_search or _rl_vi_change_mbchar_case). Set c to mbchar[0]
for test against 033 or ^C. Make sure that _rl_read_mbchar does
this right. */
int
rl_vi_change_char (count, key)
int count, key;
{
- int c;
+ int c, p;
if (vi_redoing)
c = _rl_vi_last_replacement;
@@ -1288,11 +1303,11 @@ rl_vi_change_char (count, key)
if (c == '\033' || c == CTRL ('C'))
return -1;
+ rl_begin_undo_group ();
while (count-- && rl_point < rl_end)
{
- rl_begin_undo_group ();
-
- rl_delete (1, c);
+ p = rl_point;
+ rl_vi_delete (1, c);
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
while (_rl_insert_char (1, c))
@@ -1303,12 +1318,14 @@ rl_vi_change_char (count, key)
}
else
#endif
- _rl_insert_char (1, c);
- if (count == 0)
- rl_backward_char (1, c);
-
- rl_end_undo_group ();
+ {
+ if (rl_point < p) /* Did we retreat at EOL? */
+ rl_point++;
+ _rl_insert_char (1, c);
+ }
}
+ rl_end_undo_group ();
+
return (0);
}
@@ -1318,7 +1335,7 @@ rl_vi_subst (count, key)
{
/* If we are redoing, rl_vi_change_to will stuff the last motion char */
if (vi_redoing == 0)
- rl_stuff_char ((key == 'S') ? 'c' : ' '); /* `S' == `cc', `s' == `c ' */
+ rl_stuff_char ((key == 'S') ? 'c' : 'l'); /* `S' == `cc', `s' == `cl' */
return (rl_vi_change_to (count, 'c'));
}