summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2011-11-23 18:47:16 -0500
committerChet Ramey <chet.ramey@case.edu>2011-11-23 18:47:16 -0500
commitdb4c00d880b67af735af9b18835ae900f5be9e53 (patch)
tree8dfe99254425c933b2b9024e06faa506f3640359
parentfe34a312c8be645944828402351bd1192972586b (diff)
downloadreadline-db4c00d880b67af735af9b18835ae900f5be9e53.tar.gz
Readline-2.2 import
-rw-r--r--CHANGELOG77
-rw-r--r--CHANGES66
-rw-r--r--MANIFEST4
-rw-r--r--MANIFEST.doc16
-rw-r--r--Makefile.in129
-rw-r--r--README14
-rw-r--r--aclocal.m4350
-rw-r--r--bind.c291
-rw-r--r--callback.c8
-rw-r--r--chardefs.h15
-rw-r--r--complete.c828
-rw-r--r--config.h.in7
-rwxr-xr-xconfigure512
-rw-r--r--configure.in32
-rw-r--r--display.c11
-rw-r--r--doc/Makefile.in8
-rw-r--r--doc/hist.texinfo17
-rw-r--r--doc/history.dvibin50348 -> 35068 bytes
-rw-r--r--doc/history.html27
-rw-r--r--doc/history.info168
-rw-r--r--doc/history.ps3517
-rw-r--r--doc/history_toc.html6
-rw-r--r--doc/hsuser.texinfo122
-rw-r--r--doc/readline.0788
-rw-r--r--doc/readline.3127
-rw-r--r--doc/readline.dvibin182704 -> 185100 bytes
-rw-r--r--doc/readline.html719
-rw-r--r--doc/readline.info901
-rw-r--r--doc/readline.ps8552
-rw-r--r--doc/readline_toc.html8
-rw-r--r--doc/rlman.texinfo17
-rw-r--r--doc/rltech.texinfo10
-rw-r--r--doc/rluser.texinfo247
-rwxr-xr-xdoc/texi2html2
-rw-r--r--doc/texinfo.tex1205
-rw-r--r--examples/Makefile.in25
-rw-r--r--examples/rl.c4
-rw-r--r--examples/rltest.c23
-rw-r--r--funmap.c4
-rw-r--r--histexpand.c46
-rw-r--r--histfile.c53
-rw-r--r--history.c3
-rw-r--r--histsearch.c3
-rw-r--r--isearch.c17
-rw-r--r--keymaps.h4
-rw-r--r--kill.c98
-rw-r--r--nls.c3
-rw-r--r--parens.c2
-rw-r--r--readline.c18
-rw-r--r--readline.h16
-rw-r--r--rltty.h12
-rw-r--r--rlwinsize.h58
-rw-r--r--shell.c9
-rwxr-xr-xsupport/config.guess275
-rwxr-xr-xsupport/config.sub5
-rw-r--r--terminal.c23
-rw-r--r--tilde.c5
-rw-r--r--util.c62
-rw-r--r--vi_mode.c7
59 files changed, 11842 insertions, 7734 deletions
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 0000000..8094590
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,77 @@
+[Readline-specific changelog. Descriptions of changes to the source are
+ found in the bash changelog.]
+
+ 6/9
+ ---
+Makefile.in
+ - quote value of ${INSTALL_DATA} when passing it to makes in
+ subdirectories
+
+ 7/1
+ ---
+Makefile.in
+ - don't pass INSTALL_DATA to a make in the `doc' subdirectory; let
+ autoconf set the value itself in the Makefile
+ - removed a stray `-' before $(RANLIB) in the `install' recipe
+
+doc/Makefile.in
+ - add a VPATH assignment so the documentation is not remade if it's
+ already up-to-date in the distribution
+
+configure.in
+ - call AC_SUBST(LOCAL_LDFLAGS), since Makefile.in contains
+ @LOCAL_LDFLAGS@
+
+ 7/9
+ ---
+
+config.h.in
+ - add define lines for STRUCT_WINSIZE_IN_SYS_IOCTL and
+ STRUCT_WINSIZE_IN_TERMIOS
+
+configure.in
+ - call BASH_STRUCT_WINSIZE to look for the definition of
+ `struct winsize'
+
+ 7/17
+ ----
+configure.in
+ - call AC_MINIX
+
+config.h.in
+ - add define line for AC_MINIX
+
+ 7/18
+ ----
+Makefile.in
+ - add `install-shared' and `uninstall-shared' targets
+
+ 8/4
+ ---
+Makefile.in
+ - install and uninstall libhistory.a in the `install' and
+ `uninstall' targets
+
+ 9/4
+ ---
+configure.in
+ - bumped LIBVERSION up to 2.1.1, indicating that this is patch
+ level 1 to release 2.1
+
+
+ 9/16
+ ----
+Makefile.in
+ - `make distclean' now descends into the `examples' subdir
+
+doc/Makefile.in
+ - the `distclean' and `maintainer-clean' targets should remove
+ Makefile
+
+examples/Makefile.in
+ - added the various clean targets
+
+ 4/2
+ ---
+configure.in
+ - bumped LIBVERSION up to 2.2
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..29122f9
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,66 @@
+This document details the changes between this version, readline-2.2,
+and the previous version, readline-2.1.
+
+1. Changes to Readline
+
+a. Added a missing `extern' to a declaration in readline.h that kept
+ readline from compiling cleanly on some systems.
+
+b. The history file is now opened with mode 0600 when it is written for
+ better security.
+
+c. Changes were made to the SIGWINCH handling code so that prompt redisplay
+ is done better.
+
+d. ^G now interrupts incremental searches correctly.
+
+e. A bug that caused a core dump when the set of characters to be quoted
+ when completing words was empty was fixed.
+
+f. Fixed a problem in the readline test program rltest.c that caused a core
+ dump.
+
+g. The code that handles parser directives in inputrc files now displays
+ more error messages.
+
+h. The history expansion code was fixed so that the appearance of the
+ history comment character at the beginning of a word inhibits history
+ expansion for that word and the rest of the input line.
+
+i. The code that prints completion listings now behaves better if one or
+ more of the filenames contains non-printable characters.
+
+j. The time delay when showing matching parentheses is now 0.5 seconds.
+
+
+2. New Features in Readline
+
+a. There is now an option for `iterative' yank-last-arg handline, so a user
+ can keep entering `M-.', yanking the last argument of successive history
+ lines.
+
+b. New variable, `print-completions-horizontally', which causes completion
+ matches to be displayed across the screen (like `ls -x') rather than up
+ and down the screen (like `ls').
+
+c. New variable, `completion-ignore-case', which causes filename completion
+ and matching to be performed case-insensitively.
+
+d. There is a new bindable command, `magic-space', which causes history
+ expansion to be performed on the current readline buffer and a space to
+ be inserted into the result.
+
+e. There is a new bindable command, `menu-complete', which enables tcsh-like
+ menu completion (successive executions of menu-complete insert a single
+ completion match, cycling through the list of possible completions).
+
+f. There is a new bindable command, `paste-from-clipboard', for use on Win32
+ systems, to insert the text from the Win32 clipboard into the editing
+ buffer.
+
+g. The key sequence translation code now understands printf-style backslash
+ escape sequences, including \NNN octal escapes. These escape sequences
+ may be used in key sequence definitions or macro values.
+
+h. An `$include' inputrc file parser directive has been added.
+
diff --git a/MANIFEST b/MANIFEST
index 5e68586..e9e1c40 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -8,13 +8,14 @@ COPYING f
README f
MANIFEST f
INSTALL f
+CHANGELOG f
+CHANGES f
aclocal.m4 f
acconfig.h f
config.h.in f
configure f
configure.in f
Makefile.in f
-ChangeLog f
ansi_stdlib.h f
chardefs.h f
history.h f
@@ -27,6 +28,7 @@ readline.h f
rlconf.h f
rldefs.h f
rltty.h f
+rlwinsize.h f
tcap.h f
tilde.h f
bind.c f
diff --git a/MANIFEST.doc b/MANIFEST.doc
new file mode 100644
index 0000000..ed27cb3
--- /dev/null
+++ b/MANIFEST.doc
@@ -0,0 +1,16 @@
+#
+# Master Manifest file for documentation-only distribution
+#
+doc d
+MANIFEST.doc f
+doc/readline.ps f
+doc/history.ps f
+doc/readline.dvi f
+doc/history.dvi f
+doc/readline.info f
+doc/history.info f
+doc/readline.html f
+doc/readline_toc.html f
+doc/history.html f
+doc/history_toc.html f
+doc/readline.0 f
diff --git a/Makefile.in b/Makefile.in
index 3d2c68f..f4db3bb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -21,7 +21,7 @@ RL_LIBRARY_NAME = readline
srcdir = @srcdir@
VPATH = .:@srcdir@
top_srcdir = @top_srcdir@
-BUILD_DIR = .
+BUILD_DIR = @BUILD_DIR@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -88,6 +88,8 @@ MINOR= .0
# The name of the main library target.
LIBRARY_NAME = libreadline.a
+STATIC_LIBS = libreadline.a libhistory.a
+
SHARED_READLINE = libreadline.so.$(MAJOR)$(MINOR)
SHARED_HISTORY = libhistory.so.$(MAJOR)$(MINOR)
SHARED_LIBS = $(SHARED_READLINE) $(SHARED_HISTORY)
@@ -130,12 +132,17 @@ DOCSUPPORT = doc/Makefile
DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT)
CREATED_MAKEFILES = Makefile doc/Makefile examples/Makefile
+CREATED_CONFIGURE = config.status config.h config.cache config.log \
+ stamp-config stamp-h
+CREATED_TAGS = TAGS tags
INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h
##########################################################################
-all: libreadline.a libhistory.a
+all: static
+
+static: $(STATIC_LIBS)
shared: $(SHARED_LIBS)
libreadline.a: $(OBJECTS)
@@ -183,6 +190,10 @@ documentation: force
-test -d doc || mkdir doc
-( cd doc && $(MAKE) $(MFLAGS) )
+examples: force
+ -test -d examples || mkdir examples
+ -(cd examples && ${MAKE} ${MFLAGS} all )
+
force:
install: installdirs libreadline.a
@@ -191,10 +202,13 @@ install: installdirs libreadline.a
done
-$(MV) $(libdir)/libreadline.a $(libdir)/libreadline.old
$(INSTALL_DATA) libreadline.a $(libdir)/libreadline.a
- -test -n "$(RANLIB)" && -$(RANLIB) -t $(libdir)/libreadline.a
+ -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libreadline.a
+ -$(MV) $(libdir)/libreadline.a $(libdir)/libhistory.old
+ $(INSTALL_DATA) libhistory.a $(libdir)/libhistory.a
+ -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libhistory.a
-( if test -d doc ; then \
cd doc && \
- ${MAKE} ${MFLAGS} infodir=$(infodir) INSTALL_DATA=$(INSTALL_DATA) $@; \
+ ${MAKE} ${MFLAGS} infodir=$(infodir) $@; \
fi )
installdirs: $(srcdir)/support/mkdirs
@@ -205,7 +219,16 @@ uninstall:
-test -n "$(includedir)" && cd $(includedir)/readline && \
${RM} ${INSTALLED_HEADERS}
-test -n "$(libdir)" && cd $(libdir) && \
- ${RM} libreadline.a libreadline.old $(SHARED_LIBS)
+ ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS)
+
+install-shared: installdirs shared
+ -$(MV) $(libdir)/$(SHARED_HISTORY) $(libdir)/$(SHARED_HISTORY).old
+ $(INSTALL_DATA) $(SHARED_HISTORY) $(libdir)/$(SHARED_HISTORY)
+ -$(MV) $(libdir)/$(SHARED_READLINE) $(libdir)/$(SHARED_READLINE).old
+ $(INSTALL_DATA) $(SHARED_READLINE) $(libdir)/$(SHARED_READLINE)
+
+uninstall-shared:
+ -test -n "$(libdir)" && cd $(libdir) && ${RM} ${SHARED_LIBS}
TAGS: force
$(ETAGS) $(CSOURCES) $(HSOURCES)
@@ -214,19 +237,21 @@ tags: force
$(CTAGS) $(CSOURCES) $(HSOURCES)
clean: force
- $(RM) $(OBJECTS) *.a
+ $(RM) $(OBJECTS) $(STATIC_LIBS)
$(RM) $(SHARED_OBJ) $(SHARED_LIBS)
-( cd doc && $(MAKE) $(MFLAGS) $@ )
+ -( cd examples && $(MAKE) $(MFLAGS) $@ )
mostlyclean: clean
-( cd doc && $(MAKE) $(MFLAGS) $@ )
+ -( cd examples && $(MAKE) $(MFLAGS) $@ )
distclean maintainer-clean: clean
-( cd doc && $(MAKE) $(MFLAGS) $@ )
+ -( cd examples && $(MAKE) $(MFLAGS) $@ )
$(RM) Makefile
- $(RM) config.status config.h config.cache config.log
- $(RM) stamp-config stamp-h
- $(RM) TAGS tags
+ $(RM) $(CREATED_CONFIGURE)
+ $(RM) $(CREATED_TAGS)
info dvi:
-( cd doc && $(MAKE) $(MFLAGS) $@ )
@@ -310,6 +335,8 @@ rltty.o: readline.h keymaps.h chardefs.h tilde.h
search.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
search.o: readline.h keymaps.h chardefs.h tilde.h
search.o: ansi_stdlib.h history.h
+shell.o: ${BUILD_DIR}/config.h
+shell.o: ansi_stdlib.h
signals.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
signals.o: readline.h keymaps.h chardefs.h tilde.h
signals.o: history.h
@@ -333,6 +360,34 @@ vi_mode.o: history.h ansi_stdlib.h
xmalloc.o: ${BUILD_DIR}/config.h
xmalloc.o: ansi_stdlib.h
+readline.o: $(srcdir)/readline.c
+vi_mode.o: $(srcdir)/vi_mode.c
+funmap.o: $(srcdir)/funmap.c
+keymaps.o: $(srcdir)/keymaps.c
+parens.o: $(srcdir)/parens.c
+search.o: $(srcdir)/search.c
+rltty.o: $(srcdir)/rltty.c
+complete.o: $(srcdir)/complete.c
+bind.o: $(srcdir)/bind.c
+isearch.o: $(srcdir)/isearch.c
+display.o: $(srcdir)/display.c
+signals.o: $(srcdir)/signals.c
+util.o: $(srcdir)/util.c
+kill.o: $(srcdir)/kill.c
+undo.o: $(srcdir)/undo.c
+macro.o: $(srcdir)/macro.c
+input.o: $(srcdir)/input.c
+callback.o: $(srcdir)/callback.c
+terminal.o: $(srcdir)/terminal.c
+nls.o: $(srcdir)/nls.c
+xmalloc.o: $(srcdir)/xmalloc.c
+history.o: $(srcdir)/history.c
+histexpand.o: $(srcdir)/histexpand.c
+histfile.o: $(srcdir)/histfile.c
+histsearch.o: $(srcdir)/histsearch.c
+shell.o: $(srcdir)/shell.c
+tilde.o: $(srcdir)/tilde.c
+
bind.so: ansi_stdlib.h posixstat.h
bind.so: rldefs.h ${BUILD_DIR}/config.h rlconf.h
bind.so: readline.h keymaps.h chardefs.h tilde.h
@@ -419,6 +474,34 @@ vi_mode.so: history.h ansi_stdlib.h
xmalloc.so: ${BUILD_DIR}/config.h
xmalloc.so: ansi_stdlib.h
+readline.o: readline.c
+vi_mode.o: vi_mode.c
+funmap.o: funmap.c
+keymaps.o: keymaps.c
+parens.o: parens.c
+search.o: search.c
+rltty.o: rltty.c
+complete.o: complete.c
+bind.o: bind.c
+isearch.o: isearch.c
+display.o: display.c
+signals.o: signals.c
+util.o: util.c
+kill.o: kill.c
+undo.o: undo.c
+macro.o: macro.c
+input.o: input.c
+callback.o: callback.c
+terminal.o: terminal.c
+nls.o: nls.c
+xmalloc.o: xmalloc.c
+history.o: history.c
+histexpand.o: histexpand.c
+histfile.o: histfile.c
+histsearch.o: histsearch.c
+shell.o: shell.c
+tilde.o: tilde.c
+
readline.so: $(srcdir)/readline.c
vi_mode.so: $(srcdir)/vi_mode.c
funmap.so: $(srcdir)/funmap.c
@@ -446,3 +529,31 @@ histfile.so: $(srcdir)/histfile.c
histsearch.so: $(srcdir)/histsearch.c
shell.so: $(srcdir)/shell.c
tilde.so: $(srcdir)/tilde.c
+
+readline.so: readline.c
+vi_mode.so: vi_mode.c
+funmap.so: funmap.c
+keymaps.so: keymaps.c
+parens.so: parens.c
+search.so: search.c
+rltty.so: rltty.c
+complete.so: complete.c
+bind.so: bind.c
+isearch.so: isearch.c
+display.so: display.c
+signals.so: signals.c
+util.so: util.c
+kill.so: kill.c
+undo.so: undo.c
+macro.so: macro.c
+input.so: input.c
+callback.so: callback.c
+terminal.so: terminal.c
+nls.so: nls.c
+xmalloc.so: xmalloc.c
+history.so: history.c
+histexpand.so: histexpand.c
+histfile.so: histfile.c
+histsearch.so: histsearch.c
+shell.so: shell.c
+tilde.so: tilde.c
diff --git a/README b/README
index e14aee8..f19f925 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
Introduction
============
-This is the Gnu Readline library, version 2.1.
+This is the Gnu Readline library, version 2.2
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
@@ -89,11 +89,11 @@ Reporting Bugs
Bug reports for Readline should be sent to:
- bug-readline@prep.ai.mit.edu
+ bug-readline@gnu.org
When reporting a bug, please include the following information:
- * the version number and release status of Readline (e.g., 2.1-release)
+ * the version number and release status of Readline (e.g., 2.2-release)
* the machine and OS that it is running on
* a list of the compilation flags or the contents of `config.h', if
appropriate
@@ -102,11 +102,11 @@ When reporting a bug, please include the following information:
* a fix for the bug if you have one!
If you would like to contact the Readline maintainer directly, send mail
-to bash-maintainers@prep.ai.mit.edu.
+to bash-maintainers@gnu.org.
-Since Readline is developed along with bash, the bug-bash@prep.ai.mit.edu
-mailing list (mirrored to the Usenet newsgroup gnu.bash.bug) often contains
-Readline bug reports and fixes.
+Since Readline is developed along with bash, the bug-bash@gnu.org mailing
+list (mirrored to the Usenet newsgroup gnu.bash.bug) often contains
+Readline bug reports and fixes.
Chet Ramey
chet@po.cwru.edu
diff --git a/aclocal.m4 b/aclocal.m4
index b852ac0..822ead0 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -26,7 +26,8 @@ main()
exit(fl != 1);
}
], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
- AC_MSG_ERROR(cannot check dup2 if cross compiling))
+ [AC_MSG_ERROR(cannot check dup2 if cross compiling -- defaulting to no)
+ bash_cv_dup2_broken=no])
])
AC_MSG_RESULT($bash_cv_dup2_broken)
if test $bash_cv_dup2_broken = yes; then
@@ -128,7 +129,8 @@ main()
exit(ok ? 0 : 5);
}
], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
- AC_MSG_ERROR(cannot check pgrp synchronization if cross compiling))
+ [AC_MSG_ERROR(cannot check pgrp synchronization if cross compiling -- defaulting to no)
+ bash_cv_pgrp_pipe=no])
])
AC_MSG_RESULT($bash_cv_pgrp_pipe)
if test $bash_cv_pgrp_pipe = yes; then
@@ -169,7 +171,8 @@ dnl
AC_DEFUN(BASH_RLIMIT_TYPE,
[AC_MSG_CHECKING(for size and type of struct rlimit fields)
AC_CACHE_VAL(bash_cv_type_rlimit,
-[AC_TRY_COMPILE([#include <sys/types.h>],
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/resource.h>],
[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
AC_TRY_RUN([
#include <sys/types.h>
@@ -184,7 +187,8 @@ main()
#endif
exit(1);
}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
- AC_MSG_ERROR(cannot check quad_t if cross compiling))])
+ [AC_MSG_ERROR(cannot check quad_t if cross compiling -- defaulting to long)
+ bash_cv_type_rlimit=long])])
])
AC_MSG_RESULT($bash_cv_type_rlimit)
if test $bash_cv_type_rlimit = quad_t; then
@@ -197,8 +201,26 @@ fi
dnl
dnl Check for sys_siglist[] or _sys_siglist[]
dnl
+AC_DEFUN(BASH_DECL_UNDER_SYS_SIGLIST,
+[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
+AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
+[AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <signal.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif], [ char *msg = _sys_siglist[2]; ],
+ bash_cv_decl_under_sys_siglist=yes, bash_cv_decl_under_sys_siglist=no,
+ [AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)])])dnl
+AC_MSG_RESULT($bash_cv_decl_under_sys_siglist)
+if test $bash_cv_decl_under_sys_siglist = yes; then
+AC_DEFINE(UNDER_SYS_SIGLIST_DECLARED)
+fi
+])
+
AC_DEFUN(BASH_UNDER_SYS_SIGLIST,
-[AC_MSG_CHECKING([for _sys_siglist in system C library])
+[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
+AC_MSG_CHECKING([for _sys_siglist in system C library])
AC_CACHE_VAL(bash_cv_under_sys_siglist,
[AC_TRY_RUN([
#include <sys/types.h>
@@ -206,16 +228,17 @@ AC_CACHE_VAL(bash_cv_under_sys_siglist,
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifndef _sys_siglist
+#ifndef UNDER_SYS_SIGLIST_DECLARED
extern char *_sys_siglist[];
#endif
main()
{
-char *msg = _sys_siglist[2];
+char *msg = (char *)_sys_siglist[2];
exit(msg == 0);
}],
-bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
-AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling))])dnl
+ bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
+ [AC_MSG_ERROR(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)
+ bash_cv_under_sys_siglist=no])])
AC_MSG_RESULT($bash_cv_under_sys_siglist)
if test $bash_cv_under_sys_siglist = yes; then
AC_DEFINE(HAVE_UNDER_SYS_SIGLIST)
@@ -240,8 +263,9 @@ main()
char *msg = sys_siglist[2];
exit(msg == 0);
}],
-bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
-AC_MSG_ERROR(cannot check for sys_siglist if cross compiling))])dnl
+ bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
+ [AC_MSG_ERROR(cannot check for sys_siglist if cross compiling -- defaulting to no)
+ bash_cv_sys_siglist=no])])
AC_MSG_RESULT($bash_cv_sys_siglist)
if test $bash_cv_sys_siglist = yes; then
AC_DEFINE(HAVE_SYS_SIGLIST)
@@ -301,7 +325,9 @@ dir = opendir("/tmp/not_a_directory");
unlink("/tmp/not_a_directory");
exit (dir == 0);
}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
- AC_MSG_ERROR(cannot check opendir if cross compiling))])
+ [AC_MSG_ERROR(cannot check opendir if cross compiling -- defaulting to no)
+ bash_cv_opendir_not_robust=no]
+)])
AC_MSG_RESULT($bash_cv_opendir_not_robust)
if test $bash_cv_opendir_not_robust = yes; then
AC_DEFINE(OPENDIR_NOT_ROBUST)
@@ -328,8 +354,116 @@ AC_DEFINE(VOID_SIGHANDLER)
fi
])
+AC_DEFUN(BASH_TYPE_INT32_T,
+[
+if test "X$bash_cv_type_int32_t" = "X"; then
+_bash_needmsg=yes
+else
+AC_MSG_CHECKING(which builtin C type is 32 bits wide)
+_bash_needmsg=
+fi
+AC_CACHE_VAL(bash_cv_type_int32_t,
+[AC_TRY_RUN([
+main()
+{
+#if SIZEOF_INT == 4
+exit (0);
+#else
+# if SIZEOF_LONG == 4
+exit (1);
+# else
+# error cannot find 32 bit type...
+# endif
+#endif
+}], bash_cv_type_int32_t=int, bash_cv_type_int32_t=long,
+ [AC_MSG_ERROR(cannot check type sizes if cross-compiling -- defaulting to int)
+ bash_cv_type_int32_t=int]
+)])
+if test "X$_bash_needmsg" = "Xyes"; then
+AC_MSG_CHECKING(which builtin C type is 32 bits wide)
+fi
+AC_MSG_RESULT($bash_cv_type_int32_t);
+if test "$bash_cv_type_int32_t" = "int"; then
+AC_DEFINE(int32_t, int)
+else
+AC_DEFINE(int32_t, long)
+fi
+])
+
+AC_DEFUN(BASH_TYPE_U_INT32_T,
+[
+if test "X$bash_cv_type_u_int32_t" = "X"; then
+_bash_needmsg=yes
+else
+AC_MSG_CHECKING(which unsigned builtin C type is 32 bits wide)
+_bash_needmsg=
+fi
+AC_CACHE_VAL(bash_cv_type_u_int32_t,
+[AC_TRY_RUN([
+main()
+{
+#if SIZEOF_INT == 4
+exit (0);
+#else
+# if SIZEOF_LONG == 4
+exit (1);
+# else
+# error cannot find 32 bit type...
+# endif
+#endif
+}], bash_cv_type_u_int32_t=int, bash_cv_type_u_int32_t=long,
+ [AC_MSG_ERROR(cannot check type sizes if cross-compiling -- defaulting to int)
+ bash_cv_type_u_int32_t=int]
+)])
+if test "X$_bash_needmsg" = "Xyes"; then
+AC_MSG_CHECKING(which unsigned builtin C type is 32 bits wide)
+fi
+AC_MSG_RESULT($bash_cv_type_u_int32_t);
+if test "$bash_cv_type_u_int32_t" = "int"; then
+AC_DEFINE(u_int32_t, unsigned int)
+else
+AC_DEFINE(u_int32_t, unsigned long)
+fi
+])
+
+AC_DEFUN(BASH_TYPE_PTRDIFF_T,
+[
+if test "X$bash_cv_type_ptrdiff_t" = "X"; then
+_bash_needmsg=yes
+else
+AC_MSG_CHECKING(which builtin C type is correct for ptrdiff_t)
+_bash_needmsg=
+fi
+AC_CACHE_VAL(bash_cv_type_ptrdiff_t,
+[AC_TRY_RUN([
+main()
+{
+#if SIZEOF_CHAR_P == SIZEOF_INT
+exit (0);
+#else
+# if SIZEOF_CHAR_P == SIZEOF_LONG
+exit (1);
+# else
+# error cannot find type for pointer arithmetic...
+# endif
+#endif
+}], bash_cv_type_ptrdiff_t=int, bash_cv_type_ptrdiff_t=long,
+ [AC_MSG_ERROR(cannot check type sizes if cross-compiling -- defaulting to int)
+ bash_cv_type_ptrdiff_t=int]
+)])
+if test "X$_bash_needmsg" = "Xyes"; then
+AC_MSG_CHECKING(which builtin C type is correct for ptrdiff_t)
+fi
+AC_MSG_RESULT($bash_cv_type_ptrdiff_t);
+if test "$bash_cv_type_ptrdiff_t" = "int"; then
+AC_DEFINE(ptrdiff_t, int)
+else
+AC_DEFINE(ptrdiff_t, long)
+fi
+])
+
AC_DEFUN(BASH_FUNC_STRSIGNAL,
-[AC_MSG_CHECKING([for the existance of strsignal])
+[AC_MSG_CHECKING([for the existence of strsignal])
AC_CACHE_VAL(bash_cv_have_strsignal,
[AC_TRY_LINK([#include <sys/types.h>
#include <signal.h>],
@@ -348,7 +482,7 @@ AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
[AC_TRY_LINK([
#include <sys/types.h>
#include <sys/stat.h>
-],[ lstat("",(struct stat *)0); ],
+],[ lstat(".",(struct stat *)0); ],
bash_cv_func_lstat=yes, bash_cv_func_lstat=no)])
if test $bash_cv_func_lstat = yes; then
AC_DEFINE(HAVE_LSTAT)
@@ -414,7 +548,9 @@ s = getenv("ABCDE");
exit(s == 0); /* force optimizer to leave getenv in */
}
], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
-AC_MSG_ERROR(cannot check getenv redefinition if cross compiling))])
+ [AC_MSG_ERROR(cannot check getenv redefinition if cross compiling -- defaulting to yes)
+ bash_cv_getenv_redef=yes]
+)])
AC_MSG_RESULT($bash_cv_getenv_redef)
if test $bash_cv_getenv_redef = yes; then
AC_DEFINE(CAN_REDEFINE_GETENV)
@@ -434,11 +570,13 @@ typedef int (*_bashfunc)();
main()
{
_bashfunc pf;
-pf = printf;
+pf = (_bashfunc) printf;
exit(pf == 0);
}
-],bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
-AC_MSG_ERROR(cannot check printf declaration if cross compiling))])
+], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
+ [AC_MSG_ERROR(cannot check printf declaration if cross compiling -- defaulting to yes)
+ bash_cv_printf_declared=yes]
+)])
AC_MSG_RESULT($bash_cv_printf_declared)
if test $bash_cv_printf_declared = yes; then
AC_DEFINE(PRINTF_DECLARED)
@@ -454,8 +592,10 @@ main()
long maxfds = ulimit(4, 0L);
exit (maxfds == -1L);
}
-],bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
-AC_MSG_ERROR(cannot check ulimit if cross compiling))])
+], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
+ [AC_MSG_ERROR(cannot check ulimit if cross compiling -- defaulting to no)
+ bash_cv_ulimit_maxfds=no]
+)])
AC_MSG_RESULT($bash_cv_ulimit_maxfds)
if test $bash_cv_ulimit_maxfds = yes; then
AC_DEFINE(ULIMIT_MAXFDS)
@@ -479,7 +619,7 @@ if test "X$_bash_needmsg" = "Xyes"; then
AC_MSG_CHECKING(which library has the termcap functions)
fi
AC_MSG_RESULT(using $bash_cv_termcap_lib)
-if test $bash_cv_termcap_lib = gnutermcap; then
+if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
LDFLAGS="$LDFLAGS -L./lib/termcap"
TERMCAP_LIB="./lib/termcap/libtermcap.a"
TERMCAP_DEP="./lib/termcap/libtermcap.a"
@@ -550,7 +690,9 @@ main()
exit (popen_called);
}
], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
-AC_MSG_ERROR(cannot check whether getcwd calls popen if cross compiling))])
+ [AC_MSG_ERROR(cannot check whether getcwd calls popen if cross compiling -- defaulting to no)
+ bash_cv_getcwd_calls_popen=no]
+)])
AC_MSG_RESULT($bash_cv_getcwd_calls_popen)
if test $bash_cv_getcwd_calls_popen = yes; then
AC_DEFINE(GETCWD_BROKEN)
@@ -672,7 +814,9 @@ main()
exit(nsigint != 2);
}
], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
-AC_MSG_ERROR(cannot check signal handling if cross compiling))])
+ [AC_MSG_ERROR(cannot check signal handling if cross compiling -- defaulting to no)
+ bash_cv_must_reinstall_sighandlers=no]
+)])
AC_MSG_RESULT($bash_cv_must_reinstall_sighandlers)
if test $bash_cv_must_reinstall_sighandlers = yes; then
AC_DEFINE(MUST_REINSTALL_SIGHANDLERS)
@@ -738,9 +882,10 @@ exit(1);
#endif
exit(0);
-}],bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
- AC_MSG_ERROR(cannot check job control if cross-compiling))
-])
+}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
+ [AC_MSG_ERROR(cannot check job control if cross-compiling -- defaulting to missing)
+ bash_cv_job_control_missing=missing]
+)])
AC_MSG_RESULT($bash_cv_job_control_missing)
if test $bash_cv_job_control_missing = missing; then
AC_DEFINE(JOB_CONTROL_MISSING)
@@ -782,9 +927,10 @@ if (fd == -1)
close(fd);
unlink ("/tmp/sh-np-autoconf");
exit(0);
-}],bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
- AC_MSG_ERROR(cannot check for named pipes if cross-compiling))
-])
+}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
+ [AC_MSG_ERROR(cannot check for named pipes if cross-compiling -- defaulting to missing)
+ bash_cv_sys_named_pipes=missing]
+)])
AC_MSG_RESULT($bash_cv_sys_named_pipes)
if test $bash_cv_sys_named_pipes = missing; then
AC_DEFINE(NAMED_PIPES_MISSING)
@@ -832,9 +978,10 @@ sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
siglongjmp(xx, 10);
exit(1);
#endif
-}],bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
- AC_MSG_ERROR(cannot check for sigsetjmp/siglongjmp if cross-compiling))
-])
+}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
+ [AC_MSG_ERROR(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
+ bash_cv_func_sigsetjmp=missing]
+)])
AC_MSG_RESULT($bash_cv_func_sigsetjmp)
if test $bash_cv_func_sigsetjmp = present; then
AC_DEFINE(HAVE_POSIX_SIGSETJMP)
@@ -854,14 +1001,23 @@ fi
])
AC_DEFUN(BASH_STRUCT_WINSIZE,
-[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_struct_winsize_in_ioctl,
+[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
+AC_CACHE_VAL(bash_cv_struct_winsize_header,
[AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/ioctl.h>], [struct winsize x;],
- bash_cv_struct_winsize_in_ioctl=yes,bash_cv_struct_winsize_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_struct_winsize_in_ioctl)
-if test $bash_cv_struct_winsize_in_ioctl = yes; then
-AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
+ bash_cv_struct_winsize_header=ioctl_h,
+ [AC_TRY_COMPILE([#include <sys/types.h>
+#include <termios.h>], [struct winsize x;],
+ bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
+])])
+if test $bash_cv_struct_winsize_header = ioctl_h; then
+ AC_MSG_RESULT(sys/ioctl.h)
+ AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
+elif test $bash_cv_struct_winsize_header = termios_h; then
+ AC_MSG_RESULT(termios.h)
+ AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
+else
+ AC_MSG_RESULT(not found)
fi
])
@@ -911,7 +1067,10 @@ AC_DEFUN(BASH_CHECK_GETPW_FUNCS,
AC_CACHE_VAL(bash_cv_can_redecl_getpw,
[AC_TRY_COMPILE([#include <sys/types.h>
#include <pwd.h>
-extern struct passwd *getpwent();], [struct passwd *z; z = getpwent();],
+extern struct passwd *getpwent();
+extern struct passwd *getpwuid();
+extern struct passwd *getpwnam();],
+[struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root");],
bash_cv_can_redecl_getpw=yes,bash_cv_can_redecl_getpw=no)])
AC_MSG_RESULT($bash_cv_can_redecl_getpw)
if test $bash_cv_can_redecl_getpw = no; then
@@ -994,10 +1153,10 @@ AC_CACHE_VAL(bash_cv_mail_dir,
bash_cv_mail_dir=/var/mail
elif test -d /usr/mail; then
bash_cv_mail_dir=/usr/mail
- elif test -d /usr/spool/mail; then
- bash_cv_mail_dir=/usr/spool/mail
elif test -d /var/spool/mail; then
bash_cv_mail_dir=/var/spool/mail
+ elif test -d /usr/spool/mail; then
+ bash_cv_mail_dir=/usr/spool/mail
else
bash_cv_mail_dir=unknown
fi
@@ -1030,16 +1189,16 @@ AC_CACHE_VAL(bash_cv_kernel_rlimit,
int f;
f = RLIMIT_DATA;
], bash_cv_kernel_rlimit=no,
- [AC_TRY_COMPILE([
- #include <sys/types.h>
- #define _KERNEL
- #include <sys/resource.h>
- #undef _KERNEL
- ],
- [
+[AC_TRY_COMPILE([
+#include <sys/types.h>
+#define _KERNEL
+#include <sys/resource.h>
+#undef _KERNEL
+],
+[
int f;
f = RLIMIT_DATA;
- ], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
+], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
)])
AC_MSG_RESULT($bash_cv_kernel_rlimit)
if test $bash_cv_kernel_rlimit = yes; then
@@ -1087,10 +1246,99 @@ char *v[];
exit (r1 > 0 && r2 > 0);
}
], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
- AC_MSG_ERROR(cannot check strcoll if cross compiling))
-])
+ [AC_MSG_ERROR(cannot check strcoll if cross compiling -- defaulting to no)
+ bash_cv_func_strcoll_broken=no]
+)])
AC_MSG_RESULT($bash_cv_func_strcoll_broken)
if test $bash_cv_func_strcoll_broken = yes; then
AC_DEFINE(STRCOLL_BROKEN)
fi
])
+
+dnl
+dnl If available, use support for large files unless the user specified
+dnl one of the CPPFLAGS, LDFLAGS, or LIBS variables (<eggert@twinsun.com>
+dnl via GNU patch 2.5)
+dnl
+AC_DEFUN(BASH_LARGE_FILE_SUPPORT,
+[AC_MSG_CHECKING(whether large file support needs explicit enabling)
+ac_getconfs=''
+ac_result=yes
+ac_set=''
+ac_shellvars='CPPFLAGS LDFLAGS LIBS'
+for ac_shellvar in $ac_shellvars; do
+ case $ac_shellvar in
+ CPPFLAGS) ac_lfsvar=LFS_CFLAGS ac_lfs64var=LFS64_CFLAGS ;;
+ *) ac_lfsvar=LFS_$ac_shellvar ac_lfs64var=LFS64_$ac_shellvar ;;
+ esac
+ eval test '"${'$ac_shellvar'+set}"' = set && ac_set=$ac_shellvar
+ (getconf $ac_lfsvar) >/dev/null 2>&1 || { ac_result=no; break; }
+ ac_getconf=`getconf $ac_lfsvar`
+ ac_getconf64=`getconf $ac_lfs64var`
+ ac_getconfs=$ac_getconfs$ac_getconf\ $ac_getconf64
+ eval ac_test_$ac_shellvar="\$ac_getconf\ \$ac_getconf64"
+done
+case "$ac_result$ac_getconfs" in
+yes) ac_result=no ;;
+esac
+case "$ac_result$ac_set" in
+yes?*) ac_result="yes, but $ac_set is already set, so use its settings"
+esac
+AC_MSG_RESULT($ac_result)
+case $ac_result in
+yes)
+ for ac_shellvar in $ac_shellvars; do
+ eval $ac_shellvar=\$ac_test_$ac_shellvar
+ done ;;
+esac
+])
+
+dnl
+dnl AC_SYS_RESTARTABLE_SYSCALLS tests only for restarted system calls
+dnl after a signal handler has been installed with signal(). Since
+dnl Bash uses sigaction() if it is available, we need to check whether
+dnl or not a signal handler installed with sigaction and SA_RESTART
+dnl causes system calls to be restarted after the signal is caught
+dnl
+AC_DEFUN(BASH_SYS_RESTARTABLE_SYSCALLS,
+[AC_REQUIRE([BASH_SIGNAL_CHECK])
+AC_CACHE_CHECK(for restartable system calls with posix sigaction,
+bash_cv_sys_restartable_syscalls,
+[AC_TRY_RUN(
+[/* Exit 0 (true) if wait returns something other than -1,
+ i.e. the pid of the child, which means that wait was restarted
+ after getting the signal. */
+#include <sys/types.h>
+#include <signal.h>
+static int caught = 0;
+void ucatch (isig) int isig; { caught = 1; }
+main ()
+{
+#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
+ exit (1);
+#else
+ struct sigaction act, oact;
+ int i, status;
+
+ act.sa_handler = ucatch;
+ /* Might want to add SA_RESTART here, but bash's set_signal_handler
+ does not. */
+ act.sa_flags = 0;
+ sigemptyset(&act.sa_mask);
+ sigemptyset(&oact.sa_mask);
+ i = fork ();
+ /* A possible race condition here, but in practice it never happens. */
+ if (i == 0) { sleep (3); kill (getppid (), SIGINT); sleep (3); exit (0); }
+ sigaction(SIGINT, &act, &oact);
+ status = wait(&i);
+ if (status == -1) wait(&i);
+ exit (status == -1);
+#endif
+}
+], bash_cv_sys_restartable_syscalls=yes, bash_cv_sys_restartable_syscalls=no,
+ AC_MSG_ERROR(cannot check restartable syscalls if cross compiling))
+])
+if test $bash_cv_sys_restartable_syscalls = yes; then
+ AC_DEFINE(HAVE_RESTARTABLE_SYSCALLS)
+fi
+])
diff --git a/bind.c b/bind.c
index 24c8c48..300530a 100644
--- a/bind.c
+++ b/bind.c
@@ -70,6 +70,8 @@ extern int _rl_convert_meta_chars_to_ascii;
extern int _rl_output_meta_chars;
extern int _rl_complete_show_all;
extern int _rl_complete_mark_directories;
+extern int _rl_print_completions_horizontally;
+extern int _rl_completion_case_fold;
extern int _rl_enable_keypad;
#if defined (PAREN_MATCHING)
extern int rl_blink_matching_paren;
@@ -105,6 +107,7 @@ Keymap rl_binding_keymap;
/* Forward declarations */
void rl_set_keymap_from_edit_mode ();
+static int _rl_read_init_file ();
static int glean_key_from_name ();
static int substring_member_of_array ();
@@ -198,6 +201,35 @@ rl_unbind_key_in_map (key, map)
return (rl_bind_key_in_map (key, (Function *)NULL, map));
}
+/* Unbind all keys bound to FUNCTION in MAP. */
+int
+rl_unbind_function_in_map (func, map)
+ Function *func;
+ Keymap map;
+{
+ register int i;
+
+ for (i = 0; i < KEYMAP_SIZE; i++)
+ {
+ if (map[i].type == ISFUNC && map[i].function == func)
+ map[i].function = (Function *)NULL;
+ }
+}
+
+int
+rl_unbind_command_in_map (command, map)
+ char *command;
+ Keymap map;
+{
+ Function *func;
+ register int i;
+
+ func = rl_named_function (command);
+ if (func == 0)
+ return 0;
+ return (rl_unbind_function_in_map (func, map));
+}
+
/* 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. */
@@ -313,7 +345,7 @@ rl_translate_keyseq (seq, array, len)
char *seq, *array;
int *len;
{
- register int i, c, l;
+ register int i, c, l, temp;
for (i = l = 0; c = seq[i]; i++)
{
@@ -324,7 +356,8 @@ rl_translate_keyseq (seq, array, len)
if (c == 0)
break;
- if (((c == 'C' || c == 'M') && seq[i + 1] == '-') || (c == 'e'))
+ /* Handle \C- and \M- prefixes. */
+ if ((c == 'C' || c == 'M') && seq[i + 1] == '-')
{
/* Handle special case of backwards define. */
if (strncmp (&seq[i], "C-\\M-", 5) == 0)
@@ -332,31 +365,83 @@ rl_translate_keyseq (seq, array, len)
array[l++] = ESC;
i += 5;
array[l++] = CTRL (_rl_to_upper (seq[i]));
- if (!seq[i])
+ if (seq[i] == '\0')
i--;
- continue;
}
-
- switch (c)
+ else if (c == 'M')
{
- case 'M':
i++;
array[l++] = ESC; /* XXX */
- break;
-
- case 'C':
+ }
+ else if (c == 'C')
+ {
i += 2;
/* Special hack for C-?... */
array[l++] = (seq[i] == '?') ? RUBOUT : CTRL (_rl_to_upper (seq[i]));
- break;
-
- case 'e':
- array[l++] = ESC;
}
-
continue;
+ }
+
+ /* Translate other backslash-escaped characters. These are the
+ same escape sequences that bash's `echo' and `printf' builtins
+ handle, with the addition of \d -> RUBOUT. A backslash
+ preceding a character that is not special is stripped. */
+ switch (c)
+ {
+ case 'a':
+ array[l++] = '\007';
+ break;
+ case 'b':
+ array[l++] = '\b';
+ break;
+ case 'd':
+ array[l++] = RUBOUT; /* readline-specific */
+ break;
+ case 'e':
+ array[l++] = ESC;
+ break;
+ case 'f':
+ array[l++] = '\f';
+ break;
+ case 'n':
+ array[l++] = NEWLINE;
+ break;
+ case 'r':
+ array[l++] = RETURN;
+ break;
+ case 't':
+ array[l++] = TAB;
+ break;
+ case 'v':
+ array[l++] = 0x0B;
+ break;
+ case '\\':
+ array[l++] = '\\';
+ break;
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ i++;
+ for (temp = 2, c -= '0'; ISOCTAL (seq[i]) && temp--; i++)
+ c = (c * 8) + OCTVALUE (seq[i]);
+ i--; /* auto-increment in for loop */
+ array[l++] = c % (largest_char + 1);
+ break;
+ case 'x':
+ i++;
+ for (temp = 3, c = 0; isxdigit (seq[i]) && temp--; i++)
+ c = (c * 16) + HEXVALUE (seq[i]);
+ if (temp == 3)
+ c = 'x';
+ i--; /* auto-increment in for loop */
+ array[l++] = c % (largest_char + 1);
+ break;
+ default: /* backslashes before non-special chars just add the char */
+ array[l++] = c;
+ break; /* the backslash is stripped */
}
+ continue;
}
+
array[l++] = c;
}
@@ -541,8 +626,55 @@ static char *last_readline_init_file = (char *)NULL;
/* The file we're currently reading key bindings from. */
static char *current_readline_init_file;
+static int current_readline_init_include_level;
static int current_readline_init_lineno;
+/* Read FILENAME into a locally-allocated buffer and return the buffer.
+ The size of the buffer is returned in *SIZEP. Returns NULL if any
+ errors were encountered. */
+static char *
+_rl_read_file (filename, sizep)
+ char *filename;
+ size_t *sizep;
+{
+ struct stat finfo;
+ size_t file_size;
+ char *buffer;
+ int i, file;
+
+ if ((stat (filename, &finfo) < 0) || (file = open (filename, O_RDONLY, 0666)) < 0)
+ return ((char *)NULL);
+
+ file_size = (size_t)finfo.st_size;
+
+ /* check for overflow on very large files */
+ if (file_size != finfo.st_size || file_size + 1 < file_size)
+ {
+ if (file >= 0)
+ close (file);
+#if defined (EFBIG)
+ errno = EFBIG;
+#endif
+ return ((char *)NULL);
+ }
+
+ /* Read the file into BUFFER. */
+ buffer = (char *)xmalloc (file_size + 1);
+ i = read (file, buffer, file_size);
+ close (file);
+
+ if (i < file_size)
+ {
+ free (buffer);
+ return ((char *)NULL);
+ }
+
+ buffer[file_size] = '\0';
+ if (sizep)
+ *sizep = file_size;
+ return (buffer);
+}
+
/* Re-read the current keybindings file. */
int
rl_re_read_init_file (count, ignore)
@@ -565,11 +697,6 @@ int
rl_read_init_file (filename)
char *filename;
{
- register int i;
- char *buffer, *openname, *line, *end;
- struct stat finfo;
- int file;
-
/* Default the filename. */
if (filename == 0)
{
@@ -583,39 +710,37 @@ rl_read_init_file (filename)
if (*filename == 0)
filename = DEFAULT_INPUTRC;
- current_readline_init_file = filename;
- openname = tilde_expand (filename);
+ return (_rl_read_init_file (filename, 0));
+}
- if ((stat (openname, &finfo) < 0) ||
- (file = open (openname, O_RDONLY, 0666)) < 0)
- {
- free (openname);
- return (errno);
- }
- else
- free (openname);
+static int
+_rl_read_init_file (filename, include_level)
+ char *filename;
+ int include_level;
+{
+ register int i;
+ char *buffer, *openname, *line, *end;
+ size_t file_size;
- if (filename != last_readline_init_file)
- {
- if (last_readline_init_file)
- free (last_readline_init_file);
+ current_readline_init_file = filename;
+ current_readline_init_include_level = include_level;
+ openname = tilde_expand (filename);
+ buffer = _rl_read_file (openname, &file_size);
+ if (buffer == 0)
+ return (errno);
+
+ if (include_level == 0 && filename != last_readline_init_file)
+ {
+ FREE (last_readline_init_file);
last_readline_init_file = savestring (filename);
}
- /* Read the file into BUFFER. */
- buffer = (char *)xmalloc ((int)finfo.st_size + 1);
- i = read (file, buffer, finfo.st_size);
- close (file);
-
- if (i != finfo.st_size)
- return (errno);
-
/* Loop over the lines in the file. Lines that start with `#' are
comments; all other lines are commands for readline initialization. */
current_readline_init_lineno = 1;
line = buffer;
- end = buffer + finfo.st_size;
+ end = buffer + file_size;
while (line < end)
{
/* Find the end of this line. */
@@ -639,6 +764,7 @@ rl_read_init_file (filename)
line += i + 1;
current_readline_init_lineno++;
}
+
free (buffer);
return (0);
}
@@ -697,7 +823,7 @@ parser_if (args)
if (args[i])
args[i++] = '\0';
- /* Handle "if term=foo" and "if mode=emacs" constructs. If this
+ /* Handle "$if term=foo" and "$if mode=emacs" constructs. If this
isn't term=foo, or mode=emacs, then check to see if the first
word in ARGS is the same as the value stored in rl_readline_name. */
if (rl_terminal_name && _rl_strnicmp (args, "term=", 5) == 0)
@@ -749,9 +875,9 @@ parser_else (args)
{
register int i;
- if (!if_stack_depth)
+ if (if_stack_depth == 0)
{
- /* Error message? */
+ _rl_init_file_error ("$else found without matching $if");
return 0;
}
@@ -775,12 +901,36 @@ parser_endif (args)
if (if_stack_depth)
_rl_parsing_conditionalized_out = if_stack[--if_stack_depth];
else
- {
- /* *** What, no error message? *** */
- }
+ _rl_init_file_error ("$endif without matching $if");
return 0;
}
+static int
+parser_include (args)
+ char *args;
+{
+ char *old_init_file, *e;
+ int old_line_number, old_include_level, r;
+
+ if (_rl_parsing_conditionalized_out)
+ return (0);
+
+ old_init_file = current_readline_init_file;
+ old_line_number = current_readline_init_lineno;
+ old_include_level = current_readline_init_include_level;
+
+ e = strchr (args, '\n');
+ if (e)
+ *e = '\0';
+ r = _rl_read_init_file (args, old_include_level + 1);
+
+ current_readline_init_file = old_init_file;
+ current_readline_init_lineno = old_line_number;
+ current_readline_init_include_level = old_include_level;
+
+ return r;
+}
+
/* Associate textual names with actual functions. */
static struct {
char *name;
@@ -789,6 +939,7 @@ static struct {
{ "if", parser_if },
{ "endif", parser_endif },
{ "else", parser_else },
+ { "include", parser_include },
{ (char *)0x0, (Function *)0x0 }
};
@@ -825,7 +976,8 @@ handle_parser_directive (statement)
return (0);
}
- /* *** Should an error message be output? */
+ /* display an error message about the unknown parser directive */
+ _rl_init_file_error ("unknown parser directive");
return (1);
}
@@ -940,10 +1092,9 @@ rl_parse_and_bind (string)
the quoted string delimiter, like the shell. */
if (*funname == '\'' || *funname == '"')
{
- int delimiter = string[i++];
- int passc = 0;
+ int delimiter = string[i++], passc;
- for (; c = string[i]; i++)
+ for (passc = 0; c = string[i]; i++)
{
if (passc)
{
@@ -981,11 +1132,11 @@ rl_parse_and_bind (string)
rl_set_key (). Otherwise, let the older code deal with it. */
if (*string == '"')
{
- char *seq = xmalloc (1 + strlen (string));
- register int j, k = 0;
- int passc = 0;
+ char *seq;
+ register int j, k, passc;
- for (j = 1; string[j]; j++)
+ seq = xmalloc (1 + strlen (string));
+ for (j = 1, k = passc = 0; string[j]; j++)
{
/* Allow backslash to quote characters, but leave them in place.
This allows a string to end with a backslash quoting another
@@ -1078,6 +1229,7 @@ static struct {
#if defined (PAREN_MATCHING)
{ "blink-matching-paren", &rl_blink_matching_paren },
#endif
+ { "completion-ignore-case", &_rl_completion_case_fold },
{ "convert-meta", &_rl_convert_meta_chars_to_ascii },
{ "disable-completion", &rl_inhibit_completion },
{ "enable-keypad", &_rl_enable_keypad },
@@ -1088,6 +1240,7 @@ static struct {
{ "mark-modified-lines", &_rl_mark_modified_lines },
{ "meta-flag", &_rl_meta_flag },
{ "output-meta", &_rl_output_meta_chars },
+ { "print-completions-horizontally", &_rl_print_completions_horizontally },
{ "show-all-if-ambiguous", &_rl_complete_show_all },
#if defined (VISIBLE_STATS)
{ "visible-stats", &rl_visible_stats },
@@ -1186,6 +1339,7 @@ rl_variable_bind (name, value)
_rl_bell_preference = AUDIBLE_BELL;
}
+ /* For the time being, unknown variable names are simply ignored. */
return 0;
}
@@ -1338,7 +1492,7 @@ _rl_get_keyname (key)
int key;
{
char *keyname;
- int i, c;
+ int i, c, v;
keyname = (char *)xmalloc (8);
@@ -1383,6 +1537,18 @@ _rl_get_keyname (key)
c = _rl_to_lower (UNCTRL (c));
}
+ /* XXX experimental code. Turn the characters that are not ASCII or
+ ISO Latin 1 (128 - 159) into octal escape sequences (\200 - \237).
+ This changes C. */
+ if (c >= 128 && c <= 159)
+ {
+ keyname[i++] = '\\';
+ keyname[i++] = '2';
+ c -= 128;
+ keyname[i++] = (c / 8) + '0';
+ c = (c % 8) + '0';
+ }
+
/* Now, if the character needs to be quoted with a backslash, do that. */
if (c == '\\' || c == '"')
keyname[i++] = '\\';
@@ -1692,10 +1858,13 @@ rl_variable_dumper (print_readably)
/* bell-style */
switch (_rl_bell_preference)
{
- case NO_BELL: kname = "none"; break;
- case VISIBLE_BELL: kname = "visible"; break;
+ case NO_BELL:
+ kname = "none"; break;
+ case VISIBLE_BELL:
+ kname = "visible"; break;
case AUDIBLE_BELL:
- default: kname = "audible"; break;
+ default:
+ kname = "audible"; break;
}
if (print_readably)
fprintf (rl_outstream, "set bell-style %s\n", kname);
diff --git a/callback.c b/callback.c
index 04c5bbd..34dbc72 100644
--- a/callback.c
+++ b/callback.c
@@ -55,10 +55,10 @@ extern int rl_visible_prompt_length;
things to handle at once, and dispatches them via select(). Call
rl_callback_handler_install() with the prompt and a function to call
whenever a complete line of input is ready. The user must then
- call readline_char() every time some input is available, and
- readline_char() will call the user's function with the complete text
- read in at each end of line. The terminal is kept prepped and signals
- handled all the time, except during calls to the user's function. */
+ call rl_callback_read_char() every time some input is available, and
+ rl_callback_read_char() will call the user's function with the complete
+ text read in at each end of line. The terminal is kept prepped and
+ signals handled all the time, except during calls to the user's function. */
VFunction *rl_linefunc; /* user callback function */
static int in_handler; /* terminal_prepped and signals set? */
diff --git a/chardefs.h b/chardefs.h
index 8e6f0ef..3e9e273 100644
--- a/chardefs.h
+++ b/chardefs.h
@@ -121,7 +121,20 @@
#ifdef ESC
#undef ESC
#endif
-
#define ESC CTRL('[')
+#ifndef ISOCTAL
+#define ISOCTAL(c) ((c) >= '0' && (c) <= '7')
+#endif
+#define OCTVALUE(c) ((c) - '0')
+
+#ifndef isxdigit
+# define isxdigit(c) (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
+#endif
+
+#define HEXVALUE(c) \
+ (((c) >= 'a' && (c) <= 'f') \
+ ? (c)-'a'+10 \
+ : (c) >= 'A' && (c) <= 'F' ? (c)-'A'+10 : (c)-'0')
+
#endif /* _CHARDEFS_H_ */
diff --git a/complete.c b/complete.c
index b17c63e..985e898 100644
--- a/complete.c
+++ b/complete.c
@@ -75,6 +75,7 @@ extern char *tilde_expand ();
extern char *rl_copy_text ();
extern void _rl_abort_internal ();
extern int _rl_qsort_string_compare ();
+extern void _rl_replace_text ();
extern Function *rl_last_func;
extern int rl_editing_mode;
@@ -88,26 +89,32 @@ extern int rl_display_fixed;
char *filename_completion_function ();
char **completion_matches ();
+#if defined (VISIBLE_STATS)
+# if !defined (X_OK)
+# define X_OK 1
+# endif
+static int stat_char ();
+#endif
+
static char *rl_quote_filename ();
static char *rl_strpbrk ();
static char **remove_duplicate_matches ();
-static void insert_text ();
static void insert_match ();
-static void append_to_match ();
+static int append_to_match ();
static void insert_all_matches ();
static void display_matches ();
static int compute_lcd_of_matches ();
extern char *xmalloc (), *xrealloc ();
-/* If non-zero, then this is the address of a function to call when
- completing on a directory name. The function is called with
- the address of a string (the current directory name) as an arg. */
-Function *rl_directory_completion_hook = (Function *)NULL;
+/* **************************************************************** */
+/* */
+/* Completion matching, from readline's point of view. */
+/* */
+/* **************************************************************** */
-/* Non-zero means readline completion functions perform tilde expansion. */
-int rl_complete_with_tilde_expansion = 0;
+/* Variables known only to the readline library. */
/* If non-zero, non-unique completions always show the list of matches. */
int _rl_complete_show_all = 0;
@@ -115,27 +122,29 @@ int _rl_complete_show_all = 0;
/* If non-zero, completed directory names have a slash appended. */
int _rl_complete_mark_directories = 1;
-#if defined (VISIBLE_STATS)
-# if !defined (X_OK)
-# define X_OK 1
-# endif
+/* If non-zero, completions are printed horizontally in alphabetical order,
+ like `ls -x'. */
+int _rl_print_completions_horizontally;
-static int stat_char ();
+/* Non-zero means that case is not significant in filename completion. */
+int _rl_completion_case_fold;
+
+/* Global variables available to applications using readline. */
+#if defined (VISIBLE_STATS)
/* Non-zero means add an additional character to each filename displayed
during listing completion iff rl_filename_completion_desired which helps
to indicate the type of file being listed. */
int rl_visible_stats = 0;
#endif /* VISIBLE_STATS */
-/* **************************************************************** */
-/* */
-/* Completion matching, from readline's point of view. */
-/* */
-/* **************************************************************** */
+/* If non-zero, then this is the address of a function to call when
+ completing on a directory name. The function is called with
+ the address of a string (the current directory name) as an arg. */
+Function *rl_directory_completion_hook = (Function *)NULL;
-/* Local variable states what happened during the last completion attempt. */
-static int completion_changed_buffer;
+/* Non-zero means readline completion functions perform tilde expansion. */
+int rl_complete_with_tilde_expansion = 0;
/* Pointer to the generator function for completion_matches ().
NULL means to use filename_completion_function (), the default filename
@@ -242,6 +251,17 @@ int rl_completion_append_character = ' ';
/* If non-zero, inhibit completion (temporarily). */
int rl_inhibit_completion;
+/* Variables local to this file. */
+
+/* Local variable states what happened during the last completion attempt. */
+static int completion_changed_buffer;
+
+/*************************************/
+/* */
+/* Bindable completion functions */
+/* */
+/*************************************/
+
/* Complete the word at or before point. You have supplied the function
that does the initial simple matching selection algorithm (see
completion_matches ()). The default is to do filename completion. */
@@ -274,6 +294,33 @@ rl_insert_completions (ignore, invoking_key)
return (rl_complete_internal ('*'));
}
+/************************************/
+/* */
+/* Completion utility functions */
+/* */
+/************************************/
+
+/* Find the first occurrence in STRING1 of any character from STRING2.
+ Return a pointer to the character in STRING1. */
+static char *
+rl_strpbrk (string1, string2)
+ char *string1, *string2;
+{
+ register char *scan;
+
+ for (; *string1; string1++)
+ {
+ for (scan = string2; *scan; scan++)
+ {
+ if (*string1 == *scan)
+ {
+ return (string1);
+ }
+ }
+ }
+ return ((char *)NULL);
+}
+
/* The user must press "y" or "n". Non-zero return means "y" pressed. */
static int
get_y_or_n ()
@@ -293,6 +340,63 @@ get_y_or_n ()
}
}
+#if defined (VISIBLE_STATS)
+/* Return the character which best describes FILENAME.
+ `@' for symbolic links
+ `/' for directories
+ `*' for executables
+ `=' for sockets
+ `|' for FIFOs
+ `%' for character special devices
+ `#' for block special devices */
+static int
+stat_char (filename)
+ char *filename;
+{
+ struct stat finfo;
+ int character, r;
+
+#if defined (HAVE_LSTAT) && defined (S_ISLNK)
+ r = lstat (filename, &finfo);
+#else
+ r = stat (filename, &finfo);
+#endif
+
+ if (r == -1)
+ return (0);
+
+ character = 0;
+ if (S_ISDIR (finfo.st_mode))
+ character = '/';
+#if defined (S_ISCHR)
+ else if (S_ISCHR (finfo.st_mode))
+ character = '%';
+#endif /* S_ISCHR */
+#if defined (S_ISBLK)
+ else if (S_ISBLK (finfo.st_mode))
+ character = '#';
+#endif /* S_ISBLK */
+#if defined (S_ISLNK)
+ else if (S_ISLNK (finfo.st_mode))
+ character = '@';
+#endif /* S_ISLNK */
+#if defined (S_ISSOCK)
+ else if (S_ISSOCK (finfo.st_mode))
+ character = '=';
+#endif /* S_ISSOCK */
+#if defined (S_ISFIFO)
+ else if (S_ISFIFO (finfo.st_mode))
+ character = '|';
+#endif
+ else if (S_ISREG (finfo.st_mode))
+ {
+ if (access (filename, X_OK) == 0)
+ character = '*';
+ }
+ return (character);
+}
+#endif /* VISIBLE_STATS */
+
/* Return the portion of PATHNAME that should be output when listing
possible completions. If we are hacking filename completion, we
are only interested in the basename, the portion following the
@@ -309,26 +413,34 @@ printable_part (pathname)
/* 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 1 if we printed an extension character, 0 if not. */
+ 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)
+ { \
+ 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;
@@ -336,7 +448,6 @@ print_filename (to_print, full_pathname)
{
PUTX (*s);
}
- return 0;
#else
char *s, c, *new_full_pathname;
int extension_char, slen, tlen;
@@ -381,12 +492,13 @@ print_filename (to_print, full_pathname)
free (s);
if (extension_char)
- putc (extension_char, rl_outstream);
- return (extension_char != 0);
+ {
+ putc (extension_char, rl_outstream);
+ printed_len++;
+ }
}
- else
- return 0;
#endif /* VISIBLE_STATS */
+ return printed_len;
}
static char *
@@ -636,6 +748,125 @@ remove_duplicate_matches (matches)
return (temp_array);
}
+/* Find the common prefix of the list of matches, and put it into
+ matches[0]. */
+static int
+compute_lcd_of_matches (match_list, matches, text)
+ char **match_list;
+ int matches;
+ char *text;
+{
+ register int i, c1, c2, si;
+ int low; /* Count of max-matched characters. */
+
+ /* If only one match, just use that. Otherwise, compare each
+ member of the list with the next, finding out where they
+ stop matching. */
+ if (matches == 1)
+ {
+ match_list[0] = match_list[1];
+ match_list[1] = (char *)NULL;
+ return 1;
+ }
+
+ for (i = 1, low = 100000; i < matches; i++)
+ {
+ if (_rl_completion_case_fold)
+ {
+ for (si = 0;
+ (c1 = _rl_to_lower(match_list[i][si])) &&
+ (c2 = _rl_to_lower(match_list[i + 1][si]));
+ si++)
+ if (c1 != c2)
+ break;
+ }
+ else
+ {
+ for (si = 0;
+ (c1 = match_list[i][si]) &&
+ (c2 = match_list[i + 1][si]);
+ si++)
+ if (c1 != c2)
+ break;
+ }
+
+ if (low > si)
+ low = si;
+ }
+
+ /* If there were multiple matches, but none matched up to even the
+ first character, and the user typed something, use that as the
+ value of matches[0]. */
+ if (low == 0 && text && *text)
+ {
+ match_list[0] = xmalloc (strlen (text) + 1);
+ strcpy (match_list[0], text);
+ }
+ else
+ {
+ match_list[0] = xmalloc (low + 1);
+ strncpy (match_list[0], match_list[1], low);
+ match_list[0][low] = '\0';
+ }
+
+ return matches;
+}
+
+static int
+postprocess_matches (text, matchesp, matching_filenames)
+ char *text;
+ char ***matchesp;
+ int matching_filenames;
+{
+ char *t, **matches, **temp_matches;
+ int nmatch, i;
+
+ matches = *matchesp;
+
+ /* It seems to me that in all the cases we handle we would like
+ to ignore duplicate possiblilities. Scan for the text to
+ insert being identical to the other completions. */
+ if (rl_ignore_completion_duplicates)
+ {
+ temp_matches = remove_duplicate_matches (matches);
+ free (matches);
+ matches = temp_matches;
+ }
+
+ /* If we are matching filenames, then here is our chance to
+ do clever processing by re-examining the list. Call the
+ ignore function with the array as a parameter. It can
+ munge the array, deleting matches as it desires. */
+ if (rl_ignore_some_completions_function && matching_filenames)
+ {
+ for (nmatch = 1; matches[nmatch]; nmatch++)
+ ;
+ (void)(*rl_ignore_some_completions_function) (matches);
+ if (matches == 0 || matches[0] == 0)
+ {
+ FREE (matches);
+ ding ();
+ *matchesp = (char **)0;
+ return 0;
+ }
+ else
+ {
+ /* If we removed some matches, recompute the common prefix. */
+ for (i = 1; matches[i]; i++)
+ ;
+ if (i > 1 && i < nmatch)
+ {
+ t = matches[0];
+ compute_lcd_of_matches (matches, i - 1, text);
+ FREE (t);
+ }
+ }
+ }
+
+ *matchesp = matches;
+ return (1);
+}
+
static void
display_matches (matches)
char **matches;
@@ -718,25 +949,47 @@ display_matches (matches)
if (rl_ignore_completion_duplicates == 0)
qsort (matches + 1, len, sizeof (char *), _rl_qsort_string_compare);
- /* Print the sorted items, up-and-down alphabetically, like ls. */
crlf ();
- for (i = 1; i <= count; i++)
+ if (_rl_print_completions_horizontally == 0)
{
- for (j = 0, l = i; j < limit; j++)
+ /* Print the sorted items, up-and-down alphabetically, like ls. */
+ for (i = 1; i <= count; i++)
{
- if (l > len || matches[l] == 0)
- break;
- else
+ for (j = 0, l = i; j < limit; j++)
{
- temp = printable_part (matches[l]);
- printed_len = strlen (temp) + print_filename (temp, matches[l]);
+ if (l > len || matches[l] == 0)
+ break;
+ else
+ {
+ temp = printable_part (matches[l]);
+ printed_len = print_filename (temp, matches[l]);
- if (j + 1 < limit)
+ if (j + 1 < limit)
+ for (k = 0; k < max - printed_len; k++)
+ putc (' ', rl_outstream);
+ }
+ l += count;
+ }
+ crlf ();
+ }
+ }
+ else
+ {
+ /* Print the sorted items, across alphabetically, like ls -x. */
+ for (i = 1; matches[i]; i++)
+ {
+ temp = printable_part (matches[i]);
+ printed_len = print_filename (temp, matches[i]);
+ /* Have we reached the end of this line? */
+ if (matches[i+1])
+ {
+ if (i && (limit > 1) && (i % limit) == 0)
+ crlf ();
+ else
for (k = 0; k < max - printed_len; k++)
putc (' ', rl_outstream);
}
- l += count;
}
crlf ();
}
@@ -749,18 +1002,6 @@ display_matches (matches)
#endif
}
-static void
-insert_text (text, start, end)
- char *text;
- int start, end;
-{
- rl_begin_undo_group ();
- rl_delete_text (start, end + 1);
- rl_point = start;
- rl_insert_text (text);
- rl_end_undo_group ();
-}
-
static char *
make_quoted_replacement (match, mtype, qc)
char *match;
@@ -796,7 +1037,9 @@ make_quoted_replacement (match, mtype, qc)
/* If there is a single match, see if we need to quote it.
This also checks whether the common prefix of several
matches needs to be quoted. */
- should_quote = rl_strpbrk (match, rl_filename_quote_characters) != 0;
+ should_quote = rl_filename_quote_characters
+ ? (rl_strpbrk (match, rl_filename_quote_characters) != 0)
+ : 0;
do_replace = should_quote ? mtype : NO_MATCH;
/* Quote the replacement, since we found an embedded
@@ -831,7 +1074,7 @@ insert_match (match, start, mtype, qc)
else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc &&
replacement[0] != oqc)
start--;
- insert_text (replacement, start, rl_point - 1);
+ _rl_replace_text (replacement, start, rl_point - 1);
if (replacement != match)
free (replacement);
}
@@ -840,8 +1083,9 @@ insert_match (match, start, mtype, qc)
/* Append any necessary closing quote and a separator character to the
just-inserted match. If the user has specified that directories
should be marked by a trailing `/', append one of those instead. The
- default trailing character */
-static void
+ default trailing character is a space. Returns the number of characters
+ appended. */
+static int
append_to_match (text, delimiter, quote_char)
char *text;
int delimiter, quote_char;
@@ -881,6 +1125,8 @@ append_to_match (text, delimiter, quote_char)
if (rl_point == rl_end)
rl_insert_text (temp_string);
}
+
+ return (temp_string_index);
}
static void
@@ -933,27 +1179,24 @@ int
rl_complete_internal (what_to_do)
int what_to_do;
{
- char **matches, **temp_matches;
+ char **matches;
Function *our_func;
- int start, end, delimiter, found_quote, nmatch, i;
- char *text, *saved_line_buffer, *t;
+ int start, end, delimiter, found_quote, i;
+ char *text, *saved_line_buffer;
char quote_char;
- saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
-
- our_func = rl_completion_entry_function
- ? rl_completion_entry_function
- : (Function *)filename_completion_function;
-
/* Only the completion entry function can change these. */
rl_filename_completion_desired = 0;
rl_filename_quoting_desired = 1;
-
rl_completion_type = what_to_do;
+ saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
+ our_func = rl_completion_entry_function
+ ? rl_completion_entry_function
+ : (Function *)filename_completion_function;
+
/* We now look backwards for the start of a filename/variable word. */
end = rl_point;
-
found_quote = delimiter = 0;
quote_char = '\0';
@@ -973,50 +1216,19 @@ rl_complete_internal (what_to_do)
ding ();
FREE (saved_line_buffer);
free (text);
- return 0;
- }
-
- /* It seems to me that in all the cases we handle we would like
- to ignore duplicate possiblilities. Scan for the text to
- insert being identical to the other completions. */
- if (rl_ignore_completion_duplicates)
- {
- temp_matches = remove_duplicate_matches (matches);
- free (matches);
- matches = temp_matches;
+ return (0);
}
- /* If we are matching filenames, then here is our chance to
- do clever processing by re-examining the list. Call the
- ignore function with the array as a parameter. It can
- munge the array, deleting matches as it desires. */
- if (rl_ignore_some_completions_function &&
- our_func == (Function *)filename_completion_function)
+ /* If we are matching filenames, our_func will have been set to
+ filename_completion_function */
+ i = our_func == (Function *)filename_completion_function;
+ if (postprocess_matches (text, &matches, i) == 0)
{
- for (nmatch = 1; matches[nmatch]; nmatch++)
- ;
- (void)(*rl_ignore_some_completions_function) (matches);
- if (matches == 0 || matches[0] == 0)
- {
- FREE (matches);
- ding ();
- FREE (saved_line_buffer);
- FREE (text);
- return 0;
- }
- else
- {
- /* If we removed some matches, recompute the common prefix. */
- for (i = 1; matches[i]; i++)
- ;
- if (i > 1 && i < nmatch)
- {
- t = matches[0];
- compute_lcd_of_matches (matches, i - 1, text);
- FREE (t);
- }
- }
+ FREE (saved_line_buffer);
+ free (text);
+ return (0);
}
+
free (text);
switch (what_to_do)
@@ -1079,62 +1291,67 @@ rl_complete_internal (what_to_do)
return 0;
}
-#if defined (VISIBLE_STATS)
-/* Return the character which best describes FILENAME.
- `@' for symbolic links
- `/' for directories
- `*' for executables
- `=' for sockets
- `|' for FIFOs
- `%' for character special devices
- `#' for block special devices */
-static int
-stat_char (filename)
- char *filename;
+/***************************************************************/
+/* */
+/* Application-callable completion match generator functions */
+/* */
+/***************************************************************/
+
+/* Return an array of (char *) which is a list of completions for TEXT.
+ If there are no completions, return a NULL pointer.
+ The first entry in the returned array is the substitution for TEXT.
+ The remaining entries are the possible completions.
+ The array is terminated with a NULL pointer.
+
+ ENTRY_FUNCTION is a function of two args, and returns a (char *).
+ The first argument is TEXT.
+ The second is a state argument; it should be zero on the first call, and
+ non-zero on subsequent calls. It returns a NULL pointer to the caller
+ when there are no more matches.
+ */
+char **
+completion_matches (text, entry_function)
+ char *text;
+ CPFunction *entry_function;
{
- struct stat finfo;
- int character, r;
+ /* Number of slots in match_list. */
+ int match_list_size;
-#if defined (HAVE_LSTAT) && defined (S_ISLNK)
- r = lstat (filename, &finfo);
-#else
- r = stat (filename, &finfo);
-#endif
+ /* The list of matches. */
+ char **match_list;
- if (r == -1)
- return (0);
+ /* Number of matches actually found. */
+ int matches;
- character = 0;
- if (S_ISDIR (finfo.st_mode))
- character = '/';
-#if defined (S_ISCHR)
- else if (S_ISCHR (finfo.st_mode))
- character = '%';
-#endif /* S_ISCHR */
-#if defined (S_ISBLK)
- else if (S_ISBLK (finfo.st_mode))
- character = '#';
-#endif /* S_ISBLK */
-#if defined (S_ISLNK)
- else if (S_ISLNK (finfo.st_mode))
- character = '@';
-#endif /* S_ISLNK */
-#if defined (S_ISSOCK)
- else if (S_ISSOCK (finfo.st_mode))
- character = '=';
-#endif /* S_ISSOCK */
-#if defined (S_ISFIFO)
- else if (S_ISFIFO (finfo.st_mode))
- character = '|';
-#endif
- else if (S_ISREG (finfo.st_mode))
+ /* Temporary string binder. */
+ char *string;
+
+ matches = 0;
+ match_list_size = 10;
+ match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
+ match_list[1] = (char *)NULL;
+
+ while (string = (*entry_function) (text, matches))
{
- if (access (filename, X_OK) == 0)
- character = '*';
+ if (matches + 1 == match_list_size)
+ match_list = (char **)xrealloc
+ (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
+
+ match_list[++matches] = string;
+ match_list[matches + 1] = (char *)NULL;
}
- return (character);
+
+ /* If there were any matches, then look through them finding out the
+ lowest common denominator. That then becomes match_list[0]. */
+ if (matches)
+ compute_lcd_of_matches (match_list, matches, text);
+ else /* There were no matches. */
+ {
+ free (match_list);
+ match_list = (char **)NULL;
+ }
+ return (match_list);
}
-#endif /* VISIBLE_STATS */
/* A completion function for usernames.
TEXT contains a partial username preceded by a random
@@ -1192,135 +1409,6 @@ username_completion_function (text, state)
#endif /* !__GO32__ */
}
-/* **************************************************************** */
-/* */
-/* Completion */
-/* */
-/* **************************************************************** */
-
-/* Non-zero means that case is not significant in completion. */
-int completion_case_fold = 0;
-
-/* Find the common prefix of the list of matches, and put it into
- matches[0]. */
-static int
-compute_lcd_of_matches (match_list, matches, text)
- char **match_list;
- int matches;
- char *text;
-{
- register int i, c1, c2, si;
- int low; /* Count of max-matched characters. */
-
- /* If only one match, just use that. Otherwise, compare each
- member of the list with the next, finding out where they
- stop matching. */
- if (matches == 1)
- {
- match_list[0] = match_list[1];
- match_list[1] = (char *)NULL;
- return 1;
- }
-
- for (i = 1, low = 100000; i < matches; i++)
- {
- if (completion_case_fold)
- {
- for (si = 0;
- (c1 = _rl_to_lower(match_list[i][si])) &&
- (c2 = _rl_to_lower(match_list[i + 1][si]));
- si++)
- if (c1 != c2)
- break;
- }
- else
- {
- for (si = 0;
- (c1 = match_list[i][si]) &&
- (c2 = match_list[i + 1][si]);
- si++)
- if (c1 != c2)
- break;
- }
-
- if (low > si)
- low = si;
- }
-
- /* If there were multiple matches, but none matched up to even the
- first character, and the user typed something, use that as the
- value of matches[0]. */
- if (low == 0 && text && *text)
- {
- match_list[0] = xmalloc (strlen (text) + 1);
- strcpy (match_list[0], text);
- }
- else
- {
- match_list[0] = xmalloc (low + 1);
- strncpy (match_list[0], match_list[1], low);
- match_list[0][low] = '\0';
- }
-
- return matches;
-}
-
-/* Return an array of (char *) which is a list of completions for TEXT.
- If there are no completions, return a NULL pointer.
- The first entry in the returned array is the substitution for TEXT.
- The remaining entries are the possible completions.
- The array is terminated with a NULL pointer.
-
- ENTRY_FUNCTION is a function of two args, and returns a (char *).
- The first argument is TEXT.
- The second is a state argument; it should be zero on the first call, and
- non-zero on subsequent calls. It returns a NULL pointer to the caller
- when there are no more matches.
- */
-char **
-completion_matches (text, entry_function)
- char *text;
- CPFunction *entry_function;
-{
- /* Number of slots in match_list. */
- int match_list_size;
-
- /* The list of matches. */
- char **match_list;
-
- /* Number of matches actually found. */
- int matches;
-
- /* Temporary string binder. */
- char *string;
-
- matches = 0;
- match_list_size = 10;
- match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
- match_list[1] = (char *)NULL;
-
- while (string = (*entry_function) (text, matches))
- {
- if (matches + 1 == match_list_size)
- match_list = (char **)xrealloc
- (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
-
- match_list[++matches] = string;
- match_list[matches + 1] = (char *)NULL;
- }
-
- /* If there were any matches, then look through them finding out the
- lowest common denominator. That then becomes match_list[0]. */
- if (matches)
- compute_lcd_of_matches (match_list, matches, text);
- else /* There were no matches. */
- {
- free (match_list);
- match_list = (char **)NULL;
- }
- return (match_list);
-}
-
/* Okay, now we write the entry_function for filename completion. In the
general case. Note that completion in the shell is a little different
because of all the pathnames that must be followed when looking up the
@@ -1419,10 +1507,20 @@ filename_completion_function (text, state)
{
/* Otherwise, if these match up to the length of filename, then
it is a match. */
- if ((entry->d_name[0] == filename[0]) &&
- (((int)D_NAMLEN (entry)) >= filename_len) &&
- (strncmp (filename, entry->d_name, filename_len) == 0))
- break;
+ if (_rl_completion_case_fold)
+ {
+ if ((_rl_to_lower (entry->d_name[0]) == _rl_to_lower (filename[0])) &&
+ (((int)D_NAMLEN (entry)) >= filename_len) &&
+ (_rl_strnicmp (filename, entry->d_name, filename_len) == 0))
+ break;
+ }
+ else
+ {
+ if ((entry->d_name[0] == filename[0]) &&
+ (((int)D_NAMLEN (entry)) >= filename_len) &&
+ (strncmp (filename, entry->d_name, filename_len) == 0))
+ break;
+ }
}
}
@@ -1485,74 +1583,120 @@ filename_completion_function (text, state)
}
}
-/* A function for simple tilde expansion. */
+/* An initial implementation of a menu completion function a la tcsh. The
+ first time (if the last readline command was not rl_menu_complete), we
+ generate the list of matches. This code is very similar to the code in
+ rl_complete_internal -- there should be a way to combine the two. Then,
+ for each item in the list of matches, we insert the match in an undoable
+ fashion, with the appropriate character appended (this happens on the
+ second and subsequent consecutive calls to rl_menu_complete). When we
+ hit the end of the match list, we restore the original unmatched text,
+ ring the bell, and reset the counter to zero. */
int
-rl_tilde_expand (ignore, key)
- int ignore, key;
+rl_menu_complete (count, ignore)
+ int count, ignore;
{
- register int start, end;
- char *homedir, *temp;
- int len;
+ Function *our_func;
+ int matching_filenames, found_quote;
+
+ static char *orig_text;
+ static char **matches = (char **)0;
+ static int match_list_index = 0;
+ static int match_list_size = 0;
+ static int orig_start, orig_end;
+ static char quote_char;
+ static int delimiter;
+
+ /* The first time through, we generate the list of matches and set things
+ up to insert them. */
+ if (rl_last_func != rl_menu_complete)
+ {
+ /* Clean up from previous call, if any. */
+ FREE (orig_text);
+ if (matches)
+ {
+ for (match_list_index = 0; matches[match_list_index]; match_list_index++)
+ free (matches[match_list_index]);
+ free (matches);
+ }
- end = rl_point;
- start = end - 1;
+ match_list_index = match_list_size = 0;
+ matches = (char **)NULL;
- if (rl_point == rl_end && rl_line_buffer[rl_point] == '~')
- {
- homedir = tilde_expand ("~");
- insert_text (homedir, start, end);
- return (0);
- }
- else if (rl_line_buffer[start] != '~')
- {
- for (; !whitespace (rl_line_buffer[start]) && start >= 0; start--)
+ /* Only the completion entry function can change these. */
+ rl_filename_completion_desired = 0;
+ rl_filename_quoting_desired = 1;
+ rl_completion_type = '%';
+
+ our_func = rl_completion_entry_function
+ ? rl_completion_entry_function
+ : (Function *)filename_completion_function;
+
+ /* We now look backwards for the start of a filename/variable word. */
+ orig_end = rl_point;
+ found_quote = delimiter = 0;
+ quote_char = '\0';
+
+ if (rl_point)
+ /* This (possibly) changes rl_point. If it returns a non-zero char,
+ we know we have an open quote. */
+ quote_char = find_completion_word (&found_quote, &delimiter);
+
+ orig_start = rl_point;
+ rl_point = orig_end;
+
+ orig_text = rl_copy_text (orig_start, orig_end);
+ matches = gen_completion_matches (orig_text, orig_start, orig_end,
+ our_func, found_quote, quote_char);
+
+ /* If we are matching filenames, our_func will have been set to
+ filename_completion_function */
+ matching_filenames = our_func == (Function *)filename_completion_function;
+ if (matches == 0 || postprocess_matches (orig_text, &matches, matching_filenames) == 0)
+ {
+ ding ();
+ FREE (matches);
+ matches = (char **)0;
+ FREE (orig_text);
+ orig_text = (char *)0;
+ completion_changed_buffer = 0;
+ return (0);
+ }
+
+ for (match_list_size = 0; matches[match_list_size]; match_list_size++)
;
- start++;
+ /* matches[0] is lcd if match_list_size > 1, but the circular buffer
+ code below should take care of it. */
}
- end = start;
- do
- end++;
- while (whitespace (rl_line_buffer[end]) == 0 && end < rl_end);
-
- if (whitespace (rl_line_buffer[end]) || end >= rl_end)
- end--;
+ /* Now we have the list of matches. Replace the text between
+ rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
+ matches[match_list_index], and add any necessary closing char. */
- /* If the first character of the current word is a tilde, perform
- tilde expansion and insert the result. If not a tilde, do
- nothing. */
- if (rl_line_buffer[start] == '~')
+ if (matches == 0 || match_list_size == 0)
{
- len = end - start + 1;
- temp = xmalloc (len + 1);
- strncpy (temp, rl_line_buffer + start, len);
- temp[len] = '\0';
- homedir = tilde_expand (temp);
- free (temp);
-
- insert_text (homedir, start, end);
+ ding ();
+ FREE (matches);
+ matches = (char **)0;
+ completion_changed_buffer = 0;
+ return (0);
}
- return (0);
-}
-
-/* Find the first occurrence in STRING1 of any character from STRING2.
- Return a pointer to the character in STRING1. */
-static char *
-rl_strpbrk (string1, string2)
- char *string1, *string2;
-{
- register char *scan;
+ match_list_index = (match_list_index + count) % match_list_size;
+ if (match_list_index < 0)
+ match_list_index += match_list_size;
- for (; *string1; string1++)
+ if (match_list_index == 0)
{
- for (scan = string2; *scan; scan++)
- {
- if (*string1 == *scan)
- {
- return (string1);
- }
- }
+ ding ();
+ insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
}
- return ((char *)NULL);
+ else
+ {
+ insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
+ append_to_match (matches[match_list_index], delimiter, quote_char);
+ }
+
+ completion_changed_buffer = 1;
+ return (0);
}
diff --git a/config.h.in b/config.h.in
index 45ed5b9..65927a8 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,5 +1,8 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
+/* Define if on MINIX. */
+#undef _MINIX
+
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
@@ -92,6 +95,10 @@
#undef GWINSZ_IN_SYS_IOCTL
+#undef STRUCT_WINSIZE_IN_SYS_IOCTL
+
+#undef STRUCT_WINSIZE_IN_TERMIOS
+
#undef TIOCSTAT_IN_SYS_IOCTL
#undef FIONREAD_IN_SYS_IOCTL
diff --git a/configure b/configure
index 4b7479d..b9bb2b9 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,19 @@
#! /bin/sh
-# From configure.in for Readline 2.1, version 2.04, from autoconf version 2.12
-LIBVERSION=2.1
+# From configure.in for Readline 2.2, version 2.07, from autoconf version 2.12
+LIBVERSION=2.2
+
+
+
+
+
+
+
+
+
+
+
+
@@ -87,6 +99,8 @@ LIBVERSION=2.1
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
+ac_help="$ac_help
+--with-curses use the curses library instead of the termcap library"
# Initialize some variables set by options.
# The variables have the same names as the options, with
@@ -625,7 +639,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:629: checking host system type" >&5
+echo "configure:643: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -646,13 +660,27 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
+opt_curses=no
+opt_shared=no
+
+# Check whether --with-curses or --without-curses was given.
+if test "${with_curses+set}" = set; then
+ withval="$with_curses"
+ opt_curses=$withval
+fi
+
+
+if test "$opt_curses" = "yes"; then
+ prefer_curses=yes
+fi
+
# We want these before the checks, so the checks can modify their values.
test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:656: checking for $ac_word" >&5
+echo "configure:684: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -681,7 +709,7 @@ 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:685: checking for $ac_word" >&5
+echo "configure:713: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -729,7 +757,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:733: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:761: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -739,11 +767,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 743 "configure"
+#line 771 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -763,12 +791,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:767: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:795: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:772: checking whether we are using GNU C" >&5
+echo "configure:800: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -777,7 +805,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:781: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:809: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -792,7 +820,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:796: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:824: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -819,12 +847,8 @@ else
test "${CFLAGS+set}" = set || CFLAGS="-g"
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"
-
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:828: checking how to run the C preprocessor" >&5
+echo "configure:852: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -839,13 +863,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 843 "configure"
+#line 867 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:849: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -856,13 +880,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 860 "configure"
+#line 884 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:866: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:890: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -884,15 +908,68 @@ else
fi
echo "$ac_t""$CPP" 1>&6
+ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
+echo "configure:914: checking for minix/config.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 919 "configure"
+#include "confdefs.h"
+#include <minix/config.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:924: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ MINIX=yes
+else
+ echo "$ac_t""no" 1>&6
+MINIX=
+fi
+
+if test "$MINIX" = yes; then
+ cat >> confdefs.h <<\EOF
+#define _POSIX_SOURCE 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define _POSIX_1_SOURCE 2
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define _MINIX 1
+EOF
+
+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_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:890: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:967: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
-#line 896 "configure"
+#line 973 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -910,7 +987,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
-#line 914 "configure"
+#line 991 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -942,7 +1019,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:946: checking for a BSD compatible install" >&5
+echo "configure:1023: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -994,7 +1071,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:998: checking for $ac_word" >&5
+echo "configure:1075: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1022,12 +1099,12 @@ fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1026: checking return type of signal handlers" >&5
+echo "configure:1103: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1031 "configure"
+#line 1108 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -1044,7 +1121,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -1064,12 +1141,12 @@ EOF
echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:1068: checking whether stat file-mode macros are broken" >&5
+echo "configure:1145: checking whether stat file-mode macros are broken" >&5
if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1073 "configure"
+#line 1150 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1124,12 +1201,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1128: checking for $ac_hdr that defines DIR" >&5
+echo "configure:1205: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1133 "configure"
+#line 1210 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -1137,7 +1214,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:1141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -1162,7 +1239,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1166: checking for opendir in -ldir" >&5
+echo "configure:1243: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1170,7 +1247,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1174 "configure"
+#line 1251 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1181,7 +1258,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1203,7 +1280,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1207: checking for opendir in -lx" >&5
+echo "configure:1284: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1211,7 +1288,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1215 "configure"
+#line 1292 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1222,7 +1299,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1248,12 +1325,12 @@ fi
for ac_func in strcasecmp select setenv putenv tcgetattr setlocale lstat
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1252: checking for $ac_func" >&5
+echo "configure:1329: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1257 "configure"
+#line 1334 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1276,7 +1353,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1302,7 +1379,7 @@ done
echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:1306: checking for working strcoll" >&5
+echo "configure:1383: checking for working strcoll" >&5
if eval "test \"`echo '$''{'ac_cv_func_strcoll_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1310,7 +1387,7 @@ else
ac_cv_func_strcoll_works=no
else
cat > conftest.$ac_ext <<EOF
-#line 1314 "configure"
+#line 1391 "configure"
#include "confdefs.h"
#include <string.h>
main ()
@@ -1320,7 +1397,7 @@ main ()
strcoll ("123", "456") >= 0);
}
EOF
-if { (eval echo configure:1324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_strcoll_works=yes
else
@@ -1349,17 +1426,17 @@ for ac_hdr in unistd.h stdlib.h varargs.h stdarg.h string.h \
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1353: checking for $ac_hdr" >&5
+echo "configure:1430: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1358 "configure"
+#line 1435 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1440: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1388,13 +1465,13 @@ done
echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6
-echo "configure:1392: checking for type of signal functions" >&5
+echo "configure:1469: checking for type of signal functions" >&5
if eval "test \"`echo '$''{'bash_cv_signal_vintage'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1398 "configure"
+#line 1475 "configure"
#include "confdefs.h"
#include <signal.h>
int main() {
@@ -1407,7 +1484,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=posix
else
@@ -1416,7 +1493,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 1420 "configure"
+#line 1497 "configure"
#include "confdefs.h"
#include <signal.h>
int main() {
@@ -1426,7 +1503,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=4.2bsd
else
@@ -1435,7 +1512,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 1439 "configure"
+#line 1516 "configure"
#include "confdefs.h"
#include <signal.h>
@@ -1448,7 +1525,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=svr3
else
@@ -1489,15 +1566,17 @@ fi
echo $ac_n "checking if signal handlers must be reinstalled when invoked""... $ac_c" 1>&6
-echo "configure:1493: checking if signal handlers must be reinstalled when invoked" >&5
+echo "configure:1570: checking if signal handlers must be reinstalled when invoked" >&5
if eval "test \"`echo '$''{'bash_cv_must_reinstall_sighandlers'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
- { echo "configure: error: cannot check signal handling if cross compiling" 1>&2; exit 1; }
+ { echo "configure: error: cannot check signal handling if cross compiling -- defaulting to no" 1>&2; exit 1; }
+ bash_cv_must_reinstall_sighandlers=no
+
else
cat > conftest.$ac_ext <<EOF
-#line 1501 "configure"
+#line 1580 "configure"
#include "confdefs.h"
#include <signal.h>
@@ -1544,7 +1623,7 @@ main()
}
EOF
-if { (eval echo configure:1548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_must_reinstall_sighandlers=no
else
@@ -1569,15 +1648,17 @@ fi
echo $ac_n "checking for presence of POSIX-style sigsetjmp/siglongjmp""... $ac_c" 1>&6
-echo "configure:1573: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
+echo "configure:1652: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
if eval "test \"`echo '$''{'bash_cv_func_sigsetjmp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
- { echo "configure: error: cannot check for sigsetjmp/siglongjmp if cross-compiling" 1>&2; exit 1; }
+ { echo "configure: error: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" 1>&2; exit 1; }
+ bash_cv_func_sigsetjmp=missing
+
else
cat > conftest.$ac_ext <<EOF
-#line 1581 "configure"
+#line 1662 "configure"
#include "confdefs.h"
#ifdef HAVE_UNISTD_H
@@ -1618,7 +1699,7 @@ exit(1);
#endif
}
EOF
-if { (eval echo configure:1622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_func_sigsetjmp=present
else
@@ -1630,7 +1711,6 @@ fi
rm -fr conftest*
fi
-
fi
echo "$ac_t""$bash_cv_func_sigsetjmp" 1>&6
@@ -1642,22 +1722,22 @@ EOF
fi
echo $ac_n "checking for lstat""... $ac_c" 1>&6
-echo "configure:1646: checking for lstat" >&5
+echo "configure:1726: checking for lstat" >&5
if eval "test \"`echo '$''{'bash_cv_func_lstat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1651 "configure"
+#line 1731 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
int main() {
- lstat("",(struct stat *)0);
+ lstat(".",(struct stat *)0);
; return 0; }
EOF
-if { (eval echo configure:1661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_func_lstat=yes
else
@@ -1678,21 +1758,23 @@ EOF
fi
echo $ac_n "checking whether programs are able to redeclare getpw functions""... $ac_c" 1>&6
-echo "configure:1682: checking whether programs are able to redeclare getpw functions" >&5
+echo "configure:1762: checking whether programs are able to redeclare getpw functions" >&5
if eval "test \"`echo '$''{'bash_cv_can_redecl_getpw'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1687 "configure"
+#line 1767 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <pwd.h>
extern struct passwd *getpwent();
+extern struct passwd *getpwuid();
+extern struct passwd *getpwnam();
int main() {
-struct passwd *z; z = getpwent();
+struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root");
; return 0; }
EOF
-if { (eval echo configure:1696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1778: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_can_redecl_getpw=yes
else
@@ -1714,15 +1796,17 @@ fi
echo $ac_n "checking whether or not strcoll and strcmp differ""... $ac_c" 1>&6
-echo "configure:1718: checking whether or not strcoll and strcmp differ" >&5
+echo "configure:1800: checking whether or not strcoll and strcmp differ" >&5
if eval "test \"`echo '$''{'bash_cv_func_strcoll_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
- { echo "configure: error: cannot check strcoll if cross compiling" 1>&2; exit 1; }
+ { echo "configure: error: cannot check strcoll if cross compiling -- defaulting to no" 1>&2; exit 1; }
+ bash_cv_func_strcoll_broken=no
+
else
cat > conftest.$ac_ext <<EOF
-#line 1726 "configure"
+#line 1810 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -1761,7 +1845,7 @@ char *v[];
}
EOF
-if { (eval echo configure:1765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_func_strcoll_broken=yes
else
@@ -1773,7 +1857,6 @@ fi
rm -fr conftest*
fi
-
fi
echo "$ac_t""$bash_cv_func_strcoll_broken" 1>&6
@@ -1786,12 +1869,12 @@ fi
echo $ac_n "checking whether signal handlers are of type void""... $ac_c" 1>&6
-echo "configure:1790: checking whether signal handlers are of type void" >&5
+echo "configure:1873: checking whether signal handlers are of type void" >&5
if eval "test \"`echo '$''{'bash_cv_void_sighandler'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1795 "configure"
+#line 1878 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -1806,7 +1889,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_void_sighandler=yes
else
@@ -1826,12 +1909,12 @@ EOF
fi
echo $ac_n "checking for TIOCGWINSZ in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:1830: checking for TIOCGWINSZ in sys/ioctl.h" >&5
+echo "configure:1913: checking for TIOCGWINSZ in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_tiocgwinsz_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1835 "configure"
+#line 1918 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -1839,7 +1922,7 @@ int main() {
int x = TIOCGWINSZ;
; return 0; }
EOF
-if { (eval echo configure:1843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1926: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_tiocgwinsz_in_ioctl=yes
else
@@ -1860,12 +1943,12 @@ EOF
fi
echo $ac_n "checking for TIOCSTAT in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:1864: checking for TIOCSTAT in sys/ioctl.h" >&5
+echo "configure:1947: checking for TIOCSTAT in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_tiocstat_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1869 "configure"
+#line 1952 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -1873,7 +1956,7 @@ int main() {
int x = TIOCSTAT;
; return 0; }
EOF
-if { (eval echo configure:1877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_tiocstat_in_ioctl=yes
else
@@ -1894,12 +1977,12 @@ EOF
fi
echo $ac_n "checking for FIONREAD in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:1898: checking for FIONREAD in sys/ioctl.h" >&5
+echo "configure:1981: checking for FIONREAD in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_fionread_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1903 "configure"
+#line 1986 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -1907,7 +1990,7 @@ int main() {
int x = FIONREAD;
; return 0; }
EOF
-if { (eval echo configure:1911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_fionread_in_ioctl=yes
else
@@ -1928,19 +2011,19 @@ EOF
fi
echo $ac_n "checking for speed_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:1932: checking for speed_t in sys/types.h" >&5
+echo "configure:2015: checking for speed_t in sys/types.h" >&5
if eval "test \"`echo '$''{'bash_cv_speed_t_in_sys_types'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1937 "configure"
+#line 2020 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
speed_t x;
; return 0; }
EOF
-if { (eval echo configure:1944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_speed_t_in_sys_types=yes
else
@@ -1960,14 +2043,75 @@ EOF
fi
+echo $ac_n "checking for struct winsize in sys/ioctl.h and termios.h""... $ac_c" 1>&6
+echo "configure:2048: checking for struct winsize in sys/ioctl.h and termios.h" >&5
+if eval "test \"`echo '$''{'bash_cv_struct_winsize_header'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2053 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/ioctl.h>
+int main() {
+struct winsize x;
+; return 0; }
+EOF
+if { (eval echo configure:2061: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ bash_cv_struct_winsize_header=ioctl_h
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cat > conftest.$ac_ext <<EOF
+#line 2069 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <termios.h>
+int main() {
+struct winsize x;
+; return 0; }
+EOF
+if { (eval echo configure:2077: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ bash_cv_struct_winsize_header=termios_h
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ bash_cv_struct_winsize_header=other
+fi
+rm -f conftest*
+
+fi
+rm -f conftest*
+fi
+
+if test $bash_cv_struct_winsize_header = ioctl_h; then
+ echo "$ac_t""sys/ioctl.h" 1>&6
+ cat >> confdefs.h <<\EOF
+#define STRUCT_WINSIZE_IN_SYS_IOCTL 1
+EOF
+
+elif test $bash_cv_struct_winsize_header = termios_h; then
+ echo "$ac_t""termios.h" 1>&6
+ cat >> confdefs.h <<\EOF
+#define STRUCT_WINSIZE_IN_TERMIOS 1
+EOF
+
+else
+ echo "$ac_t""not found" 1>&6
+fi
+
echo $ac_n "checking if struct dirent has a d_ino member""... $ac_c" 1>&6
-echo "configure:1966: checking if struct dirent has a d_ino member" >&5
+echo "configure:2110: checking if struct dirent has a d_ino member" >&5
if eval "test \"`echo '$''{'bash_cv_dirent_has_dino'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1971 "configure"
+#line 2115 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -1996,7 +2140,7 @@ struct dirent d; int z; z = d.d_ino;
; return 0; }
EOF
-if { (eval echo configure:2000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_dirent_has_dino=yes
else
@@ -2018,12 +2162,12 @@ fi
echo $ac_n "checking if struct dirent has a d_fileno member""... $ac_c" 1>&6
-echo "configure:2022: checking if struct dirent has a d_fileno member" >&5
+echo "configure:2166: checking if struct dirent has a d_fileno member" >&5
if eval "test \"`echo '$''{'bash_cv_dirent_has_d_fileno'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2027 "configure"
+#line 2171 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -2052,7 +2196,7 @@ struct dirent d; int z; z = d.d_fileno;
; return 0; }
EOF
-if { (eval echo configure:2056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2200: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_dirent_has_d_fileno=yes
else
@@ -2073,6 +2217,167 @@ EOF
fi
+case "$host_os" in
+aix*) prefer_curses=yes ;;
+esac
+
+if test "X$bash_cv_termcap_lib" = "X"; then
+_bash_needmsg=yes
+else
+echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
+echo "configure:2229: checking which library has the termcap functions" >&5
+_bash_needmsg=
+fi
+if eval "test \"`echo '$''{'bash_cv_termcap_lib'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
+echo "configure:2236: checking for tgetent in -ltermcap" >&5
+ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-ltermcap $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2244 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char tgetent();
+
+int main() {
+tgetent()
+; return 0; }
+EOF
+if { (eval echo configure:2255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ bash_cv_termcap_lib=libtermcap
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
+echo "configure:2274: checking for tgetent in -lcurses" >&5
+ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lcurses $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2282 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char tgetent();
+
+int main() {
+tgetent()
+; return 0; }
+EOF
+if { (eval echo configure:2293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ bash_cv_termcap_lib=libcurses
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
+echo "configure:2312: checking for tgetent in -lncurses" >&5
+ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lncurses $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2320 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char tgetent();
+
+int main() {
+tgetent()
+; return 0; }
+EOF
+if { (eval echo configure:2331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ bash_cv_termcap_lib=libncurses
+else
+ echo "$ac_t""no" 1>&6
+bash_cv_termcap_lib=gnutermcap
+fi
+
+fi
+
+fi
+
+fi
+
+if test "X$_bash_needmsg" = "Xyes"; then
+echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
+echo "configure:2360: checking which library has the termcap functions" >&5
+fi
+echo "$ac_t""using $bash_cv_termcap_lib" 1>&6
+if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
+LDFLAGS="$LDFLAGS -L./lib/termcap"
+TERMCAP_LIB="./lib/termcap/libtermcap.a"
+TERMCAP_DEP="./lib/termcap/libtermcap.a"
+elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
+TERMCAP_LIB=-ltermcap
+TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libncurses; then
+TERMCAP_LIB=-lncurses
+TERMCAP_DEP=
+else
+TERMCAP_LIB=-lcurses
+TERMCAP_DEP=
+fi
+
+if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
+ TERMCAP_LIB=-ltermcap #default
+fi
+
case "$host_cpu" in
*cray*) LOCAL_CFLAGS=-DCRAY ;;
esac
@@ -2081,6 +2386,12 @@ case "$host_os" in
isc*) LOCAL_CFLAGS=-Disc386 ;;
esac
+BUILD_DIR=`pwd`
+
+
+
+
+
@@ -2231,9 +2542,12 @@ s%@CPP@%$CPP%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@RANLIB@%$RANLIB%g
+s%@BUILD_DIR@%$BUILD_DIR%g
s%@LOCAL_CFLAGS@%$LOCAL_CFLAGS%g
+s%@LOCAL_LDFLAGS@%$LOCAL_LDFLAGS%g
s%@LOCAL_DEFS@%$LOCAL_DEFS%g
s%@LIBVERSION@%$LIBVERSION%g
+s%@TERMCAP_LIB@%$TERMCAP_LIB%g
CEOF
EOF
diff --git a/configure.in b/configure.in
index 13152b8..cab431a 100644
--- a/configure.in
+++ b/configure.in
@@ -4,8 +4,8 @@ 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 2.1, version 2.04, from autoconf version] AC_ACVERSION)
-LIBVERSION=2.1
+AC_REVISION([for Readline 2.2, version 2.07, from autoconf version] AC_ACVERSION)
+LIBVERSION=2.2
AC_INIT(readline.h)
AC_CONFIG_HEADER(config.h)
@@ -17,10 +17,22 @@ AC_CONFIG_AUX_DIR(./support)
AC_CANONICAL_HOST
+dnl configure defaults
+opt_curses=no
+opt_shared=no
+
+dnl arguments to configure
+AC_ARG_WITH(curses, --with-curses use the curses library instead of the termcap library,opt_curses=$withval)
+
+if test "$opt_curses" = "yes"; then
+ prefer_curses=yes
+fi
+
# We want these before the checks, so the checks can modify their values.
test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
AC_PROG_CC
+AC_MINIX
# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
@@ -55,9 +67,19 @@ BASH_HAVE_TIOCGWINSZ
BASH_HAVE_TIOCSTAT
BASH_HAVE_FIONREAD
BASH_MISC_SPEED_T
+BASH_STRUCT_WINSIZE
BASH_STRUCT_DIRENT_D_INO
BASH_STRUCT_DIRENT_D_FILENO
+dnl yuck
+case "$host_os" in
+aix*) prefer_curses=yes ;;
+esac
+BASH_CHECK_LIB_TERMCAP
+if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
+ TERMCAP_LIB=-ltermcap #default
+fi
+
case "$host_cpu" in
*cray*) LOCAL_CFLAGS=-DCRAY ;;
esac
@@ -66,8 +88,12 @@ case "$host_os" in
isc*) LOCAL_CFLAGS=-Disc386 ;;
esac
+BUILD_DIR=`pwd`
+AC_SUBST(BUILD_DIR)
+
AC_SUBST(CFLAGS)
AC_SUBST(LOCAL_CFLAGS)
+AC_SUBST(LOCAL_LDFLAGS)
AC_SUBST(LOCAL_DEFS)
AC_SUBST(host_cpu)
@@ -75,6 +101,8 @@ AC_SUBST(host_os)
AC_SUBST(LIBVERSION)
+AC_SUBST(TERMCAP_LIB)
+
AC_OUTPUT([Makefile doc/Makefile examples/Makefile],
[
# Makefile uses this timestamp file to record whether config.h is up to date.
diff --git a/display.c b/display.c
index c283f9a..edb5b20 100644
--- a/display.c
+++ b/display.c
@@ -72,7 +72,11 @@ extern int _rl_prefer_visible_bell;
/* Variables and functions imported from terminal.c */
extern void _rl_output_some_chars ();
+#ifdef _MINIX
+extern void _rl_output_character_function ();
+#else
extern int _rl_output_character_function ();
+#endif
extern int _rl_backspace ();
extern char *term_clreol, *term_clrpag;
@@ -1482,7 +1486,7 @@ cr ()
void
_rl_redisplay_after_sigwinch ()
{
- char *t, *oldp;
+ char *t, *oldp, *oldl, *oldlprefix;
/* Clear the current line and put the cursor at column 0. Make sure
the right thing happens if we have wrapped to a new screen line. */
@@ -1508,9 +1512,14 @@ _rl_redisplay_after_sigwinch ()
if (t)
{
oldp = rl_display_prompt;
+ oldl = local_prompt;
+ oldlprefix = local_prompt_prefix;
rl_display_prompt = ++t;
+ local_prompt = local_prompt_prefix = (char *)NULL;
rl_forced_update_display ();
rl_display_prompt = oldp;
+ local_prompt = oldl;
+ local_prompt_prefix = oldlprefix;
}
else
rl_forced_update_display ();
diff --git a/doc/Makefile.in b/doc/Makefile.in
index bbbd5c3..63da1be 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -2,6 +2,7 @@
# Emacs likes it that way.
top_srcdir = @top_srcdir@
srcdir = @srcdir@
+VPATH = .:@srcdir@
prefix = @prefix@
infodir = @infodir@
@@ -38,9 +39,10 @@ DVIOBJ = readline.dvi history.dvi
INFOOBJ = readline.info history.info
PSOBJ = readline.ps history.ps
HTMLOBJ = readline.html history.html
+HTMLTOC = readline_toc.html history_toc.html
TEXTOBJ = readline.0
-CREATED_DOCS = $(DVIOBJ) $(INFOOBJ) $(PSOBJ) $(HTMLOBJ) $(TEXTOBJ)
+CREATED_DOCS = $(DVIOBJ) $(INFOOBJ) $(PSOBJ) $(HTMLOBJ) $(HTMLTOC) $(TEXTOBJ)
.SUFFIXES: .0 .3 .ps .txt .dvi
@@ -91,7 +93,7 @@ ps: $(PSOBJ)
html: $(HTMLOBJ)
text: $(TEXTOBJ)
-readline.0: $(srcdir)/readline.3
+readline.0: readline.3
clean:
$(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
@@ -99,11 +101,13 @@ clean:
distclean: clean
$(RM) $(CREATED_DOCS)
+ $(RM) Makefile
mostlyclean: clean
maintainer-clean: clean
$(RM) $(CREATED_DOCS)
+ $(RM) Makefile
installdirs: $(top_srcdir)/support/mkdirs
-$(SHELL) $(top_srcdir)/support/mkdirs $(infodir) $(man3dir)
diff --git a/doc/hist.texinfo b/doc/hist.texinfo
index aa04553..be8742f 100644
--- a/doc/hist.texinfo
+++ b/doc/hist.texinfo
@@ -7,20 +7,25 @@
@setchapternewpage odd
@ignore
-last change: Thu Mar 21 16:07:29 EST 1996
+last change: Thu Apr 2 14:38:22 EST 1998
@end ignore
-@set EDITION 2.1
-@set VERSION 2.1
-@set UPDATED 21 March 1996
-@set UPDATE-MONTH March 1996
+@set EDITION 2.2
+@set VERSION 2.2
+@set UPDATED 2 April 1998
+@set UPDATE-MONTH April 1998
+
+@dircategory Libraries
+@direntry
+* History: (history). The GNU history library API
+@end direntry
@ifinfo
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, 1991, 1993, 1995, 1996 Free Software Foundation, Inc.
+Copyright (C) 1988, 1991, 1993, 1995, 1996, 1998 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
diff --git a/doc/history.dvi b/doc/history.dvi
index b73cd3c..f501792 100644
--- a/doc/history.dvi
+++ b/doc/history.dvi
Binary files differ
diff --git a/doc/history.html b/doc/history.html
index 276ed82..c8dd1e1 100644
--- a/doc/history.html
+++ b/doc/history.html
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.51
- from /usr/homes/chet/src/bash/readline-2.1/doc/hist.texinfo on 3 June 1997 -->
+ from /usr/homes/chet/src/bash/readline-2.2/doc/hist.texinfo on 2 April 1998 -->
<TITLE>GNU History Library</TITLE>
</HEAD>
@@ -15,6 +15,13 @@
<P><HR><P>
<P>
+@dircategory Libraries
+@direntry
+* History: (history). The GNU history library API
+
+</P>
+
+<P>
This document describes the GNU History library, a programming tool that
provides a consistent user interface for recalling lines of previously
typed input.
@@ -65,7 +72,7 @@ see section <A HREF="history.html#SEC6">Programming with GNU History</A>.
-<H2><A NAME="SEC2" HREF="history_toc.html#TOC2">Interactive History Expansion</A></H2>
+<H2><A NAME="SEC2" HREF="history_toc.html#TOC2">History Expansion</A></H2>
<P>
<A NAME="IDX1"></A>
@@ -85,14 +92,14 @@ fix errors in previous commands quickly.
</P>
<P>
History expansion takes place in two parts. The first is to determine
-which line from the previous history should be used during substitution.
+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 previous history is called the
+current one. The line selected from the history is called the
<STRONG>event</STRONG>, and the portions of that line that are acted upon are
called <STRONG>words</STRONG>. Various <STRONG>modifiers</STRONG> are available to manipulate
the selected words. The line is broken into words in the same fashion
-that Bash does, so that several English (or Unix) words
-surrounded by quotes are considered as one word.
+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>`!'</SAMP> by default.
@@ -116,7 +123,7 @@ history list.
<DT><CODE>!</CODE>
<DD>
Start a history substitution, except when followed by a space, tab,
-the end of the line, <KBD>=</KBD> or <KBD>(</KBD>.
+the end of the line, <SAMP>`='</SAMP> or <SAMP>`('</SAMP>.
<DT><CODE>!<VAR>n</VAR></CODE>
<DD>
@@ -159,7 +166,7 @@ The entire command line typed so far.
<P>
Word designators are used to select desired words from the event.
A <SAMP>`:'</SAMP> separates the event specification from the word designator. It
-can be omitted if the word designator begins with a <SAMP>`^'</SAMP>, <SAMP>`$'</SAMP>,
+may be omitted if the word designator begins with a <SAMP>`^'</SAMP>, <SAMP>`$'</SAMP>,
<SAMP>`*'</SAMP>, <SAMP>`-'</SAMP>, or <SAMP>`%'</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.
@@ -698,7 +705,7 @@ These functions implement <CODE>csh</CODE>-like history expansion.
<DT><U>Function:</U> int <B>history_expand</B> <I>(char *string, char **output)</I>
<DD><A NAME="IDX32"></A>
Expand <VAR>string</VAR>, placing the result into <VAR>output</VAR>, a pointer
-to a string (see section <A HREF="history.html#SEC2">Interactive History Expansion</A>). Returns:
+to a string (see section <A HREF="history.html#SEC2">History Expansion</A>). Returns:
<DL COMPACT>
<DT><CODE>0</CODE>
@@ -1055,7 +1062,7 @@ main ()
</P>
<P><HR><P>
-This document was generated on 3 June 1997 using the
+This document was generated on 2 April 1998 using the
<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
translator version 1.51.</P>
</BODY>
diff --git a/doc/history.info b/doc/history.info
index 9266a5d..f3c59a1 100644
--- a/doc/history.info
+++ b/doc/history.info
@@ -1,5 +1,10 @@
-This is Info file history.info, produced by Makeinfo-1.55 from the
-input file /usr/homes/chet/src/bash/readline-2.1/doc/hist.texinfo.
+This is Info file history.info, produced by Makeinfo version 1.67 from
+the input file /usr/homes/chet/src/bash/readline-2.2/doc/hist.texinfo.
+
+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, a programming tool
that provides a consistent user interface for recalling lines of
@@ -23,7 +28,7 @@ versions, except that this permission notice may be stated in a
translation approved by the Foundation.

-File: history.info, Node: Top, Next: Using History Interactively, Prev: (DIR), Up: (DIR)
+File: history.info, Node: Top, Next: Using History Interactively, Up: (dir)
GNU History Library
*******************
@@ -58,8 +63,8 @@ own programs, *note Programming with GNU History::..

File: history.info, Node: History Interaction, Up: Using History Interactively
-Interactive History Expansion
-=============================
+History Expansion
+=================
The History library provides a history expansion feature that is
similar to the history expansion provided by `csh'. This section
@@ -71,16 +76,15 @@ 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 previous history should be used during
+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 previous
-history is called the "event", and the portions of that line that are
-acted upon are called "words". Various "modifiers" are available to
-manipulate the selected words. The line is broken into words in the
-same fashion that Bash does, so that several English (or Unix) words
-surrounded by quotes are considered as one word. History expansions
-are introduced by the appearance of the history expansion character,
-which is `!' by default.
+inclusion into the current one. The line selected from the history is
+called the "event", and the portions of that line that are acted upon
+are called "words". Various "modifiers" are available to manipulate
+the selected words. The line is broken into words in the same fashion
+that Bash does, so that several words surrounded by quotes are
+considered one word. History expansions are introduced by the
+appearance of the history expansion character, which is `!' by default.
* Menu:
@@ -99,7 +103,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.
@@ -132,7 +136,7 @@ Word Designators
----------------
Word designators are used to select desired words from the event. A
-`:' separates the event specification from the word designator. It can
+`:' 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
@@ -702,11 +706,11 @@ Concept Index
* Menu:
-* anchored search: Searching the History List.
-* event designators: Event Designators.
-* history events: Event Designators.
-* history expansion: History Interaction.
-* History Searching: Searching the History List.
+* anchored search: Searching the History List.
+* event designators: Event Designators.
+* history events: Event Designators.
+* history expansion: History Interaction.
+* History Searching: Searching the History List.

File: history.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top
@@ -716,70 +720,70 @@ Function and Variable Index
* Menu:
-* add_history: History List Management.
-* append_history: Managing the History File.
-* clear_history: History List Management.
-* current_history: Information About the History List.
-* get_history_event: History Expansion.
-* history_arg_extract: History Expansion.
-* history_base: History Variables.
-* history_comment_char: History Variables.
-* history_expand: History Expansion.
-* history_expansion_char: History Variables.
-* history_get: Information About the History List.
-* history_get_history_state: Initializing History and State Management.
-* history_inhibit_expansion_function: History Variables.
-* history_is_stifled: History List Management.
-* history_length: History Variables.
-* history_list: Information About the History List.
-* history_no_expand_chars: History Variables.
-* history_quotes_inhibit_expansion: History Variables.
-* history_search: Searching the History List.
-* history_search_delimiter_chars: History Variables.
-* history_search_pos: Searching the History List.
-* history_search_prefix: Searching the History List.
-* history_set_history_state: Initializing History and State Management.
-* history_set_pos: Moving Around the History List.
-* history_subst_char: History Variables.
-* history_tokenize: History Expansion.
-* history_total_bytes: Information About the History List.
-* history_truncate_file: Managing the History File.
-* max_input_history: History Variables.
-* next_history: Moving Around the History List.
-* previous_history: Moving Around the History List.
-* read_history: Managing the History File.
-* read_history_range: Managing the History File.
-* remove_history: History List Management.
-* replace_history_entry: History List Management.
-* stifle_history: History List Management.
-* unstifle_history: History List Management.
-* using_history: Initializing History and State Management.
-* where_history: Information About the History List.
-* write_history: Managing the History File.
+* add_history: History List Management.
+* append_history: Managing the History File.
+* clear_history: History List Management.
+* current_history: Information About the History List.
+* get_history_event: History Expansion.
+* history_arg_extract: History Expansion.
+* history_base: History Variables.
+* history_comment_char: History Variables.
+* history_expand: History Expansion.
+* history_expansion_char: History Variables.
+* history_get: Information About the History List.
+* history_get_history_state: Initializing History and State Management.
+* history_inhibit_expansion_function: History Variables.
+* history_is_stifled: History List Management.
+* history_length: History Variables.
+* history_list: Information About the History List.
+* history_no_expand_chars: History Variables.
+* history_quotes_inhibit_expansion: History Variables.
+* history_search: Searching the History List.
+* history_search_delimiter_chars: History Variables.
+* history_search_pos: Searching the History List.
+* history_search_prefix: Searching the History List.
+* history_set_history_state: Initializing History and State Management.
+* history_set_pos: Moving Around the History List.
+* history_subst_char: History Variables.
+* history_tokenize: History Expansion.
+* history_total_bytes: Information About the History List.
+* history_truncate_file: Managing the History File.
+* max_input_history: History Variables.
+* next_history: Moving Around the History List.
+* previous_history: Moving Around the History List.
+* read_history: Managing the History File.
+* read_history_range: Managing the History File.
+* remove_history: History List Management.
+* replace_history_entry: History List Management.
+* stifle_history: History List Management.
+* unstifle_history: History List Management.
+* using_history: Initializing History and State Management.
+* where_history: Information About the History List.
+* write_history: Managing the History File.

Tag Table:
-Node: Top1035
-Node: Using History Interactively1629
-Node: History Interaction2137
-Node: Event Designators3614
-Node: Word Designators4537
-Node: Modifiers5786
-Node: Programming with GNU History6924
-Node: Introduction to History7650
-Node: History Storage8971
-Node: History Functions10064
-Node: Initializing History and State Management11035
-Node: History List Management11827
-Node: Information About the History List13348
-Node: Moving Around the History List14654
-Node: Searching the History List15539
-Node: Managing the History File17371
-Node: History Expansion18877
-Node: History Variables20721
-Node: History Programming Example23039
-Node: Concept Index25643
-Node: Function and Variable Index26124
+Node: Top1167
+Node: Using History Interactively1747
+Node: History Interaction2255
+Node: Event Designators3674
+Node: Word Designators4601
+Node: Modifiers5850
+Node: Programming with GNU History6988
+Node: Introduction to History7714
+Node: History Storage9035
+Node: History Functions10128
+Node: Initializing History and State Management11099
+Node: History List Management11891
+Node: Information About the History List13412
+Node: Moving Around the History List14718
+Node: Searching the History List15603
+Node: Managing the History File17435
+Node: History Expansion18941
+Node: History Variables20785
+Node: History Programming Example23103
+Node: Concept Index25707
+Node: Function and Variable Index26193

End Tag Table
diff --git a/doc/history.ps b/doc/history.ps
index 1866d92..b9a28e8 100644
--- a/doc/history.ps
+++ b/doc/history.ps
@@ -1,7 +1,15 @@
-%!PS (but not EPSF; comments have been disabled)
+%!PS-Adobe-2.0
+%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
+%%Title: history.dvi
+%%Pages: 18
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentPaperSizes: A4
+%%EndComments
%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
-%DVIPSParameters: dpi=300, compressed, comments removed
-%DVIPSSource: TeX output 1997.06.03:1139
+%DVIPSParameters: dpi=300, comments removed
+%DVIPSSource: TeX output 1998.04.02:1444
+%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
@@ -25,20 +33,8 @@ dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
+if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
@@ -60,1499 +56,2016 @@ B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{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
-TeXDict begin 40258431 52099146 1000 300 300 (history.dvi)
-@start /Fa 1 47 df<127012F8A212F012E005057B840E>46 D
-E /Fb 1 47 df<1238127C12FCA212F8127006067A8512>46 D E
-/Fc 25 123 df<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C1C127012E0A3
-EA707C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E0300
-1C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<EA03F8EA0FFE
-EA1C0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>
-I<137EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301EEA383E381FEF
-C0EA07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE0
-0012601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA038EEA070413
-00A3EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA383B38301800
-EA701CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA700F38E00380A4
-38700700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1DFEEA1F86EA1E
-07121CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A2
-0D187C9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38
-133C131C7F38FF1F80A21117809614>107 D<EAFF80A21203B3EAFFFEA20F177E9614>I<
-EAFB8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78EAFDFEEA1F
-86EA1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6
-EA701CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C
-1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218808F14>I<
-EA03E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7EA0007A6EB
-3FE0A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EAFFF0A21110
-7F8F14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA001CEA600612
-E012F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E00A8130EA3
-131CEA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03E71310808F
-14>I<38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311107F8F14>I<38
-FE3F80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<
-EA7E3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E781338487E38FE3F80A2
-11107F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370A25B1201A25B
-A3485A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C1338EA007013E0
-EA01C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I
-E /Fd 1 47 df<1270A212F0126004047D830B>46 D E /Fe 25
-122 df<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA6006A2EA700EEA30
-0CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA7FF80D187D9713>
-I<EA0F80EA1060EA2030EA4038EA803CEAC01C12E01240EA003C1338A21370136013C0EA
-018013001202EA040412081210EA3008EA3FF8127F12FF0E187E9713>I<EA01F8EA0704
-EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEAE0061307A31260
-A2EA7006EA300EEA180CEA0C38EA07E010187F9713>54 D<1240EA7FFF13FEA2EA4004EA
-80081310A2EA00201340A21380120113005AA25A1206A2120EA5120410197E9813>I<EA
-07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03E0EA0CF8EA30
-7CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>I<EA07E0EA1C
-30EA3018EA700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07C7EA00071306
-130E130C12701318EA6030EA3060EA0F8010187F9713>I<39FFE1FFC0390E001C00AB38
-0FFFFC380E001CAC39FFE1FFC01A1A7F991D>72 D<EA0FC2EA1836EA200EEA600612C013
-02A3EAE0001270127EEA3FE0EA1FF8EA03FCEA007E130E130713031280A3EAC0021306EA
-E004EAD818EA87E0101A7E9915>83 D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C12
-38127012E01480A2133CEA705F381F8F0011107F8F13>97 D<EA07F8EA1C1C1238EA7008
-13005AA612701304EA3808EA1C18EA07E00E107F8F11>99 D<133F1307A9EA03E7EA0C17
-EA180F487E127012E0A6126012706C5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30
-EA30181270EA600C12E0EAFFFCEAE000A41260EA7004EA3808EA1C18EA07E00E107F8F11
->I<EA0FCF3818718038303000EA7038A4EA30306C5AEA2FC00060C7FCA21270EA3FF013
-FC6C7EEA600FEAC003A4EA6006EA381CEA07E011187F8F13>103
-D<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218123CA212
-181200A612FC121CAE12FF081A80990A>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF0
-1410808F15>110 D<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA38
-1CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C0
-1480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<EAFC78EA1D9CEA1E1C1308
-EA1C00ABEAFF800E10808F0F>114 D<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0
-EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238
-EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38FF0F80383C0700EA1C06
-1304A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>118
-D<38FE3F80383C1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181C
-EA381E38FC3FC012107F8F14>120 D<38FF0F80383C0700EA1C061304A26C5AA26C5AA3
-EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I
-E /Ff 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012
-F0AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E /Fg 27
-123 df<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80
-B6FCA2380FC01FB2397FF8FFF0A21C237FA220>12 D<90380FFF80137F3801FC1F3803F0
-3FEA07E0EA0FC0141FA7B6FCA2380FC01FB2397FF8FFF0A21C237FA220>I<EA07FE381F
-FF80383F07E06D7E130180121E1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA7C02EA
-7E0C391FF87F803807E03F19167E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF03EEBC0
-1F9038800F8015C0140715E0A715C0A2140F15809038C01F00381E707E381C3FFC38180F
-E01B237EA220>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6
-127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<49B4FCA2EB00
-3FAB13FE3807FFBF380FC1FF48C67E003E7F127E127CA212FCA7127C127E123E6C5B380F
-81FF3907FF3FE0EA01FC1B237EA220>I<13FE3807FF80380F83C0381E01E0383E00F012
-7E007C13F8147812FCB512F8A200FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0
-C6130015167E951A>I<EB1F80EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC000A6EA
-FFFEA2EA0FC0B2EA7FFCA214237EA212>I<9038FE0F803903FF9FC0380F83E3381F01F3
-391E00F000003E7FA5001E5BEA1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C38
-1FFFE014FC6C13FF7E001F1480397C001FC00078130F00F81307A3007CEB0F806CEB1F00
-381F807E6CB45A000113E01A217F951D>I<B47EA2121FABEB83F0EB8FFCEB987EEBA03E
-EBC03FA21380AE39FFF1FFE0A21B237DA220>I<121E123FEA7F80A4EA3F00121EC7FCA6
-EAFF80A2121FB2EAFFF0A20C247EA30F>I<B47EA2121FABECFF80A2EC3C00143014E0EB
-81C00183C7FC1386139E13BE13FFEBDF80EB8FC01307806D7E6D7E130080147E39FFE1FF
-C0A21A237EA21E>107 D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F803F890
-390FFE0FFE3A1F183F183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0
-A22C167D9531>I<38FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B
-167D9520>I<13FF000713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C13
-3E007E137E003E137C6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBF
-FC381FF07EEBC01F9038800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEB
-BFFCEB8FE00180C7FCA8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF381F00DF
-48137F007E7FA2127C12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8903801
-FFE0A21B207E951E>I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8
-A214167E9518>I<3807F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C
-7E6C1380120738003FC0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E95
-17>I<487EA41203A21207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FE
-EA01F811207F9F16>I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B16
-7D9520>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5A
-A26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FC
-A23A1F807C00E0D80FC014C08001E013010007017F1380A2D803F0EB0300ECCF8301F813
-87D801F913C61487D800FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026
-167F9529>I<39FFF07FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7
-FC7F6D7E497EEB37E0EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B
-167F951E>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C
-5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305B
-EA69C0EA7F80001FC8FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E013
-8038C03F005B137EC65A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA
-7E03B5FCA214167E9519>I E /Fh 24 119 df<13E0A538F0E1E0EAFCE7387EEFC0381F
-FF00EA07FCEA01F0EA07FCEA1FFF387EEFC038FCE7E0EAF0E13800E000A513157D991A>
-42 D<1338137CA2136C13EEA313C6A2EA01C7A438038380A4380701C0A213FFA24813E0
-EA0E00A4481370387F01FC38FF83FE387F01FC171E7F9D1A>65 D<B512F8A3381C0038A5
-1400A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA3161E7E9D1A>69
-D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7FCA8EA7FE012
-FF127F161E7F9D1A>I<38FF83FEA3381C0070AA381FFFF0A3381C0070AB38FF83FEA317
-1E7F9D1A>72 D<B51280A33801C000B3A6B51280A3111E7C9D1A>I<38FE03FE12FFA238
-1D8070A213C0121CA213E0A213601370A213301338A21318131CA2130C130EA21306A213
-071303A238FF81F0A21380171E7F9D1A>78 D<EA0FFE383FFF804813C0EA7C07EA700100
-F013E0EAE000B1EAF001A2007013C0EA7C07EA7FFF6C1380380FFE00131E7D9D1A>I<EA
-FFFC13FF1480381C07C0EB01E0EB00F01470A414F0EB01E0EB07C0381FFF801400148038
-1C07C01301EB00E0A514E214E7A338FF807EA21438181E7F9D1A>82
-D<3803F1C0EA0FFDEA3FFFEA7C0FEA700312E01301A390C7FC12701278123FEA1FF0EA07
-FE3800FF80EB0FC0EB01E013001470A2126012E0A214E0EAF00138FC03C0B5128000EF13
-00EAE3FC141E7D9D1A>I<387FFFFEB5FCA238E0380EA500001300B33803FF80A3171E7F
-9D1A>I<38FF01FEA3381C00706C13E0A2380701C0A213830003138013C700011300A2EA
-00EEA2137CA21338AA48B4FCA3171E7F9D1A>89 D<387FFFC0B512E0A26C13C013047D7E
-1A>95 D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA3F83EA7803
-127012E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97
-D<EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E38
-1F01F0380FFFE0000313C03800FE0014157D941A>99 D<EB1FC0A31301A6EA01F1EA07FD
-EA0FFFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA
-01F1161E7E9D1A>I<12FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FF
-E3FE13E713E3171E7F9D1A>104 D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF
-80B512C06C1380121F7C9E1A>I<EAFE3EEBFF80B512C0EA0FC1EB80E01300120EAC38FF
-E3FE13E713E317157F941A>110 D<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA
-700138E000E0A6EAF001007013C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F01315
-7D941A>I<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC
-7E17157F941A>114 D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF
-6C1380EB3F00141C7F9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7EEA00
-FC17157F941A>I<387FC7FC00FF13FE007F13FC380E00E0A3380701C0A338038380A338
-01C700A3EA00EEA3137CA2133817157F941A>I E /Fi 41 123 df<EB07FCEB3FFF9038
-FE0780D803F013C03807E00FA2EA0FC0A3EC030091C7FCA3EC7FE0B6FCA2380FC007B3A2
-39FFFC7FFEA21F267FA522>12 D<123C127E12FFA4127E123C08087C8711>46
-D<131C133C13FC12FFA21200B3AA387FFFFCA216237CA21F>49 D<48B4FC000713C0381E
-07F0383803F8386001FC387C00FE12FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14
-F8EB03F0EB07E01480EB0F00131E5B1370EBE003EA01C038038007380700061206380FFF
-FE5A5A4813FCB5FCA218237DA21F>I<48B4FC000713E0381E03F0383801F8003C13FC38
-7E00FEA3123EEA1C01000013FCA2EB03F8EB07F0EB0FC03801FF00A2380007E0EB01F014
-F8EB00FC14FE14FFA21210127C12FEA214FEA2387C01FC007013F8383E07F0380FFFC000
-01130018237DA21F>I<14381478A214F81301130313071306130C131C13381330136013
-E0EA01C01380EA03005A120E5A12185A12705AB612C0A2390001F800A790387FFFC0A21A
-237EA21F>I<0018130C001F137CEBFFF814F014E014C01480EBFC000018C7FCA513FF00
-1B13E0381F03F0381C00F8000813FCC7127EA3147FA2127812FCA3147E5A006013FC1270
-383801F8381E07E03807FFC03801FE0018237DA21F>I<EB1FC0EB7FF03801F0383803E0
-0C3807803E000F137EEA1F005AA2007E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB
-007C147E5A147FA4127EA4003E137E123F6C137C380F80F83807C1F03803FFC038007F00
-18237DA21F>I<1230123C003FB512C0A215804814005C5C38600018A200E05B485B5CC6
-485AA249C7FC1306130EA25BA2133CA25BA213F8A41201A66C5A13601A257DA41F>I<14
-1CA2143EA3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F1403
-011C7FEB1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C7
-120FA2486E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F800FFED1FC0ED
-07E06F7E6F7E82150082A2167FA31780AA1700A316FEA24B5A5E4B5A4B5AED1FC0EDFF80
-B648C7FC15E029257EA42F>68 D<B7FCA23903F8007FED0F8015071503A21501A3ED00C0
-1406A21600A2140E141EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2
-ED0F80153FB7FCA223257EA428>I<B612FEA23803F800151F8181A281A3ED01801403A2
-92C7FCA25C5C90B5FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512
-E0A23B03F80003F800AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72
-D<B512E0A23803F800B3AFB512E0A213257EA417>I<B512F0A2D803F8C7FCB3A31503A3
-1506A3150EA2151E153E157CEC03FCB6FCA220257EA425>76 D<D8FFF8EDFFF86D5C0003
-EEFE00017EEC037EA36D1406A26D6C130CA26D6C1318A26D6C1330A36D6C1360A26D6C13
-C0A2903900FC0180A291387E0300A3EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA0780
-3CFFFC01C01FFFF8A235257EA43A>I<01FF1380000713E3380F80F7381E001F48130F48
-1307140312F81401A27E91C7FCB4FCEA7FE013FE383FFFE014F86C13FE00077F6C1480C6
-7E010313C0EB003FEC0FE01407A200C01303A315C07E6C13076C14806CEB0F0038FFC03E
-38E3FFF838803FE01B257DA422>83 D<B53B81FFFE01FFF0A23D07F0001FC0000F007013
-066C6C010F5CA26F7E6C6C5EA26D496C1338000017304B7E017F01195CA291388030FE01
-3F5E829139C0607F01011F5E03E0138190280FE0C03F83C7FCA29139F1801FC3010715C6
-17E69139FB000FEE010315EC02FF14FC6D486D5AA24A130301005DA24A130102785CA202
-306D5A3C257FA43F>87 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<EAFFC0A2120FB3B0
-EAFFFCA20E267EA511>108 D<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813
-CC903A9007E803F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80
-FE903883FF80390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>
-I<EB7F803803FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A2
-6CEB3F00A2381F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390F
-FC1FC09038F007E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE090
-38DC1F809038CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF838
-0F8C7CEB90FC13B013A01478EBE0005BAEEAFFFEA216187F9719>114
-D<3807F8C0EA1FFFEA3C07EA7001EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0
-120338001FE01303EAC001A212E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>
-I<13C0A41201A312031207120F121FB512C0A2380FC000AC1460A63807E0C013E13801FF
-8038007E0013237FA218>I<39FFC07FE0A2000F1307B0140FA200071317EBE0673903FF
-C7FE38007F071F187E9722>I<39FFF80FF8A2390FC001C015803907E00300A26D5A0003
-1306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D
-187F9720>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C6C5A00001360EB7EC0
-6D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F3907003F8048131F39FF
-C07FF8A21D187F9720>120 D<39FFF80FF8A2390FC001C015803907E00300A26D5A0003
-1306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA213
-06A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720>I<387FFFF8A2
-387C03F0EA700738600FE000E013C0EB1F80EAC03F1400137EEA00FE5B485A0003130C13
-F0EA07E0120FEBC01C381F8018003F1338387F0078387E01F8B5FCA216187E971B>I
-E /Fj 31 122 df<903803F07C90381E0DC69038380F0FEB701E01E0130EEC0C003801C0
-1CA548485A007FB512C03903803800A448485AA6000E5BA648485A001E7F38FF8FFC2020
-7E9F1B>11 D<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF038038070
-A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>I<903803F03F90
-391E09E0809039380F80C09039701F01E0EBE03E021E13C02601C01CC7FCA548485A007F
-B612803903803803A43A0700700700A6000EEBE00EA64848485A001EEBE01E3AFF8FF8FF
-C023207E9F26>14 D<13201360A4383061C0383C4380380E4E00EA0778EA01E0A2EA07B8
-EA1C9CEA708FEAE083EA0180A490C7FC12147AA117>42 D<EAFFF0A20C027E8A0F>45
-D<13181338EA01F8EA0E701200A513E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B
-9D17>49 D<EB3F80EBC1E038010070000213785AA2000F137C1380A2EB00781206C712F8
-14F0EB01E014C0EB0380EB0700130E5B5B13605B485A380300201206000813405A383FFF
-C0481380B5FC161E7E9D17>I<13FFEA01FE1380A5EA0300A61206A65AA65AA65AA65AA6
-B4FCA2102D7EA10D>91 D<13FFEA01FEEA0006A5130CA61318A61330A61360A613C0A6EA
-0180A6EAFF00A2102D82A10D>93 D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7
-EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F878014147D9317>97
-D<13FEEA0383380E0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA
-07E011147D9314>99 D<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121C
-EA3C00383801C0127812F0A438E00380A412F0EA700738380F00381C37803807C7E01520
-7D9F19>I<13F8EA070EEA0E07121C383803801278127012F0A2B5FC00F0C7FC5AA46C5A
-EA7002EA3004EA1C18EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC000
-1201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E
-11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA2
-1218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0381C0700EA07FC18
-1F809417>I<13E0120712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713
-E01300A5380E01C0A6381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213
-C0EA0180C7FCA6EA0380121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>
-I<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C
->108 D<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5
-000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0
-EA07A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E
-9319>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C01303
-00F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383800F01C497E
-140F48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90C8FCA3
-120EA4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C003813C012
-7812F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4131EEB
-FFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120EA65A12
-1EEAFFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13F0EA07
-FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<1380EA
-0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>
-I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011
-147B9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA
-039013A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C03006014
-8015401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A2
-6C485A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE1
-80EB73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE
-07FC18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C1370
-5CA20171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E6
-1278191D809318>I E /Fk 36 122 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F
-1200B3B1007FB512F0A31C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C039
-1E003FE00038EB1FF0007CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307
-C7FC15FCA2EC0FF8A215F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC01
-1E130E5B133849131E49131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28
->I<1578A215FCA34A7EA24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F0278
-7FEC700FA202E07F1507010180ECC003A249486C7EA201078191C7FC498191B6FCA24981
-011CC7123F013C810138141FA24981160F01F081491407A2484881486C1403B549B512FC
-A336317DB03D>65 D<B712C016FC16FFD801FEC77FEE7FE0707E161F707EA2831607A416
-0FA25FA24C5A4C5A4C5A4B485ADB1FFEC7FC90B65AEEFF8049C7EA3FE0EE0FF0EE07FCA2
-707E83821880A718005E5F16074C5A4C5AEEFFF0B812C094C7FC16F831317DB039>I<91
-3A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9
-FF807F4848C8127F4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7
-FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C
-6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F8020313
-8031317CB03A>I<B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A215
-07A21700A35D5D5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70
-D<DA03FF1303027FEBF00749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49
-487F4848C87E485A0007824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B5
-12F8127F7FDB00011300123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497E
-D907FFEB3E3F01019038FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B6D8807FB512
-C0A3C60180C7387FC000B391B7FCA30280C7127FB3A3B6D8807FB512C0A33A317EB03F>
-I<B61280A3C6EB8000B3B3A7B61280A319317EB01E>I<B56C49B512C08080C66D903900
-03E0006E6E5AEBEFFC13E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E
-16806E13C0ED7FE0ED3FF0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1
-EE1FF9EE0FFD160717FF828282177F173FA2171F170F486C1507B500E014031701A23A31
-7EB03F>78 D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FF
-A717FEA2EE07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB0
-37>80 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3
-481603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C738
-07C000715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF80
-1FC0023FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C0
-6C17806E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D800107
-5DA26E130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C
-021F133815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238
-317EB03D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA07
-80C7FCA414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F
-800D393FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>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
-FC9038FBE07F9039FF003F80D807FEEB1FC049EB0FE04914F0ED07F8A216FC1503A216FE
-A816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3F
-C091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30F
-F0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114
-D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0
-6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13
-1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201
-12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB
-07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007141FB3153FA20003
-147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>I<B5EB1FFCA3D80F
-F8EB03C0000715806D1307000315007F0001140E7F6C5CA2EC803C017F1338ECC078013F
-1370ECE0F0011F5B14F1010F5B14F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478
-A226207E9F2B>I<B53A1FFFE03FF8A33C0FF000FE0007806D150300076EEB0700816D5D
-00039138FF800EA26C6C486D5A15DF01FF153C6C9039038FE038A2D97F876D5A150702C7
-14F0D93FCF6D5AECCE03D91FFEEBF9C09138FC01FD16FF010F5D4A7EA26D486DC7FCA201
-03147E4A133EA26D48131C35207E9F3A>I<3A7FFF807FFCA33A03FC000F006C6C131E6C
-6C5BEC803890387FC078013F5B90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E
-81815B903803DFE09038078FF08190380F07FC90381E03FEEB3C01496C7E4914804848EB
-7FC00003EC3FE026FFFC01B5FCA328207F9F2B>I<B5EB1FFCA3D80FF8EB03C000071580
-6D1307000315007F0001140E7F6C5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B
-14F1010F5B14F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478A21470A214F05C13
-01007C5BEAFE035C49C8FC5BEAFC1EEA787CEA3FF0EA0FC0262E7E9F2B>I
-E /Fl 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C0
-00061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C
-1530A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090
-C7FC282B7EA02D>13 D E /Fm 46 122 df<123C127FEAFF80A213C0A3127F123E1200A2
-EA0180A3EA0300A21206120E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00
-A2121C09097B8813>46 D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277B
-A622>49 D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15
-E0140FA2127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E
-4913E013705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB
-7F803803FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C
-495AEB07F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F
-481480007CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C
-5BA2EB03BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12
-F0B612F8A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C
-5C14C091C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215
-E0A21218127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C61380
-1B277DA622>I<1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5C
-C6485AA2495A130791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297C
-A822>55 D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA20103
-7F1480A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F08049
-1303000181491301A2000381D8FFFE013F13FCA32E297EA833>65
-D<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0
-150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA6
-16FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>I<91387FE003903907FF
-FC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F48
-5A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C
-6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831>
-I<B712E0A33903FC001FED07F01501A215001670A3913801C0781638A302031300A2140F
-90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB7
-12F0A327297EA82C>69 D<B712C0A33903FC003FED0FE015031501A21500A316F0913801
-C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A
->I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848
-80484880484880485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7E
-A26C7E6C7E6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297C
-A835>I<B5D8F00FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA3
-30297EA835>I<B512F0A33803FC00B3B1B512F0A314297EA819>I<D8FFFE92383FFF80A2
-6D5D0003EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D9
-83F8130EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A29138
-0FE380A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>
-77 D<D8FFFCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF
-01801380147F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1
-ED1FF1150F16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A23029
-7EA835>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA716FC150316
-F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>80
-D<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC0
-90B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA21503923801FC1CB538F0
-00FEEE7FF8EE0FE02F297EA832>82 D<9038FF80600003EBF0E0000F13F8381F80FD383F
-001F003E1307481303A200FC1301A214007EA26C140013C0EA7FFCEBFFE06C13F86C13FE
-80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E01303A46C14E0A26C1307
-6C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA825>I<B500F0EBFFFEA3
-D803FCC7EA0380B3AA0001ED07007F0000150E137F6D143CD91FC05B90390FF003F06DB5
-5A01001480DA1FFCC7FC2F297EA834>85 D<B500F0EB7FFFA3D803FEC7EA01C00001ED03
-80A26D14076C16006E5B017F140E80013F5CA26E133C011F14386E1378010F1470800107
-5CA26D6C485AA2ECFE0301015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA2
-6E5AA36E5AA26E5AA230297FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000
-A26D6D7E000160A26D6E13016C604B138002801503017F5F4B13C0D93FC0013F49C7FCA2
-913AE00E1FE00F011F160E17F09126F01C0F131E010F161C033C13F8902707F838075BA2
-037813FC902703FC70035BA2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA3
-6EC76CC8FCA2023E80021E141EA242297FA845>I<3803FF80000F13F0381F01FC383F80
-FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E
-13DF393F839FFC381FFE0F3803FC031E1B7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EF
-FF809038FE07E09038F803F09038F001F89038E000FCA2157EA2157FA8157EA315FCA290
-38F001F89038F803F090389C0FE090380FFF80390E01FC00202A7EA925>I<EB3FF03801
-FFFC3803F03E380FC07FEA1F80EA3F00A248133E007E90C7FCA212FEA7127EA2127F6CEB
-03801380001FEB0700380FE00E3803F83C3801FFF838003FC0191B7E9A1E>I<EC7FF0A3
-1407ACEB3F873801FFF73807F03F380FC00F381F8007EA3F00A2127EA312FEA8127EA27E
-A2381F800F380FC01F3907E07FFF3801FFE738007F87202A7EA925>I<EB3FC03801FFF0
-3803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2B6FCA248C8FCA3127E
-A2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB3FE01A1B7E9A1F>I<
-EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207143E1400A7B512C0A33807F000B3A338
-7FFF80A3182A7EA915>I<9038FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003E
-EB3E10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFFE00018138090C8FC12
-38A2123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007CEB01F8481300A4007C
-EB01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>I<EAFFE0A3120FAC
-147E9038E1FF809038E30FC001E413E0EBE80701F813F013F0A213E0B039FFFE3FFFA320
-2A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120F
-B3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108
-D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039C803F200
-01D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC07E9038C1
-FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA3201B7D9A25
->I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0393F0007E0A2007EEB03F0A300
-FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907F07F003801FFFC38003F
-E01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F001F801E013FC
-140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0FE09038EFFF80
-9038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC63E380FCC7F13
-D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 D<3803FE30380FFFF0EA3E03EA78
-00127000F01370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6FCEB07FC
-130000E0137C143C7E14387E6C137038FF01E038E7FFC000C11300161B7E9A1B>I<13E0
-A41201A31203A21207120F381FFFE0B5FCA2380FE000AD1470A73807F0E0000313C03801
-FF8038007F0014267FA51A>I<39FFE07FF0A3000F1307B2140FA2000713173903F067FF
-3801FFC738007F87201B7D9A25>I<39FFFC03FFA3390FF000F0000714E07F0003EB01C0
-A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA36D5A
-A26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE00FE001C02607F007EB0380A201F8
-EBF00700031600EC0FF801FC5C0001150EEC1FFC2600FE1C5B15FE9039FF387E3C017F14
-38EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2EC800701075CA22E1B7F9A31>I<
-39FFFC1FFEA33907F003803803F8079038FC0F003801FE1E00005BEB7F3814F86D5A6D5A
-130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F803901E01FC0D803C013E0EB800F
-39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF000F0000714E07F0003EB01C0A2EB
-FC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA36D5AA26D
-5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5BEA74F0EA3FE0EA0F8020277F9A23
->I E /Fn 75 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
-38FE078038F803C0EAF001EB00E05A7E1270A3383801C0EA3C03381E0780380FFF006C5A
-EA01F8131C7E9B18>54 D<1230127812FCA2127812301200A81230127812FCA212781230
-0614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E12
-1C123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07
-F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E013
-03EB00C013187E9918>I<387FFFC0B512E0A3C8FCA4B512E0A36C13C0130C7E9318>I<12
-6012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE
-00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA
-700F38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A
-111C7D9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA0E
-03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65 D<EA7FF8EAFFFE6C7E381C
-0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114C01303EB0F80387FFF0048
-5AEA7FF8141C7F9B18>68 D<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390
-C7FCA21438A5B512F8A3151C7F9B18>I<B512F8A3381C0038A41400A21307A3EA1FFFA3
-EA1C07A390C7FCA7EAFFC0A3151C7F9B18>I<387F07F038FF8FF8387F07F0381C01C0A9
-EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>72
-D<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<EAFFC0A300
-1CC7FCB114E0A5B5FCA3131C7E9B18>76 D<387E07F038FF0FF8387F07F0381D81C0A313
-C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C
-7F9B18>78 D<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF001007013
-C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013
-001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA7F
-F8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380
-A5149CA3387F01F8EAFF81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0FEA70
-03EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A21260
-12E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E0
-7038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F0138
-0783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03381C01C0EA1E
-03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C5A15
-1C7F9B18>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<EAFFC0A31201B3A4B51280A3111C7D9B18>108 D<38F9C1C038FFF7F013FF383E3E
-38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E1714809318>I<EA7E3E38FEFF80007F13
-C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC1714809318>I<EA01F0EA0F
-FE487E383E0F80EA3803387001C0A238E000E0A5EAF001007013C0EA7803383C0780EA3E
-0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF80007F13C0380FC1E01380EB00
-70120E1438A6000F1370A2EB80E013C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0487E6C
-5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2
-EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38
-FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>I<
-EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1FFCEA03FEEA001F38600780EAE0
-03A212F038F80F00B5FC13FCEAE7F011147D9318>I<487E1203A4387FFFC0B5FCA23803
-8000A9144014E0A33801C1C013FF6C1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E
-07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714809318>I<387F8FF000FF13F8
-007F13F0381C01C0380E0380A338070700A3138FEA038EA3EA01DCA3EA00F8A213701514
-7F9318>I<38FF07F8138F1307383800E0A4381C01C0137113F9A213D9EA1DDD000D1380
-A3138DEA0F8FA23807070015147F9318>I<387F8FF0139F138F380F0700EA078EEA039E
-EA01DC13F81200137013F07FEA01DCEA039E138EEA0707000E1380387F8FF000FF13F800
-7F13F015147F9318>I<387F8FF000FF13F8007F13F0380E01C0EB0380A21207EB0700A2
-EA0387A2138EEA01CEA213CC120013DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC
-121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB078038000F00131E5B13F8485A
-EA03C0485A380F0070121E5A5AB512F0A314147F9318>I<EB07E0131F137FEB780013E0
-AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE0131F130713247E9F18>I<126012
-F0B3B012600424769F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0
-005BABEA03C012FF90C7FC127C13247E9F18>I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA
-60C00F067C9B18>I E /Fo 74 123 df<90381F83E09038F06E303901C07878380380F8
-903800F03048EB7000A7B612803907007000B2383FE3FF1D20809F1B>11
-D<133FEBE0C0EA01C0380381E0EA0701A290C7FCA6B512E0EA0700B2383FC3FC1620809F
-19>I<EB3FE013E0EA01C1EA0381EA0700A8B5FCEA0700B2383FE7FC1620809F19>I<9038
-1F81F89038F04F043901C07C06390380F80FEB00F05A0270C7FCA6B7FC3907007007B23A
-3FE3FE3FE02320809F26>I<EA7038EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008
-A2EA2010EA40200F0E7F9F17>34 D<127012F812FCA212741204A31208A21210A2122012
-40060E7C9F0D>39 D<13401380EA01005A12061204120C5AA212381230A212701260A412
-E0AC1260A412701230A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12
-407E12307E1208120C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A
-120812185A12205A5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240
-050E7C840D>44 D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<EA03F0EA
-0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA780700381300EA1806EA
-1C0E6C5AEA03F0121F7E9D17>48 D<13801203120F12F31203B3A6EA07C0EAFFFE0F1E7C
-9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803A3EA200712001480
-A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5FC121E7E
-9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12001400A2131E131C13
-70EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240EB0F00EA200EEA18
-3CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202A2120412
-08A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803EA1FFE5B
-5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012F0A200E0
-13801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA0701380E03
-80EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F0
-13C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE0
-14C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A
-131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F
-06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA
-600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E13071270
-EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB07001230EA78
-06130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA127012F8
-A3127005147C930D>I<127012F8A312701200AA127012F012F8A212781208A31210A312
-20A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03E
-EB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F
-9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F
-80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE01090
-38381C309038E002703803C00139078000F048C71270121E15305A1510127C127800F814
-00A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C
-217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8
-153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B6128038
-0F000F14031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A3
-1540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C015
-40A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<9038
-0FE0109038381C309038E002703803C00139078000F048C71270121E15305A1510127C12
-7800F81400A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903C001703900E00230
-9038380C1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39
-FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<EAFFF8EA0F8090C7
-FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0
-A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3
-EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F80
-03E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F0
-1478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB7038
-3801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8
-147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C06C14803903800700
-3801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A415
-80A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E
-48487E39070003804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F814
-7CA900781478007C14F8A2003C14F0383E0781391E0841E0390F1023C000071480390390
-17003801D01E3900783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E29
-7E9F23>I<B57E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070
-A280143CA3143EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>I<3803F0
-40380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4FC00
-071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C60300
-EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C01430008014
-10A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3A46C
-EB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE391F80
-00F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB7804
-A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF81FF0
-3B1F000FC007C06C903907800180170015C001805C00071502EC09E013C000035DEC19F0
-1410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090383D
-000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<12FFA212C0
-B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA8040A3EAB85CEA
-FC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80A10D>I<120812
-101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96 D<EA1FE0EA3030EA7818
-131CEA300E1200A313FEEA078EEA1E0E1238127800F01310A3131E127838386720380F83
-C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00C0001C13E01470A21478
-A6147014F014E0001E13C0381A018038198700EA107C15207E9F19>I<EA01FCEA0706EA
-1C0F123813060078C7FC127012F0A61270127800381380A2381C0100EA0706EA01F81114
-7F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112381278127012F0A61270
-A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA0E1C487E487EA21270EB
-038012F0A2B5FC00F0C7FCA31270A26C1380A2381C0100EA0706EA01F811147F9314>I<
-137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE01020809F0E>I<14E038
-03E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33E00020C7FCA21230A2
-EA3FFE381FFF8014C0383001E038600070481330A4006013606C13C0381C03803803FC00
-141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A2121CAE38FF8FF014207E
-9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F9E0C>I<13E0EA01F0A3
-EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA6180EA3F000C28829E0E>
-I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0EA1DF0EA1E70EA1C3813
-3C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC121CB3ABEAFF8009207F
-9F0C>I<391C3E03E039FCC30C30391D039038391E01E01CA2001C13C0AE3AFF8FF8FF80
-21147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF8FF014147E9319>I<EA01
-F8EA070E381C0380383801C0A2387000E0A200F013F0A6007013E0A2383801C0A2381C03
-8038070E00EA01F814147F9317>I<EA1C7CEAFD87381E018014C0381C00E014F0147014
-78A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FCA8B47E151D7E9319>I<38
-01F04038070CC0EA0E02EA1C03EA38011278127012F0A6127012781238EA1C03EA0C05EA
-0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18EA1E3CA21318EA1C00AEEA
-FFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000127CEA3FE0EA1FF0EA07F8
-EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F9312>I<1202A31206A212
-0EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F9B12>I<381C0380EAFC1F
-EA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8383E00E0001C13C06C13
-80A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3132015147F9318>I<39
-FF9FE1FC393C078070391C030060EC8020000E1440A214C0D80704138014E0A239038861
-001471A23801D032143A143E3800E01CA2EB6018EB40081E147F9321>I<38FF87F8381E
-03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F01370137813F8139CEA010E1202
-EA060738040380000C13C0003C13E038FE07FC16147F9318>I<38FF83F8383E00E0001C
-13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A31320A25BA3EA
-F080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260EA401C133813781370EA
-00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006130EEAFFFE10147F9314
->I E /Fp 13 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC
-00FE0F010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9
-121F485A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB6128012
-7FA27FDC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C
-6D01C0EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC
-413D7BBB4C>71 D<B6D8F803B612E0A426007FF0C70001EBC000B3A491B8FCA402F0C712
-01B3A7B6D8F803B612E0A4433B7CBA4C>I<B612FEA426007FF0C9FCB3ADEF03C0A51707
-1880A3170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>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 end
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 300 300 (history.dvi)
+@start /Fa 1 47 df<70F8F8F0E005057B840E>46 D E /Fb 1
+47 df<0E003F007F807F80FF80FF80FF007E003C000909798815>46
+D E /Fc 11 121 df<00800100020004000C000800180030003000300060006000600060
+00E000E000E000E000E000E000E000E000E000E000600060006000600030003000300018
+0008000C00040002000100008009267D9B0F>40 D<8000400020001000180008000C0006
+000600060003000300030003000380038003800380038003800380038003800380030003
+00030003000600060006000C0008001800100020004000800009267E9B0F>I<FF801C00
+1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
+1C001C001C001C001C00FF80091A7E990E>73 D<003F0000070000070000070000070000
+070000070000070000070000070003E7000C1700180F00300700700700E00700E00700E0
+0700E00700E00700E00700600700700700380F001C370007C7E0131A7F9915>100
+D<07C01C3030187018600CE00CFFFCE000E000E000E0006000700438081C1807E00E107F
+8F11>I<183C3C18000000000000FC1C1C1C1C1C1C1C1C1C1C1C1C1C1CFF081A80990A>
+105 D<FC7C001D87001E03801E03801C03801C03801C03801C03801C03801C03801C0380
+1C03801C03801C03801C0380FF9FF01410808F15>110 D<07E01C38300C700E6006E007
+E007E007E007E007E0076006700E381C1C3807E010107F8F13>I<1F2060E04020C020C0
+20F0007F003FC01FE000F080708030C030C020F0408F800C107F8F0F>115
+D<0800080008000800180018003800FFC038003800380038003800380038003800382038
+203820382018201C4007800B177F960F>I<FE3F803C1E001C08000E10000F3000076000
+03C00001C00001E00003E000027000043800083800181C00381E00FC3FC012107F8F14>
+120 D E /Fd 2 42 df<00E001C00380078007000F001E001E001C003C003C0038007800
+780078007000F000F000F000F000F000F000F000F000F000F000F000F000F000F0007000
+78007800780038003C003C001C001E001E000F0007000780038001C000E00B2E7CA112>
+40 D<E000700038003C001C001E000F000F00070007800780038003C003C003C001C001
+E001E001E001E001E001E001E001E001E001E001E001E001E001E001C003C003C003C003
+800780078007000F000F001E001C003C0038007000E0000B2E7EA112>I
+E /Fe 27 123 df<0007F800007FFC0001FC0E0003F01F0007E03F000FC03F000FC03F00
+0FC03F000FC01E000FC00C000FC000000FC000000FC0FF80FFFFFF80FFFFFF800FC01F80
+0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80
+0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F807FF8FFF0
+7FF8FFF01C237FA220>12 D<000FFF80007FFF8001FC1F8003F03F8007E03F800FC03F80
+0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80FFFFFF80FFFFFF80
+0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80
+0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80
+7FF8FFF07FF8FFF01C237FA220>I<07FE00001FFF80003F07E0003F03F0003F01F0003F
+01F8001E01F8000001F8000001F800003FF80003FDF8001F81F8003E01F8007C01F800F8
+01F800F801F800F801F800F801F8007C02F8007E0CF8001FF87F8007E03F8019167E951C
+>97 D<FF800000FF8000001F8000001F8000001F8000001F8000001F8000001F8000001F
+8000001F8000001F8000001F8000001F8000001F87F0001FBFFC001FF03E001FC01F001F
+800F801F800FC01F8007C01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F
+8007E01F8007C01F8007C01F800FC01F800F801FC01F001E707E001C3FFC00180FE0001B
+237EA220>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000
+FC0000FC0000FC0000FC00007C00007E00007E00003E00181F00300FC06007FFC000FF00
+15167E9519>I<0001FF000001FF0000003F0000003F0000003F0000003F0000003F0000
+003F0000003F0000003F0000003F0000003F0000003F0000FE3F0007FFBF000FC1FF001F
+007F003E003F007E003F007C003F007C003F00FC003F00FC003F00FC003F00FC003F00FC
+003F00FC003F00FC003F007C003F007E003F003E003F001F007F000F81FF0007FF3FE001
+FC3FE01B237EA220>I<00FE0007FF800F83C01E01E03E00F07E00F07C00F87C0078FC00
+78FFFFF8FFFFF8FC0000FC0000FC00007C00007C00003E00183E00181F00300F80E003FF
+C000FF0015167E951A>I<001F8000FFE001F1F003E3F007E3F00FC3F00FC1E00FC0000F
+C0000FC0000FC0000FC0000FC000FFFE00FFFE000FC0000FC0000FC0000FC0000FC0000F
+C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F
+C0007FFC007FFC0014237EA212>I<00FE0F8003FF9FC00F83E3C01F01F3C01E00F0003E
+00F8003E00F8003E00F8003E00F8003E00F8001E00F0001F01F0000F83E0000BFF800008
+FE000018000000180000001C0000001FFFE0001FFFFC000FFFFF0007FFFF001FFFFF807C
+001FC078000FC0F80007C0F80007C0F80007C07C000F803E001F001F807E000FFFFC0001
+FFE0001A217F951D>I<FF800000FF8000001F8000001F8000001F8000001F8000001F80
+00001F8000001F8000001F8000001F8000001F8000001F8000001F83F0001F8FFC001F98
+7E001FA03E001FC03F001FC03F001F803F001F803F001F803F001F803F001F803F001F80
+3F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1
+FFE0FFF1FFE01B237DA220>I<1E003F007F807F807F807F803F001E0000000000000000
+0000000000FF80FF801F801F801F801F801F801F801F801F801F801F801F801F801F801F
+801F801F801F801F80FFF0FFF00C247EA30F>I<FF800000FF8000001F8000001F800000
+1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000
+1F80FF801F80FF801F803C001F8030001F80E0001F81C0001F8300001F8600001F9E0000
+1FBE00001FFF00001FDF80001F8FC0001F07C0001F07E0001F03F0001F01F8001F00F800
+1F00FC001F007E00FFE1FFC0FFE1FFC01A237EA21E>107 D<FF80FF801F801F801F801F
+801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F
+801F801F801F801F801F801F801F801F801F80FFF0FFF00C237EA20F>I<FF03F803F800
+FF0FFE0FFE001F183F183F001F201F201F001F401FC01F801F401FC01F801F801F801F80
+1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80
+1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80
+1F801F801F80FFF0FFF0FFF0FFF0FFF0FFF02C167D9531>I<FF03F000FF0FFC001F187E
+001F203E001F403F001F403F001F803F001F803F001F803F001F803F001F803F001F803F
+001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1FF
+E0FFF1FFE01B167D9520>I<00FF0007FFE00F81F01F00F83E007C7C003E7C003E7C003E
+FC003FFC003FFC003FFC003FFC003FFC003FFC003F7C003E7E007E3E007C1F00F80F81F0
+07FFE000FF0018167E951D>I<FF87F000FFBFFC001FF07E001FC01F001F800F801F800F
+C01F800FC01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007
+C01F800FC01F800FC01F801F801FC01F001FF07E001FBFFC001F8FE0001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F800000FFF00000FFF000001B207E
+9520>I<00FE030007FF07000FC1CF001F00DF003F007F007E003F007E003F007C003F00
+FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F007E003F007E003F00
+3E007F001F00FF000FC1FF0007FF3F0000FC3F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F000001FFE00001FFE01B207E951E>I<FF0F80FF1F
+E01F33F01F63F01F43F01F43F01FC1E01F80001F80001F80001F80001F80001F80001F80
+001F80001F80001F80001F80001F80001F8000FFF800FFF80014167E9518>I<07F9801F
+FF80380780700380F00180F00180F80000FF0000FFF8007FFE003FFF001FFF8007FF8000
+3FC0C007C0C003C0E003C0E003C0F00380FC0F00EFFE00C3F80012167E9517>I<018000
+0180000180000180000380000380000780000780000F80003F8000FFFF00FFFF001F8000
+1F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F81801F8180
+1F81801F81801F81800F83000FC30007FE0001F80011207F9F16>I<FF81FF00FF81FF00
+1F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00
+1F803F001F803F001F803F001F803F001F803F001F803F001F807F001F80FF000FC1BF00
+07FF3FE001FC3FE01B167D9520>I<FFF01FE0FFF01FE01FC007000FC006000FE00E0007
+E00C0007F00C0003F0180003F0180001F8300001F8300000FC600000FC600000FEE00000
+7EC000007FC000003F8000003F8000001F0000001F0000000E0000000E00001B167F951E
+>I<FFF3FF83FCFFF3FF83FC1F807C00E00FC07C00C00FC03E00C00FE03E01C007E07F01
+8007E07F018003F07F030003F0CF830003F8CF870001F9CFC60001F987C60000FD87EC00
+00FF03EC0000FF03FC00007F03F800007E01F800003E01F000003C00F000003C00F00000
+1800600026167F9529>I<FFF07FC0FFF07FC00FC01C0007E0380007F0700003F0E00001
+F8C00000FD8000007F8000007F0000003F0000001F8000003FC0000037E0000067F00000
+C3F00001C1F8000380FC000700FE000E007F00FF81FFE0FF81FFE01B167F951E>I<FFF0
+1FE0FFF01FE01FC007000FC006000FE00E0007E00C0007F00C0003F0180003F0180001F8
+300001F8300000FC600000FC600000FEE000007EC000007FC000003F8000003F8000001F
+0000001F0000000E0000000E0000000C0000000C00000018000078180000FC380000FC30
+0000FC60000069C000007F8000001F0000001B207F951E>I<7FFFF07FFFF07C07E0700F
+C0601FC0E01F80C03F00C07F00C07E0000FC0001FC0003F80003F03007E0300FE0300FC0
+701F80703F80603F00E07E03E0FFFFE0FFFFE014167E9519>I E
+/Ff 24 119 df<00E00000E00000E00000E00000E000F0E1E0FCE7E07EEFC01FFF0007FC
+0001F00007FC001FFF007EEFC0FCE7E0F0E1E000E00000E00000E00000E00000E0001315
+7D991A>42 D<003800007C00007C00006C0000EE0000EE0000EE0000C60000C60001C700
+01C70001C70001C7000383800383800383800383800701C00701C007FFC007FFC00FFFE0
+0E00E00E00E00E00E00E00E01C00707F01FCFF83FE7F01FC171E7F9D1A>65
+D<FFFFF8FFFFF8FFFFF81C00381C00381C00381C00381C00381C00001C00001C0E001C0E
+001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00001C001C1C00
+1C1C001C1C001C1C001CFFFFFCFFFFFCFFFFFC161E7E9D1A>69 D<7FFFFCFFFFFC7FFFFC
+0E001C0E001C0E001C0E001C0E001C0E00000E00000E03800E03800E03800FFF800FFF80
+0FFF800E03800E03800E03800E00000E00000E00000E00000E00000E00000E00000E0000
+7FE000FFE0007FE000161E7F9D1A>I<FF83FEFF83FEFF83FE1C00701C00701C00701C00
+701C00701C00701C00701C00701C00701C00701FFFF01FFFF01FFFF01C00701C00701C00
+701C00701C00701C00701C00701C00701C00701C00701C0070FF83FEFF83FEFF83FE171E
+7F9D1A>72 D<FFFF80FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C000FFFF80FFFF80FFFF80111E7C9D1A>I<FE03FEFF03
+FEFF03FE1D80701D80701DC0701CC0701CC0701CE0701CE0701C60701C70701C70701C30
+701C38701C38701C18701C1C701C1C701C0C701C0E701C0E701C06701C06701C07701C03
+701C0370FF81F0FF81F0FF80F0171E7F9D1A>78 D<0FFE003FFF807FFFC07C07C07001C0
+F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0
+E000E0E000E0E000E0E000E0E000E0E000E0F001E0F001E07001C07C07C07FFFC03FFF80
+0FFE00131E7D9D1A>I<FFFC00FFFF00FFFF801C07C01C01E01C00F01C00701C00701C00
+701C00701C00F01C01E01C07C01FFF801FFF001FFF801C07C01C01C01C00E01C00E01C00
+E01C00E01C00E01C00E21C00E71C00E71C00E7FF807EFF807EFF8038181E7F9D1A>82
+D<03F1C00FFDC03FFFC07C0FC07003C0E003C0E001C0E001C0E001C0E000007000007800
+003F00001FF00007FE0000FF80000FC00001E00000E0000070000070600070E00070E000
+70E000E0F001E0FC03C0FFFF80EFFF00E3FC00141E7D9D1A>I<7FFFFEFFFFFEFFFFFEE0
+380EE0380EE0380EE0380EE0380E00380000380000380000380000380000380000380000
+380000380000380000380000380000380000380000380000380000380000380000380003
+FF8003FF8003FF80171E7F9D1A>I<FF01FEFF01FEFF01FE1C00700E00E00E00E00701C0
+0701C00783C003838003C78001C70001C70000EE0000EE00007C00007C00003800003800
+00380000380000380000380000380000380000380000380001FF0001FF0001FF00171E7F
+9D1A>89 D<7FFFC0FFFFE0FFFFE07FFFC013047D7E1A>95 D<1FF0003FFC007FFE00780F
+00300700000380000380007F8007FF801FFF803F8380780380700380E00380E00380E003
+80700780780F803FFFFC1FFDFC07F0FC16157D941A>97 D<00FF8003FFC00FFFE01F01E0
+3C00C0780000700000700000E00000E00000E00000E00000E00000700000700000780070
+3C00701F01F00FFFE003FFC000FE0014157D941A>99 D<001FC0001FC0001FC00001C000
+01C00001C00001C00001C00001C001F1C007FDC00FFFC01E0FC03C07C07803C07001C0E0
+01C0E001C0E001C0E001C0E001C0E001C0E001C07003C07003C03807C03E0FC01FFFFC07
+FDFC01F1FC161E7E9D1A>I<FE0000FE0000FE00000E00000E00000E00000E00000E0000
+0E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E0
+0E00E00E00E00E00E00E00E00E00E00E00E00E00E0FFE3FEFFE7FEFFE3FE171E7F9D1A>
+104 D<01C00003E00003E00003E00001C0000000000000000000000000000000007FE000
+7FE0007FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000E00000E0007FFF80FFFFC07FFF80121F7C9E1A>I<FE3E00FEFF
+80FFFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00
+E00E00E00E00E00E00E00E00E0FFE3FEFFE7FEFFE3FE17157F941A>110
+D<01F00007FC001FFF003E0F803C07807803C07001C0E000E0E000E0E000E0E000E0E000
+E0E000E0F001E07001C07803C03C07803E0F801FFF0007FC0001F00013157D941A>I<7F
+81F8FF8FFC7F9FFE03FE1E03F80C03E00003E00003C00003800003800003800003800003
+80000380000380000380000380000380007FFF00FFFF007FFF0017157F941A>114
+D<0180000380000380000380000380000380000380007FFFE0FFFFE0FFFFE00380000380
+000380000380000380000380000380000380000380000380000380700380700380700380
+7001C1E001FFE000FF80003F00141C7F9B1A>116 D<FE0FE0FE0FE0FE0FE00E00E00E00
+E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01
+E00F03E007FFFE03FFFE00FCFE17157F941A>I<7FC7FCFFC7FE7FC7FC0E00E00E00E00E
+00E00701C00701C00701C003838003838003838001C70001C70001C70000EE0000EE0000
+EE00007C00007C0000380017157F941A>I E /Fg 41 123 df<0007FC00003FFF0000FE
+078003F007C007E00FC007E00FC00FC00FC00FC00FC00FC00FC00FC003000FC000000FC0
+00000FC000000FC07FE0FFFFFFE0FFFFFFE00FC007E00FC007E00FC007E00FC007E00FC0
+07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0
+07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E0FFFC7FFEFFFC7FFE1F26
+7FA522>12 D<3C7EFFFFFFFF7E3C08087C8711>46 D<001C00003C0000FC00FFFC00FFFC
+0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
+0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
+0000FC0000FC0000FC0000FC007FFFFC7FFFFC16237CA21F>49 D<01FF0007FFC01E07F0
+3803F86001FC7C00FEFE00FEFE00FFFE007FFE007F7C007F3800FF0000FF0000FE0000FE
+0001FC0001F80003F00007E0000780000F00001E00003C0000700000E00301C003038007
+0700060600060FFFFE1FFFFE3FFFFE7FFFFCFFFFFCFFFFFC18237DA21F>I<01FF0007FF
+E01E03F03801F83C01FC7E00FE7E00FE7E00FE3E00FE1C01FE0001FC0001FC0003F80007
+F0000FC001FF0001FF000007E00001F00001F80000FC0000FE0000FF0000FF1000FF7C00
+FFFE00FFFE00FFFE00FEFE00FE7C01FC7001F83E07F00FFFC001FF0018237DA21F>I<00
+00380000007800000078000000F8000001F8000003F8000007F8000006F800000CF80000
+1CF8000038F8000030F8000060F80000E0F80001C0F8000180F8000300F8000700F8000E
+00F8001C00F8001800F8003000F8007000F800E000F800FFFFFFC0FFFFFFC00001F80000
+01F8000001F8000001F8000001F8000001F8000001F800007FFFC0007FFFC01A237EA21F
+>I<18000C1F007C1FFFF81FFFF01FFFE01FFFC01FFF801FFC0018000018000018000018
+000018000018FF001BFFE01F03F01C00F80800FC00007E00007E00007E00007F00007F78
+007FFC007FFC007FFC007FFC007EF8007E6000FC7000FC3801F81E07E007FFC001FE0018
+237DA21F>I<001FC0007FF001F03803E00C07803E0F807E1F007E3F007E3F007E7E003C
+7E00007E00007E0000FE3FC0FE7FF0FE80F8FF80FCFF007CFF007EFE007EFE007FFE007F
+FE007FFE007F7E007F7E007F7E007F7E007F3E007E3F007E1F007C0F80F807C1F003FFC0
+007F0018237DA21F>I<300000003C0000003FFFFFC03FFFFFC03FFFFF807FFFFF007FFF
+FE007FFFFC006000180060001800E0003000C0006000C000C00000018000000180000003
+000000060000000E0000000E0000001C0000001C0000003C0000003C0000007800000078
+000000F8000000F8000000F8000000F8000001F8000001F8000001F8000001F8000001F8
+000001F8000000F00000006000001A257DA41F>I<00001C00000000001C00000000003E
+00000000003E00000000003E00000000007F00000000007F0000000000FF8000000000FF
+8000000000FF80000000019FC0000000019FC0000000031FE0000000030FE0000000070F
+F00000000607F00000000607F00000000C07F80000000C03F80000001C03FC0000001801
+FC0000001801FC0000003000FE0000003000FE0000007FFFFF0000007FFFFF000000E000
+7F800000C0003F800000C0003F80000180003FC0000180001FC0000380001FE000030000
+0FE0000300000FE00007000007F000FFF000FFFF80FFF000FFFF8029257EA42E>65
+D<FFFFFFE00000FFFFFFFC000003F800FF000003F8001FC00003F80007E00003F80003F0
+0003F80001F80003F80001FC0003F80000FC0003F80000FE0003F80000FE0003F800007F
+0003F800007F0003F800007F0003F800007F8003F800007F8003F800007F8003F800007F
+8003F800007F8003F800007F8003F800007F8003F800007F8003F800007F8003F800007F
+8003F800007F0003F800007F0003F800007F0003F80000FE0003F80000FE0003F80001FC
+0003F80001F80003F80003F00003F80007E00003F8001FC00003F800FF8000FFFFFFFE00
+00FFFFFFE0000029257EA42F>68 D<FFFFFFFF00FFFFFFFF0003F8007F0003F8000F8003
+F800078003F800038003F800038003F800018003F800018003F800018003F80000C003F8
+0600C003F80600C003F806000003F806000003F80E000003F81E000003FFFE000003FFFE
+000003F81E000003F80E000003F806000003F806000003F806006003F806006003F80000
+6003F80000C003F80000C003F80000C003F80000C003F80001C003F80003C003F80003C0
+03F8000F8003F8003F80FFFFFFFF80FFFFFFFF8023257EA428>I<FFFFFFFE00FFFFFFFE
+0003F800FE0003F8001F0003F8000F0003F800070003F800070003F800030003F8000300
+03F800030003F800018003F803018003F803018003F803000003F803000003F807000003
+F80F000003FFFF000003FFFF000003F80F000003F807000003F803000003F803000003F8
+03000003F803000003F800000003F800000003F800000003F800000003F800000003F800
+000003F800000003F800000003F800000003F8000000FFFFF00000FFFFF0000021257EA4
+27>I<FFFFE0FFFFE0FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F800
+03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800
+03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003FFFF
+FFF80003FFFFFFF80003F80003F80003F80003F80003F80003F80003F80003F80003F800
+03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800
+03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FFFFE0
+FFFFE0FFFFE0FFFFE02B257EA430>72 D<FFFFE0FFFFE003F80003F80003F80003F80003
+F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
+F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
+F80003F80003F80003F80003F800FFFFE0FFFFE013257EA417>I<FFFFF000FFFFF00003
+F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003
+F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003
+F8000003F8000003F8000003F8000303F8000303F8000303F8000603F8000603F8000603
+F8000E03F8000E03F8001E03F8003E03F8007C03F803FCFFFFFFFCFFFFFFFC20257EA425
+>76 D<FFF8000000FFF8FFFC000001FFF803FC000001FE00037E0000037E00037E000003
+7E00037E0000037E00033F0000067E00033F0000067E00031F80000C7E00031F80000C7E
+00030FC000187E00030FC000187E000307E000307E000307E000307E000307E000307E00
+0303F000607E000303F000607E000301F800C07E000301F800C07E000300FC01807E0003
+00FC01807E0003007E03007E0003007E03007E0003007E03007E0003003F06007E000300
+3F06007E0003001F8C007E0003001F8C007E0003000FD8007E0003000FD8007E00030007
+F0007E00030007F0007E00030007F0007E00030003E0007E00078003E0007E00FFFC01C0
+1FFFF8FFFC01C01FFFF835257EA43A>I<00FF008007FFE3800F80F7801E001F803C000F
+807800078078000380F8000380F8000180F8000180FC000180FC000000FF0000007FE000
+007FFE00003FFFE0003FFFF8001FFFFE0007FFFF0003FFFF80007FFF800003FFC000003F
+C000000FE0000007E0000007E0C00003E0C00003E0C00003E0C00003C0E00003C0F00007
+C0F8000780FC000F00FFC03E00E3FFF800803FE0001B257DA422>83
+D<FFFF81FFFE01FFF0FFFF81FFFE01FFF007F0001FC0000F0007F0001FE000060003F800
+0FE0000C0003F8000FE0000C0003F80007F0000C0001FC0007F000180001FC0007F00018
+0001FE000FF800380000FE000FF800300000FE001FFC003000007F0019FC006000007F00
+19FC006000007F8030FE006000003F8030FE00C000003F8030FF00C000003FC0607F01C0
+00001FC0607F018000001FC0E07F818000000FE0C03F830000000FE0C03F830000000FF1
+801FC300000007F1801FC600000007F1801FE600000007FB000FEE00000003FB000FEC00
+000003FF000FFC00000001FE0007F800000001FE0007F800000001FC0003F800000000FC
+0003F000000000FC0003F000000000F80001F000000000780001E000000000780001E000
+000000300000C000003C257FA43F>87 D<07FF00001FFFE0003E03F0003F00F8003F00FC
+003F007E001E007E0000007E0000007E0000007E00001FFE0003FE7E000FC07E001F007E
+003E007E007E007E00FC007E00FC007E00FC007E00FC00BE007E01BE003F073E001FFE1F
+E007F00FE01B187E971E>97 D<FFC00000FFC000000FC000000FC000000FC000000FC000
+000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC1FC
+000FCFFF000FFC0FC00FF007E00FC003F00FC003F00FC001F80FC001F80FC001FC0FC001
+FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001F80FC001F80FC003
+F00FE003F00FF007E00F1C1F800E0FFF000C03F8001E267FA522>I<007FE003FFF807C0
+7C1F80FC1F00FC3F00FC7E00787E0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
+00FE00007E00007F00003F000C1F800C1FC01807E07003FFE0007F0016187E971B>I<00
+00FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000
+000FC000000FC000000FC000000FC000000FC0007F0FC003FFCFC00FE0FFC01F803FC03F
+000FC03F000FC07E000FC07E000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE
+000FC0FE000FC0FE000FC07E000FC07E000FC03F000FC03F001FC01F803FC00FC0EFC003
+FFCFFC00FE0FFC1E267EA522>I<007F0003FFC007C1F00F80F81F00F83F007C7E007C7E
+007EFE007EFE007EFFFFFEFFFFFEFE0000FE0000FE00007E00007E00007E00063F00061F
+000C0F801807E07003FFE0007F8017187E971C>I<001FC0007FF001F8F003E1F807E1F8
+07C1F80FC0F00FC0000FC0000FC0000FC0000FC0000FC0000FC000FFFF00FFFF000FC000
+0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
+0FC0000FC0000FC0000FC0000FC0000FC0000FC000FFFE00FFFE0015267EA513>I<01FF
+07C007FFDFE00F83F1E01F01F1E03E00F8007E00FC007E00FC007E00FC007E00FC007E00
+FC007E00FC003E00F8001F01F0000F83E0000FFFC00011FF000030000000300000003800
+00003C0000003FFFE0001FFFFC001FFFFE000FFFFF001FFFFF803C003F8078000FC0F800
+07C0F80007C0F80007C0F80007C07C000F803E001F001F807E0007FFF80000FFC0001B24
+7E971F>I<FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000
+000FC000000FC000000FC000000FC000000FC000000FC000000FC0FE000FC3FF800FCE0F
+C00FD80FC00FD007E00FE007E00FE007E00FC007E00FC007E00FC007E00FC007E00FC007
+E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007
+E00FC007E0FFFC7FFEFFFC7FFE1F267EA522>I<0F001F803FC03FC03FC03FC01F800F00
+00000000000000000000000000007FC07FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0
+0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFF8FFF80D277EA611>I<FFC0FF
+C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F
+C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFFCFF
+FC0E267EA511>108 D<FF80FE007F00FF83FF81FFC00F8E0FC707E00F980FCC07E00F90
+07E803F00FA007F003F00FA007F003F00FC007E003F00FC007E003F00FC007E003F00FC0
+07E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC0
+07E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F0FFFC
+7FFE3FFFFFFC7FFE3FFF30187E9733>I<FF80FE00FF83FF800F8E0FC00F980FC00F9007
+E00FA007E00FA007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007
+E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E0FFFC7F
+FEFFFC7FFE1F187E9722>I<007F800003FFF00007C0F8001F807E003F003F003F003F00
+7E001F807E001F80FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0
+FE001FC07E001F807E001F803F003F003F003F001F807E000FC0FC0003FFF000007F8000
+1A187E971F>I<FFC1FC00FFCFFF000FFC1FC00FF007E00FC007F00FC003F00FC003F80F
+C001F80FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0F
+C003F80FC003F80FC003F00FE007F00FF00FE00FDC1F800FCFFF000FC3F8000FC000000F
+C000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC0000FF
+FC00001E237F9722>I<FF83E0FF8FF80F8C7C0F90FC0FB0FC0FA0FC0FA0780FE0000FC0
+000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0
+000FC000FFFE00FFFE0016187F9719>114 D<07F8C01FFFC03C07C07001C0F000C0F000
+C0F000C0FC0000FF80007FFC007FFE003FFF800FFFC003FFC0001FE00003E0C001E0C001
+E0E001E0E001C0F003C0FC0780EFFF00C3FC0013187E9718>I<00C00000C00000C00000
+C00001C00001C00001C00003C00007C0000FC0001FC000FFFFC0FFFFC00FC0000FC0000F
+C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0600FC0600F
+C0600FC0600FC0600FC06007E0C007E1C001FF80007E0013237FA218>I<FFC07FE0FFC0
+7FE00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0
+07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC00FE00FC0
+0FE007C017E007E067E003FFC7FE007F07FE1F187E9722>I<FFF80FF8FFF80FF80FC001
+C00FC0018007E0030007E0030007F0070003F0060003F80E0001F80C0001FC0C0000FC18
+0000FE1800007E3000007E3000003F6000003F6000003FE000001FC000001FC000000F80
+00000F800000070000000700001D187F9720>I<FFF83FF0FFF83FF00FC00F0007E00E00
+03F01C0003F8380001FC700000FC6000007EC000003F8000003F8000001F8000000FC000
+001FE000001FF0000033F8000061F80000E0FC0001C07E0003807F0007003F800F001F80
+FFC07FF8FFC07FF81D187F9720>120 D<FFF80FF8FFF80FF80FC001C00FC0018007E003
+0007E0030007F0070003F0060003F80E0001F80C0001FC0C0000FC180000FE1800007E30
+00007E3000003F6000003F6000003FE000001FC000001FC000000F8000000F8000000700
+00000700000006000000060000000C0000300C0000781C0000FC180000FC300000FC7000
+0068E000007FC000001F0000001D237F9720>I<7FFFF87FFFF87C03F07007F0600FE0E0
+0FC0E01F80C03F80C03F00C07E0000FE0000FC0001F80003F80C03F00C07E00C0FE00C0F
+C01C1F80183F80387F00787E01F8FFFFF8FFFFF816187E971B>I
+E /Fh 30 122 df<0003F07C001E0DC600380F0F00701E0F00E01E0E00E00C0001C01C00
+01C01C0001C01C0001C01C0001C01C00038038007FFFFFC0038038000380380003803800
+038038000700700007007000070070000700700007007000070070000E00E0000E00E000
+0E00E0000E00E0000E00E0000E00E0001C01C0001E01E000FF8FFC0020207E9F1B>11
+D<0003E0001C1800381800703C00E03C00E03801C00001C00001C00001C00001C0000380
+007FFFF00380700380700380700380700700E00700E00700E00700E00700E00700E00E01
+C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF0FF016207E9F19>I<0003F03F
+00001E09E08000380F80C000701F01E000E03E01E000E01E01C001C01C000001C01C0000
+01C01C000001C01C000001C01C000003803800007FFFFFFF800380380380038038038003
+803803800380380380070070070007007007000700700700070070070007007007000700
+7007000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C0
+1C001E01E01E00FF8FF8FFC023207E9F26>14 D<00200000600000600000600000600030
+61C03C43800E4E0007780001E00001E00007B8001C9C00708F00E0830001800001800001
+800001800001000012147AA117>42 D<0018003801F80E700070007000700070007000E0
+00E000E000E000E000E001C001C001C001C001C001C00380038003800380038003800700
+0780FFFC0E1E7B9D17>49 D<003F8000C1E00100700200780400780400780F007C0F807C
+0F807C0F00780600780000F80000F00001E00001C0000380000700000E00001C00003800
+00600000C0000180000300200600200800401000403FFFC07FFF80FFFF80161E7E9D17>
+I<00FF01FE01800180018001800180030003000300030003000300060006000600060006
+0006000C000C000C000C000C000C00180018001800180018001800300030003000300030
+003000600060006000600060006000FF00FF00102D7EA10D>91 D<00FF01FE0006000600
+0600060006000C000C000C000C000C000C00180018001800180018001800300030003000
+300030003000600060006000600060006000C000C000C000C000C000C001800180018001
+8001800180FF00FF00102D82A10D>93 D<07F8000C0C001E06001E07001C070000070000
+070000070000FF0007C7001E07003C0E00780E00F00E10F00E10F00E10F01E10F02E2078
+4F401F878014147D9317>97 D<00FE000383000E07801C0780380700380000780000F000
+00F00000F00000F00000E00000E00000E00000F00000F001007002003804001C180007E0
+0011147D9314>99 D<0000380001F8000078000038000038000070000070000070000070
+0000700000700000E000FCE00382E00601E01C01E03C00E03801C07801C0F001C0F001C0
+F001C0F001C0E00380E00380E00380E00380F00380700780380F001C378007C7E015207D
+9F19>I<00F800070E000E07001C0700380380780380700380F00380F00380FFFF80F000
+00E00000E00000E00000E00000F001007002003004001C180007E00011147D9314>I<00
+07C0001C600030F00060F000E0E000C00001C00001C00001C00001C00001C0000380003F
+FC000380000380000380000380000700000700000700000700000700000700000E00000E
+00000E00000E00000E00000E00001C00001E0000FFC00014207F9F0E>I<00000E003E11
+00E1A301C1C20381E00780E00701E00F01E00F01E00F01E00703C007038007870004FC00
+0800000800001800001C00000FFF000FFFC00FFFE01800F0300030600030C00030C00030
+C000306000603000C01C070007FC00181F809417>I<00E00007E00001E00000E00000E0
+0001C00001C00001C00001C00001C00001C000038000038F800390E003A0E003C0600380
+600780E00700E00700E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01
+C01C03801E03C0FF8FF014207E9F19>I<01C003E003E003C00180000000000000000000
+00000003801F800780038003800700070007000700070007000E000E000E000E000E000E
+001C001E00FF800B1F7F9E0C>I<00E007E001E000E000E001C001C001C001C001C001C0
+0380038003800380038003800700070007000700070007000E000E000E000E000E000E00
+1C001E00FF800B207F9F0C>108 D<0387C07C001F9861860007A072070003C034030003
+803803000780780700070070070007007007000700700700070070070007007007000E00
+E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E0
+1E00FFCFFCFFC022147E9326>I<038F801F90E007A0E003C0600380600780E00700E007
+00E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF
+8FF014147E9319>I<00FC000387000E01801C00C03800E03800E07000F0F000F0F000F0
+F000F0F000F0E001E0E001E0E001C0E003C0F00380700700380E001C1C0007E00014147D
+9317>I<00E3E00007EC380000F01C0000E00E0000E00F0001C0070001C0078001C00780
+01C0078001C0078001C0078003800F0003800F0003800E0003801E0003801C0003803800
+074070000761C000071F00000700000007000000070000000E0000000E0000000E000000
+0E0000001E000000FFC00000191D809319>I<00FC200382600702601E01E03C01E03801
+C07801C0F001C0F001C0F001C0F001C0E00380E00380F00380F00380F00780700780380F
+001C370007C700000700000700000700000E00000E00000E00000E00001E0000FFC0131D
+7D9318>I<038E001FB38007C78003C78003830007800007000007000007000007000007
+00000E00000E00000E00000E00000E00000E00001C00001E0000FFC00011147E9312>I<
+01F9060708031803180138023C001F001FF007FC01FE001F40074003400360036006F004
+C81887E010147F9312>I<0080010001000100030007000F001E00FFF80E000E000E000E
+001C001C001C001C001C001C00380038103810381038103820382018400F800D1C7C9B12
+>I<1C0380FC1F803C07801C03801C038038070038070038070038070038070038070070
+0E00700E00700E00700E00701E00701E00703C00305E001F9F8011147B9319>I<FF83F8
+1E00E01C00C01C00801E00800E01000E03000E02000E0400070400070800070800071000
+03900003A00003E00003C00003800001800001000015147C9318>I<FF9FE1FC3C078070
+1C0300601C0380601C0380401C0380800E0780800E0D81000E0981000E19C2000E11C200
+0F21C4000720C4000740C8000740E8000780F0000780F0000300E0000300600002004000
+1E147C9321>I<1FF0FF03C07801C07001C04000E0C000E180007300007600003C00003C
+00001C00002E00004E000087000107000203800403800C01C03C03E0FE07FC18147F9318
+>I<0FF83F8001E00E0001C00C0001C0080001E0080000E0100000E0300000E0200000E0
+40000070400000708000007080000071000000390000003A0000003E0000003C00000038
+000000180000001000000010000000200000002000000040000070C00000F0800000F100
+0000E600000078000000191D809318>I E /Fi 36 122 df<0001C0000003C000000FC0
+00007FC0001FFFC000FFFFC000FFBFC000E03FC000003FC000003FC000003FC000003FC0
+00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
+00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
+00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0
+00003FC000003FC000003FC000003FC0007FFFFFF07FFFFFF07FFFFFF01C2E7AAD28>49
+D<003FE00001FFFE0007FFFF800F80FFC01E003FE038001FF07C000FF87E0007FCFF0007
+FCFF8007FEFF8007FEFF8003FEFF8003FE7F0003FE3E0007FE000007FE000007FC000007
+FC00000FF800000FF800000FF000001FE000001FC000003F8000007F0000007E000000F8
+000001F0000003E0000007C000000F0000001E000E003C000E0038000E0070001E00E000
+1C01C0001C0300003C07FFFFFC0FFFFFFC1FFFFFFC3FFFFFFC7FFFFFF8FFFFFFF8FFFFFF
+F8FFFFFFF81F2E7CAD28>I<0000007800000000000078000000000000FC000000000000
+FC000000000000FC000000000001FE000000000001FE000000000003FF000000000003FF
+000000000007FF800000000007FF800000000007FF80000000000FFFC0000000000E7FC0
+000000001E7FE0000000001C3FE0000000001C3FE000000000383FF000000000381FF000
+000000781FF800000000700FF800000000700FF800000000E00FFC00000000E007FC0000
+0001E007FE00000001C003FE00000001C003FE000000038001FF000000038001FF000000
+078001FF800000070000FF8000000F0000FFC000000FFFFFFFC000000FFFFFFFC000001F
+FFFFFFE000001C00003FE000003C00003FF000003800001FF000003800001FF000007000
+001FF800007000000FF80000F000000FFC0000E0000007FC0000E0000007FC0001C00000
+07FE0003E0000003FE00FFFF0001FFFFFCFFFF0001FFFFFCFFFF0001FFFFFC36317DB03D
+>65 D<FFFFFFFFC00000FFFFFFFFFC0000FFFFFFFFFF000001FE0000FF800001FE00007F
+E00001FE00003FF00001FE00001FF00001FE00000FF80001FE00000FF80001FE00000FFC
+0001FE000007FC0001FE000007FC0001FE000007FC0001FE000007FC0001FE00000FFC00
+01FE00000FFC0001FE00000FF80001FE00000FF80001FE00001FF00001FE00003FE00001
+FE00007FC00001FE0001FF800001FE001FFE000001FFFFFFFC000001FFFFFFFF800001FE
+00003FE00001FE00000FF00001FE000007FC0001FE000007FC0001FE000003FE0001FE00
+0003FF0001FE000001FF0001FE000001FF8001FE000001FF8001FE000001FF8001FE0000
+01FF8001FE000001FF8001FE000001FF8001FE000001FF8001FE000001FF0001FE000003
+FF0001FE000003FE0001FE000007FE0001FE00000FFC0001FE00001FF80001FE0000FFF0
+00FFFFFFFFFFC000FFFFFFFFFF0000FFFFFFFFF8000031317DB039>I<000003FF800180
+00003FFFF003800001FFFFFC07800007FF003F0F80001FF800079F80003FC00001FF8000
+FF800000FF8001FE0000007F8003FC0000003F8007FC0000001F8007F80000000F800FF0
+0000000F801FF000000007801FF000000007803FE000000007803FE000000003807FE000
+000003807FE000000003807FC000000000007FC00000000000FFC00000000000FFC00000
+000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000000
+0000FFC00000000000FFC000000000007FC000000000007FC000000000007FE000000000
+007FE000000003803FE000000003803FE000000003801FF000000003801FF00000000780
+0FF0000000070007F8000000070007FC0000000E0003FC0000001E0001FE0000001C0000
+FF8000007800003FC00000F000001FF80003E0000007FF003F80000001FFFFFE00000000
+3FFFF80000000003FF80000031317CB03A>I<FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFF
+E000FF80007FE000FF80000FF000FF800003F000FF800001F000FF800001F000FF800000
+F000FF800000F000FF8000007000FF8000007000FF8000007000FF8000003800FF800000
+3800FF8007003800FF8007003800FF8007000000FF8007000000FF8007000000FF800F00
+0000FF801F000000FF803F000000FFFFFF000000FFFFFF000000FFFFFF000000FF803F00
+0000FF801F000000FF800F000000FF8007000000FF8007000000FF8007000000FF800700
+0000FF8007000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000
+0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000
+0000FF80000000FFFFFFC00000FFFFFFC00000FFFFFFC000002D317EB033>70
+D<000003FF00030000007FFFF007000001FFFFFC0F000007FF007E1F00001FF0000FBF00
+007FC00003FF0000FF800001FF0001FE0000007F0003FC0000007F0007FC0000003F000F
+F80000001F000FF00000001F001FF00000000F001FF00000000F003FE000000007003FE0
+00000007007FE000000007007FE000000007007FC00000000000FFC00000000000FFC000
+00000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000
+000000FFC00000000000FFC00000000000FFC00000000000FFC00007FFFFF87FC00007FF
+FFF87FE00007FFFFF87FE0000001FF003FE0000001FF003FE0000001FF001FF0000001FF
+001FF0000001FF000FF0000001FF000FF8000001FF0007FC000001FF0003FC000001FF00
+01FE000001FF0000FF800001FF00007FC00003FF00001FF800077F000007FF003E3F0000
+01FFFFFC1F0000007FFFF00F00000003FF80030035317CB03F>I<FFFFFF807FFFFFC0FF
+FFFF807FFFFFC0FFFFFF807FFFFFC000FF8000007FC00000FF8000007FC00000FF800000
+7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000
+FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF800000
+7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000
+FF8000007FC00000FF8000007FC00000FF8000007FC00000FFFFFFFFFFC00000FFFFFFFF
+FFC00000FFFFFFFFFFC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000
+FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF800000
+7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000
+FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF800000
+7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC000FF
+FFFF807FFFFFC0FFFFFF807FFFFFC0FFFFFF807FFFFFC03A317EB03F>I<FFFFFF80FFFF
+FF80FFFFFF8000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF
+800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF
+800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF
+800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF
+800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000FFFF
+FF80FFFFFF80FFFFFF8019317EB01E>I<FFFF800001FFFFC0FFFFC00001FFFFC0FFFFE0
+0001FFFFC000FFF0000003E00000FFF8000001C00000EFFC000001C00000E7FC000001C0
+0000E7FE000001C00000E3FF000001C00000E1FF800001C00000E0FFC00001C00000E07F
+E00001C00000E03FE00001C00000E03FF00001C00000E01FF80001C00000E00FFC0001C0
+0000E007FE0001C00000E003FE0001C00000E001FF0001C00000E001FF8001C00000E000
+FFC001C00000E0007FE001C00000E0003FF001C00000E0001FF001C00000E0001FF801C0
+0000E0000FFC01C00000E00007FE01C00000E00003FF01C00000E00001FF81C00000E000
+00FF81C00000E00000FFC1C00000E000007FE1C00000E000003FF1C00000E000001FF9C0
+0000E000000FFDC00000E0000007FDC00000E0000007FFC00000E0000003FFC00000E000
+0001FFC00000E0000000FFC00000E00000007FC00000E00000003FC00000E00000003FC0
+0000E00000001FC00000E00000000FC00001F000000007C000FFFFE0000003C000FFFFE0
+000001C000FFFFE0000001C0003A317EB03F>78 D<FFFFFFFFE000FFFFFFFFFE00FFFFFF
+FFFF8000FF8000FFE000FF80003FF000FF80000FF800FF800007FC00FF800007FC00FF80
+0003FE00FF800003FE00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF80
+0003FF00FF800003FF00FF800003FF00FF800003FE00FF800003FE00FF800007FC00FF80
+0007F800FF80000FF800FF80003FE000FF8000FFC000FFFFFFFF0000FFFFFFF80000FF80
+00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80
+00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80
+00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80
+00000000FF80000000FFFFFF800000FFFFFF800000FFFFFF80000030317EB037>80
+D<7FFFFFFFFFFF007FFFFFFFFFFF007FFFFFFFFFFF007FC00FF801FF007E000FF8003F00
+7C000FF8001F0078000FF8000F0078000FF8000F0070000FF8000700F0000FF8000780F0
+000FF8000780F0000FF8000780E0000FF8000380E0000FF8000380E0000FF8000380E000
+0FF8000380E0000FF800038000000FF800000000000FF800000000000FF800000000000F
+F800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF8
+00000000000FF800000000000FF800000000000FF800000000000FF800000000000FF800
+000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000
+0000000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000
+00000FF800000000000FF800000000000FF800000000000FF8000000007FFFFFFF000000
+7FFFFFFF0000007FFFFFFF000031307DAF38>84 D<FFFFFF8003FFFF80FFFFFF8003FFFF
+80FFFFFF8003FFFF8000FF80000007C00000FF80000003800000FF80000003800000FF80
+000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380
+0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80
+000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380
+0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80
+000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380
+0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80
+000003800000FF80000003800000FF800000038000007F800000038000007F8000000700
+00007FC00000070000003FC000000E0000003FC000000E0000001FE000001C0000000FF0
+00003800000007F800007000000003FC0001E000000000FF801FC0000000003FFFFF8000
+0000000FFFFE000000000000FFE000000039317EB03E>I<FFFFFC0000FFFFFFFFFC0000
+FFFFFFFFFC0000FFFF03FF00000003C001FF000000038001FF800000078000FF80000007
+0000FFC000000700007FC000000E00007FC000000E00007FE000001E00003FE000001C00
+003FF000003C00001FF000003800001FF800003800000FF800007000000FFC0000700000
+07FC0000E0000007FC0000E0000007FE0001E0000003FE0001C0000003FF0003C0000001
+FF000380000001FF800380000000FF800700000000FF800700000000FFC00F000000007F
+C00E000000007FE01E000000003FE01C000000003FF03C000000001FF038000000001FF8
+38000000000FF870000000000FF870000000000FFCF00000000007FCE00000000007FFE0
+0000000003FFC00000000003FFC00000000001FF800000000001FF800000000000FF0000
+00000000FF000000000000FF0000000000007E0000000000007E0000000000003C000000
+0000003C00000038317EB03D>I<00FFF0000003FFFF00000F803F80000FC00FE0001FE0
+07F0001FE007F0001FE003F8000FC003FC00078003FC00000003FC00000003FC00000003
+FC00000003FC000000FFFC00001FFFFC0000FFE3FC0003FC03FC000FF003FC001FC003FC
+003FC003FC007F8003FC007F8003FC00FF0003FC00FF0003FC00FF0003FC00FF0007FC00
+FF0007FC007F800DFC003FC01DFE001FE078FFF007FFE07FF000FF803FF024207E9F27>
+97 D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F800
+000007F800000007F800000007F800000007F800000007F800000007F800000007F80000
+0007F800000007F800000007F800000007F800000007F83FE00007F8FFFC0007FBE07F00
+07FF001F8007FE000FC007FC000FE007F80007F007F80007F807F80007F807F80003FC07
+F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F8
+0003FE07F80003FE07F80003FE07F80003FC07F80003FC07F80003FC07F80007F807F800
+07F807F80007F007FC000FE007FE000FC007E7003F8007C3C0FE000780FFF80007003FC0
+0027327EB12D>I<000FFF00007FFFC001FC01F003F003F007E007F80FE007F81FC007F8
+3FC003F03FC001E07F8000007F8000007F800000FF800000FF800000FF800000FF800000
+FF800000FF800000FF800000FF8000007F8000007F8000007F8000003FC0001C3FC0001C
+1FC000380FE0003807E0007003F001E001FC07C0007FFF00000FF8001E207D9F24>I<00
+00000FC0000007FFC0000007FFC0000007FFC00000007FC00000003FC00000003FC00000
+003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000000
+3FC00000003FC00000003FC00000003FC00007F83FC0003FFF3FC000FE07BFC003F801FF
+C007E0007FC00FE0007FC01FC0003FC03FC0003FC03FC0003FC07F80003FC07F80003FC0
+7F80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF
+80003FC0FF80003FC07F80003FC07F80003FC07F80003FC03FC0003FC03FC0003FC01FC0
+003FC00FE0007FC007E000FFC003F003FFE001FC0F3FFE007FFE3FFE000FF03FFE27327D
+B12D>I<000FFC00007FFF8001FC0FC003F003E007E001F00FE001F81FC000FC3FC000FE
+3FC000FE7F80007E7F80007F7F80007FFF80007FFF80007FFFFFFFFFFFFFFFFFFF800000
+FF800000FF800000FF8000007F8000007F8000007F8000003FC000071FC000071FC0000E
+0FE0000E07F0001C03F8007800FE03E0003FFFC00007FE0020207E9F25>I<0001FE0000
+0FFF80001FC3C0007F07E000FE0FF001FE0FF001FC0FF003FC0FF003FC07E003FC018003
+FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000FFFFFC00FF
+FFFC00FFFFFC0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003
+FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003
+FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003
+FC00007FFFF0007FFFF0007FFFF0001C327EB119>I<001FF007C000FFFE3FE001F83F79
+F007E00FC3F00FE00FE1F00FC007E0E01FC007F0001FC007F0003FC007F8003FC007F800
+3FC007F8003FC007F8003FC007F8001FC007F0001FC007F0000FC007E0000FE00FE00007
+E00FC00003F83F000006FFFE00000E1FF000000E000000001E000000001E000000001F00
+0000001F800000001FFFFF80000FFFFFF0000FFFFFFC0007FFFFFE0003FFFFFF0003FFFF
+FF800FFFFFFFC03F00007FC07E00001FE07C00000FE0FC000007E0FC000007E0FC000007
+E0FC000007E07E00000FC03E00000F803F00001F800FC0007E0007F803FC0001FFFFF000
+001FFF0000242F7E9F28>I<01F8000000FFF8000000FFF8000000FFF80000000FF80000
+0007F800000007F800000007F800000007F800000007F800000007F800000007F8000000
+07F800000007F800000007F800000007F800000007F800000007F800000007F807F80007
+F83FFE0007F8783F0007F8C03F8007F9801FC007FB001FC007FE001FE007FC001FE007FC
+001FE007FC001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F800
+1FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001F
+E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFFC3FFFF
+FFFFC3FFFFFFFFC3FFFF28327DB12D>I<03C00007E0000FF0001FF8001FF8001FF8001F
+F8000FF00007E00003C00000000000000000000000000000000000000000000000000000
+000001F8007FF8007FF8007FF80007F80007F80007F80007F80007F80007F80007F80007
+F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007
+F80007F80007F80007F80007F80007F800FFFF80FFFF80FFFF8011337DB217>I<01F800
+FFF800FFF800FFF8000FF80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F800FFFFC0FFFFC0
+FFFFC012327DB117>108 D<03F007F8001FE000FFF03FFE00FFF800FFF0783F01E0FC00
+FFF0C03F8300FE000FF1801FC6007F0007F3001FCC007F0007F6001FF8007F8007FC001F
+F0007F8007FC001FF0007F8007FC001FF0007F8007F8001FE0007F8007F8001FE0007F80
+07F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001F
+E0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F80
+07F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001F
+E0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F80FFFFC3FFFF0FFFFC
+FFFFC3FFFF0FFFFCFFFFC3FFFF0FFFFC3E207D9F43>I<03F007F800FFF03FFE00FFF078
+3F00FFF0C03F800FF1801FC007F3001FC007F6001FE007FC001FE007FC001FE007FC001F
+E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0
+07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007
+F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FFFFFFFF
+C3FFFF28207D9F2D>I<0007FC0000007FFFC00001FC07F00003F001F80007E000FC000F
+C0007E001FC0007F003FC0007F803F80003F807F80003FC07F80003FC07F80003FC0FF80
+003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF8000
+3FE07F80003FC07F80003FC07F80003FC03FC0007F803FC0007F801FC0007F000FE000FE
+0007E000FC0003F803F80001FE0FF000007FFFC0000007FC000023207E9F28>I<01F83F
+E000FFF8FFFC00FFFBE07F00FFFF003F8007FE001FC007FC000FE007F8000FF007F80007
+F807F80007F807F80007FC07F80003FC07F80003FC07F80003FE07F80003FE07F80003FE
+07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FC07F80007FC07
+F80007FC07F80007F807F80007F807F8000FF007FC000FE007FE001FC007FF003F8007FB
+C0FE0007F8FFF80007F83FC00007F800000007F800000007F800000007F800000007F800
+000007F800000007F800000007F800000007F800000007F800000007F8000000FFFFC000
+00FFFFC00000FFFFC00000272E7E9F2D>I<03F03F00FFF07FC0FFF1C3E0FFF187E00FF3
+0FF007F60FF007F60FF007FC07E007FC03C007FC000007FC000007F8000007F8000007F8
+000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8
+000007F8000007F8000007F8000007F8000007F8000007F80000FFFFE000FFFFE000FFFF
+E0001C207E9F21>114 D<01FF860007FFFE001F00FE003C003E0078001E0078000E00F8
+000E00F8000E00F8000E00FC000000FF800000FFFC00007FFFC0003FFFF0003FFFF8001F
+FFFC0007FFFE0001FFFF00003FFF000000FF8000003F8060001F80E0000F80E0000F80F0
+000F80F0000F00F8000F00FC001E00FE001C00FF807800F3FFF000C07F800019207D9F20
+>I<001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C0000007C
+0000007C000000FC000001FC000003FC000007FC00001FFFFE00FFFFFE00FFFFFE0003FC
+000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC
+000003FC000003FC000003FC000003FC000003FC000003FC000003FC038003FC038003FC
+038003FC038003FC038003FC038003FC038001FC038001FC070000FE0700007F0E00003F
+FC000007F000192E7FAD1F>I<01F80007E0FFF803FFE0FFF803FFE0FFF803FFE00FF800
+3FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001F
+E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0
+07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8003FE007F8003FE003
+F8007FE003F8007FE001FC00DFF000FE039FFF007FFF1FFF000FFC1FFF28207D9F2D>I<
+FFFF001FFCFFFF001FFCFFFF001FFC0FF80003C007F800038007FC00078003FC00070003
+FE00070001FE000E0001FF000E0000FF001C0000FF001C0000FF803C00007F803800007F
+C07800003FC07000003FE0F000001FE0E000001FF1E000000FF1C000000FF9C0000007FB
+80000007FB80000007FF80000003FF00000003FF00000001FE00000001FE00000000FC00
+000000FC00000000780000000078000026207E9F2B>I<FFFF1FFFE03FF8FFFF1FFFE03F
+F8FFFF1FFFE03FF80FF000FE0007800FF800FE00038007F800FF00070007F8007F000700
+07FC007F000F0003FC00FF800E0003FC00FF800E0001FE01FFC01C0001FE01DFC01C0001
+FF01DFC03C0000FF038FE0380000FF038FE03800007F878FF07000007F8707F07000007F
+C707F0F000003FCF07F8E000003FCE03F8E000001FFE03F9C000001FFC01FDC000001FFC
+01FFC000000FFC01FF8000000FF800FF8000000FF800FF80000007F0007F00000007F000
+7F00000003F0007E00000003E0003E00000003E0003E00000001C0001C000035207E9F3A
+>I<7FFF807FFC7FFF807FFC7FFF807FFC03FC000F0001FE001E0000FF003C0000FF8038
+00007FC07800003FC0F000001FE1E000000FF3C000000FFF80000007FF00000003FE0000
+0001FE00000000FF00000000FF80000000FFC0000001FFC0000003DFE00000078FF00000
+078FF800000F07FC00001E03FE00003C01FE00007800FF0000F000FF8001E0007FC003E0
+003FE0FFFC01FFFFFFFC01FFFFFFFC01FFFF28207F9F2B>I<FFFF001FFCFFFF001FFCFF
+FF001FFC0FF80003C007F800038007FC00078003FC00070003FE00070001FE000E0001FF
+000E0000FF001C0000FF001C0000FF803C00007F803800007FC07800003FC07000003FE0
+F000001FE0E000001FF1E000000FF1C000000FF9C0000007FB80000007FB80000007FF80
+000003FF00000003FF00000001FE00000001FE00000000FC00000000FC00000000780000
+0000780000000070000000007000000000F000000000E000000001E000007C01C00000FE
+03C00000FE03800000FE07000000FE0F000000FC1E000000787C0000003FF00000000FC0
+000000262E7E9F2B>I E /Fj 3 106 df<0000FF00000007FFE000001F00F8000078001E
+0000E0000700018000018003000000C006000000600C000000300C000000301800000018
+300000000C300000000C6000000006600000000660000000066000000006C000000003C0
+00000003C000000003C000000003C000000003C000000003C000000003C000000003C000
+0000036000000006600000000660000000066000000006300000000C300000000C180000
+00180C000000300C00000030060000006003000000C0018000018000E00007000078001E
+00001F00F8000007FFE0000000FF0000282B7EA02D>13 D<0020006000C000C000C00180
+0180030003000300060006000C000C0018001800180030003000600060006000C000C000
+600060006000300030001800180018000C000C00060006000300030003000180018000C0
+00C000C0006000200B2E7CA112>104 D<C000C000600060006000300030001800180018
+000C000C00060006000300030003000180018000C000C000C00060006000C000C000C001
+800180030003000300060006000C000C0018001800180030003000600060006000C000C0
+000B2E7EA112>I E /Fk 44 122 df<3C007F00FF80FF80FFC0FFC0FFC07FC03EC000C0
+00C00180018001800300030006000E001C00380010000A157B8813>44
+D<1C007F007F00FF80FF80FF807F007F001C0009097B8813>46 D<000E00001E00007E00
+07FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
+00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
+00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00FFFFFEFFFFFEFFFFFE
+17277BA622>49 D<00FF800007FFF0000FFFFC001E03FE003800FF807C003F80FE003FC0
+FF001FC0FF001FE0FF000FE0FF000FE07E000FE03C001FE000001FE000001FC000001FC0
+00003F8000003F0000007E000000FC000000F8000001F0000003E00000078000000F0000
+001E0000003C00E0007000E000E000E001C001C0038001C0060001C00FFFFFC01FFFFFC0
+3FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007
+FFFC000F81FE001F007F003F807F003F803F803F803F803F803F801F803F801F003F8000
+007F0000007F0000007E000000FC000001F8000007F00000FFC00000FFC0000001F80000
+007E0000003F0000003F8000001FC000001FC000001FE000001FE03C001FE07E001FE0FF
+001FE0FF001FE0FF001FC0FF003FC0FE003F807C007F003F01FE001FFFFC0007FFF00000
+FF80001B277DA622>I<00000F0000000F0000001F0000003F0000007F000000FF000001
+FF000001FF000003BF0000073F00000E3F00001C3F00003C3F0000383F0000703F0000E0
+3F0001C03F0003803F0007803F0007003F000E003F001C003F0038003F0070003F00F000
+3F00FFFFFFF8FFFFFFF8FFFFFFF800007F0000007F0000007F0000007F0000007F000000
+7F0000007F0000007F00001FFFF8001FFFF8001FFFF81D277EA622>I<180003001F801F
+001FFFFE001FFFFC001FFFF8001FFFF0001FFFC0001FFF00001C0000001C0000001C0000
+001C0000001C0000001C0000001C0000001C7FC0001DFFF8001F80FC001E003F0008003F
+0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001F
+E0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFFC0003FFF0
+0000FF80001B277DA622>I<00000780000000000780000000000FC0000000000FC00000
+00000FC0000000001FE0000000001FE0000000003FF0000000003FF0000000003FF00000
+000077F80000000077F800000000F7FC00000000E3FC00000000E3FC00000001C1FE0000
+0001C1FE00000003C1FF0000000380FF0000000380FF00000007007F80000007007F8000
+000F007FC000000E003FC000000E003FC000001C001FE000001C001FE000003FFFFFF000
+003FFFFFF000003FFFFFF00000700007F80000700007F80000F00007FC0000E00003FC00
+01E00003FE0001C00001FE0001C00001FE0003C00001FF00FFFE003FFFFCFFFE003FFFFC
+FFFE003FFFFC2E297EA833>65 D<FFFFFFF800FFFFFFFF00FFFFFFFFC003F8001FE003F8
+000FF003F80007F803F80003F803F80003FC03F80003FC03F80001FC03F80001FC03F800
+01FC03F80003FC03F80003F803F80003F803F80007F003F8000FF003F8001FC003F800FF
+8003FFFFFE0003FFFFFFC003F8000FF003F80003F803F80001FC03F80001FE03F80000FE
+03F80000FE03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03
+F80000FE03F80001FE03F80003FC03F80007FC03F8001FF8FFFFFFFFE0FFFFFFFFC0FFFF
+FFFE0028297DA830>I<00007FE0030007FFFC07001FFFFF0F007FF00F9F00FF0001FF01
+FC0000FF03F800007F07F000003F0FE000001F1FC000001F1FC000000F3F8000000F3F80
+0000077F800000077F800000077F00000000FF00000000FF00000000FF00000000FF0000
+0000FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F800000
+007F800000073F800000073F800000071FC00000071FC000000E0FE000000E07F000001C
+03F800003C01FC00007800FF0001F0007FF007C0001FFFFF800007FFFE0000007FF00028
+297CA831>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC001FE003FC0007F003FC0001F0
+03FC0001F003FC0000F003FC00007003FC00007003FC00007003FC01C07803FC01C03803
+FC01C03803FC01C03803FC03C00003FC03C00003FC0FC00003FFFFC00003FFFFC00003FF
+FFC00003FC0FC00003FC03C00003FC03C00003FC01C00E03FC01C00E03FC01C00E03FC01
+C01C03FC00001C03FC00001C03FC00001C03FC00003C03FC00003803FC00007803FC0000
+F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFFFFFFF0FFFFFFFFF027297EA82C
+>69 D<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003FC000FE003FC0003E003FC00
+01E003FC0001E003FC0000E003FC0000E003FC0000E003FC0000F003FC01C07003FC01C0
+7003FC01C07003FC01C00003FC03C00003FC03C00003FC0FC00003FFFFC00003FFFFC000
+03FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00003FC01C00003FC01C00003
+FC01C00003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
+00000003FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024297EA82A>I<00
+007FE003000007FFFC0700001FFFFF0F00007FF00F9F0000FF0001FF0001FC0000FF0003
+F800007F0007F000003F000FE000001F001FC000001F001FC000000F003F8000000F003F
+80000007007F80000007007F80000007007F0000000000FF0000000000FF0000000000FF
+0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF
+0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F800000FF003F800000FF001F
+C00000FF001FC00000FF000FE00000FF0007F00000FF0003F80000FF0001FC0000FF0000
+FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000007FF003002D297CA835>I<
+FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF03FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FFFFFFFFC003FFFFFFFFC003FFFFFFFFC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC0FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF30297EA835>
+I<FFFFF0FFFFF0FFFFF003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC
+0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC
+0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC
+0003FC0003FC00FFFFF0FFFFF0FFFFF014297EA819>I<FFFC00007FFFFFFE00007FFFFF
+FF00007FFF03FF800001C003FFC00001C003BFE00001C0039FE00001C0039FF00001C003
+8FF80001C00387FC0001C00383FE0001C00381FF0001C00380FF8001C003807F8001C003
+807FC001C003803FE001C003801FF001C003800FF801C0038007FC01C0038003FC01C003
+8003FE01C0038001FF01C0038000FF81C00380007FC1C00380003FE1C00380001FF1C003
+80000FF1C00380000FF9C003800007FDC003800003FFC003800001FFC003800000FFC003
+8000007FC0038000007FC0038000003FC0038000001FC0038000000FC00380000007C0FF
+FE000003C0FFFE000001C0FFFE000001C030297EA835>78 D<FFFFFFF800FFFFFFFF00FF
+FFFFFFC003FC003FE003FC0007F003FC0003F803FC0003FC03FC0001FC03FC0001FE03FC
+0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FC03FC00
+03FC03FC0003F803FC0007F003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC0000
+0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000
+03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000FF
+FFF00000FFFFF00000FFFFF0000027297EA82E>80 D<FFFFFFE00000FFFFFFFE0000FFFF
+FFFF800003FC003FE00003FC000FF00003FC0007F80003FC0003FC0003FC0001FC0003FC
+0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC
+0001FC0003FC0003F80003FC0007F80003FC000FE00003FC003FC00003FFFFFE000003FF
+FFFE000003FC00FF800003FC003FC00003FC001FE00003FC000FF00003FC0007F80003FC
+0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC
+0007F80003FC0007F80003FC0007F80E03FC0007F80E03FC0003F80E03FC0001FC1CFFFF
+F000FE1CFFFFF0007FF8FFFFF0000FE02F297EA832>82 D<00FF806003FFF0E00FFFF8E0
+1F80FDE03F001FE03E0007E07C0003E07C0003E0FC0001E0FC0001E0FC0000E0FE0000E0
+FE0000E0FF000000FFC000007FFC00007FFFE0003FFFF8001FFFFE001FFFFF0007FFFF80
+03FFFFC000FFFFC0000FFFE000007FE000001FF000000FF0000007F0E00003F0E00003F0
+E00003F0E00003F0F00003E0F00003E0F80007E0FC0007C0FF000F80FFE03F80E3FFFE00
+E1FFFC00C01FF0001C297CA825>I<FFFFF000FFFEFFFFF000FFFEFFFFF000FFFE03FC00
+00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00
+00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00
+00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00
+00038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00
+00038003FC0000038003FC0000038003FC0000038001FC0000070001FE0000070000FE00
+000E00007F00000E00003F00003C00001FC0007800000FF003F0000007FFFFE0000000FF
+FF800000001FFC00002F297EA834>85 D<FFFFF0007FFFFFFFF0007FFFFFFFF0007FFF03
+FE000001C001FE0000038001FE0000038001FF0000078000FF0000070000FF80000F0000
+7F80000E00007FC0000E00003FC0001C00003FC0001C00003FE0003C00001FE000380000
+1FF0007800000FF0007000000FF80070000007F800E0000007F800E0000003FC01C00000
+03FC01C0000003FE03C0000001FE0380000001FF0780000000FF0700000000FF87000000
+007F8E000000007F8E000000007FDE000000003FDC000000003FFC000000001FF8000000
+001FF8000000000FF0000000000FF0000000000FF00000000007E00000000007E0000000
+0003C00000000003C0000030297FA833>I<FFFFE07FFFE01FFFC0FFFFE07FFFE01FFFC0
+FFFFE07FFFE01FFFC003FC0003FC0000700003FC0003FC0000700003FE0001FE00007000
+01FE0001FE0000E00001FE0001FE0000E00001FF0001FF0001E00000FF0001FF0001C000
+00FF0003FF8001C00000FF8003FF8003C000007F8003FF80038000007F8007FFC0038000
+003FC0073FC0070000003FC0073FC0070000003FE00E1FE00F0000001FE00E1FE00E0000
+001FE00E1FF00E0000001FF01C0FF01E0000000FF01C0FF01C0000000FF03C0FF81C0000
+0007F83807F83800000007F83807F83800000007F87807FC3800000003FC7003FC700000
+0003FC7003FC7000000003FEE001FEF000000001FEE001FEE000000001FFE001FFE00000
+0001FFC000FFE000000000FFC000FFC000000000FFC000FFC0000000007F80007F800000
+00007F80007F80000000007F80007F80000000003F00003F00000000003F00003F000000
+00003E00001F00000000001E00001E00000000001E00001E00000042297FA845>I<03FF
+80000FFFF0001F01FC003F80FE003F807F003F803F003F803F801F003F8000003F800000
+3F8000003F8000003F80003FFF8001FC3F800FE03F801F803F803F003F807E003F80FC00
+3F80FC003F80FC003F80FC003F80FC005F807E00DF803F839FFC1FFE0FFC03FC03FC1E1B
+7E9A21>97 D<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE0
+00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE1FE000FEF
+FF800FFE07E00FF803F00FF001F80FE000FC0FE000FC0FE0007E0FE0007E0FE0007F0FE0
+007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007E0FE0007E0FE0
+007E0FE000FC0FE000FC0FF001F80FF803F00F9C0FE00F0FFF800E01FC00202A7EA925>
+I<003FF00001FFFC0003F03E000FC07F001F807F003F007F003F007F007F003E007E0000
+007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000
+007E0000007F0000003F0003803F8003801F8007000FE00E0003F83C0001FFF800003FC0
+00191B7E9A1E>I<00007FF000007FF000007FF0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0003F87F0
+01FFF7F007F03FF00FC00FF01F8007F03F0007F03F0007F07E0007F07E0007F07E0007F0
+FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F07E0007F0
+7E0007F03F0007F03F0007F01F800FF00FC01FF007E07FFF01FFE7FF007F87FF202A7EA9
+25>I<003FC00001FFF00003E07C000F803E001F801F001F001F003F000F807E000F807E
+000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FFFFFFC0FE000000FE000000FE0000007E
+0000007E0000007F0000003F0001C01F0001C00F80038007C0070003F01E0000FFFC0000
+3FE0001A1B7E9A1F>I<0007F8003FFC007E3E01FC7F03F87F03F07F07F07F07F03E07F0
+0007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F0
+0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0
+0007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<00
+FF80F003FFE3F80FC1FE1C1F007C7C3F007E7C3E003E107E003F007E003F007E003F007E
+003F007E003F007E003F003E003E003F007E001F007C000FC1F8000BFFE00018FF800018
+00000038000000380000003C0000003FFFF8003FFFFF001FFFFFC00FFFFFE007FFFFF01F
+FFFFF03C0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C0001F07C0001F03F
+0007E00FC01F8007FFFF00007FF0001E287E9A22>I<FFE00000FFE00000FFE000000FE0
+00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0
+00000FE000000FE000000FE07E000FE1FF800FE30FC00FE40FE00FE807E00FF807F00FF0
+07F00FF007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0
+07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE
+3FFFFFFE3FFFFFFE3FFF202A7DA925>I<07000F801FC03FE03FE03FE01FC00F80070000
+00000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00F
+E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7EAA12
+>I<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE0FFFEFFFEFFFE0F2A7EA912>108 D<FFC07F001FC000FFC1FFC07FF0
+00FFC307E0C1F8000FC407F101FC000FC803F200FC000FD803FE00FE000FD003FC00FE00
+0FD003FC00FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000F
+E003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE0
+03F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003
+F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE3FFF8FFFE0FFFE3FFF8FFFE0331B7D9A
+38>I<FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E00FD807F00FD007F00FD007F00F
+E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F
+E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFF
+FE3FFF201B7D9A25>I<003FE00001FFFC0003F07E000FC01F801F800FC03F0007E03F00
+07E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE00
+03F8FE0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F800FC00FC01F8007F0
+7F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE00FFEFFF80FFFE0FE00FF803F00FF001
+F80FE001FC0FE000FC0FE000FE0FE000FE0FE0007F0FE0007F0FE0007F0FE0007F0FE000
+7F0FE0007F0FE0007F0FE0007F0FE0007E0FE000FE0FE000FE0FE000FC0FE001FC0FF001
+F80FF807F00FFC0FE00FEFFF800FE1FC000FE000000FE000000FE000000FE000000FE000
+000FE000000FE000000FE000000FE00000FFFE0000FFFE0000FFFE000020277E9A25>I<
+FFC1F0FFC7FCFFC63E0FCC7F0FD87F0FD07F0FD07F0FF03E0FE0000FE0000FE0000FE000
+0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000
+FFFF00FFFF00FFFF00181B7F9A1B>114 D<03FE300FFFF03E03F07800F07000F0F00070
+F00070F80070FE0000FFE0007FFF007FFFC03FFFE01FFFF007FFF800FFF80007FC0000FC
+E0007CE0003CF0003CF00038F80038FC0070FF01E0E7FFC0C1FF00161B7E9A1B>I<00E0
+0000E00000E00000E00001E00001E00001E00003E00003E00007E0000FE0001FFFE0FFFF
+E0FFFFE00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0
+000FE0000FE0000FE0700FE0700FE0700FE0700FE0700FE0700FE07007F0E003F0C001FF
+80007F0014267FA51A>I<FFE07FF0FFE07FF0FFE07FF00FE007F00FE007F00FE007F00F
+E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F
+E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE00FF00FE00FF007E017F003
+F067FF01FFC7FF007F87FF201B7D9A25>I<FFFC03FFFFFC03FFFFFC03FF0FF000F007F0
+00E007F800E003F801C003F801C003FC03C001FC038001FE078000FE070000FF0700007F
+0E00007F0E00007F9E00003F9C00003FFC00001FF800001FF800000FF000000FF000000F
+F0000007E0000007E0000003C0000003C000201B7F9A23>I<FFFC7FFC1FFCFFFC7FFC1F
+FCFFFC7FFC1FFC0FE00FE001C007F007E0038007F007E0038007F807F0078003F807F007
+0003F80FF8070003FC0FF80F0001FC0FF80E0001FC1FFC0E0000FE1CFC1C0000FE1CFE1C
+0000FF387E3C00007F387E3800007F787F3800003FF03F7000003FF03FF000003FE01FF0
+00001FE01FE000001FE01FE000000FC00FC000000FC00FC000000F8007C0000007800780
+000007800780002E1B7F9A31>I<FFFC1FFEFFFC1FFEFFFC1FFE07F0038003F8078003FC
+0F0001FE1E0000FE3C00007F3800007FF800003FF000001FE000000FE000000FF0000007
+F800000FF800001FFC00003CFE000038FF0000787F0000F03F8001E01FC003C01FE00380
+0FE0FFF03FFFFFF03FFFFFF03FFF201B7F9A23>I<FFFC03FFFFFC03FFFFFC03FF0FF000
+F007F000E007F800E003F801C003F801C003FC03C001FC038001FE078000FE070000FF07
+00007F0E00007F0E00007F9E00003F9C00003FFC00001FF800001FF800000FF000000FF0
+00000FF0000007E0000007E0000003C0000003C000000380000003800000078000380700
+007C0F0000FE0E0000FE1E0000FE1C0000FE38000074F000003FE000000F80000020277F
+9A23>I E /Fl 75 127 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F870000000000070
+F8F8F870051C779B18>33 D<4010E038F078E038E038E038E038E038E038E038E038E038
+E03860300D0E7B9C18>I<030600078F00078F00078F00078F00078F00078F007FFFC0FF
+FFE0FFFFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07F
+FFC01E3C001E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>I<00C00001C000
+01C00001C00003F0000FFC003FFE007DCF0071C700E1C380E1C780E1C780E1C780F1C000
+79C0003FC0001FE0000FF80001FC0001DE0001CF0001C70061C380F1C380F1C380E1C380
+E1C70071C70079DE003FFE001FF80007E00001C00001C00001C00000C00011247D9F18>
+I<3803007C07807C0780EE0F80EE0F00EE0F00EE1F00EE1E00EE1E00EE3E007C3C007C3C
+00387C0000780000780000F80000F00001F00001E00001E00003E00003C00003C00007C0
+000783800787C00F87C00F0EE00F0EE01F0EE01E0EE01E0EE03E0EE03C07C03C07C01803
+8013247E9F18>I<01C00007E0000FF0000E70001C38001C38001C38001C38001C73F81C
+F3F81CE3F80FC1C00FC3800F83800F03801F07003F87007B8E0071CE00E1FC00E0FC00E0
+7C00E07870E0787070FE707FFFE03FC7E00F03C0151C7F9B18>I<387C7C7E3E0E0E0E1C
+1C38F8F0C0070E789B18>I<007000F001E003C007800F001E001C003800380070007000
+70007000E000E000E000E000E000E000E000E0007000700070007000380038001C001E00
+0F00078003C001F000F000700C24799F18>I<6000F00078003C001E000F000780038001
+C001C000E000E000E000E00070007000700070007000700070007000E000E000E000E001
+C001C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001
+C00041C100F1C780FDDF807FFF001FFC0007F00007F0001FFC007FFF00FDDF80F1C78041
+C10001C00001C00001C00001C00011147D9718>I<00600000F00000F00000F00000F000
+00F00000F00000F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F000
+00F00000F00000600013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF
+C0FFFFE0FFFFE07FFFC013047E8F18>I<3078FCFC78300606778518>I<00030000078000
+0780000F80000F00001F00001E00001E00003E00003C00007C0000780000780000F80000
+F00001F00001E00003E00003C00003C00007C0000780000F80000F00000F00001F00001E
+00003E00003C00003C00007C0000780000F80000F00000F0000060000011247D9F18>I<
+01F00007FC000FFE001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0
+E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C0700
+1F1F000FFE0007FC0001F000131C7E9B18>I<01800380038007800F803F80FF80FB8043
+8003800380038003800380038003800380038003800380038003800380038003807FFCFF
+FE7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000
+E00000E00000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E0
+0007C0000F80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<001F00003F0000
+770000770000E70001E70001C7000387000787000707000E07001E07003C070038070078
+0700F00700FFFFF8FFFFF8FFFFF8000700000700000700000700000700000700007FF000
+7FF0007FF0151C7F9B18>52 D<007E0001FF0007FF800F83C01E03C01C03C03801803800
+00700000700000E1F800E7FE00FFFF00FE0780F803C0F001C0F000E0E000E0F000E07000
+E07000E07000E03801C03C03C01E07800FFF0007FE0001F800131C7E9B18>54
+D<3078FCFC783000000000000000003078FCFC78300614779318>58
+D<183C7E7E3C180000000000000000183C7E7E3E1E0E1C3C78F060071A789318>I<0000
+C00003E00007E0001FC0003F8000FE0001FC0007F0000FE0003F80007F0000FC0000FC00
+007F00003F80000FE00007F00001FC0000FE00003F80001FC00007E00003E00000C01318
+7E9918>I<7FFFC0FFFFE0FFFFE07FFFC00000000000000000000000007FFFC0FFFFE0FF
+FFE07FFFC0130C7E9318>I<600000F80000FC00007F00003F80000FE00007F00001FC00
+00FE00003F80001FC00007E00007E0001FC0003F8000FE0001FC0007F0000FE0003F8000
+7F0000FC0000F8000060000013187E9918>I<0FF0003FFC007FFF00700F00F00380F003
+80600780000F00003E00007C0001F00001E00003C00003C00003C00003C00003C0000380
+0000000000000000000000000000000003800007C00007C00007C000038000111C7D9B18
+>I<00700000F80000F80000D80000D80001DC0001DC0001DC00018C00038E00038E0003
+8E00038E000707000707000707000707000707000FFF800FFF800FFF800E03801C01C01C
+01C01C01C07F07F0FF07F87F07F0151C7F9B18>65 D<7FF800FFFE007FFF001C0F801C03
+C01C03C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C00701C00701C00
+701C00701C00F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C
+7F9B18>68 D<FFFFF0FFFFF0FFFFF01C00701C00701C00701C00701C00001C00001C0E00
+1C0E001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00381C0038
+1C00381C00381C0038FFFFF8FFFFF8FFFFF8151C7F9B18>I<FFFFF8FFFFF8FFFFF81C00
+381C00381C00381C00381C00001C00001C07001C07001C07001FFF001FFF001FFF001C07
+001C07001C07001C00001C00001C00001C00001C00001C00001C0000FFC000FFC000FFC0
+00151C7F9B18>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C
+01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C
+01C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>72
+D<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001C0007FFF00FFFF807FFF00111C7D9B18>I<FFC000FFC000FFC0001C00001C00001C
+00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
+00001C00001C00001C00E01C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE0131C7E9B
+18>76 D<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1
+C01CE1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0D
+C01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B18>78 D<0FFE003FFF807FFFC07803C0
+7001C0F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0
+E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07C07C07FFFC03FFF800FFE00
+131C7E9B18>I<FFFE00FFFF80FFFFC01C03C01C01E01C00E01C00701C00701C00701C00
+701C00701C00E01C01E01C03C01FFFC01FFF801FFE001C00001C00001C00001C00001C00
+001C00001C00001C0000FF8000FF8000FF8000141C7F9B18>I<7FF800FFFE007FFF001C
+0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C
+0F001C07001C03801C03801C03801C03801C03801C039C1C039C1C039C7F01F8FF81F87F
+00F0161C7F9B18>82 D<03F1C01FFFC03FFFC07C0FC07003C0E001C0E001C0E001C0E000
+007000007800003F00001FF00007FE0000FF00000F800003C00001C00000E00000E06000
+E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FF
+FFF8E07038E07038E07038E0703800700000700000700000700000700000700000700000
+700000700000700000700000700000700000700000700000700000700000700007FF0007
+FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83FE1C00701C00701C00701C00701C0070
+1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070
+1C00701C00700E00E00F01E00783C003FF8001FF00007C00171C809B18>I<FE03F8FF07
+F8FE03F81C01C01E03C00E03800F0780070700070700038E00038E0001DC0001DC0001DC
+0000F80000F80000700000700000700000700000700000700000700000700000700001FC
+0003FE0001FC00151C7F9B18>89 D<FFF8FFF8FFF8E000E000E000E000E000E000E000E0
+00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
+00E000E000E000E000FFF8FFF8FFF80D24779F18>91 D<600000F00000F00000F8000078
+00007C00003C00003C00003E00001E00001F00000F00000F00000F800007800007C00003
+C00003C00003E00001E00001F00000F00000F800007800007800007C00003C00003E0000
+1E00001E00001F00000F00000F8000078000078000030011247D9F18>I<FFF8FFF8FFF8
+003800380038003800380038003800380038003800380038003800380038003800380038
+003800380038003800380038003800380038003800380038FFF8FFF8FFF80D247F9F18>
+I<018007C01FF07EFCF83EE00E0F067C9B18>I<7FFFC0FFFFE0FFFFE07FFFC013047E7F
+18>I<061E3E387070E0E0E0F8FC7C7C38070E789E18>I<0FF0001FFC003FFE003C0F0018
+070000038000038000FF8007FF801FFF807F0380780380E00380E00380E00380F0078078
+0F803FFFF81FFDF807F0F815147E9318>I<7E0000FE00007E00000E00000E00000E0000
+0E00000E00000E3E000EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E0038
+0E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF80063E00151C809B18>
+I<01FE0007FF001FFF803E0780380300700000700000E00000E00000E00000E00000E000
+00E000007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F8000
+3F80001F8000038000038000038000038000038003E3800FFB801FFF803C1F80380F8070
+0780700380E00380E00380E00380E00380E00380E00380700780700780380F803C1F801F
+FFF00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F00380780700380700380
+E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E07C01FFF8007FF00
+01F80012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C00001C0007FFF
+C0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80F
+FFF81E1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039
+E0003800001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E0003878
+00F07E03F01FFFC00FFF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E0000
+0E00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E0
+0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC7FCFFE7FE7FC7FC171C80
+9B18>I<038007C007C007C0038000000000000000007FC0FFC07FC001C001C001C001C0
+01C001C001C001C001C001C001C001C001C001C0FFFFFFFFFFFF101D7C9C18>I<FFC000
+FFC000FFC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+FFFF80FFFF80FFFF80111C7D9B18>108 D<F9C1C0FFF7F0FFFFF03E3E383C3C383C3C38
+383838383838383838383838383838383838383838383838383838383838383838FE3E3E
+FE7E7EFE3E3E1714809318>I<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00
+E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC7FCFFE7FE7FC7
+FC1714809318>I<01F0000FFE001FFF003E0F803803807001C07001C0E000E0E000E0E0
+00E0E000E0E000E0F001E07001C07803C03C07803E0F801FFF000FFE0001F00013147E93
+18>I<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E0038
+0E00380E00380F00700F00700F80E00FC1E00FFFC00EFF800E3E000E00000E00000E0000
+0E00000E00000E00000E00007FC000FFE0007FC000151E809318>I<01F38007FB801FFF
+803E1F80380F80700780700780E00380E00380E00380E00380E00380E003807007807007
+80380F803C1F801FFF800FFB8003E3800003800003800003800003800003800003800003
+80001FF0003FF8001FF0151E7E9318>I<FF0FC0FF3FE0FF7FF007F0F007E06007C00007
+8000078000070000070000070000070000070000070000070000070000070000FFFC00FF
+FE00FFFC0014147E9318>I<07F7003FFF007FFF00780F00E00700E00700E007007C0000
+7FE0001FFC0003FE00001F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F000
+11147D9318>I<0180000380000380000380000380007FFFC0FFFFC0FFFFC00380000380
+000380000380000380000380000380000380000380000380400380E00380E00380E001C1
+C001FFC000FF80003E0013197F9818>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E
+00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03
+FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8FF01C01C00E03800E03800E0380070700
+070700070700078F00038E00038E00038E0001DC0001DC0001DC0000F80000F800007000
+15147F9318>I<FF07F8FF8FF8FF07F83800E03800E03800E03800E01C01C01C71C01CF9
+C01CF9C01CD9C01DDDC00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318
+>I<7F8FF07F9FF07F8FF00F0700078E00039E0001DC0001F80000F80000700000F00000
+F80001DC00039E00038E000707000E07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0
+FF8FF87F8FF00E01C00E03800E0380070380070700070700038700038700038E0001CE00
+01CE0001CC0000CC0000DC0000780000780000780000700000700000700000F00000E000
+79E0007BC0007F80003F00001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003
+C0700780000F00001E00003C0000F80001F00003C0000780000F00701E00703C00707800
+70FFFFF0FFFFF0FFFFF014147F9318>I<0007E0001FE0007FE000780000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00001E0007FC000FF8000FF
+80007FC00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E000007800007FE0001FE00007E013247E9F18>I<60F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600424769F18>I<7C0000FF00
+00FFC00003C00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
+0000E00000F000007FC0003FE0003FE0007FC000F00000E00000E00000E00000E00000E0
+0000E00000E00000E00000E00000E00000E00003C000FFC000FF00007C000013247E9F18
+>I<060C1F1E3FBEFBF8F1F060C00F067C9B18>I E /Fm 74 123
+df<001F83E000F06E3001C078780380F8780300F0300700700007007000070070000700
+7000070070000700700007007000FFFFFF80070070000700700007007000070070000700
+700007007000070070000700700007007000070070000700700007007000070070000700
+7000070070000700700007007000070070003FE3FF001D20809F1B>11
+D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700
+00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
+E00700E00700E00700E00700E00700E00700E00700E03FC3FC1620809F19>I<003FE000
+E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007
+00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007
+00E00700E00700E00700E00700E00700E03FE7FC1620809F19>I<001F81F80000F04F04
+0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000
+070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007
+007007000700700700070070070007007007000700700700070070070007007007000700
+700700070070070007007007000700700700070070070007007007000700700700070070
+07003FE3FE3FE02320809F26>I<7038F87CFC7EFC7E743A040204020402080408041008
+1008201040200F0E7F9F17>34 D<70F8FCFC74040404080810102040060E7C9F0D>39
+D<0040008001000300060004000C001800180038003000300070006000600060006000E0
+00E000E000E000E000E000E000E000E000E000E000E00060006000600060007000300030
+003800180018000C000400060003000100008000400A2E7BA112>I<8000400020003000
+180008000C00060006000700030003000380018001800180018001C001C001C001C001C0
+01C001C001C001C001C001C001C001800180018001800380030003000700060006000C00
+0800180030002000400080000A2E7EA112>I<70F0F8F878080808101010202040050E7C
+840D>44 D<FFF0FFF00C02808A0F>I<70F8F8F87005057C840D>I<03F0000E1C001C0E00
+180600380700700380700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0
+F003C0F003C0F003C0F003C0F003C0F003C0F003C0700380700380700380780780380700
+1806001C0E000E1C0003F000121F7E9D17>48 D<008003800F80F3800380038003800380
+038003800380038003800380038003800380038003800380038003800380038003800380
+0380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E00200700400780800780F007C0
+F803C0F803C0F803C02007C00007C0000780000780000F00000E00001C00003800007000
+00600000C0000180000300000600400C00401800401000803FFF807FFF80FFFF80121E7E
+9D17>I<03F0000C1C00100E00200F00780F80780780780780380F80000F80000F00000F
+00001E00001C0000700007F000003C00000E00000F000007800007800007C02007C0F807
+C0F807C0F807C0F00780400780400F00200E00183C0007F000121F7E9D17>I<00060000
+0600000E00000E00001E00002E00002E00004E00008E00008E00010E00020E00020E0004
+0E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E0000
+0E00000E00000E00000E0000FFE0141E7F9D17>I<1803001FFE001FFC001FF8001FE000
+10000010000010000010000010000010000011F000161C00180E00100700100780000380
+0003800003C00003C00003C07003C0F003C0F003C0E00380400380400700200600100C00
+08380007E000121F7E9D17>I<007C000182000701000E03800C07801807803803003800
+00780000700000700000F1F000F21C00F40600F80700F80380F80380F003C0F003C0F003
+C0F003C0F003C07003C07003C07003803803803807001807000C0E00061C0001F000121F
+7E9D17>I<4000007FFFE07FFFC07FFFC040008080010080010080020000040000040000
+080000100000100000200000200000600000600000E00000C00001C00001C00001C00001
+C00003C00003C00003C00003C00003C00003C00003C000018000131F7E9D17>I<03F000
+0C0C001006003003002001806001806001806001807001807803003E03003F06001FC800
+0FF00003F80007FC000C7E00103F00300F806007806001C0C001C0C000C0C000C0C000C0
+C000806001802001001002000C0C0003F000121F7E9D17>I<03F0000E18001C0C003806
+00380700700700700380F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007
+C03807C0180BC00E13C003E3C0000380000380000380000700300700780600780E00700C
+002018001070000FC000121F7E9D17>I<70F8F8F8700000000000000000000070F8F8F8
+7005147C930D>I<70F8F8F8700000000000000000000070F0F8F8780808081010102020
+40051D7C930D>I<000100000003800000038000000380000007C0000007C0000007C000
+0009E0000009E0000009E0000010F0000010F0000010F000002078000020780000207800
+00403C0000403C0000C03E0000801E0000801E0001FFFF0001000F0001000F0002000780
+0200078002000780040003C0040003C00C0003C01E0003E0FF801FFE1F207F9F22>65
+D<FFFFE0000F0078000F001E000F001E000F000F000F000F800F000F800F000F800F000F
+800F000F800F000F000F001F000F001E000F007C000FFFF0000F007C000F001F000F000F
+800F0007C00F0003C00F0003E00F0003E00F0003E00F0003E00F0003E00F0003C00F0007
+C00F0007800F000F000F003E00FFFFF0001B1F7E9E20>I<000FE01000381C3000E00270
+03C00170078000F00F0000701E0000701E0000303C0000303C0000107C00001078000010
+F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000
+780000007C0000103C0000103C0000101E0000201E0000200F0000200780004003C00080
+00E0030000380C00000FF0001C217E9F21>I<FFFFF80007801E0007800780078003C007
+8001E0078000F00780007007800078078000780780003C0780003C0780003C0780003E07
+80003E0780003E0780003E0780003E0780003E0780003E0780003E0780003C0780003C07
+80007C0780007807800078078000F0078001E0078003C00780078007801E00FFFFF8001F
+1F7F9E23>I<FFFFFF800F000F800F0003800F0001800F0000800F0000C00F0000400F00
+00400F0000400F0040400F0040000F0040000F00C0000F01C0000FFFC0000F01C0000F00
+C0000F0040000F0040000F0040000F0000200F0000200F0000200F0000400F0000400F00
+00400F0000C00F0001C00F0003800F000F80FFFFFF801B1F7E9E1F>I<FFFFFF80078007
+80078001800780018007800080078000C007800040078000400780004007800040078020
+000780200007802000078060000780E00007FFE0000780E0000780600007802000078020
+000780200007800000078000000780000007800000078000000780000007800000078000
+0007C00000FFFE00001A1F7F9E1E>I<000FE01000381C3000E0027003C00170078000F0
+0F0000701E0000701E0000303C0000303C0000107C00001078000010F8000000F8000000
+F8000000F8000000F8000000F8000000F8000000F8003FFEF80001F0780000F07C0000F0
+3C0000F03C0000F01E0000F01E0000F00F0000F0078000F003C0017000E0023000380C10
+000FF0001F217E9F24>I<FFF07FF80F0007800F0007800F0007800F0007800F0007800F
+0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800FFFFF800F
+0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F
+0007800F0007800F0007800F0007800F0007800F000780FFF07FF81D1F7E9E22>I<FFF0
+0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
+0F000F000F000F000F000F000F000F000F000F000F00FFF00C1F7E9E10>I<FFF8000F80
+000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
+000F00000F00000F00000F00000F00000F00000F00020F00020F00020F00020F00060F00
+040F00040F000C0F001C0F007CFFFFFC171F7E9E1C>76 D<FF800007FE07800007C00780
+0007C005C0000BC005C0000BC004E00013C004E00013C004E00013C004700023C0047000
+23C004380043C004380043C004380043C0041C0083C0041C0083C0040E0103C0040E0103
+C0040E0103C004070203C004070203C004070203C004038403C004038403C00401C803C0
+0401C803C00401C803C00400F003C00400F003C004006003C01F006003C0FFE0607FFE27
+1F7F9E2A>I<FF000FF80F8003E00F8000800BC0008009E0008009E0008008F000800878
+008008780080083C0080081E0080081E0080080F008008078080080780800803C0800801
+E0800801E0800800F080080078800800788008003C8008001E8008001E8008000F800800
+07800800078008000380080001803E000180FF8000801D1F7E9E22>I<001FE000007038
+0001C00E0003800700070003800F0003C01E0001E03C0000F03C0000F07C0000F87C0000
+F878000078F800007CF800007CF800007CF800007CF800007CF800007CF800007CF80000
+7CF800007C780000787C0000F87C0000F83C0000F03E0001F01E0001E00F0003C0070003
+800380070001E01E0000703800001FE0001E217E9F23>I<FFFFE0000F007C000F001E00
+0F000F000F0007800F0007800F0007C00F0007C00F0007C00F0007C00F0007800F000780
+0F000F000F001E000F007C000FFFE0000F0000000F0000000F0000000F0000000F000000
+0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
+FFF000001A1F7E9E1F>I<001FE0000070380001C00E0003800700070003800F0003C01E
+0001E03E0001F03C0000F07C0000F87C0000F878000078F800007CF800007CF800007CF8
+00007CF800007CF800007CF800007CF800007CF800007C780000787C0000F87C0000F83C
+0000F03E0781F01E0841E00F1023C0071023800390170001D01E0000783804001FF80400
+001C0400000C0C00000E1C00000FF800000FF8000007F8000007F0000001E01E297E9F23
+>I<FFFF80000F00F0000F003C000F001E000F000F000F000F000F000F800F000F800F00
+0F800F000F800F000F000F000F000F001E000F003C000F00F0000FFF80000F01C0000F00
+70000F0070000F0038000F003C000F003C000F003C000F003E000F003E000F003E000F00
+3E040F003F040F001F040F000F08FFF00788000001F01E207E9E21>I<03F0400C0CC018
+03C03001C06000C06000C0E000C0E00040E00040E00040F00000F800007C00007F80003F
+F8001FFF0007FF8000FFC0001FE00003E00001E00000F000007080007080007080007080
+0070C00060C000E0E000C0F80180C6030081FC0014217E9F19>I<7FFFFFE0780F01E060
+0F0060400F0020400F0020C00F0030800F0010800F0010800F0010800F0010000F000000
+0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
+0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
+1F800003FFFC001C1F7E9E21>I<FFF00FF80F0003E00F0000800F0000800F0000800F00
+00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00
+00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00
+00800700010007800100038001000380020001C0040000E0080000383000000FC0001D20
+7E9E22>I<FFF003FE1F8000F80F0000600F00002007800040078000400780004003C000
+8003C0008003E0018001E0010001E0010000F0020000F0020000F8020000780400007804
+00003C0800003C0800003C0800001E1000001E1000001F1000000F2000000F20000007C0
+000007C0000007C000000380000003800000038000000100001F207F9E22>I<FFF07FF8
+1FF01F000FC007C00F00078001800F00078001000F0007C001000F8007C00300078007C0
+0200078009E0020007C009E0020003C009E0040003C019F0040003C010F0040001E010F0
+080001E010F0080001E02078080000F02078100000F02078100000F0403C10000078403C
+20000078403C20000078801E2000007C801E6000003C801E4000003D000F4000003F000F
+4000001F000F8000001F000F8000001E00078000000E00070000000E00070000000C0003
+00000004000200002C207F9E2F>I<FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFF082D7CA10D>91
+D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E7A9F17>I<
+FFFF03030303030303030303030303030303030303030303030303030303030303030303
+03030303030303FFFF082D80A10D>I<081020204040808080B8FCFC7C38060E7D9F0D>
+96 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00
+380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>I<1C00
+00FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C
+001D87001E01801E00C01C00E01C00701C00701C00781C00781C00781C00781C00781C00
+781C00701C00F01C00E01E00C01A0180198700107C0015207E9F19>I<01FC000706001C
+0F00380F00380600780000700000F00000F00000F00000F00000F00000F0000070000078
+00003800803800801C010007060001F80011147F9314>I<0001C0000FC00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001C001F1C0070DC00C03C01801C0
+3801C07801C07001C0F001C0F001C0F001C0F001C0F001C0F001C07001C07001C03801C0
+1803C00C03C0070DC001F1F815207F9F19>I<03F0000E1C001C0E003807003807007007
+00700380F00380F00380FFFF80F00000F00000F000007000007000003800803800801C01
+0007060001F80011147F9314>I<007C01C6030F070F0E060E000E000E000E000E000E00
+0E00FFF00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
+0E000E007FE01020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F00780F
+00780F00780F00380E001C1C001E380033E0002000002000003000003000003FFE001FFF
+801FFFC03001E0600070C00030C00030C00030C000306000603000C01C038003FC00141F
+7F9417>I<1C0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C
+00001C00001C7C001C86001D03001E03801E03801C03801C03801C03801C03801C03801C
+03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014207E9F19>I<
+38007C007C007C0038000000000000000000000000001C00FC001C001C001C001C001C00
+1C001C001C001C001C001C001C001C001C001C001C001C00FF80091F7F9E0C>I<00E001
+F001F001F000E0000000000000000000000000007007F000F00070007000700070007000
+700070007000700070007000700070007000700070007000700070007000706070F060F0
+C061803F000C28829E0E>I<1C0000FC00001C00001C00001C00001C00001C00001C0000
+1C00001C00001C00001C00001C1FE01C07801C06001C04001C08001C10001C20001C6000
+1CE0001DF0001E70001C38001C3C001C1C001C0E001C0F001C07001C07801C07C0FF9FF0
+14207E9F18>I<1C00FC001C001C001C001C001C001C001C001C001C001C001C001C001C
+001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF8009
+207F9F0C>I<1C3E03E000FCC30C30001D039038001E01E01C001E01E01C001C01C01C00
+1C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C
+01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF802114
+7E9326>I<1C7C00FC86001D03001E03801E03801C03801C03801C03801C03801C03801C
+03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014147E9319>I<
+01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0
+F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>I<1C7C00FD87
+001E01801E01C01C00E01C00F01C00701C00781C00781C00781C00781C00781C00781C00
+701C00F01C00E01E01C01E03801D87001C7C001C00001C00001C00001C00001C00001C00
+001C00001C0000FF8000151D7E9319>I<01F040070CC00E02C01C03C03801C07801C070
+01C0F001C0F001C0F001C0F001C0F001C0F001C07001C07801C03801C01C03C00C05C007
+09C001F1C00001C00001C00001C00001C00001C00001C00001C00001C0000FF8151D7F93
+18>I<1CF0FD181E3C1E3C1E181C001C001C001C001C001C001C001C001C001C001C001C
+001C001C00FFC00E147E9312>I<0FC830386018C008C008C008E0007C003FE01FF007F8
+003C800E8006C006C006C004E00CD81887E00F147F9312>I<020002000200060006000E
+000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E040E040E
+040E040708030801F00E1C7F9B12>I<1C0380FC1F801C03801C03801C03801C03801C03
+801C03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C0780061B
+8003E3F014147E9319>I<FF83F83E00E01C00C00E00800E00800E008007010007010007
+830003820003820001C40001C40001E40000E80000E80000700000700000700000200015
+147F9318>I<FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0400704
+C0800704E0800704E08003886100038871000388710001D0320001D03A0001D03E0000E0
+1C0000E01C0000601800004008001E147F9321>I<FF87F81E03C00E01800E0300070200
+03840001C80001D80000F00000700000780000F800009C00010E00020E00060700040380
+0C03C03C03E0FE07FC16147F9318>I<FF83F83E00E01C00C00E00800E00800E00800701
+0007010007830003820003820001C40001C40001E40000E80000E8000070000070000070
+00002000002000004000004000004000F08000F08000F100006200003C0000151D7F9318
+>I<7FFF700E600E401C40384078407000E001E001C00380078007010E011E011C033802
+7006700EFFFE10147F9314>I E /Fn 13 122 df<0000001FFC0000C000000003FFFFC0
+01C00000001FFFFFF003C00000007FFFFFFC07C0000001FFFC00FE0FC0000007FFC0001F
+9FC000000FFE000007FFC000003FF8000003FFC000007FF0000000FFC00000FFE0000000
+7FC00001FFC00000007FC00001FF800000003FC00003FF000000001FC00007FE00000000
+1FC0000FFE000000000FC0000FFC000000000FC0001FFC0000000007C0001FFC00000000
+07C0003FF80000000007C0003FF80000000003C0003FF80000000003C0007FF800000000
+03C0007FF80000000003C0007FF0000000000000007FF000000000000000FFF000000000
+000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000
+000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000
+000000FFF000000000000000FFF000001FFFFFFF807FF000001FFFFFFF807FF000001FFF
+FFFF807FF800001FFFFFFF807FF800000001FFC0003FF800000001FFC0003FF800000001
+FFC0003FF800000001FFC0001FFC00000001FFC0001FFC00000001FFC0000FFE00000001
+FFC0000FFE00000001FFC00007FF00000001FFC00003FF00000001FFC00001FF80000001
+FFC00001FFC0000001FFC00000FFE0000001FFC000007FF0000003FFC000003FFC000003
+FFC000000FFF000007FFC0000007FFC0001FBFC0000001FFFC00FF1FC00000007FFFFFFE
+0FC00000001FFFFFF803C000000003FFFFE000C0000000001FFE00000000413D7BBB4C>
+71 D<FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FF
+FFFFE0007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FFFFFFFFFFFC000007FFFFFFFFF
+FFC000007FFFFFFFFFFFC000007FFFFFFFFFFFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001
+FFC000007FF0000001FFC000007FF0000001FFC000007FF0000001FFC000FFFFFFF803FF
+FFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0FFFFFFF803FFFFFFE0433B7CBA4C>
+I<FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000007FF000000000
+007FF000000000007FF000000000007FF000000000007FF000000000007FF00000000000
+7FF000000000007FF000000000007FF000000000007FF000000000007FF000000000007F
+F000000000007FF000000000007FF000000000007FF000000000007FF000000000007FF0
+00000000007FF000000000007FF000000000007FF000000000007FF000000000007FF000
+000000007FF000000000007FF000000000007FF000000000007FF000000000007FF00000
+0000007FF000000000007FF000000000007FF000000000007FF000000000007FF0000003
+C0007FF0000003C0007FF0000003C0007FF0000003C0007FF0000003C0007FF0000007C0
+007FF000000780007FF000000780007FF000000780007FF000000F80007FF000000F8000
+7FF000000F80007FF000001F80007FF000001F80007FF000003F80007FF000007F80007F
+F00000FF80007FF00001FF80007FF00007FF00007FF0003FFF00FFFFFFFFFFFF00FFFFFF
+FFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFF00323B7DBA3A>76 D<FFFFF0000007FFFFE0FF
+FFF8000007FFFFE0FFFFFC000007FFFFE0FFFFFE000007FFFFE0007FFE00000007E00000
+7FFF00000003C000007FFF80000003C000007BFFC0000003C000007BFFE0000003C00000
+79FFE0000003C0000078FFF0000003C00000787FF8000003C00000783FFC000003C00000
+783FFE000003C00000781FFE000003C00000780FFF000003C000007807FF800003C00000
+7803FFC00003C000007803FFE00003C000007801FFE00003C000007800FFF00003C00000
+78007FF80003C0000078003FFC0003C0000078003FFE0003C0000078001FFF0003C00000
+78000FFF0003C00000780007FF8003C00000780003FFC003C00000780003FFE003C00000
+780001FFF003C00000780000FFF003C000007800007FF803C000007800003FFC03C00000
+7800003FFE03C000007800001FFF03C000007800000FFF03C0000078000007FF83C00000
+78000003FFC3C0000078000003FFE3C0000078000001FFF3C0000078000000FFF3C00000
+780000007FFBC00000780000003FFFC00000780000003FFFC00000780000001FFFC00000
+780000000FFFC000007800000007FFC000007800000003FFC000007800000003FFC00000
+7800000001FFC000007800000000FFC0000078000000007FC0000078000000003FC00000
+78000000003FC00000FC000000001FC000FFFFFC0000000FC000FFFFFC00000007C000FF
+FFFC00000003C000FFFFFC00000003C000433B7CBA4C>78 D<FFFFFFF80007FFFFE0FFFF
+FFF80007FFFFE0FFFFFFF80007FFFFE0FFFFFFF80007FFFFE0007FF000000007E000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000007FF000000003C000007F
+F000000003C000007FF000000003C000007FF000000003C000003FF0000000078000003F
+F0000000078000003FF8000000078000001FF80000000F0000001FF80000000F0000000F
+FC0000001E00000007FC0000003E00000007FE0000007C00000003FF000000F800000001
+FF800001F8000000007FE0000FE0000000003FFC007FC0000000000FFFFFFF8000000000
+03FFFFFE0000000000007FFFF000000000000007FF80000000433C7DBA4A>85
+D<003FFE00000001FFFFE0000007FFFFF800000FE007FC00000FF001FE00001FF800FF00
+001FF8007F80001FF8007FC0001FF8003FC0000FF0003FE00007E0003FE00003C0003FE0
+000000003FE0000000003FE0000000003FE0000000003FE0000000FFFFE000001FFFFFE0
+00007FF83FE00003FF803FE00007FC003FE0000FF0003FE0001FE0003FE0003FE0003FE0
+007FC0003FE0007FC0003FE000FF80003FE000FF80003FE000FF80003FE000FF80003FE0
+00FF80007FE0007FC0007FE0007FC000DFE0003FE0039FF0001FF80F0FFFE007FFFE0FFF
+E001FFFC07FFE0003FE000FFE02B267DA52F>97 D<00FE00000000FFFE00000000FFFE00
+000000FFFE00000000FFFE0000000007FE0000000003FE0000000003FE0000000003FE00
+00000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE00
+00000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE00
+00000003FE0000000003FE01FF000003FE1FFFF00003FE7FFFFC0003FEFC03FE0003FFF0
+00FF0003FFC0003F8003FF00001FC003FE00001FE003FE00000FF003FE00000FF803FE00
+000FF803FE000007FC03FE000007FC03FE000007FC03FE000007FE03FE000007FE03FE00
+0007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE00
+0007FE03FE000007FC03FE000007FC03FE000007FC03FE00000FFC03FE00000FF803FE00
+000FF003FE00001FF003FF00001FE003FF80003FC003FFC0007F8003F9E000FF0003F0FC
+07FE0003F07FFFF80003E01FFFE00003C003FE00002F3C7DBB36>I<01E00007F8000FFC
+000FFC001FFE001FFE001FFE001FFE000FFC000FFC0007F80001E0000000000000000000
+0000000000000000000000000000000000000000000000000000FE007FFE007FFE007FFE
+007FFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE00FFFFF0FFFFF0FFFFF0FFFFF0143D7DBC1A
+>105 D<0001FFC00000000FFFF80000007FFFFF000000FF80FF800003FE003FE00007F8
+000FF0000FF00007F8000FF00007F8001FE00003FC003FE00003FE003FE00003FE007FC0
+0001FF007FC00001FF007FC00001FF007FC00001FF00FFC00001FF80FFC00001FF80FFC0
+0001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC0
+0001FF807FC00001FF007FC00001FF007FC00001FF003FE00003FE003FE00003FE001FE0
+0003FC001FF00007FC000FF00007F80007F8000FF00003FE003FE00000FF80FF8000007F
+FFFF0000000FFFF800000001FFC0000029267DA530>111 D<01FC03F000FFFC0FFC00FF
+FC1FFF00FFFC3C3F80FFFC707F8007FCE0FFC003FCC0FFC003FD80FFC003FD80FFC003FF
+807F8003FF003F0003FF001E0003FF00000003FE00000003FE00000003FE00000003FE00
+000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000
+0003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000
+03FE00000003FE00000003FE000000FFFFFC0000FFFFFC0000FFFFFC0000FFFFFC000022
+267DA528>114 D<003FF03803FFFE7807FFFFF81FC00FF83F0003F83E0000F87C0000F8
+7C000078FC000078FC000078FE000078FF000000FFC00000FFFC00007FFFF0003FFFFE00
+3FFFFF801FFFFFC00FFFFFE003FFFFF000FFFFF8001FFFFC00007FFC000007FE700001FE
+F00000FEF000007EF800007EF800007EFC00007EFC00007CFE0000FCFF0000F8FF8001F0
+FFF00FE0F9FFFFC0F07FFF00C01FF8001F267DA526>I<000F0000000F0000000F000000
+0F0000000F0000001F0000001F0000001F0000001F0000003F0000003F0000007F000000
+7F000000FF000001FF000003FF000007FF00001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001
+FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001
+FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001
+FF000001FF003C01FF003C01FF003C01FF003C01FF003C01FF003C01FF003C01FF003C00
+FF007800FF8078007F80F0003FC1E0001FFFC0000FFF800001FE001E377EB626>I<FFFF
+F000FFFCFFFFF000FFFCFFFFF000FFFCFFFFF000FFFC03FE00001F8003FF00001F0001FF
+00001E0001FF80001E0000FF80003C0000FF80003C0000FFC0007C00007FC0007800007F
+E000F800003FE000F000003FF001F000001FF001E000001FF803E000000FF803C000000F
+F803C000000FFC07C0000007FC0780000007FE0F80000003FE0F00000003FF1F00000001
+FF1E00000001FFBE00000000FFBC00000000FFFC000000007FF8000000007FF800000000
+7FF8000000003FF0000000003FF0000000001FE0000000001FE0000000000FC000000000
+0FC0000000000780000000000780000000000F80000000000F00000000001F0000000000
+1E00000008003E0000007F003C0000007F007C000000FF8078000000FF80F8000000FF81
+F0000000FF83E00000007F07C00000007C1F800000003FFF000000001FFC0000000007F0
+000000002E377EA533>121 D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
TeXDict begin
+%%PaperSize: A4
-1 0 bop 0 693 a Fp(GNU)33 b(History)f(Library)p 0 743
-1950 17 v 1035 791 a Fo(Edition)16 b(2.1,)e(for)h Fn(History)f(Library)
-g Fo(V)l(ersion)i(2.1.)1718 845 y(Marc)o(h)e(1996)0 2467
-y Fm(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)0 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 0 2570
-1950 9 v eop
-2 1 bop 0 320 a Fo(This)16 b(do)q(cumen)o(t)g(describ)q(es)h(the)f(GNU)
-f(History)g(library)l(,)h(a)g(programming)e(to)q(ol)i(that)f(pro)o
-(vides)h(a)f(consisten)o(t)0 382 y(user)g(in)o(terface)h(for)e
-(recalling)j(lines)g(of)e(previously)h(t)o(yp)q(ed)g(input.)0
-519 y(Published)h(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)0 582 y(675)g(Massac)o(h)o(usetts)g(Av)o(en)o(ue,)0
-644 y(Cam)o(bridge,)h(MA)g(02139)f(USA)0 781 y(P)o(ermission)f(is)g
-(gran)o(ted)f(to)f(mak)o(e)h(and)h(distribute)h(v)o(erbatim)e(copies)h
-(of)f(this)h(man)o(ual)g(pro)o(vided)g(the)f(cop)o(yrigh)o(t)0
-843 y(notice)k(and)f(this)h(p)q(ermission)h(notice)e(are)g(preserv)o
-(ed)h(on)f(all)h(copies.)0 980 y(P)o(ermission)f(is)f(gran)o(ted)f(to)h
-(cop)o(y)g(and)g(distribute)h(mo)q(di\014ed)h(v)o(ersions)e(of)f(this)i
-(man)o(ual)f(under)h(the)f(conditions)0 1043 y(for)e(v)o(erbatim)g(cop)
-o(ying,)h(pro)o(vided)h(that)d(the)i(en)o(tire)g(resulting)h(deriv)o
-(ed)f(w)o(ork)f(is)h(distributed)h(under)f(the)g(terms)0
-1105 y(of)i(a)g(p)q(ermission)h(notice)g(iden)o(tical)h(to)e(this)g
-(one.)0 1242 y(P)o(ermission)20 b(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)f(in)o(to)h
-(another)f(language,)0 1304 y(under)c(the)f(ab)q(o)o(v)o(e)g
-(conditions)h(for)e(mo)q(di\014ed)j(v)o(ersions,)e(except)g(that)g
-(this)g(p)q(ermission)i(notice)e(ma)o(y)g(b)q(e)h(stated)0
-1366 y(in)h(a)f(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l
-(oundation.)0 2661 y(Cop)o(yrigh)o(t)226 2660 y(c)214
-2661 y Fl(\015)g Fo(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-1 2 bop 0 -58 a Fo(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1157 b(1)0 183 y Fk(1)41 b(Using)14 b(History)h(In)n(teractiv)n
-(ely)62 380 y Fo(This)i(c)o(hapter)e(describ)q(es)j(ho)o(w)d(to)h(use)g
-(the)g(GNU)g(History)f(Library)i(in)o(teractiv)o(ely)l(,)g(from)e(a)g
-(user's)h(stand-)0 442 y(p)q(oin)o(t.)23 b(It)16 b(should)h(b)q(e)f
-(considered)i(a)d(user's)h(guide.)23 b(F)l(or)15 b(information)h(on)g
-(using)h(the)f(GNU)g(History)f(Library)0 505 y(in)h(y)o(our)f(o)o(wn)f
-(programs,)g(see)i(Chapter)e(2)h([Programming)f(with)i(GNU)f(History],)
-f(page)h(5.)0 747 y Fm(1.1)33 b(In)n(teractiv)n(e)16
-b(History)g(Expansion)62 886 y Fo(The)e(History)f(library)h(pro)o
-(vides)g(a)f(history)g(expansion)h(feature)f(that)g(is)g(similar)i(to)d
-(the)i(history)f(expansion)0 948 y(pro)o(vided)j(b)o(y)f
-Fn(csh)p Fo(.)20 b(This)15 b(section)h(describ)q(es)h(the)e(syn)o(tax)g
-(used)g(to)g(manipulate)h(the)g(history)f(information.)62
-1087 y(History)h(expansions)g(in)o(tro)q(duce)g(w)o(ords)f(from)g(the)h
-(history)f(list)i(in)o(to)e(the)h(input)g(stream,)f(making)g(it)h(easy)
-0 1150 y(to)g(rep)q(eat)g(commands,)h(insert)g(the)f(argumen)o(ts)g(to)
-g(a)g(previous)h(command)f(in)o(to)h(the)f(curren)o(t)h(input)g(line,)h
-(or)0 1212 y(\014x)d(errors)g(in)h(previous)g(commands)f(quic)o(kly)l
-(.)62 1351 y(History)c(expansion)i(tak)o(es)d(place)i(in)h(t)o(w)o(o)d
-(parts.)18 b(The)11 b(\014rst)g(is)h(to)f(determine)h(whic)o(h)g(line)h
-(from)e(the)g(previous)0 1413 y(history)h(should)h(b)q(e)f(used)h
-(during)f(substitution.)20 b(The)12 b(second)g(is)h(to)e(select)h(p)q
-(ortions)g(of)g(that)f(line)i(for)f(inclusion)0 1475
-y(in)o(to)f(the)h(curren)o(t)f(one.)18 b(The)12 b(line)h(selected)f
-(from)f(the)g(previous)h(history)g(is)f(called)i(the)e
-Fj(ev)o(en)o(t)p Fo(,)h(and)f(the)h(p)q(ortions)0 1538
-y(of)h(that)f(line)j(that)e(are)f(acted)i(up)q(on)g(are)e(called)j
-Fj(w)o(ords)p Fo(.)k(V)l(arious)13 b Fj(mo)q(di\014ers)j
-Fo(are)d(a)o(v)m(ailable)i(to)d(manipulate)j(the)0 1600
-y(selected)i(w)o(ords.)23 b(The)16 b(line)i(is)f(brok)o(en)f(in)o(to)g
-(w)o(ords)f(in)i(the)g(same)f(fashion)g(that)g(Bash)g(do)q(es,)g(so)g
-(that)g(sev)o(eral)0 1662 y(English)g(\(or)e(Unix\))h(w)o(ords)e
-(surrounded)j(b)o(y)e(quotes)h(are)f(considered)i(as)e(one)h(w)o(ord.)k
-(History)14 b(expansions)h(are)0 1725 y(in)o(tro)q(duced)h(b)o(y)g(the)
-f(app)q(earance)h(of)e(the)i(history)f(expansion)h(c)o(haracter,)e
-(whic)o(h)i(is)g(`)p Fn(!)p Fo(')e(b)o(y)h(default.)0
-1950 y Fi(1.1.1)30 b(Ev)n(en)n(t)16 b(Designators)62
-2089 y Fo(An)g(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.)0
-2243 y Fn(!)216 b Fo(Start)14 b(a)g(history)h(substitution,)g(except)h
-(when)f(follo)o(w)o(ed)g(b)o(y)g(a)f(space,)h(tab,)f(the)h(end)g(of)g
-(the)g(line,)240 2305 y Fn(=)g Fo(or)g Fn(\()p Fo(.)0
-2396 y Fn(!)p Fj(n)191 b Fo(Refer)16 b(to)e(command)h(line)i
-Fj(n)p Fo(.)0 2488 y Fn(!-)p Fj(n)167 b Fo(Refer)16 b(to)e(the)i
-(command)f Fj(n)g Fo(lines)i(bac)o(k.)0 2579 y Fn(!!)192
-b Fo(Refer)16 b(to)e(the)i(previous)f(command.)20 b(This)c(is)g(a)f
-(synon)o(ym)g(for)f(`)p Fn(!-1)p Fo('.)0 2670 y Fn(!)p
-Fj(string)102 b Fo(Refer)16 b(to)e(the)i(most)e(recen)o(t)h(command)g
-(starting)g(with)g Fj(string)p Fo(.)p eop
-2 3 bop 0 -58 a Fo(2)1497 b(GNU)15 b(History)g(Library)0
-183 y Fn(!?)p Fj(string)t Fn([?])240 246 y Fo(Refer)h(to)f(the)g(most)g
-(recen)o(t)g(command)g(con)o(taining)h Fj(string)p Fo(.)21
-b(The)15 b(trailing)i(`)p Fn(?)p Fo(')d(ma)o(y)h(b)q(e)h(omitted)240
-308 y(if)g(the)f Fj(string)k Fo(is)d(follo)o(w)o(ed)f(immediately)i(b)o
-(y)e(a)g(newline.)0 395 y Fn(^)p Fj(string1)t Fn(^)p
-Fj(string2)t Fn(^)240 457 y Fo(Quic)o(k)i(Substitution.)22
-b(Rep)q(eat)16 b(the)g(last)f(command,)h(replacing)h
-Fj(string1)h Fo(with)e Fj(string2)p Fo(.)21 b(Equiv-)240
-520 y(alen)o(t)15 b(to)g Fn(!!:s/)p Fj(string1)t Fn(/)p
-Fj(string2)t Fn(/)p Fo(.)0 607 y Fn(!#)192 b Fo(The)15
-b(en)o(tire)h(command)f(line)i(t)o(yp)q(ed)f(so)e(far.)0
-816 y Fi(1.1.2)30 b(W)-5 b(ord)15 b(Designators)62 953
-y Fo(W)l(ord)k(designators)g(are)f(used)i(to)e(select)i(desired)g(w)o
-(ords)e(from)h(the)g(ev)o(en)o(t.)31 b(A)19 b(`)p Fn(:)p
-Fo(')f(separates)g(the)h(ev)o(en)o(t)0 1015 y(sp)q(eci\014cation)e
-(from)d(the)h(w)o(ord)f(designator.)20 b(It)15 b(can)g(b)q(e)g(omitted)
-g(if)g(the)g(w)o(ord)g(designator)f(b)q(egins)i(with)g(a)e(`)p
-Fn(^)p Fo(',)0 1077 y(`)p Fn($)p Fo(',)i(`)p Fn(*)p Fo(',)g(`)p
-Fn(-)p Fo(',)g(or)g(`)p Fn(\045)p Fo('.)24 b(W)l(ords)17
-b(are)f(n)o(um)o(b)q(ered)i(from)e(the)h(b)q(eginning)i(of)d(the)h
-(line,)i(with)e(the)g(\014rst)g(w)o(ord)f(b)q(eing)0
-1139 y(denoted)g(b)o(y)f(0)g(\(zero\).)k(W)l(ords)c(are)g(inserted)h
-(in)o(to)f(the)g(curren)o(t)g(line)i(separated)e(b)o(y)g(single)i
-(spaces.)0 1289 y Fn(0)e(\(zero\))57 b Fo(The)15 b Fn(0)p
-Fo(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.)0 1376 y Fj(n)215 b Fo(The)15
-b Fj(n)p Fo(th)h(w)o(ord.)0 1464 y Fn(^)216 b Fo(The)15
-b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o(ord)g(1.)0
-1551 y Fn($)216 b Fo(The)15 b(last)h(argumen)o(t.)0 1639
-y Fn(\045)216 b Fo(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g(most)g
-(recen)o(t)g(`)p Fn(?)p Fj(string)t Fn(?)p Fo(')f(searc)o(h.)0
-1726 y Fj(x)p Fn(-)p Fj(y)168 b Fo(A)15 b(range)g(of)g(w)o(ords;)f(`)p
-Fn(-)p Fj(y)t Fo(')g(abbreviates)i(`)p Fn(0-)p Fj(y)t
-Fo('.)0 1813 y Fn(*)216 b Fo(All)16 b(of)f(the)g(w)o(ords,)f(except)h
-(the)g Fn(0)p Fo(th.)k(This)d(is)f(a)g(synon)o(ym)g(for)f(`)p
-Fn(1-$)p Fo('.)k(It)d(is)h(not)e(an)h(error)f(to)h(use)240
-1876 y(`)p Fn(*)p Fo(')f(if)i(there)f(is)h(just)f(one)g(w)o(ord)g(in)h
-(the)f(ev)o(en)o(t;)g(the)g(empt)o(y)g(string)g(is)h(returned)f(in)h
-(that)f(case.)0 1963 y Fj(x)s Fn(*)189 b Fo(Abbreviates)16
-b(`)p Fj(x)p Fn(-$)p Fo(')0 2050 y Fj(x)p Fn(-)192 b
-Fo(Abbreviates)16 b(`)p Fj(x)p Fn(-$)p Fo(')e(lik)o(e)i(`)p
-Fj(x)s Fn(*)p Fo(',)e(but)i(omits)f(the)g(last)g(w)o(ord.)62
-2200 y(If)i(a)g(w)o(ord)f(designator)g(is)i(supplied)h(without)d(an)h
-(ev)o(en)o(t)g(sp)q(eci\014cation,)h(the)f(previous)h(command)e(is)h
-(used)0 2262 y(as)e(the)g(ev)o(en)o(t.)0 2471 y Fi(1.1.3)30
-b(Mo)r(di\014ers)62 2608 y Fo(After)20 b(the)f(optional)i(w)o(ord)e
-(designator,)h(y)o(ou)f(can)h(add)g(a)g(sequence)h(of)e(one)h(or)f
-(more)g(of)g(the)h(follo)o(wing)0 2670 y(mo)q(di\014ers,)c(eac)o(h)f
-(preceded)i(b)o(y)e(a)g(`)p Fn(:)p Fo('.)p eop
-3 4 bop 0 -58 a Fo(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1157 b(3)0 183 y Fn(h)216 b Fo(Remo)o(v)o(e)15 b(a)g(trailing)h
-(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the)f(head.)0
-270 y Fn(t)216 b Fo(Remo)o(v)o(e)15 b(all)h(leading)h(pathname)e(comp)q
-(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)0 358 y Fn(r)216
-b Fo(Remo)o(v)o(e)15 b(a)g(trailing)h(su\016x)f(of)g(the)g(form)g(`)p
-Fn(.)p Fj(su\016x)s Fo(',)f(lea)o(ving)i(the)f(basename.)0
-445 y Fn(e)216 b Fo(Remo)o(v)o(e)15 b(all)h(but)g(the)f(trailing)h
-(su\016x.)0 532 y Fn(p)216 b Fo(Prin)o(t)15 b(the)g(new)h(command)f
-(but)g(do)g(not)g(execute)h(it.)0 619 y Fn(s/)p Fj(old)r
-Fn(/)p Fj(new)t Fn(/)240 681 y Fo(Substitute)k Fj(new)k
-Fo(for)19 b(the)g(\014rst)g(o)q(ccurrence)i(of)e Fj(old)j
-Fo(in)e(the)f(ev)o(en)o(t)h(line.)34 b(An)o(y)19 b(delimiter)j(ma)o(y)
-240 744 y(b)q(e)e(used)g(in)g(place)g(of)f(`)p Fn(/)p
-Fo('.)31 b(The)19 b(delimiter)i(ma)o(y)e(b)q(e)h(quoted)f(in)h
-Fj(old)h Fo(and)f Fj(new)j Fo(with)d(a)f(single)240 806
-y(bac)o(kslash.)28 b(If)18 b(`)p Fn(&)p Fo(')f(app)q(ears)h(in)h
-Fj(new)p Fo(,)f(it)h(is)f(replaced)h(b)o(y)f Fj(old)p
-Fo(.)28 b(A)18 b(single)h(bac)o(kslash)g(will)g(quote)240
-868 y(the)c(`)p Fn(&)p Fo('.)k(The)d(\014nal)g(delimiter)h(is)e
-(optional)h(if)g(it)f(is)h(the)f(last)g(c)o(haracter)g(on)g(the)g
-(input)i(line.)0 955 y Fn(&)216 b Fo(Rep)q(eat)16 b(the)f(previous)h
-(substitution.)0 1043 y Fn(g)216 b Fo(Cause)17 b(c)o(hanges)g(to)f(b)q
-(e)i(applied)g(o)o(v)o(er)e(the)h(en)o(tire)h(ev)o(en)o(t)e(line.)27
-b(Used)17 b(in)h(conjunction)g(with)f(`)p Fn(s)p Fo(',)240
-1105 y(as)e(in)h Fn(gs/)p Fj(old)r Fn(/)p Fj(new)t Fn(/)p
-Fo(,)f(or)f(with)i(`)p Fn(&)p Fo('.)p eop
-4 5 bop 0 -58 a Fo(4)1497 b(GNU)15 b(History)g(Library)p
+%%EndSetup
+%%Page: 1 1
+1 0 bop 75 693 a Fn(GNU)33 b(History)f(Library)p 75 743
+1800 17 v 960 791 a Fm(Edition)16 b(2.1,)e(for)h Fl(History)f(Library)g
+Fm(V)l(ersion)i(2.1.)1643 845 y(Marc)o(h)e(1996)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
+%%Page: 2 2
+2 1 bop 75 250 a Fm(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 305 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
+373 y(Published)i(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
+(oundation)75 427 y(675)g(Massac)o(h)o(usetts)g(Av)o(en)o(ue,)75
+482 y(Cam)o(bridge,)h(MA)g(02139)f(USA)75 549 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 604 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 671 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 726 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 781 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
+848 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 903 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 958 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(oundation.)75
+2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289 2661 y Fj(\015)g
+Fm(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l(oundation,)h(Inc.)p
eop
-5 6 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1039 b(5)0 183 y Fk(2)41 b(Programming)16 b(with)f(GNU)h
-(History)62 370 y Fo(This)e(c)o(hapter)f(describ)q(es)i(ho)o(w)d(to)h
-(in)o(terface)g(programs)f(that)h(y)o(ou)g(write)g(with)g(the)h(GNU)f
-(History)g(Library)l(.)0 432 y(It)j(should)g(b)q(e)g(considered)h(a)f
-(tec)o(hnical)h(guide.)22 b(F)l(or)15 b(information)h(on)f(the)h(in)o
-(teractiv)o(e)g(use)g(of)f(GNU)g(History)l(,)0 495 y(see)g(Chapter)g(1)
-g([Using)h(History)f(In)o(teractiv)o(ely],)g(page)g(1.)0
-719 y Fm(2.1)33 b(In)n(tro)r(duction)17 b(to)e(History)62
-856 y Fo(Man)o(y)j(programs)g(read)h(input)h(from)e(the)g(user)h(a)g
-(line)h(at)f(a)f(time.)31 b(The)19 b(GNU)g(History)f(library)i(is)f
-(able)0 918 y(to)e(k)o(eep)g(trac)o(k)f(of)h(those)g(lines,)i(asso)q
-(ciate)e(arbitrary)g(data)g(with)g(eac)o(h)g(line,)j(and)d(utilize)i
-(information)f(from)0 980 y(previous)e(lines)h(in)f(comp)q(osing)f(new)
-h(ones.)62 1117 y(The)i(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)i
-(on)d(a)0 1180 y(history)f(list,)g(asso)q(ciating)g(arbitrary)g(data)f
-(with)h(a)f(line,)j(remo)o(ving)d(lines)j(from)d(the)h(list,)g(searc)o
-(hing)g(through)0 1242 y(the)h(list)h(for)e(a)h(line)h(con)o(taining)g
-(an)f(arbitrary)f(text)h(string,)g(and)g(referencing)h(an)o(y)f(line)h
-(in)g(the)f(list)h(directly)l(.)0 1304 y(In)d(addition,)h(a)e(history)h
-Fj(expansion)h Fo(function)g(is)f(a)o(v)m(ailable)h(whic)o(h)g(pro)o
-(vides)f(for)f(a)h(consisten)o(t)g(user)g(in)o(terface)0
-1366 y(across)f(di\013eren)o(t)i(programs.)62 1503 y(The)i(user)g
-(using)g(programs)f(written)g(with)h(the)g(History)f(library)i(has)e
-(the)h(b)q(ene\014t)h(of)e(a)g(consisten)o(t)h(user)0
-1566 y(in)o(terface)d(with)g(a)f(set)h(of)f(w)o(ell-kno)o(wn)h
-(commands)g(for)f(manipulating)i(the)f(text)f(of)g(previous)h(lines)h
-(and)f(using)0 1628 y(that)g(text)g(in)i(new)e(commands.)22
-b(The)15 b(basic)i(history)e(manipulation)j(commands)d(are)g(similar)i
-(to)e(the)h(history)0 1690 y(substitution)g(pro)o(vided)g(b)o(y)f
-Fn(csh)p Fo(.)62 1827 y(If)g(the)g(programmer)e(desires,)i(he)g(can)g
-(use)g(the)f(Readline)j(library)l(,)e(whic)o(h)h(includes)g(some)f
-(history)f(manip-)0 1889 y(ulation)i(b)o(y)f(default,)h(and)f(has)g
-(the)g(added)h(adv)m(an)o(tage)f(of)g(command)g(line)h(editing.)0
-2114 y Fm(2.2)33 b(History)15 b(Storage)62 2251 y Fo(The)h(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:)120
-2377 y Fn(typedef)23 b(struct)g(_hist_entry)f({)168 2429
-y(char)h(*line;)168 2481 y(char)g(*data;)120 2533 y(})h(HIST_ENTRY;)62
-2670 y Fo(The)16 b(history)f(list)h(itself)g(migh)o(t)f(therefore)g(b)q
-(e)h(declared)g(as)p eop
-6 7 bop 0 -58 a Fo(6)1497 b(GNU)15 b(History)g(Library)120
-183 y Fn(HIST_ENTRY)22 b(**the_history_list;)62 327 y
-Fo(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:)120 460 y Fn(/*)24
-b(A)f(structure)g(used)g(to)h(pass)f(the)h(current)f(state)g(of)g(the)h
-(history)f(stuff)g(around.)g(*/)120 512 y(typedef)g(struct)g
-(_hist_state)f({)168 564 y(HIST_ENTRY)g(**entries;)214
-b(/*)23 b(Pointer)g(to)h(the)f(entries)g(themselves.)f(*/)168
-616 y(int)h(offset;)453 b(/*)23 b(The)h(location)e(pointer)h(within)g
-(this)h(array.)f(*/)168 668 y(int)g(length;)453 b(/*)23
-b(Number)g(of)h(elements)f(within)g(this)g(array.)g(*/)168
-719 y(int)g(size;)501 b(/*)23 b(Number)g(of)h(slots)f(allocated)g(to)g
-(this)h(array.)f(*/)168 771 y(int)g(flags;)120 823 y(})h
-(HISTORY_STATE;)62 967 y Fo(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g
-(includes)j Fn(HS_STIFLED)p Fo(,)13 b(the)i(history)h(has)f(b)q(een)h
-(sti\015ed.)0 1250 y Fm(2.3)33 b(History)15 b(F)-6 b(unctions)62
-1394 y Fo(This)16 b(section)g(describ)q(es)h(the)e(calling)i(sequence)f
-(for)f(the)g(v)m(arious)h(functions)g(presen)o(t)f(in)h(GNU)f(History)l
-(.)0 1661 y Fi(2.3.1)30 b(Initializing)15 b(History)g(and)g(State)g
-(Managemen)n(t)62 1805 y Fo(This)j(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)g(library)0 1867 y(when)f(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.)1725
-2049 y(F)l(unction)-1899 b Fh(void)20 b Fg(using)p 258
-2049 18 3 v 20 w(history)j Ff(\(\))120 2111 y Fo(Begin)g(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.)
-40 b(This)23 b(initializes)i(the)120 2173 y(in)o(teractiv)o(e)16
-b(v)m(ariables.)1725 2355 y(F)l(unction)-1899 b Fh(HISTORY_STATE)21
-b(*)e Fg(history)p 582 2355 V 21 w(get)p 680 2355 V 21
-w(history)p 876 2355 V 21 w(state)j Ff(\(\))120 2417
-y Fo(Return)16 b(a)f(structure)g(describing)i(the)e(curren)o(t)g(state)
-f(of)h(the)g(input)i(history)l(.)1725 2599 y(F)l(unction)-1899
-b Fh(void)20 b Fg(history)p 302 2599 V 20 w(set)p 393
-2599 V 21 w(history)p 589 2599 V 21 w(state)j Ff(\()p
-Fn(HISTORY_STATE)13 b(*state)p Ff(\))120 2661 y Fo(Set)i(the)h(state)e
-(of)h(the)g(history)g(list)h(according)g(to)e Fj(state)p
-Fo(.)p eop
-7 8 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1039 b(7)0 183 y Fi(2.3.2)30 b(History)15 b(List)g(Managemen)n
-(t)62 322 y Fo(These)i(functions)h(manage)e(individual)k(en)o(tries)d
-(on)f(the)h(history)g(list,)g(or)f(set)h(parameters)e(managing)i(the)0
-384 y(list)f(itself.)1725 552 y(F)l(unction)-1899 b Fh(void)20
-b Fg(add)p 219 552 18 3 v 20 w(history)j Ff(\()p Fn(char)14
-b(*string)p Ff(\))120 614 y Fo(Place)j Fj(string)k Fo(at)16
-b(the)g(end)i(of)e(the)g(history)h(list.)25 b(The)17
-b(asso)q(ciated)g(data)f(\014eld)h(\(if)g(an)o(y\))f(is)h(set)g(to)120
-677 y Fn(NULL)p Fo(.)1725 844 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21
-b(*)e Fg(remo)n(v)n(e)p 509 844 V 20 w(history)k Ff(\()p
-Fn(int)14 b(which)p Ff(\))120 907 y Fo(Remo)o(v)o(e)d(history)g(en)o
-(try)g(at)g(o\013set)f Fj(whic)o(h)i Fo(from)f(the)g(history)l(.)19
-b(The)11 b(remo)o(v)o(ed)g(elemen)o(t)h(is)g(returned)120
-969 y(so)j(y)o(ou)g(can)g(free)g(the)h(line,)g(data,)e(and)i(con)o
-(taining)g(structure.)1725 1137 y(F)l(unction)-1899 b
-Fh(HIST_ENTRY)21 b(*)e Fg(replace)p 505 1137 V 22 w(history)p
-702 1137 V 20 w(en)n(try)24 b Ff(\()p Fn(int)14 b(which,)g(char)h
-(*line,)f(char)208 1199 y(*data)p Ff(\))120 1261 y Fo(Mak)o(e)d(the)i
-(history)f(en)o(try)g(at)f(o\013set)h Fj(whic)o(h)h Fo(ha)o(v)o(e)e
-Fj(line)17 b Fo(and)12 b Fj(data)p Fo(.)19 b(This)12
-b(returns)g(the)h(old)g(en)o(try)e(so)120 1324 y(y)o(ou)i(can)g(disp)q
-(ose)h(of)e(the)h(data.)19 b(In)13 b(the)g(case)g(of)f(an)h(in)o(v)m
-(alid)i Fj(whic)o(h)p Fo(,)f(a)f Fn(NULL)f Fo(p)q(oin)o(ter)i(is)f
-(returned.)1725 1491 y(F)l(unction)-1899 b Fh(void)20
-b Fg(clear)p 245 1491 V 21 w(history)j Ff(\(\))120 1554
-y Fo(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f
-(en)o(tries.)1725 1721 y(F)l(unction)-1899 b Fh(void)20
-b Fg(sti\015e)p 245 1721 V 21 w(history)j Ff(\()p Fn(int)14
-b(max)p Ff(\))120 1784 y Fo(Sti\015e)i(the)f(history)h(list,)f(remem)o
-(b)q(ering)h(only)g(the)f(last)g Fj(max)j Fo(en)o(tries.)1725
-1951 y(F)l(unction)-1899 b Fh(int)20 b Fg(unsti\015e)p
-283 1951 V 21 w(history)i Ff(\(\))120 2014 y Fo(Stop)13
-b(sti\015ing)h(the)f(history)l(.)19 b(This)14 b(returns)f(the)g
-(previous)h(amoun)o(t)e(the)h(history)g(w)o(as)g(sti\015ed.)20
-b(The)120 2076 y(v)m(alue)c(is)g(p)q(ositiv)o(e)g(if)g(the)f(history)g
-(w)o(as)g(sti\015ed,)h(negativ)o(e)f(if)g(it)h(w)o(asn't.)1725
-2244 y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276
-2244 V 20 w(is)p 334 2244 V 21 w(sti\015ed)k Ff(\(\))120
-2306 y Fo(Returns)16 b(non-zero)f(if)h(the)f(history)g(is)h(sti\015ed,)
-g(zero)f(if)g(it)h(is)g(not.)0 2531 y Fi(2.3.3)30 b(Information)14
-b(Ab)r(out)h(the)g(History)g(List)62 2670 y Fo(These)h(functions)g
-(return)f(information)g(ab)q(out)g(the)h(en)o(tire)f(history)g(list)h
-(or)f(individual)j(list)f(en)o(tries.)p eop
-8 9 bop 0 -58 a Fo(8)1497 b(GNU)15 b(History)g(Library)1725
-183 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21 b(**)e Fg(history)p
-530 183 18 3 v 21 w(list)24 b Ff(\(\))120 246 y Fo(Return)e(a)e
-Fn(NULL)h Fo(terminated)g(arra)o(y)f(of)g Fn(HIST_ENTRY)g
-Fo(whic)o(h)i(is)f(the)g(curren)o(t)g(input)h(history)l(.)120
-308 y(Elemen)o(t)16 b(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
-Fn(NULL)p Fo(.)1725 482 y(F)l(unction)-1899 b Fh(int)20
-b Fg(where)p 250 482 V 20 w(history)j Ff(\(\))120 544
-y Fo(Returns)16 b(the)f(o\013set)f(of)h(the)g(curren)o(t)g(history)g
-(elemen)o(t.)1725 719 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21
-b(*)e Fg(curren)n(t)p 512 719 V 21 w(history)k Ff(\(\))120
-781 y Fo(Return)14 b(the)g(history)g(en)o(try)f(at)h(the)g(curren)o(t)f
-(p)q(osition,)i(as)e(determined)j(b)o(y)d Fn(where_history)h(\(\))p
-Fo(.)120 843 y(If)h(there)h(is)f(no)h(en)o(try)e(there,)h(return)g(a)g
-Fn(NULL)g Fo(p)q(oin)o(ter.)1725 1018 y(F)l(unction)-1899
-b Fh(HIST_ENTRY)21 b(*)e Fg(history)p 504 1018 V 21 w(get)j
-Ff(\()p Fn(int)15 b(offset)p Ff(\))120 1080 y Fo(Return)g(the)g
-(history)f(en)o(try)g(at)g(p)q(osition)i Fj(o\013set)p
-Fo(,)d(starting)h(from)g Fn(history_base)p Fo(.)k(If)c(there)h(is)g(no)
-120 1142 y(en)o(try)g(there,)g(or)f(if)i Fj(o\013set)f
-Fo(is)h(greater)e(than)h(the)h(history)f(length,)g(return)g(a)g
-Fn(NULL)g Fo(p)q(oin)o(ter.)1725 1316 y(F)l(unction)-1899
-b Fh(int)20 b Fg(history)p 276 1316 V 20 w(total)p 412
-1316 V 22 w(b)n(ytes)j Ff(\(\))120 1379 y Fo(Return)17
-b(the)f(n)o(um)o(b)q(er)g(of)g(b)o(ytes)g(that)f(the)h(primary)g
-(history)g(en)o(tries)h(are)e(using.)23 b(This)17 b(function)120
-1441 y(returns)e(the)g(sum)h(of)e(the)i(lengths)f(of)g(all)h(the)g
-(lines)g(in)g(the)g(history)l(.)0 1686 y Fi(2.3.4)30
-b(Mo)n(ving)15 b(Around)h(the)f(History)g(List)62 1827
-y Fo(These)h(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.)1725
-2001 y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276
-2001 V 20 w(set)p 367 2001 V 21 w(p)r(os)h Ff(\()p Fn(int)15
-b(pos)p Ff(\))120 2063 y Fo(Set)g(the)h(p)q(osition)g(in)g(the)f
-(history)g(list)h(to)f Fj(p)q(os)p Fo(,)g(an)g(absolute)g(index)i(in)o
-(to)e(the)g(list.)1725 2238 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21
-b(*)e Fg(previous)p 540 2238 V 20 w(history)k Ff(\(\))120
-2300 y Fo(Bac)o(k)16 b(up)h(the)g(curren)o(t)f(history)h(o\013set)e(to)
-h(the)h(previous)g(history)g(en)o(try)l(,)f(and)h(return)f(a)g(p)q(oin)
-o(ter)120 2362 y(to)f(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
-Fn(NULL)g Fo(p)q(oin)o(ter.)1725 2537 y(F)l(unction)-1899
-b Fh(HIST_ENTRY)21 b(*)e Fg(next)p 439 2537 V 21 w(history)k
-Ff(\(\))120 2599 y Fo(Mo)o(v)o(e)c(the)h(curren)o(t)g(history)f
-(o\013set)g(forw)o(ard)g(to)g(the)h(next)g(history)g(en)o(try)l(,)g
-(and)g(return)g(the)g(a)120 2661 y(p)q(oin)o(ter)c(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
-Fn(NULL)g Fo(p)q(oin)o(ter.)p eop
-9 10 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1039 b(9)0 183 y Fi(2.3.5)30 b(Searc)n(hing)15
-b(the)h(History)f(List)62 320 y Fo(These)e(functions)g(allo)o(w)f
-(searc)o(hing)h(of)f(the)g(history)g(list)h(for)f(en)o(tries)h(con)o
-(taining)g(a)f(sp)q(eci\014c)i(string.)19 b(Searc)o(h-)0
-382 y(ing)e(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q(oth)g(forw)o(ard)f(and)
-h(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)f(history)h(p)q(osition.)26
-b(The)17 b(searc)o(h)0 445 y(ma)o(y)d(b)q(e)i Fj(anc)o(hored)p
-Fo(,)f(meaning)h(that)f(the)g(string)g(m)o(ust)g(matc)o(h)f(at)h(the)g
-(b)q(eginning)i(of)e(the)h(history)f(en)o(try)l(.)1725
-600 y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276
-600 18 3 v 20 w(searc)n(h)j Ff(\()p Fn(char)14 b(*string,)g(int)h
-(direction)p Ff(\))120 662 y Fo(Searc)o(h)k(the)g(history)g(for)f
-Fj(string)p Fo(,)i(starting)e(at)g(the)h(curren)o(t)g(history)g
-(o\013set.)30 b(If)19 b Fj(direction)h Fn(<)f Fo(0,)120
-724 y(then)14 b(the)f(searc)o(h)g(is)h(through)e(previous)i(en)o
-(tries,)g(else)g(through)f(subsequen)o(t.)20 b(If)13
-b Fj(string)k Fo(is)d(found,)120 786 y(then)f(the)g(curren)o(t)g
-(history)g(index)i(is)e(set)g(to)f(that)h(history)g(en)o(try)l(,)f(and)
-i(the)f(v)m(alue)h(returned)f(is)h(the)120 849 y(o\013set)h(in)i(the)f
-(line)i(of)d(the)h(en)o(try)g(where)g Fj(string)k Fo(w)o(as)c(found.)22
-b(Otherwise,)17 b(nothing)f(is)h(c)o(hanged,)120 911
-y(and)e(a)g(-1)g(is)h(returned.)1725 1066 y(F)l(unction)-1899
-b Fh(int)20 b Fg(history)p 276 1066 V 20 w(searc)n(h)p
-452 1066 V 21 w(pre\014x)i Ff(\()p Fn(char)15 b(*string,)f(int)g
-(direction)p Ff(\))120 1128 y Fo(Searc)o(h)22 b(the)h(history)f(for)f
-Fj(string)p Fo(,)j(starting)e(at)f(the)i(curren)o(t)f(history)g
-(o\013set.)40 b(The)22 b(searc)o(h)g(is)120 1190 y(anc)o(hored:)i(matc)
-o(hing)18 b(lines)h(m)o(ust)d(b)q(egin)j(with)f Fj(string)p
-Fo(.)26 b(If)17 b Fj(direction)i Fn(<)e Fo(0,)g(then)h(the)f(searc)o(h)
-g(is)120 1253 y(through)e(previous)h(en)o(tries,)f(else)i(through)d
-(subsequen)o(t.)21 b(If)16 b Fj(string)j Fo(is)d(found,)f(then)h(the)f
-(curren)o(t)120 1315 y(history)20 b(index)i(is)e(set)g(to)g(that)f(en)o
-(try)l(,)i(and)f(the)g(return)h(v)m(alue)g(is)g(0.)34
-b(Otherwise,)22 b(nothing)e(is)120 1377 y(c)o(hanged,)15
-b(and)h(a)e(-1)h(is)h(returned.)1725 1532 y(F)l(unction)-1899
-b Fh(int)20 b Fg(history)p 276 1532 V 20 w(searc)n(h)p
-452 1532 V 21 w(p)r(os)h Ff(\()p Fn(char)15 b(*string,)f(int)g
-(direction,)g(int)h(pos)p Ff(\))120 1594 y Fo(Searc)o(h)d(for)f
-Fj(string)k Fo(in)d(the)g(history)f(list,)i(starting)e(at)g
-Fj(p)q(os)p Fo(,)h(an)f(absolute)h(index)h(in)o(to)e(the)h(list.)19
-b(If)12 b Fj(di-)120 1656 y(rection)g Fo(is)h(negativ)o(e,)f(the)g
-(searc)o(h)g(pro)q(ceeds)h(bac)o(kw)o(ard)e(from)g Fj(p)q(os)p
-Fo(,)i(otherwise)f(forw)o(ard.)17 b(Returns)120 1719
-y(the)e(absolute)h(index)g(of)f(the)g(history)h(elemen)o(t)f(where)h
-Fj(string)j Fo(w)o(as)14 b(found,)h(or)g(-1)g(otherwise.)0
-1912 y Fi(2.3.6)30 b(Managing)14 b(the)i(History)f(File)62
-2049 y Fo(The)f(History)g(library)h(can)f(read)g(the)g(history)g(from)f
-(and)i(write)f(it)g(to)f(a)h(\014le.)20 b(This)15 b(section)g(do)q
-(cumen)o(ts)f(the)0 2111 y(functions)i(for)f(managing)g(a)f(history)i
-(\014le.)1725 2266 y(F)l(unction)-1899 b Fh(int)20 b
-Fg(read)p 211 2266 V 20 w(history)i Ff(\()p Fn(char)15
-b(*filename)p Ff(\))120 2328 y Fo(Add)i(the)f(con)o(ten)o(ts)g(of)g
-Fj(\014lename)k Fo(to)c(the)h(history)f(list,)h(a)f(line)i(at)e(a)g
-(time.)24 b(If)17 b Fj(\014lename)j Fo(is)d Fn(NULL)p
-Fo(,)120 2391 y(then)f(read)f(from)f(`)p Fn(~/.history)p
-Fo('.)k(Returns)e(0)e(if)i(successful,)g(or)f(errno)g(if)h(not.)1725
-2545 y(F)l(unction)-1899 b Fh(int)20 b Fg(read)p 211
-2545 V 20 w(history)p 406 2545 V 20 w(range)i Ff(\()p
-Fn(char)15 b(*filename,)e(int)i(from,)g(int)f(to)p Ff(\))120
-2608 y Fo(Read)j(a)e(range)h(of)f(lines)j(from)d Fj(\014lename)p
-Fo(,)i(adding)f(them)g(to)f(the)h(history)g(list.)23
-b(Start)15 b(reading)i(at)120 2670 y(line)f Fj(from)f
-Fo(and)g(end)g(at)f Fj(to)p Fo(.)19 b(If)d Fj(from)e
-Fo(is)h(zero,)f(start)g(at)g(the)h(b)q(eginning.)22 b(If)15
-b Fj(to)i Fo(is)e(less)g(than)g Fj(from)p Fo(,)p eop
-10 11 bop 0 -58 a Fo(10)1474 b(GNU)15 b(History)g(Library)120
-183 y(then)i(read)g(un)o(til)h(the)f(end)g(of)g(the)g(\014le.)25
-b(If)17 b Fj(\014lename)k Fo(is)c Fn(NULL)p Fo(,)f(then)i(read)e(from)g
-(`)p Fn(~/.history)p Fo('.)120 246 y(Returns)g(0)f(if)g(successful,)h
-(or)f Fn(errno)g Fo(if)g(not.)1725 410 y(F)l(unction)-1899
-b Fh(int)20 b Fg(write)p 229 410 18 3 v 22 w(history)i
-Ff(\()p Fn(char)15 b(*filename)p Ff(\))120 472 y Fo(W)l(rite)20
-b(the)g(curren)o(t)f(history)h(to)f Fj(\014lename)p Fo(,)i(o)o(v)o
-(erwriting)f Fj(\014lename)j Fo(if)d(necessary)l(.)34
-b(If)20 b Fj(\014lename)120 534 y Fo(is)d Fn(NULL)p Fo(,)g(then)g
-(write)g(the)g(history)g(list)h(to)e(`)p Fn(~/.history)p
-Fo('.)23 b(V)l(alues)18 b(returned)g(are)e(as)h(in)h
-Fn(read_)120 596 y(history)c(\(\))p Fo(.)1725 760 y(F)l(unction)-1899
-b Fh(int)20 b Fg(app)r(end)p 285 760 V 19 w(history)j
-Ff(\()p Fn(int)14 b(nelements,)g(char)h(*filename)p Ff(\))120
-823 y Fo(App)q(end)i(the)e(last)g Fj(nelemen)o(ts)j Fo(of)d(the)g
-(history)g(list)h(to)f Fj(\014lename)p Fo(.)1725 987
-y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276 987
-V 20 w(truncate)p 507 987 V 21 w(\014le)k Ff(\()p Fn(char)14
-b(*filename,)g(int)h(nlines)p Ff(\))120 1049 y Fo(T)l(runcate)g(the)h
-(history)f(\014le)h Fj(\014lename)p Fo(,)g(lea)o(ving)g(only)g(the)f
-(last)g Fj(nlines)k Fo(lines.)0 1263 y Fi(2.3.7)30 b(History)15
-b(Expansion)62 1401 y Fo(These)h(functions)g(implemen)o(t)g
-Fn(csh)p Fo(-lik)o(e)g(history)g(expansion.)1725 1565
-y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276 1565
-V 20 w(expand)j Ff(\()p Fn(char)14 b(*string,)g(char)h(**output)p
-Ff(\))120 1627 y Fo(Expand)20 b Fj(string)p Fo(,)f(placing)i(the)e
-(result)h(in)o(to)f Fj(output)p Fo(,)h(a)f(p)q(oin)o(ter)h(to)e(a)h
-(string)h(\(see)f(Section)h(1.1)120 1689 y([History)15
-b(In)o(teraction],)f(page)h(1\).)20 b(Returns:)120 1840
-y Fn(0)216 b Fo(If)21 b(no)g(expansions)h(to)q(ok)e(place)h(\(or,)g(if)
-h(the)f(only)g(c)o(hange)g(in)h(the)f(text)f(w)o(as)g(the)360
-1902 y(de-slashifying)d(of)e(the)g(history)h(expansion)g(c)o
-(haracter\);)120 1991 y Fn(1)216 b Fo(if)16 b(expansions)g(did)g(tak)o
-(e)e(place;)120 2080 y Fn(-1)192 b Fo(if)16 b(there)f(w)o(as)f(an)h
-(error)g(in)h(expansion;)120 2168 y Fn(2)216 b Fo(if)14
-b(the)f(returned)h(line)h(should)f(only)g(b)q(e)f(displa)o(y)o(ed,)i
-(but)e(not)g(executed,)h(as)f(with)h(the)360 2231 y Fn(:p)h
-Fo(mo)q(di\014er)h(\(see)f(Section)h(1.1.3)e([Mo)q(di\014ers],)h(page)g
-(2\).)120 2381 y(If)g(an)h(error)e(o)q(curred)i(in)g(expansion,)f(then)
-h Fj(output)g Fo(con)o(tains)f(a)g(descriptiv)o(e)i(error)d(message.)
-1725 2545 y(F)l(unction)-1899 b Fh(char)20 b(*)f Fg(history)p
-347 2545 V 21 w(arg)p 449 2545 V 19 w(extract)24 b Ff(\()p
-Fn(int)14 b(first,)h(int)g(last,)f(char)h(*string)p Ff(\))120
-2608 y Fo(Extract)10 b(a)h(string)g(segmen)o(t)g(consisting)h(of)f(the)
-g Fj(\014rst)h Fo(through)f Fj(last)h Fo(argumen)o(ts)e(presen)o(t)h
-(in)h Fj(string)p Fo(.)120 2670 y(Argumen)o(ts)j(are)g(brok)o(en)g(up)g
-(as)g(in)h(Bash.)p eop
-11 12 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1017 b(11)1725 183 y(F)l(unction)-1899 b Fh(char)20
-b(*)f Fg(get)p 249 183 18 3 v 21 w(history)p 445 183
-V 20 w(ev)n(en)n(t)25 b Ff(\()p Fn(char)14 b(*string,)g(int)h(*cindex,)
-f(int)h(qchar)p Ff(\))120 246 y Fo(Returns)e(the)f(text)f(of)h(the)g
-(history)g(ev)o(en)o(t)f(b)q(eginning)k(at)c Fj(string)16
-b Fn(+)c Fj(*cindex)p Fo(.)20 b Fj(*cindex)c Fo(is)d(mo)q(di\014ed)120
-308 y(to)h(p)q(oin)o(t)h(to)f(after)h(the)f(ev)o(en)o(t)h(sp)q
-(eci\014er.)21 b(A)o(t)15 b(function)g(en)o(try)l(,)f
-Fj(cindex)20 b Fo(p)q(oin)o(ts)15 b(to)f(the)h(index)h(in)o(to)120
-370 y Fj(string)h Fo(where)d(the)f(history)h(ev)o(en)o(t)f(sp)q
-(eci\014cation)i(b)q(egins.)20 b Fj(qc)o(har)d Fo(is)c(a)g(c)o
-(haracter)g(that)g(is)h(allo)o(w)o(ed)120 432 y(to)h(end)g(the)h(ev)o
-(en)o(t)f(sp)q(eci\014cation)i(in)f(addition)g(to)f(the)g(\\normal")g
-(terminating)g(c)o(haracters.)1725 587 y(F)l(unction)-1899
-b Fh(char)20 b(**)f Fg(history)p 373 587 V 21 w(tok)n(enize)25
-b Ff(\()p Fn(char)14 b(*string)p Ff(\))120 649 y Fo(Return)k(an)f(arra)
-o(y)f(of)h(tok)o(ens)f(parsed)i(out)e(of)h Fj(string)p
-Fo(,)g(m)o(uc)o(h)h(as)e(the)i(shell)g(migh)o(t.)26 b(The)17
-b(tok)o(ens)120 711 y(are)c(split)h(on)f(white)g(space)h(and)f(on)g
-(the)g(c)o(haracters)f Fn(\(\)<>;&|$)p Fo(,)g(and)h(shell)i(quoting)e
-(con)o(v)o(en)o(tions)120 774 y(are)i(ob)q(ey)o(ed.)0
-983 y Fm(2.4)33 b(History)15 b(V)-6 b(ariables)62 1120
-y Fo(This)16 b(section)g(describ)q(es)h(the)e(externally)h(visible)i(v)
-m(ariables)e(exp)q(orted)g(b)o(y)f(the)g(GNU)g(History)g(Library)l(.)
-1736 1275 y(V)l(ariable)-1899 b Fh(int)20 b Fg(history)p
-276 1275 V 20 w(base)120 1337 y Fo(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.)1736
-1491 y(V)l(ariable)-1899 b Fh(int)20 b Fg(history)p 276
-1491 V 20 w(length)120 1554 y Fo(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.)1736
-1708 y(V)l(ariable)-1899 b Fh(int)20 b Fg(max)p 208 1708
-V 19 w(input)p 360 1708 V 21 w(history)120 1771 y Fo(The)12
-b(maxim)o(um)g(n)o(um)o(b)q(er)g(of)f(history)h(en)o(tries.)19
-b(This)12 b(m)o(ust)f(b)q(e)h(c)o(hanged)g(using)h Fn(stifle_history)
-120 1833 y(\(\))p Fo(.)1736 1987 y(V)l(ariable)-1899
-b Fh(char)20 b Fg(history)p 302 1987 V 20 w(expansion)p
-569 1987 V 21 w(c)n(har)120 2050 y Fo(The)15 b(c)o(haracter)g(that)f
-(starts)g(a)h(history)g(ev)o(en)o(t.)20 b(The)15 b(default)h(is)g(`)p
-Fn(!)p Fo('.)1736 2204 y(V)l(ariable)-1899 b Fh(char)20
-b Fg(history)p 302 2204 V 20 w(subst)p 454 2204 V 20
-w(c)n(har)120 2266 y Fo(The)13 b(c)o(haracter)e(that)h(in)o(v)o(ok)o
-(es)g(w)o(ord)g(substitution)h(if)g(found)g(at)e(the)i(start)e(of)h(a)g
-(line.)21 b(The)12 b(default)120 2329 y(is)k(`)p Fn(^)p
-Fo('.)1736 2483 y(V)l(ariable)-1899 b Fh(char)20 b Fg(history)p
-302 2483 V 20 w(commen)n(t)p 552 2483 V 19 w(c)n(har)120
-2545 y Fo(During)12 b(tok)o(enization,)h(if)f(this)h(c)o(haracter)e(is)
-i(seen)f(as)g(the)g(\014rst)f(c)o(haracter)g(of)h(a)g(w)o(ord,)f(then)i
-(it)f(and)120 2608 y(all)19 b(subsequen)o(t)g(c)o(haracters)e(up)h(to)g
-(a)f(newline)j(are)e(ignored,)h(suppressing)g(history)f(expansion)120
-2670 y(for)d(the)g(remainder)h(of)f(the)g(line.)21 b(This)16
-b(is)g(disabled)h(b)o(y)e(default.)p eop
-12 13 bop 0 -58 a Fo(12)1474 b(GNU)15 b(History)g(Library)1736
-183 y(V)l(ariable)-1899 b Fh(char)20 b(*)f Fg(history)p
-347 183 18 3 v 21 w(no)p 429 183 V 20 w(expand)p 629
-183 V 20 w(c)n(hars)120 246 y Fo(The)f(list)g(of)g(c)o(haracters)e
-(whic)o(h)j(inhibit)h(history)d(expansion)i(if)f(found)g(immediately)h
-(follo)o(wing)120 308 y Fj(history)p 261 308 14 2 v 16
-w(expansion)p 472 308 V 18 w(c)o(har)p Fo(.)g(The)d(default)f(is)h
-(whitespace)g(and)g(`)p Fn(=)p Fo('.)1736 469 y(V)l(ariable)-1899
-b Fh(char)20 b(*)f Fg(history)p 347 469 18 3 v 21 w(searc)n(h)p
-524 469 V 20 w(delimiter)p 768 469 V 23 w(c)n(hars)120
-532 y Fo(The)d(list)g(of)f(additional)i(c)o(haracters)d(whic)o(h)i(can)
-g(delimit)h(a)e(history)g(searc)o(h)h(string,)f(in)h(addition)120
-594 y(to)f(whitespace,)g(`)p Fn(:)p Fo(')f(and)i(`)p
-Fn(?)p Fo(')e(in)i(the)f(case)h(of)e(a)h(substring)h(searc)o(h.)k(The)
-15 b(default)h(is)g(empt)o(y)l(.)1736 755 y(V)l(ariable)-1899
-b Fh(int)20 b Fg(history)p 276 755 V 20 w(quotes)p 458
-755 V 21 w(inhibit)p 642 755 V 23 w(expansion)120 818
-y Fo(If)e(non-zero,)f(single-quoted)i(w)o(ords)e(are)g(not)g(scanned)h
-(for)e(the)i(history)f(expansion)h(c)o(haracter.)120
-880 y(The)d(default)h(v)m(alue)h(is)e(0.)1736 1041 y(V)l(ariable)-1899
-b Fh(Function)20 b(*)g Fg(history)p 452 1041 V 20 w(inhibit)p
-635 1041 V 23 w(expansion)p 905 1041 V 21 w(function)120
-1104 y Fo(This)f(should)h(b)q(e)f(set)f(to)g(the)h(address)f(of)g(a)h
-(function)g(that)f(tak)o(es)f(t)o(w)o(o)h(argumen)o(ts:)25
-b(a)19 b Fn(char)14 b(*)120 1166 y Fo(\()p Fj(string)t
-Fo(\))c(and)i(an)f(in)o(teger)g(index)h(in)o(to)f(that)g(string)g(\()p
-Fj(i)r Fo(\).)19 b(It)11 b(should)h(return)f(a)g(non-zero)g(v)m(alue)h
-(if)g(the)120 1228 y(history)17 b(expansion)h(starting)e(at)h
-Fj(string[i])h Fo(should)g(not)f(b)q(e)h(p)q(erformed;)f(zero)g(if)h
-(the)f(expansion)120 1290 y(should)i(b)q(e)f(done.)28
-b(It)18 b(is)g(in)o(tended)h(for)e(use)h(b)o(y)g(applications)h(lik)o
-(e)g(Bash)f(that)f(use)h(the)g(history)120 1353 y(expansion)e(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(NULL.)0 1576 y Fm(2.5)33
-b(History)15 b(Programming)h(Example)62 1713 y Fo(The)g(follo)o(wing)g
-(program)e(demonstrates)g(simple)j(use)e(of)g(the)g(GNU)g(History)g
-(Library)l(.)120 1840 y Fn(main)23 b(\(\))120 1892 y({)168
-1944 y(char)g(line[1024],)f(*t;)168 1995 y(int)h(len,)g(done)h(=)g(0;)
-168 2099 y(line[0])f(=)g(0;)168 2203 y(using_history)f(\(\);)168
-2255 y(while)h(\(!done\))215 2307 y({)263 2359 y(printf)g(\("history$)g
-("\);)263 2411 y(fflush)g(\(stdout\);)263 2462 y(t)h(=)g(fgets)f
-(\(line,)g(sizeof)g(\(line\))g(-)h(1,)f(stdin\);)263
-2514 y(if)h(\(t)f(&&)h(*t\))311 2566 y({)359 2618 y(len)f(=)h(strlen)f
-(\(t\);)359 2670 y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))p
+%%Page: 1 3
+1 2 bop 75 -58 a Fm(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
+(ely)1007 b(1)75 183 y Fi(1)41 b(Using)26 b(History)h(In)n(teractiv)n
+(ely)137 317 y Fm(This)16 b(c)o(hapter)f(describ)q(es)i(ho)o(w)d(to)h
+(use)g(the)g(GNU)g(History)g(Library)h(in)o(teractiv)o(ely)l(,)g(from)e
+(a)h(user's)75 372 y(standp)q(oin)o(t.)35 b(It)20 b(should)g(b)q(e)h
+(considered)h(a)d(user's)h(guide.)35 b(F)l(or)19 b(information)h(on)g
+(using)h(the)f(GNU)75 427 y(History)15 b(Library)h(in)g(y)o(our)f(o)o
+(wn)g(programs,)e(see)j Fj(h)p Fm(unde\014ned)p Fj(i)g
+Fm([Programming)e(with)i(GNU)f(History],)75 482 y(page)g
+Fj(h)p Fm(unde\014ned)p Fj(i)p Fm(.)75 625 y Fk(1.1)33
+b(History)22 b(Expansion)137 727 y Fm(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 782 y(expansion)12 b(pro)o(vided)g(b)o(y)f
+Fl(csh)p Fm(.)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 836 y(information.)137
+909 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
+964 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
+1019 y(input)h(line,)h(or)d(\014x)i(errors)e(in)i(previous)g(commands)f
+(quic)o(kly)l(.)137 1092 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 1147 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 1202 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 1256 y Fh(ev)o(en)o(t)p
+Fm(,)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 Fh(w)o(ords)p Fm(.)i(V)l(arious)c
+Fh(mo)q(di\014ers)75 1311 y Fm(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 1366 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 1421 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 1475
+y(whic)o(h)d(is)g(`)p Fl(!)p Fm(')e(b)o(y)h(default.)75
+1599 y Fg(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)137
+1701 y Fm(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
+1789 y Fl(!)216 b Fm(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
+1844 y(the)e(line,)i(`)p Fl(=)p Fm(')d(or)h(`)p Fl(\()p
+Fm('.)75 1929 y Fl(!)p Fh(n)191 b Fm(Refer)16 b(to)e(command)h(line)i
+Fh(n)p Fm(.)75 2015 y Fl(!-)p Fh(n)167 b Fm(Refer)16
+b(to)e(the)i(command)f Fh(n)g Fm(lines)i(bac)o(k.)75
+2100 y Fl(!!)192 b Fm(Refer)16 b(to)e(the)i(previous)f(command.)20
+b(This)c(is)g(a)f(synon)o(ym)g(for)f(`)p Fl(!-1)p Fm('.)75
+2186 y Fl(!)p Fh(string)102 b Fm(Refer)16 b(to)e(the)i(most)e(recen)o
+(t)h(command)g(starting)g(with)g Fh(string)p Fm(.)75
+2271 y Fl(!?)p Fh(string)t Fl([?])315 2326 y Fm(Refer)i(to)f(the)h
+(most)f(recen)o(t)h(command)g(con)o(taining)g Fh(string)p
+Fm(.)25 b(The)17 b(trailing)g(`)p Fl(?)p Fm(')f(ma)o(y)g(b)q(e)315
+2381 y(omitted)f(if)h(the)f Fh(string)k Fm(is)d(follo)o(w)o(ed)f
+(immediately)i(b)o(y)e(a)g(newline.)75 2466 y Fl(^)p
+Fh(string1)t Fl(^)p Fh(string2)t Fl(^)315 2521 y Fm(Quic)o(k)i
+(Substitution.)23 b(Rep)q(eat)17 b(the)f(last)f(command,)h(replacing)h
+Fh(string1)i Fm(with)e Fh(string2)p Fm(.)315 2576 y(Equiv)m(alen)o(t)g
+(to)d Fl(!!:s/)p Fh(string1)t Fl(/)p Fh(string2)t Fl(/)p
+Fm(.)75 2661 y Fl(!#)192 b Fm(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 Fm(2)1347 b(GNU)15 b(History)g(Library)75
+183 y Fg(1.1.2)30 b(W)-5 b(ord)20 b(Designators)137 279
+y Fm(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 Fl(:)p
+Fm(')e(separates)h(the)75 333 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 388 y(b)q(egins)f(with)g
+(a)e(`)p Fl(^)p Fm(',)h(`)p Fl($)p Fm(',)f(`)p Fl(*)p
+Fm(',)g(`)p Fl(-)p Fm(',)g(or)h(`)p Fl(\045)p Fm('.)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 443 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 498 y(separated)c(b)o(y)g(single)
+i(spaces.)75 575 y Fl(0)e(\(zero\))57 b Fm(The)15 b Fl(0)p
+Fm(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 653 y Fh(n)215 b Fm(The)15
+b Fh(n)p Fm(th)h(w)o(ord.)75 731 y Fl(^)216 b Fm(The)15
+b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o(ord)g(1.)75
+808 y Fl($)216 b Fm(The)15 b(last)h(argumen)o(t.)75 886
+y Fl(\045)216 b Fm(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g(most)g
+(recen)o(t)g(`)p Fl(?)p Fh(string)t Fl(?)p Fm(')f(searc)o(h.)75
+964 y Fh(x)p Fl(-)p Fh(y)168 b Fm(A)15 b(range)g(of)g(w)o(ords;)f(`)p
+Fl(-)p Fh(y)t Fm(')g(abbreviates)i(`)p Fl(0-)p Fh(y)t
+Fm('.)75 1042 y Fl(*)216 b Fm(All)15 b(of)f(the)f(w)o(ords,)g(except)i
+(the)f Fl(0)p Fm(th.)19 b(This)14 b(is)h(a)e(synon)o(ym)h(for)f(`)p
+Fl(1-$)p Fm('.)18 b(It)c(is)g(not)g(an)g(error)315 1096
+y(to)g(use)h(`)p Fl(*)p Fm(')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 1151 y(that)f(case.)75 1229 y Fh(x)s Fl(*)189
+b Fm(Abbreviates)16 b(`)p Fh(x)p Fl(-$)p Fm(')75 1307
+y Fh(x)p Fl(-)192 b Fm(Abbreviates)16 b(`)p Fh(x)p Fl(-$)p
+Fm(')e(lik)o(e)i(`)p Fh(x)s Fl(*)p Fm(',)e(but)i(omits)f(the)g(last)g
+(w)o(ord.)137 1384 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 1439 y(is)e(used)f(as)g(the)h(ev)o(en)o(t.)75
+1548 y Fg(1.1.3)30 b(Mo)r(di\014ers)137 1643 y Fm(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
+1698 y(mo)q(di\014ers,)16 b(eac)o(h)f(preceded)i(b)o(y)e(a)g(`)p
+Fl(:)p Fm('.)75 1776 y Fl(h)216 b Fm(Remo)o(v)o(e)15
+b(a)g(trailing)h(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the)
+f(head.)75 1854 y Fl(t)216 b Fm(Remo)o(v)o(e)15 b(all)h(leading)h
+(pathname)e(comp)q(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)75
+1931 y Fl(r)216 b Fm(Remo)o(v)o(e)15 b(a)g(trailing)h(su\016x)f(of)g
+(the)g(form)g(`)p Fl(.)p Fh(su\016x)s Fm(',)f(lea)o(ving)i(the)f
+(basename.)75 2009 y Fl(e)216 b Fm(Remo)o(v)o(e)15 b(all)h(but)g(the)f
+(trailing)h(su\016x.)75 2087 y Fl(p)216 b Fm(Prin)o(t)15
+b(the)g(new)h(command)f(but)g(do)g(not)g(execute)h(it.)75
+2164 y Fl(s/)p Fh(old)r Fl(/)p Fh(new)t Fl(/)315 2219
+y Fm(Substitute)h Fh(new)j Fm(for)c(the)h(\014rst)e(o)q(ccurrence)j(of)
+e Fh(old)i Fm(in)f(the)g(ev)o(en)o(t)f(line.)25 b(An)o(y)16
+b(delimiter)315 2274 y(ma)o(y)c(b)q(e)h(used)g(in)g(place)g(of)f(`)p
+Fl(/)p Fm('.)18 b(The)13 b(delimiter)h(ma)o(y)e(b)q(e)h(quoted)f(in)i
+Fh(old)g Fm(and)f Fh(new)k Fm(with)12 b(a)315 2329 y(single)j(bac)o
+(kslash.)20 b(If)15 b(`)p Fl(&)p Fm(')e(app)q(ears)h(in)h
+Fh(new)p Fm(,)f(it)g(is)h(replaced)g(b)o(y)f Fh(old)p
+Fm(.)20 b(A)14 b(single)i(bac)o(kslash)315 2383 y(will)j(quote)e(the)h
+(`)p Fl(&)p Fm('.)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 2438
+y(the)e(input)h(line.)75 2516 y Fl(&)216 b Fm(Rep)q(eat)16
+b(the)f(previous)h(substitution.)75 2594 y Fl(g)216 b
+Fm(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
+2648 y(with)c(`)p Fl(s)p Fm(',)d(as)i(in)h Fl(gs/)p Fh(old)r
+Fl(/)p Fh(new)t Fl(/)p Fm(,)f(or)g(with)g(`)p Fl(&)p
+Fm('.)p eop
+%%Page: 3 5
+3 4 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)889 b(3)75 183 y Fi(2)41 b(Programming)28 b(with)e(GNU)i
+(History)137 323 y Fm(This)16 b(c)o(hapter)e(describ)q(es)j(ho)o(w)d
+(to)g(in)o(terface)h(programs)e(that)h(y)o(ou)h(write)g(with)g(the)g
+(GNU)f(History)75 378 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
+433 y(of)e(GNU)g(History)l(,)g(see)g Fj(h)p Fm(unde\014ned)p
+Fj(i)i Fm([Using)e(History)g(In)o(teractiv)o(ely],)g(page)g
+Fj(h)p Fm(unde\014ned)p Fj(i)p Fm(.)75 581 y Fk(2.1)33
+b(In)n(tro)r(duction)24 b(to)e(History)137 685 y Fm(Man)o(y)c(programs)
+g(read)h(input)g(from)f(the)h(user)g(a)f(line)j(at)d(a)g(time.)31
+b(The)19 b(GNU)g(History)f(library)75 740 y(is)k(able)g(to)e(k)o(eep)i
+(trac)o(k)e(of)h(those)g(lines,)j(asso)q(ciate)d(arbitrary)g(data)f
+(with)i(eac)o(h)f(line,)j(and)e(utilize)75 795 y(information)15
+b(from)g(previous)h(lines)h(in)f(comp)q(osing)f(new)h(ones.)137
+870 y(The)e(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
+924 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 979 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 1034 y(the)c(list)i(directly)l(.)22
+b(In)16 b(addition,)g(a)f(history)g Fh(expansion)h Fm(function)h(is)e
+(a)o(v)m(ailable)i(whic)o(h)g(pro)o(vides)f(for)e(a)75
+1089 y(consisten)o(t)h(user)h(in)o(terface)f(across)g(di\013eren)o(t)g
+(programs.)137 1164 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 1219 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 1273 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 1328 y(similar)j(to)f(the)g(history)g(substitution)h(pro)o
+(vided)g(b)o(y)g Fl(csh)p Fm(.)137 1403 y(If)f(the)g(programmer)f
+(desires,)h(he)g(can)g(use)g(the)g(Readline)i(library)l(,)f(whic)o(h)f
+(includes)j(some)c(history)75 1458 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.)75 1606 y Fk(2.2)33 b(History)22 b(Storage)137
+1710 y Fm(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 1782 y Fl(typedef)23 b(struct)g(_hist_entry)f({)243
+1834 y(char)h(*line;)243 1886 y(char)g(*data;)195 1938
+y(})h(HIST_ENTRY;)137 2013 y Fm(The)16 b(history)f(list)h(itself)g
+(migh)o(t)f(therefore)g(b)q(e)h(declared)g(as)195 2085
+y Fl(HIST_ENTRY)22 b(**the_history_list;)137 2160 y Fm(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 2232 y Fl(/*)24 b(A)f(structure)g(used)g
+(to)h(pass)f(the)h(current)f(state)g(of)g(the)h(history)f(stuff)g
+(around.)g(*/)p 2033 2242 21 42 v 195 2284 a(typedef)g(struct)g
+(_hist_state)f({)243 2336 y(HIST_ENTRY)g(**entries;)214
+b(/*)23 b(Pointer)g(to)h(the)f(entries)g(themselves.)f(*/)243
+2387 y(int)h(offset;)453 b(/*)23 b(The)h(location)e(pointer)h(within)g
+(this)h(array.)f(*/)p 2033 2398 V 243 2439 a(int)g(length;)453
+b(/*)23 b(Number)g(of)h(elements)f(within)g(this)g(array.)g(*/)p
+1985 2449 V 243 2491 a(int)g(size;)501 b(/*)23 b(Number)g(of)h(slots)f
+(allocated)g(to)g(this)h(array.)f(*/)p 2057 2501 V 243
+2543 a(int)g(flags;)195 2595 y(})h(HISTORY_STATE;)137
+2670 y Fm(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g(includes)j
+Fl(HS_STIFLED)p Fm(,)13 b(the)i(history)h(has)f(b)q(een)h(sti\015ed.)p
eop
-13 14 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1017 b(13)406 183 y Fn(t[len)24 b(-)f(1])h(=)g('\\0';)311
-235 y(})263 339 y(if)g(\(!t\))311 391 y(strcpy)f(\(line,)g("quit"\);)
-263 495 y(if)h(\(line[0]\))311 546 y({)359 598 y(char)f(*expansion;)359
-650 y(int)g(result;)359 754 y(result)g(=)g(history_expand)f(\(line,)h
-(&expansion\);)359 806 y(if)g(\(result\))406 858 y(fprintf)g(\(stderr,)
-g("\045s\\n",)g(expansion\);)359 962 y(if)g(\(result)g(<)h(0)g(||)f
-(result)g(==)h(2\))406 1013 y({)454 1065 y(free)f(\(expansion\);)454
-1117 y(continue;)406 1169 y(})359 1273 y(add_history)f(\(expansion\);)
-359 1325 y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h
-(1\);)359 1377 y(free)f(\(expansion\);)311 1429 y(})263
-1532 y(if)h(\(strcmp)f(\(line,)g("quit"\))g(==)g(0\))311
-1584 y(done)g(=)h(1;)263 1636 y(else)f(if)h(\(strcmp)f(\(line,)g
-("save"\))g(==)h(0\))311 1688 y(write_history)e(\("history_file"\);)263
-1740 y(else)h(if)h(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))311
-1792 y(read_history)e(\("history_file"\);)263 1844 y(else)h(if)h
-(\(strcmp)f(\(line,)g("list"\))g(==)h(0\))311 1896 y({)359
-1947 y(register)e(HIST_ENTRY)h(**the_list;)359 1999 y(register)f(int)i
-(i;)359 2103 y(the_list)e(=)i(history_list)e(\(\);)359
-2155 y(if)h(\(the_list\))406 2207 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e
-(i++\))454 2259 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g
-(history_base,)e(the_list[i]->line\);)311 2311 y(})263
-2363 y(else)h(if)h(\(strncmp)f(\(line,)g("delete",)g(6\))g(==)h(0\))311
-2414 y({)359 2466 y(int)f(which;)359 2518 y(if)g(\(\(sscanf)g(\(line)g
-(+)h(6,)f("\045d",)h(&which\)\))e(==)i(1\))406 2570 y({)454
-2622 y(HIST_ENTRY)f(*entry)g(=)g(remove_history)f(\(which\);)p
+%%Page: 4 6
+4 5 bop 75 -58 a Fm(4)1347 b(GNU)15 b(History)g(Library)75
+183 y Fk(2.3)33 b(History)22 b(F)-6 b(unctions)137 278
+y Fm(This)21 b(section)g(describ)q(es)h(the)f(calling)h(sequence)g(for)
+e(the)g(v)m(arious)h(functions)g(presen)o(t)g(in)g(GNU)75
+333 y(History)l(.)75 441 y Fg(2.3.1)30 b(Initializing)20
+b(History)h(and)f(State)g(Managemen)n(t)137 536 y Fm(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
+591 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.)1650 679 y(F)l(unction)-1749
+b Ff(void)20 b Fe(using)p 333 679 18 3 v 20 w(history)j
+Fd(\(\))195 734 y Fm(Begin)18 b(a)f(session)h(in)g(whic)o(h)g(the)g
+(history)f(functions)h(migh)o(t)f(b)q(e)h(used.)27 b(This)18
+b(initializes)195 788 y(the)d(in)o(teractiv)o(e)h(v)m(ariables.)1650
+877 y(F)l(unction)-1749 b Ff(HISTORY_STATE)21 b(*)e Fe(history)p
+657 877 V 21 w(get)p 755 877 V 21 w(history)p 951 877
+V 21 w(state)j Fd(\(\))195 931 y Fm(Return)16 b(a)f(structure)g
+(describing)i(the)e(curren)o(t)g(state)f(of)h(the)g(input)i(history)l
+(.)1650 1019 y(F)l(unction)-1749 b Ff(void)20 b Fe(history)p
+377 1019 V 20 w(set)p 468 1019 V 21 w(history)p 664 1019
+V 21 w(state)j Fd(\()p Fl(HISTORY_STATE)13 b(*state)p
+Fd(\))195 1074 y Fm(Set)i(the)h(state)e(of)h(the)g(history)g(list)h
+(according)g(to)e Fh(state)p Fm(.)75 1182 y Fg(2.3.2)30
+b(History)20 b(List)h(Managemen)n(t)137 1277 y Fm(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 1332 y(the)15
+b(list)h(itself.)1650 1420 y(F)l(unction)-1749 b Ff(void)20
+b Fe(add)p 294 1420 V 20 w(history)j Fd(\()p Fl(char)14
+b(*string)p Fd(\))195 1475 y Fm(Place)i Fh(string)j Fm(at)c(the)g(end)i
+(of)d(the)i(history)f(list.)22 b(The)15 b(asso)q(ciated)h(data)f
+(\014eld)h(\(if)g(an)o(y\))e(is)195 1530 y(set)h(to)g
+Fl(NULL)p Fm(.)1650 1618 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21
+b(*)e Fe(remo)n(v)n(e)p 584 1618 V 20 w(history)k Fd(\()p
+Fl(int)14 b(which)p Fd(\))195 1673 y Fm(Remo)o(v)o(e)g(history)g(en)o
+(try)f(at)h(o\013set)f Fh(whic)o(h)h Fm(from)g(the)g(history)l(.)19
+b(The)14 b(remo)o(v)o(ed)g(elemen)o(t)g(is)195 1727 y(returned)i(so)e
+(y)o(ou)h(can)h(free)f(the)g(line,)i(data,)d(and)h(con)o(taining)h
+(structure.)1650 1816 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21
+b(*)e Fe(replace)p 580 1816 V 22 w(history)p 777 1816
+V 20 w(en)n(try)24 b Fd(\()p Fl(int)14 b(which,)g(char)283
+1870 y(*line,)g(char)g(*data)p Fd(\))195 1925 y Fm(Mak)o(e)f(the)h
+(history)f(en)o(try)g(at)g(o\013set)g Fh(whic)o(h)h Fm(ha)o(v)o(e)g
+Fh(line)k Fm(and)13 b Fh(data)p Fm(.)19 b(This)14 b(returns)g(the)f
+(old)195 1980 y(en)o(try)k(so)g(y)o(ou)g(can)g(disp)q(ose)i(of)d(the)i
+(data.)25 b(In)18 b(the)f(case)h(of)f(an)g(in)o(v)m(alid)i
+Fh(whic)o(h)p Fm(,)g(a)e Fl(NULL)195 2035 y Fm(p)q(oin)o(ter)f(is)f
+(returned.)1650 2123 y(F)l(unction)-1749 b Ff(void)20
+b Fe(clear)p 320 2123 V 21 w(history)j Fd(\(\))195 2178
+y Fm(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f
+(en)o(tries.)1650 2266 y(F)l(unction)-1749 b Ff(void)20
+b Fe(sti\015e)p 320 2266 V 21 w(history)j Fd(\()p Fl(int)14
+b(max)p Fd(\))195 2321 y Fm(Sti\015e)i(the)f(history)h(list,)f(remem)o
+(b)q(ering)h(only)g(the)f(last)g Fh(max)j Fm(en)o(tries.)1650
+2409 y(F)l(unction)-1749 b Ff(int)20 b Fe(unsti\015e)p
+358 2409 V 21 w(history)i Fd(\(\))195 2463 y Fm(Stop)e(sti\015ing)i
+(the)f(history)l(.)36 b(This)21 b(returns)g(the)f(previous)i(amoun)o(t)
+e(the)g(history)h(w)o(as)195 2518 y(sti\015ed.)g(The)15
+b(v)m(alue)i(is)e(p)q(ositiv)o(e)i(if)e(the)g(history)h(w)o(as)e
+(sti\015ed,)i(negativ)o(e)f(if)h(it)f(w)o(asn't.)1650
+2606 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p 351
+2606 V 20 w(is)p 409 2606 V 21 w(sti\015ed)k Fd(\(\))195
+2661 y Fm(Returns)16 b(non-zero)f(if)h(the)f(history)g(is)h(sti\015ed,)
+g(zero)f(if)g(it)h(is)g(not.)p eop
+%%Page: 5 7
+5 6 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)889 b(5)75 183 y Fg(2.3.3)30 b(Information)19
+b(Ab)r(out)i(the)f(History)h(List)137 279 y Fm(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.)1650
+371 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21 b(**)e Fe(history)p
+605 371 18 3 v 21 w(list)24 b Fd(\(\))195 426 y Fm(Return)f(a)g
+Fl(NULL)f Fm(terminated)g(arra)o(y)g(of)g Fl(HIST_ENTRY)f
+Fm(whic)o(h)j(is)f(the)f(curren)o(t)h(input)195 481 y(history)l(.)j
+(Elemen)o(t)18 b(0)e(of)h(this)h(list)g(is)f(the)h(b)q(eginning)h(of)e
+(time.)26 b(If)17 b(there)g(is)h(no)f(history)l(,)195
+535 y(return)e Fl(NULL)p Fm(.)1650 627 y(F)l(unction)-1749
+b Ff(int)20 b Fe(where)p 325 627 V 20 w(history)j Fd(\(\))195
+682 y Fm(Returns)16 b(the)f(o\013set)f(of)h(the)g(curren)o(t)g(history)
+g(elemen)o(t.)1650 773 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21
+b(*)e Fe(curren)n(t)p 587 773 V 21 w(history)k Fd(\(\))195
+828 y Fm(Return)g(the)f(history)g(en)o(try)g(at)f(the)h(curren)o(t)g(p)
+q(osition,)j(as)c(determined)j(b)o(y)e Fl(where_)195
+883 y(history)14 b(\(\))p Fm(.)20 b(If)15 b(there)g(is)h(no)f(en)o(try)
+g(there,)g(return)g(a)g Fl(NULL)g Fm(p)q(oin)o(ter.)1650
+975 y(F)l(unction)-1749 b Ff(HIST_ENTRY)21 b(*)e Fe(history)p
+579 975 V 21 w(get)j Fd(\()p Fl(int)15 b(offset)p Fd(\))195
+1029 y Fm(Return)21 b(the)g(history)g(en)o(try)f(at)g(p)q(osition)i
+Fh(o\013set)p Fm(,)e(starting)g(from)g Fl(history_base)p
+Fm(.)35 b(If)195 1084 y(there)16 b(is)h(no)g(en)o(try)f(there,)g(or)g
+(if)g Fh(o\013set)h Fm(is)g(greater)e(than)h(the)h(history)f(length,)h
+(return)f(a)195 1139 y Fl(NULL)f Fm(p)q(oin)o(ter.)1650
+1231 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p 351
+1231 V 20 w(total)p 487 1231 V 22 w(b)n(ytes)j Fd(\(\))195
+1285 y Fm(Return)c(the)f(n)o(um)o(b)q(er)g(of)g(b)o(ytes)g(that)f(the)h
+(primary)h(history)f(en)o(tries)g(are)g(using.)29 b(This)195
+1340 y(function)16 b(returns)f(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 1452 y
+Fg(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)137
+1548 y Fm(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.)
+1650 1640 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p
+351 1640 V 20 w(set)p 442 1640 V 21 w(p)r(os)h Fd(\()p
+Fl(int)15 b(pos)p Fd(\))195 1694 y Fm(Set)g(the)h(p)q(osition)g(in)g
+(the)f(history)g(list)h(to)f Fh(p)q(os)p Fm(,)g(an)g(absolute)g(index)i
+(in)o(to)e(the)g(list.)1650 1786 y(F)l(unction)-1749
+b Ff(HIST_ENTRY)21 b(*)e Fe(previous)p 615 1786 V 20
+w(history)k Fd(\(\))195 1841 y Fm(Bac)o(k)17 b(up)h(the)f(curren)o(t)g
+(history)g(o\013set)f(to)h(the)g(previous)h(history)f(en)o(try)l(,)g
+(and)g(return)g(a)195 1896 y(p)q(oin)o(ter)f(to)e(that)h(en)o(try)l(.)k
+(If)d(there)f(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g
+Fl(NULL)f Fm(p)q(oin)o(ter.)1650 1987 y(F)l(unction)-1749
+b Ff(HIST_ENTRY)21 b(*)e Fe(next)p 514 1987 V 21 w(history)k
+Fd(\(\))195 2042 y Fm(Mo)o(v)o(e)17 b(the)h(curren)o(t)g(history)f
+(o\013set)g(forw)o(ard)g(to)g(the)h(next)g(history)g(en)o(try)l(,)g
+(and)g(return)195 2097 y(the)d(a)g(p)q(oin)o(ter)h(to)e(that)h(en)o
+(try)l(.)20 b(If)15 b(there)g(is)h(no)f(next)g(en)o(try)l(,)g(return)g
+(a)g Fl(NULL)g Fm(p)q(oin)o(ter.)75 2208 y Fg(2.3.5)30
+b(Searc)n(hing)21 b(the)f(History)h(List)137 2304 y Fm(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
+2359 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 2414 y(The)j(searc)o(h)f(ma)o(y)g(b)q(e)i
+Fh(anc)o(hored)p Fm(,)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 2469 y(history)g(en)o(try)l
+(.)1650 2560 y(F)l(unction)-1749 b Ff(int)20 b Fe(history)p
+351 2560 V 20 w(searc)n(h)j Fd(\()p Fl(char)14 b(*string,)g(int)h
+(direction)p Fd(\))195 2615 y Fm(Searc)o(h)g(the)h(history)f(for)f
+Fh(string)p Fm(,)h(starting)f(at)h(the)g(curren)o(t)g(history)g
+(o\013set.)k(If)d Fh(direction)195 2670 y Fl(<)j Fm(0,)g(then)g(the)h
+(searc)o(h)e(is)i(through)e(previous)i(en)o(tries,)g(else)g(through)f
+(subsequen)o(t.)32 b(If)p eop
+%%Page: 6 8
+6 7 bop 75 -58 a Fm(6)1347 b(GNU)15 b(History)g(Library)195
+183 y Fh(string)k Fm(is)d(found,)f(then)h(the)f(curren)o(t)g(history)g
+(index)i(is)f(set)f(to)f(that)h(history)g(en)o(try)l(,)g(and)195
+238 y(the)g(v)m(alue)h(returned)f(is)g(the)g(o\013set)f(in)h(the)g
+(line)h(of)e(the)h(en)o(try)g(where)g Fh(string)j Fm(w)o(as)c(found.)
+195 293 y(Otherwise,)i(nothing)f(is)h(c)o(hanged,)f(and)h(a)e(-1)h(is)h
+(returned.)1650 396 y(F)l(unction)-1749 b Ff(int)20 b
+Fe(history)p 351 396 18 3 v 20 w(searc)n(h)p 527 396
+V 21 w(pre\014x)i Fd(\()p Fl(char)15 b(*string,)f(int)g(direction)p
+Fd(\))195 451 y Fm(Searc)o(h)i(the)f(history)g(for)g
+Fh(string)p Fm(,)g(starting)g(at)g(the)g(curren)o(t)h(history)f
+(o\013set.)k(The)d(searc)o(h)195 506 y(is)h(anc)o(hored:)23
+b(matc)o(hing)17 b(lines)h(m)o(ust)e(b)q(egin)i(with)f
+Fh(string)p Fm(.)25 b(If)17 b Fh(direction)h Fl(<)e Fm(0,)h(then)g(the)
+195 560 y(searc)o(h)f(is)g(through)f(previous)i(en)o(tries,)f(else)g
+(through)g(subsequen)o(t.)22 b(If)16 b Fh(string)k Fm(is)c(found,)195
+615 y(then)i(the)g(curren)o(t)g(history)g(index)h(is)g(set)e(to)h(that)
+f(en)o(try)l(,)h(and)g(the)g(return)g(v)m(alue)h(is)g(0.)195
+670 y(Otherwise,)d(nothing)f(is)h(c)o(hanged,)f(and)h(a)e(-1)h(is)h
+(returned.)1650 773 y(F)l(unction)-1749 b Ff(int)20 b
+Fe(history)p 351 773 V 20 w(searc)n(h)p 527 773 V 21
+w(p)r(os)h Fd(\()p Fl(char)15 b(*string,)f(int)g(direction,)g(int)283
+828 y(pos)p Fd(\))195 883 y Fm(Searc)o(h)h(for)g Fh(string)k
+Fm(in)d(the)f(history)g(list,)g(starting)g(at)f Fh(p)q(os)p
+Fm(,)h(an)g(absolute)g(index)i(in)o(to)e(the)195 937
+y(list.)21 b(If)15 b Fh(direction)h Fm(is)g(negativ)o(e,)f(the)g(searc)
+o(h)g(pro)q(ceeds)g(bac)o(kw)o(ard)g(from)f Fh(p)q(os)p
+Fm(,)h(otherwise)195 992 y(forw)o(ard.)27 b(Returns)18
+b(the)g(absolute)g(index)h(of)f(the)g(history)f(elemen)o(t)i(where)f
+Fh(string)k Fm(w)o(as)195 1047 y(found,)15 b(or)g(-1)g(otherwise.)75
+1170 y Fg(2.3.6)30 b(Managing)20 b(the)g(History)h(File)137
+1272 y Fm(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 1327 y(men)o(ts)f(the)g(functions)h(for)f
+(managing)g(a)g(history)g(\014le.)1650 1430 y(F)l(unction)-1749
+b Ff(int)20 b Fe(read)p 286 1430 V 20 w(history)i Fd(\()p
+Fl(char)15 b(*filename)p Fd(\))195 1485 y Fm(Add)h(the)f(con)o(ten)o
+(ts)f(of)h Fh(\014lename)j Fm(to)d(the)g(history)g(list,)g(a)g(line)h
+(at)f(a)f(time.)21 b(If)15 b Fh(\014lename)j Fm(is)195
+1539 y Fl(NULL)p Fm(,)c(then)i(read)f(from)f(`)p Fl(~/.history)p
+Fm('.)k(Returns)e(0)f(if)g(successful,)i(or)d(errno)h(if)h(not.)1650
+1643 y(F)l(unction)-1749 b Ff(int)20 b Fe(read)p 286
+1643 V 20 w(history)p 481 1643 V 20 w(range)i Fd(\()p
+Fl(char)15 b(*filename,)e(int)i(from,)g(int)f(to)p Fd(\))195
+1697 y Fm(Read)21 b(a)f(range)g(of)g(lines)i(from)e Fh(\014lename)p
+Fm(,)i(adding)f(them)g(to)f(the)g(history)h(list.)36
+b(Start)195 1752 y(reading)15 b(at)e(line)j Fh(from)e
+Fm(and)g(end)h(at)e Fh(to)p Fm(.)19 b(If)c Fh(from)e
+Fm(is)i(zero,)f(start)f(at)g(the)h(b)q(eginning.)22 b(If)15
+b Fh(to)195 1807 y Fm(is)i(less)g(than)f Fh(from)p Fm(,)g(then)h(read)f
+(un)o(til)i(the)e(end)h(of)f(the)h(\014le.)24 b(If)17
+b Fh(\014lename)j Fm(is)d Fl(NULL)p Fm(,)f(then)195 1862
+y(read)f(from)g(`)p Fl(~/.history)p Fm('.)i(Returns)f(0)f(if)h
+(successful,)g(or)e Fl(errno)h Fm(if)h(not.)1650 1965
+y(F)l(unction)-1749 b Ff(int)20 b Fe(write)p 304 1965
+V 22 w(history)i Fd(\()p Fl(char)15 b(*filename)p Fd(\))195
+2020 y Fm(W)l(rite)23 b(the)f(curren)o(t)g(history)h(to)f
+Fh(\014lename)p Fm(,)j(o)o(v)o(erwriting)d Fh(\014lename)k
+Fm(if)d(necessary)l(.)42 b(If)195 2074 y Fh(\014lename)20
+b Fm(is)d Fl(NULL)p Fm(,)f(then)g(write)h(the)f(history)h(list)g(to)f
+(`)p Fl(~/.history)p Fm('.)21 b(V)l(alues)d(returned)195
+2129 y(are)d(as)g(in)h Fl(read_history)d(\(\))p Fm(.)1650
+2232 y(F)l(unction)-1749 b Ff(int)20 b Fe(app)r(end)p
+360 2232 V 19 w(history)j Fd(\()p Fl(int)14 b(nelements,)g(char)h
+(*filename)p Fd(\))195 2287 y Fm(App)q(end)i(the)e(last)g
+Fh(nelemen)o(ts)j Fm(of)d(the)g(history)g(list)h(to)f
+Fh(\014lename)p Fm(.)1650 2390 y(F)l(unction)-1749 b
+Ff(int)20 b Fe(history)p 351 2390 V 20 w(truncate)p 582
+2390 V 21 w(\014le)k Fd(\()p Fl(char)14 b(*filename,)g(int)h(nlines)p
+Fd(\))195 2445 y Fm(T)l(runcate)g(the)h(history)f(\014le)h
+Fh(\014lename)p Fm(,)g(lea)o(ving)g(only)g(the)f(last)g
+Fh(nlines)k Fm(lines.)75 2568 y Fg(2.3.7)30 b(History)20
+b(Expansion)137 2670 y Fm(These)c(functions)g(implemen)o(t)g
+Fl(csh)p Fm(-lik)o(e)g(history)g(expansion.)p eop
+%%Page: 7 9
+7 8 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)889 b(7)1650 183 y(F)l(unction)-1749 b Ff(int)20
+b Fe(history)p 351 183 18 3 v 20 w(expand)j Fd(\()p Fl(char)14
+b(*string,)g(char)h(**output)p Fd(\))195 238 y Fm(Expand)g
+Fh(string)p Fm(,)g(placing)h(the)f(result)h(in)o(to)f
+Fh(output)p Fm(,)f(a)h(p)q(oin)o(ter)g(to)g(a)f(string)h(\(see)g
+Fj(h)p Fm(unde-)195 293 y(\014ned)p Fj(i)h Fm([History)e(In)o
+(teraction],)h(page)g Fj(h)p Fm(unde\014ned)p Fj(i)p
+Fm(\).)21 b(Returns:)195 370 y Fl(0)216 b Fm(If)16 b(no)g(expansions)h
+(to)q(ok)e(place)i(\(or,)d(if)j(the)f(only)g(c)o(hange)g(in)h(the)e
+(text)h(w)o(as)435 425 y(the)f(de-slashifying)j(of)c(the)i(history)f
+(expansion)h(c)o(haracter\);)195 502 y Fl(1)216 b Fm(if)16
+b(expansions)g(did)g(tak)o(e)e(place;)195 580 y Fl(-1)192
+b Fm(if)16 b(there)f(w)o(as)f(an)h(error)g(in)h(expansion;)195
+657 y Fl(2)216 b Fm(if)16 b(the)g(returned)g(line)i(should)f(only)f(b)q
+(e)h(displa)o(y)o(ed,)f(but)g(not)g(executed,)g(as)435
+712 y(with)11 b(the)f Fl(:p)g Fm(mo)q(di\014er)h(\(see)g
+Fj(h)p Fm(unde\014ned)p Fj(i)g Fm([Mo)q(di\014ers],)g(page)f
+Fj(h)p Fm(unde\014ned)p Fj(i)p Fm(\).)195 789 y(If)15
+b(an)g(error)f(o)q(curred)i(in)g(expansion,)f(then)h
+Fh(output)f Fm(con)o(tains)g(a)g(descriptiv)o(e)i(error)d(mes-)195
+844 y(sage.)1650 932 y(F)l(unction)-1749 b Ff(char)20
+b(*)f Fe(history)p 422 932 V 21 w(arg)p 524 932 V 19
+w(extract)24 b Fd(\()p Fl(int)14 b(first,)h(int)g(last,)f(char)283
+987 y(*string)p Fd(\))195 1042 y Fm(Extract)g(a)g(string)g(segmen)o(t)g
+(consisting)i(of)e(the)g Fh(\014rst)i Fm(through)e Fh(last)h
+Fm(argumen)o(ts)f(presen)o(t)195 1097 y(in)i Fh(string)p
+Fm(.)k(Argumen)o(ts)15 b(are)f(brok)o(en)i(up)f(as)g(in)h(Bash.)1650
+1185 y(F)l(unction)-1749 b Ff(char)20 b(*)f Fe(get)p
+324 1185 V 21 w(history)p 520 1185 V 20 w(ev)n(en)n(t)25
+b Fd(\()p Fl(char)14 b(*string,)g(int)h(*cindex,)f(int)283
+1240 y(qchar)p Fd(\))195 1295 y Fm(Returns)h(the)g(text)f(of)g(the)h
+(history)g(ev)o(en)o(t)f(b)q(eginning)j(at)d Fh(string)k
+Fl(+)d Fh(*cindex)p Fm(.)20 b Fh(*cindex)f Fm(is)195
+1350 y(mo)q(di\014ed)e(to)e(p)q(oin)o(t)h(to)f(after)g(the)h(ev)o(en)o
+(t)f(sp)q(eci\014er.)23 b(A)o(t)16 b(function)g(en)o(try)l(,)f
+Fh(cindex)21 b Fm(p)q(oin)o(ts)195 1404 y(to)16 b(the)h(index)h(in)o
+(to)e Fh(string)21 b Fm(where)c(the)g(history)f(ev)o(en)o(t)h(sp)q
+(eci\014cation)h(b)q(egins.)26 b Fh(qc)o(har)19 b Fm(is)195
+1459 y(a)h(c)o(haracter)g(that)g(is)h(allo)o(w)o(ed)f(to)g(end)h(the)g
+(ev)o(en)o(t)f(sp)q(eci\014cation)i(in)g(addition)f(to)f(the)195
+1514 y(\\normal")15 b(terminating)g(c)o(haracters.)1650
+1602 y(F)l(unction)-1749 b Ff(char)20 b(**)f Fe(history)p
+448 1602 V 21 w(tok)n(enize)25 b Fd(\()p Fl(char)14 b(*string)p
+Fd(\))195 1657 y Fm(Return)j(an)g(arra)o(y)f(of)g(tok)o(ens)g(parsed)h
+(out)g(of)f Fh(string)p Fm(,)h(m)o(uc)o(h)g(as)f(the)h(shell)h(migh)o
+(t.)25 b(The)195 1712 y(tok)o(ens)d(are)g(split)i(on)f(white)g(space)g
+(and)f(on)h(the)g(c)o(haracters)f Fl(\(\)<>;&|$)p Fm(,)h(and)f(shell)
+195 1767 y(quoting)15 b(con)o(v)o(en)o(tions)h(are)e(ob)q(ey)o(ed.)75
+1892 y Fk(2.4)33 b(History)22 b(V)-6 b(ariables)137 1987
+y Fm(This)23 b(section)f(describ)q(es)h(the)f(externally)h(visible)h(v)
+m(ariables)f(exp)q(orted)f(b)o(y)g(the)g(GNU)f(History)75
+2042 y(Library)l(.)1661 2130 y(V)l(ariable)-1749 b Ff(int)20
+b Fe(history)p 351 2130 V 20 w(base)195 2185 y Fm(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.)1661 2274 y(V)l(ariable)-1749 b Ff(int)20
+b Fe(history)p 351 2274 V 20 w(length)195 2329 y Fm(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.)1661 2417 y(V)l(ariable)-1749 b Ff(int)20
+b Fe(max)p 283 2417 V 19 w(input)p 435 2417 V 21 w(history)195
+2472 y Fm(The)14 b(maxim)o(um)f(n)o(um)o(b)q(er)h(of)e(history)i(en)o
+(tries.)19 b(This)14 b(m)o(ust)f(b)q(e)h(c)o(hanged)g(using)g
+Fl(stifle_)195 2527 y(history)g(\(\))p Fm(.)1661 2615
+y(V)l(ariable)-1749 b Ff(char)20 b Fe(history)p 377 2615
+V 20 w(expansion)p 644 2615 V 21 w(c)n(har)195 2670 y
+Fm(The)15 b(c)o(haracter)g(that)f(starts)g(a)h(history)g(ev)o(en)o(t.)
+20 b(The)15 b(default)h(is)g(`)p Fl(!)p Fm('.)p eop
+%%Page: 8 10
+8 9 bop 75 -58 a Fm(8)1347 b(GNU)15 b(History)g(Library)1661
+183 y(V)l(ariable)-1749 b Ff(char)20 b Fe(history)p 377
+183 18 3 v 20 w(subst)p 529 183 V 20 w(c)n(har)195 238
+y Fm(The)13 b(c)o(haracter)e(that)h(in)o(v)o(ok)o(es)g(w)o(ord)g
+(substitution)h(if)g(found)g(at)e(the)i(start)e(of)h(a)g(line.)21
+b(The)195 293 y(default)16 b(is)f(`)p Fl(^)p Fm('.)1661
+388 y(V)l(ariable)-1749 b Ff(char)20 b Fe(history)p 377
+388 V 20 w(commen)n(t)p 627 388 V 19 w(c)n(har)195 443
+y Fm(During)e(tok)o(enization,)h(if)f(this)h(c)o(haracter)e(is)i(seen)f
+(as)g(the)g(\014rst)g(c)o(haracter)f(of)g(a)h(w)o(ord,)195
+498 y(then)e(it)g(and)g(all)h(subsequen)o(t)g(c)o(haracters)e(up)h(to)g
+(a)f(newline)j(are)e(ignored,)g(suppressing)195 553 y(history)f
+(expansion)h(for)f(the)g(remainder)h(of)f(the)g(line.)22
+b(This)15 b(is)h(disabled)h(b)o(y)e(default.)1661 648
+y(V)l(ariable)-1749 b Ff(char)20 b(*)f Fe(history)p 422
+648 V 21 w(no)p 504 648 V 20 w(expand)p 704 648 V 20
+w(c)n(hars)195 703 y Fm(The)j(list)h(of)f(c)o(haracters)f(whic)o(h)i
+(inhibit)h(history)e(expansion)h(if)g(found)f(immediately)195
+758 y(follo)o(wing)16 b Fh(history)p 528 758 14 2 v 16
+w(expansion)p 739 758 V 18 w(c)o(har)p Fm(.)j(The)d(default)f(is)h
+(whitespace)g(and)g(`)p Fl(=)p Fm('.)1661 853 y(V)l(ariable)-1749
+b Ff(char)20 b(*)f Fe(history)p 422 853 18 3 v 21 w(searc)n(h)p
+599 853 V 20 w(delimiter)p 843 853 V 23 w(c)n(hars)195
+908 y Fm(The)f(list)h(of)e(additional)i(c)o(haracters)e(whic)o(h)i(can)
+f(delimit)h(a)f(history)g(searc)o(h)f(string,)h(in)195
+963 y(addition)c(to)d(whitespace,)j(`)p Fl(:)p Fm(')d(and)i(`)p
+Fl(?)p Fm(')f(in)h(the)f(case)h(of)f(a)g(substring)h(searc)o(h.)19
+b(The)12 b(default)195 1018 y(is)k(empt)o(y)l(.)1661
+1113 y(V)l(ariable)-1749 b Ff(int)20 b Fe(history)p 351
+1113 V 20 w(quotes)p 533 1113 V 21 w(inhibit)p 717 1113
+V 23 w(expansion)195 1168 y Fm(If)13 b(non-zero,)f(single-quoted)i(w)o
+(ords)e(are)g(not)g(scanned)h(for)f(the)g(history)h(expansion)g(c)o
+(har-)195 1223 y(acter.)19 b(The)d(default)g(v)m(alue)g(is)g(0.)1661
+1318 y(V)l(ariable)-1749 b Ff(Function)20 b(*)g Fe(history)p
+527 1318 V 20 w(inhibit)p 710 1318 V 23 w(expansion)p
+980 1318 V 21 w(function)195 1373 y Fm(This)12 b(should)g(b)q(e)g(set)f
+(to)f(the)i(address)f(of)g(a)g(function)h(that)e(tak)o(es)h(t)o(w)o(o)f
+(argumen)o(ts:)17 b(a)11 b Fl(char)195 1428 y(*)j Fm(\()p
+Fh(string)t Fm(\))f(and)i(an)f(in)o(teger)g(index)h(in)o(to)f(that)g
+(string)g(\()p Fh(i)r Fm(\).)20 b(It)14 b(should)h(return)f(a)g
+(non-zero)195 1482 y(v)m(alue)g(if)e(the)h(history)f(expansion)h
+(starting)f(at)g Fh(string[i])i Fm(should)f(not)f(b)q(e)h(p)q
+(erformed;)g(zero)195 1537 y(if)g(the)h(expansion)f(should)h(b)q(e)g
+(done.)20 b(It)13 b(is)g(in)o(tended)i(for)d(use)h(b)o(y)g
+(applications)i(lik)o(e)f(Bash)195 1592 y(that)j(use)h(the)g(history)f
+(expansion)i(c)o(haracter)e(for)g(additional)i(purp)q(oses.)28
+b(By)18 b(default,)195 1647 y(this)e(v)m(ariable)g(is)g(set)f(to)f
+(NULL.)75 1780 y Fk(2.5)33 b(History)22 b(Programming)h(Example)137
+1878 y Fm(The)16 b(follo)o(wing)g(program)e(demonstrates)g(simple)j
+(use)e(of)g(the)g(GNU)g(History)g(Library)l(.)195 1944
+y Fl(main)23 b(\(\))195 1995 y({)243 2047 y(char)g(line[1024],)f(*t;)
+243 2099 y(int)h(len,)g(done)h(=)g(0;)243 2203 y(line[0])f(=)g(0;)243
+2307 y(using_history)f(\(\);)243 2359 y(while)h(\(!done\))290
+2411 y({)338 2462 y(printf)g(\("history$)g("\);)338 2514
+y(fflush)g(\(stdout\);)338 2566 y(t)h(=)g(fgets)f(\(line,)g(sizeof)g
+(\(line\))g(-)h(1,)f(stdin\);)338 2618 y(if)h(\(t)f(&&)h(*t\))386
+2670 y({)p eop
+%%Page: 9 11
+9 10 bop 75 -58 a Fm(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)889 b(9)434 183 y Fl(len)23 b(=)h(strlen)f(\(t\);)434
+235 y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))481 287 y(t[len)h(-)f(1])h
+(=)g('\\0';)386 339 y(})338 443 y(if)g(\(!t\))386 495
+y(strcpy)f(\(line,)g("quit"\);)338 598 y(if)h(\(line[0]\))386
+650 y({)434 702 y(char)f(*expansion;)434 754 y(int)g(result;)434
+858 y(result)g(=)g(history_expand)f(\(line,)h(&expansion\);)434
+910 y(if)g(\(result\))481 962 y(fprintf)g(\(stderr,)g("\045s\\n",)g
+(expansion\);)434 1065 y(if)g(\(result)g(<)h(0)g(||)f(result)g(==)h
+(2\))481 1117 y({)529 1169 y(free)f(\(expansion\);)529
+1221 y(continue;)481 1273 y(})434 1377 y(add_history)f(\(expansion\);)
+434 1429 y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h
+(1\);)434 1480 y(free)f(\(expansion\);)386 1532 y(})338
+1636 y(if)h(\(strcmp)f(\(line,)g("quit"\))g(==)g(0\))386
+1688 y(done)g(=)h(1;)338 1740 y(else)f(if)h(\(strcmp)f(\(line,)g
+("save"\))g(==)h(0\))386 1792 y(write_history)e(\("history_file"\);)338
+1844 y(else)h(if)h(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))386
+1896 y(read_history)e(\("history_file"\);)338 1947 y(else)h(if)h
+(\(strcmp)f(\(line,)g("list"\))g(==)h(0\))386 1999 y({)434
+2051 y(register)e(HIST_ENTRY)h(**the_list;)434 2103 y(register)f(int)i
+(i;)434 2207 y(the_list)e(=)i(history_list)e(\(\);)434
+2259 y(if)h(\(the_list\))481 2311 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e
+(i++\))529 2363 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g
+(history_base,)e(the_list[i]->line\);)386 2414 y(})338
+2466 y(else)h(if)h(\(strncmp)f(\(line,)g("delete",)g(6\))g(==)h(0\))386
+2518 y({)434 2570 y(int)f(which;)434 2622 y(if)g(\(\(sscanf)g(\(line)g
+(+)h(6,)f("\045d",)h(&which\)\))e(==)i(1\))p eop
+%%Page: 10 12
+10 11 bop 75 -58 a Fm(10)1324 b(GNU)15 b(History)g(Library)481
+183 y Fl({)529 235 y(HIST_ENTRY)23 b(*entry)g(=)g(remove_history)f
+(\(which\);)529 287 y(if)i(\(!entry\))577 339 y(fprintf)f(\(stderr,)f
+("No)i(such)f(entry)g(\045d\\n",)g(which\);)529 391 y(else)577
+443 y({)625 495 y(free)g(\(entry->line\);)625 546 y(free)g(\(entry\);)
+577 598 y(})481 650 y(})434 702 y(else)481 754 y({)529
+806 y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f
+(`delete'\\n"\);)481 858 y(})386 910 y(})290 962 y(})195
+1013 y(})p eop
+%%Page: 11 13
+11 12 bop 75 -58 a Fm(App)q(endix)17 b(A:)e(Concept)g(Index)1196
+b(11)75 183 y Fi(App)r(endix)25 b(A)41 b(Concept)27 b(Index)137
+359 y Fc(\(Index)14 b(is)f(nonexisten)o(t\))p eop
+%%Page: 12 14
+12 13 bop 75 -58 a Fm(12)1324 b(GNU)15 b(History)g(Library)p
eop
-14 15 bop 0 -58 a Fo(14)1474 b(GNU)15 b(History)g(Library)454
-183 y Fn(if)24 b(\(!entry\))502 235 y(fprintf)f(\(stderr,)f("No)i(such)
-f(entry)g(\045d\\n",)g(which\);)454 287 y(else)502 339
-y({)550 391 y(free)g(\(entry->line\);)550 443 y(free)g(\(entry\);)502
-495 y(})406 546 y(})359 598 y(else)406 650 y({)454 702
-y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f
-(`delete'\\n"\);)406 754 y(})311 806 y(})215 858 y(})120
-910 y(})p eop
-15 16 bop 0 -58 a Fo(App)q(endix)17 b(A:)e(Concept)g(Index)1346
-b(15)0 183 y Fk(App)r(endix)13 b(A)41 b(Concept)15 b(Index)0
-430 y Fm(A)0 496 y Fe(anc)o(hored)f(searc)o(h)5 b Fd(.)i(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)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(.)18
-b Fe(9)0 604 y Fm(E)0 670 y Fe(ev)o(en)o(t)13 b(designators)g
-Fd(.)6 b(.)h(.)f(.)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(.)h(.)f(.)g
-(.)23 b Fe(1)1015 430 y Fm(H)1015 496 y Fe(history)15
-b(ev)o(en)o(ts)5 b Fd(.)i(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(1)1015 554
-y(history)d(expansion)8 b Fd(.)h(.)d(.)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(.)h(.)f(.)g(.)g(.)g(.)21 b Fe(1)1015 612 y(History)14
-b(Searc)o(hing)7 b Fd(.)h(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)20 b Fe(9)p eop
-16 17 bop 0 -58 a Fo(16)1474 b(GNU)15 b(History)g(Library)p
+%%Page: 13 15
+13 14 bop 75 -58 a Fm(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l
+(ariable)g(Index)919 b(13)75 183 y Fi(App)r(endix)25
+b(B)41 b(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
+b(Index)137 359 y Fc(\(Index)14 b(is)f(nonexisten)o(t\))p
eop
-17 18 bop 0 -58 a Fo(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l
-(ariable)g(Index)1069 b(17)0 183 y Fk(App)r(endix)13
-b(B)41 b(F)-7 b(unction)15 b(and)g(V)-7 b(ariable)14
-b(Index)0 430 y Fm(A)0 496 y Fc(add)p 62 496 12 2 v 13
-w(history)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)20 b Fe(7)0 554 y
-Fc(append)p 122 554 V 12 w(history)9 b Fd(.)d(.)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(.)h(.)f(.)g(.)g(.)g(.)24 b Fe(10)0
-679 y Fm(C)0 745 y Fc(clear)p 102 745 V 12 w(history)5
-b Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)18 b Fe(7)0 803 y Fc(current)p 142 803
-V 11 w(history)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)24 b Fe(8)0 928 y Fm(G)0 994 y Fc(get)p
-62 994 V 13 w(history)p 215 994 V 11 w(event)9 b Fd(.)d(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fe(11)0 1119
-y Fm(H)0 1185 y Fc(history)p 142 1185 V 11 w(arg)p 213
-1185 V 13 w(extract)8 b Fd(.)t(.)e(.)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(.)21 b Fe(10)0 1243 y Fc(history)p 142 1243 V 11 w(base)e
-Fd(.)6 b(.)g(.)g(.)h(.)f(.)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(.)h
-(.)f(.)g(.)20 b Fe(11)0 1301 y Fc(history)p 142 1301
-V 11 w(comment)p 293 1301 V 12 w(char)g Fd(.)6 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(.)h(.)21 b Fe(11)0 1359 y Fc(history)p 142 1359
-V 11 w(expand)10 b Fd(.)c(.)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(.)
-h(.)f(.)g(.)g(.)g(.)24 b Fe(10)0 1418 y Fc(history)p
-142 1418 V 11 w(expansion)p 333 1418 V 11 w(char)17 b
-Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(11)0 1476
-y Fc(history)p 142 1476 V 11 w(get)8 b Fd(.)d(.)h(.)g(.)g(.)g(.)g(.)h
-(.)f(.)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(.)h(.)f(.)20
-b Fe(8)0 1534 y Fc(history)p 142 1534 V 11 w(get)p 213
-1534 V 13 w(history)p 366 1534 V 12 w(state)t Fd(.)t(.)6
-b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)17 b Fe(6)0 1592 y Fc(history)p
-142 1592 V 11 w(inhibit)p 293 1592 V 12 w(expansion)p
-484 1592 V 10 w(function)k Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)23 b Fe(12)0 1650 y Fc(history)p 142 1650 V 11
-w(is)p 193 1650 V 14 w(stifled)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)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(.)23 b Fe(7)0 1708 y Fc(history)p
-142 1708 V 11 w(length)16 b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(11)0 1766 y Fc(history)p
-142 1766 V 11 w(list)7 b Fd(.)t(.)g(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(8)0 1824
-y Fc(history)p 142 1824 V 11 w(no)p 193 1824 V 14 w(expand)p
-327 1824 V 12 w(chars)f Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)20
-b Fe(12)0 1883 y Fc(history)p 142 1883 V 11 w(quotes)p
-273 1883 V 12 w(inhibit)p 425 1883 V 12 w(expansion)14
-b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17
-b Fe(12)0 1941 y Fc(history)p 142 1941 V 11 w(search)t
-Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)17 b Fe(9)0 1999 y Fc(history)p 142 1999 V
-11 w(search)p 273 1999 V 12 w(delimiter)p 465 1999 V
-11 w(chars)h Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)20 b Fe(12)0 2057 y Fc(history)p 142 2057
-V 11 w(search)p 273 2057 V 12 w(pos)9 b Fd(.)d(.)g(.)g(.)g(.)h(.)f(.)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(.)23 b Fe(9)0 2115 y Fc(history)p
-142 2115 V 11 w(search)p 273 2115 V 12 w(prefix)6 b Fd(.)t(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(9)0 2173 y Fc(history)p
-142 2173 V 11 w(set)p 213 2173 V 13 w(history)p 366 2173
-V 12 w(state)t Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Fe(6)1015
-430 y Fc(history)p 1157 430 V 12 w(set)p 1229 430 V 13
-w(pos)5 b Fd(.)g(.)h(.)g(.)g(.)h(.)f(.)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(.)19 b Fe(8)1015 488 y Fc(history)p 1157
-488 V 12 w(subst)p 1269 488 V 12 w(char)k Fd(.)6 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(.)25 b Fe(11)1015 546 y Fc(history)p
-1157 546 V 12 w(tokenize)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)22 b Fe(11)1015 604 y Fc(history)p
-1157 604 V 12 w(total)p 1269 604 V 12 w(bytes)9 b Fd(.)t(.)d(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Fe(8)1015 662
-y Fc(history)p 1157 662 V 12 w(truncate)p 1329 662 V
-11 w(file)5 b Fd(.)g(.)h(.)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(.)19
-b Fe(10)1015 770 y Fm(M)1015 836 y Fc(max)p 1077 836
-V 13 w(input)p 1190 836 V 13 w(history)14 b Fd(.)6 b(.)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(.)h(.)f(.)g(.)g(.)17 b Fe(11)1015 944
-y Fm(N)1015 1011 y Fc(next)p 1097 1011 V 13 w(history)7
-b Fd(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)20 b Fe(8)1015 1119 y Fm(P)1015 1185
-y Fc(previous)p 1177 1185 V 12 w(history)7 b Fd(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Fe(8)1015
-1293 y Fm(R)1015 1359 y Fc(read)p 1097 1359 V 13 w(history)7
-b Fd(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)20 b Fe(9)1015 1418 y Fc(read)p 1097
-1418 V 13 w(history)p 1250 1418 V 11 w(range)9 b Fd(.)d(.)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(.)h(.)f(.)g(.)g(.)g(.)23 b Fe(9)1015 1476
-y Fc(remove)p 1137 1476 V 12 w(history)t Fd(.)t(.)6 b(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17
-b Fe(7)1015 1534 y Fc(replace)p 1157 1534 V 12 w(history)p
-1309 1534 V 11 w(entry)6 b Fd(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)19 b Fe(7)1015 1642 y Fm(S)1015 1708 y Fc(stifle)p
-1137 1708 V 12 w(history)t Fd(.)t(.)6 b(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17 b Fe(7)1015 1816
-y Fm(U)1015 1883 y Fc(unstifle)p 1177 1883 V 12 w(history)7
-b Fd(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)23
-b Fe(7)1015 1941 y Fc(using)p 1117 1941 V 13 w(history)5
-b Fd(.)s(.)h(.)g(.)h(.)f(.)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
-(.)h(.)f(.)g(.)18 b Fe(6)1015 2049 y Fm(W)1015 2115 y
-Fc(where)p 1117 2115 V 13 w(history)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)18
-b Fe(8)1015 2173 y Fc(write)p 1117 2173 V 13 w(history)t
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)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(.)h(.)17 b Fe(10)p eop
-18 19 bop 0 -58 a Fo(18)1474 b(GNU)15 b(History)g(Library)p
+%%Page: 14 16
+14 15 bop 75 -58 a Fm(14)1324 b(GNU)15 b(History)g(Library)p
eop
--1 20 bop 1937 -58 a Fo(i)0 183 y Fk(T)-7 b(able)15 b(of)g(Con)n(ten)n
-(ts)0 358 y Fm(1)67 b(Using)22 b(History)h(In)n(teractiv)n(ely)15
-b Fb(.)e(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)f(.)h(.)g(.)37 b Fm(1)149 435 y Fo(1.1)45
-b(In)o(teractiv)o(e)15 b(History)g(Expansion)9 b Fa(.)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(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)23 b
-Fo(1)299 498 y(1.1.1)44 b(Ev)o(en)o(t)14 b(Designators)d
-Fa(.)d(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+%%Page: -1 17
+-1 16 bop 1862 -58 a Fm(i)75 183 y Fi(T)-7 b(able)27
+b(of)f(Con)n(ten)n(ts)75 354 y Fk(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 Fk(1)224 423 y Fm(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 Fm(1)374 478 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 Fm(1)374 532 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 Fm(2)374 587 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 Fm(2)75 708 y Fk(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 Fk(3)224 777 y Fm(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(.)26 b Fo(1)299 560 y(1.1.2)44 b(W)l(ord)15 b(Designators)t
-Fa(.)7 b(.)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(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)19 b Fo(2)299 622 y(1.1.3)44 b(Mo)q(di\014ers)15
-b Fa(.)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(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b Fo(2)0
-747 y Fm(2)67 b(Programming)23 b(with)g(GNU)f(History)11
-b Fb(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)
-g(.)33 b Fm(5)149 825 y Fo(2.1)45 b(In)o(tro)q(duction)16
-b(to)f(History)9 b Fa(.)e(.)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(.)h(.)f(.)24 b Fo(5)149
-887 y(2.2)45 b(History)15 b(Storage)c Fa(.)c(.)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(.)24 b Fm(3)224 832 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 Fm(3)224 886
+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 Fm(4)374 941 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
+Fm(4)374 996 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 Fm(4)374 1051 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 Fm(5)374 1106 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 Fm(5)374 1160 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 Fm(5)374 1215 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 Fm(6)374 1270 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(.)h(.)f(.)h(.)26 b Fo(5)149 949 y(2.3)45 b(History)15
-b(F)l(unctions)c Fa(.)e(.)e(.)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(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fo(6)299 1011 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e
-(Managemen)o(t)g Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)29 b Fo(6)299 1074 y(2.3.2)44 b(History)15 b(List)h(Managemen)o
-(t)d Fa(.)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(.)g(.)f(.)h(.)f(.)h(.)28
-b Fo(7)299 1136 y(2.3.3)44 b(Information)15 b(Ab)q(out)g(the)h(History)
-f(List)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)25 b Fo(7)299 1198 y(2.3.4)44
-b(Mo)o(ving)15 b(Around)g(the)g(History)g(List)10 b Fa(.)f(.)e(.)h(.)f
-(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)25 b Fo(8)299 1260 y(2.3.5)44 b(Searc)o(hing)16
-b(the)f(History)g(List)7 b Fa(.)h(.)g(.)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(.)21 b Fo(9)299 1323 y(2.3.6)44 b(Managing)15 b(the)g(History)g
-(File)5 b Fa(.)k(.)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(.)20
-b Fo(9)299 1385 y(2.3.7)44 b(History)15 b(Expansion)8
-b Fa(.)g(.)g(.)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(.)23 b Fo(10)149 1447 y(2.4)45 b(History)15 b(V)l(ariables)5
-b Fa(.)k(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+h(.)f(.)24 b Fm(6)224 1325 y(2.4)45 b(History)15 b(V)l(ariables)6
+b Fa(.)j(.)e(.)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(.)h
-(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)20 b Fo(11)149
-1510 y(2.5)45 b(History)15 b(Programming)f(Example)6
-b Fa(.)j(.)e(.)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(.)21
-b Fo(12)0 1634 y Fm(App)r(endix)j(A)67 b(Concept)22 b(Index)7
-b Fb(.)k(.)f(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)
-h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)29 b Fm(15)0 1774 y(App)r(endix)24
-b(B)67 b(F)-6 b(unction)25 b(and)e(V)-6 b(ariable)24
-b(Index)13 b Fb(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)35
-b Fm(17)p eop
--2 21 bop 0 -58 a Fo(ii)1496 b(GNU)15 b(History)g(Library)p
-eop end
+(.)f(.)h(.)f(.)h(.)f(.)21 b Fm(7)224 1380 y(2.5)45 b(History)15
+b(Programming)f(Example)7 b Fa(.)i(.)e(.)h(.)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 Fm(8)75 1501 y Fk(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 Fk(11)75 1636 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 Fk(13)p eop
+%%Page: -2 18
+-2 17 bop 75 -58 a Fm(ii)1346 b(GNU)15 b(History)g(Library)p
+eop
+%%Trailer
+end
userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/doc/history_toc.html b/doc/history_toc.html
index 645dedf..7e271c0 100644
--- a/doc/history_toc.html
+++ b/doc/history_toc.html
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.51
- from /usr/homes/chet/src/bash/readline-2.1/doc/hist.texinfo on 3 June 1997 -->
+ from /usr/homes/chet/src/bash/readline-2.2/doc/hist.texinfo on 2 April 1998 -->
<TITLE>GNU History Library - Table of Contents</TITLE>
</HEAD>
@@ -16,7 +16,7 @@
<UL>
<LI><A NAME="TOC1" HREF="history.html#SEC1">Using History Interactively</A>
<UL>
-<LI><A NAME="TOC2" HREF="history.html#SEC2">Interactive History Expansion</A>
+<LI><A NAME="TOC2" HREF="history.html#SEC2">History Expansion</A>
<UL>
<LI><A NAME="TOC3" HREF="history.html#SEC3">Event Designators</A>
<LI><A NAME="TOC4" HREF="history.html#SEC4">Word Designators</A>
@@ -44,7 +44,7 @@
<LI><A NAME="TOC20" HREF="history.html#SEC20">Function and Variable Index</A>
</UL>
<P><HR><P>
-This document was generated on 3 June 1997 using the
+This document was generated on 2 April 1998 using the
<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
translator version 1.51.</P>
</BODY>
diff --git a/doc/hsuser.texinfo b/doc/hsuser.texinfo
index 6e95649..76cb63b 100644
--- a/doc/hsuser.texinfo
+++ b/doc/hsuser.texinfo
@@ -29,7 +29,7 @@ into another language, under the above conditions for modified versions.
@ifset BashFeatures
This chapter describes how to use the GNU History Library interactively,
from a user's standpoint. It should be considered a user's guide. For
-information on using the GNU History Library in your own programs,
+information on using the GNU History Library in other programs,
see the GNU Readline Library Manual.
@end ifset
@ifclear BashFeatures
@@ -43,6 +43,8 @@ information on using the GNU History Library in your own programs,
@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
@@ -84,11 +86,10 @@ not saved. After saving the history, the history file is truncated
to contain no more than @code{$HISTFILESIZE}
lines. If @code{HISTFILESIZE} is not set, no truncation is performed.
-The builtin command @code{fc} (@pxref{Korn Shell Builtins})
-may be used to list or edit and re-execute a portion of
-the history list. The @code{history} builtin (@pxref{C Shell Builtins})
-can be used to display or modify the history list and
-manipulate 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 can be used to display or modify the history
+list and manipulate the history file.
When using the command-line editing, search commands
are available in each editing mode that provide access to the
history list.
@@ -104,11 +105,103 @@ 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.
-@xref{Bash Builtins} for a description of @code{shopt}.
+@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 that allow you to 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 @samp{-l} flag is
+given, the commands are listed on standard output. The @samp{-n} flag
+suppresses the command numbers when listing. The @samp{-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 @code{FCEDIT} variable if set, or the value of the
+@code{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 [-c] [@var{n}]
+history [-anrw] [@var{filename}]
+history -ps @var{arg}
+@end example
+
+Display the history list with line numbers. Lines prefixed with
+with a @samp{*} have been modified. An argument of @var{n} says
+to list only the last @var{n} lines. Options, if supplied, have
+the following meanings:
+
+@table @code
+@item -w
+Write out the current history to the history file.
+
+@item -r
+Read the current history file and append its contents to
+the history list.
+
+@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 -c
+Clear the history list. This may be combined
+with the other options to replace the history list completely.
+
+@item -s
+The @var{arg}s are added to the end of
+the history list as a single entry.
+
+@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.
+@end table
+
+When the @samp{-w}, @samp{-r}, @samp{-a}, or @samp{-n} option is
+used, if @var{filename}
+is given, then it is used as the history file. If not, then
+the value of the @code{HISTFILE} variable is used.
+
+@end table
@end ifset
@node History Interaction
-@section Interactive History Expansion
+@section History Expansion
@cindex history expansion
The History library provides a history expansion feature that is similar
@@ -121,14 +214,14 @@ 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 previous history should be used during substitution.
+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 previous history is called 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 English (or Unix) words
-surrounded by quotes are considered as one word.
+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
@@ -153,6 +246,7 @@ may be used to see what a history expansion will do before using it.
The @samp{-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.
@@ -176,7 +270,7 @@ history list.
@item @code{!}
Start a history substitution, except when followed by a space, tab,
-the end of the line, @key{=} or @key{(}.
+the end of the line, @samp{=} or @samp{(}.
@item @code{!@var{n}}
Refer to command line @var{n}.
@@ -210,7 +304,7 @@ The entire command line typed so far.
Word designators are used to select desired words from the event.
A @samp{:} separates the event specification from the word designator. It
-can be omitted if the word designator begins with a @samp{^}, @samp{$},
+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.
diff --git a/doc/readline.0 b/doc/readline.0
index e81db5a..c925d52 100644
--- a/doc/readline.0
+++ b/doc/readline.0
@@ -61,7 +61,7 @@ NNOOTTAATTIIOONN
-GNU 1997 Feb 5 1
+GNU 1998 Feb 19 1
@@ -127,7 +127,7 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
-GNU 1997 Feb 5 2
+GNU 1998 Feb 19 2
@@ -149,67 +149,83 @@ READLINE(3) READLINE(3)
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 FFuunnccttiioonn KKeeyy 11. The full set of escape sequences is
-
+ text FFuunnccttiioonn KKeeyy 11. The full set of GNU Emacs style
+ escape sequences is
\\CC-- control prefix
-
\\MM-- meta prefix
-
\\ee an escape character
-
\\\\ backslash
-
\\"" literal "
-
\\'' literal '
+ In addition to the GNU Emacs style escape sequences, a
+ second set of backslash escapes is available:
+ \\aa alert (bell)
+ \\bb backspace
+ \\dd delete
+ \\ff form feed
+ \\nn newline
+ \\rr carriage return
+ \\tt horizontal tab
+ \\vv vertical tab
+ \\_n_n_n the character whose ASCII code is the octal
+ value _n_n_n (one to three digits)
+ \\xx_n_n_n the character whose ASCII code is the hex-
+ adecimal value _n_n_n (one to three 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. Backslash will
- quote any 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-
+ 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.
- 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
- 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. 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
+GNU 1998 Feb 19 3
-GNU 1997 Feb 5 3
+READLINE(3) READLINE(3)
-READLINE(3) READLINE(3)
+ 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
+ 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. 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--
+ visible bell if one is available. If set to aauuddii--
bbllee, 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-
+ 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.
+ ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
+ 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-
@@ -240,6 +256,18 @@ READLINE(3) READLINE(3)
need this to enable the arrow keys.
eexxppaanndd--ttiillddee ((OOffff))
If set to oonn, tilde expansion is performed when
+
+
+
+GNU 1998 Feb 19 4
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
readline attempts word completion.
hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
When set to OOnn, makes readline use a single line
@@ -255,19 +283,7 @@ READLINE(3) READLINE(3)
value of eeddiittiinngg--mmooddee also affects the default
keymap.
mmaarrkk--ddiirreeccttoorriieess ((OOnn))
- If set to OOnn, completed directory names have a
-
-
-
-GNU 1997 Feb 5 4
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
+ If set to OOnn, complete<d directory names have a
slash appended.
mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
If set to OOnn, history lines that have been modified
@@ -281,6 +297,10 @@ READLINE(3) READLINE(3)
If set to OOnn, readline will display characters with
the eighth bit set directly rather than as a meta-
prefixed escape sequence.
+ pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff))
+ 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
@@ -295,13 +315,25 @@ READLINE(3) READLINE(3)
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 three parser
+ 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
+
+
+
+GNU 1998 Feb 19 5
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
are required to isolate it.
mmooddee The mmooddee== form of the $$iiff directive is used
@@ -321,19 +353,6 @@ READLINE(3) READLINE(3)
name before the first --. This allows _s_u_n to
match both _s_u_n and _s_u_n_-_c_m_d, for instance.
-
-
-
-
-GNU 1997 Feb 5 5
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
aapppplliiccaattiioonn
The aapppplliiccaattiioonn construct is used to include
application-specific settings. Each program
@@ -345,64 +364,72 @@ READLINE(3) READLINE(3)
the following command adds a key sequence
that quotes the current or previous word in
Bash:
+
$$iiff bash
# Quote the current or previous word
"\C-xq": "\eb\"\ef\""
$$eennddiiff
- $$eennddiiff This command, as you saw in the previous example,
- terminates an $$iiff command.
+ $$eennddiiff This command, as seen in the previous example, ter-
+ minates an $$iiff command.
$$eellssee Commands in this branch of the $$iiff directive are
executed if the test fails.
-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.
+ $$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:
- 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. The Escape character is used
- to terminate an incremental search. Control-J will also
- terminate the search. Control-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 Control-S or Control-R as appro-
- priate. This will search backward or forward in the his-
- tory 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 execute that command. For
- instance, a _n_e_w_l_i_n_e will terminate the search and accept
- the line, thereby executing the command from the history
- list.
+ $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
- 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 part of the con-
- tents of the current line.
+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_-
+GNU 1998 Feb 19 6
-GNU 1997 Feb 5 6
+READLINE(3) READLINE(3)
-READLINE(3) READLINE(3)
+ _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. The Escape character is used
+ to terminate an incremental search. Control-J will also
+ terminate the search. Control-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 Control-S or Control-R as appro-
+ priate. This will search backward or forward in the his-
+ tory 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 execute that command. For
+ instance, a _n_e_w_l_i_n_e will terminate the search and accept
+ the line, thereby executing the command from the history
+ list.
+
+ 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-
+ 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.
@@ -416,312 +443,351 @@ 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
+ 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 this, or the previous,
- word. Words are composed of alphanumeric charac-
+ Move back to the start of this, or the previous,
+ word. Words are composed of alphanumeric charac-
ters (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
+ Clear the screen leaving the current line at the
+ top of the screen. With an argument, refresh the
current line without clearing the screen.
+
+
+
+GNU 1998 Feb 19 7
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
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, add it to the history
- list. If the line is a modified history line, then
+ Accept the line regardless of where the cursor is.
+ If this line is non-empty, add it to the history
+ list. If the line is a modified history line, then
restore the history line to its original state.
pprreevviioouuss--hhiissttoorryy ((CC--pp))
- Fetch the previous command from the history 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-
+ Fetch the next command from the history list, mov-
ing 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
+ 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
+ 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.
-
-
-
-GNU 1997 Feb 5 7
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
+ 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
+ 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 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
+ 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
+ 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
+ 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
+ Insert the first argument to the previous command
+ (usually the second word on the previous line) at
point (the current cursor position). With an argu-
- ment _n, insert the _nth word from the previous com-
- mand (the words in the previous command begin with
- word 0). A negative argument inserts the _nth word
+ ment _n, insert the _nth word from the previous com-
+ mand (the words in the previous command begin with
+ word 0). A negative argument inserts the _nth word
from the end of the previous command.
+
+
+
+
+GNU 1998 Feb 19 8
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
- Insert the last argument to the previous command
- (the last word of the previous history entry).
+ 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 under the cursor. If point is
- at the beginning of the line, there are no charac-
- ters in the line, and the last character typed was
- not CC--dd, then return EEOOFF.
+ at the beginning of the line, there are no charac-
+ ters in the line, and the last character typed was
+ not bound to BBddeelleettee--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
+ a numeric argument, save the deleted text on the
kill ring.
qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
- Add the next character that you type to the line
- verbatim. This is how to insert characters like
+ 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. Point moves forward as well.
- If point is at the end of the line, then transpose
- the two characters before point. Negative
+ Drag the character before point forward over the
+ character at point. Point moves forward as well.
+ If point is at the end of the line, then transpose
+ the two characters before point. Negative argu-
+ ments don't work.
+ ttrraannssppoossee--wwoorrddss ((MM--tt))
+ Drag the word behind the cursor past the word in
+ front of the cursor moving the cursor over that
+ word as well.
+ uuppccaassee--wwoorrdd ((MM--uu))
+ 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.
+ ccaappiittaalliizzee--wwoorrdd ((MM--cc))
+ Capitalize the current (or following) word. With a
+ negative argument, capitalize the previous word,
+ but do not move point.
+ KKiilllliinngg aanndd YYaannkkiinngg
+ kkiillll--lliinnee ((CC--kk))
+ Kill the text from the current cursor position to
+ the end of the line.
-GNU 1997 Feb 5 8
+GNU 1998 Feb 19 9
-READLINE(3) READLINE(3)
- arguments don't work.
- ttrraannssppoossee--wwoorrddss ((MM--tt))
- Drag the word behind the cursor past the word in
- front of the cursor moving the cursor over that
- word as well.
- uuppccaassee--wwoorrdd ((MM--uu))
- Uppercase the current (or following) word. With a
- negative argument, do the previous word, but do not
- move point.
- ddoowwnnccaassee--wwoorrdd ((MM--ll))
- Lowercase the current (or following) word. With a
- negative argument, do the previous word, but do not
- move point.
- ccaappiittaalliizzee--wwoorrdd ((MM--cc))
- Capitalize the current (or following) word. With a
- negative argument, do the previous word, but do not
- move point.
+READLINE(3) READLINE(3)
+
- KKiilllliinngg aanndd YYaannkkiinngg
- kkiillll--lliinnee ((CC--kk))
- Kill the text from the current cursor position to
- the end of the line.
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.
+ 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
+ Kill all characters on the current line, no matter
where the cursor is.
kkiillll--wwoorrdd ((MM--dd))
- 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
+ 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 ffoorrwwaarrdd--wwoorrdd.
bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
- Kill the word behind the cursor. Word boundaries
+ Kill the word behind the cursor. Word boundaries
are the same as those used by bbaacckkwwaarrdd--wwoorrdd.
uunniixx--wwoorrdd--rruubboouutt ((CC--ww))
- Kill the word behind the cursor, using white space
- as a word boundary. The word boundaries are dif-
+ Kill the word behind the cursor, using white space
+ as a word boundary. The word boundaries are dif-
ferent from bbaacckkwwaarrdd--kkiillll--wwoorrdd.
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
+ 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.
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.
+ Copy the word before point to the kill buffer. The
+ word boundaries are the same as bbaacckkwwaarrdd--wwoorrdd.
ccooppyy--ffoorrwwaarrdd--wwoorrdd
- Copy the word following point to the kill buffer.
-
-
-
-GNU 1997 Feb 5 9
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
+ 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
+ Yank the top of the kill ring into the buffer at
the cursor.
yyaannkk--ppoopp ((MM--yy))
- Rotate the kill ring, and yank the new top. Only
+ Rotate the kill ring, and yank the new top. Only
works following 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-
+ Add this digit to the argument already accumulat-
+ ing, or start a new argument. M-- starts a nega-
tive 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
+ 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
+ numeric argument, but is otherwise ignored. As a
+ special case, if this command is immediately
+
+
+
+GNU 1998 Feb 19 10
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
+ 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 ini-
- tially one, so executing this function the first
- time makes the argument count four, a second time
+ 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.
CCoommpplleettiinngg
ccoommpplleettee ((TTAABB))
- Attempt to perform completion on the text before
+ 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.
+ 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
+ tion 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
+ 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--
+ Insert all completions of the text before point
+ that would have been generated by ppoossssiibbllee--ccoommppllee--
ttiioonnss.
+ 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 and the
+ original text is restored. An argument of _n moves
+ _n positions forward in the list of matches; a nega-
+ tive argument may be used to move backward through
+ the list. This command is intended to be bound to
+ TTAABB, but is unbound by default.
KKeeyybbooaarrdd MMaaccrrooss
ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
- Begin saving the characters typed into the current
+ 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.
+ 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.
-GNU 1997 Feb 5 10
+GNU 1998 Feb 19 11
-READLINE(3) READLINE(3)
+READLINE(3) READLINE(3)
- eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
- 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.
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
+ 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).
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-
+ If the metafied character _x is lowercase, run the
+ command that is bound to the corresponding upper-
case character.
pprreeffiixx--mmeettaa ((EESSCC))
- Metafy the next character typed. EESSCC ff is equiva-
+ Metafy the next character typed. EESSCC ff is equiva-
lent to MMeettaa--ff.
uunnddoo ((CC--__,, CC--xx CC--uu))
- Incremental undo, separately remembered for each
+ Incremental undo, separately remembered for each
line.
rreevveerrtt--lliinnee ((MM--rr))
- Undo all changes made to this line. This is like
- typing 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 current point. If a numeric
+ Set the mark to the current point. If a numeric
argument is supplied, the mark is set to that posi-
tion.
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
+ 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
+ A character is read and point is moved to the next
+ occurrence of that character. A negative count
searches for previous occurrences.
cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
- A character is read and point is moved to the pre-
- vious occurrence of that character. A negative
+ A character is read and point is moved to the pre-
+ vious occurrence of that character. A negative
count searches for subsequent occurrences.
iinnsseerrtt--ccoommmmeenntt ((MM--##))
The value of the readline ccoommmmeenntt--bbeeggiinn variable is
- inserted at the beginning of the current line, and
- the line is accepted as if a newline had been
- typed. This makes the current line a shell
+ inserted at the beginning of the current line, and
+ the line is accepted as if a newline had been
+ typed. This makes the current line a shell com-
+ ment.
+ dduummpp--ffuunnccttiioonnss
+ Print all of the functions and their key bindings
+ to the readline output stream. If a numeric argu-
+ ment 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--vvaarriiaabblleess
+ Print all of the settable variables and their
-GNU 1997 Feb 5 11
+GNU 1998 Feb 19 12
@@ -730,72 +796,44 @@ GNU 1997 Feb 5 11
READLINE(3) READLINE(3)
- comment.
- gglloobb--eexxppaanndd--wwoorrdd ((CC--xx **))
- The word before point is treated as a pattern for
- pathname expansion, and the list of matching file
- names is inserted, replacing the word.
- gglloobb--lliisstt--eexxppaannssiioonnss ((CC--xx gg))
- The list of expansions that would have been gener-
- ated by gglloobb--eexxppaanndd--wwoorrdd is inserted into the line,
- replacing the word before point.
- dduummpp--ffuunnccttiioonnss
- Print all of the functions and their key bindings
- to the readline output stream. If a numeric argu-
- ment 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--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
+ 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
+ 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.
eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee))
- When in vvii editing mode, this causes a switch to
+ When in vvii editing 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.
DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
- The following is a list of the default emacs and vi bind-
- ings. Characters with the 8th bit set are written as
+ The following is a list of the default emacs and vi bind-
+ ings. Characters with the 8th 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 _s_e_l_f_-_i_n_s_e_r_t
- function, which just inserts the given character into the
- input line. In vi insertion mode, all characters not
- specifically mentioned are bound to _s_e_l_f_-_i_n_s_e_r_t. 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 _m_e_t_a_f_i_e_d 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-
+ The printable ASCII characters not mentioned in the list
+ of emacs standard bindings are bound to the _s_e_l_f_-_i_n_s_e_r_t
+ function, which just inserts the given character into the
+ input line. In vi insertion mode, all characters not
+ specifically mentioned are bound to _s_e_l_f_-_i_n_s_e_r_t. 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 _m_e_t_a_f_i_e_d 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).
EEmmaaccss MMooddee
Emacs Standard bindings
"C-@" set-mark
-
-
-
-GNU 1997 Feb 5 12
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
"C-A" beginning-of-line
"C-B" backward-char
"C-D" delete-char
@@ -812,6 +850,18 @@ READLINE(3) READLINE(3)
"C-P" previous-history
"C-Q" quoted-insert
"C-R" reverse-search-history
+
+
+
+GNU 1998 Feb 19 13
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
"C-S" forward-search-history
"C-T" transpose-chars
"C-U" unix-line-discard
@@ -850,18 +900,6 @@ READLINE(3) READLINE(3)
"M-5" digit-argument
"M-6" digit-argument
"M-7" digit-argument
-
-
-
-GNU 1997 Feb 5 13
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
"M-8" digit-argument
"M-9" digit-argument
"M-<" beginning-of-history
@@ -878,6 +916,18 @@ READLINE(3) READLINE(3)
"M-R" revert-line
"M-T" transpose-words
"M-U" upcase-word
+
+
+
+GNU 1998 Feb 19 14
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
"M-Y" yank-pop
"M-\" delete-horizontal-space
"M-~" tilde-expand
@@ -916,18 +966,6 @@ READLINE(3) READLINE(3)
" " to "~" self-insert
"C-?" backward-delete-char
-
-
-
-GNU 1997 Feb 5 14
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
VI Command Mode functions
"C-D" vi-eof-maybe
@@ -944,6 +982,18 @@ READLINE(3) READLINE(3)
"C-R" reverse-search-history
"C-S" forward-search-history
"C-T" transpose-chars
+
+
+
+GNU 1998 Feb 19 15
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
"C-U" unix-line-discard
"C-V" quoted-insert
"C-W" unix-word-rubout
@@ -982,18 +1032,6 @@ READLINE(3) READLINE(3)
"X" backward-delete-char
"Y" vi-yank-to
"\" vi-complete
-
-
-
-GNU 1997 Feb 5 15
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
"^" vi-first-print
"_" vi-yank-arg
"`" vi-goto-mark
@@ -1010,6 +1048,18 @@ READLINE(3) READLINE(3)
"l" forward-char
"m" vi-set-mark
"n" vi-search-again
+
+
+
+GNU 1998 Feb 19 16
+
+
+
+
+
+READLINE(3) READLINE(3)
+
+
"p" vi-put
"r" vi-change-char
"s" vi-subst
@@ -1038,31 +1088,19 @@ 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
+ 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@_p_r_e_p_._a_i_._M_I_T_._E_d_u. 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@_p_r_e_p_._a_i_._M_I_T_._E_d_u or posted to the Usenet newsgroup
-
-
-
-GNU 1997 Feb 5 16
-
-
-
-
-
-READLINE(3) READLINE(3)
-
-
+ 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
+ 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
@@ -1079,44 +1117,6 @@ BBUUGGSS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GNU 1997 Feb 5 17
+GNU 1998 Feb 19 17
diff --git a/doc/readline.3 b/doc/readline.3
index 3d16168..bb9f759 100644
--- a/doc/readline.3
+++ b/doc/readline.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet@ins.CWRU.Edu
.\"
-.\" Last Change: Wed Feb 5 14:13:22 EST 1997
+.\" Last Change: Thu Feb 19 10:26:47 EST 1998
.\"
-.TH READLINE 3 "1997 Feb 5" GNU
+.TH READLINE 3 "1998 Feb 19" GNU
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
@@ -159,7 +159,7 @@ 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 \fIMeta\-\fP or \fIControl\-\fP
prefixes, or as a key sequence.
-When using the form \fBkeyname\fP:\fIfunction-name\fP or \fImacro\fP,
+When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP,
.I keyname
is the name of a key spelled out in English. For example:
.sp
@@ -185,7 +185,7 @@ expressed on the right hand side (that is, to insert the text
.I >&output
into the line).
.PP
-In the second form, \fB"keyseq"\fP:\fIfunction\-name\fP or \fImacro\fP,
+In the second form, \fB"keyseq"\fP:\^\fIfunction\-name\fP or \fImacro\fP,
.B keyseq
differs from
.B keyname
@@ -213,8 +213,9 @@ and
.I "ESC [ 1 1 ~"
is bound to insert the text
.BR "Function Key 1" .
-The full set of escape sequences is
+The full set of GNU Emacs style escape sequences is
.RS
+.PD 0
.TP
.B \eC\-
control prefix
@@ -234,11 +235,53 @@ literal "
.B \e'
literal '
.RE
+.PD
+.PP
+In addition to the GNU Emacs style escape sequences, a second
+set of backslash escapes is available:
+.RS
+.PD 0
+.TP
+.B \ea
+alert (bell)
+.TP
+.B \eb
+backspace
+.TP
+.B \ed
+delete
+.TP
+.B \ef
+form feed
+.TP
+.B \en
+newline
+.TP
+.B \er
+carriage return
+.TP
+.B \et
+horizontal tab
+.TP
+.B \ev
+vertical tab
+.TP
+.B \e\fInnn\fP
+the character whose ASCII code is the octal value \fInnn\fP
+(one to three digits)
+.TP
+.B \ex\fInnn\fP
+the character whose ASCII code is the hexadecimal value \fInnn\fP
+(one to three digits)
+.RE
+.PD
.PP
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. Backslash
-will quote any character in the macro text, including " and '.
+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 '.
.PP
.B Bash
allows the current readline key bindings to be displayed or modified
@@ -288,6 +331,10 @@ This command is bound to
in emacs mode and to
.B #
in vi command mode.
+.TP
+.B completion\-ignore\-case (Off)
+If set to \fBOn\fP, readline performs filename matching and completion
+in a case\-insensitive fashion.
.TP
.B completion\-query\-items (100)
This determines when the user is queried about viewing
@@ -346,7 +393,7 @@ the value of
also affects the default keymap.
.TP
.B mark\-directories (On)
-If set to \fBOn\fP, completed directory names have a slash
+If set to \fBOn\fP, complete<d directory names have a slash
appended.
.TP
.B mark\-modified\-lines (Off)
@@ -363,6 +410,10 @@ If set to \fBOn\fP, readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence.
.TP
+.B print\-completions\-horizontally (Off)
+If set to \fBOn\fP, readline will display completions with matches
+sorted horizontally in alphabetical order, rather than down the screen.
+.TP
.B show\-all\-if\-ambiguous (Off)
This alters the default behavior of the completion functions. If
set to
@@ -380,7 +431,7 @@ completions.
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 three parser directives used.
+of tests. There are four parser directives used.
.IP \fB$if\fP
The
.B $if
@@ -417,6 +468,7 @@ 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:
+.sp 1
.RS
.nf
\fB$if\fP bash
@@ -427,11 +479,21 @@ key sequence that quotes the current or previous word in Bash:
.RE
.RE
.IP \fB$endif\fP
-This command, as you saw in the previous example, terminates an
+This command, as seen in the previous example, terminates an
\fB$if\fP command.
.IP \fB$else\fP
Commands in this branch of the \fB$if\fP directive are executed if
the test fails.
+.IP \fB$include\fP
+This directive takes a single filename as an argument and reads commands
+and bindings from that file. For example, the following directive
+would read \fI/etc/inputrc\fP:
+.sp 1
+.RS
+.nf
+\fB$include\fP \^ \fI/etc/inputrc\fP
+.fi
+.RE
.SH SEARCHING
.PP
Readline provides commands for searching through the command history
@@ -464,7 +526,7 @@ the line, thereby executing the command from the history list.
.PP
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 part of the contents of the current line.
+typed by the user or be part of the contents of the current line.
.SH EDITING COMMANDS
.PP
The following is a list of the names of the commands and the default
@@ -567,6 +629,8 @@ yank\-last\-arg (M\-.\^, M\-_\^)
Insert the last argument to the previous command (the last word of
the previous history entry). With an argument,
behave exactly like \fByank\-nth\-arg\fP.
+Successive calls to \fByank\-last\-arg\fP move back through the history
+list, inserting the last argument of each line in turn.
.PD
.SS Commands for Changing Text
.PP
@@ -575,9 +639,7 @@ behave exactly like \fByank\-nth\-arg\fP.
.B delete\-char (C\-d)
Delete the character under the cursor. If point is at the
beginning of the line, there are no characters in the line, and
-the last character typed was not
-.BR C\-d ,
-then return
+the last character typed was not bound to \fBBdelete\-char\fP, then return
.SM
.BR EOF .
.TP
@@ -606,15 +668,15 @@ moving the cursor over that word as well.
.TP
.B upcase\-word (M\-u)
Uppercase the current (or following) word. With a negative argument,
-do the previous word, but do not move point.
+uppercase the previous word, but do not move point.
.TP
.B downcase\-word (M\-l)
Lowercase the current (or following) word. With a negative argument,
-do the previous word, but do not move point.
+lowercase the previous word, but do not move point.
.TP
.B capitalize\-word (M\-c)
Capitalize the current (or following) word. With a negative argument,
-do the previous word, but do not move point.
+capitalize the previous word, but do not move point.
.PD
.SS Killing and Yanking
.PP
@@ -628,6 +690,7 @@ Kill backward to the beginning of the line.
.TP
.B unix\-line\-discard (C\-u)
Kill backward from point to the beginning of the line.
+The killed text is saved on the kill-ring.
.\" There is no real difference between this and backward-kill-line
.TP
.B kill\-whole\-line
@@ -660,9 +723,11 @@ Copy the text in the region to the kill buffer.
.TP
.B copy\-backward\-word
Copy the word before point to the kill buffer.
+The word boundaries are the same as \fBbackward\-word\fP.
.TP
.B copy\-forward\-word
Copy the word following point to the kill buffer.
+The word boundaries are the same as \fBforward\-word\fP.
.TP
.B yank (C\-y)
Yank the top of the kill ring into the buffer at the cursor.
@@ -720,6 +785,19 @@ List the possible completions of the text before point.
Insert all completions of the text before point
that would have been generated by
\fBpossible\-completions\fP.
+.TP
+.B menu\-complete
+Similar to \fBcomplete\fP, but replaces the word to be completed
+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 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
+through the list.
+This command is intended to be bound to \fBTAB\fP, but is unbound
+by default.
.PD
.SS Keyboard Macros
.PP
@@ -765,7 +843,7 @@ is equivalent to
Incremental undo, separately remembered for each line.
.TP
.B revert\-line (M\-r)
-Undo all changes made to this line. This is like typing the
+Undo all changes made to this line. This is like executing the
.B undo
command enough times to return the line to its initial state.
.TP
@@ -795,15 +873,6 @@ variable is inserted at the beginning of the current line, and the line
is accepted as if a newline had been typed. This makes the current line
a shell comment.
.TP
-.B 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.
-.TP
-.B glob\-list\-expansions (C\-x g)
-The list of expansions that would have been generated by
-.B glob\-expand\-word
-is inserted into the line, replacing the word before point.
-.TP
.B dump\-functions
Print all of the functions and their key bindings to the
readline output stream. If a numeric argument is supplied,
@@ -1097,10 +1166,10 @@ version of the
library that you have.
.PP
Once you have determined that a bug actually exists, mail a
-bug report to \fIbug\-readline\fP@\fIprep.ai.MIT.Edu\fP.
+bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
If you have a fix, you are welcome to mail that
as well! Suggestions and `philosophical' bug reports may be mailed
-to \fPbug-readline\fP@\fIprep.ai.MIT.Edu\fP or posted to the Usenet
+to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet
newsgroup
.BR gnu.bash.bug .
.PP
diff --git a/doc/readline.dvi b/doc/readline.dvi
index b09a22b..d8491dc 100644
--- a/doc/readline.dvi
+++ b/doc/readline.dvi
Binary files differ
diff --git a/doc/readline.html b/doc/readline.html
index 2a665f8..c708eb0 100644
--- a/doc/readline.html
+++ b/doc/readline.html
@@ -1,20 +1,27 @@
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.51
- from /usr/homes/chet/src/bash/readline-2.1/doc/rlman.texinfo on 3 June 1997 -->
+ from /usr/homes/chet/src/bash/readline-2.2/doc/rlman.texinfo on 2 April 1998 -->
<TITLE>GNU Readline Library</TITLE>
</HEAD>
<BODY>
<H1>GNU Readline Library</H1>
-<H2>Edition 2.1, for <CODE>Readline Library</CODE> Version 2.1.</H2>
-<H2>March 1996</H2>
+<H2>Edition 2.2, for <CODE>Readline Library</CODE> Version 2.1.</H2>
+<H2>September 1997</H2>
<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
<P>
<P><HR><P>
<P>
+@dircategory Libraries
+@direntry
+* Readline: (readline). The GNU readline library API
+
+</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.
@@ -134,17 +141,19 @@ denote variable settings and key bindings.
<DT>Variable Settings
<DD>
-You can change the state of a few variables in Readline by
-using the <CODE>set</CODE> command within the init file. Here is how you
-would specify that you wish to use <CODE>vi</CODE> line editing commands:
+You can modify the run-time behavior of Readline by
+altering the values of variables in Readline
+using the <CODE>set</CODE> command within the init file. Here is how to
+change from the default Emacs-like key binding to use
+<CODE>vi</CODE> line editing commands:
<PRE>
set editing-mode vi
</PRE>
-Right now, there are only a few variables which can be set;
-so few, in fact, that we just list them here:
+A great deal of run-time behavior is changeable with the following
+variables.
<DL COMPACT>
@@ -164,6 +173,12 @@ The string to insert at the beginning of the line when the
<CODE>insert-comment</CODE> command is executed. The default value
is <CODE>"#"</CODE>.
+<DT><CODE>completion-ignore-case</CODE>
+<DD>
+If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
+in a case-insensitive fashion.
+The default value is <SAMP>`off'</SAMP>.
+
<DT><CODE>completion-query-items</CODE>
<DD>
<A NAME="IDX4"></A>
@@ -178,29 +193,29 @@ them; otherwise, they are simply listed. The default limit is
<DD>
<A NAME="IDX5"></A>
If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
-eigth bit set to an ASCII key sequence by stripping the eigth
+eighth bit set to an ASCII key sequence by stripping the eighth
bit and prepending an <KBD>ESC</KBD> character, converting them to a
meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
<DT><CODE>disable-completion</CODE>
<DD>
<A NAME="IDX6"></A>
-If set to <SAMP>`On'</SAMP>, readline will inhibit word completion.
+If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
Completion characters will be inserted into the line as if they had
been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
<DT><CODE>editing-mode</CODE>
<DD>
<A NAME="IDX7"></A>
-The <CODE>editing-mode</CODE> variable controls which editing mode you are
-using. By default, Readline starts up in Emacs editing mode, where
-the keystrokes are most similar to Emacs. This variable can be
+The <CODE>editing-mode</CODE> variable controls which default set of
+key bindings is used. By default, Readline starts up in Emacs editing
+mode, where the keystrokes are most similar to Emacs. This variable can be
set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
<DT><CODE>enable-keypad</CODE>
<DD>
<A NAME="IDX8"></A>
-When set to <SAMP>`on'</SAMP>, readline will try to enable the application
+When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
keypad when it is called. Some systems need this to enable the
arrow keys. The default is <SAMP>`off'</SAMP>.
@@ -214,7 +229,7 @@ attempts word completion. The default is <SAMP>`off'</SAMP>.
<DD>
<A NAME="IDX10"></A>
This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
-to <SAMP>`on'</SAMP> means that the text of the lines that you edit will scroll
+to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
horizontally on a single screen line when they are longer than the width
of the screen, instead of wrapping onto a new screen line. By default,
this variable is set to <SAMP>`off'</SAMP>.
@@ -244,8 +259,8 @@ appended. The default is <SAMP>`on'</SAMP>.
<DT><CODE>mark-modified-lines</CODE>
<DD>
<A NAME="IDX12"></A>
-This variable, when set to <SAMP>`on'</SAMP>, says to display an asterisk
-(<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
+This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
+asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
This variable is <SAMP>`off'</SAMP> by default.
<DT><CODE>input-meta</CODE>
@@ -265,6 +280,12 @@ If set to <SAMP>`on'</SAMP>, Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence. The default is <SAMP>`off'</SAMP>.
+<DT><CODE>print-completions-horizontally</CODE>
+<DD>
+If set to <SAMP>`on'</SAMP>, Readline will display completions with matches
+sorted horizontally in alphabetical order, rather than down the screen.
+The default is <SAMP>`off'</SAMP>.
+
<DT><CODE>show-all-if-ambiguous</CODE>
<DD>
<A NAME="IDX16"></A>
@@ -287,9 +308,9 @@ completions. The default is <SAMP>`off'</SAMP>.
<DD>
The syntax for controlling key bindings in the init file is
simple. First you have to know the name of the command that you
-want to change. The following pages contain tables of the command name,
-the default keybinding, and a short description of what the command
-does.
+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 the name of the key
you wish to bind the command to, a colon, and then the name of the
@@ -309,8 +330,8 @@ Meta-Rubout: backward-kill-word
Control-o: "&#62; output"
</PRE>
-In the above example, <SAMP>`C-u'</SAMP> is bound to the function
-<CODE>universal-argument</CODE>, and <SAMP>`C-o'</SAMP> is bound to run the macro
+In the above example, <KBD>C-u</KBD> is bound to the function
+<CODE>universal-argument</CODE>, and <KBD>C-o</KBD> is bound to run the macro
expressed on the right hand side (that is, to insert the text
<SAMP>`&#62; output'</SAMP> into the line).
@@ -329,12 +350,16 @@ special character names are not recognized.
"\e[11~": "Function Key 1"
</PRE>
-In the above example, <SAMP>`C-u'</SAMP> is bound to the function
+In the above example, <KBD>C-u</KBD> is bound to the function
<CODE>universal-argument</CODE> (just as it was in the first example),
-<SAMP>`C-x C-r'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>, and
-<SAMP>`ESC [ 1 1 ~'</SAMP> is bound to insert the text <SAMP>`Function Key 1'</SAMP>.
-The following escape sequences are available when specifying key
-sequences:
+<SAMP>`<KBD>C-x</KBD> <KBD>C-r</KBD>'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>,
+and <SAMP>`<KBD>ESC</KBD> <KBD>[</KBD> <KBD>1</KBD> <KBD>1</KBD> <KBD>~</KBD>'</SAMP> is bound to insert
+the text <SAMP>`Function Key 1'</SAMP>.
+
+</DL>
+
+The following GNU Emacs style escape sequences are available when
+specifying key sequences:
<DL COMPACT>
@@ -358,11 +383,51 @@ backslash
<KBD>'</KBD>
</DL>
-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. Backslash
-will quote any character in the macro text, including <SAMP>`"'</SAMP>
-and <SAMP>`''</SAMP>.
+In addition to the GNU Emacs style escape sequences, a second
+set of backslash escapes is available:
+
+<DL COMPACT>
+
+<DT><CODE>\a</CODE>
+<DD>
+alert (bell)
+<DT><CODE>\b</CODE>
+<DD>
+backspace
+<DT><CODE>\d</CODE>
+<DD>
+delete
+<DT><CODE>\f</CODE>
+<DD>
+form feed
+<DT><CODE>\n</CODE>
+<DD>
+newline
+<DT><CODE>\r</CODE>
+<DD>
+carriage return
+<DT><CODE>\t</CODE>
+<DD>
+horizontal tab
+<DT><CODE>\v</CODE>
+<DD>
+vertical tab
+<DT><CODE>\<VAR>nnn</VAR></CODE>
+<DD>
+the character whose ASCII code is the octal value <VAR>nnn</VAR>
+(one to three digits)
+<DT><CODE>\x<VAR>nnn</VAR></CODE>
+<DD>
+the character whose ASCII code is the hexadecimal value <VAR>nnn</VAR>
+(one to three digits)
+</DL>
+
+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>`"'</SAMP> and <SAMP>`''</SAMP>.
For example, the following binding will make <SAMP>`C-x \'</SAMP>
insert a single <SAMP>`\'</SAMP> into the line:
@@ -371,7 +436,6 @@ insert a single <SAMP>`\'</SAMP> into the line:
</PRE>
</DL>
-</DL>
@@ -381,7 +445,7 @@ insert a single <SAMP>`\'</SAMP> into the line:
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 three parser directives used.
+of tests. There are four parser directives used.
</P>
<DL COMPACT>
@@ -409,8 +473,8 @@ Readline is starting out in <CODE>emacs</CODE> mode.
The <CODE>term=</CODE> 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>`='</SAMP> is tested against the full name of the terminal and the
-portion of the terminal name before the first <SAMP>`-'</SAMP>. This
+<SAMP>`='</SAMP> is tested against both the full name of the terminal and
+the portion of the terminal name before the first <SAMP>`-'</SAMP>. This
allows <CODE>sun</CODE> to match both <CODE>sun</CODE> and <CODE>sun-cmd</CODE>,
for instance.
@@ -434,13 +498,23 @@ $endif
<DT><CODE>$endif</CODE>
<DD>
-This command, as you saw in the previous example, terminates an
+This command, as seen in the previous example, terminates an
<CODE>$if</CODE> command.
<DT><CODE>$else</CODE>
<DD>
Commands in this branch of the <CODE>$if</CODE> directive are executed if
the test fails.
+
+<DT><CODE>$include</CODE>
+<DD>
+This directive takes a single filename as an argument and reads commands
+and bindings from that file.
+
+<PRE>
+$include /etc/inputrc
+</PRE>
+
</DL>
@@ -461,6 +535,11 @@ binding, variable assignment, and conditional syntax.
# 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
@@ -638,7 +717,8 @@ Move to the first line in the history.
<DT><CODE>end-of-history (M-&#62;)</CODE>
<DD>
<A NAME="IDX30"></A>
-Move to the end of the input history, i.e., the line you are entering.
+Move to the end of the input history, i.e., the line currently
+being entered.
<DT><CODE>reverse-search-history (C-r)</CODE>
<DD>
@@ -671,7 +751,7 @@ for a string supplied by the user.
<A NAME="IDX35"></A>
Search forward through the history for the string of characters
between the start of the current line and the current cursor
-position (the `point'). This is a non-incremental search. By
+position (the <VAR>point</VAR>). This is a non-incremental search. By
default, this command is unbound.
<DT><CODE>history-search-backward ()</CODE>
@@ -696,6 +776,8 @@ inserts the <VAR>n</VAR>th word from the end of the previous command.
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>.
+Successive calls to <CODE>yank-last-arg</CODE> move back through the history
+list, inserting the last argument of each line in turn.
</DL>
@@ -710,18 +792,19 @@ argument, behave exactly like <CODE>yank-nth-arg</CODE>.
<A NAME="IDX39"></A>
Delete the character under the cursor. If the cursor is at the
beginning of the line, there are no characters in the line, and
-the last character typed was not <KBD>C-d</KBD>, then return <CODE>EOF</CODE>.
+the last character typed was not bound to <CODE>delete-char</CODE>, then
+return <CODE>EOF</CODE>.
<DT><CODE>backward-delete-char (Rubout)</CODE>
<DD>
<A NAME="IDX40"></A>
-Delete the character behind the cursor. A numeric arg says to kill
-the characters instead of deleting them.
+Delete the character behind the cursor. A numeric argument means
+to kill the characters instead of deleting them.
<DT><CODE>quoted-insert (C-q, C-v)</CODE>
<DD>
<A NAME="IDX41"></A>
-Add the next character that you type to the line verbatim. This is
+Add the next character typed to the line verbatim. This is
how to insert key sequences like <KBD>C-q</KBD>, for example.
<DT><CODE>tab-insert (M-TAB)</CODE>
@@ -742,7 +825,7 @@ 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 argumentss don't work.
+Negative arguments don't work.
<DT><CODE>transpose-words (M-t)</CODE>
<DD>
@@ -754,19 +837,19 @@ moving the cursor over that word as well.
<DD>
<A NAME="IDX46"></A>
Uppercase the current (or following) word. With a negative argument,
-do the previous word, but do not move the cursor.
+uppercase the previous word, but do not move the cursor.
<DT><CODE>downcase-word (M-l)</CODE>
<DD>
<A NAME="IDX47"></A>
Lowercase the current (or following) word. With a negative argument,
-do the previous word, but do not move the cursor.
+lowercase the previous word, but do not move the cursor.
<DT><CODE>capitalize-word (M-c)</CODE>
<DD>
<A NAME="IDX48"></A>
Capitalize the current (or following) word. With a negative argument,
-do the previous word, but do not move the cursor.
+capitalize the previous word, but do not move the cursor.
</DL>
@@ -790,7 +873,7 @@ Kill backward to the beginning of the line.
<DD>
<A NAME="IDX51"></A>
Kill backward from the cursor to the beginning of the current line.
-Save the killed text on the kill-ring.
+The killed text is saved on the kill-ring.
<DT><CODE>kill-whole-line ()</CODE>
<DD>
@@ -826,25 +909,27 @@ Delete all spaces and tabs around point. By default, this is unbound.
<DD>
<A NAME="IDX57"></A>
Kill the text between the point and the <EM>mark</EM> (saved
-cursor position. This text is referred to as the <VAR>region</VAR>.
+cursor position). This text is referred to as the <VAR>region</VAR>.
By default, this command is unbound.
<DT><CODE>copy-region-as-kill ()</CODE>
<DD>
<A NAME="IDX58"></A>
-Copy the text in the region to the kill buffer, so you can yank it
+Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
<DT><CODE>copy-backward-word ()</CODE>
<DD>
<A NAME="IDX59"></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.
<DT><CODE>copy-forward-word ()</CODE>
<DD>
<A NAME="IDX60"></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.
<DT><CODE>yank (C-y)</CODE>
@@ -900,8 +985,8 @@ By default, this is not bound to a key.
Attempt to do completion on the text before the cursor. This is
application-specific. Generally, if you are typing a filename
argument, you can do filename completion; if you are typing a command,
-you can do command completion, if you are typing in a symbol to GDB, you
-can do symbol name completion, if you are typing in a variable to Bash,
+you can do command completion; if you are typing in a symbol to GDB, you
+can do symbol name completion; if you are typing in a variable to Bash,
you can do variable name completion, and so on.
<DT><CODE>possible-completions (M-?)</CODE>
@@ -915,6 +1000,21 @@ List the possible completions of the text before the cursor.
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
+<DT><CODE>menu-complete ()</CODE>
+<DD>
+<A NAME="IDX68"></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
+of possible completions, inserting each match in turn.
+At the end of the list of completions, the bell is rung and the
+original text is restored.
+An argument of <VAR>n</VAR> moves <VAR>n</VAR> 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 <CODE>TAB</CODE>, but is unbound
+by default.
+
</DL>
@@ -924,18 +1024,18 @@ been generated by <CODE>possible-completions</CODE>.
<DT><CODE>start-kbd-macro (C-x ()</CODE>
<DD>
-<A NAME="IDX68"></A>
+<A NAME="IDX69"></A>
Begin saving the characters typed into the current keyboard macro.
<DT><CODE>end-kbd-macro (C-x ))</CODE>
<DD>
-<A NAME="IDX69"></A>
+<A NAME="IDX70"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
<DD>
-<A NAME="IDX70"></A>
+<A NAME="IDX71"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
@@ -948,98 +1048,98 @@ in the macro appear as if typed at the keyboard.
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
<DD>
-<A NAME="IDX71"></A>
+<A NAME="IDX72"></A>
Read in the contents of the inputrc file, and incorporate
any bindings or variable assignments found there.
<DT><CODE>abort (C-g)</CODE>
<DD>
-<A NAME="IDX72"></A>
+<A NAME="IDX73"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</CODE>
<DD>
-<A NAME="IDX73"></A>
+<A NAME="IDX74"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<DT><CODE>prefix-meta (ESC)</CODE>
<DD>
-<A NAME="IDX74"></A>
-Make the next character that you type be metafied. This is for people
+<A NAME="IDX75"></A>
+Make the next character typed be metafied. This is for keyboards
without a meta key. Typing <SAMP>`ESC f'</SAMP> is equivalent to typing
<SAMP>`M-f'</SAMP>.
<DT><CODE>undo (C-_, C-x C-u)</CODE>
<DD>
-<A NAME="IDX75"></A>
+<A NAME="IDX76"></A>
Incremental undo, separately remembered for each line.
<DT><CODE>revert-line (M-r)</CODE>
<DD>
-<A NAME="IDX76"></A>
-Undo all changes made to this line. This is like typing the <CODE>undo</CODE>
+<A NAME="IDX77"></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.
<DT><CODE>tilde-expand (M-~)</CODE>
<DD>
-<A NAME="IDX77"></A>
+<A NAME="IDX78"></A>
Perform tilde expansion on the current word.
<DT><CODE>set-mark (C-@)</CODE>
<DD>
-<A NAME="IDX78"></A>
+<A NAME="IDX79"></A>
Set the mark to the current point. If a
numeric argument is supplied, the mark is set to that position.
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
<DD>
-<A NAME="IDX79"></A>
+<A NAME="IDX80"></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.
<DT><CODE>character-search (C-])</CODE>
<DD>
-<A NAME="IDX80"></A>
+<A NAME="IDX81"></A>
A character is read and point is moved to the next occurrence of that
character. A negative count searches for previous occurrences.
<DT><CODE>character-search-backward (M-C-])</CODE>
<DD>
-<A NAME="IDX81"></A>
+<A NAME="IDX82"></A>
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
<DT><CODE>insert-comment (M-#)</CODE>
<DD>
-<A NAME="IDX82"></A>
+<A NAME="IDX83"></A>
The value of the <CODE>comment-begin</CODE>
variable is inserted at the beginning of the current line,
and the line is accepted as if a newline had been typed.
<DT><CODE>dump-functions ()</CODE>
<DD>
-<A NAME="IDX83"></A>
+<A NAME="IDX84"></A>
Print all of the functions and their key bindings to the
-readline output stream. If a numeric argument is supplied,
+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.
<DT><CODE>dump-variables ()</CODE>
<DD>
-<A NAME="IDX84"></A>
+<A NAME="IDX85"></A>
Print all of the settable variables and their values to the
-readline output stream. If a numeric argument is supplied,
+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.
<DT><CODE>dump-macros ()</CODE>
<DD>
-<A NAME="IDX85"></A>
-Print all of the readline key sequences bound to macros and the
+<A NAME="IDX86"></A>
+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 <VAR>inputrc</VAR> file. This command is unbound by default.
@@ -1099,8 +1199,8 @@ the simplest way possible, perhaps to replace calls in your code to
</P>
<P>
-<A NAME="IDX86"></A>
<A NAME="IDX87"></A>
+<A NAME="IDX88"></A>
The function <CODE>readline ()</CODE> prints a prompt and then reads and returns
a single line of text from the user. The line <CODE>readline</CODE>
returns is allocated with <CODE>malloc ()</CODE>; you should <CODE>free ()</CODE>
@@ -1326,7 +1426,7 @@ These variables are available to function writers.
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_line_buffer</B>
-<DD><A NAME="IDX88"></A>
+<DD><A NAME="IDX89"></A>
This is the line gathered so far. You are welcome to modify the
contents of the line, but see section <A HREF="readline.html#SEC28">Allowing Undoing</A>.
</DL>
@@ -1335,7 +1435,7 @@ contents of the line, but see section <A HREF="readline.html#SEC28">Allowing Und
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_point</B>
-<DD><A NAME="IDX89"></A>
+<DD><A NAME="IDX90"></A>
The offset of the current cursor position in <CODE>rl_line_buffer</CODE>
(the <EM>point</EM>).
</DL>
@@ -1344,7 +1444,7 @@ The offset of the current cursor position in <CODE>rl_line_buffer</CODE>
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_end</B>
-<DD><A NAME="IDX90"></A>
+<DD><A NAME="IDX91"></A>
The number of characters present in <CODE>rl_line_buffer</CODE>. When
<CODE>rl_point</CODE> is at the end of the line, <CODE>rl_point</CODE> and
<CODE>rl_end</CODE> are equal.
@@ -1354,7 +1454,7 @@ The number of characters present in <CODE>rl_line_buffer</CODE>. When
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_mark</B>
-<DD><A NAME="IDX91"></A>
+<DD><A NAME="IDX92"></A>
The mark (saved position) in the current line. If set, the mark
and point define a <EM>region</EM>.
</DL>
@@ -1363,7 +1463,7 @@ and point define a <EM>region</EM>.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_done</B>
-<DD><A NAME="IDX92"></A>
+<DD><A NAME="IDX93"></A>
Setting this to a non-zero value causes Readline to return the current
line immediately.
</DL>
@@ -1372,7 +1472,7 @@ line immediately.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_pending_input</B>
-<DD><A NAME="IDX93"></A>
+<DD><A NAME="IDX94"></A>
Setting this to a value makes it the next keystroke read. This is a
way to stuff a single character into the input stream.
</DL>
@@ -1381,7 +1481,7 @@ way to stuff a single character into the input stream.
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_prompt</B>
-<DD><A NAME="IDX94"></A>
+<DD><A NAME="IDX95"></A>
The prompt Readline uses. This is set from the argument to
<CODE>readline ()</CODE>, and should not be assigned to directly.
</DL>
@@ -1390,7 +1490,7 @@ The prompt Readline uses. This is set from the argument to
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_library_version</B>
-<DD><A NAME="IDX95"></A>
+<DD><A NAME="IDX96"></A>
The version number of this revision of the library.
</DL>
@@ -1398,7 +1498,7 @@ The version number of this revision of the library.
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_terminal_name</B>
-<DD><A NAME="IDX96"></A>
+<DD><A NAME="IDX97"></A>
The terminal type, used for initialization.
</DL>
@@ -1406,7 +1506,7 @@ The terminal type, used for initialization.
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_readline_name</B>
-<DD><A NAME="IDX97"></A>
+<DD><A NAME="IDX98"></A>
This variable is set to a unique name by each application using Readline.
The value allows conditional parsing of the inputrc file
(see section <A HREF="readline.html#SEC5">Conditional Init Constructs</A>).
@@ -1416,7 +1516,7 @@ The value allows conditional parsing of the inputrc file
<P>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_instream</B>
-<DD><A NAME="IDX98"></A>
+<DD><A NAME="IDX99"></A>
The stdio stream from which Readline reads input.
</DL>
@@ -1424,7 +1524,7 @@ The stdio stream from which Readline reads input.
<P>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
-<DD><A NAME="IDX99"></A>
+<DD><A NAME="IDX100"></A>
The stdio stream to which Readline performs output.
</DL>
@@ -1432,7 +1532,7 @@ The stdio stream to which Readline performs output.
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_startup_hook</B>
-<DD><A NAME="IDX100"></A>
+<DD><A NAME="IDX101"></A>
If non-zero, this is the address of a function to call just
before <CODE>readline</CODE> prints the first prompt.
</DL>
@@ -1441,7 +1541,7 @@ before <CODE>readline</CODE> prints the first prompt.
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_event_hook</B>
-<DD><A NAME="IDX101"></A>
+<DD><A NAME="IDX102"></A>
If non-zero, this is the address of a function to call periodically
when readline is waiting for terminal input.
</DL>
@@ -1450,7 +1550,7 @@ when readline is waiting for terminal input.
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_getc_function</B>
-<DD><A NAME="IDX102"></A>
+<DD><A NAME="IDX103"></A>
If non-zero, <CODE>readline</CODE> will call indirectly through this pointer
to get a character from the input stream. By default, it is set to
<CODE>rl_getc</CODE>, the default <CODE>readline</CODE> character input function
@@ -1461,7 +1561,7 @@ to get a character from the input stream. By default, it is set to
<P>
<DL>
<DT><U>Variable:</U> VFunction * <B>rl_redisplay_function</B>
-<DD><A NAME="IDX103"></A>
+<DD><A NAME="IDX104"></A>
If non-zero, <CODE>readline</CODE> 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</CODE>, the default <CODE>readline</CODE>
@@ -1472,7 +1572,7 @@ redisplay function (see section <A HREF="readline.html#SEC29">Redisplay</A>).
<P>
<DL>
<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B>
-<DD><A NAME="IDX104"></A>
+<DD><A NAME="IDX105"></A>
This variable is set to the keymap (see section <A HREF="readline.html#SEC25">Selecting a Keymap</A>) in which the
currently executing readline function was found.
</DL>
@@ -1481,7 +1581,7 @@ currently executing readline function was found.
<P>
<DL>
<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B>
-<DD><A NAME="IDX105"></A>
+<DD><A NAME="IDX106"></A>
This variable is set to the keymap (see section <A HREF="readline.html#SEC25">Selecting a Keymap</A>) in which the
last key binding occurred.
</DL>
@@ -1517,7 +1617,7 @@ well. Readline provides a function for doing that:
<P>
<DL>
<DT><U>Function:</U> int <B>rl_add_defun</B> <I>(char *name, Function *function, int key)</I>
-<DD><A NAME="IDX106"></A>
+<DD><A NAME="IDX107"></A>
Add <VAR>name</VAR> to the list of named functions. Make <VAR>function</VAR> be
the function that gets called. If <VAR>key</VAR> is not -1, then bind it to
<VAR>function</VAR> using <CODE>rl_bind_key ()</CODE>.
@@ -1546,7 +1646,7 @@ Readline which keymap to use.
<P>
<DL>
<DT><U>Function:</U> Keymap <B>rl_make_bare_keymap</B> <I>()</I>
-<DD><A NAME="IDX107"></A>
+<DD><A NAME="IDX108"></A>
Returns a new, empty keymap. The space for the keymap is allocated with
<CODE>malloc ()</CODE>; you should <CODE>free ()</CODE> it when you are done.
</DL>
@@ -1555,7 +1655,7 @@ Returns a new, empty keymap. The space for the keymap is allocated with
<P>
<DL>
<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I>
-<DD><A NAME="IDX108"></A>
+<DD><A NAME="IDX109"></A>
Return a new keymap which is a copy of <VAR>map</VAR>.
</DL>
@@ -1563,7 +1663,7 @@ Return a new keymap which is a copy of <VAR>map</VAR>.
<P>
<DL>
<DT><U>Function:</U> Keymap <B>rl_make_keymap</B> <I>()</I>
-<DD><A NAME="IDX109"></A>
+<DD><A NAME="IDX110"></A>
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.
@@ -1573,7 +1673,7 @@ the Meta digits bound to produce numeric arguments.
<P>
<DL>
<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I>
-<DD><A NAME="IDX110"></A>
+<DD><A NAME="IDX111"></A>
Free the storage associated with <VAR>keymap</VAR>.
</DL>
@@ -1586,7 +1686,7 @@ change which keymap is active.
<P>
<DL>
<DT><U>Function:</U> Keymap <B>rl_get_keymap</B> <I>()</I>
-<DD><A NAME="IDX111"></A>
+<DD><A NAME="IDX112"></A>
Returns the currently active keymap.
</DL>
@@ -1594,7 +1694,7 @@ Returns the currently active keymap.
<P>
<DL>
<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(Keymap keymap)</I>
-<DD><A NAME="IDX112"></A>
+<DD><A NAME="IDX113"></A>
Makes <VAR>keymap</VAR> the currently active keymap.
</DL>
@@ -1602,7 +1702,7 @@ Makes <VAR>keymap</VAR> the currently active keymap.
<P>
<DL>
<DT><U>Function:</U> Keymap <B>rl_get_keymap_by_name</B> <I>(char *name)</I>
-<DD><A NAME="IDX113"></A>
+<DD><A NAME="IDX114"></A>
Return the keymap matching <VAR>name</VAR>. <VAR>name</VAR> is one which would
be supplied in a <CODE>set keymap</CODE> inputrc line (@xref{Readline Init File}).
</DL>
@@ -1611,7 +1711,7 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (@xref{Readline Init File}
<P>
<DL>
<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I>
-<DD><A NAME="IDX114"></A>
+<DD><A NAME="IDX115"></A>
Return the name matching <VAR>keymap</VAR>. <VAR>name</VAR> is one which would
be supplied in a <CODE>set keymap</CODE> inputrc line (@xref{Readline Init File}).
</DL>
@@ -1637,7 +1737,7 @@ These functions manage key bindings.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, Function *function)</I>
-<DD><A NAME="IDX115"></A>
+<DD><A NAME="IDX116"></A>
Binds <VAR>key</VAR> to <VAR>function</VAR> in the currently active keymap.
Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
@@ -1646,7 +1746,7 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key_in_map</B> <I>(int key, Function *function, Keymap map)</I>
-<DD><A NAME="IDX116"></A>
+<DD><A NAME="IDX117"></A>
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>
@@ -1655,7 +1755,7 @@ of an invalid <VAR>key</VAR>.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_key</B> <I>(int key)</I>
-<DD><A NAME="IDX117"></A>
+<DD><A NAME="IDX118"></A>
Bind <VAR>key</VAR> to the null function in the currently active keymap.
Returns non-zero in case of error.
</DL>
@@ -1664,7 +1764,7 @@ Returns non-zero in case of error.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_key_in_map</B> <I>(int key, Keymap map)</I>
-<DD><A NAME="IDX118"></A>
+<DD><A NAME="IDX119"></A>
Bind <VAR>key</VAR> to the null function in <VAR>map</VAR>.
Returns non-zero in case of error.
</DL>
@@ -1672,8 +1772,24 @@ Returns non-zero in case of error.
</P>
<P>
<DL>
+<DT><U>Function:</U> int <B>rl_unbind_function_in_map</B> <I>(Function *function, Keymap map)</I>
+<DD><A NAME="IDX120"></A>
+Unbind all keys that execute <VAR>function</VAR> in <VAR>map</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_unbind_command_in_map</B> <I>(char *command, Keymap map)</I>
+<DD><A NAME="IDX121"></A>
+Unbind all keys that are bound to <VAR>command</VAR> in <VAR>map</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
<DT><U>Function:</U> int <B>rl_generic_bind</B> <I>(int type, char *keyseq, char *data, Keymap map)</I>
-<DD><A NAME="IDX119"></A>
+<DD><A NAME="IDX122"></A>
Bind the key sequence represented by the string <VAR>keyseq</VAR> to the arbitrary
pointer <VAR>data</VAR>. <VAR>type</VAR> says what kind of data is pointed to by
<VAR>data</VAR>; this can be a function (<CODE>ISFUNC</CODE>), a macro
@@ -1685,7 +1801,7 @@ necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_parse_and_bind</B> <I>(char *line)</I>
-<DD><A NAME="IDX120"></A>
+<DD><A NAME="IDX123"></A>
Parse <VAR>line</VAR> as if it had been read from the <CODE>inputrc</CODE> file and
perform any key bindings and variable assignments found
(@xref{Readline Init File}).
@@ -1695,7 +1811,7 @@ perform any key bindings and variable assignments found
<P>
<DL>
<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(char *filename)</I>
-<DD><A NAME="IDX121"></A>
+<DD><A NAME="IDX124"></A>
Read keybindings and variable assignments from <VAR>filename</VAR>
(@xref{Readline Init File}).
</DL>
@@ -1713,7 +1829,7 @@ and the functions invoked by a particular key sequence.
<P>
<DL>
<DT><U>Function:</U> Function * <B>rl_named_function</B> <I>(char *name)</I>
-<DD><A NAME="IDX122"></A>
+<DD><A NAME="IDX125"></A>
Return the function with name <VAR>name</VAR>.
</DL>
@@ -1721,7 +1837,7 @@ Return the function with name <VAR>name</VAR>.
<P>
<DL>
<DT><U>Function:</U> Function * <B>rl_function_of_keyseq</B> <I>(char *keyseq, Keymap map, int *type)</I>
-<DD><A NAME="IDX123"></A>
+<DD><A NAME="IDX126"></A>
Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>.
If <VAR>map</VAR> is NULL, the current keymap is used. If <VAR>type</VAR> is
not NULL, the type of the object is returned in it (one of <CODE>ISFUNC</CODE>,
@@ -1732,7 +1848,7 @@ not NULL, the type of the object is returned in it (one of <CODE>ISFUNC</CODE>,
<P>
<DL>
<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(Function *function)</I>
-<DD><A NAME="IDX124"></A>
+<DD><A NAME="IDX127"></A>
Return an array of strings representing the key sequences used to
invoke <VAR>function</VAR> in the current keymap.
</DL>
@@ -1741,7 +1857,7 @@ invoke <VAR>function</VAR> in the current keymap.
<P>
<DL>
<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(Function *function, Keymap map)</I>
-<DD><A NAME="IDX125"></A>
+<DD><A NAME="IDX128"></A>
Return an array of strings representing the key sequences used to
invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
</DL>
@@ -1750,7 +1866,7 @@ invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
<P>
<DL>
<DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I>
-<DD><A NAME="IDX126"></A>
+<DD><A NAME="IDX129"></A>
Print the readline function names and the key sequences currently
bound to them to <CODE>rl_outstream</CODE>. If <VAR>readable</VAR> is non-zero,
the list is formatted in such a way that it can be made part of an
@@ -1761,7 +1877,7 @@ the list is formatted in such a way that it can be made part of an
<P>
<DL>
<DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>()</I>
-<DD><A NAME="IDX127"></A>
+<DD><A NAME="IDX130"></A>
Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
</DL>
@@ -1810,7 +1926,7 @@ tells undo what to undo, not how to undo it. <CODE>UNDO_BEGIN</CODE> and
<P>
<DL>
<DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>()</I>
-<DD><A NAME="IDX128"></A>
+<DD><A NAME="IDX131"></A>
Begins saving undo information in a group construct. The undo
information usually comes from calls to <CODE>rl_insert_text ()</CODE> and
<CODE>rl_delete_text ()</CODE>, but could be the result of calls to
@@ -1821,7 +1937,7 @@ information usually comes from calls to <CODE>rl_insert_text ()</CODE> and
<P>
<DL>
<DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>()</I>
-<DD><A NAME="IDX129"></A>
+<DD><A NAME="IDX132"></A>
Closes the current undo group started with <CODE>rl_begin_undo_group
()</CODE>. There should be one call to <CODE>rl_end_undo_group ()</CODE>
for each call to <CODE>rl_begin_undo_group ()</CODE>.
@@ -1831,7 +1947,7 @@ for each call to <CODE>rl_begin_undo_group ()</CODE>.
<P>
<DL>
<DT><U>Function:</U> void <B>rl_add_undo</B> <I>(enum undo_code what, int start, int end, char *text)</I>
-<DD><A NAME="IDX130"></A>
+<DD><A NAME="IDX133"></A>
Remember how to undo an event (according to <VAR>what</VAR>). The affected
text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VAR>.
</DL>
@@ -1840,7 +1956,7 @@ text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VA
<P>
<DL>
<DT><U>Function:</U> void <B>free_undo_list</B> <I>()</I>
-<DD><A NAME="IDX131"></A>
+<DD><A NAME="IDX134"></A>
Free the existing undo list.
</DL>
@@ -1848,7 +1964,7 @@ Free the existing undo list.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_do_undo</B> <I>()</I>
-<DD><A NAME="IDX132"></A>
+<DD><A NAME="IDX135"></A>
Undo the first thing on the undo list. Returns <CODE>0</CODE> if there was
nothing to undo, non-zero if something was undone.
</DL>
@@ -1864,7 +1980,7 @@ the text range that you are going to modify.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I>
-<DD><A NAME="IDX133"></A>
+<DD><A NAME="IDX136"></A>
Tell Readline to save the text between <VAR>start</VAR> and <VAR>end</VAR> as a
single undo unit. It is assumed that you will subsequently modify
that text.
@@ -1878,7 +1994,7 @@ that text.
<P>
<DL>
<DT><U>Function:</U> void <B>rl_redisplay</B> <I>()</I>
-<DD><A NAME="IDX134"></A>
+<DD><A NAME="IDX137"></A>
Change what's displayed on the screen to reflect the current contents
of <CODE>rl_line_buffer</CODE>.
</DL>
@@ -1887,7 +2003,7 @@ of <CODE>rl_line_buffer</CODE>.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>()</I>
-<DD><A NAME="IDX135"></A>
+<DD><A NAME="IDX138"></A>
Force the line to be updated and redisplayed, whether or not
Readline thinks the screen display is correct.
</DL>
@@ -1896,7 +2012,7 @@ Readline thinks the screen display is correct.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_on_new_line</B> <I>()</I>
-<DD><A NAME="IDX136"></A>
+<DD><A NAME="IDX139"></A>
Tell the update routines that we have moved onto a new (empty) line,
usually after ouputting a newline.
</DL>
@@ -1905,7 +2021,7 @@ usually after ouputting a newline.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>()</I>
-<DD><A NAME="IDX137"></A>
+<DD><A NAME="IDX140"></A>
Reset the display state to a clean state and redisplay the current line
starting on a new line.
</DL>
@@ -1914,7 +2030,7 @@ starting on a new line.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_message</B> <I>(va_alist)</I>
-<DD><A NAME="IDX138"></A>
+<DD><A NAME="IDX141"></A>
The arguments are a string as would be supplied to <CODE>printf</CODE>. The
resulting string is displayed in the <STRONG>echo area</STRONG>. The echo area
is also used to display numeric arguments and search strings.
@@ -1924,7 +2040,7 @@ is also used to display numeric arguments and search strings.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_clear_message</B> <I>()</I>
-<DD><A NAME="IDX139"></A>
+<DD><A NAME="IDX142"></A>
Clear the message in the echo area.
</DL>
@@ -1936,7 +2052,7 @@ Clear the message in the echo area.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(char *text)</I>
-<DD><A NAME="IDX140"></A>
+<DD><A NAME="IDX143"></A>
Insert <VAR>text</VAR> into the line at the current cursor position.
</DL>
@@ -1944,7 +2060,7 @@ Insert <VAR>text</VAR> into the line at the current cursor position.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I>
-<DD><A NAME="IDX141"></A>
+<DD><A NAME="IDX144"></A>
Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
</DL>
@@ -1952,7 +2068,7 @@ Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
<P>
<DL>
<DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I>
-<DD><A NAME="IDX142"></A>
+<DD><A NAME="IDX145"></A>
Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in
the current line.
</DL>
@@ -1961,7 +2077,7 @@ the current line.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I>
-<DD><A NAME="IDX143"></A>
+<DD><A NAME="IDX146"></A>
Copy the text between <VAR>start</VAR> and <VAR>end</VAR> 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.
@@ -1978,7 +2094,7 @@ not a kill, a new kill ring slot is used.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_read_key</B> <I>()</I>
-<DD><A NAME="IDX144"></A>
+<DD><A NAME="IDX147"></A>
Return the next character available. This handles input inserted into
the input stream via <VAR>pending input</VAR> (see section <A HREF="readline.html#SEC22">Readline Variables</A>)
and <CODE>rl_stuff_char ()</CODE>, macros, and characters read from the keyboard.
@@ -1988,7 +2104,7 @@ and <CODE>rl_stuff_char ()</CODE>, macros, and characters read from the keyboard
<P>
<DL>
<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *)</I>
-<DD><A NAME="IDX145"></A>
+<DD><A NAME="IDX148"></A>
Return the next character available from the keyboard.
</DL>
@@ -1996,7 +2112,7 @@ Return the next character available from the keyboard.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
-<DD><A NAME="IDX146"></A>
+<DD><A NAME="IDX149"></A>
Insert <VAR>c</VAR> into the Readline input stream. It will be "read"
before Readline attempts to read characters from the terminal with
<CODE>rl_read_key ()</CODE>.
@@ -2006,7 +2122,7 @@ before Readline attempts to read characters from the terminal with
<P>
<DL>
<DT><U>Function:</U> rl_extend_line_buffer <B>(int</B> <I>len)</I>
-<DD><A NAME="IDX147"></A>
+<DD><A NAME="IDX150"></A>
Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR>
characters, possibly reallocating it if necessary.
</DL>
@@ -2015,7 +2131,7 @@ characters, possibly reallocating it if necessary.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_initialize</B> <I>()</I>
-<DD><A NAME="IDX148"></A>
+<DD><A NAME="IDX151"></A>
Initialize or re-initialize Readline's internal state.
</DL>
@@ -2023,7 +2139,7 @@ Initialize or re-initialize Readline's internal state.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(char *terminal_name)</I>
-<DD><A NAME="IDX149"></A>
+<DD><A NAME="IDX152"></A>
Reinitialize Readline's idea of the terminal settings using
<VAR>terminal_name</VAR> as the terminal type (e.g., <CODE>vt100</CODE>).
</DL>
@@ -2032,7 +2148,7 @@ Reinitialize Readline's idea of the terminal settings using
<P>
<DL>
<DT><U>Function:</U> int <B>alphabetic</B> <I>(int c)</I>
-<DD><A NAME="IDX150"></A>
+<DD><A NAME="IDX153"></A>
Return 1 if <VAR>c</VAR> is an alphabetic character.
</DL>
@@ -2040,7 +2156,7 @@ Return 1 if <VAR>c</VAR> is an alphabetic character.
<P>
<DL>
<DT><U>Function:</U> int <B>numeric</B> <I>(int c)</I>
-<DD><A NAME="IDX151"></A>
+<DD><A NAME="IDX154"></A>
Return 1 if <VAR>c</VAR> is a numeric character.
</DL>
@@ -2048,7 +2164,7 @@ Return 1 if <VAR>c</VAR> is a numeric character.
<P>
<DL>
<DT><U>Function:</U> int <B>ding</B> <I>()</I>
-<DD><A NAME="IDX152"></A>
+<DD><A NAME="IDX155"></A>
Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
</DL>
@@ -2060,7 +2176,7 @@ The following are implemented as macros, defined in <CODE>chartypes.h</CODE>.
<P>
<DL>
<DT><U>Function:</U> int <B>uppercase_p</B> <I>(int c)</I>
-<DD><A NAME="IDX153"></A>
+<DD><A NAME="IDX156"></A>
Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
</DL>
@@ -2068,7 +2184,7 @@ Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
<P>
<DL>
<DT><U>Function:</U> int <B>lowercase_p</B> <I>(int c)</I>
-<DD><A NAME="IDX154"></A>
+<DD><A NAME="IDX157"></A>
Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
</DL>
@@ -2076,7 +2192,7 @@ Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
<P>
<DL>
<DT><U>Function:</U> int <B>digit_p</B> <I>(int c)</I>
-<DD><A NAME="IDX155"></A>
+<DD><A NAME="IDX158"></A>
Return 1 if <VAR>c</VAR> is a numeric character.
</DL>
@@ -2084,7 +2200,7 @@ Return 1 if <VAR>c</VAR> is a numeric character.
<P>
<DL>
<DT><U>Function:</U> int <B>to_upper</B> <I>(int c)</I>
-<DD><A NAME="IDX156"></A>
+<DD><A NAME="IDX159"></A>
If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding
uppercase character.
</DL>
@@ -2093,7 +2209,7 @@ uppercase character.
<P>
<DL>
<DT><U>Function:</U> int <B>to_lower</B> <I>(int c)</I>
-<DD><A NAME="IDX157"></A>
+<DD><A NAME="IDX160"></A>
If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding
lowercase character.
</DL>
@@ -2102,7 +2218,7 @@ lowercase character.
<P>
<DL>
<DT><U>Function:</U> int <B>digit_value</B> <I>(int c)</I>
-<DD><A NAME="IDX158"></A>
+<DD><A NAME="IDX161"></A>
If <VAR>c</VAR> is a number, return the value it represents.
</DL>
@@ -2123,7 +2239,7 @@ are functions available to make this easy.
<P>
<DL>
<DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(char *prompt, Vfunction *lhandler)</I>
-<DD><A NAME="IDX159"></A>
+<DD><A NAME="IDX162"></A>
Set up the terminal for readline I/O and display the initial
expanded value of <VAR>prompt</VAR>. Save the value of <VAR>lhandler</VAR> to
use as a callback when a complete line of input has been entered.
@@ -2133,7 +2249,7 @@ use as a callback when a complete line of input has been entered.
<P>
<DL>
<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>()</I>
-<DD><A NAME="IDX160"></A>
+<DD><A NAME="IDX163"></A>
Whenever an application determines that keyboard input is available, it
should call <CODE>rl_callback_read_char()</CODE>, which will read the next
character from the current input source. If that character completes the
@@ -2147,7 +2263,7 @@ line. <CODE>EOF</CODE> is indicated by calling <VAR>lhandler</VAR> with a
<P>
<DL>
<DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>()</I>
-<DD><A NAME="IDX161"></A>
+<DD><A NAME="IDX164"></A>
Restore the terminal to its initial state and remove the line handler.
This may be called from within a callback as well as independently.
</DL>
@@ -2297,7 +2413,7 @@ frees the strings when it has finished with them.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
-<DD><A NAME="IDX162"></A>
+<DD><A NAME="IDX165"></A>
Complete the word at or before point. You have supplied the function
that does the initial simple matching selection algorithm (see
<CODE>completion_matches ()</CODE>). The default is to do filename completion.
@@ -2307,7 +2423,7 @@ that does the initial simple matching selection algorithm (see
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_completion_entry_function</B>
-<DD><A NAME="IDX163"></A>
+<DD><A NAME="IDX166"></A>
This is a pointer to the generator function for <CODE>completion_matches
()</CODE>. If the value of <CODE>rl_completion_entry_function</CODE> is
<CODE>(Function *)NULL</CODE> then the default filename generator function,
@@ -2327,7 +2443,7 @@ Readline.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I>
-<DD><A NAME="IDX164"></A>
+<DD><A NAME="IDX167"></A>
Complete the word at or before point. <VAR>what_to_do</VAR> says what to do
with the completion. A value of <SAMP>`?'</SAMP> means list the possible
completions. <SAMP>`TAB'</SAMP> means do standard completion. <SAMP>`*'</SAMP> means
@@ -2340,7 +2456,7 @@ performing partial completion.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
-<DD><A NAME="IDX165"></A>
+<DD><A NAME="IDX168"></A>
Complete the word at or before point. You have supplied the function
that does the initial simple matching selection algorithm (see
<CODE>completion_matches ()</CODE> and <CODE>rl_completion_entry_function</CODE>).
@@ -2353,7 +2469,7 @@ argument depending on <VAR>invoking_key</VAR>.
<P>
<DL>
<DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key))</I>
-<DD><A NAME="IDX166"></A>
+<DD><A NAME="IDX169"></A>
List the possible completions. See description of <CODE>rl_complete
()</CODE>. This calls <CODE>rl_complete_internal ()</CODE> with an argument of
<SAMP>`?'</SAMP>.
@@ -2363,7 +2479,7 @@ List the possible completions. See description of <CODE>rl_complete
<P>
<DL>
<DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key))</I>
-<DD><A NAME="IDX167"></A>
+<DD><A NAME="IDX170"></A>
Insert the list of possible completions into the line, deleting the
partially-completed word. See description of <CODE>rl_complete ()</CODE>.
This calls <CODE>rl_complete_internal ()</CODE> with an argument of <SAMP>`*'</SAMP>.
@@ -2373,7 +2489,7 @@ This calls <CODE>rl_complete_internal ()</CODE> with an argument of <SAMP>`*'</S
<P>
<DL>
<DT><U>Function:</U> char ** <B>completion_matches</B> <I>(char *text, CPFunction *entry_func)</I>
-<DD><A NAME="IDX168"></A>
+<DD><A NAME="IDX171"></A>
Returns an array of <CODE>(char *)</CODE> which is a list of completions for
<VAR>text</VAR>. If there are no completions, returns <CODE>(char **)NULL</CODE>.
The first entry in the returned array is the substitution for <VAR>text</VAR>.
@@ -2393,7 +2509,7 @@ when there are no more matches.
<P>
<DL>
<DT><U>Function:</U> char * <B>filename_completion_function</B> <I>(char *text, int state)</I>
-<DD><A NAME="IDX169"></A>
+<DD><A NAME="IDX172"></A>
A generator function for filename completion in the general case. Note
that completion in Bash is a little different because of all
the pathnames that must be followed when looking up completions for a
@@ -2405,7 +2521,7 @@ completion functions.
<P>
<DL>
<DT><U>Function:</U> char * <B>username_completion_function</B> <I>(char *text, int state)</I>
-<DD><A NAME="IDX170"></A>
+<DD><A NAME="IDX173"></A>
A completion generator for usernames. <VAR>text</VAR> contains a partial
username preceded by a random character (usually <SAMP>`~'</SAMP>). As with all
completion generators, <VAR>state</VAR> is zero on the first call and non-zero
@@ -2420,7 +2536,7 @@ for subsequent calls.
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_completion_entry_function</B>
-<DD><A NAME="IDX171"></A>
+<DD><A NAME="IDX174"></A>
A pointer to the generator function for <CODE>completion_matches ()</CODE>.
<CODE>NULL</CODE> means to use <CODE>filename_entry_function ()</CODE>, the default
filename completer.
@@ -2430,7 +2546,7 @@ filename completer.
<P>
<DL>
<DT><U>Variable:</U> CPPFunction * <B>rl_attempted_completion_function</B>
-<DD><A NAME="IDX172"></A>
+<DD><A NAME="IDX175"></A>
A pointer to an alternative function to create matches.
The function is called with <VAR>text</VAR>, <VAR>start</VAR>, and <VAR>end</VAR>.
<VAR>start</VAR> and <VAR>end</VAR> are indices in <CODE>rl_line_buffer</CODE> saying
@@ -2445,7 +2561,7 @@ array of strings returned will be used.
<P>
<DL>
<DT><U>Variable:</U> CPFunction * <B>rl_filename_quoting_function</B>
-<DD><A NAME="IDX173"></A>
+<DD><A NAME="IDX176"></A>
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</CODE>
@@ -2463,7 +2579,7 @@ to reset this character.
<P>
<DL>
<DT><U>Variable:</U> CPFunction * <B>rl_filename_dequoting_function</B>
-<DD><A NAME="IDX174"></A>
+<DD><A NAME="IDX177"></A>
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
@@ -2477,7 +2593,7 @@ that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_char_is_quoted_p</B>
-<DD><A NAME="IDX175"></A>
+<DD><A NAME="IDX178"></A>
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
@@ -2491,7 +2607,7 @@ used to break words for the completer.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_query_items</B>
-<DD><A NAME="IDX176"></A>
+<DD><A NAME="IDX179"></A>
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.
@@ -2501,7 +2617,7 @@ she wants to see them all. The default value is 100.
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_basic_word_break_characters</B>
-<DD><A NAME="IDX177"></A>
+<DD><A NAME="IDX180"></A>
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, i.e.,
@@ -2512,7 +2628,7 @@ which break words for completion in Bash, i.e.,
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_basic_quote_characters</B>
-<DD><A NAME="IDX178"></A>
+<DD><A NAME="IDX181"></A>
List of quote characters which can cause a word break.
</DL>
@@ -2520,7 +2636,7 @@ List of quote characters which can cause a word break.
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_completer_word_break_characters</B>
-<DD><A NAME="IDX179"></A>
+<DD><A NAME="IDX182"></A>
The list of characters that signal a break between words for
<CODE>rl_complete_internal ()</CODE>. The default list is the value of
<CODE>rl_basic_word_break_characters</CODE>.
@@ -2530,7 +2646,7 @@ The list of characters that signal a break between words for
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_completer_quote_characters</B>
-<DD><A NAME="IDX180"></A>
+<DD><A NAME="IDX183"></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</CODE> are treated as any other character,
@@ -2541,16 +2657,16 @@ unless they also appear within this list.
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_filename_quote_characters</B>
-<DD><A NAME="IDX181"></A>
+<DD><A NAME="IDX184"></A>
A list of characters that cause a filename to be quoted by the completer
-when they appear in a completed filename. The default is empty.
+when they appear in a completed filename. The default is the null string.
</DL>
</P>
<P>
<DL>
<DT><U>Variable:</U> char * <B>rl_special_prefixes</B>
-<DD><A NAME="IDX182"></A>
+<DD><A NAME="IDX185"></A>
The list of characters that are word break characters, but should be
left in <VAR>text</VAR> when it is passed to the completion function.
Programs can use this to help determine what kind of completing to do.
@@ -2562,7 +2678,7 @@ shell variables and hostnames.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_append_character</B>
-<DD><A NAME="IDX183"></A>
+<DD><A NAME="IDX186"></A>
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
@@ -2576,7 +2692,7 @@ an application-specific command line syntax specification.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
-<DD><A NAME="IDX184"></A>
+<DD><A NAME="IDX187"></A>
If non-zero, then disallow duplicates in the matches. Default is 1.
</DL>
@@ -2584,7 +2700,7 @@ If non-zero, then disallow duplicates in the matches. Default is 1.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_filename_completion_desired</B>
-<DD><A NAME="IDX185"></A>
+<DD><A NAME="IDX188"></A>
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
@@ -2597,7 +2713,7 @@ characters.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
-<DD><A NAME="IDX186"></A>
+<DD><A NAME="IDX189"></A>
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
@@ -2611,7 +2727,7 @@ by <CODE>rl_filename_quoting_function</CODE>.
<P>
<DL>
<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
-<DD><A NAME="IDX187"></A>
+<DD><A NAME="IDX190"></A>
If this variable is non-zero, completion is inhibit&#60;ed. The completion
character will be inserted as any other bound to <CODE>self-insert</CODE>.
</DL>
@@ -2620,7 +2736,7 @@ character will be inserted as any other bound to <CODE>self-insert</CODE>.
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_ignore_some_completions_function</B>
-<DD><A NAME="IDX188"></A>
+<DD><A NAME="IDX191"></A>
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</CODE> terminated array of matches.
@@ -2634,7 +2750,7 @@ from the array must be freed.
<P>
<DL>
<DT><U>Variable:</U> Function * <B>rl_directory_completion_hook</B>
-<DD><A NAME="IDX189"></A>
+<DD><A NAME="IDX192"></A>
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. It could be used
@@ -3094,7 +3210,7 @@ valid_argument (caller, arg)
</DIR>
<H2>r</H2>
<DIR>
-<LI><A HREF="readline.html#IDX87">readline, function</A>
+<LI><A HREF="readline.html#IDX88">readline, function</A>
</DIR>
</P>
@@ -3104,13 +3220,13 @@ valid_argument (caller, arg)
<P>
<H2>(</H2>
<DIR>
-<LI><A HREF="readline.html#IDX147">(int</A>
+<LI><A HREF="readline.html#IDX150">(int</A>
</DIR>
<H2>a</H2>
<DIR>
-<LI><A HREF="readline.html#IDX72">abort (C-g)</A>
+<LI><A HREF="readline.html#IDX73">abort (C-g)</A>
<LI><A HREF="readline.html#IDX26">accept-line (Newline, Return)</A>
-<LI><A HREF="readline.html#IDX150">alphabetic</A>
+<LI><A HREF="readline.html#IDX153">alphabetic</A>
</DIR>
<H2>b</H2>
<DIR>
@@ -3125,15 +3241,15 @@ valid_argument (caller, arg)
</DIR>
<H2>c</H2>
<DIR>
-<LI><A HREF="readline.html#IDX70">call-last-kbd-macro (C-x e)</A>
+<LI><A HREF="readline.html#IDX71">call-last-kbd-macro (C-x e)</A>
<LI><A HREF="readline.html#IDX48">capitalize-word (M-c)</A>
-<LI><A HREF="readline.html#IDX80">character-search (C-])</A>
-<LI><A HREF="readline.html#IDX81">character-search-backward (M-C-])</A>
+<LI><A HREF="readline.html#IDX81">character-search (C-])</A>
+<LI><A HREF="readline.html#IDX82">character-search-backward (M-C-])</A>
<LI><A HREF="readline.html#IDX24">clear-screen (C-l)</A>
<LI><A HREF="readline.html#IDX3">comment-begin</A>
<LI><A HREF="readline.html#IDX65">complete (TAB)</A>
<LI><A HREF="readline.html#IDX4">completion-query-items</A>
-<LI><A HREF="readline.html#IDX168">completion_matches</A>
+<LI><A HREF="readline.html#IDX171">completion_matches</A>
<LI><A HREF="readline.html#IDX5">convert-meta</A>
<LI><A HREF="readline.html#IDX59">copy-backward-word ()</A>
<LI><A HREF="readline.html#IDX60">copy-forward-word ()</A>
@@ -3144,33 +3260,33 @@ valid_argument (caller, arg)
<LI><A HREF="readline.html#IDX39">delete-char (C-d)</A>
<LI><A HREF="readline.html#IDX56">delete-horizontal-space ()</A>
<LI><A HREF="readline.html#IDX63">digit-argument (M-0, M-1, ... M--)</A>
-<LI><A HREF="readline.html#IDX155">digit_p</A>
-<LI><A HREF="readline.html#IDX158">digit_value</A>
-<LI><A HREF="readline.html#IDX152">ding</A>
+<LI><A HREF="readline.html#IDX158">digit_p</A>
+<LI><A HREF="readline.html#IDX161">digit_value</A>
+<LI><A HREF="readline.html#IDX155">ding</A>
<LI><A HREF="readline.html#IDX6">disable-completion</A>
-<LI><A HREF="readline.html#IDX73">do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</A>
+<LI><A HREF="readline.html#IDX74">do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</A>
<LI><A HREF="readline.html#IDX47">downcase-word (M-l)</A>
-<LI><A HREF="readline.html#IDX83">dump-functions ()</A>
-<LI><A HREF="readline.html#IDX85">dump-macros ()</A>
-<LI><A HREF="readline.html#IDX84">dump-variables ()</A>
+<LI><A HREF="readline.html#IDX84">dump-functions ()</A>
+<LI><A HREF="readline.html#IDX86">dump-macros ()</A>
+<LI><A HREF="readline.html#IDX85">dump-variables ()</A>
</DIR>
<H2>e</H2>
<DIR>
<LI><A HREF="readline.html#IDX7">editing-mode</A>
<LI><A HREF="readline.html#IDX8">enable-keypad</A>
-<LI><A HREF="readline.html#IDX69">end-kbd-macro (C-x ))</A>
+<LI><A HREF="readline.html#IDX70">end-kbd-macro (C-x ))</A>
<LI><A HREF="readline.html#IDX30">end-of-history (M-&#38;#62;)</A>
<LI><A HREF="readline.html#IDX19">end-of-line (C-e)</A>
-<LI><A HREF="readline.html#IDX79">exchange-point-and-mark (C-x C-x)</A>
+<LI><A HREF="readline.html#IDX80">exchange-point-and-mark (C-x C-x)</A>
<LI><A HREF="readline.html#IDX9">expand-tilde</A>
</DIR>
<H2>f</H2>
<DIR>
-<LI><A HREF="readline.html#IDX169">filename_completion_function</A>
+<LI><A HREF="readline.html#IDX172">filename_completion_function</A>
<LI><A HREF="readline.html#IDX20">forward-char (C-f)</A>
<LI><A HREF="readline.html#IDX32">forward-search-history (C-s)</A>
<LI><A HREF="readline.html#IDX22">forward-word (M-f)</A>
-<LI><A HREF="readline.html#IDX131">free_undo_list</A>
+<LI><A HREF="readline.html#IDX134">free_undo_list</A>
</DIR>
<H2>h</H2>
<DIR>
@@ -3181,7 +3297,7 @@ valid_argument (caller, arg)
<H2>i</H2>
<DIR>
<LI><A HREF="readline.html#IDX13">input-meta</A>
-<LI><A HREF="readline.html#IDX82">insert-comment (M-#)</A>
+<LI><A HREF="readline.html#IDX83">insert-comment (M-#)</A>
<LI><A HREF="readline.html#IDX67">insert-completions (M-*)</A>
</DIR>
<H2>k</H2>
@@ -3194,11 +3310,12 @@ valid_argument (caller, arg)
</DIR>
<H2>l</H2>
<DIR>
-<LI><A HREF="readline.html#IDX154">lowercase_p</A>
+<LI><A HREF="readline.html#IDX157">lowercase_p</A>
</DIR>
<H2>m</H2>
<DIR>
<LI><A HREF="readline.html#IDX12">mark-modified-lines</A>
+<LI><A HREF="readline.html#IDX68">menu-complete ()</A>
<LI><A HREF="readline.html#IDX14">meta-flag</A>
</DIR>
<H2>n</H2>
@@ -3206,7 +3323,7 @@ valid_argument (caller, arg)
<LI><A HREF="readline.html#IDX28">next-history (C-n)</A>
<LI><A HREF="readline.html#IDX34">non-incremental-forward-search-history (M-n)</A>
<LI><A HREF="readline.html#IDX33">non-incremental-reverse-search-history (M-p)</A>
-<LI><A HREF="readline.html#IDX151">numeric</A>
+<LI><A HREF="readline.html#IDX154">numeric</A>
</DIR>
<H2>o</H2>
<DIR>
@@ -3215,7 +3332,7 @@ valid_argument (caller, arg)
<H2>p</H2>
<DIR>
<LI><A HREF="readline.html#IDX66">possible-completions (M-?)</A>
-<LI><A HREF="readline.html#IDX74">prefix-meta (ESC)</A>
+<LI><A HREF="readline.html#IDX75">prefix-meta (ESC)</A>
<LI><A HREF="readline.html#IDX27">previous-history (C-p)</A>
</DIR>
<H2>q</H2>
@@ -3224,123 +3341,125 @@ valid_argument (caller, arg)
</DIR>
<H2>r</H2>
<DIR>
-<LI><A HREF="readline.html#IDX71">re-read-init-file (C-x C-r)</A>
-<LI><A HREF="readline.html#IDX86">readline</A>
+<LI><A HREF="readline.html#IDX72">re-read-init-file (C-x C-r)</A>
+<LI><A HREF="readline.html#IDX87">readline</A>
<LI><A HREF="readline.html#IDX25">redraw-current-line ()</A>
<LI><A HREF="readline.html#IDX31">reverse-search-history (C-r)</A>
-<LI><A HREF="readline.html#IDX76">revert-line (M-r)</A>
-<LI><A HREF="readline.html#IDX106">rl_add_defun</A>
-<LI><A HREF="readline.html#IDX130">rl_add_undo</A>
-<LI><A HREF="readline.html#IDX172">rl_attempted_completion_function</A>
-<LI><A HREF="readline.html#IDX178">rl_basic_quote_characters</A>
-<LI><A HREF="readline.html#IDX177">rl_basic_word_break_characters</A>
-<LI><A HREF="readline.html#IDX128">rl_begin_undo_group</A>
-<LI><A HREF="readline.html#IDX115">rl_bind_key</A>
-<LI><A HREF="readline.html#IDX116">rl_bind_key_in_map</A>
-<LI><A HREF="readline.html#IDX105">rl_binding_keymap</A>
-<LI><A HREF="readline.html#IDX159">rl_callback_handler_install</A>
-<LI><A HREF="readline.html#IDX161">rl_callback_handler_remove</A>
-<LI><A HREF="readline.html#IDX160">rl_callback_read_char</A>
-<LI><A HREF="readline.html#IDX175">rl_char_is_quoted_p</A>
-<LI><A HREF="readline.html#IDX139">rl_clear_message</A>
-<LI><A HREF="readline.html#IDX162">rl_complete</A>, <A HREF="rlman.html#IDX165">rl_complete</A>
-<LI><A HREF="readline.html#IDX164">rl_complete_internal</A>
-<LI><A HREF="readline.html#IDX180">rl_completer_quote_characters</A>
-<LI><A HREF="readline.html#IDX179">rl_completer_word_break_characters</A>
-<LI><A HREF="readline.html#IDX183">rl_completion_append_character</A>
-<LI><A HREF="readline.html#IDX163">rl_completion_entry_function</A>, <A HREF="rlman.html#IDX171">rl_completion_entry_function</A>
-<LI><A HREF="readline.html#IDX176">rl_completion_query_items</A>
-<LI><A HREF="readline.html#IDX108">rl_copy_keymap</A>
-<LI><A HREF="readline.html#IDX142">rl_copy_text</A>
-<LI><A HREF="readline.html#IDX141">rl_delete_text</A>
-<LI><A HREF="readline.html#IDX189">rl_directory_completion_hook</A>
-<LI><A HREF="readline.html#IDX110">rl_discard_keymap</A>
-<LI><A HREF="readline.html#IDX132">rl_do_undo</A>
-<LI><A HREF="readline.html#IDX92">rl_done</A>
-<LI><A HREF="readline.html#IDX90">rl_end</A>
-<LI><A HREF="readline.html#IDX129">rl_end_undo_group</A>
-<LI><A HREF="readline.html#IDX101">rl_event_hook</A>
-<LI><A HREF="readline.html#IDX104">rl_executing_keymap</A>
-<LI><A HREF="readline.html#IDX185">rl_filename_completion_desired</A>
-<LI><A HREF="readline.html#IDX174">rl_filename_dequoting_function</A>
-<LI><A HREF="readline.html#IDX181">rl_filename_quote_characters</A>
-<LI><A HREF="readline.html#IDX186">rl_filename_quoting_desired</A>
-<LI><A HREF="readline.html#IDX173">rl_filename_quoting_function</A>
-<LI><A HREF="readline.html#IDX135">rl_forced_update_display</A>
-<LI><A HREF="readline.html#IDX126">rl_function_dumper</A>
-<LI><A HREF="readline.html#IDX123">rl_function_of_keyseq</A>
-<LI><A HREF="readline.html#IDX119">rl_generic_bind</A>
-<LI><A HREF="readline.html#IDX111">rl_get_keymap</A>
-<LI><A HREF="readline.html#IDX113">rl_get_keymap_by_name</A>
-<LI><A HREF="readline.html#IDX114">rl_get_keymap_name</A>
-<LI><A HREF="readline.html#IDX145">rl_getc</A>
-<LI><A HREF="readline.html#IDX102">rl_getc_function</A>
-<LI><A HREF="readline.html#IDX184">rl_ignore_completion_duplicates</A>
-<LI><A HREF="readline.html#IDX188">rl_ignore_some_completions_function</A>
-<LI><A HREF="readline.html#IDX187">rl_inhibit_completion</A>
-<LI><A HREF="readline.html#IDX148">rl_initialize</A>
-<LI><A HREF="readline.html#IDX167">rl_insert_completions</A>
-<LI><A HREF="readline.html#IDX140">rl_insert_text</A>
-<LI><A HREF="readline.html#IDX98">rl_instream</A>
-<LI><A HREF="readline.html#IDX124">rl_invoking_keyseqs</A>
-<LI><A HREF="readline.html#IDX125">rl_invoking_keyseqs_in_map</A>
-<LI><A HREF="readline.html#IDX143">rl_kill_text</A>
-<LI><A HREF="readline.html#IDX95">rl_library_version</A>
-<LI><A HREF="readline.html#IDX88">rl_line_buffer</A>
-<LI><A HREF="readline.html#IDX127">rl_list_funmap_names</A>
-<LI><A HREF="readline.html#IDX107">rl_make_bare_keymap</A>
-<LI><A HREF="readline.html#IDX109">rl_make_keymap</A>
-<LI><A HREF="readline.html#IDX91">rl_mark</A>
-<LI><A HREF="readline.html#IDX138">rl_message</A>
-<LI><A HREF="readline.html#IDX133">rl_modifying</A>
-<LI><A HREF="readline.html#IDX122">rl_named_function</A>
-<LI><A HREF="readline.html#IDX136">rl_on_new_line</A>
-<LI><A HREF="readline.html#IDX99">rl_outstream</A>
-<LI><A HREF="readline.html#IDX120">rl_parse_and_bind</A>
-<LI><A HREF="readline.html#IDX93">rl_pending_input</A>
-<LI><A HREF="readline.html#IDX89">rl_point</A>
-<LI><A HREF="readline.html#IDX166">rl_possible_completions</A>
-<LI><A HREF="readline.html#IDX94">rl_prompt</A>
-<LI><A HREF="readline.html#IDX121">rl_read_init_file</A>
-<LI><A HREF="readline.html#IDX144">rl_read_key</A>
-<LI><A HREF="readline.html#IDX97">rl_readline_name</A>
-<LI><A HREF="readline.html#IDX134">rl_redisplay</A>
-<LI><A HREF="readline.html#IDX103">rl_redisplay_function</A>
-<LI><A HREF="readline.html#IDX137">rl_reset_line_state</A>
-<LI><A HREF="readline.html#IDX149">rl_reset_terminal</A>
-<LI><A HREF="readline.html#IDX112">rl_set_keymap</A>
-<LI><A HREF="readline.html#IDX182">rl_special_prefixes</A>
-<LI><A HREF="readline.html#IDX100">rl_startup_hook</A>
-<LI><A HREF="readline.html#IDX146">rl_stuff_char</A>
-<LI><A HREF="readline.html#IDX96">rl_terminal_name</A>
-<LI><A HREF="readline.html#IDX117">rl_unbind_key</A>
-<LI><A HREF="readline.html#IDX118">rl_unbind_key_in_map</A>
+<LI><A HREF="readline.html#IDX77">revert-line (M-r)</A>
+<LI><A HREF="readline.html#IDX107">rl_add_defun</A>
+<LI><A HREF="readline.html#IDX133">rl_add_undo</A>
+<LI><A HREF="readline.html#IDX175">rl_attempted_completion_function</A>
+<LI><A HREF="readline.html#IDX181">rl_basic_quote_characters</A>
+<LI><A HREF="readline.html#IDX180">rl_basic_word_break_characters</A>
+<LI><A HREF="readline.html#IDX131">rl_begin_undo_group</A>
+<LI><A HREF="readline.html#IDX116">rl_bind_key</A>
+<LI><A HREF="readline.html#IDX117">rl_bind_key_in_map</A>
+<LI><A HREF="readline.html#IDX106">rl_binding_keymap</A>
+<LI><A HREF="readline.html#IDX162">rl_callback_handler_install</A>
+<LI><A HREF="readline.html#IDX164">rl_callback_handler_remove</A>
+<LI><A HREF="readline.html#IDX163">rl_callback_read_char</A>
+<LI><A HREF="readline.html#IDX178">rl_char_is_quoted_p</A>
+<LI><A HREF="readline.html#IDX142">rl_clear_message</A>
+<LI><A HREF="readline.html#IDX165">rl_complete</A>, <A HREF="rlman.html#IDX168">rl_complete</A>
+<LI><A HREF="readline.html#IDX167">rl_complete_internal</A>
+<LI><A HREF="readline.html#IDX183">rl_completer_quote_characters</A>
+<LI><A HREF="readline.html#IDX182">rl_completer_word_break_characters</A>
+<LI><A HREF="readline.html#IDX186">rl_completion_append_character</A>
+<LI><A HREF="readline.html#IDX166">rl_completion_entry_function</A>, <A HREF="rlman.html#IDX174">rl_completion_entry_function</A>
+<LI><A HREF="readline.html#IDX179">rl_completion_query_items</A>
+<LI><A HREF="readline.html#IDX109">rl_copy_keymap</A>
+<LI><A HREF="readline.html#IDX145">rl_copy_text</A>
+<LI><A HREF="readline.html#IDX144">rl_delete_text</A>
+<LI><A HREF="readline.html#IDX192">rl_directory_completion_hook</A>
+<LI><A HREF="readline.html#IDX111">rl_discard_keymap</A>
+<LI><A HREF="readline.html#IDX135">rl_do_undo</A>
+<LI><A HREF="readline.html#IDX93">rl_done</A>
+<LI><A HREF="readline.html#IDX91">rl_end</A>
+<LI><A HREF="readline.html#IDX132">rl_end_undo_group</A>
+<LI><A HREF="readline.html#IDX102">rl_event_hook</A>
+<LI><A HREF="readline.html#IDX105">rl_executing_keymap</A>
+<LI><A HREF="readline.html#IDX188">rl_filename_completion_desired</A>
+<LI><A HREF="readline.html#IDX177">rl_filename_dequoting_function</A>
+<LI><A HREF="readline.html#IDX184">rl_filename_quote_characters</A>
+<LI><A HREF="readline.html#IDX189">rl_filename_quoting_desired</A>
+<LI><A HREF="readline.html#IDX176">rl_filename_quoting_function</A>
+<LI><A HREF="readline.html#IDX138">rl_forced_update_display</A>
+<LI><A HREF="readline.html#IDX129">rl_function_dumper</A>
+<LI><A HREF="readline.html#IDX126">rl_function_of_keyseq</A>
+<LI><A HREF="readline.html#IDX122">rl_generic_bind</A>
+<LI><A HREF="readline.html#IDX112">rl_get_keymap</A>
+<LI><A HREF="readline.html#IDX114">rl_get_keymap_by_name</A>
+<LI><A HREF="readline.html#IDX115">rl_get_keymap_name</A>
+<LI><A HREF="readline.html#IDX148">rl_getc</A>
+<LI><A HREF="readline.html#IDX103">rl_getc_function</A>
+<LI><A HREF="readline.html#IDX187">rl_ignore_completion_duplicates</A>
+<LI><A HREF="readline.html#IDX191">rl_ignore_some_completions_function</A>
+<LI><A HREF="readline.html#IDX190">rl_inhibit_completion</A>
+<LI><A HREF="readline.html#IDX151">rl_initialize</A>
+<LI><A HREF="readline.html#IDX170">rl_insert_completions</A>
+<LI><A HREF="readline.html#IDX143">rl_insert_text</A>
+<LI><A HREF="readline.html#IDX99">rl_instream</A>
+<LI><A HREF="readline.html#IDX127">rl_invoking_keyseqs</A>
+<LI><A HREF="readline.html#IDX128">rl_invoking_keyseqs_in_map</A>
+<LI><A HREF="readline.html#IDX146">rl_kill_text</A>
+<LI><A HREF="readline.html#IDX96">rl_library_version</A>
+<LI><A HREF="readline.html#IDX89">rl_line_buffer</A>
+<LI><A HREF="readline.html#IDX130">rl_list_funmap_names</A>
+<LI><A HREF="readline.html#IDX108">rl_make_bare_keymap</A>
+<LI><A HREF="readline.html#IDX110">rl_make_keymap</A>
+<LI><A HREF="readline.html#IDX92">rl_mark</A>
+<LI><A HREF="readline.html#IDX141">rl_message</A>
+<LI><A HREF="readline.html#IDX136">rl_modifying</A>
+<LI><A HREF="readline.html#IDX125">rl_named_function</A>
+<LI><A HREF="readline.html#IDX139">rl_on_new_line</A>
+<LI><A HREF="readline.html#IDX100">rl_outstream</A>
+<LI><A HREF="readline.html#IDX123">rl_parse_and_bind</A>
+<LI><A HREF="readline.html#IDX94">rl_pending_input</A>
+<LI><A HREF="readline.html#IDX90">rl_point</A>
+<LI><A HREF="readline.html#IDX169">rl_possible_completions</A>
+<LI><A HREF="readline.html#IDX95">rl_prompt</A>
+<LI><A HREF="readline.html#IDX124">rl_read_init_file</A>
+<LI><A HREF="readline.html#IDX147">rl_read_key</A>
+<LI><A HREF="readline.html#IDX98">rl_readline_name</A>
+<LI><A HREF="readline.html#IDX137">rl_redisplay</A>
+<LI><A HREF="readline.html#IDX104">rl_redisplay_function</A>
+<LI><A HREF="readline.html#IDX140">rl_reset_line_state</A>
+<LI><A HREF="readline.html#IDX152">rl_reset_terminal</A>
+<LI><A HREF="readline.html#IDX113">rl_set_keymap</A>
+<LI><A HREF="readline.html#IDX185">rl_special_prefixes</A>
+<LI><A HREF="readline.html#IDX101">rl_startup_hook</A>
+<LI><A HREF="readline.html#IDX149">rl_stuff_char</A>
+<LI><A HREF="readline.html#IDX97">rl_terminal_name</A>
+<LI><A HREF="readline.html#IDX121">rl_unbind_command_in_map</A>
+<LI><A HREF="readline.html#IDX120">rl_unbind_function_in_map</A>
+<LI><A HREF="readline.html#IDX118">rl_unbind_key</A>
+<LI><A HREF="readline.html#IDX119">rl_unbind_key_in_map</A>
</DIR>
<H2>s</H2>
<DIR>
<LI><A HREF="readline.html#IDX43">self-insert (a, b, A, 1, !, ...)</A>
-<LI><A HREF="readline.html#IDX78">set-mark (C-@)</A>
+<LI><A HREF="readline.html#IDX79">set-mark (C-@)</A>
<LI><A HREF="readline.html#IDX16">show-all-if-ambiguous</A>
-<LI><A HREF="readline.html#IDX68">start-kbd-macro (C-x ()</A>
+<LI><A HREF="readline.html#IDX69">start-kbd-macro (C-x ()</A>
</DIR>
<H2>t</H2>
<DIR>
<LI><A HREF="readline.html#IDX42">tab-insert (M-TAB)</A>
-<LI><A HREF="readline.html#IDX77">tilde-expand (M-~)</A>
-<LI><A HREF="readline.html#IDX157">to_lower</A>
-<LI><A HREF="readline.html#IDX156">to_upper</A>
+<LI><A HREF="readline.html#IDX78">tilde-expand (M-~)</A>
+<LI><A HREF="readline.html#IDX160">to_lower</A>
+<LI><A HREF="readline.html#IDX159">to_upper</A>
<LI><A HREF="readline.html#IDX44">transpose-chars (C-t)</A>
<LI><A HREF="readline.html#IDX45">transpose-words (M-t)</A>
</DIR>
<H2>u</H2>
<DIR>
-<LI><A HREF="readline.html#IDX75">undo (C-_, C-x C-u)</A>
+<LI><A HREF="readline.html#IDX76">undo (C-_, C-x C-u)</A>
<LI><A HREF="readline.html#IDX64">universal-argument ()</A>
<LI><A HREF="readline.html#IDX51">unix-line-discard (C-u)</A>
<LI><A HREF="readline.html#IDX55">unix-word-rubout (C-w)</A>
<LI><A HREF="readline.html#IDX46">upcase-word (M-u)</A>
-<LI><A HREF="readline.html#IDX153">uppercase_p</A>
-<LI><A HREF="readline.html#IDX170">username_completion_function</A>
+<LI><A HREF="readline.html#IDX156">uppercase_p</A>
+<LI><A HREF="readline.html#IDX173">username_completion_function</A>
</DIR>
<H2>v</H2>
<DIR>
@@ -3356,7 +3475,7 @@ valid_argument (caller, arg)
</P>
<P><HR><P>
-This document was generated on 3 June 1997 using the
+This document was generated on 2 April 1998 using the
<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
translator version 1.51.</P>
</BODY>
diff --git a/doc/readline.info b/doc/readline.info
index 3e44460..251ca9e 100644
--- a/doc/readline.info
+++ b/doc/readline.info
@@ -1,5 +1,10 @@
-This is Info file readline.info, produced by Makeinfo-1.55 from the
-input file /usr/homes/chet/src/bash/readline-2.1/doc/rlman.texinfo.
+This is Info file readline.info, produced by Makeinfo version 1.67 from
+the input file /usr/homes/chet/src/bash/readline-2.2/doc/rlman.texinfo.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* Readline: (readline). The GNU readline library API
+END-INFO-DIR-ENTRY
This document describes the GNU Readline Library, a utility which
aids in the consistency of user interface across discrete programs that
@@ -22,7 +27,7 @@ versions, except that this permission notice may be stated in a
translation approved by the Foundation.

-File: readline.info, Node: Top, Next: Command Line Editing, Prev: (DIR), Up: (DIR)
+File: readline.info, Node: Top, Next: Command Line Editing, Up: (dir)
GNU Readline Library
********************
@@ -67,21 +72,22 @@ Introduction to Line Editing
The following paragraphs describe the notation used to represent
keystrokes.
- The text C-k is read as `Control-K' and describes the character
-produced when the k key is pressed while the Control key is depressed.
+ The text <C-k> is read as `Control-K' and describes the character
+produced when the <k> key is pressed while the Control key is depressed.
- The text M-k is read as `Meta-K' and describes the character
-produced when the meta key (if you have one) is depressed, and the k
+ The text <M-k> is read as `Meta-K' and describes the character
+produced when the meta key (if you have one) is depressed, and the <k>
key is pressed. If you do not have a meta key, the identical keystroke
-can be generated by typing ESC first, and then typing k. Either
-process is known as "metafying" the k key.
+can be generated by typing <ESC> first, and then typing <k>. Either
+process is known as "metafying" the <k> key.
- The text M-C-k is read as `Meta-Control-k' and describes the
-character produced by "metafying" C-k.
+ The text <M-C-k> is read as `Meta-Control-k' and describes the
+character produced by "metafying" <C-k>.
- In addition, several keys have their own names. Specifically, DEL,
-ESC, LFD, SPC, RET, and TAB all stand for themselves when seen in this
-text, or in an init file (*note Readline Init File::.).
+ In addition, several keys have their own names. Specifically,
+<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
+when seen in this text, or in an init file (*note Readline Init
+File::.).

File: readline.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
@@ -96,9 +102,9 @@ 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 RETURN. You do not have to be at the end of
-the line to press RETURN; the entire line is accepted regardless of the
-location of the cursor within the line.
+the line, you simply press <RETURN>. You do not have to be at the end
+of the line to press <RETURN>; the entire line is accepted regardless
+of the location of the cursor within the line.
* Menu:
@@ -121,9 +127,9 @@ erase character to back up and delete the mistyped character.
Sometimes you may miss typing a character that you wanted to type,
and not notice your error until you have typed several other
-characters. In that case, you can type C-b to move the cursor to the
+characters. In that case, you can type <C-b> to move the cursor to the
left, and then correct your mistake. Afterwards, you can move the
-cursor to the right with C-f.
+cursor to the right with <C-f>.
When you add text in the middle of a line, you will notice that
characters to the right of the cursor are `pushed over' to make room
@@ -133,24 +139,24 @@ back' to fill in the blank space created by the removal of the text. A
list of the basic bare essentials for editing the text of an input line
follows.
-C-b
+<C-b>
Move back one character.
-C-f
+<C-f>
Move forward one character.
-DEL
+<DEL>
Delete the character to the left of the cursor.
-C-d
+<C-d>
Delete the character underneath the cursor.
Printing characters
Insert the character into the line at the cursor.
-C-_
- Undo the last thing that you did. You can undo all the way back
- to an empty line.
+<C-_>
+ Undo the last editing command. You can undo all the way back to an
+ empty line.

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

File: readline.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
@@ -203,32 +210,32 @@ available to be yanked back later, when you are typing another line.
Here is the list of commands for killing text.
-C-k
+<C-k>
Kill the text from the current cursor position to the end of the
line.
-M-d
+<M-d>
Kill from the cursor to the end of the current word, or if between
words, to the end of the next word.
-M-DEL
+<M-DEL>
Kill from the cursor the start of the previous word, or if between
words, to the start of the previous word.
-C-w
+<C-w>
Kill from the cursor to the previous whitespace. This is
- different than M-DEL because the word boundaries differ.
+ different than <M-DEL> because the word boundaries differ.
- And, here is how to "yank" the text back into the line. Yanking
-means to copy the most-recently-killed text from the kill buffer.
+ Here is how to "yank" the text back into the line. Yanking means to
+copy the most-recently-killed text from the kill buffer.
-C-y
+<C-y>
Yank the most recently killed text back into the buffer at the
cursor.
-M-y
+<M-y>
Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is C-y or M-y.
+ if the prior command is <C-y> or <M-y>.

File: readline.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
@@ -244,11 +251,11 @@ act in a backward direction. For example, to kill text back to the
start of the line, you might type `M-- C-k'.
The general way to pass numeric arguments to a command is to type
-meta digits before the command. If the first `digit' you type is a
-minus sign (-), then the sign of the argument will be negative. Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command. For example, to give
-the C-d command an argument of 10, you could type `M-1 0 C-d'.
+meta digits before the command. If the first `digit' typed is a minus
+sign (<->), then the sign of the argument will be negative. Once you
+have typed one meta digit to get the argument started, you can type the
+remainder of the digits, and then the command. For example, to give
+the <C-d> command an argument of 10, you could type `M-1 0 C-d'.

File: readline.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
@@ -258,28 +265,28 @@ Searching for Commands in the History
Readline provides commands for searching through the command history
for lines containing a specified string. There are two search modes:
-iNCREMENTAL and NON-INCREMENTAL.
+INCREMENTAL and NON-INCREMENTAL.
Incremental searches begin before the user has finished typing the
search string. As each character of the search string is typed,
-readline displays the next entry from the history matching the string
+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. The Escape character is
-used to terminate an incremental search. Control-J will also terminate
-the search. Control-G will abort an incremental search and restore the
+as needed to find the desired history entry. The <ESC> character is
+used to terminate an incremental search. <C-j> will also terminate the
+search. <C-g> will abort an incremental search and restore the
original line. When the search is terminated, the history entry
containing the search string becomes the current line. To find other
-matching entries in the history list, type Control-S or Control-R as
+matching entries in the history list, type <C-s> or <C-r> as
appropriate. This will search backward or forward in the history for
the next 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 `newline' will terminate the
-search and accept the line, thereby executing the command from the
-history list.
+sequence bound to a Readline command will terminate the search and
+execute that command. For instance, a <RET> will terminate the search
+and accept the line, thereby executing the command from the history
+list.
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 part of the contents of the current line.
+typed by the user or be part of the contents of the current line.

File: readline.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing
@@ -288,12 +295,11 @@ Readline Init File
==================
Although the Readline library comes with a set of `emacs'-like
-keybindings installed by default, it is possible that you would like to
-use a different set of keybindings. You can customize programs that
-use Readline by putting commands in an "inputrc" file in your home
-directory. The name of this file is taken from the value of the
-environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'.
+keybindings installed by default, it is possible to use a different set
+of keybindings. Any user can customize programs that use Readline by
+putting commands in an "inputrc" file in his home directory. The name
+of this file is taken from the value of the environment variable
+`INPUTRC'. If that variable is unset, the default is `~/.inputrc'.
When a program which uses the Readline library starts up, the init
file is read, and the key bindings are set.
@@ -322,14 +328,15 @@ comments. Lines beginning with a `$' indicate conditional constructs
settings and key bindings.
Variable Settings
- You can change the state of a few variables in Readline by using
- the `set' command within the init file. Here is how you would
- specify that you wish to use `vi' line editing commands:
+ You can modify the run-time behavior of Readline by altering the
+ values of variables in Readline using the `set' command within the
+ init file. Here is how to change from the default Emacs-like key
+ binding to use `vi' line editing commands:
set editing-mode vi
- Right now, there are only a few variables which can be set; so
- few, in fact, that we just list them here:
+ A great deal of run-time behavior is changeable with the following
+ variables.
`bell-style'
Controls what happens when Readline wants to ring the
@@ -343,6 +350,11 @@ Variable Settings
`insert-comment' command is executed. The default value is
`"#"'.
+ `completion-ignore-case'
+ If set to `on', Readline performs filename matching and
+ completion in a case-insensitive fashion. The default value
+ is `off'.
+
`completion-query-items'
The number of possible completions that determines when the
user is asked whether he wants to see the list of
@@ -353,23 +365,23 @@ Variable Settings
`convert-meta'
If set to `on', Readline will convert characters with the
- eigth bit set to an ASCII key sequence by stripping the eigth
- bit and prepending an ESC character, converting them to a
- meta-prefixed key sequence. The default value is `on'.
+ eighth bit set to an ASCII key sequence by stripping the
+ eighth bit and prepending an <ESC> character, converting them
+ to a meta-prefixed key sequence. The default value is `on'.
`disable-completion'
- If set to `On', readline will inhibit word completion.
+ If set to `On', Readline will inhibit word completion.
Completion characters will be inserted into the line as if
they had been mapped to `self-insert'. The default is `off'.
`editing-mode'
- The `editing-mode' variable controls which editing mode you
- are using. By default, Readline starts up in Emacs editing
- mode, where the keystrokes are most similar to Emacs. This
- variable can be set to either `emacs' or `vi'.
+ The `editing-mode' variable controls which default set of key
+ bindings is used. By default, Readline starts up in Emacs
+ editing mode, where the keystrokes are most similar to Emacs.
+ This variable can be set to either `emacs' or `vi'.
`enable-keypad'
- When set to `on', readline will try to enable the application
+ When set to `on', Readline will try to enable the application
keypad when it is called. Some systems need this to enable
the arrow keys. The default is `off'.
@@ -379,7 +391,7 @@ Variable Settings
`horizontal-scroll-mode'
This variable can be set to either `on' or `off'. Setting it
- to `on' means that the text of the lines that you edit will
+ to `on' means that the text of the lines being edited will
scroll horizontally on a single screen line when they are
longer than the width of the screen, instead of wrapping onto
a new screen line. By default, this variable is set to `off'.
@@ -398,9 +410,9 @@ Variable Settings
appended. The default is `on'.
`mark-modified-lines'
- This variable, when set to `on', says to display an asterisk
- (`*') at the start of history lines which have been modified.
- This variable is `off' by default.
+ This variable, when set to `on', causes Readline to display an
+ asterisk (`*') at the start of history lines which have been
+ modified. This variable is `off' by default.
`input-meta'
If set to `on', Readline will enable eight-bit input (it will
@@ -414,6 +426,11 @@ Variable Settings
eighth bit set directly rather than as a meta-prefixed escape
sequence. The default is `off'.
+ `print-completions-horizontally'
+ If set to `on', Readline will display completions with matches
+ sorted horizontally in alphabetical order, rather than down
+ the screen. The default is `off'.
+
`show-all-if-ambiguous'
This alters the default behavior of the completion functions.
If set to `on', words which have more than one possible
@@ -428,9 +445,9 @@ Variable Settings
Key Bindings
The syntax for controlling key bindings in the init file is
simple. First you have to know the name of the command that you
- want to change. The following pages contain tables of the command
- name, the default keybinding, and a short description of what the
- command does.
+ 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 the name of
the key you wish to bind the command to, a colon, and then the
@@ -445,8 +462,8 @@ Key Bindings
Meta-Rubout: backward-kill-word
Control-o: "> output"
- In the above example, `C-u' is bound to the function
- `universal-argument', and `C-o' is bound to run the macro
+ In the above example, <C-u> is bound to the function
+ `universal-argument', 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).
@@ -461,38 +478,76 @@ Key Bindings
"\C-x\C-r": re-read-init-file
"\e[11~": "Function Key 1"
- In the above example, `C-u' is bound to the function
+ In the above example, <C-u> is bound to the function
`universal-argument' (just as it was in the first example),
- `C-x C-r' is bound to the function `re-read-init-file', and
- `ESC [ 1 1 ~' is bound to insert the text `Function Key 1'.
- The following escape sequences are available when specifying
- key sequences:
+ `<C-x> <C-r>' is bound to the function `re-read-init-file',
+ and `<ESC> <[> <1> <1> <~>' is bound to insert the text
+ `Function Key 1'.
+
+ The following GNU Emacs style escape sequences are available when
+ specifying key sequences:
+
+ `\C-'
+ control prefix
+
+ `\M-'
+ meta prefix
+
+ `\e'
+ an escape character
+
+ `\\'
+ backslash
+
+ `\"'
+ <">
+
+ `\''
+ <'>
+
+ In addition to the GNU Emacs style escape sequences, a second set
+ of backslash escapes is available:
+
+ `\a'
+ alert (bell)
- ``\C-''
- control prefix
+ `\b'
+ backspace
- ``\M-''
- meta prefix
+ `\d'
+ delete
- ``\e''
- an escape character
+ `\f'
+ form feed
- ``\\''
- backslash
+ `\n'
+ newline
- ``\"''
- "
+ `\r'
+ carriage return
- ``\'''
- '
+ `\t'
+ horizontal tab
- 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. Backslash will quote any
- character in the macro text, including `"' and `''. For
- example, the following binding will make `C-x \' insert a
- single `\' into the line:
- "\C-x\\": "\\"
+ `\v'
+ vertical tab
+
+ `\NNN'
+ the character whose ASCII code is the octal value NNN (one to
+ three digits)
+
+ `\xNNN'
+ the character whose ASCII code is the hexadecimal value NNN
+ (one to three digits)
+
+ 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 `"' and `''. For example,
+ the following binding will make `C-x \' insert a single `\' into
+ the line:
+ "\C-x\\": "\\"

File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
@@ -503,7 +558,7 @@ 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 three parser directives used.
+are four parser directives used.
`$if'
The `$if' construct allows bindings to be made based on the
@@ -523,8 +578,8 @@ are three parser directives used.
The `term=' form may be used to include terminal-specific key
bindings, perhaps to bind the key sequences output by the
terminal's function keys. The word on the right side of the
- `=' is tested against the full name of the terminal and the
- portion of the terminal name before the first `-'. This
+ `=' is tested against both the full name of the terminal and
+ the portion of the terminal name before the first `-'. This
allows `sun' to match both `sun' and `sun-cmd', for instance.
`application'
@@ -541,13 +596,18 @@ are three parser directives used.
$endif
`$endif'
- This command, as you saw in the previous example, terminates an
- `$if' command.
+ This command, as seen in the previous example, terminates an `$if'
+ command.
`$else'
Commands in this branch of the `$if' directive are executed if the
test fails.
+`$include'
+ This directive takes a single filename as an argument and reads
+ commands and bindings from that file.
+ $include /etc/inputrc
+

File: readline.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File
@@ -565,6 +625,11 @@ binding, variable assignment, and conditional syntax.
# 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
@@ -725,8 +790,8 @@ Commands For Manipulating The History
Move to the first line in the history.
`end-of-history (M->)'
- Move to the end of the input history, i.e., the line you are
- entering.
+ Move to the end of the input history, i.e., the line currently
+ being entered.
`reverse-search-history (C-r)'
Search backward starting at the current line and moving `up'
@@ -750,7 +815,7 @@ Commands For Manipulating The History
`history-search-forward ()'
Search forward through the history for the string of characters
between the start of the current line and the current cursor
- position (the `point'). This is a non-incremental search. By
+ position (the POINT). This is a non-incremental search. By
default, this command is unbound.
`history-search-backward ()'
@@ -768,7 +833,9 @@ Commands For Manipulating The History
`yank-last-arg (M-., M-_)'
Insert last argument to the previous command (the last word of the
previous history entry). With an argument, behave exactly like
- `yank-nth-arg'.
+ `yank-nth-arg'. Successive calls to `yank-last-arg' move back
+ 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
@@ -779,15 +846,16 @@ Commands For Changing Text
`delete-char (C-d)'
Delete the character under the cursor. If the cursor is at the
beginning of the line, there are no characters in the line, and
- the last character typed was not `C-d', then return `EOF'.
+ the last character typed was not bound to `delete-char', then
+ return `EOF'.
`backward-delete-char (Rubout)'
- Delete the character behind the cursor. A numeric arg says to kill
- the characters instead of deleting them.
+ Delete the character behind the cursor. A numeric argument means
+ to kill the characters instead of deleting them.
`quoted-insert (C-q, C-v)'
- Add the next character that you type to the line verbatim. This is
- how to insert key sequences like C-q, for example.
+ Add the next character typed to the line verbatim. This is how to
+ insert key sequences like <C-q>, for example.
`tab-insert (M-TAB)'
Insert a tab character.
@@ -799,7 +867,7 @@ Commands For Changing Text
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 argumentss don't work.
+ characters of the line. Negative arguments don't work.
`transpose-words (M-t)'
Drag the word behind the cursor past the word in front of the
@@ -807,15 +875,15 @@ Commands For Changing Text
`upcase-word (M-u)'
Uppercase the current (or following) word. With a negative
- argument, do the previous word, but do not move the cursor.
+ argument, uppercase the previous word, but do not move the cursor.
`downcase-word (M-l)'
Lowercase the current (or following) word. With a negative
- argument, do the previous word, but do not move the cursor.
+ argument, lowercase the previous word, but do not move the cursor.
`capitalize-word (M-c)'
Capitalize the current (or following) word. With a negative
- argument, do the previous word, but do not move the cursor.
+ argument, capitalize the previous word, but do not move the cursor.

File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
@@ -832,7 +900,7 @@ Killing And Yanking
`unix-line-discard (C-u)'
Kill backward from the cursor to the beginning of the current line.
- Save the killed text on the kill-ring.
+ The killed text is saved on the kill-ring.
`kill-whole-line ()'
Kill all characters on the current line, no matter where the
@@ -857,20 +925,22 @@ Killing And Yanking
`kill-region ()'
Kill the text between the point and the *mark* (saved cursor
- position. This text is referred to as the REGION. By default,
+ position). This text is referred to as the REGION. By default,
this command is unbound.
`copy-region-as-kill ()'
- Copy the text in the region to the kill buffer, so you can yank it
+ Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
`copy-backward-word ()'
- Copy the word before point to the kill buffer. By default, this
+ Copy the word before point to the kill buffer. The word
+ boundaries are the same as `backward-word'. By default, this
command is unbound.
`copy-forward-word ()'
- Copy the word following point to the kill buffer. By default,
- this command is unbound.
+ Copy the word following point to the kill buffer. The word
+ boundaries are the same as `forward-word'. By default, this
+ command is unbound.
`yank (C-y)'
Yank the top of the kill ring into the buffer at the current
@@ -888,7 +958,7 @@ Specifying Numeric Arguments
`digit-argument (M-0, M-1, ... M--)'
Add this digit to the argument already accumulating, or start a new
- argument. M- starts a negative argument.
+ argument. <M-> starts a negative argument.
`universal-argument ()'
This is another way to specify an argument. If this command is
@@ -913,8 +983,8 @@ Letting Readline Type For You
Attempt to do completion on the text before the cursor. This is
application-specific. Generally, if you are typing a filename
argument, you can do filename completion; if you are typing a
- command, you can do command completion, if you are typing in a
- symbol to GDB, you can do symbol name completion, if you are
+ command, you can do command completion; if you are typing in a
+ symbol to GDB, you can do symbol name completion; if you are
typing in a variable to Bash, you can do variable name completion,
and so on.
@@ -925,6 +995,17 @@ Letting Readline Type For You
Insert all completions of the text before point that would have
been generated by `possible-completions'.
+`menu-complete ()'
+ Similar to `complete', but replaces the word to be completed with
+ a single match from the list of possible completions. Repeated
+ execution of `menu-complete' steps through the list of possible
+ completions, inserting each match in turn. At the end of the list
+ of completions, the bell is rung and the original text is restored.
+ An argument of N moves N positions forward in the list of matches;
+ a negative argument may be used to move backward through the list.
+ This command is intended to be bound to `TAB', but is unbound by
+ default.
+

File: readline.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
@@ -961,16 +1042,15 @@ Some Miscellaneous Commands
bound to the corresponding uppercase character.
`prefix-meta (ESC)'
- Make the next character that you type be metafied. This is for
- people without a meta key. Typing `ESC f' is equivalent to typing
- `M-f'.
+ Make the next character typed be metafied. This is for keyboards
+ without a meta key. Typing `ESC f' is equivalent to typing `M-f'.
`undo (C-_, C-x C-u)'
Incremental undo, separately remembered for each line.
`revert-line (M-r)'
- Undo all changes made to this line. This is like typing the `undo'
- command enough times to get back to the beginning.
+ Undo all changes made to this line. This is like executing the
+ `undo' command enough times to get back to the beginning.
`tilde-expand (M-~)'
Perform tilde expansion on the current word.
@@ -1000,19 +1080,19 @@ Some Miscellaneous Commands
newline had been typed.
`dump-functions ()'
- Print all of the functions and their key bindings to the readline
+ Print all of the functions and their key bindings to the Readline
output stream. If a numeric argument is supplied, the output is
formatted in such a way that it can be made part of an INPUTRC
file. This command is unbound by default.
`dump-variables ()'
Print all of the settable variables and their values to the
- readline output stream. If a numeric argument is supplied, the
+ Readline output stream. If a numeric argument is supplied, the
output is formatted in such a way that it can be made part of an
INPUTRC file. This command is unbound by default.
`dump-macros ()'
- Print all of the readline key sequences bound to macros and the
+ 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 INPUTRC
file. This command is unbound by default.
@@ -1033,7 +1113,7 @@ modes, use the command M-C-j (toggle-editing-mode). The Readline
default is `emacs' mode.
When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing ESC switches
+`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
you into `command' mode, where you can edit the text of the line with
the standard `vi' movement keys, move to previous history lines with
`k' and subsequent lines with `j', and so forth.
@@ -1110,9 +1190,9 @@ the final newline removed, so only the text remains.
line is empty at that point, then `(char *)NULL' is returned.
Otherwise, the line is ended just as if a newline had been typed.
- If you want the user to be able to get at the line later, (with C-p
-for example), you must call `add_history ()' to save the line away in a
-"history" list of such lines.
+ If you want the user to be able to get at the line later, (with
+<C-p> for example), you must call `add_history ()' to save the line
+away in a "history" list of such lines.
`add_history (line)';
@@ -1148,20 +1228,20 @@ function, and has the advantage of no static buffer to overflow:
return (line_read);
}
- This function gives the user the default behaviour of TAB
+ This function gives the user the default behaviour of <TAB>
completion: completion on file names. If you do not want Readline to
-complete on filenames, you can change the binding of the TAB key with
+complete on filenames, you can change the binding of the <TAB> key with
`rl_bind_key ()'.
`int rl_bind_key (int KEY, int (*FUNCTION)());'
`rl_bind_key ()' takes two arguments: KEY is the character that you
want to bind, and FUNCTION is the address of the function to call when
-KEY is pressed. Binding TAB to `rl_insert ()' makes TAB insert itself.
-`rl_bind_key ()' returns non-zero if KEY is not a valid ASCII character
-code (between 0 and 255).
+KEY is pressed. Binding <TAB> to `rl_insert ()' makes <TAB> insert
+itself. `rl_bind_key ()' returns non-zero if KEY is not a valid ASCII
+character code (between 0 and 255).
- Thus, to disable the default TAB behavior, the following suffices:
+ Thus, to disable the default <TAB> behavior, the following suffices:
`rl_bind_key ('\t', rl_insert);'
This code should be executed once at the start of your program; you
@@ -1358,10 +1438,10 @@ the function. Thus, in an init file, one might find
Meta-Rubout: backward-kill-word
- This binds the keystroke Meta-Rubout to the function *descriptively*
-named `backward-kill-word'. You, as the programmer, should bind the
-functions you write to descriptive names as well. Readline provides a
-function for doing that:
+ This binds the keystroke <Meta-Rubout> to the function
+*descriptively* named `backward-kill-word'. You, as the programmer,
+should bind the functions you write to descriptive names as well.
+Readline provides a function for doing that:
- Function: int rl_add_defun (char *name, Function *function, int key)
Add NAME to the list of named functions. Make FUNCTION be the
@@ -1452,6 +1532,13 @@ assume that.
Bind KEY to the null function in MAP. Returns non-zero in case of
error.
+ - Function: int rl_unbind_function_in_map (Function *function, Keymap
+ map)
+ Unbind all keys that execute FUNCTION in MAP.
+
+ - Function: int rl_unbind_command_in_map (char *command, Keymap map)
+ Unbind all keys that are bound to COMMAND in MAP.
+
- Function: int rl_generic_bind (int type, char *keyseq, char *data,
Keymap map)
Bind the key sequence represented by the string KEYSEQ to the
@@ -1905,7 +1992,7 @@ Readline.
ENTRY_FUNC is a function of two args, and returns a `(char *)'.
The first argument is TEXT. The second is a state argument; it is
zero on the first call, and non-zero on subsequent calls.
- eNTRY_FUNC returns a `NULL' pointer to the caller when there are
+ ENTRY_FUNC returns a `NULL' pointer to the caller when there are
no more matches.
- Function: char * filename_completion_function (char *text, int state)
@@ -2001,7 +2088,7 @@ Completion Variables
- Variable: 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 empty.
+ is the null string.
- Variable: char * rl_special_prefixes
The list of characters that are word break characters, but should
@@ -2506,15 +2593,15 @@ Concept Index
* Menu:
-* command editing: Readline Bare Essentials.
-* editing command lines: Readline Bare Essentials.
-* initialization file, readline: Readline Init File.
-* interaction, readline: Readline Interaction.
-* kill ring: Readline Killing Commands.
-* killing text: Readline Killing Commands.
-* notation, readline: Readline Bare Essentials.
-* readline, function: Basic Behavior.
-* yanking text: Readline Killing Commands.
+* command editing: Readline Bare Essentials.
+* editing command lines: Readline Bare Essentials.
+* initialization file, readline: Readline Init File.
+* interaction, readline: Readline Interaction.
+* kill ring: Readline Killing Commands.
+* killing text: Readline Killing Commands.
+* notation, readline: Readline Bare Essentials.
+* readline, function: Basic Behavior.
+* yanking text: Readline Killing Commands.

File: readline.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top
@@ -2524,242 +2611,244 @@ Function and Variable Index
* Menu:
-* (: Utility Functions.
-* abort (C-g): Miscellaneous Commands.
-* accept-line (Newline, Return): Commands For History.
-* alphabetic: Utility Functions.
-* backward-char (C-b): Commands For Moving.
-* backward-delete-char (Rubout): Commands For Text.
-* backward-kill-line (C-x Rubout): Commands For Killing.
-* backward-kill-word (M-DEL): Commands For Killing.
-* backward-word (M-b): Commands For Moving.
-* beginning-of-history (M-<): Commands For History.
-* beginning-of-line (C-a): Commands For Moving.
-* bell-style: Readline Init File Syntax.
-* call-last-kbd-macro (C-x e): Keyboard Macros.
-* capitalize-word (M-c): Commands For Text.
-* character-search (C-]): Miscellaneous Commands.
-* character-search-backward (M-C-]): Miscellaneous Commands.
-* clear-screen (C-l): Commands For Moving.
-* comment-begin: Readline Init File Syntax.
-* complete (TAB): Commands For Completion.
-* completion-query-items: Readline Init File Syntax.
-* completion_matches: Completion Functions.
-* convert-meta: Readline Init File Syntax.
-* copy-backward-word (): Commands For Killing.
-* copy-forward-word (): Commands For Killing.
-* copy-region-as-kill (): Commands For Killing.
-* delete-char (C-d): Commands For Text.
-* delete-horizontal-space (): Commands For Killing.
-* digit-argument (M-0, M-1, ... M-): Numeric Arguments.
-* digit_p: Utility Functions.
-* digit_value: Utility Functions.
-* ding: Utility Functions.
-* disable-completion: Readline Init File Syntax.
+* (: Utility Functions.
+* abort (C-g): Miscellaneous Commands.
+* accept-line (Newline, Return): Commands For History.
+* alphabetic: Utility Functions.
+* backward-char (C-b): Commands For Moving.
+* backward-delete-char (Rubout): Commands For Text.
+* backward-kill-line (C-x Rubout): Commands For Killing.
+* backward-kill-word (M-DEL): Commands For Killing.
+* backward-word (M-b): Commands For Moving.
+* beginning-of-history (M-<): Commands For History.
+* beginning-of-line (C-a): Commands For Moving.
+* bell-style: Readline Init File Syntax.
+* call-last-kbd-macro (C-x e): Keyboard Macros.
+* capitalize-word (M-c): Commands For Text.
+* character-search (C-]): Miscellaneous Commands.
+* character-search-backward (M-C-]): Miscellaneous Commands.
+* clear-screen (C-l): Commands For Moving.
+* comment-begin: Readline Init File Syntax.
+* complete (TAB): Commands For Completion.
+* completion-query-items: Readline Init File Syntax.
+* completion_matches: Completion Functions.
+* convert-meta: Readline Init File Syntax.
+* copy-backward-word (): Commands For Killing.
+* copy-forward-word (): Commands For Killing.
+* copy-region-as-kill (): Commands For Killing.
+* delete-char (C-d): Commands For Text.
+* delete-horizontal-space (): Commands For Killing.
+* digit-argument (M-0, M-1, ... M--): Numeric Arguments.
+* digit_p: Utility Functions.
+* digit_value: Utility Functions.
+* ding: Utility Functions.
+* disable-completion: Readline Init File Syntax.
* do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands.
-* downcase-word (M-l): Commands For Text.
-* dump-functions (): Miscellaneous Commands.
-* dump-macros (): Miscellaneous Commands.
-* dump-variables (): Miscellaneous Commands.
-* editing-mode: Readline Init File Syntax.
-* enable-keypad: Readline Init File Syntax.
-* end-kbd-macro (C-x )): Keyboard Macros.
-* end-of-history (M->): Commands For History.
-* end-of-line (C-e): Commands For Moving.
-* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
-* expand-tilde: Readline Init File Syntax.
-* filename_completion_function: Completion Functions.
-* forward-char (C-f): Commands For Moving.
-* forward-search-history (C-s): Commands For History.
-* forward-word (M-f): Commands For Moving.
-* free_undo_list: Allowing Undoing.
-* history-search-backward (): Commands For History.
-* history-search-forward (): Commands For History.
-* horizontal-scroll-mode: Readline Init File Syntax.
-* input-meta: Readline Init File Syntax.
-* insert-comment (M-#): Miscellaneous Commands.
-* insert-completions (M-*): Commands For Completion.
-* keymap: Readline Init File Syntax.
-* kill-line (C-k): Commands For Killing.
-* kill-region (): Commands For Killing.
-* kill-whole-line (): Commands For Killing.
-* kill-word (M-d): Commands For Killing.
-* lowercase_p: Utility Functions.
-* mark-modified-lines: Readline Init File Syntax.
-* meta-flag: Readline Init File Syntax.
-* next-history (C-n): Commands For History.
+* downcase-word (M-l): Commands For Text.
+* dump-functions (): Miscellaneous Commands.
+* dump-macros (): Miscellaneous Commands.
+* dump-variables (): Miscellaneous Commands.
+* editing-mode: Readline Init File Syntax.
+* enable-keypad: Readline Init File Syntax.
+* end-kbd-macro (C-x )): Keyboard Macros.
+* end-of-history (M->): Commands For History.
+* end-of-line (C-e): Commands For Moving.
+* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
+* expand-tilde: Readline Init File Syntax.
+* filename_completion_function: Completion Functions.
+* forward-char (C-f): Commands For Moving.
+* forward-search-history (C-s): Commands For History.
+* forward-word (M-f): Commands For Moving.
+* free_undo_list: Allowing Undoing.
+* history-search-backward (): Commands For History.
+* history-search-forward (): Commands For History.
+* horizontal-scroll-mode: Readline Init File Syntax.
+* input-meta: Readline Init File Syntax.
+* insert-comment (M-#): Miscellaneous Commands.
+* insert-completions (M-*): Commands For Completion.
+* keymap: Readline Init File Syntax.
+* kill-line (C-k): Commands For Killing.
+* kill-region (): Commands For Killing.
+* kill-whole-line (): Commands For Killing.
+* kill-word (M-d): Commands For Killing.
+* lowercase_p: Utility Functions.
+* mark-modified-lines: Readline Init File Syntax.
+* menu-complete (): Commands For Completion.
+* meta-flag: Readline Init File Syntax.
+* next-history (C-n): Commands For History.
* non-incremental-forward-search-history (M-n): Commands For History.
* non-incremental-reverse-search-history (M-p): Commands For History.
-* numeric: Utility Functions.
-* output-meta: Readline Init File Syntax.
-* possible-completions (M-?): Commands For Completion.
-* prefix-meta (ESC): Miscellaneous Commands.
-* previous-history (C-p): Commands For History.
-* quoted-insert (C-q, C-v): Commands For Text.
-* re-read-init-file (C-x C-r): Miscellaneous Commands.
-* readline: Basic Behavior.
-* redraw-current-line (): Commands For Moving.
-* reverse-search-history (C-r): Commands For History.
-* revert-line (M-r): Miscellaneous Commands.
-* rl_add_defun: Function Naming.
-* rl_add_undo: Allowing Undoing.
-* rl_attempted_completion_function: Completion Variables.
-* rl_basic_quote_characters: Completion Variables.
-* rl_basic_word_break_characters: Completion Variables.
-* rl_begin_undo_group: Allowing Undoing.
-* rl_binding_keymap: Readline Variables.
-* rl_bind_key: Binding Keys.
-* rl_bind_key_in_map: Binding Keys.
-* rl_callback_handler_install: Alternate Interface.
-* rl_callback_handler_remove: Alternate Interface.
-* rl_callback_read_char: Alternate Interface.
-* rl_char_is_quoted_p: Completion Variables.
-* rl_clear_message: Redisplay.
-* rl_complete: Completion Functions.
-* rl_complete: How Completing Works.
-* rl_completer_quote_characters: Completion Variables.
-* rl_completer_word_break_characters: Completion Variables.
-* rl_complete_internal: Completion Functions.
-* rl_completion_append_character: Completion Variables.
-* rl_completion_entry_function: Completion Variables.
-* rl_completion_entry_function: How Completing Works.
-* rl_completion_query_items: Completion Variables.
-* rl_copy_keymap: Keymaps.
-* rl_copy_text: Modifying Text.
-* rl_delete_text: Modifying Text.
-* rl_directory_completion_hook: Completion Variables.
-* rl_discard_keymap: Keymaps.
-* rl_done: Readline Variables.
-* rl_do_undo: Allowing Undoing.
-* rl_end: Readline Variables.
-* rl_end_undo_group: Allowing Undoing.
-* rl_event_hook: Readline Variables.
-* rl_executing_keymap: Readline Variables.
-* rl_filename_completion_desired: Completion Variables.
-* rl_filename_dequoting_function: Completion Variables.
-* rl_filename_quote_characters: Completion Variables.
-* rl_filename_quoting_desired: Completion Variables.
-* rl_filename_quoting_function: Completion Variables.
-* rl_forced_update_display: Redisplay.
-* rl_function_dumper: Associating Function Names and Bindings.
-* rl_function_of_keyseq: Associating Function Names and Bindings.
-* rl_generic_bind: Binding Keys.
-* rl_getc: Utility Functions.
-* rl_getc_function: Readline Variables.
-* rl_get_keymap: Keymaps.
-* rl_get_keymap_by_name: Keymaps.
-* rl_get_keymap_name: Keymaps.
-* rl_ignore_completion_duplicates: Completion Variables.
-* rl_ignore_some_completions_function: Completion Variables.
-* rl_inhibit_completion: Completion Variables.
-* rl_initialize: Utility Functions.
-* rl_insert_completions: Completion Functions.
-* rl_insert_text: Modifying Text.
-* rl_instream: Readline Variables.
-* rl_invoking_keyseqs: Associating Function Names and Bindings.
-* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
-* rl_kill_text: Modifying Text.
-* rl_library_version: Readline Variables.
-* rl_line_buffer: Readline Variables.
-* rl_list_funmap_names: Associating Function Names and Bindings.
-* rl_make_bare_keymap: Keymaps.
-* rl_make_keymap: Keymaps.
-* rl_mark: Readline Variables.
-* rl_message: Redisplay.
-* rl_modifying: Allowing Undoing.
-* rl_named_function: Associating Function Names and Bindings.
-* rl_on_new_line: Redisplay.
-* rl_outstream: Readline Variables.
-* rl_parse_and_bind: Binding Keys.
-* rl_pending_input: Readline Variables.
-* rl_point: Readline Variables.
-* rl_possible_completions: Completion Functions.
-* rl_prompt: Readline Variables.
-* rl_readline_name: Readline Variables.
-* rl_read_init_file: Binding Keys.
-* rl_read_key: Utility Functions.
-* rl_redisplay: Redisplay.
-* rl_redisplay_function: Readline Variables.
-* rl_reset_line_state: Redisplay.
-* rl_reset_terminal: Utility Functions.
-* rl_set_keymap: Keymaps.
-* rl_special_prefixes: Completion Variables.
-* rl_startup_hook: Readline Variables.
-* rl_stuff_char: Utility Functions.
-* rl_terminal_name: Readline Variables.
-* rl_unbind_key: Binding Keys.
-* rl_unbind_key_in_map: Binding Keys.
-* self-insert (a, b, A, 1, !, ...): Commands For Text.
-* set-mark (C-@): Miscellaneous Commands.
-* show-all-if-ambiguous: Readline Init File Syntax.
-* start-kbd-macro (C-x (): Keyboard Macros.
-* tab-insert (M-TAB): Commands For Text.
-* tilde-expand (M-~): Miscellaneous Commands.
-* to_lower: Utility Functions.
-* to_upper: Utility Functions.
-* transpose-chars (C-t): Commands For Text.
-* transpose-words (M-t): Commands For Text.
-* undo (C-_, C-x C-u): Miscellaneous Commands.
-* universal-argument (): Numeric Arguments.
-* unix-line-discard (C-u): Commands For Killing.
-* unix-word-rubout (C-w): Commands For Killing.
-* upcase-word (M-u): Commands For Text.
-* uppercase_p: Utility Functions.
-* username_completion_function: Completion Functions.
-* visible-stats: Readline Init File Syntax.
-* yank (C-y): Commands For Killing.
-* yank-last-arg (M-., M-_): Commands For History.
-* yank-nth-arg (M-C-y): Commands For History.
-* yank-pop (M-y): Commands For Killing.
+* numeric: Utility Functions.
+* output-meta: Readline Init File Syntax.
+* possible-completions (M-?): Commands For Completion.
+* prefix-meta (ESC): Miscellaneous Commands.
+* previous-history (C-p): Commands For History.
+* quoted-insert (C-q, C-v): Commands For Text.
+* re-read-init-file (C-x C-r): Miscellaneous Commands.
+* readline: Basic Behavior.
+* redraw-current-line (): Commands For Moving.
+* reverse-search-history (C-r): Commands For History.
+* revert-line (M-r): Miscellaneous Commands.
+* rl_add_defun: Function Naming.
+* rl_add_undo: Allowing Undoing.
+* rl_attempted_completion_function: Completion Variables.
+* rl_basic_quote_characters: Completion Variables.
+* rl_basic_word_break_characters: Completion Variables.
+* rl_begin_undo_group: Allowing Undoing.
+* rl_bind_key: Binding Keys.
+* rl_bind_key_in_map: Binding Keys.
+* rl_binding_keymap: Readline Variables.
+* rl_callback_handler_install: Alternate Interface.
+* rl_callback_handler_remove: Alternate Interface.
+* rl_callback_read_char: Alternate Interface.
+* rl_char_is_quoted_p: Completion Variables.
+* rl_clear_message: Redisplay.
+* rl_complete <1>: How Completing Works.
+* rl_complete: Completion Functions.
+* rl_complete_internal: Completion Functions.
+* rl_completer_quote_characters: Completion Variables.
+* rl_completer_word_break_characters: Completion Variables.
+* rl_completion_append_character: Completion Variables.
+* rl_completion_entry_function <1>: How Completing Works.
+* rl_completion_entry_function: Completion Variables.
+* rl_completion_query_items: Completion Variables.
+* rl_copy_keymap: Keymaps.
+* rl_copy_text: Modifying Text.
+* rl_delete_text: Modifying Text.
+* rl_directory_completion_hook: Completion Variables.
+* rl_discard_keymap: Keymaps.
+* rl_do_undo: Allowing Undoing.
+* rl_done: Readline Variables.
+* rl_end: Readline Variables.
+* rl_end_undo_group: Allowing Undoing.
+* rl_event_hook: Readline Variables.
+* rl_executing_keymap: Readline Variables.
+* rl_filename_completion_desired: Completion Variables.
+* rl_filename_dequoting_function: Completion Variables.
+* rl_filename_quote_characters: Completion Variables.
+* rl_filename_quoting_desired: Completion Variables.
+* rl_filename_quoting_function: Completion Variables.
+* rl_forced_update_display: Redisplay.
+* rl_function_dumper: Associating Function Names and Bindings.
+* rl_function_of_keyseq: Associating Function Names and Bindings.
+* rl_generic_bind: Binding Keys.
+* rl_get_keymap: Keymaps.
+* rl_get_keymap_by_name: Keymaps.
+* rl_get_keymap_name: Keymaps.
+* rl_getc: Utility Functions.
+* rl_getc_function: Readline Variables.
+* rl_ignore_completion_duplicates: Completion Variables.
+* rl_ignore_some_completions_function: Completion Variables.
+* rl_inhibit_completion: Completion Variables.
+* rl_initialize: Utility Functions.
+* rl_insert_completions: Completion Functions.
+* rl_insert_text: Modifying Text.
+* rl_instream: Readline Variables.
+* rl_invoking_keyseqs: Associating Function Names and Bindings.
+* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
+* rl_kill_text: Modifying Text.
+* rl_library_version: Readline Variables.
+* rl_line_buffer: Readline Variables.
+* rl_list_funmap_names: Associating Function Names and Bindings.
+* rl_make_bare_keymap: Keymaps.
+* rl_make_keymap: Keymaps.
+* rl_mark: Readline Variables.
+* rl_message: Redisplay.
+* rl_modifying: Allowing Undoing.
+* rl_named_function: Associating Function Names and Bindings.
+* rl_on_new_line: Redisplay.
+* rl_outstream: Readline Variables.
+* rl_parse_and_bind: Binding Keys.
+* rl_pending_input: Readline Variables.
+* rl_point: Readline Variables.
+* rl_possible_completions: Completion Functions.
+* rl_prompt: Readline Variables.
+* rl_read_init_file: Binding Keys.
+* rl_read_key: Utility Functions.
+* rl_readline_name: Readline Variables.
+* rl_redisplay: Redisplay.
+* rl_redisplay_function: Readline Variables.
+* rl_reset_line_state: Redisplay.
+* rl_reset_terminal: Utility Functions.
+* rl_set_keymap: Keymaps.
+* rl_special_prefixes: Completion Variables.
+* rl_startup_hook: Readline Variables.
+* rl_stuff_char: Utility Functions.
+* rl_terminal_name: Readline Variables.
+* rl_unbind_command_in_map: Binding Keys.
+* rl_unbind_function_in_map: Binding Keys.
+* rl_unbind_key: Binding Keys.
+* rl_unbind_key_in_map: Binding Keys.
+* self-insert (a, b, A, 1, !, ...): Commands For Text.
+* set-mark (C-@): Miscellaneous Commands.
+* show-all-if-ambiguous: Readline Init File Syntax.
+* start-kbd-macro (C-x (): Keyboard Macros.
+* tilde-expand (M-~): Miscellaneous Commands.
+* to_lower: Utility Functions.
+* to_upper: Utility Functions.
+* transpose-chars (C-t): Commands For Text.
+* transpose-words (M-t): Commands For Text.
+* undo (C-_, C-x C-u): Miscellaneous Commands.
+* universal-argument (): Numeric Arguments.
+* unix-line-discard (C-u): Commands For Killing.
+* unix-word-rubout (C-w): Commands For Killing.
+* upcase-word (M-u): Commands For Text.
+* uppercase_p: Utility Functions.
+* username_completion_function: Completion Functions.
+* visible-stats: Readline Init File Syntax.
+* yank (C-y): Commands For Killing.
+* yank-last-arg (M-., M-_): Commands For History.
+* yank-nth-arg (M-C-y): Commands For History.
+* yank-pop (M-y): Commands For Killing.

Tag Table:
-Node: Top1042
-Node: Command Line Editing1655
-Node: Introduction and Notation2306
-Node: Readline Interaction3315
-Node: Readline Bare Essentials4504
-Node: Readline Movement Commands6034
-Node: Readline Killing Commands6925
-Node: Readline Arguments8628
-Node: Searching9602
-Node: Readline Init File11203
-Node: Readline Init File Syntax12266
-Node: Conditional Init Constructs20056
-Node: Sample Init File22338
-Node: Bindable Readline Commands25372
-Node: Commands For Moving26123
-Node: Commands For History26971
-Node: Commands For Text29585
-Node: Commands For Killing31328
-Node: Numeric Arguments33355
-Node: Commands For Completion34480
-Node: Keyboard Macros35364
-Node: Miscellaneous Commands35923
-Node: Readline vi Mode38734
-Node: Programming with GNU Readline40490
-Node: Basic Behavior41359
-Node: Custom Functions44672
-Node: The Function Type45273
-Node: Function Writing46118
-Node: Readline Variables47202
-Node: Readline Convenience Functions50290
-Node: Function Naming51021
-Node: Keymaps52248
-Node: Binding Keys53962
-Node: Associating Function Names and Bindings55906
-Node: Allowing Undoing57484
-Node: Redisplay60069
-Node: Modifying Text61140
-Node: Utility Functions62051
-Node: Alternate Interface64170
-Node: Custom Completers67464
-Node: How Completing Works68185
-Node: Completion Functions71181
-Node: Completion Variables74196
-Node: A Short Completion Example81338
-Node: Concept Index93644
-Node: Function and Variable Index94389
+Node: Top1177
+Node: Command Line Editing1776
+Node: Introduction and Notation2427
+Node: Readline Interaction3466
+Node: Readline Bare Essentials4659
+Node: Readline Movement Commands6200
+Node: Readline Killing Commands7166
+Node: Readline Arguments8882
+Node: Searching9857
+Node: Readline Init File11440
+Node: Readline Init File Syntax12487
+Node: Conditional Init Constructs21353
+Node: Sample Init File23792
+Node: Bindable Readline Commands26962
+Node: Commands For Moving27713
+Node: Commands For History28561
+Node: Commands For Text31313
+Node: Commands For Killing33099
+Node: Numeric Arguments35249
+Node: Commands For Completion36376
+Node: Keyboard Macros37862
+Node: Miscellaneous Commands38421
+Node: Readline vi Mode41225
+Node: Programming with GNU Readline42983
+Node: Basic Behavior43852
+Node: Custom Functions47178
+Node: The Function Type47779
+Node: Function Writing48624
+Node: Readline Variables49708
+Node: Readline Convenience Functions52796
+Node: Function Naming53527
+Node: Keymaps54755
+Node: Binding Keys56469
+Node: Associating Function Names and Bindings58677
+Node: Allowing Undoing60255
+Node: Redisplay62840
+Node: Modifying Text63911
+Node: Utility Functions64822
+Node: Alternate Interface66941
+Node: Custom Completers70235
+Node: How Completing Works70956
+Node: Completion Functions73952
+Node: Completion Variables76967
+Node: A Short Completion Example84119
+Node: Concept Index96425
+Node: Function and Variable Index97179

End Tag Table
diff --git a/doc/readline.ps b/doc/readline.ps
index ace5d14..ef8e8e9 100644
--- a/doc/readline.ps
+++ b/doc/readline.ps
@@ -1,7 +1,15 @@
-%!PS (but not EPSF; comments have been disabled)
+%!PS-Adobe-2.0
+%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
+%%Title: readline.dvi
+%%Pages: 54
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentPaperSizes: A4
+%%EndComments
%DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi
-%DVIPSParameters: dpi=300, compressed, comments removed
-%DVIPSSource: TeX output 1997.06.03:1139
+%DVIPSParameters: dpi=300, comments removed
+%DVIPSSource: TeX output 1998.04.02:1444
+%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
@@ -25,20 +33,8 @@ dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
+if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
@@ -60,3797 +56,4891 @@ B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{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
-TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi)
-@start /Fa 1 47 df<127012F8A212F012E005057B840E>46 D
-E /Fb 1 47 df<1238127C12FCA212F8127006067A8512>46 D E
-/Fc 1 59 df<126012F0A2126004047D830B>58 D E /Fd 52 127
-df<126012F0AD12601200A4126012F0A212600417789614>33 D<EA071CA5EA7FFFB512
-80A2380E3800A7B51280A26C1300EA1C70A511177F9614>35 D<EA01801203EA06005A12
-1C121812385AA35AA91270A37E1218121C120C7EEA03801201091D799914>40
-D<128012C01260123012381218121C120EA31207A9120EA3121C121812381230126012C0
-1280081D7C9914>I<EA0380A3EA638CEAF39EEA7FFCEA3FF8EA0FE0A2EA3FF8EA7FFCEA
-F39EEA638CEA0380A30F107E9214>I<127012F812FCA2127C120C1218123012E012C006
-0A798414>44 D<EAFFFEA30F037E8C14>I<127012F8A312700505798414>I<EA07C0EA0F
-E0EA1C70EA3838EA3018EA701CA2EAE00EA9EA701CA2EA3838A2EA1C70EA0FE0EA07C00F
-177E9614>48 D<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>I<130E133E
-137C13F0EA03E0EA07C0EA1F00123E12F85A7E123E7EEA07C0EA03E0EA00F0137C133E13
-0E0F137E9414>60 D<124012E012F8127C121EEA0F80EA07C0EA01F0EA00F8133E131E13
-3E13F8EA01F0EA07C0EA0F80EA1E00127C5A12E012400F157E9514>62
-D<EA1FE0EA3FF8EA701CEAE00EA21240EA003C137013E0EA01C0EA0380A41300C7FCA412
-03EA0780A2EA03000F177E9614>I<EA01E0EA07F0EA0E38EA181CEA38FC1271EA731E12
-77EAEE0EA7EA771CEA7318EA71F0EA38E0EA1806EA0E1EEA07F8EA01F00F177E9614>I<
-EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA238FE3F
-80A211177F9614>I<EAFFF013FCEA381E130E1307A4130E131EEA3FFCA2EA381E130E13
-07A5130E131EEAFFFC13F810177F9614>I<3801F180EA07FFEA0E1FEA1C071238EA7003
-A348C7FCA738700380A338380700121CEA0E0EEA07FCEA01F011177F9614>I<EAFFE013
-F8EA383C7F130E7FA3EB0380A8EB0700A2130E131E5BEAFFF813E011177F9614>I<B5FC
-A2EA3807A490C7FCA21338A2EA3FF8A2EA3838A290C7FCA3EB0380A4B5FCA211177F9614
->I<B4FCA21238AF1307A4B5FCA210177E9614>76 D<38FC1F80A2007C1300EA7637A4EA
-7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>I<38FE3F80A2383E
-0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA211177F9614>I<EAFFE0
-13F8EA383C131C7FA45B133CEA3FF85BEA38387FA51480EB1DC0A238FE0F80EB07001217
-7F9614>82 D<EA0FCCEA1FFCEA307CEA603CEAE01CA313001270127EEA3FE0EA0FF0EA01
-F8EA001C131E130E126012E0A2EAF01CEAF838EAFFF0EAC7E00F177E9614>I<387FFF80
-B5FCEAE1C3A43801C000AFEA0FF8A211177F9614>I<EAFFE0A21200B3A712FFA20B1D7F
-9914>93 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C1C127012E0A3EA70
-7C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C13
-80EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<EA03F8EA0FFEEA1C
-0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13
-7EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301EEA383E381FEFC0EA
-07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012
-601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA038EEA07041300A3
-EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA383B38301800EA70
-1CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA700F38E00380A43870
-0700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1DFEEA1F86EA1E0712
-1CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A20D18
-7C9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C
-131C7F38FF1F80A21117809614>107 D<EAFF80A21203B3EAFFFEA20F177E9614>I<EAFB
-8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78EAFDFEEA1F86EA
-1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA70
-1CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380
-EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218808F14>I<EA03
-E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7EA0007A6EB3FE0
-A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EAFFF0A211107F8F
-14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA001CEA600612E012
-F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E00A8130EA3131C
-EA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03E71310808F14>I<
-38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311107F8F14>I<38FE3F
-80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<EA7E
-3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E781338487E38FE3F80A21110
-7F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370A25B1201A25BA348
-5A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C1338EA007013E0EA01
-C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I<EA1C10EA3F38EAE7E0EA
-41C00D047D9614>126 D E /Fe 2 121 df<1270A212F0126004047D830B>46
-D<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F120113381202487EEA081E
-123838FC3FC013107F8F14>120 D E /Ff 39 123 df<13FEEA038138060180EA0E0338
-1C010090C7FCA5B51280EA1C03AE38FF8FF0141A809915>12 D<EBFF80EA0383EA060312
-0E121CA6B5FCEA1C03AE38FF9FF0141A809915>I<126012F0A212701210A31220A21240
-A2040B7D830B>44 D<EAFFC0A20A0280880D>I<EA07E0EA1C38EA381CEA300CEA700EEA
-6006A2EAE007AAEA6006A2EA700EEA300CEA381CEA1C38EA07E010187F9713>48
-D<12035AB4FC1207B3A2EA7FF80D187D9713>I<EA0F80EA1060EA2030EA4038EA803CEA
-C01C12E01240EA003C1338A21370136013C0EA018013001202EA040412081210EA3008EA
-3FF8127F12FF0E187E9713>I<EA07E0EA1838EA201CEA601EEA700EEA201E1200131CA2
-13381370EA07E0EA0038131C130E130FA212E0A212C0EA400EEA601CEA1838EA07E01018
-7F9713>I<1318A21338137813F813B8EA01381202A212041208121812101220124012C0
-B5FCEA0038A6EA03FF10187F9713>I<EA3018EA3FF013E01380EA2000A5EA2FC0EA3060
-EA2030EA00381318131CA2124012E0A2EA8018EA40381330EA30E0EA0F800E187E9713>
-I<EA01F8EA0704EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEA
-E0061307A31260A2EA7006EA300EEA180CEA0C38EA07E010187F9713>I<1240EA7FFF13
-FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2120EA512041019
-7E9813>I<EA07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03
-E0EA0CF8EA307CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>
-I<EA07E0EA1C30EA3018EA700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07
-C7EA00071306130E130C12701318EA6030EA3060EA0F8010187F9713>I<EA1FC0EA3870
-7FEA101C1200A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F8F0011107F8F13
->97 D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA
-1906EA10F8131A809915>I<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C
-18EA07E00E107F8F11>I<133F1307A9EA03E7EA0C17EA180F487E127012E0A612601270
-6C5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEA
-E000A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C10
-1300A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF3818718038303000EA7038A4EA
-30306C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07
-E011187F8F13>I<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<
-1218123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F0013
-0C5B13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>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 /Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012
-F0AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E /Fh 28
-123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC01387ED83
-C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11
-D<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80B6FCA2
-380FC01FB2397FF8FFF0A21C237FA220>I<13181330136013C01201EA0380120713005A
-121EA2123E123CA2127CA3127812F8AD1278127CA3123CA2123E121EA27E7E13801203EA
-01C012001360133013180D317BA416>40 D<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 /Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA
-07FCEA1FFF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42
-D<EB7C38EA01FF000713F8EA0F83EA1E00001C13785A14385AA214005AA812701438A27E
-A26C1370001E13F0380F83E03807FFC00001138038007C00151E7E9D1A>67
-D<B512F8A3381C0038A51400A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA316
-1E7E9D1A>69 D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7
-FCA8EA7FE012FF127F161E7F9D1A>I<B51280A33801C000B3A6B51280A3111E7C9D1A>
-73 D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B
-7F121DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF
-81FE387F00FC171E7F9D1A>75 D<EA7FE0487E6C5A000EC7FCB3141CA5387FFFFCB5FC7E
-161E7F9D1A>I<EAFFFEEBFF8014C0381C03E0EB00F0147014781438A41478147014F0EB
-03E0381FFFC01480EBFE00001CC7FCA9B47EA3151E7E9D1A>80 D<38FF01FEA3381C0070
-A3001E13F0000E13E0A3380701C0A438038380A43801C700A4EA00C613EEA3136C137CA2
-1338171E7F9D1A>86 D<387FFFC0B512E0A26C13C013047D7E1A>95
-D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA3F83EA7803127012
-E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97 D<12FEA3120EA6133EEBFF
-80000F13E0EBC1F0EB8070EB0038120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E
-138038063E00161E7F9D1A>I<EBFF80000313C0000F13E0EA1F01383C00C04813001270
-A25AA51270A2007813707E381F01F0380FFFE0000313C03800FE0014157D941A>I<EB1F
-C0A31301A6EA01F1EA07FDEA0FFFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807
-EA3E0F381FFFFCEA07FDEA01F1161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01
-387800E01270481370A2B512F0A300E0C7FC1270A2007813707E381F01F0380FFFE00003
-13803800FE0014157D941A>I<EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0
-B5FCA23800E000AF383FFF804813C06C1380151E7F9D1A>I<12FEA3120EA6133EEBFF80
-000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D1A>104
-D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80B512C06C1380121F7C9E1A>I<
-EAFFE0A31200B3A6B512E0A3131E7D9D1A>108 D<387CE0E038FFFBF8EA7FFF381F1F1C
-EA1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>I<EAFE3EEBFF80B5
-12C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>I<EA01F0EA07FCEA1F
-FF383E0F80EA3C07387803C0EA700138E000E0A6EAF001007013C0EA7803383C0780EA3E
-0F381FFF00EA07FCEA01F013157D941A>I<EAFE3EEBFF80B512E0380FC1F0EB8070EB00
-38120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E1380EB3E0090C7FCA8EAFFE0A3
-16207F941A>I<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFF
-B5FC7E17157F941A>114 D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E0
-13FF6C1380EB3F00141C7F9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7E
-EA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E00E0A3380701C0A338038380
-A33801C700A3EA00EEA3137CA2133817157F941A>I<387FC7F8EBCFFCEBC7F8380703C0
-38038380EBC700EA01EFEA00FE137C13781338137C13EE120113C738038380000713C013
-01387FC7FC00FF13FE007F13FC17157F941A>120 D<387FC7FC00FF13FE007F13FC380E
-00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7A213E61366136E133CA31338
-A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F941A>I
-E /Fj 1 59 df<127012F8A3127005057C840D>58 D E /Fk 52
-122 df<123C127E12FFA4127E123C08087C8711>46 D<EB7F803803FFF03807E1F8380F
-807C48487E48133F003E7F007E1480A400FE14C0AD007E1480A46CEB3F00A26C133E6C6C
-5A3807E1F86CB45A38007F801A237EA21F>48 D<131C133C13FC12FFA21200B3AA387FFF
-FCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14FF
-147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370EB
-E003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48B4
-FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8EB
-07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214FE
-A2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F813
-01130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A1270
-5AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF814
-F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC7127E
-A3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE001823
-7DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA2007E133C
-1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E123F6C
-137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512C0A215
-804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25BA2
-13F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F8381C007C48133C14
-1E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313E014F8000F13FC
-EA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C1338381F80F03807
-FFE00001130018237DA21F>I<13FF000313C0380F83E0381F00F04813F8007E137CA214
-7E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C007E13
-FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141CA2143E
-A3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB
-1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C7120FA248
-6E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F0007FED3F80ED1FC0ED0F
-E0A216F0A21507150FA216E0151F16C0ED7F80913801FE0090B512F815FF9039F0003FC0
-ED0FE0ED07F016F8150316FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F826257EA42C
->I<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301484813
-0048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C143012
-0F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013C02525
-7DA42C>I<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2140E14
-1EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223
-257EA428>69 D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5
-FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F8
-00AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3
-AFB512E0A213257EA417>I<B539E007FF80A2D803F8C7EA780016605E4B5A0307C7FC15
-0E15185D5D5DEC03804AC8FC140E141F4A7E147FECDFC09038FB8FE09038FF0FF0EBFC07
-496C7E816E7E1400157F82153F6F7E6F7E8215076F7E82B539E03FFFC0A22A257EA430>
-75 D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FCB6FCA220
-257EA425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C130CA26D6C
-1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3EC3F06A2EC
-1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>I<D8FFF890
-3807FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13036D7E6D7E80EC7F80
-EC3FC0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3FD8ED1FF8150F150715
-03A2150115001678486C1438D8FFFC1418A22B257EA430>I<B67E15F83903F801FEEC00
-7F6F7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F803F06E7E6E7E157EA2
-157FA482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B257EA42E>82
-D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<
-007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400
-B3A390B512FEA226247EA32B>I<B539E00FFFC0A2D803F8C7EA78001630B3A700015D7F
-00005D137C6D495A6D0107C7FC90380FE03E903803FFF89038007FC02A257EA42F>I<B5
-398001FFE0A2D807F8C7EA1C0000031518A26D1438000115306D1470000015607F6D5C80
-013F495AA2ECC003011F91C7FC6E5A010F130614F001075BA26D6C5AA2ECFC3801011330
-ECFE700100136014FF6E5AA26E5AA36EC8FCA2140EA22B257FA42E>I<B53B81FFFE01FF
-F0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D496C1338000017304B
-7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E0138190280FE0C03F83
-C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14FC6D486D5AA24A13
-0301005DA24A130102785CA202306D5A3C257FA43F>I<B539C001FFE0A2D807F8C7EA1C
-006C6C141816386C6C14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7FC90380FF006
-150E903807F80C6D6C5A15386D6C5A903800FF6015E06E5A6E5AAE90380FFFFCA22B257F
-A42E>89 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA
-0FC0EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>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<3BFFF9FFE0FF80A23B1F
-C03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015E02601F8635B
-A29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA2011E133CA3010C
-131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C6C5A00001360
-EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F3907003F804813
-1F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00
-031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA2
-1306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720>I
-E /Fl 28 122 df<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF03803
-8070A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>12
-D<EAFFF0A20C027E8A0F>45 D<0007B512F83900F800780178133815185B1508A53901E0
-0800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E>
-70 D<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC1402140848485A5C
-146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E81140781140381
-380F00016D487E39FFF00FFE231F7E9E23>75 D<EA07F8EA0C0CEA1E061307121C1200A3
-13FFEA07C7EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F878014147D9317
->97 D<1207123F120F7EA2120EA65A137CEA1D83381E0180001C13C0EB00E05A14F0A538
-7001E0A214C013031480EB0700EAE80EEACC38EA83E014207B9F19>I<13FEEA0383380E
-0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314>
-I<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278
-12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07
-0EEA0E07121C383803801278127012F0A2B5FC00F0C7FC5AA46C5AEA7002EA3004EA1C18
-EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC0001201A5485AEA3FFCEA
-0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E11EBE1A33801C1C238
-0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0
-14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012
-0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6
-381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213C0EA0180C7FCA6EA03
-80121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>I<13E0120712011200
-A2485AA6485AEB81FCEB80F014C0EB81801400EA07045B13181338137C131C120E7FA213
-0F7F1480EA1C03381E07C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0
-A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>I<390387C07C391F98618639
-07A072073903C03403EB80380007EB7807EB0070A5000EEBE00EA64848485A001EEBE01E
-3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A03803C0601380000713E01300
-A5380E01C0A6381C0380001E13C038FF8FF014147E9319>I<13FCEA0387380E0180381C
-00C04813E0A24813F012F0A438E001E0A214C0130300F0138038700700EA380E6C5AEA07
-E014147D9317>I<EBE3E03807EC383800F01C497E140F48487E1580A53903800F00A214
-0E141E141C5C38074070EB61C0011FC7FC90C8FCA3120EA4121EEAFFC0191D809319>I<
-EBFC2038038260EA0702381E01E0123C003813C0127812F0A438E00380A212F0A2130712
-7038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0131D7D9318>I<EA038E381FB3
-80EA07C71203EB8300EA078090C7FCA5120EA65A121EEAFFC011147E9312>I<EA01F9EA
-0607EA080312181301EA3802EA3C00121F13F0EA07FCEA01FEEA001FEA40071303A21260
-1306EAF004EAC818EA87E010147F9312>I<1380EA0100A35A5A5A121EEAFFF8EA0E00A4
-5AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03A2
-38380700A6EA700EA4131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E000
-1C13C01480121E380E01005B13025B12075BA25BEA039013A013E05B5B120190C7FC1514
-7C9318>I<39FF9FE1FC393C078070391C030060148015401580EA0E0790380D81001309
-EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C485A1460000213401E147C9321>
-I<381FF0FF3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E134E
-1387EA0107380203801204380C01C0383C03E038FE07FC18147F9318>I<390FF83F8039
-01E00E00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C13
-3813181310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I
-E /Fm 8 89 df<903807F00890383C0C189038E003383901C000B8D80780137848C71238
-120E001E14185A1508127C1278150012F8A6EC1FFF0078EB00F81578127C123CA27E120E
-120F6C7ED801C013B83900E0011890383C0E08903807F00020217C9F27>71
-D<EAFFF0EA0F00B3ABEAFFF00C1F7D9E12>73 D<B4EB0FF8390F8003E0EC0080EA0BC0EA
-09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F01478A2143C141EA214
-0F1407A214031401123E38FF80001D1F7C9E25>78 D<EB1FE0EB70383801C00E48487E39
-070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8147CA90078147800
-7C14F8A2003C14F0003E1301001E14E06CEB03C06C148039038007003801E01E38007038
-EB1FE01E217C9F26>I<B512F0380F803E0007130FEC0780EC03C0A215E0A415C0A2EC07
-80EC0F00143EEBFFF00180C7FCAD487EEAFFFC1B1F7D9E22>I<3803F020380C0C603818
-03E0EA30005A146012E01420A36C13007E127CEA7F80EA3FFC6CB4FC00071380000113C0
-38000FE013031301EB00F014707EA46C136014E06C13C038F8018038C60300EA81FC1421
-7C9F1C>83 D<39FFF00FF8390F0003E0EC0080B3A46CEB01001380120314026C6C5A6C6C
-5AEB3830EB0FC01D207C9E25>85 D<397FF807FE390FE001F0D807C013C06C6C6C5A0001
-49C7FCEBF0023800F806EB78046D5AEB3E18EB1F106D5A14C0130713036D7E497EEB06F8
-EB0478EB087CEB183EEB101EEB201F496C7EEBC007496C7ED801007F486D7E481300391F
-8001F83AFFC007FF80211F7E9E25>88 D E /Fn 34 121 df<EB01C01303130F137FEA1F
-FFB5FC13BFEAE03F1200B3B1007FB512F0A31C2E7AAD28>49 D<EB3FE03801FFFE0007EB
-FF80D80F8013C0391E003FE00038EB1FF0007CEB0FF8007EEB07FCB4FC018013FEA21403
-A2EA7F00003E1307C7FC15FCA2EC0FF8A215F0EC1FE015C0EC3F80EC7F00147E14F8495A
-495A495A49C7FC011E130E5B133849131E49131C485A48C7123C48B512FC5A5A5A4814F8
-B6FCA31F2E7CAD28>I<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91F
-F8EB079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607
-A2485A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E
-6D150E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FF
-FEC7FCD9003F13F80203138031317CB03A>67 D<B812F0A3C6903880003FEE07F8160316
-00A21778A21738A3171C1507A31700A25D5D5D91B5FCA3EC803F818181A21707A392C712
-0EA4171EA2173CA2177C17FC16011607163FB812F8A330317EB035>69
-D<B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D
-5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>I<DA03FF1303027FEBF0
-0749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49487F4848C87E485A0007
-824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B512F8127F7FDB00011300
-123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497ED907FFEB3E3F01019038
-FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B61280A3C6EB8000B3B3A7B61280A319
-317EB01E>73 D<B67EA3000190C9FCB3A9EE0380A416071700A25EA35E5E5E5E4B5A150F
-B7FCA329317DB030>76 D<B56C49B512C08080C66D90390003E0006E6E5AEBEFFC13E780
-EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E16806E13C0ED7FE0ED3FF015
-1F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1EE1FF9EE0FFD160717FF8282
-82177F173FA2171F170F486C1507B500E014031701A23A317EB03F>78
-D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FFA717FEA2EE
-07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB037>80
-D<B77E16F816FEC690398003FF809238007FE0EE1FF0707EA283160783A65F160F5F4C5A
-4C5A4C5ADB03FFC8FC91B512F816E091388007F8ED01FC6F7E167F83707EA283A583A4F0
-038017F8161F1900706C5AB6398003FE0E933801FFFC9338001FF039317EB03C>82
-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
-3F80D807FEEB1FC049EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2ED
-0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A327
-2E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07E0
-EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C13
-3E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F
-01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F
-8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7
-FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07E0
-00FFEB03FFA3000FEB003F0007141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF90
-387FFF1FEB0FFC28207D9F2D>I<B53A1FFFE03FF8A33C0FF000FE0007806D150300076E
-EB0700816D5D00039138FF800EA26C6C486D5A15DF01FF153C6C9039038FE038A2D97F87
-6D5A150702C714F0D93FCF6D5AECCE03D91FFEEBF9C09138FC01FD16FF010F5D4A7EA26D
-486DC7FCA20103147E4A133EA26D48131C35207E9F3A>119 D<3A7FFF807FFCA33A03FC
-000F006C6C131E6C6C5BEC803890387FC078013F5B90381FE1E090380FF3C0ECFF806D90
-C7FC6D5A13016D7E81815B903803DFE09038078FF08190380F07FC90381E03FEEB3C0149
-6C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA328207F9F2B>I
-E /Fo 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C0
-00061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C
-1530A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090
-C7FC282B7EA02D>13 D E /Fp 54 122 df<1306130C13181338137013E01201EA03C0A2
-EA0780A2120F13005AA2123EA3127EA3127CA212FCAE127CA2127EA3123EA37EA27E1380
-1207A2EA03C0A2EA01E01200137013381318130C13060F3C7AAC1A>40
-D<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A21206120E5A5A12100A
-157B8813>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<EB7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00FE14C0A3
-15E0A5007E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013C0A3EC1F
-80123E127FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622
->57 D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F14
-80A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303
-000181491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8
-001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EA
-FE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1F
-F8B712E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF0
-0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290
-C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039
-7FF007C0011FB512800107EBFE009038007FF028297CA831>I<B612FCEDFF8016E03A03
-FC001FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07F0A417F8AA17F0A3EE0FE0
-A217C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7FC2D297EA834>I<B712E0
-A33903FC001FED07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3
-EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327
-297EA82C>I<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A31600
-1403A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387F
-E003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F48488048488048
-4880485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E
-6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5
-D8F00FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835
->I<B512F0A33803FC00B3B1B512F0A314297EA819>I<B500F0EBFFFEA3D803FCC7EA0F00
-161E5E5E16E0ED03C04B5A4BC7FC151E5D15F04A5A4A5A1407140F4A7EEC7FF04A7EEBFD
-E79038FFC3FCEC83FE9038FE01FF497E6F7E826F7E151F6F7E8215076F7E6F7E8281EE7F
-80B539F00FFFFEA32F297EA835>75 D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A2
-1507A2150FA2151F157F913801FF00B7FCA322297EA828>I<D8FFFE92383FFF80A26D5D
-0003EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8
-130EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A291380FE3
-80A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>I<D8
-FFFCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF01801380
-147F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1ED1FF115
-0F16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A230297EA835>
-I<ECFFC0010F13FC90383F807F9039FE001FC0D801F8EB07E048486D7E48486D7E000F81
-48486D7EA24848147FA2007F168090C8123FA34816C0AA6C16806D147FA2003F1600A26C
-6C14FEA26C6C495A6C6C495A6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC
-010013C02A297CA833>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FE
-A716FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<
-ECFFC0010F13FC90383FC0FF9039FE001FC048486D7ED803F0EB03F000078148486D7E48
-486D7EA24848147FA2007F1680A290C8123FA24816C0AA6C16806D147FA2003F1600A26C
-6C14FE143E3A0FE07F81FC00079038C1C1F83A03F18063F0D801F9EB67E0D800FFEB3FC0
-90263FC07FC7FC90380FFFFC01004913C0EC003C811601ED1F8316FF6F1380A21700816F
-5A6F5A6F5A2A357CA833>I<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A6
-5E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170E
-A21503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>I<9038FF80600003EBF0E0
-000F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7F
-FCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E0
-1303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA8
-25>I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A24815
-01A5C791C7FCB3A490B612C0A32A287EA72F>I<B500F0EBFFFEA3D803FCC7EA0380B3AA
-0001ED07007F0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7
-FC2F297EA834>I<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B
-017F140E80013F5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE03
-01015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230
-297FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E
-13016C604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F16
-0E17F09126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC7003
-5BA2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E8002
-1E141EA242297FA845>I<B500F0EB3FFFA3D803FEC7EA03C06C6C15806C6DEB07005E6D
-6C130E6E5B013F143C6D6C13386E5B010F14F06D6C5B6E485A01031303D901FF5B0387C7
-FC6D138FEC7FCE15FC143F6E5A5D140FAE0103B512C0A330297FA833>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 /Fq 90 127 df<127012F8B012701200A51270
-12F8A31270051C779B18>33 D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<
-EA0306EA078FA6387FFFC0B512E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E
-3C00A6EA0C18131C7E9B18>I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C3
-8013C7A338F1C0001279123F6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EB
-C7001271EA79DEEA3FFEEA1FF8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780
-A2EAEE0F1400A25B131EA2133EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA212
-07EB8380EB87C0120FEB0EE0A2121F121EA2123E383C07C0A23818038013247E9F18>I<
-EA01C0EA07E0487EEA0E70487EA4EB73F813F313E3380FC1C0EBC38013831303381F0700
-EA3F87EA7B8EEA71CEEAE1FC12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C
-7F9B18>I<1238127CA2127E123E120EA3121CA2123812F812F012C0070E789B18>I<1370
-13F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780
-EA03C0EA01F0120013700C24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA
-00E0A41370A813E0A4EA01C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA
-01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1
-C73841C100EA01C0A411147D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000
-A7136013147E9718>I<121C123E127E127F123F121F1207120E121E127C12F81260080C
-788518>I<387FFFC0B512E0A26C13C013047E8F18>I<1230127812FCA212781230060677
-8518>I<1303EB0780A2130F14005B131EA2133E133C137C1378A213F85B12015B12035B
-A212075B120F90C7FCA25A121E123E123CA2127C127812F85AA2126011247D9F18>I<EA
-01F0EA07FC487EEA1F1FEA1C0738380380007813C0EA7001A238E000E0A9EAF001007013
-C0A2EA780300381380381C0700EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203
-A21207120F123F12FF12FB12431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA
-0FFEEA3FFF387C0F80387003C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB
-0F00131E5B5B5B485AEA07C0485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B13
-77A213E7120113C7EA038712071307120E121E123C1238127812F0B512F8A338000700A6
-EB7FF0A3151C7F9B18>52 D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003
-C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C
-7E9B18>I<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EA
-E7FEB5FC38FE078038F803C0EAF001EB00E05A7E1270A3383801C0EA3C03381E0780380F
-FF006C5AEA01F8131C7E9B18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5B
-A25B13F05BA2485AA3485AA448C7FCA7131D7E9C18>I<EA03F8EA0FFE487E383E0F80EA
-3803387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F0
-13E0EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<123012
-7812FCA2127812301200A81230127812FCA2127812300614779318>58
-D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E121C123C127812F0
-1260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048
-C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E
-9918>I<387FFFC0B512E0A3C8FCA4B512E0A36C13C0130C7E9318>I<126012F87E127F6C
-7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F048
-5AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F38F00380A2
-EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A111C7D9B18>I<
-137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380
-A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038
-007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80
-A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>I<EA7FFCB5FC6C1380
-381C03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03EB00E014F01470A414
-F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA
-1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA0F073807FF803803FE
-00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F014
-70A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C7F9B18>I<B512F0A3
-381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>
-I<B512F8A3381C0038A41400A21307A3EA1FFFA3EA1C07A390C7FCA7EAFFC0A3151C7F9B
-18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F
-130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F
-07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F015
-1C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<38
-01FFC0A338000E00B312F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF
-87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121E
-EA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>I<EAFFC0A3
-001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA39
-8CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0F
-F8387F07F0381D81C0A313C1121CA213E1A313611371A213311339A31319A2131D130DA3
-EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0
-EAE000B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF
-8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47E
-A3141C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000AE1370A2EA
-F079387039C0EA783FEA7FFF6C1380380FFE00EA000FEB0780A2EB03C01301A213227E9B
-18>I<EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C
-0F7FEB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>I<3803F1C0EA1FFF5AEA
-7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00
-E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5
-FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0
-EA0F01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C
-01E0001C13C0A3EA1E03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A2
-1370151C7F9B18>I<38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3
-138CA2EA1D8DA31305000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F38
-0E0700120FEA070E138EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138E
-EA070F7F000E13801303001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03
-F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00
-F8A21370A9EA01FC487E6C5A151C7F9B18>I<EAFFF8A3EAE000B3ACEAFFF8A30D24779F
-18>91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F
-12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<EAFFF8
-A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0B512E0A26C13C013047E7F18>95
-D<1206121E123E12381270A212E0A312F812FC127CA21238070E789E18>I<EA0FF0EA1F
-FC487EEA3C0FEA180738000380A213FF1207121FEA7F03127812E0A3EAF007EA780F383F
-FFF8EA1FFDEA07F015147E9318>I<127E12FE127E120EA5133EEBFF80000F13C0EBC1E0
-1380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E138038063E00151C809B18
->I<EA01FEEA07FF001F1380EA3E073838030048C7FCA25AA61270EB01C01238EA3E0338
-1FFF8000071300EA01FC12147D9318>I<EB1F80133F131F1303A5EA03E3EA0FFBEA1FFF
-EA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA3C1F381FFFF0380FFBF83803E3F0
-151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F38380780EA7003A238E001C0A2B5FCA300
-E0C7FC1270EB01C01238EA3E07381FFF8000071300EA01F812147D9318>I<EB1F80EB7F
-C0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801C000AEEA7FFFA3131C7F9B18>I<
-3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7
-FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0EA7E03381FFFC06C13
-803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF80000F13C013C1EB80E013
-00120EAB387FC7FC38FFE7FE387FC7FC171C809B18>I<EA0380EA07C0A3EA0380C7FCA4
-EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338137CA313381300A4EA0FFCA3EA00
-1CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E12FE127E120EA5EB3F
-F0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB038014C0387FC7F812FF
-127F151C7F9B18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>I<38F9C1C038FFF7F013
-FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E1714809318>I<EA7E3E38FEFF
-80007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC1714809318>I<EA
-01F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF001007013C0EA7803383C
-0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF80007F13C0380FC1E0
-1380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380EB3E0090C7FCA7EA7F
-C0487E6C5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6
-EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E93
-18>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E
-9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1FFCEA03FEEA001F3860
-0780EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<487E1203A4387FFFC0B5
-FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F9818>I<387E07E0EA
-FE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714809318>I<387F8FF0
-00FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038EA3EA01DCA3EA00F8A2
-137015147F9318>I<38FF07F8138F1307383800E0A4381C01C0137113F9A213D9EA1DDD
-000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF0139F138F380F0700EA07
-8EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707000E1380387F8FF000
-FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F0380E01C0EB0380A21207
-EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313F05B1279EA7BC0EA7F
-806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB078038000F00131E5B
-13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318>I<EB07E0131F137FEB
-780013E0AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE0131F130713247E9F18>
-I<126012F0B3B012600424769F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB
-7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18>I<EA060CEA1F1EEA3FBEEAFBF8
-EAF1F0EA60C00F067C9B18>I E /Fr 78 123 df<90381F83E09038F06E303901C07878
-380380F8903800F03048EB7000A7B612803907007000B2383FE3FF1D20809F1B>11
-D<133FEBE0C0EA01C0380381E0EA0701A290C7FCA6B512E0EA0700B2383FC3FC1620809F
-19>I<EB3FE013E0EA01C1EA0381EA0700A8B5FCEA0700B2383FE7FC1620809F19>I<9038
-1F81F89038F04F043901C07C06390380F80FEB00F05A0270C7FCA6B7FC3907007007B23A
-3FE3FE3FE02320809F26>I<EA7038EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008
-A2EA2010EA40200F0E7F9F17>34 D<1340A2EA03F0EA0C4EEA1041382040801260004013
-4038C041C01343A238E04180EB40001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F80
-1343EB41C0A2EAF040A312801480EA404100201300EA3042EA0C4CEA03F0EA0040A31225
-7EA117>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
-07C0EAFFFE0F1E7C9D17>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<90380FE0109038381C309038E002703803C00139078000F048C71270121E
-15305A1510127C127800F81400A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903
-C001703900E002309038380C1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD
-90B5FCEB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<
-3807FFC038003E00131EB3A3122012F8A3EAF01CEA403CEA6038EA1070EA0FC012207F9E
-17>I<39FFF007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13
-C0EB21E01341EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E
-9E23>I<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>
-I<B46CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A2
-90380E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E
-2A>I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2
-EB03C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E
-9E22>I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A200
-7C14F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB
-03C06C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C14
-1E80EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<
-B57E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070A280143CA3
-143EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>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<EA1FE0EA3030EA7818131CEA300E1200A313FEEA078EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA21270EB038012F0A2B5FC00F0C7FCA31270A26C1380A2381C0100EA0706
-EA01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE0
-1020809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA
-33E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C
-13C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A2
-121CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F
-7F9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA
-6180EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013
-E0EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12
-FC121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D039038391E01E01CA2
-001C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38
-FF8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A600
-7013E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E01
-8014C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7
-FCA8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A612
-7012781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD
-18EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE0
-00127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F14
-7F9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C
-7F9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83
-F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370
-A3132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D8
-0704138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E14
-7F9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F01370
-137813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>
-I<38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00
-E8A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E12
-60EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA70
-06130EEAFFFE10147F9314>I E /Fs 14 122 df<DB1FFC14C00203B5EAC001021FECF0
-03027FECFC07903B01FFFC00FE0F010701C0EB1F9F4948C7EA07FFD93FF8804948140049
-48157F485B4A153F4890C9121F485A000F170F5B001F1707A2485A1803A2127FA24993C8
-FCA212FFAA041FB61280127FA27FDC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C
-7F6D6C5CEB3FFCD90FFF5C6D01C0EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF80302
-03ECE0009126001FFEC9FC413D7BBB4C>71 D<B612FEA426007FF0C9FCB3ADEF03C0A517
-071880A3170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>76
-D<B500F00207B512E0808080D8007F92390007E0006E6F5A81017B7F81137901787F6E7E
-6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F7E816F13806F13C017E06F13F081EE
-7FF8EE3FFC17FEEE1FFF827013837013C318E37013F382EF7FFBEF3FFFA283838383A283
-83187F183FA201FC161FB500FC150F18071803A2433B7CBA4C>78
-D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F717E717EA284171FA284A6
-60A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A29139F0007FF0EE1FF8707E
-707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B600F890393FFC07809438
-1FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82 D<B600F80107B512E0A426007F
-F0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA26D6C151E0107163E6E5D6D6C5D
-6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02034AC8FCDA007F13F003071380
-433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007FC9038F001FE486C6C7E6F7E82
-153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F3803FF803807FC00EA0FF0485A12
-3F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F0FFFE03807FFFE0001497E3900
-3FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4FC021F13F0027F13FC9138FC03
-FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF017F8A2EE07FCA317FEA917FCA3
-160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EBFF009039F0FC07FE91387FFFF8
-D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EE3F80ED3FFFA4150181B0ECFF80010F13
-F0013F13FC9038FFC03F3901FE000F4848130348487F48487F121F485AA2127F5BA312FF
-A9127FA36C7EA2121F6C6C5B6C6C5B00035CD801FE011F13C02700FF807E13FE90387FFF
-F8010F13E0010113002F3C7DBB36>100 D<49B47E010F13F0017F13FC9038FF81FE3A03
-FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15F01507485A16F8A212FFA290B6FC
-A301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C13016C6CEB03E06C6CEB0FC03A00
-FFC07F8090393FFFFE00010F13F8010013C025267DA52C>I<EA01E0EA07F8487EA2487E
-A46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512F0A4143D7DBC1A>105
-D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108 D<D801FCEBFF8000FF0103
-13F0020F7F91381E03FC91383801FE000701607F0003497E01FD15805C01FFC7FCA35BB3
-A4B5D8F83F13FEA42F267CA536>110 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC
-707F00079038E0FFC000035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512
-FCA422267DA528>114 D<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E
-137C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F0103
-91C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C
-141E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FC
-EA1FFCEA07F02E377EA533>121 D E end
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 300 300 (readline.dvi)
+@start /Fa 1 47 df<70F8F8F0E005057B840E>46 D E /Fb 1
+47 df<0E003F007F807F80FF80FF80FF007E003C000909798815>46
+D E /Fc 1 59 df<60F0F06004047D830B>58 D E /Fd 53 127
+df<60F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060F0F0600417789614>33
+D<071C00071C00071C00071C00071C00FFFF80FFFF807FFF800E38000E38000E38000E38
+000E38000E38000E38007FFF80FFFF80FFFF801C70001C70001C70001C70001C70001117
+7F9614>35 D<0180038006000C001C0018003800700070007000E000E000E000E000E000
+E000E000E000E000700070007000380018001C000C00060003800180091D799914>40
+D<80C0603038181C0E0E0E0707070707070707070E0E0E1C18383060C080081D7C9914>
+I<038003800380638CF39E7FFC3FF80FE00FE03FF87FFCF39E638C0380038003800F107E
+9214>I<70F8FCFC7C0C1830E0C0060A798414>44 D<FFFEFFFEFFFE0F037E8C14>I<70F8
+F8F8700505798414>I<07C00FE01C7038383018701C701CE00EE00EE00EE00EE00EE00E
+E00EE00EE00E701C701C383838381C700FE007C00F177E9614>48
+D<0300030007000F003F00F7004700070007000700070007000700070007000700070007
+000700070007007FF07FF00C177C9614>I<0006001E003E00F801F003C00F801F003C00
+F800F000F8003C001F000F8003C001F000F8003E001E00060F157E9514>60
+D<C000F000F8003E001F00078003E001F00078003E001E003E007801F003E007801F003E
+00F800F000C0000F157E9514>62 D<1FE03FF8701CE00EE00E400E003C007000E001C003
+800380038003800300000000000000000003000780078003000F177E9614>I<01E007F0
+0E38181C38FC71FC731E771EEE0EEE0EEE0EEE0EEE0EEE0EEE0E771C731871F038E01806
+0E1E07F801F00F177E9614>I<01C00003E00003E0000360000360000770000770000770
+000770000630000E38000E38000E38000E38001C1C001FFC001FFC001C1C001C1C00380E
+00380E00FE3F80FE3F8011177F9614>I<FFF0FFFC381E380E3807380738073807380E38
+1E3FFC3FFC381E380E38073807380738073807380E381EFFFCFFF810177F9614>I<01F1
+8007FF800E1F801C0780380780700380700380700380E00000E00000E00000E00000E000
+00E00000E000007003807003807003803807001C07000E0E0007FC0001F00011177F9614
+>I<FFE000FFF800383C00381E00380E0038070038070038070038038038038038038038
+0380380380380380380380380380380700380700380E00381E00383C00FFF800FFE00011
+177F9614>I<FFFF00FFFF00380700380700380700380700380000380000383800383800
+3FF8003FF800383800383800380000380000380000380380380380380380380380FFFF80
+FFFF8011177F9614>I<FF00FF0038003800380038003800380038003800380038003800
+38003800380038003807380738073807FFFFFFFF10177E9614>76
+D<FC1F80FC1F807C1F007637007637007637007637007777007777007367007367007367
+0073E70071C70071C700700700700700700700700700700700700700F80F80F80F801117
+7F9614>I<FE3F80FE3F803E0E003B0E003B0E003B0E003B0E003B8E00398E00398E0039
+CE0039CE0039CE0038CE0038CE0038EE00386E00386E00386E00386E00383E00FE3E00FE
+3E0011177F9614>I<FFE000FFF800383C00381C00380E00380E00380E00380E00381C00
+383C003FF8003FF000383800381C00381C00381C00381C00381C00381C80381DC0381DC0
+FE0F80FE070012177F9614>82 D<0FCC1FFC307C603CE01CE01CE01CE00070007E003FE0
+0FF001F8001C001E000E600EE00EE00EF01CF838FFF0C7E00F177E9614>I<7FFF80FFFF
+80E1C380E1C380E1C380E1C38001C00001C00001C00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C0000FF8000FF80011177F9614>I<FF
+E0FFE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000
+E000E000E000E000E000E000E000E000E0FFE0FFE00B1D7F9914>93
+D<FFFEFFFEFFFE0F037E7E14>95 D<1FC0007FF000707800201800001C00001C0007FC00
+1FFC003C1C00701C00E01C00E01C00E01C00707C003FFF800F8F8011107E8F14>97
+D<FC0000FC00001C00001C00001C00001C00001C00001CF8001DFE001F07001E03001C03
+801C01C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC000CF8001217
+809614>I<03F80FFE1C0E380470006000E000E000E000E00060007000380E1C1E0FFC03
+F00F107E8F14>I<007E00007E00000E00000E00000E00000E00000E0007CE000FFE001C
+3E00301E00700E00E00E00E00E00E00E00E00E00E00E00E00E00700E00301E00383E001F
+EFC007CFC012177F9614>I<07E00FF01C38301C700CE00EE00EFFFEFFFEE00060007000
+380E1C1E0FFC03F00F107E8F14>I<00FC01FE038E07040700070007007FFEFFFE070007
+000700070007000700070007000700070007000700FFF8FFF80F177F9614>I<07CF001F
+FF80383B80301800701C00701C00701C003018003838003FF00037C0007000007000003F
+F8001FFC003FFE00700F00E00380E00380E00380E003807007003C1E001FFC0007F00011
+197F8F14>I<FC0000FC00001C00001C00001C00001C00001C00001C78001DFE001F8600
+1E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF8FE0
+FF8FE01317809614>I<06000F000F0006000000000000000000FF00FF00070007000700
+070007000700070007000700070007000700FFF8FFF80D187C9714>I<FC0000FC00001C
+00001C00001C00001C00001C00001CFF801CFF801C1C001C38001C70001CE0001DC0001F
+E0001FE0001E70001C38001C3C001C1C001C0E00FF1F80FF1F801117809614>107
+D<FF80FF8003800380038003800380038003800380038003800380038003800380038003
+80038003800380FFFEFFFE0F177E9614>I<FB8E00FFDF003CF3803CF38038E38038E380
+38E38038E38038E38038E38038E38038E38038E38038E380FEFBE0FE79E01310808F14>
+I<FC7800FDFE001F86001E07001C07001C07001C07001C07001C07001C07001C07001C07
+001C07001C0700FF8FE0FF8FE01310808F14>I<07C01FF03C78701C701CE00EE00EE00E
+E00EE00EE00E701C783C3C781FF007C00F107E8F14>I<FCF800FDFE001F07001E03001C
+03801C01C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC001CF8001C
+00001C00001C00001C00001C00001C0000FF8000FF80001218808F14>I<03E7000FF700
+1C1F00300F00700F00E00700E00700E00700E00700E00700E00700700F00300F001C3F00
+0FF70007C700000700000700000700000700000700000700003FE0003FE013187F8F14>
+I<FE1F00FE7F800EE3800F81000F00000F00000E00000E00000E00000E00000E00000E00
+000E00000E0000FFF000FFF00011107F8F14>I<0FD83FF86038C038C038F0007F803FF0
+07F8001C6006E006F006F81CFFF8CFE00F107E8F14>I<06000E000E000E000E007FFCFF
+FC0E000E000E000E000E000E000E000E000E0E0E0E0E0E0E1C07F801F00F157F9414>I<
+FC3F00FC3F001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700
+1C07001C1F000FFFE003E7E01310808F14>I<FE3F80FE3F803C1E001C1C001C1C001C1C
+000E38000E38000E380006300007700007700007700003E00003E00003E00011107F8F14
+>I<FE3F80FE3F80700700380E00380E00380E0039CE0039CE0039CE001B6C001A6C001A
+6C001A6C001E7C001E7C000E380011107F8F14>I<7E3F007E3F001E3C000E7800077000
+07E00003E00001C00003C00003E0000770000E78000E38001C1C00FE3F80FE3F8011107F
+8F14>I<FE3F80FE3F801C0E001C1C001C1C000E1C000E38000E38000738000730000730
+0003700003700003E00001E00001E00001C00001C00001C0000380007380007700007E00
+003C000011187F8F14>I<3FFF7FFF700E701C7038007000E001C0038007000E001C0738
+077007FFFFFFFF10107F8F14>I<1C103F38E7E041C00D047D9614>126
+D E /Fe 2 121 df<7070F06004047D830B>46 D<3FC7E007838007020003840003C800
+01D80000F00000E00000F00001F000013800023800041C00081E00381E00FC3FC013107F
+8F14>120 D E /Ff 38 123 df<00FE000381000601800E03801C01001C00001C00001C
+00001C00001C0000FFFF801C03801C03801C03801C03801C03801C03801C03801C03801C
+03801C03801C03801C03801C03801C0380FF8FF0141A809915>12
+D<00FF800383800603800E03801C03801C03801C03801C03801C03801C0380FFFF801C03
+801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03
+801C0380FF9FF0141A809915>I<60F0F07010101020204040040B7D830B>44
+D<FFC0FFC00A0280880D>I<03000700FF00070007000700070007000700070007000700
+070007000700070007000700070007000700070007007FF80D187D9713>49
+D<0F80106020304038803CC01CE01C401C003C003800380070006000C001800100020004
+040804100430083FF87FF8FFF80E187E9713>I<07E01838201C601E700E201E001E001C
+001C0038007007E00038001C000E000F000FE00FE00FC00F400E601C183807E010187F97
+13>I<001800180038007800F800B8013802380238043808381838103820384038C038FF
+FF00380038003800380038003803FF10187F9713>I<30183FF03FE03F80200020002000
+200020002FC03060203000380018001C001C401CE01CE01C80184038403030E00F800E18
+7E9713>I<01F807040C06180E300E300070006000E000E3E0E418E80CF00EE006E007E0
+07E007600760077006300E180C0C3807E010187F9713>I<40007FFF7FFE7FFE40048008
+80108010002000400040008001800100030003000700060006000E000E000E000E000E00
+040010197E9813>I<07E01818300C2006600660067006780C3E181F3007C003E00CF830
+7C601E600FC007C003C003C00360022004181807E010187F9713>I<07E01C303018700C
+600EE006E006E007E007E0076007700F3017182707C700070006000E000C700C70186030
+30600F8010187F9713>I<1FC000387000383800101C00001C00001C0003FC001E1C0038
+1C00701C00E01C00E01C80E01C80E03C80705F801F8F0011107F8F13>97
+D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001CFC001D07
+001E03801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01801E03
+0019060010F800131A809915>I<07F81C1C381C70087000E000E000E000E000E000E000
+7000700438081C1807E00E107F8F11>I<003F0000070000070000070000070000070000
+070000070000070000070003E7000C1700180F00300700700700E00700E00700E00700E0
+0700E00700E00700600700700700380F001C370007C7E0131A7F9915>I<07C01C303018
+7018600CE00CFFFCE000E000E000E0006000700438081C1807E00E107F8F11>I<01F007
+180E381C101C001C001C001C001C001C00FFC01C001C001C001C001C001C001C001C001C
+001C001C001C001C001C00FF800D1A80990C>I<0FCF0018718030300070380070380070
+38007038003030001860002FC0006000006000007000003FF0003FFC001FFE00600F00C0
+0300C00300C00300C00300600600381C0007E00011187F8F13>I<FC00001C00001C0000
+1C00001C00001C00001C00001C00001C00001C00001C7C001D87001E03801E03801C0380
+1C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF0141A80
+9915>I<183C3C18000000000000FC1C1C1C1C1C1C1C1C1C1C1C1C1C1CFF081A80990A>I<
+FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C1FC01C0F00
+1C0C001C18001C20001C40001CE0001DE0001E70001C78001C38001C1C001C1E001C0F00
+1C0F80FF9FE0131A809914>107 D<FC001C001C001C001C001C001C001C001C001C001C
+001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091A80990A
+>I<FC7C1F001D8E63801E0781C01E0781C01C0701C01C0701C01C0701C01C0701C01C07
+01C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7F81D107F8F20>
+I<FC7C001D87001E03801E03801C03801C03801C03801C03801C03801C03801C03801C03
+801C03801C03801C0380FF9FF01410808F15>I<07E01C38300C700E6006E007E007E007
+E007E007E0076006700E381C1C3807E010107F8F13>I<FCFC001D07001E03801C01C01C
+01C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01801E03001D06001CF8001C
+00001C00001C00001C00001C00001C0000FF80001317808F15>I<03E1000C1300180B00
+300F00700700E00700E00700E00700E00700E00700E00700700700700700380F001C3700
+07C700000700000700000700000700000700000700003FE013177F8F14>I<FC781D9C1E
+1C1E081C001C001C001C001C001C001C001C001C001C001C00FF800E10808F0F>I<1F20
+60E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F800C107F8F0F>
+I<0800080008000800180018003800FFC038003800380038003800380038003800382038
+203820382018201C4007800B177F960F>I<FC1F801C03801C03801C03801C03801C0380
+1C03801C03801C03801C03801C03801C03801C07800C07800E0B8003F3F01410808F15>
+I<FF0F803C07001C06001C04001C04000E08000E080007100007100007100003A00003A0
+0001C00001C00001C00000800011107F8F14>I<FE7F1F80381C07003C1C06001C0C0400
+1C0E04000E1608000E1708000E170800072310000723900007A3900003C1A00003C1E000
+0180C0000180C0000180C00019107F8F1C>I<FE3F803C1E001C08000E10000F30000760
+0003C00001C00001E00003E000027000043800083800181C00381E00FC3FC012107F8F14
+>I<FF0F803C07001C06001C04001C04000E08000E080007100007100007100003A00003
+A00001C00001C00001C000008000008000010000010000E10000E20000E4000078000011
+177F8F14>I<FFF8E070C07080E081C081C00380070007000E041C041C04380870087038
+FFF80E107F8F11>I E /Fg 2 42 df<00E001C00380078007000F001E001E001C003C00
+3C0038007800780078007000F000F000F000F000F000F000F000F000F000F000F000F000
+F000F000700078007800780038003C003C001C001E001E000F0007000780038001C000E0
+0B2E7CA112>40 D<E000700038003C001C001E000F000F00070007800780038003C003C0
+03C001C001E001E001E001E001E001E001E001E001E001E001E001E001E001E001C003C0
+03C003C003800780078007000F000F001E001C003C0038007000E0000B2E7EA112>I
+E /Fh 28 123 df<000FF83F00007FFDFFC001FC1FE3E003F03FC7E007E03FC7E00FC03F
+87E00FC03F83C00FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80
+00FFFFFFFC00FFFFFFFC000FC01F80000FC01F80000FC01F80000FC01F80000FC01F8000
+0FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000F
+C01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80007FF8FFF8007FF8
+FFF80023237FA221>11 D<0007F800007FFC0001FC0E0003F01F0007E03F000FC03F000F
+C03F000FC03F000FC01E000FC00C000FC000000FC000000FC0FF80FFFFFF80FFFFFF800F
+C01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800F
+C01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F807F
+F8FFF07FF8FFF01C237FA220>I<00180030006000C001C00380078007000F001E001E00
+3E003C003C007C007C007C007800F800F800F800F800F800F800F800F800F800F800F800
+F800F80078007C007C007C003C003C003E001E001E000F0007000780038001C000C00060
+003000180D317BA416>40 D<07FE00001FFF80003F07E0003F03F0003F01F0003F01F800
+1E01F8000001F8000001F800003FF80003FDF8001F81F8003E01F8007C01F800F801F800
+F801F800F801F800F801F8007C02F8007E0CF8001FF87F8007E03F8019167E951C>97
+D<FF800000FF8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F87F0001FBFFC001FF03E001FC01F001F800F
+801F800FC01F8007C01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007
+E01F8007C01F8007C01F800FC01F800F801FC01F001E707E001C3FFC00180FE0001B237E
+A220>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC00
+00FC0000FC0000FC00007C00007E00007E00003E00181F00300FC06007FFC000FF001516
+7E9519>I<0001FF000001FF0000003F0000003F0000003F0000003F0000003F0000003F
+0000003F0000003F0000003F0000003F0000003F0000FE3F0007FFBF000FC1FF001F007F
+003E003F007E003F007C003F007C003F00FC003F00FC003F00FC003F00FC003F00FC003F
+00FC003F00FC003F007C003F007E003F003E003F001F007F000F81FF0007FF3FE001FC3F
+E01B237EA220>I<00FE0007FF800F83C01E01E03E00F07E00F07C00F87C0078FC0078FF
+FFF8FFFFF8FC0000FC0000FC00007C00007C00003E00183E00181F00300F80E003FFC000
+FF0015167E951A>I<001F8000FFE001F1F003E3F007E3F00FC3F00FC1E00FC0000FC000
+0FC0000FC0000FC0000FC000FFFE00FFFE000FC0000FC0000FC0000FC0000FC0000FC000
+0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
+7FFC007FFC0014237EA212>I<00FE0F8003FF9FC00F83E3C01F01F3C01E00F0003E00F8
+003E00F8003E00F8003E00F8003E00F8001E00F0001F01F0000F83E0000BFF800008FE00
+0018000000180000001C0000001FFFE0001FFFFC000FFFFF0007FFFF001FFFFF807C001F
+C078000FC0F80007C0F80007C0F80007C07C000F803E001F001F807E000FFFFC0001FFE0
+001A217F951D>I<FF800000FF8000001F8000001F8000001F8000001F8000001F800000
+1F8000001F8000001F8000001F8000001F8000001F8000001F83F0001F8FFC001F987E00
+1FA03E001FC03F001FC03F001F803F001F803F001F803F001F803F001F803F001F803F00
+1F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1FFE0
+FFF1FFE01B237DA220>I<1E003F007F807F807F807F803F001E00000000000000000000
+000000FF80FF801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F
+801F801F801F80FFF0FFF00C247EA30F>I<FF800000FF8000001F8000001F8000001F80
+00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
+FF801F80FF801F803C001F8030001F80E0001F81C0001F8300001F8600001F9E00001FBE
+00001FFF00001FDF80001F8FC0001F07C0001F07E0001F03F0001F01F8001F00F8001F00
+FC001F007E00FFE1FFC0FFE1FFC01A237EA21E>107 D<FF80FF801F801F801F801F801F
+801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F
+801F801F801F801F801F801F801F801F80FFF0FFF00C237EA20F>I<FF03F803F800FF0F
+FE0FFE001F183F183F001F201F201F001F401FC01F801F401FC01F801F801F801F801F80
+1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80
+1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80
+1F801F80FFF0FFF0FFF0FFF0FFF0FFF02C167D9531>I<FF03F000FF0FFC001F187E001F
+203E001F403F001F403F001F803F001F803F001F803F001F803F001F803F001F803F001F
+803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FFF1FFE0FF
+F1FFE01B167D9520>I<00FF0007FFE00F81F01F00F83E007C7C003E7C003E7C003EFC00
+3FFC003FFC003FFC003FFC003FFC003FFC003F7C003E7E007E3E007C1F00F80F81F007FF
+E000FF0018167E951D>I<FF87F000FFBFFC001FF07E001FC01F001F800F801F800FC01F
+800FC01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007E01F8007C01F
+800FC01F800FC01F801F801FC01F001FF07E001FBFFC001F8FE0001F8000001F8000001F
+8000001F8000001F8000001F8000001F8000001F800000FFF00000FFF000001B207E9520
+>I<00FE030007FF07000FC1CF001F00DF003F007F007E003F007E003F007C003F00FC00
+3F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F007E003F007E003F003E00
+7F001F00FF000FC1FF0007FF3F0000FC3F0000003F0000003F0000003F0000003F000000
+3F0000003F0000003F0000003F000001FFE00001FFE01B207E951E>I<FF0F80FF1FE01F
+33F01F63F01F43F01F43F01FC1E01F80001F80001F80001F80001F80001F80001F80001F
+80001F80001F80001F80001F80001F8000FFF800FFF80014167E9518>I<07F9801FFF80
+380780700380F00180F00180F80000FF0000FFF8007FFE003FFF001FFF8007FF80003FC0
+C007C0C003C0E003C0E003C0F00380FC0F00EFFE00C3F80012167E9517>I<0180000180
+000180000180000380000380000780000780000F80003F8000FFFF00FFFF001F80001F80
+001F80001F80001F80001F80001F80001F80001F80001F80001F80001F81801F81801F81
+801F81801F81800F83000FC30007FE0001F80011207F9F16>I<FF81FF00FF81FF001F80
+3F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F80
+3F001F803F001F803F001F803F001F803F001F803F001F807F001F80FF000FC1BF0007FF
+3FE001FC3FE01B167D9520>I<FFF01FE0FFF01FE01FC007000FC006000FE00E0007E00C
+0007F00C0003F0180003F0180001F8300001F8300000FC600000FC600000FEE000007EC0
+00007FC000003F8000003F8000001F0000001F0000000E0000000E00001B167F951E>I<
+FFF3FF83FCFFF3FF83FC1F807C00E00FC07C00C00FC03E00C00FE03E01C007E07F018007
+E07F018003F07F030003F0CF830003F8CF870001F9CFC60001F987C60000FD87EC0000FF
+03EC0000FF03FC00007F03F800007E01F800003E01F000003C00F000003C00F000001800
+600026167F9529>I<FFF07FC0FFF07FC00FC01C0007E0380007F0700003F0E00001F8C0
+0000FD8000007F8000007F0000003F0000001F8000003FC0000037E0000067F00000C3F0
+0001C1F8000380FC000700FE000E007F00FF81FFE0FF81FFE01B167F951E>I<FFF01FE0
+FFF01FE01FC007000FC006000FE00E0007E00C0007F00C0003F0180003F0180001F83000
+01F8300000FC600000FC600000FEE000007EC000007FC000003F8000003F8000001F0000
+001F0000000E0000000E0000000C0000000C00000018000078180000FC380000FC300000
+FC60000069C000007F8000001F0000001B207F951E>I<7FFFF07FFFF07C07E0700FC060
+1FC0E01F80C03F00C07F00C07E0000FC0001FC0003F80003F03007E0300FE0300FC0701F
+80703F80603F00E07E03E0FFFFE0FFFFE014167E9519>I E /Fi
+29 122 df<00E00000E00000E00000E00000E000F0E1E0FCE7E07EEFC01FFF0007FC0001
+F00007FC001FFF007EEFC0FCE7E0F0E1E000E00000E00000E00000E00000E00013157D99
+1A>42 D<007C3801FF3807FFF80F83F81E00F81C00783800783800387000387000387000
+00E00000E00000E00000E00000E00000E00000E00000E000007000007000387000383800
+383800381C00701E00F00F83E007FFC001FF80007C00151E7E9D1A>67
+D<FFFFF8FFFFF8FFFFF81C00381C00381C00381C00381C00381C00001C00001C0E001C0E
+001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00001C001C1C00
+1C1C001C1C001C1C001CFFFFFCFFFFFCFFFFFC161E7E9D1A>69 D<7FFFFCFFFFFC7FFFFC
+0E001C0E001C0E001C0E001C0E001C0E00000E00000E03800E03800E03800FFF800FFF80
+0FFF800E03800E03800E03800E00000E00000E00000E00000E00000E00000E00000E0000
+7FE000FFE0007FE000161E7F9D1A>I<FFFF80FFFF80FFFF8001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF80111E
+7C9D1A>73 D<7F03F8FF87FC7F03F81C01E01C03C01C03801C07001C0F001C1E001C1C00
+1C38001C78001CF0001CF8001DF8001FDC001F9C001F0E001E0F001E07001C07801C0380
+1C01C01C01C01C00E01C00E01C00707F00FCFF81FE7F00FC171E7F9D1A>75
+D<7FE000FFF0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00
+000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001C0E00
+1C0E001C0E001C0E001C7FFFFCFFFFFC7FFFFC161E7F9D1A>I<FFFE00FFFF80FFFFC01C
+03E01C00F01C00701C00781C00381C00381C00381C00381C00781C00701C00F01C03E01F
+FFC01FFF801FFE001C00001C00001C00001C00001C00001C00001C00001C00001C0000FF
+8000FF8000FF8000151E7E9D1A>80 D<FF01FEFF01FEFF01FE1C00701C00701C00701E00
+F00E00E00E00E00E00E00701C00701C00701C00701C003838003838003838003838001C7
+0001C70001C70001C70000C60000EE0000EE0000EE00006C00007C00007C00003800171E
+7F9D1A>86 D<7FFFC0FFFFE0FFFFE07FFFC013047D7E1A>95 D<1FF0003FFC007FFE0078
+0F00300700000380000380007F8007FF801FFF803F8380780380700380E00380E00380E0
+0380700780780F803FFFFC1FFDFC07F0FC16157D941A>97 D<FE0000FE0000FE00000E00
+000E00000E00000E00000E00000E00000E3E000EFF800FFFE00FC1F00F80700F00380E00
+380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80F00FC1E00FFF
+C00EFF80063E00161E7F9D1A>I<00FF8003FFC00FFFE01F01E03C00C078000070000070
+0000E00000E00000E00000E00000E000007000007000007800703C00701F01F00FFFE003
+FFC000FE0014157D941A>I<001FC0001FC0001FC00001C00001C00001C00001C00001C0
+0001C001F1C007FDC00FFFC01E0FC03C07C07803C07001C0E001C0E001C0E001C0E001C0
+E001C0E001C0E001C07003C07003C03807C03E0FC01FFFFC07FDFC01F1FC161E7E9D1A>
+I<01F80007FF000FFF801E07C03C01C07800E07000E0E00070E00070FFFFF0FFFFF0FFFF
+F0E000007000007000007800703C00701F01F00FFFE003FF8000FE0014157D941A>I<00
+07E0001FF0003FF800787800F03000E00000E00000E00000E0007FFFF0FFFFF0FFFFF000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E0003FFF807FFFC03FFF80151E7F9D1A>I<FE0000FE0000FE00000E0000
+0E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E0
+0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0FFE3FE
+FFE7FEFFE3FE171E7F9D1A>104 D<01C00003E00003E00003E00001C000000000000000
+0000000000000000007FE0007FE0007FE00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000E00000E00000E00000E00000E00000E0007FFF80FFFFC07FFF80
+121F7C9E1A>I<FFE000FFE000FFE00000E00000E00000E00000E00000E00000E00000E0
+0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
+0000E00000E00000E00000E00000E000FFFFE0FFFFE0FFFFE0131E7D9D1A>108
+D<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C
+001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C
+007F1F1F00FF9F9F807F1F1F00191580941A>I<FE3E00FEFF80FFFFC00FC1C00F80E00F
+00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E
+00E0FFE3FEFFE7FEFFE3FE17157F941A>I<01F00007FC001FFF003E0F803C07807803C0
+7001C0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F80
+1FFF0007FC0001F00013157D941A>I<FE3E00FEFF80FFFFE00FC1F00F80700F00380E00
+380E001C0E001C0E001C0E001C0E001C0E001C0E001C0F00380F00780F80F00FC1E00FFF
+C00EFF800E3E000E00000E00000E00000E00000E00000E00000E00000E0000FFE000FFE0
+00FFE00016207F941A>I<7F81F8FF8FFC7F9FFE03FE1E03F80C03E00003E00003C00003
+80000380000380000380000380000380000380000380000380000380007FFF00FFFF007F
+FF0017157F941A>114 D<0180000380000380000380000380000380000380007FFFE0FF
+FFE0FFFFE003800003800003800003800003800003800003800003800003800003800003
+807003807003807003807001C1E001FFE000FF80003F00141C7F9B1A>116
+D<FE0FE0FE0FE0FE0FE00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00
+E00E00E00E00E00E00E00E00E00E01E00F03E007FFFE03FFFE00FCFE17157F941A>I<7F
+C7FCFFC7FE7FC7FC0E00E00E00E00E00E00701C00701C00701C003838003838003838001
+C70001C70001C70000EE0000EE0000EE00007C00007C0000380017157F941A>I<7FC7F8
+7FCFFC7FC7F80703C003838003C70001EF0000FE00007C00007800003800007C0000EE00
+01EE0001C7000383800783C00701C07FC7FCFFC7FE7FC7FC17157F941A>120
+D<7FC7FCFFC7FE7FC7FC0E00E00E00E00700E00701C00781C00381C003838001C38001C3
+8001C70000E70000E70000E600006600006E00003C00003C00003C000038000038000038
+0000780000700030700078E00071E0007FC0003F80001E000017207F941A>I
+E /Fj 1 59 df<70F8F8F87005057C840D>58 D E /Fk 6 102 df<06000F001F800F80
+0F800380070007000F000E003C007C00F0006000090E769B18>39
+D<7FFFC0FFFFE0FFFFE07FFFC013047C8F18>45 D<003E1800FFB801FFF807C1F8078078
+0E00781E00781C0070380030380000700000700000700000E00000E00000E00000E00000
+E00000E00000E000C07001C07001C07003C03807803C0F001FFE000FFC0003F000151C7C
+9B18>67 D<07E01F800FE03FC007E03F8003B02E0003B06E0003B06E0003B0CE000730DC
+000731DC0007319C0007319C0007339C0007331C000E3338000E3738000E3638000E3E38
+000E3C38000E1838001C0070001C0070001C0070001C0070001C0070001C007000FE03F8
+00FF03FC00FE03F8001A1C7F9B18>77 D<6000F000F000F000F8007800780078007C003C
+003C003C003E001E001E001E001F000F000F000F000F8007800780078007C003C003C003
+C003C003E001E001E001E001F000F000600C24789F18>92 D<00F80007FE000FFF001F07
+803C03807801C07001C0E001C0E001C0FFFFC0FFFFC0FFFF80E00000E00000E003007007
+80780F003FFE001FFC0007F00012147B9318>101 D E /Fl 52 122
+df<3C7EFFFFFFFF7E3C08087C8711>46 D<007F800003FFF00007E1F8000F807C001F00
+3E003F003F003E001F007E001F807E001F807E001F807E001F80FE001FC0FE001FC0FE00
+1FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE00
+1FC0FE001FC07E001F807E001F807E001F807E001F803F003F003F003F001F003E000F80
+7C0007E1F80003FFF000007F80001A237EA21F>48 D<001C00003C0000FC00FFFC00FFFC
+0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
+0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
+0000FC0000FC0000FC0000FC007FFFFC7FFFFC16237CA21F>I<01FF0007FFC01E07F038
+03F86001FC7C00FEFE00FEFE00FFFE007FFE007F7C007F3800FF0000FF0000FE0000FE00
+01FC0001F80003F00007E0000780000F00001E00003C0000700000E00301C00303800707
+00060600060FFFFE1FFFFE3FFFFE7FFFFCFFFFFCFFFFFC18237DA21F>I<01FF0007FFE0
+1E03F03801F83C01FC7E00FE7E00FE7E00FE3E00FE1C01FE0001FC0001FC0003F80007F0
+000FC001FF0001FF000007E00001F00001F80000FC0000FE0000FF0000FF1000FF7C00FF
+FE00FFFE00FFFE00FEFE00FE7C01FC7001F83E07F00FFFC001FF0018237DA21F>I<0000
+380000007800000078000000F8000001F8000003F8000007F8000006F800000CF800001C
+F8000038F8000030F8000060F80000E0F80001C0F8000180F8000300F8000700F8000E00
+F8001C00F8001800F8003000F8007000F800E000F800FFFFFFC0FFFFFFC00001F8000001
+F8000001F8000001F8000001F8000001F8000001F800007FFFC0007FFFC01A237EA21F>
+I<18000C1F007C1FFFF81FFFF01FFFE01FFFC01FFF801FFC001800001800001800001800
+0018000018FF001BFFE01F03F01C00F80800FC00007E00007E00007E00007F00007F7800
+7FFC007FFC007FFC007FFC007EF8007E6000FC7000FC3801F81E07E007FFC001FE001823
+7DA21F>I<001FC0007FF001F03803E00C07803E0F807E1F007E3F007E3F007E7E003C7E
+00007E00007E0000FE3FC0FE7FF0FE80F8FF80FCFF007CFF007EFE007EFE007FFE007FFE
+007FFE007F7E007F7E007F7E007F7E007F3E007E3F007E1F007C0F80F807C1F003FFC000
+7F0018237DA21F>I<300000003C0000003FFFFFC03FFFFFC03FFFFF807FFFFF007FFFFE
+007FFFFC006000180060001800E0003000C0006000C000C0000001800000018000000300
+0000060000000E0000000E0000001C0000001C0000003C0000003C000000780000007800
+0000F8000000F8000000F8000000F8000001F8000001F8000001F8000001F8000001F800
+0001F8000000F00000006000001A257DA41F>I<00FF8003FFE00F01F81C007C38003C38
+001E78001E78001E7C001E7E001E7F803C7FE03C3FF8781FFDF01FFFC00FFFC003FFE003
+FFF80FFFFC1E1FFC3C07FE7803FE7800FFF0003FF0001FF0000FF0000FF0000FF0000E78
+000E78001C3C00381F80F007FFE001FF0018237DA21F>I<00FF0003FFC00F83E01F00F0
+3F00F87E007C7E007C7E007EFE007EFE007EFE007EFE007FFE007FFE007FFE007F7E007F
+7E00FF3E00FF3F01FF1F017F0FFE7F03FC7F00007F00007E00007E3C007E7E00FC7E00FC
+7E00F87E00F07C01F03003E01C0F800FFF0003F80018237DA21F>I<00001C0000000000
+1C00000000003E00000000003E00000000003E00000000007F00000000007F0000000000
+FF8000000000FF8000000000FF80000000019FC0000000019FC0000000031FE000000003
+0FE0000000070FF00000000607F00000000607F00000000C07F80000000C03F80000001C
+03FC0000001801FC0000001801FC0000003000FE0000003000FE0000007FFFFF0000007F
+FFFF000000E0007F800000C0003F800000C0003F80000180003FC0000180001FC0000380
+001FE0000300000FE0000300000FE00007000007F000FFF000FFFF80FFF000FFFF802925
+7EA42E>65 D<FFFFFFE000FFFFFFFC0003F0007F0003F0003F8003F0001FC003F0000FE0
+03F0000FE003F0000FF003F0000FF003F00007F003F0000FF003F0000FF003F0000FE003
+F0001FE003F0001FC003F0007F8003F001FE0003FFFFF80003FFFFFF0003F0003FC003F0
+000FE003F00007F003F00007F803F00003F803F00003FC03F00003FC03F00003FC03F000
+03FC03F00003FC03F00003FC03F00003F803F00007F803F0000FF003F0001FE003F0007F
+C0FFFFFFFF00FFFFFFF80026257EA42C>I<0000FF8008000FFFF018003FC03C7800FE00
+06F801F80003F803F00001F807E00000F80FC00000781FC00000783F800000383F800000
+387F800000187F000000187F00000018FF00000000FF00000000FF00000000FF00000000
+FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F000000187F
+800000183F800000183F800000181FC00000300FC000003007E000006003F00000C001F8
+00018000FE000700003FC01E00000FFFF8000000FFC00025257DA42C>I<FFFFFFFF00FF
+FFFFFF0003F8007F0003F8000F8003F800078003F800038003F800038003F800018003F8
+00018003F800018003F80000C003F80600C003F80600C003F806000003F806000003F80E
+000003F81E000003FFFE000003FFFE000003F81E000003F80E000003F806000003F80600
+0003F806006003F806006003F800006003F80000C003F80000C003F80000C003F80000C0
+03F80001C003F80003C003F80003C003F8000F8003F8003F80FFFFFFFF80FFFFFFFF8023
+257EA428>69 D<FFFFFFFE00FFFFFFFE0003F800FE0003F8001F0003F8000F0003F80007
+0003F800070003F800030003F800030003F800030003F800018003F803018003F8030180
+03F803000003F803000003F807000003F80F000003FFFF000003FFFF000003F80F000003
+F807000003F803000003F803000003F803000003F803000003F800000003F800000003F8
+00000003F800000003F800000003F800000003F800000003F800000003F800000003F800
+0000FFFFF00000FFFFF0000021257EA427>I<FFFFE0FFFFE0FFFFE0FFFFE003F80003F8
+0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
+0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
+0003F80003F80003F80003F80003FFFFFFF80003FFFFFFF80003F80003F80003F80003F8
+0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
+0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
+0003F80003F80003F80003F800FFFFE0FFFFE0FFFFE0FFFFE02B257EA430>72
+D<FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
+0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
+0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FFFF
+E0FFFFE013257EA417>I<FFFFE007FF80FFFFE007FF8003F80000780003F80000600003
+F80000C00003F80001800003F80007000003F8000E000003F80018000003F80030000003
+F80060000003F800C0000003F80380000003F80700000003F80E00000003F81F00000003
+F83F80000003F87F80000003F8DFC0000003FB8FE0000003FF0FF0000003FC07F0000003
+F803F8000003F803FC000003F801FE000003F800FE000003F8007F000003F8007F800003
+F8003F800003F8001FC00003F8000FE00003F8000FF00003F80007F00003F80003F80003
+F80003FC00FFFFE03FFFC0FFFFE03FFFC02A257EA430>75 D<FFFFF000FFFFF00003F800
+0003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800
+0003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800
+0003F8000003F8000003F8000303F8000303F8000303F8000603F8000603F8000603F800
+0E03F8000E03F8001E03F8003E03F8007C03F803FCFFFFFFFCFFFFFFFC20257EA425>I<
+FFF8000000FFF8FFFC000001FFF803FC000001FE00037E0000037E00037E0000037E0003
+7E0000037E00033F0000067E00033F0000067E00031F80000C7E00031F80000C7E00030F
+C000187E00030FC000187E000307E000307E000307E000307E000307E000307E000303F0
+00607E000303F000607E000301F800C07E000301F800C07E000300FC01807E000300FC01
+807E0003007E03007E0003007E03007E0003007E03007E0003003F06007E0003003F0600
+7E0003001F8C007E0003001F8C007E0003000FD8007E0003000FD8007E00030007F0007E
+00030007F0007E00030007F0007E00030003E0007E00078003E0007E00FFFC01C01FFFF8
+FFFC01C01FFFF835257EA43A>I<FFF80007FFE0FFFC0007FFE003FE00003C0003FF0000
+1800037F00001800033F80001800031FC0001800031FE0001800030FF00018000307F800
+18000303F80018000301FC0018000300FE0018000300FF00180003007F80180003003FC0
+180003001FC0180003000FE0180003000FF01800030007F81800030003FC1800030001FC
+1800030000FE18000300007F18000300007F98000300003FD8000300001FF8000300000F
+F80003000007F80003000003F80003000003F80003000001F80003000000F80003000000
+7800078000003800FFFC00001800FFFC000018002B257EA430>I<FFFFFF800000FFFFFF
+F8000003F801FE000003F8007F000003F8003F800003F8001FC00003F8001FC00003F800
+1FE00003F8001FE00003F8001FE00003F8001FE00003F8001FE00003F8001FC00003F800
+1FC00003F8003F800003F8007F000003F801FE000003FFFFF8000003FFFFC0000003F803
+F0000003F801F8000003F800FC000003F8007E000003F8007E000003F8007F000003F800
+7F000003F8007F000003F8007F000003F8007F800003F8007F800003F8007F800003F800
+7F806003F8003FC06003F8003FC0C003F8001FE1C0FFFFE00FFF80FFFFE001FE002B257E
+A42E>82 D<00FF008007FFE3800F80F7801E001F803C000F807800078078000380F80003
+80F8000180F8000180FC000180FC000000FF0000007FE000007FFE00003FFFE0003FFFF8
+001FFFFE0007FFFF0003FFFF80007FFF800003FFC000003FC000000FE0000007E0000007
+E0C00003E0C00003E0C00003E0C00003C0E00003C0F00007C0F8000780FC000F00FFC03E
+00E3FFF800803FE0001B257DA422>I<7FFFFFFFF87FFFFFFFF87E00FE01F87800FE0078
+7000FE00386000FE00186000FE0018E000FE001CE000FE000CC000FE000CC000FE000CC0
+00FE000CC000FE000C0000FE00000000FE00000000FE00000000FE00000000FE00000000
+FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
+00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
+000000FE000000FFFFFE0000FFFFFE0026247EA32B>I<FFFFE00FFFC0FFFFE00FFFC003
+F80000780003F80000300003F80000300003F80000300003F80000300003F80000300003
+F80000300003F80000300003F80000300003F80000300003F80000300003F80000300003
+F80000300003F80000300003F80000300003F80000300003F80000300003F80000300003
+F80000300003F80000300003F80000300003F80000300003F80000300003F80000300003
+F80000300003F80000300001F80000600001FC0000600000FC0000C000007C0000C00000
+3E00018000001F00070000000FE03E00000003FFF8000000007FC000002A257EA42F>I<
+FFFF8001FFE0FFFF8001FFE007F800001C0003F80000180003F80000180003FC00003800
+01FC0000300001FE0000700000FE0000600000FF00006000007F0000C000007F8000C000
+003F80018000003F80018000003FC0038000001FC0030000001FE0070000000FE0060000
+000FF00600000007F00C00000007F00C00000003F81800000003F81800000003FC380000
+0001FC3000000001FE7000000000FE6000000000FF60000000007FC0000000007FC00000
+00003F80000000003F80000000003F80000000001F00000000001F00000000000E000000
+00000E0000002B257FA42E>I<FFFF81FFFE01FFF0FFFF81FFFE01FFF007F0001FC0000F
+0007F0001FE000060003F8000FE0000C0003F8000FE0000C0003F80007F0000C0001FC00
+07F000180001FC0007F000180001FE000FF800380000FE000FF800300000FE001FFC0030
+00007F0019FC006000007F0019FC006000007F8030FE006000003F8030FE00C000003F80
+30FF00C000003FC0607F01C000001FC0607F018000001FC0E07F818000000FE0C03F8300
+00000FE0C03F830000000FF1801FC300000007F1801FC600000007F1801FE600000007FB
+000FEE00000003FB000FEC00000003FF000FFC00000001FE0007F800000001FE0007F800
+000001FC0003F800000000FC0003F000000000FC0003F000000000F80001F00000000078
+0001E000000000780001E000000000300000C000003C257FA43F>I<FFFFC001FFE0FFFF
+C001FFE007F800001C0003FC0000180003FC0000380001FE0000300000FF0000600000FF
+0000E000007F8000C000003FC0018000003FC0038000001FE0030000000FF0060000000F
+F00E00000007F80C00000003FC1800000003FC3800000001FE7000000000FF6000000000
+FFE0000000007FC0000000003F80000000003F80000000003F80000000003F8000000000
+3F80000000003F80000000003F80000000003F80000000003F80000000003F8000000000
+3F80000000003F80000000003F80000000003F800000000FFFFC0000000FFFFC00002B25
+7FA42E>89 D<07FF00001FFFE0003E03F0003F00F8003F00FC003F007E001E007E000000
+7E0000007E0000007E00001FFE0003FE7E000FC07E001F007E003E007E007E007E00FC00
+7E00FC007E00FC007E00FC00BE007E01BE003F073E001FFE1FE007F00FE01B187E971E>
+97 D<FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000000F
+C000000FC000000FC000000FC000000FC000000FC000000FC1FC000FCFFF000FFC0FC00F
+F007E00FC003F00FC003F00FC001F80FC001F80FC001FC0FC001FC0FC001FC0FC001FC0F
+C001FC0FC001FC0FC001FC0FC001FC0FC001F80FC001F80FC003F00FE003F00FF007E00F
+1C1F800E0FFF000C03F8001E267FA522>I<007FE003FFF807C07C1F80FC1F00FC3F00FC
+7E00787E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00007E00007F0000
+3F000C1F800C1FC01807E07003FFE0007F0016187E971B>I<0000FFC00000FFC000000F
+C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F
+C000000FC000000FC0007F0FC003FFCFC00FE0FFC01F803FC03F000FC03F000FC07E000F
+C07E000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000FC0FE000F
+C07E000FC07E000FC03F000FC03F001FC01F803FC00FC0EFC003FFCFFC00FE0FFC1E267E
+A522>I<007F0003FFC007C1F00F80F81F00F83F007C7E007C7E007EFE007EFE007EFFFF
+FEFFFFFEFE0000FE0000FE00007E00007E00007E00063F00061F000C0F801807E07003FF
+E0007F8017187E971C>I<001FC0007FF001F8F003E1F807E1F807C1F80FC0F00FC0000F
+C0000FC0000FC0000FC0000FC0000FC000FFFF00FFFF000FC0000FC0000FC0000FC0000F
+C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F
+C0000FC0000FC0000FC000FFFE00FFFE0015267EA513>I<01FF07C007FFDFE00F83F1E0
+1F01F1E03E00F8007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC003E00F800
+1F01F0000F83E0000FFFC00011FF00003000000030000000380000003C0000003FFFE000
+1FFFFC001FFFFE000FFFFF001FFFFF803C003F8078000FC0F80007C0F80007C0F80007C0
+F80007C07C000F803E001F001F807E0007FFF80000FFC0001B247E971F>I<FFC00000FF
+C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F
+C000000FC000000FC000000FC000000FC0FE000FC3FF800FCE0FC00FD80FC00FD007E00F
+E007E00FE007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F
+C007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E0FFFC7FFEFF
+FC7FFE1F267EA522>I<0F001F803FC03FC03FC03FC01F800F0000000000000000000000
+000000007FC07FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0
+0FC00FC00FC00FC00FC00FC0FFF8FFF80D277EA611>I<FFC00000FFC000000FC000000F
+C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F
+C000000FC000000FC01FF00FC01FF00FC007800FC00E000FC01C000FC030000FC060000F
+C1C0000FC380000FC780000FDF80000FFFC0000FE7E0000FC3F0000F81F0000F81F8000F
+80FC000F807E000F803F000F803F000F801F800F800FC0FFF83FF8FFF83FF81D267FA520
+>107 D<FFC0FFC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0
+0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0
+0FC00FC0FFFCFFFC0E267EA511>I<FF80FE007F00FF83FF81FFC00F8E0FC707E00F980F
+CC07E00F9007E803F00FA007F003F00FA007F003F00FC007E003F00FC007E003F00FC007
+E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007
+E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007E003F00FC007
+E003F0FFFC7FFE3FFFFFFC7FFE3FFF30187E9733>I<FF80FE00FF83FF800F8E0FC00F98
+0FC00F9007E00FA007E00FA007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0
+07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0
+07E0FFFC7FFEFFFC7FFE1F187E9722>I<007F800003FFF00007C0F8001F807E003F003F
+003F003F007E001F807E001F80FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001F
+C0FE001FC0FE001FC07E001F807E001F803F003F003F003F001F807E000FC0FC0003FFF0
+00007F80001A187E971F>I<FFC1FC00FFCFFF000FFC1FC00FF007E00FC007F00FC003F0
+0FC003F80FC001F80FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC0FC001FC
+0FC001FC0FC003F80FC003F80FC003F00FE007F00FF00FE00FDC1F800FCFFF000FC3F800
+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000
+FFFC0000FFFC00001E237F9722>I<FF83E0FF8FF80F8C7C0F90FC0FB0FC0FA0FC0FA078
+0FE0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
+0FC0000FC0000FC000FFFE00FFFE0016187F9719>114 D<07F8C01FFFC03C07C07001C0
+F000C0F000C0F000C0FC0000FF80007FFC007FFE003FFF800FFFC003FFC0001FE00003E0
+C001E0C001E0E001E0E001C0F003C0FC0780EFFF00C3FC0013187E9718>I<00C00000C0
+0000C00000C00001C00001C00001C00003C00007C0000FC0001FC000FFFFC0FFFFC00FC0
+000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0
+600FC0600FC0600FC0600FC0600FC06007E0C007E1C001FF80007E0013237FA218>I<FF
+C07FE0FFC07FE00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F
+C007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F
+C00FE00FC00FE007C017E007E067E003FFC7FE007F07FE1F187E9722>I<FFF80FF8FFF8
+0FF80FC001C00FC0018007E0030007E0030007F0070003F0060003F80E0001F80C0001FC
+0C0000FC180000FE1800007E3000007E3000003F6000003F6000003FE000001FC000001F
+C000000F8000000F800000070000000700001D187F9720>I<FFF9FFE0FF80FFF9FFE0FF
+801FC03F001C000FC01F0018000FC01F80180007E01F80300007E01F80300007F03FC070
+0003F037C0600003F037E0600001F863E0C00001F863E0C00001FCE3F1C00000FCC1F180
+0000FCC1F98000007F80FB0000007F80FB0000007F80FF0000003F007E0000003F007E00
+00001E003C0000001E003C0000001E003C0000000C0018000029187F972C>I<FFF83FF0
+FFF83FF00FC00F0007E00E0003F01C0003F8380001FC700000FC6000007EC000003F8000
+003F8000001F8000000FC000001FE000001FF0000033F8000061F80000E0FC0001C07E00
+03807F0007003F800F001F80FFC07FF8FFC07FF81D187F9720>I<FFF80FF8FFF80FF80F
+C001C00FC0018007E0030007E0030007F0070003F0060003F80E0001F80C0001FC0C0000
+FC180000FE1800007E3000007E3000003F6000003F6000003FE000001FC000001FC00000
+0F8000000F800000070000000700000006000000060000000C0000300C0000781C0000FC
+180000FC300000FC70000068E000007FC000001F0000001D237F9720>I
+E /Fm 28 122 df<0003E0001C1800381800703C00E03C00E03801C00001C00001C00001
+C00001C0000380007FFFF00380700380700380700380700700E00700E00700E00700E007
+00E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF0FF016207E9F
+19>12 D<FFF0FFF00C027E8A0F>45 D<07FFFFF800F80078007800380078001800F00018
+00F0000800F0000800F0000800F0000800F0000801E0080001E0080001E0080001E01800
+01E0380001FFF80003C0300003C0100003C0100003C0100003C0100003C0000007800000
+07800000078000000780000007800000078000000F0000000F800000FFFC00001D1F7E9E
+1E>70 D<07FF803FE000F8001F000078000C00007800180000F000200000F000400000F0
+00800000F001000000F002000000F008000001E010000001E020000001E060000001E0F0
+000001E1F0000001E4F8000003C878000003D07C000003E03C000003C03E000003C01E00
+0003C01F000007800F000007800F80000780078000078007C000078003C000078003E000
+0F0001E0000F8003F000FFF00FFE00231F7E9E23>75 D<07F8000C0C001E06001E07001C
+070000070000070000070000FF0007C7001E07003C0E00780E00F00E10F00E10F00E10F0
+1E10F02E20784F401F878014147D9317>97 D<0700003F00000F00000700000700000E00
+000E00000E00000E00000E00000E00001C00001C7C001D83001E01801C01C01C00E03800
+E03800F03800F03800F03800F03800F07001E07001E07001C07003C0700380700700E80E
+00CC380083E00014207B9F19>I<00FE000383000E07801C0780380700380000780000F0
+0000F00000F00000F00000E00000E00000E00000F00000F001007002003804001C180007
+E00011147D9314>I<0000380001F8000078000038000038000070000070000070000070
+0000700000700000E000FCE00382E00601E01C01E03C00E03801C07801C0F001C0F001C0
+F001C0F001C0E00380E00380E00380E00380F00380700780380F001C378007C7E015207D
+9F19>I<00F800070E000E07001C0700380380780380700380F00380F00380FFFF80F000
+00E00000E00000E00000E00000F001007002003004001C180007E00011147D9314>I<00
+07C0001C600030F00060F000E0E000C00001C00001C00001C00001C00001C0000380003F
+FC000380000380000380000380000700000700000700000700000700000700000E00000E
+00000E00000E00000E00000E00001C00001E0000FFC00014207F9F0E>I<00000E003E11
+00E1A301C1C20381E00780E00701E00F01E00F01E00F01E00703C007038007870004FC00
+0800000800001800001C00000FFF000FFFC00FFFE01800F0300030600030C00030C00030
+C000306000603000C01C070007FC00181F809417>I<00E00007E00001E00000E00000E0
+0001C00001C00001C00001C00001C00001C000038000038F800390E003A0E003C0600380
+600780E00700E00700E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01
+C01C03801E03C0FF8FF014207E9F19>I<01C003E003E003C00180000000000000000000
+00000003801F800780038003800700070007000700070007000E000E000E000E000E000E
+001C001E00FF800B1F7F9E0C>I<00E00007E00001E00000E00000E00001C00001C00001
+C00001C00001C00001C0000380000381FC0380F00380C003818003810007040007080007
+1800073800077C00071C000E1C000E0E000E0E000E0F000E07000E07801C03801E07C0FF
+8FF016207E9F18>107 D<00E007E001E000E000E001C001C001C001C001C001C0038003
+8003800380038003800700070007000700070007000E000E000E000E000E000E001C001E
+00FF800B207F9F0C>I<0387C07C001F9861860007A072070003C0340300038038030007
+80780700070070070007007007000700700700070070070007007007000E00E00E000E00
+E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E01E00FFCFFC
+FFC022147E9326>I<038F801F90E007A0E003C0600380600780E00700E00700E00700E0
+0700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FF8FF014147E
+9319>I<00FC000387000E01801C00C03800E03800E07000F0F000F0F000F0F000F0F000
+F0E001E0E001E0E001C0E003C0F00380700700380E001C1C0007E00014147D9317>I<00
+E3E00007EC380000F01C0000E00E0000E00F0001C0070001C0078001C0078001C0078001
+C0078001C0078003800F0003800F0003800E0003801E0003801C00038038000740700007
+61C000071F00000700000007000000070000000E0000000E0000000E0000000E0000001E
+000000FFC00000191D809319>I<00FC200382600702601E01E03C01E03801C07801C0F0
+01C0F001C0F001C0F001C0E00380E00380F00380F00380F00780700780380F001C370007
+C700000700000700000700000E00000E00000E00000E00001E0000FFC0131D7D9318>I<
+038E001FB38007C78003C7800383000780000700000700000700000700000700000E0000
+0E00000E00000E00000E00000E00001C00001E0000FFC00011147E9312>I<01F9060708
+031803180138023C001F001FF007FC01FE001F40074003400360036006F004C81887E010
+147F9312>I<0080010001000100030007000F001E00FFF80E000E000E000E001C001C00
+1C001C001C001C00380038103810381038103820382018400F800D1C7C9B12>I<1C0380
+FC1F803C07801C03801C0380380700380700380700380700380700380700700E00700E00
+700E00700E00701E00701E00703C00305E001F9F8011147B9319>I<FF83F81E00E01C00
+C01C00801E00800E01000E03000E02000E040007040007080007080007100003900003A0
+0003E00003C00003800001800001000015147C9318>I<FF9FE1FC3C0780701C0300601C
+0380601C0380401C0380800E0780800E0D81000E0981000E19C2000E11C2000F21C40007
+20C4000740C8000740E8000780F0000780F0000300E00003006000020040001E147C9321
+>I<1FF0FF03C07801C07001C04000E0C000E180007300007600003C00003C00001C0000
+2E00004E000087000107000203800403800C01C03C03E0FE07FC18147F9318>I<0FF83F
+8001E00E0001C00C0001C0080001E0080000E0100000E0300000E0200000E04000007040
+0000708000007080000071000000390000003A0000003E0000003C000000380000001800
+00001000000010000000200000002000000040000070C00000F0800000F1000000E60000
+0078000000191D809318>I E /Fn 38 124 df<60F0F070101020204040040A7D960A>
+39 D<FF80FF80090280870C>45 D<06000E00FE000E000E000E000E000E000E000E000E
+000E000E000E000E000E000E000E000E000E00FFE00B157D9412>49
+D<001000003800003800003800005C00005C00005C00008E00008E00008E000107000107
+0002038002038002038007FFC00401C00401C00800E00800E01800F03800F0FE03FE1717
+7F961A>65 D<FFFE001C03801C00E01C00601C00701C00701C00701C00701C00E01C01C0
+1FFF801FFFC01C00E01C00701C00301C00381C00381C00381C00381C00701C00E01C01C0
+FFFF0015177F9619>I<00FC100383300E00B01C0070380030300030700010600010E000
+10E00000E00000E00000E00000E00000E000106000107000103000203800201C00400E00
+8003830000FC0014177E9619>I<FFFF001C01C01C00E01C00301C00381C00181C001C1C
+000C1C000E1C000E1C000E1C000E1C000E1C000E1C000E1C000C1C001C1C001C1C00381C
+00301C00601C01C0FFFF0017177F961B>I<FFFFE01C00E01C00601C00201C00101C0010
+1C00101C04001C04001C04001C0C001FFC001C0C001C04001C04081C04081C00081C0018
+1C00101C00101C00301C00F0FFFFF015177F9618>I<FFFFE01C00E01C00601C00201C00
+101C00101C00101C04001C04001C04001C0C001FFC001C0C001C04001C04001C04001C00
+001C00001C00001C00001C00001C0000FFC00014177F9617>I<FFC0001C00001C00001C
+00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00201C
+00201C00201C00601C00601C00401C00C01C03C0FFFFC013177F9616>76
+D<FE0003F81E0003C0170005C0170005C0170005C0138009C0138009C011C011C011C011
+C011C011C010E021C010E021C0107041C0107041C0107041C0103881C0103881C0101D01
+C0101D01C0100E01C0100E01C0380E01C0FE040FF81D177F9620>I<FC00FE1E00381F00
+1017001013801011C01011C01010E010107010103810103810101C10100E10100F101007
+101003901001D01001D01000F0100070100030380030FE001017177F961A>I<FFFE001C
+03801C00C01C00601C00701C00701C00701C00701C00601C00C01C03801FFE001C00001C
+00001C00001C00001C00001C00001C00001C00001C00001C0000FF800014177F9618>80
+D<FFFC001C03801C00C01C00E01C00701C00701C00701C00701C00E01C00C01C03801FFE
+001C07801C01C01C00E01C00E01C00E01C00E01C00E01C00E11C00E11C0072FF803C1817
+7F961A>82 D<0FC4302C601C400CC004C004C004E00070007F003FE00FF801FC001C000E
+0006800680068006C004E008D81087E00F177E9614>I<7FFFF860381840380840380880
+380480380480380400380000380000380000380000380000380000380000380000380000
+380000380000380000380000380000380003FF8016177F9619>I<FF80FE1C00381C0010
+1C00101C00101C00101C00101C00101C00101C00101C00101C00101C00101C00101C0010
+1C00101C00101C00100E0020060020030040018180007E0017177F961A>I<FCFCC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FCFC06217D980A>91
+D<3FC0706070302038003803F81E3830387038E039E039E07970FF1F1E100E7F8D12>97
+D<F8000038000038000038000038000038000038000038000038000039F0003E0C003806
+00380700380300380380380380380380380380380300380700380600361C0021F0001117
+7F9614>I<003E00000E00000E00000E00000E00000E00000E00000E00000E0007CE001C
+3E00300E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E00182E0007
+CF8011177F9614>100 D<0FC0186030307038E018FFF8E000E000E00060007008301018
+3007C00D0E7F8D10>I<03E006700E701C201C001C001C001C001C00FF801C001C001C00
+1C001C001C001C001C001C001C001C001C007F800C1780960B>I<0F9E18E33060707070
+707070306018C02F80200060003FE03FF83FFC600EC006C006C006600C38380FE010157F
+8D12>I<0300078007800300000000000000000000001F80038003800380038003800380
+0380038003800380038003800380038003804380E300E7007C00091D82960B>106
+D<F80038003800380038003800380038003800383E383838303840388039803FC039E038
+E038F03878383C383CFE7F10177F9613>I<F83838383838383838383838383838383838
+38383838FE07177F960A>I<07C018303018600C600CE00EE00EE00EE00EE00E701C3018
+183007C00F0E7F8D12>111 D<F9F0003E1C003806003807003803003803803803803803
+80380380380300380700380E003E1C0039F000380000380000380000380000380000FE00
+0011147F8D14>I<07C2001C2600381E00700E00600E00E00E00E00E00E00E00E00E0060
+0E00700E00301E001C2E0007CE00000E00000E00000E00000E00000E00003F8011147F8D
+13>I<F9E03A703C703820380038003800380038003800380038003800FF000C0E7F8D0E>
+I<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I<
+080008000800180018003800FFC038003800380038003800380038003840384038403840
+1C800F000A147F930E>I<F83E00380E00380E00380E00380E00380E00380E00380E0038
+0E00380E00380E00381E001C2E0007CF80110E7F8D14>I<FEFE7C383838383810383C10
+1C3C201C4C201E4E600ECE400E8740078780070380070380030300020100160E7F8D19>
+119 D<FE3F3C1C1C100E20074007C0038001C002E004F008701838383CFC7F100E7F8D13
+>I<FE1F380E3C0C1C081C080E100E100720072007E003C003C00180018001000100E200
+E200A400780010147F8D13>I<FFFF801101808812>123 D E /Fo
+2 106 df<00800180030003000300060006000C000C000C001800180018003000300060
+0060006000C000C000600060006000300030001800180018000C000C000C000600060003
+00030003000180008009267D9B0F>104 D<C000C0006000600060003000300018001800
+18000C000C000C000600060003000300030001800180030003000300060006000C000C00
+0C0018001800180030003000600060006000C000C00009267E9B0F>I
+E /Fp 8 89 df<0007F008003C0C1800E0033801C000B8078000780F0000380E0000381E
+0000183C0000183C0000087C0000087800000878000000F8000000F8000000F8000000F8
+000000F8000000F8000000F8001FFF780000F8780000787C0000783C0000783C0000781E
+0000780E0000780F0000780780007801C000B800E00118003C0E080007F00020217C9F27
+>71 D<FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
+000F000F000F000F000F000F000F000F000F000F000F000F000F00FFF00C1F7D9E12>73
+D<FF000FF80F8003E00F8000800BC0008009E0008009E0008008F0008008780080087800
+80083C0080081E0080081E0080080F008008078080080780800803C0800801E0800801E0
+800800F080080078800800788008003C8008001E8008001E8008000F8008000780080007
+8008000380080001803E000180FF8000801D1F7C9E25>78 D<001FE0000070380001C00E
+0003800700070003800F0003C01E0001E03C0000F03C0000F07C0000F87C0000F8780000
+78F800007CF800007CF800007CF800007CF800007CF800007CF800007CF800007CF80000
+7C780000787C0000F87C0000F83C0000F03E0001F01E0001E00F0003C007000380038007
+0001E01E0000703800001FE0001E217C9F26>I<FFFFF0000F803E0007800F0007800780
+078003C0078003C0078003E0078003E0078003E0078003E0078003C0078003C007800780
+07800F0007803E0007FFF000078000000780000007800000078000000780000007800000
+078000000780000007800000078000000780000007800000078000000FC00000FFFC0000
+1B1F7D9E22>I<03F0200C0C601803E03000E06000E0600060E00060E00020E00020E000
+20F00000F800007C00007F80003FFC001FFF0007FF8001FFC0000FE00003E00001E00000
+F0000070800070800070800070800070C00060C000E0E000C0F80180C6030081FC001421
+7C9F1C>83 D<FFF00FF80F0003E00F0000800F0000800F0000800F0000800F0000800F00
+00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00
+00800F0000800F0000800F0000800F0000800F0000800F0000800F000080070001000780
+0100038001000380020001C0040000E0080000383000000FC0001D207C9E25>85
+D<7FF807FE000FE001F00007C001C00003E000800001E001000001F002000000F8060000
+0078040000003C080000003E180000001F100000000F200000000FC000000007C0000000
+03C000000001E000000003F000000006F80000000478000000087C000000183E00000010
+1E000000201F000000400F800000C0078000008003C000010003E000030001F000070000
+F0001F8001F800FFC007FF80211F7E9E25>88 D E /Fq 34 121
+df<0001C0000003C000000FC000007FC0001FFFC000FFFFC000FFBFC000E03FC000003F
+C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
+C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
+C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
+C000003FC000003FC000003FC000003FC000003FC000003FC000003FC0007FFFFFF07FFF
+FFF07FFFFFF01C2E7AAD28>49 D<003FE00001FFFE0007FFFF800F80FFC01E003FE03800
+1FF07C000FF87E0007FCFF0007FCFF8007FEFF8007FEFF8003FEFF8003FE7F0003FE3E00
+07FE000007FE000007FC000007FC00000FF800000FF800000FF000001FE000001FC00000
+3F8000007F0000007E000000F8000001F0000003E0000007C000000F0000001E000E003C
+000E0038000E0070001E00E0001C01C0001C0300003C07FFFFFC0FFFFFFC1FFFFFFC3FFF
+FFFC7FFFFFF8FFFFFFF8FFFFFFF8FFFFFFF81F2E7CAD28>I<000003FF80018000003FFF
+F003800001FFFFFC07800007FF003F0F80001FF800079F80003FC00001FF8000FF800000
+FF8001FE0000007F8003FC0000003F8007FC0000001F8007F80000000F800FF00000000F
+801FF000000007801FF000000007803FE000000007803FE000000003807FE00000000380
+7FE000000003807FC000000000007FC00000000000FFC00000000000FFC00000000000FF
+C00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0
+0000000000FFC000000000007FC000000000007FC000000000007FE000000000007FE000
+000003803FE000000003803FE000000003801FF000000003801FF000000007800FF00000
+00070007F8000000070007FC0000000E0003FC0000001E0001FE0000001C0000FF800000
+7800003FC00000F000001FF80003E0000007FF003F80000001FFFFFE000000003FFFF800
+00000003FF80000031317CB03A>67 D<FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF000FF
+80003FF000FF800007F800FF800003F800FF800000F800FF800000F800FF8000007800FF
+8000007800FF8000003800FF8000003800FF8000003800FF8000001C00FF8007001C00FF
+8007001C00FF8007001C00FF8007000000FF8007000000FF800F000000FF801F000000FF
+803F000000FFFFFF000000FFFFFF000000FFFFFF000000FF803F000000FF801F000000FF
+800F000000FF8007000000FF8007000000FF8007000700FF8007000700FF8007000700FF
+8000000E00FF8000000E00FF8000000E00FF8000000E00FF8000001E00FF8000001E00FF
+8000003C00FF8000003C00FF8000007C00FF800000FC00FF800001FC00FF800007FC00FF
+80003FFCFFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF830317EB035>69
+D<FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE000FF80007FE000FF80000FF000FF800003
+F000FF800001F000FF800001F000FF800000F000FF800000F000FF8000007000FF800000
+7000FF8000007000FF8000003800FF8000003800FF8007003800FF8007003800FF800700
+0000FF8007000000FF8007000000FF800F000000FF801F000000FF803F000000FFFFFF00
+0000FFFFFF000000FFFFFF000000FF803F000000FF801F000000FF800F000000FF800700
+0000FF8007000000FF8007000000FF8007000000FF8007000000FF8000000000FF800000
+0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000
+0000FF8000000000FF8000000000FF8000000000FF80000000FFFFFFC00000FFFFFFC000
+00FFFFFFC000002D317EB033>I<000003FF00030000007FFFF007000001FFFFFC0F0000
+07FF007E1F00001FF0000FBF00007FC00003FF0000FF800001FF0001FE0000007F0003FC
+0000007F0007FC0000003F000FF80000001F000FF00000001F001FF00000000F001FF000
+00000F003FE000000007003FE000000007007FE000000007007FE000000007007FC00000
+000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000000
+0000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC000000000
+00FFC00007FFFFF87FC00007FFFFF87FE00007FFFFF87FE0000001FF003FE0000001FF00
+3FE0000001FF001FF0000001FF001FF0000001FF000FF0000001FF000FF8000001FF0007
+FC000001FF0003FC000001FF0001FE000001FF0000FF800001FF00007FC00003FF00001F
+F800077F000007FF003E3F000001FFFFFC1F0000007FFFF00F00000003FF80030035317C
+B03F>I<FFFFFF80FFFFFF80FFFFFF8000FF800000FF800000FF800000FF800000FF8000
+00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000
+00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000
+00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000
+00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000
+00FF800000FF8000FFFFFF80FFFFFF80FFFFFF8019317EB01E>73
+D<FFFFFF800000FFFFFF800000FFFFFF80000001FF0000000001FF0000000001FF000000
+0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000
+0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000
+0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000
+0001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF000000
+0001FF0000038001FF0000038001FF0000038001FF0000038001FF0000078001FF000007
+0001FF0000070001FF00000F0001FF00000F0001FF00000F0001FF00001F0001FF00003F
+0001FF00007F0001FF0000FF0001FF0001FE0001FF000FFE00FFFFFFFFFE00FFFFFFFFFE
+00FFFFFFFFFE0029317DB030>76 D<FFFF800001FFFFC0FFFFC00001FFFFC0FFFFE00001
+FFFFC000FFF0000003E00000FFF8000001C00000EFFC000001C00000E7FC000001C00000
+E7FE000001C00000E3FF000001C00000E1FF800001C00000E0FFC00001C00000E07FE000
+01C00000E03FE00001C00000E03FF00001C00000E01FF80001C00000E00FFC0001C00000
+E007FE0001C00000E003FE0001C00000E001FF0001C00000E001FF8001C00000E000FFC0
+01C00000E0007FE001C00000E0003FF001C00000E0001FF001C00000E0001FF801C00000
+E0000FFC01C00000E00007FE01C00000E00003FF01C00000E00001FF81C00000E00000FF
+81C00000E00000FFC1C00000E000007FE1C00000E000003FF1C00000E000001FF9C00000
+E000000FFDC00000E0000007FDC00000E0000007FFC00000E0000003FFC00000E0000001
+FFC00000E0000000FFC00000E00000007FC00000E00000003FC00000E00000003FC00000
+E00000001FC00000E00000000FC00001F000000007C000FFFFE0000003C000FFFFE00000
+01C000FFFFE0000001C0003A317EB03F>78 D<FFFFFFFFE000FFFFFFFFFE00FFFFFFFFFF
+8000FF8000FFE000FF80003FF000FF80000FF800FF800007FC00FF800007FC00FF800003
+FE00FF800003FE00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF800003
+FF00FF800003FF00FF800003FF00FF800003FE00FF800003FE00FF800007FC00FF800007
+F800FF80000FF800FF80003FE000FF8000FFC000FFFFFFFF0000FFFFFFF80000FF800000
+0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000
+0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000
+0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000
+0000FF80000000FFFFFF800000FFFFFF800000FFFFFF80000030317EB037>80
+D<FFFFFFFF80000000FFFFFFFFF8000000FFFFFFFFFE00000000FF8003FF80000000FF80
+007FE0000000FF80001FF0000000FF80000FF8000000FF80000FF8000000FF80000FFC00
+0000FF800007FC000000FF800007FE000000FF800007FE000000FF800007FE000000FF80
+0007FE000000FF800007FE000000FF800007FE000000FF800007FC000000FF80000FFC00
+0000FF80000FF8000000FF80001FF0000000FF80003FE0000000FF80007FC0000000FF80
+03FF00000000FFFFFFF800000000FFFFFFE000000000FF8007F800000000FF8001FC0000
+0000FF8000FE00000000FF80007F00000000FF80007F80000000FF80003FC0000000FF80
+003FC0000000FF80003FE0000000FF80003FE0000000FF80003FE0000000FF80003FE000
+0000FF80003FE0000000FF80003FF0000000FF80003FF0000000FF80003FF0000000FF80
+003FF0000000FF80003FF0038000FF80003FF8038000FF80001FF8038000FF80001FF803
+0000FF80000FFC0700FFFFFF8003FE0E00FFFFFF8001FFFC00FFFFFF80001FF00039317E
+B03C>82 D<7FFFFFFFFFFF007FFFFFFFFFFF007FFFFFFFFFFF007FC00FF801FF007E000F
+F8003F007C000FF8001F0078000FF8000F0078000FF8000F0070000FF8000700F0000FF8
+000780F0000FF8000780F0000FF8000780E0000FF8000380E0000FF8000380E0000FF800
+0380E0000FF8000380E0000FF800038000000FF800000000000FF800000000000FF80000
+0000000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000
+00000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000
+000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000000
+0FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000F
+F800000000000FF800000000000FF800000000000FF800000000000FF8000000007FFFFF
+FF0000007FFFFFFF0000007FFFFFFF000031307DAF38>84 D<FFFFFF8003FFFF80FFFFFF
+8003FFFF80FFFFFF8003FFFF8000FF80000007C00000FF80000003800000FF8000000380
+0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80
+000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380
+0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80
+000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380
+0000FF80000003800000FF80000003800000FF80000003800000FF80000003800000FF80
+000003800000FF80000003800000FF80000003800000FF80000003800000FF8000000380
+0000FF80000003800000FF80000003800000FF800000038000007F800000038000007F80
+0000070000007FC00000070000003FC000000E0000003FC000000E0000001FE000001C00
+00000FF000003800000007F800007000000003FC0001E000000000FF801FC0000000003F
+FFFF80000000000FFFFE000000000000FFE000000039317EB03E>I<FFFFFC0000FFFFFF
+FFFC0000FFFFFFFFFC0000FFFF03FF00000003C001FF000000038001FF800000078000FF
+800000070000FFC000000700007FC000000E00007FC000000E00007FE000001E00003FE0
+00001C00003FF000003C00001FF000003800001FF800003800000FF800007000000FFC00
+0070000007FC0000E0000007FC0000E0000007FE0001E0000003FE0001C0000003FF0003
+C0000001FF000380000001FF800380000000FF800700000000FF800700000000FFC00F00
+0000007FC00E000000007FE01E000000003FE01C000000003FF03C000000001FF0380000
+00001FF838000000000FF870000000000FF870000000000FFCF00000000007FCE0000000
+0007FFE00000000003FFC00000000003FFC00000000001FF800000000001FF8000000000
+00FF000000000000FF000000000000FF0000000000007E0000000000007E000000000000
+3C0000000000003C00000038317EB03D>I<00FFF0000003FFFF00000F803F80000FC00F
+E0001FE007F0001FE007F0001FE003F8000FC003FC00078003FC00000003FC00000003FC
+00000003FC00000003FC000000FFFC00001FFFFC0000FFE3FC0003FC03FC000FF003FC00
+1FC003FC003FC003FC007F8003FC007F8003FC00FF0003FC00FF0003FC00FF0003FC00FF
+0007FC00FF0007FC007F800DFC003FC01DFE001FE078FFF007FFE07FF000FF803FF02420
+7E9F27>97 D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F8000000
+07F800000007F800000007F800000007F800000007F800000007F800000007F800000007
+F800000007F800000007F800000007F800000007F800000007F83FE00007F8FFFC0007FB
+E07F0007FF001F8007FE000FC007FC000FE007F80007F007F80007F807F80007F807F800
+03FC07F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F80003FE07F80003
+FE07F80003FE07F80003FE07F80003FE07F80003FC07F80003FC07F80003FC07F80007F8
+07F80007F807F80007F007FC000FE007FE000FC007E7003F8007C3C0FE000780FFF80007
+003FC00027327EB12D>I<000FFF00007FFFC001FC01F003F003F007E007F80FE007F81F
+C007F83FC003F03FC001E07F8000007F8000007F800000FF800000FF800000FF800000FF
+800000FF800000FF800000FF800000FF8000007F8000007F8000007F8000003FC0001C3F
+C0001C1FC000380FE0003807E0007003F001E001FC07C0007FFF00000FF8001E207D9F24
+>I<0000000FC0000007FFC0000007FFC0000007FFC00000007FC00000003FC00000003F
+C00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0
+0000003FC00000003FC00000003FC00000003FC00007F83FC0003FFF3FC000FE07BFC003
+F801FFC007E0007FC00FE0007FC01FC0003FC03FC0003FC03FC0003FC07F80003FC07F80
+003FC07F80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF8000
+3FC0FF80003FC0FF80003FC07F80003FC07F80003FC07F80003FC03FC0003FC03FC0003F
+C01FC0003FC00FE0007FC007E000FFC003F003FFE001FC0F3FFE007FFE3FFE000FF03FFE
+27327DB12D>I<000FFC00007FFF8001FC0FC003F003E007E001F00FE001F81FC000FC3F
+C000FE3FC000FE7F80007E7F80007F7F80007FFF80007FFF80007FFFFFFFFFFFFFFFFFFF
+800000FF800000FF800000FF8000007F8000007F8000007F8000003FC000071FC000071F
+C0000E0FE0000E07F0001C03F8007800FE03E0003FFFC00007FE0020207E9F25>I<0001
+FE00000FFF80001FC3C0007F07E000FE0FF001FE0FF001FC0FF003FC0FF003FC07E003FC
+018003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000FFFF
+FC00FFFFFC00FFFFFC0003FC000003FC000003FC000003FC000003FC000003FC000003FC
+000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC
+000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC
+000003FC00007FFFF0007FFFF0007FFFF0001C327EB119>I<001FF007C000FFFE3FE001
+F83F79F007E00FC3F00FE00FE1F00FC007E0E01FC007F0001FC007F0003FC007F8003FC0
+07F8003FC007F8003FC007F8003FC007F8001FC007F0001FC007F0000FC007E0000FE00F
+E00007E00FC00003F83F000006FFFE00000E1FF000000E000000001E000000001E000000
+001F000000001F800000001FFFFF80000FFFFFF0000FFFFFFC0007FFFFFE0003FFFFFF00
+03FFFFFF800FFFFFFFC03F00007FC07E00001FE07C00000FE0FC000007E0FC000007E0FC
+000007E0FC000007E07E00000FC03E00000F803F00001F800FC0007E0007F803FC0001FF
+FFF000001FFF0000242F7E9F28>I<01F8000000FFF8000000FFF8000000FFF80000000F
+F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8
+00000007F800000007F800000007F800000007F800000007F800000007F800000007F807
+F80007F83FFE0007F8783F0007F8C03F8007F9801FC007FB001FC007FE001FE007FC001F
+E007FC001FE007FC001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0
+07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007
+F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFF
+C3FFFFFFFFC3FFFFFFFFC3FFFF28327DB12D>I<03C00007E0000FF0001FF8001FF8001F
+F8001FF8000FF00007E00003C00000000000000000000000000000000000000000000000
+000000000001F8007FF8007FF8007FF80007F80007F80007F80007F80007F80007F80007
+F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007
+F80007F80007F80007F80007F80007F80007F800FFFF80FFFF80FFFF8011337DB217>I<
+01F800FFF800FFF800FFF8000FF80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800FFFFC0
+FFFFC0FFFFC012327DB117>108 D<03F007F8001FE000FFF03FFE00FFF800FFF0783F01
+E0FC00FFF0C03F8300FE000FF1801FC6007F0007F3001FCC007F0007F6001FF8007F8007
+FC001FF0007F8007FC001FF0007F8007FC001FF0007F8007F8001FE0007F8007F8001FE0
+007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007
+F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0
+007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007
+F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F80FFFFC3FFFF
+0FFFFCFFFFC3FFFF0FFFFCFFFFC3FFFF0FFFFC3E207D9F43>I<03F007F800FFF03FFE00
+FFF0783F00FFF0C03F800FF1801FC007F3001FC007F6001FE007FC001FE007FC001FE007
+FC001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8
+001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F800
+1FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FF
+FFFFFFC3FFFF28207D9F2D>I<0007FC0000007FFFC00001FC07F00003F001F80007E000
+FC000FC0007E001FC0007F003FC0007F803F80003F807F80003FC07F80003FC07F80003F
+C0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0
+FF80003FE07F80003FC07F80003FC07F80003FC03FC0007F803FC0007F801FC0007F000F
+E000FE0007E000FC0003F803F80001FE0FF000007FFFC0000007FC000023207E9F28>I<
+01F83FE000FFF8FFFC00FFFBE07F00FFFF003F8007FE001FC007FC000FE007F8000FF007
+F80007F807F80007F807F80007FC07F80003FC07F80003FC07F80003FE07F80003FE07F8
+0003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FC07F800
+07FC07F80007FC07F80007F807F80007F807F8000FF007FC000FE007FE001FC007FF003F
+8007FBC0FE0007F8FFF80007F83FC00007F800000007F800000007F800000007F8000000
+07F800000007F800000007F800000007F800000007F800000007F800000007F8000000FF
+FFC00000FFFFC00000FFFFC00000272E7E9F2D>I<03F03F00FFF07FC0FFF1C3E0FFF187
+E00FF30FF007F60FF007F60FF007FC07E007FC03C007FC000007FC000007F8000007F800
+0007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F800
+0007F8000007F8000007F8000007F8000007F8000007F8000007F80000FFFFE000FFFFE0
+00FFFFE0001C207E9F21>114 D<01FF860007FFFE001F00FE003C003E0078001E007800
+0E00F8000E00F8000E00F8000E00FC000000FF800000FFFC00007FFFC0003FFFF0003FFF
+F8001FFFFC0007FFFE0001FFFF00003FFF000000FF8000003F8060001F80E0000F80E000
+0F80F0000F80F0000F00F8000F00FC001E00FE001C00FF807800F3FFF000C07F80001920
+7D9F20>I<001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C00
+00007C0000007C000000FC000001FC000003FC000007FC00001FFFFE00FFFFFE00FFFFFE
+0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00
+0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC038003FC03
+8003FC038003FC038003FC038003FC038003FC038001FC038001FC070000FE0700007F0E
+00003FFC000007F000192E7FAD1F>I<01F80007E0FFF803FFE0FFF803FFE0FFF803FFE0
+0FF8003FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007
+F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8
+001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8003FE007F800
+3FE003F8007FE003F8007FE001FC00DFF000FE039FFF007FFF1FFF000FFC1FFF28207D9F
+2D>I<FFFF1FFFE03FF8FFFF1FFFE03FF8FFFF1FFFE03FF80FF000FE0007800FF800FE00
+038007F800FF00070007F8007F00070007FC007F000F0003FC00FF800E0003FC00FF800E
+0001FE01FFC01C0001FE01DFC01C0001FF01DFC03C0000FF038FE0380000FF038FE03800
+007F878FF07000007F8707F07000007FC707F0F000003FCF07F8E000003FCE03F8E00000
+1FFE03F9C000001FFC01FDC000001FFC01FFC000000FFC01FF8000000FF800FF8000000F
+F800FF80000007F0007F00000007F0007F00000003F0007E00000003E0003E00000003E0
+003E00000001C0001C000035207E9F3A>119 D<7FFF807FFC7FFF807FFC7FFF807FFC03
+FC000F0001FE001E0000FF003C0000FF803800007FC07800003FC0F000001FE1E000000F
+F3C000000FFF80000007FF00000003FE00000001FE00000000FF00000000FF80000000FF
+C0000001FFC0000003DFE00000078FF00000078FF800000F07FC00001E03FE00003C01FE
+00007800FF0000F000FF8001E0007FC003E0003FE0FFFC01FFFFFFFC01FFFFFFFC01FFFF
+28207F9F2B>I E /Fr 1 14 df<0000FF00000007FFE000001F00F8000078001E0000E0
+000700018000018003000000C006000000600C000000300C000000301800000018300000
+000C300000000C6000000006600000000660000000066000000006C000000003C0000000
+03C000000003C000000003C000000003C000000003C000000003C000000003C000000003
+6000000006600000000660000000066000000006300000000C300000000C18000000180C
+000000300C00000030060000006003000000C0018000018000E00007000078001E00001F
+00F8000007FFE0000000FF0000282B7EA02D>13 D E /Fs 55 122
+df<0006000C00180038007000E001E003C003C0078007800F800F001F001F003E003E00
+3E007E007E007E007C007C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00
+FC00FC007C007C007E007E007E003E003E003E001F001F000F000F800780078003C003C0
+01E000E0007000380018000C00060F3C7AAC1A>40 D<3C007F00FF80FF80FFC0FFC0FFC0
+7FC03EC000C000C00180018001800300030006000E001C00380010000A157B8813>44
+D<1C007F007F00FF80FF80FF807F007F001C0009097B8813>46 D<000E00001E00007E00
+07FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
+00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
+00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00FFFFFEFFFFFEFFFFFE
+17277BA622>49 D<00FF800007FFF0000FFFFC001E03FE003800FF807C003F80FE003FC0
+FF001FC0FF001FE0FF000FE0FF000FE07E000FE03C001FE000001FE000001FC000001FC0
+00003F8000003F0000007E000000FC000000F8000001F0000003E00000078000000F0000
+001E0000003C00E0007000E000E000E001C001C0038001C0060001C00FFFFFC01FFFFFC0
+3FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007
+FFFC000F81FE001F007F003F807F003F803F803F803F803F803F801F803F801F003F8000
+007F0000007F0000007E000000FC000001F8000007F00000FFC00000FFC0000001F80000
+007E0000003F0000003F8000001FC000001FC000001FE000001FE03C001FE07E001FE0FF
+001FE0FF001FE0FF001FC0FF003FC0FE003F807C007F003F01FE001FFFFC0007FFF00000
+FF80001B277DA622>I<00000F0000000F0000001F0000003F0000007F000000FF000001
+FF000001FF000003BF0000073F00000E3F00001C3F00003C3F0000383F0000703F0000E0
+3F0001C03F0003803F0007803F0007003F000E003F001C003F0038003F0070003F00F000
+3F00FFFFFFF8FFFFFFF8FFFFFFF800007F0000007F0000007F0000007F0000007F000000
+7F0000007F0000007F00001FFFF8001FFFF8001FFFF81D277EA622>I<180003001F801F
+001FFFFE001FFFFC001FFFF8001FFFF0001FFFC0001FFF00001C0000001C0000001C0000
+001C0000001C0000001C0000001C0000001C7FC0001DFFF8001F80FC001E003F0008003F
+0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001F
+E0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFFC0003FFF0
+0000FF80001B277DA622>I<380000003E0000003FFFFFF03FFFFFF03FFFFFF07FFFFFE0
+7FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E0007000E000E000
+0001C0000001C000000380000007800000070000000F0000001F0000001E0000003E0000
+003E0000007E0000007C0000007C000000FC000000FC000000FC000000FC000001FC0000
+01FC000001FC000001FC000001FC000001FC000001FC000000F80000007000001C297CA8
+22>55 D<007F800001FFF00007FFF8000FC0FC001F803E003F001F007E001F807E001F80
+7E000F80FE000FC0FE000FC0FE000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0
+7E001FE07E001FE03F003FE01F002FE00F80CFE007FF8FE001FF0FE000080FE000000FC0
+00000FC000000FC000001F803E001F807F001F807F003F007F003E007F007E007E00FC00
+3E03F8001FFFE0000FFF800001FE00001B277DA622>57 D<000007800000000007800000
+00000FC0000000000FC0000000000FC0000000001FE0000000001FE0000000003FF00000
+00003FF0000000003FF00000000077F80000000077F800000000F7FC00000000E3FC0000
+0000E3FC00000001C1FE00000001C1FE00000003C1FF0000000380FF0000000380FF0000
+0007007F80000007007F8000000F007FC000000E003FC000000E003FC000001C001FE000
+001C001FE000003FFFFFF000003FFFFFF000003FFFFFF00000700007F80000700007F800
+00F00007FC0000E00003FC0001E00003FE0001C00001FE0001C00001FE0003C00001FF00
+FFFE003FFFFCFFFE003FFFFCFFFE003FFFFC2E297EA833>65 D<FFFFFFF800FFFFFFFF00
+FFFFFFFFC003F8001FE003F8000FF003F80007F803F80003F803F80003FC03F80003FC03
+F80001FC03F80001FC03F80001FC03F80003FC03F80003F803F80003F803F80007F003F8
+000FF003F8001FC003F800FF8003FFFFFE0003FFFFFFC003F8000FF003F80003F803F800
+01FC03F80001FE03F80000FE03F80000FE03F80000FF03F80000FF03F80000FF03F80000
+FF03F80000FF03F80000FF03F80000FE03F80001FE03F80003FC03F80007FC03F8001FF8
+FFFFFFFFE0FFFFFFFFC0FFFFFFFE0028297DA830>I<00007FE0030007FFFC07001FFFFF
+0F007FF00F9F00FF0001FF01FC0000FF03F800007F07F000003F0FE000001F1FC000001F
+1FC000000F3F8000000F3F800000077F800000077F800000077F00000000FF00000000FF
+00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00
+0000007F000000007F800000007F800000073F800000073F800000071FC00000071FC000
+000E0FE000000E07F000001C03F800003C01FC00007800FF0001F0007FF007C0001FFFFF
+800007FFFE0000007FF00028297CA831>I<FFFFFFFC0000FFFFFFFF8000FFFFFFFFE000
+03FC001FF80003FC0003FC0003FC0000FE0003FC00007F0003FC00003F8003FC00001FC0
+03FC00001FC003FC00000FE003FC00000FE003FC000007F003FC000007F003FC000007F0
+03FC000007F003FC000007F803FC000007F803FC000007F803FC000007F803FC000007F8
+03FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803FC000007F0
+03FC000007F003FC000007F003FC00000FE003FC00000FE003FC00000FC003FC00001FC0
+03FC00003F8003FC00007F0003FC0000FF0003FC0003FC0003FC001FF800FFFFFFFFF000
+FFFFFFFF8000FFFFFFFC00002D297EA834>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC
+001FE003FC0007F003FC0001F003FC0001F003FC0000F003FC00007003FC00007003FC00
+007003FC01C07803FC01C03803FC01C03803FC01C03803FC03C00003FC03C00003FC0FC0
+0003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00E
+03FC01C00E03FC01C00E03FC01C01C03FC00001C03FC00001C03FC00001C03FC00003C03
+FC00003803FC00007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFF
+FFFFF0FFFFFFFFF027297EA82C>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003
+FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E003FC0000E003FC
+0000F003FC01C07003FC01C07003FC01C07003FC01C00003FC03C00003FC03C00003FC0F
+C00003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C0
+0003FC01C00003FC01C00003FC01C00003FC00000003FC00000003FC00000003FC000000
+03FC00000003FC00000003FC00000003FC00000003FC000000FFFFFC0000FFFFFC0000FF
+FFFC000024297EA82A>I<00007FE003000007FFFC0700001FFFFF0F00007FF00F9F0000
+FF0001FF0001FC0000FF0003F800007F0007F000003F000FE000001F001FC000001F001F
+C000000F003F8000000F003F80000007007F80000007007F80000007007F0000000000FF
+0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF
+0000000000FF0000000000FF0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F
+800000FF003F800000FF001FC00000FF001FC00000FF000FE00000FF0007F00000FF0003
+F80000FF0001FC0000FF0000FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000
+007FF003002D297CA835>I<FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF03FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FFFFFFFFC003FFFFFFFFC003FFFFFFFFC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0
+03FC00003FC003FC00003FC003FC00003FC003FC00003FC0FFFFF00FFFFFFFFFF00FFFFF
+FFFFF00FFFFF30297EA835>I<FFFFF0FFFFF0FFFFF003FC0003FC0003FC0003FC0003FC
+0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC
+0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC
+0003FC0003FC0003FC0003FC0003FC0003FC00FFFFF0FFFFF0FFFFF014297EA819>I<FF
+FFF000FFFEFFFFF000FFFEFFFFF000FFFE03FC00000F0003FC00001E0003FC00003C0003
+FC0000780003FC0000E00003FC0003C00003FC0007800003FC000F000003FC001E000003
+FC003C000003FC00F0000003FC01E0000003FC03C0000003FC07C0000003FC0FC0000003
+FC1FE0000003FC7FF0000003FCFFF8000003FDE7F8000003FFC3FC000003FF83FE000003
+FE01FF000003FC00FF000003FC007F800003FC007FC00003FC003FE00003FC001FE00003
+FC000FF00003FC000FF80003FC0007F80003FC0003FC0003FC0001FE0003FC0001FF0003
+FC0000FF0003FC00007F80FFFFF00FFFFEFFFFF00FFFFEFFFFF00FFFFE2F297EA835>75
+D<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003FC000000
+03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003
+FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
+00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001C003FC00
+03C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003FC001F
+8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297EA828>I<FFFE00
+00003FFF80FFFE0000003FFF80FFFF0000007FFF8003FF0000007FE00003FF0000007FE0
+0003BF800000EFE00003BF800000EFE000039FC00001CFE000039FC00001CFE000038FE0
+00038FE000038FE000038FE000038FE000038FE0000387F000070FE0000387F000070FE0
+000383F8000E0FE0000383F8000E0FE0000381FC001C0FE0000381FC001C0FE0000381FC
+001C0FE0000380FE00380FE0000380FE00380FE00003807F00700FE00003807F00700FE0
+0003803F80E00FE00003803F80E00FE00003803F80E00FE00003801FC1C00FE00003801F
+C1C00FE00003800FE3800FE00003800FE3800FE000038007F7000FE000038007F7000FE0
+00038007F7000FE000038003FE000FE000038003FE000FE000038001FC000FE000038001
+FC000FE000038000F8000FE000FFFE00F803FFFF80FFFE00F803FFFF80FFFE007003FFFF
+8039297DA840>I<FFFC00007FFFFFFE00007FFFFFFF00007FFF03FF800001C003FFC000
+01C003BFE00001C0039FE00001C0039FF00001C0038FF80001C00387FC0001C00383FE00
+01C00381FF0001C00380FF8001C003807F8001C003807FC001C003803FE001C003801FF0
+01C003800FF801C0038007FC01C0038003FC01C0038003FE01C0038001FF01C0038000FF
+81C00380007FC1C00380003FE1C00380001FF1C00380000FF1C00380000FF9C003800007
+FDC003800003FFC003800001FFC003800000FFC0038000007FC0038000007FC003800000
+3FC0038000001FC0038000000FC00380000007C0FFFE000003C0FFFE000001C0FFFE0000
+01C030297EA835>I<0000FFC00000000FFFFC0000003F807F000000FE001FC00001F800
+07E00003F00003F00007E00001F8000FE00001FC001FC00000FE001FC00000FE003F8000
+007F003F8000007F007F8000007F807F0000003F807F0000003F807F0000003F80FF0000
+003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000
+003FC0FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000
+007F803F8000007F003F8000007F001FC00000FE001FC00000FE000FE00001FC0007F000
+03F80003F80007F00001FC000FE00000FE001FC000003FC0FF0000000FFFFC00000000FF
+C000002A297CA833>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003FC003FE003FC0007F003
+FC0003F803FC0003FC03FC0001FC03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC
+0001FE03FC0001FE03FC0001FE03FC0001FC03FC0003FC03FC0003F803FC0007F003FC00
+3FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC0000
+0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000
+03FC00000003FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF0000027
+297EA82E>I<0000FFC00000000FFFFC0000003FC0FF000000FE001FC00001FC000FE000
+03F00003F00007F00003F8000FE00001FC001FC00000FE001FC00000FE003F8000007F00
+3F8000007F007F8000007F807F8000007F807F0000003F807F0000003F80FF0000003FC0
+FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0
+FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000007F80
+3F8000007F003F8000007F001FC00000FE001FC03E00FE000FE07F81FC0007E0C1C1F800
+03F18063F00001F98067E00000FF803FC000003FC07F0000000FFFFC00000000FFF800C0
+0000003C00C00000001E00C00000001E01C00000001F83C00000001FFFC00000000FFF80
+0000000FFF800000000FFF0000000007FF0000000003FE0000000001FC0000000000F800
+2A357CA833>I<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC003FE00003FC000FF0
+0003FC0007F80003FC0003FC0003FC0001FC0003FC0001FE0003FC0001FE0003FC0001FE
+0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FC0003FC0003F80003FC0007F8
+0003FC000FE00003FC003FC00003FFFFFE000003FFFFFE000003FC00FF800003FC003FC0
+0003FC001FE00003FC000FF00003FC0007F80003FC0007F80003FC0007F80003FC0007F8
+0003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F8
+0E03FC0007F80E03FC0003F80E03FC0001FC1CFFFFF000FE1CFFFFF0007FF8FFFFF0000F
+E02F297EA832>I<00FF806003FFF0E00FFFF8E01F80FDE03F001FE03E0007E07C0003E0
+7C0003E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFC0000
+7FFFE0003FFFF8001FFFFE001FFFFF0007FFFF8003FFFFC000FFFFC0000FFFE000007FE0
+00001FF000000FF0000007F0E00003F0E00003F0E00003F0E00003F0F00003E0F00003E0
+F80007E0FC0007C0FF000F80FFE03F80E3FFFE00E1FFFC00C01FF0001C297CA825>I<7F
+FFFFFFFF807FFFFFFFFF807FFFFFFFFF807F807F807F807C007F800F8078007F80078078
+007F80078070007F800380F0007F8003C0F0007F8003C0E0007F8001C0E0007F8001C0E0
+007F8001C0E0007F8001C0E0007F8001C000007F80000000007F80000000007F80000000
+007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000
+007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000
+007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000
+007F80000000FFFFFFC00000FFFFFFC00000FFFFFFC0002A287EA72F>I<FFFFF000FFFE
+FFFFF000FFFEFFFFF000FFFE03FC0000038003FC0000038003FC0000038003FC00000380
+03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380
+03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380
+03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380
+03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC00000380
+01FC0000070001FE0000070000FE00000E00007F00000E00003F00003C00001FC0007800
+000FF003F0000007FFFFE0000000FFFF800000001FFC00002F297EA834>I<FFFFF0007F
+FFFFFFF0007FFFFFFFF0007FFF03FE000001C001FE0000038001FE0000038001FF000007
+8000FF0000070000FF80000F00007F80000E00007FC0000E00003FC0001C00003FC0001C
+00003FE0003C00001FE0003800001FF0007800000FF0007000000FF80070000007F800E0
+000007F800E0000003FC01C0000003FC01C0000003FE03C0000001FE0380000001FF0780
+000000FF0700000000FF87000000007F8E000000007F8E000000007FDE000000003FDC00
+0000003FFC000000001FF8000000001FF8000000000FF0000000000FF0000000000FF000
+00000007E00000000007E00000000003C00000000003C0000030297FA833>I<FFFFE07F
+FFE01FFFC0FFFFE07FFFE01FFFC0FFFFE07FFFE01FFFC003FC0003FC0000700003FC0003
+FC0000700003FE0001FE0000700001FE0001FE0000E00001FE0001FE0000E00001FF0001
+FF0001E00000FF0001FF0001C00000FF0003FF8001C00000FF8003FF8003C000007F8003
+FF80038000007F8007FFC0038000003FC0073FC0070000003FC0073FC0070000003FE00E
+1FE00F0000001FE00E1FE00E0000001FE00E1FF00E0000001FF01C0FF01E0000000FF01C
+0FF01C0000000FF03C0FF81C00000007F83807F83800000007F83807F83800000007F878
+07FC3800000003FC7003FC7000000003FC7003FC7000000003FEE001FEF000000001FEE0
+01FEE000000001FFE001FFE000000001FFC000FFE000000000FFC000FFC000000000FFC0
+00FFC0000000007F80007F80000000007F80007F80000000007F80007F80000000003F00
+003F00000000003F00003F00000000003E00001F00000000001E00001E00000000001E00
+001E00000042297FA845>I<FFFFF0003FFFFFFFF0003FFFFFFFF0003FFF03FE000003C0
+01FF0000038000FF8000070000FF80000F00007FC0000E00007FE0001C00003FE0003C00
+001FF0003800001FF8007000000FF800F0000007FC00E0000007FE01C0000003FE03C000
+0001FF0380000001FF8700000000FF8F000000007FCE000000007FFC000000003FFC0000
+00001FF8000000001FF0000000000FF0000000000FF0000000000FF0000000000FF00000
+00000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000
+00000FF0000000000FF0000000000FF0000000000FF000000003FFFFC0000003FFFFC000
+0003FFFFC00030297FA833>89 D<03FF80000FFFF0001F01FC003F80FE003F807F003F80
+3F003F803F801F003F8000003F8000003F8000003F8000003F80003FFF8001FC3F800FE0
+3F801F803F803F003F807E003F80FC003F80FC003F80FC003F80FC003F80FC005F807E00
+DF803F839FFC1FFE0FFC03FC03FC1E1B7E9A21>97 D<FFE00000FFE00000FFE000000FE0
+00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0
+00000FE000000FE000000FE1FE000FEFFF800FFE07E00FF803F00FF001F80FE000FC0FE0
+00FC0FE0007E0FE0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0
+007F0FE0007F0FE0007E0FE0007E0FE0007E0FE000FC0FE000FC0FF001F80FF803F00F9C
+0FE00F0FFF800E01FC00202A7EA925>I<003FF00001FFFC0003F03E000FC07F001F807F
+003F007F003F007F007F003E007E0000007E000000FE000000FE000000FE000000FE0000
+00FE000000FE000000FE0000007E0000007E0000007F0000003F0003803F8003801F8007
+000FE00E0003F83C0001FFF800003FC000191B7E9A1E>I<00007FF000007FF000007FF0
+000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
+000007F0000007F0000007F0003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F0
+3F0007F07E0007F07E0007F07E0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0
+FE0007F0FE0007F0FE0007F07E0007F07E0007F03F0007F03F0007F01F800FF00FC01FF0
+07E07FFF01FFE7FF007F87FF202A7EA925>I<003FC00001FFF00003E07C000F803E001F
+801F001F001F003F000F807E000F807E000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FF
+FFFFC0FE000000FE000000FE0000007E0000007E0000007F0000003F0001C01F0001C00F
+80038007C0070003F01E0000FFFC00003FE0001A1B7E9A1F>I<0007F8003FFC007E3E01
+FC7F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FF
+FFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007
+F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007F
+FF807FFF807FFF80182A7EA915>I<00FF80F003FFE3F80FC1FE1C1F007C7C3F007E7C3E
+003E107E003F007E003F007E003F007E003F007E003F007E003F003E003E003F007E001F
+007C000FC1F8000BFFE00018FF80001800000038000000380000003C0000003FFFF8003F
+FFFF001FFFFFC00FFFFFE007FFFFF01FFFFFF03C0007F07C0001F8F80000F8F80000F8F8
+0000F8F80000F87C0001F07C0001F03F0007E00FC01F8007FFFF00007FF0001E287E9A22
+>I<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000000FE0
+00000FE000000FE000000FE000000FE000000FE000000FE000000FE07E000FE1FF800FE3
+0FC00FE40FE00FE807E00FF807F00FF007F00FF007F00FE007F00FE007F00FE007F00FE0
+07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0
+07F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA925>I<07000F
+801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0FFE00F
+E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
+E00FE00FE0FFFEFFFEFFFE0F2B7EAA12>I<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7EA912>
+108 D<FFC07F001FC000FFC1FFC07FF000FFC307E0C1F8000FC407F101FC000FC803F200
+FC000FD803FE00FE000FD003FC00FE000FD003FC00FE000FE003F800FE000FE003F800FE
+000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE00
+0FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000F
+E003F800FE000FE003F800FE000FE003F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE
+3FFF8FFFE0FFFE3FFF8FFFE0331B7D9A38>I<FFC07E00FFC1FF80FFC30FC00FC40FE00F
+C807E00FD807F00FD007F00FD007F00FE007F00FE007F00FE007F00FE007F00FE007F00F
+E007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F
+E007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF201B7D9A25>I<003FE00001FFFC0003F0
+7E000FC01F801F800FC03F0007E03F0007E07E0003F07E0003F07E0003F0FE0003F8FE00
+03F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F03F00
+07E03F0007E01F800FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE
+00FFEFFF80FFFE0FE00FF803F00FF001F80FE001FC0FE000FC0FE000FE0FE000FE0FE000
+7F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007E0FE000
+FE0FE000FE0FE000FC0FE001FC0FF001F80FF807F00FFC0FE00FEFFF800FE1FC000FE000
+000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000FFFE00
+00FFFE0000FFFE000020277E9A25>I<FFC1F0FFC7FCFFC63E0FCC7F0FD87F0FD07F0FD0
+7F0FF03E0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0
+000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00181B7F9A1B>114
+D<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FE0000FFE0007FFF007FFF
+C03FFFE01FFFF007FFF800FFF80007FC0000FCE0007CE0003CF0003CF00038F80038FC00
+70FF01E0E7FFC0C1FF00161B7E9A1B>I<00E00000E00000E00000E00001E00001E00001
+E00003E00003E00007E0000FE0001FFFE0FFFFE0FFFFE00FE0000FE0000FE0000FE0000F
+E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0700FE0700FE0700F
+E0700FE0700FE0700FE07007F0E003F0C001FF80007F0014267FA51A>I<FFE07FF0FFE0
+7FF0FFE07FF00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0
+07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE0
+07F00FE007F00FE00FF00FE00FF007E017F003F067FF01FFC7FF007F87FF201B7D9A25>
+I<FFFC03FFFFFC03FFFFFC03FF0FF000F007F000E007F800E003F801C003F801C003FC03
+C001FC038001FE078000FE070000FF0700007F0E00007F0E00007F9E00003F9C00003FFC
+00001FF800001FF800000FF000000FF000000FF0000007E0000007E0000003C0000003C0
+00201B7F9A23>I<FFFC7FFC1FFCFFFC7FFC1FFCFFFC7FFC1FFC0FE00FE001C007F007E0
+038007F007E0038007F807F0078003F807F0070003F80FF8070003FC0FF80F0001FC0FF8
+0E0001FC1FFC0E0000FE1CFC1C0000FE1CFE1C0000FF387E3C00007F387E3800007F787F
+3800003FF03F7000003FF03FF000003FE01FF000001FE01FE000001FE01FE000000FC00F
+C000000FC00FC000000F8007C0000007800780000007800780002E1B7F9A31>I<FFFC1F
+FEFFFC1FFEFFFC1FFE07F0038003F8078003FC0F0001FE1E0000FE3C00007F3800007FF8
+00003FF000001FE000000FE000000FF0000007F800000FF800001FFC00003CFE000038FF
+0000787F0000F03F8001E01FC003C01FE003800FE0FFF03FFFFFF03FFFFFF03FFF201B7F
+9A23>I<FFFC03FFFFFC03FFFFFC03FF0FF000F007F000E007F800E003F801C003F801C0
+03FC03C001FC038001FE078000FE070000FF0700007F0E00007F0E00007F9E00003F9C00
+003FFC00001FF800001FF800000FF000000FF000000FF0000007E0000007E0000003C000
+0003C000000380000003800000078000380700007C0F0000FE0E0000FE1E0000FE1C0000
+FE38000074F000003FE000000F80000020277F9A23>I E /Ft 90
+127 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F870000000000070F8F8F870051C779B
+18>33 D<4010E038F078E038E038E038E038E038E038E038E038E038E03860300D0E7B9C
+18>I<030600078F00078F00078F00078F00078F00078F007FFFC0FFFFE0FFFFE07FFFC0
+0F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07FFFC01E3C001E3C00
+1E3C001E3C001E3C001E3C000C1800131C7E9B18>I<00C00001C00001C00001C00003F0
+000FFC003FFE007DCF0071C700E1C380E1C780E1C780E1C780F1C00079C0003FC0001FE0
+000FF80001FC0001DE0001CF0001C70061C380F1C380F1C380E1C380E1C70071C70079DE
+003FFE001FF80007E00001C00001C00001C00000C00011247D9F18>I<3803007C07807C
+0780EE0F80EE0F00EE0F00EE1F00EE1E00EE1E00EE3E007C3C007C3C00387C0000780000
+780000F80000F00001F00001E00001E00003E00003C00003C00007C0000783800787C00F
+87C00F0EE00F0EE01F0EE01E0EE01E0EE03E0EE03C07C03C07C018038013247E9F18>I<
+01C00007E0000FF0000E70001C38001C38001C38001C38001C73F81CF3F81CE3F80FC1C0
+0FC3800F83800F03801F07003F87007B8E0071CE00E1FC00E0FC00E07C00E07870E07870
+70FE707FFFE03FC7E00F03C0151C7F9B18>I<387C7C7E3E0E0E0E1C1C38F8F0C0070E78
+9B18>I<007000F001E003C007800F001E001C00380038007000700070007000E000E000
+E000E000E000E000E000E0007000700070007000380038001C001E000F00078003C001F0
+00F000700C24799F18>I<6000F00078003C001E000F000780038001C001C000E000E000
+E000E00070007000700070007000700070007000E000E000E000E001C001C0038007800F
+001E003C007800F00060000C247C9F18>I<01C00001C00001C00001C00041C100F1C780
+FDDF807FFF001FFC0007F00007F0001FFC007FFF00FDDF80F1C78041C10001C00001C000
+01C00001C00011147D9718>I<00600000F00000F00000F00000F00000F00000F00000F0
+007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F0000060
+0013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFFC0FFFFE0FFFFE07F
+FFC013047E8F18>I<3078FCFC78300606778518>I<000300000780000780000F80000F00
+001F00001E00001E00003E00003C00007C0000780000780000F80000F00001F00001E000
+03E00003C00003C00007C0000780000F80000F00000F00001F00001E00003E00003C0000
+3C00007C0000780000F80000F00000F0000060000011247D9F18>I<01F00007FC000FFE
+001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0E000E0E000E0E000
+E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C07001F1F000FFE0007FC
+0001F000131C7E9B18>I<01800380038007800F803F80FF80FB80438003800380038003
+800380038003800380038003800380038003800380038003807FFCFFFE7FFC0F1C7B9B18
+>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000E00000E00000E000
+01C00001C00003C0000780000F00001E00003C0000780000F00001E00007C0000F80001E
+00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<001F00003F0000770000770000E700
+01E70001C7000387000787000707000E07001E07003C0700380700780700F00700FFFFF8
+FFFFF8FFFFF8000700000700000700000700000700000700007FF0007FF0007FF0151C7F
+9B18>52 D<3FFF803FFF803FFF8038000038000038000038000038000038000038000038
+00003BF8003FFE003FFF003C07803003C00001C00000E00000E06000E0F000E0F000E0E0
+01C07003C07C0F803FFF001FFC0003F000131C7E9B18>I<007E0001FF0007FF800F83C0
+1E03C01C03C0380180380000700000700000E1F800E7FE00FFFF00FE0780F803C0F001C0
+F000E0E000E0F000E07000E07000E07000E03801C03C03C01E07800FFF0007FE0001F800
+131C7E9B18>I<E00000FFFFE0FFFFE0FFFFC0E00380E00700000F00001E00001C000038
+0000380000700000F00000E00000E00001C00001C00001C0000380000380000380000380
+00070000070000070000070000070000070000070000131D7E9C18>I<03F8000FFE001F
+FF003E0F803803807001C07001C07001C07001C03803803C07801FFF0007FC000FFE001F
+1F003C07807001C0F001E0E000E0E000E0E000E0E000E07001C07803C03E0F801FFF000F
+FE0003F800131C7E9B18>I<3078FCFC783000000000000000003078FCFC783006147793
+18>58 D<183C7E7E3C180000000000000000183C7E7E3E1E0E1C3C78F060071A789318>
+I<0000C00003E00007E0001FC0003F8000FE0001FC0007F0000FE0003F80007F0000FC00
+00FC00007F00003F80000FE00007F00001FC0000FE00003F80001FC00007E00003E00000
+C013187E9918>I<7FFFC0FFFFE0FFFFE07FFFC00000000000000000000000007FFFC0FF
+FFE0FFFFE07FFFC0130C7E9318>I<600000F80000FC00007F00003F80000FE00007F000
+01FC0000FE00003F80001FC00007E00007E0001FC0003F8000FE0001FC0007F0000FE000
+3F80007F0000FC0000F8000060000013187E9918>I<0FF0003FFC007FFF00700F00F003
+80F00380600780000F00003E00007C0001F00001E00003C00003C00003C00003C00003C0
+0003800000000000000000000000000000000003800007C00007C00007C000038000111C
+7D9B18>I<007C0001FE0007FF000F87801E03C03C1DC0387FC070FFE071E3E071C1E0E1
+C1E0E380E0E380E0E380E0E380E0E380E0E380E0E1C1C071C1C071E3C070FF80387F003C
+1C001E00E00F83E007FFC001FF80007E00131C7E9B18>I<00700000F80000F80000D800
+00D80001DC0001DC0001DC00018C00038E00038E00038E00038E00070700070700070700
+0707000707000FFF800FFF800FFF800E03801C01C01C01C01C01C07F07F0FF07F87F07F0
+151C7F9B18>I<7FFC00FFFF007FFF801C03C01C01C01C00E01C00E01C00E01C00E01C01
+E01C01C01C07C01FFF801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C00
+701C00F01C00E01C03E07FFFC0FFFF807FFE00141C7F9B18>I<00F8E003FEE007FFE00F
+07E01E03E03C01E03800E07000E07000E0700000E00000E00000E00000E00000E00000E0
+0000E00000E000007000007000E07000E03800E03C00E01E01C00F07C007FF8003FE0000
+F800131C7E9B18>I<7FF800FFFE007FFF001C0F801C03C01C03C01C01E01C00E01C00E0
+1C00F01C00701C00701C00701C00701C00701C00701C00701C00701C00F01C00E01C00E0
+1C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C7F9B18>I<FFFFF0FFFFF0FFFF
+F01C00701C00701C00701C00701C00001C00001C0E001C0E001C0E001FFE001FFE001FFE
+001C0E001C0E001C0E001C00001C00001C00381C00381C00381C00381C0038FFFFF8FFFF
+F8FFFFF8151C7F9B18>I<FFFFF8FFFFF8FFFFF81C00381C00381C00381C00381C00001C
+00001C07001C07001C07001FFF001FFF001FFF001C07001C07001C07001C00001C00001C
+00001C00001C00001C00001C0000FFC000FFC000FFC000151C7F9B18>I<01F1C003FDC0
+0FFFC01F0FC01C03C03803C03801C07001C07001C0700000E00000E00000E00000E00000
+E00000E00FF0E01FF0E00FF07001C07001C07003C03803C03803C01C07C01F0FC00FFFC0
+03FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01
+C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C01C01C01C01
+C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>I<7FFF00FF
+FF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
+C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007F
+FF00FFFF807FFF00111C7D9B18>I<01FFC001FFC001FFC0000E00000E00000E00000E00
+000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
+000E00000E00000E00F00E00F00E00F03C007FFC003FF0000FC000121C7D9B18>I<7F07
+F0FF87F87F07F01C03C01C07801C07001C0E001C1E001C3C001C38001C70001CF0001DF0
+001DF0001FB8001FB8001F1C001E1C001C0E001C0E001C07001C07001C03801C03801C01
+C07F03F0FF87F87F03F0151C7F9B18>I<FFC000FFC000FFC0001C00001C00001C00001C
+00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
+00001C00001C00E01C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE0131C7E9B18>I<
+FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B8EE03B8EE0398CE0398CE039DCE0
+39DCE039DCE038D8E038D8E038F8E03870E03870E03800E03800E03800E03800E03800E0
+3800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F01D81C01D81C01D81
+C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C39C01C39
+C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B18
+>I<0FFE003FFF807FFFC07803C07001C0F001E0E000E0E000E0E000E0E000E0E000E0E0
+00E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E070
+01C07C07C07FFFC03FFF800FFE00131C7E9B18>I<FFFE00FFFF80FFFFC01C03C01C01E0
+1C00E01C00701C00701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF801FFE00
+1C00001C00001C00001C00001C00001C00001C00001C0000FF8000FF8000FF8000141C7F
+9B18>I<0FFE003FFF807FFFC07803C07001C0F001E0E000E0E000E0E000E0E000E0E000
+E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E070E0E070E0F079
+E07039C0783FC07FFFC03FFF800FFE00000F000007800007800003C00001C00001C01322
+7E9B18>I<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C
+03801C0F801FFF001FFE001FFE001C0F001C07001C03801C03801C03801C03801C03801C
+039C1C039C1C039C7F01F8FF81F87F00F0161C7F9B18>I<03F1C01FFFC03FFFC07C0FC0
+7003C0E001C0E001C0E001C0E000007000007800003F00001FF00007FE0000FF00000F80
+0003C00001C00000E00000E06000E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F800
+131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E07038E070380070000070000070
+000070000070000070000070000070000070000070000070000070000070000070000070
+0000700000700000700007FF0007FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83FE1C
+00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C
+00701C00701C00701C00701C00701C00701C00700E00E00F01E00783C003FF8001FF0000
+7C00171C809B18>I<FE03F8FF07F8FE03F83C01E01C01C01C01C01C01C01E03C00E0380
+0E03800E03800E0380070700070700070700070700038E00038E00038E00038E00018C00
+01DC0001DC0001DC0000D80000F80000F800007000151C7F9B18>I<FE03F8FE03F8FE03
+F87000707000707000703800E03800E03800E03800E03800E038F8E039FCE039DCE039DC
+E019DCC019DCC019DCC0198CC0198CC01D8DC01D8DC01D8DC01D05C00D05800F07800F07
+800E0380151C7F9B18>I<7F0FE07F9FE07F0FE00E07000F0700070E00078E00039C0003
+DC0001F80001F80000F80000F00000700000F00000F80001FC0001DC00039E00038E0007
+0F000707000E07800E03801E03C07F07F0FF07F87F07F0151C7F9B18>I<FE03F8FF07F8
+FE03F81C01C01E03C00E03800F0780070700070700038E00038E0001DC0001DC0001DC00
+00F80000F80000700000700000700000700000700000700000700000700000700001FC00
+03FE0001FC00151C7F9B18>I<FFF8FFF8FFF8E000E000E000E000E000E000E000E000E0
+00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
+00E000E000E000FFF8FFF8FFF80D24779F18>91 D<600000F00000F00000F80000780000
+7C00003C00003C00003E00001E00001F00000F00000F00000F800007800007C00003C000
+03C00003E00001E00001F00000F00000F800007800007800007C00003C00003E00001E00
+001E00001F00000F00000F8000078000078000030011247D9F18>I<FFF8FFF8FFF80038
+003800380038003800380038003800380038003800380038003800380038003800380038
+00380038003800380038003800380038003800380038FFF8FFF8FFF80D247F9F18>I<7F
+FFC0FFFFE0FFFFE07FFFC013047E7F18>95 D<061E3E387070E0E0E0F8FC7C7C38070E78
+9E18>I<0FF0001FFC003FFE003C0F0018070000038000038000FF8007FF801FFF807F03
+80780380E00380E00380E00380F00780780F803FFFF81FFDF807F0F815147E9318>I<7E
+0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1E00F
+80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80E00F
+C1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001FFF803E0780380300700000
+700000E00000E00000E00000E00000E00000E000007000007001C03801C03E03C01FFF80
+07FF0001FC0012147D9318>I<001F80003F80001F800003800003800003800003800003
+8003E3800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380E003
+80E00380700780700780380F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F00007
+FC001FFE003E0F00380780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E0000070
+00007001C03801C03E07C01FFF8007FF0001F80012147D9318>I<001F80007FC000FFE0
+00E1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF007FFF00
+7FFF00131C7F9B18>I<01E1F007FFF80FFFF81E1E301C0E003807003807003807003807
+003807001C0E001E1E001FFC001FF80039E0003800001C00001FFE001FFFC03FFFE07801
+F0700070E00038E00038E00038E000387800F07E03F01FFFC00FFF8001FC00151F7F9318
+>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC00F
+C1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E
+00E00E00E07FC7FCFFE7FE7FC7FC171C809B18>I<038007C007C007C003800000000000
+0000007FC0FFC07FC001C001C001C001C001C001C001C001C001C001C001C001C001C001
+C0FFFFFFFFFFFF101D7C9C18>I<0038007C007C007C003800000000000000000FFC0FFC
+0FFC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
+001C001C001C001C001C6038F078FFF07FE03F800E277E9C18>I<7E0000FE00007E0000
+0E00000E00000E00000E00000E00000E3FF00E3FF00E3FF00E07800E0F000E1E000E3C00
+0E78000EF0000FF8000FFC000F9C000F0E000E0F000E07000E03800E03C07FC7F8FFC7F8
+7FC7F8151C7F9B18>I<FFC000FFC000FFC00001C00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C000FFFF80FFFF80FFFF80111C7D9B18>I<F9C1C0FFF7F0FF
+FFF03E3E383C3C383C3C3838383838383838383838383838383838383838383838383838
+3838383838383838FE3E3EFE7E7EFE3E3E1714809318>I<7E3E00FEFF807FFFC00FC1C0
+0F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0
+0E00E07FC7FCFFE7FE7FC7FC1714809318>I<01F0000FFE001FFF003E0F803803807001
+C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F801FFF
+000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00700E
+00380E00380E00380E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF800E
+3E000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000151E8093
+18>I<01F38007FB801FFF803E1F80380F80700780700780E00380E00380E00380E00380
+E00380E00380700780700780380F803C1F801FFF800FFB8003E380000380000380000380
+000380000380000380000380001FF0003FF8001FF0151E7E9318>I<FF0FC0FF3FE0FF7F
+F007F0F007E06007C0000780000780000700000700000700000700000700000700000700
+00070000070000FFFC00FFFE00FFFC0014147E9318>I<07F7003FFF007FFF00780F00E0
+0700E00700E007007C00007FE0001FFC0003FE00001F00600780E00380E00380F00380F8
+0F00FFFF00FFFC00E7F00011147D9318>I<0180000380000380000380000380007FFFC0
+FFFFC0FFFFC0038000038000038000038000038000038000038000038000038000038040
+0380E00380E00380E001C1C001FFC000FF80003E0013197F9818>I<7E07E0FE0FE07E07
+E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00
+E00E01E00F03E007FFFC03FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8FF01C01C00E
+03800E03800E0380070700070700070700078F00038E00038E00038E0001DC0001DC0001
+DC0000F80000F80000700015147F9318>I<FF07F8FF8FF8FF07F83800E03800E03800E0
+3800E01C01C01C71C01CF9C01CF9C01CD9C01DDDC00DDD800DDD800DDD800D8D800F8F80
+0F8F8007070015147F9318>I<7F8FF07F9FF07F8FF00F0700078E00039E0001DC0001F8
+0000F80000700000F00000F80001DC00039E00038E000707000E07807F8FF0FF8FF87F8F
+F015147F9318>I<7F8FF0FF8FF87F8FF00E01C00E03800E038007038007070007070003
+8700038700038E0001CE0001CE0001CC0000CC0000DC0000780000780000780000700000
+700000700000F00000E00079E0007BC0007F80003F00001E0000151E7F9318>I<3FFFF0
+7FFFF07FFFF07001E07003C0700780000F00001E00003C0000F80001F00003C000078000
+0F00701E00703C0070780070FFFFF0FFFFF0FFFFF014147F9318>I<0007E0001FE0007F
+E000780000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
+0001E0007FC000FF8000FF80007FC00001E00000E00000E00000E00000E00000E00000E0
+0000E00000E00000E00000E00000E000007800007FE0001FE00007E013247E9F18>I<60
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F06004
+24769F18>I<7C0000FF0000FFC00003C00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000E00000E00000F000007FC0003FE0003FE0007FC000F00000E000
+00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00003C000FFC000
+FF00007C000013247E9F18>I<060C1F1E3FBEFBF8F1F060C00F067C9B18>I
+E /Fu 77 123 df<001F83E000F06E3001C078780380F8780300F0300700700007007000
+0700700007007000070070000700700007007000FFFFFF80070070000700700007007000
+070070000700700007007000070070000700700007007000070070000700700007007000
+0700700007007000070070000700700007007000070070003FE3FF001D20809F1B>11
+D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700
+00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
+E00700E00700E00700E00700E00700E00700E00700E03FC3FC1620809F19>I<003FE000
+E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007
+00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007
+00E00700E00700E00700E00700E00700E03FE7FC1620809F19>I<001F81F80000F04F04
+0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000
+070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007
+007007000700700700070070070007007007000700700700070070070007007007000700
+700700070070070007007007000700700700070070070007007007000700700700070070
+07003FE3FE3FE02320809F26>I<7038F87CFC7EFC7E743A040204020402080408041008
+1008201040200F0E7F9F17>34 D<00400000400003F0000C4E0010410020408060408040
+4040C041C0C043C0C043C0E04180E040007040007C40003FC0001FF8000FFC0003FE0000
+7F00004F800043800041C00041C0F040C0F040C0F040C08040C080408040418020410030
+42000C4C0003F00000400000400000400012257EA117>36 D<70F8FCFC74040404080810
+102040060E7C9F0D>39 D<0040008001000300060004000C001800180038003000300070
+006000600060006000E000E000E000E000E000E000E000E000E000E000E000E000600060
+00600060007000300030003800180018000C000400060003000100008000400A2E7BA112
+>I<8000400020003000180008000C000600060007000300030003800180018001800180
+01C001C001C001C001C001C001C001C001C001C001C001C0018001800180018003800300
+03000700060006000C000800180030002000400080000A2E7EA112>I<70F0F8F8780808
+08101010202040050E7C840D>44 D<FFF0FFF00C02808A0F>I<70F8F8F87005057C840D>
+I<0000400000C0000180000180000180000300000300000300000600000600000C00000C
+00000C0000180000180000180000300000300000600000600000600000C00000C00000C0
+000180000180000180000300000300000600000600000600000C00000C00000C00001800
+00180000300000300000300000600000600000600000C00000C00000122D7EA117>I<03
+F0000E1C001C0E00180600380700700380700380700380700380F003C0F003C0F003C0F0
+03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C070038070038070
+03807807803807001806001C0E000E1C0003F000121F7E9D17>I<008003800F80F38003
+800380038003800380038003800380038003800380038003800380038003800380038003
+800380038003800380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E002007004007
+80800780F007C0F803C0F803C0F803C02007C00007C0000780000780000F00000E00001C
+0000380000700000600000C0000180000300000600400C00401800401000803FFF807FFF
+80FFFF80121E7E9D17>I<03F0000C1C00100E00200F00780F80780780780780380F8000
+0F80000F00000F00001E00001C0000700007F000003C00000E00000F0000078000078000
+07C02007C0F807C0F807C0F807C0F00780400780400F00200E00183C0007F000121F7E9D
+17>I<000600000600000E00000E00001E00002E00002E00004E00008E00008E00010E00
+020E00020E00040E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00
+000E00000E00000E00000E00000E00000E0000FFE0141E7F9D17>I<1803001FFE001FFC
+001FF8001FE00010000010000010000010000010000010000011F000161C00180E001007
+001007800003800003800003C00003C00003C07003C0F003C0F003C0E003804003804007
+00200600100C0008380007E000121F7E9D17>I<007C000182000701000E03800C078018
+0780380300380000780000700000700000F1F000F21C00F40600F80700F80380F80380F0
+03C0F003C0F003C0F003C0F003C07003C07003C07003803803803807001807000C0E0006
+1C0001F000121F7E9D17>I<4000007FFFE07FFFC07FFFC0400080800100800100800200
+00040000040000080000100000100000200000200000600000600000E00000C00001C000
+01C00001C00001C00003C00003C00003C00003C00003C00003C00003C000018000131F7E
+9D17>I<03F0000C0C001006003003002001806001806001806001807001807803003E03
+003F06001FC8000FF00003F80007FC000C7E00103F00300F806007806001C0C001C0C000
+C0C000C0C000C0C000806001802001001002000C0C0003F000121F7E9D17>I<03F0000E
+18001C0C00380600380700700700700380F00380F00380F003C0F003C0F003C0F003C0F0
+03C07007C07007C03807C0180BC00E13C003E3C000038000038000038000070030070078
+0600780E00700C002018001070000FC000121F7E9D17>I<70F8F8F87000000000000000
+00000070F8F8F87005147C930D>I<70F8F8F8700000000000000000000070F0F8F87808
+0808101010202040051D7C930D>I<000100000003800000038000000380000007C00000
+07C0000007C0000009E0000009E0000009E0000010F0000010F0000010F0000020780000
+2078000020780000403C0000403C0000C03E0000801E0000801E0001FFFF0001000F0001
+000F00020007800200078002000780040003C0040003C00C0003C01E0003E0FF801FFE1F
+207F9F22>65 D<FFFFE0000F0078000F001E000F001E000F000F000F000F800F000F800F
+000F800F000F800F000F800F000F000F001F000F001E000F007C000FFFF0000F007C000F
+001F000F000F800F0007C00F0003C00F0003E00F0003E00F0003E00F0003E00F0003E00F
+0003C00F0007C00F0007800F000F000F003E00FFFFF0001B1F7E9E20>I<000FE0100038
+1C3000E0027003C00170078000F00F0000701E0000701E0000303C0000303C0000107C00
+001078000010F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800
+0000F8000000780000007C0000103C0000103C0000101E0000201E0000200F0000200780
+004003C0008000E0030000380C00000FF0001C217E9F21>I<FFFFF80007801E00078007
+80078003C0078001E0078000F00780007007800078078000780780003C0780003C078000
+3C0780003E0780003E0780003E0780003E0780003E0780003E0780003E0780003E078000
+3C0780003C0780007C0780007807800078078000F0078001E0078003C00780078007801E
+00FFFFF8001F1F7F9E23>I<FFFFFF800F000F800F0003800F0001800F0000800F0000C0
+0F0000400F0000400F0000400F0040400F0040000F0040000F00C0000F01C0000FFFC000
+0F01C0000F00C0000F0040000F0040000F0040000F0000200F0000200F0000200F000040
+0F0000400F0000400F0000C00F0001C00F0003800F000F80FFFFFF801B1F7E9E1F>I<FF
+FFFF8007800780078001800780018007800080078000C007800040078000400780004007
+800040078020000780200007802000078060000780E00007FFE0000780E0000780600007
+802000078020000780200007800000078000000780000007800000078000000780000007
+8000000780000007C00000FFFE00001A1F7F9E1E>I<000FE01000381C3000E0027003C0
+0170078000F00F0000701E0000701E0000303C0000303C0000107C00001078000010F800
+0000F8000000F8000000F8000000F8000000F8000000F8000000F8003FFEF80001F07800
+00F07C0000F03C0000F03C0000F01E0000F01E0000F00F0000F0078000F003C0017000E0
+023000380C10000FF0001F217E9F24>I<FFF07FF80F0007800F0007800F0007800F0007
+800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007
+800FFFFF800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007
+800F0007800F0007800F0007800F0007800F0007800F0007800F000780FFF07FF81D1F7E
+9E22>I<FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
+0F000F000F000F000F000F000F000F000F000F000F000F000F000F00FFF00C1F7E9E10>
+I<FFF007FC0F0003E00F0001800F0001000F0002000F0004000F0008000F0010000F0020
+000F0040000F0080000F0100000F0300000F0780000F0F80000F13C0000F21E0000F41E0
+000F80F0000F0078000F0078000F003C000F001E000F001E000F000F000F0007800F0007
+800F0003C00F0003E00F0003F0FFF01FFE1F1F7E9E23>75 D<FFF8000F80000F00000F00
+000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
+000F00000F00000F00000F00000F00020F00020F00020F00020F00060F00040F00040F00
+0C0F001C0F007CFFFFFC171F7E9E1C>I<FF800007FE07800007C007800007C005C0000B
+C005C0000BC004E00013C004E00013C004E00013C004700023C004700023C004380043C0
+04380043C004380043C0041C0083C0041C0083C0040E0103C0040E0103C0040E0103C004
+070203C004070203C004070203C004038403C004038403C00401C803C00401C803C00401
+C803C00400F003C00400F003C004006003C01F006003C0FFE0607FFE271F7F9E2A>I<FF
+000FF80F8003E00F8000800BC0008009E0008009E0008008F00080087800800878008008
+3C0080081E0080081E0080080F008008078080080780800803C0800801E0800801E08008
+00F080080078800800788008003C8008001E8008001E8008000F80080007800800078008
+000380080001803E000180FF8000801D1F7E9E22>I<001FE0000070380001C00E000380
+0700070003800F0003C01E0001E03C0000F03C0000F07C0000F87C0000F878000078F800
+007CF800007CF800007CF800007CF800007CF800007CF800007CF800007CF800007C7800
+00787C0000F87C0000F83C0000F03E0001F01E0001E00F0003C0070003800380070001E0
+1E0000703800001FE0001E217E9F23>I<FFFFE0000F007C000F001E000F000F000F0007
+800F0007800F0007C00F0007C00F0007C00F0007C00F0007800F0007800F000F000F001E
+000F007C000FFFE0000F0000000F0000000F0000000F0000000F0000000F0000000F0000
+000F0000000F0000000F0000000F0000000F0000000F0000000F000000FFF000001A1F7E
+9E1F>I<FFFF80000F00F0000F003C000F001E000F000F000F000F000F000F800F000F80
+0F000F800F000F800F000F000F000F000F001E000F003C000F00F0000FFF80000F01C000
+0F0070000F0070000F0038000F003C000F003C000F003C000F003E000F003E000F003E00
+0F003E040F003F040F001F040F000F08FFF00788000001F01E207E9E21>82
+D<03F0400C0CC01803C03001C06000C06000C0E000C0E00040E00040E00040F00000F800
+007C00007F80003FF8001FFF0007FF8000FFC0001FE00003E00001E00000F00000708000
+70800070800070800070C00060C000E0E000C0F80180C6030081FC0014217E9F19>I<7F
+FFFFE0780F01E0600F0060400F0020400F0020C00F0030800F0010800F0010800F001080
+0F0010000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
+0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
+0F0000000F0000001F800003FFFC001C1F7E9E21>I<FFF00FF80F0003E00F0000800F00
+00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00
+00800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F0000800F00
+00800F0000800F0000800700010007800100038001000380020001C0040000E008000038
+3000000FC0001D207E9E22>I<FFF003FE1F8000F80F0000600F00002007800040078000
+400780004003C0008003C0008003E0018001E0010001E0010000F0020000F0020000F802
+000078040000780400003C0800003C0800003C0800001E1000001E1000001F1000000F20
+00000F20000007C0000007C0000007C000000380000003800000038000000100001F207F
+9E22>I<FFF07FF81FF01F000FC007C00F00078001800F00078001000F0007C001000F80
+07C00300078007C00200078009E0020007C009E0020003C009E0040003C019F0040003C0
+10F0040001E010F0080001E010F0080001E02078080000F02078100000F02078100000F0
+403C10000078403C20000078403C20000078801E2000007C801E6000003C801E4000003D
+000F4000003F000F4000001F000F8000001F000F8000001E00078000000E00070000000E
+00070000000C000300000004000200002C207F9E2F>I<FFF001FF1F8000780F80006007
+80006007C0004003C0008003E0008001F0010000F0010000F80200007C0600003C040000
+3E0800001E0800001F1000000FB0000007A0000007E0000003C0000003C0000003C00000
+03C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C00000
+3FFC00201F7F9E22>89 D<FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFF082D7CA10D>91
+D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E7A9F17>I<
+FFFF03030303030303030303030303030303030303030303030303030303030303030303
+03030303030303FFFF082D80A10D>I<081020204040808080B8FCFC7C38060E7D9F0D>
+96 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00
+380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>I<1C00
+00FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C
+001D87001E01801E00C01C00E01C00701C00701C00781C00781C00781C00781C00781C00
+781C00701C00F01C00E01E00C01A0180198700107C0015207E9F19>I<01FC000706001C
+0F00380F00380600780000700000F00000F00000F00000F00000F00000F0000070000078
+00003800803800801C010007060001F80011147F9314>I<0001C0000FC00001C00001C0
+0001C00001C00001C00001C00001C00001C00001C00001C001F1C0070DC00C03C01801C0
+3801C07801C07001C0F001C0F001C0F001C0F001C0F001C0F001C07001C07001C03801C0
+1803C00C03C0070DC001F1F815207F9F19>I<03F0000E1C001C0E003807003807007007
+00700380F00380F00380FFFF80F00000F00000F000007000007000003800803800801C01
+0007060001F80011147F9314>I<007C01C6030F070F0E060E000E000E000E000E000E00
+0E00FFF00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
+0E000E007FE01020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F00780F
+00780F00780F00380E001C1C001E380033E0002000002000003000003000003FFE001FFF
+801FFFC03001E0600070C00030C00030C00030C000306000603000C01C038003FC00141F
+7F9417>I<1C0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C
+00001C00001C7C001C86001D03001E03801E03801C03801C03801C03801C03801C03801C
+03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014207E9F19>I<
+38007C007C007C0038000000000000000000000000001C00FC001C001C001C001C001C00
+1C001C001C001C001C001C001C001C001C001C001C001C00FF80091F7F9E0C>I<00E001
+F001F001F000E0000000000000000000000000007007F000F00070007000700070007000
+700070007000700070007000700070007000700070007000700070007000706070F060F0
+C061803F000C28829E0E>I<1C0000FC00001C00001C00001C00001C00001C00001C0000
+1C00001C00001C00001C00001C1FE01C07801C06001C04001C08001C10001C20001C6000
+1CE0001DF0001E70001C38001C3C001C1C001C0E001C0F001C07001C07801C07C0FF9FF0
+14207E9F18>I<1C00FC001C001C001C001C001C001C001C001C001C001C001C001C001C
+001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF8009
+207F9F0C>I<1C3E03E000FCC30C30001D039038001E01E01C001E01E01C001C01C01C00
+1C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C
+01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF802114
+7E9326>I<1C7C00FC86001D03001E03801E03801C03801C03801C03801C03801C03801C
+03801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF014147E9319>I<
+01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0
+F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>I<1C7C00FD87
+001E01801E01C01C00E01C00F01C00701C00781C00781C00781C00781C00781C00781C00
+701C00F01C00E01E01C01E03801D87001C7C001C00001C00001C00001C00001C00001C00
+001C00001C0000FF8000151D7E9319>I<01F040070CC00E02C01C03C03801C07801C070
+01C0F001C0F001C0F001C0F001C0F001C0F001C07001C07801C03801C01C03C00C05C007
+09C001F1C00001C00001C00001C00001C00001C00001C00001C00001C0000FF8151D7F93
+18>I<1CF0FD181E3C1E3C1E181C001C001C001C001C001C001C001C001C001C001C001C
+001C001C00FFC00E147E9312>I<0FC830386018C008C008C008E0007C003FE01FF007F8
+003C800E8006C006C006C004E00CD81887E00F147F9312>I<020002000200060006000E
+000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E040E040E
+040E040708030801F00E1C7F9B12>I<1C0380FC1F801C03801C03801C03801C03801C03
+801C03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C0780061B
+8003E3F014147E9319>I<FF83F83E00E01C00C00E00800E00800E008007010007010007
+830003820003820001C40001C40001E40000E80000E80000700000700000700000200015
+147F9318>I<FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0400704
+C0800704E0800704E08003886100038871000388710001D0320001D03A0001D03E0000E0
+1C0000E01C0000601800004008001E147F9321>I<FF87F81E03C00E01800E0300070200
+03840001C80001D80000F00000700000780000F800009C00010E00020E00060700040380
+0C03C03C03E0FE07FC16147F9318>I<FF83F83E00E01C00C00E00800E00800E00800701
+0007010007830003820003820001C40001C40001E40000E80000E8000070000070000070
+00002000002000004000004000004000F08000F08000F100006200003C0000151D7F9318
+>I<7FFF700E600E401C40384078407000E001E001C00380078007010E011E011C033802
+7006700EFFFE10147F9314>I E /Fv 14 122 df<0000001FFC0000C000000003FFFFC0
+01C00000001FFFFFF003C00000007FFFFFFC07C0000001FFFC00FE0FC0000007FFC0001F
+9FC000000FFE000007FFC000003FF8000003FFC000007FF0000000FFC00000FFE0000000
+7FC00001FFC00000007FC00001FF800000003FC00003FF000000001FC00007FE00000000
+1FC0000FFE000000000FC0000FFC000000000FC0001FFC0000000007C0001FFC00000000
+07C0003FF80000000007C0003FF80000000003C0003FF80000000003C0007FF800000000
+03C0007FF80000000003C0007FF0000000000000007FF000000000000000FFF000000000
+000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000
+000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000000000
+000000FFF000000000000000FFF000001FFFFFFF807FF000001FFFFFFF807FF000001FFF
+FFFF807FF800001FFFFFFF807FF800000001FFC0003FF800000001FFC0003FF800000001
+FFC0003FF800000001FFC0001FFC00000001FFC0001FFC00000001FFC0000FFE00000001
+FFC0000FFE00000001FFC00007FF00000001FFC00003FF00000001FFC00001FF80000001
+FFC00001FFC0000001FFC00000FFE0000001FFC000007FF0000003FFC000003FFC000003
+FFC000000FFF000007FFC0000007FFC0001FBFC0000001FFFC00FF1FC00000007FFFFFFE
+0FC00000001FFFFFF803C000000003FFFFE000C0000000001FFE00000000413D7BBB4C>
+71 D<FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000007FF00000
+0000007FF000000000007FF000000000007FF000000000007FF000000000007FF0000000
+00007FF000000000007FF000000000007FF000000000007FF000000000007FF000000000
+007FF000000000007FF000000000007FF000000000007FF000000000007FF00000000000
+7FF000000000007FF000000000007FF000000000007FF000000000007FF000000000007F
+F000000000007FF000000000007FF000000000007FF000000000007FF000000000007FF0
+00000000007FF000000000007FF000000000007FF000000000007FF000000000007FF000
+0003C0007FF0000003C0007FF0000003C0007FF0000003C0007FF0000003C0007FF00000
+07C0007FF000000780007FF000000780007FF000000780007FF000000F80007FF000000F
+80007FF000000F80007FF000001F80007FF000001F80007FF000003F80007FF000007F80
+007FF00000FF80007FF00001FF80007FF00007FF00007FF0003FFF00FFFFFFFFFFFF00FF
+FFFFFFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFF00323B7DBA3A>76
+D<FFFFF0000007FFFFE0FFFFF8000007FFFFE0FFFFFC000007FFFFE0FFFFFE000007FFFF
+E0007FFE00000007E000007FFF00000003C000007FFF80000003C000007BFFC0000003C0
+00007BFFE0000003C0000079FFE0000003C0000078FFF0000003C00000787FF8000003C0
+0000783FFC000003C00000783FFE000003C00000781FFE000003C00000780FFF000003C0
+00007807FF800003C000007803FFC00003C000007803FFE00003C000007801FFE00003C0
+00007800FFF00003C0000078007FF80003C0000078003FFC0003C0000078003FFE0003C0
+000078001FFF0003C0000078000FFF0003C00000780007FF8003C00000780003FFC003C0
+0000780003FFE003C00000780001FFF003C00000780000FFF003C000007800007FF803C0
+00007800003FFC03C000007800003FFE03C000007800001FFF03C000007800000FFF03C0
+000078000007FF83C0000078000003FFC3C0000078000003FFE3C0000078000001FFF3C0
+000078000000FFF3C00000780000007FFBC00000780000003FFFC00000780000003FFFC0
+0000780000001FFFC00000780000000FFFC000007800000007FFC000007800000003FFC0
+00007800000003FFC000007800000001FFC000007800000000FFC0000078000000007FC0
+000078000000003FC0000078000000003FC00000FC000000001FC000FFFFFC0000000FC0
+00FFFFFC00000007C000FFFFFC00000003C000FFFFFC00000003C000433B7CBA4C>78
+D<FFFFFFFFF800000000FFFFFFFFFFC0000000FFFFFFFFFFF8000000FFFFFFFFFFFE0000
+00007FF0001FFF000000007FF00003FFC00000007FF00000FFE00000007FF000007FF000
+00007FF000003FF80000007FF000003FF80000007FF000003FFC0000007FF000001FFC00
+00007FF000001FFC0000007FF000001FFE0000007FF000001FFE0000007FF000001FFE00
+00007FF000001FFE0000007FF000001FFE0000007FF000001FFE0000007FF000001FFC00
+00007FF000001FFC0000007FF000003FFC0000007FF000003FF80000007FF000007FF000
+00007FF000007FE00000007FF00001FFC00000007FF00003FF800000007FF0001FFE0000
+00007FFFFFFFF8000000007FFFFFFFC0000000007FFFFFFFC0000000007FF0007FF00000
+00007FF0001FF8000000007FF0000FFC000000007FF00007FE000000007FF00003FF0000
+00007FF00003FF800000007FF00001FF800000007FF00001FF800000007FF00001FFC000
+00007FF00001FFC00000007FF00001FFC00000007FF00001FFC00000007FF00001FFC000
+00007FF00001FFE00000007FF00001FFE00000007FF00001FFE00000007FF00001FFE000
+00007FF00001FFE00000007FF00001FFE001E0007FF00001FFE001E0007FF00000FFF001
+E0007FF00000FFF001E0007FF00000FFF003C0007FF000007FF803C0FFFFFFF8003FFC07
+80FFFFFFF8001FFE0F80FFFFFFF80007FFFF00FFFFFFF80001FFFC000000000000001FF0
+00433C7CBA48>82 D<FFFFFFF80007FFFFE0FFFFFFF80007FFFFE0FFFFFFF80007FFFFE0
+FFFFFFF80007FFFFE0007FF000000007E000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000007FF000000003C000007FF000000003C000007FF000000003C000
+007FF000000003C000003FF0000000078000003FF0000000078000003FF8000000078000
+001FF80000000F0000001FF80000000F0000000FFC0000001E00000007FC0000003E0000
+0007FE0000007C00000003FF000000F800000001FF800001F8000000007FE0000FE00000
+00003FFC007FC0000000000FFFFFFF800000000003FFFFFE0000000000007FFFF0000000
+00000007FF80000000433C7DBA4A>85 D<003FFE00000001FFFFE0000007FFFFF800000F
+E007FC00000FF001FE00001FF800FF00001FF8007F80001FF8007FC0001FF8003FC0000F
+F0003FE00007E0003FE00003C0003FE0000000003FE0000000003FE0000000003FE00000
+00003FE0000000FFFFE000001FFFFFE000007FF83FE00003FF803FE00007FC003FE0000F
+F0003FE0001FE0003FE0003FE0003FE0007FC0003FE0007FC0003FE000FF80003FE000FF
+80003FE000FF80003FE000FF80003FE000FF80007FE0007FC0007FE0007FC000DFE0003F
+E0039FF0001FF80F0FFFE007FFFE0FFFE001FFFC07FFE0003FE000FFE02B267DA52F>97
+D<00FE00000000FFFE00000000FFFE00000000FFFE00000000FFFE0000000007FE000000
+0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000
+0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000
+0003FE0000000003FE0000000003FE0000000003FE0000000003FE01FF000003FE1FFFF0
+0003FE7FFFFC0003FEFC03FE0003FFF000FF0003FFC0003F8003FF00001FC003FE00001F
+E003FE00000FF003FE00000FF803FE00000FF803FE000007FC03FE000007FC03FE000007
+FC03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007
+FE03FE000007FE03FE000007FE03FE000007FE03FE000007FC03FE000007FC03FE000007
+FC03FE00000FFC03FE00000FF803FE00000FF003FE00001FF003FF00001FE003FF80003F
+C003FFC0007F8003F9E000FF0003F0FC07FE0003F07FFFF80003E01FFFE00003C003FE00
+002F3C7DBB36>I<000000003F800000003FFF800000003FFF800000003FFF800000003F
+FF8000000001FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000
+FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000
+FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000FF80
+FF80000FFFF0FF80003FFFFCFF8000FFC03FFF8001FE000FFF8003FC0003FF8007F80001
+FF800FF00000FF801FF00000FF803FE00000FF803FE00000FF807FE00000FF807FC00000
+FF807FC00000FF807FC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000
+FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF807FC00000
+FF807FC00000FF807FC00000FF803FE00000FF803FE00000FF801FE00000FF800FF00001
+FF8007F80003FF8003F80007FF8001FE001FFFC000FF807EFFFE007FFFF8FFFE000FFFE0
+FFFE0001FF00FFFE2F3C7DBB36>100 D<0001FF8000000FFFF000007FFFFC0000FF81FE
+0003FE007F8007F8003F800FF0001FC00FF0000FE01FE0000FE03FE0000FF03FE00007F0
+7FC00007F07FC00007F87FC00007F8FFC00007F8FFC00007F8FFFFFFFFF8FFFFFFFFF8FF
+FFFFFFF8FFC0000000FFC0000000FFC0000000FFC00000007FC00000007FC00000007FC0
+0000003FE00000003FE00000781FE00000781FF00000780FF00000F007F80001F003FC00
+03E001FE000FC000FFC07F80003FFFFE00000FFFF8000000FFC00025267DA52C>I<01E0
+0007F8000FFC000FFC001FFE001FFE001FFE001FFE000FFC000FFC0007F80001E0000000
+0000000000000000000000000000000000000000000000000000000000000000FE007FFE
+007FFE007FFE007FFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00FFFFF0FFFFF0FFFFF0FFFF
+F0143D7DBC1A>105 D<00FE00FFFE00FFFE00FFFE00FFFE0007FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00FFFF
+F8FFFFF8FFFFF8FFFFF8153C7DBB1A>108 D<01FC00FF8000FFFC03FFF000FFFC0FFFF8
+00FFFC1E03FC00FFFC3801FE0007FC6001FF0003FCC000FF0003FDC000FF8003FD8000FF
+8003FF0000FF8003FF0000FF8003FF0000FF8003FE0000FF8003FE0000FF8003FE0000FF
+8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF
+8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF
+8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF
+8003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F267CA536
+>110 D<01FC03F000FFFC0FFC00FFFC1FFF00FFFC3C3F80FFFC707F8007FCE0FFC003FC
+C0FFC003FD80FFC003FD80FFC003FF807F8003FF003F0003FF001E0003FF00000003FE00
+000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000
+0003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000
+03FE00000003FE00000003FE00000003FE00000003FE00000003FE000000FFFFFC0000FF
+FFFC0000FFFFFC0000FFFFFC000022267DA528>114 D<FFFFF000FFFCFFFFF000FFFCFF
+FFF000FFFCFFFFF000FFFC03FE00001F8003FF00001F0001FF00001E0001FF80001E0000
+FF80003C0000FF80003C0000FFC0007C00007FC0007800007FE000F800003FE000F00000
+3FF001F000001FF001E000001FF803E000000FF803C000000FF803C000000FFC07C00000
+07FC0780000007FE0F80000003FE0F00000003FF1F00000001FF1E00000001FFBE000000
+00FFBC00000000FFFC000000007FF8000000007FF8000000007FF8000000003FF0000000
+003FF0000000001FE0000000001FE0000000000FC0000000000FC0000000000780000000
+000780000000000F80000000000F00000000001F00000000001E00000008003E0000007F
+003C0000007F007C000000FF8078000000FF80F8000000FF81F0000000FF83E00000007F
+07C00000007C1F800000003FFF000000001FFC0000000007F0000000002E377EA533>
+121 D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
TeXDict begin
+%%PaperSize: A4
-1 0 bop 0 693 a Fs(GNU)33 b(Readline)h(Library)p 0 743
-1950 17 v 1011 791 a Fr(Edition)17 b(2.1,)c(for)i Fq(Readline)f
-(Library)g Fr(V)l(ersion)i(2.1.)1718 845 y(Marc)o(h)e(1996)0
-2467 y Fp(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)0 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 0 2570 1950 9 v eop
-2 1 bop 0 320 a Fr(This)15 b(do)q(cumen)o(t)f(describ)q(es)i(the)e(GNU)
-g(Readline)j(Library)l(,)d(a)g(utilit)o(y)h(whic)o(h)g(aids)g(in)g(the)
-f(consistency)h(of)f(user)0 382 y(in)o(terface)h(across)g(discrete)h
-(programs)e(that)g(need)j(to)d(pro)o(vide)i(a)f(command)g(line)i(in)o
-(terface.)0 519 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f
-(F)l(oundation)0 582 y(675)g(Massac)o(h)o(usetts)g(Av)o(en)o(ue,)0
-644 y(Cam)o(bridge,)h(MA)g(02139)f(USA)0 781 y(P)o(ermission)f(is)g
-(gran)o(ted)f(to)f(mak)o(e)h(and)h(distribute)h(v)o(erbatim)e(copies)h
-(of)f(this)h(man)o(ual)g(pro)o(vided)g(the)f(cop)o(yrigh)o(t)0
-843 y(notice)k(and)f(this)h(p)q(ermission)h(notice)e(are)g(preserv)o
-(ed)h(on)f(all)h(copies.)0 980 y(P)o(ermission)f(is)f(gran)o(ted)f(to)h
-(cop)o(y)g(and)g(distribute)h(mo)q(di\014ed)h(v)o(ersions)e(of)f(this)i
-(man)o(ual)f(under)h(the)f(conditions)0 1043 y(for)e(v)o(erbatim)g(cop)
-o(ying,)h(pro)o(vided)h(that)d(the)i(en)o(tire)g(resulting)h(deriv)o
-(ed)f(w)o(ork)f(is)h(distributed)h(under)f(the)g(terms)0
-1105 y(of)i(a)g(p)q(ermission)h(notice)g(iden)o(tical)h(to)e(this)g
-(one.)0 1242 y(P)o(ermission)20 b(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)f(in)o(to)h
-(another)f(language,)0 1304 y(under)c(the)f(ab)q(o)o(v)o(e)g
-(conditions)h(for)e(mo)q(di\014ed)j(v)o(ersions,)e(except)g(that)g
-(this)g(p)q(ermission)i(notice)e(ma)o(y)g(b)q(e)h(stated)0
-1366 y(in)h(a)f(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l
-(oundation.)0 2661 y(Cop)o(yrigh)o(t)226 2660 y(c)214
-2661 y Fo(\015)g Fr(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-1 2 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(1)0 183 y Fn(1)41 b(Command)16 b(Line)f(Editing)62
-408 y Fr(This)h(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fm(GNU)g Fr(command)g(line)i(editing)f(in)o(terface.)0
-701 y Fp(1.1)33 b(In)n(tro)r(duction)17 b(to)e(Line)h(Editing)62
-845 y Fr(The)g(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.)62
-990 y(The)k(text)e Fq(C-K)h Fr(is)h(read)f(as)f(`Con)o(trol-K')h(and)g
-(describ)q(es)i(the)e(c)o(haracter)f(pro)q(duced)j(when)e(the)g
-Fq(K)g Fr(k)o(ey)g(is)0 1052 y(pressed)d(while)g(the)g(Con)o(trol)e(k)o
-(ey)h(is)h(depressed.)62 1197 y(The)h(text)f Fq(M-K)g
-Fr(is)i(read)e(as)g(`Meta-K')g(and)h(describ)q(es)h(the)f(c)o(haracter)
-f(pro)q(duced)h(when)h(the)e(meta)g(k)o(ey)h(\(if)0 1259
-y(y)o(ou)f(ha)o(v)o(e)f(one\))h(is)g(depressed,)h(and)f(the)g
-Fq(K)f Fr(k)o(ey)h(is)h(pressed.)22 b(If)16 b(y)o(ou)g(do)g(not)f(ha)o
-(v)o(e)g(a)h(meta)f(k)o(ey)l(,)h(the)g(iden)o(tical)0
-1321 y(k)o(eystrok)o(e)j(can)g(b)q(e)i(generated)e(b)o(y)h(t)o(yping)f
-Fq(ESC)h Fl(\014rst)p Fr(,)g(and)f(then)h(t)o(yping)g
-Fq(K)p Fr(.)33 b(Either)20 b(pro)q(cess)g(is)g(kno)o(wn)f(as)0
-1383 y Fl(metafying)g Fr(the)c Fq(K)g Fr(k)o(ey)l(.)62
-1528 y(The)h(text)e Fq(M-C-K)g Fr(is)i(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)h(the)g(c)o(haracter)e(pro)q(duced)i(b)o(y)f
-Fl(metafying)0 1590 y Fq(C-K)p Fr(.)62 1735 y(In)i(addition,)h(sev)o
-(eral)e(k)o(eys)g(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)23
-b(Sp)q(eci\014cally)m(,)c Fq(DEL)p Fr(,)d Fq(ESC)p Fr(,)f
-Fq(LFD)p Fr(,)h Fq(SPC)p Fr(,)g Fq(RET)p Fr(,)g(and)g
-Fq(TAB)0 1797 y Fr(all)e(stand)f(for)f(themselv)o(es)i(when)f(seen)h
-(in)g(this)f(text,)g(or)g(in)g(an)g(init)i(\014le)f(\(see)f(Section)h
-(1.3)e([Readline)j(Init)f(File],)0 1859 y(page)h(5\).)0
-2152 y Fp(1.2)33 b(Readline)16 b(In)n(teraction)62 2296
-y Fr(Often)g(during)h(an)f(in)o(teractiv)o(e)g(session)h(y)o(ou)e(t)o
-(yp)q(e)h(in)h(a)f(long)g(line)h(of)f(text,)f(only)h(to)g(notice)g
-(that)f(the)h(\014rst)0 2359 y(w)o(ord)d(on)i(the)f(line)i(is)e(missp)q
-(elled.)23 b(The)14 b(Readline)i(library)f(giv)o(es)g(y)o(ou)e(a)h(set)
-g(of)g(commands)g(for)f(manipulating)0 2421 y(the)18
-b(text)g(as)g(y)o(ou)g(t)o(yp)q(e)g(it)h(in,)g(allo)o(wing)g(y)o(ou)f
-(to)g(just)g(\014x)g(y)o(our)g(t)o(yp)q(o,)g(and)h(not)f(forcing)g(y)o
-(ou)g(to)g(ret)o(yp)q(e)g(the)0 2483 y(ma)s(jorit)o(y)d(of)h(the)g
-(line.)25 b(Using)17 b(these)g(editing)h(commands,)e(y)o(ou)g(mo)o(v)o
-(e)f(the)i(cursor)f(to)g(the)g(place)h(that)f(needs)0
-2545 y(correction,)g(and)h(delete)g(or)f(insert)g(the)h(text)e(of)h
-(the)g(corrections.)23 b(Then,)17 b(when)g(y)o(ou)f(are)g(satis\014ed)g
-(with)h(the)0 2608 y(line,)h(y)o(ou)e(simply)i(press)f
-Fq(RETURN)p Fr(.)23 b(Y)l(ou)17 b(do)f(not)g(ha)o(v)o(e)g(to)g(b)q(e)i
-(at)e(the)g(end)h(of)f(the)h(line)h(to)e(press)h Fq(RETURN)p
-Fr(;)f(the)0 2670 y(en)o(tire)g(line)h(is)e(accepted)h(regardless)f(of)
-g(the)g(lo)q(cation)h(of)f(the)h(cursor)e(within)j(the)e(line.)p
+%%EndSetup
+%%Page: 1 1
+1 0 bop 75 693 a Fv(GNU)33 b(Readline)h(Library)p 75
+743 1800 17 v 936 791 a Fu(Edition)17 b(2.2,)c(for)i
+Ft(Readline)f(Library)g Fu(V)l(ersion)i(2.1.)1559 845
+y(Septem)o(b)q(er)g(1997)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
+%%Page: 2 2
+2 1 bop 75 250 a Fu(This)14 b(do)q(cumen)o(t)h(describ)q(es)g(the)f
+(GNU)g(Readline)i(Library)l(,)e(a)g(utilit)o(y)h(whic)o(h)f(aids)g(in)h
+(the)f(consistency)75 305 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 373 y(Published)g(b)o(y)f(the)f(F)l(ree)g
+(Soft)o(w)o(are)f(F)l(oundation)75 427 y(675)g(Massac)o(h)o(usetts)g
+(Av)o(en)o(ue,)75 482 y(Cam)o(bridge,)h(MA)g(02139)f(USA)75
+549 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 604 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
+671 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 726 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 781 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
+848 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 903 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 958 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(oundation.)75
+2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289 2661 y Fr(\015)g
+Fu(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l(oundation,)h(Inc.)p
eop
-2 3 bop 0 -58 a Fr(2)1472 b(GNU)15 b(Readline)i(Library)0
-183 y Fk(1.2.1)30 b(Readline)15 b(Bare)g(Essen)n(tials)62
-320 y Fr(In)f(order)f(to)f(en)o(ter)h(c)o(haracters)g(in)o(to)g(the)g
-(line,)i(simply)f(t)o(yp)q(e)f(them.)19 b(The)14 b(t)o(yp)q(ed)f(c)o
-(haracter)f(app)q(ears)i(where)0 382 y(the)h(cursor)h(w)o(as,)e(and)h
-(then)h(the)g(cursor)f(mo)o(v)o(es)f(one)i(space)g(to)e(the)i(righ)o
-(t.)k(If)c(y)o(ou)f(mist)o(yp)q(e)h(a)f(c)o(haracter,)f(y)o(ou)0
-445 y(can)h(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.)62
-582 y(Sometimes)f(y)o(ou)e(ma)o(y)h(miss)g(t)o(yping)g(a)g(c)o
-(haracter)g(that)f(y)o(ou)h(w)o(an)o(ted)f(to)g(t)o(yp)q(e,)h(and)h
-(not)e(notice)i(y)o(our)f(error)0 644 y(un)o(til)k(y)o(ou)e(ha)o(v)o(e)
-g(t)o(yp)q(ed)h(sev)o(eral)g(other)f(c)o(haracters.)23
-b(In)18 b(that)d(case,)i(y)o(ou)f(can)h(t)o(yp)q(e)g
-Fq(C-B)f Fr(to)g(mo)o(v)o(e)g(the)g(cursor)0 706 y(to)f(the)h(left,)g
-(and)g(then)g(correct)f(y)o(our)h(mistak)o(e.)21 b(Afterw)o(ards,)14
-b(y)o(ou)i(can)g(mo)o(v)o(e)f(the)h(cursor)f(to)g(the)h(righ)o(t)g
-(with)0 769 y Fq(C-F)p Fr(.)62 906 y(When)i(y)o(ou)f(add)g(text)g(in)h
-(the)f(middle)i(of)e(a)g(line,)i(y)o(ou)e(will)i(notice)e(that)g(c)o
-(haracters)f(to)h(the)g(righ)o(t)g(of)g(the)0 968 y(cursor)h(are)h
-(`pushed)g(o)o(v)o(er')e(to)h(mak)o(e)g(ro)q(om)g(for)g(the)h(text)f
-(that)g(y)o(ou)g(ha)o(v)o(e)h(inserted.)31 b(Lik)o(ewise,)20
-b(when)f(y)o(ou)0 1030 y(delete)f(text)f(b)q(ehind)i(the)f(cursor,)f(c)
-o(haracters)f(to)h(the)g(righ)o(t)g(of)g(the)h(cursor)f(are)g(`pulled)i
-(bac)o(k')d(to)h(\014ll)i(in)f(the)0 1092 y(blank)g(space)f(created)g
-(b)o(y)g(the)h(remo)o(v)m(al)f(of)f(the)i(text.)25 b(A)17
-b(list)h(of)e(the)h(basic)h(bare)f(essen)o(tials)h(for)e(editing)j(the)
-0 1155 y(text)c(of)f(an)i(input)g(line)h(follo)o(ws.)0
-1303 y Fq(C-B)168 b Fr(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o(haracter.)0
-1390 y Fq(C-F)168 b Fr(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h(c)o
-(haracter.)0 1476 y Fq(DEL)168 b Fr(Delete)16 b(the)f(c)o(haracter)g
-(to)f(the)h(left)h(of)f(the)g(cursor.)0 1562 y Fq(C-D)168
-b Fr(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)0
-1648 y(Prin)o(ting)h(c)o(haracters)240 1710 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)0
-1796 y Fq(C-_)168 b Fr(Undo)15 b(the)h(last)f(thing)h(that)e(y)o(ou)h
-(did.)21 b(Y)l(ou)15 b(can)h(undo)f(all)h(the)g(w)o(a)o(y)e(bac)o(k)h
-(to)f(an)i(empt)o(y)e(line.)0 2001 y Fk(1.2.2)30 b(Readline)15
-b(Mo)n(v)n(emen)n(t)h(Commands)62 2138 y Fr(The)c(ab)q(o)o(v)o(e)g
-(table)g(describ)q(es)i(the)e(most)f(basic)h(p)q(ossible)i(k)o(eystrok)
-o(es)d(that)g(y)o(ou)g(need)i(in)g(order)f(to)f(do)h(editing)0
-2201 y(of)g(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)g(to)e Fq(C-B)p Fr(,)0 2263 y Fq(C-F)p
-Fr(,)i Fq(C-D)p Fr(,)h(and)g Fq(DEL)p Fr(.)20 b(Here)15
-b(are)g(some)g(commands)g(for)f(mo)o(ving)h(more)g(rapidly)i(ab)q(out)e
-(the)g(line.)0 2412 y Fq(C-A)168 b Fr(Mo)o(v)o(e)14 b(to)h(the)g(start)
-f(of)h(the)g(line.)0 2498 y Fq(C-E)168 b Fr(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)0 2584 y Fq(M-F)168
-b Fr(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord.)0 2670
-y Fq(M-B)168 b Fr(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)p
+%%Page: 1 3
+1 2 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(1)75 183 y Fq(1)41 b(Command)28 b(Line)e(Editing)137
+294 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
+419 y Fs(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
+514 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
+580 y(The)h(text)327 578 y Fo(h)p 339 552 56 2 v 339
+580 a Fn(C-k)p 339 587 V 393 578 a Fo(i)424 580 y Fu(is)f(read)g(as)g
+(`Con)o(trol-K')f(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q
+(duced)h(when)f(the)1831 578 y Fo(h)p 1844 552 19 2 v
+1844 580 a Fn(k)p 1844 587 V 1860 578 a Fo(i)75 634 y
+Fu(k)o(ey)f(is)h(pressed)g(while)g(the)f(Con)o(trol)g(k)o(ey)g(is)h
+(depressed.)137 700 y(The)g(text)325 698 y Fo(h)p 337
+672 63 2 v 337 700 a Fn(M-k)p 337 708 V 398 698 a Fo(i)428
+700 y Fu(is)f(read)g(as)g(`Meta-K')f(and)h(describ)q(es)i(the)e(c)o
+(haracter)g(pro)q(duced)h(when)f(the)h(meta)75 755 y(k)o(ey)d(\(if)h(y)
+o(ou)f(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)g(the)922
+753 y Fo(h)p 935 727 19 2 v 935 755 a Fn(k)p 935 763
+V 951 753 a Fo(i)979 755 y Fu(k)o(ey)g(is)f(pressed.)20
+b(If)14 b(y)o(ou)f(do)g(not)g(ha)o(v)o(e)g(a)g(meta)g(k)o(ey)l(,)75
+810 y(the)k(iden)o(tical)i(k)o(eystrok)o(e)d(can)h(b)q(e)h(generated)f
+(b)o(y)g(t)o(yping)1110 808 y Fo(h)p 1122 782 70 2 v
+1122 810 a Fn(ESC)p 1122 818 V 1189 808 a Fo(i)1221 810
+y Fm(\014rst)p Fu(,)f(and)i(then)f(t)o(yping)1668 808
+y Fo(h)p 1681 782 19 2 v 1681 810 a Fn(k)p 1681 818 V
+1697 808 a Fo(i)1712 810 y Fu(.)26 b(Either)75 865 y(pro)q(cess)15
+b(is)h(kno)o(wn)f(as)g Fm(metafying)k Fu(the)773 863
+y Fo(h)p 785 837 V 785 865 a Fn(k)p 785 873 V 802 863
+a Fo(i)832 865 y Fu(k)o(ey)l(.)137 931 y(The)h(text)334
+929 y Fo(h)p 347 903 100 2 v 347 931 a Fn(M-C-k)p 347
+938 V 444 929 a Fo(i)479 931 y Fu(is)g(read)g(as)f(`Meta-Con)o(trol-k')
+f(and)i(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)i(b)o(y)75
+986 y Fm(metafying)291 984 y Fo(h)p 303 958 56 2 v 303
+986 a Fn(C-k)p 303 993 V 357 984 a Fo(i)372 986 y Fu(.)137
+1052 y(In)e(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 1050 y Fo(h)p
+1396 1024 73 2 v 1396 1052 a Fn(DEL)p 1396 1059 V 1467
+1050 a Fo(i)1482 1052 y Fu(,)1514 1050 y Fo(h)p 1526
+1024 70 2 v 1526 1052 a Fn(ESC)p 1526 1059 V 1593 1050
+a Fo(i)1608 1052 y Fu(,)1640 1050 y Fo(h)p 1652 1024
+72 2 v 1652 1052 a Fn(LFD)p 1652 1059 V 1722 1050 a Fo(i)1737
+1052 y Fu(,)1768 1050 y Fo(h)p 1780 1024 70 2 v 1780
+1052 a Fn(SPC)p 1780 1059 V 1847 1050 a Fo(i)1862 1052
+y Fu(,)75 1104 y Fo(h)p 87 1078 76 2 v 87 1106 a Fn(RET)p
+87 1114 V 160 1104 a Fo(i)175 1106 y Fu(,)23 b(and)306
+1104 y Fo(h)p 318 1078 74 2 v 318 1106 a Fn(T)m(AB)p
+318 1114 V 390 1104 a Fo(i)427 1106 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 1161 y(Section)16 b(1.3)e([Readline)j(Init)g(File],)e(page)g
+(3\).)75 1286 y Fs(1.2)33 b(Readline)23 b(In)n(teraction)137
+1381 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 1436 y(\014rst)k(w)o(ord)f(on)h(the)h(line)h
+(is)e(missp)q(elled.)26 b(The)16 b(Readline)j(library)e(giv)o(es)f(y)o
+(ou)g(a)g(set)g(of)g(commands)g(for)75 1491 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
+1545 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 1600 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 1655 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
+1653 y Fo(h)p 1172 1627 155 2 v 1172 1655 a Fn(RETURN)p
+1172 1663 V 1324 1653 a Fo(i)1339 1655 y Fu(.)k(Y)l(ou)16
+b(do)f(not)g(ha)o(v)o(e)g(to)g(b)q(e)i(at)75 1710 y(the)g(end)g(of)f
+(the)g(line)i(to)e(press)634 1708 y Fo(h)p 646 1682 V
+646 1710 a Fn(RETURN)p 646 1717 V 798 1708 a Fo(i)813
+1710 y Fu(;)g(the)h(en)o(tire)g(line)h(is)f(accepted)g(regardless)g(of)
+f(the)g(lo)q(cation)75 1765 y(of)f(the)g(cursor)g(within)h(the)g(line.)
+75 1873 y Fl(1.2.1)30 b(Readline)20 b(Bare)g(Essen)n(tials)137
+1968 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 2023 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 2077 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 2143 y(Sometimes)j(y)o(ou)f(ma)o(y)g(miss)h(t)o
+(yping)g(a)f(c)o(haracter)g(that)f(y)o(ou)i(w)o(an)o(ted)f(to)f(t)o(yp)
+q(e,)i(and)g(not)f(notice)75 2198 y(y)o(our)c(error)f(un)o(til)i(y)o
+(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(sev)o(eral)h(other)e(c)o(haracters.)19
+b(In)c(that)e(case,)h(y)o(ou)g(can)g(t)o(yp)q(e)1739
+2196 y Fo(h)p 1751 2170 57 2 v 1751 2198 a Fn(C-b)p 1751
+2206 V 1806 2196 a Fo(i)1835 2198 y Fu(to)75 2253 y(mo)o(v)o(e)h(the)h
+(cursor)g(to)f(the)h(left,)g(and)g(then)h(correct)e(y)o(our)h(mistak)o
+(e.)21 b(Afterw)o(ards,)15 b(y)o(ou)h(can)g(mo)o(v)o(e)f(the)75
+2308 y(cursor)g(to)f(the)i(righ)o(t)f(with)559 2306 y
+Fo(h)p 571 2280 49 2 v 571 2308 a Fn(C-f)p 571 2315 V
+617 2306 a Fo(i)632 2308 y Fu(.)137 2374 y(When)i(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 2428 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
+2483 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
+2538 y(bac)o(k')d(to)h(\014ll)h(in)g(the)f(blank)g(space)h(created)f(b)
+o(y)f(the)h(remo)o(v)m(al)g(of)g(the)g(text.)21 b(A)16
+b(list)h(of)e(the)h(basic)h(bare)75 2593 y(essen)o(tials)f(for)f
+(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o(ws.)75
+2668 y Fo(h)p 87 2642 57 2 v 87 2670 a Fn(C-b)p 87 2678
+V 142 2668 a Fo(i)315 2670 y Fu(Mo)o(v)o(e)d(bac)o(k)h(one)h(c)o
+(haracter.)p eop
+%%Page: 2 4
+2 3 bop 75 -58 a Fu(2)1322 b(GNU)15 b(Readline)i(Library)75
+181 y Fo(h)p 87 155 49 2 v 87 183 a Fn(C-f)p 87 191 V
+133 181 a Fo(i)315 183 y Fu(Mo)o(v)o(e)d(forw)o(ard)g(one)h(c)o
+(haracter.)75 258 y Fo(h)p 87 232 73 2 v 87 260 a Fn(DEL)p
+87 268 V 158 258 a Fo(i)315 260 y Fu(Delete)h(the)f(c)o(haracter)g(to)f
+(the)h(left)h(of)f(the)g(cursor.)75 335 y Fo(h)p 87 309
+57 2 v 87 337 a Fn(C-d)p 87 344 V 142 335 a Fo(i)315
+337 y Fu(Delete)h(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
+413 y(Prin)o(ting)h(c)o(haracters)315 468 y(Insert)f(the)h(c)o
+(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
+543 y Fo(h)p 87 517 50 2 v 87 545 a Fn(C-)p 126 545 11
+2 v 87 553 50 2 v 135 543 a Fo(i)315 545 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 600 y(line.)75
+707 y Fl(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
+802 y Fu(The)17 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)f(most)g
+(basic)g(p)q(ossible)i(k)o(eystrok)o(es)d(that)g(y)o(ou)h(need)h(in)g
+(order)f(to)75 857 y(do)e(editing)h(of)f(the)g(input)h(line.)22
+b(F)l(or)13 b(y)o(our)h(con)o(v)o(enience,)h(man)o(y)f(other)f
+(commands)h(ha)o(v)o(e)g(b)q(een)h(added)75 912 y(in)f(addition)g(to)
+356 910 y Fo(h)p 368 884 57 2 v 368 912 a Fn(C-b)p 368
+919 V 423 910 a Fo(i)438 912 y Fu(,)464 910 y Fo(h)p
+476 884 49 2 v 476 912 a Fn(C-f)p 476 919 V 522 910 a
+Fo(i)537 912 y Fu(,)563 910 y Fo(h)p 575 884 57 2 v 575
+912 a Fn(C-d)p 575 919 V 629 910 a Fo(i)644 912 y Fu(,)f(and)756
+910 y Fo(h)p 768 884 73 2 v 768 912 a Fn(DEL)p 768 919
+V 839 910 a Fo(i)854 912 y Fu(.)19 b(Here)13 b(are)g(some)g(commands)f
+(for)g(mo)o(ving)h(more)g(rapidly)75 966 y(ab)q(out)i(the)g(line.)75
+1041 y Fo(h)p 87 1015 55 2 v 87 1043 a Fn(C-a)p 87 1051
+V 140 1041 a Fo(i)315 1043 y Fu(Mo)o(v)o(e)f(to)h(the)g(start)f(of)h
+(the)g(line.)75 1118 y Fo(h)p 87 1092 53 2 v 87 1120
+a Fn(C-e)p 87 1127 V 138 1118 a Fo(i)315 1120 y Fu(Mo)o(v)o(e)f(to)h
+(the)g(end)h(of)f(the)g(line.)75 1194 y Fo(h)p 87 1168
+55 2 v 87 1196 a Fn(M-f)p 87 1204 V 140 1194 a Fo(i)315
+1196 y Fu(Mo)o(v)o(e)f(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
+1271 y Fo(h)p 87 1245 64 2 v 87 1273 a Fn(M-b)p 87 1281
+V 149 1271 a Fo(i)315 1273 y Fu(Mo)o(v)o(e)e(bac)o(kw)o(ard)h(a)g(w)o
+(ord.)75 1348 y Fo(h)p 87 1322 48 2 v 87 1350 a Fn(C-l)p
+87 1358 V 132 1348 a Fo(i)315 1350 y Fu(Clear)g(the)h(screen,)f(reprin)
+o(ting)h(the)f(curren)o(t)g(line)i(at)e(the)g(top.)137
+1427 y(Notice)d(ho)o(w)368 1425 y Fo(h)p 380 1399 49
+2 v 380 1427 a Fn(C-f)p 380 1434 V 426 1425 a Fo(i)452
+1427 y Fu(mo)o(v)o(es)f(forw)o(ard)f(a)i(c)o(haracter,)f(while)1105
+1425 y Fo(h)p 1117 1399 55 2 v 1117 1427 a Fn(M-f)p 1117
+1434 V 1170 1425 a Fo(i)1197 1427 y Fu(mo)o(v)o(es)f(forw)o(ard)h(a)g
+(w)o(ord.)18 b(It)12 b(is)g(a)g(lo)q(ose)75 1481 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
+1536 y(w)o(ords.)75 1644 y Fl(1.2.3)30 b(Readline)20
+b(Killing)h(Commands)137 1739 y Fm(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
+1793 y(usually)h(b)o(y)e Fm(y)o(anking)k Fu(\(re-inserting\))d(it)g
+(bac)o(k)f(in)o(to)g(the)h(line.)31 b(If)18 b(the)h(description)g(for)f
+(a)g(command)75 1848 y(sa)o(ys)e(that)f(it)i(`kills')g(text,)f(then)h
+(y)o(ou)f(can)h(b)q(e)g(sure)f(that)g(y)o(ou)g(can)h(get)f(the)g(text)g
+(bac)o(k)g(in)i(a)e(di\013eren)o(t)75 1903 y(\(or)e(the)i(same\))e
+(place)i(later.)137 1969 y(When)c(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 Fm(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
+2023 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 2078 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
+2133 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 2199 y(Here)h(is)f(the)h(list)g
+(of)e(commands)h(for)g(killing)j(text.)75 2274 y Fo(h)p
+87 2247 56 2 v 87 2276 a Fn(C-k)p 87 2283 V 141 2274
+a Fo(i)315 2276 y Fu(Kill)f(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
+2350 y Fo(h)p 87 2324 64 2 v 87 2352 a Fn(M-d)p 87 2360
+V 149 2350 a Fo(i)315 2352 y Fu(Kill)h(from)d(the)i(cursor)e(to)h(the)g
+(end)g(of)g(the)g(curren)o(t)g(w)o(ord,)f(or)h(if)g(b)q(et)o(w)o(een)g
+(w)o(ords,)g(to)f(the)315 2407 y(end)j(of)f(the)g(next)g(w)o(ord.)75
+2482 y Fo(h)p 87 2456 118 2 v 87 2484 a Fn(M-DEL)p 87
+2491 V 202 2482 a Fo(i)315 2484 y Fu(Kill)i(from)d(the)g(cursor)h(the)f
+(start)g(of)g(the)g(previous)i(w)o(ord,)d(or)h(if)h(b)q(et)o(w)o(een)g
+(w)o(ords,)f(to)g(the)315 2539 y(start)g(of)h(the)g(previous)h(w)o
+(ord.)75 2613 y Fo(h)p 87 2587 63 2 v 87 2615 a Fn(C-w)p
+87 2623 V 148 2613 a Fo(i)315 2615 y Fu(Kill)i(from)d(the)h(cursor)g
+(to)f(the)h(previous)h(whitespace.)22 b(This)17 b(is)f(di\013eren)o(t)g
+(than)1733 2613 y Fo(h)p 1745 2587 118 2 v 1745 2615
+a Fn(M-DEL)p 1745 2623 V 1860 2613 a Fo(i)315 2670 y
+Fu(b)q(ecause)g(the)f(w)o(ord)g(b)q(oundaries)h(di\013er.)p
eop
-3 4 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(3)0 183 y Fq(C-L)168 b Fr(Clear)15 b(the)h(screen,)f(reprin)o(ting)h
-(the)f(curren)o(t)g(line)i(at)e(the)g(top.)62 350 y(Notice)22
-b(ho)o(w)e Fq(C-F)h Fr(mo)o(v)o(es)f(forw)o(ard)g(a)g(c)o(haracter,)i
-(while)g Fq(M-F)f Fr(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)36
-b(It)21 b(is)h(a)f(lo)q(ose)0 412 y(con)o(v)o(en)o(tion)15
-b(that)g(con)o(trol)g(k)o(eystrok)o(es)f(op)q(erate)h(on)g(c)o
-(haracters)f(while)j(meta)e(k)o(eystrok)o(es)f(op)q(erate)h(on)g(w)o
-(ords.)0 696 y Fk(1.2.3)30 b(Readline)15 b(Killing)g(Commands)62
-841 y Fl(Killing)25 b Fr(text)18 b(means)g(to)f(delete)i(the)g(text)e
-(from)h(the)g(line,)i(but)e(to)g(sa)o(v)o(e)f(it)i(a)o(w)o(a)o(y)d(for)
-i(later)g(use,)h(usually)0 903 y(b)o(y)c Fl(y)o(anking)k
-Fr(\(re-inserting\))c(it)g(bac)o(k)g(in)o(to)g(the)g(line.)21
-b(If)16 b(the)f(description)h(for)e(a)h(command)f(sa)o(ys)h(that)f(it)h
-(`kills')0 966 y(text,)f(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)g(y)
-o(ou)g(can)g(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o(t)g
-(\(or)f(the)i(same\))e(place)i(later.)62 1111 y(When)g(y)o(ou)f(use)g
-(a)g(kill)i(command,)e(the)h(text)e(is)i(sa)o(v)o(ed)f(in)h(a)f
-Fl(kill-ring)p Fr(.)22 b(An)o(y)16 b(n)o(um)o(b)q(er)f(of)g(consecutiv)
-o(e)h(kills)0 1173 y(sa)o(v)o(e)g(all)i(of)e(the)h(killed)i(text)d
-(together,)g(so)g(that)g(when)h(y)o(ou)f(y)o(ank)h(it)g(bac)o(k,)f(y)o
-(ou)h(get)f(it)h(all.)25 b(The)17 b(kill)h(ring)f(is)0
-1236 y(not)e(line)i(sp)q(eci\014c;)g(the)f(text)f(that)g(y)o(ou)g
-(killed)j(on)d(a)h(previously)g(t)o(yp)q(ed)g(line)h(is)f(a)o(v)m
-(ailable)i(to)d(b)q(e)h(y)o(ank)o(ed)f(bac)o(k)0 1298
-y(later,)g(when)h(y)o(ou)e(are)h(t)o(yping)h(another)e(line.)62
-1443 y(Here)i(is)f(the)h(list)g(of)e(commands)h(for)g(killing)j(text.)0
-1610 y Fq(C-K)168 b Fr(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.)0
-1714 y Fq(M-D)168 b Fr(Kill)17 b(from)d(the)h(cursor)g(to)f(the)h(end)g
-(of)g(the)g(curren)o(t)f(w)o(ord,)g(or)g(if)i(b)q(et)o(w)o(een)f(w)o
-(ords,)f(to)g(the)h(end)g(of)240 1776 y(the)g(next)h(w)o(ord.)0
-1880 y Fq(M-DEL)120 b Fr(Kill)16 b(from)d(the)i(cursor)e(the)h(start)f
-(of)h(the)g(previous)h(w)o(ord,)e(or)g(if)i(b)q(et)o(w)o(een)f(w)o
-(ords,)f(to)h(the)g(start)e(of)240 1942 y(the)j(previous)h(w)o(ord.)0
-2046 y Fq(C-W)168 b Fr(Kill)18 b(from)e(the)g(cursor)g(to)f(the)h
-(previous)h(whitespace.)24 b(This)17 b(is)f(di\013eren)o(t)h(than)f
-Fq(M-DEL)f Fr(b)q(ecause)240 2109 y(the)g(w)o(ord)g(b)q(oundaries)h
-(di\013er.)62 2275 y(And,)e(here)g(is)h(ho)o(w)e(to)g
-Fl(y)o(ank)j Fr(the)e(text)f(bac)o(k)g(in)o(to)h(the)f(line.)22
-b(Y)l(anking)14 b(means)g(to)f(cop)o(y)g(the)h(most-recen)o(tly-)0
-2337 y(killed)j(text)e(from)g(the)g(kill)i(bu\013er.)0
-2504 y Fq(C-Y)168 b Fr(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.)0
-2608 y Fq(M-Y)168 b Fr(Rotate)13 b(the)h(kill-ring,)i(and)e(y)o(ank)g
-(the)g(new)g(top.)19 b(Y)l(ou)14 b(can)g(only)g(do)g(this)g(if)g(the)g
-(prior)g(command)240 2670 y(is)i Fq(C-Y)e Fr(or)h Fq(M-Y)p
-Fr(.)p eop
-4 5 bop 0 -58 a Fr(4)1472 b(GNU)15 b(Readline)i(Library)0
-183 y Fk(1.2.4)30 b(Readline)15 b(Argumen)n(ts)62 345
-y Fr(Y)l(ou)k(can)g(pass)f(n)o(umeric)i(argumen)o(ts)d(to)h(Readline)j
-(commands.)30 b(Sometimes)19 b(the)f(argumen)o(t)g(acts)g(as)g(a)0
-407 y(rep)q(eat)f(coun)o(t,)f(other)g(times)g(it)h(is)g(the)g
-Fl(sign)f Fr(of)g(the)h(argumen)o(t)f(that)f(is)i(signi\014can)o(t.)25
-b(If)16 b(y)o(ou)h(pass)f(a)g(negativ)o(e)0 470 y(argumen)o(t)g(to)g(a)
-h(command)g(whic)o(h)h(normally)f(acts)g(in)h(a)e(forw)o(ard)g
-(direction,)i(that)f(command)f(will)j(act)d(in)i(a)0
-532 y(bac)o(kw)o(ard)13 b(direction.)20 b(F)l(or)13 b(example,)i(to)d
-(kill)k(text)d(bac)o(k)g(to)g(the)h(start)e(of)h(the)h(line,)h(y)o(ou)e
-(migh)o(t)g(t)o(yp)q(e)h Fq(M--)h(C-k)o Fr(.)62 694 y(The)k(general)g
-(w)o(a)o(y)f(to)g(pass)g(n)o(umeric)i(argumen)o(ts)e(to)g(a)g(command)h
-(is)g(to)f(t)o(yp)q(e)g(meta)g(digits)i(b)q(efore)f(the)0
-756 y(command.)36 b(If)21 b(the)g(\014rst)f(`digit')h(y)o(ou)g(t)o(yp)q
-(e)f(is)i(a)e(min)o(us)h(sign)g(\()p Fq(-)p Fr(\),)g(then)g(the)g(sign)
-g(of)g(the)f(argumen)o(t)g(will)0 818 y(b)q(e)i(negativ)o(e.)40
-b(Once)22 b(y)o(ou)f(ha)o(v)o(e)h(t)o(yp)q(ed)g(one)f(meta)g(digit)i
-(to)e(get)g(the)h(argumen)o(t)f(started,)h(y)o(ou)f(can)h(t)o(yp)q(e)0
-881 y(the)c(remainder)h(of)f(the)g(digits,)h(and)f(then)h(the)f
-(command.)29 b(F)l(or)17 b(example,)i(to)f(giv)o(e)g(the)g
-Fq(C-D)g Fr(command)g(an)0 943 y(argumen)o(t)c(of)h(10,)f(y)o(ou)h
-(could)h(t)o(yp)q(e)g(`)p Fq(M-1)e(0)h(C-d)p Fr('.)0
-1375 y Fk(1.2.5)30 b(Searc)n(hing)15 b(for)g(Commands)h(in)f(the)g
-(History)62 1537 y Fr(Readline)j(pro)o(vides)d(commands)g(for)g(searc)o
-(hing)h(through)e(the)i(command)f(history)g(for)g(lines)h(con)o
-(taining)g(a)0 1599 y(sp)q(eci\014ed)h(string.)j(There)c(are)f(t)o(w)o
-(o)e(searc)o(h)i(mo)q(des:)20 b Fl(incremen)o(tal)f Fr(and)c
-Fl(non-incremen)o(tal)p Fr(.)62 1761 y(Incremen)o(tal)i(searc)o(hes)e
-(b)q(egin)i(b)q(efore)f(the)g(user)f(has)h(\014nished)h(t)o(yping)f
-(the)g(searc)o(h)f(string.)21 b(As)15 b(eac)o(h)h(c)o(har-)0
-1823 y(acter)f(of)h(the)g(searc)o(h)f(string)h(is)g(t)o(yp)q(ed,)g
-(readline)h(displa)o(ys)g(the)f(next)g(en)o(try)f(from)g(the)h(history)
-g(matc)o(hing)g(the)0 1885 y(string)g(t)o(yp)q(ed)g(so)f(far.)20
-b(An)c(incremen)o(tal)h(searc)o(h)e(requires)i(only)f(as)f(man)o(y)g(c)
-o(haracters)g(as)h(needed)h(to)e(\014nd)h(the)0 1948
-y(desired)g(history)f(en)o(try)l(.)20 b(The)15 b(Escap)q(e)h(c)o
-(haracter)e(is)h(used)h(to)e(terminate)h(an)g(incremen)o(tal)h(searc)o
-(h.)k(Con)o(trol-J)0 2010 y(will)c(also)f(terminate)g(the)g(searc)o(h.)
-k(Con)o(trol-G)14 b(will)j(ab)q(ort)d(an)h(incremen)o(tal)g(searc)o(h)g
-(and)g(restore)f(the)h(original)0 2072 y(line.)30 b(When)18
-b(the)h(searc)o(h)e(is)i(terminated,)g(the)f(history)g(en)o(try)f(con)o
-(taining)i(the)f(searc)o(h)g(string)g(b)q(ecomes)h(the)0
-2134 y(curren)o(t)g(line.)35 b(T)l(o)20 b(\014nd)g(other)f(matc)o(hing)
-h(en)o(tries)g(in)g(the)g(history)g(list,)h(t)o(yp)q(e)e(Con)o(trol-S)h
-(or)f(Con)o(trol-R)g(as)0 2197 y(appropriate.)k(This)17
-b(will)h(searc)o(h)e(bac)o(kw)o(ard)g(or)f(forw)o(ard)g(in)j(the)e
-(history)g(for)g(the)g(next)h(en)o(try)f(matc)o(hing)g(the)0
-2259 y(searc)o(h)c(string)h(t)o(yp)q(ed)f(so)g(far.)19
-b(An)o(y)12 b(other)g(k)o(ey)g(sequence)i(b)q(ound)f(to)f(a)g(readline)
-i(command)e(will)i(terminate)f(the)0 2321 y(searc)o(h)j(and)h(execute)g
-(that)f(command.)24 b(F)l(or)16 b(instance,)h(a)g Fq(newline)e
-Fr(will)j(terminate)f(the)g(searc)o(h)f(and)h(accept)0
-2384 y(the)e(line,)i(thereb)o(y)e(executing)h(the)g(command)f(from)f
-(the)h(history)h(list.)62 2545 y(Non-incremen)o(tal)k(searc)o(hes)f
-(read)f(the)h(en)o(tire)g(searc)o(h)g(string)f(b)q(efore)h(starting)f
-(to)g(searc)o(h)h(for)f(matc)o(hing)0 2608 y(history)g(lines.)29
-b(The)18 b(searc)o(h)g(string)g(ma)o(y)f(b)q(e)h(t)o(yp)q(ed)g(b)o(y)g
-(the)g(user)g(or)f(part)g(of)h(the)g(con)o(ten)o(ts)f(of)g(the)h
-(curren)o(t)0 2670 y(line.)p eop
-5 6 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(5)0 183 y Fp(1.3)33 b(Readline)16 b(Init)g(File)62
-324 y Fr(Although)h(the)f(Readline)j(library)e(comes)f(with)g(a)g(set)g
-(of)g Fq(emacs)p Fr(-lik)o(e)h(k)o(eybindings)h(installed)g(b)o(y)e
-(default,)0 387 y(it)e(is)g(p)q(ossible)i(that)d(y)o(ou)g(w)o(ould)h
-(lik)o(e)h(to)e(use)h(a)f(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)
-21 b(Y)l(ou)14 b(can)g(customize)g(programs)0 449 y(that)j(use)h
-(Readline)i(b)o(y)e(putting)h(commands)e(in)i(an)f Fl(inputrc)j
-Fr(\014le)e(in)g(y)o(our)e(home)h(directory)l(.)28 b(The)19
-b(name)e(of)0 511 y(this)e(\014le)h(is)g(tak)o(en)e(from)h(the)g(v)m
-(alue)h(of)e(the)h(en)o(vironmen)o(t)h(v)m(ariable)g
-Fq(INPUTRC)p Fr(.)j(If)c(that)f(v)m(ariable)j(is)e(unset,)g(the)0
-573 y(default)h(is)f(`)p Fq(~/.inputrc)p Fr('.)62 714
-y(When)k(a)g(program)e(whic)o(h)j(uses)f(the)g(Readline)i(library)e
-(starts)f(up,)h(the)g(init)h(\014le)g(is)f(read,)g(and)g(the)g(k)o(ey)0
-777 y(bindings)e(are)e(set.)62 918 y(In)j(addition,)h(the)f
-Fq(C-x)c(C-r)k Fr(command)f(re-reads)g(this)h(init)h(\014le,)g(th)o(us)
-e(incorp)q(orating)h(an)o(y)f(c)o(hanges)h(that)0 980
-y(y)o(ou)d(migh)o(t)g(ha)o(v)o(e)g(made)g(to)f(it.)0
-1224 y Fk(1.3.1)30 b(Readline)15 b(Init)g(File)g(Syn)n(tax)62
-1365 y Fr(There)h(are)f(only)h(a)f(few)g(basic)h(constructs)f(allo)o(w)
-o(ed)h(in)g(the)g(Readline)i(init)e(\014le.)22 b(Blank)16
-b(lines)h(are)e(ignored.)0 1427 y(Lines)f(b)q(eginning)h(with)e(a)f(`)p
-Fq(#)p Fr(')g(are)g(commen)o(ts.)19 b(Lines)14 b(b)q(eginning)h(with)e
-(a)f(`)p Fq($)p Fr(')g(indicate)i(conditional)g(constructs)0
-1490 y(\(see)i(Section)h(1.3.2)e([Conditional)i(Init)g(Constructs],)e
-(page)i(8\).)22 b(Other)16 b(lines)i(denote)f(v)m(ariable)h(settings)e
-(and)0 1552 y(k)o(ey)f(bindings.)0 1710 y(V)l(ariable)h(Settings)240
-1772 y(Y)l(ou)j(can)g(c)o(hange)g(the)g(state)f(of)g(a)g(few)h(v)m
-(ariables)h(in)g(Readline)h(b)o(y)d(using)i(the)f Fq(set)f
-Fr(command)240 1834 y(within)e(the)f(init)h(\014le.)k(Here)15
-b(is)g(ho)o(w)g(y)o(ou)f(w)o(ould)h(sp)q(ecify)h(that)e(y)o(ou)g(wish)i
-(to)e(use)h Fq(vi)f Fr(line)j(editing)240 1896 y(commands:)360
-1965 y Fq(set)23 b(editing-mode)g(vi)240 2044 y Fr(Righ)o(t)14
-b(no)o(w,)f(there)h(are)f(only)h(a)f(few)h(v)m(ariables)g(whic)o(h)h
-(can)f(b)q(e)g(set;)f(so)g(few,)h(in)g(fact,)f(that)g(w)o(e)g(just)240
-2106 y(list)j(them)f(here:)240 2201 y Fq(bell-style)480
-2263 y Fr(Con)o(trols)h(what)f(happ)q(ens)j(when)f(Readline)h(w)o(an)o
-(ts)e(to)f(ring)i(the)f(terminal)h(b)q(ell.)26 b(If)480
-2326 y(set)17 b(to)f(`)p Fq(none)p Fr(',)g(Readline)j(nev)o(er)f(rings)
-f(the)g(b)q(ell.)28 b(If)17 b(set)g(to)f(`)p Fq(visible)p
-Fr(',)g(Readline)480 2388 y(uses)21 b(a)g(visible)j(b)q(ell)f(if)e(one)
-h(is)f(a)o(v)m(ailable.)40 b(If)21 b(set)g(to)g(`)p Fq(audible)p
-Fr(')e(\(the)i(default\),)480 2450 y(Readline)d(attempts)c(to)g(ring)i
-(the)f(terminal's)h(b)q(ell.)240 2545 y Fq(comment-begin)480
-2608 y Fr(The)d(string)h(to)e(insert)i(at)e(the)i(b)q(eginning)h(of)e
-(the)g(line)i(when)f(the)f Fq(insert-comment)480 2670
-y Fr(command)i(is)h(executed.)21 b(The)15 b(default)h(v)m(alue)g(is)g
-Fq("#")p Fr(.)p eop
-6 7 bop 0 -58 a Fr(6)1472 b(GNU)15 b(Readline)i(Library)240
-183 y Fq(completion-query-items)480 246 y Fr(The)12 b(n)o(um)o(b)q(er)g
-(of)f(p)q(ossible)j(completions)e(that)f(determines)i(when)f(the)g
-(user)g(is)g(ask)o(ed)480 308 y(whether)k(he)h(w)o(an)o(ts)d(to)i(see)g
-(the)g(list)h(of)e(p)q(ossibiliti)q(es.)25 b(If)16 b(the)g(n)o(um)o(b)q
-(er)h(of)e(p)q(ossible)480 370 y(completions)i(is)f(greater)f(than)h
-(this)h(v)m(alue,)f(Readline)j(will)e(ask)f(the)g(user)g(whether)480
-432 y(or)k(not)h(he)h(wishes)f(to)g(view)g(them;)j(otherwise,)e(they)f
-(are)g(simply)h(listed.)39 b(The)480 495 y(default)16
-b(limit)g(is)g Fq(100)p Fr(.)240 592 y Fq(convert-meta)480
-654 y Fr(If)21 b(set)f(to)g(`)p Fq(on)p Fr(',)g(Readline)j(will)f(con)o
-(v)o(ert)e(c)o(haracters)f(with)i(the)g(eigth)f(bit)h(set)g(to)480
-716 y(an)c(ASCI)q(I)g(k)o(ey)g(sequence)h(b)o(y)e(stripping)i(the)f
-(eigth)g(bit)g(and)g(prep)q(ending)i(an)d Fq(ESC)480
-779 y Fr(c)o(haracter,)h(con)o(v)o(erting)g(them)g(to)f(a)h
-(meta-pre\014xed)h(k)o(ey)f(sequence.)27 b(The)17 b(default)480
-841 y(v)m(alue)f(is)g(`)p Fq(on)p Fr('.)240 938 y Fq
-(disable-completion)480 1000 y Fr(If)e(set)f(to)g(`)p
-Fq(On)p Fr(',)f(readline)j(will)h(inhibit)f(w)o(ord)e(completion.)20
-b(Completion)15 b(c)o(haracters)480 1063 y(will)h(b)q(e)g(inserted)g
-(in)o(to)e(the)h(line)i(as)d(if)h(they)g(had)g(b)q(een)h(mapp)q(ed)g
-(to)e Fq(self-insert)p Fr(.)480 1125 y(The)h(default)h(is)g(`)p
-Fq(off)p Fr('.)240 1222 y Fq(editing-mode)480 1285 y
-Fr(The)d Fq(editing-mode)e Fr(v)m(ariable)j(con)o(trols)e(whic)o(h)h
-(editing)h(mo)q(de)f(y)o(ou)f(are)g(using.)20 b(By)480
-1347 y(default,)f(Readline)h(starts)c(up)i(in)h(Emacs)e(editing)i(mo)q
-(de,)f(where)g(the)g(k)o(eystrok)o(es)480 1409 y(are)g(most)f(similar)i
-(to)e(Emacs.)27 b(This)19 b(v)m(ariable)g(can)f(b)q(e)h(set)e(to)g
-(either)i(`)p Fq(emacs)p Fr(')d(or)480 1471 y(`)p Fq(vi)p
-Fr('.)240 1569 y Fq(enable-keypad)480 1631 y Fr(When)g(set)g(to)f(`)p
-Fq(on)p Fr(',)g(readline)j(will)f(try)e(to)h(enable)h(the)f
-(application)h(k)o(eypad)f(when)480 1693 y(it)f(is)g(called.)22
-b(Some)15 b(systems)f(need)i(this)f(to)f(enable)i(the)f(arro)o(w)f(k)o
-(eys.)19 b(The)c(default)480 1755 y(is)h(`)p Fq(off)p
-Fr('.)240 1853 y Fq(expand-tilde)480 1915 y Fr(If)i(set)f(to)f(`)p
-Fq(on)p Fr(',)h(tilde)h(expansion)h(is)e(p)q(erformed)h(when)g
-(Readline)h(attempts)e(w)o(ord)480 1977 y(completion.)k(The)15
-b(default)h(is)g(`)p Fq(off)p Fr('.)240 2075 y Fq
-(horizontal-scroll-mode)480 2137 y Fr(This)j(v)m(ariable)h(can)e(b)q(e)
-i(set)e(to)g(either)h(`)p Fq(on)p Fr(')e(or)h(`)p Fq(off)p
-Fr('.)28 b(Setting)19 b(it)g(to)f(`)p Fq(on)p Fr(')f(means)480
-2199 y(that)f(the)h(text)f(of)h(the)f(lines)j(that)d(y)o(ou)g(edit)i
-(will)g(scroll)g(horizon)o(tally)f(on)g(a)g(single)480
-2261 y(screen)h(line)h(when)f(they)f(are)g(longer)h(than)f(the)g(width)
-h(of)f(the)g(screen,)h(instead)g(of)480 2324 y(wrapping)e(on)o(to)e(a)h
-(new)g(screen)h(line.)21 b(By)16 b(default,)f(this)h(v)m(ariable)g(is)g
-(set)f(to)g(`)p Fq(off)p Fr('.)240 2421 y Fq(keymap)96
-b Fr(Sets)13 b(Readline's)i(idea)e(of)g(the)g(curren)o(t)f(k)o(eymap)h
-(for)f(k)o(ey)h(binding)i(commands.)k(Ac-)480 2483 y(ceptable)d
-Fq(keymap)e Fr(names)h(are)g Fq(emacs)p Fr(,)f Fq(emacs-standard)p
-Fr(,)f Fq(emacs-meta)p Fr(,)g Fq(emacs-)480 2545 y(ctlx)p
-Fr(,)18 b Fq(vi)p Fr(,)h Fq(vi-command)p Fr(,)e(and)i
-Fq(vi-insert)p Fr(.)28 b Fq(vi)18 b Fr(is)h(equiv)m(alen)o(t)h(to)e
-Fq(vi-command)p Fr(;)480 2608 y Fq(emacs)d Fr(is)i(equiv)m(alen)o(t)h
-(to)d Fq(emacs-standard)p Fr(.)20 b(The)d(default)f(v)m(alue)i(is)e
-Fq(emacs)p Fr(.)22 b(The)480 2670 y(v)m(alue)16 b(of)f(the)g
-Fq(editing-mode)f Fr(v)m(ariable)j(also)e(a\013ects)f(the)h(default)h
-(k)o(eymap.)p eop
-7 8 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(7)240 183 y Fq(mark-directories)480 246 y Fr(If)22
-b(set)g(to)g(`)p Fq(on)p Fr(',)g(completed)h(directory)f(names)h(ha)o
-(v)o(e)e(a)h(slash)h(app)q(ended.)42 b(The)480 308 y(default)16
-b(is)f(`)p Fq(on)p Fr('.)240 388 y Fq(mark-modified-lines)480
-450 y Fr(This)f(v)m(ariable,)h(when)e(set)g(to)g(`)p
-Fq(on)p Fr(',)f(sa)o(ys)h(to)g(displa)o(y)h(an)f(asterisk)g(\(`)p
-Fq(*)p Fr('\))f(at)h(the)g(start)480 512 y(of)f(history)h(lines)h(whic)
-o(h)f(ha)o(v)o(e)f(b)q(een)i(mo)q(di\014ed.)21 b(This)13
-b(v)m(ariable)h(is)f(`)p Fq(off)p Fr(')e(b)o(y)i(default.)240
-593 y Fq(input-meta)480 655 y Fr(If)21 b(set)g(to)g(`)p
-Fq(on)p Fr(',)g(Readline)i(will)g(enable)g(eigh)o(t-bit)f(input)g(\(it)
-f(will)i(not)d(strip)i(the)480 717 y(eigh)o(th)e(bit)f(from)f(the)i(c)o
-(haracters)e(it)h(reads\),)h(regardless)f(of)f(what)h(the)g(terminal)
-480 779 y(claims)d(it)g(can)f(supp)q(ort.)21 b(The)15
-b(default)h(v)m(alue)h(is)e(`)p Fq(off)p Fr('.)20 b(The)15
-b(name)g Fq(meta-flag)f Fr(is)480 842 y(a)h(synon)o(ym)g(for)f(this)i
-(v)m(ariable.)240 922 y Fq(output-meta)480 984 y Fr(If)11
-b(set)f(to)g(`)p Fq(on)p Fr(',)g(Readline)j(will)g(displa)o(y)e(c)o
-(haracters)f(with)h(the)g(eigh)o(th)g(bit)g(set)g(directly)480
-1046 y(rather)k(than)g(as)f(a)h(meta-pre\014xed)h(escap)q(e)g
-(sequence.)21 b(The)16 b(default)f(is)h(`)p Fq(off)p
-Fr('.)240 1126 y Fq(show-all-if-ambiguous)480 1189 y
-Fr(This)f(alters)f(the)h(default)g(b)q(eha)o(vior)g(of)f(the)h
-(completion)g(functions.)21 b(If)14 b(set)h(to)e(`)p
-Fq(on)p Fr(',)480 1251 y(w)o(ords)18 b(whic)o(h)i(ha)o(v)o(e)f(more)f
-(than)h(one)g(p)q(ossible)i(completion)f(cause)f(the)g(matc)o(hes)480
-1313 y(to)e(b)q(e)h(listed)h(immediately)g(instead)f(of)f(ringing)i
-(the)e(b)q(ell.)29 b(The)18 b(default)g(v)m(alue)g(is)480
-1375 y(`)p Fq(off)p Fr('.)240 1456 y Fq(visible-stats)480
-1518 y Fr(If)c(set)g(to)f(`)p Fq(on)p Fr(',)f(a)i(c)o(haracter)f
-(denoting)h(a)g(\014le's)g(t)o(yp)q(e)g(is)g(app)q(ended)i(to)d(the)h
-(\014lename)480 1580 y(when)i(listing)g(p)q(ossible)h(completions.)k
-(The)16 b(default)f(is)h(`)p Fq(off)p Fr('.)0 1660 y(Key)g(Bindings)240
-1722 y(The)k(syn)o(tax)f(for)g(con)o(trolling)i(k)o(ey)e(bindings)j(in)
-e(the)g(init)h(\014le)g(is)f(simple.)35 b(First)19 b(y)o(ou)g(ha)o(v)o
-(e)h(to)240 1785 y(kno)o(w)13 b(the)h(name)g(of)f(the)h(command)g(that)
-f(y)o(ou)g(w)o(an)o(t)g(to)g(c)o(hange.)20 b(The)14 b(follo)o(wing)g
-(pages)g(con)o(tain)240 1847 y(tables)i(of)f(the)h(command)g(name,)f
-(the)h(default)g(k)o(eybinding,)i(and)e(a)f(short)g(description)i(of)f
-(what)240 1909 y(the)f(command)g(do)q(es.)240 1980 y(Once)h(y)o(ou)e
-(kno)o(w)g(the)h(name)g(of)f(the)h(command,)f(simply)i(place)g(the)f
-(name)f(of)h(the)f(k)o(ey)h(y)o(ou)f(wish)240 2043 y(to)g(bind)j(the)e
-(command)g(to,)f(a)g(colon,)i(and)f(then)g(the)g(name)g(of)g(the)g
-(command)g(on)g(a)f(line)j(in)f(the)240 2105 y(init)h(\014le.)22
-b(The)16 b(name)g(of)f(the)h(k)o(ey)f(can)h(b)q(e)g(expressed)h(in)f
-(di\013eren)o(t)g(w)o(a)o(ys,)f(dep)q(ending)i(on)f(whic)o(h)240
-2167 y(is)g(most)e(comfortable)h(for)g(y)o(ou.)240 2247
-y Fl(k)o(eyname)s Fr(:)k Fl(function-name)g Fr(or)c Fl(macro)480
-2310 y(k)o(eyname)j Fr(is)d(the)h(name)f(of)g(a)g(k)o(ey)g(sp)q(elled)i
-(out)e(in)h(English.)21 b(F)l(or)15 b(example:)600 2370
-y Fq(Control-u:)22 b(universal-argument)600 2422 y(Meta-Rubout:)g
-(backward-kill-word)600 2474 y(Control-o:)g(">)i(output")480
-2545 y Fr(In)12 b(the)g(ab)q(o)o(v)o(e)f(example,)h(`)p
-Fq(C-u)p Fr(')f(is)h(b)q(ound)g(to)f(the)h(function)g
-Fq(universal-argument)p Fr(,)480 2608 y(and)h(`)p Fq(C-o)p
-Fr(')f(is)h(b)q(ound)h(to)f(run)g(the)g(macro)f(expressed)i(on)f(the)g
-(righ)o(t)g(hand)g(side)h(\(that)480 2670 y(is,)h(to)g(insert)h(the)f
-(text)g(`)p Fq(>)f(output)p Fr(')g(in)o(to)h(the)h(line\).)p
+%%Page: 3 5
+3 4 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(3)137 183 y(Here)21 b(is)h(ho)o(w)e(to)g Fm(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 238 y(recen)o(tly-killed)d
+(text)d(from)f(the)i(kill)h(bu\013er.)75 322 y Fo(h)p
+87 296 56 2 v 87 324 a Fn(C-y)p 87 331 V 141 322 a Fo(i)315
+324 y Fu(Y)l(ank)e(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 405
+y Fo(h)p 87 379 63 2 v 87 407 a Fn(M-y)p 87 415 V 148
+405 a Fo(i)315 407 y Fu(Rotate)h(the)g(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 462 y(command)d(is)568 460 y Fo(h)p 580 434
+56 2 v 580 462 a Fn(C-y)p 580 470 V 634 460 a Fo(i)664
+462 y Fu(or)719 460 y Fo(h)p 732 434 63 2 v 732 462 a
+Fn(M-y)p 732 470 V 792 460 a Fo(i)807 462 y Fu(.)75 582
+y Fl(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 682 y
+Fu(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g(Readline)i
+(commands.)k(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
+737 y(as)20 b(a)g(rep)q(eat)g(coun)o(t,)h(other)f(times)g(it)h(is)g
+(the)f Fm(sign)h Fu(of)f(the)g(argumen)o(t)f(that)h(is)h(signi\014can)o
+(t.)36 b(If)20 b(y)o(ou)75 792 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 847 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 902 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 973 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 1027
+y(the)h(command.)23 b(If)16 b(the)g(\014rst)g(`digit')g(t)o(yp)q(ed)g
+(is)h(a)f(min)o(us)g(sign)h(\()1194 1025 y Fo(h)p 1206
+999 12 2 v 1206 1027 a Fn(-)p 1206 1035 V 1215 1025 a
+Fo(i)1230 1027 y Fu(\),)f(then)g(the)g(sign)h(of)f(the)g(argumen)o(t)75
+1082 y(will)g(b)q(e)f(negativ)o(e.)k(Once)c(y)o(ou)f(ha)o(v)o(e)g(t)o
+(yp)q(ed)g(one)h(meta)e(digit)i(to)f(get)f(the)h(argumen)o(t)g
+(started,)f(y)o(ou)h(can)75 1137 y(t)o(yp)q(e)19 b(the)g(remainder)g
+(of)f(the)h(digits,)h(and)f(then)g(the)g(command.)30
+b(F)l(or)18 b(example,)i(to)e(giv)o(e)h(the)1793 1135
+y Fo(h)p 1805 1109 57 2 v 1805 1137 a Fn(C-d)p 1805 1145
+V 1860 1135 a Fo(i)75 1192 y Fu(command)c(an)g(argumen)o(t)g(of)f(10,)h
+(y)o(ou)f(could)j(t)o(yp)q(e)e(`)p Ft(M-1)f(0)h(C-d)p
+Fu('.)75 1312 y Fl(1.2.5)30 b(Searc)n(hing)21 b(for)f(Commands)h(in)f
+(the)h(History)137 1412 y Fu(Readline)e(pro)o(vides)d(commands)g(for)g
+(searc)o(hing)g(through)g(the)g(command)g(history)g(for)g(lines)i(con-)
+75 1467 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 Fm(incremen)o(tal)e
+Fu(and)e Fm(non-incremen)o(tal)p Fu(.)137 1538 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
+1593 y(c)o(haracter)k(of)g(the)h(searc)o(h)g(string)f(is)h(t)o(yp)q
+(ed,)h(Readline)h(displa)o(ys)e(the)g(next)g(en)o(try)f(from)g(the)h
+(history)75 1648 y(matc)o(hing)e(the)g(string)g(t)o(yp)q(ed)h(so)e
+(far.)22 b(An)17 b(incremen)o(tal)g(searc)o(h)f(requires)h(only)f(as)g
+(man)o(y)g(c)o(haracters)75 1702 y(as)j(needed)h(to)f(\014nd)g(the)h
+(desired)g(history)f(en)o(try)l(.)31 b(The)1084 1700
+y Fo(h)p 1096 1674 70 2 v 1096 1702 a Fn(ESC)p 1096 1710
+V 1163 1700 a Fo(i)1197 1702 y Fu(c)o(haracter)18 b(is)i(used)f(to)g
+(terminate)g(an)75 1757 y(incremen)o(tal)13 b(searc)o(h.)472
+1755 y Fo(h)p 484 1729 49 2 v 484 1757 a Fn(C-j)p 484
+1765 V 530 1755 a Fo(i)556 1757 y Fu(will)g(also)f(terminate)f(the)h
+(searc)o(h.)1158 1755 y Fo(h)p 1170 1729 55 2 v 1170
+1757 a Fn(C-g)p 1170 1765 V 1223 1755 a Fo(i)1249 1757
+y Fu(will)h(ab)q(ort)e(an)h(incremen)o(tal)g(searc)o(h)75
+1812 y(and)17 b(restore)f(the)g(original)i(line.)25 b(When)17
+b(the)g(searc)o(h)f(is)h(terminated,)g(the)g(history)f(en)o(try)g(con)o
+(taining)75 1867 y(the)i(searc)o(h)g(string)g(b)q(ecomes)g(the)g
+(curren)o(t)g(line.)30 b(T)l(o)18 b(\014nd)g(other)g(matc)o(hing)g(en)o
+(tries)g(in)h(the)f(history)75 1922 y(list,)g(t)o(yp)q(e)270
+1920 y Fo(h)p 282 1894 52 2 v 282 1922 a Fn(C-s)p 282
+1929 V 331 1920 a Fo(i)363 1922 y Fu(or)420 1920 y Fo(h)p
+432 1894 51 2 v 432 1922 a Fn(C-r)p 432 1929 V 481 1920
+a Fo(i)513 1922 y Fu(as)e(appropriate.)25 b(This)18 b(will)g(searc)o(h)
+f(bac)o(kw)o(ard)f(or)h(forw)o(ard)e(in)j(the)f(history)75
+1976 y(for)e(the)g(next)h(en)o(try)f(matc)o(hing)h(the)f(searc)o(h)h
+(string)f(t)o(yp)q(ed)h(so)f(far.)20 b(An)o(y)c(other)f(k)o(ey)g
+(sequence)i(b)q(ound)75 2031 y(to)12 b(a)h(Readline)i(command)e(will)i
+(terminate)d(the)i(searc)o(h)e(and)h(execute)h(that)e(command.)19
+b(F)l(or)13 b(instance,)75 2086 y(a)112 2084 y Fo(h)p
+124 2058 76 2 v 124 2086 a Fn(RET)p 124 2094 V 197 2084
+a Fo(i)226 2086 y Fu(will)j(terminate)e(the)g(searc)o(h)g(and)h(accept)
+f(the)g(line,)i(thereb)o(y)e(executing)h(the)g(command)f(from)75
+2141 y(the)h(history)g(list.)137 2212 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 2267 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
+2322 y(con)o(ten)o(ts)15 b(of)f(the)i(curren)o(t)f(line.)75
+2460 y Fs(1.3)33 b(Readline)23 b(Init)h(File)137 2560
+y Fu(Although)18 b(the)g(Readline)i(library)e(comes)g(with)f(a)h(set)f
+(of)g Ft(emacs)p Fu(-lik)o(e)h(k)o(eybindings)i(installed)f(b)o(y)75
+2615 y(default,)13 b(it)g(is)g(p)q(ossible)h(to)e(use)g(a)g(di\013eren)
+o(t)h(set)f(of)g(k)o(eybindings.)21 b(An)o(y)12 b(user)h(can)f
+(customize)h(programs)75 2670 y(that)g(use)i(Readline)h(b)o(y)e
+(putting)g(commands)g(in)h(an)f Fm(inputrc)j Fu(\014le)e(in)g(his)g
+(home)f(directory)l(.)20 b(The)14 b(name)p eop
+%%Page: 4 6
+4 5 bop 75 -58 a Fu(4)1322 b(GNU)15 b(Readline)i(Library)75
+183 y(of)e(this)h(\014le)h(is)f(tak)o(en)f(from)g(the)g(v)m(alue)i(of)e
+(the)h(en)o(vironmen)o(t)g(v)m(ariable)h Ft(INPUTRC)p
+Fu(.)j(If)c(that)e(v)m(ariable)j(is)75 238 y(unset,)e(the)g(default)h
+(is)g(`)p Ft(~/.inputrc)p Fu('.)137 310 y(When)f(a)g(program)f(whic)o
+(h)h(uses)g(the)g(Readline)i(library)f(starts)d(up,)i(the)g(init)h
+(\014le)g(is)f(read,)g(and)g(the)75 364 y(k)o(ey)g(bindings)i(are)e
+(set.)137 436 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 491 y(that)h(y)o(ou)h(migh)o(t)g(ha)o
+(v)o(e)g(made)g(to)g(it.)75 612 y Fl(1.3.1)30 b(Readline)20
+b(Init)g(File)h(Syn)n(tax)137 712 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)i(init)f
+(\014le.)26 b(Blank)18 b(lines)g(are)75 767 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 822 y(conditional)c(constructs)f(\(see)g(Section)g
+(1.3.2)f([Conditional)h(Init)h(Constructs],)e(page)h(7\).)k(Other)c
+(lines)75 877 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f
+(bindings.)75 963 y(V)l(ariable)h(Settings)315 1018 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)k(b)o(y)d
+(altering)h(the)f(v)m(alues)h(of)315 1073 y(v)m(ariables)13
+b(in)g(Readline)i(using)d(the)g Ft(set)g Fu(command)g(within)h(the)f
+(init)h(\014le.)20 b(Here)13 b(is)f(ho)o(w)g(to)315 1127
+y(c)o(hange)e(from)g(the)g(default)h(Emacs-lik)o(e)g(k)o(ey)f(binding)i
+(to)e(use)g Ft(vi)g Fu(line)i(editing)g(commands:)435
+1194 y Ft(set)23 b(editing-mode)g(vi)315 1263 y Fu(A)15
+b(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.)315 1347 y
+Ft(bell-style)555 1402 y Fu(Con)o(trols)21 b(what)h(happ)q(ens)h(when)f
+(Readline)i(w)o(an)o(ts)d(to)g(ring)i(the)f(termi-)555
+1457 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p Ft(none)p
+Fu(',)g(Readline)j(nev)o(er)e(rings)g(the)f(b)q(ell.)32
+b(If)19 b(set)g(to)555 1512 y(`)p Ft(visible)p Fu(',)c(Readline)j(uses)
+f(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 1567 y(`)p Ft(audible)p Fu(')g(\(the)h
+(default\),)i(Readline)h(attempts)d(to)g(ring)h(the)g(terminal's)555
+1621 y(b)q(ell.)315 1705 y Ft(comment-begin)555 1760
+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 1815 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 1899 y Ft(completion-ignore-case)555
+1954 y Fu(If)e(set)f(to)g(`)p Ft(on)p Fu(',)g(Readline)j(p)q(erforms)d
+(\014lename)i(matc)o(hing)f(and)g(completion)555 2009
+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 2093 y Ft(completion-query-items)
+555 2148 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 2202 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 2257 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 2312 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
+2367 y(they)i(are)g(simply)i(listed.)k(The)15 b(default)h(limit)h(is)e
+Ft(100)p Fu(.)315 2451 y Ft(convert-meta)555 2506 y Fu(If)c(set)g(to)g
+(`)p Ft(on)p Fu(',)f(Readline)j(will)g(con)o(v)o(ert)d(c)o(haracters)h
+(with)g(the)g(eigh)o(th)h(bit)f(set)555 2560 y(to)i(an)h(ASCI)q(I)h(k)o
+(ey)e(sequence)i(b)o(y)f(stripping)g(the)g(eigh)o(th)g(bit)g(and)g
+(prep)q(end-)555 2615 y(ing)j(an)695 2613 y Fo(h)p 708
+2587 70 2 v 708 2615 a Fn(ESC)p 708 2623 V 775 2613 a
+Fo(i)805 2615 y Fu(c)o(haracter,)f(con)o(v)o(erting)f(them)h(to)g(a)f
+(meta-pre\014xed)i(k)o(ey)f(se-)555 2670 y(quence.)21
+b(The)15 b(default)h(v)m(alue)h(is)e(`)p Ft(on)p Fu('.)p
eop
-8 9 bop 0 -58 a Fr(8)1472 b(GNU)15 b(Readline)i(Library)240
-183 y Fq(")p Fl(k)o(eyseq)q Fq(")p Fr(:)j Fl(function-name)e
-Fr(or)d Fl(macro)480 246 y(k)o(eyseq)j Fr(di\013ers)f(from)f
-Fl(k)o(eyname)k Fr(ab)q(o)o(v)o(e)c(in)i(that)e(strings)h(denoting)h
-(an)f(en)o(tire)g(k)o(ey)480 308 y(sequence)i(can)f(b)q(e)h(sp)q
-(eci\014ed,)i(b)o(y)d(placing)h(the)f(k)o(ey)g(sequence)h(in)g(double)h
-(quotes.)480 370 y(Some)e(GNU)g(Emacs)f(st)o(yle)h(k)o(ey)g(escap)q(es)
-g(can)g(b)q(e)h(used,)g(as)e(in)i(the)f(follo)o(wing)h(ex-)480
-432 y(ample,)c(but)h(the)f(sp)q(ecial)i(c)o(haracter)e(names)g(are)g
-(not)f(recognized.)600 499 y Fq("\\C-u":)23 b(universal-argument)600
-551 y("\\C-x\\C-r":)f(re-read-init-file)600 603 y("\\e[11~":)h
-("Function)f(Key)i(1")480 681 y Fr(In)13 b(the)g(ab)q(o)o(v)o(e)g
-(example,)g(`)p Fq(C-u)p Fr(')f(is)h(b)q(ound)h(to)e(the)h(function)g
-Fq(universal-argument)480 743 y Fr(\(just)g(as)f(it)i(w)o(as)e(in)i
-(the)f(\014rst)g(example\),)h(`)p Fq(C-x)g(C-r)p Fr(')f(is)g(b)q(ound)i
-(to)d(the)h(function)h Fq(re-)480 805 y(read-init-file)p
-Fr(,)g(and)i(`)p Fq(ESC)e([)h(1)g(1)g(~)p Fr(')h(is)g(b)q(ound)h(to)f
-(insert)g(the)g(text)f(`)p Fq(Function)480 867 y(Key)g(1)p
-Fr('.)24 b(The)18 b(follo)o(wing)f(escap)q(e)h(sequences)g(are)f(a)o(v)
-m(ailable)i(when)e(sp)q(ecifying)i(k)o(ey)480 930 y(sequences:)480
-1022 y Fq(\\C-)168 b Fr(con)o(trol)15 b(pre\014x)480
-1115 y Fq(\\M-)168 b Fr(meta)15 b(pre\014x)480 1208 y
-Fq(\\e)192 b Fr(an)15 b(escap)q(e)h(c)o(haracter)480
-1300 y Fq(\\\\)192 b Fr(bac)o(kslash)480 1393 y Fq(\\")g(")480
-1485 y(\\')g(')480 1578 y Fr(When)14 b(en)o(tering)h(the)f(text)f(of)h
-(a)f(macro,)g(single)j(or)d(double)i(quotes)f(should)h(b)q(e)f(used)480
-1640 y(to)g(indicate)j(a)e(macro)f(de\014nition.)22 b(Unquoted)15
-b(text)g(is)g(assumed)g(to)g(b)q(e)g(a)g(function)480
-1703 y(name.)21 b(Bac)o(kslash)16 b(will)h(quote)f(an)o(y)f(c)o
-(haracter)g(in)h(the)g(macro)f(text,)g(including)j(`)p
-Fq(")p Fr(')480 1765 y(and)12 b(`)p Fq(')p Fr('.)18 b(F)l(or)11
-b(example,)i(the)f(follo)o(wing)g(binding)i(will)f(mak)o(e)e(`)p
-Fq(C-x)k(\\)p Fr(')c(insert)h(a)g(single)480 1827 y(`)p
-Fq(\\)p Fr(')i(in)o(to)h(the)h(line:)600 1894 y Fq("\\C-x\\\\":)23
-b("\\\\")0 2126 y Fk(1.3.2)30 b(Conditional)15 b(Init)g(Constructs)62
-2266 y Fr(Readline)j(implemen)o(ts)e(a)f(facilit)o(y)h(similar)g(in)g
-(spirit)g(to)f(the)g(conditional)i(compilation)f(features)f(of)g(the)g
-(C)0 2328 y(prepro)q(cessor)f(whic)o(h)h(allo)o(ws)f(k)o(ey)g(bindings)
-h(and)f(v)m(ariable)i(settings)e(to)f(b)q(e)h(p)q(erformed)h(as)e(the)h
-(result)g(of)g(tests.)0 2391 y(There)h(are)g(three)h(parser)e(directiv)
-o(es)j(used.)0 2545 y Fq($if)168 b Fr(The)14 b Fq($if)e
-Fr(construct)h(allo)o(ws)h(bindings)h(to)e(b)q(e)h(made)f(based)h(on)f
-(the)h(editing)g(mo)q(de,)g(the)f(terminal)240 2608 y(b)q(eing)k(used,)
-e(or)g(the)g(application)i(using)f(Readline.)22 b(The)16
-b(text)f(of)g(the)g(test)g(extends)g(to)g(the)g(end)240
-2670 y(of)g(the)g(line;)i(no)e(c)o(haracters)f(are)h(required)h(to)f
-(isolate)g(it.)p eop
-9 10 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(9)240 183 y Fq(mode)144 b Fr(The)19 b Fq(mode=)f Fr(form)g(of)h(the)g
-Fq($if)f Fr(directiv)o(e)i(is)f(used)h(to)e(test)g(whether)h(Readline)i
-(is)480 246 y(in)h Fq(emacs)f Fr(or)f Fq(vi)h Fr(mo)q(de.)38
-b(This)22 b(ma)o(y)f(b)q(e)h(used)g(in)g(conjunction)g(with)f(the)h(`)p
-Fq(set)480 308 y(keymap)p Fr(')d(command,)i(for)e(instance,)j(to)d(set)
-h(bindings)i(in)f(the)f Fq(emacs-standard)480 370 y Fr(and)15
-b Fq(emacs-ctlx)f Fr(k)o(eymaps)h(only)h(if)f(Readline)j(is)e(starting)
-e(out)h(in)h Fq(emacs)f Fr(mo)q(de.)240 457 y Fq(term)144
-b Fr(The)21 b Fq(term=)f Fr(form)g(ma)o(y)h(b)q(e)g(used)h(to)e
-(include)j(terminal-sp)q(eci\014c)h(k)o(ey)c(bindings,)480
-519 y(p)q(erhaps)15 b(to)f(bind)j(the)d(k)o(ey)h(sequences)h(output)e
-(b)o(y)h(the)g(terminal's)g(function)h(k)o(eys.)480 582
-y(The)f(w)o(ord)g(on)f(the)i(righ)o(t)e(side)i(of)f(the)g(`)p
-Fq(=)p Fr(')f(is)h(tested)g(against)g(the)g(full)h(name)f(of)g(the)480
-644 y(terminal)k(and)g(the)g(p)q(ortion)g(of)f(the)h(terminal)g(name)g
-(b)q(efore)g(the)g(\014rst)f(`)p Fq(-)p Fr('.)29 b(This)480
-706 y(allo)o(ws)15 b Fq(sun)g Fr(to)g(matc)o(h)f(b)q(oth)i
-Fq(sun)e Fr(and)i Fq(sun-cmd)p Fr(,)e(for)g(instance.)240
-793 y Fq(application)480 856 y Fr(The)k Fl(application)i
-Fr(construct)e(is)g(used)h(to)e(include)k(application-sp)q(eci\014c)g
-(settings.)480 918 y(Eac)o(h)d(program)g(using)h(the)f(Readline)j
-(library)e(sets)f(the)h Fl(application)h(name)p Fr(,)f(and)480
-980 y(y)o(ou)c(can)h(test)f(for)g(it.)21 b(This)16 b(could)g(b)q(e)h
-(used)f(to)e(bind)j(k)o(ey)f(sequences)g(to)f(functions)480
-1043 y(useful)h(for)e(a)h(sp)q(eci\014c)i(program.)h(F)l(or)d
-(instance,)g(the)g(follo)o(wing)h(command)e(adds)h(a)480
-1105 y(k)o(ey)g(sequence)h(that)f(quotes)g(the)g(curren)o(t)g(or)g
-(previous)h(w)o(ord)e(in)i(Bash:)600 1169 y Fq($if)23
-b(Bash)600 1221 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)600
-1273 y("\\C-xq":)g("\\eb\\"\\ef\\"")600 1325 y($endif)0
-1412 y($endif)96 b Fr(This)16 b(command,)e(as)h(y)o(ou)g(sa)o(w)g(in)h
-(the)f(previous)h(example,)f(terminates)h(an)f Fq($if)f
-Fr(command.)0 1499 y Fq($else)120 b Fr(Commands)15 b(in)h(this)f(branc)
-o(h)h(of)e(the)i Fq($if)e Fr(directiv)o(e)j(are)e(executed)h(if)g(the)f
-(test)g(fails.)0 1707 y Fk(1.3.3)30 b(Sample)15 b(Init)g(File)62
-1844 y Fr(Here)20 b(is)f(an)g(example)h(of)f(an)g(inputrc)h(\014le.)33
-b(This)20 b(illustrates)g(k)o(ey)f(binding,)j(v)m(ariable)e(assignmen)o
-(t,)g(and)0 1906 y(conditional)d(syn)o(tax.)p eop
-10 11 bop 0 -58 a Fr(10)1449 b(GNU)15 b(Readline)i(Library)120
-235 y Fq(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)120 287 y(#)h(programs)e(that)i(use)f(the)h(Gnu)
-f(Readline)g(library.)47 b(Existing)22 b(programs)120
-339 y(#)i(include)f(FTP,)g(Bash,)g(and)h(Gdb.)120 391
-y(#)120 443 y(#)g(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h
-(C-x)f(C-r.)120 495 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h
-(comments.)120 546 y(#)120 598 y(#)g(Set)f(various)g(bindings)g(for)g
-(emacs)g(mode.)120 702 y(set)g(editing-mode)g(emacs)120
-806 y($if)g(mode=emacs)120 910 y(Meta-Control-h:)46 b
-(backward-kill-word)21 b(Text)i(after)h(the)f(function)g(name)g(is)h
-(ignored)120 1013 y(#)120 1065 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)
-120 1117 y(#)120 1169 y(#"\\M-OD":)190 b(backward-char)120
-1221 y(#"\\M-OC":)g(forward-char)120 1273 y(#"\\M-OA":)g
-(previous-history)120 1325 y(#"\\M-OB":)g(next-history)120
-1377 y(#)120 1429 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)120
-1480 y(#)120 1532 y("\\M-[D":)190 b(backward-char)120
-1584 y("\\M-[C":)g(forward-char)120 1636 y("\\M-[A":)g
-(previous-history)120 1688 y("\\M-[B":)g(next-history)120
-1740 y(#)120 1792 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-120 1844 y(#)120 1896 y(#"\\M-\\C-OD":)165 b(backward-char)120
-1947 y(#"\\M-\\C-OC":)g(forward-char)120 1999 y(#"\\M-\\C-OA":)g
-(previous-history)120 2051 y(#"\\M-\\C-OB":)g(next-history)120
-2103 y(#)120 2155 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-120 2207 y(#)120 2259 y(#"\\M-\\C-[D":)165 b(backward-char)120
-2311 y(#"\\M-\\C-[C":)g(forward-char)120 2363 y(#"\\M-\\C-[A":)g
-(previous-history)120 2414 y(#"\\M-\\C-[B":)g(next-history)120
-2518 y(C-q:)23 b(quoted-insert)120 2622 y($endif)p eop
-11 12 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(11)120 235 y Fq(#)24 b(An)f(old-style)g(binding.)47
-b(This)23 b(happens)g(to)g(be)h(the)f(default.)120 287
-y(TAB:)g(complete)120 391 y(#)h(Macros)f(that)g(are)h(convenient)e(for)
-h(shell)h(interaction)120 443 y($if)f(Bash)120 495 y(#)h(edit)f(the)g
-(path)120 546 y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")120
-598 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)f(insert)g(open)
-h(and)f(close)g(double)g(quotes)120 650 y(#)h(and)f(move)g(to)h(just)f
-(after)h(the)f(open)g(quote)120 702 y("\\C-x\\"":)g("\\"\\"\\C-b")120
-754 y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)f
-(in)i(sequences)f(and)g(macros\))120 806 y("\\C-x\\\\":)g("\\\\")120
-858 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)120
-910 y("\\C-xq":)g("\\eb\\"\\ef\\"")120 962 y(#)h(Add)f(a)h(binding)f
-(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)120
-1013 y("\\C-xr":)f(redraw-current-line)120 1065 y(#)h(Edit)f(variable)g
-(on)g(current)g(line.)120 1117 y("\\M-\\C-v":)f
-("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")120 1169 y($endif)120
-1273 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)120
-1325 y(set)f(bell-style)g(visible)120 1429 y(#)h(don't)f(strip)g
-(characters)g(to)g(7)h(bits)f(when)h(reading)120 1480
-y(set)f(input-meta)g(on)120 1584 y(#)h(allow)f(iso-latin1)f(characters)
-h(to)g(be)h(inserted)f(rather)g(than)g(converted)g(to)120
-1636 y(#)h(prefix-meta)e(sequences)120 1688 y(set)h(convert-meta)g(off)
-120 1792 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h
-(directly)f(rather)g(than)120 1844 y(#)h(as)f(meta-prefixed)f
-(characters)120 1896 y(set)h(output-meta)g(on)120 1999
-y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g(completions)f
-(for)i(a)f(word,)h(ask)f(the)120 2051 y(#)h(user)f(if)h(he)f(wants)g
-(to)h(see)f(all)h(of)f(them)120 2103 y(set)g(completion-query-items)e
-(150)120 2207 y(#)j(For)f(FTP)120 2259 y($if)g(Ftp)120
-2311 y("\\C-xg":)g("get)g(\\M-?")120 2363 y("\\C-xt":)g("put)g(\\M-?")
-120 2414 y("\\M-.":)g(yank-last-arg)120 2466 y($endif)p
+%%Page: 5 7
+5 6 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(5)315 183 y Ft(disable-completion)555 238 y Fu(If)19
+b(set)f(to)f(`)p Ft(On)p Fu(',)h(Readline)j(will)f(inhibit)g(w)o(ord)e
+(completion.)30 b(Completion)555 293 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 348 y(to)h Ft(self-insert)p
+Fu(.)j(The)d(default)h(is)g(`)p Ft(off)p Fu('.)315 446
+y Ft(editing-mode)555 501 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 556 y(ings)f(is)g(used.)20 b(By)12 b(default,)i(Readline)g
+(starts)e(up)h(in)g(Emacs)f(editing)i(mo)q(de,)555 611
+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 665 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 764
+y Ft(enable-keypad)555 819 y Fu(When)d(set)f(to)h(`)p
+Ft(on)p Fu(',)e(Readline)k(will)g(try)d(to)g(enable)i(the)f
+(application)h(k)o(eypad)555 873 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 928 y(The)j(default)h(is)g(`)p Ft(off)p Fu('.)315
+1027 y Ft(expand-tilde)555 1082 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)i(attempts)555 1136 y(w)o(ord)f(completion.)21
+b(The)15 b(default)h(is)f(`)p Ft(off)p Fu('.)315 1235
+y Ft(horizontal-scroll-mode)555 1290 y Fu(This)k(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 1344 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
+1399 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 1454 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 1509 y(v)m(ariable)j(is)e(set)g(to)g(`)p
+Ft(off)p Fu('.)315 1607 y Ft(keymap)114 b Fu(Sets)17
+b(Readline's)j(idea)e(of)f(the)h(curren)o(t)g(k)o(eymap)f(for)g(k)o(ey)
+g(binding)j(com-)555 1662 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 1717 y Ft(emacs-meta)p Fu(,)15 b Ft(emacs-ctlx)p
+Fu(,)h Ft(vi)p Fu(,)g Ft(vi-command)p Fu(,)g(and)h Ft(vi-insert)p
+Fu(.)23 b Ft(vi)16 b Fu(is)555 1772 y(equiv)m(alen)o(t)e(to)f
+Ft(vi-command)p Fu(;)e Ft(emacs)h Fu(is)i(equiv)m(alen)o(t)g(to)e
+Ft(emacs-standard)p Fu(.)555 1827 y(The)f(default)h(v)m(alue)g(is)f
+Ft(emacs)p Fu(.)18 b(The)11 b(v)m(alue)i(of)d(the)h Ft(editing-mode)f
+Fu(v)m(ariable)555 1881 y(also)15 b(a\013ects)g(the)g(default)h(k)o
+(eymap.)315 1980 y Ft(mark-directories)555 2035 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 2089 y(The)15 b(default)h(is)g(`)p
+Ft(on)p Fu('.)315 2188 y Ft(mark-modified-lines)555 2243
+y Fu(This)j(v)m(ariable,)g(when)g(set)e(to)h(`)p Ft(on)p
+Fu(',)f(causes)h(Readline)i(to)d(displa)o(y)i(an)f(as-)555
+2298 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
+2352 y(This)e(v)m(ariable)g(is)g(`)p Ft(off)p Fu(')e(b)o(y)h(default.)
+315 2451 y Ft(input-meta)555 2506 y Fu(If)h(set)g(to)f(`)p
+Ft(on)p Fu(',)f(Readline)k(will)g(enable)f(eigh)o(t-bit)f(input)h(\(it)
+f(will)h(not)f(strip)555 2560 y(the)f(eigh)o(th)g(bit)h(from)e(the)h(c)
+o(haracters)f(it)i(reads\),)e(regardless)h(of)f(what)h(the)555
+2615 y(terminal)21 b(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 2670 y(name)15 b Ft(meta-flag)f Fu(is)i(a)f(synon)o(ym)g(for)
+f(this)i(v)m(ariable.)p eop
+%%Page: 6 8
+6 7 bop 75 -58 a Fu(6)1322 b(GNU)15 b(Readline)i(Library)315
+183 y Ft(output-meta)555 238 y Fu(If)h(set)f(to)g(`)p
+Ft(on)p Fu(',)g(Readline)j(will)g(displa)o(y)f(c)o(haracters)d(with)j
+(the)e(eigh)o(th)h(bit)555 293 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
+348 y(default)16 b(is)f(`)p Ft(off)p Fu('.)315 435 y
+Ft(print-completions-horizont)o(ally)555 489 y Fu(If)d(set)g(to)f(`)p
+Ft(on)p Fu(',)h(Readline)i(will)f(displa)o(y)h(completions)f(with)f
+(matc)o(hes)f(sorted)555 544 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
+599 y(The)15 b(default)h(is)g(`)p Ft(off)p Fu('.)315
+686 y Ft(show-all-if-ambiguous)555 741 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 796 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
+850 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 905 y(The)c(default)h(v)m
+(alue)h(is)e(`)p Ft(off)p Fu('.)315 992 y Ft(visible-stats)555
+1047 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
+1102 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 1189 y(Key)h(Bindings)315
+1244 y(The)e(syn)o(tax)f(for)g(con)o(trolling)i(k)o(ey)f(bindings)i(in)
+e(the)g(init)h(\014le)g(is)f(simple.)21 b(First)14 b(y)o(ou)f(ha)o(v)o
+(e)315 1298 y(to)19 b(kno)o(w)f(the)i(name)f(of)g(the)g(command)g(that)
+f(y)o(ou)h(w)o(an)o(t)f(to)h(c)o(hange.)32 b(The)19 b(follo)o(wing)315
+1353 y(sections)f(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
+1408 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q
+(es.)315 1479 y(Once)j(y)o(ou)g(kno)o(w)e(the)i(name)f(of)g(the)h
+(command,)f(simply)i(place)g(the)e(name)h(of)f(the)g(k)o(ey)315
+1534 y(y)o(ou)c(wish)h(to)f(bind)i(the)f(command)f(to,)g(a)g(colon,)h
+(and)g(then)f(the)h(name)f(of)h(the)f(command)315 1588
+y(on)19 b(a)g(line)i(in)f(the)g(init)g(\014le.)34 b(The)19
+b(name)h(of)e(the)i(k)o(ey)f(can)h(b)q(e)g(expressed)g(in)g(di\013eren)
+o(t)315 1643 y(w)o(a)o(ys,)14 b(dep)q(ending)j(on)e(whic)o(h)h(is)g
+(most)e(comfortable)h(for)g(y)o(ou.)315 1730 y Fm(k)o(eyname)s
+Fu(:)k Fm(function-name)g Fu(or)c Fm(macro)555 1785 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 1853 y Ft(Control-u:)22
+b(universal-argument)675 1905 y(Meta-Rubout:)g(backward-kill-word)675
+1957 y(Control-o:)g(">)i(output")555 2028 y Fu(In)19
+b(the)f(ab)q(o)o(v)o(e)g(example,)1023 2026 y Fo(h)p
+1035 2000 57 2 v 1035 2028 a Fn(C-u)p 1035 2035 V 1090
+2026 a Fo(i)1123 2028 y Fu(is)h(b)q(ound)g(to)f(the)g(function)h
+Ft(universal-)555 2082 y(argument)p Fu(,)g(and)872 2080
+y Fo(h)p 884 2054 55 2 v 884 2082 a Fn(C-o)p 884 2090
+V 937 2080 a Fo(i)971 2082 y Fu(is)h(b)q(ound)g(to)f(run)h(the)f(macro)
+g(expressed)h(on)g(the)555 2137 y(righ)o(t)13 b(hand)h(side)h(\(that)e
+(is,)h(to)f(insert)h(the)g(text)f(`)p Ft(>)h(output)p
+Fu(')f(in)o(to)g(the)h(line\).)315 2224 y Ft(")p Fm(k)o(eyseq)q
+Ft(")p Fu(:)20 b Fm(function-name)e Fu(or)d Fm(macro)555
+2279 y(k)o(eyseq)i Fu(di\013ers)e(from)g Fm(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
+2334 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 2389
+y(double)c(quotes.)19 b(Some)13 b(GNU)g(Emacs)f(st)o(yle)h(k)o(ey)g
+(escap)q(es)g(can)g(b)q(e)h(used,)f(as)555 2443 y(in)18
+b(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 2498 y(recognized.)675
+2566 y Ft("\\C-u":)23 b(universal-argument)675 2618 y("\\C-x\\C-r":)f
+(re-read-init-file)675 2670 y("\\e[11~":)h("Function)f(Key)i(1")p
eop
-12 13 bop 0 -58 a Fr(12)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fp(1.4)33 b(Bindable)16 b(Readline)h(Commands)62
-322 y Fr(This)f(section)g(describ)q(es)h(Readline)g(commands)e(that)g
-(ma)o(y)f(b)q(e)i(b)q(ound)g(to)f(k)o(ey)g(sequences.)0
-545 y Fk(1.4.1)30 b(Commands)15 b(F)-5 b(or)15 b(Mo)n(ving)0
-698 y Fq(beginning-of-line)e(\(C-a\))240 760 y Fr(Mo)o(v)o(e)h(to)h
-(the)g(start)f(of)h(the)g(curren)o(t)g(line.)0 851 y
-Fq(end-of-line)f(\(C-e\))240 913 y Fr(Mo)o(v)o(e)g(to)h(the)g(end)h(of)
-f(the)g(line.)0 1003 y Fq(forward-char)f(\(C-f\))240
-1066 y Fr(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)0
-1156 y Fq(backward-char)e(\(C-b\))240 1219 y Fr(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)0 1309 y Fq(forward-word)f(\(M-f\))240
-1371 y Fr(Mo)o(v)o(e)g(forw)o(ard)g(to)h(the)g(end)h(of)f(the)g(next)g
-(w)o(ord.)k(W)l(ords)c(are)g(comp)q(osed)h(of)e(letters)i(and)f
-(digits.)0 1462 y Fq(backward-word)e(\(M-b\))240 1524
-y Fr(Mo)o(v)o(e)j(bac)o(k)g(to)g(the)h(start)f(of)g(this,)h(or)g(the)f
-(previous,)i(w)o(ord.)24 b(W)l(ords)16 b(are)g(comp)q(osed)i(of)e
-(letters)240 1587 y(and)f(digits.)0 1677 y Fq(clear-screen)f(\(C-l\))
-240 1739 y Fr(Clear)h(the)g(screen)g(and)g(redra)o(w)f(the)h(curren)o
-(t)g(line,)h(lea)o(ving)g(the)f(curren)o(t)f(line)j(at)d(the)h(top)f
-(of)h(the)240 1802 y(screen.)0 1892 y Fq(redraw-current-line)e(\(\))240
-1955 y Fr(Refresh)j(the)f(curren)o(t)g(line.)22 b(By)15
-b(default,)h(this)f(is)h(un)o(b)q(ound.)0 2177 y Fk(1.4.2)30
-b(Commands)15 b(F)-5 b(or)15 b(Manipulating)g(The)g(History)0
-2330 y Fq(accept-line)f(\(Newline,)g(Return\))240 2393
-y Fr(Accept)g(the)f(line)i(regardless)e(of)g(where)g(the)g(cursor)g
-(is.)20 b(If)13 b(this)h(line)h(is)e(non-empt)o(y)l(,)h(add)f(it)g(to)g
-(the)240 2455 y(history)k(list.)25 b(If)17 b(this)g(line)i(w)o(as)c(a)i
-(history)g(line,)h(then)f(restore)f(the)h(history)f(line)j(to)d(its)h
-(original)240 2517 y(state.)0 2608 y Fq(previous-history)c(\(C-p\))240
-2670 y Fr(Mo)o(v)o(e)h(`up')h(through)g(the)g(history)g(list.)p
+%%Page: 7 9
+7 8 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(7)555 183 y(In)19 b(the)f(ab)q(o)o(v)o(e)g(example,)1023
+181 y Fo(h)p 1035 155 57 2 v 1035 183 a Fn(C-u)p 1035
+191 V 1090 181 a Fo(i)1123 183 y Fu(is)h(b)q(ound)g(to)f(the)g
+(function)h Ft(universal-)555 238 y(argument)9 b Fu(\(just)h(as)h(it)g
+(w)o(as)e(in)j(the)e(\014rst)h(example\),)g(`)1463 236
+y Fo(h)p 1475 210 56 2 v 1475 238 a Fn(C-x)p 1475 246
+V 1529 236 a Fo(i)k(h)p 1571 210 51 2 v 1571 238 a Fn(C-r)p
+1571 246 V 1620 236 a Fo(i)1635 238 y Fu(')10 b(is)h(b)q(ound)h(to)555
+293 y(the)k(function)i Ft(re-read-init-file)p Fu(,)c(and)i(`)1351
+291 y Fo(h)p 1363 265 70 2 v 1363 293 a Fn(ESC)p 1363
+301 V 1430 291 a Fo(i)f(h)p 1472 265 10 2 v 1472 293
+a Fn([)p 1472 301 V 1480 291 a Fo(i)g(h)p 1522 265 18
+2 v 1522 293 a Fn(1)p 1522 301 V 1538 291 a Fo(i)g(h)p
+1580 265 V 1580 293 a Fn(1)p 1580 301 V 1595 291 a Fo(i)g(h)p
+1637 265 24 2 v 1637 293 a Ft(~)p 1637 301 V 1659 291
+a Fo(i)1674 293 y Fu(')h(is)h(b)q(ound)555 348 y(to)e(insert)g(the)g
+(text)g(`)p Ft(Function)f(Key)h(1)p Fu('.)315 427 y(The)e(follo)o(wing)
+h(GNU)f(Emacs)f(st)o(yle)h(escap)q(e)h(sequences)g(are)f(a)o(v)m
+(ailable)i(when)e(sp)q(ecifying)315 482 y(k)o(ey)i(sequences:)315
+561 y Fk(\\C-)168 b Fu(con)o(trol)15 b(pre\014x)315 640
+y Fk(\\M-)168 b Fu(meta)15 b(pre\014x)315 719 y Fk(\\e)192
+b Fu(an)15 b(escap)q(e)h(c)o(haracter)315 798 y Fk(\\\\)192
+b Fu(bac)o(kslash)315 877 y Fk(\\)p Ft(")555 875 y Fo(h)p
+567 849 V 567 877 a Ft(")p 567 885 V 589 875 a Fo(i)315
+956 y Fk(\\')555 954 y Fo(h)p 567 928 10 2 v 567 956
+a Fn(')p 567 964 V 575 954 a Fo(i)315 1035 y Fu(In)13
+b(addition)g(to)f(the)g(GNU)h(Emacs)f(st)o(yle)g(escap)q(e)h
+(sequences,)h(a)e(second)h(set)f(of)g(bac)o(kslash)315
+1090 y(escap)q(es)k(is)g(a)o(v)m(ailable:)315 1169 y
+Ft(\\a)192 b Fu(alert)15 b(\(b)q(ell\))315 1248 y Ft(\\b)192
+b Fu(bac)o(kspace)315 1327 y Ft(\\d)g Fu(delete)315 1407
+y Ft(\\f)g Fu(form)14 b(feed)315 1486 y Ft(\\n)192 b
+Fu(newline)315 1565 y Ft(\\r)g Fu(carriage)15 b(return)315
+1644 y Ft(\\t)192 b Fu(horizon)o(tal)16 b(tab)315 1723
+y Ft(\\v)192 b Fu(v)o(ertical)16 b(tab)315 1802 y Ft(\\)p
+Fm(nnn)141 b Fu(the)12 b(c)o(haracter)f(whose)h(ASCI)q(I)h(co)q(de)g
+(is)f(the)g(o)q(ctal)g(v)m(alue)h Fm(nnn)g Fu(\(one)f(to)f(three)555
+1857 y(digits\))315 1936 y Ft(\\x)p Fm(nnn)117 b Fu(the)14
+b(c)o(haracter)f(whose)h(ASCI)q(I)h(co)q(de)f(is)g(the)g(hexadecimal)i
+(v)m(alue)f Fm(nnn)f Fu(\(one)555 1991 y(to)h(three)g(digits\))315
+2070 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 2125
+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 2180 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 2234 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 2289 y(example,)14 b(the)f(follo)o(wing)g
+(binding)i(will)g(mak)o(e)d(`)p Ft(C-x)i(\\)p Fu(')f(insert)g(a)g
+(single)h(`)p Ft(\\)p Fu(')e(in)o(to)h(the)g(line:)435
+2353 y Ft("\\C-x\\\\":)23 b("\\\\")75 2464 y Fl(1.3.2)30
+b(Conditional)20 b(Init)g(Constructs)137 2560 y Fu(Readline)g(implemen)
+o(ts)f(a)f(facilit)o(y)g(similar)h(in)g(spirit)f(to)f(the)h
+(conditional)h(compilation)g(features)75 2615 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 2670 y(the)e(result)h
+(of)f(tests.)k(There)c(are)g(four)g(parser)g(directiv)o(es)h(used.)p
eop
-13 14 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(13)0 183 y Fq(next-history)14 b(\(C-n\))240 246 y Fr(Mo)o(v)o(e)g
-(`do)o(wn')g(through)h(the)h(history)f(list.)0 331 y
-Fq(beginning-of-history)d(\(M-<\))240 393 y Fr(Mo)o(v)o(e)i(to)h(the)g
-(\014rst)g(line)i(in)f(the)f(history)l(.)0 478 y Fq(end-of-history)e
-(\(M->\))240 540 y Fr(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(y)o(ou)e(are)g(en)o(tering.)0
-625 y Fq(reverse-search-history)d(\(C-r\))240 688 y Fr(Searc)o(h)18
-b(bac)o(kw)o(ard)f(starting)g(at)g(the)g(curren)o(t)h(line)h(and)f(mo)o
-(ving)f(`up')h(through)f(the)h(history)f(as)240 750 y(necessary)l(.)j
-(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)0 835 y
-Fq(forward-search-history)c(\(C-s\))240 897 y Fr(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)g(the)g(curren)o(t)h(line)h(and)f(mo)o(ving)f(`do)
-o(wn')g(through)g(the)g(the)h(history)240 960 y(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)0 1045
-y Fq(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))240
-1107 y Fr(Searc)o(h)18 b(bac)o(kw)o(ard)f(starting)g(at)g(the)g(curren)
-o(t)h(line)h(and)f(mo)o(ving)f(`up')h(through)f(the)h(history)f(as)240
-1169 y(necessary)e(using)h(a)f(non-incremen)o(tal)i(searc)o(h)e(for)g
-(a)f(string)i(supplied)h(b)o(y)e(the)h(user.)0 1254 y
-Fq(non-incremental-forward-se)o(arch-hi)o(story)c(\(M-n\))240
-1317 y Fr(Searc)o(h)j(forw)o(ard)e(starting)h(at)g(the)g(curren)o(t)h
-(line)h(and)f(mo)o(ving)f(`do)o(wn')g(through)g(the)g(the)h(history)240
-1379 y(as)g(necessary)g(using)h(a)f(non-incremen)o(tal)i(searc)o(h)e
-(for)f(a)h(string)g(supplied)j(b)o(y)d(the)g(user.)0
-1464 y Fq(history-search-forward)d(\(\))240 1526 y Fr(Searc)o(h)h(forw)
-o(ard)f(through)h(the)g(history)g(for)g(the)g(string)g(of)g(c)o
-(haracters)f(b)q(et)o(w)o(een)i(the)f(start)f(of)h(the)240
-1589 y(curren)o(t)19 b(line)h(and)f(the)g(curren)o(t)f(cursor)h(p)q
-(osition)g(\(the)g(`p)q(oin)o(t'\).)30 b(This)19 b(is)g(a)f
-(non-incremen)o(tal)240 1651 y(searc)o(h.)i(By)15 b(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)0 1736 y Fq(history-search-backward)c
-(\(\))240 1798 y Fr(Searc)o(h)21 b(bac)o(kw)o(ard)f(through)g(the)h
-(history)f(for)g(the)h(string)f(of)h(c)o(haracters)f(b)q(et)o(w)o(een)g
-(the)h(start)240 1860 y(of)c(the)h(curren)o(t)g(line)h(and)f(the)f(p)q
-(oin)o(t.)28 b(This)18 b(is)h(a)e(non-incremen)o(tal)i(searc)o(h.)27
-b(By)18 b(default,)h(this)240 1923 y(command)c(is)h(un)o(b)q(ound.)0
-2008 y Fq(yank-nth-arg)e(\(M-C-y\))240 2070 y Fr(Insert)19
-b(the)g(\014rst)f(argumen)o(t)g(to)g(the)h(previous)g(command)g
-(\(usually)g(the)g(second)g(w)o(ord)f(on)h(the)240 2132
-y(previous)e(line\).)23 b(With)16 b(an)g(argumen)o(t)f
-Fl(n)p Fr(,)h(insert)h(the)f Fl(n)p Fr(th)g(w)o(ord)f(from)g(the)h
-(previous)h(command)240 2195 y(\(the)d(w)o(ords)g(in)h(the)g(previous)g
-(command)f(b)q(egin)i(with)f(w)o(ord)f(0\).)19 b(A)14
-b(negativ)o(e)h(argumen)o(t)f(inserts)240 2257 y(the)h
-Fl(n)p Fr(th)h(w)o(ord)e(from)h(the)g(end)h(of)e(the)i(previous)g
-(command.)0 2342 y Fq(yank-last-arg)d(\(M-.,)i(M-_\))240
-2404 y Fr(Insert)i(last)g(argumen)o(t)g(to)f(the)h(previous)h(command)f
-(\(the)g(last)g(w)o(ord)f(of)h(the)g(previous)h(history)240
-2467 y(en)o(try\).)h(With)d(an)f(argumen)o(t,)f(b)q(eha)o(v)o(e)h
-(exactly)h(lik)o(e)g Fq(yank-nth-arg)p Fr(.)0 2670 y
-Fk(1.4.3)30 b(Commands)15 b(F)-5 b(or)15 b(Changing)g(T)-5
-b(ext)p eop
-14 15 bop 0 -58 a Fr(14)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fq(delete-char)d(\(C-d\))240 246 y Fr(Delete)f(the)f(c)o
-(haracter)f(under)i(the)f(cursor.)19 b(If)12 b(the)g(cursor)g(is)g(at)g
-(the)g(b)q(eginning)i(of)e(the)g(line,)i(there)240 308
-y(are)k(no)h(c)o(haracters)e(in)j(the)e(line,)j(and)d(the)h(last)f(c)o
-(haracter)g(t)o(yp)q(ed)h(w)o(as)f(not)g Fq(C-d)p Fr(,)g(then)h(return)
-240 370 y Fq(EOF)p Fr(.)0 460 y Fq(backward-delete-char)12
-b(\(Rubout\))240 522 y Fr(Delete)g(the)f(c)o(haracter)f(b)q(ehind)j
-(the)e(cursor.)18 b(A)11 b(n)o(umeric)h(arg)e(sa)o(ys)g(to)g(kill)j
-(the)e(c)o(haracters)f(instead)240 584 y(of)15 b(deleting)h(them.)0
-674 y Fq(quoted-insert)d(\(C-q,)i(C-v\))240 736 y Fr(Add)i(the)f(next)h
-(c)o(haracter)f(that)f(y)o(ou)h(t)o(yp)q(e)h(to)f(the)g(line)i(v)o
-(erbatim.)24 b(This)17 b(is)g(ho)o(w)e(to)h(insert)h(k)o(ey)240
-799 y(sequences)f(lik)o(e)h Fq(C-Q)p Fr(,)d(for)h(example.)0
-888 y Fq(tab-insert)f(\(M-TAB\))240 951 y Fr(Insert)h(a)g(tab)g(c)o
-(haracter.)0 1040 y Fq(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...\))
-240 1103 y Fr(Insert)g(y)o(ourself.)0 1192 y Fq(transpose-chars)e
-(\(C-t\))240 1255 y Fr(Drag)h(the)h(c)o(haracter)g(b)q(efore)g(the)h
-(cursor)f(forw)o(ard)f(o)o(v)o(er)g(the)h(c)o(haracter)g(at)f(the)i
-(cursor,)e(mo)o(ving)240 1317 y(the)k(cursor)h(forw)o(ard)e(as)h(w)o
-(ell.)30 b(If)19 b(the)f(insertion)i(p)q(oin)o(t)f(is)g(at)e(the)i(end)
-g(of)f(the)g(line,)j(then)e(this)240 1379 y(transp)q(oses)c(the)g(last)
-g(t)o(w)o(o)f(c)o(haracters)h(of)f(the)i(line.)21 b(Negativ)o(e)15
-b(argumen)o(tss)f(don't)h(w)o(ork.)0 1469 y Fq(transpose-words)e
-(\(M-t\))240 1531 y Fr(Drag)f(the)h(w)o(ord)f(b)q(ehind)i(the)f(cursor)
-g(past)f(the)h(w)o(ord)f(in)h(fron)o(t)f(of)h(the)f(cursor)h(mo)o(ving)
-f(the)h(cursor)240 1594 y(o)o(v)o(er)h(that)h(w)o(ord)f(as)h(w)o(ell.)0
-1683 y Fq(upcase-word)f(\(M-u\))240 1746 y Fr(Upp)q(ercase)h(the)e
-(curren)o(t)h(\(or)f(follo)o(wing\))h(w)o(ord.)k(With)c(a)f(negativ)o
-(e)h(argumen)o(t,)f(do)g(the)h(previous)240 1808 y(w)o(ord,)g(but)h(do)
-h(not)e(mo)o(v)o(e)h(the)g(cursor.)0 1898 y Fq(downcase-word)e(\(M-l\))
-240 1960 y Fr(Lo)o(w)o(ercase)g(the)i(curren)o(t)f(\(or)f(follo)o
-(wing\))h(w)o(ord.)19 b(With)14 b(a)g(negativ)o(e)g(argumen)o(t,)f(do)h
-(the)g(previous)240 2022 y(w)o(ord,)g(but)h(do)h(not)e(mo)o(v)o(e)h
-(the)g(cursor.)0 2112 y Fq(capitalize-word)e(\(M-c\))240
-2174 y Fr(Capitalize)j(the)e(curren)o(t)g(\(or)f(follo)o(wing\))i(w)o
-(ord.)j(With)d(a)f(negativ)o(e)g(argumen)o(t,)f(do)h(the)g(previous)240
-2236 y(w)o(ord,)g(but)h(do)h(not)e(mo)o(v)o(e)h(the)g(cursor.)0
-2456 y Fk(1.4.4)30 b(Killing)15 b(And)h(Y)-5 b(anking)0
-2608 y Fq(kill-line)14 b(\(C-k\))240 2670 y Fr(Kill)j(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.)p eop
-15 16 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(15)0 183 y Fq(backward-kill-line)13 b(\(C-x)h(Rubout\))240
-246 y Fr(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)0 332 y Fq(unix-line-discard)e(\(C-u\))240 394
-y Fr(Kill)j(bac)o(kw)o(ard)d(from)f(the)i(cursor)f(to)g(the)h(b)q
-(eginning)i(of)d(the)g(curren)o(t)h(line.)21 b(Sa)o(v)o(e)13
-b(the)h(killed)h(text)240 456 y(on)g(the)g(kill-ring.)0
-543 y Fq(kill-whole-line)e(\(\))240 605 y Fr(Kill)18
-b(all)f(c)o(haracters)e(on)h(the)g(curren)o(t)f(line,)j(no)e(matter)e
-(where)i(the)g(cursor)g(is.)22 b(By)16 b(default,)h(this)240
-667 y(is)f(un)o(b)q(ound.)0 753 y Fq(kill-word)e(\(M-d\))240
-816 y Fr(Kill)j(from)d(the)h(cursor)g(to)f(the)h(end)g(of)g(the)g
-(curren)o(t)f(w)o(ord,)g(or)g(if)i(b)q(et)o(w)o(een)f(w)o(ords,)f(to)g
-(the)h(end)g(of)240 878 y(the)g(next)h(w)o(ord.)j(W)l(ord)c(b)q
-(oundaries)h(are)f(the)g(same)g(as)g Fq(forward-word)p
-Fr(.)0 964 y Fq(backward-kill-word)e(\(M-DEL\))240 1027
-y Fr(Kill)k(the)f(w)o(ord)e(b)q(ehind)j(the)f(cursor.)j(W)l(ord)c(b)q
-(oundaries)i(are)d(the)i(same)f(as)f Fq(backward-word)p
-Fr(.)0 1113 y Fq(unix-word-rubout)f(\(C-w\))240 1175
-y Fr(Kill)i(the)e(w)o(ord)f(b)q(ehind)j(the)f(cursor,)e(using)i(white)f
-(space)h(as)e(a)h(w)o(ord)f(b)q(oundary)l(.)20 b(The)13
-b(killed)i(text)240 1237 y(is)h(sa)o(v)o(ed)e(on)i(the)f(kill-ring.)0
-1324 y Fq(delete-horizontal-space)d(\(\))240 1386 y Fr(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.)0 1472 y Fq(kill-region)e(\(\))
-240 1535 y Fr(Kill)23 b(the)e(text)g(b)q(et)o(w)o(een)g(the)g(p)q(oin)o
-(t)g(and)g(the)g Fl(mark)j Fr(\(sa)o(v)o(ed)c(cursor)g(p)q(osition.)38
-b(This)22 b(text)e(is)240 1597 y(referred)15 b(to)g(as)g(the)g
-Fl(region)p Fr(.)20 b(By)15 b(default,)h(this)g(command)f(is)g(un)o(b)q
-(ound.)0 1683 y Fq(copy-region-as-kill)e(\(\))240 1745
-y Fr(Cop)o(y)f(the)h(text)f(in)i(the)f(region)g(to)f(the)g(kill)j
-(bu\013er,)e(so)f(y)o(ou)h(can)f(y)o(ank)h(it)g(righ)o(t)f(a)o(w)o(a)o
-(y)l(.)18 b(By)13 b(default,)240 1808 y(this)j(command)f(is)g(un)o(b)q
-(ound.)0 1894 y Fq(copy-backward-word)e(\(\))240 1956
-y Fr(Cop)o(y)i(the)g(w)o(ord)f(b)q(efore)i(p)q(oin)o(t)g(to)e(the)h
-(kill)j(bu\013er.)h(By)d(default,)f(this)h(command)f(is)h(un)o(b)q
-(ound.)0 2043 y Fq(copy-forward-word)d(\(\))240 2105
-y Fr(Cop)o(y)f(the)h(w)o(ord)f(follo)o(wing)h(p)q(oin)o(t)g(to)f(the)h
-(kill)h(bu\013er.)19 b(By)13 b(default,)g(this)h(command)e(is)h(un)o(b)
-q(ound.)0 2191 y Fq(yank)i(\(C-y\))240 2253 y Fr(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(the)i(curren)
-o(t)f(cursor)g(p)q(osition.)0 2340 y Fq(yank-pop)f(\(M-y\))240
-2402 y Fr(Rotate)f(the)h(kill-ring,)i(and)e(y)o(ank)g(the)g(new)g(top.)
-19 b(Y)l(ou)14 b(can)g(only)g(do)g(this)g(if)g(the)g(prior)g(command)
-240 2464 y(is)i(y)o(ank)f(or)f(y)o(ank-p)q(op.)0 2670
-y Fk(1.4.5)30 b(Sp)r(ecifying)15 b(Numeric)h(Argumen)n(ts)p
+%%Page: 8 10
+8 9 bop 75 -58 a Fu(8)1322 b(GNU)15 b(Readline)i(Library)75
+183 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 238 y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i
+(using)e(Readline.)34 b(The)19 b(text)g(of)f(the)i(test)315
+293 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 373 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
+427 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
+482 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 537 y(standard)d
+Fu(and)i Ft(emacs-ctlx)e Fu(k)o(eymaps)h(only)i(if)f(Readline)h(is)f
+(starting)f(out)555 592 y(in)k Ft(emacs)f Fu(mo)q(de.)315
+671 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
+726 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 781 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 836
+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 891 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
+945 y Ft(sun-cmd)p Fu(,)d(for)g(instance.)315 1025 y
+Ft(application)555 1080 y Fu(The)d Fm(application)i Fu(construct)e(is)g
+(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
+1135 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)j
+(library)e(sets)f(the)g Fm(application)555 1189 y(name)p
+Fu(,)17 b(and)f(y)o(ou)h(can)f(test)g(for)g(it.)24 b(This)18
+b(could)f(b)q(e)g(used)g(to)f(bind)i(k)o(ey)f(se-)555
+1244 y(quences)c(to)e(functions)i(useful)g(for)e(a)h(sp)q(eci\014c)i
+(program.)j(F)l(or)12 b(instance,)h(the)555 1299 y(follo)o(wing)i
+(command)f(adds)g(a)f(k)o(ey)h(sequence)h(that)f(quotes)f(the)i(curren)
+o(t)e(or)555 1354 y(previous)j(w)o(ord)e(in)i(Bash:)675
+1418 y Ft($if)23 b(Bash)675 1470 y(#)h(Quote)f(the)g(current)g(or)h
+(previous)f(word)675 1522 y("\\C-xq":)g("\\eb\\"\\ef\\"")675
+1574 y($endif)75 1654 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 1733 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 1813 y Ft($include)48 b Fu(This)14
+b(directiv)o(e)i(tak)o(es)d(a)g(single)i(\014lename)g(as)f(an)f
+(argumen)o(t)g(and)h(reads)g(commands)g(and)315 1868
+y(bindings)j(from)e(that)f(\014le.)435 1932 y Ft($include)23
+b(/etc/inputrc)75 2044 y Fl(1.3.3)30 b(Sample)20 b(Init)h(File)137
+2140 y Fu(Here)16 b(is)g(an)f(example)h(of)f(an)h(inputrc)g(\014le.)22
+b(This)16 b(illustrates)g(k)o(ey)g(binding,)h(v)m(ariable)f(assignmen)o
+(t,)75 2195 y(and)f(conditional)i(syn)o(tax.)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)195 235 y Ft(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i
+(line)f(input)g(editing)g(for)195 287 y(#)h(programs)e(that)i(use)f
+(the)h(Gnu)f(Readline)g(library.)47 b(Existing)22 b(programs)195
+339 y(#)i(include)f(FTP,)g(Bash,)g(and)h(Gdb.)195 391
+y(#)195 443 y(#)g(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h
+(C-x)f(C-r.)195 495 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h
+(comments.)195 546 y(#)195 598 y(#)g(First,)f(include)g(any)g
+(systemwide)g(bindings)f(and)i(variable)f(assignments)f(from)195
+650 y(#)i(/etc/Inputrc)195 702 y($include)f(/etc/Inputrc)195
+806 y(#)195 858 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)
+195 962 y(set)g(editing-mode)g(emacs)195 1065 y($if)g(mode=emacs)195
+1169 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 1179 21 38 v
+195 1273 a(#)195 1325 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
+1377 y(#)195 1429 y(#"\\M-OD":)190 b(backward-char)195
+1480 y(#"\\M-OC":)g(forward-char)195 1532 y(#"\\M-OA":)g
+(previous-history)195 1584 y(#"\\M-OB":)g(next-history)195
+1636 y(#)195 1688 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
+1740 y(#)195 1792 y("\\M-[D":)190 b(backward-char)195
+1844 y("\\M-[C":)g(forward-char)195 1896 y("\\M-[A":)g
+(previous-history)195 1947 y("\\M-[B":)g(next-history)195
+1999 y(#)195 2051 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
+195 2103 y(#)195 2155 y(#"\\M-\\C-OD":)165 b(backward-char)195
+2207 y(#"\\M-\\C-OC":)g(forward-char)195 2259 y(#"\\M-\\C-OA":)g
+(previous-history)195 2311 y(#"\\M-\\C-OB":)g(next-history)195
+2363 y(#)195 2414 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
+195 2466 y(#)195 2518 y(#"\\M-\\C-[D":)165 b(backward-char)195
+2570 y(#"\\M-\\C-[C":)g(forward-char)195 2622 y(#"\\M-\\C-[A":)g
+(previous-history)p eop
+%%Page: 10 12
+10 11 bop 75 -58 a Fu(10)1299 b(GNU)15 b(Readline)i(Library)195
+183 y Ft(#"\\M-\\C-[B":)165 b(next-history)195 287 y(C-q:)23
+b(quoted-insert)195 391 y($endif)195 495 y(#)h(An)f(old-style)g
+(binding.)47 b(This)23 b(happens)g(to)g(be)h(the)f(default.)195
+546 y(TAB:)g(complete)195 650 y(#)h(Macros)f(that)g(are)h(convenient)e
+(for)h(shell)h(interaction)195 702 y($if)f(Bash)195 754
+y(#)h(edit)f(the)g(path)195 806 y("\\C-xp":)g
+("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195 858 y(#)h(prepare)f(to)g
+(type)h(a)f(quoted)g(word)h(--)f(insert)g(open)h(and)f(close)g(double)g
+(quotes)195 910 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g
+(quote)195 962 y("\\C-x\\"":)g("\\"\\"\\C-b")195 1013
+y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)f(in)i
+(sequences)f(and)g(macros\))195 1065 y("\\C-x\\\\":)g("\\\\")195
+1117 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)195
+1169 y("\\C-xq":)g("\\eb\\"\\ef\\"")195 1221 y(#)h(Add)f(a)h(binding)f
+(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)195
+1273 y("\\C-xr":)f(redraw-current-line)195 1325 y(#)h(Edit)f(variable)g
+(on)g(current)g(line.)195 1377 y("\\M-\\C-v":)f
+("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")195 1429 y($endif)195
+1532 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)195
+1584 y(set)f(bell-style)g(visible)195 1688 y(#)h(don't)f(strip)g
+(characters)g(to)g(7)h(bits)f(when)h(reading)195 1740
+y(set)f(input-meta)g(on)195 1844 y(#)h(allow)f(iso-latin1)f(characters)
+h(to)g(be)h(inserted)f(rather)g(than)g(converted)g(to)195
+1896 y(#)h(prefix-meta)e(sequences)195 1947 y(set)h(convert-meta)g(off)
+195 2051 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h
+(directly)f(rather)g(than)195 2103 y(#)h(as)f(meta-prefixed)f
+(characters)195 2155 y(set)h(output-meta)g(on)195 2259
+y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g(completions)f
+(for)i(a)f(word,)h(ask)f(the)195 2311 y(#)h(user)f(if)h(he)f(wants)g
+(to)h(see)f(all)h(of)f(them)195 2363 y(set)g(completion-query-items)e
+(150)195 2466 y(#)j(For)f(FTP)195 2518 y($if)g(Ftp)195
+2570 y("\\C-xg":)g("get)g(\\M-?")195 2622 y("\\C-xt":)g("put)g(\\M-?")p
eop
-16 17 bop 0 -58 a Fr(16)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fq(digit-argument)c(\(M-0,)i(M-1,)f(...)h(M--\))240
-246 y Fr(Add)j(this)g(digit)h(to)e(the)h(argumen)o(t)e(already)i(accum)
-o(ulating,)h(or)e(start)g(a)g(new)h(argumen)o(t.)26 b
-Fq(M--)240 308 y Fr(starts)14 b(a)h(negativ)o(e)g(argumen)o(t.)0
-403 y Fq(universal-argument)e(\(\))240 465 y Fr(This)f(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)12
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)g(or)f(more)240
-527 y(digits,)19 b(optionally)g(with)f(a)g(leading)h(min)o(us)f(sign,)h
-(those)e(digits)i(de\014ne)g(the)f(argumen)o(t.)27 b(If)18
-b(the)240 590 y(command)12 b(is)h(follo)o(w)o(ed)g(b)o(y)f(digits,)i
-(executing)f Fq(universal-argument)d Fr(again)j(ends)g(the)f(n)o
-(umeric)240 652 y(argumen)o(t,)i(but)h(is)g(otherwise)g(ignored.)20
-b(As)15 b(a)f(sp)q(ecial)j(case,)d(if)h(this)g(command)g(is)g
-(immediately)240 714 y(follo)o(w)o(ed)e(b)o(y)f(a)h(c)o(haracter)e
-(that)h(is)h(neither)h(a)e(digit)i(or)e(min)o(us)h(sign,)g(the)g
-(argumen)o(t)f(coun)o(t)g(for)g(the)240 776 y(next)i(command)g(is)h(m)o
-(ultiplied)i(b)o(y)d(four.)19 b(The)c(argumen)o(t)e(coun)o(t)h(is)h
-(initially)i(one,)d(so)g(executing)240 839 y(this)k(function)g(the)f
-(\014rst)g(time)g(mak)o(es)g(the)g(argumen)o(t)g(coun)o(t)g(four,)g(a)g
-(second)h(time)f(mak)o(es)g(the)240 901 y(argumen)o(t)d(coun)o(t)h
-(sixteen,)h(and)f(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(.)0 1143 y Fk(1.4.6)30 b(Letting)14
-b(Readline)h(T)n(yp)r(e)h(F)-5 b(or)14 b(Y)-5 b(ou)0
-1301 y Fq(complete)14 b(\(TAB\))240 1363 y Fr(A)o(ttempt)i(to)h(do)g
-(completion)i(on)e(the)g(text)g(b)q(efore)h(the)f(cursor.)26
-b(This)18 b(is)g(application-sp)q(eci\014c.)240 1425
-y(Generally)l(,)h(if)f(y)o(ou)f(are)h(t)o(yping)g(a)f(\014lename)i
-(argumen)o(t,)e(y)o(ou)g(can)h(do)f(\014lename)i(completion;)g(if)240
-1487 y(y)o(ou)f(are)f(t)o(yping)i(a)e(command,)i(y)o(ou)e(can)i(do)f
-(command)g(completion,)h(if)g(y)o(ou)e(are)h(t)o(yping)g(in)h(a)240
-1550 y(sym)o(b)q(ol)e(to)f(GDB,)g(y)o(ou)g(can)h(do)g(sym)o(b)q(ol)g
-(name)g(completion,)h(if)f(y)o(ou)f(are)h(t)o(yping)g(in)g(a)g(v)m
-(ariable)240 1612 y(to)e(Bash,)f(y)o(ou)h(can)h(do)f(v)m(ariable)h
-(name)g(completion,)g(and)f(so)g(on.)0 1707 y Fq(possible-completions)d
-(\(M-?\))240 1769 y Fr(List)k(the)f(p)q(ossible)i(completions)f(of)f
-(the)g(text)g(b)q(efore)h(the)f(cursor.)0 1864 y Fq(insert-completions)
-e(\(M-*\))240 1926 y Fr(Insert)22 b(all)h(completions)g(of)f(the)g
-(text)f(b)q(efore)h(p)q(oin)o(t)h(that)e(w)o(ould)h(ha)o(v)o(e)g(b)q
-(een)h(generated)f(b)o(y)240 1989 y Fq(possible-completions)p
-Fr(.)0 2231 y Fk(1.4.7)30 b(Keyb)r(oard)15 b(Macros)0
-2388 y Fq(start-kbd-macro)e(\(C-x)i(\(\))240 2451 y Fr(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.)0 2545 y Fq(end-kbd-macro)e(\(C-x)i(\)\))240
-2608 y Fr(Stop)f(sa)o(ving)h(the)g(c)o(haracters)f(t)o(yp)q(ed)h(in)o
-(to)f(the)h(curren)o(t)f(k)o(eyb)q(oard)h(macro)f(and)h(sa)o(v)o(e)f
-(the)g(de\014ni-)240 2670 y(tion.)p eop
-17 18 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(17)0 183 y Fq(call-last-kbd-macro)13 b(\(C-x)h(e\))240
-246 y Fr(Re-execute)20 b(the)f(last)f(k)o(eyb)q(oard)g(macro)g
-(de\014ned,)i(b)o(y)f(making)f(the)h(c)o(haracters)f(in)h(the)g(macro)
-240 308 y(app)q(ear)c(as)g(if)h(t)o(yp)q(ed)f(at)g(the)g(k)o(eyb)q
-(oard.)0 546 y Fk(1.4.8)30 b(Some)15 b(Miscellaneous)h(Commands)0
-703 y Fq(re-read-init-file)d(\(C-x)h(C-r\))240 765 y
-Fr(Read)23 b(in)h(the)e(con)o(ten)o(ts)g(of)h(the)f(inputrc)i(\014le,)h
-(and)e(incorp)q(orate)g(an)o(y)f(bindings)i(or)f(v)m(ariable)240
-827 y(assignmen)o(ts)15 b(found)h(there.)0 921 y Fq(abort)e(\(C-g\))240
-984 y Fr(Ab)q(ort)f(the)h(curren)o(t)f(editing)i(command)e(and)h(ring)g
-(the)f(terminal's)h(b)q(ell)h(\(sub)s(ject)f(to)e(the)i(setting)240
-1046 y(of)h Fq(bell-style)p Fr(\).)0 1140 y Fq(do-uppercase-version)d
-(\(M-a,)j(M-b,)f(M-)p Fl(x)p Fq(,)h Fj(:)8 b(:)g(:)n
-Fq(\))240 1202 y Fr(If)16 b(the)f(meta\014ed)g(c)o(haracter)g
-Fl(x)k Fr(is)c(lo)o(w)o(ercase,)g(run)h(the)f(command)g(that)g(is)h(b)q
-(ound)g(to)f(the)g(corre-)240 1264 y(sp)q(onding)h(upp)q(ercase)h(c)o
-(haracter.)0 1358 y Fq(prefix-meta)d(\(ESC\))240 1421
-y Fr(Mak)o(e)g(the)g(next)h(c)o(haracter)f(that)g(y)o(ou)g(t)o(yp)q(e)h
-(b)q(e)g(meta\014ed.)20 b(This)15 b(is)g(for)f(p)q(eople)i(without)e(a)
-h(meta)240 1483 y(k)o(ey)l(.)20 b(T)o(yping)c(`)p Fq(ESC)e(f)p
-Fr(')h(is)g(equiv)m(alen)o(t)i(to)e(t)o(yping)g(`)p Fq(M-f)p
-Fr('.)0 1577 y Fq(undo)g(\(C-_,)f(C-x)h(C-u\))240 1639
-y Fr(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q(ered)g(for)e
-(eac)o(h)h(line.)0 1733 y Fq(revert-line)f(\(M-r\))240
-1796 y Fr(Undo)20 b(all)h(c)o(hanges)f(made)g(to)f(this)i(line.)35
-b(This)21 b(is)f(lik)o(e)h(t)o(yping)f(the)g Fq(undo)g
-Fr(command)g(enough)240 1858 y(times)15 b(to)g(get)g(bac)o(k)g(to)f
-(the)i(b)q(eginning.)0 1952 y Fq(tilde-expand)e(\(M-~\))240
-2014 y Fr(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)0 2108 y Fq(set-mark)f(\(C-@\))240 2171 y Fr(Set)i(the)g(mark)f
-(to)g(the)h(curren)o(t)g(p)q(oin)o(t.)23 b(If)16 b(a)f(n)o(umeric)i
-(argumen)o(t)e(is)i(supplied,)h(the)e(mark)f(is)h(set)240
-2233 y(to)f(that)f(p)q(osition.)0 2327 y Fq(exchange-point-and-mark)e
-(\(C-x)j(C-x\))240 2389 y Fr(Sw)o(ap)e(the)g(p)q(oin)o(t)h(with)f(the)g
-(mark.)19 b(The)13 b(curren)o(t)g(cursor)g(p)q(osition)h(is)g(set)f(to)
-f(the)i(sa)o(v)o(ed)e(p)q(osition,)240 2451 y(and)j(the)h(old)f(cursor)
-g(p)q(osition)i(is)e(sa)o(v)o(ed)g(as)g(the)g(mark.)0
-2545 y Fq(character-search)e(\(C-]\))240 2608 y Fr(A)19
-b(c)o(haracter)e(is)j(read)e(and)h(p)q(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)
-g(the)g(next)h(o)q(ccurrence)h(of)e(that)g(c)o(haracter.)29
-b(A)240 2670 y(negativ)o(e)15 b(coun)o(t)g(searc)o(hes)g(for)g
-(previous)h(o)q(ccurrences.)p eop
-18 19 bop 0 -58 a Fr(18)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fq(character-search-backward)12 b(\(M-C-]\))240
-246 y Fr(A)i(c)o(haracter)f(is)h(read)g(and)f(p)q(oin)o(t)i(is)f(mo)o
-(v)o(ed)f(to)g(the)h(previous)g(o)q(ccurrence)h(of)e(that)g(c)o
-(haracter.)19 b(A)240 308 y(negativ)o(e)c(coun)o(t)g(searc)o(hes)g(for)
-g(subsequen)o(t)h(o)q(ccurrences.)0 395 y Fq(insert-comment)d(\(M-#\))
-240 457 y Fr(The)19 b(v)m(alue)g(of)f(the)g Fq(comment-begin)f
-Fr(v)m(ariable)i(is)g(inserted)g(at)f(the)g(b)q(eginning)j(of)d(the)g
-(curren)o(t)240 519 y(line,)e(and)g(the)f(line)i(is)f(accepted)g(as)e
-(if)i(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)0 607
-y Fq(dump-functions)c(\(\))240 669 y Fr(Prin)o(t)18 b(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(readline)h
-(output)e(stream.)28 b(If)18 b(a)240 731 y(n)o(umeric)i(argumen)o(t)d
-(is)i(supplied,)j(the)d(output)f(is)h(formatted)f(in)h(suc)o(h)g(a)f(w)
-o(a)o(y)g(that)g(it)h(can)f(b)q(e)240 793 y(made)d(part)g(of)g(an)g
-Fl(inputrc)k Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)o
-(y)e(default.)0 881 y Fq(dump-variables)e(\(\))240 943
-y Fr(Prin)o(t)j(all)h(of)f(the)h(settable)f(v)m(ariables)i(and)e(their)
-h(v)m(alues)g(to)f(the)g(readline)i(output)e(stream.)23
-b(If)16 b(a)240 1005 y(n)o(umeric)k(argumen)o(t)d(is)i(supplied,)j(the)
-d(output)f(is)h(formatted)f(in)h(suc)o(h)g(a)f(w)o(a)o(y)g(that)g(it)h
-(can)f(b)q(e)240 1067 y(made)d(part)g(of)g(an)g Fl(inputrc)k
-Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)o(y)e(default.)
-0 1155 y Fq(dump-macros)f(\(\))240 1217 y Fr(Prin)o(t)h(all)g(of)g(the)
-f(readline)j(k)o(ey)d(sequences)i(b)q(ound)g(to)e(macros)g(and)h(the)f
-(strings)h(they)g(ouput.)20 b(If)240 1279 y(a)c(n)o(umeric)h(argumen)o
-(t)e(is)i(supplied,)h(the)e(output)g(is)g(formatted)f(in)i(suc)o(h)g(a)
-e(w)o(a)o(y)g(that)h(it)g(can)g(b)q(e)240 1341 y(made)f(part)g(of)g(an)
-g Fl(inputrc)k Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)
-o(y)e(default.)0 1566 y Fp(1.5)33 b(Readline)16 b(vi)g(Mo)r(de)62
-1703 y Fr(While)d(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o
-(e)f(a)g(full)i(set)f(of)f Fq(vi)g Fr(editing)i(functions,)g(it)f(do)q
-(es)g(con)o(tain)g(enough)0 1765 y(to)f(allo)o(w)i(simple)g(editing)g
-(of)f(the)g(line.)20 b(The)13 b(Readline)h Fq(vi)d Fr(mo)q(de)i(b)q
-(eha)o(v)o(es)f(as)g(sp)q(eci\014ed)i(in)e(the)h Fm(POSIX)f
-Fr(1003.2)0 1827 y(standard.)62 1964 y(In)17 b(order)e(to)g(switc)o(h)h
-(in)o(teractiv)o(ely)h(b)q(et)o(w)o(een)f Fq(emacs)f
-Fr(and)h Fq(vi)f Fr(editing)i(mo)q(des,)f(use)g(the)g(command)f(M-C-j)0
-2026 y(\(toggle-editing-mo)q(de\).)21 b(The)15 b(Readline)j(default)e
-(is)f Fq(emacs)g Fr(mo)q(de.)62 2163 y(When)k(y)o(ou)f(en)o(ter)g(a)g
-(line)i(in)g Fq(vi)e Fr(mo)q(de,)h(y)o(ou)f(are)g(already)g(placed)i
-(in)f(`insertion')g(mo)q(de,)g(as)f(if)h(y)o(ou)f(had)0
-2226 y(t)o(yp)q(ed)e(an)f(`)p Fq(i)p Fr('.)20 b(Pressing)c
-Fq(ESC)f Fr(switc)o(hes)h(y)o(ou)f(in)o(to)h(`command')f(mo)q(de,)g
-(where)h(y)o(ou)f(can)h(edit)g(the)g(text)f(of)g(the)0
-2288 y(line)j(with)e(the)h(standard)e Fq(vi)h Fr(mo)o(v)o(emen)o(t)f(k)
-o(eys,)h(mo)o(v)o(e)g(to)f(previous)i(history)f(lines)i(with)f(`)p
-Fq(k)p Fr(')e(and)h(subsequen)o(t)0 2350 y(lines)h(with)e(`)p
-Fq(j)p Fr(',)f(and)i(so)e(forth.)p eop
-19 20 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(19)0 183 y Fn(2)41 b(Programming)16 b(with)f(GNU)h
-(Readline)62 394 y Fr(This)j(c)o(hapter)f(describ)q(es)i(the)e(in)o
-(terface)g(b)q(et)o(w)o(een)h(the)f(GNU)g(Readline)j(Library)d(and)h
-(other)f(programs.)0 456 y(If)h(y)o(ou)g(are)f(a)h(programmer,)f(and)i
-(y)o(ou)e(wish)i(to)e(include)j(the)e(features)g(found)g(in)h(GNU)f
-(Readline)i(suc)o(h)e(as)0 518 y(completion,)f(line)h(editing,)f(and)f
-(in)o(teractiv)o(e)h(history)f(manipulation)h(in)g(y)o(our)f(o)o(wn)f
-(programs,)g(this)h(section)0 581 y(is)f(for)e(y)o(ou.)0
-848 y Fp(2.1)33 b(Basic)14 b(Beha)n(vior)62 989 y Fr(Man)o(y)c
-(programs)g(pro)o(vide)h(a)g(command)f(line)j(in)o(terface,)e(suc)o(h)g
-(as)g Fq(mail)p Fr(,)f Fq(ftp)p Fr(,)h(and)g Fq(sh)p
-Fr(.)18 b(F)l(or)10 b(suc)o(h)i(programs,)0 1052 y(the)17
-b(default)h(b)q(eha)o(viour)g(of)e(Readline)k(is)e(su\016cien)o(t.)26
-b(This)18 b(section)f(describ)q(es)i(ho)o(w)e(to)f(use)i(Readline)h(in)
-f(the)0 1114 y(simplest)e(w)o(a)o(y)e(p)q(ossible,)j(p)q(erhaps)f(to)e
-(replace)j(calls)f(in)g(y)o(our)f(co)q(de)g(to)g Fq(gets\(\))f
-Fr(or)h Fq(fgets)f(\(\))p Fr(.)62 1256 y(The)g(function)g
-Fq(readline)g(\(\))f Fr(prin)o(ts)h(a)f(prompt)g(and)h(then)g(reads)f
-(and)g(returns)h(a)f(single)i(line)g(of)e(text)g(from)0
-1318 y(the)g(user.)19 b(The)13 b(line)i Fq(readline)d
-Fr(returns)g(is)i(allo)q(cated)g(with)f Fq(malloc)h(\(\))p
-Fr(;)f(y)o(ou)g(should)h Fq(free)g(\(\))f Fr(the)g(line)h(when)0
-1380 y(y)o(ou)h(are)g(done)g(with)h(it.)k(The)15 b(declaration)h(for)f
-Fq(readline)f Fr(in)i(ANSI)g(C)f(is)120 1512 y Fq(char)23
-b(*readline)g(\(char)g(*)p Fl(prompt)q Fq(\);)0 1653
-y Fr(So,)15 b(one)g(migh)o(t)g(sa)o(y)120 1785 y Fq(char)23
-b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)0
-1927 y Fr(in)17 b(order)g(to)f(read)g(a)g(line)j(of)d(text)g(from)g
-(the)g(user.)24 b(The)17 b(line)h(returned)f(has)g(the)f(\014nal)i
-(newline)g(remo)o(v)o(ed,)e(so)0 1989 y(only)g(the)f(text)g(remains.)62
-2131 y(If)g Fq(readline)f Fr(encoun)o(ters)h(an)f Fq(EOF)h
-Fr(while)h(reading)f(the)g(line,)h(and)f(the)g(line)h(is)f(empt)o(y)g
-(at)f(that)g(p)q(oin)o(t,)h(then)0 2193 y Fq(\(char)f(*\)NULL)h
-Fr(is)h(returned.)k(Otherwise,)15 b(the)h(line)h(is)e(ended)i(just)d
-(as)h(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)62
-2335 y(If)g(y)o(ou)g(w)o(an)o(t)f(the)h(user)g(to)f(b)q(e)i(able)f(to)g
-(get)f(at)g(the)h(line)i(later,)e(\(with)g Fq(C-P)f Fr(for)g
-(example\),)i(y)o(ou)e(m)o(ust)h(call)0 2397 y Fq(add_history)d(\(\))h
-Fr(to)f(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)c(in)j(a)f
-Fl(history)k Fr(list)d(of)f(suc)o(h)h(lines.)120 2528
-y Fq(add_history)22 b(\(line\);)0 2670 y Fr(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.)p eop
-20 21 bop 0 -58 a Fr(20)1449 b(GNU)15 b(Readline)i(Library)62
-183 y(It)e(is)g(preferable)g(to)f(a)o(v)o(oid)g(sa)o(ving)h(empt)o(y)f
-(lines)i(on)f(the)f(history)h(list,)g(since)g(users)g(rarely)g(ha)o(v)o
-(e)f(a)g(burning)0 246 y(need)i(to)e(reuse)h(a)f(blank)i(line.)21
-b(Here)15 b(is)g(a)g(function)g(whic)o(h)h(usefully)g(replaces)g(the)f
-(standard)f Fq(gets)h(\(\))f Fr(library)0 308 y(function,)i(and)f(has)g
-(the)g(adv)m(an)o(tage)g(of)g(no)g(static)g(bu\013er)g(to)g(o)o(v)o
-(er\015o)o(w:)120 445 y Fq(/*)24 b(A)f(static)g(variable)g(for)h
-(holding)e(the)i(line.)f(*/)120 497 y(static)g(char)g(*line_read)g(=)h
-(\(char)f(*\)NULL;)120 601 y(/*)h(Read)f(a)h(string,)f(and)g(return)g
-(a)h(pointer)f(to)g(it.)48 b(Returns)22 b(NULL)i(on)f(EOF.)h(*/)120
-653 y(char)f(*)120 705 y(rl_gets)g(\(\))120 757 y({)168
-809 y(/*)g(If)h(the)f(buffer)g(has)h(already)f(been)g(allocated,)g
-(return)g(the)g(memory)239 861 y(to)h(the)f(free)h(pool.)f(*/)168
-912 y(if)g(\(line_read\))215 964 y({)263 1016 y(free)g(\(line_read\);)
-263 1068 y(line_read)g(=)h(\(char)f(*\)NULL;)215 1120
-y(})168 1224 y(/*)g(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)168
-1276 y(line_read)f(=)i(readline)f(\(""\);)168 1379 y(/*)g(If)h(the)f
-(line)h(has)f(any)h(text)f(in)g(it,)h(save)f(it)h(on)f(the)h(history.)f
-(*/)168 1431 y(if)g(\(line_read)g(&&)g(*line_read\))215
-1483 y(add_history)g(\(line_read\);)168 1587 y(return)g(\(line_read\);)
-120 1639 y(})62 1787 y Fr(This)15 b(function)g(giv)o(es)f(the)g(user)g
-(the)g(default)h(b)q(eha)o(viour)g(of)e Fq(TAB)h Fr(completion:)20
-b(completion)15 b(on)f(\014le)h(names.)0 1849 y(If)h(y)o(ou)f(do)h(not)
-f(w)o(an)o(t)g(Readline)j(to)d(complete)i(on)e(\014lenames,)i(y)o(ou)e
-(can)h(c)o(hange)g(the)g(binding)i(of)d(the)h Fq(TAB)f
-Fr(k)o(ey)0 1912 y(with)h Fq(rl_bind_key)d(\(\))p Fr(.)120
-2049 y Fq(int)23 b(rl_bind_key)g(\(int)g Fl(k)o(ey)p
-Fq(,)h(int)f(\(*)p Fl(function)p Fq(\)\(\)\);)62 2197
-y(rl_bind_key)14 b(\(\))f Fr(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)19
-b Fl(k)o(ey)e Fr(is)d(the)g(c)o(haracter)f(that)g(y)o(ou)g(w)o(an)o(t)f
-(to)h(bind,)i(and)f Fl(function)0 2260 y Fr(is)g(the)g(address)g(of)f
-(the)h(function)g(to)f(call)i(when)f Fl(k)o(ey)j Fr(is)d(pressed.)20
-b(Binding)c Fq(TAB)d Fr(to)g Fq(rl_insert)h(\(\))f Fr(mak)o(es)g
-Fq(TAB)0 2322 y Fr(insert)i(itself.)20 b Fq(rl_bind_key)14
-b(\(\))g Fr(returns)g(non-zero)h(if)g Fl(k)o(ey)j Fr(is)d(not)f(a)g(v)m
-(alid)i(ASCI)q(I)f(c)o(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)0
-2384 y(0)g(and)g(255\).)62 2532 y(Th)o(us,)g(to)g(disable)h(the)g
-(default)f Fq(TAB)g Fr(b)q(eha)o(vior,)h(the)f(follo)o(wing)h
-(su\016ces:)120 2670 y Fq(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)p
+%%Page: 11 13
+11 12 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(11)195 183 y Ft("\\M-.":)23 b(yank-last-arg)195 235
+y($endif)75 369 y Fs(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
+467 y Fu(This)16 b(section)g(describ)q(es)h(Readline)g(commands)e(that)
+g(ma)o(y)f(b)q(e)i(b)q(ound)g(to)f(k)o(ey)g(sequences.)75
+583 y Fl(1.4.1)30 b(Commands)21 b(F)-5 b(or)19 b(Mo)n(ving)75
+695 y Ft(beginning-of-line)13 b(\(C-a\))315 749 y Fu(Mo)o(v)o(e)h(to)h
+(the)g(start)f(of)h(the)g(curren)o(t)g(line.)75 831 y
+Ft(end-of-line)f(\(C-e\))315 886 y Fu(Mo)o(v)o(e)g(to)h(the)g(end)h(of)
+f(the)g(line.)75 967 y Ft(forward-char)f(\(C-f\))315
+1022 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75
+1104 y Ft(backward-char)e(\(C-b\))315 1159 y Fu(Mo)o(v)o(e)h(bac)o(k)h
+(a)g(c)o(haracter.)75 1240 y Ft(forward-word)f(\(M-f\))315
+1295 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
+1350 y(digits.)75 1431 y Ft(backward-word)e(\(M-b\))315
+1486 y Fu(Mo)o(v)o(e)i(bac)o(k)h(to)g(the)g(start)f(of)h(this,)g(or)g
+(the)g(previous,)h(w)o(ord.)22 b(W)l(ords)16 b(are)g(comp)q(osed)g(of)
+315 1541 y(letters)f(and)h(digits.)75 1623 y Ft(clear-screen)e(\(C-l\))
+315 1677 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
+1732 y(of)i(the)g(screen.)75 1814 y Ft(redraw-current-line)e(\(\))315
+1869 y Fu(Refresh)j(the)f(curren)o(t)g(line.)22 b(By)15
+b(default,)h(this)f(is)h(un)o(b)q(ound.)75 1985 y Fl(1.4.2)30
+b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f(History)75
+2096 y Ft(accept-line)14 b(\(Newline,)g(Return\))315
+2151 y Fu(Accept)h(the)g(line)i(regardless)e(of)g(where)g(the)g(cursor)
+f(is.)20 b(If)c(this)f(line)h(is)g(non-empt)o(y)l(,)f(add)315
+2206 y(it)f(to)g(the)g(history)g(list.)20 b(If)14 b(this)h(line)g(w)o
+(as)e(a)h(history)g(line,)i(then)e(restore)f(the)h(history)g(line)315
+2261 y(to)h(its)g(original)h(state.)75 2342 y Ft(previous-history)d
+(\(C-p\))315 2397 y Fu(Mo)o(v)o(e)h(`up')h(through)g(the)g(history)g
+(list.)75 2479 y Ft(next-history)f(\(C-n\))315 2534 y
+Fu(Mo)o(v)o(e)g(`do)o(wn')g(through)h(the)h(history)f(list.)75
+2615 y Ft(beginning-of-history)d(\(M-<\))315 2670 y Fu(Mo)o(v)o(e)i(to)
+h(the)g(\014rst)g(line)i(in)f(the)f(history)l(.)p eop
+%%Page: 12 14
+12 13 bop 75 -58 a Fu(12)1299 b(GNU)15 b(Readline)i(Library)75
+183 y Ft(end-of-history)c(\(M->\))315 238 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 324 y Ft(reverse-search-history)c
+(\(C-r\))315 379 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
+433 y(tory)e(as)h(necessary)l(.)20 b(This)c(is)g(an)f(incremen)o(tal)h
+(searc)o(h.)75 519 y Ft(forward-search-history)c(\(C-s\))315
+574 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
+629 y(history)g(as)g(necessary)l(.)20 b(This)c(is)g(an)f(incremen)o
+(tal)h(searc)o(h.)75 715 y Ft(non-incremental-reverse-se)o(arch-hi)o
+(story)c(\(M-p\))315 769 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 824 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
+879 y(user.)75 965 y Ft(non-incremental-forward-se)o(arch-hi)o(story)12
+b(\(M-n\))315 1019 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 1074 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
+1129 y(user.)75 1215 y Ft(history-search-forward)f(\(\))315
+1270 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
+1324 y(start)15 b(of)h(the)h(curren)o(t)f(line)i(and)e(the)h(curren)o
+(t)f(cursor)g(p)q(osition)i(\(the)e Fm(p)q(oin)o(t)q
+Fu(\).)23 b(This)17 b(is)g(a)315 1379 y(non-incremen)o(tal)g(searc)o
+(h.)i(By)d(default,)f(this)h(command)f(is)h(un)o(b)q(ound.)75
+1465 y Ft(history-search-backward)c(\(\))315 1520 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 1575 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
+1629 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
+1715 y Ft(yank-nth-arg)e(\(M-C-y\))315 1770 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 1825 y(the)i(previous)i(line\).)21
+b(With)14 b(an)h(argumen)o(t)e Fm(n)p Fu(,)i(insert)f(the)h
+Fm(n)p Fu(th)f(w)o(ord)g(from)g(the)g(previous)315 1879
+y(command)f(\(the)h(w)o(ords)f(in)h(the)g(previous)g(command)g(b)q
+(egin)h(with)f(w)o(ord)e(0\).)19 b(A)14 b(negativ)o(e)315
+1934 y(argumen)o(t)g(inserts)i(the)f Fm(n)p Fu(th)h(w)o(ord)e(from)h
+(the)g(end)h(of)e(the)i(previous)g(command.)75 2020 y
+Ft(yank-last-arg)d(\(M-.,)i(M-_\))315 2075 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 2130 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 2184 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 2239 y(last)d(argumen)o(t)g(of)f(eac)o(h)i
+(line)g(in)g(turn.)75 2363 y Fl(1.4.3)30 b(Commands)21
+b(F)-5 b(or)19 b(Changing)i(T)-5 b(ext)75 2481 y Ft(delete-char)14
+b(\(C-d\))315 2536 y Fu(Delete)j(the)f(c)o(haracter)g(under)h(the)f
+(cursor.)23 b(If)16 b(the)h(cursor)f(is)h(at)e(the)i(b)q(eginning)h(of)
+e(the)315 2591 y(line,)j(there)e(are)g(no)g(c)o(haracters)f(in)i(the)g
+(line,)h(and)e(the)g(last)g(c)o(haracter)g(t)o(yp)q(ed)g(w)o(as)f(not)
+315 2646 y(b)q(ound)g(to)f Ft(delete-char)p Fu(,)e(then)j(return)f
+Ft(EOF)p Fu(.)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 183 y Ft(backward-delete-char)12 b(\(Rubout\))315
+238 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
+293 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
+378 y Ft(quoted-insert)c(\(C-q,)i(C-v\))315 432 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 487
+y(sequences)f(lik)o(e)605 485 y Fo(h)p 617 459 56 2 v
+617 487 a Fn(C-q)p 617 495 V 671 485 a Fo(i)685 487 y
+Fu(,)f(for)g(example.)75 572 y Ft(tab-insert)f(\(M-TAB\))315
+627 y Fu(Insert)h(a)g(tab)g(c)o(haracter.)75 712 y Ft(self-insert)f
+(\(a,)g(b,)h(A,)g(1,)g(!,)g(...\))315 766 y Fu(Insert)g(y)o(ourself.)75
+851 y Ft(transpose-chars)e(\(C-t\))315 906 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 961 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 1016 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 1070 y(don't)k(w)o(ork.)
+75 1155 y Ft(transpose-words)e(\(M-t\))315 1210 y Fu(Drag)j(the)h(w)o
+(ord)f(b)q(ehind)k(the)d(cursor)f(past)h(the)g(w)o(ord)g(in)g(fron)o(t)
+g(of)f(the)h(cursor)g(mo)o(ving)315 1265 y(the)e(cursor)g(o)o(v)o(er)g
+(that)f(w)o(ord)g(as)h(w)o(ell.)75 1350 y Ft(upcase-word)f(\(M-u\))315
+1404 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
+1459 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 1544 y Ft(downcase-word)d(\(M-l\))315
+1599 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 1654 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 1738 y Ft(capitalize-word)e(\(M-c\))315
+1793 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
+1848 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 1970 y Fl(1.4.4)30 b(Killing)20 b(And)h(Y)-5
+b(anking)75 2087 y Ft(kill-line)14 b(\(C-k\))315 2142
+y Fu(Kill)j(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 2226
+y Ft(backward-kill-line)e(\(C-x)h(Rubout\))315 2281 y
+Fu(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g(line.)
+75 2366 y Ft(unix-line-discard)e(\(C-u\))315 2421 y Fu(Kill)18
+b(bac)o(kw)o(ard)d(from)g(the)h(cursor)g(to)f(the)h(b)q(eginning)i(of)e
+(the)g(curren)o(t)g(line.)24 b(The)16 b(killed)315 2476
+y(text)f(is)g(sa)o(v)o(ed)g(on)g(the)h(kill-ring.)75
+2560 y Ft(kill-whole-line)d(\(\))315 2615 y Fu(Kill)h(all)e(c)o
+(haracters)f(on)g(the)g(curren)o(t)h(line,)h(no)f(matter)e(where)h(the)
+h(cursor)f(is.)19 b(By)12 b(default,)315 2670 y(this)k(is)f(un)o(b)q
+(ound.)p eop
+%%Page: 14 16
+14 15 bop 75 -58 a Fu(14)1299 b(GNU)15 b(Readline)i(Library)75
+183 y Ft(kill-word)d(\(M-d\))315 238 y Fu(Kill)i(from)d(the)i(cursor)e
+(to)h(the)g(end)g(of)g(the)g(curren)o(t)g(w)o(ord,)f(or)h(if)g(b)q(et)o
+(w)o(een)g(w)o(ords,)g(to)f(the)315 293 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
+Ft(forward-word)p Fu(.)75 372 y Ft(backward-kill-word)e(\(M-DEL\))315
+426 y Fu(Kill)18 b(the)d(w)o(ord)g(b)q(ehind)j(the)d(cursor.)20
+b(W)l(ord)c(b)q(oundaries)g(are)f(the)h(same)f(as)g Ft(backward-)315
+481 y(word)p Fu(.)75 560 y Ft(unix-word-rubout)e(\(C-w\))315
+615 y Fu(Kill)20 b(the)d(w)o(ord)g(b)q(ehind)j(the)d(cursor,)h(using)g
+(white)g(space)g(as)f(a)g(w)o(ord)g(b)q(oundary)l(.)28
+b(The)315 670 y(killed)17 b(text)e(is)h(sa)o(v)o(ed)f(on)g(the)g
+(kill-ring.)75 749 y Ft(delete-horizontal-space)d(\(\))315
+803 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 882
+y Ft(kill-region)e(\(\))315 937 y Fu(Kill)h(the)e(text)f(b)q(et)o(w)o
+(een)h(the)g(p)q(oin)o(t)g(and)g(the)g Fm(mark)i Fu(\(sa)o(v)o(ed)d
+(cursor)g(p)q(osition\).)20 b(This)13 b(text)315 992
+y(is)j(referred)f(to)g(as)f(the)i Fm(region)p Fu(.)k(By)15
+b(default,)h(this)f(command)g(is)h(un)o(b)q(ound.)75
+1071 y Ft(copy-region-as-kill)d(\(\))315 1125 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
+1180 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q(ound.)75
+1259 y Ft(copy-backward-word)d(\(\))315 1314 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
+1369 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.)75 1448 y Ft(copy-forward-word)d(\(\))
+315 1502 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 1557 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 1636 y Ft(yank)f(\(C-y\))315
+1691 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(the)i(curren)o(t)f(cursor)g(p)q(osition.)75
+1770 y Ft(yank-pop)f(\(M-y\))315 1824 y Fu(Rotate)j(the)g(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 1879 y(command)d(is)h(y)o(ank)f(or)f(y)o
+(ank-p)q(op.)75 1990 y Fl(1.4.5)30 b(Sp)r(ecifying)20
+b(Numeric)h(Argumen)n(ts)75 2098 y Ft(digit-argument)13
+b(\(M-0,)i(M-1,)f(...)h(M--\))315 2153 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 2206 y Fo(h)p 327 2180 50 2 v 327
+2208 a Fn(M{)p 327 2215 V 375 2206 a Fo(i)405 2208 y
+Fu(starts)g(a)h(negativ)o(e)g(argumen)o(t.)75 2286 y
+Ft(universal-argument)e(\(\))315 2341 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
+2396 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
+2451 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 2506
+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
+2560 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
+2615 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
+2670 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)p
eop
-21 22 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(21)62 183 y(This)12 b(co)q(de)f(should)h(b)q(e)f
-(executed)h(once)f(at)f(the)h(start)f(of)g(y)o(our)g(program;)h(y)o(ou)
-g(migh)o(t)f(write)h(a)g(function)g(called)0 246 y Fq
-(initialize_readline)i(\(\))j Fr(whic)o(h)h(p)q(erforms)f(this)h(and)f
-(other)g(desired)i(initializations,)h(suc)o(h)e(as)f(installing)0
-308 y(custom)f(completers)g(\(see)h(Section)g(2.5)e([Custom)g
-(Completers],)h(page)g(34\).)0 562 y Fp(2.2)33 b(Custom)14
-b(F)-6 b(unctions)62 702 y Fr(Readline)18 b(pro)o(vides)f(man)o(y)e
-(functions)i(for)e(manipulating)j(the)e(text)f(of)g(the)h(line,)i(but)e
-(it)g(isn't)g(p)q(ossible)i(to)0 765 y(an)o(ticipate)i(the)g(needs)g
-(of)f(all)h(programs.)31 b(This)20 b(section)g(describ)q(es)h(the)f(v)m
-(arious)g(functions)g(and)g(v)m(ariables)0 827 y(de\014ned)c(within)f
-(the)g(Readline)i(library)e(whic)o(h)g(allo)o(w)g(a)f(user)g(program)f
-(to)h(add)h(customized)g(functionalit)o(y)h(to)0 889
-y(Readline.)0 1127 y Fk(2.2.1)30 b(The)15 b(F)-5 b(unction)14
-b(T)n(yp)r(e)62 1267 y Fr(F)l(or)j(readabilt)o(y)l(,)h(w)o(e)f(declare)
-i(a)e(new)g(t)o(yp)q(e)h(of)f(ob)s(ject,)f(called)j Fl(F)l(unction)p
-Fr(.)28 b(A)17 b Fq(Function)f Fr(is)i(a)f(C)g(function)0
-1329 y(whic)o(h)f(returns)f(an)g Fq(int)p Fr(.)20 b(The)15
-b(t)o(yp)q(e)g(declaration)h(for)f Fq(Function)f Fr(is:)0
-1470 y Fq(typedef)g(int)h(Function)f(\(\);)62 1610 y
-Fr(The)i(reason)f(for)g(declaring)i(this)f(new)g(t)o(yp)q(e)f(is)h(to)f
-(mak)o(e)g(it)h(easier)g(to)f(write)g(co)q(de)h(describing)i(p)q(oin)o
-(ters)e(to)0 1672 y(C)g(functions.)25 b(Let)17 b(us)f(sa)o(y)g(w)o(e)g
-(had)h(a)f(v)m(ariable)i(called)g Fl(func)i Fr(whic)o(h)d(w)o(as)f(a)g
-(p)q(oin)o(ter)h(to)f(a)g(function.)25 b(Instead)0 1735
-y(of)15 b(the)g(classic)h(C)f(declaration)62 1875 y Fq(int)g
-(\(*\)\(\)func;)0 2015 y Fr(w)o(e)g(ma)o(y)f(write)62
-2156 y Fq(Function)g(*func;)0 2296 y Fr(Similarly)l(,)j(there)e(are)120
-2426 y Fq(typedef)23 b(void)g(VFunction)g(\(\);)120 2478
-y(typedef)g(char)g(*CPFunction)g(\(\);)g Fr(and)120 2530
-y Fq(typedef)g(char)g(**CPPFunction)f(\(\);)0 2670 y
-Fr(for)12 b(functions)h(returning)g(no)g(v)m(alue,)g
-Fq(pointer)i(to)g(char)p Fr(,)d(and)g Fq(pointer)i(to)h(pointer)g(to)f
-(char)p Fr(,)e(resp)q(ectiv)o(ely)l(.)p eop
-22 23 bop 0 -58 a Fr(22)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fk(2.2.2)30 b(W)-5 b(riting)15 b(a)g(New)g(F)-5
-b(unction)62 325 y Fr(In)22 b(order)f(to)g(write)g(new)h(functions)g
-(for)f(Readline,)j(y)o(ou)d(need)h(to)f(kno)o(w)g(the)g(calling)i(con)o
-(v)o(en)o(tions)f(for)0 387 y(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)17
-b(functions,)g(and)f(the)h(names)f(of)g(the)h(v)m(ariables)h(that)d
-(describ)q(e)j(the)f(curren)o(t)f(state)g(of)g(the)0
-449 y(line)h(read)e(so)g(far.)62 591 y(The)h(calling)h(sequence)f(for)f
-(a)f(command)i Fq(foo)e Fr(lo)q(oks)i(lik)o(e)120 722
-y Fq(foo)23 b(\(int)h(count,)f(int)g(key\))0 864 y Fr(where)f
-Fl(coun)o(t)g Fr(is)g(the)f(n)o(umeric)i(argumen)o(t)d(\(or)h(1)g(if)h
-(defaulted\))g(and)f Fl(k)o(ey)26 b Fr(is)21 b(the)h(k)o(ey)f(that)g
-(in)o(v)o(ok)o(ed)h(this)0 926 y(function.)62 1068 y(It)f(is)h
-(completely)g(up)f(to)f(the)h(function)h(as)f(to)f(what)g(should)i(b)q
-(e)g(done)f(with)g(the)g(n)o(umeric)h(argumen)o(t.)0
-1130 y(Some)c(functions)g(use)g(it)g(as)f(a)h(rep)q(eat)g(coun)o(t,)f
-(some)h(as)f(a)g(\015ag,)h(and)g(others)f(to)g(c)o(ho)q(ose)h
-(alternate)f(b)q(eha)o(vior)0 1192 y(\(refreshing)12
-b(the)g(curren)o(t)g(line)h(as)f(opp)q(osed)g(to)f(refreshing)i(the)f
-(screen,)g(for)g(example\).)19 b(Some)12 b(c)o(ho)q(ose)f(to)h(ignore)0
-1255 y(it.)24 b(In)17 b(general,)g(if)g(a)g(function)g(uses)g(the)g(n)o
-(umeric)g(argumen)o(t)f(as)g(a)g(rep)q(eat)h(coun)o(t,)f(it)h(should)h
-(b)q(e)f(able)g(to)f(do)0 1317 y(something)f(useful)g(with)g(b)q(oth)f
-(negativ)o(e)h(and)f(p)q(ositiv)o(e)i(argumen)o(ts.)i(A)o(t)c(the)h(v)o
-(ery)f(least,)g(it)h(should)g(b)q(e)g(a)o(w)o(are)0 1379
-y(that)f(it)i(can)f(b)q(e)h(passed)g(a)e(negativ)o(e)i(argumen)o(t.)0
-1645 y Fp(2.3)33 b(Readline)16 b(V)-6 b(ariables)62 1787
-y Fr(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h
-(writers.)1736 1963 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 1963 18 3 v 21 w(line)p 320 1963 V
-23 w(bu\013er)120 2025 y Fr(This)f(is)g(the)f(line)i(gathered)e(so)g
-(far.)25 b(Y)l(ou)18 b(are)f(w)o(elcome)g(to)g(mo)q(dify)h(the)f(con)o
-(ten)o(ts)g(of)f(the)i(line,)120 2087 y(but)d(see)h(Section)g(2.4.5)d
-([Allo)o(wing)k(Undoing],)e(page)g(28.)1736 2263 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 2263 V 21 w(p)r(oin)n(t)120
-2325 y Fr(The)15 b(o\013set)g(of)f(the)i(curren)o(t)f(cursor)g(p)q
-(osition)h(in)g Fq(rl_line_buffer)d Fr(\(the)i Fl(p)q(oin)o(t)q
-Fr(\).)1736 2501 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p
-140 2501 V 21 w(end)120 2563 y Fr(The)d(n)o(um)o(b)q(er)f(of)g(c)o
-(haracters)g(presen)o(t)g(in)h Fq(rl_line_buffer)p Fr(.)k(When)c
-Fq(rl_point)e Fr(is)i(at)f(the)g(end)120 2626 y(of)f(the)g(line,)i
-Fq(rl_point)d Fr(and)h Fq(rl_end)f Fr(are)h(equal.)p
+%%Page: 15 17
+15 16 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(15)315 183 y(mak)o(es)15 b(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
+238 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 341 y Fl(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 444 y Ft(complete)14 b(\(TAB\))315 499 y Fu(A)o(ttempt)j(to)g
+(do)h(completion)g(on)g(the)g(text)f(b)q(efore)h(the)g(cursor.)27
+b(This)18 b(is)g(application-)315 554 y(sp)q(eci\014c.)k(Generally)l(,)
+15 b(if)g(y)o(ou)g(are)f(t)o(yping)h(a)g(\014lename)g(argumen)o(t,)f(y)
+o(ou)g(can)h(do)g(\014lename)315 609 y(completion;)h(if)g(y)o(ou)f(are)
+g(t)o(yping)h(a)f(command,)f(y)o(ou)h(can)h(do)f(command)g(completion;)
+h(if)315 663 y(y)o(ou)i(are)g(t)o(yping)g(in)h(a)f(sym)o(b)q(ol)h(to)e
+(GDB,)h(y)o(ou)g(can)g(do)g(sym)o(b)q(ol)h(name)f(completion;)i(if)315
+718 y(y)o(ou)13 b(are)g(t)o(yping)g(in)h(a)f(v)m(ariable)h(to)f(Bash,)g
+(y)o(ou)g(can)g(do)g(v)m(ariable)h(name)f(completion,)i(and)315
+773 y(so)g(on.)75 847 y Ft(possible-completions)d(\(M-?\))315
+902 y Fu(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)q
+(efore)h(the)f(cursor.)75 976 y Ft(insert-completions)e(\(M-*\))315
+1030 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
+1085 y(b)o(y)f Ft(possible-completions)p Fu(.)75 1159
+y Ft(menu-complete)e(\(\))315 1214 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 1269 y(from)k(the)h(list)
+h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)20
+b(execution)g(of)f Ft(menu-complete)315 1323 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 1378 y(A)o(t)c(the)g(end)h(of)f(the)h(list)g
+(of)f(completions,)i(the)e(b)q(ell)j(is)e(rung)f(and)h(the)f(original)i
+(text)d(is)315 1433 y(restored.)26 b(An)17 b(argumen)o(t)g(of)g
+Fm(n)g Fu(mo)o(v)o(es)g Fm(n)g Fu(p)q(ositions)h(forw)o(ard)e(in)i(the)
+g(list)g(of)f(matc)o(hes;)315 1488 y(a)j(negativ)o(e)g(argumen)o(t)f
+(ma)o(y)g(b)q(e)i(used)f(to)f(mo)o(v)o(e)h(bac)o(kw)o(ard)f(through)g
+(the)h(list.)35 b(This)315 1543 y(command)15 b(is)h(in)o(tended)g(to)f
+(b)q(e)h(b)q(ound)g(to)f Ft(TAB)p Fu(,)f(but)h(is)h(un)o(b)q(ound)g(b)o
+(y)f(default.)75 1646 y Fl(1.4.7)30 b(Keyb)r(oard)20
+b(Macros)75 1749 y Ft(start-kbd-macro)13 b(\(C-x)i(\(\))315
+1804 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 1878
+y Ft(end-kbd-macro)e(\(C-x)i(\)\))315 1932 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 1987 y(de\014nition.)75
+2061 y Ft(call-last-kbd-macro)g(\(C-x)h(e\))315 2116
+y Fu(Re-execute)19 b(the)f(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
+2171 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 2274 y Fl(1.4.8)30 b(Some)20 b(Miscellaneous)h
+(Commands)75 2377 y Ft(re-read-init-file)13 b(\(C-x)h(C-r\))315
+2432 y Fu(Read)e(in)g(the)f(con)o(ten)o(ts)g(of)f(the)i(inputrc)g
+(\014le,)g(and)g(incorp)q(orate)f(an)o(y)g(bindings)i(or)e(v)m(ariable)
+315 2487 y(assignmen)o(ts)k(found)h(there.)75 2560 y
+Ft(abort)e(\(C-g\))315 2615 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 2670 y(setting)i(of)g Ft(bell-style)p Fu(\).)p
eop
-23 24 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(23)1736 183 y(V)l(ariable)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(mark)120 246 y Fr(The)h(mark)e(\(sa)o(v)o
-(ed)h(p)q(osition\))h(in)g(the)f(curren)o(t)h(line.)37
-b(If)20 b(set,)h(the)g(mark)e(and)i(p)q(oin)o(t)g(de\014ne)g(a)120
-308 y Fl(region)p Fr(.)1736 473 y(V)l(ariable)-1899 b
-Fi(int)20 b Fh(rl)p 140 473 V 21 w(done)120 536 y Fr(Setting)13
-b(this)h(to)f(a)f(non-zero)i(v)m(alue)g(causes)f(Readline)j(to)c
-(return)h(the)h(curren)o(t)f(line)h(immediately)l(.)1736
-701 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 701
-V 21 w(p)r(ending)p 361 701 V 20 w(input)120 764 y Fr(Setting)15
-b(this)f(to)g(a)g(v)m(alue)i(mak)o(es)d(it)i(the)f(next)h(k)o(eystrok)o
-(e)e(read.)19 b(This)c(is)g(a)f(w)o(a)o(y)f(to)h(stu\013)g(a)g(single)
-120 826 y(c)o(haracter)g(in)o(to)i(the)f(input)h(stream.)1736
-991 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211
-991 V 21 w(prompt)120 1054 y Fr(The)c(prompt)e(Readline)k(uses.)j(This)
-15 b(is)f(set)h(from)e(the)h(argumen)o(t)g(to)g Fq(readline)g(\(\))p
-Fr(,)f(and)i(should)120 1116 y(not)g(b)q(e)h(assigned)f(to)g(directly)l
-(.)1736 1282 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p
-211 1282 V 21 w(library)p 400 1282 V 22 w(v)n(ersion)120
-1344 y Fr(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(.)1736 1509 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 1509 V 21 w(terminal)p
-443 1509 V 21 w(name)120 1572 y Fr(The)c(terminal)h(t)o(yp)q(e,)f(used)
-h(for)f(initialization.)1736 1737 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 1737 V 21 w(readline)p
-430 1737 V 22 w(name)120 1800 y Fr(This)f(v)m(ariable)h(is)f(set)f(to)g
-(a)g(unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.)
-29 b(The)18 b(v)m(alue)120 1862 y(allo)o(ws)f(conditional)h(parsing)f
-(of)f(the)g(inputrc)i(\014le)f(\(see)g(Section)g(1.3.2)e([Conditional)j
-(Init)f(Con-)120 1924 y(structs],)d(page)h(8\).)1736
-2090 y(V)l(ariable)-1899 b Fi(FILE)20 b(*)f Fh(rl)p 211
-2090 V 21 w(instream)120 2152 y Fr(The)c(stdio)h(stream)e(from)h(whic)o
-(h)h(Readline)h(reads)e(input.)1736 2318 y(V)l(ariable)-1899
-b Fi(FILE)20 b(*)f Fh(rl)p 211 2318 V 21 w(outstream)120
-2380 y Fr(The)c(stdio)h(stream)e(to)h(whic)o(h)h(Readline)h(p)q
-(erforms)e(output.)1736 2545 y(V)l(ariable)-1899 b Fi(Function)20
-b(*)g Fh(rl)p 316 2545 V 21 w(startup)p 520 2545 V 20
-w(ho)r(ok)120 2608 y Fr(If)13 b(non-zero,)h(this)f(is)h(the)f(address)g
-(of)g(a)f(function)i(to)f(call)h(just)f(b)q(efore)g Fq(readline)f
-Fr(prin)o(ts)h(the)g(\014rst)120 2670 y(prompt.)p eop
-24 25 bop 0 -58 a Fr(24)1449 b(GNU)15 b(Readline)i(Library)1736
-183 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p
-316 183 18 3 v 21 w(ev)n(en)n(t)p 469 183 V 22 w(ho)r(ok)120
-246 y Fr(If)13 b(non-zero,)f(this)h(is)g(the)g(address)f(of)g(a)g
-(function)h(to)f(call)i(p)q(erio)q(dically)h(when)e(readline)h(is)f(w)o
-(aiting)120 308 y(for)i(terminal)h(input.)1736 471 y(V)l(ariable)-1899
-b Fi(Function)20 b(*)g Fh(rl)p 316 471 V 21 w(getc)p
-439 471 V 21 w(function)120 533 y Fr(If)c(non-zero,)h
-Fq(readline)d Fr(will)k(call)f(indirectly)i(through)c(this)i(p)q(oin)o
-(ter)g(to)e(get)h(a)f(c)o(haracter)h(from)120 595 y(the)k(input)h
-(stream.)33 b(By)20 b(default,)i(it)e(is)g(set)g(to)g
-Fq(rl_getc)p Fr(,)f(the)h(default)h Fq(readline)e Fr(c)o(haracter)120
-657 y(input)d(function)g(\(see)f(Section)h(2.4.8)e([Utilit)o(y)i(F)l
-(unctions],)f(page)g(31\).)1736 820 y(V)l(ariable)-1899
-b Fi(VFunction)20 b(*)g Fh(rl)p 342 820 V 21 w(redispla)n(y)p
-586 820 V 22 w(function)120 883 y Fr(If)f(non-zero,)h
-Fq(readline)e Fr(will)i(call)g(indirectly)i(through)c(this)i(p)q(oin)o
-(ter)f(to)f(up)q(date)i(the)f(displa)o(y)120 945 y(with)d(the)g(curren)
-o(t)f(con)o(ten)o(ts)g(of)h(the)f(editing)i(bu\013er.)22
-b(By)15 b(default,)h(it)g(is)h(set)e(to)g Fq(rl_redisplay)p
-Fr(,)120 1007 y(the)g(default)h Fq(readline)e Fr(redispla)o(y)i
-(function)g(\(see)g(Section)g(2.4.6)d([Redispla)o(y],)j(page)f(29\).)
-1736 1170 y(V)l(ariable)-1899 b Fi(Keymap)20 b Fh(rl)p
-218 1170 V 21 w(executing)p 476 1170 V 22 w(k)n(eymap)120
-1232 y Fr(This)15 b(v)m(ariable)h(is)f(set)g(to)f(the)g(k)o(eymap)h
-(\(see)f(Section)i(2.4.2)d([Keymaps],)h(page)g(25\))g(in)h(whic)o(h)h
-(the)120 1294 y(curren)o(tly)g(executing)g(readline)h(function)f(w)o
-(as)e(found.)1736 1457 y(V)l(ariable)-1899 b Fi(Keymap)20
-b Fh(rl)p 218 1457 V 21 w(binding)p 426 1457 V 22 w(k)n(eymap)120
-1520 y Fr(This)15 b(v)m(ariable)h(is)f(set)g(to)f(the)g(k)o(eymap)h
-(\(see)f(Section)i(2.4.2)d([Keymaps],)h(page)g(25\))g(in)h(whic)o(h)h
-(the)120 1582 y(last)f(k)o(ey)g(binding)i(o)q(ccurred.)0
-1809 y Fp(2.4)33 b(Readline)16 b(Con)n(v)n(enience)g(F)-6
-b(unctions)0 2019 y Fk(2.4.1)30 b(Naming)15 b(a)g(F)-5
-b(unction)62 2157 y Fr(The)19 b(user)f(can)g(dynamically)i(c)o(hange)e
-(the)g(bindings)i(of)e(k)o(eys)f(while)j(using)f(Readline.)30
-b(This)19 b(is)g(done)f(b)o(y)0 2219 y(represen)o(ting)f(the)g
-(function)h(with)f(a)g(descriptiv)o(e)h(name.)25 b(The)17
-b(user)g(is)g(able)h(to)e(t)o(yp)q(e)h(the)g(descriptiv)o(e)h(name)0
-2281 y(when)e(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14
-b(in)j(an)e(init)h(\014le,)g(one)f(migh)o(t)g(\014nd)120
-2408 y Fq(Meta-Rubout:)46 b(backward-kill-word)62 2545
-y Fr(This)21 b(binds)f(the)g(k)o(eystrok)o(e)f Fq(META-RUBOUT)f
-Fr(to)h(the)h(function)g Fl(descriptiv)o(ely)26 b Fr(named)20
-b Fq(backward-kill-)0 2608 y(word)p Fr(.)j(Y)l(ou,)16
-b(as)g(the)g(programmer,)f(should)i(bind)h(the)e(functions)i(y)o(ou)d
-(write)i(to)e(descriptiv)o(e)j(names)e(as)g(w)o(ell.)0
-2670 y(Readline)i(pro)o(vides)d(a)g(function)h(for)f(doing)g(that:)p
+%%Page: 16 18
+16 17 bop 75 -58 a Fu(16)1299 b(GNU)15 b(Readline)i(Library)75
+183 y Ft(do-uppercase-version)12 b(\(M-a,)j(M-b,)f(M-)p
+Fm(x)p Ft(,)h Fj(:)8 b(:)g(:)n Ft(\))315 238 y Fu(If)14
+b(the)g(meta\014ed)g(c)o(haracter)f Fm(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
+293 y(corresp)q(onding)j(upp)q(ercase)g(c)o(haracter.)75
+372 y Ft(prefix-meta)e(\(ESC\))315 427 y Fu(Mak)o(e)j(the)i(next)f(c)o
+(haracter)f(t)o(yp)q(ed)i(b)q(e)g(meta\014ed.)28 b(This)19
+b(is)g(for)e(k)o(eyb)q(oards)h(without)g(a)315 482 y(meta)d(k)o(ey)l(.)
+20 b(T)o(yping)15 b(`)p Ft(ESC)g(f)p Fu(')f(is)i(equiv)m(alen)o(t)h(to)
+d(t)o(yping)i(`)p Ft(M-f)p Fu('.)75 561 y Ft(undo)f(\(C-_,)f(C-x)h
+(C-u\))315 616 y Fu(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
+(ered)g(for)e(eac)o(h)h(line.)75 695 y Ft(revert-line)f(\(M-r\))315
+750 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 805 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
+(b)q(eginning.)75 884 y Ft(tilde-expand)f(\(M-~\))315
+939 y Fu(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
+(ord.)75 1018 y Ft(set-mark)f(\(C-@\))315 1073 y Fu(Set)g(the)f(mark)g
+(to)g(the)h(curren)o(t)g(p)q(oin)o(t.)19 b(If)14 b(a)g(n)o(umeric)g
+(argumen)o(t)f(is)h(supplied,)i(the)e(mark)315 1128 y(is)i(set)f(to)f
+(that)h(p)q(osition.)75 1207 y Ft(exchange-point-and-mark)d(\(C-x)j
+(C-x\))315 1262 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 1317 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 1396
+y Ft(character-search)e(\(C-]\))315 1451 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 1506 y(A)j(negativ)o(e)h
+(coun)o(t)f(searc)o(hes)g(for)f(previous)i(o)q(ccurrences.)75
+1585 y Ft(character-search-backward)c(\(M-C-]\))315 1640
+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
+1695 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 1774 y Ft(insert-comment)d(\(M-#\))
+315 1829 y Fu(The)19 b(v)m(alue)i(of)e(the)g Ft(comment-begin)e
+Fu(v)m(ariable)k(is)f(inserted)g(at)e(the)i(b)q(eginning)h(of)e(the)315
+1884 y(curren)o(t)c(line,)i(and)e(the)g(line)i(is)f(accepted)g(as)e(if)
+i(a)f(newline)i(had)f(b)q(een)g(t)o(yp)q(ed.)75 1963
+y Ft(dump-functions)d(\(\))315 2018 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)h
+(output)e(stream.)315 2073 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 2128 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
+Fm(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
+(y)f(default.)75 2207 y Ft(dump-variables)e(\(\))315
+2262 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)i(output)d(stream.)315
+2317 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
+2371 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fm(inputrc)k
+Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)
+75 2451 y Ft(dump-macros)f(\(\))315 2506 y Fu(Prin)o(t)j(all)h(of)e
+(the)h(Readline)i(k)o(ey)e(sequences)h(b)q(ound)g(to)e(macros)g(and)h
+(the)g(strings)g(they)315 2560 y(ouput.)30 b(If)19 b(a)f(n)o(umeric)i
+(argumen)o(t)d(is)i(supplied,)j(the)c(output)h(is)g(formatted)e(in)i
+(suc)o(h)g(a)315 2615 y(w)o(a)o(y)14 b(that)g(it)i(can)f(b)q(e)g(made)g
+(part)g(of)f(an)h Fm(inputrc)k Fu(\014le.)i(This)15 b(command)g(is)h
+(un)o(b)q(ound)g(b)o(y)315 2670 y(default.)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 183 y Fs(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137
+280 y Fu(While)13 b(the)f(Readline)j(library)d(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 334 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)i Ft(vi)e Fu(mo)q(de)g(b)q
+(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 389 y(the)c
+Fp(POSIX)h Fu(1003.2)d(standard.)137 456 y(In)i(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
+511 y(M-C-j)g(\(toggle-editing-mo)q(de\).)21 b(The)15
+b(Readline)j(default)d(is)h Ft(emacs)f Fu(mo)q(de.)137
+578 y(When)h(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 633 y(had)e(t)o(yp)q(ed)h(an)f(`)p
+Ft(i)p Fu('.)18 b(Pressing)608 631 y Fo(h)p 620 605 70
+2 v 620 633 a Fn(ESC)p 620 641 V 687 631 a Fo(i)715 633
+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 688 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 743 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: 18 20
+18 19 bop 75 -58 a Fu(18)1299 b(GNU)15 b(Readline)i(Library)p
eop
-25 26 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(25)1725 183 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(add)p 253 183 V 20 w(defun)i
-Fg(\()p Fq(char)14 b(*name,)g(Function)g(*function,)g(int)h(key)p
-Fg(\))120 246 y Fr(Add)20 b Fl(name)i Fr(to)d(the)h(list)g(of)f(named)h
-(functions.)33 b(Mak)o(e)19 b Fl(function)i Fr(b)q(e)f(the)f(function)i
-(that)d(gets)120 308 y(called.)j(If)16 b Fl(k)o(ey)j
-Fr(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fl(function)i
-Fr(using)g Fq(rl_bind_key)e(\(\))p Fr(.)62 471 y(Using)i(this)g
-(function)g(alone)g(is)g(su\016cien)o(t)h(for)d(most)h(applications.)22
-b(It)16 b(is)g(the)f(recommended)i(w)o(a)o(y)d(to)h(add)0
-533 y(a)i(few)h(functions)g(to)f(the)h(default)g(functions)h(that)e
-(Readline)j(has)d(built)i(in.)28 b(If)18 b(y)o(ou)g(need)g(to)f(do)h
-(something)0 595 y(other)c(than)h(adding)h(a)e(function)i(to)e
-(Readline,)j(y)o(ou)d(ma)o(y)g(need)i(to)e(use)h(the)g(underlying)h
-(functions)g(describ)q(ed)0 658 y(b)q(elo)o(w.)0 869
-y Fk(2.4.2)30 b(Selecting)15 b(a)g(Keymap)62 1006 y Fr(Key)k(bindings)i
-(tak)o(e)c(place)j(on)e(a)g Fl(k)o(eymap)p Fr(.)30 b(The)18
-b(k)o(eymap)h(is)g(the)f(asso)q(ciation)h(b)q(et)o(w)o(een)g(the)f(k)o
-(eys)h(that)0 1069 y(the)g(user)g(t)o(yp)q(es)g(and)g(the)g(functions)g
-(that)f(get)h(run.)30 b(Y)l(ou)20 b(can)e(mak)o(e)h(y)o(our)f(o)o(wn)g
-(k)o(eymaps,)h(cop)o(y)g(existing)0 1131 y(k)o(eymaps,)14
-b(and)i(tell)g(Readline)i(whic)o(h)e(k)o(eymap)f(to)f(use.)1725
-1294 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218
-1294 V 21 w(mak)n(e)p 370 1294 V 20 w(bare)p 500 1294
-V 20 w(k)n(eymap)j Fg(\(\))120 1356 y Fr(Returns)14 b(a)f(new,)g(empt)o
-(y)g(k)o(eymap.)19 b(The)14 b(space)f(for)g(the)h(k)o(eymap)f(is)g
-(allo)q(cated)i(with)e Fq(malloc)i(\(\))p Fr(;)120 1419
-y(y)o(ou)g(should)h Fq(free)f(\(\))g Fr(it)g(when)h(y)o(ou)f(are)f
-(done.)1725 1582 y(F)l(unction)-1899 b Fi(Keymap)20 b
-Fh(rl)p 218 1582 V 21 w(cop)n(y)p 353 1582 V 21 w(k)n(eymap)j
-Fg(\()p Fq(Keymap)14 b(map)p Fg(\))120 1644 y Fr(Return)i(a)f(new)g(k)o
-(eymap)g(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fl(map)p
-Fr(.)1725 1807 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p
-218 1807 V 21 w(mak)n(e)p 370 1807 V 20 w(k)n(eymap)j
-Fg(\(\))120 1869 y Fr(Return)c(a)f(new)h(k)o(eymap)f(with)h(the)f(prin)
-o(ting)i(c)o(haracters)d(b)q(ound)j(to)e(rl)p 1407 1869
-14 2 v 16 w(insert,)i(the)e(lo)o(w)o(ercase)120 1932
-y(Meta)13 b(c)o(haracters)g(b)q(ound)h(to)f(run)h(their)g(equiv)m(alen)
-o(ts,)i(and)d(the)h(Meta)f(digits)h(b)q(ound)h(to)e(pro)q(duce)120
-1994 y(n)o(umeric)j(argumen)o(ts.)1725 2157 y(F)l(unction)-1899
-b Fi(void)20 b Fh(rl)p 166 2157 18 3 v 21 w(discard)p
-366 2157 V 21 w(k)n(eymap)i Fg(\()p Fq(Keymap)14 b(keymap)p
-Fg(\))120 2219 y Fr(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f
-Fl(k)o(eymap)p Fr(.)62 2382 y(Readline)20 b(has)d(sev)o(eral)h(in)o
-(ternal)g(k)o(eymaps.)26 b(These)18 b(functions)g(allo)o(w)g(y)o(ou)f
-(to)g(c)o(hange)g(whic)o(h)h(k)o(eymap)f(is)0 2445 y(activ)o(e.)1725
-2608 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218
-2608 V 21 w(get)p 316 2608 V 21 w(k)n(eymap)i Fg(\(\))120
-2670 y Fr(Returns)16 b(the)f(curren)o(tly)h(activ)o(e)f(k)o(eymap.)p
+%%Page: 19 21
+19 20 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(19)75 183 y Fq(2)41 b(Programming)28
+b(with)e(GNU)i(Readline)137 305 y Fu(This)16 b(c)o(hapter)f(describ)q
+(es)i(the)f(in)o(terface)g(b)q(et)o(w)o(een)f(the)h(GNU)f(Readline)j
+(Library)e(and)f(other)g(pro-)75 360 y(grams.)38 b(If)22
+b(y)o(ou)f(are)g(a)g(programmer,)h(and)f(y)o(ou)g(wish)i(to)d(include)k
+(the)e(features)f(found)h(in)g(GNU)75 414 y(Readline)16
+b(suc)o(h)e(as)f(completion,)h(line)h(editing,)g(and)f(in)o(teractiv)o
+(e)g(history)f(manipulation)i(in)g(y)o(our)d(o)o(wn)75
+469 y(programs,)i(this)h(section)h(is)g(for)e(y)o(ou.)75
+602 y Fs(2.1)33 b(Basic)22 b(Beha)n(vior)137 700 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 754 y(programs,)e(the)h(default)h(b)q
+(eha)o(viour)g(of)f(Readline)j(is)d(su\016cien)o(t.)21
+b(This)14 b(section)h(describ)q(es)h(ho)o(w)e(to)g(use)75
+809 y(Readline)19 b(in)g(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 864 y Ft(fgets)e(\(\))p Fu(.)137
+933 y(The)j(function)h Ft(readline)c(\(\))j Fu(prin)o(ts)g(a)g(prompt)f
+(and)h(then)g(reads)g(and)g(returns)g(a)g(single)h(line)g(of)75
+988 y(text)12 b(from)f(the)i(user.)19 b(The)12 b(line)i
+Ft(readline)d Fu(returns)h(is)h(allo)q(cated)g(with)g
+Ft(malloc)h(\(\))p Fu(;)e(y)o(ou)g(should)i Ft(free)75
+1042 y(\(\))h Fu(the)g(line)i(when)f(y)o(ou)f(are)f(done)i(with)g(it.)k
+(The)15 b(declaration)h(for)f Ft(readline)f Fu(in)i(ANSI)g(C)f(is)195
+1108 y Ft(char)23 b(*readline)g(\(char)g(*)p Fm(prompt)q
+Ft(\);)75 1177 y Fu(So,)15 b(one)g(migh)o(t)g(sa)o(y)195
+1243 y Ft(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)
+75 1312 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 1366 y(so)h(only)h(the)f(text)g(remains.)
+137 1435 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 1490 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
+1545 y(b)q(een)f(t)o(yp)q(ed.)137 1614 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 1612 y Fo(h)p 1338 1586 57 2 v 1338 1614
+a Fn(C-p)p 1338 1621 V 1392 1612 a Fo(i)1420 1614 y Fu(for)f
+(example\),)i(y)o(ou)f(m)o(ust)75 1668 y(call)j Ft(add_history)e(\(\))h
+Fu(to)f(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)d(in)i(a)f
+Fm(history)k Fu(list)d(of)e(suc)o(h)i(lines.)195 1734
+y Ft(add_history)22 b(\(line\);)75 1803 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 1872 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 1927 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 1981 y Ft(gets)g(\(\))f
+Fu(library)i(function,)g(and)g(has)f(the)g(adv)m(an)o(tage)f(of)h(no)g
+(static)g(bu\013er)h(to)e(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.)
+48 b(Returns)22 b(NULL)i(on)f(EOF.)h(*/)195 2255 y(char)f(*)195
+2307 y(rl_gets)g(\(\))195 2359 y({)243 2411 y(/*)g(If)h(the)f(buffer)g
+(has)h(already)f(been)g(allocated,)g(return)g(the)g(memory)314
+2462 y(to)h(the)f(free)h(pool.)f(*/)243 2514 y(if)g(\(line_read\))290
+2566 y({)338 2618 y(free)g(\(line_read\);)338 2670 y(line_read)g(=)h
+(\(char)f(*\)NULL;)p eop
+%%Page: 20 22
+20 21 bop 75 -58 a Fu(20)1299 b(GNU)15 b(Readline)i(Library)290
+183 y Ft(})243 287 y(/*)23 b(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)
+243 339 y(line_read)f(=)i(readline)f(\(""\);)243 443
+y(/*)g(If)h(the)f(line)h(has)f(any)h(text)f(in)g(it,)h(save)f(it)h(on)f
+(the)h(history.)f(*/)243 495 y(if)g(\(line_read)g(&&)g(*line_read\))290
+546 y(add_history)g(\(line_read\);)243 650 y(return)g(\(line_read\);)
+195 702 y(})137 771 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 769 y Fo(h)p
+1181 742 74 2 v 1181 771 a Fn(T)m(AB)p 1181 778 V 1253
+769 a Fo(i)1280 771 y Fu(completion:)19 b(completion)13
+b(on)f(\014le)75 825 y(names.)20 b(If)c(y)o(ou)f(do)g(not)g(w)o(an)o(t)
+f(Readline)k(to)c(complete)j(on)e(\014lenames,)h(y)o(ou)f(can)g(c)o
+(hange)h(the)f(binding)75 880 y(of)g(the)205 878 y Fo(h)p
+217 852 V 217 880 a Fn(T)m(AB)p 217 888 V 289 878 a Fo(i)319
+880 y Fu(k)o(ey)g(with)h Ft(rl_bind_key)d(\(\))p Fu(.)195
+946 y Ft(int)23 b(rl_bind_key)g(\(int)g Fm(k)o(ey)p Ft(,)h(int)f(\(*)p
+Fm(function)p Ft(\)\(\)\);)137 1014 y(rl_bind_key)14
+b(\(\))h Fu(tak)o(es)g(t)o(w)o(o)g(argumen)o(ts:)20 b
+Fm(k)o(ey)f Fu(is)d(the)g(c)o(haracter)f(that)g(y)o(ou)g(w)o(an)o(t)g
+(to)g(bind,)i(and)75 1069 y Fm(function)i Fu(is)f(the)g(address)g(of)g
+(the)g(function)g(to)g(call)h(when)f Fm(k)o(ey)k Fu(is)c(pressed.)29
+b(Binding)1628 1067 y Fo(h)p 1641 1041 V 1641 1069 a
+Fn(T)m(AB)p 1641 1076 V 1712 1067 a Fo(i)1745 1069 y
+Fu(to)17 b Ft(rl_)75 1124 y(insert)d(\(\))i Fu(mak)o(es)433
+1122 y Fo(h)p 446 1096 V 446 1124 a Fn(T)m(AB)p 446 1131
+V 517 1122 a Fo(i)548 1124 y Fu(insert)g(itself.)22 b
+Ft(rl_bind_key)13 b(\(\))i Fu(returns)h(non-zero)g(if)g
+Fm(k)o(ey)j Fu(is)d(not)f(a)g(v)m(alid)75 1178 y(ASCI)q(I)h(c)o
+(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g(255\).)137
+1247 y(Th)o(us,)g(to)g(disable)h(the)g(default)703 1245
+y Fo(h)p 716 1219 V 716 1247 a Fn(T)m(AB)p 716 1254 V
+787 1245 a Fo(i)817 1247 y Fu(b)q(eha)o(vior,)g(the)f(follo)o(wing)h
+(su\016ces:)195 1312 y Ft(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137
+1381 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 1435 y(tion)i(called)h Ft(initialize_readline)d(\(\))h
+Fu(whic)o(h)i(p)q(erforms)e(this)h(and)g(other)g(desired)g
+(initializations,)75 1490 y(suc)o(h)h(as)e(installing)k(custom)c
+(completers)i(\(see)f(Section)h(2.5)f([Custom)f(Completers],)g(page)h
+(30\).)75 1622 y Fs(2.2)33 b(Custom)21 b(F)-6 b(unctions)137
+1719 y Fu(Readline)15 b(pro)o(vides)e(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 1774 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 1829 y(v)m(ariables)g(de\014ned)h(within)f(the)f
+(Readline)j(library)d(whic)o(h)h(allo)o(w)g(a)e(user)h(program)f(to)h
+(add)g(customized)75 1884 y(functionalit)o(y)j(to)f(Readline.)75
+1998 y Fl(2.2.1)30 b(The)20 b(F)-5 b(unction)20 b(T)n(yp)r(e)137
+2095 y Fu(F)l(or)f(readabilt)o(y)l(,)h(w)o(e)f(declare)h(a)f(new)g(t)o
+(yp)q(e)g(of)g(ob)s(ject,)g(called)i Fm(F)l(unction)p
+Fu(.)32 b(A)19 b Ft(Function)f Fu(is)h(a)g(C)75 2150
+y(function)d(whic)o(h)g(returns)f(an)g Ft(int)p Fu(.)20
+b(The)15 b(t)o(yp)q(e)g(declaration)h(for)f Ft(Function)f
+Fu(is:)75 2218 y Ft(typedef)g(int)h(Function)f(\(\);)137
+2287 y Fu(The)21 b(reason)g(for)f(declaring)i(this)g(new)f(t)o(yp)q(e)g
+(is)g(to)g(mak)o(e)f(it)h(easier)g(to)g(write)g(co)q(de)g(describing)75
+2342 y(p)q(oin)o(ters)16 b(to)f(C)g(functions.)21 b(Let)16
+b(us)f(sa)o(y)g(w)o(e)g(had)h(a)f(v)m(ariable)i(called)g
+Fm(func)i Fu(whic)o(h)d(w)o(as)e(a)i(p)q(oin)o(ter)f(to)g(a)75
+2396 y(function.)21 b(Instead)15 b(of)g(the)g(classic)i(C)e
+(declaration)137 2465 y Ft(int)g(\(*\)\(\)func;)75 2533
+y Fu(w)o(e)g(ma)o(y)f(write)137 2602 y Ft(Function)g(*func;)75
+2670 y Fu(Similarly)l(,)j(there)e(are)p eop
+%%Page: 21 23
+21 22 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(21)195 183 y Ft(typedef)23 b(void)g(VFunction)g(\(\);)
+195 235 y(typedef)g(char)g(*CPFunction)g(\(\);)g Fu(and)195
+287 y Ft(typedef)g(char)g(**CPPFunction)f(\(\);)75 353
+y Fu(for)17 b(functions)h(returning)g(no)f(v)m(alue,)h
+Ft(pointer)d(to)g(char)p Fu(,)h(and)i Ft(pointer)c(to)h(pointer)f(to)h
+(char)p Fu(,)i(re-)75 408 y(sp)q(ectiv)o(ely)l(.)75 517
+y Fl(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5 b(unction)137
+612 y Fu(In)17 b(order)f(to)f(write)h(new)h(functions)g(for)e
+(Readline,)j(y)o(ou)e(need)h(to)e(kno)o(w)h(the)g(calling)i(con)o(v)o
+(en)o(tions)75 667 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 722 y(state)c(of)h(the)g(line)i
+(read)e(so)g(far.)137 788 y(The)h(calling)h(sequence)f(for)f(a)f
+(command)i Ft(foo)e Fu(lo)q(oks)i(lik)o(e)195 851 y Ft(foo)23
+b(\(int)h(count,)f(int)g(key\))75 917 y Fu(where)18 b
+Fm(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 Fm(k)o(ey)k Fu(is)d(the)f(k)o(ey)g(that)f(in)o(v)o
+(ok)o(ed)75 972 y(this)f(function.)137 1038 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 1093 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
+1148 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
+1203 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 1258 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 1312 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.)75 1438 y Fs(2.3)33 b(Readline)23
+b(V)-6 b(ariables)137 1533 y Fu(These)16 b(v)m(ariables)g(are)f(a)o(v)m
+(ailable)i(to)e(function)h(writers.)1661 1622 y(V)l(ariable)-1749
+b Fi(char)20 b(*)f Fh(rl)p 286 1622 18 3 v 21 w(line)p
+395 1622 V 23 w(bu\013er)195 1677 y Fu(This)c(is)f(the)h(line)h
+(gathered)e(so)f(far.)19 b(Y)l(ou)c(are)f(w)o(elcome)g(to)g(mo)q(dify)g
+(the)h(con)o(ten)o(ts)e(of)h(the)195 1732 y(line,)i(but)g(see)f
+(Section)h(2.4.5)e([Allo)o(wing)i(Undoing],)f(page)g(25.)1661
+1821 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 1821
+V 21 w(p)r(oin)n(t)195 1876 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 Fm(p)q(oin)o(t)q Fu(\).)1661 1965 y(V)l(ariable)-1749
+b Fi(int)20 b Fh(rl)p 215 1965 V 21 w(end)195 2019 y
+Fu(The)e(n)o(um)o(b)q(er)g(of)f(c)o(haracters)g(presen)o(t)h(in)g
+Ft(rl_line_buffer)p Fu(.)26 b(When)18 b Ft(rl_point)e
+Fu(is)j(at)195 2074 y(the)c(end)h(of)f(the)g(line,)i
+Ft(rl_point)d Fu(and)h Ft(rl_end)f Fu(are)h(equal.)1661
+2163 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 2163
+V 21 w(mark)195 2218 y Fu(The)14 b(mark)e(\(sa)o(v)o(ed)h(p)q
+(osition\))h(in)g(the)g(curren)o(t)f(line.)21 b(If)14
+b(set,)f(the)h(mark)e(and)i(p)q(oin)o(t)g(de\014ne)195
+2273 y(a)h Fm(region)p Fu(.)1661 2362 y(V)l(ariable)-1749
+b Fi(int)20 b Fh(rl)p 215 2362 V 21 w(done)195 2417 y
+Fu(Setting)j(this)g(to)f(a)h(non-zero)g(v)m(alue)h(causes)f(Readline)i
+(to)d(return)h(the)g(curren)o(t)f(line)195 2471 y(immediately)l(.)1661
+2560 y(V)l(ariable)-1749 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)15 b(this)h(to)f(a)f(v)m(alue)j(mak)o(es)d(it)i(the)f(next)g
+(k)o(eystrok)o(e)f(read.)20 b(This)c(is)f(a)g(w)o(a)o(y)f(to)h(stu\013)
+195 2670 y(a)g(single)h(c)o(haracter)f(in)o(to)g(the)g(input)i(stream.)
+p eop
+%%Page: 22 24
+22 23 bop 75 -58 a Fu(22)1299 b(GNU)15 b(Readline)i(Library)1661
+183 y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286
+183 18 3 v 21 w(prompt)195 238 y Fu(The)14 b(prompt)f(Readline)j(uses.)
+k(This)14 b(is)g(set)g(from)f(the)g(argumen)o(t)g(to)g
+Ft(readline)h(\(\))p Fu(,)g(and)195 293 y(should)i(not)f(b)q(e)h
+(assigned)g(to)e(directly)l(.)1661 399 y(V)l(ariable)-1749
+b Fi(char)20 b(*)f Fh(rl)p 286 399 V 21 w(library)p 475
+399 V 22 w(v)n(ersion)195 453 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(.)1661 559
+y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286 559
+V 21 w(terminal)p 518 559 V 21 w(name)195 614 y Fu(The)c(terminal)h(t)o
+(yp)q(e,)f(used)h(for)f(initialization.)1661 720 y(V)l(ariable)-1749
+b Fi(char)20 b(*)f Fh(rl)p 286 720 V 21 w(readline)p
+505 720 V 22 w(name)195 774 y Fu(This)d(v)m(ariable)h(is)f(set)f(to)g
+(a)g(unique)i(name)f(b)o(y)f(eac)o(h)g(application)j(using)e(Readline.)
+23 b(The)195 829 y(v)m(alue)12 b(allo)o(ws)e(conditional)i(parsing)f
+(of)f(the)g(inputrc)h(\014le)h(\(see)e(Section)h(1.3.2)e([Conditional)
+195 884 y(Init)16 b(Constructs],)e(page)h(7\).)1661 990
+y(V)l(ariable)-1749 b Fi(FILE)20 b(*)f Fh(rl)p 286 990
+V 21 w(instream)195 1044 y Fu(The)c(stdio)h(stream)e(from)h(whic)o(h)h
+(Readline)h(reads)e(input.)1661 1150 y(V)l(ariable)-1749
+b Fi(FILE)20 b(*)f Fh(rl)p 286 1150 V 21 w(outstream)195
+1205 y Fu(The)c(stdio)h(stream)e(to)h(whic)o(h)h(Readline)h(p)q
+(erforms)e(output.)1661 1311 y(V)l(ariable)-1749 b Fi(Function)20
+b(*)g Fh(rl)p 391 1311 V 21 w(startup)p 595 1311 V 20
+w(ho)r(ok)195 1365 y Fu(If)15 b(non-zero,)f(this)h(is)g(the)f(address)h
+(of)e(a)h(function)i(to)d(call)j(just)e(b)q(efore)h Ft(readline)e
+Fu(prin)o(ts)195 1420 y(the)i(\014rst)g(prompt.)1661
+1526 y(V)l(ariable)-1749 b Fi(Function)20 b(*)g Fh(rl)p
+391 1526 V 21 w(ev)n(en)n(t)p 544 1526 V 22 w(ho)r(ok)195
+1581 y Fu(If)d(non-zero,)f(this)h(is)f(the)h(address)f(of)g(a)g
+(function)h(to)f(call)h(p)q(erio)q(dically)j(when)c(readline)195
+1636 y(is)g(w)o(aiting)f(for)g(terminal)h(input.)1661
+1741 y(V)l(ariable)-1749 b Fi(Function)20 b(*)g Fh(rl)p
+391 1741 V 21 w(getc)p 514 1741 V 21 w(function)195 1796
+y Fu(If)13 b(non-zero,)g Ft(readline)e Fu(will)k(call)e(indirectly)i
+(through)d(this)h(p)q(oin)o(ter)g(to)f(get)g(a)h(c)o(haracter)195
+1851 y(from)i(the)i(input)g(stream.)22 b(By)16 b(default,)h(it)f(is)h
+(set)f(to)f Ft(rl_getc)p Fu(,)g(the)h(default)h Ft(readline)195
+1906 y Fu(c)o(haracter)d(input)j(function)f(\(see)f(Section)h(2.4.8)e
+([Utilit)o(y)h(F)l(unctions],)h(page)f(27\).)1661 2011
+y(V)l(ariable)-1749 b Fi(VFunction)20 b(*)g Fh(rl)p 417
+2011 V 21 w(redispla)n(y)p 661 2011 V 22 w(function)195
+2066 y Fu(If)g(non-zero,)h Ft(readline)d Fu(will)j(call)g(indirectly)h
+(through)d(this)h(p)q(oin)o(ter)h(to)e(up)q(date)h(the)195
+2121 y(displa)o(y)h(with)f(the)g(curren)o(t)g(con)o(ten)o(ts)g(of)f
+(the)h(editing)i(bu\013er.)34 b(By)20 b(default,)h(it)g(is)f(set)195
+2176 y(to)f Ft(rl_redisplay)p Fu(,)f(the)i(default)g
+Ft(readline)e Fu(redispla)o(y)j(function)f(\(see)f(Section)i(2.4.6)195
+2231 y([Redispla)o(y],)16 b(page)f(26\).)1661 2336 y(V)l(ariable)-1749
+b Fi(Keymap)20 b Fh(rl)p 293 2336 V 21 w(executing)p
+551 2336 V 22 w(k)n(eymap)195 2391 y Fu(This)g(v)m(ariable)g(is)f(set)g
+(to)f(the)h(k)o(eymap)g(\(see)g(Section)h(2.4.2)d([Keymaps],)i(page)g
+(23\))f(in)195 2446 y(whic)o(h)e(the)f(curren)o(tly)h(executing)g
+(readline)h(function)f(w)o(as)f(found.)1661 2552 y(V)l(ariable)-1749
+b Fi(Keymap)20 b Fh(rl)p 293 2552 V 21 w(binding)p 501
+2552 V 22 w(k)n(eymap)195 2606 y Fu(This)g(v)m(ariable)g(is)f(set)g(to)
+f(the)h(k)o(eymap)g(\(see)g(Section)h(2.4.2)d([Keymaps],)i(page)g(23\))
+f(in)195 2661 y(whic)o(h)e(the)f(last)g(k)o(ey)h(binding)h(o)q
+(ccurred.)p eop
+%%Page: 23 25
+23 24 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(23)75 183 y Fs(2.4)33 b(Readline)23 b(Con)n(v)n
+(enience)g(F)-6 b(unctions)75 331 y Fl(2.4.1)30 b(Naming)20
+b(a)g(F)-5 b(unction)137 430 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.)
+36 b(This)20 b(is)75 485 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 540 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
+607 y Ft(Meta-Rubout:)46 b(backward-kill-word)137 678
+y Fu(This)20 b(binds)h(the)f(k)o(eystrok)o(e)659 676
+y Fo(h)p 671 650 209 2 v 671 678 a Fn(Meta-Rub)q(out)p
+671 685 V 878 676 a Fo(i)912 678 y Fu(to)f(the)h(function)g
+Fm(descriptiv)o(ely)25 b Fu(named)20 b Ft(backward-)75
+733 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 787 y(names)e(as)g(w)o(ell.)21 b(Readline)c(pro)o(vides)f(a)f
+(function)h(for)e(doing)i(that:)1650 886 y(F)l(unction)-1749
+b Fi(int)20 b Fh(rl)p 215 886 18 3 v 21 w(add)p 328 886
+V 20 w(defun)i Fg(\()p Ft(char)14 b(*name,)g(Function)g(*function,)g
+(int)h(key)p Fg(\))195 941 y Fu(Add)i Fm(name)h Fu(to)e(the)g(list)h
+(of)e(named)i(functions.)23 b(Mak)o(e)15 b Fm(function)i
+Fu(b)q(e)g(the)f(function)h(that)195 995 y(gets)e(called.)21
+b(If)16 b Fm(k)o(ey)j Fu(is)c(not)g(-1,)g(then)g(bind)i(it)e(to)g
+Fm(function)h Fu(using)g Ft(rl_bind_key)d(\(\))p Fu(.)137
+1094 y(Using)j(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 1149 y(to)d(add)h(a)f(few)g(functions)h(to)f(the)h(default)g
+(functions)g(that)f(Readline)j(has)d(built)i(in.)20 b(If)14
+b(y)o(ou)f(need)h(to)f(do)75 1204 y(something)k(other)g(than)f(adding)i
+(a)e(function)i(to)e(Readline,)j(y)o(ou)e(ma)o(y)f(need)i(to)e(use)h
+(the)g(underlying)75 1258 y(functions)f(describ)q(ed)h(b)q(elo)o(w.)75
+1377 y Fl(2.4.2)30 b(Selecting)20 b(a)h(Keymap)137 1476
+y Fu(Key)16 b(bindings)i(tak)o(e)c(place)j(on)e(a)g Fm(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 1531 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 1586 y(existing)i(k)o(eymaps,)
+f(and)g(tell)h(Readline)i(whic)o(h)e(k)o(eymap)f(to)f(use.)1650
+1684 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293
+1684 V 21 w(mak)n(e)p 445 1684 V 20 w(bare)p 575 1684
+V 20 w(k)n(eymap)j Fg(\(\))195 1739 y Fu(Returns)d(a)f(new,)i(empt)o(y)
+e(k)o(eymap.)32 b(The)20 b(space)g(for)e(the)i(k)o(eymap)f(is)h(allo)q
+(cated)h(with)195 1794 y Ft(malloc)14 b(\(\))p Fu(;)h(y)o(ou)g(should)h
+Ft(free)e(\(\))h Fu(it)h(when)g(y)o(ou)e(are)h(done.)1650
+1892 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293
+1892 V 21 w(cop)n(y)p 428 1892 V 21 w(k)n(eymap)j Fg(\()p
+Ft(Keymap)14 b(map)p Fg(\))195 1947 y Fu(Return)i(a)f(new)g(k)o(eymap)g
+(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fm(map)p Fu(.)1650
+2046 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293
+2046 V 21 w(mak)n(e)p 445 2046 V 20 w(k)n(eymap)j Fg(\(\))195
+2101 y Fu(Return)15 b(a)f(new)h(k)o(eymap)f(with)h(the)g(prin)o(ting)h
+(c)o(haracters)d(b)q(ound)j(to)e(rl)p 1443 2101 14 2
+v 17 w(insert,)g(the)h(lo)o(w-)195 2155 y(ercase)21 b(Meta)f(c)o
+(haracters)g(b)q(ound)i(to)f(run)g(their)g(equiv)m(alen)o(ts,)j(and)d
+(the)g(Meta)f(digits)195 2210 y(b)q(ound)c(to)f(pro)q(duce)h(n)o
+(umeric)g(argumen)o(ts.)1650 2309 y(F)l(unction)-1749
+b Fi(void)20 b Fh(rl)p 241 2309 18 3 v 21 w(discard)p
+441 2309 V 21 w(k)n(eymap)i Fg(\()p Ft(Keymap)14 b(keymap)p
+Fg(\))195 2363 y Fu(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f
+Fm(k)o(eymap)p Fu(.)137 2462 y(Readline)25 b(has)e(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 2517 y(k)o(eymap)15 b(is)h(activ)o(e.)
+1650 2615 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p
+293 2615 V 21 w(get)p 391 2615 V 21 w(k)n(eymap)i Fg(\(\))195
+2670 y Fu(Returns)16 b(the)f(curren)o(tly)h(activ)o(e)f(k)o(eymap.)p
eop
-26 27 bop 0 -58 a Fr(26)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 183
-18 3 v 21 w(set)p 258 183 V 21 w(k)n(eymap)i Fg(\()p
-Fq(Keymap)14 b(keymap)p Fg(\))120 246 y Fr(Mak)o(es)g
-Fl(k)o(eymap)j Fr(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1725
-420 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218
-420 V 21 w(get)p 316 420 V 21 w(k)n(eymap)p 530 420 V
-20 w(b)n(y)p 610 420 V 21 w(name)i Fg(\()p Fq(char)14
-b(*name)p Fg(\))120 482 y Fr(Return)19 b(the)g(k)o(eymap)f(matc)o(hing)
-g Fl(name)p Fr(.)30 b Fl(name)21 b Fr(is)e(one)g(whic)o(h)g(w)o(ould)g
-(b)q(e)g(supplied)i(in)e(a)f Fq(set)120 544 y(keymap)c
-Fr(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g
-(page)f(5\).)1725 719 y(F)l(unction)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 719 V 21 w(get)p 309 719 V 21 w(k)n(eymap)p
-523 719 V 20 w(name)i Fg(\()p Fq(Keymap)14 b(keymap)p
-Fg(\))120 781 y Fr(Return)19 b(the)g(name)f(matc)o(hing)h
-Fl(k)o(eymap)p Fr(.)29 b Fl(name)21 b Fr(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)g(supplied)i(in)e(a)f Fq(set)120 843 y(keymap)c
-Fr(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g
-(page)f(5\).)0 1088 y Fk(2.4.3)30 b(Binding)15 b(Keys)62
-1229 y Fr(Y)l(ou)h(asso)q(ciate)f(k)o(eys)f(with)i(functions)g(through)
-e(the)i(k)o(eymap.)j(Readline)f(has)c(sev)o(eral)i(in)o(ternal)g(k)o
-(eymaps:)0 1291 y Fq(emacs_standard_keymap)p Fr(,)i Fq
-(emacs_meta_keymap)p Fr(,)g Fq(emacs_ctlx_keymap)p Fr(,)h
-Fq(vi_movement_keymap)p Fr(,)f(and)0 1354 y Fq(vi_insertion_keymap)p
-Fr(.)h Fq(emacs_standard_keymap)13 b Fr(is)k(the)f(default,)g(and)g
-(the)g(examples)h(in)f(this)h(man)o(ual)0 1416 y(assume)e(that.)62
-1557 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1725
-1731 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1731
-V 21 w(bind)p 272 1731 V 21 w(k)n(ey)k Fg(\()p Fq(int)14
-b(key,)h(Function)f(*function)p Fg(\))120 1794 y Fr(Binds)i
-Fl(k)o(ey)j Fr(to)14 b Fl(function)i Fr(in)g(the)f(curren)o(tly)h
-(activ)o(e)f(k)o(eymap.)k(Returns)d(non-zero)f(in)h(the)f(case)g(of)120
-1856 y(an)g(in)o(v)m(alid)j Fl(k)o(ey)p Fr(.)1725 2030
-y(F)l(unction)-1899 b Fi(int)19 b Fh(rl)p 139 2030 V
-21 w(bind)p 271 2030 V 21 w(k)n(ey)p 376 2030 V 21 w(in)p
-444 2030 V 22 w(map)i Fg(\()p Fq(int)14 b(key,)h(Function)f(*function,)
-g(Keymap)g(map)p Fg(\))120 2093 y Fr(Bind)i Fl(k)o(ey)j
-Fr(to)c Fl(function)h Fr(in)g Fl(map)p Fr(.)k(Returns)15
-b(non-zero)h(in)g(the)f(case)g(of)g(an)g(in)o(v)m(alid)j
-Fl(k)o(ey)p Fr(.)1725 2267 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 2267 V 21 w(un)n(bind)p 334 2267 V 21 w(k)n(ey)k
-Fg(\()p Fq(int)14 b(key)p Fg(\))120 2329 y Fr(Bind)h
-Fl(k)o(ey)i Fr(to)c(the)h(n)o(ull)h(function)f(in)g(the)g(curren)o(tly)
-g(activ)o(e)g(k)o(eymap.)19 b(Returns)14 b(non-zero)g(in)g(case)120
-2391 y(of)h(error.)1725 2566 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 2566 V 21 w(un)n(bind)p 334 2566 V 21 w(k)n(ey)p
-439 2566 V 21 w(in)p 507 2566 V 22 w(map)h Fg(\()p Fq(int)14
-b(key,)h(Keymap)f(map)p Fg(\))120 2628 y Fr(Bind)i Fl(k)o(ey)j
-Fr(to)c(the)g(n)o(ull)i(function)f(in)g Fl(map)p Fr(.)k(Returns)15
-b(non-zero)h(in)g(case)f(of)g(error.)p eop
-27 28 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(27)1725 183 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(generic)p 338 183 V 21
-w(bind)j Fg(\()p Fq(int)15 b(type,)f(char)h(*keyseq,)f(char)h(*data,)f
-(Keymap)208 246 y(map)p Fg(\))120 308 y Fr(Bind)j(the)f(k)o(ey)g
-(sequence)h(represen)o(ted)f(b)o(y)g(the)g(string)g Fl(k)o(eyseq)g
-Fr(to)g(the)f(arbitrary)h(p)q(oin)o(ter)g Fl(data)p Fr(.)120
-370 y Fl(t)o(yp)q(e)j Fr(sa)o(ys)c(what)g(kind)i(of)f(data)f(is)i(p)q
-(oin)o(ted)g(to)e(b)o(y)h Fl(data)p Fr(;)f(this)i(can)f(b)q(e)g(a)g
-(function)h(\()p Fq(ISFUNC)p Fr(\),)d(a)120 432 y(macro)i(\()p
-Fq(ISMACR)p Fr(\),)f(or)i(a)f(k)o(eymap)g(\()p Fq(ISKMAP)p
-Fr(\).)23 b(This)18 b(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.)
-25 b(The)120 495 y(initial)17 b(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g
-(bindings)i(is)f Fl(map)p Fr(.)1725 683 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 683 V 21 w(parse)p 294 683
-V 19 w(and)p 405 683 V 21 w(bind)j Fg(\()p Fq(char)14
-b(*line)p Fg(\))120 745 y Fr(P)o(arse)i Fl(line)21 b
-Fr(as)16 b(if)h(it)g(had)f(b)q(een)i(read)f(from)e(the)i
-Fq(inputrc)f Fr(\014le)h(and)g(p)q(erform)f(an)o(y)h(k)o(ey)f(bindings)
-120 808 y(and)f(v)m(ariable)i(assignmen)o(ts)e(found)h(\(see)f(Section)
-h(1.3)e([Readline)j(Init)f(File],)g(page)f(5\).)1725
-996 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 996
-V 21 w(read)p 271 996 V 20 w(init)p 375 996 V 22 w(\014le)k
-Fg(\()p Fq(char)14 b(*filename)p Fg(\))120 1059 y Fr(Read)19
-b(k)o(eybindings)i(and)e(v)m(ariable)h(assignmen)o(ts)f(from)f
-Fl(\014lename)k Fr(\(see)d(Section)g(1.3)f([Readline)120
-1121 y(Init)e(File],)g(page)f(5\).)0 1409 y Fk(2.4.4)30
-b(Asso)r(ciating)15 b(F)-5 b(unction)15 b(Names)g(and)g(Bindings)62
-1554 y Fr(These)22 b(functions)g(allo)o(w)g(y)o(ou)f(to)f(\014nd)i(out)
-f(what)g(k)o(eys)g(in)o(v)o(ok)o(e)h(named)f(functions)h(and)g(the)f
-(functions)0 1617 y(in)o(v)o(ok)o(ed)15 b(b)o(y)h(a)e(particular)i(k)o
-(ey)f(sequence.)1725 1805 y(F)l(unction)-1899 b Fi(Function)20
-b(*)g Fh(rl)p 316 1805 V 21 w(named)p 504 1805 V 19 w(function)j
-Fg(\()p Fq(char)14 b(*name)p Fg(\))120 1868 y Fr(Return)i(the)f
-(function)h(with)g(name)f Fl(name)p Fr(.)1725 2056 y(F)l(unction)-1899
-b Fi(Function)20 b(*)g Fh(rl)p 316 2056 V 21 w(function)p
-542 2056 V 21 w(of)p 610 2056 V 19 w(k)n(eyseq)k Fg(\()p
-Fq(char)15 b(*keyseq,)f(Keymap)g(map,)h(int)208 2118
-y(*type)p Fg(\))120 2181 y Fr(Return)i(the)f(function)h(in)o(v)o(ok)o
-(ed)g(b)o(y)f Fl(k)o(eyseq)i Fr(in)f(k)o(eymap)f Fl(map)p
-Fr(.)23 b(If)16 b Fl(map)i Fr(is)f(NULL,)g(the)f(curren)o(t)120
-2243 y(k)o(eymap)g(is)i(used.)25 b(If)17 b Fl(t)o(yp)q(e)i
-Fr(is)e(not)g(NULL,)g(the)g(t)o(yp)q(e)g(of)f(the)h(ob)s(ject)f(is)h
-(returned)g(in)h(it)f(\(one)f(of)120 2305 y Fq(ISFUNC)p
-Fr(,)e Fq(ISKMAP)p Fr(,)g(or)h Fq(ISMACR)p Fr(\).)1725
-2494 y(F)l(unction)-1899 b Fi(char)20 b(**)f Fh(rl)p
-237 2494 V 21 w(in)n(v)n(oking)p 466 2494 V 23 w(k)n(eyseqs)k
-Fg(\()p Fq(Function)14 b(*function)p Fg(\))120 2556 y
-Fr(Return)19 b(an)e(arra)o(y)g(of)h(strings)f(represen)o(ting)i(the)f
-(k)o(ey)g(sequences)h(used)f(to)f(in)o(v)o(ok)o(e)h Fl(function)h
-Fr(in)120 2618 y(the)c(curren)o(t)g(k)o(eymap.)p eop
-28 29 bop 0 -58 a Fr(28)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(char)20 b(**)f Fh(rl)p 237
-183 18 3 v 21 w(in)n(v)n(oking)p 466 183 V 23 w(k)n(eyseqs)p
-675 183 V 21 w(in)p 743 183 V 22 w(map)i Fg(\()p Fq(Function)14
-b(*function,)f(Keymap)208 246 y(map)p Fg(\))120 308 y
-Fr(Return)19 b(an)e(arra)o(y)g(of)h(strings)f(represen)o(ting)i(the)f
-(k)o(ey)g(sequences)h(used)f(to)f(in)o(v)o(ok)o(e)h Fl(function)h
-Fr(in)120 370 y(the)c(k)o(eymap)g Fl(map)p Fr(.)1725
-563 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 563
-V 21 w(function)p 392 563 V 21 w(dump)r(er)g Fg(\()p
-Fq(int)15 b(readable)p Fg(\))120 625 y Fr(Prin)o(t)i(the)g(readline)h
-(function)g(names)f(and)g(the)g(k)o(ey)g(sequences)h(curren)o(tly)g(b)q
-(ound)f(to)g(them)g(to)120 687 y Fq(rl_outstream)p Fr(.)j(If)c
-Fl(readable)j Fr(is)d(non-zero,)g(the)g(list)g(is)g(formatted)f(in)i
-(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)120 750 y(b)q(e)g(made)f
-(part)g(of)f(an)i Fq(inputrc)e Fr(\014le)i(and)f(re-read.)1725
-942 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 942
-V 21 w(list)p 262 942 V 22 w(funmap)p 475 942 V 18 w(names)h
-Fg(\(\))120 1005 y Fr(Prin)o(t)15 b(the)g(names)h(of)e(all)j(bindable)g
-(Readline)g(functions)f(to)f Fq(rl_outstream)p Fr(.)0
-1305 y Fk(2.4.5)30 b(Allo)n(wing)16 b(Undoing)62 1452
-y Fr(Supp)q(orting)f(the)f(undo)g(command)g(is)g(a)g(painless)h(thing,)
-f(and)g(mak)o(es)f(y)o(our)h(functions)g(m)o(uc)o(h)g(more)f(useful.)0
-1515 y(It)i(is)g(certainly)g(easy)f(to)g(try)g(something)h(if)g(y)o(ou)
-f(kno)o(w)g(y)o(ou)g(can)h(undo)g(it.)20 b(I)15 b(could)g(use)g(an)f
-(undo)h(function)h(for)0 1577 y(the)f(sto)q(c)o(k)g(mark)o(et.)62
-1724 y(If)h(y)o(our)f(function)i(simply)g(inserts)f(text)f(once,)h(or)f
-(deletes)h(text)f(once,)h(and)g(uses)g Fq(rl_insert_text)d(\(\))i
-Fr(or)0 1786 y Fq(rl_delete_text)e(\(\))i Fr(to)g(do)g(it,)g(then)g
-(undoing)i(is)e(already)h(done)f(for)g(y)o(ou)g(automatically)l(.)62
-1934 y(If)h(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o(ultiple)i
-(deletions,)f(or)f(an)o(y)g(com)o(bination)h(of)f(these)g(op)q
-(erations,)g(y)o(ou)0 1996 y(should)j(group)e(them)g(together)g(in)o
-(to)g(one)h(op)q(eration.)24 b(This)17 b(is)g(done)g(with)g
-Fq(rl_begin_undo_group)c(\(\))j Fr(and)0 2058 y Fq(rl_end_undo_group)d
-(\(\))p Fr(.)62 2206 y(The)j(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:)120 2343 y Fq(enum)23 b(undo_code)g({)h
-(UNDO_DELETE,)e(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)h(};)62
-2490 y Fr(Notice)c(that)e Fq(UNDO_DELETE)f Fr(means)i(to)f(insert)i
-(some)e(text,)h(and)g Fq(UNDO_INSERT)e Fr(means)i(to)f(delete)i(some)0
-2552 y(text.)37 b(That)21 b(is,)i(the)e(undo)h(co)q(de)f(tells)i(undo)e
-(what)g(to)f(undo,)j(not)e(ho)o(w)g(to)f(undo)i(it.)38
-b Fq(UNDO_BEGIN)20 b Fr(and)0 2614 y Fq(UNDO_END)14 b
-Fr(are)h(tags)f(added)i(b)o(y)f Fq(rl_begin_undo_group)e(\(\))i
-Fr(and)g Fq(rl_end_undo_group)e(\(\))p Fr(.)p eop
-29 30 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(29)1725 183 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(b)r(egin)p 297 183 V 20
-w(undo)p 442 183 V 20 w(group)h Fg(\(\))120 246 y Fr(Begins)e(sa)o
-(ving)e(undo)i(information)f(in)g(a)g(group)f(construct.)27
-b(The)18 b(undo)h(information)f(usually)120 308 y(comes)j(from)f(calls)
-h(to)g Fq(rl_insert_text)13 b(\(\))20 b Fr(and)h Fq(rl_delete_text)13
-b(\(\))p Fr(,)22 b(but)f(could)g(b)q(e)h(the)120 370
-y(result)16 b(of)e(calls)j(to)d Fq(rl_add_undo)g(\(\))p
-Fr(.)1725 541 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p
-140 541 V 21 w(end)p 251 541 V 20 w(undo)p 396 541 V
-20 w(group)h Fg(\(\))120 603 y Fr(Closes)d(the)f(curren)o(t)g(undo)h
-(group)f(started)g(with)h Fq(rl_begin_undo_group)12 b(\(\))p
-Fr(.)26 b(There)18 b(should)120 665 y(b)q(e)e(one)f(call)i(to)d
-Fq(rl_end_undo_group)f(\(\))i Fr(for)f(eac)o(h)i(call)g(to)f
-Fq(rl_begin_undo_group)d(\(\))p Fr(.)1725 836 y(F)l(unction)-1899
-b Fi(void)20 b Fh(rl)p 166 836 V 21 w(add)p 279 836 V
-20 w(undo)i Fg(\()p Fq(enum)14 b(undo_code)g(what,)g(int)h(start,)g
-(int)f(end,)h(char)208 898 y(*text)p Fg(\))120 960 y
-Fr(Remem)o(b)q(er)20 b(ho)o(w)e(to)h(undo)g(an)g(ev)o(en)o(t)g
-(\(according)g(to)g Fl(what)q Fr(\).)30 b(The)19 b(a\013ected)g(text)f
-(runs)i(from)120 1023 y Fl(start)15 b Fr(to)g Fl(end)p
-Fr(,)g(and)g(encompasses)h Fl(text)p Fr(.)1725 1193 y(F)l(unction)-1899
-b Fi(void)20 b Fh(free)p 221 1193 V 20 w(undo)p 366 1193
-V 20 w(list)k Fg(\(\))120 1256 y Fr(F)l(ree)15 b(the)h(existing)g(undo)
-f(list.)1725 1426 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p
-140 1426 V 21 w(do)p 222 1426 V 20 w(undo)i Fg(\(\))120
-1488 y Fr(Undo)14 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h(list.)20
-b(Returns)14 b Fq(0)f Fr(if)h(there)g(w)o(as)e(nothing)i(to)f(undo,)h
-(non-zero)120 1551 y(if)i(something)f(w)o(as)f(undone.)62
-1721 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i
-(text,)d(but)i(directly)h(mo)q(dify)f(the)f(existing)i(text)e(\(e.g.,)f
-(c)o(hange)0 1784 y(its)g(case\),)f(call)i Fq(rl_modifying)e(\(\))g
-Fr(once,)h(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)g(text.)19
-b(Y)l(ou)14 b(m)o(ust)f(supply)h(the)g(indices)0 1846
-y(of)h(the)g(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q
-(dify)l(.)1725 2017 y(F)l(unction)-1899 b Fi(int)20 b
-Fh(rl)p 140 2017 V 21 w(mo)r(difying)h Fg(\()p Fq(int)15
-b(start,)f(int)h(end)p Fg(\))120 2079 y Fr(T)l(ell)e(Readline)g(to)e
-(sa)o(v)o(e)f(the)i(text)f(b)q(et)o(w)o(een)g Fl(start)g
-Fr(and)h Fl(end)h Fr(as)e(a)g(single)i(undo)e(unit.)20
-b(It)11 b(is)h(assumed)120 2141 y(that)i(y)o(ou)h(will)i(subsequen)o
-(tly)g(mo)q(dify)e(that)g(text.)0 2375 y Fk(2.4.6)30
-b(Redispla)n(y)1725 2545 y Fr(F)l(unction)-1899 b Fi(void)20
-b Fh(rl)p 166 2545 V 21 w(redispla)n(y)k Fg(\(\))120
-2608 y Fr(Change)d(what's)g(displa)o(y)o(ed)h(on)g(the)f(screen)h(to)f
-(re\015ect)h(the)f(curren)o(t)g(con)o(ten)o(ts)g(of)g
-Fq(rl_line_)120 2670 y(buffer)p Fr(.)p eop
-30 31 bop 0 -58 a Fr(30)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 183
-18 3 v 21 w(forced)p 315 183 V 20 w(up)r(date)p 509 183
-V 20 w(displa)n(y)k Fg(\(\))120 246 y Fr(F)l(orce)12
-b(the)g(line)h(to)f(b)q(e)g(up)q(dated)h(and)f(redispla)o(y)o(ed,)i
-(whether)e(or)f(not)h(Readline)i(thinks)e(the)g(screen)120
-308 y(displa)o(y)k(is)g(correct.)1725 462 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 462 V 21 w(on)p 222 462 V 20
-w(new)p 341 462 V 21 w(line)k Fg(\(\))120 524 y Fr(T)l(ell)c(the)f(up)q
-(date)g(routines)g(that)f(w)o(e)g(ha)o(v)o(e)g(mo)o(v)o(ed)g(on)o(to)g
-(a)g(new)h(\(empt)o(y\))e(line,)k(usually)f(after)120
-587 y(ouputting)c(a)e(newline.)1725 741 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 741 V 21 w(reset)p 282 741
-V 20 w(line)p 390 741 V 23 w(state)j Fg(\(\))120 803
-y Fr(Reset)14 b(the)f(displa)o(y)h(state)f(to)f(a)h(clean)h(state)f
-(and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)g
-(new)120 866 y(line.)1725 1020 y(F)l(unction)-1899 b
-Fi(int)20 b Fh(rl)p 140 1020 V 21 w(message)g Fg(\()p
-Fq(va_alist)p Fg(\))120 1082 y Fr(The)f(argumen)o(ts)e(are)h(a)g
-(string)g(as)g(w)o(ould)h(b)q(e)g(supplied)i(to)d Fq(printf)p
-Fr(.)28 b(The)19 b(resulting)g(string)f(is)120 1145 y(displa)o(y)o(ed)h
-(in)f(the)g Fl(ec)o(ho)f(area)p Fr(.)27 b(The)18 b(ec)o(ho)f(area)g(is)
-h(also)g(used)g(to)f(displa)o(y)h(n)o(umeric)h(argumen)o(ts)120
-1207 y(and)c(searc)o(h)g(strings.)1725 1361 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 1361 V 21 w(clear)p 279 1361
-V 21 w(message)h Fg(\(\))120 1424 y Fr(Clear)15 b(the)h(message)e(in)i
-(the)g(ec)o(ho)f(area.)0 1616 y Fk(2.4.7)30 b(Mo)r(difying)15
-b(T)-5 b(ext)1725 1771 y Fr(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 1771 V 21 w(insert)p 303 1771 V 21 w(text)k
-Fg(\()p Fq(char)14 b(*text)p Fg(\))120 1833 y Fr(Insert)h
-Fl(text)h Fr(in)o(to)f(the)h(line)g(at)f(the)g(curren)o(t)g(cursor)g(p)
-q(osition.)1725 1988 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 1988 V 21 w(delete)p 308 1988 V 22 w(text)k
-Fg(\()p Fq(int)14 b(start,)h(int)f(end)p Fg(\))120 2050
-y Fr(Delete)i(the)f(text)g(b)q(et)o(w)o(een)g Fl(start)g
-Fr(and)h Fl(end)h Fr(in)f(the)g(curren)o(t)f(line.)1725
-2204 y(F)l(unction)-1899 b Fi(char)20 b(*)f Fh(rl)p 211
-2204 V 21 w(cop)n(y)p 346 2204 V 21 w(text)24 b Fg(\()p
-Fq(int)14 b(start,)h(int)g(end)p Fg(\))120 2266 y Fr(Return)h(a)f(cop)o
-(y)g(of)g(the)g(text)f(b)q(et)o(w)o(een)i Fl(start)f
-Fr(and)g Fl(end)j Fr(in)e(the)f(curren)o(t)g(line.)1725
-2421 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 2421
-V 21 w(kill)p 236 2421 V 23 w(text)k Fg(\()p Fq(int)14
-b(start,)h(int)g(end)p Fg(\))120 2483 y Fr(Cop)o(y)k(the)g(text)f(b)q
-(et)o(w)o(een)i Fl(start)e Fr(and)i Fl(end)h Fr(in)f(the)f(curren)o(t)g
-(line)i(to)d(the)h(kill)i(ring,)f(app)q(ending)120 2545
-y(or)e(prep)q(ending)j(to)d(the)h(last)f(kill)j(if)e(the)g(last)f
-(command)h(w)o(as)e(a)i(kill)h(command.)30 b(The)19 b(text)f(is)120
-2608 y(deleted.)j(If)13 b Fl(start)g Fr(is)h(less)f(than)h
-Fl(end)p Fr(,)f(the)h(text)e(is)i(app)q(ended,)h(otherwise)e(prep)q
-(ended.)21 b(If)14 b(the)f(last)120 2670 y(command)i(w)o(as)f(not)h(a)g
-(kill,)i(a)e(new)g(kill)i(ring)f(slot)f(is)g(used.)p
+%%Page: 24 26
+24 25 bop 75 -58 a Fu(24)1299 b(GNU)15 b(Readline)i(Library)1650
+183 y(F)l(unction)-1749 b Fi(void)20 b Fh(rl)p 241 183
+18 3 v 21 w(set)p 333 183 V 21 w(k)n(eymap)i Fg(\()p
+Ft(Keymap)14 b(keymap)p Fg(\))195 238 y Fu(Mak)o(es)g
+Fm(k)o(eymap)j Fu(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1650
+336 y(F)l(unction)-1749 b Fi(Keymap)20 b Fh(rl)p 293
+336 V 21 w(get)p 391 336 V 21 w(k)n(eymap)p 605 336 V
+20 w(b)n(y)p 685 336 V 21 w(name)i Fg(\()p Ft(char)14
+b(*name)p Fg(\))195 391 y Fu(Return)h(the)f(k)o(eymap)g(matc)o(hing)h
+Fm(name)p Fu(.)k Fm(name)e Fu(is)e(one)g(whic)o(h)g(w)o(ould)f(b)q(e)h
+(supplied)i(in)e(a)195 446 y Ft(set)g(keymap)f Fu(inputrc)i(line)h
+(\(see)e(Section)h(1.3)f([Readline)i(Init)f(File],)f(page)g(3\).)1650
+544 y(F)l(unction)-1749 b Fi(char)20 b(*)f Fh(rl)p 286
+544 V 21 w(get)p 384 544 V 21 w(k)n(eymap)p 598 544 V
+20 w(name)i Fg(\()p Ft(Keymap)14 b(keymap)p Fg(\))195
+599 y Fu(Return)h(the)f(name)h(matc)o(hing)f Fm(k)o(eymap)p
+Fu(.)19 b Fm(name)e Fu(is)e(one)g(whic)o(h)g(w)o(ould)f(b)q(e)h
+(supplied)i(in)e(a)195 654 y Ft(set)g(keymap)f Fu(inputrc)i(line)h
+(\(see)e(Section)h(1.3)f([Readline)i(Init)f(File],)f(page)g(3\).)75
+772 y Fl(2.4.3)30 b(Binding)20 b(Keys)137 871 y Fu(Y)l(ou)j(asso)q
+(ciate)f(k)o(eys)g(with)h(functions)g(through)f(the)g(k)o(eymap.)41
+b(Readline)25 b(has)d(sev)o(eral)h(in)o(ter-)75 926 y(nal)h(k)o
+(eymaps:)35 b Ft(emacs_standard_keymap)p Fu(,)22 b Ft
+(emacs_meta_keymap)p Fu(,)g Ft(emacs_ctlx_keymap)p Fu(,)g
+Ft(vi_)75 981 y(movement_keymap)p Fu(,)e(and)i Ft(vi_insertion_keymap)p
+Fu(.)35 b Ft(emacs_standard_keymap)18 b Fu(is)k(the)f(default,)75
+1036 y(and)15 b(the)h(examples)g(in)g(this)f(man)o(ual)h(assume)f
+(that.)137 1106 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1650
+1204 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1204
+V 21 w(bind)p 347 1204 V 21 w(k)n(ey)k Fg(\()p Ft(int)14
+b(key,)h(Function)f(*function)p Fg(\))195 1259 y Fu(Binds)i
+Fm(k)o(ey)j Fu(to)14 b Fm(function)h Fu(in)h(the)f(curren)o(tly)g
+(activ)o(e)g(k)o(eymap.)20 b(Returns)15 b(non-zero)g(in)h(the)195
+1314 y(case)f(of)g(an)g(in)o(v)m(alid)j Fm(k)o(ey)p Fu(.)1650
+1412 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1412
+V 21 w(bind)p 347 1412 V 21 w(k)n(ey)p 452 1412 V 21
+w(in)p 520 1412 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Function)f
+(*function,)283 1467 y(Keymap)g(map)p Fg(\))195 1521
+y Fu(Bind)i Fm(k)o(ey)j Fu(to)c Fm(function)h Fu(in)g
+Fm(map)p Fu(.)k(Returns)15 b(non-zero)h(in)g(the)f(case)g(of)g(an)g(in)
+o(v)m(alid)j Fm(k)o(ey)p Fu(.)1650 1620 y(F)l(unction)-1749
+b Fi(int)20 b Fh(rl)p 215 1620 V 21 w(un)n(bind)p 409
+1620 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 b(key)p Fg(\))195
+1674 y Fu(Bind)g Fm(k)o(ey)j Fu(to)c(the)g(n)o(ull)i(function)f(in)g
+(the)f(curren)o(tly)h(activ)o(e)f(k)o(eymap.)19 b(Returns)14
+b(non-zero)195 1729 y(in)i(case)f(of)g(error.)1650 1827
+y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1827 V
+21 w(un)n(bind)p 409 1827 V 21 w(k)n(ey)p 514 1827 V
+21 w(in)p 582 1827 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Keymap)f
+(map)p Fg(\))195 1882 y Fu(Bind)i Fm(k)o(ey)j Fu(to)c(the)g(n)o(ull)i
+(function)f(in)g Fm(map)p Fu(.)k(Returns)15 b(non-zero)h(in)g(case)f
+(of)g(error.)1650 1980 y(F)l(unction)-1749 b Fi(int)20
+b Fh(rl)p 215 1980 V 21 w(un)n(bind)p 409 1980 V 21 w(function)p
+635 1980 V 21 w(in)p 703 1980 V 21 w(map)h Fg(\()p Ft(Function)14
+b(*function,)283 2035 y(Keymap)g(map)p Fg(\))195 2090
+y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(execute)i Fm(function)g
+Fu(in)g Fm(map)p Fu(.)1650 2188 y(F)l(unction)-1749 b
+Fi(int)20 b Fh(rl)p 215 2188 V 21 w(un)n(bind)p 409 2188
+V 21 w(command)p 674 2188 V 17 w(in)p 738 2188 V 22 w(map)h
+Fg(\()p Ft(char)14 b(*command,)g(Keymap)283 2243 y(map)p
+Fg(\))195 2298 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(are)h(b)q(ound)h
+(to)f Fm(command)i Fu(in)f Fm(map)p Fu(.)1650 2396 y(F)l(unction)-1749
+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(char)h(*keyseq,)f(char)h
+(*data,)283 2451 y(Keymap)f(map)p Fg(\))195 2506 y Fu(Bind)g(the)f(k)o
+(ey)g(sequence)i(represen)o(ted)e(b)o(y)g(the)g(string)g
+Fm(k)o(eyseq)h Fu(to)f(the)g(arbitrary)f(p)q(oin)o(ter)195
+2560 y Fm(data)p Fu(.)19 b Fm(t)o(yp)q(e)e Fu(sa)o(ys)c(what)h(kind)i
+(of)e(data)f(is)i(p)q(oin)o(ted)g(to)f(b)o(y)g Fm(data)p
+Fu(;)g(this)h(can)f(b)q(e)h(a)f(function)195 2615 y(\()p
+Ft(ISFUNC)p Fu(\),)f(a)h(macro)g(\()p Ft(ISMACR)p Fu(\),)f(or)i(a)f(k)o
+(eymap)h(\()p Ft(ISKMAP)p Fu(\).)j(This)d(mak)o(es)f(new)h(k)o(eymaps)
+195 2670 y(as)g(necessary)l(.)20 b(The)c(initial)h(k)o(eymap)e(in)h
+(whic)o(h)g(to)e(do)i(bindings)h(is)e Fm(map)p Fu(.)p
eop
-31 32 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(31)0 183 y Fk(2.4.8)30 b(Utilit)n(y)16
-b(F)-5 b(unctions)1725 345 y Fr(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 345 18 3 v 21 w(read)p 271 345 V 20 w(k)n(ey)k
-Fg(\(\))120 407 y Fr(Return)14 b(the)g(next)g(c)o(haracter)f(a)o(v)m
-(ailable.)21 b(This)15 b(handles)g(input)g(inserted)f(in)o(to)g(the)g
-(input)h(stream)120 469 y(via)h Fl(p)q(ending)i(input)h
-Fr(\(see)d(Section)h(2.3)e([Readline)j(V)l(ariables],)f(page)f(22\))f
-(and)i Fq(rl_stuff_char)120 532 y(\(\))p Fr(,)e(macros,)f(and)h(c)o
-(haracters)f(read)h(from)g(the)g(k)o(eyb)q(oard.)1725
-693 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 693
-V 21 w(getc)j Fg(\()p Fq(FILE)14 b(*)p Fg(\))120 755
-y Fr(Return)i(the)f(next)g(c)o(haracter)g(a)o(v)m(ailable)i(from)d(the)
-h(k)o(eyb)q(oard.)1725 917 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 917 V 21 w(stu\013)p 271 917 V 20 w(c)n(har)j
-Fg(\()p Fq(int)15 b(c)p Fg(\))120 979 y Fr(Insert)g Fl(c)i
-Fr(in)o(to)e(the)g(Readline)i(input)e(stream.)k(It)c(will)h(b)q(e)g
-Fq(")p Fr(read)p Fq(")e Fr(b)q(efore)h(Readline)i(attempts)d(to)120
-1041 y(read)h(c)o(haracters)g(from)f(the)h(terminal)h(with)g
-Fq(rl_read_key)d(\(\))p Fr(.)1725 1203 y(F)l(unction)-1899
-b Fi(rl_extend_line_buffer)22 b Fh(\(in)n(t)j Fq(len)p
-Fg(\))120 1265 y Fr(Ensure)15 b(that)f Fq(rl_line_buffer)e
-Fr(has)j(enough)g(space)g(to)e(hold)j Fl(len)f Fr(c)o(haracters,)f(p)q
-(ossibly)i(reallo-)120 1327 y(cating)f(it)h(if)f(necessary)l(.)1725
-1489 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1489
-V 21 w(initiali)q(z)q(e)26 b Fg(\(\))120 1551 y Fr(Initialize)18
-b(or)d(re-initialize)j(Readline's)f(in)o(ternal)f(state.)1725
-1713 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1713
-V 21 w(reset)p 282 1713 V 20 w(terminal)j Fg(\()p Fq(char)15
-b(*terminal_name)p Fg(\))120 1775 y Fr(Reinitializ)q(e)f(Readline's)e
-(idea)g(of)e(the)h(terminal)h(settings)f(using)g Fl(terminal)p
-1404 1775 14 2 v 17 w(name)j Fr(as)c(the)h(terminal)120
-1837 y(t)o(yp)q(e)k(\(e.g.,)f Fq(vt100)p Fr(\).)1725
-1999 y(F)l(unction)-1899 b Fi(int)20 b Fh(alphab)r(etic)k
-Fg(\()p Fq(int)14 b(c)p Fg(\))120 2061 y Fr(Return)i(1)f(if)g
-Fl(c)j Fr(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1725
-2222 y(F)l(unction)-1899 b Fi(int)20 b Fh(n)n(umeric)i
-Fg(\()p Fq(int)15 b(c)p Fg(\))120 2285 y Fr(Return)h(1)f(if)g
-Fl(c)j Fr(is)e(a)f(n)o(umeric)h(c)o(haracter.)1725 2446
-y(F)l(unction)-1899 b Fi(int)20 b Fh(ding)i Fg(\(\))120
-2508 y Fr(Ring)16 b(the)f(terminal)h(b)q(ell,)h(ob)q(eying)f(the)g
-(setting)f(of)g Fq(bell-style)p Fr(.)62 2670 y(The)h(follo)o(wing)g
-(are)f(implemen)o(ted)h(as)f(macros,)f(de\014ned)j(in)f
-Fq(chartypes.h)p Fr(.)p eop
-32 33 bop 0 -58 a Fr(32)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(int)20 b Fh(upp)r(ercase)p
-351 183 18 3 v 19 w(p)j Fg(\()p Fq(int)14 b(c)p Fg(\))120
-246 y Fr(Return)i(1)f(if)g Fl(c)j Fr(is)e(an)f(upp)q(ercase)i(alphab)q
-(etic)f(c)o(haracter.)1725 409 y(F)l(unction)-1899 b
-Fi(int)20 b Fh(lo)n(w)n(ercase)p 334 409 V 22 w(p)i Fg(\()p
-Fq(int)15 b(c)p Fg(\))120 471 y Fr(Return)h(1)f(if)g
-Fl(c)j Fr(is)e(a)f(lo)o(w)o(ercase)g(alphab)q(etic)i(c)o(haracter.)1725
-634 y(F)l(unction)-1899 b Fi(int)20 b Fh(digit)p 214
-634 V 22 w(p)i Fg(\()p Fq(int)15 b(c)p Fg(\))120 696
-y Fr(Return)h(1)f(if)g Fl(c)j Fr(is)e(a)f(n)o(umeric)h(c)o(haracter.)
-1725 859 y(F)l(unction)-1899 b Fi(int)20 b Fh(to)p 152
-859 V 20 w(upp)r(er)i Fg(\()p Fq(int)14 b(c)p Fg(\))120
-922 y Fr(If)h Fl(c)i Fr(is)f(a)e(lo)o(w)o(ercase)g(alphab)q(etic)j(c)o
-(haracter,)c(return)i(the)g(corresp)q(onding)g(upp)q(ercase)h(c)o
-(haracter.)1725 1085 y(F)l(unction)-1899 b Fi(int)20
-b Fh(to)p 152 1085 V 20 w(lo)n(w)n(er)k Fg(\()p Fq(int)15
-b(c)p Fg(\))120 1147 y Fr(If)e Fl(c)i Fr(is)e(an)f(upp)q(ercase)h
-(alphab)q(etic)h(c)o(haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o
-(w)o(ercase)f(c)o(haracter.)1725 1310 y(F)l(unction)-1899
-b Fi(int)20 b Fh(digit)p 214 1310 V 22 w(v)m(alue)j Fg(\()p
-Fq(int)15 b(c)p Fg(\))120 1372 y Fr(If)g Fl(c)k Fr(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.)0
-1584 y Fk(2.4.9)30 b(Alternate)15 b(In)n(terface)62 1721
-y Fr(An)k(alternate)e(in)o(terface)h(is)h(a)o(v)m(ailable)h(to)d(plain)
-i Fq(readline\(\))p Fr(.)27 b(Some)18 b(applications)h(need)g(to)e(in)o
-(terlea)o(v)o(e)0 1783 y(k)o(eyb)q(oard)d(I/O)h(with)f(\014le,)h
-(device,)h(or)d(windo)o(w)i(system)e(I/O,)i(t)o(ypically)g(b)o(y)f
-(using)h(a)f(main)h(lo)q(op)g(to)e Fq(select\(\))0 1846
-y Fr(on)k(v)m(arious)h(\014le)g(descriptors.)26 b(T)l(o)17
-b(accomo)q(date)g(this)h(need,)g(readline)h(can)e(also)h(b)q(e)f(in)o
-(v)o(ok)o(ed)h(as)f(a)g(`callbac)o(k')0 1908 y(function)f(from)e(an)i
-(ev)o(en)o(t)f(lo)q(op.)20 b(There)15 b(are)g(functions)h(a)o(v)m
-(ailable)h(to)e(mak)o(e)f(this)i(easy)l(.)1725 2071 y(F)l(unction)-1899
-b Fi(void)20 b Fh(rl)p 166 2071 V 21 w(callbac)n(k)p
-383 2071 V 23 w(handler)p 595 2071 V 21 w(install)25
-b Fg(\()p Fq(char)14 b(*prompt,)g(Vfunction)208 2133
-y(*lhandler)p Fg(\))120 2196 y Fr(Set)h(up)g(the)f(terminal)i(for)d
-(readline)k(I/O)e(and)f(displa)o(y)i(the)f(initial)h(expanded)g(v)m
-(alue)g(of)e Fl(prompt)p Fr(.)120 2258 y(Sa)o(v)o(e)h(the)f(v)m(alue)j
-(of)d Fl(lhandler)20 b Fr(to)14 b(use)h(as)g(a)g(callbac)o(k)h(when)f
-(a)f(complete)i(line)h(of)d(input)i(has)f(b)q(een)120
-2320 y(en)o(tered.)1725 2483 y(F)l(unction)-1899 b Fi(void)20
-b Fh(rl)p 166 2483 V 21 w(callbac)n(k)p 383 2483 V 23
-w(read)p 516 2483 V 20 w(c)n(har)j Fg(\(\))120 2545 y
-Fr(Whenev)o(er)d(an)f(application)i(determines)g(that)e(k)o(eyb)q(oard)
-g(input)i(is)f(a)o(v)m(ailable,)i(it)d(should)i(call)120
-2608 y Fq(rl_callback_read_char\(\))p Fr(,)11 b(whic)o(h)j(will)i(read)
-e(the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)120
-2670 y(source.)24 b(If)17 b(that)f(c)o(haracter)g(completes)i(the)f
-(line,)h Fq(rl_callback_read_char)c Fr(will)k(in)o(v)o(ok)o(e)f(the)p
+%%Page: 25 27
+25 26 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(25)1650 183 y(F)l(unction)-1749 b Fi(int)20
+b Fh(rl)p 215 183 18 3 v 21 w(parse)p 369 183 V 19 w(and)p
+480 183 V 21 w(bind)j Fg(\()p Ft(char)14 b(*line)p Fg(\))195
+238 y Fu(P)o(arse)k Fm(line)23 b Fu(as)c(if)g(it)g(had)g(b)q(een)h
+(read)e(from)h(the)f Ft(inputrc)g Fu(\014le)i(and)f(p)q(erform)g(an)o
+(y)f(k)o(ey)195 293 y(bindings)i(and)e(v)m(ariable)i(assignmen)o(ts)d
+(found)i(\(see)f(Section)h(1.3)e([Readline)j(Init)f(File],)195
+348 y(page)c(3\).)1650 449 y(F)l(unction)-1749 b Fi(int)20
+b Fh(rl)p 215 449 V 21 w(read)p 346 449 V 20 w(init)p
+450 449 V 22 w(\014le)k Fg(\()p Ft(char)14 b(*filename)p
+Fg(\))195 504 y Fu(Read)25 b(k)o(eybindings)i(and)e(v)m(ariable)h
+(assignmen)o(ts)e(from)g Fm(\014lename)29 b Fu(\(see)24
+b(Section)i(1.3)195 559 y([Readline)17 b(Init)f(File],)g(page)f(3\).)75
+680 y Fl(2.4.4)30 b(Asso)r(ciating)20 b(F)-5 b(unction)20
+b(Names)h(and)f(Bindings)137 781 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 836 y(in)o(v)o(ok)o(ed)k(b)o(y)h
+(a)e(particular)i(k)o(ey)f(sequence.)1650 937 y(F)l(unction)-1749
+b Fi(Function)20 b(*)g Fh(rl)p 391 937 V 21 w(named)p
+579 937 V 19 w(function)j Fg(\()p Ft(char)14 b(*name)p
+Fg(\))195 992 y Fu(Return)i(the)f(function)h(with)g(name)f
+Fm(name)p Fu(.)1650 1093 y(F)l(unction)-1749 b Fi(Function)20
+b(*)g Fh(rl)p 391 1093 V 21 w(function)p 617 1093 V 21
+w(of)p 685 1093 V 19 w(k)n(eyseq)k Fg(\()p Ft(char)15
+b(*keyseq,)f(Keymap)283 1148 y(map,)g(int)h(*type)p Fg(\))195
+1203 y Fu(Return)j(the)f(function)g(in)o(v)o(ok)o(ed)g(b)o(y)g
+Fm(k)o(eyseq)h Fu(in)g(k)o(eymap)f Fm(map)p Fu(.)25 b(If)17
+b Fm(map)h Fu(is)f(NULL,)h(the)195 1258 y(curren)o(t)13
+b(k)o(eymap)g(is)h(used.)20 b(If)14 b Fm(t)o(yp)q(e)i
+Fu(is)e(not)f(NULL,)h(the)f(t)o(yp)q(e)g(of)g(the)h(ob)s(ject)f(is)h
+(returned)195 1313 y(in)i(it)f(\(one)g(of)g Ft(ISFUNC)p
+Fu(,)f Ft(ISKMAP)p Fu(,)g(or)h Ft(ISMACR)p Fu(\).)1650
+1414 y(F)l(unction)-1749 b Fi(char)20 b(**)f Fh(rl)p
+312 1414 V 21 w(in)n(v)n(oking)p 541 1414 V 23 w(k)n(eyseqs)k
+Fg(\()p Ft(Function)14 b(*function)p Fg(\))195 1469 y
+Fu(Return)i(an)f(arra)o(y)f(of)h(strings)g(represen)o(ting)h(the)g(k)o
+(ey)f(sequences)h(used)g(to)f(in)o(v)o(ok)o(e)g Fm(func-)195
+1524 y(tion)g Fu(in)h(the)g(curren)o(t)f(k)o(eymap.)1650
+1625 y(F)l(unction)-1749 b Fi(char)20 b(**)f Fh(rl)p
+312 1625 V 21 w(in)n(v)n(oking)p 541 1625 V 23 w(k)n(eyseqs)p
+750 1625 V 21 w(in)p 818 1625 V 22 w(map)i Fg(\()p Ft(Function)14
+b(*function,)283 1680 y(Keymap)g(map)p Fg(\))195 1735
+y Fu(Return)i(an)f(arra)o(y)f(of)h(strings)g(represen)o(ting)h(the)g(k)
+o(ey)f(sequences)h(used)g(to)f(in)o(v)o(ok)o(e)g Fm(func-)195
+1789 y(tion)g Fu(in)h(the)g(k)o(eymap)f Fm(map)p Fu(.)1650
+1891 y(F)l(unction)-1749 b Fi(void)20 b Fh(rl)p 241 1891
+V 21 w(function)p 467 1891 V 21 w(dump)r(er)g Fg(\()p
+Ft(int)15 b(readable)p Fg(\))195 1946 y Fu(Prin)o(t)k(the)h(readline)g
+(function)g(names)g(and)f(the)g(k)o(ey)g(sequences)i(curren)o(tly)e(b)q
+(ound)i(to)195 2000 y(them)16 b(to)f Ft(rl_outstream)p
+Fu(.)k(If)d Fm(readable)j Fu(is)d(non-zero,)g(the)g(list)g(is)g
+(formatted)f(in)h(suc)o(h)g(a)195 2055 y(w)o(a)o(y)e(that)h(it)g(can)g
+(b)q(e)h(made)g(part)e(of)h(an)g Ft(inputrc)f Fu(\014le)i(and)g
+(re-read.)1650 2157 y(F)l(unction)-1749 b Fi(void)20
+b Fh(rl)p 241 2157 V 21 w(list)p 337 2157 V 22 w(funmap)p
+550 2157 V 18 w(names)h Fg(\(\))195 2211 y Fu(Prin)o(t)15
+b(the)g(names)h(of)e(all)j(bindable)g(Readline)g(functions)f(to)f
+Ft(rl_outstream)p Fu(.)75 2333 y Fl(2.4.5)30 b(Allo)n(wing)21
+b(Undoing)137 2434 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 2489 y(useful.)28 b(It)17 b(is)h(certainly)h(easy)e(to)g
+(try)g(something)g(if)h(y)o(ou)f(kno)o(w)g(y)o(ou)h(can)f(undo)h(it.)27
+b(I)18 b(could)g(use)g(an)75 2543 y(undo)e(function)g(for)e(the)i(sto)q
+(c)o(k)e(mark)o(et.)137 2615 y(If)g(y)o(our)e(function)i(simply)h
+(inserts)f(text)e(once,)i(or)e(deletes)j(text)d(once,)i(and)f(uses)h
+Ft(rl_insert_text)75 2670 y(\(\))h Fu(or)g Ft(rl_delete_text)e(\(\))i
+Fu(to)f(do)h(it,)g(then)h(undoing)g(is)g(already)f(done)h(for)f(y)o(ou)
+f(automatically)l(.)p eop
+%%Page: 26 28
+26 27 bop 75 -58 a Fu(26)1299 b(GNU)15 b(Readline)i(Library)137
+183 y(If)11 b(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 238 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 293 y(group)14 b(\(\))h Fu(and)h
+Ft(rl_end_undo_group)d(\(\))p Fu(.)137 360 y(The)j(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
+425 y Ft(enum)23 b(undo_code)g({)h(UNDO_DELETE,)e(UNDO_INSERT,)g
+(UNDO_BEGIN,)g(UNDO_END)h(};)137 492 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 547 y(some)d(text.)18
+b(That)12 b(is,)h(the)f(undo)g(co)q(de)h(tells)g(undo)g(what)e(to)h
+(undo,)h(not)f(ho)o(w)f(to)h(undo)g(it.)19 b Ft(UNDO_BEGIN)75
+602 y Fu(and)c Ft(UNDO_END)f Fu(are)h(tags)g(added)g(b)o(y)h
+Ft(rl_begin_undo_group)c(\(\))j Fu(and)g Ft(rl_end_undo_group)e(\(\))p
+Fu(.)1650 694 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p
+215 694 18 3 v 21 w(b)r(egin)p 372 694 V 20 w(undo)p
+517 694 V 20 w(group)h Fg(\(\))195 749 y Fu(Begins)e(sa)o(ving)g(undo)g
+(information)f(in)i(a)e(group)g(construct.)29 b(The)19
+b(undo)g(information)195 804 y(usually)f(comes)f(from)f(calls)h(to)g
+Ft(rl_insert_text)c(\(\))j Fu(and)h Ft(rl_delete_text)c(\(\))p
+Fu(,)k(but)195 858 y(could)f(b)q(e)g(the)f(result)h(of)f(calls)h(to)f
+Ft(rl_add_undo)e(\(\))p Fu(.)1650 951 y(F)l(unction)-1749
+b Fi(int)20 b Fh(rl)p 215 951 V 21 w(end)p 326 951 V
+20 w(undo)p 471 951 V 20 w(group)h Fg(\(\))195 1005 y
+Fu(Closes)c(the)g(curren)o(t)g(undo)h(group)e(started)h(with)g
+Ft(rl_begin_undo_group)c(\(\))p Fu(.)25 b(There)195 1060
+y(should)17 b(b)q(e)f(one)f(call)i(to)e Ft(rl_end_undo_group)e(\(\))i
+Fu(for)g(eac)o(h)g(call)i(to)e Ft(rl_begin_undo_)195
+1115 y(group)f(\(\))p Fu(.)1650 1207 y(F)l(unction)-1749
+b Fi(void)20 b Fh(rl)p 241 1207 V 21 w(add)p 354 1207
+V 20 w(undo)i Fg(\()p Ft(enum)14 b(undo_code)g(what,)g(int)h(start,)g
+(int)f(end,)283 1262 y(char)g(*text)p Fg(\))195 1317
+y Fu(Remem)o(b)q(er)j(ho)o(w)f(to)f(undo)i(an)f(ev)o(en)o(t)g
+(\(according)h(to)e Fm(what)q Fu(\).)23 b(The)16 b(a\013ected)g(text)g
+(runs)195 1372 y(from)e Fm(start)h Fu(to)g Fm(end)p Fu(,)g(and)h
+(encompasses)f Fm(text)p Fu(.)1650 1464 y(F)l(unction)-1749
+b Fi(void)20 b Fh(free)p 296 1464 V 20 w(undo)p 441 1464
+V 20 w(list)k Fg(\(\))195 1519 y Fu(F)l(ree)15 b(the)h(existing)g(undo)
+f(list.)1650 1611 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p
+215 1611 V 21 w(do)p 297 1611 V 20 w(undo)i Fg(\(\))195
+1666 y Fu(Undo)16 b(the)g(\014rst)f(thing)h(on)g(the)f(undo)h(list.)22
+b(Returns)17 b Ft(0)e Fu(if)h(there)g(w)o(as)f(nothing)h(to)f(undo,)195
+1721 y(non-zero)g(if)h(something)g(w)o(as)e(undone.)137
+1813 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 1868 y(c)o(hange)i(its)h(case\),)g(call)g Ft(rl_modifying)14
+b(\(\))k Fu(once,)h(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)f
+(text.)29 b(Y)l(ou)19 b(m)o(ust)75 1923 y(supply)d(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(.)
+1650 2015 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215
+2015 V 21 w(mo)r(difying)h Fg(\()p Ft(int)15 b(start,)f(int)h(end)p
+Fg(\))195 2070 y Fu(T)l(ell)i(Readline)i(to)c(sa)o(v)o(e)g(the)i(text)e
+(b)q(et)o(w)o(een)h Fm(start)g Fu(and)g Fm(end)j Fu(as)c(a)h(single)h
+(undo)g(unit.)23 b(It)195 2125 y(is)16 b(assumed)f(that)g(y)o(ou)f
+(will)j(subsequen)o(tly)g(mo)q(dify)e(that)g(text.)75
+2237 y Fl(2.4.6)30 b(Redispla)n(y)1650 2358 y Fu(F)l(unction)-1749
+b Fi(void)20 b Fh(rl)p 241 2358 V 21 w(redispla)n(y)k
+Fg(\(\))195 2413 y Fu(Change)19 b(what's)f(displa)o(y)o(ed)i(on)f(the)f
+(screen)i(to)e(re\015ect)h(the)g(curren)o(t)g(con)o(ten)o(ts)f(of)g
+Ft(rl_)195 2468 y(line_buffer)p Fu(.)1650 2560 y(F)l(unction)-1749
+b Fi(int)20 b Fh(rl)p 215 2560 V 21 w(forced)p 390 2560
+V 20 w(up)r(date)p 584 2560 V 20 w(displa)n(y)k Fg(\(\))195
+2615 y Fu(F)l(orce)17 b(the)f(line)j(to)d(b)q(e)i(up)q(dated)f(and)g
+(redispla)o(y)o(ed,)h(whether)f(or)g(not)f(Readline)j(thinks)195
+2670 y(the)c(screen)h(displa)o(y)g(is)g(correct.)p eop
+%%Page: 27 29
+27 28 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(27)1650 183 y(F)l(unction)-1749 b Fi(int)20
+b Fh(rl)p 215 183 18 3 v 21 w(on)p 297 183 V 20 w(new)p
+416 183 V 21 w(line)k Fg(\(\))195 238 y Fu(T)l(ell)17
+b(the)f(up)q(date)g(routines)g(that)f(w)o(e)g(ha)o(v)o(e)g(mo)o(v)o(ed)
+g(on)o(to)g(a)g(new)h(\(empt)o(y\))f(line,)i(usually)195
+293 y(after)d(ouputting)i(a)f(newline.)1650 380 y(F)l(unction)-1749
+b Fi(int)20 b Fh(rl)p 215 380 V 21 w(reset)p 357 380
+V 20 w(line)p 465 380 V 23 w(state)j Fg(\(\))195 434
+y Fu(Reset)17 b(the)f(displa)o(y)h(state)f(to)f(a)h(clean)h(state)f
+(and)g(redispla)o(y)h(the)g(curren)o(t)f(line)i(starting)195
+489 y(on)d(a)g(new)g(line.)1650 576 y(F)l(unction)-1749
+b Fi(int)20 b Fh(rl)p 215 576 V 21 w(message)g Fg(\()p
+Ft(va_alist)p Fg(\))195 631 y Fu(The)h(argumen)o(ts)f(are)g(a)g(string)
+h(as)f(w)o(ould)h(b)q(e)g(supplied)i(to)d Ft(printf)p
+Fu(.)35 b(The)21 b(resulting)195 686 y(string)h(is)g(displa)o(y)o(ed)h
+(in)g(the)f Fm(ec)o(ho)g(area)p Fu(.)39 b(The)23 b(ec)o(ho)f(area)f(is)
+h(also)g(used)h(to)e(displa)o(y)195 740 y(n)o(umeric)16
+b(argumen)o(ts)e(and)i(searc)o(h)f(strings.)1650 827
+y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 827 V 21
+w(clear)p 354 827 V 21 w(message)h Fg(\(\))195 882 y
+Fu(Clear)15 b(the)h(message)e(in)i(the)g(ec)o(ho)f(area.)75
+989 y Fl(2.4.7)30 b(Mo)r(difying)20 b(T)-5 b(ext)1650
+1105 y Fu(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215
+1105 V 21 w(insert)p 378 1105 V 21 w(text)k Fg(\()p Ft(char)14
+b(*text)p Fg(\))195 1159 y Fu(Insert)h Fm(text)h Fu(in)o(to)f(the)h
+(line)g(at)f(the)g(curren)o(t)g(cursor)g(p)q(osition.)1650
+1246 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1246
+V 21 w(delete)p 383 1246 V 22 w(text)k Fg(\()p Ft(int)14
+b(start,)h(int)f(end)p Fg(\))195 1301 y Fu(Delete)i(the)f(text)g(b)q
+(et)o(w)o(een)g Fm(start)g Fu(and)h Fm(end)h Fu(in)f(the)g(curren)o(t)f
+(line.)1650 1388 y(F)l(unction)-1749 b Fi(char)20 b(*)f
+Fh(rl)p 286 1388 V 21 w(cop)n(y)p 421 1388 V 21 w(text)24
+b Fg(\()p Ft(int)14 b(start,)h(int)g(end)p Fg(\))195
+1443 y Fu(Return)h(a)f(cop)o(y)g(of)g(the)g(text)f(b)q(et)o(w)o(een)i
+Fm(start)f Fu(and)g Fm(end)j Fu(in)e(the)f(curren)o(t)g(line.)1650
+1529 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 1529
+V 21 w(kill)p 311 1529 V 23 w(text)k Fg(\()p Ft(int)14
+b(start,)h(int)g(end)p Fg(\))195 1584 y Fu(Cop)o(y)j(the)h(text)f(b)q
+(et)o(w)o(een)h Fm(start)f Fu(and)h Fm(end)i Fu(in)e(the)g(curren)o(t)f
+(line)i(to)e(the)h(kill)h(ring,)g(ap-)195 1639 y(p)q(ending)15
+b(or)f(prep)q(ending)h(to)e(the)h(last)f(kill)j(if)e(the)g(last)f
+(command)h(w)o(as)f(a)g(kill)i(command.)195 1694 y(The)j(text)f(is)h
+(deleted.)28 b(If)18 b Fm(start)f Fu(is)h(less)g(than)f
+Fm(end)p Fu(,)i(the)e(text)g(is)h(app)q(ended,)i(otherwise)195
+1749 y(prep)q(ended.)i(If)15 b(the)g(last)h(command)f(w)o(as)f(not)h(a)
+g(kill,)h(a)f(new)h(kill)h(ring)e(slot)g(is)h(used.)75
+1855 y Fl(2.4.8)30 b(Utilit)n(y)21 b(F)-5 b(unctions)1650
+1971 y Fu(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215
+1971 V 21 w(read)p 346 1971 V 20 w(k)n(ey)k Fg(\(\))195
+2026 y Fu(Return)14 b(the)g(next)g(c)o(haracter)e(a)o(v)m(ailable.)22
+b(This)14 b(handles)h(input)f(inserted)h(in)o(to)e(the)h(input)195
+2081 y(stream)k(via)g Fm(p)q(ending)j(input)f Fu(\(see)f(Section)g(2.3)
+f([Readline)i(V)l(ariables],)g(page)e(21\))g(and)195
+2136 y Ft(rl_stuff_char)13 b(\(\))p Fu(,)i(macros,)f(and)h(c)o
+(haracters)g(read)g(from)f(the)i(k)o(eyb)q(oard.)1650
+2222 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 2222
+V 21 w(getc)j Fg(\()p Ft(FILE)14 b(*)p Fg(\))195 2277
+y Fu(Return)i(the)f(next)g(c)o(haracter)g(a)o(v)m(ailable)i(from)d(the)
+h(k)o(eyb)q(oard.)1650 2364 y(F)l(unction)-1749 b Fi(int)20
+b Fh(rl)p 215 2364 V 21 w(stu\013)p 346 2364 V 20 w(c)n(har)j
+Fg(\()p Ft(int)15 b(c)p Fg(\))195 2419 y Fu(Insert)22
+b Fm(c)i Fu(in)o(to)e(the)g(Readline)i(input)f(stream.)38
+b(It)22 b(will)h(b)q(e)f Ft(")p Fu(read)p Ft(")g Fu(b)q(efore)g
+(Readline)195 2474 y(attempts)14 b(to)h(read)g(c)o(haracters)f(from)h
+(the)g(terminal)h(with)f Ft(rl_read_key)f(\(\))p Fu(.)1650
+2560 y(F)l(unction)-1749 b Fi(rl_extend_line_buffer)22
+b Fh(\(in)n(t)j Ft(len)p Fg(\))195 2615 y Fu(Ensure)14
+b(that)e Ft(rl_line_buffer)g Fu(has)h(enough)h(space)f(to)g(hold)h
+Fm(len)h Fu(c)o(haracters,)d(p)q(ossibly)195 2670 y(reallo)q(cating)k
+(it)g(if)f(necessary)l(.)p eop
+%%Page: 28 30
+28 29 bop 75 -58 a Fu(28)1299 b(GNU)15 b(Readline)i(Library)1650
+183 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 183
+18 3 v 21 w(initiali)q(z)q(e)26 b Fg(\(\))195 238 y Fu(Initialize)18
+b(or)d(re-initialize)j(Readline's)f(in)o(ternal)f(state.)1650
+328 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215 328
+V 21 w(reset)p 357 328 V 20 w(terminal)j Fg(\()p Ft(char)15
+b(*terminal_name)p Fg(\))195 383 y Fu(Reinitializ)q(e)h(Readline's)g
+(idea)e(of)f(the)h(terminal)g(settings)g(using)g Fm(terminal)p
+1501 383 14 2 v 17 w(name)j Fu(as)c(the)195 437 y(terminal)j(t)o(yp)q
+(e)f(\(e.g.,)f Ft(vt100)p Fu(\).)1650 527 y(F)l(unction)-1749
+b Fi(int)20 b Fh(alphab)r(etic)k Fg(\()p Ft(int)14 b(c)p
+Fg(\))195 582 y Fu(Return)i(1)f(if)g Fm(c)j Fu(is)e(an)f(alphab)q(etic)
+i(c)o(haracter.)1650 671 y(F)l(unction)-1749 b Fi(int)20
+b Fh(n)n(umeric)i Fg(\()p Ft(int)15 b(c)p Fg(\))195 726
+y Fu(Return)h(1)f(if)g Fm(c)j Fu(is)e(a)f(n)o(umeric)h(c)o(haracter.)
+1650 816 y(F)l(unction)-1749 b Fi(int)20 b Fh(ding)i
+Fg(\(\))195 871 y Fu(Ring)16 b(the)f(terminal)h(b)q(ell,)h(ob)q(eying)f
+(the)g(setting)f(of)g Ft(bell-style)p Fu(.)137 960 y(The)h(follo)o
+(wing)g(are)f(implemen)o(ted)h(as)f(macros,)f(de\014ned)j(in)f
+Ft(chartypes.h)p Fu(.)1650 1050 y(F)l(unction)-1749 b
+Fi(int)20 b Fh(upp)r(ercase)p 426 1050 18 3 v 19 w(p)j
+Fg(\()p Ft(int)14 b(c)p Fg(\))195 1105 y Fu(Return)i(1)f(if)g
+Fm(c)j Fu(is)e(an)f(upp)q(ercase)i(alphab)q(etic)f(c)o(haracter.)1650
+1195 y(F)l(unction)-1749 b Fi(int)20 b Fh(lo)n(w)n(ercase)p
+409 1195 V 22 w(p)i Fg(\()p Ft(int)15 b(c)p Fg(\))195
+1249 y Fu(Return)h(1)f(if)g Fm(c)j Fu(is)e(a)f(lo)o(w)o(ercase)g
+(alphab)q(etic)i(c)o(haracter.)1650 1339 y(F)l(unction)-1749
+b Fi(int)20 b Fh(digit)p 289 1339 V 22 w(p)i Fg(\()p
+Ft(int)15 b(c)p Fg(\))195 1394 y Fu(Return)h(1)f(if)g
+Fm(c)j Fu(is)e(a)f(n)o(umeric)h(c)o(haracter.)1650 1484
+y(F)l(unction)-1749 b Fi(int)20 b Fh(to)p 227 1484 V
+20 w(upp)r(er)i Fg(\()p Ft(int)14 b(c)p Fg(\))195 1538
+y Fu(If)21 b Fm(c)i Fu(is)e(a)g(lo)o(w)o(ercase)f(alphab)q(etic)i(c)o
+(haracter,)f(return)g(the)f(corresp)q(onding)i(upp)q(ercase)195
+1593 y(c)o(haracter.)1650 1683 y(F)l(unction)-1749 b
+Fi(int)20 b Fh(to)p 227 1683 V 20 w(lo)n(w)n(er)k Fg(\()p
+Ft(int)15 b(c)p Fg(\))195 1738 y Fu(If)j Fm(c)j Fu(is)e(an)f(upp)q
+(ercase)h(alphab)q(etic)h(c)o(haracter,)e(return)g(the)g(corresp)q
+(onding)h(lo)o(w)o(ercase)195 1792 y(c)o(haracter.)1650
+1882 y(F)l(unction)-1749 b Fi(int)20 b Fh(digit)p 289
+1882 V 22 w(v)m(alue)j Fg(\()p Ft(int)15 b(c)p Fg(\))195
+1937 y Fu(If)g Fm(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 2046 y Fl(2.4.9)30 b(Alternate)20
+b(In)n(terface)137 2142 y Fu(An)j(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 2197 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
+2252 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 2306 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
+2361 y(this)i(easy)l(.)1650 2451 y(F)l(unction)-1749
+b Fi(void)20 b Fh(rl)p 241 2451 V 21 w(callbac)n(k)p
+458 2451 V 23 w(handler)p 670 2451 V 21 w(install)25
+b Fg(\()p Ft(char)14 b(*prompt,)g(Vfunction)283 2506
+y(*lhandler)p Fg(\))195 2560 y Fu(Set)i(up)h(the)g(terminal)g(for)f
+(readline)i(I/O)e(and)h(displa)o(y)g(the)g(initial)h(expanded)g(v)m
+(alue)f(of)195 2615 y Fm(prompt)p Fu(.)24 b(Sa)o(v)o(e)17
+b(the)g(v)m(alue)h(of)e Fm(lhandler)22 b Fu(to)17 b(use)g(as)f(a)h
+(callbac)o(k)h(when)f(a)g(complete)g(line)195 2670 y(of)e(input)h(has)f
+(b)q(een)h(en)o(tered.)p eop
+%%Page: 29 31
+29 30 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(29)1650 183 y(F)l(unction)-1749 b Fi(void)20
+b Fh(rl)p 241 183 18 3 v 21 w(callbac)n(k)p 458 183 V
+23 w(read)p 591 183 V 20 w(c)n(har)j Fg(\(\))195 238
+y Fu(Whenev)o(er)14 b(an)f(application)i(determines)f(that)f(k)o(eyb)q
+(oard)g(input)h(is)g(a)o(v)m(ailable,)h(it)f(should)195
+293 y(call)20 b Ft(rl_callback_read_char\(\))p Fu(,)c(whic)o(h)k(will)g
+(read)f(the)g(next)g(c)o(haracter)f(from)g(the)195 348
+y(curren)o(t)25 b(input)h(source.)48 b(If)25 b(that)g(c)o(haracter)f
+(completes)h(the)g(line,)k Ft(rl_callback_)195 402 y(read_char)14
+b Fu(will)k(in)o(v)o(ok)o(e)e(the)f Fm(lhandler)21 b
+Fu(function)c(sa)o(v)o(ed)e(b)o(y)h Ft(rl_callback_handler_)195
+457 y(install)g Fu(to)h(pro)q(cess)g(the)g(line.)27 b
+Ft(EOF)17 b Fu(is)h(indicated)g(b)o(y)f(calling)i Fm(lhandler)j
+Fu(with)c(a)f Ft(NULL)195 512 y Fu(line.)1650 609 y(F)l(unction)-1749
+b Fi(void)20 b Fh(rl)p 241 609 V 21 w(callbac)n(k)p 458
+609 V 23 w(handler)p 670 609 V 21 w(remo)n(v)n(e)i Fg(\(\))195
+664 y Fu(Restore)15 b(the)g(terminal)g(to)g(its)g(initial)i(state)d
+(and)h(remo)o(v)o(e)f(the)h(line)h(handler.)21 b(This)16
+b(ma)o(y)195 719 y(b)q(e)g(called)h(from)d(within)j(a)d(callbac)o(k)j
+(as)d(w)o(ell)j(as)d(indep)q(enden)o(tly)m(.)75 835 y
+Fl(2.4.10)29 b(An)21 b(Example)137 934 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 989 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
+1044 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
+1098 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 1165 y Ft(/*)24 b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h
+(following)e(characters.)h(*/)195 1217 y(int)195 1269
+y(invert_case_line)f(\(count,)h(key\))314 1321 y(int)h(count,)f(key;)
+195 1373 y({)243 1425 y(register)f(int)i(start,)f(end,)g(i;)243
+1528 y(start)g(=)h(rl_point;)243 1632 y(if)f(\(rl_point)g(>=)h
+(rl_end\))290 1684 y(return)f(\(0\);)243 1788 y(if)g(\(count)g(<)h(0\))
+290 1840 y({)338 1892 y(direction)f(=)h(-1;)338 1944
+y(count)f(=)h(-count;)290 1995 y(})243 2047 y(else)290
+2099 y(direction)f(=)h(1;)243 2203 y(/*)f(Find)h(the)f(end)h(of)f(the)h
+(range)f(to)g(modify.)g(*/)243 2255 y(end)g(=)h(start)f(+)h(\(count)f
+(*)h(direction\);)243 2359 y(/*)f(Force)g(it)h(to)g(be)f(within)g
+(range.)g(*/)243 2411 y(if)g(\(end)h(>)f(rl_end\))290
+2462 y(end)h(=)g(rl_end;)243 2514 y(else)f(if)h(\(end)f(<)h(0\))290
+2566 y(end)g(=)g(0;)243 2670 y(if)f(\(start)g(==)h(end\))p
eop
-33 34 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(33)120 183 y Fl(lhandler)19 b Fr(function)d(sa)o(v)o
-(ed)e(b)o(y)g Fq(rl_callback_handler_install)d Fr(to)j(pro)q(cess)h
-(the)f(line.)21 b Fq(EOF)14 b Fr(is)120 246 y(indicated)j(b)o(y)e
-(calling)i Fl(lhandler)j Fr(with)c(a)f Fq(NULL)f Fr(line.)1725
-413 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 413
-18 3 v 21 w(callbac)n(k)p 383 413 V 23 w(handler)p 595
-413 V 21 w(remo)n(v)n(e)i Fg(\(\))120 476 y Fr(Restore)12
-b(the)g(terminal)h(to)e(its)i(initial)h(state)d(and)h(remo)o(v)o(e)g
-(the)g(line)i(handler.)20 b(This)12 b(ma)o(y)g(b)q(e)g(called)120
-538 y(from)i(within)j(a)e(callbac)o(k)h(as)f(w)o(ell)h(as)f(indep)q
-(enden)o(tly)l(.)0 763 y Fk(2.4.10)29 b(An)16 b(Example)62
-902 y Fr(Here)d(is)g(a)f(function)h(whic)o(h)g(c)o(hanges)g(lo)o(w)o
-(ercase)f(c)o(haracters)f(to)h(their)h(upp)q(ercase)g(equiv)m(alen)o
-(ts,)h(and)f(upp)q(er-)0 964 y(case)j(c)o(haracters)g(to)g(lo)o(w)o
-(ercase.)23 b(If)16 b(this)h(function)g(w)o(as)f(b)q(ound)h(to)f(`)p
-Fq(M-c)p Fr(',)f(then)h(t)o(yping)h(`)p Fq(M-c)p Fr(')e(w)o(ould)i(c)o
-(hange)0 1026 y(the)g(case)f(of)g(the)h(c)o(haracter)f(under)h(p)q(oin)
-o(t.)25 b(T)o(yping)17 b(`)p Fq(M-1)d(0)h(M-c)p Fr(')h(w)o(ould)h(c)o
-(hange)f(the)h(case)f(of)h(the)f(follo)o(wing)0 1089
-y(10)f(c)o(haracters,)f(lea)o(ving)i(the)f(cursor)g(on)g(the)g(last)g
-(c)o(haracter)g(c)o(hanged.)120 1217 y Fq(/*)24 b(Invert)f(the)g(case)g
-(of)h(the)f(COUNT)h(following)e(characters.)h(*/)120
-1269 y(int)120 1321 y(invert_case_line)f(\(count,)h(key\))239
-1373 y(int)h(count,)f(key;)120 1425 y({)168 1477 y(register)f(int)i
-(start,)f(end,)g(i;)168 1580 y(start)g(=)h(rl_point;)168
-1684 y(if)f(\(rl_point)g(>=)h(rl_end\))215 1736 y(return)f(\(0\);)168
-1840 y(if)g(\(count)g(<)h(0\))215 1892 y({)263 1944 y(direction)f(=)h
-(-1;)263 1995 y(count)f(=)h(-count;)215 2047 y(})168
-2099 y(else)215 2151 y(direction)f(=)h(1;)168 2255 y(/*)f(Find)h(the)f
-(end)h(of)f(the)h(range)f(to)g(modify.)g(*/)168 2307
-y(end)g(=)h(start)f(+)h(\(count)f(*)h(direction\);)168
-2411 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g(*/)168
-2462 y(if)g(\(end)h(>)f(rl_end\))215 2514 y(end)h(=)g(rl_end;)168
-2566 y(else)f(if)h(\(end)f(<)h(0\))215 2618 y(end)g(=)g(0;)p
+%%Page: 30 32
+30 31 bop 75 -58 a Fu(30)1299 b(GNU)15 b(Readline)i(Library)290
+183 y Ft(return)23 b(\(0\);)243 287 y(if)g(\(start)g(>)h(end\))290
+339 y({)338 391 y(int)g(temp)f(=)h(start;)338 443 y(start)f(=)h(end;)
+338 495 y(end)g(=)f(temp;)290 546 y(})243 650 y(/*)g(Tell)h(readline)e
+(that)i(we)f(are)h(modifying)e(the)i(line,)f(so)h(it)f(will)h(save)314
+702 y(the)g(undo)f(information.)f(*/)243 754 y(rl_modifying)g(\(start,)
+h(end\);)243 858 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))290
+910 y({)338 962 y(if)h(\(uppercase_p)e(\(rl_line_buffer[i]\)\))386
+1013 y(rl_line_buffer[i])f(=)j(to_lower)f(\(rl_line_buffer[i]\);)338
+1065 y(else)g(if)h(\(lowercase_p)e(\(rl_line_buffer[i]\)\))386
+1117 y(rl_line_buffer[i])f(=)j(to_upper)f(\(rl_line_buffer[i]\);)290
+1169 y(})243 1221 y(/*)g(Move)h(point)f(to)g(on)h(top)f(of)h(the)f
+(last)h(character)e(changed.)h(*/)243 1273 y(rl_point)f(=)i
+(\(direction)f(==)g(1\))h(?)g(end)f(-)h(1)g(:)f(start;)243
+1325 y(return)g(\(0\);)195 1377 y(})75 1509 y Fs(2.5)33
+b(Custom)21 b(Completers)137 1607 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 1662 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 1717 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
+1771 y(co)q(op)q(erate)g(to)g(pro)o(vide)g(this)h(service.)75
+1887 y Fl(2.5.1)30 b(Ho)n(w)21 b(Completing)f(W)-5 b(orks)137
+1984 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 2039 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 2094 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)i(library)e
+(pro)o(vides)g(the)g(user)75 2149 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 2204 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
+2258 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
+2327 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)21 b(user-in)o(terface)g
+(function)g Ft(rl_complete)14 b(\(\))p Fu(.)35 b(This)21
+b(function)g(is)g(called)h(with)f(the)f(same)165 2451
+y(argumen)o(ts)c(as)g(other)h(Readline)i(functions)f(in)o(tended)g(for)
+e(in)o(teractiv)o(e)i(use:)23 b Fm(coun)o(t)18 b Fu(and)f
+Fm(in)o(v)o(ok-)165 2506 y(ing)p 228 2506 14 2 v 17 w(k)o(ey)p
+Fu(.)34 b(It)20 b(isolates)g(the)g(w)o(ord)f(to)h(b)q(e)g(completed)h
+(and)f(calls)h Ft(completion_matches)13 b(\(\))20 b Fu(to)165
+2560 y(generate)f(a)f(list)i(of)e(p)q(ossible)j(completions.)32
+b(It)18 b(then)i(either)f(lists)h(the)f(p)q(ossible)h(completions,)165
+2615 y(inserts)g(the)f(p)q(ossible)j(completions,)f(or)e(actually)h(p)q
+(erforms)f(the)h(completion,)h(dep)q(ending)h(on)165
+2670 y(whic)o(h)16 b(b)q(eha)o(vior)g(is)f(desired.)p
eop
-34 35 bop 0 -58 a Fr(34)1449 b(GNU)15 b(Readline)i(Library)168
-183 y Fq(if)23 b(\(start)g(==)h(end\))215 235 y(return)f(\(0\);)168
-339 y(if)g(\(start)g(>)h(end\))215 391 y({)263 443 y(int)g(temp)f(=)h
-(start;)263 495 y(start)f(=)h(end;)263 546 y(end)g(=)f(temp;)215
-598 y(})168 702 y(/*)g(Tell)h(readline)e(that)i(we)f(are)h(modifying)e
-(the)i(line,)f(so)h(it)f(will)h(save)239 754 y(the)g(undo)f
-(information.)f(*/)168 806 y(rl_modifying)g(\(start,)h(end\);)168
-910 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))215
-962 y({)263 1013 y(if)h(\(uppercase_p)e(\(rl_line_buffer[i]\)\))311
-1065 y(rl_line_buffer[i])f(=)j(to_lower)f(\(rl_line_buffer[i]\);)263
-1117 y(else)g(if)h(\(lowercase_p)e(\(rl_line_buffer[i]\)\))311
-1169 y(rl_line_buffer[i])f(=)j(to_upper)f(\(rl_line_buffer[i]\);)215
-1221 y(})168 1273 y(/*)g(Move)h(point)f(to)g(on)h(top)f(of)h(the)f
-(last)h(character)e(changed.)h(*/)168 1325 y(rl_point)f(=)i
-(\(direction)f(==)g(1\))h(?)g(end)f(-)h(1)g(:)f(start;)168
-1377 y(return)g(\(0\);)120 1429 y(})0 1670 y Fp(2.5)33
-b(Custom)14 b(Completers)62 1809 y Fr(T)o(ypically)l(,)g(a)c(program)g
-(that)h(reads)g(commands)g(from)f(the)h(user)h(has)e(a)h(w)o(a)o(y)f
-(of)h(disam)o(biguating)h(commands)0 1871 y(and)k(data.)k(If)c(y)o(our)
-f(program)g(is)h(one)g(of)f(these,)h(then)g(it)g(can)g(pro)o(vide)g
-(completion)g(for)g(commands,)f(data,)f(or)0 1933 y(b)q(oth.)28
-b(The)18 b(follo)o(wing)h(sections)f(describ)q(e)h(ho)o(w)f(y)o(our)f
-(program)g(and)h(Readline)i(co)q(op)q(erate)e(to)f(pro)o(vide)i(this)0
-1995 y(service.)0 2220 y Fk(2.5.1)30 b(Ho)n(w)15 b(Completing)g(W)-5
-b(orks)62 2359 y Fr(In)16 b(order)f(to)g(complete)h(some)f(text,)f(the)
-h(full)i(list)f(of)f(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o
-(v)m(ailable.)21 b(That)15 b(is,)0 2421 y(it)k(is)f(not)g(p)q(ossible)i
-(to)e(accurately)h(expand)g(a)f(partial)h(w)o(ord)e(without)i(kno)o
-(wing)f(all)h(of)f(the)h(p)q(ossible)h(w)o(ords)0 2483
-y(whic)o(h)c(mak)o(e)f(sense)h(in)g(that)e(con)o(text.)20
-b(The)15 b(Readline)j(library)e(pro)o(vides)f(the)h(user)f(in)o
-(terface)h(to)e(completion,)0 2545 y(and)h(t)o(w)o(o)f(of)h(the)h(most)
-e(common)h(completion)h(functions:)21 b(\014lename)c(and)e(username.)20
-b(F)l(or)15 b(completing)h(other)0 2608 y(t)o(yp)q(es)h(of)f(text,)g(y)
-o(ou)h(m)o(ust)f(write)h(y)o(our)f(o)o(wn)g(completion)i(function.)25
-b(This)18 b(section)f(describ)q(es)h(exactly)g(what)0
-2670 y(suc)o(h)e(functions)f(m)o(ust)g(do,)g(and)g(pro)o(vides)h(an)f
-(example.)p eop
-35 36 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(35)62 183 y(There)16 b(are)f(three)g(ma)s(jor)f
-(functions)i(used)f(to)g(p)q(erform)g(completion:)25
-320 y(1.)29 b(The)15 b(user-in)o(terface)g(function)g
-Fq(rl_complete)e(\(\))p Fr(.)20 b(This)15 b(function)g(is)g(called)h
-(with)e(the)h(same)f(argumen)o(ts)90 383 y(as)j(other)g(Readline)j
-(functions)f(in)o(tended)g(for)e(in)o(teractiv)o(e)h(use:)25
-b Fl(coun)o(t)18 b Fr(and)g Fl(in)o(v)o(oking)p 1633
-383 14 2 v 17 w(k)o(ey)p Fr(.)27 b(It)18 b(isolates)90
-445 y(the)j(w)o(ord)g(to)f(b)q(e)i(completed)h(and)e(calls)h
-Fq(completion_matches)13 b(\(\))21 b Fr(to)f(generate)h(a)g(list)h(of)f
-(p)q(ossible)90 507 y(completions.)h(It)16 b(then)g(either)h(lists)f
-(the)g(p)q(ossible)h(completions,)g(inserts)f(the)g(p)q(ossible)h
-(completions,)f(or)90 569 y(actually)g(p)q(erforms)f(the)g(completion,)
-h(dep)q(ending)i(on)d(whic)o(h)h(b)q(eha)o(vior)f(is)h(desired.)25
-644 y(2.)29 b(The)18 b(in)o(ternal)h(function)g Fq(completion_matches)
-13 b(\(\))18 b Fr(uses)g(y)o(our)f Fl(generator)k Fr(function)e(to)e
-(generate)h(the)90 706 y(list)h(of)e(p)q(ossible)j(matc)o(hes,)e(and)g
-(then)g(returns)g(the)g(arra)o(y)f(of)h(these)g(matc)o(hes.)28
-b(Y)l(ou)18 b(should)h(place)g(the)90 769 y(address)c(of)g(y)o(our)g
-(generator)f(function)i(in)g Fq(rl_completion_entry_functi)o(on)p
-Fr(.)25 843 y(3.)29 b(The)16 b(generator)g(function)h(is)f(called)i
-(rep)q(eatedly)g(from)d Fq(completion_matches)e(\(\))p
-Fr(,)i(returning)i(a)f(string)90 906 y(eac)o(h)j(time.)31
-b(The)19 b(argumen)o(ts)f(to)g(the)h(generator)e(function)j(are)e
-Fl(text)i Fr(and)f Fl(state)p Fr(.)29 b Fl(text)19 b
-Fr(is)h(the)f(partial)90 968 y(w)o(ord)13 b(to)g(b)q(e)h(completed.)21
-b Fl(state)15 b Fr(is)f(zero)g(the)g(\014rst)f(time)h(the)g(function)g
-(is)g(called,)i(allo)o(wing)e(the)g(generator)90 1030
-y(to)19 b(p)q(erform)f(an)o(y)h(necessary)h(initialization,)i(and)e(a)f
-(p)q(ositiv)o(e)h(non-zero)f(in)o(teger)h(for)e(eac)o(h)h(subsequen)o
-(t)90 1092 y(call.)35 b(When)21 b(the)f(generator)f(function)i(returns)
-f Fq(\(char)14 b(*\)NULL)19 b Fr(this)i(signals)f Fq
-(completion_matches)90 1155 y(\(\))c Fr(that)g(there)h(are)f(no)h(more)
-f(p)q(ossibilitie)q(s)j(left.)25 b(Usually)18 b(the)e(generator)g
-(function)i(computes)e(the)h(list)90 1217 y(of)j(p)q(ossible)i
-(completions)f(when)g Fl(state)h Fr(is)f(zero,)g(and)f(returns)g(them)h
-(one)f(at)g(a)g(time)g(on)g(subsequen)o(t)90 1279 y(calls.)g(Eac)o(h)14
-b(string)f(the)h(generator)e(function)j(returns)e(as)g(a)g(matc)o(h)g
-(m)o(ust)g(b)q(e)h(allo)q(cated)h(with)e Fq(malloc\(\))p
-Fr(;)90 1341 y(Readline)18 b(frees)d(the)g(strings)g(when)h(it)f(has)g
-(\014nished)i(with)f(them.)1725 1503 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 1503 18 3 v 21 w(complete)j
-Fg(\()p Fq(int)14 b(ignore,)g(int)h(invoking_key)p Fg(\))120
-1566 y Fr(Complete)j(the)f(w)o(ord)f(at)h(or)g(b)q(efore)g(p)q(oin)o
-(t.)27 b(Y)l(ou)17 b(ha)o(v)o(e)g(supplied)i(the)f(function)g(that)e
-(do)q(es)i(the)120 1628 y(initial)d(simple)f(matc)o(hing)f(selection)h
-(algorithm)f(\(see)f Fq(completion_matches)h(\(\))p Fr(\).)18
-b(The)13 b(default)120 1690 y(is)j(to)e(do)h(\014lename)i(completion.)
-1736 1852 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g
-Fh(rl)p 316 1852 V 21 w(completion)p 611 1852 V 21 w(en)n(try)p
-764 1852 V 21 w(function)120 1914 y Fr(This)e(is)g(a)f(p)q(oin)o(ter)h
-(to)f(the)g(generator)g(function)h(for)f Fq(completion_matches)12
-b(\(\))p Fr(.)27 b(If)17 b(the)h(v)m(alue)120 1977 y(of)j
-Fq(rl_completion_entry_funct)o(ion)d Fr(is)k Fq(\(Function)14
-b(*\)NULL)20 b Fr(then)i(the)f(default)h(\014lename)120
-2039 y(generator)14 b(function,)i Fq(filename_completion_functi)o(on)c
-(\(\))p Fr(,)j(is)g(used.)0 2247 y Fk(2.5.2)30 b(Completion)15
-b(F)-5 b(unctions)62 2384 y Fr(Here)16 b(is)f(the)h(complete)g(list)g
+%%Page: 31 33
+31 32 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(31)100 183 y(2.)29 b(The)11 b(in)o(ternal)g(function)g
+Ft(completion_matches)i(\(\))d Fu(uses)h(y)o(our)e Fm(generator)k
+Fu(function)e(to)f(generate)165 238 y(the)16 b(list)h(of)f(p)q(ossible)
+i(matc)o(hes,)d(and)h(then)h(returns)f(the)g(arra)o(y)f(of)g(these)i
+(matc)o(hes.)22 b(Y)l(ou)16 b(should)165 293 y(place)g(the)f(address)h
+(of)e(y)o(our)h(generator)f(function)i(in)g Ft
+(rl_completion_entry_function)p Fu(.)100 356 y(3.)29
+b(The)19 b(generator)e(function)j(is)f(called)h(rep)q(eatedly)f(from)f
+Ft(completion_matches)13 b(\(\))p Fu(,)18 b(returning)165
+411 y(a)e(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 Fm(text)h Fu(and)g
+Fm(state)p Fu(.)22 b Fm(text)165 466 y Fu(is)17 b(the)f(partial)g(w)o
+(ord)f(to)h(b)q(e)h(completed.)23 b Fm(state)18 b Fu(is)e(zero)g(the)g
+(\014rst)g(time)g(the)g(function)h(is)g(called,)165 520
+y(allo)o(wing)f(the)e(generator)g(to)g(p)q(erform)h(an)o(y)f(necessary)
+h(initialization,)j(and)d(a)f(p)q(ositiv)o(e)i(non-zero)165
+575 y(in)o(teger)i(for)f(eac)o(h)g(subsequen)o(t)h(call.)28
+b(When)18 b(the)g(generator)f(function)h(returns)f Ft(\(char)e(*\)NULL)
+165 630 y Fu(this)h(signals)h Ft(completion_matches)c(\(\))i
+Fu(that)g(there)h(are)g(no)g(more)f(p)q(ossibilitie)q(s)j(left.)23
+b(Usually)165 685 y(the)c(generator)g(function)h(computes)g(the)f(list)
+h(of)f(p)q(ossible)i(completions)g(when)e Fm(state)j
+Fu(is)d(zero,)165 740 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 794 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)19
+b(frees)d(the)g(strings)f(when)165 849 y(it)g(has)h(\014nished)g(with)g
+(them.)1650 929 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p
+215 929 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
+(invoking_key)p Fg(\))195 984 y Fu(Complete)20 b(the)g(w)o(ord)f(at)g
+(or)g(b)q(efore)h(p)q(oin)o(t.)34 b(Y)l(ou)20 b(ha)o(v)o(e)f(supplied)j
+(the)e(function)h(that)195 1038 y(do)q(es)15 b(the)g(initial)h(simple)h
+(matc)o(hing)d(selection)i(algorithm)f(\(see)f Ft(completion_matches)
+195 1093 y(\(\))p Fu(\).)19 b(The)d(default)f(is)h(to)f(do)g
+(\014lename)h(completion.)1661 1173 y(V)l(ariable)-1749
+b Fi(Function)20 b(*)g Fh(rl)p 391 1173 V 21 w(completion)p
+686 1173 V 21 w(en)n(try)p 839 1173 V 21 w(function)195
+1228 y Fu(This)c(is)f(a)g(p)q(oin)o(ter)g(to)g(the)g(generator)f
+(function)i(for)e Ft(completion_matches)f(\(\))p Fu(.)20
+b(If)15 b(the)195 1283 y(v)m(alue)21 b(of)e Ft
+(rl_completion_entry_functio)o(n)e Fu(is)j Ft(\(Function)14
+b(*\)NULL)19 b Fu(then)h(the)f(de-)195 1337 y(fault)11
+b(\014lename)h(generator)d(function,)j Ft(filename_completion_function)
+g(\(\))p Fu(,)f(is)g(used.)75 1437 y Fl(2.5.2)30 b(Completion)20
+b(F)-5 b(unctions)137 1529 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.)
-1725 2545 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140
-2545 V 21 w(complete)p 385 2545 V 21 w(in)n(ternal)k
-Fg(\()p Fq(int)15 b(what_to_do)p Fg(\))120 2608 y Fr(Complete)d(the)g
-(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)19 b Fl(what)p
-979 2608 14 2 v 16 w(to)p 1036 2608 V 16 w(do)14 b Fr(sa)o(ys)d(what)g
-(to)g(do)g(with)h(the)g(completion.)120 2670 y(A)g(v)m(alue)h(of)f(`)p
-Fq(?)p Fr(')f(means)h(list)h(the)f(p)q(ossible)i(completions.)20
-b(`)p Fq(TAB)p Fr(')11 b(means)h(do)g(standard)f(completion.)p
-eop
-36 37 bop 0 -58 a Fr(36)1449 b(GNU)15 b(Readline)i(Library)120
-183 y(`)p Fq(*)p Fr(')c(means)h(insert)h(all)g(of)f(the)g(p)q(ossible)i
-(completions.)21 b(`)p Fq(!)p Fr(')13 b(means)h(to)g(displa)o(y)h(all)g
-(of)f(the)g(p)q(ossible)120 246 y(completions,)i(if)g(there)f(is)h
-(more)e(than)h(one,)g(as)g(w)o(ell)h(as)f(p)q(erforming)h(partial)f
-(completion.)1725 441 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 441 18 3 v 21 w(complete)j Fg(\()p Fq(int)14
-b(ignore,)g(int)h(invoking_key)p Fg(\))120 503 y Fr(Complete)23
-b(the)g(w)o(ord)e(at)h(or)g(b)q(efore)h(p)q(oin)o(t.)43
-b(Y)l(ou)23 b(ha)o(v)o(e)f(supplied)j(the)d(function)i(that)e(do)q(es)
-120 565 y(the)16 b(initial)j(simple)f(matc)o(hing)e(selection)i
-(algorithm)e(\(see)g Fq(completion_matches)d(\(\))j Fr(and)g
-Fq(rl_)120 627 y(completion_entry_function)p Fr(\))o(.)25
-b(The)18 b(default)g(is)g(to)f(do)h(\014lename)h(completion.)29
-b(This)18 b(calls)120 690 y Fq(rl_complete_internal)12
-b(\(\))j Fr(with)h(an)f(argumen)o(t)f(dep)q(ending)k(on)d
-Fl(in)o(v)o(oking)p 1496 690 14 2 v 17 w(k)o(ey)p Fr(.)1725
-885 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 885
-18 3 v 21 w(p)r(ossible)p 358 885 V 20 w(completions)j
-Fg(\()p Fq(int)15 b(count,)f(int)h(invoking_key)p Fg(\)\))120
-947 y Fr(List)23 b(the)f(p)q(ossible)j(completions.)42
-b(See)23 b(description)h(of)e Fq(rl_complete)14 b(\(\))p
-Fr(.)41 b(This)23 b(calls)g Fq(rl_)120 1009 y(complete_internal)13
-b(\(\))i Fr(with)g(an)g(argumen)o(t)g(of)g(`)p Fq(?)p
-Fr('.)1725 1204 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p
-140 1204 V 21 w(insert)p 303 1204 V 21 w(completions)j
-Fg(\()p Fq(int)14 b(count,)g(int)h(invoking_key)p Fg(\)\))120
-1267 y Fr(Insert)20 b(the)f(list)i(of)e(p)q(ossible)i(completions)f(in)
-o(to)g(the)f(line,)j(deleting)f(the)f(partially-completed)120
-1329 y(w)o(ord.)h(See)c(description)g(of)e Fq(rl_complete)f(\(\))p
-Fr(.)21 b(This)c(calls)g Fq(rl_complete_internal)12 b(\(\))k
-Fr(with)120 1391 y(an)f(argumen)o(t)g(of)f(`)p Fq(*)p
-Fr('.)1725 1586 y(F)l(unction)-1899 b Fi(char)20 b(**)f
-Fh(completion)p 472 1586 V 21 w(matc)n(hes)j Fg(\()p
-Fq(char)15 b(*text,)f(CPFunction)208 1648 y(*entry_func)p
-Fg(\))120 1711 y Fr(Returns)22 b(an)g(arra)o(y)e(of)h
-Fq(\(char)15 b(*\))21 b Fr(whic)o(h)i(is)f(a)f(list)i(of)e(completions)
-i(for)e Fl(text)p Fr(.)39 b(If)22 b(there)f(are)120 1773
-y(no)d(completions,)i(returns)e Fq(\(char)c(**\)NULL)p
-Fr(.)28 b(The)19 b(\014rst)e(en)o(try)h(in)h(the)g(returned)f(arra)o(y)
-f(is)i(the)120 1835 y(substitution)c(for)e Fl(text)p
-Fr(.)19 b(The)c(remaining)g(en)o(tries)f(are)g(the)g(p)q(ossible)i
-(completions.)k(The)15 b(arra)o(y)d(is)120 1897 y(terminated)j(with)h
-(a)f Fq(NULL)f Fr(p)q(oin)o(ter.)120 2045 y Fl(en)o(try)p
-227 2045 14 2 v 16 w(func)h Fr(is)d(a)g(function)h(of)e(t)o(w)o(o)g
-(args,)g(and)h(returns)g(a)f Fq(\(char)k(*\))p Fr(.)j(The)12
-b(\014rst)f(argumen)o(t)g(is)i Fl(text)p Fr(.)120 2108
-y(The)i(second)f(is)h(a)f(state)g(argumen)o(t;)f(it)i(is)g(zero)f(on)g
-(the)h(\014rst)f(call,)h(and)f(non-zero)h(on)f(subsequen)o(t)120
-2170 y(calls.)21 b Fl(en)o(try)p 346 2170 V 16 w(func)c
-Fr(returns)e(a)f Fq(NULL)g Fr(p)q(oin)o(ter)h(to)f(the)g(caller)i(when)
-f(there)f(are)g(no)h(more)f(matc)o(hes.)1725 2365 y(F)l(unction)-1899
-b Fi(char)20 b(*)f Fh(\014lename)p 380 2365 18 3 v 20
-w(completion)p 674 2365 V 21 w(function)k Fg(\()p Fq(char)15
-b(*text,)f(int)h(state)p Fg(\))120 2427 y Fr(A)e(generator)f(function)h
-(for)f(\014lename)i(completion)g(in)f(the)g(general)g(case.)19
-b(Note)13 b(that)f(completion)120 2490 y(in)18 b(Bash)f(is)h(a)f
-(little)h(di\013eren)o(t)f(b)q(ecause)h(of)f(all)h(the)f(pathnames)g
-(that)g(m)o(ust)f(b)q(e)i(follo)o(w)o(ed)f(when)120 2552
-y(lo)q(oking)23 b(up)f(completions)h(for)e(a)g(command.)39
-b(The)22 b(Bash)g(source)g(is)g(a)f(useful)i(reference)g(for)120
-2614 y(writing)16 b(custom)f(completion)h(functions.)p
-eop
-37 38 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(37)1725 183 y(F)l(unction)-1899 b Fi(char)20
-b(*)f Fh(username)p 412 183 18 3 v 19 w(completion)p
-705 183 V 21 w(function)k Fg(\()p Fq(char)14 b(*text,)g(int)h(state)p
-Fg(\))120 246 y Fr(A)i(completion)h(generator)e(for)g(usernames.)24
-b Fl(text)18 b Fr(con)o(tains)e(a)h(partial)g(username)g(preceded)h(b)o
-(y)120 308 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p
-Fq(~)p Fr('\).)24 b(As)18 b(with)f(all)h(completion)h(generators,)d
-Fl(state)j Fr(is)f(zero)f(on)120 370 y(the)e(\014rst)g(call)h(and)g
-(non-zero)f(for)g(subsequen)o(t)h(calls.)0 618 y Fk(2.5.3)30
-b(Completion)15 b(V)-5 b(ariables)1736 793 y Fr(V)l(ariable)-1899
-b Fi(Function)20 b(*)g Fh(rl)p 316 793 V 21 w(completion)p
-611 793 V 21 w(en)n(try)p 764 793 V 21 w(function)120
-856 y Fr(A)d(p)q(oin)o(ter)h(to)f(the)g(generator)f(function)i(for)f
-Fq(completion_matches)c(\(\))p Fr(.)25 b Fq(NULL)17 b
-Fr(means)g(to)g(use)120 918 y Fq(filename_entry_function)12
-b(\(\))p Fr(,)j(the)g(default)h(\014lename)g(completer.)1736
-1093 y(V)l(ariable)-1899 b Fi(CPPFunction)21 b(*)e Fh(rl)p
-394 1093 V 21 w(attempted)p 674 1093 V 20 w(completion)p
-968 1093 V 21 w(function)120 1156 y Fr(A)g(p)q(oin)o(ter)h(to)f(an)g
-(alternativ)o(e)h(function)g(to)f(create)g(matc)o(hes.)32
-b(The)20 b(function)g(is)g(called)h(with)120 1218 y Fl(text)p
-Fr(,)e Fl(start)p Fr(,)g(and)g Fl(end)p Fr(.)32 b Fl(start)19
-b Fr(and)g Fl(end)j Fr(are)c(indices)j(in)f Fq(rl_line_buffer)d
-Fr(sa)o(ying)i(what)g(the)120 1280 y(b)q(oundaries)c(of)e
-Fl(text)h Fr(are.)19 b(If)13 b(this)h(function)g(exists)g(and)g
-(returns)f Fq(NULL)p Fr(,)g(or)g(if)h(this)f(v)m(ariable)i(is)f(set)120
-1342 y(to)h Fq(NULL)p Fr(,)f(then)i Fq(rl_complete)e(\(\))h
-Fr(will)i(call)g(the)e(v)m(alue)i(of)e Fq(rl_completion_entry_funct)o
-(ion)120 1405 y Fr(to)g(generate)f(matc)o(hes,)h(otherwise)g(the)h
-(arra)o(y)e(of)g(strings)h(returned)h(will)h(b)q(e)f(used.)1736
-1580 y(V)l(ariable)-1899 b Fi(CPFunction)21 b(*)e Fh(rl)p
-368 1580 V 21 w(\014lename)p 597 1580 V 20 w(quoting)p
-806 1580 V 21 w(function)120 1642 y Fr(A)e(p)q(oin)o(ter)h(to)f(a)g
-(function)h(that)e(will)j(quote)e(a)g(\014lename)h(in)h(an)e
-(application-)i(sp)q(eci\014c)g(fashion.)120 1705 y(This)f(is)g(called)
-i(if)e(\014lename)h(completion)f(is)h(b)q(eing)f(attempted)g(and)f(one)
-h(of)f(the)h(c)o(haracters)f(in)120 1767 y Fq
-(rl_filename_quote_characte)o(rs)g Fr(app)q(ears)k(in)g(a)f(completed)h
-(\014lename.)37 b(The)20 b(function)h(is)120 1829 y(called)14
-b(with)f Fl(text)p Fr(,)g Fl(matc)o(h)p 579 1829 14 2
-v 15 w(t)o(yp)q(e)p Fr(,)g(and)g Fl(quote)p 903 1829
-V 16 w(p)q(oin)o(ter)p Fr(.)20 b(The)13 b Fl(text)g Fr(is)g(the)g
-(\014lename)h(to)e(b)q(e)h(quoted.)120 1891 y(The)21
-b Fl(matc)o(h)p 345 1891 V 16 w(t)o(yp)q(e)j Fr(is)e(either)f
-Fq(SINGLE_MATCH)p Fr(,)g(if)h(there)f(is)h(only)f(one)h(completion)g
-(matc)o(h,)f(or)120 1954 y Fq(MULT_MATCH)p Fr(.)d(Some)13
-b(functions)g(use)h(this)f(to)f(decide)j(whether)e(or)f(not)h(to)f
-(insert)i(a)e(closing)i(quote)120 2016 y(c)o(haracter.)36
-b(The)21 b Fl(quote)p 565 2016 V 16 w(p)q(oin)o(ter)k
-Fr(is)c(a)g(p)q(oin)o(ter)g(to)f(an)o(y)h(op)q(ening)h(quote)f(c)o
-(haracter)f(the)h(user)120 2078 y(t)o(yp)q(ed.)f(Some)15
-b(functions)h(c)o(ho)q(ose)g(to)e(reset)h(this)h(c)o(haracter.)1736
-2254 y(V)l(ariable)-1899 b Fi(CPFunction)21 b(*)e Fh(rl)p
-368 2254 18 3 v 21 w(\014lename)p 597 2254 V 20 w(dequoting)p
-864 2254 V 21 w(function)120 2316 y Fr(A)f(p)q(oin)o(ter)g(to)f(a)g
-(function)h(that)f(will)i(remo)o(v)o(e)e(application-sp)q(eci\014c)k
-(quoting)d(c)o(haracters)f(from)120 2378 y(a)h(\014lename)i(b)q(efore)f
-(completion)h(is)f(attempted,)g(so)f(those)h(c)o(haracters)f(do)g(not)h
-(in)o(terfere)g(with)120 2440 y(matc)o(hing)13 b(the)g(text)f(against)g
-(names)h(in)g(the)g(\014lesystem.)20 b(It)13 b(is)g(called)h(with)f
-Fl(text)p Fr(,)g(the)f(text)h(of)f(the)120 2503 y(w)o(ord)i(to)g(b)q(e)
-h(dequoted,)g(and)g Fl(quote)p 757 2503 14 2 v 16 w(c)o(har)p
-Fr(,)f(whic)o(h)i(is)f(the)g(quoting)g(c)o(haracter)f(that)f(delimits)k
-(the)120 2565 y(\014lename)d(\(usually)g(`)p Fq(')p Fr(')e(or)g(`)p
-Fq(")p Fr('\).)18 b(If)13 b Fl(quote)p 838 2565 V 16
-w(c)o(har)j Fr(is)e(zero,)e(the)h(\014lename)h(w)o(as)e(not)h(in)h(an)f
-(em)o(b)q(edded)120 2627 y(string.)p eop
-38 39 bop 0 -58 a Fr(38)1449 b(GNU)15 b(Readline)i(Library)1736
-183 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p
-316 183 18 3 v 21 w(c)n(har)p 444 183 V 20 w(is)p 502
-183 V 22 w(quoted)p 695 183 V 20 w(p)120 246 y Fr(A)d(p)q(oin)o(ter)g
-(to)f(a)g(function)i(to)e(call)h(that)f(determines)i(whether)f(or)f
-(not)g(a)h(sp)q(eci\014c)h(c)o(haracter)e(in)120 308
-y(the)c(line)i(bu\013er)e(is)h(quoted,)f(according)h(to)e(whatev)o(er)h
-(quoting)g(mec)o(hanism)h(the)f(program)f(calling)120
-370 y(readline)j(uses.)20 b(The)13 b(function)g(is)h(called)g(with)f(t)
-o(w)o(o)f(argumen)o(ts:)17 b Fl(text)p Fr(,)c(the)g(text)f(of)g(the)h
-(line,)i(and)120 432 y Fl(index)p Fr(,)j(the)e(index)i(of)e(the)g(c)o
-(haracter)g(in)h(the)g(line.)25 b(It)16 b(is)h(used)g(to)f(decide)i
-(whether)f(a)f(c)o(haracter)120 495 y(found)j(in)g Fq
-(rl_completer_word_break_)o(charact)o(ers)c Fr(should)20
-b(b)q(e)e(used)h(to)f(break)g(w)o(ords)g(for)120 557
-y(the)d(completer.)1736 745 y(V)l(ariable)-1899 b Fi(int)20
-b Fh(rl)p 140 745 V 21 w(completion)p 435 745 V 21 w(query)p
-598 745 V 21 w(items)120 807 y Fr(Up)h(to)e(this)i(man)o(y)f(items)h
-(will)h(b)q(e)f(displa)o(y)o(ed)h(in)f(resp)q(onse)g(to)f(a)g(p)q
-(ossible-completions)j(call.)120 869 y(After)16 b(that,)f(w)o(e)g(ask)h
-(the)g(user)g(if)g(she)g(is)h(sure)f(she)g(w)o(an)o(ts)f(to)g(see)h
-(them)g(all.)23 b(The)16 b(default)h(v)m(alue)120 932
-y(is)f(100.)1736 1120 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 1120 V 21 w(basic)p 355 1120 V 21 w(w)n(ord)p
-500 1120 V 21 w(break)p 661 1120 V 20 w(c)n(haracters)120
-1182 y Fr(The)12 b(basic)g(list)h(of)e(c)o(haracters)g(that)g(signal)h
-(a)g(break)f(b)q(et)o(w)o(een)h(w)o(ords)f(for)g(the)h(completer)g
-(routine.)120 1244 y(The)17 b(default)h(v)m(alue)g(of)e(this)i(v)m
-(ariable)g(is)g(the)f(c)o(haracters)f(whic)o(h)h(break)g(w)o(ords)g
-(for)f(completion)120 1306 y(in)g(Bash,)f(i.e.,)g Fq(")g
-(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fr(.)1736 1494 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 1494 V 21 w(basic)p 355
-1494 V 21 w(quote)p 515 1494 V 21 w(c)n(haracters)120
-1557 y Fr(List)d(of)f(quote)g(c)o(haracters)f(whic)o(h)i(can)f(cause)h
-(a)f(w)o(ord)f(break.)1736 1745 y(V)l(ariable)-1899 b
-Fi(char)20 b(*)f Fh(rl)p 211 1745 V 21 w(completer)p
-480 1745 V 21 w(w)n(ord)p 625 1745 V 20 w(break)p 785
-1745 V 20 w(c)n(haracters)120 1807 y Fr(The)f(list)h(of)e(c)o
-(haracters)g(that)g(signal)i(a)f(break)f(b)q(et)o(w)o(een)h(w)o(ords)g
-(for)f Fq(rl_complete_internal)120 1869 y(\(\))p Fr(.)j(The)15
-b(default)h(list)g(is)f(the)h(v)m(alue)g(of)f Fq
-(rl_basic_word_break_charac)o(ters)p Fr(.)1736 2057 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 2057 V 21 w(completer)p
-480 2057 V 21 w(quote)p 640 2057 V 21 w(c)n(haracters)120
-2120 y Fr(List)j(of)e(c)o(haracters)g(whic)o(h)i(can)f(b)q(e)h(used)f
-(to)f(quote)h(a)g(substring)g(of)f(the)h(line.)39 b(Completion)120
-2182 y(o)q(ccurs)17 b(on)f(the)h(en)o(tire)g(substring,)g(and)f(within)
-i(the)e(substring)h Fq(rl_completer_word_break_)120 2244
-y(characters)i Fr(are)g(treated)h(as)f(an)o(y)h(other)g(c)o(haracter,)g
-(unless)h(they)f(also)g(app)q(ear)g(within)i(this)120
-2306 y(list.)1736 2494 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 2494 V 21 w(\014lename)p 440 2494 V
-20 w(quote)p 599 2494 V 21 w(c)n(haracters)120 2557 y
-Fr(A)g(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)120
-2619 y(app)q(ear)c(in)h(a)f(completed)h(\014lename.)21
-b(The)16 b(default)g(is)f(empt)o(y)l(.)p eop
-39 40 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(39)1736 183 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 183 18 3 v 21 w(sp)r(ecial)p 398 183
-V 22 w(pre\014xes)120 246 y Fr(The)d(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 Fl(text)f Fr(when)120 308 y(it)f(is)g(passed)g(to)f(the)g
-(completion)i(function.)k(Programs)14 b(can)g(use)h(this)g(to)f(help)i
-(determine)g(what)120 370 y(kind)h(of)f(completing)i(to)e(do.)23
-b(F)l(or)16 b(instance,)h(Bash)f(sets)g(this)h(v)m(ariable)h(to)e
-Fq(")p Fr($)p Fq(@")f Fr(so)h(that)g(it)h(can)120 432
-y(complete)f(shell)h(v)m(ariables)f(and)g(hostnames.)1736
-587 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 587
-V 21 w(completion)p 435 587 V 21 w(app)r(end)p 640 587
-V 19 w(c)n(haracter)120 650 y Fr(When)f(a)g(single)h(completion)g
-(alternativ)o(e)f(matc)o(hes)g(at)f(the)h(end)g(of)g(the)g(command)f
-(line,)k(this)120 712 y(c)o(haracter)12 b(is)i(app)q(ended)h(to)d(the)i
-(inserted)g(completion)g(text.)19 b(The)13 b(default)h(is)f(a)g(space)h
-(c)o(haracter)120 774 y(\(`)g('\).)21 b(Setting)c(this)f(to)f(the)h(n)o
-(ull)h(c)o(haracter)e(\(`)p Fq(\\0)p Fr('\))f(prev)o(en)o(ts)i(an)o
-(ything)g(b)q(eing)h(app)q(ended)g(auto-)120 836 y(matically)l(.)26
-b(This)17 b(can)g(b)q(e)g(c)o(hanged)g(in)g(custom)g(completion)h
-(functions)f(to)f(pro)o(vide)h(the)g(\\most)120 899 y(sensible)i(w)o
-(ord)d(separator)g(c)o(haracter")g(according)h(to)f(an)h
-(application-sp)q(eci\014)q(c)j(command)c(line)120 961
-y(syn)o(tax)e(sp)q(eci\014cation.)1736 1116 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 1116 V 21 w(ignore)p 316 1116
-V 20 w(completion)p 610 1116 V 21 w(duplicates)120 1178
-y Fr(If)15 b(non-zero,)h(then)f(disallo)o(w)h(duplicates)h(in)f(the)g
-(matc)o(hes.)j(Default)c(is)h(1.)1736 1333 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 1333 V 21 w(\014lename)p 369
-1333 V 20 w(completion)p 663 1333 V 21 w(desired)120
-1395 y Fr(Non-zero)e(means)g(that)f(the)g(results)i(of)e(the)h(matc)o
-(hes)f(are)h(to)f(b)q(e)h(treated)f(as)h(\014lenames.)28
-b(This)120 1458 y(is)16 b Fl(alw)o(a)o(ys)h Fr(zero)e(on)g(en)o(try)l
-(,)g(and)h(can)g(only)g(b)q(e)g(c)o(hanged)f(within)i(a)e(completion)i
-(en)o(try)e(generator)120 1520 y(function.)26 b(If)18
-b(it)f(is)h(set)f(to)f(a)h(non-zero)g(v)m(alue,)i(directory)e(names)g
-(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(and)120 1582
-y(Readline)i(attempts)c(to)g(quote)h(completed)i(\014lenames)f(if)f
-(they)h(con)o(tain)f(an)o(y)g(em)o(b)q(edded)i(w)o(ord)120
-1645 y(break)15 b(c)o(haracters.)1736 1800 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 1800 V 21 w(\014lename)p 369
-1800 V 20 w(quoting)p 578 1800 V 21 w(desired)120 1862
-y Fr(Non-zero)c(means)g(that)g(the)g(results)h(of)e(the)i(matc)o(hes)e
-(are)h(to)g(b)q(e)h(quoted)f(using)h(double)g(quotes)120
-1924 y(\(or)d(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)
-120 1986 y(c)o(haracters)i(in)h Fq(rl_filename_quote_chars)p
-Fr(.)24 b(This)19 b(is)f Fl(alw)o(a)o(ys)h Fr(non-zero)f(on)f(en)o(try)
-l(,)h(and)g(can)120 2049 y(only)d(b)q(e)g(c)o(hanged)f(within)i(a)e
-(completion)h(en)o(try)f(generator)g(function.)20 b(The)14
-b(quoting)h(is)g(e\013ected)120 2111 y(via)g(a)g(call)i(to)d(the)i
-(function)g(p)q(oin)o(ted)g(to)e(b)o(y)h Fq
-(rl_filename_quoting_function)p Fr(.)1736 2266 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 2266 V 21 w(inhibit)p 324 2266
-V 23 w(completion)120 2328 y Fr(If)15 b(this)g(v)m(ariable)h(is)f
-(non-zero,)g(completion)h(is)f(inhibit)p Fq(<)p Fr(ed.)22
-b(The)15 b(completion)h(c)o(haracter)e(will)i(b)q(e)120
-2390 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to)e
-Fq(self-insert)p Fr(.)1736 2545 y(V)l(ariable)-1899 b
-Fi(Function)20 b(*)g Fh(rl)p 316 2545 V 21 w(ignore)p
-492 2545 V 20 w(some)p 639 2545 V 19 w(completions)p
-955 2545 V 21 w(function)120 2608 y Fr(This)e(function,)g(if)g
-(de\014ned,)h(is)f(called)h(b)o(y)e(the)h(completer)g(when)g(real)f
-(\014lename)i(completion)f(is)120 2670 y(done,)13 b(after)e(all)i(the)g
-(matc)o(hing)f(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)19
-b(It)12 b(is)h(passed)f(a)g Fq(NULL)g Fr(terminated)p
-eop
-40 41 bop 0 -58 a Fr(40)1449 b(GNU)15 b(Readline)i(Library)120
-183 y(arra)o(y)f(of)h(matc)o(hes.)26 b(The)17 b(\014rst)g(elemen)o(t)h
-(\()p Fq(matches[0])p Fr(\))e(is)h(the)h(maximal)g(substring)f(common)
-120 246 y(to)f(all)h(matc)o(hes.)22 b(This)17 b(function)g(can)f
-(re-arrange)g(the)g(list)h(of)f(matc)o(hes)g(as)f(required,)j(but)e
-(eac)o(h)120 308 y(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f(m)o
-(ust)h(b)q(e)h(freed.)1736 470 y(V)l(ariable)-1899 b
-Fi(Function)20 b(*)g Fh(rl)p 316 470 18 3 v 21 w(directory)p
-564 470 V 21 w(completion)p 859 470 V 21 w(ho)r(ok)120
-532 y Fr(This)15 b(function,)g(if)g(de\014ned,)h(is)f(allo)o(w)o(ed)g
-(to)e(mo)q(dify)j(the)e(directory)h(p)q(ortion)g(of)f(\014lenames)h
-(Read-)120 594 y(line)h(completes.)k(It)14 b(is)g(called)i(with)e(the)g
-(address)g(of)g(a)g(string)g(\(the)g(curren)o(t)f(directory)i(name\))e
-(as)120 656 y(an)f(argumen)o(t.)17 b(It)12 b(could)h(b)q(e)f(used)g(to)
-f(expand)h(sym)o(b)q(olic)h(links)g(or)e(shell)i(v)m(ariables)g(in)f
-(pathnames.)0 864 y Fk(2.5.4)30 b(A)15 b(Short)g(Completion)g(Example)
-62 1001 y Fr(Here)20 b(is)h(a)e(small)i(application)g(demonstrating)f
-(the)f(use)i(of)e(the)h(GNU)f(Readline)k(library)l(.)34
-b(It)20 b(is)g(called)0 1063 y Fq(fileman)p Fr(,)14 b(and)i(the)f
-(source)g(co)q(de)h(resides)g(in)h(`)p Fq(examples/fileman.c)p
-Fr(')o(.)h(This)e(sample)f(application)i(pro)o(vides)0
-1126 y(completion)f(of)f(command)g(names,)g(line)i(editing)f(features,)
-f(and)g(access)g(to)g(the)g(history)g(list.)p eop
-41 42 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(41)120 183 y Fq(/*)24 b(fileman.c)e(--)i(A)g(tiny)f
-(application)f(which)h(demonstrates)g(how)g(to)h(use)f(the)192
+1650 1609 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p 215
+1609 V 21 w(complete)p 460 1609 V 21 w(in)n(ternal)k
+Fg(\()p Ft(int)15 b(what_to_do)p Fg(\))195 1664 y Fu(Complete)k(the)f
+(w)o(ord)g(at)g(or)g(b)q(efore)g(p)q(oin)o(t.)30 b Fm(what)p
+1105 1664 14 2 v 16 w(to)p 1162 1664 V 16 w(do)21 b Fu(sa)o(ys)c(what)h
+(to)g(do)g(with)h(the)195 1718 y(completion.)33 b(A)19
+b(v)m(alue)h(of)f(`)p Ft(?)p Fu(')f(means)h(list)h(the)f(p)q(ossible)i
+(completions.)33 b(`)p Ft(TAB)p Fu(')18 b(means)195 1773
+y(do)g(standard)g(completion.)30 b(`)p Ft(*)p Fu(')18
+b(means)g(insert)g(all)i(of)d(the)i(p)q(ossible)h(completions.)30
+b(`)p Ft(!)p Fu(')195 1828 y(means)17 b(to)f(displa)o(y)i(all)g(of)e
+(the)h(p)q(ossible)i(completions,)f(if)f(there)g(is)g(more)g(than)f
+(one,)h(as)195 1883 y(w)o(ell)f(as)f(p)q(erforming)h(partial)f
+(completion.)1650 1963 y(F)l(unction)-1749 b Fi(int)20
+b Fh(rl)p 215 1963 18 3 v 21 w(complete)j Fg(\()p Ft(int)14
+b(ignore,)g(int)h(invoking_key)p Fg(\))195 2017 y Fu(Complete)20
+b(the)g(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)34
+b(Y)l(ou)20 b(ha)o(v)o(e)f(supplied)j(the)e(function)h(that)195
+2072 y(do)q(es)15 b(the)g(initial)h(simple)h(matc)o(hing)d(selection)i
+(algorithm)f(\(see)f Ft(completion_matches)195 2127 y(\(\))h
+Fu(and)h Ft(rl_completion_entry_functi)o(on)p Fu(\).)i(The)e(default)g
+(is)g(to)f(do)g(\014lename)i(com-)195 2182 y(pletion.)k(This)15
+b(calls)g Ft(rl_complete_internal)e(\(\))h Fu(with)h(an)f(argumen)o(t)f
+(dep)q(ending)k(on)195 2237 y Fm(in)o(v)o(oking)p 364
+2237 14 2 v 17 w(k)o(ey)p Fu(.)1650 2316 y(F)l(unction)-1749
+b Fi(int)19 b Fh(rl)p 214 2316 18 3 v 21 w(p)r(ossible)p
+432 2316 V 20 w(completions)k Fg(\()p Ft(int)15 b(count,)f(int)h
+(invoking_key)p Fg(\)\))195 2371 y Fu(List)k(the)f(p)q(ossible)i
+(completions.)29 b(See)19 b(description)h(of)d Ft(rl_complete)d(\(\))p
+Fu(.)28 b(This)19 b(calls)195 2426 y Ft(rl_complete_internal)12
+b(\(\))j Fu(with)h(an)f(argumen)o(t)f(of)h(`)p Ft(?)p
+Fu('.)1650 2506 y(F)l(unction)-1749 b Fi(int)20 b Fh(rl)p
+215 2506 V 21 w(insert)p 378 2506 V 21 w(completions)j
+Fg(\()p Ft(int)14 b(count,)g(int)h(invoking_key)p Fg(\)\))195
+2560 y Fu(Insert)24 b(the)h(list)f(of)g(p)q(ossible)i(completions)f(in)
+o(to)f(the)g(line,)k(deleting)e(the)e(partially-)195
+2615 y(completed)16 b(w)o(ord.)j(See)c(description)i(of)d
+Ft(rl_complete)g(\(\))p Fu(.)19 b(This)d(calls)g Ft(rl_complete_)195
+2670 y(internal)e(\(\))h Fu(with)g(an)h(argumen)o(t)e(of)h(`)p
+Ft(*)p Fu('.)p eop
+%%Page: 32 34
+32 33 bop 75 -58 a Fu(32)1299 b(GNU)15 b(Readline)i(Library)1650
+183 y(F)l(unction)-1749 b Fi(char)20 b(**)f Fh(completion)p
+547 183 18 3 v 21 w(matc)n(hes)j Fg(\()p Ft(char)15 b(*text,)f
+(CPFunction)283 238 y(*entry_func)p Fg(\))195 293 y Fu(Returns)f(an)f
+(arra)o(y)f(of)h Ft(\(char)j(*\))d Fu(whic)o(h)h(is)g(a)f(list)h(of)f
+(completions)i(for)e Fm(text)p Fu(.)18 b(If)13 b(there)f(are)195
+348 y(no)17 b(completions,)g(returns)g Ft(\(char)d(**\)NULL)p
+Fu(.)23 b(The)17 b(\014rst)f(en)o(try)g(in)i(the)e(returned)h(arra)o(y)
+195 402 y(is)c(the)h(substitution)f(for)g Fm(text)p Fu(.)18
+b(The)13 b(remaining)i(en)o(tries)e(are)f(the)i(p)q(ossible)g
+(completions.)195 457 y(The)h(arra)o(y)f(is)i(terminated)g(with)f(a)g
+Ft(NULL)g Fu(p)q(oin)o(ter.)195 522 y Fm(en)o(try)p 302
+522 14 2 v 16 w(func)g Fu(is)d(a)f(function)h(of)g(t)o(w)o(o)e(args,)h
+(and)g(returns)h(a)f Ft(\(char)k(*\))p Fu(.)j(The)12
+b(\014rst)f(argumen)o(t)195 577 y(is)j Fm(text)p Fu(.)19
+b(The)14 b(second)g(is)g(a)f(state)f(argumen)o(t;)h(it)h(is)g(zero)f
+(on)h(the)f(\014rst)g(call,)i(and)f(non-zero)195 632
+y(on)g(subsequen)o(t)g(calls.)21 b Fm(en)o(try)p 714
+632 V 16 w(func)c Fu(returns)d(a)f Ft(NULL)h Fu(p)q(oin)o(ter)g(to)f
+(the)h(caller)h(when)g(there)195 686 y(are)g(no)g(more)g(matc)o(hes.)
+1650 771 y(F)l(unction)-1749 b Fi(char)20 b(*)f Fh(\014lename)p
+455 771 18 3 v 20 w(completion)p 749 771 V 21 w(function)k
+Fg(\()p Ft(char)15 b(*text,)f(int)283 826 y(state)p Fg(\))195
+881 y Fu(A)19 b(generator)g(function)h(for)f(\014lename)h(completion)h
+(in)f(the)f(general)h(case.)33 b(Note)19 b(that)195 936
+y(completion)e(in)f(Bash)f(is)h(a)f(little)i(di\013eren)o(t)f(b)q
+(ecause)g(of)f(all)h(the)g(pathnames)f(that)g(m)o(ust)195
+991 y(b)q(e)i(follo)o(w)o(ed)g(when)g(lo)q(oking)h(up)f(completions)h
+(for)e(a)g(command.)24 b(The)17 b(Bash)g(source)f(is)195
+1045 y(a)f(useful)h(reference)g(for)f(writing)g(custom)g(completion)h
+(functions.)1650 1130 y(F)l(unction)-1749 b Fi(char)20
+b(*)f Fh(username)p 487 1130 V 19 w(completion)p 780
+1130 V 21 w(function)k Fg(\()p Ft(char)14 b(*text,)g(int)283
+1185 y(state)p Fg(\))195 1240 y Fu(A)k(completion)g(generator)f(for)g
+(usernames.)28 b Fm(text)18 b Fu(con)o(tains)f(a)h(partial)g(username)g
+(pre-)195 1295 y(ceded)f(b)o(y)f(a)g(random)f(c)o(haracter)h(\(usually)
+h(`)p Ft(~)p Fu('\).)k(As)16 b(with)g(all)h(completion)g(generators,)
+195 1350 y Fm(state)g Fu(is)f(zero)f(on)g(the)g(\014rst)g(call)h(and)g
+(non-zero)f(for)g(subsequen)o(t)h(calls.)75 1454 y Fl(2.5.3)30
+b(Completion)20 b(V)-5 b(ariables)1661 1569 y Fu(V)l(ariable)-1749
+b Fi(Function)20 b(*)g Fh(rl)p 391 1569 V 21 w(completion)p
+686 1569 V 21 w(en)n(try)p 839 1569 V 21 w(function)195
+1623 y Fu(A)c(p)q(oin)o(ter)h(to)e(the)i(generator)e(function)i(for)e
+Ft(completion_matches)e(\(\))p Fu(.)22 b Ft(NULL)16 b
+Fu(means)195 1678 y(to)f(use)g Ft(filename_entry_function)d(\(\))p
+Fu(,)j(the)g(default)h(\014lename)g(completer.)1661 1763
+y(V)l(ariable)-1749 b Fi(CPPFunction)21 b(*)e Fh(rl)p
+469 1763 V 21 w(attempted)p 749 1763 V 20 w(completion)p
+1043 1763 V 21 w(function)195 1818 y Fu(A)d(p)q(oin)o(ter)h(to)f(an)g
+(alternativ)o(e)h(function)g(to)f(create)g(matc)o(hes.)23
+b(The)16 b(function)i(is)e(called)195 1873 y(with)f Fm(text)p
+Fu(,)g Fm(start)p Fu(,)e(and)i Fm(end)p Fu(.)21 b Fm(start)15
+b Fu(and)g Fm(end)i Fu(are)e(indices)i(in)f Ft(rl_line_buffer)d
+Fu(sa)o(ying)195 1927 y(what)22 b(the)h(b)q(oundaries)h(of)e
+Fm(text)h Fu(are.)42 b(If)23 b(this)g(function)h(exists)f(and)f
+(returns)h Ft(NULL)p Fu(,)195 1982 y(or)c(if)h(this)g(v)m(ariable)h(is)
+f(set)g(to)e Ft(NULL)p Fu(,)i(then)g Ft(rl_complete)14
+b(\(\))19 b Fu(will)i(call)g(the)f(v)m(alue)g(of)195
+2037 y Ft(rl_completion_entry_functi)o(on)14 b Fu(to)j(generate)g(matc)
+o(hes,)g(otherwise)g(the)g(arra)o(y)f(of)195 2092 y(strings)f(returned)
+h(will)h(b)q(e)e(used.)1661 2177 y(V)l(ariable)-1749
+b Fi(CPFunction)21 b(*)e Fh(rl)p 443 2177 V 21 w(\014lename)p
+672 2177 V 20 w(quoting)p 881 2177 V 21 w(function)195
+2232 y Fu(A)g(p)q(oin)o(ter)g(to)f(a)h(function)g(that)g(will)h(quote)f
+(a)f(\014lename)i(in)g(an)e(application-)j(sp)q(eci\014c)195
+2286 y(fashion.)33 b(This)20 b(is)g(called)h(if)f(\014lename)g
+(completion)h(is)f(b)q(eing)g(attempted)f(and)h(one)f(of)195
+2341 y(the)13 b(c)o(haracters)f(in)h Ft(rl_filename_quote_characte)o
+(rs)d Fu(app)q(ears)i(in)i(a)e(completed)i(\014le-)195
+2396 y(name.)29 b(The)18 b(function)h(is)g(called)h(with)e
+Fm(text)p Fu(,)g Fm(matc)o(h)p 1144 2396 14 2 v 16 w(t)o(yp)q(e)p
+Fu(,)h(and)f Fm(quote)p 1480 2396 V 16 w(p)q(oin)o(ter)p
+Fu(.)30 b(The)195 2451 y Fm(text)17 b Fu(is)h(the)f(\014lename)h(to)e
+(b)q(e)h(quoted.)25 b(The)17 b Fm(matc)o(h)p 1115 2451
+V 16 w(t)o(yp)q(e)i Fu(is)f(either)f Ft(SINGLE_MATCH)p
+Fu(,)e(if)195 2506 y(there)j(is)g(only)h(one)f(completion)h(matc)o(h,)f
+(or)f Ft(MULT_MATCH)p Fu(.)27 b(Some)18 b(functions)g(use)h(this)195
+2560 y(to)13 b(decide)i(whether)f(or)g(not)f(to)g(insert)h(a)f(closing)
+i(quote)f(c)o(haracter.)k(The)c Fm(quote)p 1600 2560
+V 16 w(p)q(oin)o(ter)195 2615 y Fu(is)20 b(a)g(p)q(oin)o(ter)g(to)f(an)
+o(y)g(op)q(ening)i(quote)e(c)o(haracter)g(the)h(user)g(t)o(yp)q(ed.)34
+b(Some)19 b(functions)195 2670 y(c)o(ho)q(ose)c(to)g(reset)g(this)g(c)o
+(haracter.)p eop
+%%Page: 33 35
+33 34 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(33)1661 183 y(V)l(ariable)-1749 b Fi(CPFunction)21
+b(*)e Fh(rl)p 443 183 18 3 v 21 w(\014lename)p 672 183
+V 20 w(dequoting)p 939 183 V 21 w(function)195 238 y
+Fu(A)14 b(p)q(oin)o(ter)g(to)e(a)i(function)g(that)f(will)i(remo)o(v)o
+(e)e(application-sp)q(eci\014c)k(quoting)d(c)o(haracters)195
+293 y(from)21 b(a)g(\014lename)h(b)q(efore)f(completion)i(is)f
+(attempted,)g(so)f(those)g(c)o(haracters)f(do)h(not)195
+348 y(in)o(terfere)e(with)f(matc)o(hing)h(the)f(text)g(against)g(names)
+g(in)h(the)f(\014lesystem.)30 b(It)19 b(is)f(called)195
+402 y(with)g Fm(text)p Fu(,)g(the)g(text)g(of)g(the)g(w)o(ord)f(to)g(b)
+q(e)i(dequoted,)g(and)f Fm(quote)p 1381 402 14 2 v 16
+w(c)o(har)p Fu(,)g(whic)o(h)h(is)g(the)195 457 y(quoting)e(c)o
+(haracter)f(that)g(delimits)i(the)f(\014lename)h(\(usually)f(`)p
+Ft(')p Fu(')f(or)g(`)p Ft(")p Fu('\).)23 b(If)17 b Fm(quote)p
+1657 457 V 16 w(c)o(har)195 512 y Fu(is)f(zero,)e(the)i(\014lename)g(w)
+o(as)e(not)h(in)h(an)f(em)o(b)q(edded)i(string.)1661
+611 y(V)l(ariable)-1749 b Fi(Function)20 b(*)g Fh(rl)p
+391 611 18 3 v 21 w(c)n(har)p 519 611 V 20 w(is)p 577
+611 V 22 w(quoted)p 770 611 V 20 w(p)195 665 y Fu(A)c(p)q(oin)o(ter)g
+(to)f(a)h(function)g(to)g(call)g(that)g(determines)g(whether)g(or)g
+(not)f(a)g(sp)q(eci\014c)j(c)o(har-)195 720 y(acter)12
+b(in)i(the)f(line)i(bu\013er)e(is)g(quoted,)g(according)h(to)e(whatev)o
+(er)g(quoting)h(mec)o(hanism)h(the)195 775 y(program)e(calling)j
+(readline)g(uses.)20 b(The)13 b(function)h(is)g(called)h(with)f(t)o(w)o
+(o)e(argumen)o(ts:)18 b Fm(text)p Fu(,)195 830 y(the)11
+b(text)g(of)g(the)g(line,)i(and)f Fm(index)p Fu(,)g(the)g(index)g(of)f
+(the)g(c)o(haracter)g(in)h(the)f(line.)20 b(It)11 b(is)h(used)g(to)195
+884 y(decide)20 b(whether)e(a)g(c)o(haracter)g(found)h(in)g
+Ft(rl_completer_word_break_)o(charact)o(ers)195 939 y
+Fu(should)d(b)q(e)g(used)g(to)e(break)i(w)o(ords)e(for)h(the)g
+(completer.)1661 1038 y(V)l(ariable)-1749 b Fi(int)20
+b Fh(rl)p 215 1038 V 21 w(completion)p 510 1038 V 21
+w(query)p 673 1038 V 21 w(items)195 1093 y Fu(Up)d(to)e(this)i(man)o(y)
+f(items)h(will)h(b)q(e)f(displa)o(y)o(ed)g(in)g(resp)q(onse)g(to)f(a)g
+(p)q(ossible-completions)195 1147 y(call.)26 b(After)16
+b(that,)g(w)o(e)h(ask)f(the)h(user)g(if)g(she)g(is)h(sure)e(she)i(w)o
+(an)o(ts)d(to)h(see)h(them)g(all.)26 b(The)195 1202 y(default)16
+b(v)m(alue)g(is)g(100.)1661 1301 y(V)l(ariable)-1749
+b Fi(char)20 b(*)f Fh(rl)p 286 1301 V 21 w(basic)p 430
+1301 V 21 w(w)n(ord)p 575 1301 V 21 w(break)p 736 1301
+V 20 w(c)n(haracters)195 1356 y Fu(The)13 b(basic)h(list)f(of)g(c)o
+(haracters)f(that)g(signal)i(a)e(break)h(b)q(et)o(w)o(een)g(w)o(ords)f
+(for)g(the)h(completer)195 1410 y(routine.)20 b(The)c(default)g(v)m
+(alue)g(of)f(this)g(v)m(ariable)i(is)f(the)f(c)o(haracters)g(whic)o(h)h
+(break)f(w)o(ords)195 1465 y(for)g(completion)h(in)g(Bash,)f(i.e.,)g
+Ft(")g(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fu(.)1661 1564 y(V)l(ariable)-1749
+b Fi(char)20 b(*)f Fh(rl)p 286 1564 V 21 w(basic)p 430
+1564 V 21 w(quote)p 590 1564 V 21 w(c)n(haracters)195
+1618 y Fu(List)d(of)f(quote)g(c)o(haracters)f(whic)o(h)i(can)f(cause)h
+(a)f(w)o(ord)f(break.)1661 1717 y(V)l(ariable)-1749 b
+Fi(char)20 b(*)f Fh(rl)p 286 1717 V 21 w(completer)p
+555 1717 V 21 w(w)n(ord)p 700 1717 V 20 w(break)p 860
+1717 V 20 w(c)n(haracters)195 1772 y Fu(The)j(list)g(of)f(c)o
+(haracters)g(that)g(signal)h(a)g(break)f(b)q(et)o(w)o(een)h(w)o(ords)f
+(for)g Ft(rl_complete_)195 1827 y(internal)14 b(\(\))p
+Fu(.)k(The)10 b(default)h(list)g(is)g(the)f(v)m(alue)h(of)f
+Ft(rl_basic_word_break_charac)o(ters)p Fu(.)p 1909 1831
+21 36 v 1661 1925 a(V)l(ariable)-1749 b Fi(char)20 b(*)f
+Fh(rl)p 286 1925 18 3 v 21 w(completer)p 555 1925 V 21
+w(quote)p 715 1925 V 21 w(c)n(haracters)195 1980 y Fu(List)11
+b(of)g(c)o(haracters)f(whic)o(h)h(can)g(b)q(e)h(used)f(to)g(quote)f(a)h
+(substring)g(of)f(the)h(line.)20 b(Completion)195 2035
+y(o)q(ccurs)c(on)g(the)g(en)o(tire)g(substring,)g(and)g(within)h(the)e
+(substring)h Ft(rl_completer_word_)195 2089 y(break_characters)d
+Fu(are)h(treated)g(as)h(an)o(y)f(other)g(c)o(haracter,)g(unless)i(they)
+f(also)g(app)q(ear)195 2144 y(within)h(this)g(list.)1661
+2243 y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286
+2243 V 21 w(\014lename)p 515 2243 V 20 w(quote)p 674
+2243 V 21 w(c)n(haracters)195 2298 y Fu(A)d(list)g(of)g(c)o(haracters)e
+(that)h(cause)h(a)g(\014lename)h(to)e(b)q(e)h(quoted)g(b)o(y)f(the)h
+(completer)g(when)195 2352 y(they)f(app)q(ear)h(in)g(a)f(completed)h
+(\014lename.)21 b(The)15 b(default)h(is)g(the)f(n)o(ull)i(string.)1661
+2451 y(V)l(ariable)-1749 b Fi(char)20 b(*)f Fh(rl)p 286
+2451 V 21 w(sp)r(ecial)p 473 2451 V 22 w(pre\014xes)195
+2506 y Fu(The)14 b(list)h(of)e(c)o(haracters)g(that)g(are)g(w)o(ord)g
+(break)h(c)o(haracters,)f(but)h(should)g(b)q(e)h(left)f(in)g
+Fm(text)195 2560 y Fu(when)19 b(it)g(is)g(passed)f(to)g(the)h
+(completion)g(function.)31 b(Programs)17 b(can)h(use)h(this)g(to)f
+(help)195 2615 y(determine)e(what)e(kind)i(of)e(completing)i(to)e(do.)
+19 b(F)l(or)14 b(instance,)h(Bash)g(sets)f(this)i(v)m(ariable)195
+2670 y(to)f Ft(")p Fu($)p Ft(@")f Fu(so)h(that)f(it)i(can)f(complete)h
+(shell)h(v)m(ariables)f(and)g(hostnames.)p eop
+%%Page: 34 36
+34 35 bop 75 -58 a Fu(34)1299 b(GNU)15 b(Readline)i(Library)1661
+183 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 183
+18 3 v 21 w(completion)p 510 183 V 21 w(app)r(end)p 715
+183 V 19 w(c)n(haracter)195 238 y Fu(When)15 b(a)e(single)j(completion)
+f(alternativ)o(e)f(matc)o(hes)g(at)g(the)g(end)h(of)e(the)i(command)f
+(line,)195 293 y(this)20 b(c)o(haracter)e(is)i(app)q(ended)h(to)d(the)i
+(inserted)g(completion)g(text.)31 b(The)20 b(default)g(is)f(a)195
+348 y(space)14 b(c)o(haracter)f(\(`)i('\).)j(Setting)c(this)h(to)e(the)
+h(n)o(ull)h(c)o(haracter)e(\(`)p Ft(\\0)p Fu('\))f(prev)o(en)o(ts)i(an)
+o(ything)195 402 y(b)q(eing)24 b(app)q(ended)g(automatically)l(.)42
+b(This)23 b(can)g(b)q(e)g(c)o(hanged)f(in)i(custom)e(completion)195
+457 y(functions)15 b(to)e(pro)o(vide)i(the)f(\\most)f(sensible)j(w)o
+(ord)d(separator)g(c)o(haracter")g(according)i(to)195
+512 y(an)g(application-sp)q(eci\014)q(c)j(command)d(line)i(syn)o(tax)d
+(sp)q(eci\014cation.)1661 599 y(V)l(ariable)-1749 b Fi(int)20
+b Fh(rl)p 215 599 V 21 w(ignore)p 391 599 V 20 w(completion)p
+685 599 V 21 w(duplicates)195 654 y Fu(If)15 b(non-zero,)h(then)f
+(disallo)o(w)h(duplicates)h(in)f(the)g(matc)o(hes.)j(Default)c(is)h(1.)
+1661 741 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215
+741 V 21 w(\014lename)p 444 741 V 20 w(completion)p 738
+741 V 21 w(desired)195 796 y Fu(Non-zero)15 b(means)g(that)g(the)g
+(results)h(of)f(the)g(matc)o(hes)g(are)f(to)h(b)q(e)h(treated)f(as)f
+(\014lenames.)195 851 y(This)e(is)h Fm(alw)o(a)o(ys)f
+Fu(zero)g(on)g(en)o(try)l(,)g(and)g(can)f(only)i(b)q(e)f(c)o(hanged)g
+(within)h(a)e(completion)i(en)o(try)195 905 y(generator)f(function.)20
+b(If)14 b(it)f(is)h(set)f(to)g(a)g(non-zero)g(v)m(alue,)i(directory)e
+(names)h(ha)o(v)o(e)f(a)g(slash)195 960 y(app)q(ended)k(and)f(Readline)
+h(attempts)e(to)f(quote)i(completed)g(\014lenames)g(if)g(they)g(con)o
+(tain)195 1015 y(an)o(y)f(em)o(b)q(edded)i(w)o(ord)d(break)h(c)o
+(haracters.)1661 1102 y(V)l(ariable)-1749 b Fi(int)20
+b Fh(rl)p 215 1102 V 21 w(\014lename)p 444 1102 V 20
+w(quoting)p 653 1102 V 21 w(desired)195 1157 y Fu(Non-zero)c(means)f
+(that)g(the)h(results)g(of)g(the)f(matc)o(hes)h(are)f(to)g(b)q(e)h
+(quoted)g(using)h(double)195 1212 y(quotes)12 b(\(or)f(an)g
+(application-sp)q(eci)q(\014c)k(quoting)d(mec)o(hanism\))g(if)g(the)g
+(completed)h(\014lename)195 1267 y(con)o(tains)f(an)o(y)g(c)o
+(haracters)g(in)h Ft(rl_filename_quote_chars)p Fu(.)j(This)c(is)h
+Fm(alw)o(a)o(ys)h Fu(non-zero)195 1321 y(on)d(en)o(try)l(,)g(and)h(can)
+f(only)h(b)q(e)g(c)o(hanged)f(within)h(a)f(completion)i(en)o(try)d
+(generator)g(function.)195 1376 y(The)16 b(quoting)h(is)g(e\013ected)f
+(via)h(a)e(call)j(to)d(the)i(function)g(p)q(oin)o(ted)g(to)e(b)o(y)i
+Ft(rl_filename_)195 1431 y(quoting_function)p Fu(.)1661
+1518 y(V)l(ariable)-1749 b Fi(int)20 b Fh(rl)p 215 1518
+V 21 w(inhibit)p 399 1518 V 23 w(completion)195 1573
+y Fu(If)15 b(this)f(v)m(ariable)i(is)f(non-zero,)f(completion)i(is)f
+(inhibit)p Ft(<)p Fu(ed.)22 b(The)14 b(completion)i(c)o(haracter)195
+1628 y(will)h(b)q(e)f(inserted)g(as)f(an)o(y)f(other)h(b)q(ound)h(to)f
+Ft(self-insert)p Fu(.)1661 1715 y(V)l(ariable)-1749 b
+Fi(Function)20 b(*)g Fh(rl)p 391 1715 V 21 w(ignore)p
+567 1715 V 20 w(some)p 714 1715 V 19 w(completions)p
+1030 1715 V 21 w(function)195 1770 y Fu(This)15 b(function,)g(if)f
+(de\014ned,)i(is)e(called)i(b)o(y)e(the)h(completer)f(when)h(real)g
+(\014lename)g(comple-)195 1824 y(tion)k(is)g(done,)g(after)f(all)i(the)
+f(matc)o(hing)f(names)h(ha)o(v)o(e)f(b)q(een)i(generated.)30
+b(It)19 b(is)g(passed)195 1879 y(a)h Ft(NULL)f Fu(terminated)h(arra)o
+(y)f(of)g(matc)o(hes.)34 b(The)20 b(\014rst)g(elemen)o(t)h(\()p
+Ft(matches[0])p Fu(\))c(is)k(the)195 1934 y(maximal)e(substring)f
+(common)g(to)g(all)h(matc)o(hes.)29 b(This)19 b(function)g(can)f
+(re-arrange)g(the)195 1989 y(list)h(of)e(matc)o(hes)h(as)f(required,)i
+(but)f(eac)o(h)g(elemen)o(t)h(deleted)g(from)e(the)h(arra)o(y)f(m)o
+(ust)g(b)q(e)195 2044 y(freed.)1661 2131 y(V)l(ariable)-1749
+b Fi(Function)20 b(*)g Fh(rl)p 391 2131 V 21 w(directory)p
+639 2131 V 21 w(completion)p 934 2131 V 21 w(ho)r(ok)195
+2185 y Fu(This)13 b(function,)h(if)g(de\014ned,)g(is)f(allo)o(w)o(ed)h
+(to)e(mo)q(dify)h(the)g(directory)g(p)q(ortion)g(of)g(\014lenames)195
+2240 y(Readline)k(completes.)j(It)15 b(is)g(called)h(with)f(the)g
+(address)g(of)f(a)g(string)h(\(the)f(curren)o(t)h(direc-)195
+2295 y(tory)f(name\))g(as)h(an)f(argumen)o(t.)19 b(It)c(could)h(b)q(e)f
+(used)h(to)e(expand)h(sym)o(b)q(olic)h(links)g(or)e(shell)195
+2350 y(v)m(ariables)j(in)f(pathnames.)75 2457 y Fl(2.5.4)30
+b(A)21 b(Short)f(Completion)g(Example)137 2552 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)i(library)l(.)19 b(It)11 b(is)f(called)75
+2606 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 2661 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 eop
+%%Page: 35 37
+35 36 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(35)195 183 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
235 y(GNU)g(Readline)g(library.)46 b(This)24 b(application)e
-(interactively)g(allows)h(users)192 287 y(to)g(manipulate)g(files)g
-(and)g(their)g(modes.)h(*/)120 391 y(#include)f(<stdio.h>)120
-443 y(#include)g(<sys/types.h>)120 495 y(#include)g(<sys/file.h>)120
-546 y(#include)g(<sys/stat.h>)120 598 y(#include)g(<sys/errno.h>)120
-702 y(#include)g(<readline/readline.h>)120 754 y(#include)g
-(<readline/history.h>)120 858 y(extern)g(char)g(*getwd)g(\(\);)120
-910 y(extern)g(char)g(*xmalloc)g(\(\);)120 1013 y(/*)h(The)f(names)g
-(of)h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)120
+(interactively)g(allows)h(users)267 287 y(to)g(manipulate)g(files)g
+(and)g(their)g(modes.)h(*/)195 391 y(#include)f(<stdio.h>)195
+443 y(#include)g(<sys/types.h>)195 495 y(#include)g(<sys/file.h>)195
+546 y(#include)g(<sys/stat.h>)195 598 y(#include)g(<sys/errno.h>)195
+702 y(#include)g(<readline/readline.h>)195 754 y(#include)g
+(<readline/history.h>)195 858 y(extern)g(char)g(*getwd)g(\(\);)195
+910 y(extern)g(char)g(*xmalloc)g(\(\);)195 1013 y(/*)h(The)f(names)g
+(of)h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)195
1065 y(int)h(com_list)g(\(\),)h(com_view)e(\(\),)i(com_rename)e(\(\),)i
-(com_stat)f(\(\),)g(com_pwd)g(\(\);)120 1117 y(int)g(com_delete)g
-(\(\),)g(com_help)g(\(\),)h(com_cd)f(\(\),)g(com_quit)g(\(\);)120
+(com_stat)f(\(\),)g(com_pwd)g(\(\);)195 1117 y(int)g(com_delete)g
+(\(\),)g(com_help)g(\(\),)h(com_cd)f(\(\),)g(com_quit)g(\(\);)195
1221 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f
-(commands)g(this)g(program)192 1273 y(can)g(understand.)f(*/)120
-1377 y(typedef)h(struct)g({)168 1429 y(char)g(*name;)g(/*)h(User)f
-(printable)g(name)g(of)h(the)f(function.)g(*/)168 1480
+(commands)g(this)g(program)267 1273 y(can)g(understand.)f(*/)195
+1377 y(typedef)h(struct)g({)243 1429 y(char)g(*name;)g(/*)h(User)f
+(printable)g(name)g(of)h(the)f(function.)g(*/)243 1480
y(Function)f(*func;)i(/*)f(Function)g(to)g(call)h(to)f(do)h(the)f(job.)
-h(*/)168 1532 y(char)f(*doc;)g(/*)h(Documentation)e(for)h(this)h
-(function.)46 b(*/)120 1584 y(})24 b(COMMAND;)120 1688
-y(COMMAND)f(commands[])f(=)i({)168 1740 y({)f("cd",)h(com_cd,)f
-("Change)f(to)i(directory)f(DIR")g(},)168 1792 y({)g("delete",)g
-(com_delete,)f("Delete)h(FILE")h(},)168 1844 y({)f("help",)g(com_help,)
-g("Display)g(this)g(text")g(},)168 1896 y({)g("?",)h(com_help,)e
-("Synonym)h(for)h(`help'")f(},)168 1947 y({)g("list",)g(com_list,)g
-("List)g(files)g(in)h(DIR")f(},)168 1999 y({)g("ls",)h(com_list,)e
-("Synonym)h(for)g(`list'")g(},)168 2051 y({)g("pwd",)g(com_pwd,)g
-("Print)g(the)h(current)f(working)g(directory")f(},)168
-2103 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)168
+h(*/)243 1532 y(char)f(*doc;)g(/*)h(Documentation)e(for)h(this)h
+(function.)46 b(*/)195 1584 y(})24 b(COMMAND;)195 1688
+y(COMMAND)f(commands[])f(=)i({)243 1740 y({)f("cd",)h(com_cd,)f
+("Change)f(to)i(directory)f(DIR")g(},)243 1792 y({)g("delete",)g
+(com_delete,)f("Delete)h(FILE")h(},)243 1844 y({)f("help",)g(com_help,)
+g("Display)g(this)g(text")g(},)243 1896 y({)g("?",)h(com_help,)e
+("Synonym)h(for)h(`help'")f(},)243 1947 y({)g("list",)g(com_list,)g
+("List)g(files)g(in)h(DIR")f(},)243 1999 y({)g("ls",)h(com_list,)e
+("Synonym)h(for)g(`list'")g(},)243 2051 y({)g("pwd",)g(com_pwd,)g
+("Print)g(the)h(current)f(working)g(directory")f(},)243
+2103 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)243
2155 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g
-(},)168 2207 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g
-(on)h(FILE")f(},)168 2259 y({)g("view",)g(com_view,)g("View)g(the)h
-(contents)e(of)i(FILE")f(},)168 2311 y({)g(\(char)h(*\)NULL,)f
-(\(Function)f(*\)NULL,)h(\(char)g(*\)NULL)g(})120 2363
-y(};)120 2466 y(/*)h(Forward)e(declarations.)h(*/)120
-2518 y(char)g(*stripwhite)g(\(\);)120 2570 y(COMMAND)g(*find_command)f
+(},)243 2207 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g
+(on)h(FILE")f(},)243 2259 y({)g("view",)g(com_view,)g("View)g(the)h
+(contents)e(of)i(FILE")f(},)243 2311 y({)g(\(char)h(*\)NULL,)f
+(\(Function)f(*\)NULL,)h(\(char)g(*\)NULL)g(})195 2363
+y(};)195 2466 y(/*)h(Forward)e(declarations.)h(*/)195
+2518 y(char)g(*stripwhite)g(\(\);)195 2570 y(COMMAND)g(*find_command)f
(\(\);)p eop
-42 43 bop 0 -58 a Fr(42)1449 b(GNU)15 b(Readline)i(Library)120
-183 y Fq(/*)24 b(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f(from)
-g(argv[0].)g(*/)120 235 y(char)g(*progname;)120 339 y(/*)h(When)f
+%%Page: 36 38
+36 37 bop 75 -58 a Fu(36)1299 b(GNU)15 b(Readline)i(Library)195
+183 y Ft(/*)24 b(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f(from)
+g(argv[0].)g(*/)195 235 y(char)g(*progname;)195 339 y(/*)h(When)f
(non-zero,)g(this)g(global)g(means)g(the)h(user)f(is)g(done)h(using)f
-(this)g(program.)g(*/)120 391 y(int)g(done;)120 495 y(char)g(*)120
-546 y(dupstr)g(\(s\))239 598 y(int)h(s;)120 650 y({)168
-702 y(char)f(*r;)168 806 y(r)g(=)h(xmalloc)f(\(strlen)g(\(s\))g(+)h
-(1\);)168 858 y(strcpy)f(\(r,)g(s\);)168 910 y(return)g(\(r\);)120
-962 y(})120 1065 y(main)g(\(argc,)g(argv\))239 1117 y(int)h(argc;)239
-1169 y(char)g(**argv;)120 1221 y({)168 1273 y(char)f(*line,)g(*s;)168
-1377 y(progname)f(=)i(argv[0];)168 1480 y(initialize_readline)d(\(\);)i
-(/*)h(Bind)f(our)h(completer.)e(*/)168 1584 y(/*)h(Loop)h(reading)f
-(and)g(executing)g(lines)g(until)g(the)g(user)h(quits.)f(*/)168
-1636 y(for)g(\()h(;)g(done)f(==)h(0;)f(\))215 1688 y({)263
-1740 y(line)g(=)h(readline)f(\("FileMan:)f("\);)263 1844
-y(if)i(\(!line\))311 1896 y(break;)263 1999 y(/*)g(Remove)f(leading)g
-(and)g(trailing)g(whitespace)f(from)i(the)f(line.)335
-2051 y(Then,)g(if)h(there)f(is)g(anything)g(left,)g(add)h(it)f(to)h
-(the)f(history)g(list)335 2103 y(and)g(execute)g(it.)h(*/)263
-2155 y(s)g(=)g(stripwhite)e(\(line\);)263 2259 y(if)i(\(*s\))311
-2311 y({)359 2363 y(add_history)e(\(s\);)359 2414 y(execute_line)g
-(\(s\);)311 2466 y(})263 2570 y(free)h(\(line\);)215
-2622 y(})p eop
-43 44 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(43)168 183 y Fq(exit)23 b(\(0\);)120
-235 y(})120 339 y(/*)h(Execute)e(a)i(command)f(line.)g(*/)120
-391 y(int)120 443 y(execute_line)f(\(line\))239 495 y(char)i(*line;)120
-546 y({)168 598 y(register)e(int)i(i;)168 650 y(COMMAND)f(*command;)168
-702 y(char)g(*word;)168 806 y(/*)g(Isolate)g(the)h(command)f(word.)g
-(*/)168 858 y(i)g(=)h(0;)168 910 y(while)f(\(line[i])g(&&)g(whitespace)
-g(\(line[i]\)\))215 962 y(i++;)168 1013 y(word)g(=)h(line)f(+)h(i;)168
-1117 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))215
-1169 y(i++;)168 1273 y(if)g(\(line[i]\))215 1325 y(line[i++])g(=)h
-('\\0';)168 1429 y(command)f(=)g(find_command)g(\(word\);)168
-1532 y(if)g(\(!command\))215 1584 y({)263 1636 y(fprintf)g(\(stderr,)g
-("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)263
-1688 y(return)g(\(-1\);)215 1740 y(})168 1844 y(/*)g(Get)h(argument)f
-(to)g(command,)g(if)g(any.)h(*/)168 1896 y(while)f(\(whitespace)f
-(\(line[i]\)\))215 1947 y(i++;)168 2051 y(word)h(=)h(line)f(+)h(i;)168
-2155 y(/*)f(Call)h(the)f(function.)g(*/)168 2207 y(return)g
-(\(\(*\(command->func\)\))e(\(word\)\);)120 2259 y(})120
+(this)g(program.)g(*/)p 1985 349 21 42 v 195 391 a(int)g(done;)195
+495 y(char)g(*)195 546 y(dupstr)g(\(s\))314 598 y(int)h(s;)195
+650 y({)243 702 y(char)f(*r;)243 806 y(r)g(=)h(xmalloc)f(\(strlen)g
+(\(s\))g(+)h(1\);)243 858 y(strcpy)f(\(r,)g(s\);)243
+910 y(return)g(\(r\);)195 962 y(})195 1065 y(main)g(\(argc,)g(argv\))
+314 1117 y(int)h(argc;)314 1169 y(char)g(**argv;)195
+1221 y({)243 1273 y(char)f(*line,)g(*s;)243 1377 y(progname)f(=)i
+(argv[0];)243 1480 y(initialize_readline)d(\(\);)i(/*)h(Bind)f(our)h
+(completer.)e(*/)243 1584 y(/*)h(Loop)h(reading)f(and)g(executing)g
+(lines)g(until)g(the)g(user)h(quits.)f(*/)243 1636 y(for)g(\()h(;)g
+(done)f(==)h(0;)f(\))290 1688 y({)338 1740 y(line)g(=)h(readline)f
+(\("FileMan:)f("\);)338 1844 y(if)i(\(!line\))386 1896
+y(break;)338 1999 y(/*)g(Remove)f(leading)g(and)g(trailing)g
+(whitespace)f(from)i(the)f(line.)410 2051 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
+2103 y(and)g(execute)g(it.)h(*/)338 2155 y(s)g(=)g(stripwhite)e
+(\(line\);)338 2259 y(if)i(\(*s\))386 2311 y({)434 2363
+y(add_history)e(\(s\);)434 2414 y(execute_line)g(\(s\);)386
+2466 y(})338 2570 y(free)h(\(line\);)290 2622 y(})p eop
+%%Page: 37 39
+37 38 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(37)243 183 y Ft(exit)23 b(\(0\);)195
+235 y(})195 339 y(/*)h(Execute)e(a)i(command)f(line.)g(*/)195
+391 y(int)195 443 y(execute_line)f(\(line\))314 495 y(char)i(*line;)195
+546 y({)243 598 y(register)e(int)i(i;)243 650 y(COMMAND)f(*command;)243
+702 y(char)g(*word;)243 806 y(/*)g(Isolate)g(the)h(command)f(word.)g
+(*/)243 858 y(i)g(=)h(0;)243 910 y(while)f(\(line[i])g(&&)g(whitespace)
+g(\(line[i]\)\))290 962 y(i++;)243 1013 y(word)g(=)h(line)f(+)h(i;)243
+1117 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))290
+1169 y(i++;)243 1273 y(if)g(\(line[i]\))290 1325 y(line[i++])g(=)h
+('\\0';)243 1429 y(command)f(=)g(find_command)g(\(word\);)243
+1532 y(if)g(\(!command\))290 1584 y({)338 1636 y(fprintf)g(\(stderr,)g
+("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)338
+1688 y(return)g(\(-1\);)290 1740 y(})243 1844 y(/*)g(Get)h(argument)f
+(to)g(command,)g(if)g(any.)h(*/)243 1896 y(while)f(\(whitespace)f
+(\(line[i]\)\))290 1947 y(i++;)243 2051 y(word)h(=)h(line)f(+)h(i;)243
+2155 y(/*)f(Call)h(the)f(function.)g(*/)243 2207 y(return)g
+(\(\(*\(command->func\)\))e(\(word\)\);)195 2259 y(})195
2363 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)192 2414 y(command.)46
+(and)h(return)f(a)g(pointer)g(to)h(that)267 2414 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(*/)120 2466 y(COMMAND)g(*)120 2518 y(find_command)f(\(name\))
-239 2570 y(char)i(*name;)120 2622 y({)p eop
-44 45 bop 0 -58 a Fr(44)1449 b(GNU)15 b(Readline)i(Library)168
-183 y Fq(register)22 b(int)i(i;)168 287 y(for)f(\(i)h(=)f(0;)h
-(commands[i].name;)e(i++\))215 339 y(if)i(\(strcmp)f(\(name,)g
-(commands[i].name\))f(==)h(0\))263 391 y(return)g(\(&commands[i]\);)168
-495 y(return)g(\(\(COMMAND)f(*\)NULL\);)120 546 y(})120
+(name.)g(*/)195 2466 y(COMMAND)g(*)195 2518 y(find_command)f(\(name\))
+314 2570 y(char)i(*name;)195 2622 y({)p eop
+%%Page: 38 40
+38 39 bop 75 -58 a Fu(38)1299 b(GNU)15 b(Readline)i(Library)243
+183 y Ft(register)22 b(int)i(i;)243 287 y(for)f(\(i)h(=)f(0;)h
+(commands[i].name;)e(i++\))290 339 y(if)i(\(strcmp)f(\(name,)g
+(commands[i].name\))f(==)h(0\))338 391 y(return)g(\(&commands[i]\);)243
+495 y(return)g(\(\(COMMAND)f(*\)NULL\);)195 546 y(})195
650 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)192 702 y(into)g(STRING.)g(*/)120
-754 y(char)g(*)120 806 y(stripwhite)f(\(string\))239
-858 y(char)i(*string;)120 910 y({)168 962 y(register)e(char)i(*s,)f
-(*t;)168 1065 y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))
-215 1117 y(;)168 1221 y(if)g(\(*s)h(==)f(0\))215 1273
-y(return)g(\(s\);)168 1377 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)
-168 1429 y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))215
-1480 y(t--;)168 1532 y(*++t)h(=)h('\\0';)168 1636 y(return)f(s;)120
-1688 y(})120 1792 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)120 1844 y(/*)1575
-b(*/)120 1896 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381
-b(*/)120 1947 y(/*)1575 b(*/)120 1999 y(/*)24 b
+(STRING.)46 b(Return)24 b(a)f(pointer)267 702 y(into)g(STRING.)g(*/)195
+754 y(char)g(*)195 806 y(stripwhite)f(\(string\))314
+858 y(char)i(*string;)195 910 y({)243 962 y(register)e(char)i(*s,)f
+(*t;)243 1065 y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))
+290 1117 y(;)243 1221 y(if)g(\(*s)h(==)f(0\))290 1273
+y(return)g(\(s\);)243 1377 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)
+243 1429 y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))290
+1480 y(t--;)243 1532 y(*++t)h(=)h('\\0';)243 1636 y(return)f(s;)195
+1688 y(})195 1792 y(/*)h(***********************)o(*******)o(********)o
+(*******)o(*******)o(********)o(****)d(*/)195 1844 y(/*)1575
+b(*/)195 1896 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381
+b(*/)195 1947 y(/*)1575 b(*/)195 1999 y(/*)24 b
(***********************)o(*******)o(********)o(*******)o(*******)o
-(********)o(****)d(*/)120 2103 y(char)i(*command_generator)f(\(\);)120
-2155 y(char)h(**fileman_completion)e(\(\);)120 2259 y(/*)j(Tell)f(the)g
+(********)o(****)d(*/)195 2103 y(char)i(*command_generator)f(\(\);)195
+2155 y(char)h(**fileman_completion)e(\(\);)195 2259 y(/*)j(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)h(complete)192 2311 y(on)f(command)g(names)g(if)
-h(this)f(is)h(the)f(first)g(word)h(in)f(the)h(line,)f(or)h(on)f
-(filenames)192 2363 y(if)g(not.)g(*/)120 2414 y(initialize_readline)e
-(\(\))120 2466 y({)168 2518 y(/*)i(Allow)g(conditional)g(parsing)g(of)g
-(the)h(~/.inputrc)e(file.)h(*/)168 2570 y(rl_readline_name)e(=)j
-("FileMan";)p eop
-45 46 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(45)168 183 y Fq(/*)23 b(Tell)h(the)f(completer)g(that)g
-(we)h(want)f(a)h(crack)f(first.)g(*/)168 235 y
+b(want)f(to)h(try)f(to)h(complete)p 2034 2269 21 42 v
+267 2311 a(on)f(command)g(names)g(if)h(this)f(is)h(the)f(first)g(word)h
+(in)f(the)h(line,)f(or)h(on)f(filenames)p 1962 2317 21
+35 v 267 2363 a(if)g(not.)g(*/)195 2414 y(initialize_readline)e(\(\))
+195 2466 y({)243 2518 y(/*)i(Allow)g(conditional)g(parsing)g(of)g(the)h
+(~/.inputrc)e(file.)h(*/)243 2570 y(rl_readline_name)e(=)j("FileMan";)p
+eop
+%%Page: 39 41
+39 40 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(39)243 183 y Ft(/*)23 b(Tell)h(the)f(completer)g(that)g
+(we)h(want)f(a)h(crack)f(first.)g(*/)243 235 y
(rl_attempted_completion_)o(functio)o(n)e(=)j(\(CPPFunction)e
-(*\)fileman_completion;)120 287 y(})120 391 y(/*)i(Attempt)e(to)i
+(*\)fileman_completion;)195 287 y(})195 391 y(/*)i(Attempt)e(to)i
(complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23
-b(and)h(END)f(bound)h(the)192 443 y(region)f(of)g(rl_line_buffer)f
+b(and)h(END)f(bound)h(the)267 443 y(region)f(of)g(rl_line_buffer)f
(that)h(contains)g(the)h(word)f(to)h(complete.)46 b(TEXT)23
-b(is)192 495 y(the)g(word)g(to)h(complete.)46 b(We)24
-b(can)f(use)h(the)f(entire)g(contents)g(of)h(rl_line_buffer)192
-546 y(in)f(case)g(we)h(want)f(to)h(do)g(some)f(simple)g(parsing.)47
-b(Return)23 b(the)g(array)g(of)h(matches,)192 598 y(or)f(NULL)g(if)h
-(there)f(aren't)g(any.)h(*/)120 650 y(char)f(**)120 702
-y(fileman_completion)e(\(text,)i(start,)g(end\))239 754
-y(char)h(*text;)239 806 y(int)g(start,)f(end;)120 858
-y({)168 910 y(char)g(**matches;)168 1013 y(matches)g(=)g(\(char)h
-(**\)NULL;)168 1117 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)239
+b(is)267 495 y(the)g(word)g(to)h(complete.)46 b(We)24
+b(can)f(use)h(the)f(entire)g(contents)g(of)h(rl_line_buffer)p
+1963 505 21 38 v 267 546 a(in)f(case)g(we)h(want)f(to)h(do)g(some)f
+(simple)g(parsing.)47 b(Return)23 b(the)g(array)g(of)h(matches,)p
+1986 557 V 267 598 a(or)f(NULL)g(if)h(there)f(aren't)g(any.)h(*/)195
+650 y(char)f(**)195 702 y(fileman_completion)e(\(text,)i(start,)g
+(end\))314 754 y(char)h(*text;)314 806 y(int)g(start,)f(end;)195
+858 y({)243 910 y(char)g(**matches;)243 1013 y(matches)g(=)g(\(char)h
+(**\)NULL;)243 1117 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
1169 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)239 1221 y(directory.)f(*/)168
-1273 y(if)g(\(start)g(==)h(0\))215 1325 y(matches)f(=)h
-(completion_matches)d(\(text,)j(command_generator\);)168
-1429 y(return)f(\(matches\);)120 1480 y(})120 1584 y(/*)h(Generator)e
+(a)f(file)h(in)f(the)h(current)314 1221 y(directory.)f(*/)243
+1273 y(if)g(\(start)g(==)h(0\))290 1325 y(matches)f(=)h
+(completion_matches)d(\(text,)j(command_generator\);)243
+1429 y(return)f(\(matches\);)195 1480 y(})195 1584 y(/*)h(Generator)e
(function)h(for)g(command)g(completion.)47 b(STATE)23
-b(lets)g(us)h(know)f(whether)192 1636 y(to)g(start)g(from)h(scratch;)e
-(without)h(any)h(state)f(\(i.e.)g(STATE)g(==)h(0\),)f(then)h(we)192
-1688 y(start)f(at)g(the)h(top)f(of)h(the)f(list.)g(*/)120
-1740 y(char)g(*)120 1792 y(command_generator)f(\(text,)h(state\))239
-1844 y(char)h(*text;)239 1896 y(int)g(state;)120 1947
-y({)168 1999 y(static)f(int)g(list_index,)g(len;)168
-2051 y(char)g(*name;)168 2155 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g
-(to)h(complete,)f(initialize)f(now.)47 b(This)24 b(includes)239
-2207 y(saving)f(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)g(and)g
-(initializing)f(the)i(index)239 2259 y(variable)f(to)h(0.)f(*/)168
-2311 y(if)g(\(!state\))215 2363 y({)263 2414 y(list_index)g(=)g(0;)263
-2466 y(len)h(=)f(strlen)g(\(text\);)215 2518 y(})168
+b(lets)g(us)h(know)f(whether)p 1938 1594 21 42 v 267
+1636 a(to)g(start)g(from)h(scratch;)e(without)h(any)h(state)f(\(i.e.)g
+(STATE)g(==)h(0\),)f(then)h(we)267 1688 y(start)f(at)g(the)h(top)f(of)h
+(the)f(list.)g(*/)195 1740 y(char)g(*)195 1792 y(command_generator)f
+(\(text,)h(state\))314 1844 y(char)h(*text;)314 1896
+y(int)g(state;)195 1947 y({)243 1999 y(static)f(int)g(list_index,)g
+(len;)243 2051 y(char)g(*name;)243 2155 y(/*)g(If)h(this)f(is)h(a)g
+(new)f(word)g(to)h(complete,)f(initialize)f(now.)47 b(This)24
+b(includes)314 2207 y(saving)f(the)h(length)f(of)g(TEXT)h(for)f
+(efficiency,)g(and)g(initializing)f(the)i(index)p 1938
+2217 21 38 v 314 2259 a(variable)f(to)h(0.)f(*/)243 2311
+y(if)g(\(!state\))290 2363 y({)338 2414 y(list_index)g(=)g(0;)338
+2466 y(len)h(=)f(strlen)g(\(text\);)290 2518 y(})243
2622 y(/*)g(Return)g(the)h(next)f(name)g(which)h(partially)e(matches)h
-(from)g(the)h(command)f(list.)g(*/)p eop
-46 47 bop 0 -58 a Fr(46)1449 b(GNU)15 b(Readline)i(Library)168
-183 y Fq(while)23 b(\(name)g(=)h(commands[list_index].name)o(\))215
-235 y({)263 287 y(list_index++;)263 391 y(if)g(\(strncmp)f(\(name,)g
-(text,)g(len\))g(==)h(0\))311 443 y(return)f(\(dupstr\(name\)\);)215
-495 y(})168 598 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f
-(NULL.)g(*/)168 650 y(return)g(\(\(char)g(*\)NULL\);)120
-702 y(})120 806 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)120 858 y(/*)1575
-b(*/)120 910 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)120
-962 y(/*)1575 b(*/)120 1013 y(/*)24 b(***********************)o
-(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)120
+(from)g(the)h(command)f(list.)g(*/)p 1985 2632 21 42
+v eop
+%%Page: 40 42
+40 41 bop 75 -58 a Fu(40)1299 b(GNU)15 b(Readline)i(Library)243
+183 y Ft(while)23 b(\(name)g(=)h(commands[list_index].name)o(\))290
+235 y({)338 287 y(list_index++;)338 391 y(if)g(\(strncmp)f(\(name,)g
+(text,)g(len\))g(==)h(0\))386 443 y(return)f(\(dupstr\(name\)\);)290
+495 y(})243 598 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f
+(NULL.)g(*/)243 650 y(return)g(\(\(char)g(*\)NULL\);)195
+702 y(})195 806 y(/*)h(***********************)o(*******)o(********)o
+(*******)o(*******)o(********)o(****)d(*/)195 858 y(/*)1575
+b(*/)195 910 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)195
+962 y(/*)1575 b(*/)195 1013 y(/*)24 b(***********************)o
+(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)195
1117 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)192
-1169 y(commands.)f(*/)120 1221 y(static)h(char)g(syscom[1024];)120
-1325 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)120
-1377 y(com_list)g(\(arg\))239 1429 y(char)h(*arg;)120
-1480 y({)168 1532 y(if)f(\(!arg\))215 1584 y(arg)h(=)g("";)168
-1688 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)168
-1740 y(return)g(\(system)g(\(syscom\)\);)120 1792 y(})120
-1896 y(com_view)g(\(arg\))239 1947 y(char)h(*arg;)120
-1999 y({)168 2051 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))215
-2103 y(return)g(1;)168 2207 y(sprintf)g(\(syscom,)f("more)i(\045s",)f
-(arg\);)168 2259 y(return)g(\(system)g(\(syscom\)\);)120
-2311 y(})120 2414 y(com_rename)f(\(arg\))239 2466 y(char)i(*arg;)120
-2518 y({)168 2570 y(too_dangerous)e(\("rename"\);)168
+b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)267
+1169 y(commands.)f(*/)195 1221 y(static)h(char)g(syscom[1024];)195
+1325 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)195
+1377 y(com_list)g(\(arg\))314 1429 y(char)h(*arg;)195
+1480 y({)243 1532 y(if)f(\(!arg\))290 1584 y(arg)h(=)g("";)243
+1688 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)243
+1740 y(return)g(\(system)g(\(syscom\)\);)195 1792 y(})195
+1896 y(com_view)g(\(arg\))314 1947 y(char)h(*arg;)195
+1999 y({)243 2051 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))290
+2103 y(return)g(1;)243 2207 y(sprintf)g(\(syscom,)f("more)i(\045s",)f
+(arg\);)243 2259 y(return)g(\(system)g(\(syscom\)\);)195
+2311 y(})195 2414 y(com_rename)f(\(arg\))314 2466 y(char)i(*arg;)195
+2518 y({)243 2570 y(too_dangerous)e(\("rename"\);)243
2622 y(return)h(\(1\);)p eop
-47 48 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(47)120 183 y Fq(})120 287 y(com_stat)23
-b(\(arg\))239 339 y(char)h(*arg;)120 391 y({)168 443
-y(struct)f(stat)g(finfo;)168 546 y(if)g(\(!valid_argument)f(\("stat",)h
-(arg\)\))215 598 y(return)g(\(1\);)168 702 y(if)g(\(stat)g(\(arg,)h
-(&finfo\))f(==)g(-1\))215 754 y({)263 806 y(perror)g(\(arg\);)263
-858 y(return)g(\(1\);)215 910 y(})168 1013 y(printf)g(\("Statistics)f
-(for)h(`\045s':\\n",)g(arg\);)168 1117 y(printf)g(\("\045s)g(has)h
+%%Page: 41 43
+41 42 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(41)195 183 y Ft(})195 287 y(com_stat)23
+b(\(arg\))314 339 y(char)h(*arg;)195 391 y({)243 443
+y(struct)f(stat)g(finfo;)243 546 y(if)g(\(!valid_argument)f(\("stat",)h
+(arg\)\))290 598 y(return)g(\(1\);)243 702 y(if)g(\(stat)g(\(arg,)h
+(&finfo\))f(==)g(-1\))290 754 y({)338 806 y(perror)g(\(arg\);)338
+858 y(return)g(\(1\);)290 910 y(})243 1013 y(printf)g(\("Statistics)f
+(for)h(`\045s':\\n",)g(arg\);)243 1117 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,)359 1169 y(finfo.st_nlink,)359 1221 y(\(finfo.st_nlink)e(==)j
-(1\))g(?)f("")h(:)g("s",)359 1273 y(finfo.st_size,)359
-1325 y(\(finfo.st_size)e(==)h(1\))h(?)f("")h(:)g("s"\);)168
+g(arg,)434 1169 y(finfo.st_nlink,)434 1221 y(\(finfo.st_nlink)e(==)j
+(1\))g(?)f("")h(:)g("s",)434 1273 y(finfo.st_size,)434
+1325 y(\(finfo.st_size)e(==)h(1\))h(?)f("")h(:)g("s"\);)243
1377 y(printf)f(\("Inode)g(Last)g(Change)g(at:)g(\045s",)h(ctime)f
-(\(&finfo.st_ctime\)\);)168 1429 y(printf)g(\(")143 b(Last)23
-b(access)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_atime\)\);)168
+(\(&finfo.st_ctime\)\);)243 1429 y(printf)g(\(")143 b(Last)23
+b(access)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_atime\)\);)243
1480 y(printf)g(\(")95 b(Last)23 b(modified)g(at:)g(\045s",)h(ctime)f
-(\(&finfo.st_mtime\)\);)168 1532 y(return)g(\(0\);)120
-1584 y(})120 1688 y(com_delete)f(\(arg\))239 1740 y(char)i(*arg;)120
-1792 y({)168 1844 y(too_dangerous)e(\("delete"\);)168
-1896 y(return)h(\(1\);)120 1947 y(})120 2051 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)192
-2103 y(not)f(present.)g(*/)120 2155 y(com_help)g(\(arg\))239
-2207 y(char)h(*arg;)120 2259 y({)168 2311 y(register)e(int)i(i;)168
-2363 y(int)f(printed)g(=)h(0;)168 2466 y(for)f(\(i)h(=)f(0;)h
-(commands[i].name;)e(i++\))215 2518 y({)263 2570 y(if)i(\(!*arg)f(||)g
-(\(strcmp)g(\(arg,)g(commands[i].name\))f(==)i(0\)\))311
+(\(&finfo.st_mtime\)\);)243 1532 y(return)g(\(0\);)195
+1584 y(})195 1688 y(com_delete)f(\(arg\))314 1740 y(char)i(*arg;)195
+1792 y({)243 1844 y(too_dangerous)e(\("delete"\);)243
+1896 y(return)h(\(1\);)195 1947 y(})195 2051 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
+2103 y(not)f(present.)g(*/)195 2155 y(com_help)g(\(arg\))314
+2207 y(char)h(*arg;)195 2259 y({)243 2311 y(register)e(int)i(i;)243
+2363 y(int)f(printed)g(=)h(0;)243 2466 y(for)f(\(i)h(=)f(0;)h
+(commands[i].name;)e(i++\))290 2518 y({)338 2570 y(if)i(\(!*arg)f(||)g
+(\(strcmp)g(\(arg,)g(commands[i].name\))f(==)i(0\)\))386
2622 y({)p eop
-48 49 bop 0 -58 a Fr(48)1449 b(GNU)15 b(Readline)i(Library)359
-183 y Fq(printf)23 b(\("\045s\\t\\t\045s.\\n",)e(commands[i].name,)h
-(commands[i].doc\);)359 235 y(printed++;)311 287 y(})215
-339 y(})168 443 y(if)h(\(!printed\))215 495 y({)263 546
+%%Page: 42 44
+42 43 bop 75 -58 a Fu(42)1299 b(GNU)15 b(Readline)i(Library)434
+183 y Ft(printf)23 b(\("\045s\\t\\t\045s.\\n",)e(commands[i].name,)h
+(commands[i].doc\);)434 235 y(printed++;)386 287 y(})290
+339 y(})243 443 y(if)h(\(!printed\))290 495 y({)338 546
y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48 b(Possibilties)22
-b(are:\\n",)h(arg\);)263 650 y(for)h(\(i)f(=)h(0;)g(commands[i].name;)d
-(i++\))311 702 y({)359 754 y(/*)i(Print)g(in)h(six)f(columns.)g(*/)359
-806 y(if)g(\(printed)g(==)h(6\))406 858 y({)454 910 y(printed)f(=)h(0;)
-454 962 y(printf)f(\("\\n"\);)406 1013 y(})359 1117 y(printf)g
-(\("\045s\\t",)f(commands[i].name\);)359 1169 y(printed++;)311
-1221 y(})263 1325 y(if)i(\(printed\))311 1377 y(printf)f(\("\\n"\);)215
-1429 y(})168 1480 y(return)g(\(0\);)120 1532 y(})120
-1636 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)120
-1688 y(com_cd)f(\(arg\))239 1740 y(char)h(*arg;)120 1792
-y({)168 1844 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))215
-1896 y({)263 1947 y(perror)g(\(arg\);)263 1999 y(return)g(1;)215
-2051 y(})168 2155 y(com_pwd)g(\(""\);)168 2207 y(return)g(\(0\);)120
-2259 y(})120 2363 y(/*)h(Print)f(out)g(the)h(current)f(working)f
-(directory.)h(*/)120 2414 y(com_pwd)g(\(ignore\))239
-2466 y(char)h(*ignore;)120 2518 y({)168 2570 y(char)f(dir[1024],)g(*s;)
+b(are:\\n",)h(arg\);)338 650 y(for)h(\(i)f(=)h(0;)g(commands[i].name;)d
+(i++\))386 702 y({)434 754 y(/*)i(Print)g(in)h(six)f(columns.)g(*/)434
+806 y(if)g(\(printed)g(==)h(6\))481 858 y({)529 910 y(printed)f(=)h(0;)
+529 962 y(printf)f(\("\\n"\);)481 1013 y(})434 1117 y(printf)g
+(\("\045s\\t",)f(commands[i].name\);)434 1169 y(printed++;)386
+1221 y(})338 1325 y(if)i(\(printed\))386 1377 y(printf)f(\("\\n"\);)290
+1429 y(})243 1480 y(return)g(\(0\);)195 1532 y(})195
+1636 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)195
+1688 y(com_cd)f(\(arg\))314 1740 y(char)h(*arg;)195 1792
+y({)243 1844 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))290
+1896 y({)338 1947 y(perror)g(\(arg\);)338 1999 y(return)g(1;)290
+2051 y(})243 2155 y(com_pwd)g(\(""\);)243 2207 y(return)g(\(0\);)195
+2259 y(})195 2363 y(/*)h(Print)f(out)g(the)h(current)f(working)f
+(directory.)h(*/)195 2414 y(com_pwd)g(\(ignore\))314
+2466 y(char)h(*ignore;)195 2518 y({)243 2570 y(char)f(dir[1024],)g(*s;)
p eop
-49 50 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(49)168 183 y Fq(s)23 b(=)h(getwd)f(\(dir\);)168
-235 y(if)g(\(s)h(==)f(0\))215 287 y({)263 339 y(printf)g(\("Error)g
-(getting)g(pwd:)g(\045s\\n",)g(dir\);)263 391 y(return)g(1;)215
-443 y(})168 546 y(printf)g(\("Current)f(directory)h(is)h(\045s\\n",)f
-(dir\);)168 598 y(return)g(0;)120 650 y(})120 754 y(/*)h(The)f(user)g
+%%Page: 43 45
+43 44 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(43)243 183 y Ft(s)23 b(=)h(getwd)f(\(dir\);)243
+235 y(if)g(\(s)h(==)f(0\))290 287 y({)338 339 y(printf)g(\("Error)g
+(getting)g(pwd:)g(\045s\\n",)g(dir\);)338 391 y(return)g(1;)290
+443 y(})243 546 y(printf)g(\("Current)f(directory)h(is)h(\045s\\n",)f
+(dir\);)243 598 y(return)g(0;)195 650 y(})195 754 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)h(non-zero.)e(*/)120 806 y(com_quit)h(\(arg\))239
-858 y(char)h(*arg;)120 910 y({)168 962 y(done)f(=)h(1;)168
-1013 y(return)f(\(0\);)120 1065 y(})120 1169 y(/*)h(Function)e(which)i
-(tells)f(you)g(that)g(you)h(can't)f(do)h(this.)f(*/)120
-1221 y(too_dangerous)f(\(caller\))239 1273 y(char)i(*caller;)120
-1325 y({)168 1377 y(fprintf)f(\(stderr,)382 1429 y("\045s:)h(Too)f
-(dangerous)g(for)g(me)h(to)g(distribute.)46 b(Write)23
-b(it)h(yourself.\\n",)382 1480 y(caller\);)120 1532 y(})120
-1636 y(/*)g(Return)f(non-zero)f(if)i(ARG)f(is)h(a)g(valid)f(argument)g
-(for)g(CALLER,)g(else)g(print)192 1688 y(an)g(error)g(message)g(and)h
-(return)f(zero.)g(*/)120 1740 y(int)120 1792 y(valid_argument)f
-(\(caller,)h(arg\))239 1844 y(char)h(*caller,)e(*arg;)120
-1896 y({)168 1947 y(if)h(\(!arg)g(||)h(!*arg\))215 1999
-y({)263 2051 y(fprintf)f(\(stderr,)g("\045s:)g(Argument)g
-(required.\\n",)f(caller\);)263 2103 y(return)h(\(0\);)215
-2155 y(})168 2259 y(return)g(\(1\);)120 2311 y(})p eop
-50 51 bop 0 -58 a Fr(50)1449 b(GNU)15 b(Readline)i(Library)p
+b(set)f(DONE)h(non-zero.)e(*/)p 1961 764 21 42 v 195
+806 a(com_quit)h(\(arg\))314 858 y(char)h(*arg;)195 910
+y({)243 962 y(done)f(=)h(1;)243 1013 y(return)f(\(0\);)195
+1065 y(})195 1169 y(/*)h(Function)e(which)i(tells)f(you)g(that)g(you)h
+(can't)f(do)h(this.)f(*/)195 1221 y(too_dangerous)f(\(caller\))314
+1273 y(char)i(*caller;)195 1325 y({)243 1377 y(fprintf)f(\(stderr,)457
+1429 y("\045s:)h(Too)f(dangerous)g(for)g(me)h(to)g(distribute.)46
+b(Write)23 b(it)h(yourself.\\n",)p 1987 1439 V 457 1480
+a(caller\);)195 1532 y(})195 1636 y(/*)g(Return)f(non-zero)f(if)i(ARG)f
+(is)h(a)g(valid)f(argument)g(for)g(CALLER,)g(else)g(print)267
+1688 y(an)g(error)g(message)g(and)h(return)f(zero.)g(*/)195
+1740 y(int)195 1792 y(valid_argument)f(\(caller,)h(arg\))314
+1844 y(char)h(*caller,)e(*arg;)195 1896 y({)243 1947
+y(if)h(\(!arg)g(||)h(!*arg\))290 1999 y({)338 2051 y(fprintf)f
+(\(stderr,)g("\045s:)g(Argument)g(required.\\n",)f(caller\);)338
+2103 y(return)h(\(0\);)290 2155 y(})243 2259 y(return)g(\(1\);)195
+2311 y(})p eop
+%%Page: 44 46
+44 45 bop 75 -58 a Fu(44)1299 b(GNU)15 b(Readline)i(Library)p
+eop
+%%Page: 45 47
+45 46 bop 75 -58 a Fu(Concept)15 b(Index)1466 b(45)75
+183 y Fq(Concept)27 b(Index)75 359 y Fs(C)75 417 y Ff(command)14
+b(editing)9 b Fe(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(1)75 517 y Fs(E)75 575 y Ff(editing)15 b(command)f(lines)8
+b Fe(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(1)75 675
+y Fs(I)75 733 y Ff(initiali)q(zati)q(on)c(\014le,)e(readline)8
+b Fe(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(3)75 782 y(in)o(teraction,)15
+b(readline)e Fe(.)7 b(.)f(.)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(.)24
+b Ff(1)75 882 y Fs(K)75 940 y Ff(kill)15 b(ring)e Fe(.)6
+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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)24 b Ff(2)1012 359 y(killin)q(g)16 b(text)11
+b Fe(.)6 b(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)24 b Ff(2)1012 495 y Fs(N)1012 553 y Ff(notation,)15
+b(readline)5 b Fe(.)k(.)d(.)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(.)
+19 b Ff(1)1012 688 y Fs(R)1012 747 y Ff(readline,)c(function)6
+b Fe(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
+b Ff(19)1012 882 y Fs(Y)1012 940 y Ff(y)o(anking)c(text)6
+b Fe(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)19 b Ff(2)p eop
+%%Page: 46 48
+46 47 bop 75 -58 a Fu(46)1299 b(GNU)15 b(Readline)i(Library)p
eop
-51 52 bop 0 -58 a Fr(Concept)15 b(Index)1616 b(51)0 183
-y Fn(Concept)16 b(Index)0 430 y Fp(C)0 496 y Ff(command)e(editing)f
+%%Page: 47 49
+47 48 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
+b(47)75 183 y Fq(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
+b(Index)75 345 y Fs(\()75 403 y Fd(\(int)10 b Fe(.)c(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)24 b Ff(27)75 513 y Fs(A)75 571 y Fd(abort)11 b(\(C-g\))6
+b Fe(.)t(.)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(.)h(.)f(.)g(.)g
+(.)18 b Ff(15)75 621 y Fd(accept-lin)o(e)10 b(\(Newline)o(,)g(Return\))
+s Fe(.)s(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16
+b Ff(11)75 671 y Fd(alphabetic)r Fe(.)t(.)6 b(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(28)75
+781 y Fs(B)75 839 y Fd(backward-c)o(ha)o(r)10 b(\(C-b\))t
+Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(11)75 889
+y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))f
+Fe(.)s(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21
+b Ff(12)75 939 y Fd(backward-k)o(il)o(l-l)o(in)o(e)10
+b(\(C-x)h(Rubout\))e Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+22 b Ff(13)75 989 y Fd(backward-k)o(il)o(l-w)o(or)o(d)10
+b(\(M-DEL\))t Fe(.)s(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)16 b Ff(14)75 1038 y Fd(backward-w)o(or)o(d)10
+b(\(M-b\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(11)75
+1088 y Fd(beginning-)o(of)o(-hi)o(st)o(ory)9 b(\(M-<\))t
+Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)16 b Ff(11)75 1138 y Fd(beginning-)o(of)o(-li)o(ne)9
+b(\(C-a\))e Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(11)75 1188 y(b)q(ell-st)o(yle)13
+b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)23 b Ff(4)75 1298 y Fs(C)75 1356
+y Fd(call-last-)o(kb)o(d-m)o(ac)o(ro)9 b(\(C-x)j(e\))6
+b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+18 b Ff(15)75 1406 y Fd(capitalize)o(-w)o(ord)9 b(\(M-c\))f
+Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(13)75 1456 y Fd(character-)o(se)o(arc)o
+(h)10 b(\(C-]\))f Fe(.)s(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(16)75 1506
+y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9 b(\(M-C-]\))s
+Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(16)75
+1555 y Fd(clear-scre)o(en)9 b(\(C-l\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)18 b Ff(11)75 1605 y(commen)o(t-b)q(egin)9 b
+Fe(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21
+b Ff(4)75 1655 y Fd(complete)10 b(\(TAB\))e Fe(.)e(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(15)75 1705 y(completion-query-i)q
+(tems)9 b Fe(.)f(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(4)75
+1755 y Fd(completion)p 276 1755 12 2 v 10 w(matches)5
+b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(32)75
+1804 y(con)o(v)o(ert-meta)11 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)23 b Ff(4)75 1854 y Fd(copy-backw)o(ar)
+o(d-w)o(or)o(d)10 b(\(\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23
+b Ff(14)75 1904 y Fd(copy-forwa)o(rd)o(-wo)o(rd)9 b(\(\))i
Fe(.)6 b(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)23 b Ff(2)0 604 y Fp(E)0 670 y Ff(editing)15 b(command)f(lines)d
-Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(2)0 778 y Fp(I)0 845 y Ff(initiali)q(zati)q(on)16
-b(\014le,)e(readline)d Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(5)0 903 y(in)o(teraction,)15 b(readline)5 b Fe(.)j(.)e(.)g(.)g(.)g
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)75 1954 y Fd(copy-regio)o(n-)o
+(as-)o(ki)o(ll)9 b(\(\))g Fe(.)c(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(14)75
+2064 y Fs(D)75 2122 y Fd(delete-cha)o(r)10 b(\(C-d\))c
+Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(12)75
+2172 y Fd(delete-hor)o(iz)o(ont)o(al)o(-sp)o(ace)9 b(\(\))t
+Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)16 b Ff(14)75 2222 y Fd(digit-argu)o(me)o(nt)9 b(\(M-0,)i(M-1,)h
+(...)f(M--\))t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16
+b Ff(14)75 2271 y Fd(digit)p 177 2271 V 12 w(p)10 b Fe(.)c(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Ff(1)0 1011
-y Fp(K)0 1077 y Ff(kill)e(ring)5 b Fe(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)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(.)h(.)f(.)g(.)g
-(.)g(.)17 b Ff(3)1015 430 y(killin)q(g)f(text)t Fe(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(3)1015 579 y Fp(N)1015
-646 y Ff(notation,)e(readline)7 b Fe(.)h(.)f(.)f(.)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(.)h(.)f(.)g(.)20 b Ff(2)1015 795
-y Fp(R)1015 861 y Ff(readline,)15 b(function)8 b Fe(.)g(.)e(.)g(.)g(.)g
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23
+b Ff(28)75 2321 y Fd(digit)p 177 2321 V 12 w(value)5
+b Fe(.)t(.)h(.)g(.)g(.)h(.)f(.)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
+(.)18 b Ff(28)75 2371 y Fd(ding)10 b Fe(.)c(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(19)1015
-1011 y Fp(Y)1015 1077 y Ff(y)o(anking)15 b(text)7 b Fe(.)g(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f
-(.)20 b Ff(3)p eop
-52 53 bop 0 -58 a Fr(52)1449 b(GNU)15 b(Readline)i(Library)p
-eop
-53 54 bop 0 -58 a Fr(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1337
-b(53)0 183 y Fn(F)-7 b(unction)15 b(and)g(V)-7 b(ariable)14
-b(Index)0 424 y Fp(\()0 490 y Fd(\(int)t Fe(.)5 b(.)h(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)h
-(.)f(.)g(.)g(.)g(.)g(.)17 b Ff(31)0 608 y Fp(A)0 674
-y Fd(abort)11 b(\(C-g\))c Fe(.)t(.)f(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)20 b Ff(17)0
-732 y Fd(accept-lin)o(e)10 b(\(Newline)o(,)g(Return\))5
-b Fe(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)18 b Ff(12)0 790 y Fd(alphabetic)t Fe(.)s(.)7
-b(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)18 b Ff(31)0 908 y Fp(B)0 974 y Fd(backward-c)o(ha)o(r)10
-b(\(C-b\))c Fe(.)t(.)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(.)19
-b Ff(12)0 1032 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9
-b(\(Rubout\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)23 b Ff(14)0 1090 y Fd(backward-k)o(il)o(l-l)o(in)o
-(e)10 b(\(C-x)h(Rubout\))d Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(15)0 1148 y Fd(backward-k)o(il)o(l-w)o
-(or)o(d)10 b(\(M-DEL\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(15)0
-1207 y Fd(backward-w)o(or)o(d)10 b(\(M-b\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24
+b Ff(28)75 2421 y(disable-comple)q(tion)7 b Fe(.)i(.)d(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(5)75 2471 y Fd(do-upperca)o(se)o(-ve)o
+(rs)o(ion)9 b(\(M-a,)i(M-b,)g(M-)p Fe(x)p Fd(,)h Fc(:)6
+b(:)g(:)p Fd(\))j Fe(.)d(.)23 b Ff(16)75 2521 y Fd(downcase-w)o(or)o(d)
+10 b(\(M-l\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
+b Ff(13)75 2570 y Fd(dump-funct)o(io)o(ns)9 b(\(\))d
+Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(16)75
+2620 y Fd(dump-macro)o(s)10 b(\(\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)23 b Ff(16)75 2670 y Fd(dump-varia)o(bl)o(es)9
+b(\(\))d Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
+b Ff(16)1012 345 y Fs(E)1012 403 y Ff(editing-mo)q(de)13
+b Fe(.)6 b(.)h(.)f(.)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(.)h(.)
+f(.)23 b Ff(5)1012 453 y(enable-k)o(eypad)13 b Fe(.)6
+b(.)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(.)h(.)f(.)g(.)22
+b Ff(5)1012 503 y Fd(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))5
+b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(15)1012 553 y Fd(end-of-hist)o(or)o
+(y)10 b(\(M->\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)24 b Ff(12)1012
+603 y Fd(end-of-line)9 b(\(C-e\))d Fe(.)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(.)19 b Ff(12)0 1265 y Fd(beginning-)o(of)o(-hi)o
-(st)o(ory)9 b(\(M-<\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(13)0
-1323 y Fd(beginning-)o(of)o(-li)o(ne)9 b(\(C-a\))g Fe(.)c(.)h(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)22 b Ff(12)0 1381 y(b)q(ell-st)o(yle)s Fe(.)9
-b(.)d(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(5)0 1498 y Fp(C)0
-1565 y Fd(call-last-)o(kb)o(d-m)o(ac)o(ro)9 b(\(C-x)j(e\))7
-b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)20 b Ff(17)0 1623 y Fd(capitalize)o(-w)o(ord)9
-b(\(M-c\))s Fe(.)t(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16
-b Ff(14)0 1681 y Fd(character-)o(se)o(arc)o(h)10 b(\(C-]\))e
-Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(17)0 1739
-y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9 b(\(M-C-]\))c
-Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Ff(18)0 1797 y Fd(clear-scre)o(en)9 b(\(C-l\))e Fe(.)t(.)f(.)g(.)h(.)
-f(.)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(.)20 b Ff(12)0 1855
-y(commen)o(t-b)q(egin)13 b Fe(.)6 b(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(5)0 1913
-y Fd(complete)10 b(\(TAB\))t Fe(.)s(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)20 b Ff(11)1012 652 y Fd(exchange-po)o(in)o(t-a)o(nd)o(-ma)o
+(rk)9 b(\(C-x)j(C-x\))7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20
+b Ff(16)1012 702 y(expand-tilde)8 b Fe(.)h(.)d(.)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(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(5)1012
+811 y Fs(F)1012 869 y Fd(filename)p 1174 869 V 11 w(completion)p
+1385 869 V 11 w(function)s Fe(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(32)1012 919 y Fd(forward-cha)o(r)10
+b(\(C-f\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)18
+b Ff(11)1012 969 y Fd(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10
+b(\(C-s\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)23 b Ff(12)1012 1019 y Fd(forward-wor)o(d)10 b(\(M-f\))5
+b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(11)1012
+1069 y Fd(free)p 1094 1069 V 13 w(undo)p 1187 1069 V
+13 w(list)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)17 b Ff(26)1012 1178 y Fs(H)1012 1236 y Fd(history-sea)o(rc)o(h-b)o
+(ac)o(kwa)o(rd)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(12)1012 1286 y Fd(history-sea)o(rc)
+o(h-f)o(or)o(war)o(d)10 b(\(\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(12)1012
+1336 y(horizon)o(tal-scrol)q(l-mo)r(de)c Fe(.)6 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(.)h(.)f(.)g(.)16 b Ff(16)0 1972 y(completion-query-i)
-q(tems)d Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23
-b Ff(6)0 2030 y Fd(completion)p 201 2030 12 2 v 10 w(matches)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(36)0 2088 y(con)o(v)o(ert-meta)t Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g
+g(.)g(.)24 b Ff(5)1012 1445 y Fs(I)1012 1503 y Ff(input-meta)12
+b Fe(.)6 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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)16
-b Ff(6)0 2146 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10
-b(\(\))s Fe(.)5 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16
-b Ff(15)0 2204 y Fd(copy-forwa)o(rd)o(-wo)o(rd)9 b(\(\))t
-Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(15)0
-2262 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))h
-Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(15)0 2379
-y Fp(D)0 2446 y Fd(delete-cha)o(r)10 b(\(C-d\))e Fe(.)t(.)e(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(14)0 2504
-y Fd(delete-hor)o(iz)o(ont)o(al)o(-sp)o(ace)9 b(\(\))c
-Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)18 b Ff(15)0 2562 y Fd(digit-argu)o(me)o(nt)9
-b(\(M-0,)i(M-1,)h(...)f(M--\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)18 b Ff(16)0 2620 y Fd(digit)p 102
-2620 V 12 w(p)s Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16
-b Ff(32)0 2678 y Fd(digit)p 102 2678 V 12 w(value)7 b
-Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)20 b Ff(32)1015 424 y Fd(ding)t Fe(.)5
-b(.)h(.)h(.)f(.)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(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(31)1015
-482 y(disable-compl)q(eti)q(on)9 b Fe(.)g(.)d(.)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(.)h(.)f(.)g(.)21 b Ff(6)1015 540 y
-Fd(do-uppercas)o(e-)o(ver)o(sio)o(n)10 b(\(M-a,)g(M-b,)i(M-)p
-Fe(x)p Fd(,)g Fc(:)6 b(:)g(:)g Fd(\))j Fe(.)c(.)h(.)g(.)g(.)g(.)22
-b Ff(17)1015 598 y Fd(downcase-wo)o(rd)9 b(\(M-l\))d
-Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(14)1015 656 y Fd(dump-functi)o(on)o(s)10 b(\(\))e
-Fe(.)d(.)i(.)f(.)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(.)22
-b Ff(18)1015 715 y Fd(dump-macros)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b
-Ff(18)1015 773 y Fd(dump-variab)o(le)o(s)10 b(\(\))e
-Fe(.)d(.)i(.)f(.)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(.)22
-b Ff(18)1015 890 y Fp(E)1015 956 y Ff(editing-mo)q(de)t
-Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)23 b Ff(5)1012 1553 y Fd(insert-comm)o(en)o(t)10
+b(\(M-#\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)24 b Ff(16)1012
+1602 y Fd(insert-comp)o(le)o(tio)o(ns)9 b(\(M-*\))d Fe(.)t(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19
+b Ff(15)1012 1712 y Fs(K)1012 1770 y Ff(k)o(eymap)t Fe(.)7
+b(.)g(.)f(.)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(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)g(.)17 b Ff(5)1012 1820 y Fd(kill-line)10
+b(\(C-k\))f Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
+b Ff(13)1012 1869 y Fd(kill-region)9 b(\(\))g Fe(.)e(.)f(.)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(.)17 b Ff(6)1015 1014 y(enable-k)o(eypad)d
-Fe(.)7 b(.)f(.)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(.)h(.)f(.)g
-(.)g(.)g(.)g(.)24 b Ff(6)1015 1072 y Fd(end-kbd-mac)o(ro)9
-b(\(C-x)j(\)\))7 b Fe(.)t(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(16)1015 1131 y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))t
-Fe(.)t(.)d(.)f(.)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(.)18 b Ff(13)1015
-1189 y Fd(end-of-line)9 b(\(C-e\))f Fe(.)t(.)f(.)f(.)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(.)22 b Ff(12)1015 1247 y Fd(exchange-po)o(in)o
-(t-a)o(nd-)o(ma)o(rk)9 b(\(C-x)j(C-x\))c Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(17)1015 1305 y(expand-tilde)10
-b Fe(.)f(.)d(.)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(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(6)1015 1422 y Fp(F)1015
-1488 y Fd(filename)p 1177 1488 V 12 w(completi)o(on)p
-1388 1488 V 11 w(function)5 b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(36)1015
-1547 y Fd(forward-cha)o(r)10 b(\(C-f\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(12)1015 1605 y Fd(forward-sea)o(rc)o
-(h-h)o(ist)o(or)o(y)10 b(\(C-s\))f Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 b Ff(13)1015
-1663 y Fd(forward-wor)o(d)10 b(\(M-f\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(12)1015 1721 y Fd(free)p
-1097 1721 V 13 w(undo)p 1190 1721 V 13 w(list)6 b Fe(.)t(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(29)1015 1838 y Fp(H)1015 1904 y Fd(history-sea)o(rc)o(h-b)o(ack)o
-(wa)o(rd)9 b(\(\))c Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(13)1015
-1963 y Fd(history-sea)o(rc)o(h-f)o(orw)o(ar)o(d)10 b(\(\))d
-Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(13)1015 2021 y(horizon)o(tal-scrol)q(l)q
-(-mo)q(de)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)17
-b Ff(6)1015 2138 y Fp(I)1015 2204 y Ff(input-meta)s Fe(.)8
-b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)1012 1919 y
+Fd(kill-whole-)o(li)o(ne)9 b(\(\))c Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)16 b Ff(7)1015 2262 y Fd(insert-comm)o(en)o(t)
-10 b(\(M-#\))t Fe(.)t(.)d(.)f(.)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(.)18
-b Ff(18)1015 2320 y Fd(insert-comp)o(le)o(tio)o(ns)9
-b(\(M-*\))f Fe(.)t(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(16)1015
-2438 y Fp(K)1015 2504 y Ff(k)o(eymap)6 b Fe(.)h(.)f(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)19 b Ff(6)1015 2562 y Fd(kill-line)10 b(\(C-k\))f
-Fe(.)d(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24
-b Ff(14)1015 2620 y Fd(kill-region)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
-b Ff(15)1015 2678 y Fd(kill-whole-)o(li)o(ne)10 b(\(\))d
-Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20
-b Ff(15)p eop
-54 55 bop 0 -58 a Fr(54)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fd(kill-word)9 b(\(M-d\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)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(.)24 b Ff(15)0 298 y Fp(L)0
-364 y Fd(lowercase)p 182 364 12 2 v 11 w(p)7 b Fe(.)e(.)h(.)g(.)g(.)g
+h(.)18 b Ff(13)1012 1969 y Fd(kill-word)10 b(\(M-d\))f
+Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
+b Ff(14)1012 2078 y Fs(L)1012 2136 y Fd(lowercase)p 1194
+2136 V 11 w(p)5 b Fe(.)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(.)h
+(.)f(.)g(.)g(.)g(.)18 b Ff(28)1012 2245 y Fs(M)1012 2303
+y Ff(mark-mo)q(di\014ed-li)q(nes)6 b Fe(.)j(.)d(.)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(.)h(.)18 b Ff(5)1012 2353 y Fd(menu-comple)o(te)9
+b(\(\))f Fe(.)d(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)21
+b Ff(15)1012 2403 y(meta-\015ag)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)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(.)20
-b Ff(32)0 479 y Fp(M)0 545 y Ff(mark-mo)q(di\014ed-lin)q(es)7
-b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)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(.)20
-b Ff(7)0 603 y(meta-\015ag)10 b Fe(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21
+b Ff(5)1012 2512 y Fs(N)1012 2570 y Fd(next-histor)o(y)10
+b(\(C-n\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)18
+b Ff(11)1012 2620 y Fd(non-increme)o(nt)o(al-)o(fo)o(rwa)o(rd)o(-se)o
+(arc)o(h-)o(his)o(to)o(ry)10 b(\(M-n\))1093 2670 y Fe(.)c(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(7)0 718 y Fp(N)0 784 y Fd(next-histo)o(ry)9 b(\(C-n\))e
-Fe(.)t(.)f(.)g(.)h(.)f(.)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(.)20
-b Ff(13)0 842 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\))82 900 y Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)18 b Ff(13)0 958 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\))82
-1017 y Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Ff(13)0 1075 y Fd(numeric)9 b Fe(.)s(.)e(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(31)0 1189 y Fp(O)0 1256 y Ff(output-meta)8 b Fe(.)g(.)e(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-21 b Ff(7)0 1370 y Fp(P)0 1436 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9
-b(\(M-?\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(16)0 1495 y Fd(prefix-met)o(a)10
-b(\(ESC\))e Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)17 b Ff(12)p eop
+%%Page: 48 50
+48 49 bop 75 -58 a Fu(48)1299 b(GNU)15 b(Readline)i(Library)75
+183 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\))155 233 y Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-21 b Ff(17)0 1553 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))e
-Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(12)0 1667
-y Fp(Q)0 1734 y Fd(quoted-ins)o(er)o(t)10 b(\(C-q,)h(C-v\))e
-Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)0 1848 y Fp(R)0
-1914 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))c
-Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)20 b Ff(17)0 1973 y Fd(readline)8 b Fe(.)s(.)e(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)21 b Ff(19)0 2031 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9
-b(\(\))h Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(12)0
-2089 y Fd(reverse-se)o(ar)o(ch-)o(hi)o(sto)o(ry)9 b(\(C-r\))h
-Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)24 b Ff(13)0 2147 y Fd(revert-lin)o(e)10 b(\(M-r\))e
-Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21
-b Ff(17)0 2205 y Fd(rl)p 42 2205 V 13 w(add)p 115 2205
-V 13 w(defun)8 b Fe(.)d(.)h(.)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(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(25)0 2263 y Fd(rl)p
-42 2263 V 13 w(add)p 115 2263 V 13 w(undo)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)
-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(.)h(.)f(.)g(.)g(.)22
-b Ff(29)0 2321 y Fd(rl)p 42 2321 V 13 w(attempted)p 235
-2321 V 11 w(completion)p 445 2321 V 10 w(function)15
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17
-b Ff(37)0 2379 y Fd(rl)p 42 2379 V 13 w(basic)p 155 2379
-V 13 w(quote)p 268 2379 V 12 w(character)o(s)e Fe(.)6
-b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)18 b Ff(38)0 2438 y Fd(rl)p 42 2438
-V 13 w(basic)p 155 2438 V 13 w(word)p 248 2438 V 12 w(break)p
-360 2438 V 12 w(characters)h Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(38)0 2496 y Fd(rl)p
-42 2496 V 13 w(begin)p 155 2496 V 13 w(undo)p 248 2496
-V 12 w(group)9 b Fe(.)d(.)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(.)h(.)f(.)g(.)23
-b Ff(28)0 2554 y Fd(rl)p 42 2554 V 13 w(bind)p 135 2554
-V 13 w(key)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)22 b Ff(26)0 2612 y Fd(rl)p
-42 2612 V 13 w(bind)p 135 2612 V 13 w(key)p 208 2612
-V 13 w(in)p 261 2612 V 13 w(map)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(26)0 2670 y Fd(rl)p 42
-2670 V 13 w(binding)p 195 2670 V 12 w(keymap)14 b Fe(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)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(.)17
-b Ff(24)1015 183 y Fd(rl)p 1057 183 V 14 w(callback)p
-1231 183 V 11 w(handler)p 1382 183 V 11 w(install)9 b
-Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)22 b Ff(32)1015 241 y Fd(rl)p 1057 241
-V 14 w(callback)p 1231 241 V 11 w(handler)p 1382 241
-V 11 w(remove)8 b Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(33)1015 299
-y Fd(rl)p 1057 299 V 14 w(callback)p 1231 299 V 11 w(read)p
-1322 299 V 12 w(char)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21
-b Ff(32)1015 358 y Fd(rl)p 1057 358 V 14 w(char)p 1151
-358 V 12 w(is)p 1203 358 V 14 w(quoted)p 1337 358 V 12
-w(p)e Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(37)1015 416 y Fd(rl)p 1057 416 V 14 w(clear)p 1171
-416 V 12 w(message)s Fe(.)t(.)6 b(.)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(.)h(.)f(.)16 b Ff(30)1015 474 y Fd(rl)p 1057
-474 V 14 w(complete)7 b Fe(.)f(.)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(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(35,)13 b(36)1015 532
-y Fd(rl)p 1057 532 V 14 w(complete)p 1231 532 V 11 w(internal)6
-b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b
-Ff(35)1015 590 y Fd(rl)p 1057 590 V 14 w(completer)p
-1250 590 V 10 w(quote)p 1361 590 V 13 w(character)o(s)e
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)22 b Ff(38)1015 648 y Fd(rl)p 1057 648 V 14 w(completer)p
-1250 648 V 10 w(word)p 1341 648 V 13 w(break)p 1454 648
-V 12 w(characters)14 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)18 b Ff(38)1015 706 y Fd(rl)p 1057 706 V 14 w(completio)o(n)p
-1270 706 V 11 w(append)p 1401 706 V 12 w(character)e
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-20 b Ff(39)1015 764 y Fd(rl)p 1057 764 V 14 w(completio)o(n)p
-1270 764 V 11 w(entry)p 1381 764 V 12 w(function)14 b
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Ff(35,)13 b(37)1015 823 y Fd(rl)p 1057 823 V 14 w(completio)o(n)p
-1270 823 V 11 w(query)p 1381 823 V 12 w(items)j Fe(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)18 b Ff(38)1015 881 y Fd(rl)p 1057
-881 V 14 w(copy)p 1151 881 V 12 w(keymap)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16
+b Ff(12)75 283 y Fd(numeric)7 b Fe(.)t(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b
-Ff(25)1015 939 y Fd(rl)p 1057 939 V 14 w(copy)p 1151
-939 V 12 w(text)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)21 b Ff(30)1015 997 y
-Fd(rl)p 1057 997 V 14 w(delete)p 1191 997 V 12 w(text)6
-b Fe(.)t(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)19 b Ff(30)1015 1055 y Fd(rl)p 1057 1055 V 14
-w(directory)p 1250 1055 V 10 w(completion)p 1461 1055
-V 11 w(hook)i Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(40)1015 1113 y Fd(rl)p
-1057 1113 V 14 w(discard)p 1211 1113 V 11 w(keymap)8
-b Fe(.)e(.)g(.)h(.)f(.)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(.)24
-b Ff(25)1015 1171 y Fd(rl)p 1057 1171 V 14 w(do)p 1111
-1171 V 13 w(undo)9 b Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b
+Ff(28)75 386 y Fs(O)75 444 y Ff(output-meta)7 b Fe(.)g(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19
+b Ff(6)75 547 y Fs(P)75 605 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9
+b(\(M-?\))t Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)16 b Ff(15)75 655 y Fd(prefix-met)o(a)10
+b(\(ESC\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
+b Ff(16)75 704 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))f
+Fe(.)s(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)21 b Ff(11)75 807 y Fs(Q)75 865 y
+Fd(quoted-ins)o(er)o(t)10 b(\(C-q,)h(C-v\))d Fe(.)e(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
+b Ff(13)75 968 y Fs(R)75 1026 y Fd(re-read-in)o(it)o(-fi)o(le)9
+b(\(C-x)i(C-r\))6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)18 b Ff(15)75 1076 y Fd(readline)6
+b Fe(.)s(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)19 b Ff(19)75 1126 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)
+9 b(\(\))g Fe(.)c(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(11)75 1176 y Fd(reverse-se)o(ar)
+o(ch-)o(hi)o(sto)o(ry)9 b(\(C-r\))f Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Ff(12)75 1225 y Fd(revert-lin)o(e)10
+b(\(M-r\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
+b Ff(16)75 1275 y Fd(rl)p 117 1275 12 2 v 13 w(add)p
+190 1275 V 13 w(defun)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(23)75 1325 y Fd(rl)p 117
+1325 V 13 w(add)p 190 1325 V 13 w(undo)8 b Fe(.)d(.)h(.)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(.)h(.)f(.)g(.)20 b Ff(26)75
+1375 y Fd(rl)p 117 1375 V 13 w(attempted)p 310 1375 V
+11 w(completion)p 520 1375 V 10 w(function)h Fe(.)6 b(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)24 b Ff(32)75 1425 y Fd(rl)p 117 1425
+V 13 w(basic)p 230 1425 V 13 w(quote)p 343 1425 V 12
+w(character)o(s)13 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(33)75 1474 y Fd(rl)p
+117 1474 V 13 w(basic)p 230 1474 V 13 w(word)p 323 1474
+V 12 w(break)p 435 1474 V 12 w(characters)h Fe(.)6 b(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(33)75 1524 y Fd(rl)p
+117 1524 V 13 w(begin)p 230 1524 V 13 w(undo)p 323 1524
+V 12 w(group)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
+b Ff(26)75 1574 y Fd(rl)p 117 1574 V 13 w(bind)p 210
+1574 V 13 w(key)8 b Fe(.)d(.)h(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(29)1015
-1229 y Fd(rl)p 1057 1229 V 14 w(done)17 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)h(.)f(.)g(.)20 b Ff(24)75 1624 y Fd(rl)p 117
+1624 V 13 w(bind)p 210 1624 V 13 w(key)p 283 1624 V 13
+w(in)p 336 1624 V 13 w(map)t Fe(.)5 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)17 b Ff(24)75 1674 y Fd(rl)p 117 1674 V 13 w(binding)p
+270 1674 V 12 w(keymap)k Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23
+b Ff(22)75 1724 y Fd(rl)p 117 1724 V 13 w(callback)p
+290 1724 V 11 w(handler)p 441 1724 V 12 w(install)7 b
+Fe(.)s(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20
+b Ff(28)75 1773 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)9
+b Fe(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+21 b Ff(29)75 1823 y Fd(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)6
+b Fe(.)s(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(29)75 1873 y Fd(rl)p
+117 1873 V 13 w(char)p 210 1873 V 13 w(is)p 263 1873
+V 13 w(quoted)p 396 1873 V 12 w(p)f Fe(.)6 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(.)19 b Ff(23)1015 1287 y Fd(rl)p 1057 1287 V 14
-w(end)f Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(22)1015
-1346 y Fd(rl)p 1057 1346 V 14 w(end)p 1131 1346 V 13
-w(undo)p 1224 1346 V 12 w(group)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(29)1015 1404 y Fd(rl)p
-1057 1404 V 14 w(event)p 1171 1404 V 12 w(hook)i Fe(.)6
-b(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)
-22 b Ff(24)1015 1462 y Fd(rl)p 1057 1462 V 14 w(executing)p
-1250 1462 V 10 w(keymap)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)23 b Ff(24)1015 1520 y Fd(rl)p 1057 1520 V 14 w(filename)p
-1231 1520 V 11 w(completio)o(n)p 1441 1520 V 11 w(desired)17
-b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)20 b Ff(39)1015 1578 y Fd(rl)p 1057 1578 V 14 w(filename)p
-1231 1578 V 11 w(dequoting)p 1421 1578 V 11 w(function)c
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-20 b Ff(37)1015 1636 y Fd(rl)p 1057 1636 V 14 w(filename)p
-1231 1636 V 11 w(quote)p 1342 1636 V 12 w(characters)f
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)23 b Ff(38)1015 1694 y Fd(rl)p 1057 1694 V 14
-w(filename)p 1231 1694 V 11 w(quoting)p 1382 1694 V 11
-w(desired)e Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)24 b Ff(39)1015 1752 y Fd(rl)p
-1057 1752 V 14 w(filename)p 1231 1752 V 11 w(quoting)p
-1382 1752 V 11 w(function)c Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(37)1015 1810
-y Fd(rl)p 1057 1810 V 14 w(forced)p 1191 1810 V 12 w(update)p
-1323 1810 V 11 w(display)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17
-b Ff(30)1015 1869 y Fd(rl)p 1057 1869 V 14 w(function)p
-1231 1869 V 11 w(dumper)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)18 b Ff(33)75 1923 y Fd(rl)p 117 1923 V 13 w(clear)p
+230 1923 V 13 w(message)7 b Fe(.)f(.)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(.)
-h(.)f(.)g(.)22 b Ff(28)1015 1927 y Fd(rl)p 1057 1927
-V 14 w(function)p 1231 1927 V 11 w(of)p 1282 1927 V 13
-w(keyseq)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21
-b Ff(27)1015 1985 y Fd(rl)p 1057 1985 V 14 w(generic)p
-1211 1985 V 11 w(bind)t Fe(.)5 b(.)h(.)g(.)g(.)g(.)h(.)f(.)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(.)18 b Ff(26)1015 2043 y Fd(rl)p
-1057 2043 V 14 w(get)p 1131 2043 V 13 w(keymap)7 b Fe(.)t(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(25)1015 2101 y Fd(rl)p 1057 2101 V 14 w(get)p 1131
-2101 V 13 w(keymap)p 1264 2101 V 12 w(by)p 1316 2101
-V 13 w(name)9 b Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24
-b Ff(26)1015 2159 y Fd(rl)p 1057 2159 V 14 w(get)p 1131
-2159 V 13 w(keymap)p 1264 2159 V 12 w(name)s Fe(.)t(.)7
-b(.)f(.)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(.)17
-b Ff(26)1015 2217 y Fd(rl)p 1057 2217 V 14 w(getc)s Fe(.)5
-b(.)h(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(31)1015 2275
-y Fd(rl)p 1057 2275 V 14 w(getc)p 1151 2275 V 12 w(function)e
-Fe(.)6 b(.)h(.)f(.)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(.)19
-b Ff(24)1015 2334 y Fd(rl)p 1057 2334 V 14 w(ignore)p
-1191 2334 V 12 w(completio)o(n)p 1402 2334 V 11 w(duplicate)o(s)d
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19
-b Ff(39)1015 2392 y Fd(rl)p 1057 2392 V 14 w(ignore)p
-1191 2392 V 12 w(some)p 1283 2392 V 12 w(completion)o(s)p
-1514 2392 V 11 w(function)13 b Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)17 b Ff(39)1015 2450 y Fd(rl)p 1057 2450 V
-14 w(inhibit)p 1211 2450 V 11 w(completion)g Fe(.)6 b(.)g(.)g(.)g(.)g
+h(.)22 b Ff(27)75 1973 y Fd(rl)p 117 1973 V 13 w(complete)5
+b Fe(.)s(.)h(.)g(.)g(.)h(.)f(.)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
+(.)18 b Ff(31)75 2022 y Fd(rl)p 117 2022 V 13 w(complete)p
+290 2022 V 11 w(internal)5 b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17
+b Ff(31)75 2072 y Fd(rl)p 117 2072 V 13 w(completer)p
+310 2072 V 11 w(quote)p 421 2072 V 12 w(characters)f
+Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19
+b Ff(33)75 2122 y Fd(rl)p 117 2122 V 13 w(completer)p
+310 2122 V 11 w(word)p 401 2122 V 13 w(break)p 514 2122
+V 12 w(character)o(s)13 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16
+b Ff(33)75 2172 y Fd(rl)p 117 2172 V 13 w(completion)p
+329 2172 V 11 w(append)p 461 2172 V 11 w(character)f
+Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18
+b Ff(34)75 2222 y Fd(rl)p 117 2222 V 13 w(completion)p
+329 2222 V 11 w(entry)p 441 2222 V 12 w(function)j Fe(.)6
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(31,)13
+b(32)75 2271 y Fd(rl)p 117 2271 V 13 w(completion)p 329
+2271 V 11 w(query)p 441 2271 V 12 w(items)h Fe(.)6 b(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16
+b Ff(33)75 2321 y Fd(rl)p 117 2321 V 13 w(copy)p 210
+2321 V 13 w(keymap)t Fe(.)t(.)6 b(.)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(.)17 b Ff(23)75 2371 y Fd(rl)p 117 2371 V 13
+w(copy)p 210 2371 V 13 w(text)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(27)75 2421 y Fd(rl)p
+117 2421 V 13 w(delete)p 250 2421 V 12 w(text)t Fe(.)5
+b(.)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(.)17
+b Ff(27)75 2471 y Fd(rl)p 117 2471 V 13 w(directory)p
+310 2471 V 11 w(completion)p 520 2471 V 10 w(hook)i Fe(.)7
+b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21
+b Ff(34)75 2521 y Fd(rl)p 117 2521 V 13 w(discard)p 270
+2521 V 12 w(keymap)9 b Fe(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(23)75 2570 y Fd(rl)p 117 2570 V 13 w(do)p 170 2570
+V 14 w(undo)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)h(.)f(.)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(.)21 b Ff(39)1015 2508 y Fd(rl)p 1057 2508
-V 14 w(initializ)o(e)t Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)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(.)h(.)17 b Ff(31)1015 2566
-y Fd(rl)p 1057 2566 V 14 w(insert)p 1191 2566 V 12 w(completio)o(ns)t
-Fe(.)t(.)6 b(.)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(.)19 b Ff(36)1015
-2624 y Fd(rl)p 1057 2624 V 14 w(insert)p 1191 2624 V
-12 w(text)6 b Fe(.)t(.)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(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)19 b Ff(30)p eop
-55 56 bop 0 -58 a Fr(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1337
-b(55)0 183 y Fd(rl)p 42 183 12 2 v 13 w(instream)19 b
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)22 b Ff(23)0 241 y Fd(rl)p 42 241 V 13
-w(invoking)p 215 241 V 11 w(keyseqs)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)g(.)g(.)g(.)22 b Ff(26)75 2620 y Fd(rl)p 117
+2620 V 13 w(done)15 b Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)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(.)21 b Ff(27)0 299 y Fd(rl)p 42 299
-V 13 w(invoking)p 215 299 V 11 w(keyseqs)p 366 299 V
-12 w(in)p 418 299 V 13 w(map)t Fe(.)5 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17
-b Ff(27)0 358 y Fd(rl)p 42 358 V 13 w(kill)p 135 358
-V 13 w(text)8 b Fe(.)d(.)h(.)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(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(30)0 416 y Fd(rl)p
-42 416 V 13 w(library)p 195 416 V 12 w(version)g Fe(.)6
-b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(23)0
-474 y Fd(rl)p 42 474 V 13 w(line)p 135 474 V 13 w(buffer)18
-b Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)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(.)21 b Ff(22)0 532 y Fd(rl)p 42 532 V 13 w(list)p 135
-532 V 13 w(funmap)p 268 532 V 12 w(names)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)22 b Ff(28)0 590 y Fd(rl)p 42 590
-V 13 w(make)p 135 590 V 13 w(bare)p 228 590 V 13 w(keymap)8
-b Fe(.)e(.)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(.)h(.)f(.)g(.)23
-b Ff(25)0 648 y Fd(rl)p 42 648 V 13 w(make)p 135 648
-V 13 w(keymap)6 b Fe(.)s(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)18 b Ff(25)0 706 y Fd(rl)p 42
-706 V 13 w(mark)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)16 b Ff(21)75
+2670 y Fd(rl)p 117 2670 V 13 w(end)h Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)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(.)18
+b Ff(21)1012 183 y Fd(rl)p 1054 183 V 14 w(end)p 1128
+183 V 13 w(undo)p 1221 183 V 12 w(group)10 b Fe(.)c(.)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(.)25 b Ff(26)1012 233 y Fd(rl)p 1054 233
+V 14 w(event)p 1168 233 V 12 w(hook)18 b Fe(.)7 b(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)18
-b Ff(22)0 764 y Fd(rl)p 42 764 V 13 w(message)8 b Fe(.)t(.)e(.)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(.)21 b Ff(22)1012 283 y
+Fd(rl)p 1054 283 V 14 w(executing)p 1247 283 V 10 w(keymap)e
+Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(22)1012 333 y
+Fd(rl)p 1054 333 V 14 w(filename)p 1228 333 V 11 w(completio)o(n)p
+1438 333 V 11 w(desired)16 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)19 b Ff(34)1012 382 y Fd(rl)p 1054 382
+V 14 w(filename)p 1228 382 V 11 w(dequoting)p 1418 382
+V 10 w(function)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)19 b Ff(33)1012 432 y Fd(rl)p 1054 432 V 14 w(filename)p
+1228 432 V 11 w(quote)p 1339 432 V 12 w(character)o(s)f
+Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(33)1012 482 y Fd(rl)p 1054 482 V 14 w(filename)p
+1228 482 V 11 w(quoting)p 1379 482 V 11 w(desired)f Fe(.)6
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23
+b Ff(34)1012 532 y Fd(rl)p 1054 532 V 14 w(filename)p
+1228 532 V 11 w(quoting)p 1379 532 V 11 w(function)18
+b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(32)1012 582 y Fd(rl)p 1054 582 V 14 w(forced)p 1188
+582 V 12 w(update)p 1320 582 V 11 w(display)9 b Fe(.)d(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
+b Ff(26)1012 632 y Fd(rl)p 1054 632 V 14 w(function)p
+1228 632 V 11 w(dumper)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21
+b Ff(25)1012 681 y Fd(rl)p 1054 681 V 14 w(function)p
+1228 681 V 11 w(of)p 1279 681 V 13 w(keyseq)6 b Fe(.)t(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)19 b Ff(25)1012 731 y Fd(rl)p 1054 731 V 14 w(generic)p
+1208 731 V 11 w(bind)10 b Fe(.)c(.)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(.)h
+(.)f(.)24 b Ff(24)1012 781 y Fd(rl)p 1054 781 V 14 w(get)p
+1128 781 V 13 w(keymap)5 b Fe(.)t(.)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(.)
-21 b Ff(30)0 823 y Fd(rl)p 42 823 V 13 w(modifying)5
-b Fe(.)s(.)h(.)h(.)f(.)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(.)h(.)f
-(.)g(.)g(.)g(.)18 b Ff(29)0 881 y Fd(rl)p 42 881 V 13
-w(named)p 155 881 V 13 w(function)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(27)0 939 y Fd(rl)p
-42 939 V 13 w(on)p 95 939 V 14 w(new)p 169 939 V 13 w(line)8
-b Fe(.)d(.)h(.)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(.)h(.)f(.)g(.)g
-(.)g(.)21 b Ff(30)0 997 y Fd(rl)p 42 997 V 13 w(outstream)c
-Fe(.)6 b(.)g(.)g(.)h(.)f(.)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(.)h
-(.)f(.)g(.)20 b Ff(23)0 1055 y Fd(rl)p 42 1055 V 13 w(parse)p
-155 1055 V 13 w(and)p 228 1055 V 13 w(bind)5 b Fe(.)t(.)h(.)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(.)h(.)f(.)g(.)17 b Ff(27)0
-1113 y Fd(rl)p 42 1113 V 13 w(pending)p 195 1113 V 12
-w(input)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)18 b Ff(23)0 1171 y Fd(rl)p 42 1171 V 13 w(point)d
-Fe(.)6 b(.)h(.)f(.)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(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(22)0 1229 y Fd(rl)p
-42 1229 V 13 w(possible)p 215 1229 V 11 w(completions)7
-b Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(36)0 1287 y Fd(rl)p
-42 1287 V 13 w(prompt)e Fe(.)6 b(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(23)0
-1346 y Fd(rl)p 42 1346 V 13 w(read)p 135 1346 V 13 w(init)p
-228 1346 V 13 w(file)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)g(.)h(.)f(.)18 b Ff(23)1012 831 y Fd(rl)p 1054
+831 V 14 w(get)p 1128 831 V 13 w(keymap)p 1261 831 V
+11 w(by)p 1312 831 V 14 w(name)9 b Fe(.)t(.)d(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
+b Ff(24)1012 881 y Fd(rl)p 1054 881 V 14 w(get)p 1128
+881 V 13 w(keymap)p 1261 881 V 11 w(name)9 b Fe(.)d(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)23 b Ff(24)1012 930 y Fd(rl)p 1054 930 V
+14 w(getc)8 b Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)23 b Ff(27)1012 980 y
+Fd(rl)p 1054 980 V 14 w(getc)p 1148 980 V 12 w(function)13
+b Fe(.)7 b(.)f(.)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(.)17
+b Ff(22)1012 1030 y Fd(rl)p 1054 1030 V 14 w(ignore)p
+1188 1030 V 12 w(completi)o(on)p 1399 1030 V 11 w(duplicate)o(s)d
+Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17
+b Ff(34)1012 1080 y Fd(rl)p 1054 1080 V 14 w(ignore)p
+1188 1080 V 12 w(some)p 1280 1080 V 12 w(completion)o(s)p
+1511 1080 V 11 w(function)j Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)24
+b Ff(34)1012 1130 y Fd(rl)p 1054 1130 V 14 w(inhibit)p
+1208 1130 V 11 w(completion)15 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
+b Ff(34)1012 1180 y Fd(rl)p 1054 1180 V 14 w(initializ)o(e)8
+b Fe(.)e(.)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(.)h(.)f(.)g(.)g(.)g(.)24
+b Ff(28)1012 1229 y Fd(rl)p 1054 1229 V 14 w(insert)p
+1188 1229 V 12 w(completi)o(ons)r Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
+b Ff(31)1012 1279 y Fd(rl)p 1054 1279 V 14 w(insert)p
+1188 1279 V 12 w(text)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)17 b Ff(27)1012 1329 y Fd(rl)p 1054 1329
+V 14 w(instream)g Fe(.)6 b(.)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(.)h(.)f(.)g(.)17 b Ff(27)0 1404 y Fd(rl)p 42 1404 V
-13 w(read)p 135 1404 V 13 w(key)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)g(.)g(.)22
-b Ff(31)0 1462 y Fd(rl)p 42 1462 V 13 w(readline)p 215
-1462 V 11 w(name)17 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)18 b Ff(23)0 1520 y Fd(rl)p 42 1520 V
-13 w(redisplay)5 b Fe(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+g(.)h(.)f(.)g(.)20 b Ff(22)1012 1379 y Fd(rl)p 1054 1379
+V 14 w(invoking)p 1228 1379 V 11 w(keyseqs)6 b Fe(.)s(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)19 b Ff(25)1012 1429 y Fd(rl)p 1054 1429
+V 14 w(invoking)p 1228 1429 V 11 w(keyseqs)p 1379 1429
+V 11 w(in)p 1430 1429 V 14 w(map)9 b Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Ff(25)1012
+1478 y Fd(rl)p 1054 1478 V 14 w(kill)p 1148 1478 V 12
+w(text)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)h(.)f(.)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(.)20 b Ff(27)1012 1528 y Fd(rl)p 1054 1528 V 14
+w(library)p 1208 1528 V 11 w(version)g Fe(.)6 b(.)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(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(29)0 1578 y Fd(rl)p
-42 1578 V 13 w(redisplay)p 235 1578 V 11 w(function)f
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(24)0
-1636 y Fd(rl)p 42 1636 V 13 w(reset)p 155 1636 V 13 w(line)p
-248 1636 V 12 w(state)9 b Fe(.)d(.)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(.)h(.)f
-(.)g(.)23 b Ff(30)0 1694 y Fd(rl)p 42 1694 V 13 w(reset)p
-155 1694 V 13 w(terminal)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+g(.)23 b Ff(22)1012 1578 y Fd(rl)p 1054 1578 V 14 w(line)p
+1148 1578 V 12 w(buffer)17 b Fe(.)6 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(.)
+h(.)f(.)g(.)g(.)19 b Ff(21)1012 1628 y Fd(rl)p 1054 1628
+V 14 w(list)p 1148 1628 V 12 w(funmap)p 1280 1628 V 12
+w(names)7 b Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(25)1012
+1678 y Fd(rl)p 1054 1678 V 14 w(make)p 1148 1678 V 12
+w(bare)p 1240 1678 V 13 w(keymap)9 b Fe(.)s(.)d(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+22 b Ff(23)1012 1727 y Fd(rl)p 1054 1727 V 14 w(make)p
+1148 1727 V 12 w(keymap)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)17 b Ff(23)1012 1777 y Fd(rl)p 1054 1777
+V 14 w(mark)e Fe(.)6 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(.)h(.)f(.)
-g(.)g(.)g(.)g(.)23 b Ff(31)0 1752 y Fd(rl)p 42 1752 V
-13 w(set)p 115 1752 V 13 w(keymap)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)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(.)20 b Ff(26)0
-1810 y Fd(rl)p 42 1810 V 13 w(special)p 195 1810 V 12
-w(prefixes)f Fe(.)7 b(.)f(.)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(.)23
-b Ff(38)0 1869 y Fd(rl)p 42 1869 V 13 w(startup)p 195
-1869 V 12 w(hook)18 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(21)1012 1827
+y Fd(rl)p 1054 1827 V 14 w(message)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)19 b Ff(27)1012
+1877 y Fd(rl)p 1054 1877 V 14 w(modifying)s Fe(.)s(.)6
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
+b Ff(26)1012 1927 y Fd(rl)p 1054 1927 V 14 w(named)p
+1168 1927 V 12 w(function)8 b Fe(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)22 b Ff(25)1012 1977 y Fd(rl)p 1054 1977 V 14 w(on)p
+1108 1977 V 13 w(new)p 1181 1977 V 13 w(line)7 b Fe(.)t(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(27)1012 2026
+y Fd(rl)p 1054 2026 V 14 w(outstream)15 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)19 b Ff(23)0 1927 y Fd(rl)p 42 1927
-V 13 w(stuff)p 155 1927 V 13 w(char)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(22)1012 2076
+y Fd(rl)p 1054 2076 V 14 w(parse)p 1168 2076 V 12 w(and)p
+1240 2076 V 13 w(bind)10 b Fe(.)c(.)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(.)
+25 b Ff(25)1012 2126 y Fd(rl)p 1054 2126 V 14 w(pending)p
+1208 2126 V 11 w(input)14 b Fe(.)7 b(.)f(.)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(.)17 b Ff(21)1012 2176 y Fd(rl)p 1054 2176 V 14
+w(point)k Fe(.)7 b(.)f(.)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(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b
-Ff(31)0 1985 y Fd(rl)p 42 1985 V 13 w(terminal)p 215
-1985 V 11 w(name)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)18 b Ff(23)0 2043 y Fd(rl)p 42 2043 V 13
-w(unbind)p 175 2043 V 12 w(key)7 b Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g
+f(.)g(.)g(.)g(.)g(.)24 b Ff(21)1012 2226 y Fd(rl)p 1054
+2226 V 14 w(possible)p 1228 2226 V 11 w(completio)o(ns)6
+b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)23 b Ff(31)1012 2275 y Fd(rl)p 1054 2275
+V 14 w(prompt)d Fe(.)6 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(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(22)1012 2325 y Fd(rl)p
+1054 2325 V 14 w(read)p 1148 2325 V 12 w(init)p 1240
+2325 V 13 w(file)10 b Fe(.)c(.)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(.)25
+b Ff(25)1012 2375 y Fd(rl)p 1054 2375 V 14 w(read)p 1148
+2375 V 12 w(key)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)21 b Ff(27)1012 2425 y Fd(rl)p 1054
+2425 V 14 w(readline)p 1228 2425 V 11 w(name)14 b Fe(.)7
+b(.)f(.)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(.)17 b Ff(22)1012
+2475 y Fd(rl)p 1054 2475 V 14 w(redisplay)s Fe(.)s(.)6
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
+b Ff(26)1012 2524 y Fd(rl)p 1054 2524 V 14 w(redisplay)p
+1247 2524 V 10 w(function)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
+b Ff(22)1012 2574 y Fd(rl)p 1054 2574 V 14 w(reset)p
+1168 2574 V 12 w(line)p 1260 2574 V 12 w(state)9 b Fe(.)t(.)d(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)22 b Ff(27)1012 2624 y Fd(rl)p 1054 2624
+V 14 w(reset)p 1168 2624 V 12 w(terminal)8 b Fe(.)s(.)f(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)22 b Ff(28)p eop
+%%Page: 49 51
+49 50 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
+b(49)75 183 y Fd(rl)p 117 183 12 2 v 13 w(set)p 190 183
+V 13 w(keymap)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)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(.)18 b Ff(24)75 233 y Fd(rl)p 117 233 V 13 w(special)p
+270 233 V 12 w(prefixes)g Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21
+b Ff(33)75 283 y Fd(rl)p 117 283 V 13 w(startup)p 270
+283 V 12 w(hook)16 b Fe(.)6 b(.)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(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(26)1015
-183 y Fd(rl)p 1057 183 V 14 w(unbind)p 1191 183 V 12
-w(key)p 1263 183 V 13 w(in)p 1316 183 V 13 w(map)t Fe(.)t(.)6
-b(.)h(.)f(.)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(.)17 b Ff(26)1015
-291 y Fp(S)1015 358 y Fd(self-insert)9 b(\(a,)j(b,)g(A,)g(1,)g(!,)g
-(...\))6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)19 b Ff(14)1015 416 y Fd(set-mark)10 b(\(C-@\))t
-Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+g(.)17 b Ff(22)75 333 y Fd(rl)p 117 333 V 13 w(stuff)p
+230 333 V 13 w(char)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)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(.)18 b Ff(27)75 382 y Fd(rl)p 117 382 V
+13 w(terminal)p 290 382 V 11 w(name)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)16 b Ff(22)75 432 y Fd(rl)p 117 432 V
+13 w(unbind)p 250 432 V 12 w(command)p 402 432 V 12 w(in)p
+454 432 V 13 w(map)5 b Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(24)75
+482 y Fd(rl)p 117 482 V 13 w(unbind)p 250 482 V 12 w(function)p
+422 482 V 11 w(in)p 473 482 V 14 w(map)t Fe(.)t(.)6 b(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
+b Ff(24)75 532 y Fd(rl)p 117 532 V 13 w(unbind)p 250
+532 V 12 w(key)5 b Fe(.)g(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)17 b Ff(17)1015 474 y(sho)o(w-all-if-am)o(bigu)q(ous)9
-b Fe(.)g(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(7)1015 532 y Fd(start-kbd-m)o(ac)o(ro)10 b(\(C-x)h(\(\))t
-Fe(.)5 b(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(16)1015 640
-y Fp(T)1015 706 y Fd(tab-insert)9 b(\(M-TAB\))e Fe(.)t(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(14)1015 764 y
-Fd(tilde-expan)o(d)10 b(\(M-~\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)20 b Ff(17)1015 823 y Fd(to)p 1057
-823 V 14 w(lower)8 b Fe(.)f(.)f(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b
-Ff(32)1015 881 y Fd(to)p 1057 881 V 14 w(upper)8 b Fe(.)f(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)18 b Ff(24)75 582 y Fd(rl)p 117 582 V 13
+w(unbind)p 250 582 V 12 w(key)p 322 582 V 13 w(in)p 375
+582 V 13 w(map)10 b Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23
+b Ff(24)75 681 y Fs(S)75 739 y Fd(self-inser)o(t)10 b(\(a,)h(b,)h(A,)g
+(1,)g(!,)g(...\))t Fe(.)5 b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)17 b Ff(13)75 789 y Fd(set-mark)10 b(\(C-@\))e Fe(.)e(.)g(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(16)75 839
+y(sho)o(w-all-if-am)o(biguo)q(us)7 b Fe(.)i(.)d(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)19 b Ff(6)75 889 y Fd(start-kbd-)o(ma)o(cro)9 b(\(C-x)i(\(\))f
+Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)23 b Ff(15)75 989 y Fs(T)75 1047 y Fd(tab-insert)9
+b(\(M-TAB\))c Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
+b Ff(13)75 1096 y Fd(tilde-expa)o(nd)9 b(\(M-~\))c Fe(.)g(.)h(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)18 b Ff(16)75 1146 y Fd(to)p 117
+1146 V 13 w(lower)9 b Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)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(.)24 b Ff(32)1015 939 y Fd(transpose-c)o(ha)o(rs)10
-b(\(C-t\))s Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16
-b Ff(14)1015 997 y Fd(transpose-w)o(or)o(ds)10 b(\(M-t\))s
-Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(14)1015
-1105 y Fp(U)1015 1171 y Fd(undo)c(\(C-)p 1169 1171 V
-13 w(,)g(C-x)g(C-u\))7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)20 b Ff(17)1015 1229 y Fd(universal-a)o(rg)o(ume)o(nt)9
-b(\(\))s Fe(.)d(.)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(.)h(.)16
-b Ff(16)1015 1287 y Fd(unix-line-d)o(is)o(car)o(d)10
-b(\(C-u\))f Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)22 b Ff(15)1015
-1346 y Fd(unix-word-r)o(ub)o(out)9 b(\(C-w\))g Fe(.)d(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)24 b Ff(15)1015 1404 y Fd(upcase-word)9 b(\(M-u\))f
-Fe(.)t(.)f(.)f(.)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(.)22
-b Ff(14)1015 1462 y Fd(uppercase)p 1197 1462 V 11 w(p)7
-b Fe(.)f(.)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(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)20 b Ff(32)1015 1520 y Fd(username)p
-1177 1520 V 12 w(completi)o(on)p 1388 1520 V 11 w(function)5
-b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)18 b Ff(36)1015 1628 y Fp(V)1015 1694 y Ff(visible-stats)6
-b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)h(.)18 b Ff(7)1015 1802 y Fp(Y)1015
-1869 y Fd(yank)12 b(\(C-y\))d Fe(.)t(.)d(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(15)1015 1927 y Fd(yank-last-a)o(rg)9 b(\(M-.,)i(M-)p
-1436 1927 V 13 w(\))6 b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(13)1015 1985 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))t
-Fe(.)s(.)d(.)f(.)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(.)18 b Ff(13)1015
-2043 y Fd(yank-pop)10 b(\(M-y\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(15)p eop
-56 57 bop 0 -58 a Fr(56)1449 b(GNU)15 b(Readline)i(Library)p
+(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(28)75 1196
+y Fd(to)p 117 1196 V 13 w(upper)9 b Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)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(.)h(.)f(.)21 b
+Ff(28)1012 183 y Fd(transpose-c)o(ha)o(rs)9 b(\(C-t\))f
+Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(13)1012 233 y Fd(transpose-w)o(or)o(ds)9
+b(\(M-t\))f Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(13)1012 347
+y Fs(U)1012 405 y Fd(undo)12 b(\(C-)p 1166 405 V 13 w(,)g(C-x)g(C-u\))5
+b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(16)1012
+454 y Fd(universal-a)o(rg)o(ume)o(nt)9 b(\(\))g Fe(.)d(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+23 b Ff(14)1012 504 y Fd(unix-line-d)o(is)o(car)o(d)10
+b(\(C-u\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(13)1012 554 y Fd(unix-word-r)o(ub)o
+(out)9 b(\(C-w\))g Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(14)1012
+604 y Fd(upcase-word)9 b(\(M-u\))d Fe(.)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(.)20 b Ff(13)1012 654 y Fd(uppercase)p 1194 654
+V 11 w(p)5 b Fe(.)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(.)h(.)f(.)
+g(.)g(.)g(.)18 b Ff(28)1012 704 y Fd(username)p 1174
+704 V 11 w(completion)p 1385 704 V 11 w(function)s Fe(.)s(.)6
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16
+b Ff(32)1012 817 y Fs(V)1012 875 y Ff(visible-stats)t
+Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)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(.)17 b Ff(6)1012 989 y Fs(Y)1012 1047 y Fd(yank)12
+b(\(C-y\))7 b Fe(.)t(.)f(.)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(.)h(.)f
+(.)g(.)g(.)g(.)g(.)20 b Ff(14)1012 1096 y Fd(yank-last-a)o(rg)9
+b(\(M-.,)i(M-)p 1433 1096 V 13 w(\))t Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)17
+b Ff(12)1012 1146 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))e
+Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)24 b Ff(12)1012 1196 y Fd(yank-pop)10
+b(\(M-y\))e Fe(.)f(.)f(.)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(.)24
+b Ff(14)p eop
+%%Page: 50 52
+50 51 bop 75 -58 a Fu(50)1299 b(GNU)15 b(Readline)i(Library)p
eop
--1 58 bop 1937 -58 a Fr(i)0 183 y Fn(T)-7 b(able)15 b(of)g(Con)n(ten)n
-(ts)0 358 y Fp(1)67 b(Command)22 b(Line)i(Editing)18
-b Fb(.)10 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)38 b Fp(1)149
-435 y Fr(1.1)45 b(In)o(tro)q(duction)16 b(to)f(Line)h(Editing)d
-Fa(.)8 b(.)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(.)27 b Fr(1)149 498 y(1.2)45 b(Readline)17 b(In)o(teraction)8
-b Fa(.)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(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fr(1)299
-560 y(1.2.1)44 b(Readline)17 b(Bare)e(Essen)o(tials)f
-Fa(.)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(.)f(.)h(.)27
-b Fr(2)299 622 y(1.2.2)44 b(Readline)17 b(Mo)o(v)o(emen)o(t)d(Commands)
-7 b Fa(.)g(.)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 Fr(2)299 684
-y(1.2.3)44 b(Readline)17 b(Killing)h(Commands)10 b Fa(.)e(.)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(.)25 b Fr(3)299 747 y(1.2.4)44
-b(Readline)17 b(Argumen)o(ts)12 b Fa(.)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(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fr(4)299 809
-y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h(the)f(History)e
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-27 b Fr(4)149 871 y(1.3)45 b(Readline)17 b(Init)g(File)e
+%%Page: -1 53
+-1 52 bop 1862 -58 a Fu(i)75 183 y Fq(T)-7 b(able)27
+b(of)f(Con)n(ten)n(ts)75 354 y Fs(1)67 b(Command)22 b(Line)i(Editing)d
+Fb(.)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 423 y Fu(1.1)j(In)o(tro)q(duction)16
+b(to)f(Line)h(Editing)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
+(.)27 b Fu(1)224 478 y(1.2)45 b(Readline)17 b(In)o(teraction)8
+b Fa(.)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 532 y(1.2.1)44 b(Readline)17
+b(Bare)e(Essen)o(tials)f Fa(.)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 587 y(1.2.2)44 b(Readline)17 b(Mo)o(v)o(emen)o(t)d(Commands)
+7 b Fa(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)21 b Fu(2)374 642 y(1.2.3)44 b(Readline)17 b(Killing)h(Commands)
+11 b Fa(.)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 697 y(1.2.4)44 b(Readline)17
+b(Argumen)o(ts)12 b Fa(.)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 752 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
+(the)f(History)e Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
+b Fu(3)224 806 y(1.3)45 b(Readline)17 b(Init)g(File)e
+Fa(.)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(3)374 861 y(1.3.1)44 b(Readline)17
+b(Init)f(File)h(Syn)o(tax)7 b Fa(.)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 916 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
+b Fa(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)19 b Fu(7)374 971 y(1.3.3)44 b(Sample)16
+b(Init)g(File)11 b Fa(.)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(8)224 1026 y(1.4)45 b(Bindable)17 b(Readline)h
+(Commands)6 b Fa(.)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(11)374 1080 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
+Fa(.)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(11)374 1135 y(1.4.2)44
+b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
+b Fa(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fu(11)374 1190 y(1.4.3)44
+b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fa(.)8
+b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
+b Fu(12)374 1245 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
+b Fa(.)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(13)374
+1299 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
+Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
+b Fu(14)374 1354 y(1.4.6)44 b(Letting)15 b(Readline)j(T)o(yp)q(e)d(F)l
+(or)g(Y)l(ou)10 b Fa(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)25 b Fu(15)374 1409 y(1.4.7)44 b(Keyb)q(oard)15
+b(Macros)6 b Fa(.)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(15)374 1464 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
+b Fa(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+22 b Fu(15)224 1519 y(1.5)45 b(Readline)17 b(vi)f(Mo)q(de)e
Fa(.)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(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fr(5)299
-934 y(1.3.1)44 b(Readline)17 b(Init)f(File)h(Syn)o(tax)6
-b Fa(.)h(.)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(.)21
-b Fr(5)299 996 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)t
-Fa(.)7 b(.)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
-Fr(8)299 1058 y(1.3.3)44 b(Sample)16 b(Init)g(File)11
-b Fa(.)e(.)e(.)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(.)25 b Fr(9)149 1120 y(1.4)45 b(Bindable)17
-b(Readline)h(Commands)6 b Fa(.)h(.)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(.)g(.)f(.)h(.)f(.)21 b Fr(12)299 1183 y(1.4.1)44
-b(Commands)14 b(F)l(or)h(Mo)o(ving)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)28 b Fu(17)75 1640 y Fs(2)67 b(Programming)23
+b(with)g(GNU)f(Readline)12 b Fb(.)f(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)35
+b Fs(19)224 1708 y Fu(2.1)45 b(Basic)16 b(Beha)o(vior)8
+b Fa(.)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(19)224 1763 y(2.2)45
+b(Custom)14 b(F)l(unctions)7 b Fa(.)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(.)28 b Fr(12)299 1245 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fa(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24
-b Fr(12)299 1307 y(1.4.3)44 b(Commands)14 b(F)l(or)h(Changing)h(T)l
-(ext)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(.)29 b Fr(13)299 1369
-y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)8 b Fa(.)g(.)g(.)f(.)h(.)f
+f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fu(20)374
+1818 y(2.2.1)44 b(The)15 b(F)l(unction)h(T)o(yp)q(e)11
+b Fa(.)d(.)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(.)26 b Fu(20)374
+1873 y(2.2.2)44 b(W)l(riting)16 b(a)e(New)i(F)l(unction)6
+b Fa(.)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(21)224 1928 y(2.3)45
+b(Readline)17 b(V)l(ariables)f Fa(.)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(21)224
+1982 y(2.4)45 b(Readline)17 b(Con)o(v)o(enience)g(F)l(unctions)7
+b Fa(.)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(23)374 2037 y(2.4.1)44
+b(Naming)15 b(a)g(F)l(unction)e Fa(.)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(23)374 2092 y(2.4.2)44 b(Selecting)17
+b(a)e(Keymap)6 b Fa(.)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(23)374 2147 y(2.4.3)44 b(Binding)17 b(Keys)5 b Fa(.)j(.)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(.)23 b Fr(14)299
-1432 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fr(15)299 1494 y(1.4.6)44
-b(Letting)15 b(Readline)j(T)o(yp)q(e)d(F)l(or)g(Y)l(ou)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(.)25 b Fr(16)299 1556 y(1.4.7)44
-b(Keyb)q(oard)15 b(Macros)5 b Fa(.)i(.)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(.)f(.)21 b Fr(16)299
-1618 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)6
-b Fa(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fr(17)149 1681 y(1.5)45
-b(Readline)17 b(vi)f(Mo)q(de)d Fa(.)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(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)20 b
+Fu(24)374 2202 y(2.4.4)44 b(Asso)q(ciating)16 b(F)l(unction)g(Names)f
+(and)g(Bindings)8 b Fa(.)h(.)f(.)f(.)h(.)f(.)h(.)23 b
+Fu(25)374 2256 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f
+Fa(.)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(25)374 2311 y(2.4.6)44 b(Redispla)o(y)10 b Fa(.)f(.)f(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)28 b Fr(18)0 1805 y Fp(2)67 b(Programming)23 b(with)g(GNU)f
-(Readline)d Fb(.)10 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g
-(.)g(.)41 b Fp(19)149 1883 y Fr(2.1)k(Basic)16 b(Beha)o(vior)7
-b Fa(.)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(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22
-b Fr(19)149 1945 y(2.2)45 b(Custom)14 b(F)l(unctions)7
-b Fa(.)i(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
+b Fu(26)374 2366 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)7
+b Fa(.)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(27)374 2421 y(2.4.8)44 b(Utilit)o(y)16 b(F)l(unctions)e
+Fa(.)7 b(.)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(.)28
+b Fu(27)374 2475 y(2.4.9)44 b(Alternate)15 b(In)o(terface)5
+b Fa(.)i(.)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(.)20 b
+Fu(28)374 2530 y(2.4.10)43 b(An)16 b(Example)f Fa(.)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(.)30
+b Fu(29)224 2585 y(2.5)45 b(Custom)14 b(Completers)f
+Fa(.)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(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fr(21)299
-2008 y(2.2.1)44 b(The)15 b(F)l(unction)h(T)o(yp)q(e)10
-b Fa(.)e(.)g(.)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
-(.)26 b Fr(21)299 2070 y(2.2.2)44 b(W)l(riting)16 b(a)e(New)i(F)l
-(unction)5 b Fa(.)k(.)e(.)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(.)21
-b Fr(22)149 2132 y(2.3)45 b(Readline)17 b(V)l(ariables)f
-Fa(.)7 b(.)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(.)h(.)f(.)h(.)f(.)h(.)29 b Fr(22)149
-2194 y(2.4)45 b(Readline)17 b(Con)o(v)o(enience)g(F)l(unctions)7
-b Fa(.)h(.)g(.)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(.)22
-b Fr(24)299 2257 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e
-Fa(.)7 b(.)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
-(.)27 b Fr(24)299 2319 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6
-b Fa(.)h(.)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
-(.)21 b Fr(25)299 2381 y(2.4.3)44 b(Binding)17 b(Keys)t
-Fa(.)8 b(.)g(.)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
-(.)h(.)f(.)h(.)f(.)h(.)f(.)20 b Fr(26)299 2444 y(2.4.4)44
-b(Asso)q(ciating)16 b(F)l(unction)g(Names)f(and)g(Bindings)8
-b Fa(.)h(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23
-b Fr(27)299 2506 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f
-Fa(.)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(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)29 b Fr(28)299 2568 y(2.4.6)44 b(Redispla)o(y)10
-b Fa(.)f(.)f(.)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(.)h(.)25 b Fr(29)299
-2630 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)6 b Fa(.)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(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fr(30)p eop
--2 59 bop 0 -58 a Fr(ii)1471 b(GNU)15 b(Readline)i(Library)299
-42 y(2.4.8)44 b(Utilit)o(y)16 b(F)l(unctions)e Fa(.)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(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)28 b Fr(31)299 104 y(2.4.9)44 b(Alternate)15 b(In)o(terface)t
-Fa(.)8 b(.)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(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)19 b Fr(32)299 166 y(2.4.10)43 b(An)16 b(Example)f
-Fa(.)7 b(.)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(.)h(.)29 b Fr(33)149 228 y(2.5)45 b(Custom)14
-b(Completers)f Fa(.)7 b(.)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(.)f(.)h(.)f(.)h(.)g(.)27 b
-Fr(34)299 291 y(2.5.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)9
-b Fa(.)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(.)25
-b Fr(34)299 353 y(2.5.2)44 b(Completion)16 b(F)l(unctions)6
-b Fa(.)i(.)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(.)21
-b Fr(35)299 415 y(2.5.3)44 b(Completion)16 b(V)l(ariables)11
-b Fa(.)e(.)e(.)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 Fr(37)299 477 y(2.5.4)44 b(A)15 b(Short)g(Completion)h(Example)t
-Fa(.)8 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fr(40)0 602
-y Fp(Concept)j(Index)11 b Fb(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)34 b Fp(51)0
-742 y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)17
-b Fb(.)10 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b Fp(53)p eop end
+(.)f(.)28 b Fu(30)374 2640 y(2.5.1)44 b(Ho)o(w)14 b(Completing)i(W)l
+(orks)10 b Fa(.)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(30)p eop
+%%Page: -2 54
+-2 53 bop 75 -58 a Fu(ii)1321 b(GNU)15 b(Readline)i(Library)374
+42 y(2.5.2)44 b(Completion)16 b(F)l(unctions)6 b Fa(.)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(31)374 96 y(2.5.3)44 b(Completion)16
+b(V)l(ariables)c Fa(.)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(32)374 151 y(2.5.4)44 b(A)15 b(Short)g(Completion)h(Example)5
+b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)20 b Fu(34)75 272 y Fs(Concept)i(Index)10 b Fb(.)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(45)75 407
+y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)9
+b Fb(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)32 b Fs(47)p eop
+%%Trailer
+end
userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/doc/readline_toc.html b/doc/readline_toc.html
index 046b1ab..bf6d5d1 100644
--- a/doc/readline_toc.html
+++ b/doc/readline_toc.html
@@ -1,14 +1,14 @@
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.51
- from /usr/homes/chet/src/bash/readline-2.1/doc/rlman.texinfo on 3 June 1997 -->
+ from /usr/homes/chet/src/bash/readline-2.2/doc/rlman.texinfo on 2 April 1998 -->
<TITLE>GNU Readline Library - Table of Contents</TITLE>
</HEAD>
<BODY>
<H1>GNU Readline Library</H1>
-<H2>Edition 2.1, for <CODE>Readline Library</CODE> Version 2.1.</H2>
-<H2>March 1996</H2>
+<H2>Edition 2.2, for <CODE>Readline Library</CODE> Version 2.1.</H2>
+<H2>September 1997</H2>
<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
<P>
@@ -70,7 +70,7 @@
<LI><A NAME="TOC40" HREF="readline.html#SEC40">Function and Variable Index</A>
</UL>
<P><HR><P>
-This document was generated on 3 June 1997 using the
+This document was generated on 2 April 1998 using the
<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
translator version 1.51.</P>
</BODY>
diff --git a/doc/rlman.texinfo b/doc/rlman.texinfo
index 655f3db..dd6478a 100644
--- a/doc/rlman.texinfo
+++ b/doc/rlman.texinfo
@@ -7,20 +7,25 @@
@setchapternewpage odd
@ignore
-last change: Thu Mar 21 16:06:39 EST 1996
+last change: Thu Apr 2 14:39:03 EST 1998
@end ignore
-@set EDITION 2.1
-@set VERSION 2.1
-@set UPDATED 21 March 1996
-@set UPDATE-MONTH March 1996
+@set EDITION 2.2
+@set VERSION 2.2
+@set UPDATED 2 April 1998
+@set UPDATE-MONTH April 1998
+
+@dircategory Libraries
+@direntry
+* Readline: (readline). The GNU readline library API
+@end direntry
@ifinfo
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, 1991 Free Software Foundation, Inc.
+Copyright (C) 1988, 1991, 1993, 1996, 1998 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
diff --git a/doc/rltech.texinfo b/doc/rltech.texinfo
index ea0d317..bce5087 100644
--- a/doc/rltech.texinfo
+++ b/doc/rltech.texinfo
@@ -454,6 +454,14 @@ 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 (Function *function, Keymap map)
+Unbind all keys that execute @var{function} in @var{map}.
+@end deftypefun
+
+@deftypefun int rl_unbind_command_in_map (char *command, Keymap map)
+Unbind all keys that are bound to @var{command} in @var{map}.
+@end deftypefun
+
@deftypefun int rl_generic_bind (int type, 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
@@ -1034,7 +1042,7 @@ unless they also appear within this list.
@deftypevar {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 empty.
+when they appear in a completed filename. The default is the null string.
@end deftypevar
@deftypevar {char *} rl_special_prefixes
diff --git a/doc/rluser.texinfo b/doc/rluser.texinfo
index f7d6fd8..b2fd060 100644
--- a/doc/rluser.texinfo
+++ b/doc/rluser.texinfo
@@ -135,7 +135,7 @@ Delete the character underneath the cursor.
@item @w{Printing characters}
Insert the character into the line at the cursor.
@item @key{C-_}
-Undo the last thing that you did. You can undo all the way back to an
+Undo the last editing command. You can undo all the way back to an
empty line.
@end table
@@ -155,7 +155,7 @@ Move to the start of the line.
@item C-e
Move to the end of the line.
@item M-f
-Move forward a word.
+Move forward a word, where a word is composed of letters and digits.
@item M-b
Move backward a word.
@item C-l
@@ -207,7 +207,7 @@ Kill from the cursor to the previous whitespace. This is different than
@end table
-And, here is how to @dfn{yank} the text back into the line. Yanking
+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 @key
@@ -227,10 +227,10 @@ 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 @w{@kbd{M-- C-k}}.
+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' you type is a minus
+digits before the command. If the first `digit' typed is a minus
sign (@key{-}), 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
@@ -248,38 +248,38 @@ There are two search modes: @var{incremental} and @var{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
+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.
-The Escape character is used to terminate an incremental search.
-Control-J will also terminate the search.
-Control-G will abort an incremental search and restore the original
-line.
+The @key{ESC} character is used to terminate an incremental search.
+@key{C-j} will also terminate the search.
+@key{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 Control-S or
-Control-R as appropriate.
+To find other matching entries in the history list, type @key{C-s} or
+@key{C-r} 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
+Any other key sequence bound to a Readline command will terminate
the search and execute that command.
-For instance, a @code{newline} will terminate the search and accept
+For instance, a @key{RET} will terminate the search and accept
the line, thereby executing the command from the history list.
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 part of the contents of the current line.
+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 @code{emacs}-like
-keybindings installed by default,
-it is possible that you would like to use a different set
-of keybindings. You can customize programs that use Readline by putting
-commands in an @dfn{inputrc} file in your home directory. The name of this
+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 in his home directory.
+The name of this
@ifset BashFeatures
file is taken from the value of the shell variable @code{INPUTRC}. If
@end ifset
@@ -314,16 +314,18 @@ denote variable settings and key bindings.
@table @asis
@item Variable Settings
-You can change the state of a few variables in Readline by
-using the @code{set} command within the init file. Here is how you
-would specify that you wish to use @code{vi} line editing commands:
+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. Here 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
-Right now, there are only a few variables which can be set;
-so few, in fact, that we just list them here:
+A great deal of run-time behavior is changeable with the following
+variables.
@table @code
@@ -341,6 +343,11 @@ 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
@@ -353,26 +360,26 @@ them; otherwise, they are simply listed. The default limit is
@item convert-meta
@vindex convert-meta
If set to @samp{on}, Readline will convert characters with the
-eigth bit set to an ASCII key sequence by stripping the eigth
+eighth bit set to an ASCII key sequence by stripping the eighth
bit and prepending 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.
+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 editing mode you are
-using. By default, Readline starts up in Emacs editing mode, where
-the keystrokes are most similar to Emacs. This variable can be
+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
+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}.
@@ -384,7 +391,7 @@ attempts word completion. The default is @samp{off}.
@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 that you edit will scroll
+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}.
@@ -411,8 +418,8 @@ appended. The default is @samp{on}.
@item mark-modified-lines
@vindex mark-modified-lines
-This variable, when set to @samp{on}, says to display an asterisk
-(@samp{*}) at the start of history lines which have been modified.
+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 input-meta
@@ -430,6 +437,11 @@ 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 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
@@ -449,9 +461,9 @@ completions. The default is @samp{off}.
@item Key Bindings
The syntax for controlling key bindings in the init file is
simple. First you have to know the name of the command that you
-want to change. The following pages contain tables of the command name,
-the default keybinding, and a short description of what the command
-does.
+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 the name of the key
you wish to bind the command to, a colon, and then the name of the
@@ -468,8 +480,8 @@ Meta-Rubout: backward-kill-word
Control-o: "> output"
@end example
-In the above example, @samp{C-u} is bound to the function
-@code{universal-argument}, and @samp{C-o} is bound to run the macro
+In the above example, @key{C-u} is bound to the function
+@code{universal-argument}, and @key{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).
@@ -486,12 +498,16 @@ special character names are not recognized.
"\e[11~": "Function Key 1"
@end example
-In the above example, @samp{C-u} is bound to the function
+In the above example, @key{C-u} is bound to the function
@code{universal-argument} (just as it was in the first example),
-@samp{C-x C-r} is bound to the function @code{re-read-init-file}, and
-@samp{ESC [ 1 1 ~} is bound to insert the text @samp{Function Key 1}.
-The following escape sequences are available when specifying key
-sequences:
+@samp{@key{C-x} @key{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 GNU Emacs style escape sequences are available when
+specifying key sequences:
@table @code
@item @kbd{\C-}
@@ -508,11 +524,40 @@ backslash
@key{'}
@end table
-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. Backslash
-will quote any character in the macro text, including @samp{"}
-and @samp{'}.
+In addition to the 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 character whose ASCII code is the octal value @var{nnn}
+(one to three digits)
+@item \x@var{nnn}
+the character whose ASCII code is the hexadecimal value @var{nnn}
+(one to three 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{C-x \}
insert a single @samp{\} into the line:
@example
@@ -520,7 +565,6 @@ insert a single @samp{\} into the line:
@end example
@end table
-@end table
@node Conditional Init Constructs
@subsection Conditional Init Constructs
@@ -528,7 +572,7 @@ insert a single @samp{\} into the line:
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 three parser directives used.
+of tests. There are four parser directives used.
@table @code
@item $if
@@ -550,8 +594,8 @@ Readline is starting out in @code{emacs} mode.
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 the full name of the terminal and the
-portion of the terminal name before the first @samp{-}. This
+@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.
@@ -571,12 +615,19 @@ $endif
@end table
@item $endif
-This command, as you saw in the previous example, terminates an
+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.
+@example
+$include /etc/inputrc
+@end example
@end table
@node Sample Init File
@@ -594,6 +645,11 @@ binding, variable assignment, and conditional syntax.
# 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
@@ -738,8 +794,9 @@ Refresh the current line. By default, this is unbound.
@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 @code{HISTCONTROL} variable. If this line was a history
-line, then restore the history line to its original state.
+the @code{HISTCONTROL} and @code{HISTIGNORE} variables.
+If this line was a 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
@@ -757,7 +814,8 @@ Move `down' through the history list.
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 you are entering.
+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
@@ -780,7 +838,7 @@ 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 current cursor
-position (the `point'). This is a non-incremental search. By
+position (the @var{point}). This is a non-incremental search. By
default, this command is unbound.
@item history-search-backward ()
@@ -799,6 +857,8 @@ inserts the @var{n}th word from the end of the previous command.
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
@@ -809,18 +869,21 @@ argument, behave exactly like @code{yank-nth-arg}.
@item delete-char (C-d)
Delete the character under the cursor. If the cursor is at the
beginning of the line, there are no characters in the line, and
-the last character typed was not @kbd{C-d}, then return @code{EOF}.
+the last character typed was not bound to @code{delete-char}, then
+return @code{EOF}.
@item backward-delete-char (Rubout)
-Delete the character behind the cursor. A numeric arg says to kill
-the characters instead of deleting them.
+Delete the character behind the cursor. A numeric argument means
+to kill the characters instead of deleting them.
@item quoted-insert (C-q, C-v)
-Add the next character that you type to the line verbatim. This is
+Add the next character typed to the line verbatim. This is
how to insert key sequences like @key{C-q}, for example.
+@ifclear BashFeatures
@item tab-insert (M-TAB)
Insert a tab character.
+@end ifclear
@item self-insert (a, b, A, 1, !, ...)
Insert yourself.
@@ -831,7 +894,7 @@ 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 argumentss don't work.
+Negative arguments don't work.
@item transpose-words (M-t)
Drag the word behind the cursor past the word in front of the cursor
@@ -839,15 +902,15 @@ moving the cursor over that word as well.
@item upcase-word (M-u)
Uppercase the current (or following) word. With a negative argument,
-do the previous word, but do not move the cursor.
+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,
-do the previous word, but do not move the cursor.
+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,
-do the previous word, but do not move the cursor.
+capitalize the previous word, but do not move the cursor.
@end ftable
@@ -864,7 +927,7 @@ 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.
-Save the killed text on the kill-ring.
+The killed text is saved on the kill-ring.
@item kill-whole-line ()
Kill all characters on the current line, no matter where the
@@ -888,19 +951,21 @@ Delete all spaces and tabs around point. By default, this is unbound.
@item kill-region ()
Kill the text between the point and the @emph{mark} (saved
-cursor position. This text is referred to as the @var{region}.
+cursor position). This text is referred to as the @var{region}.
By default, this command is unbound.
@item copy-region-as-kill ()
-Copy the text in the region to the kill buffer, so you can yank it
+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)
@@ -943,8 +1008,8 @@ By default, this is not bound to a key.
Attempt to do completion on the text before the cursor. This is
application-specific. Generally, if you are typing a filename
argument, you can do filename completion; if you are typing a command,
-you can do command completion, if you are typing in a symbol to GDB, you
-can do symbol name completion, if you are typing in a variable to Bash,
+you can do command completion; if you are typing in a symbol to GDB, you
+can do symbol name completion; if you are typing in a variable to Bash,
you can do variable name completion, and so on.
@ifset BashFeatures
Bash attempts completion treating the text as a variable (if the
@@ -961,6 +1026,19 @@ List the possible completions of the text before the cursor.
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 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 @code{TAB}, but is unbound
+by default.
+
@ifset BashFeatures
@item complete-filename (M-/)
Attempt filename completion on the text before point.
@@ -997,7 +1075,7 @@ treating it as a hostname.
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, builtins, and finally executable filenames,
+functions, shell builtins, and finally executable filenames,
in that order.
@item possible-command-completions (C-x !)
@@ -1052,7 +1130,7 @@ If the metafied character @var{x} is lowercase, run the command
that is bound to the corresponding uppercase character.
@item prefix-meta (ESC)
-Make the next character that you type be metafied. This is for people
+Make the next character typed be metafied. This is for keyboards
without a meta key. Typing @samp{ESC f} is equivalent to typing
@samp{M-f}.
@@ -1060,7 +1138,7 @@ without a meta key. Typing @samp{ESC f} is equivalent to typing
Incremental undo, separately remembered for each line.
@item revert-line (M-r)
-Undo all changes made to this line. This is like typing the @code{undo}
+Undo all changes made to this line. This is like executing the @code{undo}
command enough times to get back to the beginning.
@item tilde-expand (M-~)
@@ -1093,18 +1171,18 @@ This makes the current line a shell comment.
@item dump-functions ()
Print all of the functions and their key bindings to the
-readline output stream. If a numeric argument is supplied,
+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,
+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
+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 @var{inputrc} file. This command is unbound by default.
@@ -1116,24 +1194,27 @@ and the list of matching file names is inserted, replacing the word.
@item glob-list-expansions (C-x g)
The list of expansions that would have been generated by
-@code{glob-expand-word}
-is inserted into the line, replacing the word before point.
+@code{glob-expand-word} is displayed, and the line is redrawn.
@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 the way the shell does when it reads it. This
-performs alias and history expansion as well as all of the shell
-word expansions.
+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 alias-expand-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
+@item history-and-alias-expand-line ()
Perform history and alias expansion on the current line.
@item insert-last-argument (M-., M-_)
diff --git a/doc/texi2html b/doc/texi2html
index 2c61aa9..cc75178 100755
--- a/doc/texi2html
+++ b/doc/texi2html
@@ -1,4 +1,4 @@
-#!/usr/local/bin/perl
+#!/usr/bin/perl
'di ';
'ig 00 ';
#+##############################################################################
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index fb7cfe5..e8375a3 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -1,6 +1,7 @@
%% TeX macros to handle texinfo files
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 1994 Free Software Foundation, Inc.
+% Copyright (C) 1985, 86, 88, 90, 91, 92, 93,
+% 94, 95, 1996 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
@@ -14,8 +15,8 @@
%You should have received a copy of the GNU General Public License
%along with this texinfo.tex file; see the file COPYING. If not, write
-%to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
-%USA.
+%to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+%Boston, MA 02111-1307, USA.
%In other words, you are welcome to use, share and improve this program.
@@ -34,7 +35,7 @@
% This automatically updates the version number based on RCS.
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 2.145 $
+\deftexinfoversion$Revision: 2.185 $
\message{Loading texinfo package [Version \texinfoversion]:}
% If in a .fmt file, print the version number
@@ -45,20 +46,20 @@
% Save some parts of plain tex whose names we will redefine.
-\let\ptextilde=\~
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexdots=\dots
-\let\ptexdot=\.
-\let\ptexstar=\*
-\let\ptexend=\end
-\let\ptexbullet=\bullet
\let\ptexb=\b
+\let\ptexbullet=\bullet
\let\ptexc=\c
+\let\ptexcomma=\,
+\let\ptexdot=\.
+\let\ptexdots=\dots
+\let\ptexend=\end
+\let\ptexequiv = \equiv
\let\ptexi=\i
+\let\ptexlbrace=\{
+\let\ptexrbrace=\}
+\let\ptexstar=\*
\let\ptext=\t
-\let\ptexl=\l
-\let\ptexL=\L
+\let\ptextilde=\~
% Be sure we're in horizontal mode when doing a tie, since we make space
% equivalent to this in @example-like environments. Otherwise, a space
@@ -66,10 +67,14 @@
% since \penalty is valid in vertical mode, we'd end up putting the
% penalty on the vertical list instead of in the new paragraph.
{\catcode`@ = 11
- \gdef\tie{\leavevmode\penalty\@M\ }
+ % Avoid using \@M directly, because that causes trouble
+ % if the definition is written into an index file.
+ \global\let\tiepenalty = \@M
+ \gdef\tie{\leavevmode\penalty\tiepenalty\ }
}
\let\~ = \tie % And make it available as @~.
+
\message{Basics,}
\chardef\other=12
@@ -99,10 +104,9 @@
\hyphenation{eshell}
% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset \bindingoffset=0pt
-\newdimen \normaloffset \normaloffset=\hoffset
+\newdimen \bindingoffset
+\newdimen \normaloffset
\newdimen\pagewidth \newdimen\pageheight
-\pagewidth=\hsize \pageheight=\vsize
% Sometimes it is convenient to have everything in the transcript file
% and nothing on the terminal. We don't just call \tracingall here,
@@ -123,7 +127,7 @@
\newdimen\cornerlong \newdimen\cornerthick
\newdimen \topandbottommargin
\newdimen \outerhsize \newdimen \outervsize
-\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
+\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
\outerhsize=7in
%\outervsize=9.5in
% Alternative @smallbook page size is 9.25in
@@ -133,15 +137,24 @@
%---------------------End change-----------------------
% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions itself, but you have to call it yourself.
+% does insertions, but you have to call it yourself.
\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}}
-\def\onepageout#1{\hoffset=\normaloffset
-\ifodd\pageno \advance\hoffset by \bindingoffset
-\else \advance\hoffset by -\bindingoffset\fi
-{\escapechar=`\\\relax % makes sure backslash is used in output files.
-\shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}%
-{\let\hsize=\pagewidth \makefootline}}}%
-\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
+\def\onepageout#1{%
+ \hoffset=\normaloffset
+ \ifodd\pageno \advance\hoffset by \bindingoffset
+ \else \advance\hoffset by -\bindingoffset\fi
+ {%
+ \escapechar = `\\ % use backslash in output files.
+ \indexdummies
+ \shipout\vbox{%
+ {\let\hsize=\pagewidth \makeheadline}%
+ \pagebody{#1}%
+ {\let\hsize=\pagewidth \makefootline}%
+ }%
+ }%
+ \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
%%%% For @cropmarks command %%%%
@@ -153,8 +166,8 @@
%
\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up
{\escapechar=`\\\relax % makes sure backslash is used in output files.
- \shipout
- \vbox to \outervsize{\hsize=\outerhsize
+ \shipout
+ \vbox to \outervsize{\hsize=\outerhsize
\vbox{\line{\ewtop\hfill\ewtop}}
\nointerlineskip
\line{\vbox{\moveleft\cornerthick\nstop}
@@ -162,19 +175,19 @@
\vbox{\moveright\cornerthick\nstop}}
\vskip \topandbottommargin
\centerline{\ifodd\pageno\hskip\bindingoffset\fi
- \vbox{
- {\let\hsize=\pagewidth \makeheadline}
- \pagebody{#1}
- {\let\hsize=\pagewidth \makefootline}}
- \ifodd\pageno\else\hskip\bindingoffset\fi}
- \vskip \topandbottommargin plus1fill minus1fill
+ \vbox{
+ {\let\hsize=\pagewidth \makeheadline}
+ \pagebody{#1}
+ {\let\hsize=\pagewidth \makefootline}}
+ \ifodd\pageno\else\hskip\bindingoffset\fi}
+ \vskip \topandbottommargin plus1fill minus1fill
\boxmaxdepth\cornerthick
\line{\vbox{\moveleft\cornerthick\nsbot}
\hfill
\vbox{\moveright\cornerthick\nsbot}}
\nointerlineskip
\vbox{\line{\ewbot\hfill\ewbot}}
- }}
+ }}
\advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi}
%
@@ -362,11 +375,43 @@
%\def\'{{'}}
% Used to generate quoted braces.
-
\def\mylbrace {{\tt \char '173}}
\def\myrbrace {{\tt \char '175}}
\let\{=\mylbrace
\let\}=\myrbrace
+\begingroup
+ % Definitions to produce actual \{ & \} command in an index.
+ \catcode`\{ = 12 \catcode`\} = 12
+ \catcode`\[ = 1 \catcode`\] = 2
+ \catcode`\@ = 0 \catcode`\\ = 12
+ @gdef@lbracecmd[\{]%
+ @gdef@rbracecmd[\}]%
+@endgroup
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
+\let\, = \c
+\let\dotaccent = \.
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \t
+\let\ubaraccent = \b
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown
+% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+ \def\temp{#1}%
+ \ifx\temp\imacro \ptexi
+ \else\ifx\temp\jmacro \j
+ \else \errmessage{@dotless can be used only with i or j}%
+ \fi\fi
+}
% @: forces normal size whitespace following.
\def\:{\spacefactor=1000 }
@@ -533,17 +578,34 @@ 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}}}
+\newskip\inmarginspacing \inmarginspacing=1cm
+\def\strutdepth{\dp\strutbox}
+
%\hbox{{\rm#1}}\hfil\break}}
% @include file insert text of that file as input.
-
-\def\include{\parsearg\includezzz}
-%Use \input\thisfile to avoid blank after \input, which may be an active
-%char (in which case the blank would become the \input argument).
-%The grouping keeps the value of \thisfile correct even when @include
-%is nested.
-\def\includezzz #1{\begingroup
-\def\thisfile{#1}\input\thisfile
+% 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
+ \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}%
+ \input\thisfile
\endgroup}
\def\thisfile{}
@@ -558,7 +620,7 @@ where each line of input produces a line of output.}
% @sp n outputs n lines of vertical space
\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\par \vskip #1\baselineskip}
+\def\spxxx #1{\vskip #1\baselineskip}
% @comment ...line which is ignored...
% @c is the same as @comment
@@ -571,6 +633,9 @@ where each line of input produces a line of output.}
\let\c=\comment
+% @paragraphindent is defined for the Info formatting commands only.
+\let\paragraphindent=\comment
+
% Prevent errors for section commands.
% Used in @ignore and in failing conditionals.
\def\ignoresections{%
@@ -605,6 +670,7 @@ where each line of input produces a line of output.}
% incorrectly.
%
\def\ignoremorecommands{%
+ \let\defcodeindex = \relax
\let\defcv = \relax
\let\deffn = \relax
\let\deffnx = \relax
@@ -628,6 +694,15 @@ where each line of input produces a line of output.}
\let\printindex = \relax
\let\pxref = \relax
\let\settitle = \relax
+ \let\setchapternewpage = \relax
+ \let\setchapterstyle = \relax
+ \let\everyheading = \relax
+ \let\evenheading = \relax
+ \let\oddheading = \relax
+ \let\everyfooting = \relax
+ \let\evenfooting = \relax
+ \let\oddfooting = \relax
+ \let\headings = \relax
\let\include = \relax
\let\lowersections = \relax
\let\down = \relax
@@ -636,7 +711,6 @@ where each line of input produces a line of output.}
\let\set = \relax
\let\clear = \relax
\let\item = \relax
- \let\message = \relax
}
% Ignore @ignore ... @end ignore.
@@ -651,6 +725,16 @@ where each line of input produces a line of output.}
\def\menu{\doignore{menu}}
\def\direntry{\doignore{direntry}}
+% Also ignore @macro ... @end macro. The user must run texi2dvi,
+% which runs makeinfo to do macro expansion. Ignore @unmacro, too.
+\def\macro{\doignore{macro}}
+\let\unmacro = \comment
+
+
+% @dircategory CATEGORY -- specify a category of the dir file
+% which this file should belong to. Ignore this in TeX.
+\let\dircategory = \comment
+
% Ignore text until a line `@end #1'.
%
\def\doignore#1{\begingroup
@@ -682,11 +766,12 @@ where each line of input produces a line of output.}
\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.ai.mit.edu/pub/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.}
\immediate\write16{}
- \warnedobstrue
+ \global\warnedobstrue
\fi
}
@@ -762,15 +847,17 @@ where each line of input produces a line of output.}
% Since we want to separate VAR from REST-OF-LINE (which might be
% empty), we can't just use \parsearg; we have to insert a space of our
% own to delimit the rest of the line, and then take it out again if we
-% didn't need it.
+% didn't need it. Make sure the catcode of space is correct to avoid
+% losing inside @example, for instance.
%
-\def\set{\parsearg\setxxx}
+\def\set{\begingroup\catcode` =10 \parsearg\setxxx}
\def\setxxx#1{\setyyy#1 \endsetyyy}
\def\setyyy#1 #2\endsetyyy{%
\def\temp{#2}%
\ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
\else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
\fi
+ \endgroup
}
% Can't use \xdef to pre-expand #2 and save some time, since \temp or
% \next or other control sequences that we've defined might get us into
@@ -785,9 +872,9 @@ where each line of input produces a line of output.}
% @value{foo} gets the text saved in variable foo.
%
\def\value#1{\expandafter
- \ifx\csname SET#1\endcsname\relax
- {\{No value for ``#1''\}}
- \else \csname SET#1\endcsname \fi}
+ \ifx\csname SET#1\endcsname\relax
+ {\{No value for ``#1''\}}
+ \else \csname SET#1\endcsname \fi}
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
@@ -887,6 +974,7 @@ where each line of input produces a line of output.}
\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi
\global\let\lastnode=\relax}
+% @refill is a no-op.
\let\refill=\relax
% @setfilename is done at the beginning of every texinfo file.
@@ -901,11 +989,24 @@ where each line of input produces a line of output.}
\comment % Ignore the actual filename.
}
+% @bye.
\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
+% \def\macro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\macroxxx}
+% \def\macroxxx#1#2 \end macro{%
+% \expandafter\gdef\macrotemp#1{#2}%
+% \endgroup}
+
+%\def\linemacro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\linemacroxxx}
+%\def\linemacroxxx#1#2 \end linemacro{%
+%\let\parsearg=\relax
+%\edef\macrotempx{\csname M\butfirst\expandafter\string\macrotemp\endcsname}%
+%\expandafter\xdef\macrotemp{\parsearg\macrotempx}%
+%\expandafter\gdef\macrotempx#1{#2}%
+%\endgroup}
+
+%\def\butfirst#1{}
+
\message{fonts,}
@@ -917,12 +1018,16 @@ where each line of input produces a line of output.}
\def\sf{\fam=\sffam \tensf}
\let\li = \sf % Sometimes we call it \li, not \sf.
+% We don't need math for this one.
+\def\ttsl{\tenttsl}
+
%% Try out Computer Modern fonts at \magstephalf
\let\mainmagstep=\magstephalf
% Set the font macro #1 to the font named #2, adding on the
% specified font prefix (normally `cm').
-\def\setfont#1#2{\font#1=\fontprefix#2}
+% #3 is the font's design size, #4 is a scale factor
+\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
% Use cm as the default font prefix.
% To specify the font prefix, you must define \fontprefix
@@ -930,96 +1035,119 @@ where each line of input produces a line of output.}
\ifx\fontprefix\undefined
\def\fontprefix{cm}
\fi
+% Support font families that don't use the same naming scheme as CM.
+\def\rmshape{r}
+\def\rmbshape{bx} %where the normal face is bold
+\def\bfshape{b}
+\def\bxshape{bx}
+\def\ttshape{tt}
+\def\ttbshape{tt}
+\def\ttslshape{sltt}
+\def\itshape{ti}
+\def\itbshape{bxti}
+\def\slshape{sl}
+\def\slbshape{bxsl}
+\def\sfshape{ss}
+\def\sfbshape{ss}
+\def\scshape{csc}
+\def\scbshape{csc}
\ifx\bigger\relax
\let\mainmagstep=\magstep1
-\setfont\textrm{r12}
-\setfont\texttt{tt12}
+\setfont\textrm\rmshape{12}{1000}
+\setfont\texttt\ttshape{12}{1000}
\else
-\setfont\textrm{r10 scaled \mainmagstep}
-\setfont\texttt{tt10 scaled \mainmagstep}
+\setfont\textrm\rmshape{10}{\mainmagstep}
+\setfont\texttt\ttshape{10}{\mainmagstep}
\fi
% Instead of cmb10, you many want to use cmbx10.
% cmbx10 is a prettier font on its own, but cmb10
% looks better when embedded in a line with cmr10.
-\setfont\textbf{b10 scaled \mainmagstep}
-\setfont\textit{ti10 scaled \mainmagstep}
-\setfont\textsl{sl10 scaled \mainmagstep}
-\setfont\textsf{ss10 scaled \mainmagstep}
-\setfont\textsc{csc10 scaled \mainmagstep}
+\setfont\textbf\bfshape{10}{\mainmagstep}
+\setfont\textit\itshape{10}{\mainmagstep}
+\setfont\textsl\slshape{10}{\mainmagstep}
+\setfont\textsf\sfshape{10}{\mainmagstep}
+\setfont\textsc\scshape{10}{\mainmagstep}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}
\font\texti=cmmi10 scaled \mainmagstep
\font\textsy=cmsy10 scaled \mainmagstep
% A few fonts for @defun, etc.
-\setfont\defbf{bx10 scaled \magstep1} %was 1314
-\setfont\deftt{tt10 scaled \magstep1}
+\setfont\defbf\bxshape{10}{\magstep1} %was 1314
+\setfont\deftt\ttshape{10}{\magstep1}
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-% Fonts for indices and small examples.
+% Fonts for indices and small examples (9pt).
% We actually use the slanted font rather than the italic,
% because texinfo normally uses the slanted fonts for that.
% Do not make many font distinctions in general in the index, since they
% aren't very useful.
-\setfont\ninett{tt9}
-\setfont\indrm{r9}
-\setfont\indit{sl9}
+\setfont\ninett\ttshape{9}{1000}
+\setfont\indrm\rmshape{9}{1000}
+\setfont\indit\slshape{9}{1000}
\let\indsl=\indit
\let\indtt=\ninett
+\let\indttsl=\ninett
\let\indsf=\indrm
\let\indbf=\indrm
-\setfont\indsc{csc10 at 9pt}
+\setfont\indsc\scshape{10}{900}
\font\indi=cmmi9
\font\indsy=cmsy9
-% Fonts for headings
-\setfont\chaprm{bx12 scaled \magstep2}
-\setfont\chapit{ti12 scaled \magstep2}
-\setfont\chapsl{sl12 scaled \magstep2}
-\setfont\chaptt{tt12 scaled \magstep2}
-\setfont\chapsf{ss12 scaled \magstep2}
+% Chapter (and unnumbered) fonts (17.28pt).
+\setfont\chaprm\rmbshape{12}{\magstep2}
+\setfont\chapit\itbshape{10}{\magstep3}
+\setfont\chapsl\slbshape{10}{\magstep3}
+\setfont\chaptt\ttbshape{12}{\magstep2}
+\setfont\chapttsl\ttslshape{10}{\magstep3}
+\setfont\chapsf\sfbshape{12}{\magstep2}
\let\chapbf=\chaprm
-\setfont\chapsc{csc10 scaled\magstep3}
+\setfont\chapsc\scbshape{10}{\magstep3}
\font\chapi=cmmi12 scaled \magstep2
\font\chapsy=cmsy10 scaled \magstep3
-\setfont\secrm{bx12 scaled \magstep1}
-\setfont\secit{ti12 scaled \magstep1}
-\setfont\secsl{sl12 scaled \magstep1}
-\setfont\sectt{tt12 scaled \magstep1}
-\setfont\secsf{ss12 scaled \magstep1}
-\setfont\secbf{bx12 scaled \magstep1}
-\setfont\secsc{csc10 scaled\magstep2}
+% Section fonts (14.4pt).
+\setfont\secrm\rmbshape{12}{\magstep1}
+\setfont\secit\itbshape{10}{\magstep2}
+\setfont\secsl\slbshape{10}{\magstep2}
+\setfont\sectt\ttbshape{12}{\magstep1}
+\setfont\secttsl\ttslshape{10}{\magstep2}
+\setfont\secsf\sfbshape{12}{\magstep1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}
\font\seci=cmmi12 scaled \magstep1
\font\secsy=cmsy10 scaled \magstep2
-% \setfont\ssecrm{bx10 scaled \magstep1} % This size an font looked bad.
-% \setfont\ssecit{cmti10 scaled \magstep1} % The letters were too crowded.
-% \setfont\ssecsl{sl10 scaled \magstep1}
-% \setfont\ssectt{tt10 scaled \magstep1}
-% \setfont\ssecsf{ss10 scaled \magstep1}
+% \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{b10 scaled 1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit{ti10 scaled 1315} % Also, the size is a little larger than
-%\setfont\ssecsl{sl10 scaled 1315} % being scaled magstep1.
-%\setfont\ssectt{tt10 scaled 1315}
-%\setfont\ssecsf{ss10 scaled 1315}
+%\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
-\setfont\ssecrm{bx12 scaled \magstephalf}
-\setfont\ssecit{ti12 scaled \magstephalf}
-\setfont\ssecsl{sl12 scaled \magstephalf}
-\setfont\ssectt{tt12 scaled \magstephalf}
-\setfont\ssecsf{ss12 scaled \magstephalf}
-\setfont\ssecbf{bx12 scaled \magstephalf}
-\setfont\ssecsc{csc10 scaled \magstep1}
+% Subsection fonts (13.15pt).
+\setfont\ssecrm\rmbshape{12}{\magstephalf}
+\setfont\ssecit\itbshape{10}{1315}
+\setfont\ssecsl\slbshape{10}{1315}
+\setfont\ssectt\ttbshape{12}{\magstephalf}
+\setfont\ssecttsl\ttslshape{10}{\magstep1}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{\magstep1}
\font\sseci=cmmi12 scaled \magstephalf
\font\ssecsy=cmsy10 scaled \magstep1
% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
% but that is not a standard magnification.
% Fonts for title page:
-\setfont\titlerm{bx12 scaled \magstep3}
+\setfont\titlerm\rmbshape{12}{\magstep3}
\let\authorrm = \secrm
% In order for the font changes to affect most math symbols and letters,
@@ -1038,34 +1166,35 @@ where each line of input produces a line of output.}
% 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
-% cases, not the current. Plain TeX does, for example,
-% \def\bf{\fam=\bffam \tenbf} By redefining \tenbf, we obviate the need
-% to redefine \bf itself.
+% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
+% \tenbf}, for example. By redefining \tenbf, we obviate the need to
+% redefine \bf itself.
\def\textfonts{%
\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\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
\resetmathfonts}
\def\chapfonts{%
\let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
\let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
- \resetmathfonts}
+ \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
+ \resetmathfonts \setleading{19pt}}
\def\secfonts{%
\let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
\let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
- \resetmathfonts}
+ \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
+ \resetmathfonts \setleading{16pt}}
\def\subsecfonts{%
\let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
\let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
- \resetmathfonts}
+ \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
+ \resetmathfonts \setleading{15pt}}
+\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
\def\indexfonts{%
\let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
\let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
- \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy
- \resetmathfonts}
+ \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
+ \resetmathfonts \setleading{12pt}}
% Set up the default fonts, so we can use them for creating boxes.
%
@@ -1075,9 +1204,9 @@ where each line of input produces a line of output.}
\newcount\fontdepth \fontdepth=0
% Fonts for short table of contents.
-\setfont\shortcontrm{r12}
-\setfont\shortcontbf{bx12}
-\setfont\shortcontsl{sl12}
+\setfont\shortcontrm\rmshape{12}{1000}
+\setfont\shortcontbf\bxshape{12}{1000}
+\setfont\shortcontsl\slshape{12}{1000}
%% Add scribe-like font environments, plus @l for inline lisp (usually sans
%% serif) and @ii for TeX italic
@@ -1104,16 +1233,26 @@ where each line of input produces a line of output.}
\def\restorehyphenation{\hyphenchar\font = `- }
\def\t#1{%
- {\tt \nohyphenation \rawbackslash \frenchspacing #1}%
+ {\tt \rawbackslash \frenchspacing #1}%
\null
}
-\let\ttfont = \t
-%\def\samp #1{`{\tt \rawbackslash \frenchspacing #1}'\null}
+\let\ttfont=\t
\def\samp #1{`\tclose{#1}'\null}
-\def\key #1{{\tt \nohyphenation \uppercase{#1}}\null}
+\setfont\smallrm\rmshape{8}{1000}
+\font\smallsy=cmsy9
+\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
+ \raise0.4pt\hbox{$\langle$}\kern-.08em\vtop{%
+ \vbox{\hrule\kern-0.4pt
+ \hbox{\raise0.4pt\hbox{\vphantom{$\langle$}}#1}}%
+ \kern-0.4pt\hrule}%
+ \kern-.06em\raise0.4pt\hbox{$\rangle$}}}}
+% The old definition, with no lozenge:
+%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
\let\file=\samp
+\let\url=\samp % perhaps include a hypertex \special eventually
+\def\email#1{$\langle${\tt #1}$\rangle$}
% @code is a modification of @t,
% which makes spaces the same size as normal in the surrounding text.
@@ -1139,13 +1278,13 @@ where each line of input produces a line of output.}
}
% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overful hboxes
+% Otherwise, it is too hard to avoid overfull hboxes
% in the Emacs manual, the Library manual, etc.
% Unfortunately, TeX uses one parameter (\hyphenchar) to control
% both hyphenation at - and hyphenation within words.
% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate an a dash.
+% and arrange explicitly to hyphenate at a dash.
% -- rms.
{
\catcode`\-=\active
@@ -1157,6 +1296,7 @@ where each line of input produces a line of output.}
% ever called. -- mycroft
\global\def\indexbreaks{\catcode`\-=\active \let-\realdash \catcode`\_=\active \let_\realunder}
}
+
\def\realdash{-}
\def\realunder{_}
\def\codedash{-\discretionary{}{}{}}
@@ -1167,12 +1307,19 @@ where each line of input produces a line of output.}
% @kbd is like @code, except that if the argument is just one @key command,
% then @kbd has no effect.
-
+%
\def\xkey{\key}
\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else\tclose{\look}\fi
-\else\tclose{\look}\fi}
+\else{\tclose{\ttsl\look}}\fi
+\else{\tclose{\ttsl\look}}\fi}
+
+% Check if we are currently using a typewriter font. Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
% argument is to make the input look right: @dmn{pt} instead of
@@ -1182,12 +1329,19 @@ where each line of input produces a line of output.}
\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-\def\l#1{{\li #1}\null} %
+% @l was never documented to mean ``switch to the Lisp font'',
+% and it is not used as such in any manual I can find. We need it for
+% Polish suppressed-l. --karl, 22sep96.
+%\def\l#1{{\li #1}\null}
-\def\r#1{{\rm #1}} % roman font
+\def\r#1{{\rm #1}} % roman font
% Use of \lowercase was suggested.
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
+\def\sc#1{{\smallcaps#1}} % smallcaps font
+\def\ii#1{{\it #1}} % italic font
+
+% @pounds{} is a sterling sign.
+\def\pounds{{\it\$}}
+
\message{page headings,}
@@ -1202,7 +1356,7 @@ where each line of input produces a line of output.}
\def\shorttitlepage{\parsearg\shorttitlepagezzz}
\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
+ \endgroup\page\hbox{}\page}
\def\titlepage{\begingroup \parindent=0pt \textfonts
\let\subtitlerm=\tenrm
@@ -1219,9 +1373,9 @@ where each line of input produces a line of output.}
% Now you can print the title using @title.
\def\title{\parsearg\titlezzz}%
\def\titlezzz##1{\leftline{\titlefont{##1}}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
+ % print a rule at the page bottom also.
+ \finishedtitlepagefalse
+ \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
% No rule at page bottom unless we print one at the top with @title.
\finishedtitlepagetrue
%
@@ -1239,7 +1393,7 @@ where each line of input produces a line of output.}
\let\oldpage = \page
\def\page{%
\iffinishedtitlepage\else
- \finishtitlepage
+ \finishtitlepage
\fi
\oldpage
\let\page = \oldpage
@@ -1327,14 +1481,15 @@ where each line of input produces a line of output.}
%
}% unbind the catcode of @.
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
+% @headings double turns headings on for double-sided printing.
+% @headings single turns headings on for single-sided printing.
+% @headings off turns them off.
+% @headings on same as @headings double, retained for compatibility.
+% @headings after turns on double-sided headings after this page.
+% @headings doubleafter turns on double-sided headings after this page.
% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off.
+% By default, they are off at the start of a document,
+% and turned `on' after @end titlepage.
\def\headings #1 {\csname HEADINGS#1\endcsname}
@@ -1348,22 +1503,24 @@ where each line of input produces a line of output.}
% title on inside top of left hand pages, and page numbers on outside top
% edge of all pages.
\def\HEADINGSdouble{
-%\pagealignmacro
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
}
+\let\contentsalignmacro = \chappager
+
% For single-sided printing, chapter title goes across top left of page,
% page number on top right.
\def\HEADINGSsingle{
-%\pagealignmacro
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\thischapter\hfil\folio}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
}
\def\HEADINGSon{\HEADINGSdouble}
@@ -1374,6 +1531,7 @@ where each line of input produces a line of output.}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
}
\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
@@ -1382,6 +1540,7 @@ where each line of input produces a line of output.}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\thischapter\hfil\folio}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
}
% Subroutines used in generating headings
@@ -1405,6 +1564,7 @@ July\or August\or September\or October\or November\or December\fi
\def\settitle{\parsearg\settitlezzz}
\def\settitlezzz #1{\gdef\thistitle{#1}}
+
\message{tables,}
% @tabs -- simple alignment
@@ -1437,7 +1597,7 @@ July\or August\or September\or October\or November\or December\fi
\newif\ifitemxneedsnegativevskip
-\def\itemxpar{\par\ifitemxneedsnegativevskip\vskip-\parskip\nobreak\fi}
+\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
\def\internalBitem{\smallbreak \parsearg\itemzzz}
\def\internalBitemx{\itemxpar \parsearg\itemzzz}
@@ -1544,7 +1704,7 @@ July\or August\or September\or October\or November\or December\fi
\def\tablez #1#2#3#4#5#6{%
\aboveenvbreak %
\begingroup %
-\def\Edescription{\Etable}% Neccessary kludge.
+\def\Edescription{\Etable}% Necessary kludge.
\let\itemindex=#1%
\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
\ifnum 0#4>0 \tableindent=#4\mil \fi %
@@ -1708,10 +1868,10 @@ July\or August\or September\or October\or November\or December\fi
\flushcr}
% @multitable macros
-% Amy Hendrickson, 8/18/94
+% Amy Hendrickson, 8/18/94, 3/6/96
%
-% @multitable ... @endmultitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
+% @multitable ... @end multitable will make as many columns as desired.
+% Contents of each column will wrap at width given in preamble. Width
% can be specified either with sample text given in a template line,
% or in percent of \hsize, the current width of text on page.
@@ -1720,25 +1880,35 @@ July\or August\or September\or October\or November\or December\fi
% To make preamble:
%
% Either define widths of columns in terms of percent of \hsize:
-% @multitable @percentofhsize .2 .3 .5
+% @multitable @columnfractions .25 .3 .45
% @item ...
%
-% Numbers following @percentofhsize are the percent of the total
+% Numbers following @columnfractions are the percent of the total
% current hsize to be used for each column. You may use as many
% columns as desired.
+
% Or use a template:
% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
% @item ...
% using the widest term desired in each column.
-
+%
+% For those who want to use more than one line's worth of words in
+% the preamble, break the line within one argument and it
+% will parse correctly, i.e.,
+%
+% @multitable {Column 1 template} {Column 2 template} {Column 3
+% template}
+% Not:
+% @multitable {Column 1 template} {Column 2 template}
+% {Column 3 template}
% Each new table line starts with @item, each subsequent new column
% starts with @tab. Empty columns may be produced by supplying @tab's
% with nothing between them for as many times as empty columns are needed,
% ie, @tab@tab@tab will produce two empty columns.
-% @item, @tab, @multicolumn or @endmulticolumn do not need to be on their
+% @item, @tab, @multitable or @end multitable do not need to be on their
% own lines, but it will not hurt if they are.
% Sample multitable:
@@ -1756,71 +1926,86 @@ July\or August\or September\or October\or November\or December\fi
%
% They will wrap at the width determined by the template.
% @item@tab@tab This will be in third column.
-% @endmultitable
+% @end multitable
% Default dimensions may be reset by user.
-% @intableparskip will set vertical space between paragraphs in table.
-% @intableparindent will set paragraph indent in table.
-% @spacebetweencols will set horizontal space to be left between columns.
-% @spacebetweenlines will set vertical space to be left between lines.
+% @multitableparskip is vertical space between paragraphs in table.
+% @multitableparindent is paragraph indent in table.
+% @multitablecolmargin is horizontal space to be left between columns.
+% @multitablelinespace is space to leave between table items, baseline
+% to baseline.
+% 0pt means it depends on current normal line spacing.
%%%%
% Dimensions
-\newdimen\intableparskip
-\newdimen\intableparindent
-\newdimen\spacebetweencols
-\newdimen\spacebetweenlines
-\intableparskip=0pt
-\intableparindent=6pt
-\spacebetweencols=12pt
-\spacebetweenlines=12pt
+\newskip\multitableparskip
+\newskip\multitableparindent
+\newdimen\multitablecolspace
+\newskip\multitablelinespace
+\multitableparskip=0pt
+\multitableparindent=6pt
+\multitablecolspace=12pt
+\multitablelinespace=0pt
%%%%
% Macros used to set up halign preamble:
\let\endsetuptable\relax
\def\xendsetuptable{\endsetuptable}
-\let\percentofhsize\relax
-\def\xpercentofhsize{\percentofhsize}
+\let\columnfractions\relax
+\def\xcolumnfractions{\columnfractions}
\newif\ifsetpercent
+%% 2/1/96, to allow fractions to be given with more than one digit.
+\def\pickupwholefraction#1 {\global\advance\colcount by1 %
+\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
+\setuptable}
+
\newcount\colcount
\def\setuptable#1{\def\firstarg{#1}%
\ifx\firstarg\xendsetuptable\let\go\relax%
\else
- \ifx\firstarg\xpercentofhsize\global\setpercenttrue%
+ \ifx\firstarg\xcolumnfractions\global\setpercenttrue%
\else
\ifsetpercent
- \if#1.\else%
- \global\advance\colcount by1 %
- \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
- \fi
+ \let\go\pickupwholefraction % In this case arg of setuptable
+ % is the decimal point before the
+ % number given in percent of hsize.
+ % We don't need this so we don't use it.
\else
\global\advance\colcount by1
- \setbox0=\hbox{#1}%
+ \setbox0=\hbox{#1 }% 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%
- \let\go\setuptable%
+\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
\fi\go}
+
%%%%
% multitable syntax
-\def\tab{&}
+\def\tab{&\hskip1sp\relax} % 2/2/96
+ % tiny skip here makes sure this column space is
+ % maintained, even if it is never used.
+
%%%%
-% @multitable ... @endmultitable definitions:
+% @multitable ... @end multitable definitions:
-\def\multitable#1\item{\bgroup
+\def\multitable{\parsearg\dotable}
+
+\def\dotable#1{\bgroup
\let\item\cr
\tolerance=9500
\hbadness=9500
-\parskip=\intableparskip
-\parindent=\intableparindent
+\setmultitablespacing
+\parskip=\multitableparskip
+\parindent=\multitableparindent
\overfullrule=0pt
\global\colcount=0\relax%
\def\Emultitable{\global\setpercentfalse\global\everycr{}\cr\egroup\egroup}%
% To parse everything between @multitable and @item :
-\def\one{#1}\expandafter\setuptable\one\endsetuptable
+\setuptable#1 \endsetuptable
% Need to reset this to 0 after \setuptable.
\global\colcount=0\relax%
%
@@ -1829,11 +2014,11 @@ July\or August\or September\or October\or November\or December\fi
% \vtop will set a single line and will also let text wrap and
% continue for many paragraphs if desired.
\halign\bgroup&\global\advance\colcount by 1\relax%
-\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
+\multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
% In order to keep entries from bumping into each other
- % we will add a \leftskip of \spacebetweencols to all columns after
+ % we will add a \leftskip of \multitablecolspace to all columns after
% the first one.
- % If a template has been used, we will add \spacebetweencols
+ % If a template has been used, we will add \multitablecolspace
% to the width of each template entry.
% If user has set preamble in terms of percent of \hsize
% we will use that dimension as the width of the column, and
@@ -1845,20 +2030,46 @@ July\or August\or September\or October\or November\or December\fi
\ifsetpercent
\else
% If user has <not> set preamble in terms of percent of \hsize
- % we will advance \hsize by \spacebetweencols
- \advance\hsize by \spacebetweencols
+ % we will advance \hsize by \multitablecolspace
+ \advance\hsize by \multitablecolspace
\fi
- % In either case we will make \leftskip=\spacebetweencols:
-\leftskip=\spacebetweencols
+ % In either case we will make \leftskip=\multitablecolspace:
+\leftskip=\multitablecolspace
\fi
-\noindent##}\cr%
+\noindent##\multistrut}\cr%
% \everycr will reset column counter, \colcount, at the end of
% each line. Every column entry will cause \colcount to advance by one.
% The table preamble
% looks at the current \colcount to find the correct column width.
-\global\everycr{\noalign{\nointerlineskip\vskip\spacebetweenlines
+\global\everycr{\noalign{%
\filbreak%% keeps underfull box messages off when table breaks over pages.
-\global\colcount=0\relax}}}
+\global\colcount=0\relax}}
+}
+
+\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
+% If so, do nothing. If not, give it an appropriate dimension based on
+% current baselineskip.
+\ifdim\multitablelinespace=0pt
+%% strut to put in table in case some entry doesn't have descenders,
+%% to keep lines equally spaced
+\let\multistrut = \strut
+%% Test to see if parskip is larger than space between lines of
+%% table. If not, do nothing.
+%% If so, set to same dimension as multitablelinespace.
+\else
+\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
+width0pt\relax} \fi
+\ifdim\multitableparskip>\multitablelinespace
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi%
+\ifdim\multitableparskip=0pt
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi}
+
\message{indexing,}
% Index generation facilities
@@ -1872,14 +2083,14 @@ July\or August\or September\or October\or November\or December\fi
% It automatically defines \fooindex such that
% \fooindex ...rest of line... puts an entry in the index foo.
% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
+% the file that accumulates this index. The file's extension is foo.
% The name of an index should be no more than 2 characters long
% for the sake of vms.
\def\newindex #1{
\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\doindex {#1}}
}
@@ -1891,8 +2102,8 @@ July\or August\or September\or October\or November\or December\fi
\def\newcodeindex #1{
\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\docodeindex {#1}}
}
@@ -1903,7 +2114,7 @@ July\or August\or September\or October\or November\or December\fi
\def\synindex #1 #2 {%
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\doindex {#2}}%
}
@@ -1912,7 +2123,7 @@ July\or August\or September\or October\or November\or December\fi
\def\syncodeindex #1 #2 {%
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
+\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
\noexpand\docodeindex {#2}}%
}
@@ -1960,24 +2171,31 @@ July\or August\or September\or October\or November\or December\fi
\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.
+%\let\{ = \lbracecmd
+%\let\} = \rbracecmd
\def\_{{\realbackslash _}}%
\def\w{\realbackslash w }%
\def\bf{\realbackslash bf }%
-\def\rm{\realbackslash rm }%
+%\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\char{\realbackslash char}%
+%\def\char{\realbackslash char}%
\def\TeX{\realbackslash TeX}%
\def\dots{\realbackslash dots }%
\def\copyright{\realbackslash copyright }%
\def\tclose##1{\realbackslash tclose {##1}}%
\def\code##1{\realbackslash code {##1}}%
+\def\dotless##1{\realbackslash dotless {##1}}%
\def\samp##1{\realbackslash samp {##1}}%
-\def\t##1{\realbackslash r {##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}}%
@@ -1988,8 +2206,15 @@ July\or August\or September\or October\or November\or December\fi
\def\kbd##1{\realbackslash kbd {##1}}%
\def\dfn##1{\realbackslash dfn {##1}}%
\def\emph##1{\realbackslash emph {##1}}%
+\unsepspaces
}
+% 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 \ ).
+{\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}
@@ -1998,6 +2223,7 @@ July\or August\or September\or October\or November\or December\fi
\def\indexnofonts{%
% Just ignore accents.
+\let\,=\indexdummyfont
\let\"=\indexdummyfont
\let\`=\indexdummyfont
\let\'=\indexdummyfont
@@ -2010,6 +2236,7 @@ July\or August\or September\or October\or November\or December\fi
\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}%
@@ -2043,6 +2270,7 @@ July\or August\or September\or October\or November\or December\fi
\let\var=\indexdummyfont
\let\TeX=\indexdummytex
\let\dots=\indexdummydots
+\def\@{@}%
}
% To define \realbackslash, we must make \ not be an escape.
@@ -2058,29 +2286,37 @@ July\or August\or September\or October\or November\or December\fi
% workhorse for all \fooindexes
% #1 is name of index, #2 is stuff to put there
\def\doind #1#2{%
-% Put the index entry in the margin if desired.
-\ifx\SETmarginindex\relax\else%
-\insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
-\fi%
-{\count10=\lastpenalty %
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\escapechar=`\\%
-{\let\folio=0% Expand all macros now EXCEPT \folio
-\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
-% so it will be output as is; and it will print as backslash in the indx.
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}}}%
-\temp }%
-}\penalty\count10}}
+ % Put the index entry in the margin if desired.
+ \ifx\SETmarginindex\relax\else
+ \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
+ \fi
+ {%
+ \count255=\lastpenalty
+ {%
+ \indexdummies % Must do this here, since \bf, etc expand at this stage
+ \escapechar=`\\
+ {%
+ \let\folio=0 % We will expand all macros now EXCEPT \folio.
+ \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
+ % so it will be output as is; and it will print as backslash.
+ %
+ % First process the index-string with all font commands turned off
+ % to get the string to sort by.
+ {\indexnofonts \xdef\indexsorttmp{#2}}%
+ %
+ % Now produce the complete index entry, with both the sort key and the
+ % original text, including any font commands.
+ \toks0 = {#2}%
+ \edef\temp{%
+ \write\csname#1indfile\endcsname{%
+ \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
+ }%
+ \temp
+ }%
+ }%
+ \penalty\count255
+ }%
+}
\def\dosubind #1#2#3{%
{\count10=\lastpenalty %
@@ -2141,26 +2377,19 @@ July\or August\or September\or October\or November\or December\fi
\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{%
- \tex
- \dobreak \chapheadingskip {10000}
- \catcode`\%=\other\catcode`\&=\other\catcode`\#=\other
- \catcode`\$=\other
- \catcode`\~=\other
- \indexbreaks
+\def\doprintindex#1{\begingroup
+ \dobreak \chapheadingskip{10000}%
%
- % The following don't help, since the chars were translated
- % when the raw index was written, and their fonts were discarded
- % due to \indexnofonts.
- %\catcode`\"=\active
- %\catcode`\^=\active
- %\catcode`\_=\active
- %\catcode`\|=\active
- %\catcode`\<=\active
- %\catcode`\>=\active
- % %
- \def\indexbackslash{\rawbackslashxx}
- \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt
+ \indexfonts \rm
+ \tolerance = 9500
+ \indexbreaks
+ \def\indexbackslash{\rawbackslashxx}%
+ % Index files are almost Texinfo source, but we use \ as the escape
+ % character. It would be better to use @, but that's too big a change
+ % to make right now.
+ \catcode`\\ = 0
+ \catcode`\@ = 11
+ \escapechar = `\\
\begindoublecolumns
%
% See if the index file exists and is nonempty.
@@ -2171,7 +2400,7 @@ July\or August\or September\or October\or November\or December\fi
% index. The easiest way to prevent this problem is to make sure
% there is some text.
(Index is nonexistent)
- \else
+ \else
%
% If the index file exists but is empty, then \openin leaves \ifeof
% false. We have to make TeX try to read something from the file, so
@@ -2185,8 +2414,7 @@ July\or August\or September\or October\or November\or December\fi
\fi
\closein 1
\enddoublecolumns
- \Etex
-}
+\endgroup}
% These macros are used by the sorted index file itself.
% Change them to control the appearance of the index.
@@ -2240,7 +2468,7 @@ July\or August\or September\or October\or November\or December\fi
%
% Insert the text of the index entry. TeX will do line-breaking on it.
#1%
- % The following is kluged to not output a line of dots in the index if
+ % The following is kludged to not output a line of dots in the index if
% there are no page numbers. The next person who breaks this will be
% cursed by a Unix daemon.
\def\tempa{{\rm }}%
@@ -2277,15 +2505,15 @@ July\or August\or September\or October\or November\or December\fi
\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
}}
-%% Define two-column mode, which is used in indexes.
-%% Adapted from the TeXbook, page 416.
-\catcode `\@=11
+% Define two-column mode, which we use to typeset indexes.
+% Adapted from the TeXbook, page 416, which is to say,
+% the manmac.tex format used to print the TeXbook itself.
+\catcode`\@=11
\newbox\partialpage
-
\newdimen\doublecolumnhsize
-\def\begindoublecolumns{\begingroup
+\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
% Grab any single-column material above us.
\output = {\global\setbox\partialpage
=\vbox{\unvbox255\kern -\topskip \kern \baselineskip}}%
@@ -2318,51 +2546,51 @@ July\or August\or September\or October\or November\or December\fi
% Double the \vsize as well. (We don't need a separate register here,
% since nobody clobbers \vsize.)
\vsize = 2\vsize
- \doublecolumnpagegoal
}
-
-\def\enddoublecolumns{\eject \endgroup \pagegoal=\vsize \unvbox\partialpage}
-
-\def\doublecolumnsplit{\splittopskip=\topskip \splitmaxdepth=\maxdepth
- \global\dimen@=\pageheight \global\advance\dimen@ by-\ht\partialpage
- \global\setbox1=\vsplit255 to\dimen@ \global\setbox0=\vbox{\unvbox1}
- \global\setbox3=\vsplit255 to\dimen@ \global\setbox2=\vbox{\unvbox3}
- \ifdim\ht0>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi
- \ifdim\ht2>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi
+\def\doublecolumnout{%
+ \splittopskip=\topskip \splitmaxdepth=\maxdepth
+ % Get the available space for the double columns -- the normal
+ % (undoubled) page height minus any material left over from the
+ % previous page.
+ \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
+ % box0 will be the left-hand column, box1 the right.
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255 \penalty\outputpenalty
}
-\def\doublecolumnpagegoal{%
- \dimen@=\vsize \advance\dimen@ by-2\ht\partialpage \global\pagegoal=\dimen@
+\def\pagesofar{%
+ % The contents of the output page -- any previous material,
+ % followed by the two boxes we just split.
+ \unvbox\partialpage
+ \hsize = \doublecolumnhsize
+ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}%
}
-\def\pagesofar{\unvbox\partialpage %
- \hsize=\doublecolumnhsize % have to restore this since output routine
- \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
-\def\doublecolumnout{%
- \setbox5=\copy255
- {\vbadness=10000 \doublecolumnsplit}
- \ifvbox255
- \setbox0=\vtop to\dimen@{\unvbox0}
- \setbox2=\vtop to\dimen@{\unvbox2}
- \onepageout\pagesofar \unvbox255 \penalty\outputpenalty
- \else
- \setbox0=\vbox{\unvbox5}
- \ifvbox0
- \dimen@=\ht0 \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
- \divide\dimen@ by2 \splittopskip=\topskip \splitmaxdepth=\maxdepth
- {\vbadness=10000
- \loop \global\setbox5=\copy0
- \setbox1=\vsplit5 to\dimen@
- \setbox3=\vsplit5 to\dimen@
- \ifvbox5 \global\advance\dimen@ by1pt \repeat
- \setbox0=\vbox to\dimen@{\unvbox1}
- \setbox2=\vbox to\dimen@{\unvbox3}
- \global\setbox\partialpage=\vbox{\pagesofar}
- \doublecolumnpagegoal
- }
- \fi
- \fi
+\def\enddoublecolumns{%
+ \output={\balancecolumns}\eject % split what we have
+ \endgroup
+ % Back to normal single-column typesetting, but take account of the
+ % fact that we just accumulated some stuff on the output page.
+ \pagegoal=\vsize
+}
+\def\balancecolumns{%
+ % Called on the last page of the double column material.
+ \setbox0=\vbox{\unvbox255}%
+ \dimen@ = \ht0
+ \advance\dimen@ by \topskip
+ \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by 2
+ \splittopskip = \topskip
+ % Loop until we get a decent breakpoint.
+ {\vbadness=10000 \loop \global\setbox3=\copy0
+ \global\setbox1=\vsplit3 to\dimen@
+ \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}%
+ \setbox0=\vbox to\dimen@{\unvbox1}%
+ \setbox2=\vbox to\dimen@{\unvbox3}%
+ \pagesofar
}
-
\catcode `\@=\other
+
+
\message{sectioning,}
% Define chapters, sections, etc.
@@ -2534,6 +2762,10 @@ July\or August\or September\or October\or November\or December\fi
\global\let\subsubsection = \appendixsubsubsec
}}
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\def\centerchap{\parsearg\centerchapyyy}
+\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
+
\outer\def\top{\parsearg\unnumberedyyy}
\outer\def\unnumbered{\parsearg\unnumberedyyy}
\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
@@ -2578,7 +2810,7 @@ July\or August\or September\or October\or November\or December\fi
\penalty 10000 %
}}
-\outer\def\appenixsection{\parsearg\appendixsecyyy}
+\outer\def\appendixsection{\parsearg\appendixsecyyy}
\outer\def\appendixsec{\parsearg\appendixsecyyy}
\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
\def\appendixsectionzzz #1{\seccheck{appendixsection}%
@@ -2636,7 +2868,7 @@ July\or August\or September\or October\or November\or December\fi
\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
+\plainsubsecheading {#1}\gdef\thissection{#1}%
{\chapternofonts%
\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}%
\escapechar=`\\%
@@ -2681,7 +2913,7 @@ July\or August\or September\or October\or November\or December\fi
\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
+\plainsubsubsecheading {#1}\gdef\thissection{#1}%
{\chapternofonts%
\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}%
\escapechar=`\\%
@@ -2719,10 +2951,10 @@ July\or August\or September\or October\or November\or December\fi
% NOTE on use of \vbox for chapter headings, section headings, and
% such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
+% 1) We use \vbox rather than the earlier \line to permit
+% overlong headings to fold.
+% 2) \hyphenpenalty is set to 10000 because hyphenation in a
+% heading is obnoxious; this forbids it.
% 3) Likewise, headings look best if no \parindent is used, and
% if justification is not attempted. Hence \raggedright.
@@ -2740,11 +2972,10 @@ July\or August\or September\or October\or November\or December\fi
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\penalty 200}
-\def\heading{\parsearg\secheadingi}
-
-\def\subheading{\parsearg\subsecheadingi}
-
-\def\subsubheading{\parsearg\subsubsecheadingi}
+% @heading, @subheading, @subsubheading.
+\def\heading{\parsearg\plainsecheading}
+\def\subheading{\parsearg\plainsubsecheading}
+\def\subsubheading{\parsearg\plainsubsubsecheading}
% These macros generate a chapter, section, etc. heading only
% (including whitespace, linebreaking, etc. around it),
@@ -2758,7 +2989,7 @@ July\or August\or September\or October\or November\or December\fi
%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-\newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt
+\newskip\chapheadingskip
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
@@ -2767,15 +2998,18 @@ July\or August\or September\or October\or November\or December\fi
\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
\def\CHAPPAGoff{
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chapbreak
\global\let\pagealignmacro=\chappager}
\def\CHAPPAGon{
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chappager
\global\let\pagealignmacro=\chappager
\global\def\HEADINGSon{\HEADINGSsingle}}
\def\CHAPPAGodd{
+\global\let\contentsalignmacro = \chapoddpage
\global\let\pchapsepmacro=\chapoddpage
\global\let\pagealignmacro=\chapoddpage
\global\def\HEADINGSon{\HEADINGSdouble}}
@@ -2784,25 +3018,39 @@ July\or August\or September\or October\or November\or December\fi
\def\CHAPFplain{
\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain}
+\global\let\unnumbchapmacro=\unnchfplain
+\global\let\centerchapmacro=\centerchfplain}
-\def\chfplain #1#2{%
+% Plain chapter opening.
+% #1 is the text, #2 the chapter number or empty if unnumbered.
+\def\chfplain#1#2{%
\pchapsepmacro
{%
- \chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #2\enspace #1}%
+ \chapfonts \rm
+ \def\chapnum{#2}%
+ \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent = \wd0 \centerparametersmaybe
+ \unhbox0 #1\par}%
}%
- \bigskip
- \penalty5000
+ \nobreak\bigskip % no page break after a chapter title
+ \nobreak
}
-\def\unnchfplain #1{%
-\pchapsepmacro %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 10000 %
-}
+% Plain opening for unnumbered.
+\def\unnchfplain#1{\chfplain{#1}{}}
+
+% @centerchap -- centered and unnumbered.
+\let\centerparametersmaybe = \relax
+\def\centerchfplain#1{{%
+ \def\centerparametersmaybe{%
+ \advance\rightskip by 3\rightskip
+ \leftskip = \rightskip
+ \parfillskip = 0pt
+ }%
+ \chfplain{#1}{}%
+}}
+
\CHAPFplain % The default
\def\unnchfopen #1{%
@@ -2816,73 +3064,81 @@ July\or August\or September\or October\or November\or December\fi
\par\penalty 5000 %
}
+\def\centerchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt
+ \hfill {\rm #1}\hfill}}\bigskip \par\penalty 10000 %
+}
+
\def\CHAPFopen{
\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen}
+\global\let\unnumbchapmacro=\unnchfopen
+\global\let\centerchapmacro=\centerchfopen}
-% Parameter controlling skip before section headings.
-\newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt
+% Section titles.
+\newskip\secheadingskip
+\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
+\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
+\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
+
+% Subsection titles.
+\newskip \subsecheadingskip
\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
+\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
+\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-\newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
+% Subsubsection titles.
+\let\subsubsecheadingskip = \subsecheadingskip
+\let\subsubsecheadingbreak = \subsecheadingbreak
+\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
+\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-% @paragraphindent is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-% Section fonts are the base font at magstep2, which produces
-% a size a bit more than 14 points in the default situation.
-
-\def\secheading #1#2#3{\secheadingi {#2.#3\enspace #1}}
-\def\plainsecheading #1{\secheadingi {#1}}
-\def\secheadingi #1{{\advance \secheadingskip by \parskip %
-\secheadingbreak}%
-{\secfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
-
-
-% Subsection fonts are the base font at magstep1,
-% which produces a size of 12 points.
-
-\def\subsecheading #1#2#3#4{\subsecheadingi {#2.#3.#4\enspace #1}}
-\def\subsecheadingi #1{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\subsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
-
-\def\subsubsecfonts{\subsecfonts} % Maybe this should change:
- % Perhaps make sssec fonts scaled
- % magstep half
-\def\subsubsecheading #1#2#3#4#5{\subsubsecheadingi {#2.#3.#4.#5\enspace #1}}
-\def\subsubsecheadingi #1{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\subsubsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000}
+% Print any size section title.
+%
+% #1 is the section type (sec/subsec/subsubsec), #2 is the section
+% number (maybe empty), #3 the text.
+\def\sectionheading#1#2#3{%
+ {%
+ \expandafter\advance\csname #1headingskip\endcsname by \parskip
+ \csname #1headingbreak\endcsname
+ }%
+ {%
+ % Switch to the right set of fonts.
+ \csname #1fonts\endcsname \rm
+ %
+ % Only insert the separating space if we have a section number.
+ \def\secnum{#2}%
+ \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
+ %
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent = \wd0 % zero if no section number
+ \unhbox0 #3}%
+ }%
+ \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
+}
\message{toc printing,}
-
% Finish up the main text and prepare to read what we've written
% to \contentsfile.
\newskip\contentsrightmargin \contentsrightmargin=1in
\def\startcontents#1{%
- \pagealignmacro
+ % If @setchapternewpage on, and @headings double, the contents should
+ % start on an odd page, unlike chapters. Thus, we maintain
+ % \contentsalignmacro in parallel with \pagealignmacro.
+ % From: Torbjorn Granlund <tege@matematik.su.se>
+ \contentsalignmacro
\immediate\closeout \contentsfile
\ifnum \pageno>0
- \pageno = -1 % Request roman numbered pages.
+ \pageno = -1 % Request roman numbered pages.
\fi
% Don't need to put `Contents' or `Short Contents' in the headline.
% It is abundantly clear what they are.
\unnumbchapmacro{#1}\def\thischapter{}%
- \begingroup % Set up to handle contents files properly.
+ \begingroup % Set up to handle contents files properly.
\catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
\raggedbottom % Worry more about breakpoints than the bottom.
@@ -2908,6 +3164,7 @@ July\or August\or September\or October\or November\or December\fi
\secfonts
\let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
\rm
+ \hyphenpenalty = 10000
\advance\baselineskip by 1pt % Open it up a little.
\def\secentry ##1##2##3##4{}
\def\unnumbsecentry ##1##2{}
@@ -2951,7 +3208,7 @@ July\or August\or September\or October\or November\or December\fi
% This space should be plenty, since a single number is .5em, and the
% widest letter (M) is 1em, at least in the Computer Modern fonts.
% (This space doesn't include the extra space that gets added after
- % the label; that gets put in in \shortchapentry above.)
+ % the label; that gets put in by \shortchapentry above.)
\advance\dimen0 by 1.1em
\hbox to \dimen0{#1\hfil}%
}
@@ -2972,22 +3229,21 @@ July\or August\or September\or October\or November\or December\fi
\dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
% This parameter controls the indentation of the various levels.
\newdimen\tocindent \tocindent = 3pc
% Now for the actual typesetting. In all these, #1 is the text and #2 is the
% page number.
%
-% If the toc has to be broken over pages, we would want to be at chapters
+% If the toc has to be broken over pages, we want it to be at chapters
% if at all possible; hence the \penalty.
\def\dochapentry#1#2{%
- \penalty-300 \vskip\baselineskip
+ \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
\begingroup
\chapentryfonts
\tocentry{#1}{\dopageno{#2}}%
\endgroup
- \nobreak\vskip .25\baselineskip
+ \nobreak\vskip .25\baselineskip plus.1\baselineskip
}
\def\dosecentry#1#2{\begingroup
@@ -3010,9 +3266,10 @@ July\or August\or September\or October\or November\or December\fi
% can't do that in the \entry macro, since index entries might consist
% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
%
+% \turnoffactive is for the sake of @" used for umlauts.
\def\tocentry#1#2{\begingroup
- \hyphenpenalty = 10000
- \entry{#1}{#2}%
+ \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
+ \entry{\turnoffactive #1}{\turnoffactive #2}%
\endgroup}
% Space between chapter (or whatever) number and the title.
@@ -3036,8 +3293,6 @@ July\or August\or September\or October\or November\or December\fi
\newbox\pushcharbox \newbox\bullbox
\newbox\equivbox \newbox\errorbox
-\let\ptexequiv = \equiv
-
%{\tentt
%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
@@ -3048,12 +3303,11 @@ July\or August\or September\or October\or November\or December\fi
% 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}}
% Adapted from the TeXbook's \boxit.
@@ -3085,7 +3339,7 @@ July\or August\or September\or October\or November\or December\fi
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
\catcode `\%=14
-\catcode 43=12
+\catcode 43=12 % plus
\catcode`\"=12
\catcode`\==12
\catcode`\|=12
@@ -3093,16 +3347,18 @@ July\or August\or September\or October\or November\or December\fi
\catcode`\>=12
\escapechar=`\\
%
+\let\,=\ptexcomma
\let\~=\ptextilde
\let\{=\ptexlbrace
\let\}=\ptexrbrace
\let\.=\ptexdot
\let\*=\ptexstar
\let\dots=\ptexdots
+\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}
+\def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}
\def\@{@}%
\let\bullet=\ptexbullet
-\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl
-\let\L=\ptexL
+\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext
%
\let\Etex=\endgroup}
@@ -3161,50 +3417,50 @@ July\or August\or September\or October\or November\or December\fi
\def\cbl{{\circle\char'012\hskip -6pt}}
\def\cbr{{\hskip 6pt\circle\char'011}}
\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
+ \ctl\leaders\hrule height\circthick\hfil\ctr
+ \hskip\rskip}}
\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
+ \cbl\leaders\hrule height\circthick\hfil\cbr
+ \hskip\rskip}}
%
\newskip\lskip\newskip\rskip
\long\def\cartouche{%
\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
+ \lskip=\leftskip \rskip=\rightskip
+ \leftskip=0pt\rightskip=0pt %we want these *outside*.
+ \cartinner=\hsize \advance\cartinner by-\lskip
+ \advance\cartinner by-\rskip
+ \cartouter=\hsize
+ \advance\cartouter by 18pt % allow for 3pt kerns on either
+% side, and for 6pt waste from
+% each corner char
+ \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+ % Flag to tell @lisp, etc., not to narrow margin.
+ \let\nonarrowing=\comment
+ \vbox\bgroup
+ \baselineskip=0pt\parskip=0pt\lineskip=0pt
+ \carttop
+ \hbox\bgroup
+ \hskip\lskip
+ \vrule\kern3pt
+ \vbox\bgroup
+ \hsize=\cartinner
+ \kern3pt
+ \begingroup
+ \baselineskip=\normbskip
+ \lineskip=\normlskip
+ \parskip=\normpskip
+ \vskip -\parskip
\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
+ \endgroup
+ \kern3pt
+ \egroup
+ \kern3pt\vrule
+ \hskip\rskip
+ \egroup
+ \cartbot
+ \egroup
\endgroup
}}
@@ -3267,8 +3523,7 @@ July\or August\or September\or October\or November\or December\fi
\let\Esmalllisp = \nonfillfinish
\let\Esmallexample = \nonfillfinish
%
- % Smaller interline space and fonts for small examples.
- \setleading{10pt}%
+ % Smaller fonts for small examples.
\indexfonts \tt
\rawbackslash % make \ output the \ character from the current font (tt)
\gobble
@@ -3796,6 +4051,7 @@ July\or August\or September\or October\or November\or December\fi
\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
+
\message{cross reference,}
% Define cross-reference macros
\newwrite \auxfile
@@ -3803,6 +4059,11 @@ July\or August\or September\or October\or November\or December\fi
\newif\ifhavexrefs % True if xref values are known.
\newif\ifwarnedxrefs % True if we warned once that they aren't known.
+% @inforef is simple.
+\def\inforef #1{\inforefzzz #1,,,,**}
+\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+ node \samp{\ignorespaces#1{}}}
+
% \setref{foo} defines a cross-reference point named foo.
\def\setref#1{%
@@ -3836,7 +4097,10 @@ July\or August\or September\or October\or November\or December\fi
\setbox0=\hbox{\printednodename}%
\ifdim \wd0 = 0pt
% No printed node name was explicitly given.
- \ifx\SETxref-automatic-section-title\relax %
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
+ % Use the node name inside the square brackets.
+ \def\printednodename{\ignorespaces #1}%
+ \else
% Use the actual chapter/section title appear inside
% the square brackets. Use the real section title if we have it.
\ifdim \wd1>0pt%
@@ -3845,16 +4109,12 @@ July\or August\or September\or October\or November\or December\fi
\else
\ifhavexrefs
% We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}}%
+ \def\printednodename{\refx{#1-title}{}}%
\else
% Otherwise just copy the Info node name.
\def\printednodename{\ignorespaces #1}%
\fi%
\fi
- \def\printednodename{#1-title}%
- \else
- % Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
\fi
\fi
%
@@ -4039,7 +4299,8 @@ July\or August\or September\or October\or November\or December\fi
% The trailing space in the following definition for supereject is
% vital for proper filling; pages come out unaligned when you do a
% pagealignmacro call if that space before the closing brace is
-% removed.
+% removed. (Generally, numeric constants should always be followed by a
+% space to prevent strange expansion errors.)
\def\supereject{\par\penalty -20000\footnoteno =0 }
% @footnotestyle is meaningful for info output only..
@@ -4164,13 +4425,18 @@ July\or August\or September\or October\or November\or December\fi
% Set some numeric style parameters, for 8.5 x 11 format.
-%\hsize = 6.5in
+\hsize = 6in
+\hoffset = .25in
\newdimen\defaultparindent \defaultparindent = 15pt
\parindent = \defaultparindent
-\parskip 18pt plus 1pt
-\setleading{15pt}
+\parskip 3pt plus 2pt minus 1pt
+\setleading{13.2pt}
\advance\topskip by 1.2cm
+\chapheadingskip = 15pt plus 4pt minus 2pt
+\secheadingskip = 12pt plus 3pt minus 2pt
+\subsecheadingskip = 9pt plus 2pt minus 2pt
+
% Prevent underfull vbox error messages.
\vbadness=10000
@@ -4193,30 +4459,28 @@ July\or August\or September\or October\or November\or December\fi
% Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25)
\def\smallbook{
-
-% These values for secheadingskip and subsecheadingskip are
-% experiments. RJC 7 Aug 1992
-\global\secheadingskip = 17pt plus 6pt minus 3pt
-\global\subsecheadingskip = 14pt plus 6pt minus 3pt
-
-\global\lispnarrowing = 0.3in
-\setleading{12pt}
-\advance\topskip by -1cm
-\global\parskip 3pt plus 1pt
-\global\hsize = 5in
-\global\vsize=7.5in
-\global\tolerance=700
-\global\hfuzz=1pt
-\global\contentsrightmargin=0pt
-\global\deftypemargin=0pt
-\global\defbodyindent=.5cm
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-
-\global\let\smalllisp=\smalllispx
-\global\let\smallexample=\smalllispx
-\global\def\Esmallexample{\Esmalllisp}
+ \global\chapheadingskip = 15pt plus 4pt minus 2pt
+ \global\secheadingskip = 12pt plus 3pt minus 2pt
+ \global\subsecheadingskip = 9pt plus 2pt minus 2pt
+ %
+ \global\lispnarrowing = 0.3in
+ \setleading{12pt}
+ \advance\topskip by -1cm
+ \global\parskip 2pt plus 1pt
+ \global\hsize = 5in
+ \global\vsize=7.5in
+ \global\tolerance=700
+ \global\hfuzz=1pt
+ \global\contentsrightmargin=0pt
+ \global\deftypemargin=0pt
+ \global\defbodyindent=.5cm
+ %
+ \global\pagewidth=\hsize
+ \global\pageheight=\vsize
+ %
+ \global\let\smalllisp=\smalllispx
+ \global\let\smallexample=\smalllispx
+ \global\def\Esmallexample{\Esmalllisp}
}
% Use @afourpaper to print on European A4 paper.
@@ -4239,12 +4503,19 @@ July\or August\or September\or October\or November\or December\fi
\global\pageheight=\vsize
}
+\bindingoffset=0pt
+\normaloffset=\hoffset
+\pagewidth=\hsize
+\pageheight=\vsize
+
% Allow control of the text dimensions. Parameters in order: textheight;
-% textwidth; \voffset; \hoffset (!); binding offset. All require a dimension;
+% textwidth; voffset; hoffset; binding offset; topskip.
+% All require a dimension;
% header is additional; added length extends the bottom of the page.
-\def\changepagesizes#1#2#3#4#5{
+\def\changepagesizes#1#2#3#4#5#6{
\global\vsize= #1
+ \global\topskip= #6
\advance\vsize by \topskip
\global\voffset= #3
\global\hsize= #2
@@ -4257,13 +4528,20 @@ July\or August\or September\or October\or November\or December\fi
\global\normaloffset= #4
\global\bindingoffset= #5}
-% This layout is compatible with Latex on A4 paper.
-
-\def\afourlatex{\changepagesizes{22cm}{15cm}{7mm}{4.6mm}{5mm}}
+% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
+% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
+\def\afourlatex
+ {\global\tolerance=700
+ \global\hfuzz=1pt
+ \setleading{12pt}
+ \global\parskip 15pt plus 1pt
+ \advance\baselineskip by 1.6pt
+ \changepagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}
+ }
% Use @afourwide to print on European A4 paper in wide format.
\def\afourwide{\afourpaper
-\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}}
+\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}}
% Define macros to output various characters with catcode for normal text.
\catcode`\"=\other
@@ -4312,14 +4590,7 @@ July\or August\or September\or October\or November\or December\fi
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
% Subroutine for the previous macro.
-\def\_{\lvvmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-% \lvvmode is equivalent in function to \leavevmode.
-% Using \leavevmode runs into trouble when written out to
-% an index file due to the expansion of \leavevmode into ``\unhbox
-% \voidb@x'' ---which looks to TeX like ``\unhbox \voidb\x'' due to our
-% magic tricks with @.
-\def\lvvmode{\vbox to 0pt{}}
+\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
\catcode`\|=\active
\def|{{\tt \char '174}}
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 8dd7f62..1848673 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -1,5 +1,8 @@
# This is the Makefile for the examples subdirectory of readline. -*- text -*-
#
+SHELL = /bin/sh
+RM = rm -f
+
srcdir = @srcdir@
VPATH = .:@srcdir@
top_srcdir = @top_srcdir@
@@ -16,22 +19,32 @@ INCLUDES = -I $(srcdir) -I $(top_srcdir) -I..
CCFLAGS = $(DEFS) $(LOCAL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS)
LDFLAGS = -g -L..
+TERMCAP_LIB = @TERMCAP_LIB@
+
.c.o:
$(CC) $(CCFLAGS) -c $<
EXECUTABLES = fileman rltest rl
+OBJECTS = fileman.o rltest.o rl.o
all: $(EXECUTABLES)
rl: rl.o
- $(CC) $(LDFLAGS) -o $@ rl.o -lreadline -ltermcap
+ $(CC) $(LDFLAGS) -o $@ rl.o -lreadline $(TERMCAP_LIB)
fileman: fileman.o
- $(CC) $(LDFLAGS) -o $@ fileman.o -lreadline -ltermcap
+ $(CC) $(LDFLAGS) -o $@ fileman.o -lreadline $(TERMCAP_LIB)
rltest: rltest.o
- $(CC) $(LDFLAGS) -o $@ rltest.o -lreadline -ltermcap
+ $(CC) $(LDFLAGS) -o $@ rltest.o -lreadline $(TERMCAP_LIB)
+
+clean mostlyclean:
+ $(RM) $(OBJECTS)
+ $(RM) $(EXECUTABLES)
+
+distclean maintainer-clean: clean
+ $(RM) Makefile
-fileman.o: $(srcdir)/fileman.c
-rltest.o: $(srcdir)/rltest.c
-rl.o: $(srcdir)/rl.c
+fileman.o: fileman.c
+rltest.o: rltest.c
+rl.o: rl.c
diff --git a/examples/rl.c b/examples/rl.c
index 6c2f343..ccddd0f 100644
--- a/examples/rl.c
+++ b/examples/rl.c
@@ -12,7 +12,7 @@
#define READLINE_LIBRARY
#if defined (HAVE_CONFIG_H)
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -24,7 +24,9 @@
extern int optind;
extern char *optarg;
+#if !defined (strchr) && !defined (__STDC__)
extern char *strrchr();
+#endif
static char *progname;
static char *deftext;
diff --git a/examples/rltest.c b/examples/rltest.c
index ff3ad5c..453f8ec 100644
--- a/examples/rltest.c
+++ b/examples/rltest.c
@@ -19,12 +19,16 @@
#include "readline.h"
#include "history.h"
+extern HIST_ENTRY **history_list ();
+
main ()
{
- HIST_ENTRY **history_list ();
- char *temp = (char *)NULL;
- char *prompt = "readline$ ";
- int done = 0;
+ char *temp, *prompt;
+ int done;
+
+ temp = (char *)NULL;
+ prompt = "readline$ ";
+ done = 0;
while (!done)
{
@@ -47,18 +51,17 @@ main ()
if (strcmp (temp, "list") == 0)
{
- HIST_ENTRY **list = history_list ();
+ HIST_ENTRY **list;
register int i;
+
+ list = history_list ();
if (list)
{
for (i = 0; list[i]; i++)
- {
- fprintf (stderr, "%d: %s\r\n", i, list[i]->line);
- free (list[i]->line);
- }
- free (list);
+ fprintf (stderr, "%d: %s\r\n", i, list[i]->line);
}
}
free (temp);
}
+ exit (0);
}
diff --git a/funmap.c b/funmap.c
index 702fabd..3946e0f 100644
--- a/funmap.c
+++ b/funmap.c
@@ -94,11 +94,15 @@ static FUNMAP default_funmap[] = {
{ "kill-line", rl_kill_line },
{ "kill-region", rl_kill_region },
{ "kill-word", rl_kill_word },
+ { "menu-complete", rl_menu_complete },
{ "next-history", rl_get_next_history },
{ "non-incremental-forward-search-history", rl_noninc_forward_search },
{ "non-incremental-reverse-search-history", rl_noninc_reverse_search },
{ "non-incremental-forward-search-history-again", rl_noninc_forward_search_again },
{ "non-incremental-reverse-search-history-again", rl_noninc_reverse_search_again },
+#ifdef __CYGWIN32__
+ { "paste-from-clipboard", rl_paste_from_clipboard },
+#endif
{ "possible-completions", rl_possible_completions },
{ "previous-history", rl_get_previous_history },
{ "quoted-insert", rl_quoted_insert },
diff --git a/histexpand.c b/histexpand.c
index de71d78..0dc179a 100644
--- a/histexpand.c
+++ b/histexpand.c
@@ -35,6 +35,9 @@
#endif /* HAVE_STDLIB_H */
#if defined (HAVE_UNISTD_H)
+# ifndef _MINIX
+# include <sys/types.h>
+# endif
# include <unistd.h>
#endif
@@ -47,6 +50,9 @@
#include "history.h"
#include "histlib.h"
+#define HISTORY_WORD_DELIMITERS " \t\n;&()|<>"
+#define HISTORY_QUOTE_CHARACTERS "\"'`"
+
static char error_pointer;
static char *subst_lhs;
@@ -823,8 +829,8 @@ history_expand (hstring, output)
only_printing = modified = 0;
l = strlen (hstring);
- /* Grovel the string. Only backslash can quote the history escape
- character. We also handle arg specifiers. */
+ /* Grovel the string. Only backslash and single quotes can quote the
+ history escape character. We also handle arg specifiers. */
/* Before we grovel forever, see if the history_expansion_char appears
anywhere within the text. */
@@ -852,7 +858,18 @@ history_expand (hstring, output)
for (i = 0; string[i]; i++)
{
cc = string[i + 1];
- if (string[i] == history_expansion_char)
+ /* The history_comment_char, if set, appearing that the beginning
+ of a word signifies that the rest of the line should not have
+ history expansion performed on it.
+ Skip the rest of the line and break out of the loop. */
+ if (history_comment_char && string[i] == history_comment_char &&
+ (i == 0 || member (string[i - 1], HISTORY_WORD_DELIMITERS)))
+ {
+ while (string[i])
+ i++;
+ break;
+ }
+ else if (string[i] == history_expansion_char)
{
if (!cc || member (cc, history_no_expand_chars))
continue;
@@ -867,6 +884,8 @@ 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] == '\'')
{
/* If this is bash, single quotes inhibit history expansion. */
@@ -904,6 +923,8 @@ history_expand (hstring, output)
if (tchar == history_expansion_char)
tchar = -3;
+ else if (tchar == history_comment_char)
+ tchar = -2;
switch (tchar)
{
@@ -939,6 +960,19 @@ history_expand (hstring, output)
break;
}
+ case -2: /* history_comment_char */
+ if (i == 0 || member (string[i - 1], HISTORY_WORD_DELIMITERS))
+ {
+ temp = xmalloc (l - i + 1);
+ strcpy (temp, string + i);
+ ADD_STRING (temp);
+ free (temp);
+ i = l;
+ }
+ else
+ ADD_CHAR (string[i]);
+ break;
+
case -3: /* history_expansion_char */
cc = string[i + 1];
@@ -1238,7 +1272,7 @@ history_tokenize_internal (string, wind, indp)
/* Get word from string + i; */
- if (member (string[i], "\"'`"))
+ if (member (string[i], HISTORY_QUOTE_CHARACTERS))
delimiter = string[i++];
for (; string[i]; i++)
@@ -1262,10 +1296,10 @@ history_tokenize_internal (string, wind, indp)
continue;
}
- if (!delimiter && (member (string[i], " \t\n;&()|<>")))
+ if (!delimiter && (member (string[i], HISTORY_WORD_DELIMITERS)))
break;
- if (!delimiter && member (string[i], "\"'`"))
+ if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS))
delimiter = string[i];
}
diff --git a/histfile.c b/histfile.c
index c3de134..81dda57 100644
--- a/histfile.c
+++ b/histfile.c
@@ -32,7 +32,9 @@
#include <stdio.h>
#include <sys/types.h>
-#include <sys/file.h>
+#ifndef _MINIX
+# include <sys/file.h>
+#endif
#include <sys/stat.h>
#include <fcntl.h>
@@ -129,19 +131,31 @@ read_history_range (filename, from, to)
int from, to;
{
register int line_start, line_end;
- char *input, *buffer = (char *)NULL;
+ char *input, *buffer;
int file, current_line;
struct stat finfo;
+ size_t file_size;
+ buffer = (char *)NULL;
input = history_filename (filename);
file = open (input, O_RDONLY|O_BINARY, 0666);
if ((file < 0) || (fstat (file, &finfo) == -1))
goto error_and_exit;
- buffer = xmalloc ((int)finfo.st_size + 1);
+ file_size = (size_t)finfo.st_size;
+
+ /* check for overflow on very large files */
+ if (file_size != finfo.st_size || file_size + 1 < file_size)
+ {
+#if defined (EFBIG)
+ errno = EFBIG;
+#endif
+ goto error_and_exit;
+ }
- if (read (file, buffer, finfo.st_size) != finfo.st_size)
+ buffer = xmalloc (file_size + 1);
+ if (read (file, buffer, file_size) != file_size)
{
error_and_exit:
if (file >= 0)
@@ -157,15 +171,15 @@ read_history_range (filename, from, to)
/* Set TO to larger than end of file if negative. */
if (to < 0)
- to = finfo.st_size;
+ to = file_size;
/* Start at beginning of file, work to end. */
line_start = line_end = current_line = 0;
/* Skip lines until we are at FROM. */
- while (line_start < finfo.st_size && current_line < from)
+ while (line_start < file_size && current_line < from)
{
- for (line_end = line_start; line_end < finfo.st_size; line_end++)
+ for (line_end = line_start; line_end < file_size; line_end++)
if (buffer[line_end] == '\n')
{
current_line++;
@@ -176,7 +190,7 @@ read_history_range (filename, from, to)
}
/* If there are lines left to gobble, then gobble them now. */
- for (line_end = line_start; line_end < finfo.st_size; line_end++)
+ for (line_end = line_start; line_end < file_size; line_end++)
if (buffer[line_end] == '\n')
{
buffer[line_end] = '\0';
@@ -209,6 +223,7 @@ history_truncate_file (fname, lines)
int file, chars_read;
char *buffer, *filename;
struct stat finfo;
+ size_t file_size;
buffer = (char *)NULL;
filename = history_filename (fname);
@@ -217,8 +232,20 @@ history_truncate_file (fname, lines)
if (file == -1 || fstat (file, &finfo) == -1)
goto truncate_exit;
- buffer = xmalloc ((int)finfo.st_size + 1);
- chars_read = read (file, buffer, finfo.st_size);
+ file_size = (size_t)finfo.st_size;
+
+ /* check for overflow on very large files */
+ if (file_size != finfo.st_size || file_size + 1 < file_size)
+ {
+ close (file);
+#if defined (EFBIG)
+ errno = EFBIG;
+#endif
+ goto truncate_exit;
+ }
+
+ buffer = xmalloc (file_size + 1);
+ chars_read = read (file, buffer, file_size);
close (file);
if (chars_read <= 0)
@@ -246,9 +273,9 @@ history_truncate_file (fname, lines)
/* Write only if there are more lines in the file than we want to
truncate to. */
- if (i && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0666)) != -1))
+ if (i && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
{
- write (file, buffer + i, finfo.st_size - i);
+ write (file, buffer + i, file_size - i);
close (file);
}
@@ -275,7 +302,7 @@ history_do_write (filename, nelements, overwrite)
mode = overwrite ? O_WRONLY|O_CREAT|O_TRUNC|O_BINARY : O_WRONLY|O_APPEND|O_BINARY;
output = history_filename (filename);
- if ((file = open (output, mode, 0666)) == -1)
+ if ((file = open (output, mode, 0600)) == -1)
{
FREE (output);
return (errno);
diff --git a/history.c b/history.c
index fb9d68e..24c5a49 100644
--- a/history.c
+++ b/history.c
@@ -38,6 +38,9 @@
#endif /* HAVE_STDLIB_H */
#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
# include <unistd.h>
#endif
diff --git a/histsearch.c b/histsearch.c
index a72a68b..7e98e95 100644
--- a/histsearch.c
+++ b/histsearch.c
@@ -33,6 +33,9 @@
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
# include <unistd.h>
#endif
#if defined (HAVE_STRING_H)
diff --git a/isearch.c b/isearch.c
index 9639a63..7decf95 100644
--- a/isearch.c
+++ b/isearch.c
@@ -262,7 +262,7 @@ rl_search_history (direction, invoking_key)
break;
}
- if (c >= 0 && (CTRL_CHAR (c) || META_CHAR (c) || c == RUBOUT))
+ if (c >= 0 && (CTRL_CHAR (c) || META_CHAR (c) || c == RUBOUT) && c != CTRL ('G'))
{
rl_execute_next (c);
break;
@@ -298,6 +298,21 @@ rl_search_history (direction, invoking_key)
free (lines);
return 0;
+#if 0
+ /* delete character from search string. */
+ case -3:
+ if (search_string_index == 0)
+ ding ();
+ else
+ {
+ search_string[--search_string_index] = '\0';
+ /* This is tricky. To do this right, we need to keep a
+ stack of search positions for the current search, with
+ sentinels marking the beginning and end. */
+ }
+ break;
+#endif
+
default:
/* Add character to search string and continue search. */
if (search_string_index + 2 >= search_string_size)
diff --git a/keymaps.h b/keymaps.h
index f8d0e2e..f6143f8 100644
--- a/keymaps.h
+++ b/keymaps.h
@@ -39,9 +39,9 @@ typedef char **CPPFunction ();
/* A keymap contains one entry for each key in the ASCII set.
Each entry consists of a type and a pointer.
- POINTER is the address of a function to run, or the
+ FUNCTION is the address of a function to run, or the
address of a keymap to indirect through.
- TYPE says which kind of thing POINTER is. */
+ TYPE says which kind of thing FUNCTION is. */
typedef struct _keymap_entry {
char type;
Function *function;
diff --git a/kill.c b/kill.c
index 352f37d..a150e3c 100644
--- a/kill.c
+++ b/kill.c
@@ -495,17 +495,32 @@ rl_yank_pop (count, key)
}
}
-/* Yank the COUNTth argument from the previous history line. */
-int
-rl_yank_nth_arg (count, ignore)
- int count, ignore;
+/* Yank the COUNTh argument from the previous history line, skipping
+ HISTORY_SKIP lines before looking for the `previous line'. */
+static int
+rl_yank_nth_arg_internal (count, ignore, history_skip)
+ int count, ignore, history_skip;
{
register HIST_ENTRY *entry;
char *arg;
+ int i;
+
+ if (history_skip)
+ {
+ for (i = 0; i < history_skip; i++)
+ entry = previous_history ();
+ }
entry = previous_history ();
if (entry)
- next_history ();
+ {
+ if (history_skip)
+ {
+ for (i = 0; i < history_skip; i++)
+ next_history ();
+ }
+ next_history ();
+ }
else
{
ding ();
@@ -538,6 +553,14 @@ rl_yank_nth_arg (count, ignore)
return 0;
}
+/* Yank the COUNTth argument from the previous history line. */
+int
+rl_yank_nth_arg (count, ignore)
+ int count, ignore;
+{
+ return (rl_yank_nth_arg_internal (count, ignore, 0));
+}
+
/* Yank the last argument from the previous history line. This `knows'
how rl_yank_nth_arg treats a count of `$'. With an argument, this
behaves the same as rl_yank_nth_arg. */
@@ -545,8 +568,67 @@ int
rl_yank_last_arg (count, key)
int count, key;
{
- if (rl_explicit_arg)
- return (rl_yank_nth_arg (count, key));
+ static int history_skip = 0;
+ static int explicit_arg_p = 0;
+ static int count_passed = 1;
+ static int direction = 1;
+
+ if (rl_last_func != rl_yank_last_arg)
+ {
+ history_skip = 0;
+ explicit_arg_p = rl_explicit_arg;
+ count_passed = count;
+ direction = 1;
+ }
+ else
+ {
+ rl_do_undo ();
+ if (count < 1)
+ direction = -direction;
+ history_skip += direction;
+ if (history_skip < 0)
+ history_skip = 0;
+ count_passed = count;
+ }
+
+ if (explicit_arg_p)
+ return (rl_yank_nth_arg_internal (count, key, history_skip));
else
- return (rl_yank_nth_arg ('$', key));
+ return (rl_yank_nth_arg_internal ('$', key, history_skip));
+}
+
+/* A special paste command for users of Cygnus's cygwin32. */
+#if defined (__CYGWIN32__)
+#include <windows.h>
+
+int
+rl_paste_from_clipboard (count, key)
+ int count, key;
+{
+ char *data, *ptr;
+ int len;
+
+ if (OpenClipboard (NULL) == 0)
+ return (0);
+
+ data = (char *)GetClipboardData (CF_TEXT);
+ if (data)
+ {
+ ptr = strchr (data, '\r');
+ if (ptr)
+ {
+ len = ptr - data;
+ ptr = xmalloc (len + 1);
+ ptr[len] = '\0';
+ strncpy (ptr, data, len);
+ }
+ else
+ ptr = data;
+ rl_insert_text (ptr);
+ if (ptr != data)
+ free (ptr);
+ CloseClipboard ();
+ }
+ return (0);
}
+#endif /* __CYGWIN32__ */
diff --git a/nls.c b/nls.c
index 7a00a5f..f2d413d 100644
--- a/nls.c
+++ b/nls.c
@@ -69,7 +69,8 @@ static char *legal_lang_values[] =
"iso88598",
"iso88599",
"iso885910",
- "koi8r",
+ "koi8r",
+ "koi8-r",
0
};
diff --git a/parens.c b/parens.c
index 50683f9..2c7251f 100644
--- a/parens.c
+++ b/parens.c
@@ -101,7 +101,7 @@ rl_insert_close (count, invoking_key)
FD_ZERO (&readfds);
FD_SET (fileno (rl_instream), &readfds);
- timer.tv_sec = 1;
+ timer.tv_sec = 0;
timer.tv_usec = 500;
orig_point = rl_point;
diff --git a/readline.c b/readline.c
index dcd8f81..8ff6e98 100644
--- a/readline.c
+++ b/readline.c
@@ -64,7 +64,7 @@
#include "history.h"
#ifndef RL_LIBRARY_VERSION
-# define RL_LIBRARY_VERSION "2.1-bash"
+# define RL_LIBRARY_VERSION "2.2-bash"
#endif
/* Evaluates its arguments multiple times. */
@@ -78,7 +78,11 @@
/* Variables and functions imported from terminal.c */
extern int _rl_init_terminal_io ();
extern void _rl_enable_meta_key ();
+#ifdef _MINIX
+extern void _rl_output_character_function ();
+#else
extern int _rl_output_character_function ();
+#endif
extern void _rl_get_screen_size ();
extern int _rl_enable_meta;
@@ -1027,6 +1031,18 @@ _rl_fix_point (fix_mark_too)
}
#undef _RL_FIX_POINT
+void
+_rl_replace_text (text, start, end)
+ char *text;
+ int start, end;
+{
+ rl_begin_undo_group ();
+ rl_delete_text (start, end + 1);
+ rl_point = start;
+ rl_insert_text (text);
+ rl_end_undo_group ();
+}
+
/* **************************************************************** */
/* */
/* Readline character functions */
diff --git a/readline.h b/readline.h
index d6c1a5c..280ec32 100644
--- a/readline.h
+++ b/readline.h
@@ -73,6 +73,7 @@ extern int
rl_forward_word (), rl_tab_insert (), rl_yank_pop (), rl_yank_nth_arg (),
rl_backward_kill_word (), rl_backward_kill_line (), rl_transpose_words (),
rl_complete (), rl_possible_completions (), rl_insert_completions (),
+ rl_menu_complete (),
rl_do_lowercase_version (), rl_kill_full_line (),
rl_digit_argument (), rl_universal_argument (), rl_abort (),
rl_undo_command (), rl_revert_line (), rl_beginning_of_history (),
@@ -93,13 +94,19 @@ extern void rl_callback_handler_install ();
extern void rl_callback_read_char ();
extern void rl_callback_handler_remove ();
+/* Not available unless __CYGWIN32__ is defined. */
+#ifdef __CYGWIN32__
+extern int rl_paste_from_clipboard ();
+#endif
+
/* These are *both* defined even when VI_MODE is not. */
extern int rl_vi_editing_mode (), rl_emacs_editing_mode ();
/* Non incremental history searching. */
-extern int
- rl_noninc_forward_search (), rl_noninc_reverse_search (),
- rl_noninc_forward_search_again (), rl_noninc_reverse_search_again ();
+extern int rl_noninc_forward_search ();
+extern int rl_noninc_reverse_search ();
+extern int rl_noninc_forward_search_again ();
+extern int rl_noninc_reverse_search_again ();
/* Things for vi mode. Not available unless readline is compiled -DVI_MODE. */
extern int rl_vi_check ();
@@ -153,6 +160,7 @@ extern char *rl_get_keymap_name ();
extern int rl_bind_key (), rl_bind_key_in_map ();
extern int rl_unbind_key (), rl_unbind_key_in_map ();
+extern int rl_unbind_function_in_map (), rl_unbind_command_in_map ();
extern int rl_set_key ();
extern int rl_generic_bind ();
extern int rl_parse_and_bind ();
@@ -255,7 +263,7 @@ extern int rl_pending_input;
/* Non-zero if we called this function from _rl_dispatch(). It's present
so functions can find out whether they were called from a key binding
or directly from an application. */
-int rl_dispatching;
+extern int rl_dispatching;
/* The name of the terminal to use. */
extern char *rl_terminal_name;
diff --git a/rltty.h b/rltty.h
index 3e13704..fe78346 100644
--- a/rltty.h
+++ b/rltty.h
@@ -42,17 +42,7 @@
# include <sgtty.h>
#endif
-/* Stuff for `struct winsize' on various systems. */
-#if defined (HAVE_SYS_STREAM_H)
-# include <sys/stream.h>
-#endif /* HAVE_SYS_STREAM_H */
-#if defined (HAVE_SYS_PTEM_H)
-# include <sys/ptem.h>
-# define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */
-#endif /* HAVE_SYS_PTEM_H */
-#if defined (HAVE_SYS_PTE_H)
-# include <sys/pte.h>
-#endif /* HAVE_SYS_PTE_H */
+#include "rlwinsize.h"
/* Define _POSIX_VDISABLE if we are not using the `new' tty driver and
it is not already defined. It is used both to determine if a
diff --git a/rlwinsize.h b/rlwinsize.h
new file mode 100644
index 0000000..92b3de1
--- /dev/null
+++ b/rlwinsize.h
@@ -0,0 +1,58 @@
+/* rlwinsize.h -- an attempt to isolate some of the system-specific defines
+ for `struct winsize' and TIOCGWINSZ. */
+
+/* Copyright (C) 1997 Free Software Foundation, Inc.
+
+ This file contains the Readline Library (the Library), a set of
+ routines for providing Emacs style line input to programs that ask
+ for it.
+
+ The Library 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 1, or (at your option)
+ any later version.
+
+ The Library 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.
+
+ 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,
+ 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#if !defined (_RLWINSIZE_H_)
+#define _RLWINSIZE_H_
+
+#if defined (HAVE_CONFIG_H)
+# include "config.h"
+#endif
+
+/* Try to find the definitions of `struct winsize' and TIOGCWINSZ */
+
+#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
+# include <sys/ioctl.h>
+#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
+
+#if defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
+# include <termios.h>
+#endif /* STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
+
+/* Not in either of the standard places, look around. */
+#if !defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
+# if defined (HAVE_SYS_STREAM_H)
+# include <sys/stream.h>
+# endif /* HAVE_SYS_STREAM_H */
+# if defined (HAVE_SYS_PTEM_H) /* SVR4.2, at least, has it here */
+# include <sys/ptem.h>
+# define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */
+# endif /* HAVE_SYS_PTEM_H */
+# if defined (HAVE_SYS_PTE_H) /* ??? */
+# include <sys/pte.h>
+# endif /* HAVE_SYS_PTE_H */
+#endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
+
+#endif /* _RL_WINSIZE_H */
+
+
diff --git a/shell.c b/shell.c
index eb99c72..553f3c1 100644
--- a/shell.c
+++ b/shell.c
@@ -27,6 +27,9 @@
#endif
#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
@@ -36,6 +39,12 @@
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
+#if defined (HAVE_STRING_H)
+# include <string.h>
+#else
+# include <strings.h>
+#endif /* !HAVE_STRING_H */
+
extern char *xmalloc (), *xrealloc ();
#if !defined (SHELL)
diff --git a/support/config.guess b/support/config.guess
index 69e6169..0e11ad8 100755
--- a/support/config.guess
+++ b/support/config.guess
@@ -153,11 +153,53 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit 0 ;;
# end cases added for Bash
alpha:OSF1:*:*)
+ if test $UNAME_RELEASE = "V4.0"; then
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ fi
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
+ cat <<EOF >dummy.s
+ .globl main
+ .ent main
+main:
+ .frame \$30,0,\$26,0
+ .prologue 0
+ .long 0x47e03d80 # implver $0
+ lda \$2,259
+ .long 0x47e20c21 # amask $2,$1
+ srl \$1,8,\$2
+ sll \$2,2,\$2
+ sll \$0,3,\$0
+ addl \$1,\$0,\$0
+ addl \$2,\$0,\$0
+ ret \$31,(\$26),1
+ .end main
+EOF
+ ${CC-cc} dummy.s -o dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ ./dummy
+ case "$?" in
+ 7)
+ UNAME_MACHINE="alpha"
+ ;;
+ 15)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 14)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ 10)
+ UNAME_MACHINE="alphapca56"
+ ;;
+ 16)
+ UNAME_MACHINE="alphaev6"
+ ;;
+ esac
+ fi
+ rm -f dummy.s dummy
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
@@ -171,9 +213,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
amiga:OpenBSD:*:*)
echo m68k-cbm-openbsd${UNAME_RELEASE}
exit 0 ;;
+ arc64:OpenBSD:*:*)
+ echo mips64el-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ arc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hkmips:OpenBSD:*:*)
+ echo mips-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ pmax:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mips-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ wgrisc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
+ arm32:NetBSD:*:*)
+ echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ exit 0 ;;
+ SR2?01:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -206,9 +272,21 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit 0 ;;
- sun3*:SunOS:*:*)
+ sun3*:SunOS:*:*|sun:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit 0 ;;
@@ -230,6 +308,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
mac68k:OpenBSD:*:*)
echo m68k-apple-openbsd${UNAME_RELEASE}
exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ Power?Macintosh:Rhapsody:*:*)
+ echo powerpc-apple-nextstep${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-unknown-nextstep${UNAME_RELEASE}
+ exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
@@ -242,6 +332,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
+ 2020:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
sed 's/^ //' << EOF >dummy.c
int main (argc, argv) int argc; char **argv; {
@@ -266,7 +359,7 @@ EOF
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerux
+ echo powerpc-harris-powerunix
exit 0 ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
@@ -372,12 +465,15 @@ EOF
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
- 9000/[3478]??:HP-UX:*:*)
+ 9000/[34678]??:HP-UX:*:*)
case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
- 9000/8?? ) HP_ARCH=hppa1.0 ;;
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/78? | 9000/80[24] | 9000/8[67]1 | 9000/8[78]9 | 9000/893 )
+ HP_ARCH=hppa2.0 ;;
+ 9000/7?? | 9000/8?[13679] | 9000/892 )
+ HP_ARCH=hppa1.1 ;;
+ 9000/[68]?? ) HP_ARCH=hppa1.0 ;;
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -498,6 +594,9 @@ EOF
i*:CYGWIN*:*)
echo i386-pc-cygwin32
exit 0 ;;
+ i*:MINGW*:*)
+ echo i386-pc-mingw32
+ exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin32
exit 0 ;;
@@ -505,43 +604,127 @@ EOF
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
*:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us.
ld_help_string=`ld --help 2>&1`
- if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then
- echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then
- echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then
- echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
- echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0
- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then
- echo "powerpc-unknown-linux-gnu" ; exit 0
- elif test "${UNAME_MACHINE}" = "alpha" ; then
- echo alpha-unknown-linux-gnu ; exit 0
- elif test "${UNAME_MACHINE}" = "sparc" ; then
- echo sparc-unknown-linux-gnu ; exit 0
+ ld_supported_emulations=`echo $ld_help_string \
+ | sed -ne '/supported emulations:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported emulations: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_emulations" in
+ i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
+ i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
+ sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+ m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+ elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;;
+ esac
+
+ if test "${UNAME_MACHINE}" = "alpha" ; then
+ sed 's/^ //' <<EOF >dummy.s
+ .globl main
+ .ent main
+ main:
+ .frame \$30,0,\$26,0
+ .prologue 0
+ .long 0x47e03d80 # implver $0
+ lda \$2,259
+ .long 0x47e20c21 # amask $2,$1
+ srl \$1,8,\$2
+ sll \$2,2,\$2
+ sll \$0,3,\$0
+ addl \$1,\$0,\$0
+ addl \$2,\$0,\$0
+ ret \$31,(\$26),1
+ .end main
+EOF
+ LIBC=""
+ ${CC-cc} dummy.s -o dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ ./dummy
+ case "$?" in
+ 7)
+ UNAME_MACHINE="alpha"
+ ;;
+ 15)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 14)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ 10)
+ UNAME_MACHINE="alphapca56"
+ ;;
+ 16)
+ UNAME_MACHINE="alphaev6"
+ ;;
+ esac
+
+ objdump --private-headers dummy | \
+ grep ld.so.1 > /dev/null
+ if test "$?" = 0 ; then
+ LIBC="libc1"
+ fi
+ fi
+ rm -f dummy.s dummy
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
+ elif test "${UNAME_MACHINE}" = "mips" ; then
+ cat >dummy.c <<EOF
+main(argc, argv)
+ int argc;
+ char *argv[];
+{
+#ifdef __MIPSEB__
+ printf ("%s-unknown-linux-gnu\n", argv[1]);
+#endif
+#ifdef __MIPSEL__
+ printf ("%sel-unknown-linux-gnu\n", argv[1]);
+#endif
+ return 0;
+}
+EOF
+ ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
+ rm -f dummy.c dummy
else
- # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us
- # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout.
- test ! -d /usr/lib/ldscripts/. \
- && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+ # Either a pre-BFD a.out linker (linux-gnuoldld)
+ # or one that does not give us useful --help.
+ # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
+ # If ld does not provide *any* "supported emulations:"
+ # that means it is gnuoldld.
+ echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
+ test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+
+ case "${UNAME_MACHINE}" in
+ i?86)
+ VENDOR=pc;
+ ;;
+ *)
+ VENDOR=unknown;
+ ;;
+ esac
# Determine whether the default compiler is a.out or elf
cat >dummy.c <<EOF
+#include <features.h>
main(argc, argv)
-int argc;
-char *argv[];
+ int argc;
+ char *argv[];
{
#ifdef __ELF__
- printf ("%s-pc-linux-gnu\n", argv[1]);
+# ifdef __GLIBC__
+# if __GLIBC__ >= 2
+ printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
+# else
+ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+# endif
+# else
+ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+# endif
#else
- printf ("%s-pc-linux-gnuaout\n", argv[1]);
+ printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
@@ -554,7 +737,15 @@ EOF
i?86:DYNIX/ptx:4*:*)
echo i386-sequent-sysv4
exit 0 ;;
- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:* | i[34]86:UNIX_SV:4.*:*)
+ i?86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i?86:*:4.*:* | i?86:SYSTEM_V:4.*:* | i?86:UNIX_SV:4.*:*)
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
else
@@ -575,6 +766,11 @@ EOF
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
+ pc:*:*:*)
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit 0 ;;
@@ -626,7 +822,7 @@ EOF
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit 0 ;;
- RM*:SINIX-*:*:*)
+ RM*:SINIX-*:*:* | RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit 0 ;;
*:SINIX-*:*:*)
@@ -637,6 +833,10 @@ EOF
echo ns32k-sni-sysv
fi
exit 0 ;;
+ PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
@@ -649,6 +849,9 @@ EOF
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit 0 ;;
+ news*:NEWS-OS:*:6*)
+ echo mips-sony-newsos6
+ exit 0 ;;
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
@@ -707,7 +910,7 @@ main ()
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
diff --git a/support/config.sub b/support/config.sub
index e800bb6..7541a12 100755
--- a/support/config.sub
+++ b/support/config.sub
@@ -152,7 +152,7 @@ case $basic_machine in
tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
| arme[lb] | pyramid \
| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
- | alpha | we32k | ns16k | clipper | i370 | sh \
+ | hppa2.0 | alpha | we32k | ns16k | clipper | i370 | sh \
| powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
| pdp11 | mips64el | mips64orion | mips64orionel \
| sparc | sparclet | sparclite | sparc64)
@@ -174,7 +174,8 @@ case $basic_machine in
| sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
| none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
- | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
+ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \
+ | alpha-* | we32k-* | cydra-* | ns16k-* \
| pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
| pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* | f301-* \
diff --git a/terminal.c b/terminal.c
index 5a8df89..c286696 100644
--- a/terminal.c
+++ b/terminal.c
@@ -434,13 +434,21 @@ rl_reset_terminal (terminal_name)
}
/* A function for the use of tputs () */
+#ifdef _MINIX
+void
+_rl_output_character_function (c)
+ int c;
+{
+ putc (c, _rl_out_stream);
+}
+#else /* !_MINIX */
int
_rl_output_character_function (c)
int c;
{
return putc (c, _rl_out_stream);
}
-
+#endif /* !_MINIX */
/* Write COUNT characters from STRING to the output stream. */
void
_rl_output_some_chars (string, count)
@@ -519,18 +527,11 @@ ding ()
/* */
/* **************************************************************** */
-static int
-outchar (c)
- int c;
-{
- return putc (c, rl_outstream);
-}
-
void
_rl_enable_meta_key ()
{
if (term_has_meta && term_mm)
- tputs (term_mm, 1, outchar);
+ tputs (term_mm, 1, _rl_output_character_function);
}
void
@@ -538,7 +539,7 @@ _rl_control_keypad (on)
int on;
{
if (on && term_ks)
- tputs (term_ks, 1, outchar);
+ tputs (term_ks, 1, _rl_output_character_function);
else if (!on && term_ke)
- tputs (term_ke, 1, outchar);
+ tputs (term_ke, 1, _rl_output_character_function);
}
diff --git a/tilde.c b/tilde.c
index 1d38d9d..3741f97 100644
--- a/tilde.c
+++ b/tilde.c
@@ -24,6 +24,9 @@
#endif
#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
# include <unistd.h>
#endif
@@ -189,7 +192,7 @@ tilde_expand (string)
if (result = strchr (string, '~'))
result = xmalloc (result_size = (strlen (string) + 16));
else
- result = xmalloc (result_size = strlen (string));
+ result = xmalloc (result_size = (strlen (string) + 1));
/* Scan through STRING expanding tildes as we come to them. */
while (1)
diff --git a/util.c b/util.c
index d96b29e..fde012e 100644
--- a/util.c
+++ b/util.c
@@ -166,6 +166,58 @@ rl_extend_line_buffer (len)
_rl_set_the_line ();
}
+
+/* A function for simple tilde expansion. */
+int
+rl_tilde_expand (ignore, key)
+ int ignore, key;
+{
+ register int start, end;
+ char *homedir, *temp;
+ int len;
+
+ end = rl_point;
+ start = end - 1;
+
+ if (rl_point == rl_end && rl_line_buffer[rl_point] == '~')
+ {
+ homedir = tilde_expand ("~");
+ _rl_replace_text (homedir, start, end);
+ return (0);
+ }
+ else if (rl_line_buffer[start] != '~')
+ {
+ for (; !whitespace (rl_line_buffer[start]) && start >= 0; start--)
+ ;
+ start++;
+ }
+
+ end = start;
+ do
+ end++;
+ while (whitespace (rl_line_buffer[end]) == 0 && end < rl_end);
+
+ if (whitespace (rl_line_buffer[end]) || end >= rl_end)
+ end--;
+
+ /* If the first character of the current word is a tilde, perform
+ tilde expansion and insert the result. If not a tilde, do
+ nothing. */
+ if (rl_line_buffer[start] == '~')
+ {
+ len = end - start + 1;
+ temp = xmalloc (len + 1);
+ strncpy (temp, rl_line_buffer + start, len);
+ temp[len] = '\0';
+ homedir = tilde_expand (temp);
+ free (temp);
+
+ _rl_replace_text (homedir, start, end);
+ }
+
+ return (0);
+}
+
/* **************************************************************** */
/* */
/* String Utility Functions */
@@ -300,3 +352,13 @@ _rl_digit_value (c)
{
return (isdigit (c) ? c - '0' : c);
}
+
+/* Backwards compatibility, now that savestring has been removed from
+ all `public' readline header files. */
+#undef _rl_savestring
+char *
+_rl_savestring (s)
+ char *s;
+{
+ return ((char *)strcpy (xmalloc (1 + (int)strlen (s)), (s)));
+}
diff --git a/vi_mode.c b/vi_mode.c
index c730296..2f62ec3 100644
--- a/vi_mode.c
+++ b/vi_mode.c
@@ -615,6 +615,13 @@ _rl_vi_save_insert (up)
{
int len, start, end;
+ if (up == 0)
+ {
+ if (vi_insert_buffer_size >= 1)
+ vi_insert_buffer[0] = '\0';
+ return;
+ }
+
start = up->start;
end = up->end;
len = end - start + 1;