changeset 3793:56522edd5c33

[project @ 2001-02-10 05:11:49 by jwe]
author jwe
date Sat, 10 Feb 2001 05:13:25 +0000
parents 74c2fc84f0cf
children e42e28db4dda
files readline/compat.c readline/doc/history.dvi readline/doc/history.html readline/doc/history.info readline/doc/history.ps readline/doc/manvers.texinfo readline/doc/readline.0 readline/doc/readline.dvi readline/doc/readline.html readline/doc/readline.info readline/doc/readline.ps readline/doc/readline_3.ps readline/doc/rluserman.dvi readline/doc/rluserman.html readline/doc/rluserman.info readline/doc/rluserman.ps readline/doc/rluserman.texinfo readline/rlprivate.h readline/rlshell.h readline/rlstdc.h readline/rltypedefs.h readline/rlwinsize.h readline/savestring.c readline/xmalloc.h
diffstat 24 files changed, 24579 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/readline/compat.c
@@ -0,0 +1,112 @@
+/* compat.c -- backwards compatibility functions. */
+
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline 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,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include "rlstdc.h"
+#include "rltypedefs.h"
+
+extern void rl_free_undo_list __P((void));
+extern int rl_maybe_save_line __P((void));
+extern int rl_maybe_unsave_line __P((void));
+extern int rl_maybe_replace_line __P((void));
+
+extern int rl_ding __P((void));
+extern int rl_alphabetic __P((int));
+
+extern char **rl_completion_matches __P((const char *, rl_compentry_func_t *));
+extern char *rl_username_completion_function __P((const char *, int));
+extern char *rl_filename_completion_function __P((const char *, int));
+
+/* Provide backwards-compatible entry points for old function names. */
+
+void
+free_undo_list ()
+{
+  rl_free_undo_list ();
+}
+
+int
+maybe_replace_line ()
+{
+  return rl_maybe_replace_line ();
+}
+
+int
+maybe_save_line ()
+{
+  return rl_maybe_save_line ();
+}
+
+int
+maybe_unsave_line ()
+{
+  return rl_maybe_unsave_line ();
+}
+
+int
+ding ()
+{
+  return rl_ding ();
+}
+
+int
+crlf ()
+{
+  return rl_crlf ();
+}
+
+int
+alphabetic (c)
+     int c;
+{
+  return rl_alphabetic (c);
+}
+
+char **
+completion_matches (s, f)
+     const char *s;
+     rl_compentry_func_t *f;
+{
+  return rl_completion_matches (s, f);
+}
+
+char *
+username_completion_function (s, i)
+     const char *s;
+     int i;
+{
+  return rl_username_completion_function (s, i);
+}
+
+char *
+filename_completion_function (s, i)
+     const char *s;
+     int i;
+{
+  return rl_filename_completion_function (s, i);
+}
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c853b0165ddeecbddc5da85bdc0fa2b6e25da48f
GIT binary patch
literal 47948
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
new file mode 100644
--- /dev/null
+++ b/readline/doc/history.html
@@ -0,0 +1,1207 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.52
+     from /usr/homes/chet/src/bash/readline-src/doc/hist.texinfo on 5 Febuary 2001 -->
+
+<TITLE>GNU History Library</TITLE>
+</HEAD>
+<BODY>
+<H1>GNU History Library</H1>
+<H2>Edition 4.2-beta, for <CODE>History Library</CODE> Version 4.2-beta.</H2>
+<H2>Feb 2001</H2>
+<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
+<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
+<P>
+<P><HR><P>
+<H1>Table of Contents</H1>
+<UL>
+<LI><A NAME="TOC1" HREF="history.html#SEC1">Using History Interactively</A>
+<UL>
+<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>
+<LI><A NAME="TOC5" HREF="history.html#SEC5">Modifiers</A>
+</UL>
+</UL>
+<LI><A NAME="TOC6" HREF="history.html#SEC6">Programming with GNU History</A>
+<UL>
+<LI><A NAME="TOC7" HREF="history.html#SEC7">Introduction to History</A>
+<LI><A NAME="TOC8" HREF="history.html#SEC8">History Storage</A>
+<LI><A NAME="TOC9" HREF="history.html#SEC9">History Functions</A>
+<UL>
+<LI><A NAME="TOC10" HREF="history.html#SEC10">Initializing History and State Management</A>
+<LI><A NAME="TOC11" HREF="history.html#SEC11">History List Management</A>
+<LI><A NAME="TOC12" HREF="history.html#SEC12">Information About the History List</A>
+<LI><A NAME="TOC13" HREF="history.html#SEC13">Moving Around the History List</A>
+<LI><A NAME="TOC14" HREF="history.html#SEC14">Searching the History List</A>
+<LI><A NAME="TOC15" HREF="history.html#SEC15">Managing the History File</A>
+<LI><A NAME="TOC16" HREF="history.html#SEC16">History Expansion</A>
+</UL>
+<LI><A NAME="TOC17" HREF="history.html#SEC17">History Variables</A>
+<LI><A NAME="TOC18" HREF="history.html#SEC18">History Programming Example</A>
+</UL>
+<LI><A NAME="TOC19" HREF="history.html#SEC19">Concept Index</A>
+<LI><A NAME="TOC20" HREF="history.html#SEC20">Function and Variable Index</A>
+</UL>
+<P><HR><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.
+
+</P>
+<P>
+Published by the Free Software Foundation <BR>
+59 Temple Place, Suite 330, <BR>
+Boston, MA 02111 USA
+
+</P>
+<P>
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+</P>
+<P>
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+</P>
+<P>
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+</P>
+<P>
+Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+</P>
+
+
+
+<H1><A NAME="SEC1" HREF="history.html#TOC1">Using History Interactively</A></H1>
+
+<P>
+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,
+see section <A HREF="history.html#SEC6">Programming with GNU History</A>.
+
+</P>
+
+<UL>
+<LI><A HREF="history.html#SEC2">History Interaction</A>: What it feels like using History as a user.
+</UL>
+
+
+
+<H2><A NAME="SEC2" HREF="history.html#TOC2">History Expansion</A></H2>
+<P>
+<A NAME="IDX1"></A>
+
+</P>
+<P>
+The History library provides a history expansion feature that is similar
+to the history expansion provided by <CODE>csh</CODE>.  This section
+describes the syntax used to manipulate the history information.
+
+</P>
+<P>
+History expansions introduce words from the history list into
+the input stream, making it easy to repeat commands, insert the
+arguments to a previous command into the current input line, or
+fix errors in previous commands quickly.
+
+</P>
+<P>
+History expansion takes place in two parts.  The first is to determine
+which line from the history list should be used during substitution.
+The second is to select portions of that line for inclusion into the
+current one.  The line selected from the history is called the
+<EM>event</EM>, and the portions of that line that are acted upon are
+called <EM>words</EM>.  Various <EM>modifiers</EM> are available to manipulate
+the selected words.  The line is broken into words in the same fashion
+that Bash does, so that several words
+surrounded by quotes are considered one word.
+History expansions are introduced by the appearance of the
+history expansion character, which is <SAMP>`!'</SAMP> by default.
+
+</P>
+
+
+<UL>
+<LI><A HREF="history.html#SEC3">Event Designators</A>: How to specify which history line to use.
+<LI><A HREF="history.html#SEC4">Word Designators</A>: Specifying which words are of interest.
+<LI><A HREF="history.html#SEC5">Modifiers</A>: Modifying the results of substitution.
+</UL>
+
+
+
+<H3><A NAME="SEC3" HREF="history.html#TOC3">Event Designators</A></H3>
+<P>
+<A NAME="IDX2"></A>
+
+</P>
+<P>
+An event designator is a reference to a command line entry in the
+history list.
+<A NAME="IDX3"></A>
+
+</P>
+<DL COMPACT>
+
+<DT><CODE>!</CODE>
+<DD>
+Start a history substitution, except when followed by a space, tab,
+the end of the line, <SAMP>`='</SAMP> or <SAMP>`('</SAMP>.
+
+<DT><CODE>!<VAR>n</VAR></CODE>
+<DD>
+Refer to command line <VAR>n</VAR>.
+
+<DT><CODE>!-<VAR>n</VAR></CODE>
+<DD>
+Refer to the command <VAR>n</VAR> lines back.
+
+<DT><CODE>!!</CODE>
+<DD>
+Refer to the previous command.  This is a synonym for <SAMP>`!-1'</SAMP>.
+
+<DT><CODE>!<VAR>string</VAR></CODE>
+<DD>
+Refer to the most recent command starting with <VAR>string</VAR>.
+
+<DT><CODE>!?<VAR>string</VAR>[?]</CODE>
+<DD>
+Refer to the most recent command containing <VAR>string</VAR>.  The trailing
+<SAMP>`?'</SAMP> may be omitted if the <VAR>string</VAR> is followed immediately by
+a newline.
+
+<DT><CODE>^<VAR>string1</VAR>^<VAR>string2</VAR>^</CODE>
+<DD>
+Quick Substitution.  Repeat the last command, replacing <VAR>string1</VAR>
+with <VAR>string2</VAR>.  Equivalent to
+<CODE>!!:s/<VAR>string1</VAR>/<VAR>string2</VAR>/</CODE>.
+
+<DT><CODE>!#</CODE>
+<DD>
+The entire command line typed so far.
+
+</DL>
+
+
+
+<H3><A NAME="SEC4" HREF="history.html#TOC4">Word Designators</A></H3>
+
+<P>
+Word designators are used to select desired words from the event.
+A <SAMP>`:'</SAMP> separates the event specification from the word designator.  It
+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.
+
+</P>
+<P>
+For example,
+
+</P>
+<DL COMPACT>
+
+<DT><CODE>!!</CODE>
+<DD>
+designates the preceding command.  When you type this, the preceding
+command is repeated in toto.
+
+<DT><CODE>!!:$</CODE>
+<DD>
+designates the last argument of the preceding command.  This may be
+shortened to <CODE>!$</CODE>.
+
+<DT><CODE>!fi:2</CODE>
+<DD>
+designates the second argument of the most recent command starting with
+the letters <CODE>fi</CODE>.
+</DL>
+
+<P>
+Here are the word designators:
+ 
+<DL COMPACT>
+
+<DT><CODE>0 (zero)</CODE>
+<DD>
+The <CODE>0</CODE>th word.  For many applications, this is the command word.
+
+<DT><CODE><VAR>n</VAR></CODE>
+<DD>
+The <VAR>n</VAR>th word.
+
+<DT><CODE>^</CODE>
+<DD>
+The first argument; that is, word 1.
+
+<DT><CODE>$</CODE>
+<DD>
+The last argument.
+
+<DT><CODE>%</CODE>
+<DD>
+The word matched by the most recent <SAMP>`?<VAR>string</VAR>?'</SAMP> search.
+
+<DT><CODE><VAR>x</VAR>-<VAR>y</VAR></CODE>
+<DD>
+A range of words; <SAMP>`-<VAR>y</VAR>'</SAMP> abbreviates <SAMP>`0-<VAR>y</VAR>'</SAMP>.
+
+<DT><CODE>*</CODE>
+<DD>
+All of the words, except the <CODE>0</CODE>th.  This is a synonym for <SAMP>`1-$'</SAMP>.
+It is not an error to use <SAMP>`*'</SAMP> if there is just one word in the event;
+the empty string is returned in that case.
+
+<DT><CODE><VAR>x</VAR>*</CODE>
+<DD>
+Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP>
+
+<DT><CODE><VAR>x</VAR>-</CODE>
+<DD>
+Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP> like <SAMP>`<VAR>x</VAR>*'</SAMP>, but omits the last word.
+
+</DL>
+
+<P>
+If a word designator is supplied without an event specification, the
+previous command is used as the event.
+
+</P>
+
+
+<H3><A NAME="SEC5" HREF="history.html#TOC5">Modifiers</A></H3>
+
+<P>
+After the optional word designator, you can add a sequence of one or more
+of the following modifiers, each preceded by a <SAMP>`:'</SAMP>.
+
+</P>
+<DL COMPACT>
+
+<DT><CODE>h</CODE>
+<DD>
+Remove a trailing pathname component, leaving only the head.
+
+<DT><CODE>t</CODE>
+<DD>
+Remove all leading  pathname  components, leaving the tail.
+
+<DT><CODE>r</CODE>
+<DD>
+Remove a trailing suffix of the form <SAMP>`.<VAR>suffix</VAR>'</SAMP>, leaving
+the basename.
+
+<DT><CODE>e</CODE>
+<DD>
+Remove all but the trailing suffix.
+
+<DT><CODE>p</CODE>
+<DD>
+Print the new command but do not execute it.
+
+<DT><CODE>s/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>
+<DD>
+Substitute <VAR>new</VAR> for the first occurrence of <VAR>old</VAR> in the
+event line.  Any delimiter may be used in place of <SAMP>`/'</SAMP>.
+The delimiter may be quoted in <VAR>old</VAR> and <VAR>new</VAR>
+with a single backslash.  If <SAMP>`&#38;'</SAMP> appears in <VAR>new</VAR>,
+it is replaced by <VAR>old</VAR>.  A single backslash will quote
+the <SAMP>`&#38;'</SAMP>.  The final delimiter is optional if it is the last
+character on the input line.
+
+<DT><CODE>&#38;</CODE>
+<DD>
+Repeat the previous substitution.
+
+<DT><CODE>g</CODE>
+<DD>
+Cause changes to be applied over the entire event line.  Used in
+conjunction with <SAMP>`s'</SAMP>, as in <CODE>gs/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>,
+or with <SAMP>`&#38;'</SAMP>.
+
+</DL>
+
+
+
+<H1><A NAME="SEC6" HREF="history.html#TOC6">Programming with GNU History</A></H1>
+
+<P>
+This chapter describes how to interface programs that you write
+with the GNU History Library.
+It should be considered a technical guide.
+For information on the interactive use of GNU History, see section <A HREF="history.html#SEC1">Using History Interactively</A>.
+
+</P>
+
+<UL>
+<LI><A HREF="history.html#SEC7">Introduction to History</A>: What is the GNU History library for?
+<LI><A HREF="history.html#SEC8">History Storage</A>: How information is stored.
+<LI><A HREF="history.html#SEC9">History Functions</A>: Functions that you can use.
+<LI><A HREF="history.html#SEC17">History Variables</A>: Variables that control behaviour.
+<LI><A HREF="history.html#SEC18">History Programming Example</A>: Example of using the GNU History Library.
+</UL>
+
+
+
+<H2><A NAME="SEC7" HREF="history.html#TOC7">Introduction to History</A></H2>
+
+<P>
+Many programs read input from the user a line at a time.  The GNU
+History library is able to keep track of those lines, associate arbitrary
+data with each line, and utilize information from previous lines in
+composing new ones. 
+
+</P>
+<P>
+The programmer using the History library has available functions
+for remembering lines on a history list, associating arbitrary data
+with a line, removing lines from the list, searching through the list
+for a line containing an arbitrary text string, and referencing any line
+in the list directly.  In addition, a history <EM>expansion</EM> function
+is available which provides for a consistent user interface across
+different programs.
+
+</P>
+<P>
+The user using programs written with the History library has the
+benefit of a consistent user interface with a set of well-known
+commands for manipulating the text of previous lines and using that text
+in new commands.  The basic history manipulation commands are similar to
+the history substitution provided by <CODE>csh</CODE>.
+
+</P>
+<P>
+If the programmer desires, he can use the Readline library, which
+includes some history manipulation by default, and has the added
+advantage of command line editing.
+
+</P>
+<P>
+Before declaring any functions using any functionality the History
+library provides in other code, an application writer should include
+the file <CODE>&#60;readline/history.h&#62;</CODE> in any file that uses the
+History library's features.  It supplies extern declarations for all
+of the library's public functions and variables, and declares all of
+the public data structures.
+
+</P>
+
+
+<H2><A NAME="SEC8" HREF="history.html#TOC8">History Storage</A></H2>
+
+<P>
+The history list is an array of history entries.  A history entry is
+declared as follows:
+
+</P>
+
+<PRE>
+typedef void *histdata_t;
+
+typedef struct _hist_entry {
+  char *line;
+  histdata_t data;
+} HIST_ENTRY;
+</PRE>
+
+<P>
+The history list itself might therefore be declared as
+
+</P>
+
+<PRE>
+HIST_ENTRY **the_history_list;
+</PRE>
+
+<P>
+The state of the History library is encapsulated into a single structure:
+
+</P>
+
+<PRE>
+/* A structure used to pass around the current state of the history. */
+typedef struct _hist_state {
+  HIST_ENTRY **entries; /* Pointer to the entries themselves. */
+  int offset;           /* The location pointer within this array. */
+  int length;           /* Number of elements within this array. */
+  int size;             /* Number of slots allocated to this array. */
+  int flags;
+} HISTORY_STATE;
+</PRE>
+
+<P>
+If the flags member includes <CODE>HS_STIFLED</CODE>, the history has been
+stifled.
+
+</P>
+
+
+<H2><A NAME="SEC9" HREF="history.html#TOC9">History Functions</A></H2>
+
+<P>
+This section describes the calling sequence for the various functions
+present in GNU History.
+
+</P>
+
+<UL>
+<LI><A HREF="history.html#SEC10">Initializing History and State Management</A>: Functions to call when you
+						want to use history in a
+						program.
+<LI><A HREF="history.html#SEC11">History List Management</A>: Functions used to manage the list
+					of history entries.
+<LI><A HREF="history.html#SEC12">Information About the History List</A>: Functions returning information about
+					the history list.
+<LI><A HREF="history.html#SEC13">Moving Around the History List</A>: Functions used to change the position
+					in the history list.
+<LI><A HREF="history.html#SEC14">Searching the History List</A>: Functions to search the history list
+					for entries containing a string.
+<LI><A HREF="history.html#SEC15">Managing the History File</A>: Functions that read and write a file
+					containing the history list.
+<LI><A HREF="history.html#SEC16">History Expansion</A>: Functions to perform csh-like history
+					expansion.
+</UL>
+
+
+
+<H3><A NAME="SEC10" HREF="history.html#TOC10">Initializing History and State Management</A></H3>
+
+<P>
+This section describes functions used to initialize and manage
+the state of the History library when you want to use the history
+functions in your program.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>using_history</B> <I>(void)</I>
+<DD><A NAME="IDX4"></A>
+Begin a session in which the history functions might be used.  This
+initializes the interactive variables.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HISTORY_STATE * <B>history_get_history_state</B> <I>(void)</I>
+<DD><A NAME="IDX5"></A>
+Return a structure describing the current state of the input history.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>history_set_history_state</B> <I>(HISTORY_STATE *state)</I>
+<DD><A NAME="IDX6"></A>
+Set the state of the history list according to <VAR>state</VAR>.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC11" HREF="history.html#TOC11">History List Management</A></H3>
+
+<P>
+These functions manage individual entries on the history list, or set
+parameters managing the list itself.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>add_history</B> <I>(const char *string)</I>
+<DD><A NAME="IDX7"></A>
+Place <VAR>string</VAR> at the end of the history list.  The associated data
+field (if any) is set to <CODE>NULL</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HIST_ENTRY * <B>remove_history</B> <I>(int which)</I>
+<DD><A NAME="IDX8"></A>
+Remove history entry at offset <VAR>which</VAR> from the history.  The
+removed element is returned so you can free the line, data,
+and containing structure.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HIST_ENTRY * <B>replace_history_entry</B> <I>(int which, const char *line, histdata_t data)</I>
+<DD><A NAME="IDX9"></A>
+Make the history entry at offset <VAR>which</VAR> have <VAR>line</VAR> and <VAR>data</VAR>.
+This returns the old entry so you can dispose of the data.  In the case
+of an invalid <VAR>which</VAR>, a <CODE>NULL</CODE> pointer is returned.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>clear_history</B> <I>(void)</I>
+<DD><A NAME="IDX10"></A>
+Clear the history list by deleting all the entries.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stifle_history</B> <I>(int max)</I>
+<DD><A NAME="IDX11"></A>
+Stifle the history list, remembering only the last <VAR>max</VAR> entries.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>unstifle_history</B> <I>(void)</I>
+<DD><A NAME="IDX12"></A>
+Stop stifling the history.  This returns the previous amount the
+history was stifled.  The value is positive if the history was
+stifled, negative if it wasn't.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>history_is_stifled</B> <I>(void)</I>
+<DD><A NAME="IDX13"></A>
+Returns non-zero if the history is stifled, zero if it is not.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC12" HREF="history.html#TOC12">Information About the History List</A></H3>
+
+<P>
+These functions return information about the entire history list or
+individual list entries.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HIST_ENTRY ** <B>history_list</B> <I>(void)</I>
+<DD><A NAME="IDX14"></A>
+Return a <CODE>NULL</CODE> terminated array of <CODE>HIST_ENTRY *</CODE> which is the
+current input history.  Element 0 of this list is the beginning of time.
+If there is no history, return <CODE>NULL</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>where_history</B> <I>(void)</I>
+<DD><A NAME="IDX15"></A>
+Returns the offset of the current history element.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HIST_ENTRY * <B>current_history</B> <I>(void)</I>
+<DD><A NAME="IDX16"></A>
+Return the history entry at the current position, as determined by
+<CODE>where_history()</CODE>.  If there is no entry there, return a <CODE>NULL</CODE>
+pointer.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HIST_ENTRY * <B>history_get</B> <I>(int offset)</I>
+<DD><A NAME="IDX17"></A>
+Return the history entry at position <VAR>offset</VAR>, starting from
+<CODE>history_base</CODE> (see section <A HREF="history.html#SEC17">History Variables</A>).
+If there is no entry there, or if <VAR>offset</VAR>
+is greater than the history length, return a <CODE>NULL</CODE> pointer.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>history_total_bytes</B> <I>(void)</I>
+<DD><A NAME="IDX18"></A>
+Return the number of bytes that the primary history entries are using.
+This function returns the sum of the lengths of all the lines in the
+history.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC13" HREF="history.html#TOC13">Moving Around the History List</A></H3>
+
+<P>
+These functions allow the current index into the history list to be
+set or changed.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>history_set_pos</B> <I>(int pos)</I>
+<DD><A NAME="IDX19"></A>
+Set the current history offset to <VAR>pos</VAR>, an absolute index
+into the list.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HIST_ENTRY * <B>previous_history</B> <I>(void)</I>
+<DD><A NAME="IDX20"></A>
+Back up the current history offset to the previous history entry, and
+return a pointer to that entry.  If there is no previous entry, return
+a <CODE>NULL</CODE> pointer.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> HIST_ENTRY * <B>next_history</B> <I>(void)</I>
+<DD><A NAME="IDX21"></A>
+Move the current history offset forward to the next history entry, and
+return the a pointer to that entry.  If there is no next entry, return
+a <CODE>NULL</CODE> pointer.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC14" HREF="history.html#TOC14">Searching the History List</A></H3>
+<P>
+<A NAME="IDX22"></A>
+
+</P>
+<P>
+These functions allow searching of the history list for entries containing
+a specific string.  Searching may be performed both forward and backward
+from the current history position.  The search may be <EM>anchored</EM>,
+meaning that the string must match at the beginning of the history entry.
+<A NAME="IDX23"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>history_search</B> <I>(const char *string, int direction)</I>
+<DD><A NAME="IDX24"></A>
+Search the history for <VAR>string</VAR>, starting at the current history offset.
+If <VAR>direction</VAR> is less than 0, then the search is through
+previous entries, otherwise through subsequent entries.
+If <VAR>string</VAR> is found, then
+the current history index is set to that history entry, and the value
+returned is the offset in the line of the entry where
+<VAR>string</VAR> was found.  Otherwise, nothing is changed, and a -1 is
+returned.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>history_search_prefix</B> <I>(const char *string, int direction)</I>
+<DD><A NAME="IDX25"></A>
+Search the history for <VAR>string</VAR>, starting at the current history
+offset.  The search is anchored: matching lines must begin with
+<VAR>string</VAR>.  If <VAR>direction</VAR> is less than 0, then the search is
+through previous entries, otherwise through subsequent entries.
+If <VAR>string</VAR> is found, then the
+current history index is set to that entry, and the return value is 0. 
+Otherwise, nothing is changed, and a -1 is returned. 
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>history_search_pos</B> <I>(const char *string, int direction, int pos)</I>
+<DD><A NAME="IDX26"></A>
+Search for <VAR>string</VAR> in the history list, starting at <VAR>pos</VAR>, an
+absolute index into the list.  If <VAR>direction</VAR> is negative, the search
+proceeds backward from <VAR>pos</VAR>, otherwise forward.  Returns the absolute
+index of the history element where <VAR>string</VAR> was found, or -1 otherwise.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC15" HREF="history.html#TOC15">Managing the History File</A></H3>
+
+<P>
+The History library can read the history from and write it to a file.
+This section documents the functions for managing a history file.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>read_history</B> <I>(const char *filename)</I>
+<DD><A NAME="IDX27"></A>
+Add the contents of <VAR>filename</VAR> to the history list, a line at a time.
+If <VAR>filename</VAR> is <CODE>NULL</CODE>, then read from <TT>`~/.history'</TT>.
+Returns 0 if successful, or <CODE>errno</CODE> if not.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>read_history_range</B> <I>(const char *filename, int from, int to)</I>
+<DD><A NAME="IDX28"></A>
+Read a range of lines from <VAR>filename</VAR>, adding them to the history list.
+Start reading at line <VAR>from</VAR> and end at <VAR>to</VAR>.
+If <VAR>from</VAR> is zero, start at the beginning.  If <VAR>to</VAR> is less than
+<VAR>from</VAR>, then read until the end of the file.  If <VAR>filename</VAR> is
+<CODE>NULL</CODE>, then read from <TT>`~/.history'</TT>.  Returns 0 if successful,
+or <CODE>errno</CODE> if not.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>write_history</B> <I>(const char *filename)</I>
+<DD><A NAME="IDX29"></A>
+Write the current history to <VAR>filename</VAR>, overwriting <VAR>filename</VAR>
+if necessary.
+If <VAR>filename</VAR> is <CODE>NULL</CODE>, then write the history list to <TT>`~/.history'</TT>.
+Values returned are as in <CODE>read_history()</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>append_history</B> <I>(int nelements, const char *filename)</I>
+<DD><A NAME="IDX30"></A>
+Append the last <VAR>nelements</VAR> of the history list to <VAR>filename</VAR>.
+If <VAR>filename</VAR> is <CODE>NULL</CODE>, then append to <TT>`~/.history'</TT>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>history_truncate_file</B> <I>(const char *filename, int nlines)</I>
+<DD><A NAME="IDX31"></A>
+Truncate the history file <VAR>filename</VAR>, leaving only the last
+<VAR>nlines</VAR> lines.
+If <VAR>filename</VAR> is <CODE>NULL</CODE>, then <TT>`~/.history'</TT> is truncated.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC16" HREF="history.html#TOC16">History Expansion</A></H3>
+
+<P>
+These functions implement <CODE>csh</CODE>-like history expansion.
+
+</P>
+<P>
+<DL>
+<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">History Expansion</A>).  Returns:
+<DL COMPACT>
+
+<DT><CODE>0</CODE>
+<DD>
+If no expansions took place (or, if the only change in
+the text was the removal of escape characters preceding the history expansion
+character);
+<DT><CODE>1</CODE>
+<DD>
+if expansions did take place;
+<DT><CODE>-1</CODE>
+<DD>
+if there was an error in expansion;
+<DT><CODE>2</CODE>
+<DD>
+if the returned line should be displayed, but not executed,
+as with the <CODE>:p</CODE> modifier (see section <A HREF="history.html#SEC5">Modifiers</A>).
+</DL>
+
+<P>
+If an error ocurred in expansion, then <VAR>output</VAR> contains a descriptive
+error message.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char * <B>history_arg_extract</B> <I>(int first, int last, const char *string)</I>
+<DD><A NAME="IDX33"></A>
+Extract a string segment consisting of the <VAR>first</VAR> through <VAR>last</VAR>
+arguments present in <VAR>string</VAR>.  Arguments are split as in Bash.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char * <B>get_history_event</B> <I>(const char *string, int *cindex, int qchar)</I>
+<DD><A NAME="IDX34"></A>
+Returns the text of the history event beginning at <VAR>string</VAR> +
+<VAR>*cindex</VAR>.  <VAR>*cindex</VAR> is modified to point to after the event
+specifier.  At function entry, <VAR>cindex</VAR> points to the index into
+<VAR>string</VAR> where the history event specification begins.  <VAR>qchar</VAR>
+is a character that is allowed to end the event specification in addition
+to the "normal" terminating characters.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char ** <B>history_tokenize</B> <I>(const char *string)</I>
+<DD><A NAME="IDX35"></A>
+Return an array of tokens parsed out of <VAR>string</VAR>, much as the
+shell might.  The tokens are split on the characters <CODE>" \t\n()&#60;&#62;;&#38;|$"</CODE>,
+and shell quoting conventions are obeyed.
+</DL>
+
+</P>
+
+
+<H2><A NAME="SEC17" HREF="history.html#TOC17">History Variables</A></H2>
+
+<P>
+This section describes the externally-visible variables exported by
+the GNU History Library.
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>history_base</B>
+<DD><A NAME="IDX36"></A>
+The logical offset of the first entry in the history list.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>history_length</B>
+<DD><A NAME="IDX37"></A>
+The number of entries currently stored in the history list.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>max_input_history</B>
+<DD><A NAME="IDX38"></A>
+The maximum number of history entries.  This must be changed using
+<CODE>stifle_history()</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char <B>history_expansion_char</B>
+<DD><A NAME="IDX39"></A>
+The character that starts a history event.  The default is <SAMP>`!'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char <B>history_subst_char</B>
+<DD><A NAME="IDX40"></A>
+The character that invokes word substitution if found at the start of
+a line.  The default is <SAMP>`^'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char <B>history_comment_char</B>
+<DD><A NAME="IDX41"></A>
+During tokenization, if this character is seen as the first character
+of a word, then it and all subsequent characters up to a newline are
+ignored, suppressing history expansion for the remainder of the line.
+This is disabled by default.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char * <B>history_no_expand_chars</B>
+<DD><A NAME="IDX42"></A>
+The list of characters which inhibit history expansion if found immediately
+following <VAR>history_expansion_char</VAR>.  The default is space, TAB, and
+<SAMP>`='</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char * <B>history_search_delimiter_chars</B>
+<DD><A NAME="IDX43"></A>
+The list of additional characters which can delimit a history search
+string, in addition to space, TAB, <SAMP>`:'</SAMP> and <SAMP>`?'</SAMP> in the case of
+a substring search.  The default is empty.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>history_quotes_inhibit_expansion</B>
+<DD><A NAME="IDX44"></A>
+If non-zero, single-quoted words are not scanned for the history expansion
+character.  The default value is 0.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_linebuf_func_t * <B>history_inhibit_expansion_function</B>
+<DD><A NAME="IDX45"></A>
+This should be set to the address of a function that takes two arguments:
+a <CODE>char *</CODE> (<VAR>string</VAR>)
+and an <CODE>int</CODE> index into that string (<VAR>i</VAR>).
+It should return a non-zero value if the history expansion starting at
+<VAR>string[i]</VAR> should not be performed; zero if the expansion should
+be done.
+It is intended for use by applications like Bash that use the history
+expansion character for additional purposes.
+By default, this variable is set to <CODE>NULL</CODE>.
+</DL>
+
+</P>
+
+
+<H2><A NAME="SEC18" HREF="history.html#TOC18">History Programming Example</A></H2>
+
+<P>
+The following program demonstrates simple use of the GNU History Library.
+
+</P>
+
+<PRE>
+#include &#60;stdio.h&#62;
+#include &#60;readline/history.h&#62;
+
+main (argc, argv)
+     int argc;
+     char **argv;
+{
+  char line[1024], *t;
+  int len, done = 0;
+
+  line[0] = 0;
+
+  using_history ();
+  while (!done)
+    {
+      printf ("history$ ");
+      fflush (stdout);
+      t = fgets (line, sizeof (line) - 1, stdin);
+      if (t &#38;&#38; *t)
+        {
+          len = strlen (t);
+          if (t[len - 1] == '\n')
+            t[len - 1] = '\0';
+        }
+
+      if (!t)
+        strcpy (line, "quit");
+
+      if (line[0])
+        {
+          char *expansion;
+          int result;
+
+          result = history_expand (line, &#38;expansion);
+          if (result)
+            fprintf (stderr, "%s\n", expansion);
+
+          if (result &#60; 0 || result == 2)
+            {
+              free (expansion);
+              continue;
+            }
+
+          add_history (expansion);
+          strncpy (line, expansion, sizeof (line) - 1);
+          free (expansion);
+        }
+
+      if (strcmp (line, "quit") == 0)
+        done = 1;
+      else if (strcmp (line, "save") == 0)
+        write_history ("history_file");
+      else if (strcmp (line, "read") == 0)
+        read_history ("history_file");
+      else if (strcmp (line, "list") == 0)
+        {
+          register HIST_ENTRY **the_list;
+          register int i;
+
+          the_list = history_list ();
+          if (the_list)
+            for (i = 0; the_list[i]; i++)
+              printf ("%d: %s\n", i + history_base, the_list[i]-&#62;line);
+        }
+      else if (strncmp (line, "delete", 6) == 0)
+        {
+          int which;
+          if ((sscanf (line + 6, "%d", &#38;which)) == 1)
+            {
+              HIST_ENTRY *entry = remove_history (which);
+              if (!entry)
+                fprintf (stderr, "No such entry %d\n", which);
+              else
+                {
+                  free (entry-&#62;line);
+                  free (entry);
+                }
+            }
+          else
+            {
+              fprintf (stderr, "non-numeric arg given to `delete'\n");
+            }
+        }
+    }
+}
+</PRE>
+
+
+
+<H1><A NAME="SEC19" HREF="history.html#TOC19">Concept Index</A></H1>
+<P>
+Jump to:
+<A HREF="#cindex_a">a</A>
+-
+<A HREF="#cindex_e">e</A>
+-
+<A HREF="#cindex_h">h</A>
+<P>
+<H2><A NAME="cindex_a">a</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX23">anchored search</A>
+</DIR>
+<H2><A NAME="cindex_e">e</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX2">event designators</A>
+</DIR>
+<H2><A NAME="cindex_h">h</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX3">history events</A>
+<LI><A HREF="history.html#IDX1">history expansion</A>
+<LI><A HREF="history.html#IDX22">History Searching</A>
+</DIR>
+
+</P>
+
+
+<H1><A NAME="SEC20" HREF="history.html#TOC20">Function and Variable Index</A></H1>
+<P>
+Jump to:
+<A HREF="#vindex_a">a</A>
+-
+<A HREF="#vindex_c">c</A>
+-
+<A HREF="#vindex_g">g</A>
+-
+<A HREF="#vindex_h">h</A>
+-
+<A HREF="#vindex_m">m</A>
+-
+<A HREF="#vindex_n">n</A>
+-
+<A HREF="#vindex_p">p</A>
+-
+<A HREF="#vindex_r">r</A>
+-
+<A HREF="#vindex_s">s</A>
+-
+<A HREF="#vindex_u">u</A>
+-
+<A HREF="#vindex_w">w</A>
+<P>
+<H2><A NAME="vindex_a">a</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX7">add_history</A>
+<LI><A HREF="history.html#IDX30">append_history</A>
+</DIR>
+<H2><A NAME="vindex_c">c</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX10">clear_history</A>
+<LI><A HREF="history.html#IDX16">current_history</A>
+</DIR>
+<H2><A NAME="vindex_g">g</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX34">get_history_event</A>
+</DIR>
+<H2><A NAME="vindex_h">h</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX33">history_arg_extract</A>
+<LI><A HREF="history.html#IDX36">history_base</A>
+<LI><A HREF="history.html#IDX41">history_comment_char</A>
+<LI><A HREF="history.html#IDX32">history_expand</A>
+<LI><A HREF="history.html#IDX39">history_expansion_char</A>
+<LI><A HREF="history.html#IDX17">history_get</A>
+<LI><A HREF="history.html#IDX5">history_get_history_state</A>
+<LI><A HREF="history.html#IDX45">history_inhibit_expansion_function</A>
+<LI><A HREF="history.html#IDX13">history_is_stifled</A>
+<LI><A HREF="history.html#IDX37">history_length</A>
+<LI><A HREF="history.html#IDX14">history_list</A>
+<LI><A HREF="history.html#IDX42">history_no_expand_chars</A>
+<LI><A HREF="history.html#IDX44">history_quotes_inhibit_expansion</A>
+<LI><A HREF="history.html#IDX24">history_search</A>
+<LI><A HREF="history.html#IDX43">history_search_delimiter_chars</A>
+<LI><A HREF="history.html#IDX26">history_search_pos</A>
+<LI><A HREF="history.html#IDX25">history_search_prefix</A>
+<LI><A HREF="history.html#IDX6">history_set_history_state</A>
+<LI><A HREF="history.html#IDX19">history_set_pos</A>
+<LI><A HREF="history.html#IDX40">history_subst_char</A>
+<LI><A HREF="history.html#IDX35">history_tokenize</A>
+<LI><A HREF="history.html#IDX18">history_total_bytes</A>
+<LI><A HREF="history.html#IDX31">history_truncate_file</A>
+</DIR>
+<H2><A NAME="vindex_m">m</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX38">max_input_history</A>
+</DIR>
+<H2><A NAME="vindex_n">n</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX21">next_history</A>
+</DIR>
+<H2><A NAME="vindex_p">p</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX20">previous_history</A>
+</DIR>
+<H2><A NAME="vindex_r">r</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX27">read_history</A>
+<LI><A HREF="history.html#IDX28">read_history_range</A>
+<LI><A HREF="history.html#IDX8">remove_history</A>
+<LI><A HREF="history.html#IDX9">replace_history_entry</A>
+</DIR>
+<H2><A NAME="vindex_s">s</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX11">stifle_history</A>
+</DIR>
+<H2><A NAME="vindex_u">u</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX12">unstifle_history</A>
+<LI><A HREF="history.html#IDX4">using_history</A>
+</DIR>
+<H2><A NAME="vindex_w">w</A></H2>
+<DIR>
+<LI><A HREF="history.html#IDX15">where_history</A>
+<LI><A HREF="history.html#IDX29">write_history</A>
+</DIR>
+
+</P>
+<P><HR><P>
+This document was generated on 5 Febuary 2001 using the
+<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>
+translator version 1.52.</P>
+</BODY>
+</HTML>
new file mode 100644
--- /dev/null
+++ b/readline/doc/history.info
@@ -0,0 +1,825 @@
+This is history.info, produced by makeinfo version 4.0 from
+/usr/homes/chet/src/bash/readline-src/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
+previously typed input.
+
+   Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice pare
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+
+File: history.info,  Node: Top,  Next: Using History Interactively,  Up: (dir)
+
+GNU History Library
+*******************
+
+   This document describes the GNU History library, a programming tool
+that provides a consistent user interface for recalling lines of
+previously typed input.
+
+* Menu:
+
+* Using History Interactively::	  GNU History User's Manual.
+* Programming with GNU History::  GNU History Programmer's Manual.
+* Concept Index::		  Index of concepts described in this manual.
+* Function and Variable Index::	  Index of externally visible functions
+				  and variables.
+
+
+File: history.info,  Node: Using History Interactively,  Next: Programming with GNU History,  Prev: Top,  Up: Top
+
+Using History Interactively
+***************************
+
+   This chapter describes how to use the GNU History Library
+interactively, from a user's standpoint.  It should be considered a
+user's guide.  For information on using the GNU History Library in your
+own programs, *note Programming with GNU History::.
+
+* Menu:
+
+* History Interaction::		What it feels like using History as a user.
+
+
+File: history.info,  Node: History Interaction,  Up: Using History Interactively
+
+History Expansion
+=================
+
+   The History library provides a history expansion feature that is
+similar to the history expansion provided by `csh'.  This section
+describes the syntax used to manipulate the history information.
+
+   History expansions introduce words from the history list into the
+input stream, making it easy to repeat commands, insert the arguments
+to a previous command into the current input line, or fix errors in
+previous commands quickly.
+
+   History expansion takes place in two parts.  The first is to
+determine which line from the history list should be used during
+substitution.  The second is to select portions of that line for
+inclusion into the current one.  The line selected from the history is
+called the "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:
+
+* Event Designators::	How to specify which history line to use.
+* Word Designators::	Specifying which words are of interest.
+* Modifiers::		Modifying the results of substitution.
+
+
+File: history.info,  Node: Event Designators,  Next: Word Designators,  Up: History Interaction
+
+Event Designators
+-----------------
+
+   An event designator is a reference to a command line entry in the
+history list.
+
+`!'
+     Start a history substitution, except when followed by a space, tab,
+     the end of the line, `=' or `('.
+
+`!N'
+     Refer to command line N.
+
+`!-N'
+     Refer to the command N lines back.
+
+`!!'
+     Refer to the previous command.  This is a synonym for `!-1'.
+
+`!STRING'
+     Refer to the most recent command starting with STRING.
+
+`!?STRING[?]'
+     Refer to the most recent command containing STRING.  The trailing
+     `?' may be omitted if the STRING is followed immediately by a
+     newline.
+
+`^STRING1^STRING2^'
+     Quick Substitution.  Repeat the last command, replacing STRING1
+     with STRING2.  Equivalent to `!!:s/STRING1/STRING2/'.
+
+`!#'
+     The entire command line typed so far.
+
+
+File: history.info,  Node: Word Designators,  Next: Modifiers,  Prev: Event Designators,  Up: History Interaction
+
+Word Designators
+----------------
+
+   Word designators are used to select desired words from the event.  A
+`:' separates the event specification from the word designator.  It may
+be omitted if the word designator begins with a `^', `$', `*', `-', or
+`%'.  Words are numbered from the beginning of the line, with the first
+word being denoted by 0 (zero).  Words are inserted into the current
+line separated by single spaces.
+
+   For example,
+
+`!!'
+     designates the preceding command.  When you type this, the
+     preceding command is repeated in toto.
+
+`!!:$'
+     designates the last argument of the preceding command.  This may be
+     shortened to `!$'.
+
+`!fi:2'
+     designates the second argument of the most recent command starting
+     with the letters `fi'.
+
+   Here are the word designators:
+
+`0 (zero)'
+     The `0'th word.  For many applications, this is the command word.
+
+`N'
+     The Nth word.
+
+`^'
+     The first argument; that is, word 1.
+
+`$'
+     The last argument.
+
+`%'
+     The word matched by the most recent `?STRING?' search.
+
+`X-Y'
+     A range of words; `-Y' abbreviates `0-Y'.
+
+`*'
+     All of the words, except the `0'th.  This is a synonym for `1-$'.
+     It is not an error to use `*' if there is just one word in the
+     event; the empty string is returned in that case.
+
+`X*'
+     Abbreviates `X-$'
+
+`X-'
+     Abbreviates `X-$' like `X*', but omits the last word.
+
+   If a word designator is supplied without an event specification, the
+previous command is used as the event.
+
+
+File: history.info,  Node: Modifiers,  Prev: Word Designators,  Up: History Interaction
+
+Modifiers
+---------
+
+   After the optional word designator, you can add a sequence of one or
+more of the following modifiers, each preceded by a `:'.
+
+`h'
+     Remove a trailing pathname component, leaving only the head.
+
+`t'
+     Remove all leading  pathname  components, leaving the tail.
+
+`r'
+     Remove a trailing suffix of the form `.SUFFIX', leaving the
+     basename.
+
+`e'
+     Remove all but the trailing suffix.
+
+`p'
+     Print the new command but do not execute it.
+
+`s/OLD/NEW/'
+     Substitute NEW for the first occurrence of OLD in the event line.
+     Any delimiter may be used in place of `/'.  The delimiter may be
+     quoted in OLD and NEW with a single backslash.  If `&' appears in
+     NEW, it is replaced by OLD.  A single backslash will quote the
+     `&'.  The final delimiter is optional if it is the last character
+     on the input line.
+
+`&'
+     Repeat the previous substitution.
+
+`g'
+     Cause changes to be applied over the entire event line.  Used in
+     conjunction with `s', as in `gs/OLD/NEW/', or with `&'.
+
+
+File: history.info,  Node: Programming with GNU History,  Next: Concept Index,  Prev: Using History Interactively,  Up: Top
+
+Programming with GNU History
+****************************
+
+   This chapter describes how to interface programs that you write with
+the GNU History Library.  It should be considered a technical guide.
+For information on the interactive use of GNU History, *note Using
+History Interactively::.
+
+* Menu:
+
+* Introduction to History::	What is the GNU History library for?
+* History Storage::		How information is stored.
+* History Functions::		Functions that you can use.
+* History Variables::		Variables that control behaviour.
+* History Programming Example::	Example of using the GNU History Library.
+
+
+File: history.info,  Node: Introduction to History,  Next: History Storage,  Up: Programming with GNU History
+
+Introduction to History
+=======================
+
+   Many programs read input from the user a line at a time.  The GNU
+History library is able to keep track of those lines, associate
+arbitrary data with each line, and utilize information from previous
+lines in composing new ones.
+
+   The programmer using the History library has available functions for
+remembering lines on a history list, associating arbitrary data with a
+line, removing lines from the list, searching through the list for a
+line containing an arbitrary text string, and referencing any line in
+the list directly.  In addition, a history "expansion" function is
+available which provides for a consistent user interface across
+different programs.
+
+   The user using programs written with the History library has the
+benefit of a consistent user interface with a set of well-known
+commands for manipulating the text of previous lines and using that text
+in new commands.  The basic history manipulation commands are similar to
+the history substitution provided by `csh'.
+
+   If the programmer desires, he can use the Readline library, which
+includes some history manipulation by default, and has the added
+advantage of command line editing.
+
+   Before declaring any functions using any functionality the History
+library provides in other code, an application writer should include
+the file `<readline/history.h>' in any file that uses the History
+library's features.  It supplies extern declarations for all of the
+library's public functions and variables, and declares all of the
+public data structures.
+
+
+File: history.info,  Node: History Storage,  Next: History Functions,  Prev: Introduction to History,  Up: Programming with GNU History
+
+History Storage
+===============
+
+   The history list is an array of history entries.  A history entry is
+declared as follows:
+
+     typedef void *histdata_t;
+     
+     typedef struct _hist_entry {
+       char *line;
+       histdata_t data;
+     } HIST_ENTRY;
+
+   The history list itself might therefore be declared as
+
+     HIST_ENTRY **the_history_list;
+
+   The state of the History library is encapsulated into a single
+structure:
+
+     /* A structure used to pass around the current state of the history. */
+     typedef struct _hist_state {
+       HIST_ENTRY **entries; /* Pointer to the entries themselves. */
+       int offset;           /* The location pointer within this array. */
+       int length;           /* Number of elements within this array. */
+       int size;             /* Number of slots allocated to this array. */
+       int flags;
+     } HISTORY_STATE;
+
+   If the flags member includes `HS_STIFLED', the history has been
+stifled.
+
+
+File: history.info,  Node: History Functions,  Next: History Variables,  Prev: History Storage,  Up: Programming with GNU History
+
+History Functions
+=================
+
+   This section describes the calling sequence for the various functions
+present in GNU History.
+
+* Menu:
+
+* Initializing History and State Management::	Functions to call when you
+						want to use history in a
+						program.
+* History List Management::		Functions used to manage the list
+					of history entries.
+* Information About the History List::	Functions returning information about
+					the history list.
+* Moving Around the History List::	Functions used to change the position
+					in the history list.
+* Searching the History List::		Functions to search the history list
+					for entries containing a string.
+* Managing the History File::		Functions that read and write a file
+					containing the history list.
+* History Expansion::			Functions to perform csh-like history
+					expansion.
+
+
+File: history.info,  Node: Initializing History and State Management,  Next: History List Management,  Up: History Functions
+
+Initializing History and State Management
+-----------------------------------------
+
+   This section describes functions used to initialize and manage the
+state of the History library when you want to use the history functions
+in your program.
+
+ - Function: void using_history (void)
+     Begin a session in which the history functions might be used.  This
+     initializes the interactive variables.
+
+ - Function: HISTORY_STATE * history_get_history_state (void)
+     Return a structure describing the current state of the input
+     history.
+
+ - Function: void history_set_history_state (HISTORY_STATE *state)
+     Set the state of the history list according to STATE.
+
+
+File: history.info,  Node: History List Management,  Next: Information About the History List,  Prev: Initializing History and State Management,  Up: History Functions
+
+History List Management
+-----------------------
+
+   These functions manage individual entries on the history list, or set
+parameters managing the list itself.
+
+ - Function: void add_history (const char *string)
+     Place STRING at the end of the history list.  The associated data
+     field (if any) is set to `NULL'.
+
+ - Function: HIST_ENTRY * remove_history (int which)
+     Remove history entry at offset WHICH from the history.  The
+     removed element is returned so you can free the line, data, and
+     containing structure.
+
+ - Function: HIST_ENTRY * replace_history_entry (int which, const char
+          *line, histdata_t data)
+     Make the history entry at offset WHICH have LINE and DATA.  This
+     returns the old entry so you can dispose of the data.  In the case
+     of an invalid WHICH, a `NULL' pointer is returned.
+
+ - Function: void clear_history (void)
+     Clear the history list by deleting all the entries.
+
+ - Function: void stifle_history (int max)
+     Stifle the history list, remembering only the last MAX entries.
+
+ - Function: int unstifle_history (void)
+     Stop stifling the history.  This returns the previous amount the
+     history was stifled.  The value is positive if the history was
+     stifled, negative if it wasn't.
+
+ - Function: int history_is_stifled (void)
+     Returns non-zero if the history is stifled, zero if it is not.
+
+
+File: history.info,  Node: Information About the History List,  Next: Moving Around the History List,  Prev: History List Management,  Up: History Functions
+
+Information About the History List
+----------------------------------
+
+   These functions return information about the entire history list or
+individual list entries.
+
+ - Function: HIST_ENTRY ** history_list (void)
+     Return a `NULL' terminated array of `HIST_ENTRY *' which is the
+     current input history.  Element 0 of this list is the beginning of
+     time.  If there is no history, return `NULL'.
+
+ - Function: int where_history (void)
+     Returns the offset of the current history element.
+
+ - Function: HIST_ENTRY * current_history (void)
+     Return the history entry at the current position, as determined by
+     `where_history()'.  If there is no entry there, return a `NULL'
+     pointer.
+
+ - Function: HIST_ENTRY * history_get (int offset)
+     Return the history entry at position OFFSET, starting from
+     `history_base' (*note History Variables::).  If there is no entry
+     there, or if OFFSET is greater than the history length, return a
+     `NULL' pointer.
+
+ - Function: int history_total_bytes (void)
+     Return the number of bytes that the primary history entries are
+     using.  This function returns the sum of the lengths of all the
+     lines in the history.
+
+
+File: history.info,  Node: Moving Around the History List,  Next: Searching the History List,  Prev: Information About the History List,  Up: History Functions
+
+Moving Around the History List
+------------------------------
+
+   These functions allow the current index into the history list to be
+set or changed.
+
+ - Function: int history_set_pos (int pos)
+     Set the current history offset to POS, an absolute index into the
+     list.
+
+ - Function: HIST_ENTRY * previous_history (void)
+     Back up the current history offset to the previous history entry,
+     and return a pointer to that entry.  If there is no previous
+     entry, return a `NULL' pointer.
+
+ - Function: HIST_ENTRY * next_history (void)
+     Move the current history offset forward to the next history entry,
+     and return the a pointer to that entry.  If there is no next
+     entry, return a `NULL' pointer.
+
+
+File: history.info,  Node: Searching the History List,  Next: Managing the History File,  Prev: Moving Around the History List,  Up: History Functions
+
+Searching the History List
+--------------------------
+
+   These functions allow searching of the history list for entries
+containing a specific string.  Searching may be performed both forward
+and backward from the current history position.  The search may be
+"anchored", meaning that the string must match at the beginning of the
+history entry.
+
+ - Function: int history_search (const char *string, int direction)
+     Search the history for STRING, starting at the current history
+     offset.  If DIRECTION is less than 0, then the search is through
+     previous entries, otherwise through subsequent entries.  If STRING
+     is found, then the current history index is set to that history
+     entry, and the value returned is the offset in the line of the
+     entry where STRING was found.  Otherwise, nothing is changed, and
+     a -1 is returned.
+
+ - Function: int history_search_prefix (const char *string, int
+          direction)
+     Search the history for STRING, starting at the current history
+     offset.  The search is anchored: matching lines must begin with
+     STRING.  If DIRECTION is less than 0, then the search is through
+     previous entries, otherwise through subsequent entries.  If STRING
+     is found, then the current history index is set to that entry, and
+     the return value is 0.  Otherwise, nothing is changed, and a -1 is
+     returned.
+
+ - Function: int history_search_pos (const char *string, int direction,
+          int pos)
+     Search for STRING in the history list, starting at POS, an
+     absolute index into the list.  If DIRECTION is negative, the search
+     proceeds backward from POS, otherwise forward.  Returns the
+     absolute index of the history element where STRING was found, or
+     -1 otherwise.
+
+
+File: history.info,  Node: Managing the History File,  Next: History Expansion,  Prev: Searching the History List,  Up: History Functions
+
+Managing the History File
+-------------------------
+
+   The History library can read the history from and write it to a file.
+This section documents the functions for managing a history file.
+
+ - Function: int read_history (const char *filename)
+     Add the contents of FILENAME to the history list, a line at a time.
+     If FILENAME is `NULL', then read from `~/.history'.  Returns 0 if
+     successful, or `errno' if not.
+
+ - Function: int read_history_range (const char *filename, int from,
+          int to)
+     Read a range of lines from FILENAME, adding them to the history
+     list.  Start reading at line FROM and end at TO.  If FROM is zero,
+     start at the beginning.  If TO is less than FROM, then read until
+     the end of the file.  If FILENAME is `NULL', then read from
+     `~/.history'.  Returns 0 if successful, or `errno' if not.
+
+ - Function: int write_history (const char *filename)
+     Write the current history to FILENAME, overwriting FILENAME if
+     necessary.  If FILENAME is `NULL', then write the history list to
+     `~/.history'.  Values returned are as in `read_history()'.
+
+ - Function: int append_history (int nelements, const char *filename)
+     Append the last NELEMENTS of the history list to FILENAME.  If
+     FILENAME is `NULL', then append to `~/.history'.
+
+ - Function: int history_truncate_file (const char *filename, int
+          nlines)
+     Truncate the history file FILENAME, leaving only the last NLINES
+     lines.  If FILENAME is `NULL', then `~/.history' is truncated.
+
+
+File: history.info,  Node: History Expansion,  Prev: Managing the History File,  Up: History Functions
+
+History Expansion
+-----------------
+
+   These functions implement `csh'-like history expansion.
+
+ - Function: int history_expand (char *string, char **output)
+     Expand STRING, placing the result into OUTPUT, a pointer to a
+     string (*note History Interaction::).  Returns:
+    `0'
+          If no expansions took place (or, if the only change in the
+          text was the removal of escape characters preceding the
+          history expansion character);
+
+    `1'
+          if expansions did take place;
+
+    `-1'
+          if there was an error in expansion;
+
+    `2'
+          if the returned line should be displayed, but not executed,
+          as with the `:p' modifier (*note Modifiers::).
+
+     If an error ocurred in expansion, then OUTPUT contains a
+     descriptive error message.
+
+ - Function: char * history_arg_extract (int first, int last, const
+          char *string)
+     Extract a string segment consisting of the FIRST through LAST
+     arguments present in STRING.  Arguments are split as in Bash.
+
+ - Function: char * get_history_event (const char *string, int *cindex,
+          int qchar)
+     Returns the text of the history event beginning at STRING +
+     *CINDEX.  *CINDEX is modified to point to after the event
+     specifier.  At function entry, CINDEX points to the index into
+     STRING where the history event specification begins.  QCHAR is a
+     character that is allowed to end the event specification in
+     addition to the "normal" terminating characters.
+
+ - Function: char ** history_tokenize (const char *string)
+     Return an array of tokens parsed out of STRING, much as the shell
+     might.  The tokens are split on the characters `" \t\n()<>;&|$"',
+     and shell quoting conventions are obeyed.
+
+
+File: history.info,  Node: History Variables,  Next: History Programming Example,  Prev: History Functions,  Up: Programming with GNU History
+
+History Variables
+=================
+
+   This section describes the externally-visible variables exported by
+the GNU History Library.
+
+ - Variable: int history_base
+     The logical offset of the first entry in the history list.
+
+ - Variable: int history_length
+     The number of entries currently stored in the history list.
+
+ - Variable: int max_input_history
+     The maximum number of history entries.  This must be changed using
+     `stifle_history()'.
+
+ - Variable: char history_expansion_char
+     The character that starts a history event.  The default is `!'.
+
+ - Variable: char history_subst_char
+     The character that invokes word substitution if found at the start
+     of a line.  The default is `^'.
+
+ - Variable: char history_comment_char
+     During tokenization, if this character is seen as the first
+     character of a word, then it and all subsequent characters up to a
+     newline are ignored, suppressing history expansion for the
+     remainder of the line.  This is disabled by default.
+
+ - Variable: char * history_no_expand_chars
+     The list of characters which inhibit history expansion if found
+     immediately following HISTORY_EXPANSION_CHAR.  The default is
+     space, TAB, and `='.
+
+ - Variable: char * history_search_delimiter_chars
+     The list of additional characters which can delimit a history
+     search string, in addition to space, TAB, `:' and `?' in the case
+     of a substring search.  The default is empty.
+
+ - Variable: int history_quotes_inhibit_expansion
+     If non-zero, single-quoted words are not scanned for the history
+     expansion character.  The default value is 0.
+
+ - Variable: rl_linebuf_func_t * history_inhibit_expansion_function
+     This should be set to the address of a function that takes two
+     arguments: a `char *' (STRING) and an `int' index into that string
+     (I).  It should return a non-zero value if the history expansion
+     starting at STRING[I] should not be performed; zero if the
+     expansion should be done.  It is intended for use by applications
+     like Bash that use the history expansion character for additional
+     purposes.  By default, this variable is set to `NULL'.
+
+
+File: history.info,  Node: History Programming Example,  Prev: History Variables,  Up: Programming with GNU History
+
+History Programming Example
+===========================
+
+   The following program demonstrates simple use of the GNU History
+Library.
+
+     #include <stdio.h>
+     #include <readline/history.h>
+     
+     main (argc, argv)
+          int argc;
+          char **argv;
+     {
+       char line[1024], *t;
+       int len, done = 0;
+     
+       line[0] = 0;
+     
+       using_history ();
+       while (!done)
+         {
+           printf ("history$ ");
+           fflush (stdout);
+           t = fgets (line, sizeof (line) - 1, stdin);
+           if (t && *t)
+             {
+               len = strlen (t);
+               if (t[len - 1] == '\n')
+                 t[len - 1] = '\0';
+             }
+     
+           if (!t)
+             strcpy (line, "quit");
+     
+           if (line[0])
+             {
+               char *expansion;
+               int result;
+     
+               result = history_expand (line, &expansion);
+               if (result)
+                 fprintf (stderr, "%s\n", expansion);
+     
+               if (result < 0 || result == 2)
+                 {
+                   free (expansion);
+                   continue;
+                 }
+     
+               add_history (expansion);
+               strncpy (line, expansion, sizeof (line) - 1);
+               free (expansion);
+             }
+     
+           if (strcmp (line, "quit") == 0)
+             done = 1;
+           else if (strcmp (line, "save") == 0)
+             write_history ("history_file");
+           else if (strcmp (line, "read") == 0)
+             read_history ("history_file");
+           else if (strcmp (line, "list") == 0)
+             {
+               register HIST_ENTRY **the_list;
+               register int i;
+     
+               the_list = history_list ();
+               if (the_list)
+                 for (i = 0; the_list[i]; i++)
+                   printf ("%d: %s\n", i + history_base, the_list[i]->line);
+             }
+           else if (strncmp (line, "delete", 6) == 0)
+             {
+               int which;
+               if ((sscanf (line + 6, "%d", &which)) == 1)
+                 {
+                   HIST_ENTRY *entry = remove_history (which);
+                   if (!entry)
+                     fprintf (stderr, "No such entry %d\n", which);
+                   else
+                     {
+                       free (entry->line);
+                       free (entry);
+                     }
+                 }
+               else
+                 {
+                   fprintf (stderr, "non-numeric arg given to `delete'\n");
+                 }
+             }
+         }
+     }
+
+
+File: history.info,  Node: Concept Index,  Next: Function and Variable Index,  Prev: Programming with GNU History,  Up: Top
+
+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.
+
+
+File: history.info,  Node: Function and Variable Index,  Prev: Concept Index,  Up: Top
+
+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.
+
+
+
+Tag Table:
+Node: Top1136
+Node: Using History Interactively1716
+Node: History Interaction2223
+Node: Event Designators3642
+Node: Word Designators4569
+Node: Modifiers6198
+Node: Programming with GNU History7336
+Node: Introduction to History8061
+Node: History Storage9746
+Node: History Functions10843
+Node: Initializing History and State Management11814
+Node: History List Management12614
+Node: Information About the History List14164
+Node: Moving Around the History List15520
+Node: Searching the History List16407
+Node: Managing the History File18325
+Node: History Expansion19996
+Node: History Variables21856
+Node: History Programming Example24183
+Node: Concept Index26905
+Node: Function and Variable Index27391
+
+End Tag Table
new file mode 100644
--- /dev/null
+++ b/readline/doc/history.ps
@@ -0,0 +1,1641 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.82 Copyright 1998 Radical Eye Software
+%%Title: history.dvi
+%%Pages: 20
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -D 300 -t letter -o history.ps history.dvi
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource:  TeX output 2001.02.05:1130
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}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}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IE 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IE N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 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 A 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 A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 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}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}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
+
+%%EndProcSet
+TeXDict begin 40258431 52099146 1000 300 300 (history.dvi)
+@start
+%DVIPSBitmapFont: Fa cmti10 10.95 1
+/Fa 1 47 df<127012F8A212F012E005057B840E>46 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmbxti10 14.4 1
+/Fb 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmtt9 9 26
+/Fc 26 123 df<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA
+07FC121FEA3C1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97
+D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0E
+EA1DFCEA0CF81217809614>I<EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A4126012
+70EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA
+301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0
+EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F0
+0F107E8F14>I<13FCEA01FEEA038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F17
+7F9614>I<EA07CF381FFF80EA383B38301800EA701CA3EA3018EA3838EA3FF0EA37C000
+70C7FCA2EA3FF86C7E487EEA700F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F
+14>I<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206
+120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I<12FCA2121CA5EBFF80A2EB
+1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>107
+D<EAFF80A21203B3EAFFFEA20F177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FE
+FBE013791310808F14>I<EAFC78EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>
+I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E
+8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1D
+FCEA1CF890C7FCA6B47EA21218808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA
+700F1230EA1C3FEA0FF7EA07C7EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0E
+E3380F810090C7FCA2120EA8EAFFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EA
+F000EA7F80EA3FF0EA07F8EA001CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>
+I<1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3F
+A2EA1C07AB131F380FFFE0EA03E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5A
+A3EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA
+1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C
+5A12037FEA0770EA0E781338487E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005B
+A2120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC127E123C11187F8F
+14>I<EA3FFF5AEA700E131C1338EA007013E0EA01C0EA0380EA0700120EEA1C07123812
+70B5FCA210107F8F14>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd cmti9 9 1
+/Fd 1 47 df<1230127812F0126005047C830C>46 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe cmr9 9 24
+/Fe 24 122 df<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA6006A2EA70
+0EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA7FF80D187D
+9713>I<EA01F8EA0704EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEA
+F00EEAE0061307A31260A2EA7006EA300EEA180CEA0C38EA07E010187F9713>54
+D<1240EA7FFF13FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2
+120EA5120410197E9813>I<EA07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA
+1F30EA07C0EA03E0EA0CF8EA307CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07
+E010187F9713>I<EA07E0EA1C30EA3018EA700CEA600EEAE006A21307A31260EA700FEA
+3017EA1827EA07C7EA00071306130E130C12701318EA6030EA3060EA0F8010187F9713>
+I<39FFE1FFC0390E001C00AB380FFFFC380E001CAC39FFE1FFC01A1A7F991D>72
+D<EA0FC2EA1836EA200EEA600612C01302A3EAE0001270127EEA3FE0EA1FF8EA03FCEA00
+7E130E130713031280A3EAC0021306EAE004EAD818EA87E0101A7E9915>83
+D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F
+8F0011107F8F13>97 D<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
+07E00E107F8F11>99 D<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C
+5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE0
+00A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA0FCF3818718038303000EA70
+38A4EA30306C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA38
+1CEA07E011187F8F13>103 D<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF014
+1A809915>I<1218123CA212181200A612FC121CAE12FF081A80990A>I<EAFC7CEA1D8738
+1E0380A2121CAB38FF9FF01410808F15>110 D<EA07E0EA1C38EA300CEA700EEA6006EA
+E007A6EA6006EA700EEA381CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E038038
+1C01C0A2EB00E0A6EB01C01480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<
+EAFC78EA1D9CEA1E1C1308EA1C00ABEAFF800E10808F0F>114 D<EA1F20EA60E0EA4020
+12C0A2EAF000127FEA3FC0EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F
+0F>I<1208A41218A21238EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38
+FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>
+118 D<38FE3F80383C1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA
+181CEA381E38FC3FC012107F8F14>120 D<38FF0F80383C0700EA1C061304A26C5AA26C
+5AA3EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff cmss10 10.95 2
+/Ff 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
+AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
+D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
+07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg cmbx10 12 27
+/Fg 27 123 df<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2
+ECFF80B6FCA2380FC01FB2397FF8FFF0A21C237FA220>12 D<90380FFF80137F3801FC1F
+3803F03FEA07E0EA0FC0141FA7B6FCA2380FC01FB2397FF8FFF0A21C237FA220>I<EA07
+FE381FFF80383F07E06D7E130180121E1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA
+7C02EA7E0C391FF87F803807E03F19167E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF0
+3EEBC01F9038800F8015C0140715E0A715C0A2140F15809038C01F00381E707E381C3FFC
+38180FE01B237EA220>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC
+12FCA6127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<49B4FC
+A2EB003FAB13FE3807FFBF380FC1FF48C67E003E7F127E127CA212FCA7127C127E123E6C
+5B380F81FF3907FF3FE0EA01FC1B237EA220>I<13FE3807FF80380F83C0381E01E0383E
+00F0127E007C13F8147812FCB512F8A200FCC7FCA3127CA26C1318A26C1330380F80E038
+03FFC0C6130015167E951A>I<EB1F80EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC0
+00A6EAFFFEA2EA0FC0B2EA7FFCA214237EA212>I<9038FE0F803903FF9FC0380F83E338
+1F01F3391E00F000003E7FA5001E5BEA1F01380F83E0380BFF80D808FEC7FC0018C8FCA2
+121C381FFFE014FC6C13FF7E001F1480397C001FC00078130F00F81307A3007CEB0F806C
+EB1F00381F807E6CB45A000113E01A217F951D>I<B47EA2121FABEB83F0EB8FFCEB987E
+EBA03EEBC03FA21380AE39FFF1FFE0A21B237DA220>I<121E123FEA7F80A4EA3F00121E
+C7FCA6EAFF80A2121FB2EAFFF0A20C247EA30F>I<B47EA2121FABECFF80A2EC3C001430
+14E0EB81C00183C7FC1386139E13BE13FFEBDF80EB8FC01307806D7E6D7E130080147E39
+FFE1FFC0A21A237EA21E>107 D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F8
+03F890390FFE0FFE3A1F183F183F9039201F201F014001C01380A201801380AE3BFFF0FF
+F0FFF0A22C167D9531>I<38FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FF
+E0A21B167D9520>I<13FF000713E0380F81F0381F00F8003E137C48133EA300FC133FA7
+007C133E007E137E003E137C6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87
+F0EBBFFC381FF07EEBC01F9038800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EB
+F07EEBBFFCEB8FE00180C7FCA8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF38
+1F00DF48137F007E7FA2127C12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8
+903801FFE0A21B207E951E>I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000AD
+EAFFF8A214167E9518>I<3807F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA
+7FFE6C7E6C1380120738003FC0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812
+167E9517>I<487EA41203A21207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3
+EA07FEEA01F811207F9F16>I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01
+FC1B167D9520>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA2
+6C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3
+FF83FCA23A1F807C00E0D80FC014C08001E013010007017F1380A2D803F0EB0300ECCF83
+01F81387D801F913C61487D800FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118
+136026167F9529>I<39FFF07FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD8013
+7F91C7FC7F6D7E497EEB37E0EB67F013C33801C1F8380380FC48487E000E137F39FF81FF
+E0A21B167F951E>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035B
+A26C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC38
+13305BEA69C0EA7F80001FC8FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F
+00E0138038C03F005B137EC65A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB
+00E0EA7E03B5FCA214167E9519>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh cmtt10 12 27
+/Fh 27 119 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
+FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<1338137CA2136C13EEA313
+C6A2EA01C7A438038380A4380701C0A213FFA24813E0EA0E00A4481370387F01FC38FF83
+FE387F01FC171E7F9D1A>65 D<B512F8A3381C0038A51400A2130EA3EA1FFEA3EA1C0EA3
+90C7FCA3141CA5B512FCA3161E7E9D1A>69 D<38FF83FEA3381C0070AA381FFFF0A3381C
+0070AB38FF83FEA3171E7F9D1A>72 D<B51280A33801C000B3A6B51280A3111E7C9D1A>
+I<38FE03FE12FFA2381D8070A213C0121CA213E0A213601370A213301338A21318131CA2
+130C130EA21306A213071303A238FF81F0A21380171E7F9D1A>78
+D<EA0FFE383FFF804813C0EA7C07EA700100F013E0EAE000B1EAF001A2007013C0EA7C07
+EA7FFF6C1380380FFE00131E7D9D1A>I<EAFFFC13FF1480381C07C0EB01E0EB00F01470
+A414F0EB01E0EB07C0381FFF8014001480381C07C01301EB00E0A514E214E7A338FF807E
+A21438181E7F9D1A>82 D<3803F1C0EA0FFDEA3FFFEA7C0FEA700312E01301A390C7FC12
+701278123FEA1FF0EA07FE3800FF80EB0FC0EB01E013001470A2126012E0A214E0EAF001
+38FC03C0B5128000EF1300EAE3FC141E7D9D1A>I<387FFFFEB5FCA238E0380EA5000013
+00B33803FF80A3171E7F9D1A>I<38FF01FEA3381C00706C13E0A2380701C0A213830003
+138013C700011300A2EA00EEA2137CA21338AA48B4FCA3171E7F9D1A>89
+D<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA30073800
+0380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07
+F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB0038120E14
+1CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<EBFF8000
+0313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F01F0380F
+FFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0FFFEA1E0F
+EA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1161E7E9D
+1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7
+FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<EB07E0EB
+1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF804813C06C13
+80151E7F9D1A>I<12FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3
+FE13E713E3171E7F9D1A>104 D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80
+B512C06C1380121F7C9E1A>I<EAFFE0A31200B3A6B512E0A3131E7D9D1A>108
+D<EAFE3EEBFF80B512C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>
+110 D<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E000E0A6EAF0010070
+13C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>I<387F81F838FF8F
+FC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>114
+D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F
+9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387F
+C7FC00FF13FE007F13FC380E00E0A3380701C0A338038380A33801C700A3EA00EEA3137C
+A2133817157F941A>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi cmbx12 13.14 41
+/Fi 41 123 df<EB07FCEB3FFF9038FE0780D803F013C03807E00FA2EA0FC0A3EC030091
+C7FCA3EC7FE0B6FCA2380FC007B3A239FFFC7FFEA21F267FA522>12
+D<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA21200B3AA387FFF
+FCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14
+FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370
+EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48
+B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8
+EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214
+FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F8
+1301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A12
+705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF8
+14F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC712
+7EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE0018
+237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA2007E13
+3C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E123F
+6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512C0A2
+15804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25B
+A213F8A41201A66C5A13601A257DA41F>I<141CA2143EA3147FA24A7EA39038019FC0A2
+9038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FCA290
+39E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229257E
+A42E>65 D<B612E015FC3903F800FFED1FC0ED07E06F7E6F7E82150082A2167FA31780AA
+1700A316FEA24B5A5E4B5A4B5AED1FC0EDFF80B648C7FC15E029257EA42F>68
+D<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFE
+A2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428
+>I<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F
+8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FC
+A29038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A2
+13257EA417>I<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FC
+B6FCA220257EA425>76 D<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C
+130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3
+EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>
+I<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
+EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
+C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>83
+D<B53B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D49
+6C1338000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E013
+8190280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14
+FC6D486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>87
+D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
+00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
+D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
+A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
+7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
+EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
+0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
+FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
+12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
+17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
+C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
+007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
+13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
+FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
+07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
+C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FB3B0EAFFFCA20E26
+7EA511>108 D<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E8
+03F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80
+390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803
+FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A238
+1F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F0
+07E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038
+CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC
+13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA70
+01EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212
+E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F
+121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39
+FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<
+39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC0000
+5B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A239
+0FC00F003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F8
+1361EBE0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
+D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
+005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
+1370EA68E0EA7FC0001FC8FC1D237F9720>I<387FFFF8A2387C03F0EA700738600FE000
+E013C0EB1F80EAC03F1400137EEA00FE5B485A0003130C13F0EA07E0120FEBC01C381F80
+18003F1338387F0078387E01F8B5FCA216187E971B>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fj cmsl10 10.95 30
+/Fj 30 122 df<903803F07C90381E0DC69038380F0FEB701E01E0130EEC0C003801C01C
+A548485A007FB512C03903803800A448485AA6000E5BA648485A001E7F38FF8FFC20207E
+9F1B>11 D<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF038038070A4
+380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>I<903803F03F9039
+1E09E0809039380F80C09039701F01E0EBE03E021E13C02601C01CC7FCA548485A007FB6
+12803903803803A43A0700700700A6000EEBE00EA64848485A001EEBE01E3AFF8FF8FFC0
+23207E9F26>14 D<13201360A4383061C0383C4380380E4E00EA0778EA01E0A2EA07B8EA
+1C9CEA708FEAE083EA0180A490C7FC12147AA117>42 D<13181338EA01F8EA0E701200A5
+13E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B9D17>49 D<EB3F80EBC1E0380100
+70000213785AA2000F137C1380A2EB00781206C712F814F0EB01E014C0EB0380EB070013
+0E5B5B13605B485A380300201206000813405A383FFFC0481380B5FC161E7E9D17>I<13
+FFEA01FE1380A5EA0300A61206A65AA65AA65AA65AA6B4FCA2102D7EA10D>91
+D<13FFEA01FEEA0006A5130CA61318A61330A61360A613C0A6EA0180A6EAFF00A2102D82
+A10D>93 D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E07EA3C0E127800F0
+1310A3131EEB2E2038784F40381F878014147D9317>97 D<13FEEA0383380E0780121C00
+38130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314>99
+D<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278
+12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07
+0EEA0E07121C383803801278127012F0A2B5FC00F0C7FC5AA46C5AEA7002EA3004EA1C18
+EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC0001201A5485AEA3FFCEA
+0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E11EBE1A33801C1C238
+0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0
+14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012
+0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6
+381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213C0EA0180C7FCA6EA03
+80121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>I<13E0120712011200
+A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>108
+D<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5000EEB
+E00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A0
+3803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E9319>
+I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300F013
+8038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C6C487E140F
+48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90C8FCA3120E
+A4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C003813C0127812
+F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0
+131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120EA65A121EEA
+FFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13F0EA07FCEA
+01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<1380EA0100
+A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<38
+1C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011147B
+9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA0390
+13A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C030060148015
+401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C48
+5A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE180EB
+73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE07FC
+18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C13705CA2
+0171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278
+191D809318>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fk cmcsc10 10.95 3
+/Fk 3 118 df<EB7E083803819838070078000C1338001C13185A00781308127000F013
+00A5EB03FEEB00381270127812387E120C1207380380D838007F0817177E961D>103
+D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C130E1307A2
+EB03A0EB01E0A213001460123800FE132016177E961C>110 D<38FF81FC381C00701420
+B0000C1340120E6C138038018300EA007C16177E961C>117 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl cmbx12 17.28 36
+/Fl 36 122 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
+1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
+7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
+F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
+131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<1578A215FCA34A7E
+A24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F02787FEC700FA202E07F1507
+010180ECC003A249486C7EA201078191C7FC498191B6FCA24981011CC7123F013C810138
+141FA24981160F01F081491407A2484881486C1403B549B512FCA336317DB03D>65
+D<B712C016FC16FFD801FEC77FEE7FE0707E161F707EA2831607A4160FA25FA24C5A4C5A
+4C5A4B485ADB1FFEC7FC90B65AEEFF8049C7EA3FE0EE0FF0EE07FCA2707E83821880A718
+005E5F16074C5A4C5AEEFFF0B812C094C7FC16F831317DB039>I<913A03FF800180023F
+EBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C8127F
+4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127FA2
+7FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93FC0
+5CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>I<
+B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D5D
+91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70 D<DA03FF1303027FEBF0
+0749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49487F4848C87E485A0007
+824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B512F8127F7FDB00011300
+123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497ED907FFEB3E3F01019038
+FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B6D8807FB512C0A3C60180C7387FC000
+B391B7FCA30280C7127FB3A3B6D8807FB512C0A33A317EB03F>I<B61280A3C6EB8000B3
+B3A7B61280A319317EB01E>I<B56C49B512C08080C66D90390003E0006E6E5AEBEFFC13
+E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E16806E13C0ED7FE0ED3F
+F0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1EE1FF9EE0FFD160717FF
+828282177F173FA2171F170F486C1507B500E014031701A23A317EB03F>78
+D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FFA717FEA2EE
+07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB037>80
+D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603
+A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807C000
+715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801FC002
+3FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C1780
+6E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075DA26E
+130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C021F13
+3815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238317EB0
+3D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FC
+A414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F800D39
+3FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 D<EA01F812FFA3120F12
+07ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E049EB07F016F8A2ED03FC
+A316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F809039C3C0FE00903880FFF8
+9038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803F0033907E007F8120FEA
+1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2001F14386C7E00071470
+3903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED0FC0EC07FFA3EC007F15
+3FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F4848133F123FA2485AA312
+FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F3FFE38007FFEEB0F
+F027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E03907E001F0000F14F839
+1FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7FCA4127FA36C6C130712
+1F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807FE0020207E9F25>I<EB
+01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC1203EC07E0EC018091C7
+FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90391FF007C09039FFFE3F
+E03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2
+000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C
+14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC
+0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F
+28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013809039F9801FC0EBFB00
+01FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E487E487EA46C5A6C5A6C
+5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA01F812FFA3120F1207B3
+B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01
+E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3
+B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1
+801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFF
+C03901FC07F03903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300
+FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF0
+39007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFFFC9038FBE07F9039FF00
+3F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2
+ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A3
+272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07
+E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C
+133E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA00
+3F01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C0
+7F8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FC
+C7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07
+E000FFEB03FFA3000FEB003F0007141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF
+90387FFF1FEB0FFC28207D9F2D>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315
+007F0001140E7F6C5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14
+F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478A226207E9F2B>I<B53A1FFFE03F
+F8A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15
+DF01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEB
+F9C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E
+9F3A>I<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90
+381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF081
+90380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA3
+28207F9F2B>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C
+5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214
+FF6D90C7FCA26D5AA26D5AA21478A21470A214F05C1301007C5BEAFE035C49C8FC5BEAFC
+1EEA787CEA3FF0EA0FC0262E7E9F2B>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fm cmsy10 10.95 1
+/Fm 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C000
+061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C15
+30A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090C7
+FC282B7EA02D>13 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fn cmbx12 14.4 45
+/Fn 45 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
+0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
+D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
+D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
+127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
+705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
+FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
+F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
+7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
+BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
+A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
+C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
+127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
+22>I<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F14
+80A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303
+000181491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8
+001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EA
+FE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1F
+F8B712E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF0
+0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290
+C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039
+7FF007C0011FB512800107EBFE009038007FF028297CA831>I<B712E0A33903FC001FED
+07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3EBFC0F1403A202
+01130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327297EA82C>69
+D<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403A2140F
+90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003903907
+FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880485A82
+485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E6C7E6C
+B45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5D8F00FB5FC
+A3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<B512F0
+A33803FC00B3B1B512F0A314297EA819>I<D8FFFE92383FFF80A26D5D0003EFE000A2D9
+BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC13
+1CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700
+A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>77
+D<D8FFFCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF0180
+1380147F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1ED1F
+F1150F16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A230297EA8
+35>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA716FC150316F8ED
+07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>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
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fo cmtt10 10.95 75
+/Fo 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
+38FE078038F803C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5A
+EA01F8131C7E9B18>54 D<1230127812FCA2127812301200A81230127812FCA212781230
+0614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E12
+1C123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07
+F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E013
+03EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0
+130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2
+EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0F
+F0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5
+EA0380487EA36C5A111C7D9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
+A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65
+D<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
+C01303EB0F80387FFF00485AEA7FF8141C7F9B18>68 D<B512F0A3381C0070A41400A213
+0EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F8A3381C0038
+A41400A21307A3EA1FFFA3EA1C07A390C7FCA7EAFFC0A3151C7F9B18>I<387F07F038FF
+8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18
+>72 D<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<EAFFC0
+A3001CC7FCB114E0A5B5FCA3131C7E9B18>76 D<387E07F038FF0FF8387F07F0381D81C0
+A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
+151C7F9B18>78 D<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF00100
+7013C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01
+E013001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<
+EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB
+0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0F
+EA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2
+126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA2
+38E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F
+01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03381C01C0
+EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C
+5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>91
+D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F12007F
+1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<EAFFF8A3EA00
+38B3ACEAFFF8A30D247F9F18>I<EA0180EA07C0EA1FF0EA7EFCEAF83EEAE00E0F067C9B
+18>I<387FFFC0B512E0A26C13C013047E7F18>I<1206121E123E12381270A212E0A312F8
+12FC127CA21238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF12
+07121FEA7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E
+12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80
+E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838
+030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<
+EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007
+A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA
+3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF80
+00071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0
+B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00
+487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F03870
+0070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE12
+7E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC17
+1C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C
+18>I<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
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fp cmr10 10.95 74
+/Fp 74 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
+B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
+A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
+00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
+80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
+EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
+D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
+D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
+30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
+0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
+5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
+D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<EA03F0EA0E1C487EEA1806
+EA380738700380A400F013C0AD00701380A3EA780700381300EA1806EA1C0E6C5AEA03F0
+121F7E9D17>48 D<13801203120F12F31203B3A6EA07C0EAFFFE0F1E7C9D17>I<EA03F0
+EA0C1CEA100E487E00401380128000F013C0EAF803A3EA200712001480A2EB0F00130E5B
+5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5FC121E7E9D17>I<EA03F0
+EA0C1CEA100EEA200F007813801307A2EA380F12001400A2131E131C1370EA07F0EA003C
+130E130FEB0780A214C0122012F8A300F013801240EB0F00EA200EEA183CEA07F0121F7E
+9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202A212041208A212101220A2
+124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803EA1FFE5B5B13E00010C7FC
+A6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012F0A200E013801240EB0700
+EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA0701380E0380EA0C07121838
+38030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F013C0A51270A214
+801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE014C0A238400080
+38800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A131F7E9D17>I<
+EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F06EA1FC8EA0FF0
+EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA600100201300EA
+1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E13071270EB038012F0A214
+C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB07001230EA7806130EEA700CEA
+2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA127012F8A3127005147C93
+0D>I<127012F8A312701200AA127012F012F8A212781208A31210A31220A21240051D7C
+930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801EA248B5FC
+EB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22>65
+D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F80EC07C0
+140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE0109038381C30
+9038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A91278
+007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E9F21
+>I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8153CA215
+7C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B61280380F000F14
+031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A31540A315
+C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C01540A4EC20
+00A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<90380FE01090
+38381C309038E002703803C00139078000F048C71270121E15305A1510127C127800F814
+00A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903C001703900E002309038380C
+1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF8
+1D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<EAFFF8EA0F8090C7FCB21402
+A414061404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0A2D805C0
+130BA2D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3EB0384A2
+EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F8003E0EC00
+80EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F01478A214
+3C141EA2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB70383801C00E
+48487E39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8147CA900
+781478007C14F8A2003C14F0003E1301001E14E06CEB03C06C148039038007003801E01E
+38007038EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A41580A2EC0F
+00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E48487E39
+070003804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F8147CA90078
+1478007C14F8A2003C14F0383E0781391E0841E0390F1023C00007148039039017003801
+D01E3900783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E297E9F23>
+I<B57E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070A280143C
+A3143EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>I<3803F040380C0C
+C0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4FC00071380C6
+13C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C60300EA81FC14
+217E9F19>I<007FB512E038780F010060EB006000401420A200C0143000801410A40000
+1400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3A46CEB010013
+80120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE391F8000F86CC7
+126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB7804A26D5AA3
+6D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF81FF03B1F000F
+C007C06C903907800180170015C001805C00071502EC09E013C000035DEC19F01410D801
+E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090383D000F133F
+6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<12FFA212C0B3B3A512
+FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA8040A3EAB85CEAFC7EA2EA
+7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80A10D>I<120812101220A2
+1240A21280A312B812FCA2127C1238060E7D9F0D>96 D<EA1FE0EA3030EA7818131CEA30
+0E1200A313FEEA078EEA1E0E1238127800F01310A3131E127838386720380F83C014147E
+9317>I<121C12FC121CAA137CEA1D87381E0180EB00C0001C13E01470A21478A6147014
+F014E0001E13C0381A018038198700EA107C15207E9F19>I<EA01FCEA0706EA1C0F1238
+13060078C7FC127012F0A61270127800381380A2381C0100EA0706EA01F811147F9314>
+I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112381278127012F0A61270A21238EA
+1803120CEA070D3801F1F815207F9F19>I<EA03F0EA0E1C487E487EA21270EB038012F0
+A2B5FC00F0C7FCA31270A26C1380A2381C0100EA0706EA01F811147F9314>I<137CEA01
+C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE01020809F0E>I<14E03803E330EA
+0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33E00020C7FCA21230A2EA3FFE38
+1FFF8014C0383001E038600070481330A4006013606C13C0381C03803803FC00141F7F94
+17>I<121C12FC121CAA137C1386EA1D03001E1380A2121CAE38FF8FF014207E9F19>I<12
+38127CA31238C7FCA6121C12FC121CB1EAFF80091F7F9E0C>I<13E0EA01F0A3EA00E013
+00A61370EA07F012001370B3A31260EAF06013C0EA6180EA3F000C28829E0E>I<121C12
+FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0EA1DF0EA1E70EA1C38133C131C7F
+130F7F148014C038FF9FF014207E9F18>I<121C12FC121CB3ABEAFF8009207F9F0C>I<39
+1C3E03E039FCC30C30391D039038391E01E01CA2001C13C0AE3AFF8FF8FF8021147E9326
+>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF8FF014147E9319>I<EA01F8EA070E38
+1C0380383801C0A2387000E0A200F013F0A6007013E0A2383801C0A2381C038038070E00
+EA01F814147F9317>I<EA1C7CEAFD87381E018014C0381C00E014F014701478A6147014
+F014E0381E01C0EB0380381D8700EA1C7C90C7FCA8B47E151D7E9319>I<3801F0403807
+0CC0EA0E02EA1C03EA38011278127012F0A6127012781238EA1C03EA0C05EA0709EA01F1
+EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18EA1E3CA21318EA1C00AEEAFFC00E147E
+9312>I<EA0FC8EA3038EA6018EAC008A3EAE000127CEA3FE0EA1FF0EA07F8EA003CEA80
+0E130612C0A21304EAE00CEAD818EA87E00F147F9312>I<1202A31206A2120EA2123EEA
+FFF8EA0E00AB1304A5EA07081203EA01F00E1C7F9B12>I<381C0380EAFC1FEA1C03AE13
+07120CEA061B3803E3F014147E9319>I<38FF83F8383E00E0001C13C06C1380A3380701
+00A21383EA0382A2EA01C4A213E4EA00E8A21370A3132015147F9318>I<39FF9FE1FC39
+3C078070391C030060EC8020000E1440A214C0D80704138014E0A239038861001471A238
+01D032143A143E3800E01CA2EB6018EB40081E147F9321>I<38FF87F8381E03C0380E01
+80EB0300EA0702EA0384EA01C813D8EA00F01370137813F8139CEA010E1202EA06073804
+0380000C13C0003C13E038FE07FC16147F9318>I<38FF83F8383E00E0001C13C06C1380
+A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A31320A25BA3EAF080A200F1
+C7FC1262123C151D7F9318>I<EA7FFFEA700E1260EA401C133813781370EA00E0120113
+C0EA038012071301120E121EEA1C03EA3802EA7006130EEAFFFE10147F9314>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fq cmbx12 20.736 13
+/Fq 13 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
+010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
+5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
+DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
+EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
+BB4C>71 D<B6D8F803B612E0A426007FF0C70001EBC000B3A491B8FCA402F0C71201B3A7
+B6D8F803B612E0A4433B7CBA4C>I<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3
+170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>76
+D<B500F00207B512E0808080D8007F92390007E0006E6F5A81017B7F81137901787F6E7E
+6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F7E816F13806F13C017E06F13F081EE
+7FF8EE3FFC17FEEE1FFF827013837013C318E37013F382EF7FFBEF3FFFA283838383A283
+83187F183FA201FC161FB500FC150F18071803A2433B7CBA4C>78
+D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
+6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
+034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
+FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
+03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
+0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
+FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
+17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
+FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EA01E0EA
+07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512F0A4143D
+7DBC1A>105 D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE0D807F8EB0FF0
+48486D7EA248486D7E003F81A248486D7EA400FF1680A9007F1600A36C6C495AA2001F5D
+6D1307000F5D6C6C495AD803FEEB3FE03A00FF80FF806DB5C7FC010F13F8010113C02926
+7DA530>111 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000
+035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
+D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
+0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
+07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
+12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
+B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
+01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
+7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
+C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
+1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
+1FFCEA07F02E377EA533>121 D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 75 659 a Fq(GNU)33 b(History)f(Library)p 75 709
+1800 17 v 756 757 a Fp(Edition)16 b(4.2-b)q(eta,)e(for)h
+Fo(History)f(Library)g Fp(V)l(ersion)i(4.2-b)q(eta.)1698
+811 y(F)l(eb)f(2001)75 2467 y Fn(Brian)23 b(F)-6 b(o)n(x,)23
+b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75
+2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
+b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop
+%%Page: 2 2
+2 1 bop 75 217 a Fp(This)21 b(do)q(cumen)o(t)g(describ)q(es)h(the)f
+(GNU)f(History)g(library)l(,)j(a)d(programming)g(to)q(ol)g(that)g(pro)o
+(vides)h(a)75 271 y(consisten)o(t)15 b(user)h(in)o(terface)f(for)g
+(recalling)i(lines)f(of)f(previously)i(t)o(yp)q(ed)e(input.)75
+339 y(Published)i(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
+(oundation)75 394 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
+448 y(Boston,)d(MA)h(02111)f(USA)75 516 y(P)o(ermission)j(is)f(gran)o
+(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
+(this)h(man)o(ual)f(pro)o(vided)h(the)75 570 y(cop)o(yrigh)o(t)e
+(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
+(on)f(all)h(copies.)75 638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
+(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
+(man)o(ual)g(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h
+(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
+(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g
+(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
+814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
+(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
+g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
+(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
+(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
+(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
+d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
+2661 y Fm(\015)i Fp(1988-2001)e(F)l(ree)i(Soft)o(w)o(are)f(F)l
+(oundation,)h(Inc.)p eop
+%%Page: 1 3
+1 2 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
+(ely)1007 b(1)75 149 y Fl(1)41 b(Using)26 b(History)h(In)n(teractiv)n
+(ely)137 289 y Fp(This)17 b(c)o(hapter)g(describ)q(es)h(ho)o(w)e(to)g
+(use)h(the)g Fk(gnu)f Fp(History)g(Library)h(in)o(teractiv)o(ely)l(,)h
+(from)e(a)g(user's)75 344 y(standp)q(oin)o(t.)38 b(It)21
+b(should)h(b)q(e)g(considered)g(a)f(user's)g(guide.)38
+b(F)l(or)21 b(information)g(on)g(using)h(the)f Fk(gnu)75
+398 y Fp(History)c(Library)h(in)h(y)o(our)e(o)o(wn)g(programs,)f(see)i
+(Chapter)f(2)h([Programming)e(with)i(GNU)f(History],)75
+453 y(page)e(5.)75 600 y Fn(1.1)33 b(History)22 b(Expansion)137
+704 y Fp(The)c(History)g(library)h(pro)o(vides)f(a)f(history)h
+(expansion)h(feature)e(that)h(is)g(similar)h(to)e(the)h(history)75
+759 y(expansion)12 b(pro)o(vided)g(b)o(y)f Fo(csh)p Fp(.)18
+b(This)11 b(section)h(describ)q(es)g(the)g(syn)o(tax)e(used)h(to)g
+(manipulate)h(the)f(history)75 814 y(information.)137
+888 y(History)k(expansions)h(in)o(tro)q(duce)h(w)o(ords)d(from)g(the)i
+(history)f(list)h(in)o(to)f(the)h(input)g(stream,)e(making)75
+943 y(it)h(easy)g(to)g(rep)q(eat)g(commands,)g(insert)h(the)f(argumen)o
+(ts)f(to)h(a)g(previous)h(command)f(in)o(to)g(the)g(curren)o(t)75
+998 y(input)h(line,)h(or)d(\014x)i(errors)e(in)i(previous)g(commands)f
+(quic)o(kly)l(.)137 1072 y(History)j(expansion)i(tak)o(es)d(place)i(in)
+h(t)o(w)o(o)d(parts.)28 b(The)19 b(\014rst)f(is)g(to)g(determine)i
+(whic)o(h)f(line)h(from)75 1127 y(the)h(history)f(list)i(should)g(b)q
+(e)f(used)g(during)h(substitution.)37 b(The)21 b(second)g(is)g(to)f
+(select)i(p)q(ortions)e(of)75 1182 y(that)15 b(line)i(for)d(inclusion)k
+(in)o(to)d(the)h(curren)o(t)f(one.)20 b(The)c(line)g(selected)h(from)e
+(the)g(history)g(is)h(called)h(the)75 1237 y Fj(ev)o(en)o(t)p
+Fp(,)c(and)h(the)g(p)q(ortions)g(of)f(that)g(line)i(that)e(are)g(acted)
+h(up)q(on)g(are)f(called)j Fj(w)o(ords)p Fp(.)i(V)l(arious)c
+Fj(mo)q(di\014ers)75 1292 y Fp(are)i(a)o(v)m(ailable)i(to)e(manipulate)
+i(the)e(selected)i(w)o(ords.)23 b(The)17 b(line)h(is)f(brok)o(en)f(in)o
+(to)h(w)o(ords)e(in)j(the)e(same)75 1346 y(fashion)c(that)e(Bash)i(do)q
+(es,)g(so)f(that)g(sev)o(eral)g(w)o(ords)g(surrounded)h(b)o(y)f(quotes)
+h(are)f(considered)h(one)g(w)o(ord.)75 1401 y(History)18
+b(expansions)h(are)g(in)o(tro)q(duced)g(b)o(y)f(the)h(app)q(earance)g
+(of)f(the)g(history)h(expansion)g(c)o(haracter,)75 1456
+y(whic)o(h)d(is)g(`)p Fo(!)p Fp(')e(b)o(y)h(default.)75
+1583 y Fi(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)137
+1687 y Fp(An)16 b(ev)o(en)o(t)f(designator)g(is)g(a)g(reference)h(to)f
+(a)g(command)g(line)i(en)o(try)d(in)i(the)g(history)f(list.)75
+1777 y Fo(!)216 b Fp(Start)16 b(a)g(history)h(substitution,)g(except)h
+(when)f(follo)o(w)o(ed)g(b)o(y)f(a)h(space,)g(tab,)f(the)h(end)g(of)315
+1832 y(the)e(line,)i(`)p Fo(=)p Fp(')d(or)h(`)p Fo(\()p
+Fp('.)75 1919 y Fo(!)p Fj(n)191 b Fp(Refer)16 b(to)e(command)h(line)i
+Fj(n)p Fp(.)75 2006 y Fo(!-)p Fj(n)167 b Fp(Refer)16
+b(to)e(the)i(command)f Fj(n)g Fp(lines)i(bac)o(k.)75
+2094 y Fo(!!)192 b Fp(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 Fo(!-1)p Fp('.)75
+2181 y Fo(!)p Fj(string)102 b Fp(Refer)16 b(to)e(the)i(most)e(recen)o
+(t)h(command)g(starting)g(with)g Fj(string)p Fp(.)75
+2268 y Fo(!?)p Fj(string)t Fo([?])315 2323 y Fp(Refer)i(to)f(the)h
+(most)f(recen)o(t)h(command)g(con)o(taining)g Fj(string)p
+Fp(.)25 b(The)17 b(trailing)g(`)p Fo(?)p Fp(')f(ma)o(y)g(b)q(e)315
+2377 y(omitted)f(if)h(the)f Fj(string)k Fp(is)d(follo)o(w)o(ed)f
+(immediately)i(b)o(y)e(a)g(newline.)75 2464 y Fo(^)p
+Fj(string1)t Fo(^)p Fj(string2)t Fo(^)315 2519 y Fp(Quic)o(k)i
+(Substitution.)23 b(Rep)q(eat)17 b(the)f(last)f(command,)h(replacing)h
+Fj(string1)i Fp(with)e Fj(string2)p Fp(.)315 2574 y(Equiv)m(alen)o(t)g
+(to)d Fo(!!:s/)p Fj(string1)t Fo(/)p Fj(string2)t Fo(/)p
+Fp(.)75 2661 y Fo(!#)192 b Fp(The)15 b(en)o(tire)h(command)f(line)i(t)o
+(yp)q(ed)f(so)e(far.)p eop
+%%Page: 2 4
+2 3 bop 75 -58 a Fp(2)1347 b(GNU)15 b(History)g(Library)75
+149 y Fi(1.1.2)30 b(W)-5 b(ord)20 b(Designators)137 247
+y Fp(W)l(ord)d(designators)g(are)g(used)h(to)f(select)h(desired)h(w)o
+(ords)d(from)h(the)g(ev)o(en)o(t.)26 b(A)18 b(`)p Fo(:)p
+Fp(')e(separates)h(the)75 302 y(ev)o(en)o(t)j(sp)q(eci\014cation)h
+(from)e(the)h(w)o(ord)f(designator.)34 b(It)20 b(ma)o(y)f(b)q(e)h
+(omitted)g(if)g(the)g(w)o(ord)f(designator)75 357 y(b)q(egins)f(with)g
+(a)e(`)p Fo(^)p Fp(',)h(`)p Fo($)p Fp(',)f(`)p Fo(*)p
+Fp(',)g(`)p Fo(-)p Fp(',)g(or)h(`)p Fo(\045)p Fp('.)24
+b(W)l(ords)17 b(are)g(n)o(um)o(b)q(ered)g(from)g(the)g(b)q(eginning)i
+(of)e(the)g(line,)75 411 y(with)j(the)g(\014rst)f(w)o(ord)h(b)q(eing)h
+(denoted)f(b)o(y)g(0)f(\(zero\).)33 b(W)l(ords)20 b(are)f(inserted)i
+(in)o(to)f(the)g(curren)o(t)f(line)75 466 y(separated)c(b)o(y)g(single)
+i(spaces.)137 535 y(F)l(or)e(example,)75 616 y Fo(!!)192
+b Fp(designates)18 b(the)g(preceding)i(command.)28 b(When)18
+b(y)o(ou)g(t)o(yp)q(e)g(this,)h(the)f(preceding)h(com-)315
+671 y(mand)c(is)h(rep)q(eated)g(in)g(toto.)75 752 y Fo(!!:$)144
+b Fp(designates)12 b(the)f(last)g(argumen)o(t)f(of)h(the)g(preceding)i
+(command.)19 b(This)11 b(ma)o(y)g(b)q(e)h(shortened)315
+807 y(to)j Fo(!$)p Fp(.)75 887 y Fo(!fi:2)120 b Fp(designates)15
+b(the)g(second)g(argumen)o(t)f(of)g(the)h(most)f(recen)o(t)g(command)h
+(starting)f(with)h(the)315 942 y(letters)g Fo(fi)p Fp(.)137
+1024 y(Here)h(are)f(the)g(w)o(ord)f(designators:)75 1105
+y Fo(0)h(\(zero\))57 b Fp(The)15 b Fo(0)p Fp(th)g(w)o(ord.)20
+b(F)l(or)14 b(man)o(y)h(applications,)h(this)g(is)g(the)f(command)g(w)o
+(ord.)75 1186 y Fj(n)215 b Fp(The)15 b Fj(n)p Fp(th)h(w)o(ord.)75
+1267 y Fo(^)216 b Fp(The)15 b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o
+(ord)g(1.)75 1348 y Fo($)216 b Fp(The)15 b(last)h(argumen)o(t.)75
+1429 y Fo(\045)216 b Fp(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g
+(most)g(recen)o(t)g(`)p Fo(?)p Fj(string)t Fo(?)p Fp(')f(searc)o(h.)75
+1510 y Fj(x)p Fo(-)p Fj(y)168 b Fp(A)15 b(range)g(of)g(w)o(ords;)f(`)p
+Fo(-)p Fj(y)t Fp(')g(abbreviates)i(`)p Fo(0-)p Fj(y)t
+Fp('.)75 1591 y Fo(*)216 b Fp(All)15 b(of)f(the)f(w)o(ords,)g(except)i
+(the)f Fo(0)p Fp(th.)19 b(This)14 b(is)h(a)e(synon)o(ym)h(for)f(`)p
+Fo(1-$)p Fp('.)18 b(It)c(is)g(not)g(an)g(error)315 1645
+y(to)g(use)h(`)p Fo(*)p Fp(')f(if)i(there)e(is)i(just)e(one)h(w)o(ord)f
+(in)i(the)f(ev)o(en)o(t;)f(the)h(empt)o(y)g(string)g(is)g(returned)g
+(in)315 1700 y(that)f(case.)75 1781 y Fj(x)s Fo(*)189
+b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p Fp(')75 1862
+y Fj(x)p Fo(-)192 b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p
+Fp(')e(lik)o(e)i(`)p Fj(x)s Fo(*)p Fp(',)e(but)i(omits)f(the)g(last)g
+(w)o(ord.)137 1943 y(If)i(a)g(w)o(ord)f(designator)h(is)h(supplied)h
+(without)e(an)g(ev)o(en)o(t)f(sp)q(eci\014cation,)j(the)e(previous)h
+(command)75 1998 y(is)e(used)f(as)g(the)h(ev)o(en)o(t.)75
+2113 y Fi(1.1.3)30 b(Mo)r(di\014ers)137 2210 y Fp(After)10
+b(the)h(optional)g(w)o(ord)e(designator,)i(y)o(ou)f(can)h(add)f(a)g
+(sequence)i(of)e(one)g(or)g(more)g(of)g(the)g(follo)o(wing)75
+2265 y(mo)q(di\014ers,)16 b(eac)o(h)f(preceded)i(b)o(y)e(a)g(`)p
+Fo(:)p Fp('.)75 2346 y Fo(h)216 b Fp(Remo)o(v)o(e)15
+b(a)g(trailing)h(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the)
+f(head.)75 2427 y Fo(t)216 b Fp(Remo)o(v)o(e)15 b(all)h(leading)h
+(pathname)e(comp)q(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)75
+2508 y Fo(r)216 b Fp(Remo)o(v)o(e)15 b(a)g(trailing)h(su\016x)f(of)g
+(the)g(form)g(`)p Fo(.)p Fj(su\016x)s Fp(',)f(lea)o(ving)i(the)f
+(basename.)75 2589 y Fo(e)216 b Fp(Remo)o(v)o(e)15 b(all)h(but)g(the)f
+(trailing)h(su\016x.)75 2670 y Fo(p)216 b Fp(Prin)o(t)15
+b(the)g(new)h(command)f(but)g(do)g(not)g(execute)h(it.)p
+eop
+%%Page: 3 5
+3 4 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
+(ely)1007 b(3)75 149 y Fo(s/)p Fj(old)r Fo(/)p Fj(new)t
+Fo(/)315 204 y Fp(Substitute)17 b Fj(new)j Fp(for)c(the)h(\014rst)e(o)q
+(ccurrence)j(of)e Fj(old)i Fp(in)f(the)g(ev)o(en)o(t)f(line.)25
+b(An)o(y)16 b(delimiter)315 259 y(ma)o(y)c(b)q(e)h(used)g(in)g(place)g
+(of)f(`)p Fo(/)p Fp('.)18 b(The)13 b(delimiter)h(ma)o(y)e(b)q(e)h
+(quoted)f(in)i Fj(old)g Fp(and)f Fj(new)k Fp(with)12
+b(a)315 314 y(single)j(bac)o(kslash.)20 b(If)15 b(`)p
+Fo(&)p Fp(')e(app)q(ears)h(in)h Fj(new)p Fp(,)f(it)g(is)h(replaced)g(b)
+o(y)f Fj(old)p Fp(.)20 b(A)14 b(single)i(bac)o(kslash)315
+369 y(will)j(quote)e(the)h(`)p Fo(&)p Fp('.)25 b(The)17
+b(\014nal)i(delimiter)g(is)f(optional)g(if)f(it)h(is)g(the)f(last)g(c)o
+(haracter)g(on)315 423 y(the)e(input)h(line.)75 503 y
+Fo(&)216 b Fp(Rep)q(eat)16 b(the)f(previous)h(substitution.)75
+583 y Fo(g)216 b Fp(Cause)19 b(c)o(hanges)h(to)e(b)q(e)i(applied)h(o)o
+(v)o(er)e(the)g(en)o(tire)h(ev)o(en)o(t)f(line.)34 b(Used)20
+b(in)g(conjunction)315 638 y(with)c(`)p Fo(s)p Fp(',)d(as)i(in)h
+Fo(gs/)p Fj(old)r Fo(/)p Fj(new)t Fo(/)p Fp(,)f(or)g(with)g(`)p
+Fo(&)p Fp('.)p eop
+%%Page: 4 6
+4 5 bop 75 -58 a Fp(4)1347 b(GNU)15 b(History)g(Library)p
+eop
+%%Page: 5 7
+5 6 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)889 b(5)75 149 y Fl(2)41 b(Programming)28 b(with)e(GNU)i
+(History)137 269 y Fp(This)17 b(c)o(hapter)f(describ)q(es)i(ho)o(w)e
+(to)f(in)o(terface)i(programs)e(that)g(y)o(ou)h(write)g(with)h(the)f
+Fk(gnu)g Fp(History)75 324 y(Library)l(.)24 b(It)17 b(should)g(b)q(e)g
+(considered)h(a)e(tec)o(hnical)i(guide.)25 b(F)l(or)15
+b(information)i(on)f(the)h(in)o(teractiv)o(e)g(use)75
+379 y(of)e Fk(gnu)g Fp(History)l(,)g(see)g(Chapter)g(1)g([Using)g
+(History)g(In)o(teractiv)o(ely],)h(page)f(1.)75 509 y
+Fn(2.1)33 b(In)n(tro)r(duction)24 b(to)e(History)137
+607 y Fp(Man)o(y)11 b(programs)f(read)h(input)i(from)d(the)i(user)f(a)g
+(line)i(at)e(a)g(time.)19 b(The)12 b Fk(gnu)f Fp(History)g(library)h
+(is)g(able)75 661 y(to)i(k)o(eep)g(trac)o(k)g(of)g(those)g(lines,)i
+(asso)q(ciate)e(arbitrary)g(data)g(with)g(eac)o(h)h(line,)h(and)e
+(utilize)j(information)75 716 y(from)d(previous)i(lines)h(in)f(comp)q
+(osing)g(new)f(ones.)137 784 y(The)f(programmer)f(using)h(the)g
+(History)g(library)g(has)g(a)o(v)m(ailable)h(functions)g(for)e(remem)o
+(b)q(ering)h(lines)75 839 y(on)c(a)g(history)h(list,)g(asso)q(ciating)g
+(arbitrary)f(data)f(with)i(a)f(line,)j(remo)o(ving)d(lines)i(from)d
+(the)i(list,)h(searc)o(hing)75 894 y(through)17 b(the)h(list)g(for)f(a)
+h(line)h(con)o(taining)f(an)g(arbitrary)f(text)g(string,)h(and)g
+(referencing)h(an)o(y)e(line)i(in)75 949 y(the)c(list)i(directly)l(.)22
+b(In)16 b(addition,)g(a)f(history)g Fj(expansion)h Fp(function)h(is)e
+(a)o(v)m(ailable)i(whic)o(h)g(pro)o(vides)f(for)e(a)75
+1003 y(consisten)o(t)h(user)h(in)o(terface)f(across)g(di\013eren)o(t)g
+(programs.)137 1072 y(The)f(user)h(using)f(programs)f(written)h(with)g
+(the)g(History)g(library)h(has)f(the)g(b)q(ene\014t)h(of)e(a)h
+(consisten)o(t)75 1126 y(user)20 b(in)o(terface)f(with)h(a)f(set)h(of)f
+(w)o(ell-kno)o(wn)h(commands)g(for)e(manipulating)k(the)d(text)g(of)g
+(previous)75 1181 y(lines)c(and)f(using)h(that)e(text)g(in)i(new)f
+(commands.)19 b(The)14 b(basic)h(history)e(manipulation)j(commands)d
+(are)75 1236 y(similar)j(to)f(the)g(history)g(substitution)h(pro)o
+(vided)g(b)o(y)g Fo(csh)p Fp(.)137 1304 y(If)f(the)g(programmer)f
+(desires,)h(he)g(can)g(use)g(the)g(Readline)i(library)l(,)f(whic)o(h)f
+(includes)j(some)c(history)75 1359 y(manipulation)j(b)o(y)e(default,)g
+(and)h(has)f(the)g(added)h(adv)m(an)o(tage)f(of)f(command)h(line)i
+(editing.)137 1427 y(Before)i(declaring)i(an)o(y)d(functions)i(using)g
+(an)o(y)f(functionalit)o(y)h(the)f(History)g(library)h(pro)o(vides)f
+(in)75 1482 y(other)14 b(co)q(de,)h(an)f(application)i(writer)e(should)
+i(include)g(the)f(\014le)g Fo(<readline/history.h>)d
+Fp(in)j(an)o(y)f(\014le)75 1537 y(that)d(uses)h(the)h(History)e
+(library's)i(features.)18 b(It)12 b(supplies)i(extern)e(declarations)h
+(for)e(all)i(of)f(the)g(library's)75 1591 y(public)17
+b(functions)f(and)g(v)m(ariables,)g(and)f(declares)h(all)g(of)f(the)h
+(public)h(data)d(structures.)75 1722 y Fn(2.2)33 b(History)22
+b(Storage)137 1819 y Fp(The)16 b(history)f(list)h(is)g(an)f(arra)o(y)f
+(of)g(history)i(en)o(tries.)k(A)15 b(history)g(en)o(try)g(is)h
+(declared)g(as)f(follo)o(ws:)195 1885 y Fo(typedef)23
+b(void)g(*histdata_t;)195 1988 y(typedef)g(struct)g(_hist_entry)f({)243
+2040 y(char)h(*line;)243 2092 y(histdata_t)f(data;)195
+2144 y(})i(HIST_ENTRY;)137 2212 y Fp(The)16 b(history)f(list)h(itself)g
+(migh)o(t)f(therefore)g(b)q(e)h(declared)g(as)195 2277
+y Fo(HIST_ENTRY)22 b(**the_history_list;)137 2345 y Fp(The)16
+b(state)e(of)h(the)g(History)g(library)h(is)g(encapsulated)g(in)o(to)f
+(a)g(single)i(structure:)195 2411 y Fo(/*)24 b(A)f(structure)g(used)g
+(to)h(pass)f(around)g(the)h(current)f(state)g(of)g(the)h(history.)f(*/)
+195 2462 y(typedef)g(struct)g(_hist_state)f({)243 2514
+y(HIST_ENTRY)g(**entries;)h(/*)g(Pointer)g(to)h(the)f(entries)g
+(themselves.)g(*/)243 2566 y(int)g(offset;)262 b(/*)23
+b(The)h(location)f(pointer)f(within)h(this)h(array.)f(*/)243
+2618 y(int)g(length;)262 b(/*)23 b(Number)g(of)h(elements)f(within)g
+(this)g(array.)g(*/)243 2670 y(int)g(size;)310 b(/*)23
+b(Number)g(of)h(slots)f(allocated)g(to)g(this)h(array.)f(*/)p
+eop
+%%Page: 6 8
+6 7 bop 75 -58 a Fp(6)1347 b(GNU)15 b(History)g(Library)243
+149 y Fo(int)23 b(flags;)195 201 y(})h(HISTORY_STATE;)137
+271 y Fp(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g(includes)j
+Fo(HS_STIFLED)p Fp(,)13 b(the)i(history)h(has)f(b)q(een)h(sti\015ed.)75
+404 y Fn(2.3)33 b(History)22 b(F)-6 b(unctions)137 503
+y Fp(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
+557 y(History)l(.)75 674 y Fi(2.3.1)30 b(Initializing)20
+b(History)h(and)f(State)g(Managemen)n(t)137 772 y Fp(This)e(section)g
+(describ)q(es)h(functions)f(used)g(to)e(initialize)21
+b(and)c(manage)g(the)g(state)g(of)g(the)g(History)75
+827 y(library)f(when)g(y)o(ou)f(w)o(an)o(t)f(to)g(use)i(the)f(history)g
+(functions)h(in)g(y)o(our)f(program.)1762 950 y(F)l(unction)-1861
+b Fh(void)20 b Fg(using)p 333 950 18 3 v 20 w(history)j
+Ff(\()p Fo(void)p Ff(\))195 1005 y Fp(Begin)e(a)f(session)g(in)h(whic)o
+(h)g(the)f(history)g(functions)g(migh)o(t)g(b)q(e)h(used.)34
+b(This)21 b(initializes)i(the)195 1059 y(in)o(teractiv)o(e)16
+b(v)m(ariables.)1762 1182 y(F)l(unction)-1861 b Fh(HISTORY_STATE)21
+b(*)e Fg(history)p 657 1182 V 21 w(get)p 755 1182 V 21
+w(history)p 951 1182 V 21 w(state)j Ff(\()p Fo(void)p
+Ff(\))195 1237 y Fp(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(.)1762
+1360 y(F)l(unction)-1861 b Fh(void)20 b Fg(history)p
+377 1360 V 20 w(set)p 468 1360 V 21 w(history)p 664 1360
+V 21 w(state)j Ff(\()p Fo(HISTORY_STATE)13 b(*state)p
+Ff(\))195 1415 y Fp(Set)i(the)h(state)e(of)h(the)g(history)g(list)h
+(according)g(to)e Fj(state)p Fp(.)75 1531 y Fi(2.3.2)30
+b(History)20 b(List)h(Managemen)n(t)137 1630 y Fp(These)11
+b(functions)h(manage)e(individual)k(en)o(tries)d(on)g(the)g(history)f
+(list,)i(or)f(set)f(parameters)g(managing)75 1684 y(the)15
+b(list)h(itself.)1762 1808 y(F)l(unction)-1861 b Fh(void)20
+b Fg(add)p 294 1808 V 20 w(history)j Ff(\()p Fo(const)14
+b(char)g(*string)p Ff(\))195 1862 y Fp(Place)i Fj(string)i
+Fp(at)d(the)g(end)h(of)e(the)h(history)g(list.)21 b(The)15
+b(asso)q(ciated)g(data)g(\014eld)h(\(if)f(an)o(y\))f(is)i(set)f(to)195
+1917 y Fo(NULL)p Fp(.)1762 2040 y(F)l(unction)-1861 b
+Fh(HIST_ENTRY)21 b(*)e Fg(remo)n(v)n(e)p 584 2040 V 20
+w(history)k Ff(\()p Fo(int)14 b(which)p Ff(\))195 2095
+y Fp(Remo)o(v)o(e)23 b(history)f(en)o(try)h(at)f(o\013set)g
+Fj(whic)o(h)h Fp(from)f(the)h(history)l(.)43 b(The)23
+b(remo)o(v)o(ed)f(elemen)o(t)h(is)195 2150 y(returned)16
+b(so)e(y)o(ou)h(can)h(free)f(the)g(line,)i(data,)d(and)h(con)o(taining)
+h(structure.)1762 2273 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
+b(*)e Fg(replace)p 580 2273 V 22 w(history)p 777 2273
+V 20 w(en)n(try)24 b Ff(\()p Fo(int)14 b(which,)g(const)h(char)283
+2328 y(*line,)f(histdata_t)g(data)p Ff(\))195 2382 y
+Fp(Mak)o(e)f(the)h(history)g(en)o(try)f(at)g(o\013set)g
+Fj(whic)o(h)i Fp(ha)o(v)o(e)e Fj(line)18 b Fp(and)c Fj(data)p
+Fp(.)19 b(This)14 b(returns)g(the)g(old)g(en)o(try)195
+2437 y(so)19 b(y)o(ou)f(can)i(disp)q(ose)g(of)e(the)i(data.)30
+b(In)20 b(the)f(case)g(of)g(an)g(in)o(v)m(alid)i Fj(whic)o(h)p
+Fp(,)g(a)d Fo(NULL)h Fp(p)q(oin)o(ter)g(is)195 2492 y(returned.)1762
+2615 y(F)l(unction)-1861 b Fh(void)20 b Fg(clear)p 320
+2615 V 21 w(history)j Ff(\()p Fo(void)p Ff(\))195 2670
+y Fp(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f
+(en)o(tries.)p eop
+%%Page: 7 9
+7 8 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)889 b(7)1762 149 y(F)l(unction)-1861 b Fh(void)20
+b Fg(sti\015e)p 320 149 18 3 v 21 w(history)j Ff(\()p
+Fo(int)14 b(max)p Ff(\))195 204 y Fp(Sti\015e)i(the)f(history)h(list,)f
+(remem)o(b)q(ering)h(only)g(the)f(last)g Fj(max)j Fp(en)o(tries.)1762
+311 y(F)l(unction)-1861 b Fh(int)20 b Fg(unsti\015e)p
+358 311 V 21 w(history)i Ff(\()p Fo(void)p Ff(\))195
+366 y Fp(Stop)c(sti\015ing)i(the)e(history)l(.)29 b(This)19
+b(returns)f(the)h(previous)g(amoun)o(t)e(the)i(history)f(w)o(as)f
+(sti\015ed.)195 421 y(The)e(v)m(alue)i(is)f(p)q(ositiv)o(e)g(if)f(the)h
+(history)f(w)o(as)f(sti\015ed,)i(negativ)o(e)f(if)h(it)f(w)o(asn't.)
+1762 528 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
+351 528 V 20 w(is)p 409 528 V 21 w(sti\015ed)k Ff(\()p
+Fo(void)p Ff(\))195 583 y Fp(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.)75
+689 y Fi(2.3.3)30 b(Information)19 b(Ab)r(out)i(the)f(History)h(List)
+137 783 y Fp(These)13 b(functions)h(return)f(information)g(ab)q(out)f
+(the)h(en)o(tire)h(history)e(list)i(or)e(individual)k(list)e(en)o
+(tries.)1762 890 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
+b(**)e Fg(history)p 605 890 V 21 w(list)24 b Ff(\()p
+Fo(void)p Ff(\))195 945 y Fp(Return)16 b(a)f Fo(NULL)f
+Fp(terminated)i(arra)o(y)e(of)h Fo(HIST_ENTRY)f(*)h Fp(whic)o(h)h(is)f
+(the)h(curren)o(t)f(input)h(history)l(.)195 1000 y(Elemen)o(t)g(0)f(of)
+f(this)i(list)g(is)g(the)f(b)q(eginning)i(of)e(time.)20
+b(If)c(there)f(is)h(no)f(history)l(,)g(return)g Fo(NULL)p
+Fp(.)1762 1107 y(F)l(unction)-1861 b Fh(int)20 b Fg(where)p
+325 1107 V 20 w(history)j Ff(\()p Fo(void)p Ff(\))195
+1161 y Fp(Returns)16 b(the)f(o\013set)f(of)h(the)g(curren)o(t)g
+(history)g(elemen)o(t.)1762 1268 y(F)l(unction)-1861
+b Fh(HIST_ENTRY)21 b(*)e Fg(curren)n(t)p 587 1268 V 21
+w(history)k Ff(\()p Fo(void)p Ff(\))195 1323 y Fp(Return)13
+b(the)g(history)f(en)o(try)g(at)g(the)g(curren)o(t)h(p)q(osition,)g(as)
+f(determined)i(b)o(y)e Fo(where_history\(\))p Fp(.)195
+1378 y(If)j(there)h(is)f(no)h(en)o(try)e(there,)h(return)g(a)g
+Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1485 y(F)l(unction)-1861
+b Fh(HIST_ENTRY)21 b(*)e Fg(history)p 579 1485 V 21 w(get)j
+Ff(\()p Fo(int)15 b(offset)p Ff(\))195 1540 y Fp(Return)21
+b(the)g(history)g(en)o(try)f(at)h(p)q(osition)g Fj(o\013set)p
+Fp(,)g(starting)f(from)g Fo(history_base)f Fp(\(see)i(Sec-)195
+1594 y(tion)15 b(2.4)f([History)g(V)l(ariables],)h(page)g(10\).)j(If)d
+(there)g(is)g(no)g(en)o(try)f(there,)h(or)f(if)h Fj(o\013set)g
+Fp(is)g(greater)195 1649 y(than)g(the)g(history)g(length,)h(return)f(a)
+g Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1756 y(F)l(unction)-1861
+b Fh(int)20 b Fg(history)p 351 1756 V 20 w(total)p 487
+1756 V 22 w(b)n(ytes)j Ff(\()p Fo(void)p Ff(\))195 1811
+y Fp(Return)14 b(the)g(n)o(um)o(b)q(er)g(of)g(b)o(ytes)f(that)g(the)h
+(primary)g(history)g(en)o(tries)g(are)g(using.)20 b(This)14
+b(function)195 1866 y(returns)h(the)g(sum)h(of)e(the)i(lengths)f(of)g
+(all)h(the)g(lines)g(in)g(the)g(history)l(.)75 1972 y
+Fi(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)137
+2066 y Fp(These)16 b(functions)g(allo)o(w)f(the)g(curren)o(t)h(index)g
+(in)o(to)f(the)h(history)f(list)h(to)e(b)q(e)i(set)f(or)g(c)o(hanged.)
+1762 2173 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
+351 2173 V 20 w(set)p 442 2173 V 21 w(p)r(os)h Ff(\()p
+Fo(int)15 b(pos)p Ff(\))195 2228 y Fp(Set)g(the)h(curren)o(t)f(history)
+g(o\013set)f(to)h Fj(p)q(os)p Fp(,)g(an)g(absolute)g(index)i(in)o(to)e
+(the)g(list.)1762 2335 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
+b(*)e Fg(previous)p 615 2335 V 20 w(history)k Ff(\()p
+Fo(void)p Ff(\))195 2390 y Fp(Bac)o(k)14 b(up)h(the)g(curren)o(t)f
+(history)g(o\013set)g(to)f(the)i(previous)g(history)f(en)o(try)l(,)g
+(and)h(return)f(a)g(p)q(oin)o(ter)195 2445 y(to)h(that)f(en)o(try)l(.)
+20 b(If)15 b(there)g(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g
+Fo(NULL)g Fp(p)q(oin)o(ter.)1762 2552 y(F)l(unction)-1861
+b Fh(HIST_ENTRY)21 b(*)e Fg(next)p 514 2552 V 21 w(history)k
+Ff(\()p Fo(void)p Ff(\))195 2606 y Fp(Mo)o(v)o(e)17 b(the)h(curren)o(t)
+f(history)h(o\013set)f(forw)o(ard)f(to)h(the)h(next)g(history)g(en)o
+(try)l(,)g(and)g(return)f(the)h(a)195 2661 y(p)q(oin)o(ter)e(to)e(that)
+h(en)o(try)l(.)k(If)d(there)f(is)h(no)f(next)g(en)o(try)l(,)g(return)g
+(a)g Fo(NULL)g Fp(p)q(oin)o(ter.)p eop
+%%Page: 8 10
+8 9 bop 75 -58 a Fp(8)1347 b(GNU)15 b(History)g(Library)75
+149 y Fi(2.3.5)30 b(Searc)n(hing)21 b(the)f(History)h(List)137
+245 y Fp(These)14 b(functions)g(allo)o(w)g(searc)o(hing)g(of)e(the)i
+(history)f(list)h(for)f(en)o(tries)h(con)o(taining)g(a)f(sp)q(eci\014c)
+i(string.)75 300 y(Searc)o(hing)f(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q
+(oth)g(forw)o(ard)e(and)i(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)g
+(history)f(p)q(osition.)75 355 y(The)j(searc)o(h)f(ma)o(y)g(b)q(e)i
+Fj(anc)o(hored)p Fp(,)e(meaning)h(that)f(the)h(string)g(m)o(ust)f(matc)
+o(h)g(at)g(the)h(b)q(eginning)i(of)d(the)75 410 y(history)g(en)o(try)l
+(.)1762 524 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
+351 524 18 3 v 20 w(searc)n(h)j Ff(\()p Fo(const)14 b(char)h(*string,)f
+(int)h(direction)p Ff(\))195 578 y Fp(Searc)o(h)g(the)f(history)g(for)g
+Fj(string)p Fp(,)g(starting)g(at)g(the)h(curren)o(t)f(history)g
+(o\013set.)19 b(If)c Fj(direction)g Fp(is)g(less)195
+633 y(than)20 b(0,)g(then)h(the)f(searc)o(h)f(is)i(through)f(previous)g
+(en)o(tries,)i(otherwise)e(through)f(subsequen)o(t)195
+688 y(en)o(tries.)h(If)c Fj(string)j Fp(is)d(found,)f(then)g(the)h
+(curren)o(t)f(history)g(index)h(is)g(set)f(to)g(that)f(history)h(en)o
+(try)l(,)195 743 y(and)i(the)g(v)m(alue)h(returned)f(is)g(the)g
+(o\013set)e(in)j(the)f(line)h(of)e(the)h(en)o(try)g(where)g
+Fj(string)j Fp(w)o(as)c(found.)195 798 y(Otherwise,)g(nothing)f(is)h(c)
+o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 912 y(F)l(unction)-1861
+b Fh(int)20 b Fg(history)p 351 912 V 20 w(searc)n(h)p
+527 912 V 21 w(pre\014x)i Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
+(direction)p Ff(\))195 966 y Fp(Searc)o(h)20 b(the)h(history)f(for)g
+Fj(string)p Fp(,)h(starting)e(at)h(the)g(curren)o(t)h(history)f
+(o\013set.)34 b(The)20 b(searc)o(h)g(is)195 1021 y(anc)o(hored:)g(matc)
+o(hing)14 b(lines)j(m)o(ust)d(b)q(egin)i(with)f Fj(string)p
+Fp(.)20 b(If)15 b Fj(direction)h Fp(is)f(less)g(than)g(0,)f(then)h(the)
+195 1076 y(searc)o(h)g(is)i(through)e(previous)h(en)o(tries,)g
+(otherwise)g(through)f(subsequen)o(t)h(en)o(tries.)22
+b(If)16 b Fj(string)j Fp(is)195 1131 y(found,)e(then)g(the)f(curren)o
+(t)h(history)f(index)i(is)f(set)f(to)g(that)g(en)o(try)l(,)g(and)h(the)
+f(return)h(v)m(alue)h(is)f(0.)195 1186 y(Otherwise,)f(nothing)f(is)h(c)
+o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 1300 y(F)l(unction)-1861
+b Fh(int)20 b Fg(history)p 351 1300 V 20 w(searc)n(h)p
+527 1300 V 21 w(p)r(os)h Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
+(direction,)f(int)283 1355 y(pos)p Ff(\))195 1409 y Fp(Searc)o(h)j(for)
+g Fj(string)k Fp(in)d(the)f(history)g(list,)h(starting)e(at)h
+Fj(p)q(os)p Fp(,)g(an)g(absolute)h(index)g(in)o(to)f(the)h(list.)195
+1464 y(If)g Fj(direction)i Fp(is)e(negativ)o(e,)h(the)f(searc)o(h)g
+(pro)q(ceeds)g(bac)o(kw)o(ard)g(from)f Fj(p)q(os)p Fp(,)h(otherwise)h
+(forw)o(ard.)195 1519 y(Returns)k(the)f(absolute)g(index)h(of)f(the)g
+(history)g(elemen)o(t)h(where)f Fj(string)k Fp(w)o(as)21
+b(found,)j(or)d(-1)195 1574 y(otherwise.)75 1684 y Fi(2.3.6)30
+b(Managing)20 b(the)g(History)h(File)137 1780 y Fp(The)16
+b(History)g(library)h(can)e(read)h(the)g(history)g(from)f(and)h(write)g
+(it)g(to)f(a)h(\014le.)22 b(This)17 b(section)f(do)q(cu-)75
+1835 y(men)o(ts)f(the)g(functions)h(for)f(managing)g(a)g(history)g
+(\014le.)1762 1949 y(F)l(unction)-1861 b Fh(int)20 b
+Fg(read)p 286 1949 V 20 w(history)i Ff(\()p Fo(const)15
+b(char)f(*filename)p Ff(\))195 2003 y Fp(Add)h(the)g(con)o(ten)o(ts)f
+(of)h Fj(\014lename)j Fp(to)c(the)h(history)g(list,)g(a)g(line)h(at)f
+(a)f(time.)20 b(If)15 b Fj(\014lename)k Fp(is)c Fo(NULL)p
+Fp(,)195 2058 y(then)h(read)f(from)f(`)p Fo(~/.history)p
+Fp('.)k(Returns)e(0)e(if)i(successful,)g(or)f Fo(errno)f
+Fp(if)i(not.)1762 2172 y(F)l(unction)-1861 b Fh(int)20
+b Fg(read)p 286 2172 V 20 w(history)p 481 2172 V 20 w(range)i
+Ff(\()p Fo(const)14 b(char)h(*filename,)f(int)h(from,)f(int)h(to)p
+Ff(\))195 2227 y Fp(Read)g(a)e(range)h(of)f(lines)j(from)d
+Fj(\014lename)p Fp(,)i(adding)g(them)f(to)f(the)h(history)g(list.)20
+b(Start)13 b(reading)i(at)195 2282 y(line)g Fj(from)d
+Fp(and)h(end)h(at)f Fj(to)p Fp(.)18 b(If)c Fj(from)e
+Fp(is)i(zero,)f(start)f(at)g(the)h(b)q(eginning.)22 b(If)13
+b Fj(to)i Fp(is)e(less)h(than)f Fj(from)p Fp(,)195 2337
+y(then)i(read)g(un)o(til)i(the)e(end)g(of)g(the)g(\014le.)21
+b(If)15 b Fj(\014lename)k Fp(is)d Fo(NULL)p Fp(,)e(then)h(read)g(from)f
+(`)p Fo(~/.history)p Fp('.)195 2392 y(Returns)i(0)f(if)g(successful,)h
+(or)f Fo(errno)g Fp(if)g(not.)1762 2506 y(F)l(unction)-1861
+b Fh(int)20 b Fg(write)p 304 2506 V 22 w(history)i Ff(\()p
+Fo(const)15 b(char)f(*filename)p Ff(\))195 2560 y Fp(W)l(rite)k(the)f
+(curren)o(t)g(history)h(to)f Fj(\014lename)p Fp(,)h(o)o(v)o(erwriting)f
+Fj(\014lename)k Fp(if)d(necessary)l(.)27 b(If)18 b Fj(\014lename)195
+2615 y Fp(is)e Fo(NULL)p Fp(,)e(then)h(write)g(the)h(history)f(list)h
+(to)e(`)p Fo(~/.history)p Fp('.)k(V)l(alues)e(returned)f(are)g(as)g(in)
+h Fo(read_)195 2670 y(history\(\))p Fp(.)p eop
+%%Page: 9 11
+9 10 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)889 b(9)1762 149 y(F)l(unction)-1861 b Fh(int)20
+b Fg(app)r(end)p 360 149 18 3 v 19 w(history)j Ff(\()p
+Fo(int)14 b(nelements,)g(const)h(char)f(*filename)p Ff(\))195
+204 y Fp(App)q(end)19 b(the)e(last)g Fj(nelemen)o(ts)k
+Fp(of)16 b(the)i(history)f(list)h(to)f Fj(\014lename)p
+Fp(.)27 b(If)18 b Fj(\014lename)j Fp(is)d Fo(NULL)p Fp(,)f(then)195
+259 y(app)q(end)f(to)f(`)p Fo(~/.history)p Fp('.)1762
+411 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p 351
+411 V 20 w(truncate)p 582 411 V 21 w(\014le)k Ff(\()p
+Fo(const)14 b(char)h(*filename,)e(int)i(nlines)p Ff(\))195
+466 y Fp(T)l(runcate)k(the)h(history)f(\014le)h Fj(\014lename)p
+Fp(,)h(lea)o(ving)f(only)g(the)f(last)g Fj(nlines)k Fp(lines.)34
+b(If)20 b Fj(\014lename)i Fp(is)195 520 y Fo(NULL)p Fp(,)14
+b(then)i(`)p Fo(~/.history)p Fp(')d(is)j(truncated.)75
+656 y Fi(2.3.7)30 b(History)20 b(Expansion)137 764 y
+Fp(These)c(functions)g(implemen)o(t)g Fo(csh)p Fp(-lik)o(e)g(history)g
+(expansion.)1762 916 y(F)l(unction)-1861 b Fh(int)20
+b Fg(history)p 351 916 V 20 w(expand)j Ff(\()p Fo(char)14
+b(*string,)g(char)h(**output)p Ff(\))195 970 y Fp(Expand)j
+Fj(string)p Fp(,)f(placing)h(the)g(result)f(in)o(to)g
+Fj(output)p Fp(,)h(a)e(p)q(oin)o(ter)i(to)f(a)g(string)g(\(see)g
+(Section)h(1.1)195 1025 y([History)d(In)o(teraction],)f(page)h(1\).)20
+b(Returns:)195 1122 y Fo(0)216 b Fp(If)19 b(no)g(expansions)g(to)q(ok)f
+(place)i(\(or,)e(if)i(the)e(only)i(c)o(hange)e(in)i(the)f(text)f(w)o
+(as)g(the)435 1177 y(remo)o(v)m(al)d(of)g(escap)q(e)h(c)o(haracters)e
+(preceding)i(the)f(history)g(expansion)h(c)o(haracter\);)195
+1268 y Fo(1)216 b Fp(if)16 b(expansions)g(did)g(tak)o(e)e(place;)195
+1360 y Fo(-1)192 b Fp(if)16 b(there)f(w)o(as)f(an)h(error)g(in)h
+(expansion;)195 1451 y Fo(2)216 b Fp(if)14 b(the)g(returned)g(line)i
+(should)f(b)q(e)f(displa)o(y)o(ed,)h(but)f(not)f(executed,)i(as)e(with)
+h(the)g Fo(:p)435 1506 y Fp(mo)q(di\014er)i(\(see)f(Section)h(1.1.3)e
+([Mo)q(di\014ers],)h(page)g(2\).)195 1603 y(If)g(an)h(error)e(o)q
+(curred)i(in)g(expansion,)f(then)h Fj(output)g Fp(con)o(tains)f(a)g
+(descriptiv)o(e)i(error)d(message.)1762 1755 y(F)l(unction)-1861
+b Fh(char)20 b(*)f Fg(history)p 422 1755 V 21 w(arg)p
+524 1755 V 19 w(extract)24 b Ff(\()p Fo(int)14 b(first,)h(int)g(last,)f
+(const)g(char)283 1809 y(*string)p Ff(\))195 1864 y Fp(Extract)19
+b(a)h(string)g(segmen)o(t)g(consisting)h(of)f(the)g Fj(\014rst)h
+Fp(through)f Fj(last)h Fp(argumen)o(ts)e(presen)o(t)h(in)195
+1919 y Fj(string)p Fp(.)g(Argumen)o(ts)15 b(are)f(split)j(as)d(in)j
+(Bash.)1762 2071 y(F)l(unction)-1861 b Fh(char)20 b(*)f
+Fg(get)p 324 2071 V 21 w(history)p 520 2071 V 20 w(ev)n(en)n(t)25
+b Ff(\()p Fo(const)14 b(char)h(*string,)f(int)g(*cindex,)g(int)283
+2126 y(qchar)p Ff(\))195 2181 y Fp(Returns)23 b(the)g(text)f(of)h(the)f
+(history)h(ev)o(en)o(t)g(b)q(eginning)h(at)f Fj(string)j
+Fo(+)d Fj(*cindex)p Fp(.)43 b Fj(*cindex)27 b Fp(is)195
+2235 y(mo)q(di\014ed)16 b(to)e(p)q(oin)o(t)h(to)f(after)g(the)h(ev)o
+(en)o(t)f(sp)q(eci\014er.)22 b(A)o(t)14 b(function)h(en)o(try)l(,)g
+Fj(cindex)k Fp(p)q(oin)o(ts)c(to)f(the)195 2290 y(index)19
+b(in)o(to)f Fj(string)k Fp(where)c(the)g(history)g(ev)o(en)o(t)g(sp)q
+(eci\014cation)h(b)q(egins.)30 b Fj(qc)o(har)21 b Fp(is)d(a)g(c)o
+(haracter)195 2345 y(that)13 b(is)h(allo)o(w)o(ed)g(to)e(end)i(the)g
+(ev)o(en)o(t)f(sp)q(eci\014cation)j(in)e(addition)g(to)f(the)h
+(\\normal")f(terminating)195 2400 y(c)o(haracters.)1762
+2552 y(F)l(unction)-1861 b Fh(char)20 b(**)f Fg(history)p
+448 2552 V 21 w(tok)n(enize)25 b Ff(\()p Fo(const)14
+b(char)h(*string)p Ff(\))195 2606 y Fp(Return)c(an)f(arra)o(y)g(of)g
+(tok)o(ens)g(parsed)g(out)g(of)g Fj(string)p Fp(,)h(m)o(uc)o(h)g(as)f
+(the)g(shell)i(migh)o(t.)19 b(The)10 b(tok)o(ens)g(are)195
+2661 y(split)16 b(on)f(the)h(c)o(haracters)e Fo(")h(\\t\\n\(\)<>;&|$")p
+Fp(,)e(and)i(shell)i(quoting)f(con)o(v)o(en)o(tions)f(are)g(ob)q(ey)o
+(ed.)p eop
+%%Page: 10 12
+10 11 bop 75 -58 a Fp(10)1324 b(GNU)15 b(History)g(Library)75
+149 y Fn(2.4)33 b(History)22 b(V)-6 b(ariables)137 247
+y Fp(This)23 b(section)g(describ)q(es)h(the)f(externally-visible)j(v)m
+(ariables)d(exp)q(orted)g(b)o(y)f(the)h(GNU)f(History)75
+302 y(Library)l(.)1773 423 y(V)l(ariable)-1861 b Fh(int)20
+b Fg(history)p 351 423 18 3 v 20 w(base)195 477 y Fp(The)15
+b(logical)i(o\013set)d(of)h(the)g(\014rst)g(en)o(try)g(in)h(the)f
+(history)g(list.)1773 598 y(V)l(ariable)-1861 b Fh(int)20
+b Fg(history)p 351 598 V 20 w(length)195 653 y Fp(The)15
+b(n)o(um)o(b)q(er)h(of)f(en)o(tries)g(curren)o(tly)h(stored)f(in)h(the)
+f(history)g(list.)1773 774 y(V)l(ariable)-1861 b Fh(int)20
+b Fg(max)p 283 774 V 19 w(input)p 435 774 V 21 w(history)195
+829 y Fp(The)j(maxim)o(um)g(n)o(um)o(b)q(er)g(of)g(history)g(en)o
+(tries.)43 b(This)24 b(m)o(ust)e(b)q(e)i(c)o(hanged)f(using)h
+Fo(stifle_)195 884 y(history\(\))p Fp(.)1773 1004 y(V)l(ariable)-1861
+b Fh(char)20 b Fg(history)p 377 1004 V 20 w(expansion)p
+644 1004 V 21 w(c)n(har)195 1059 y Fp(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
+Fo(!)p Fp('.)1773 1180 y(V)l(ariable)-1861 b Fh(char)20
+b Fg(history)p 377 1180 V 20 w(subst)p 529 1180 V 20
+w(c)n(har)195 1235 y Fp(The)h(c)o(haracter)e(that)h(in)o(v)o(ok)o(es)g
+(w)o(ord)g(substitution)h(if)g(found)f(at)g(the)h(start)e(of)h(a)g
+(line.)37 b(The)195 1290 y(default)16 b(is)f(`)p Fo(^)p
+Fp('.)1773 1411 y(V)l(ariable)-1861 b Fh(char)20 b Fg(history)p
+377 1411 V 20 w(commen)n(t)p 627 1411 V 19 w(c)n(har)195
+1465 y Fp(During)f(tok)o(enization,)h(if)f(this)h(c)o(haracter)e(is)h
+(seen)h(as)e(the)h(\014rst)g(c)o(haracter)f(of)g(a)h(w)o(ord,)g(then)
+195 1520 y(it)j(and)g(all)g(subsequen)o(t)h(c)o(haracters)d(up)j(to)e
+(a)g(newline)i(are)f(ignored,)h(suppressing)g(history)195
+1575 y(expansion)16 b(for)f(the)g(remainder)h(of)f(the)g(line.)21
+b(This)16 b(is)g(disabled)h(b)o(y)e(default.)1773 1696
+y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p 422
+1696 V 21 w(no)p 504 1696 V 20 w(expand)p 704 1696 V
+20 w(c)n(hars)195 1751 y Fp(The)c(list)h(of)e(c)o(haracters)g(whic)o(h)
+i(inhibit)h(history)e(expansion)h(if)f(found)h(immediately)g(follo)o
+(wing)195 1805 y Fj(history)p 336 1805 14 2 v 16 w(expansion)p
+547 1805 V 18 w(c)o(har)p Fp(.)j(The)d(default)f(is)h(space,)f(T)l(AB,)
+g(and)h(`)p Fo(=)p Fp('.)1773 1926 y(V)l(ariable)-1861
+b Fh(char)20 b(*)f Fg(history)p 422 1926 18 3 v 21 w(searc)n(h)p
+599 1926 V 20 w(delimiter)p 843 1926 V 23 w(c)n(hars)195
+1981 y Fp(The)13 b(list)h(of)f(additional)h(c)o(haracters)e(whic)o(h)i
+(can)g(delimit)g(a)f(history)g(searc)o(h)g(string,)g(in)h(addition)195
+2036 y(to)h(space,)g(T)l(AB,)g(`)p Fo(:)p Fp(')f(and)h(`)p
+Fo(?)p Fp(')g(in)h(the)f(case)g(of)g(a)g(substring)g(searc)o(h.)20
+b(The)c(default)f(is)h(empt)o(y)l(.)1773 2157 y(V)l(ariable)-1861
+b Fh(int)20 b Fg(history)p 351 2157 V 20 w(quotes)p 533
+2157 V 21 w(inhibit)p 717 2157 V 23 w(expansion)195 2212
+y Fp(If)15 b(non-zero,)f(single-quoted)j(w)o(ords)c(are)i(not)f
+(scanned)h(for)f(the)h(history)g(expansion)g(c)o(haracter.)195
+2266 y(The)g(default)h(v)m(alue)h(is)e(0.)1773 2387 y(V)l(ariable)-1861
+b Fh(rl_linebuf_func_t)22 b(*)d Fg(history)p 762 2387
+V 21 w(inhibit)p 946 2387 V 23 w(expansion)p 1216 2387
+V 20 w(function)195 2442 y Fp(This)e(should)h(b)q(e)f(set)g(to)f(the)g
+(address)h(of)f(a)h(function)g(that)f(tak)o(es)g(t)o(w)o(o)f(argumen)o
+(ts:)22 b(a)17 b Fo(char)d(*)195 2497 y Fp(\()p Fj(string)t
+Fp(\))e(and)i(an)f Fo(int)g Fp(index)i(in)o(to)e(that)f(string)i(\()p
+Fj(i)r Fp(\).)19 b(It)14 b(should)g(return)f(a)g(non-zero)h(v)m(alue)g
+(if)g(the)195 2552 y(history)h(expansion)g(starting)f(at)g
+Fj(string[i])i Fp(should)g(not)e(b)q(e)h(p)q(erformed;)g(zero)f(if)h
+(the)g(expansion)195 2606 y(should)i(b)q(e)g(done.)22
+b(It)16 b(is)h(in)o(tended)g(for)e(use)i(b)o(y)f(applications)h(lik)o
+(e)g(Bash)f(that)g(use)g(the)g(history)195 2661 y(expansion)g(c)o
+(haracter)f(for)f(additional)j(purp)q(oses.)j(By)c(default,)f(this)h(v)
+m(ariable)g(is)g(set)f(to)f Fo(NULL)p Fp(.)p eop
+%%Page: 11 13
+11 12 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(History)867 b(11)75 149 y Fn(2.5)33 b(History)22 b(Programming)h
+(Example)137 258 y Fp(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
+335 y Fo(#include)23 b(<stdio.h>)195 387 y(#include)g
+(<readline/history.h>)195 491 y(main)g(\(argc,)g(argv\))314
+543 y(int)h(argc;)314 594 y(char)g(**argv;)195 646 y({)243
+698 y(char)f(line[1024],)f(*t;)243 750 y(int)h(len,)g(done)h(=)g(0;)243
+854 y(line[0])f(=)g(0;)243 958 y(using_history)f(\(\);)243
+1010 y(while)h(\(!done\))290 1061 y({)338 1113 y(printf)g(\("history$)g
+("\);)338 1165 y(fflush)g(\(stdout\);)338 1217 y(t)h(=)g(fgets)f
+(\(line,)g(sizeof)g(\(line\))g(-)h(1,)f(stdin\);)338
+1269 y(if)h(\(t)f(&&)h(*t\))386 1321 y({)434 1373 y(len)f(=)h(strlen)f
+(\(t\);)434 1425 y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))481
+1477 y(t[len)h(-)f(1])h(=)g('\\0';)386 1528 y(})338 1632
+y(if)g(\(!t\))386 1684 y(strcpy)f(\(line,)g("quit"\);)338
+1788 y(if)h(\(line[0]\))386 1840 y({)434 1892 y(char)f(*expansion;)434
+1944 y(int)g(result;)434 2047 y(result)g(=)g(history_expand)f(\(line,)h
+(&expansion\);)434 2099 y(if)g(\(result\))481 2151 y(fprintf)g
+(\(stderr,)g("\045s\\n",)g(expansion\);)434 2255 y(if)g(\(result)g(<)h
+(0)g(||)f(result)g(==)h(2\))481 2307 y({)529 2359 y(free)f
+(\(expansion\);)529 2411 y(continue;)481 2462 y(})434
+2566 y(add_history)f(\(expansion\);)434 2618 y(strncpy)h(\(line,)g
+(expansion,)f(sizeof)h(\(line\))g(-)h(1\);)434 2670 y(free)f
+(\(expansion\);)p eop
+%%Page: 12 14
+12 13 bop 75 -58 a Fp(12)1324 b(GNU)15 b(History)g(Library)386
+149 y Fo(})338 253 y(if)24 b(\(strcmp)f(\(line,)g("quit"\))g(==)g(0\))
+386 305 y(done)g(=)h(1;)338 357 y(else)f(if)h(\(strcmp)f(\(line,)g
+("save"\))g(==)h(0\))386 409 y(write_history)e(\("history_file"\);)338
+461 y(else)h(if)h(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))386
+513 y(read_history)e(\("history_file"\);)338 565 y(else)h(if)h
+(\(strcmp)f(\(line,)g("list"\))g(==)h(0\))386 616 y({)434
+668 y(register)e(HIST_ENTRY)h(**the_list;)434 720 y(register)f(int)i
+(i;)434 824 y(the_list)e(=)i(history_list)e(\(\);)434
+876 y(if)h(\(the_list\))481 928 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e
+(i++\))529 980 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g
+(history_base,)e(the_list[i]->line\);)386 1032 y(})338
+1083 y(else)h(if)h(\(strncmp)f(\(line,)g("delete",)g(6\))g(==)h(0\))386
+1135 y({)434 1187 y(int)f(which;)434 1239 y(if)g(\(\(sscanf)g(\(line)g
+(+)h(6,)f("\045d",)h(&which\)\))e(==)i(1\))481 1291 y({)529
+1343 y(HIST_ENTRY)f(*entry)g(=)g(remove_history)f(\(which\);)529
+1395 y(if)i(\(!entry\))577 1447 y(fprintf)f(\(stderr,)f("No)i(such)f
+(entry)g(\045d\\n",)g(which\);)529 1499 y(else)577 1550
+y({)625 1602 y(free)g(\(entry->line\);)625 1654 y(free)g(\(entry\);)577
+1706 y(})481 1758 y(})434 1810 y(else)481 1862 y({)529
+1914 y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f
+(`delete'\\n"\);)481 1966 y(})386 2017 y(})290 2069 y(})195
+2121 y(})p eop
+%%Page: 13 15
+13 14 bop 75 -58 a Fp(App)q(endix)17 b(A:)e(Concept)g(Index)1196
+b(13)75 149 y Fl(App)r(endix)25 b(A)41 b(Concept)27 b(Index)75
+321 y Fn(A)75 383 y Fe(anc)o(hored)14 b(searc)o(h)s Fd(.)8
+b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16
+b Fe(8)75 507 y Fn(E)75 568 y Fe(ev)o(en)o(t)d(designators)g
+Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b
+Fe(1)1012 321 y Fn(H)1012 431 y Fe(history)15 b(ev)o(en)o(ts)d
+Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
+b Fe(1)1012 500 y(history)15 b(expansion)8 b Fd(.)g(.)e(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)21 b Fe(1)1012 568 y(History)14 b(Searc)o(hing)6
+b Fd(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b
+Fe(8)p eop
+%%Page: 14 16
+14 15 bop 75 -58 a Fp(14)1324 b(GNU)15 b(History)g(Library)p
+eop
+%%Page: 15 17
+15 16 bop 75 -58 a Fp(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l
+(ariable)g(Index)919 b(15)75 149 y Fl(App)r(endix)25
+b(B)41 b(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
+b(Index)75 321 y Fn(A)75 382 y Fc(add_histor)o(y)8 b
+Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
+b Fe(6)75 428 y Fc(append_his)o(to)o(ry)8 b Fd(.)s(.)f(.)f(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)21 b Fe(9)75 557 y Fn(C)75 618
+y Fc(clear_hist)o(or)o(y)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)22 b Fe(6)75 664 y Fc(current_hi)o(st)o(ory)7
+b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
+Fe(7)75 793 y Fn(G)75 854 y Fc(get_histor)o(y_)o(eve)o(nt)5
+b Fd(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fe(9)75
+983 y Fn(H)75 1044 y Fc(history_ar)o(g_)o(ext)o(ra)o(ct)5
+b Fd(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(9)75 1090 y Fc(history_ba)o(se)
+6 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
+b Fe(10)75 1136 y Fc(history_co)o(mm)o(ent)o(_c)o(har)s
+Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)16 b Fe(10)75 1181 y Fc(history_ex)o(pa)o(nd)8
+b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
+b Fe(9)75 1227 y Fc(history_ex)o(pa)o(nsi)o(on)o(_ch)o(ar)8
+b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)24 b Fe(10)75 1273 y Fc(history_ge)o(t)8
+b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
+b Fe(7)75 1318 y Fc(history_ge)o(t_)o(his)o(to)o(ry_)o(sta)o(te)6
+b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)22 b Fe(6)75 1364 y Fc(history_in)o(hi)o(bit)o(_e)o(xpa)o(nsi)o(on)
+o(_fu)o(nc)o(tio)o(n)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)24
+b Fe(10)75 1410 y Fc(history_is)o(_s)o(tif)o(le)o(d)6
+b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(7)75 1455
+y Fc(history_le)o(ng)o(th)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)21 b Fe(10)75 1501 y Fc(history_li)o(st)6 b Fd(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fe(7)75
+1547 y Fc(history_no)o(_e)o(xpa)o(nd)o(_ch)o(ars)7 b
+Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)h(.)23 b Fe(10)75 1592 y Fc(history_qu)o(ot)o(es_)o(in)o(hib)o(it_)o
+(ex)o(pan)o(si)o(on)t Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17
+b Fe(10)75 1638 y Fc(history_se)o(ar)o(ch)8 b Fd(.)s(.)f(.)f(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Fe(8)75 1684 y Fc(history_se)o(ar)o
+(ch_)o(de)o(lim)o(ite)o(r_)o(cha)o(rs)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)18 b Fe(10)75 1729 y Fc(history_se)o(ar)o(ch_)o(po)
+o(s)6 b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(8)75
+1775 y Fc(history_se)o(ar)o(ch_)o(pr)o(efi)o(x)s Fd(.)t(.)6
+b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)16 b Fe(8)75 1821 y Fc(history_se)o(t_)o(his)o(to)o(ry_)
+o(sta)o(te)6 b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)22 b Fe(6)75 1867 y Fc(history_se)o(t_)o(pos)7
+b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
+Fe(7)75 1912 y Fc(history_su)o(bs)o(t_c)o(ha)o(r)5 b
+Fd(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Fe(10)75 1958 y Fc(history_to)o(ke)
+o(niz)o(e)7 b Fd(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20
+b Fe(9)1012 321 y Fc(history_tot)o(al)o(_by)o(te)o(s)5
+b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Fe(7)1012 367 y
+Fc(history_tru)o(nc)o(ate)o(_f)o(ile)s Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17
+b Fe(9)1012 500 y Fn(M)1012 562 y Fc(max_input_h)o(is)o(tor)o(y)6
+b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Fe(10)1012 694
+y Fn(N)1012 756 y Fc(next_histor)o(y)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)23 b Fe(7)1012 888 y Fn(P)1012
+950 y Fc(previous_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)20 b Fe(7)1012 1082 y Fn(R)1012 1144 y Fc(read_histor)o(y)7
+b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)23
+b Fe(8)1012 1190 y Fc(read_histor)o(y_)o(ran)o(ge)5 b
+Fd(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fe(8)1012 1237
+y Fc(remove_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)22 b Fe(6)1012 1283 y Fc(replace_his)o(to)o(ry_)o(en)o(try)s
+Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(6)1012 1415 y Fn(S)1012
+1477 y Fc(stifle_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)22 b Fe(7)1012 1609 y Fn(U)1012 1671
+y Fc(unstifle_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)20 b Fe(7)1012 1717 y Fc(using_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(6)1012 1850
+y Fn(W)1012 1912 y Fc(where_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(7)1012 1958 y Fc(write_histo)o(ry)6
+b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
+b Fe(8)p eop
+%%Page: 16 18
+16 17 bop 75 -58 a Fp(16)1324 b(GNU)15 b(History)g(Library)p
+eop
+%%Page: -1 19
+-1 18 bop 1862 -58 a Fp(i)75 149 y Fl(T)-7 b(able)27
+b(of)f(Con)n(ten)n(ts)75 320 y Fn(1)67 b(Using)22 b(History)h(In)n
+(teractiv)n(ely)9 b Fb(.)k(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)h(.)31 b Fn(1)224 389 y Fp(1.1)45 b(History)15
+b(Expansion)5 b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fp(1)374 444 y(1.1.1)44
+b(Ev)o(en)o(t)14 b(Designators)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)26 b Fp(1)374 499 y(1.1.2)44 b(W)l(ord)15
+b(Designators)5 b Fa(.)h(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)19 b Fp(2)374 553 y(1.1.3)44 b(Mo)q(di\014ers)t Fa(.)8
+b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)19 b Fp(2)75 675 y Fn(2)67 b(Programming)23
+b(with)g(GNU)f(History)16 b Fb(.)10 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)38 b Fn(5)224 743 y Fp(2.1)45 b(In)o(tro)q(duction)16
+b(to)f(History)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)24 b Fp(5)224 798 y(2.2)45 b(History)15
+b(Storage)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Fp(5)224 853
+y(2.3)45 b(History)15 b(F)l(unctions)d Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26
+b Fp(6)374 907 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e
+(Managemen)o(t)g Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)29 b
+Fp(6)374 962 y(2.3.2)44 b(History)15 b(List)h(Managemen)o(t)d
+Fa(.)7 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)29 b Fp(6)374 1017 y(2.3.3)44
+b(Information)15 b(Ab)q(out)g(the)h(History)f(List)c
+Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
+b Fp(7)374 1072 y(2.3.4)44 b(Mo)o(ving)15 b(Around)g(the)g(History)g
+(List)c Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)25 b Fp(7)374 1127 y(2.3.5)44 b(Searc)o(hing)16
+b(the)f(History)g(List)7 b Fa(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
+b Fp(8)374 1181 y(2.3.6)44 b(Managing)15 b(the)g(History)g(File)6
+b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)20 b Fp(8)374 1236 y(2.3.7)44
+b(History)15 b(Expansion)9 b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)24 b Fp(9)224 1291 y(2.4)45 b(History)15 b(V)l(ariables)6
+b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)21 b Fp(10)224 1346 y(2.5)45 b(History)15
+b(Programming)f(Example)7 b Fa(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
+b Fp(11)75 1467 y Fn(App)r(endix)i(A)67 b(Concept)22
+b(Index)17 b Fb(.)10 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)38 b Fn(13)75 1602 y(App)r(endix)24 b(B)67
+b(F)-6 b(unction)25 b(and)e(V)-6 b(ariable)24 b(Index)16
+b Fb(.)10 b(.)g(.)g(.)38 b Fn(15)p eop
+%%Page: -2 20
+-2 19 bop 75 -58 a Fp(ii)1346 b(GNU)15 b(History)g(Library)p
+eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
new file mode 100644
--- /dev/null
+++ b/readline/doc/manvers.texinfo
@@ -0,0 +1,6 @@
+@set EDITION 4.2-beta
+@set VERSION 4.2-beta
+@set UPDATED 2001 Feb 5
+@set UPDATE-MONTH Feb 2001
+
+@set LASTCHANGE Mon Feb  5 09:10:18 EST 2001
new file mode 100644
--- /dev/null
+++ b/readline/doc/readline.0
@@ -0,0 +1,1188 @@
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+NNAAMMEE
+       readline - get a line from a user with editing
+
+SSYYNNOOPPSSIISS
+       ##iinncclluuddee <<ssttddiioo..hh>>
+       ##iinncclluuddee <<rreeaaddlliinnee//rreeaaddlliinnee..hh>>
+       ##iinncclluuddee <<rreeaaddlliinnee//hhiissttoorryy..hh>>
+
+       _c_h_a_r _*
+       rreeaaddlliinnee (_c_o_n_s_t _c_h_a_r _*_p_r_o_m_p_t);
+
+CCOOPPYYRRIIGGHHTT
+       Readline  is  Copyright (C) 1989-2001 by the Free Software
+       Foundation, Inc.
+
+DDEESSCCRRIIPPTTIIOONN
+       rreeaaddlliinnee will read a line from the terminal and return it,
+       using  pprroommpptt as a prompt.  If pprroommpptt is NNUULLLL or the empty
+       string, no prompt is issued.  The line returned  is  allo-
+       cated  with  _m_a_l_l_o_c(3);  the caller must free it when fin-
+       ished.  The line returned has the final  newline  removed,
+       so only the text of the line remains.
+
+       rreeaaddlliinnee  offers  editing  capabilities  while the user is
+       entering the line.  By default, the line editing  commands
+       are  similar  to  those of emacs.  A vi-style line editing
+       interface is also available.
+
+       This manual page describes only  the  most  basic  use  of
+       rreeaaddlliinnee.   Much  more functionality is available; see _T_h_e
+       _G_N_U _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y and _T_h_e _G_N_U _H_i_s_t_o_r_y _L_i_b_r_a_r_y for addi-
+       tional information.
+
+RREETTUURRNN VVAALLUUEE
+       rreeaaddlliinnee  returns the text of the line read.  A blank line
+       returns the empty string.  If  EEOOFF  is  encountered  while
+       reading  a  line, and the line is empty, NNUULLLL is returned.
+       If an EEOOFF is read with a non-empty line, it is treated  as
+       a newline.
+
+NNOOTTAATTIIOONN
+       An  emacs-style  notation  is  used  to denote keystrokes.
+       Control keys are denoted by C-_k_e_y, e.g.,  C-n  means  Con-
+       trol-N.  Similarly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x
+       means Meta-X.  (On keyboards without a _m_e_t_a key, M-_x means
+       ESC  _x,  i.e.,  press the Escape key then the _x key.  This
+       makes ESC the _m_e_t_a _p_r_e_f_i_x.  The  combination  M-C-_x  means
+       ESC-Control-_x,  or press the Escape key then hold the Con-
+       trol key while pressing the _x key.)
+
+       Readline commands may be given  numeric  _a_r_g_u_m_e_n_t_s,  which
+       normally act as a repeat count.  Sometimes, however, it is
+       the sign of the argument that is significant.   Passing  a
+       negative  argument  to  a command that acts in the forward
+
+
+
+GNU Readline 4.2            2001 Feb 5                          1
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       direction (e.g., kkiillll--lliinnee) causes that command to act  in
+       a  backward direction.  Commands whose behavior with argu-
+       ments deviates from this are noted.
+
+       When a command is described  as  _k_i_l_l_i_n_g  text,  the  text
+       deleted  is saved for possible future retrieval (_y_a_n_k_i_n_g).
+       The killed text is saved  in  a  _k_i_l_l  _r_i_n_g.   Consecutive
+       kills  cause  the  text  to  be accumulated into one unit,
+       which can be yanked all at once.  Commands  which  do  not
+       kill text separate the chunks of text on the kill ring.
+
+IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
+       Readline  is customized by putting commands in an initial-
+       ization file (the _i_n_p_u_t_r_c file).  The name of this file is
+       taken  from the value of the IINNPPUUTTRRCC environment variable.
+       If that variable is  unset,  the  default  is  _~_/_._i_n_p_u_t_r_c.
+       When  a program which uses the readline library starts up,
+       the init file is read, and the key bindings and  variables
+       are set.  There are only a few basic constructs allowed in
+       the readline init file.  Blank lines are  ignored.   Lines
+       beginning with a ## are comments.  Lines beginning with a $$
+       indicate conditional constructs.  Other lines  denote  key
+       bindings  and  variable settings.  Each program using this
+       library may add its own commands and bindings.
+
+       For example, placing
+
+              M-Control-u: universal-argument
+       or
+              C-Meta-u: universal-argument
+
+       into the _i_n_p_u_t_r_c would make  M-C-u  execute  the  readline
+       command _u_n_i_v_e_r_s_a_l_-_a_r_g_u_m_e_n_t.
+
+       The  following  symbolic  character  names  are recognized
+       while processing key bindings: _D_E_L, _E_S_C, _E_S_C_A_P_E, _L_F_D, _N_E_W_-
+       _L_I_N_E, _R_E_T, _R_E_T_U_R_N, _R_U_B_O_U_T, _S_P_A_C_E, _S_P_C, and _T_A_B.
+
+       In  addition  to command names, readline allows keys to be
+       bound to a string that is inserted when the key is pressed
+       (a _m_a_c_r_o).
+
+
+   KKeeyy BBiinnddiinnggss
+       The  syntax  for  controlling  key bindings in the _i_n_p_u_t_r_c
+       file is simple.  All that is required is the name  of  the
+       command or the text of a macro and a key sequence to which
+       it should be bound. The name may be specified  in  one  of
+       two  ways:  as a symbolic key name, possibly with _M_e_t_a_- or
+       _C_o_n_t_r_o_l_- prefixes, or as a key sequence.  When  using  the
+       form  kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e  or _m_a_c_r_o, _k_e_y_n_a_m_e is the name
+       of a key spelled out in English.  For example:
+
+              Control-u: universal-argument
+
+
+
+GNU Readline 4.2            2001 Feb 5                          2
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+              Meta-Rubout: backward-kill-word
+              Control-o: "> output"
+
+       In the above example, _C_-_u is bound to the function uunniivveerr--
+       ssaall--aarrgguummeenntt,   _M_-_D_E_L  is  bound  to  the  function  bbaacckk--
+       wwaarrdd--kkiillll--wwoorrdd,  and  _C_-_o  is  bound  to  run  the   macro
+       expressed  on  the right hand side (that is, to insert the
+       text ``> output'' into the line).
+
+       In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o,  kkeeyy--
+       sseeqq differs from kkeeyynnaammee above in that strings denoting an
+       entire key  sequence  may  be  specified  by  placing  the
+       sequence  within  double quotes.  Some GNU Emacs style key
+       escapes can be used, as in the following example.
+
+              "\C-u": universal-argument
+              "\C-x\C-r": re-read-init-file
+              "\e[11~": "Function Key 1"
+
+       In this example, _C_-_u is again bound to the  function  uunnii--
+       vveerrssaall--aarrgguummeenntt.    _C_-_x  _C_-_r  is  bound  to  the  function
+       rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is bound to insert  the
+       text  ``Function Key 1''.  The full set of GNU Emacs style
+       escape sequences is
+              \\CC--    control prefix
+              \\MM--    meta prefix
+              \\ee     an escape character
+              \\\\     backslash
+              \\""     literal ", a double quote
+              \\''     literal ', a single quote
+
+       In addition to the GNU Emacs  style  escape  sequences,  a
+       second set of 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.  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
+
+
+
+GNU Readline 4.2            2001 Feb 5                          3
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       displayed  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 (without regard to  case).   The  variables  and
+       their default values are:
+
+       bbeellll--ssttyyllee ((aauuddiibbllee))
+              Controls  what  happens when readline wants to ring
+              the terminal bell.  If set to nnoonnee, readline  never
+              rings the bell.  If set to vviissiibbllee, readline uses a
+              visible bell if one is available.  If set to  aauuddii--
+              bbllee, readline attempts to ring the terminal's bell.
+       ccoommmmeenntt--bbeeggiinn ((````##''''))
+              The string that is inserted in  vvii  mode  when  the
+              iinnsseerrtt--ccoommmmeenntt  command  is executed.  This command
+              is bound to MM--## in emacs mode and to ## in  vi  com-
+              mand mode.
+       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-
+              ated by the ppoossssiibbllee--ccoommpplleettiioonnss command.   It  may
+              be  set  to any integer value greater than or equal
+              to zero.  If the number of possible completions  is
+              greater  than  or  equal to the value of this vari-
+              able, the user is asked whether or not he wishes to
+              view  them; otherwise they are simply listed on the
+              terminal.
+       ccoonnvveerrtt--mmeettaa ((OOnn))
+              If set to OOnn, readline will convert characters with
+              the  eighth  bit  set  to  an ASCII key sequence by
+              stripping the eighth bit and prefixing it  with  an
+              escape  character  (in  effect, using escape as the
+              _m_e_t_a _p_r_e_f_i_x).
+       ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
+              If set to OOnn, readline will  inhibit  word  comple-
+              tion.   Completion characters will be inserted into
+              the line as if they had been mapped to sseellff--iinnsseerrtt.
+
+
+
+
+GNU Readline 4.2            2001 Feb 5                          4
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       eeddiittiinngg--mmooddee ((eemmaaccss))
+              Controls  whether readline begins with a set of key
+              bindings similar to emacs or vi.  eeddiittiinngg--mmooddee  can
+              be set to either eemmaaccss or vvii.
+       eennaabbllee--kkeeyyppaadd ((OOffff))
+              When  set  to  OOnn,  readline will try to enable the
+              application keypad when it is called.  Some systems
+              need this to enable the arrow keys.
+       eexxppaanndd--ttiillddee ((OOffff))
+              If  set  to  oonn,  tilde expansion is performed when
+              readline attempts word completion.
+       hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
+              When set to OOnn, makes readline use  a  single  line
+              for  display, scrolling the input horizontally on a
+              single screen line when it becomes longer than  the
+              screen width rather than wrapping to a new line.
+       iinnppuutt--mmeettaa ((OOffff))
+              If  set to OOnn, readline will enable eight-bit input
+              (that is, it will not clear the eighth bit  in  the
+              characters it reads), regardless of what the termi-
+              nal claims it can support.  The name mmeettaa--ffllaagg is a
+              synonym for this variable.
+       iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[ CC--JJ''''))
+              The  string  of characters that should terminate an
+              incremental search without  subsequently  executing
+              the  character  as a command.  If this variable has
+              not been given a value, the characters _E_S_C and  _C_-_J
+              will terminate an incremental search.
+       kkeeyymmaapp ((eemmaaccss))
+              Set  the current readline keymap.  The set of legal
+              keymap names is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_,  _e_m_a_c_s_-_m_e_t_a_,
+              _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d, and _v_i_-_i_n_s_e_r_t.
+              _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is equivalent
+              to  _e_m_a_c_s_-_s_t_a_n_d_a_r_d.   The  default  value is _e_m_a_c_s.
+              The value of eeddiittiinngg--mmooddee also affects the  default
+              keymap.
+       mmaarrkk--ddiirreeccttoorriieess ((OOnn))
+              If  set  to  OOnn,  completed  directory names have a
+              slash appended.
+       mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
+              If set to OOnn, history lines that have been modified
+              are displayed with a preceding asterisk (**).
+       oouuttppuutt--mmeettaa ((OOffff))
+              If set to OOnn, readline will display characters with
+              the eighth bit set directly rather than as a  meta-
+              prefixed escape sequence.
+       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
+              than  one  possible completion cause the matches to
+
+
+
+GNU Readline 4.2            2001 Feb 5                          5
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+              be listed immediately instead of ringing the  bell.
+       vviissiibbllee--ssttaattss ((OOffff))
+              If set to OOnn, a character denoting a file's type as
+              reported by _s_t_a_t(2) is  appended  to  the  filename
+              when listing possible completions.
+
+   CCoonnddiittiioonnaall CCoonnssttrruuccttss
+       Readline  implements  a  facility similar in spirit to the
+       conditional compilation features  of  the  C  preprocessor
+       which allows key bindings and variable settings to be per-
+       formed as the result of  tests.   There  are  four  parser
+       directives used.
+
+       $$iiff    The  $$iiff construct allows bindings to be made based
+              on the editing mode, the terminal  being  used,  or
+              the  application  using  readline.  The text of the
+              test extends to the end of the line; no  characters
+              are required to isolate it.
+
+              mmooddee   The  mmooddee== form of the $$iiff directive is used
+                     to test whether readline is in emacs  or  vi
+                     mode.   This may be used in conjunction with
+                     the sseett kkeeyymmaapp command, for instance, to set
+                     bindings  in  the  _e_m_a_c_s_-_s_t_a_n_d_a_r_d and _e_m_a_c_s_-
+                     _c_t_l_x keymaps only if  readline  is  starting
+                     out in emacs mode.
+
+              tteerrmm   The tteerrmm== form may be used to include termi-
+                     nal-specific key bindings, perhaps  to  bind
+                     the  key  sequences output by the terminal's
+                     function keys.  The word on the  right  side
+                     of  the == is tested against the full name of
+                     the terminal and the portion of the terminal
+                     name before the first --.  This allows _s_u_n to
+                     match both _s_u_n and _s_u_n_-_c_m_d, for instance.
+
+              aapppplliiccaattiioonn
+                     The aapppplliiccaattiioonn construct is used to include
+                     application-specific settings.  Each program
+                     using the readline library sets the _a_p_p_l_i_c_a_-
+                     _t_i_o_n  _n_a_m_e,  and  an initialization file can
+                     test for a particular value.  This could  be
+                     used to bind key sequences to functions use-
+                     ful for a specific program.   For  instance,
+                     the  following  command  adds a key sequence
+                     that quotes the current or previous word  in
+                     Bash:
+
+                     $$iiff Bash
+                     # Quote the current or previous word
+                     "\C-xq": "\eb\"\ef\""
+                     $$eennddiiff
+
+       $$eennddiiff This  command,  as  seen  in  the previous example,
+
+
+
+GNU Readline 4.2            2001 Feb 5                          6
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+              terminates an $$iiff command.
+
+       $$eellssee  Commands in this branch of the  $$iiff  directive  are
+              executed if the test fails.
+
+       $$iinncclluuddee
+              This  directive takes a single filename as an argu-
+              ment and reads  commands  and  bindings  from  that
+              file.   For  example, the following directive would
+              read _/_e_t_c_/_i_n_p_u_t_r_c:
+
+              $$iinncclluuddee  _/_e_t_c_/_i_n_p_u_t_r_c
+
+SSEEAARRCCHHIINNGG
+       Readline provides commands for searching through the  com-
+       mand  history  for  lines  containing  a specified string.
+       There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and  _n_o_n_-_i_n_c_r_e_m_e_n_-
+       _t_a_l.
+
+       Incremental  searches  begin  before the user has finished
+       typing the search string.  As each character of the search
+       string is typed, readline displays the next entry from the
+       history matching the string typed so far.  An  incremental
+       search  requires only as many characters as needed to find
+       the desired history entry.  To search backward in the his-
+       tory  for  a  particular  string,  type  CC--rr.   Typing CC--ss
+       searches forward through the history.  The characters pre-
+       sent  in the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are
+       used to terminate an incremental search.  If that variable
+       has  not  been assigned a value the _E_s_c_a_p_e and CC--JJ charac-
+       ters will terminate an incremental search.  CC--GG will abort
+       an incremental search and restore the original line.  When
+       the search is terminated, the history entry containing the
+       search string becomes the current line.
+
+       To  find  other matching entries in the history list, type
+       CC--ss or CC--rr as appropriate.  This will search  backward  or
+       forward  in  the  history  for  the next line matching the
+       search string typed so far.  Any other key sequence  bound
+       to  a  readline command will terminate the search and exe-
+       cute that command.  For instance, a newline will terminate
+       the search and accept the line, thereby executing the com-
+       mand from the history list.  A movement command will  ter-
+       minate  the  search,  make the last line found the current
+       line, and begin editing.
+
+       Non-incremental searches read  the  entire  search  string
+       before starting to search for matching history lines.  The
+       search string may be typed by the user or be part  of  the
+       contents of the current line.
+
+EEDDIITTIINNGG CCOOMMMMAANNDDSS
+       The  following  is a list of the names of the commands and
+       the  default  key  sequences  to  which  they  are  bound.
+
+
+
+GNU Readline 4.2            2001 Feb 5                          7
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       Command  names  without  an  accompanying key sequence are
+       unbound by default.
+
+       In the following descriptions, _p_o_i_n_t refers to the current
+       cursor  position,  and  _m_a_r_k  refers  to a cursor position
+       saved by the sseett--mmaarrkk command.  The text between the point
+       and mark is referred to as the _r_e_g_i_o_n.
+
+   CCoommmmaannddss ffoorr MMoovviinngg
+       bbeeggiinnnniinngg--ooff--lliinnee ((CC--aa))
+              Move to the start of the current line.
+       eenndd--ooff--lliinnee ((CC--ee))
+              Move to the end of the line.
+       ffoorrwwaarrdd--cchhaarr ((CC--ff))
+              Move forward a character.
+       bbaacckkwwaarrdd--cchhaarr ((CC--bb))
+              Move back a character.
+       ffoorrwwaarrdd--wwoorrdd ((MM--ff))
+              Move  forward  to  the end of the next word.  Words
+              are composed of  alphanumeric  characters  (letters
+              and digits).
+       bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
+              Move  back  to the start of the current or previous
+              word.  Words are composed of  alphanumeric  charac-
+              ters (letters and digits).
+       cclleeaarr--ssccrreeeenn ((CC--ll))
+              Clear  the  screen  leaving the current line at the
+              top of the screen.  With an argument,  refresh  the
+              current line without clearing the screen.
+       rreeddrraaww--ccuurrrreenntt--lliinnee
+              Refresh the current line.
+
+   CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
+       aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
+              Accept  the line regardless of where the cursor is.
+              If this line is non-empty, it may be added  to  the
+              history  list for future recall with aadddd__hhiissttoorryy(()).
+              If the line is a modified history line, the history
+              line is restored to its original state.
+       pprreevviioouuss--hhiissttoorryy ((CC--pp))
+              Fetch  the  previous command from the history list,
+              moving back in the list.
+       nneexxtt--hhiissttoorryy ((CC--nn))
+              Fetch the next command from the history list,  mov-
+              ing forward in the list.
+       bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
+              Move to the first line in the history.
+       eenndd--ooff--hhiissttoorryy ((MM-->>))
+              Move  to  the  end  of the input history, i.e., the
+              line currently being entered.
+       rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
+              Search backward starting at the  current  line  and
+              moving `up' through the history as necessary.  This
+              is an incremental search.
+
+
+
+GNU Readline 4.2            2001 Feb 5                          8
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss))
+              Search forward starting at  the  current  line  and
+              moving  `down'  through  the  history as necessary.
+              This is an incremental search.
+       nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp))
+              Search backward through the history starting at the
+              current  line  using a non-incremental search for a
+              string supplied by the user.
+       nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn))
+              Search forward through the  history  using  a  non-
+              incremental  search  for  a  string supplied by the
+              user.
+       hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd
+              Search forward through the history for  the  string
+              of characters between the start of the current line
+              and the current cursor position (the _p_o_i_n_t).   This
+              is a non-incremental search.
+       hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd
+              Search  backward through the history for the string
+              of characters between the start of the current line
+              and the point.  This is a non-incremental search.
+       yyaannkk--nntthh--aarrgg ((MM--CC--yy))
+              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
+              from the end of the previous command.
+       yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
+              Insert  the  last  argument to the previous command
+              (the last word  of  the  previous  history  entry).
+              With an argument, behave exactly like yyaannkk--nntthh--aarrgg.
+              Successive calls to yyaannkk--llaasstt--aarrgg move back through
+              the  history  list,  inserting the last argument of
+              each line in turn.
+
+   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 bound to ddeelleettee--cchhaarr, then return EEOOFF.
+       bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
+              Delete the character behind the cursor.  When given
+              a numeric argument, save the deleted  text  on  the
+              kill ring.
+       ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr
+              Delete  the  character under the cursor, unless the
+              cursor is at the end of the line, in which case the
+              character behind the cursor is deleted.
+       qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
+              Add  the  next  character that you type to the line
+              verbatim.  This is how to  insert  characters  like
+
+
+
+GNU Readline 4.2            2001 Feb 5                          9
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+              CC--qq, for example.
+       ttaabb--iinnsseerrtt ((MM--TTAABB))
+              Insert a tab character.
+       sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
+              Insert the character typed.
+       ttrraannssppoossee--cchhaarrss ((CC--tt))
+              Drag  the  character  before point forward over the
+              character at point, moving point forward  as  well.
+              If  point is at the end of the line, then 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.
+       bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt))
+              Kill backward to the beginning of the line.
+       uunniixx--lliinnee--ddiissccaarrdd ((CC--uu))
+              Kill backward from point to the  beginning  of  the
+              line.  The killed text is saved on the kill-ring.
+       kkiillll--wwhhoollee--lliinnee
+              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
+              by ffoorrwwaarrdd--wwoorrdd.
+       bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
+              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-
+              ferent from bbaacckkwwaarrdd--kkiillll--wwoorrdd.
+       ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\))
+              Delete all spaces and tabs around point.
+
+
+
+GNU Readline 4.2            2001 Feb 5                         10
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       kkiillll--rreeggiioonn
+              Kill the text between the  point  and  _m_a_r_k  (saved
+              cursor  position).  This text is referred to as the
+              _r_e_g_i_o_n.
+       ccooppyy--rreeggiioonn--aass--kkiillll
+              Copy the text in the region to the kill buffer.
+       ccooppyy--bbaacckkwwaarrdd--wwoorrdd
+              Copy the word before point to the kill buffer.  The
+              word boundaries are the same as bbaacckkwwaarrdd--wwoorrdd.
+       ccooppyy--ffoorrwwaarrdd--wwoorrdd
+              Copy  the  word following point to the kill buffer.
+              The word boundaries are the same as ffoorrwwaarrdd--wwoorrdd.
+       yyaannkk ((CC--yy))
+              Yank the top of the kill ring into  the  buffer  at
+              the cursor.
+       yyaannkk--ppoopp ((MM--yy))
+              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-
+              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
+              define the argument.  If the command is followed by
+              digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the
+              numeric  argument,  but is otherwise ignored.  As a
+              special case, if this command is  immediately  fol-
+              lowed  by  a  character  that is neither a digit or
+              minus sign, the argument count for the next command
+              is  multiplied by four.  The argument count is ini-
+              tially one, so executing this  function  the  first
+              time  makes  the argument count four, a second time
+              makes the argument count sixteen, and so on.
+
+   CCoommpplleettiinngg
+       ccoommpplleettee ((TTAABB))
+              Attempt to perform completion on  the  text  before
+              point.  The actual completion performed is applica-
+              tion-specific.  BBaasshh, for instance,  attempts  com-
+              pletion  treating  the  text  as a variable (if the
+              text begins with $$), username (if the  text  begins
+              with  ~~),  hostname (if the text begins with @@), or
+              command (including aliases and functions) in  turn.
+              If none of these produces a match, filename comple-
+              tion is attempted.  GGddbb, on the other hand,  allows
+              completion  of program functions and variables, and
+              only attempts  filename  completion  under  certain
+              circumstances.
+
+
+
+
+GNU Readline 4.2            2001 Feb 5                         11
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??))
+              List  the  possible  completions of the text before
+              point.
+       iinnsseerrtt--ccoommpplleettiioonnss ((MM--**))
+              Insert all completions of  the  text  before  point
+              that  would have been generated by ppoossssiibbllee--ccoommppllee--
+              ttiioonnss.
+       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.
+       ddeelleettee--cchhaarr--oorr--lliisstt
+              Deletes the character under the cursor  if  not  at
+              the  beginning  or  end  of  the line (like ddeelleettee--
+              cchhaarr).  If at the end of the line, behaves  identi-
+              cally to ppoossssiibbllee--ccoommpplleettiioonnss.
+
+   KKeeyybbooaarrdd MMaaccrrooss
+       ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
+              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.
+
+   MMiisscceellllaanneeoouuss
+       rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
+              Read  in  the  contents  of  the  _i_n_p_u_t_r_c file, and
+              incorporate any bindings  or  variable  assignments
+              found there.
+       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-
+              case character.
+       pprreeffiixx--mmeettaa ((EESSCC))
+              Metafy  the next character typed.  EESSCC ff is equiva-
+              lent to MMeettaa--ff.
+
+
+
+
+GNU Readline 4.2            2001 Feb 5                         12
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       uunnddoo ((CC--__,, CC--xx CC--uu))
+              Incremental undo, separately  remembered  for  each
+              line.
+       rreevveerrtt--lliinnee ((MM--rr))
+              Undo  all  changes made to this line.  This is like
+              executing the uunnddoo command enough times  to  return
+              the line to its initial state.
+       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
+              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
+              cursor position is saved as the mark.
+       cchhaarraacctteerr--sseeaarrcchh ((CC--]]))
+              A  character is read and point is moved to the next
+              occurrence of that  character.   A  negative  count
+              searches for previous occurrences.
+       cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
+              A  character is read and point is moved to the pre-
+              vious occurrence of  that  character.   A  negative
+              count searches for subsequent occurrences.
+       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.  The default value  of  ccoommmmeenntt--bbeeggiinn  makes
+              the current line a shell comment.
+       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
+              file.
+       dduummpp--mmaaccrrooss
+              Print all of the readline key  sequences  bound  to
+              macros  and  the  strings they ouput.  If a numeric
+              argument is supplied, the output  is  formatted  in
+              such  a  way that it can be made part of an _i_n_p_u_t_r_c
+              file.
+       eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee))
+              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.
+
+
+
+GNU Readline 4.2            2001 Feb 5                         13
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
+       The following is a list of the default emacs and vi  bind-
+       ings.   Characters  with the eighth bit set are written as
+       M-<character>, and are referred to as _m_e_t_a_f_i_e_d characters.
+       The  printable  ASCII characters not mentioned in the list
+       of emacs standard bindings are bound  to  the  sseellff--iinnsseerrtt
+       function,  which just inserts the given character into the
+       input line.  In vi  insertion  mode,  all  characters  not
+       specifically  mentioned are bound to sseellff--iinnsseerrtt.  Charac-
+       ters assigned to signal generation by _s_t_t_y(1) or the  ter-
+       minal  driver,  such  as C-Z or C-C, retain that function.
+       Upper and lower case metafied characters are bound to  the
+       same  function in the emacs mode meta keymap.  The remain-
+       ing characters are unbound, which causes readline to  ring
+       the  bell  (subject to the setting of the bbeellll--ssttyyllee vari-
+       able).
+
+   EEmmaaccss MMooddee
+             Emacs Standard bindings
+
+             "C-@"  set-mark
+             "C-A"  beginning-of-line
+             "C-B"  backward-char
+             "C-D"  delete-char
+             "C-E"  end-of-line
+             "C-F"  forward-char
+             "C-G"  abort
+             "C-H"  backward-delete-char
+             "C-I"  complete
+             "C-J"  accept-line
+             "C-K"  kill-line
+             "C-L"  clear-screen
+             "C-M"  accept-line
+             "C-N"  next-history
+             "C-P"  previous-history
+             "C-Q"  quoted-insert
+             "C-R"  reverse-search-history
+             "C-S"  forward-search-history
+             "C-T"  transpose-chars
+             "C-U"  unix-line-discard
+             "C-V"  quoted-insert
+             "C-W"  unix-word-rubout
+             "C-Y"  yank
+             "C-]"  character-search
+             "C-_"  undo
+             " " to "/"  self-insert
+             "0"  to "9"  self-insert
+             ":"  to "~"  self-insert
+             "C-?"  backward-delete-char
+
+             Emacs Meta bindings
+
+             "M-C-G"  abort
+             "M-C-H"  backward-kill-word
+
+
+
+GNU Readline 4.2            2001 Feb 5                         14
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+             "M-C-I"  tab-insert
+             "M-C-J"  vi-editing-mode
+             "M-C-M"  vi-editing-mode
+             "M-C-R"  revert-line
+             "M-C-Y"  yank-nth-arg
+             "M-C-["  complete
+             "M-C-]"  character-search-backward
+             "M-space"  set-mark
+             "M-#"  insert-comment
+             "M-&"  tilde-expand
+             "M-*"  insert-completions
+             "M--"  digit-argument
+             "M-."  yank-last-arg
+             "M-0"  digit-argument
+             "M-1"  digit-argument
+             "M-2"  digit-argument
+             "M-3"  digit-argument
+             "M-4"  digit-argument
+             "M-5"  digit-argument
+             "M-6"  digit-argument
+             "M-7"  digit-argument
+             "M-8"  digit-argument
+             "M-9"  digit-argument
+             "M-<"  beginning-of-history
+             "M-="  possible-completions
+             "M->"  end-of-history
+             "M-?"  possible-completions
+             "M-B"  backward-word
+             "M-C"  capitalize-word
+             "M-D"  kill-word
+             "M-F"  forward-word
+             "M-L"  downcase-word
+             "M-N"  non-incremental-forward-search-history
+             "M-P"  non-incremental-reverse-search-history
+             "M-R"  revert-line
+             "M-T"  transpose-words
+             "M-U"  upcase-word
+             "M-Y"  yank-pop
+             "M-\"  delete-horizontal-space
+             "M-~"  tilde-expand
+             "M-C-?"  backward-delete-word
+             "M-_"  yank-last-arg
+
+             Emacs Control-X bindings
+
+             "C-XC-G"  abort
+             "C-XC-R"  re-read-init-file
+             "C-XC-U"  undo
+             "C-XC-X"  exchange-point-and-mark
+             "C-X("  start-kbd-macro
+             "C-X)"  end-kbd-macro
+             "C-XE"  call-last-kbd-macro
+             "C-XC-?"  backward-kill-line
+
+
+
+
+GNU Readline 4.2            2001 Feb 5                         15
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+   VVII MMooddee bbiinnddiinnggss
+             VI Insert Mode functions
+
+             "C-D"  vi-eof-maybe
+             "C-H"  backward-delete-char
+             "C-I"  complete
+             "C-J"  accept-line
+             "C-M"  accept-line
+             "C-R"  reverse-search-history
+             "C-S"  forward-search-history
+             "C-T"  transpose-chars
+             "C-U"  unix-line-discard
+             "C-V"  quoted-insert
+             "C-W"  unix-word-rubout
+             "C-Y"  yank
+             "C-["  vi-movement-mode
+             "C-_"  undo
+             " " to "~"  self-insert
+             "C-?"  backward-delete-char
+
+             VI Command Mode functions
+
+             "C-D"  vi-eof-maybe
+             "C-E"  emacs-editing-mode
+             "C-G"  abort
+             "C-H"  backward-char
+             "C-J"  accept-line
+             "C-K"  kill-line
+             "C-L"  clear-screen
+             "C-M"  accept-line
+             "C-N"  next-history
+             "C-P"  previous-history
+             "C-Q"  quoted-insert
+             "C-R"  reverse-search-history
+             "C-S"  forward-search-history
+             "C-T"  transpose-chars
+             "C-U"  unix-line-discard
+             "C-V"  quoted-insert
+             "C-W"  unix-word-rubout
+             "C-Y"  yank
+             " "  forward-char
+             "#"  insert-comment
+             "$"  end-of-line
+             "%"  vi-match
+             "&"  vi-tilde-expand
+             "*"  vi-complete
+             "+"  next-history
+             ","  vi-char-search
+             "-"  previous-history
+             "."  vi-redo
+             "/"  vi-search
+             "0"  beginning-of-line
+             "1" to "9"  vi-arg-digit
+             ";"  vi-char-search
+
+
+
+GNU Readline 4.2            2001 Feb 5                         16
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+             "="  vi-complete
+             "?"  vi-search
+             "A"  vi-append-eol
+             "B"  vi-prev-word
+             "C"  vi-change-to
+             "D"  vi-delete-to
+             "E"  vi-end-word
+             "F"  vi-char-search
+             "G"  vi-fetch-history
+             "I"  vi-insert-beg
+             "N"  vi-search-again
+             "P"  vi-put
+             "R"  vi-replace
+             "S"  vi-subst
+             "T"  vi-char-search
+             "U"  revert-line
+             "W"  vi-next-word
+             "X"  backward-delete-char
+             "Y"  vi-yank-to
+             "\"  vi-complete
+             "^"  vi-first-print
+             "_"  vi-yank-arg
+             "`"  vi-goto-mark
+             "a"  vi-append-mode
+             "b"  vi-prev-word
+             "c"  vi-change-to
+             "d"  vi-delete-to
+             "e"  vi-end-word
+             "f"  vi-char-search
+             "h"  backward-char
+             "i"  vi-insertion-mode
+             "j"  next-history
+             "k"  prev-history
+             "l"  forward-char
+             "m"  vi-set-mark
+             "n"  vi-search-again
+             "p"  vi-put
+             "r"  vi-change-char
+             "s"  vi-subst
+             "t"  vi-char-search
+             "u"  undo
+             "w"  vi-next-word
+             "x"  vi-delete
+             "y"  vi-yank-to
+             "|"  vi-column
+             "~"  vi-change-case
+
+SSEEEE AALLSSOO
+       _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
+       _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
+       _b_a_s_h(1)
+
+FFIILLEESS
+
+
+
+
+GNU Readline 4.2            2001 Feb 5                         17
+
+
+
+
+
+READLINE(3)                                           READLINE(3)
+
+
+       _~_/_._i_n_p_u_t_r_c
+              Individual rreeaaddlliinnee initialization file
+
+AAUUTTHHOORRSS
+       Brian Fox, Free Software Foundation
+       bfox@gnu.org
+
+       Chet Ramey, Case Western Reserve University
+       chet@ins.CWRU.Edu
+
+BBUUGG RREEPPOORRTTSS
+       If you find a bug in rreeaaddlliinnee,, you should report it.   But
+       first,  you  should make sure that it really is a bug, and
+       that it appears in the  latest  version  of  the  rreeaaddlliinnee
+       library that you have.
+
+       Once  you have determined that a bug actually exists, mail
+       a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g.  If you have a  fix,
+       you  are  welcome  to  mail that as well!  Suggestions and
+       `philosophical' bug reports may  be  mailed  to  _b_u_g_-_r_e_a_d_-
+       _l_i_n_e@_g_n_u_._o_r_g   or   posted   to   the   Usenet   newsgroup
+       ggnnuu..bbaasshh..bbuugg.
+
+       Comments and  bug  reports  concerning  this  manual  page
+       should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
+
+BBUUGGSS
+       It's too big and too slow.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GNU Readline 4.2            2001 Feb 5                         18
+
+
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b1c81d4461836b2cc004d16acd46043199e15644
GIT binary patch
literal 216764
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
new file mode 100644
--- /dev/null
+++ b/readline/doc/readline.html
@@ -0,0 +1,4745 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.52
+     from /usr/homes/chet/src/bash/readline-src/doc/rlman.texinfo on 5 Febuary 2001 -->
+
+<TITLE>GNU Readline Library</TITLE>
+</HEAD>
+<BODY>
+<H1>GNU Readline Library</H1>
+<H2>Edition 4.2-beta, for <CODE>Readline Library</CODE> Version 4.2-beta.</H2>
+<H2>Feb 2001</H2>
+<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
+<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
+<P>
+<P><HR><P>
+<H1>Table of Contents</H1>
+<UL>
+<LI><A NAME="TOC1" HREF="readline.html#SEC1">Command Line Editing</A>
+<UL>
+<LI><A NAME="TOC2" HREF="readline.html#SEC2">Introduction to Line Editing</A>
+<LI><A NAME="TOC3" HREF="readline.html#SEC3">Readline Interaction</A>
+<UL>
+<LI><A NAME="TOC4" HREF="readline.html#SEC4">Readline Bare Essentials</A>
+<LI><A NAME="TOC5" HREF="readline.html#SEC5">Readline Movement Commands</A>
+<LI><A NAME="TOC6" HREF="readline.html#SEC6">Readline Killing Commands</A>
+<LI><A NAME="TOC7" HREF="readline.html#SEC7">Readline Arguments</A>
+<LI><A NAME="TOC8" HREF="readline.html#SEC8">Searching for Commands in the History</A>
+</UL>
+<LI><A NAME="TOC9" HREF="readline.html#SEC9">Readline Init File</A>
+<UL>
+<LI><A NAME="TOC10" HREF="readline.html#SEC10">Readline Init File Syntax</A>
+<LI><A NAME="TOC11" HREF="readline.html#SEC11">Conditional Init Constructs</A>
+<LI><A NAME="TOC12" HREF="readline.html#SEC12">Sample Init File</A>
+</UL>
+<LI><A NAME="TOC13" HREF="readline.html#SEC13">Bindable Readline Commands</A>
+<UL>
+<LI><A NAME="TOC14" HREF="readline.html#SEC14">Commands For Moving</A>
+<LI><A NAME="TOC15" HREF="readline.html#SEC15">Commands For Manipulating The History</A>
+<LI><A NAME="TOC16" HREF="readline.html#SEC16">Commands For Changing Text</A>
+<LI><A NAME="TOC17" HREF="readline.html#SEC17">Killing And Yanking</A>
+<LI><A NAME="TOC18" HREF="readline.html#SEC18">Specifying Numeric Arguments</A>
+<LI><A NAME="TOC19" HREF="readline.html#SEC19">Letting Readline Type For You</A>
+<LI><A NAME="TOC20" HREF="readline.html#SEC20">Keyboard Macros</A>
+<LI><A NAME="TOC21" HREF="readline.html#SEC21">Some Miscellaneous Commands</A>
+</UL>
+<LI><A NAME="TOC22" HREF="readline.html#SEC22">Readline vi Mode</A>
+</UL>
+<LI><A NAME="TOC23" HREF="readline.html#SEC23">Programming with GNU Readline</A>
+<UL>
+<LI><A NAME="TOC24" HREF="readline.html#SEC24">Basic Behavior</A>
+<LI><A NAME="TOC25" HREF="readline.html#SEC25">Custom Functions</A>
+<UL>
+<LI><A NAME="TOC26" HREF="readline.html#SEC26">Readline Typedefs</A>
+<LI><A NAME="TOC27" HREF="readline.html#SEC27">Writing a New Function</A>
+</UL>
+<LI><A NAME="TOC28" HREF="readline.html#SEC28">Readline Variables</A>
+<LI><A NAME="TOC29" HREF="readline.html#SEC29">Readline Convenience Functions</A>
+<UL>
+<LI><A NAME="TOC30" HREF="readline.html#SEC30">Naming a Function</A>
+<LI><A NAME="TOC31" HREF="readline.html#SEC31">Selecting a Keymap</A>
+<LI><A NAME="TOC32" HREF="readline.html#SEC32">Binding Keys</A>
+<LI><A NAME="TOC33" HREF="readline.html#SEC33">Associating Function Names and Bindings</A>
+<LI><A NAME="TOC34" HREF="readline.html#SEC34">Allowing Undoing</A>
+<LI><A NAME="TOC35" HREF="readline.html#SEC35">Redisplay</A>
+<LI><A NAME="TOC36" HREF="readline.html#SEC36">Modifying Text</A>
+<LI><A NAME="TOC37" HREF="readline.html#SEC37">Character Input</A>
+<LI><A NAME="TOC38" HREF="readline.html#SEC38">Terminal Management</A>
+<LI><A NAME="TOC39" HREF="readline.html#SEC39">Utility Functions</A>
+<LI><A NAME="TOC40" HREF="readline.html#SEC40">Alternate Interface</A>
+<LI><A NAME="TOC41" HREF="readline.html#SEC41">An Example</A>
+</UL>
+<LI><A NAME="TOC42" HREF="readline.html#SEC42">Readline Signal Handling</A>
+<LI><A NAME="TOC43" HREF="readline.html#SEC43">Custom Completers</A>
+<UL>
+<LI><A NAME="TOC44" HREF="readline.html#SEC44">How Completing Works</A>
+<LI><A NAME="TOC45" HREF="readline.html#SEC45">Completion Functions</A>
+<LI><A NAME="TOC46" HREF="readline.html#SEC46">Completion Variables</A>
+<LI><A NAME="TOC47" HREF="readline.html#SEC47">A Short Completion Example</A>
+</UL>
+</UL>
+<LI><A NAME="TOC48" HREF="readline.html#SEC48">Concept Index</A>
+<LI><A NAME="TOC49" HREF="readline.html#SEC49">Function and Variable Index</A>
+</UL>
+<P><HR><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.
+
+</P>
+<P>
+Published by the Free Software Foundation <BR>
+59 Temple Place, Suite 330, <BR>
+Boston, MA 02111 USA
+
+</P>
+<P>
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+</P>
+<P>
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+</P>
+<P>
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+</P>
+<P>
+Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+</P>
+
+
+
+<H1><A NAME="SEC1" HREF="readline.html#TOC1">Command Line Editing</A></H1>
+
+<P>
+This chapter describes the basic features of the GNU
+command line editing interface.
+
+</P>
+
+<UL>
+<LI><A HREF="readline.html#SEC2">Introduction and Notation</A>: Notation used in this text.
+<LI><A HREF="readline.html#SEC3">Readline Interaction</A>: The minimum set of commands for editing a line.
+<LI><A HREF="readline.html#SEC9">Readline Init File</A>: Customizing Readline from a user's view.
+<LI><A HREF="readline.html#SEC13">Bindable Readline Commands</A>: A description of most of the Readline commands
+				available for binding
+<LI><A HREF="readline.html#SEC22">Readline vi Mode</A>: A short description of how to make Readline
+				behave like the vi editor.
+</UL>
+
+
+
+<H2><A NAME="SEC2" HREF="readline.html#TOC2">Introduction to Line Editing</A></H2>
+
+<P>
+The following paragraphs describe the notation used to represent
+keystrokes.
+
+</P>
+<P>
+The text <KBD>C-k</KBD> is read as `Control-K' and describes the character
+produced when the <KBD>k</KBD> key is pressed while the Control key
+is depressed.
+
+</P>
+<P>
+The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character
+produced when the Meta key (if you have one) is depressed, and the <KBD>k</KBD>
+key is pressed.
+The Meta key is labeled <KBD>ALT</KBD> on many keyboards.
+On keyboards with two keys labeled <KBD>ALT</KBD> (usually to either side of
+the space bar), the <KBD>ALT</KBD> on the left side is generally set to
+work as a Meta key.
+The <KBD>ALT</KBD> key on the right may also be configured to work as a
+Meta key or may be configured as some other modifier, such as a
+Compose key for typing accented characters.
+
+</P>
+<P>
+If you do not have a Meta or <KBD>ALT</KBD> key, or another key working as
+a Meta key, the identical keystroke can be generated by typing <KBD>ESC</KBD>
+<EM>first</EM>, and then typing <KBD>k</KBD>.
+Either process is known as <EM>metafying</EM> the <KBD>k</KBD> key.
+
+</P>
+<P>
+The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the
+character produced by <EM>metafying</EM> <KBD>C-k</KBD>.
+
+</P>
+<P>
+In addition, several keys have their own names.  Specifically,
+<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all
+stand for themselves when seen in this text, or in an init file
+(see section <A HREF="readline.html#SEC9">Readline Init File</A>).
+If your keyboard lacks a <KBD>LFD</KBD> key, typing <KBD>C-j</KBD> will
+produce the desired character.
+The <KBD>RET</KBD> key may be labeled <KBD>Return</KBD> or <KBD>Enter</KBD> on
+some keyboards.
+
+</P>
+
+
+<H2><A NAME="SEC3" HREF="readline.html#TOC3">Readline Interaction</A></H2>
+<P>
+<A NAME="IDX1"></A>
+
+</P>
+<P>
+Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled.  The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line.  Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections.  Then, when you are satisfied with
+the line, you simply press <KBD>RET</KBD>.  You do not have to be at the
+end of the line to press <KBD>RET</KBD>; the entire line is accepted
+regardless of the location of the cursor within the line.
+
+</P>
+
+<UL>
+<LI><A HREF="readline.html#SEC4">Readline Bare Essentials</A>: The least you need to know about Readline.
+<LI><A HREF="readline.html#SEC5">Readline Movement Commands</A>: Moving about the input line.
+<LI><A HREF="readline.html#SEC6">Readline Killing Commands</A>: How to delete text, and how to get it back!
+<LI><A HREF="readline.html#SEC7">Readline Arguments</A>: Giving numeric arguments to commands.
+<LI><A HREF="readline.html#SEC8">Searching</A>: Searching through previous lines.
+</UL>
+
+
+
+<H3><A NAME="SEC4" HREF="readline.html#TOC4">Readline Bare Essentials</A></H3>
+<P>
+<A NAME="IDX2"></A>
+<A NAME="IDX3"></A>
+<A NAME="IDX4"></A>
+
+</P>
+<P>
+In order to enter characters into the line, simply type them.  The typed
+character appears where the cursor was, and then the cursor moves one
+space to the right.  If you mistype a character, you can use your
+erase character to back up and delete the mistyped character.
+
+</P>
+<P>
+Sometimes you may mistype a character, and
+not notice the error until you have typed several other characters.  In
+that case, you can type <KBD>C-b</KBD> to move the cursor to the left, and then
+correct your mistake.  Afterwards, you can move the cursor to the right
+with <KBD>C-f</KBD>.
+
+</P>
+<P>
+When you add text in the middle of a line, you will notice that characters
+to the right of the cursor are `pushed over' to make room for the text
+that you have inserted.  Likewise, when you delete text behind the cursor,
+characters to the right of the cursor are `pulled back' to fill in the
+blank space created by the removal of the text.  A list of the bare
+essentials for editing the text of an input line follows.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-b</KBD>
+<DD>
+Move back one character.
+<DT><KBD>C-f</KBD>
+<DD>
+Move forward one character.
+<DT><KBD>DEL</KBD> or <KBD>Backspace</KBD>
+<DD>
+Delete the character to the left of the cursor.
+<DT><KBD>C-d</KBD>
+<DD>
+Delete the character underneath the cursor.
+<DT>Printing characters
+<DD>
+Insert the character into the line at the cursor.
+<DT><KBD>C-_</KBD> or <KBD>C-x C-u</KBD>
+<DD>
+Undo the last editing command.  You can undo all the way back to an
+empty line.
+</DL>
+
+<P>
+(Depending on your configuration, the <KBD>Backspace</KBD> key be set to
+delete the character to the left of the cursor and the <KBD>DEL</KBD> key set
+to delete the character underneath the cursor, like <KBD>C-d</KBD>, rather
+than the character to the left of the cursor.)
+
+</P>
+
+
+<H3><A NAME="SEC5" HREF="readline.html#TOC5">Readline Movement Commands</A></H3>
+
+<P>
+The above table describes the most basic keystrokes that you need
+in order to do editing of the input line.  For your convenience, many
+other commands have been added in addition to <KBD>C-b</KBD>, <KBD>C-f</KBD>,
+<KBD>C-d</KBD>, and <KBD>DEL</KBD>.  Here are some commands for moving more rapidly
+about the line.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-a</KBD>
+<DD>
+Move to the start of the line.
+<DT><KBD>C-e</KBD>
+<DD>
+Move to the end of the line.
+<DT><KBD>M-f</KBD>
+<DD>
+Move forward a word, where a word is composed of letters and digits.
+<DT><KBD>M-b</KBD>
+<DD>
+Move backward a word.
+<DT><KBD>C-l</KBD>
+<DD>
+Clear the screen, reprinting the current line at the top.
+</DL>
+
+<P>
+Notice how <KBD>C-f</KBD> moves forward a character, while <KBD>M-f</KBD> moves
+forward a word.  It is a loose convention that control keystrokes
+operate on characters while meta keystrokes operate on words.
+
+</P>
+
+
+<H3><A NAME="SEC6" HREF="readline.html#TOC6">Readline Killing Commands</A></H3>
+
+<P>
+<A NAME="IDX5"></A>
+<A NAME="IDX6"></A>
+
+</P>
+<P>
+<EM>Killing</EM> text means to delete the text from the line, but to save
+it away for later use, usually by <EM>yanking</EM> (re-inserting)
+it back into the line.
+(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
+
+</P>
+<P>
+If the description for a command says that it `kills' text, then you can
+be sure that you can get the text back in a different (or the same)
+place later.
+
+</P>
+<P>
+When you use a kill command, the text is saved in a <EM>kill-ring</EM>.
+Any number of consecutive kills save all of the killed text together, so
+that when you yank it back, you get it all.  The kill
+ring is not line specific; the text that you killed on a previously
+typed line is available to be yanked back later, when you are typing
+another line.
+<A NAME="IDX7"></A>
+
+</P>
+<P>
+Here is the list of commands for killing text.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-k</KBD>
+<DD>
+Kill the text from the current cursor position to the end of the line.
+
+<DT><KBD>M-d</KBD>
+<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 by <KBD>M-f</KBD>.
+
+<DT><KBD>M-<KBD>DEL</KBD></KBD>
+<DD>
+Kill from the cursor the start of the previous word, or, if between
+words, to the start of the previous word.
+Word boundaries are the same as those used by <KBD>M-b</KBD>.
+
+<DT><KBD>C-w</KBD>
+<DD>
+Kill from the cursor to the previous whitespace.  This is different than
+<KBD>M-<KBD>DEL</KBD></KBD> because the word boundaries differ.
+
+</DL>
+
+<P>
+Here is how to <EM>yank</EM> the text back into the line.  Yanking
+means to copy the most-recently-killed text from the kill buffer.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-y</KBD>
+<DD>
+Yank the most recently killed text back into the buffer at the cursor.
+
+<DT><KBD>M-y</KBD>
+<DD>
+Rotate the kill-ring, and yank the new top.  You can only do this if
+the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
+</DL>
+
+
+
+<H3><A NAME="SEC7" HREF="readline.html#TOC7">Readline Arguments</A></H3>
+
+<P>
+You can pass numeric arguments to Readline commands.  Sometimes the
+argument acts as a repeat count, other times it is the <I>sign</I> of the
+argument that is significant.  If you pass a negative argument to a
+command which normally acts in a forward direction, that command will
+act in a backward direction.  For example, to kill text back to the
+start of the line, you might type <SAMP>`M-- C-k'</SAMP>.
+
+</P>
+<P>
+The general way to pass numeric arguments to a command is to type meta
+digits before the command.  If the first `digit' typed is a minus
+sign (<SAMP>`-'</SAMP>), then the sign of the argument will be negative.  Once
+you have typed one meta digit to get the argument started, you can type
+the remainder of the digits, and then the command.  For example, to give
+the <KBD>C-d</KBD> command an argument of 10, you could type <SAMP>`M-1 0 C-d'</SAMP>,
+which will delete the next ten characters on the input line.
+
+</P>
+
+
+<H3><A NAME="SEC8" HREF="readline.html#TOC8">Searching for Commands in the History</A></H3>
+
+<P>
+Readline provides commands for searching through the command history
+for lines containing a specified string.
+There are two search modes:  <EM>incremental</EM> and <EM>non-incremental</EM>.
+
+</P>
+<P>
+Incremental searches begin before the user has finished typing the
+search string.
+As each character of the search string is typed, Readline displays
+the next entry from the history matching the string typed so far.
+An incremental search requires only as many characters as needed to
+find the desired history entry.
+To search backward in the history for a particular string, type
+<KBD>C-r</KBD>.  Typing <KBD>C-s</KBD> searches forward through the history.
+The characters present in the value of the <CODE>isearch-terminators</CODE> variable
+are used to terminate an incremental search.
+If that variable has not been assigned a value, the <KBD>ESC</KBD> and
+<KBD>C-J</KBD> characters will terminate an incremental search.
+<KBD>C-g</KBD> 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.
+
+</P>
+<P>
+To find other matching entries in the history list, type <KBD>C-r</KBD> or
+<KBD>C-s</KBD> 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 <KBD>RET</KBD> will terminate the search and accept
+the line, thereby executing the command from the history list.
+A movement command will terminate the search, make the last line found
+the current line, and begin editing.
+
+</P>
+<P>
+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.
+
+</P>
+
+
+<H2><A NAME="SEC9" HREF="readline.html#TOC9">Readline Init File</A></H2>
+<P>
+<A NAME="IDX8"></A>
+
+</P>
+<P>
+Although the Readline library comes with a set of Emacs-like
+keybindings installed by default, it is possible to use a different set
+of keybindings.
+Any user can customize programs that use Readline by putting
+commands in an <EM>inputrc</EM> file, conventionally in his home directory.
+The name of this
+file is taken from the value of the environment variable @env{INPUTRC}.  If
+that variable is unset, the default is <TT>`~/.inputrc'</TT>.
+
+</P>
+<P>
+When a program which uses the Readline library starts up, the
+init file is read, and the key bindings are set.
+
+</P>
+<P>
+In addition, the <CODE>C-x C-r</CODE> command re-reads this init file, thus
+incorporating any changes that you might have made to it.
+
+</P>
+
+<UL>
+<LI><A HREF="readline.html#SEC10">Readline Init File Syntax</A>: Syntax for the commands in the inputrc file.
+
+<LI><A HREF="readline.html#SEC11">Conditional Init Constructs</A>: Conditional key bindings in the inputrc file.
+
+<LI><A HREF="readline.html#SEC12">Sample Init File</A>: An example inputrc file.
+</UL>
+
+
+
+<H3><A NAME="SEC10" HREF="readline.html#TOC10">Readline Init File Syntax</A></H3>
+
+<P>
+There are only a few basic constructs allowed in the
+Readline init file.  Blank lines are ignored.
+Lines beginning with a <SAMP>`#'</SAMP> are comments.
+Lines beginning with a <SAMP>`$'</SAMP> indicate conditional
+constructs (see section <A HREF="readline.html#SEC11">Conditional Init Constructs</A>).  Other lines
+denote variable settings and key bindings.
+
+</P>
+<DL COMPACT>
+
+<DT>Variable Settings
+<DD>
+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>
+
+A great deal of run-time behavior is changeable with the following
+variables.
+
+<DL COMPACT>
+
+<DT><CODE>bell-style</CODE>
+<DD>
+<A NAME="IDX9"></A>
+Controls what happens when Readline wants to ring the terminal bell.
+If set to <SAMP>`none'</SAMP>, Readline never rings the bell.  If set to
+<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
+If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring
+the terminal's bell.
+
+<DT><CODE>comment-begin</CODE>
+<DD>
+<A NAME="IDX10"></A>
+The string to insert at the beginning of the line when the
+<CODE>insert-comment</CODE> command is executed.  The default value
+is <CODE>"#"</CODE>.
+
+<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="IDX11"></A>
+The number of possible completions that determines when the user is
+asked whether he wants to see the list of possibilities.  If the
+number of possible completions is greater than this value,
+Readline will ask the user whether or not he wishes to view
+them; otherwise, they are simply listed.
+This variable must be set to an integer value greater than or equal to 0.
+The default limit is <CODE>100</CODE>.
+
+<DT><CODE>convert-meta</CODE>
+<DD>
+<A NAME="IDX12"></A>
+If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
+eighth bit set to an ASCII key sequence by stripping the eighth
+bit and prefixing an <KBD>ESC</KBD> character, converting them to a
+meta-prefixed key sequence.  The default value is <SAMP>`on'</SAMP>.
+
+<DT><CODE>disable-completion</CODE>
+<DD>
+<A NAME="IDX13"></A>
+If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
+Completion  characters will be inserted into the line as if they had
+been mapped to <CODE>self-insert</CODE>.  The default is <SAMP>`off'</SAMP>.
+
+<DT><CODE>editing-mode</CODE>
+<DD>
+<A NAME="IDX14"></A>
+The <CODE>editing-mode</CODE> variable controls which default set of
+key bindings is used.  By default, Readline starts up in Emacs editing
+mode, where the keystrokes are most similar to Emacs.  This variable can be
+set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
+
+<DT><CODE>enable-keypad</CODE>
+<DD>
+<A NAME="IDX15"></A>
+When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
+keypad when it is called.  Some systems need this to enable the
+arrow keys.  The default is <SAMP>`off'</SAMP>.
+
+<DT><CODE>expand-tilde</CODE>
+<DD>
+<A NAME="IDX16"></A>
+If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
+attempts word completion.  The default is <SAMP>`off'</SAMP>.
+
+<DT><CODE>horizontal-scroll-mode</CODE>
+<DD>
+<A NAME="IDX17"></A>
+This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>.  Setting it
+to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
+horizontally on a single screen line when they are longer than the width
+of the screen, instead of wrapping onto a new screen line.  By default,
+this variable is set to <SAMP>`off'</SAMP>.
+
+<DT><CODE>input-meta</CODE>
+<DD>
+<A NAME="IDX18"></A>
+<A NAME="IDX19"></A>
+If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
+will not clear the eighth bit in the characters it reads),
+regardless of what the terminal claims it can support.  The
+default value is <SAMP>`off'</SAMP>.  The name <CODE>meta-flag</CODE> is a
+synonym for this variable.
+
+<DT><CODE>isearch-terminators</CODE>
+<DD>
+<A NAME="IDX20"></A>
+The string of characters that should terminate an incremental search without
+subsequently executing the character as a command (see section <A HREF="readline.html#SEC8">Searching for Commands in the History</A>).
+If this variable has not been given a value, the characters <KBD>ESC</KBD> and
+<KBD>C-J</KBD> will terminate an incremental search.
+
+<DT><CODE>keymap</CODE>
+<DD>
+<A NAME="IDX21"></A>
+Sets Readline's idea of the current keymap for key binding commands.
+Acceptable <CODE>keymap</CODE> names are
+<CODE>emacs</CODE>,
+<CODE>emacs-standard</CODE>,
+<CODE>emacs-meta</CODE>,
+<CODE>emacs-ctlx</CODE>,
+<CODE>vi</CODE>,
+<CODE>vi-move</CODE>,
+<CODE>vi-command</CODE>, and
+<CODE>vi-insert</CODE>.
+<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
+equivalent to <CODE>emacs-standard</CODE>.  The default value is <CODE>emacs</CODE>.
+The value of the <CODE>editing-mode</CODE> variable also affects the
+default keymap.
+
+<DT><CODE>mark-directories</CODE>
+<DD>
+If set to <SAMP>`on'</SAMP>, completed directory names have a slash
+appended.  The default is <SAMP>`on'</SAMP>.
+
+<DT><CODE>mark-modified-lines</CODE>
+<DD>
+<A NAME="IDX22"></A>
+This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
+asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
+This variable is <SAMP>`off'</SAMP> by default.
+
+<DT><CODE>output-meta</CODE>
+<DD>
+<A NAME="IDX23"></A>
+If set to <SAMP>`on'</SAMP>, Readline will display characters with the
+eighth bit set directly rather than as a meta-prefixed escape
+sequence.  The default is <SAMP>`off'</SAMP>.
+
+<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="IDX24"></A>
+This alters the default behavior of the completion functions.  If
+set to <SAMP>`on'</SAMP>, 
+words which have more than one possible completion cause the
+matches to be listed immediately instead of ringing the bell.
+The default value is <SAMP>`off'</SAMP>.
+
+<DT><CODE>visible-stats</CODE>
+<DD>
+<A NAME="IDX25"></A>
+If set to <SAMP>`on'</SAMP>, a character denoting a file's type
+is appended to the filename when listing possible
+completions.  The default is <SAMP>`off'</SAMP>.
+
+</DL>
+
+<DT>Key Bindings
+<DD>
+The syntax for controlling key bindings in the init file is
+simple.  First you need to find the name of the command that you
+want to change.  The following sections contain tables of the command
+name, the default keybinding, if any, and a short description of what
+the command does.
+
+Once you know the name of the command, simply place on a line
+in the init file the name of the key
+you wish to bind the command to, a colon, and then the name of the
+command.  The name of the key
+can be expressed in different ways, depending on what you find most
+comfortable.
+
+<DL COMPACT>
+
+<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR>
+<DD>
+<VAR>keyname</VAR> is the name of a key spelled out in English.  For example:
+
+<PRE>
+Control-u: universal-argument
+Meta-Rubout: backward-kill-word
+Control-o: "&#62; output"
+</PRE>
+
+In the above example, <KBD>C-u</KBD> is bound to the function
+<CODE>universal-argument</CODE>,
+<KBD>M-DEL</KBD> is bound to the function <CODE>backward-kill-word</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).
+
+A number of symbolic character names are recognized while
+processing this key binding syntax:
+<VAR>DEL</VAR>,
+<VAR>ESC</VAR>,
+<VAR>ESCAPE</VAR>,
+<VAR>LFD</VAR>,
+<VAR>NEWLINE</VAR>,
+<VAR>RET</VAR>,
+<VAR>RETURN</VAR>,
+<VAR>RUBOUT</VAR>,
+<VAR>SPACE</VAR>,
+<VAR>SPC</VAR>,
+and
+<VAR>TAB</VAR>.
+
+<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR>
+<DD>
+<VAR>keyseq</VAR> differs from <VAR>keyname</VAR> above in that strings
+denoting an entire key sequence can be specified, by placing
+the key sequence in double quotes.  Some GNU Emacs style key
+escapes can be used, as in the following example, but the
+special character names are not recognized.
+
+
+<PRE>
+"\C-u": universal-argument
+"\C-x\C-r": re-read-init-file
+"\e[11~": "Function Key 1"
+</PRE>
+
+In the above example, <KBD>C-u</KBD> is again bound to the function
+<CODE>universal-argument</CODE> (just as it was in the first example),
+<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>
+
+<DT><CODE><KBD>\C-</KBD></CODE>
+<DD>
+control prefix
+<DT><CODE><KBD>\M-</KBD></CODE>
+<DD>
+meta prefix
+<DT><CODE><KBD>\e</KBD></CODE>
+<DD>
+an escape character
+<DT><CODE><KBD>\\</KBD></CODE>
+<DD>
+backslash
+<DT><CODE><KBD>\"</KBD></CODE>
+<DD>
+<KBD>"</KBD>, a double quotation mark
+<DT><CODE><KBD>\'</KBD></CODE>
+<DD>
+<KBD>'</KBD>, a single quote or apostrophe
+</DL>
+
+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>`<KBD>C-x</KBD> \'</SAMP>
+insert a single <SAMP>`\'</SAMP> into the line:
+
+<PRE>
+"\C-x\\": "\\"
+</PRE>
+
+</DL>
+
+
+
+<H3><A NAME="SEC11" HREF="readline.html#TOC11">Conditional Init Constructs</A></H3>
+
+<P>
+Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key
+bindings and variable settings to be performed as the result
+of tests.  There are four parser directives used.
+
+</P>
+<DL COMPACT>
+
+<DT><CODE>$if</CODE>
+<DD>
+The <CODE>$if</CODE> construct allows bindings to be made based on the
+editing mode, the terminal being used, or the application using
+Readline.  The text of the test extends to the end of the line;
+no characters are required to isolate it.
+
+<DL COMPACT>
+
+<DT><CODE>mode</CODE>
+<DD>
+The <CODE>mode=</CODE> form of the <CODE>$if</CODE> directive is used to test
+whether Readline is in <CODE>emacs</CODE> or <CODE>vi</CODE> mode.
+This may be used in conjunction
+with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in
+the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if
+Readline is starting out in <CODE>emacs</CODE> mode.
+
+<DT><CODE>term</CODE>
+<DD>
+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 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.
+
+<DT><CODE>application</CODE>
+<DD>
+The <VAR>application</VAR> construct is used to include
+application-specific settings.  Each program using the Readline
+library sets the <VAR>application name</VAR>, and you can test for it. 
+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:
+
+<PRE>
+$if Bash
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+$endif
+</PRE>
+
+</DL>
+
+<DT><CODE>$endif</CODE>
+<DD>
+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>
+
+
+
+<H3><A NAME="SEC12" HREF="readline.html#TOC12">Sample Init File</A></H3>
+
+<P>
+Here is an example of an <VAR>inputrc</VAR> file.  This illustrates key
+binding, variable assignment, and conditional syntax.
+
+</P>
+
+<PRE>
+# This file controls the behaviour of line input editing for
+# programs that use the Gnu Readline library.  Existing programs
+# include FTP, Bash, and Gdb.
+#
+# You can re-read the inputrc file with C-x C-r.
+# Lines beginning with '#' are comments.
+#
+# First, include any systemwide bindings and variable assignments from
+# /etc/Inputrc
+$include /etc/Inputrc
+
+#
+# Set various bindings for emacs mode.
+
+set editing-mode emacs 
+
+$if mode=emacs
+
+Meta-Control-h:	backward-kill-word	Text after the function name is ignored
+
+#
+# Arrow keys in keypad mode
+#
+#"\M-OD":        backward-char
+#"\M-OC":        forward-char
+#"\M-OA":        previous-history
+#"\M-OB":        next-history
+#
+# Arrow keys in ANSI mode
+#
+"\M-[D":        backward-char
+"\M-[C":        forward-char
+"\M-[A":        previous-history
+"\M-[B":        next-history
+#
+# Arrow keys in 8 bit keypad mode
+#
+#"\M-\C-OD":       backward-char
+#"\M-\C-OC":       forward-char
+#"\M-\C-OA":       previous-history
+#"\M-\C-OB":       next-history
+#
+# Arrow keys in 8 bit ANSI mode
+#
+#"\M-\C-[D":       backward-char
+#"\M-\C-[C":       forward-char
+#"\M-\C-[A":       previous-history
+#"\M-\C-[B":       next-history
+
+C-q: quoted-insert
+
+$endif
+
+# An old-style binding.  This happens to be the default.
+TAB: complete
+
+# Macros that are convenient for shell interaction
+$if Bash
+# edit the path
+"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
+# prepare to type a quoted word -- insert open and close double quotes
+# and move to just after the open quote
+"\C-x\"": "\"\"\C-b"
+# insert a backslash (testing backslash escapes in sequences and macros)
+"\C-x\\": "\\"
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+# Add a binding to refresh the line, which is unbound
+"\C-xr": redraw-current-line
+# Edit variable on current line.
+"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
+$endif
+
+# use a visible bell if one is available
+set bell-style visible
+
+# don't strip characters to 7 bits when reading
+set input-meta on
+
+# allow iso-latin1 characters to be inserted rather than converted to
+# prefix-meta sequences
+set convert-meta off
+
+# display characters with the eighth bit set directly rather than
+# as meta-prefixed characters
+set output-meta on
+
+# if there are more than 150 possible completions for a word, ask the
+# user if he wants to see all of them
+set completion-query-items 150
+
+# For FTP
+$if Ftp
+"\C-xg": "get \M-?"
+"\C-xt": "put \M-?"
+"\M-.": yank-last-arg
+$endif
+</PRE>
+
+
+
+<H2><A NAME="SEC13" HREF="readline.html#TOC13">Bindable Readline Commands</A></H2>
+
+
+<UL>
+<LI><A HREF="readline.html#SEC14">Commands For Moving</A>: Moving about the line.
+<LI><A HREF="readline.html#SEC15">Commands For History</A>: Getting at previous lines.
+<LI><A HREF="readline.html#SEC16">Commands For Text</A>: Commands for changing text.
+<LI><A HREF="readline.html#SEC17">Commands For Killing</A>: Commands for killing and yanking.
+<LI><A HREF="readline.html#SEC18">Numeric Arguments</A>: Specifying numeric arguments, repeat counts.
+<LI><A HREF="readline.html#SEC19">Commands For Completion</A>: Getting Readline to do the typing for you.
+<LI><A HREF="readline.html#SEC20">Keyboard Macros</A>: Saving and re-executing typed characters
+<LI><A HREF="readline.html#SEC21">Miscellaneous Commands</A>: Other miscellaneous commands.
+</UL>
+
+<P>
+This section describes Readline commands that may be bound to key
+sequences.
+
+</P>
+<P>
+Command names without an accompanying key sequence are unbound by default.
+In the following descriptions, <EM>point</EM> refers to the current cursor
+position, and <EM>mark</EM> refers to a cursor position saved by the
+<CODE>set-mark</CODE> command.
+The text between the point and mark is referred to as the <EM>region</EM>.
+
+</P>
+
+
+<H3><A NAME="SEC14" HREF="readline.html#TOC14">Commands For Moving</A></H3>
+<DL COMPACT>
+
+<DT><CODE>beginning-of-line (C-a)</CODE>
+<DD>
+<A NAME="IDX26"></A>
+Move to the start of the current line.
+
+<DT><CODE>end-of-line (C-e)</CODE>
+<DD>
+<A NAME="IDX27"></A>
+Move to the end of the line.
+
+<DT><CODE>forward-char (C-f)</CODE>
+<DD>
+<A NAME="IDX28"></A>
+Move forward a character.
+
+<DT><CODE>backward-char (C-b)</CODE>
+<DD>
+<A NAME="IDX29"></A>
+Move back a character.
+
+<DT><CODE>forward-word (M-f)</CODE>
+<DD>
+<A NAME="IDX30"></A>
+Move forward to the end of the next word.  Words are composed of
+letters and digits.
+
+<DT><CODE>backward-word (M-b)</CODE>
+<DD>
+<A NAME="IDX31"></A>
+Move back to the start of the current or previous word.  Words are
+composed of letters and digits.
+
+<DT><CODE>clear-screen (C-l)</CODE>
+<DD>
+<A NAME="IDX32"></A>
+Clear the screen and redraw the current line,
+leaving the current line at the top of the screen.
+
+<DT><CODE>redraw-current-line ()</CODE>
+<DD>
+<A NAME="IDX33"></A>
+Refresh the current line.  By default, this is unbound.
+
+</DL>
+
+
+
+<H3><A NAME="SEC15" HREF="readline.html#TOC15">Commands For Manipulating The History</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>accept-line (Newline or Return)</CODE>
+<DD>
+<A NAME="IDX34"></A>
+Accept the line regardless of where the cursor is.
+If this line is
+non-empty, it may be added to the history list for future recall with
+<CODE>add_history()</CODE>.
+If this line is a modified history line, then restore the history line
+to its original state.
+
+<DT><CODE>previous-history (C-p)</CODE>
+<DD>
+<A NAME="IDX35"></A>
+Move `up' through the history list.
+
+<DT><CODE>next-history (C-n)</CODE>
+<DD>
+<A NAME="IDX36"></A>
+Move `down' through the history list.
+
+<DT><CODE>beginning-of-history (M-&#60;)</CODE>
+<DD>
+<A NAME="IDX37"></A>
+Move to the first line in the history.
+
+<DT><CODE>end-of-history (M-&#62;)</CODE>
+<DD>
+<A NAME="IDX38"></A>
+Move to the end of the input history, i.e., the line currently
+being entered.
+
+<DT><CODE>reverse-search-history (C-r)</CODE>
+<DD>
+<A NAME="IDX39"></A>
+Search backward starting at the current line and moving `up' through
+the history as necessary.  This is an incremental search.
+
+<DT><CODE>forward-search-history (C-s)</CODE>
+<DD>
+<A NAME="IDX40"></A>
+Search forward starting at the current line and moving `down' through
+the the history as necessary.  This is an incremental search.
+
+<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
+<DD>
+<A NAME="IDX41"></A>
+Search backward starting at the current line and moving `up'
+through the history as necessary using a non-incremental search
+for a string supplied by the user.
+
+<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
+<DD>
+<A NAME="IDX42"></A>
+Search forward starting at the current line and moving `down'
+through the the history as necessary using a non-incremental search
+for a string supplied by the user.
+
+<DT><CODE>history-search-forward ()</CODE>
+<DD>
+<A NAME="IDX43"></A>
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+This is a non-incremental search.
+By default, this command is unbound.
+
+<DT><CODE>history-search-backward ()</CODE>
+<DD>
+<A NAME="IDX44"></A>
+Search backward through the history for the string of characters
+between the start of the current line and the point.  This
+is a non-incremental search.  By default, this command is unbound.
+
+<DT><CODE>yank-nth-arg (M-C-y)</CODE>
+<DD>
+<A NAME="IDX45"></A>
+Insert the first argument to the previous command (usually
+the second word on the previous line).  With an argument <VAR>n</VAR>,
+insert the <VAR>n</VAR>th word from the previous command (the words
+in the previous command begin with word 0).  A negative argument
+inserts the <VAR>n</VAR>th word from the end of the previous command.
+
+<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
+<DD>
+<A NAME="IDX46"></A>
+Insert last argument to the previous command (the last word of the
+previous history entry).  With an
+argument, behave exactly like <CODE>yank-nth-arg</CODE>.
+Successive calls to <CODE>yank-last-arg</CODE> move back through the history
+list, inserting the last argument of each line in turn.
+
+</DL>
+
+
+
+<H3><A NAME="SEC16" HREF="readline.html#TOC16">Commands For Changing Text</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>delete-char (C-d)</CODE>
+<DD>
+<A NAME="IDX47"></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 bound to <CODE>delete-char</CODE>, then
+return EOF.
+
+<DT><CODE>backward-delete-char (Rubout)</CODE>
+<DD>
+<A NAME="IDX48"></A>
+Delete the character behind the cursor.  A numeric argument means
+to kill the characters instead of deleting them.
+
+<DT><CODE>forward-backward-delete-char ()</CODE>
+<DD>
+<A NAME="IDX49"></A>
+Delete the character under the cursor, unless the cursor is at the
+end of the line, in which case the character behind the cursor is
+deleted.  By default, this is not bound to a key.
+
+<DT><CODE>quoted-insert (C-q or C-v)</CODE>
+<DD>
+<A NAME="IDX50"></A>
+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-<KBD>TAB</KBD>)</CODE>
+<DD>
+<A NAME="IDX51"></A>
+Insert a tab character.
+
+<DT><CODE>self-insert (a, b, A, 1, !, ...)</CODE>
+<DD>
+<A NAME="IDX52"></A>
+Insert yourself.
+
+<DT><CODE>transpose-chars (C-t)</CODE>
+<DD>
+<A NAME="IDX53"></A>
+Drag the character before the cursor forward over
+the character at the cursor, moving the
+cursor forward as well.  If the insertion point
+is at the end of the line, then this
+transposes the last two characters of the line.
+Negative arguments have no effect.
+
+<DT><CODE>transpose-words (M-t)</CODE>
+<DD>
+<A NAME="IDX54"></A>
+Drag the word before point past the word after point,
+moving point past that word as well.
+
+<DT><CODE>upcase-word (M-u)</CODE>
+<DD>
+<A NAME="IDX55"></A>
+Uppercase the current (or following) word.  With a negative argument,
+uppercase the previous word, but do not move the cursor.
+
+<DT><CODE>downcase-word (M-l)</CODE>
+<DD>
+<A NAME="IDX56"></A>
+Lowercase the current (or following) word.  With a negative argument,
+lowercase the previous word, but do not move the cursor.
+
+<DT><CODE>capitalize-word (M-c)</CODE>
+<DD>
+<A NAME="IDX57"></A>
+Capitalize the current (or following) word.  With a negative argument,
+capitalize the previous word, but do not move the cursor.
+
+</DL>
+
+
+
+<H3><A NAME="SEC17" HREF="readline.html#TOC17">Killing And Yanking</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>kill-line (C-k)</CODE>
+<DD>
+<A NAME="IDX58"></A>
+Kill the text from point to the end of the line.
+
+<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
+<DD>
+<A NAME="IDX59"></A>
+Kill backward to the beginning of the line.
+
+<DT><CODE>unix-line-discard (C-u)</CODE>
+<DD>
+<A NAME="IDX60"></A>
+Kill backward from the cursor to the beginning of the current line.
+
+<DT><CODE>kill-whole-line ()</CODE>
+<DD>
+<A NAME="IDX61"></A>
+Kill all characters on the current line, no matter point is.
+By default, this is unbound.
+
+<DT><CODE>kill-word (M-d)</CODE>
+<DD>
+<A NAME="IDX62"></A>
+Kill from point to the end of the current word, or if between
+words, to the end of the next word.
+Word boundaries are the same as <CODE>forward-word</CODE>.
+
+<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
+<DD>
+<A NAME="IDX63"></A>
+Kill the word behind point.
+Word boundaries are the same as <CODE>backward-word</CODE>.
+
+<DT><CODE>unix-word-rubout (C-w)</CODE>
+<DD>
+<A NAME="IDX64"></A>
+Kill the word behind point, using white space as a word boundary.
+The killed text is saved on the kill-ring.
+
+<DT><CODE>delete-horizontal-space ()</CODE>
+<DD>
+<A NAME="IDX65"></A>
+Delete all spaces and tabs around point.  By default, this is unbound.
+
+<DT><CODE>kill-region ()</CODE>
+<DD>
+<A NAME="IDX66"></A>
+Kill the text in the current region.
+By default, this command is unbound.
+
+<DT><CODE>copy-region-as-kill ()</CODE>
+<DD>
+<A NAME="IDX67"></A>
+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="IDX68"></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="IDX69"></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>
+<DD>
+<A NAME="IDX70"></A>
+Yank the top of the kill ring into the buffer at the current
+cursor position.
+
+<DT><CODE>yank-pop (M-y)</CODE>
+<DD>
+<A NAME="IDX71"></A>
+Rotate the kill-ring, and yank the new top.  You can only do this if
+the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
+</DL>
+
+
+
+<H3><A NAME="SEC18" HREF="readline.html#TOC18">Specifying Numeric Arguments</A></H3>
+<DL COMPACT>
+
+<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, ... <KBD>M--</KBD>)</CODE>
+<DD>
+<A NAME="IDX72"></A>
+Add this digit to the argument already accumulating, or start a new
+argument.  <KBD>M--</KBD> starts a negative argument.
+
+<DT><CODE>universal-argument ()</CODE>
+<DD>
+<A NAME="IDX73"></A>
+This is another way to specify an argument.
+If this command is followed by one or more digits, optionally with a
+leading minus sign, those digits define the argument.
+If the command is followed by digits, executing <CODE>universal-argument</CODE>
+again ends the numeric argument, but is otherwise ignored.
+As a special case, if this command is immediately followed by a
+character that is neither a digit or minus sign, the argument count
+for the next command is multiplied by four.
+The argument count is initially one, so executing this function the
+first time makes the argument count four, a second time makes the
+argument count sixteen, and so on.
+By default, this is not bound to a key.
+</DL>
+
+
+
+<H3><A NAME="SEC19" HREF="readline.html#TOC19">Letting Readline Type For You</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
+<DD>
+<A NAME="IDX74"></A>
+Attempt to perform completion on the text before point.
+The actual completion performed is application-specific.
+The default is filename completion.
+
+<DT><CODE>possible-completions (M-?)</CODE>
+<DD>
+<A NAME="IDX75"></A>
+List the possible completions of the text before the cursor.
+
+<DT><CODE>insert-completions (M-*)</CODE>
+<DD>
+<A NAME="IDX76"></A>
+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="IDX77"></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 <KBD>TAB</KBD>, but is unbound
+by default.
+
+<DT><CODE>delete-char-or-list ()</CODE>
+<DD>
+<A NAME="IDX78"></A>
+Deletes the character under the cursor if not at the beginning or
+end of the line (like <CODE>delete-char</CODE>).
+If at the end of the line, behaves identically to
+<CODE>possible-completions</CODE>.
+This command is unbound by default.
+
+</DL>
+
+
+
+<H3><A NAME="SEC20" HREF="readline.html#TOC20">Keyboard Macros</A></H3>
+<DL COMPACT>
+
+<DT><CODE>start-kbd-macro (C-x ()</CODE>
+<DD>
+<A NAME="IDX79"></A>
+Begin saving the characters typed into the current keyboard macro.
+
+<DT><CODE>end-kbd-macro (C-x ))</CODE>
+<DD>
+<A NAME="IDX80"></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="IDX81"></A>
+Re-execute the last keyboard macro defined, by making the characters
+in the macro appear as if typed at the keyboard.
+
+</DL>
+
+
+
+<H3><A NAME="SEC21" HREF="readline.html#TOC21">Some Miscellaneous Commands</A></H3>
+<DL COMPACT>
+
+<DT><CODE>re-read-init-file (C-x C-r)</CODE>
+<DD>
+<A NAME="IDX82"></A>
+Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
+any bindings or variable assignments found there.
+
+<DT><CODE>abort (C-g)</CODE>
+<DD>
+<A NAME="IDX83"></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="IDX84"></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 (<KBD>ESC</KBD>)</CODE>
+<DD>
+<A NAME="IDX85"></A>
+Make the next character typed be metafied.  This is for keyboards
+without a meta key.  Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
+<KBD>M-f</KBD>.
+
+<DT><CODE>undo (C-_ or C-x C-u)</CODE>
+<DD>
+<A NAME="IDX86"></A>
+Incremental undo, separately remembered for each line.
+
+<DT><CODE>revert-line (M-r)</CODE>
+<DD>
+<A NAME="IDX87"></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="IDX88"></A>
+Perform tilde expansion on the current word.
+
+<DT><CODE>set-mark (C-@)</CODE>
+<DD>
+<A NAME="IDX89"></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="IDX90"></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="IDX91"></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="IDX92"></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="IDX93"></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="IDX94"></A>
+Print all of the functions and their key bindings to the
+Readline output stream.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an <VAR>inputrc</VAR> file.  This command is unbound by default.
+
+<DT><CODE>dump-variables ()</CODE>
+<DD>
+<A NAME="IDX95"></A>
+Print all of the settable variables and their values to the
+Readline output stream.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an <VAR>inputrc</VAR> file.  This command is unbound by default.
+
+<DT><CODE>dump-macros ()</CODE>
+<DD>
+<A NAME="IDX96"></A>
+Print all of the Readline key sequences bound to macros and the
+strings they output.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an <VAR>inputrc</VAR> file.  This command is unbound by default.
+
+</DL>
+
+
+
+<H2><A NAME="SEC22" HREF="readline.html#TOC22">Readline vi Mode</A></H2>
+
+<P>
+While the Readline library does not have a full set of <CODE>vi</CODE>
+editing functions, it does contain enough to allow simple editing
+of the line.  The Readline <CODE>vi</CODE> mode behaves as specified in
+the POSIX 1003.2 standard.
+
+</P>
+<P>
+In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE>
+editing modes, use the command <KBD>M-C-j</KBD> (toggle-editing-mode).
+The Readline default is <CODE>emacs</CODE> mode.
+
+</P>
+<P>
+When you enter a line in <CODE>vi</CODE> mode, you are already placed in
+`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>.  Pressing <KBD>ESC</KBD>
+switches you into `command' mode, where you can edit the text of the
+line with the standard <CODE>vi</CODE> movement keys, move to previous
+history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and
+so forth.
+
+</P>
+
+
+
+<H1><A NAME="SEC23" HREF="readline.html#TOC23">Programming with GNU Readline</A></H1>
+
+<P>
+This chapter describes the interface between the GNU Readline Library and
+other programs.  If you are a programmer, and you wish to include the
+features found in GNU Readline
+such as completion, line editing, and interactive history manipulation
+in your own programs, this section is for you.
+
+</P>
+
+<UL>
+<LI><A HREF="readline.html#SEC24">Basic Behavior</A>: Using the default behavior of Readline.
+<LI><A HREF="readline.html#SEC25">Custom Functions</A>: Adding your own functions to Readline.
+<LI><A HREF="readline.html#SEC28">Readline Variables</A>: Variables accessible to custom
+					functions.
+<LI><A HREF="readline.html#SEC29">Readline Convenience Functions</A>: Functions which Readline supplies to
+					aid in writing your own custom
+					functions.
+<LI><A HREF="readline.html#SEC42">Readline Signal Handling</A>: How Readline behaves when it receives signals.
+<LI><A HREF="readline.html#SEC43">Custom Completers</A>: Supplanting or supplementing Readline's
+			completion functions.
+</UL>
+
+
+
+<H2><A NAME="SEC24" HREF="readline.html#TOC24">Basic Behavior</A></H2>
+
+<P>
+Many programs provide a command line interface, such as <CODE>mail</CODE>,
+<CODE>ftp</CODE>, and <CODE>sh</CODE>.  For such programs, the default behaviour of
+Readline is sufficient.  This section describes how to use Readline in
+the simplest way possible, perhaps to replace calls in your code to
+<CODE>gets()</CODE> or <CODE>fgets()</CODE>.
+
+</P>
+<P>
+<A NAME="IDX97"></A>
+<A NAME="IDX98"></A>
+
+</P>
+
+<PRE>
+<CODE>char *readline (const char *<VAR>prompt</VAR>);</CODE>
+</PRE>
+
+<P>
+The function <CODE>readline()</CODE> prints a prompt <VAR>prompt</VAR>
+and then reads and returns a single line of text from the user.
+If <VAR>prompt</VAR> is <CODE>NULL</CODE> or the empty string, no prompt is displayed.
+The line <CODE>readline</CODE> returns is allocated with <CODE>malloc()</CODE>;
+the caller should <CODE>free()</CODE> the line when it has finished with it.
+The declaration for <CODE>readline</CODE> in ANSI C is
+
+</P>
+<P>
+So, one might say
+
+<PRE>
+<CODE>char *line = readline ("Enter a line: ");</CODE>
+</PRE>
+
+<P>
+in order to read a line of text from the user.
+The line returned has the final newline removed, so only the
+text remains.
+
+</P>
+<P>
+If <CODE>readline</CODE> encounters an <CODE>EOF</CODE> while reading the line, and the
+line is empty at that point, then <CODE>(char *)NULL</CODE> is returned.
+Otherwise, the line is ended just as if a newline had been typed.
+
+</P>
+<P>
+If you want the user to be able to get at the line later, (with
+<KBD>C-p</KBD> for example), you must call <CODE>add_history()</CODE> to save the
+line away in a <EM>history</EM> list of such lines.
+
+</P>
+
+<PRE>
+<CODE>add_history (line)</CODE>;
+</PRE>
+
+<P>
+For full details on the GNU History Library, see the associated manual.
+
+</P>
+<P>
+It is preferable to avoid saving empty lines on the history list, since
+users rarely have a burning need to reuse a blank line.  Here is
+a function which usefully replaces the standard <CODE>gets()</CODE> library
+function, and has the advantage of no static buffer to overflow:
+
+</P>
+
+<PRE>
+/* A static variable for holding the line. */
+static char *line_read = (char *)NULL;
+
+/* Read a string, and return a pointer to it.  Returns NULL on EOF. */
+char *
+rl_gets ()
+{
+  /* If the buffer has already been allocated, return the memory
+     to the free pool. */
+  if (line_read)
+    {
+      free (line_read);
+      line_read = (char *)NULL;
+    }
+
+  /* Get a line from the user. */
+  line_read = readline ("");
+
+  /* If the line has any text in it, save it on the history. */
+  if (line_read &#38;&#38; *line_read)
+    add_history (line_read);
+
+  return (line_read);
+}
+</PRE>
+
+<P>
+This function gives the user the default behaviour of <KBD>TAB</KBD>
+completion: completion on file names.  If you do not want Readline to
+complete on filenames, you can change the binding of the <KBD>TAB</KBD> key
+with <CODE>rl_bind_key()</CODE>.
+
+</P>
+
+<PRE>
+<CODE>int rl_bind_key (int <VAR>key</VAR>, rl_command_func_t *<VAR>function</VAR>);</CODE>
+</PRE>
+
+<P>
+<CODE>rl_bind_key()</CODE> takes two arguments: <VAR>key</VAR> is the character that
+you want to bind, and <VAR>function</VAR> is the address of the function to
+call when <VAR>key</VAR> is pressed.  Binding <KBD>TAB</KBD> to <CODE>rl_insert()</CODE>
+makes <KBD>TAB</KBD> insert itself.
+<CODE>rl_bind_key()</CODE> returns non-zero if <VAR>key</VAR> is not a valid
+ASCII character code (between 0 and 255).
+
+</P>
+<P>
+Thus, to disable the default <KBD>TAB</KBD> behavior, the following suffices:
+
+<PRE>
+<CODE>rl_bind_key ('\t', rl_insert);</CODE>
+</PRE>
+
+<P>
+This code should be executed once at the start of your program; you
+might write a function called <CODE>initialize_readline()</CODE> which
+performs this and other desired initializations, such as installing
+custom completers (see section <A HREF="readline.html#SEC43">Custom Completers</A>).
+
+</P>
+
+
+<H2><A NAME="SEC25" HREF="readline.html#TOC25">Custom Functions</A></H2>
+
+<P>
+Readline provides many functions for manipulating the text of
+the line, but it isn't possible to anticipate the needs of all
+programs.  This section describes the various functions and variables
+defined within the Readline library which allow a user program to add
+customized functionality to Readline.
+
+</P>
+<P>
+Before declaring any functions that customize Readline's behavior, or
+using any functionality Readline provides in other code, an
+application writer should include the file <CODE>&#60;readline/readline.h&#62;</CODE>
+in any file that uses Readline's features.  Since some of the definitions
+in <CODE>readline.h</CODE> use the <CODE>stdio</CODE> library, the file
+<CODE>&#60;stdio.h&#62;</CODE> should be included before <CODE>readline.h</CODE>.
+
+</P>
+
+<UL>
+<LI><A HREF="readline.html#SEC26">Readline Typedefs</A>: C declarations to make code readable.
+<LI><A HREF="readline.html#SEC27">Function Writing</A>: Variables and calling conventions.
+</UL>
+
+
+
+<H3><A NAME="SEC26" HREF="readline.html#TOC26">Readline Typedefs</A></H3>
+
+<P>
+For readabilty, we declare a number of new object types, all pointers
+to functions.
+
+</P>
+<P>
+The reason for declaring these new types is to make it easier to write
+code describing pointers to C functions with appropriately prototyped
+arguments and return values.
+
+</P>
+<P>
+For instance, say we want to declare a variable <VAR>func</VAR> as a pointer
+to a function which takes two <CODE>int</CODE> arguments and returns an
+<CODE>int</CODE> (this is the type of all of the Readline bindable functions).
+Instead of the classic C declaration
+
+</P>
+<P>
+<CODE>int (*func)();</CODE>
+
+</P>
+<P>
+or the ANSI-C style declaration
+
+</P>
+<P>
+<CODE>int (*func)(int, int);</CODE>
+
+</P>
+<P>
+we may write
+
+</P>
+<P>
+<CODE>rl_command_func_t *func;</CODE>
+
+</P>
+<P>
+The full list of function pointer types available is
+
+</P>
+<DL COMPACT>
+
+<DT><CODE>typedef int rl_command_func_t (int, int);</CODE>
+<DD>
+<DT><CODE>typedef char *rl_compentry_func_t (const char *, int);</CODE>
+<DD>
+<DT><CODE>typedef char **rl_completion_func_t (const char *, int, int);</CODE>
+<DD>
+<DT><CODE>typedef char *rl_quote_func_t (char *, int, char *);</CODE>
+<DD>
+<DT><CODE>typedef char *rl_dequote_func_t (char *, int);</CODE>
+<DD>
+<DT><CODE>typedef int rl_compignore_func_t (char **);</CODE>
+<DD>
+<DT><CODE>typedef void rl_compdisp_func_t (char **, int, int);</CODE>
+<DD>
+<DT><CODE>typedef int rl_hook_func_t (void);</CODE>
+<DD>
+<DT><CODE>typedef int rl_getc_func_t (FILE *);</CODE>
+<DD>
+<DT><CODE>typedef int rl_linebuf_func_t (char *, int);</CODE>
+<DD>
+<DT><CODE>typedef int rl_intfunc_t (int);</CODE>
+<DD>
+<DT><CODE>#define rl_ivoidfunc_t rl_hook_func_t</CODE>
+<DD>
+<DT><CODE>typedef int rl_icpfunc_t (char *);</CODE>
+<DD>
+<DT><CODE>typedef int rl_icppfunc_t (char **);</CODE>
+<DD>
+<DT><CODE>typedef void rl_voidfunc_t (void);</CODE>
+<DD>
+<DT><CODE>typedef void rl_vintfunc_t (int);</CODE>
+<DD>
+<DT><CODE>typedef void rl_vcpfunc_t (char *);</CODE>
+<DD>
+<DT><CODE>typedef void rl_vcppfunc_t (char **);</CODE>
+<DD>
+</DL>
+
+
+
+<H3><A NAME="SEC27" HREF="readline.html#TOC27">Writing a New Function</A></H3>
+
+<P>
+In order to write new functions for Readline, you need to know the
+calling conventions for keyboard-invoked functions, and the names of the
+variables that describe the current state of the line read so far.
+
+</P>
+<P>
+The calling sequence for a command <CODE>foo</CODE> looks like
+
+</P>
+
+<PRE>
+<CODE>foo (int count, int key)</CODE>
+</PRE>
+
+<P>
+where <VAR>count</VAR> is the numeric argument (or 1 if defaulted) and
+<VAR>key</VAR> is the key that invoked this function.
+
+</P>
+<P>
+It is completely up to the function as to what should be done with the
+numeric argument.  Some functions use it as a repeat count, some
+as a flag, and others to choose alternate behavior (refreshing the current
+line as opposed to refreshing the screen, for example).  Some choose to
+ignore it.  In general, if a
+function uses the numeric argument as a repeat count, it should be able
+to do something useful with both negative and positive arguments.
+At the very least, it should be aware that it can be passed a
+negative argument.
+
+</P>
+
+
+<H2><A NAME="SEC28" HREF="readline.html#TOC28">Readline Variables</A></H2>
+
+<P>
+These variables are available to function writers.
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char * <B>rl_line_buffer</B>
+<DD><A NAME="IDX99"></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#SEC34">Allowing Undoing</A>.  The
+function <CODE>rl_extend_line_buffer</CODE> is available to increase
+the memory allocated to <CODE>rl_line_buffer</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_point</B>
+<DD><A NAME="IDX100"></A>
+The offset of the current cursor position in <CODE>rl_line_buffer</CODE>
+(the <EM>point</EM>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_end</B>
+<DD><A NAME="IDX101"></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.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_mark</B>
+<DD><A NAME="IDX102"></A>
+The <VAR>mark</VAR> (saved position) in the current line.  If set, the mark
+and point define a <EM>region</EM>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_done</B>
+<DD><A NAME="IDX103"></A>
+Setting this to a non-zero value causes Readline to return the current
+line immediately.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_num_chars_to_read</B>
+<DD><A NAME="IDX104"></A>
+Setting this to a positive value before calling <CODE>readline()</CODE> causes
+Readline to return after accepting that many characters, rather
+than reading up to a character bound to <CODE>accept-line</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_pending_input</B>
+<DD><A NAME="IDX105"></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>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_dispatching</B>
+<DD><A NAME="IDX106"></A>
+Set to a non-zero value if a function is being called from a key binding;
+zero otherwise.  Application functions can test this to discover whether
+they were called directly or by Readline's dispatching mechanism.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_erase_empty_line</B>
+<DD><A NAME="IDX107"></A>
+Setting this to a non-zero value causes Readline to completely erase
+the current line, including any prompt, any time a newline is typed as
+the only character on an otherwise-empty line.  The cursor is moved to
+the beginning of the newly-blank line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char * <B>rl_prompt</B>
+<DD><A NAME="IDX108"></A>
+The prompt Readline uses.  This is set from the argument to
+<CODE>readline()</CODE>, and should not be assigned to directly.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_already_prompted</B>
+<DD><A NAME="IDX109"></A>
+If an application wishes to display the prompt itself, rather than have
+Readline do it the first time <CODE>readline()</CODE> is called, it should set
+this variable to a non-zero value after displaying the prompt.
+The prompt must also be passed as the argument to <CODE>readline()</CODE> so
+the redisplay functions can update the display properly.
+The calling application is responsible for managing the value; Readline
+never sets it.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_library_version</B>
+<DD><A NAME="IDX110"></A>
+The version number of this revision of the library.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_gnu_readline_p</B>
+<DD><A NAME="IDX111"></A>
+Always set to 1, denoting that this is GNU readline rather than some
+emulation.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_terminal_name</B>
+<DD><A NAME="IDX112"></A>
+The terminal type, used for initialization.  If not set by the application,
+Readline sets this to the value of the @env{TERM} environment variable
+the first time it is called.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_readline_name</B>
+<DD><A NAME="IDX113"></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#SEC11">Conditional Init Constructs</A>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> FILE * <B>rl_instream</B>
+<DD><A NAME="IDX114"></A>
+The stdio stream from which Readline reads input.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
+<DD><A NAME="IDX115"></A>
+The stdio stream to which Readline performs output.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_command_func_t * <B>rl_last_func</B>
+<DD><A NAME="IDX116"></A>
+The address of the last command function Readline executed.  May be used to
+test whether or not a function is being executed twice in succession, for
+example.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_hook_func_t * <B>rl_startup_hook</B>
+<DD><A NAME="IDX117"></A>
+If non-zero, this is the address of a function to call just
+before <CODE>readline</CODE> prints the first prompt.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_hook_func_t * <B>rl_pre_input_hook</B>
+<DD><A NAME="IDX118"></A>
+If non-zero, this is the address of a function to call after
+the first prompt has been printed and just before <CODE>readline</CODE>
+starts reading input characters.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_hook_func_t * <B>rl_event_hook</B>
+<DD><A NAME="IDX119"></A>
+If non-zero, this is the address of a function to call periodically
+when readline is waiting for terminal input.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_getc_func_t * <B>rl_getc_function</B>
+<DD><A NAME="IDX120"></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
+(see section <A HREF="readline.html#SEC37">Character Input</A>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_redisplay_function</B>
+<DD><A NAME="IDX121"></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>
+redisplay function (see section <A HREF="readline.html#SEC35">Redisplay</A>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_vintfunc_t * <B>rl_prep_term_function</B>
+<DD><A NAME="IDX122"></A>
+If non-zero, <CODE>readline</CODE> will call indirectly through this pointer
+to initialize the terminal.  The function takes a single argument, an
+<CODE>int</CODE> flag that says whether or not to use eight-bit characters.
+By default, this is set to <CODE>rl_prep_terminal</CODE>
+(see section <A HREF="readline.html#SEC38">Terminal Management</A>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_deprep_term_function</B>
+<DD><A NAME="IDX123"></A>
+If non-zero, <CODE>readline</CODE> will call indirectly through this pointer
+to reset the terminal.  This function should undo the effects of
+<CODE>rl_prep_term_function</CODE>.
+By default, this is set to <CODE>rl_deprep_terminal</CODE>
+(see section <A HREF="readline.html#SEC38">Terminal Management</A>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B>
+<DD><A NAME="IDX124"></A>
+This variable is set to the keymap (see section <A HREF="readline.html#SEC31">Selecting a Keymap</A>) in which the
+currently executing readline function was found.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B>
+<DD><A NAME="IDX125"></A>
+This variable is set to the keymap (see section <A HREF="readline.html#SEC31">Selecting a Keymap</A>) in which the
+last key binding occurred.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> char * <B>rl_executing_macro</B>
+<DD><A NAME="IDX126"></A>
+This variable is set to the text of any currently-executing macro.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_readline_state</B>
+<DD><A NAME="IDX127"></A>
+A variable with bit values that encapsulate the current Readline state.
+A bit is set with the <CODE>RL_SETSTATE</CODE> macro, and unset with the
+<CODE>RL_UNSETSTATE</CODE> macro.  Use the <CODE>RL_ISSTATE</CODE> macro to test
+whether a particular state bit is set.  Current state bits include:
+
+</P>
+<DL COMPACT>
+
+<DT><CODE>RL_STATE_NONE</CODE>
+<DD>
+Readline has not yet been called, nor has it begun to intialize.
+<DT><CODE>RL_STATE_INITIALIZING</CODE>
+<DD>
+Readline is initializing its internal data structures.
+<DT><CODE>RL_STATE_INITIALIZED</CODE>
+<DD>
+Readline has completed its initialization.
+<DT><CODE>RL_STATE_TERMPREPPED</CODE>
+<DD>
+Readline has modified the terminal modes to do its own input and redisplay.
+<DT><CODE>RL_STATE_READCMD</CODE>
+<DD>
+Readline is reading a command from the keyboard.
+<DT><CODE>RL_STATE_METANEXT</CODE>
+<DD>
+Readline is reading more input after reading the meta-prefix character.
+<DT><CODE>RL_STATE_DISPATCHING</CODE>
+<DD>
+Readline is dispatching to a command.
+<DT><CODE>RL_STATE_MOREINPUT</CODE>
+<DD>
+Readline is reading more input while executing an editing command.
+<DT><CODE>RL_STATE_ISEARCH</CODE>
+<DD>
+Readline is performing an incremental history search.
+<DT><CODE>RL_STATE_NSEARCH</CODE>
+<DD>
+Readline is performing a non-incremental history search.
+<DT><CODE>RL_STATE_SEARCH</CODE>
+<DD>
+Readline is searching backward or forward through the history for a string.
+<DT><CODE>RL_STATE_NUMERICARG</CODE>
+<DD>
+Readline is reading a numeric argument.
+<DT><CODE>RL_STATE_MACROINPUT</CODE>
+<DD>
+Readline is currently getting its input from a previously-defined keyboard
+macro.
+<DT><CODE>RL_STATE_MACRODEF</CODE>
+<DD>
+Readline is currently reading characters defining a keyboard macro.
+<DT><CODE>RL_STATE_OVERWRITE</CODE>
+<DD>
+Readline is in overwrite mode.
+<DT><CODE>RL_STATE_COMPLETING</CODE>
+<DD>
+Readline is performing word completion.
+<DT><CODE>RL_STATE_SIGHANDLER</CODE>
+<DD>
+Readline is currently executing the readline signal handler.
+<DT><CODE>RL_STATE_UNDOING</CODE>
+<DD>
+Readline is performing an undo.
+<DT><CODE>RL_STATE_DONE</CODE>
+<DD>
+Readline has read a key sequence bound to <CODE>accept-line</CODE>
+and is about to return the line to the caller.
+</DL>
+
+</DL>
+
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_explicit_arg</B>
+<DD><A NAME="IDX128"></A>
+Set to a non-zero value if an explicit numeric argument was specified by
+the user.  Only valid in a bindable command function.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_numeric_arg</B>
+<DD><A NAME="IDX129"></A>
+Set to the value of any numeric argument explicitly specified by the user
+before executing the current Readline function.  Only valid in a bindable
+command function.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_editing_mode</B>
+<DD><A NAME="IDX130"></A>
+Set to a value denoting Readline's current editing mode.  A value of
+<VAR>emacs_mode</VAR> means Readline is currently in emacs mode; <VAR>vi_mode</VAR>
+means that vi mode is active.
+</DL>
+
+</P>
+
+
+
+<H2><A NAME="SEC29" HREF="readline.html#TOC29">Readline Convenience Functions</A></H2>
+
+
+<UL>
+<LI><A HREF="readline.html#SEC30">Function Naming</A>: How to give a function you write a name.
+<LI><A HREF="readline.html#SEC31">Keymaps</A>: Making keymaps.
+<LI><A HREF="readline.html#SEC32">Binding Keys</A>: Changing Keymaps.
+<LI><A HREF="readline.html#SEC33">Associating Function Names and Bindings</A>: Translate function names to
+						key sequences.
+<LI><A HREF="readline.html#SEC34">Allowing Undoing</A>: How to make your functions undoable.
+<LI><A HREF="readline.html#SEC35">Redisplay</A>: Functions to control line display.
+<LI><A HREF="readline.html#SEC36">Modifying Text</A>: Functions to modify <CODE>rl_line_buffer</CODE>.
+<LI><A HREF="readline.html#SEC37">Character Input</A>: Functions to read keyboard input.
+<LI><A HREF="readline.html#SEC38">Terminal Management</A>: Functions to manage terminal settings.
+<LI><A HREF="readline.html#SEC39">Utility Functions</A>: Generally useful functions and hooks.
+<LI><A HREF="readline.html#SEC40">Alternate Interface</A>: Using Readline in a `callback' fashion.
+</UL>
+
+
+
+<H3><A NAME="SEC30" HREF="readline.html#TOC30">Naming a Function</A></H3>
+
+<P>
+The user can dynamically change the bindings of keys while using
+Readline.  This is done by representing the function with a descriptive
+name.  The user is able to type the descriptive name when referring to
+the function.  Thus, in an init file, one might find
+
+</P>
+
+<PRE>
+Meta-Rubout:	backward-kill-word
+</PRE>
+
+<P>
+This binds the keystroke <KBD>Meta-Rubout</KBD> to the function
+<EM>descriptively</EM> named <CODE>backward-kill-word</CODE>.  You, as the
+programmer, should bind the functions you write to descriptive names as
+well.  Readline provides a function for doing that:
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_add_defun</B> <I>(const char *name, rl_command_func_t *function, int key)</I>
+<DD><A NAME="IDX131"></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>.
+</DL>
+
+</P>
+<P>
+Using this function alone is sufficient for most applications.  It is
+the recommended way to add a few functions to the default functions that
+Readline has built in.  If you need to do something other
+than adding a function to Readline, you may need to use the
+underlying functions described below.
+
+</P>
+
+
+<H3><A NAME="SEC31" HREF="readline.html#TOC31">Selecting a Keymap</A></H3>
+
+<P>
+Key bindings take place on a <EM>keymap</EM>.  The keymap is the
+association between the keys that the user types and the functions that
+get run.  You can make your own keymaps, copy existing keymaps, and tell
+Readline which keymap to use.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> Keymap <B>rl_make_bare_keymap</B> <I>(void)</I>
+<DD><A NAME="IDX132"></A>
+Returns a new, empty keymap.  The space for the keymap is allocated with
+<CODE>malloc()</CODE>; the caller should free it by calling
+<CODE>rl_discard_keymap()</CODE> when done.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I>
+<DD><A NAME="IDX133"></A>
+Return a new keymap which is a copy of <VAR>map</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> Keymap <B>rl_make_keymap</B> <I>(void)</I>
+<DD><A NAME="IDX134"></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.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I>
+<DD><A NAME="IDX135"></A>
+Free the storage associated with <VAR>keymap</VAR>.
+</DL>
+
+</P>
+<P>
+Readline has several internal keymaps.  These functions allow you to
+change which keymap is active.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> Keymap <B>rl_get_keymap</B> <I>(void)</I>
+<DD><A NAME="IDX136"></A>
+Returns the currently active keymap.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(Keymap keymap)</I>
+<DD><A NAME="IDX137"></A>
+Makes <VAR>keymap</VAR> the currently active keymap.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> Keymap <B>rl_get_keymap_by_name</B> <I>(const char *name)</I>
+<DD><A NAME="IDX138"></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 (see section <A HREF="readline.html#SEC9">Readline Init File</A>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I>
+<DD><A NAME="IDX139"></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 (see section <A HREF="readline.html#SEC9">Readline Init File</A>).
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC32" HREF="readline.html#TOC32">Binding Keys</A></H3>
+
+<P>
+Key sequences are associate with functions through the keymap.
+Readline has several internal keymaps: <CODE>emacs_standard_keymap</CODE>,
+<CODE>emacs_meta_keymap</CODE>, <CODE>emacs_ctlx_keymap</CODE>,
+<CODE>vi_movement_keymap</CODE>, and <CODE>vi_insertion_keymap</CODE>.
+<CODE>emacs_standard_keymap</CODE> is the default, and the examples in
+this manual assume that.
+
+</P>
+<P>
+Since <CODE>readline()</CODE> installs a set of default key bindings the first
+time it is called, there is always the danger that a custom binding
+installed before the first call to <CODE>readline()</CODE> will be overridden.
+An alternate mechanism is to install custom key bindings in an
+initialization function assigned to the <CODE>rl_startup_hook</CODE> variable
+(see section <A HREF="readline.html#SEC28">Readline Variables</A>).
+
+</P>
+<P>
+These functions manage key bindings.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, rl_command_func_t *function)</I>
+<DD><A NAME="IDX140"></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>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_bind_key_in_map</B> <I>(int key, rl_command_func_t *function, Keymap map)</I>
+<DD><A NAME="IDX141"></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>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_unbind_key</B> <I>(int key)</I>
+<DD><A NAME="IDX142"></A>
+Bind <VAR>key</VAR> to the null function in the currently active keymap.
+Returns non-zero in case of error.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_unbind_key_in_map</B> <I>(int key, Keymap map)</I>
+<DD><A NAME="IDX143"></A>
+Bind <VAR>key</VAR> to the null function in <VAR>map</VAR>.
+Returns non-zero in case of error.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_unbind_function_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
+<DD><A NAME="IDX144"></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>(const char *command, Keymap map)</I>
+<DD><A NAME="IDX145"></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_set_key</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
+<DD><A NAME="IDX146"></A>
+Bind the key sequence represented by the string <VAR>keyseq</VAR> to the function
+<VAR>function</VAR>.  This makes new keymaps as
+necessary.  The initial keymap in which to do bindings is <VAR>map</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_generic_bind</B> <I>(int type, const char *keyseq, char *data, Keymap map)</I>
+<DD><A NAME="IDX147"></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
+(<CODE>ISMACR</CODE>), or a keymap (<CODE>ISKMAP</CODE>).  This makes new keymaps as
+necessary.  The initial keymap in which to do bindings is <VAR>map</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_parse_and_bind</B> <I>(char *line)</I>
+<DD><A NAME="IDX148"></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
+(see section <A HREF="readline.html#SEC9">Readline Init File</A>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(const char *filename)</I>
+<DD><A NAME="IDX149"></A>
+Read keybindings and variable assignments from <VAR>filename</VAR>
+(see section <A HREF="readline.html#SEC9">Readline Init File</A>).
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC33" HREF="readline.html#TOC33">Associating Function Names and Bindings</A></H3>
+
+<P>
+These functions allow you to find out what keys invoke named functions
+and the functions invoked by a particular key sequence.  You may also
+associate a new function name with an arbitrary function.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> rl_command_func_t * <B>rl_named_function</B> <I>(const char *name)</I>
+<DD><A NAME="IDX150"></A>
+Return the function with name <VAR>name</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> rl_command_func_t * <B>rl_function_of_keyseq</B> <I>(const char *keyseq, Keymap map, int *type)</I>
+<DD><A NAME="IDX151"></A>
+Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>.
+If <VAR>map</VAR> is <CODE>NULL</CODE>, the current keymap is used.  If <VAR>type</VAR> is
+not <CODE>NULL</CODE>, the type of the object is returned in the <CODE>int</CODE> variable
+it points to (one of <CODE>ISFUNC</CODE>, <CODE>ISKMAP</CODE>, or <CODE>ISMACR</CODE>).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(rl_command_func_t *function)</I>
+<DD><A NAME="IDX152"></A>
+Return an array of strings representing the key sequences used to
+invoke <VAR>function</VAR> in the current keymap.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
+<DD><A NAME="IDX153"></A>
+Return an array of strings representing the key sequences used to
+invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I>
+<DD><A NAME="IDX154"></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
+<CODE>inputrc</CODE> file and re-read.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>(void)</I>
+<DD><A NAME="IDX155"></A>
+Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char ** <B>rl_funmap_names</B> <I>(void)</I>
+<DD><A NAME="IDX156"></A>
+Return a NULL terminated array of known function names.  The array is
+sorted.  The array itself is allocated, but not the strings inside.  You
+should <CODE>free()</CODE> the array when you are done, but not the pointers.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_add_funmap_entry</B> <I>(const char *name, rl_command_func_t *function)</I>
+<DD><A NAME="IDX157"></A>
+Add <VAR>name</VAR> to the list of bindable Readline command names, and make
+<VAR>function</VAR> the function to be called when <VAR>name</VAR> is invoked.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC34" HREF="readline.html#TOC34">Allowing Undoing</A></H3>
+
+<P>
+Supporting the undo command is a painless thing, and makes your
+functions much more useful.  It is certainly easy to try
+something if you know you can undo it.
+
+</P>
+<P>
+If your function simply inserts text once, or deletes text once, and
+uses <CODE>rl_insert_text()</CODE> or <CODE>rl_delete_text()</CODE> to do it, then
+undoing is already done for you automatically.
+
+</P>
+<P>
+If you do multiple insertions or multiple deletions, or any combination
+of these operations, you should group them together into one operation.
+This is done with <CODE>rl_begin_undo_group()</CODE> and
+<CODE>rl_end_undo_group()</CODE>.
+
+</P>
+<P>
+The types of events that can be undone are:
+
+</P>
+
+<PRE>
+enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END }; 
+</PRE>
+
+<P>
+Notice that <CODE>UNDO_DELETE</CODE> means to insert some text, and
+<CODE>UNDO_INSERT</CODE> means to delete some text.  That is, the undo code
+tells what to undo, not how to undo it.  <CODE>UNDO_BEGIN</CODE> and
+<CODE>UNDO_END</CODE> are tags added by <CODE>rl_begin_undo_group()</CODE> and
+<CODE>rl_end_undo_group()</CODE>.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>(void)</I>
+<DD><A NAME="IDX158"></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
+<CODE>rl_add_undo()</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>(void)</I>
+<DD><A NAME="IDX159"></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>.
+</DL>
+
+</P>
+<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="IDX160"></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>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_free_undo_list</B> <I>(void)</I>
+<DD><A NAME="IDX161"></A>
+Free the existing undo list.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_do_undo</B> <I>(void)</I>
+<DD><A NAME="IDX162"></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>
+
+</P>
+<P>
+Finally, if you neither insert nor delete text, but directly modify the
+existing text (e.g., change its case), call <CODE>rl_modifying()</CODE>
+once, just before you modify the text.  You must supply the indices of
+the text range that you are going to modify.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I>
+<DD><A NAME="IDX163"></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.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC35" HREF="readline.html#TOC35">Redisplay</A></H3>
+
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_redisplay</B> <I>(void)</I>
+<DD><A NAME="IDX164"></A>
+Change what's displayed on the screen to reflect the current contents
+of <CODE>rl_line_buffer</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>(void)</I>
+<DD><A NAME="IDX165"></A>
+Force the line to be updated and redisplayed, whether or not
+Readline thinks the screen display is correct.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_on_new_line</B> <I>(void)</I>
+<DD><A NAME="IDX166"></A>
+Tell the update functions that we have moved onto a new (empty) line,
+usually after ouputting a newline.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_on_new_line_with_prompt</B> <I>(void)</I>
+<DD><A NAME="IDX167"></A>
+Tell the update functions that we have moved onto a new line, with
+<VAR>rl_prompt</VAR> already displayed.
+This could be used by applications that want to output the prompt string
+themselves, but still need Readline to know the prompt string length for
+redisplay.
+It should be used after setting <VAR>rl_already_prompted</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>(void)</I>
+<DD><A NAME="IDX168"></A>
+Reset the display state to a clean state and redisplay the current line
+starting on a new line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_crlf</B> <I>(void)</I>
+<DD><A NAME="IDX169"></A>
+Move the cursor to the start of the next screen line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_message</B> <I>(const char *, ...)</I>
+<DD><A NAME="IDX170"></A>
+The arguments are a format string as would be supplied to <CODE>printf</CODE>,
+possibly containing conversion specifications such as <SAMP>`%d'</SAMP>, and
+any additional arguments necessary to satisfy the conversion specifications.
+The resulting string is displayed in the <EM>echo area</EM>.  The echo area
+is also used to display numeric arguments and search strings.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_clear_message</B> <I>(void)</I>
+<DD><A NAME="IDX171"></A>
+Clear the message in the echo area.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_save_prompt</B> <I>(void)</I>
+<DD><A NAME="IDX172"></A>
+Save the local Readline prompt display state in preparation for
+displaying a new message in the message area with <CODE>rl_message()</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_restore_prompt</B> <I>(void)</I>
+<DD><A NAME="IDX173"></A>
+Restore the local Readline prompt display state saved by the most
+recent call to <CODE>rl_save_prompt</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_expand_prompt</B> <I>(char *prompt)</I>
+<DD><A NAME="IDX174"></A>
+Expand any special character sequences in <VAR>prompt</VAR> and set up the
+local Readline prompt redisplay variables.
+This function is called by <CODE>readline()</CODE>.  It may also be called to
+expand the primary prompt if the <CODE>rl_on_new_line_with_prompt()</CODE>
+function or <CODE>rl_already_prompted</CODE> variable is used.
+It returns the number of visible characters on the last line of the
+(possibly multi-line) prompt.
+</DL>
+
+
+<H3><A NAME="SEC36" HREF="readline.html#TOC36">Modifying Text</A></H3>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(const char *text)</I>
+<DD><A NAME="IDX175"></A>
+Insert <VAR>text</VAR> into the line at the current cursor position.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I>
+<DD><A NAME="IDX176"></A>
+Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I>
+<DD><A NAME="IDX177"></A>
+Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in
+the current line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I>
+<DD><A NAME="IDX178"></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.
+If <VAR>start</VAR> is less than <VAR>end</VAR>,
+the text is appended, otherwise prepended.  If the last command was
+not a kill, a new kill ring slot is used.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC37" HREF="readline.html#TOC37">Character Input</A></H3>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_read_key</B> <I>(void)</I>
+<DD><A NAME="IDX179"></A>
+Return the next character available from Readline's current input stream.
+This handles input inserted into
+the input stream via <VAR>rl_pending_input</VAR> (see section <A HREF="readline.html#SEC28">Readline Variables</A>)
+and <CODE>rl_stuff_char()</CODE>, macros, and characters read from the keyboard.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *stream)</I>
+<DD><A NAME="IDX180"></A>
+Return the next character available from <VAR>stream</VAR>, which is assumed to
+be the keyboard.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
+<DD><A NAME="IDX181"></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>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_execute_next</B> <I>(int c)</I>
+<DD><A NAME="IDX182"></A>
+Make <VAR>c</VAR> be the next command to be executed when <CODE>rl_read_key()</CODE>
+is called.  This sets <VAR>rl_pending_input</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_clear_pending_input</B> <I>(void)</I>
+<DD><A NAME="IDX183"></A>
+Unet <VAR>rl_pending_input</VAR>, effectively negating the effect of any
+previous call to <CODE>rl_execute_next()</CODE>.  This works only if the
+pending input has not already been read with <CODE>rl_read_key()</CODE>.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC38" HREF="readline.html#TOC38">Terminal Management</A></H3>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_prep_terminal</B> <I>(int meta_flag)</I>
+<DD><A NAME="IDX184"></A>
+Modify the terminal settings for Readline's use, so <CODE>readline()</CODE>
+can read a single character at a time from the keyboard.
+The <VAR>meta_flag</VAR> argument should be non-zero if Readline should
+read eight-bit input.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> in <B>rl_deprep_terminal</B> <I>(void)</I>
+<DD><A NAME="IDX185"></A>
+Undo the effects of <CODE>rl_prep_terminal()</CODE>, leaving the terminal in
+the state in which it was before the most recent call to
+<CODE>rl_prep_terminal()</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_tty_set_default_bindings</B> <I>(Keymap kmap)</I>
+<DD><A NAME="IDX186"></A>
+Read the operating system's terminal editing characters (as would be displayed
+by <CODE>stty</CODE> to their readline equivalents.  The bindings are performed
+in <VAR>kmap</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(const char *terminal_name)</I>
+<DD><A NAME="IDX187"></A>
+Reinitialize Readline's idea of the terminal settings using
+<VAR>terminal_name</VAR> as the terminal type (e.g., <CODE>vt100</CODE>).
+If <VAR>terminal_name</VAR> is NULL, the value of the <CODE>TERM</CODE>
+environment variable is used.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC39" HREF="readline.html#TOC39">Utility Functions</A></H3>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_extend_line_buffer</B> <I>(int len)</I>
+<DD><A NAME="IDX188"></A>
+Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR>
+characters, possibly reallocating it if necessary.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
+<DD><A NAME="IDX189"></A>
+Initialize or re-initialize Readline's internal state.
+It's not strictly necessary to call this; <CODE>readline()</CODE> calls it before
+reading any input.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_ding</B> <I>(void)</I>
+<DD><A NAME="IDX190"></A>
+Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_alphabetic</B> <I>(int c)</I>
+<DD><A NAME="IDX191"></A>
+Return 1 if <VAR>c</VAR> is an alphabetic character.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_display_match_list</B> <I>(char **matches, int len, int max)</I>
+<DD><A NAME="IDX192"></A>
+A convenience function for displaying a list of strings in
+columnar format on Readline's output stream.  <CODE>matches</CODE> is the list
+of strings, in argv format, such as a list of completion matches.
+<CODE>len</CODE> is the number of strings in <CODE>matches</CODE>, and <CODE>max</CODE>
+is the length of the longest string in <CODE>matches</CODE>.  This function uses
+the setting of <CODE>print-completions-horizontally</CODE> to select how the
+matches are displayed (see section <A HREF="readline.html#SEC10">Readline Init File Syntax</A>).
+</DL>
+
+</P>
+<P>
+The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
+Applications should refrain from using them.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>_rl_uppercase_p</B> <I>(int c)</I>
+<DD><A NAME="IDX193"></A>
+Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>_rl_lowercase_p</B> <I>(int c)</I>
+<DD><A NAME="IDX194"></A>
+Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>_rl_digit_p</B> <I>(int c)</I>
+<DD><A NAME="IDX195"></A>
+Return 1 if <VAR>c</VAR> is a numeric character.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>_rl_to_upper</B> <I>(int c)</I>
+<DD><A NAME="IDX196"></A>
+If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding
+uppercase character.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>_rl_to_lower</B> <I>(int c)</I>
+<DD><A NAME="IDX197"></A>
+If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding
+lowercase character.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>_rl_digit_value</B> <I>(int c)</I>
+<DD><A NAME="IDX198"></A>
+If <VAR>c</VAR> is a number, return the value it represents.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC40" HREF="readline.html#TOC40">Alternate Interface</A></H3>
+
+<P>
+An alternate interface is available to plain <CODE>readline()</CODE>.  Some
+applications need to interleave keyboard I/O with file, device, or
+window system I/O, typically by using a main loop to <CODE>select()</CODE>
+on various file descriptors.  To accomodate this need, readline can
+also be invoked as a `callback' function from an event loop.  There
+are functions available to make this easy.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(const char *prompt, rl_vcpfunc_t *lhandler)</I>
+<DD><A NAME="IDX199"></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 function to call when a complete line of input has been entered.
+The function takes the text of the line as an argument.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>(void)</I>
+<DD><A NAME="IDX200"></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
+line, <CODE>rl_callback_read_char</CODE> will invoke the <VAR>lhandler</VAR>
+function saved by <CODE>rl_callback_handler_install</CODE> to process the
+line.  <CODE>EOF</CODE> is  indicated by calling <VAR>lhandler</VAR> with a
+<CODE>NULL</CODE> line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>(void)</I>
+<DD><A NAME="IDX201"></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>
+
+</P>
+
+
+<H3><A NAME="SEC41" HREF="readline.html#TOC41">An Example</A></H3>
+
+<P>
+Here is a function which changes lowercase characters to their uppercase
+equivalents, and uppercase characters to lowercase.  If
+this function was bound to <SAMP>`M-c'</SAMP>, then typing <SAMP>`M-c'</SAMP> would
+change the case of the character under point.  Typing <SAMP>`M-1 0 M-c'</SAMP>
+would change the case of the following 10 characters, leaving the cursor on
+the last character changed.
+
+</P>
+
+<PRE>
+/* Invert the case of the COUNT following characters. */
+int
+invert_case_line (count, key)
+     int count, key;
+{
+  register int start, end, i;
+
+  start = rl_point;
+
+  if (rl_point &#62;= rl_end)
+    return (0);
+
+  if (count &#60; 0)
+    {
+      direction = -1;
+      count = -count;
+    }
+  else
+    direction = 1;
+      
+  /* Find the end of the range to modify. */
+  end = start + (count * direction);
+
+  /* Force it to be within range. */
+  if (end &#62; rl_end)
+    end = rl_end;
+  else if (end &#60; 0)
+    end = 0;
+
+  if (start == end)
+    return (0);
+
+  if (start &#62; end)
+    {
+      int temp = start;
+      start = end;
+      end = temp;
+    }
+
+  /* Tell readline that we are modifying the line, so it will save
+     the undo information. */
+  rl_modifying (start, end);
+
+  for (i = start; i != end; i++)
+    {
+      if (_rl_uppercase_p (rl_line_buffer[i]))
+        rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
+      else if (_rl_lowercase_p (rl_line_buffer[i]))
+        rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
+    }
+  /* Move point to on top of the last character changed. */
+  rl_point = (direction == 1) ? end - 1 : start;
+  return (0);
+}
+</PRE>
+
+
+
+<H2><A NAME="SEC42" HREF="readline.html#TOC42">Readline Signal Handling</A></H2>
+
+<P>
+Signals are asynchronous events sent to a process by the Unix kernel,
+sometimes on behalf of another process.  They are intended to indicate
+exceptional events, like a user pressing the interrupt key on his
+terminal, or a network connection being broken.  There is a class of
+signals that can be sent to the process currently reading input from
+the keyboard.  Since Readline changes the terminal attributes when it
+is called, it needs to perform special processing when a signal is
+received to restore the terminal to a sane state, or provide application
+writers with functions to do so manually.
+
+</P>
+<P>
+Readline contains an internal signal handler that is installed for a
+number of signals (<CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, <CODE>SIGTERM</CODE>,
+<CODE>SIGALRM</CODE>, <CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>, and <CODE>SIGTTOU</CODE>).
+When one of these signals is received, the signal handler
+will reset the terminal attributes to those that were in effect before
+<CODE>readline()</CODE> was called, reset the signal handling to what it was
+before <CODE>readline()</CODE> was called, and resend the signal to the calling
+application.
+If and when the calling application's signal handler returns, Readline
+will reinitialize the terminal and continue to accept input.
+When a <CODE>SIGINT</CODE> is received, the Readline signal handler performs
+some additional work, which will cause any partially-entered line to be
+aborted (see the description of <CODE>rl_free_line_state()</CODE> below).
+
+</P>
+<P>
+There is an additional Readline signal handler, for <CODE>SIGWINCH</CODE>, which
+the kernel sends to a process whenever the terminal's size changes (for
+example, if a user resizes an <CODE>xterm</CODE>).  The Readline <CODE>SIGWINCH</CODE>
+handler updates Readline's internal screen size information, and then calls
+any <CODE>SIGWINCH</CODE> signal handler the calling application has installed. 
+Readline calls the application's <CODE>SIGWINCH</CODE> signal handler without
+resetting the terminal to its original state.  If the application's signal
+handler does more than update its idea of the terminal size and return (for
+example, a <CODE>longjmp</CODE> back to a main processing loop), it <EM>must</EM>
+call <CODE>rl_cleanup_after_signal()</CODE> (described below), to restore the
+terminal state. 
+
+</P>
+<P>
+Readline provides two variables that allow application writers to
+control whether or not it will catch certain signals and act on them
+when they are received.  It is important that applications change the
+values of these variables only when calling <CODE>readline()</CODE>, not in
+a signal handler, so Readline's internal signal state is not corrupted.
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_catch_signals</B>
+<DD><A NAME="IDX202"></A>
+If this variable is non-zero, Readline will install signal handlers for
+<CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, <CODE>SIGTERM</CODE>, <CODE>SIGALRM</CODE>,
+<CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>, and <CODE>SIGTTOU</CODE>.
+
+</P>
+<P>
+The default value of <CODE>rl_catch_signals</CODE> is 1.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
+<DD><A NAME="IDX203"></A>
+If this variable is non-zero, Readline will install a signal handler for
+<CODE>SIGWINCH</CODE>.
+
+</P>
+<P>
+The default value of <CODE>rl_catch_sigwinch</CODE> is 1.
+</DL>
+
+</P>
+<P>
+If an application does not wish to have Readline catch any signals, or
+to handle signals other than those Readline catches (<CODE>SIGHUP</CODE>,
+for example), 
+Readline provides convenience functions to do the necessary terminal
+and internal state cleanup upon receipt of a signal.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_cleanup_after_signal</B> <I>(void)</I>
+<DD><A NAME="IDX204"></A>
+This function will reset the state of the terminal to what it was before
+<CODE>readline()</CODE> was called, and remove the Readline signal handlers for
+all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
+<CODE>rl_catch_sigwinch</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_free_line_state</B> <I>(void)</I>
+<DD><A NAME="IDX205"></A>
+This will free any partial state associated with the current input line
+(undo information, any partial history entry, any partially-entered
+keyboard macro, and any partially-entered numeric argument).  This
+should be called before <CODE>rl_cleanup_after_signal()</CODE>.  The
+Readline signal handler for <CODE>SIGINT</CODE> calls this to abort the
+current input line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_reset_after_signal</B> <I>(void)</I>
+<DD><A NAME="IDX206"></A>
+This will reinitialize the terminal and reinstall any Readline signal
+handlers, depending on the values of <CODE>rl_catch_signals</CODE> and
+<CODE>rl_catch_sigwinch</CODE>.
+</DL>
+
+</P>
+<P>
+If an application does not wish Readline to catch <CODE>SIGWINCH</CODE>, it may
+call <CODE>rl_resize_terminal()</CODE> or <CODE>rl_set_screen_size()</CODE> to force
+Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
+is received.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_resize_terminal</B> <I>(void)</I>
+<DD><A NAME="IDX207"></A>
+Update Readline's internal screen size by reading values from the kernel.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>rl_set_screen_size</B> <I>(int rows, int cols)</I>
+<DD><A NAME="IDX208"></A>
+Set Readline's idea of the terminal size to <VAR>rows</VAR> rows and
+<VAR>cols</VAR> columns.
+</DL>
+
+</P>
+<P>
+The following functions install and remove Readline's signal handlers.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_set_signals</B> <I>(void)</I>
+<DD><A NAME="IDX209"></A>
+Install Readline's signal handler for <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>,
+<CODE>SIGTERM</CODE>, <CODE>SIGALRM</CODE>, <CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>,
+<CODE>SIGTTOU</CODE>, and <CODE>SIGWINCH</CODE>, depending on the values of
+<CODE>rl_catch_signals</CODE> and <CODE>rl_catch_sigwinch</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_clear_signals</B> <I>(void)</I>
+<DD><A NAME="IDX210"></A>
+Remove all of the Readline signal handlers installed by
+<CODE>rl_set_signals()</CODE>.
+</DL>
+
+</P>
+
+
+<H2><A NAME="SEC43" HREF="readline.html#TOC43">Custom Completers</A></H2>
+
+<P>
+Typically, a program that reads commands from the user has a way of
+disambiguating commands and data.  If your program is one of these, then
+it can provide completion for commands, data, or both.
+The following sections describe how your program and Readline
+cooperate to provide this service.
+
+</P>
+
+<UL>
+<LI><A HREF="readline.html#SEC44">How Completing Works</A>: The logic used to do completion.
+<LI><A HREF="readline.html#SEC45">Completion Functions</A>: Functions provided by Readline.
+<LI><A HREF="readline.html#SEC46">Completion Variables</A>: Variables which control completion.
+<LI><A HREF="readline.html#SEC47">A Short Completion Example</A>: An example of writing completer subroutines.
+</UL>
+
+
+
+<H3><A NAME="SEC44" HREF="readline.html#TOC44">How Completing Works</A></H3>
+
+<P>
+In order to complete some text, the full list of possible completions
+must be available.  That is, it is not possible to accurately
+expand a partial word without knowing all of the possible words
+which make sense in that context.  The Readline library provides
+the user interface to completion, and two of the most common
+completion functions:  filename and username.  For completing other types
+of text, you must write your own completion function.  This section
+describes exactly what such functions must do, and provides an example.
+
+</P>
+<P>
+There are three major functions used to perform completion:
+
+</P>
+
+<OL>
+<LI>
+
+The user-interface function <CODE>rl_complete()</CODE>.  This function is
+called with the same arguments as other bindable Readline functions:
+<VAR>count</VAR> and <VAR>invoking_key</VAR>.
+It isolates the word to be completed and calls
+<CODE>rl_completion_matches()</CODE> to generate a list of possible completions.
+It then either lists the possible completions, inserts the possible
+completions, or actually performs the
+completion, depending on which behavior is desired.
+
+<LI>
+
+The internal function <CODE>rl_completion_matches()</CODE> uses an
+application-supplied <EM>generator</EM> function to generate the list of
+possible matches, and then returns the array of these matches.
+The caller should place the address of its generator function in
+<CODE>rl_completion_entry_function</CODE>.
+
+<LI>
+
+The generator function is called repeatedly from
+<CODE>rl_completion_matches()</CODE>, returning a string each time.  The
+arguments to the generator function are <VAR>text</VAR> and <VAR>state</VAR>.
+<VAR>text</VAR> is the partial word to be completed.  <VAR>state</VAR> is zero the
+first time the function is called, allowing the generator to perform
+any necessary initialization, and a positive non-zero integer for
+each subsequent call.  The generator function returns
+<CODE>(char *)NULL</CODE> to inform <CODE>rl_completion_matches()</CODE> that there are
+no more possibilities left.  Usually the generator function computes the
+list of possible completions when <VAR>state</VAR> is zero, and returns them
+one at a time on subsequent calls.  Each string the generator function
+returns as a match must be allocated with <CODE>malloc()</CODE>; Readline
+frees the strings when it has finished with them.
+
+</OL>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
+<DD><A NAME="IDX211"></A>
+Complete the word at or before point.  You have supplied the function
+that does the initial simple matching selection algorithm (see
+<CODE>rl_completion_matches()</CODE>).  The default is to do filename completion.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
+<DD><A NAME="IDX212"></A>
+This is a pointer to the generator function for
+<CODE>rl_completion_matches()</CODE>.
+If the value of <CODE>rl_completion_entry_function</CODE> is
+<CODE>NULL</CODE> then the default filename generator
+function, <CODE>rl_filename_completion_function()</CODE>, is used.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC45" HREF="readline.html#TOC45">Completion Functions</A></H3>
+
+<P>
+Here is the complete list of callable completion functions present in
+Readline.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I>
+<DD><A NAME="IDX213"></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
+insert all of the possible completions.  <SAMP>`!'</SAMP> means to display
+all of the possible completions, if there is more than one, as well as
+performing partial completion.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
+<DD><A NAME="IDX214"></A>
+Complete the word at or before point.  You have supplied the function
+that does the initial simple matching selection algorithm (see
+<CODE>rl_completion_matches()</CODE> and <CODE>rl_completion_entry_function</CODE>).
+The default is to do filename
+completion.  This calls <CODE>rl_complete_internal()</CODE> with an
+argument depending on <VAR>invoking_key</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key)</I>
+<DD><A NAME="IDX215"></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>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key)</I>
+<DD><A NAME="IDX216"></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>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char ** <B>rl_completion_matches</B> <I>(const char *text, rl_compentry_func_t *entry_func)</I>
+<DD><A NAME="IDX217"></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>NULL</CODE>.
+The first entry in the returned array is the substitution for <VAR>text</VAR>.
+The remaining entries are the possible completions.  The array is
+terminated with a <CODE>NULL</CODE> pointer.
+
+</P>
+<P>
+<VAR>entry_func</VAR> is a function of two args, and returns a
+<CODE>(char *)</CODE>.  The first argument is <VAR>text</VAR>.  The second is a
+state argument; it is zero on the first call, and non-zero on subsequent
+calls.  <VAR>entry_func</VAR> returns a <CODE>NULL</CODE>  pointer to the caller
+when there are no more matches.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char * <B>rl_filename_completion_function</B> <I>(const char *text, int state)</I>
+<DD><A NAME="IDX218"></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
+command.  The Bash source is a useful reference for writing custom
+completion functions.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> char * <B>rl_username_completion_function</B> <I>(const char *text, int state)</I>
+<DD><A NAME="IDX219"></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
+for subsequent calls.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC46" HREF="readline.html#TOC46">Completion Variables</A></H3>
+
+<P>
+<DL>
+<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
+<DD><A NAME="IDX220"></A>
+A pointer to the generator function for <CODE>rl_completion_matches()</CODE>.
+<CODE>NULL</CODE> means to use <CODE>rl_filename_completion_function()</CODE>, the default
+filename completer.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_completion_func_t * <B>rl_attempted_completion_function</B>
+<DD><A NAME="IDX221"></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> defining
+the boundaries of <VAR>text</VAR>, which is a character string.
+If this function exists and returns <CODE>NULL</CODE>, or if this variable is
+set to <CODE>NULL</CODE>, then <CODE>rl_complete()</CODE> will call the value of
+<CODE>rl_completion_entry_function</CODE> to generate matches, otherwise the
+array of strings returned will be used.
+If this function sets the <CODE>rl_attempted_completion_over</CODE>
+variable to a non-zero value, Readline will not perform its default
+completion if this function returns no matches.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_quote_func_t * <B>rl_filename_quoting_function</B>
+<DD><A NAME="IDX222"></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>
+appears in a completed filename.  The function is called with
+<VAR>text</VAR>, <VAR>match_type</VAR>, and <VAR>quote_pointer</VAR>.  The <VAR>text</VAR>
+is the filename to be quoted.  The <VAR>match_type</VAR> is either
+<CODE>SINGLE_MATCH</CODE>, if there is only one completion match, or
+<CODE>MULT_MATCH</CODE>.  Some functions use this to decide whether or not to
+insert a closing quote character.  The <VAR>quote_pointer</VAR> is a pointer
+to any opening quote character the user typed.  Some functions choose
+to reset this character.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_dequoting_function</B>
+<DD><A NAME="IDX223"></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
+the filesystem.  It is called with <VAR>text</VAR>, the text of the word
+to be dequoted, and <VAR>quote_char</VAR>, which is the quoting character 
+that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>).  If
+<VAR>quote_char</VAR> is zero, the filename was not in an embedded string.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_linebuf_func_t * <B>rl_char_is_quoted_p</B>
+<DD><A NAME="IDX224"></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
+two arguments: <VAR>text</VAR>, the text of the line, and <VAR>index</VAR>, the
+index of the character in the line.  It is used to decide whether a
+character found in <CODE>rl_completer_word_break_characters</CODE> should be
+used to break words for the completer.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_completion_query_items</B>
+<DD><A NAME="IDX225"></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.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_basic_word_break_characters</B>
+<DD><A NAME="IDX226"></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.,
+<CODE>" \t\n\"\\'`@$&#62;&#60;=;|&#38;{("</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_basic_quote_characters</B>
+<DD><A NAME="IDX227"></A>
+List of quote characters which can cause a word break.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_completer_word_break_characters</B>
+<DD><A NAME="IDX228"></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>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_completer_quote_characters</B>
+<DD><A NAME="IDX229"></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,
+unless they also appear within this list.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_filename_quote_characters</B>
+<DD><A NAME="IDX230"></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 the null string.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const char * <B>rl_special_prefixes</B>
+<DD><A NAME="IDX231"></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.
+For instance, Bash sets this variable to "$@" so that it can complete
+shell variables and hostnames.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_completion_append_character</B>
+<DD><A NAME="IDX232"></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
+character (<SAMP>`\0'</SAMP>) prevents anything being appended automatically.
+This can be changed in custom completion functions to
+provide the "most sensible word separator character" according to
+an application-specific command line syntax specification.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
+<DD><A NAME="IDX233"></A>
+If non-zero, then disallow duplicates in the matches.  Default is 1.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_filename_completion_desired</B>
+<DD><A NAME="IDX234"></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
+value, directory names have a slash appended and Readline attempts to
+quote completed filenames if they contain any characters in
+<CODE>rl_filename_quote_characters</CODE> and <CODE>rl_filename_quoting_desired</CODE>
+is set to a non-zero value.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
+<DD><A NAME="IDX235"></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
+<CODE>rl_filename_quote_chars</CODE>.  This is <EM>always</EM> non-zero
+on entry, and can only be changed within a completion entry generator
+function.  The quoting is effected via a call to the function pointed to
+by <CODE>rl_filename_quoting_function</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
+<DD><A NAME="IDX236"></A>
+If an application-specific completion function assigned to
+<CODE>rl_attempted_completion_function</CODE> sets this variable to a non-zero
+value, Readline will not perform its default filename completion if the
+application's completion function returns no matches.
+It should be set only by an application's completion function.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_completion_type</B>
+<DD><A NAME="IDX237"></A>
+Set to a character describing the type of completion Readline is currently
+attempting; see the description of <CODE>rl_complete_internal()</CODE>
+(see section <A HREF="readline.html#SEC45">Completion Functions</A>) for the list of characters.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
+<DD><A NAME="IDX238"></A>
+If this variable is non-zero, completion is inhibited.  The completion
+character will be inserted as any other bound to <CODE>self-insert</CODE>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_compignore_func_t * <B>rl_ignore_some_completions_function</B>
+<DD><A NAME="IDX239"></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.
+The first element (<CODE>matches[0]</CODE>) is the
+maximal substring common to all matches. This function can
+re-arrange the list of matches as required, but each element deleted
+from the array must be freed.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_completion_hook</B>
+<DD><A NAME="IDX240"></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, and may modify that string.
+If the string is replaced with a new string, the old value should be freed.
+Any modified directory name should have a trailing slash.
+The modified value will be displayed as part of the completion, replacing
+the directory portion of the pathname the user typed.
+It returns an integer that should be non-zero if the function modifies
+its directory argument.
+It could be used to expand symbolic links or shell variables in pathnames.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> rl_compdisp_func_t * <B>rl_completion_display_matches_hook</B>
+<DD><A NAME="IDX241"></A>
+If non-zero, then this is the address of a function to call when
+completing a word would normally display the list of possible matches.
+This function is called in lieu of Readline displaying the list.
+It takes three arguments:
+(<CODE>char **</CODE><VAR>matches</VAR>, <CODE>int</CODE> <VAR>num_matches</VAR>, <CODE>int</CODE> <VAR>max_length</VAR>)
+where <VAR>matches</VAR> is the array of matching strings,
+<VAR>num_matches</VAR> is the number of strings in that array, and
+<VAR>max_length</VAR> is the length of the longest string in that array.
+Readline provides a convenience function, <CODE>rl_display_match_list</CODE>,
+that takes care of doing the display to Readline's output stream.  That
+function may be called from this hook.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC47" HREF="readline.html#TOC47">A Short Completion Example</A></H3>
+
+<P>
+Here is a small application demonstrating the use of the GNU Readline
+library.  It is called <CODE>fileman</CODE>, and the source code resides in
+<TT>`examples/fileman.c'</TT>.  This sample application provides
+completion of command names, line editing features, and access to the
+history list.
+
+</P>
+
+<PRE>
+/* fileman.c -- A tiny application which demonstrates how to use the
+   GNU Readline library.  This application interactively allows users
+   to manipulate files and their modes. */
+
+#include &#60;stdio.h&#62;
+#include &#60;sys/types.h&#62;
+#include &#60;sys/file.h&#62;
+#include &#60;sys/stat.h&#62;
+#include &#60;sys/errno.h&#62;
+
+#include &#60;readline/readline.h&#62;
+#include &#60;readline/history.h&#62;
+
+extern char *xmalloc ();
+
+/* The names of functions that actually do the manipulation. */
+int com_list __P((char *));
+int com_view __P((char *));
+int com_rename __P((char *));
+int com_stat __P((char *));
+int com_pwd __P((char *));
+int com_delete __P((char *));
+int com_help __P((char *));
+int com_cd __P((char *));
+int com_quit __P((char *));
+
+/* A structure which contains information on the commands this program
+   can understand. */
+
+typedef struct {
+  char *name;			/* User printable name of the function. */
+  rl_icpfunc_t *func;		/* Function to call to do the job. */
+  char *doc;			/* Documentation for this function.  */
+} COMMAND;
+
+COMMAND commands[] = {
+  { "cd", com_cd, "Change to directory DIR" },
+  { "delete", com_delete, "Delete FILE" },
+  { "help", com_help, "Display this text" },
+  { "?", com_help, "Synonym for `help'" },
+  { "list", com_list, "List files in DIR" },
+  { "ls", com_list, "Synonym for `list'" },
+  { "pwd", com_pwd, "Print the current working directory" },
+  { "quit", com_quit, "Quit using Fileman" },
+  { "rename", com_rename, "Rename FILE to NEWNAME" },
+  { "stat", com_stat, "Print out statistics on FILE" },
+  { "view", com_view, "View the contents of FILE" },
+  { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
+};
+
+/* Forward declarations. */
+char *stripwhite ();
+COMMAND *find_command ();
+
+/* The name of this program, as taken from argv[0]. */
+char *progname;
+
+/* When non-zero, this means the user is done using this program. */
+int done;
+
+char *
+dupstr (s)
+     int s;
+{
+  char *r;
+
+  r = xmalloc (strlen (s) + 1);
+  strcpy (r, s);
+  return (r);
+}
+
+main (argc, argv)
+     int argc;
+     char **argv;
+{
+  char *line, *s;
+
+  progname = argv[0];
+
+  initialize_readline ();	/* Bind our completer. */
+
+  /* Loop reading and executing lines until the user quits. */
+  for ( ; done == 0; )
+    {
+      line = readline ("FileMan: ");
+
+      if (!line)
+        break;
+
+      /* Remove leading and trailing whitespace from the line.
+         Then, if there is anything left, add it to the history list
+         and execute it. */
+      s = stripwhite (line);
+
+      if (*s)
+        {
+          add_history (s);
+          execute_line (s);
+        }
+
+      free (line);
+    }
+  exit (0);
+}
+
+/* Execute a command line. */
+int
+execute_line (line)
+     char *line;
+{
+  register int i;
+  COMMAND *command;
+  char *word;
+
+  /* Isolate the command word. */
+  i = 0;
+  while (line[i] &#38;&#38; whitespace (line[i]))
+    i++;
+  word = line + i;
+
+  while (line[i] &#38;&#38; !whitespace (line[i]))
+    i++;
+
+  if (line[i])
+    line[i++] = '\0';
+
+  command = find_command (word);
+
+  if (!command)
+    {
+      fprintf (stderr, "%s: No such command for FileMan.\n", word);
+      return (-1);
+    }
+
+  /* Get argument to command, if any. */
+  while (whitespace (line[i]))
+    i++;
+
+  word = line + i;
+
+  /* Call the function. */
+  return ((*(command-&#62;func)) (word));
+}
+
+/* Look up NAME as the name of a command, and return a pointer to that
+   command.  Return a NULL pointer if NAME isn't a command name. */
+COMMAND *
+find_command (name)
+     char *name;
+{
+  register int i;
+
+  for (i = 0; commands[i].name; i++)
+    if (strcmp (name, commands[i].name) == 0)
+      return (&#38;commands[i]);
+
+  return ((COMMAND *)NULL);
+}
+
+/* Strip whitespace from the start and end of STRING.  Return a pointer
+   into STRING. */
+char *
+stripwhite (string)
+     char *string;
+{
+  register char *s, *t;
+
+  for (s = string; whitespace (*s); s++)
+    ;
+    
+  if (*s == 0)
+    return (s);
+
+  t = s + strlen (s) - 1;
+  while (t &#62; s &#38;&#38; whitespace (*t))
+    t--;
+  *++t = '\0';
+
+  return s;
+}
+
+/* **************************************************************** */
+/*                                                                  */
+/*                  Interface to Readline Completion                */
+/*                                                                  */
+/* **************************************************************** */
+
+char *command_generator __P((const char *, int));
+char **fileman_completion __P((const char *, int, int));
+
+/* Tell the GNU Readline library how to complete.  We want to try to
+   complete on command names if this is the first word in the line, or
+   on filenames if not. */
+initialize_readline ()
+{
+  /* Allow conditional parsing of the ~/.inputrc file. */
+  rl_readline_name = "FileMan";
+
+  /* Tell the completer that we want a crack first. */
+  rl_attempted_completion_function = fileman_completion;
+}
+
+/* Attempt to complete on the contents of TEXT.  START and END
+   bound the region of rl_line_buffer that contains the word to
+   complete.  TEXT is the word to complete.  We can use the entire
+   contents of rl_line_buffer in case we want to do some simple
+   parsing.  Returnthe array of matches, or NULL if there aren't any. */
+char **
+fileman_completion (text, start, end)
+     const char *text;
+     int start, end;
+{
+  char **matches;
+
+  matches = (char **)NULL;
+
+  /* If this word is at the start of the line, then it is a command
+     to complete.  Otherwise it is the name of a file in the current
+     directory. */
+  if (start == 0)
+    matches = rl_completion_matches (text, command_generator);
+
+  return (matches);
+}
+
+/* Generator function for command completion.  STATE lets us
+   know whether to start from scratch; without any state
+   (i.e. STATE == 0), then we start at the top of the list. */
+char *
+command_generator (text, state)
+     const char *text;
+     int state;
+{
+  static int list_index, len;
+  char *name;
+
+  /* If this is a new word to complete, initialize now.  This
+     includes saving the length of TEXT for efficiency, and
+     initializing the index variable to 0. */
+  if (!state)
+    {
+      list_index = 0;
+      len = strlen (text);
+    }
+
+  /* Return the next name which partially matches from the
+     command list. */
+  while (name = commands[list_index].name)
+    {
+      list_index++;
+
+      if (strncmp (name, text, len) == 0)
+        return (dupstr(name));
+    }
+
+  /* If no names matched, then return NULL. */
+  return ((char *)NULL);
+}
+
+/* **************************************************************** */
+/*                                                                  */
+/*                       FileMan Commands                           */
+/*                                                                  */
+/* **************************************************************** */
+
+/* String to pass to system ().  This is for the LIST, VIEW and RENAME
+   commands. */
+static char syscom[1024];
+
+/* List the file(s) named in arg. */
+com_list (arg)
+     char *arg;
+{
+  if (!arg)
+    arg = "";
+
+  sprintf (syscom, "ls -FClg %s", arg);
+  return (system (syscom));
+}
+
+com_view (arg)
+     char *arg;
+{
+  if (!valid_argument ("view", arg))
+    return 1;
+
+  sprintf (syscom, "more %s", arg);
+  return (system (syscom));
+}
+
+com_rename (arg)
+     char *arg;
+{
+  too_dangerous ("rename");
+  return (1);
+}
+
+com_stat (arg)
+     char *arg;
+{
+  struct stat finfo;
+
+  if (!valid_argument ("stat", arg))
+    return (1);
+
+  if (stat (arg, &#38;finfo) == -1)
+    {
+      perror (arg);
+      return (1);
+    }
+
+  printf ("Statistics for `%s':\n", arg);
+
+  printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
+          finfo.st_nlink,
+          (finfo.st_nlink == 1) ? "" : "s",
+          finfo.st_size,
+          (finfo.st_size == 1) ? "" : "s");
+  printf ("Inode Last Change at: %s", ctime (&#38;finfo.st_ctime));
+  printf ("      Last access at: %s", ctime (&#38;finfo.st_atime));
+  printf ("    Last modified at: %s", ctime (&#38;finfo.st_mtime));
+  return (0);
+}
+
+com_delete (arg)
+     char *arg;
+{
+  too_dangerous ("delete");
+  return (1);
+}
+
+/* Print out help for ARG, or for all of the commands if ARG is
+   not present. */
+com_help (arg)
+     char *arg;
+{
+  register int i;
+  int printed = 0;
+
+  for (i = 0; commands[i].name; i++)
+    {
+      if (!*arg || (strcmp (arg, commands[i].name) == 0))
+        {
+          printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
+          printed++;
+        }
+    }
+
+  if (!printed)
+    {
+      printf ("No commands match `%s'.  Possibilties are:\n", arg);
+
+      for (i = 0; commands[i].name; i++)
+        {
+          /* Print in six columns. */
+          if (printed == 6)
+            {
+              printed = 0;
+              printf ("\n");
+            }
+
+          printf ("%s\t", commands[i].name);
+          printed++;
+        }
+
+      if (printed)
+        printf ("\n");
+    }
+  return (0);
+}
+
+/* Change to the directory ARG. */
+com_cd (arg)
+     char *arg;
+{
+  if (chdir (arg) == -1)
+    {
+      perror (arg);
+      return 1;
+    }
+
+  com_pwd ("");
+  return (0);
+}
+
+/* Print out the current working directory. */
+com_pwd (ignore)
+     char *ignore;
+{
+  char dir[1024], *s;
+
+  s = getcwd (dir, sizeof(dir) - 1);
+  if (s == 0)
+    {
+      printf ("Error getting pwd: %s\n", dir);
+      return 1;
+    }
+
+  printf ("Current directory is %s\n", dir);
+  return 0;
+}
+
+/* The user wishes to quit using this program.  Just set DONE
+   non-zero. */
+com_quit (arg)
+     char *arg;
+{
+  done = 1;
+  return (0);
+}
+
+/* Function which tells you that you can't do this. */
+too_dangerous (caller)
+     char *caller;
+{
+  fprintf (stderr,
+           "%s: Too dangerous for me to distribute.  Write it yourself.\n",
+           caller);
+}
+
+/* Return non-zero if ARG is a valid argument for CALLER, else print
+   an error message and return zero. */
+int
+valid_argument (caller, arg)
+     char *caller, *arg;
+{
+  if (!arg || !*arg)
+    {
+      fprintf (stderr, "%s: Argument required.\n", caller);
+      return (0);
+    }
+
+  return (1);
+}
+</PRE>
+
+
+
+<H1><A NAME="SEC48" HREF="readline.html#TOC48">Concept Index</A></H1>
+<P>
+Jump to:
+<A HREF="#cindex_c">c</A>
+-
+<A HREF="#cindex_e">e</A>
+-
+<A HREF="#cindex_i">i</A>
+-
+<A HREF="#cindex_k">k</A>
+-
+<A HREF="#cindex_n">n</A>
+-
+<A HREF="#cindex_r">r</A>
+-
+<A HREF="#cindex_y">y</A>
+<P>
+<H2><A NAME="cindex_c">c</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX3">command editing</A>
+</DIR>
+<H2><A NAME="cindex_e">e</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX4">editing command lines</A>
+</DIR>
+<H2><A NAME="cindex_i">i</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX8">initialization file, readline</A>
+<LI><A HREF="readline.html#IDX1">interaction, readline</A>
+</DIR>
+<H2><A NAME="cindex_k">k</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX7">kill ring</A>
+<LI><A HREF="readline.html#IDX5">killing text</A>
+</DIR>
+<H2><A NAME="cindex_n">n</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX2">notation, readline</A>
+</DIR>
+<H2><A NAME="cindex_r">r</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX98">readline, function</A>
+</DIR>
+<H2><A NAME="cindex_y">y</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX6">yanking text</A>
+</DIR>
+
+</P>
+
+
+<H1><A NAME="SEC49" HREF="readline.html#TOC49">Function and Variable Index</A></H1>
+<P>
+Jump to:
+<A HREF="#findex__">_</A>
+-
+<A HREF="#findex_a">a</A>
+-
+<A HREF="#findex_b">b</A>
+-
+<A HREF="#findex_c">c</A>
+-
+<A HREF="#findex_d">d</A>
+-
+<A HREF="#findex_e">e</A>
+-
+<A HREF="#findex_f">f</A>
+-
+<A HREF="#findex_h">h</A>
+-
+<A HREF="#findex_i">i</A>
+-
+<A HREF="#findex_k">k</A>
+-
+<A HREF="#findex_m">m</A>
+-
+<A HREF="#findex_n">n</A>
+-
+<A HREF="#findex_o">o</A>
+-
+<A HREF="#findex_p">p</A>
+-
+<A HREF="#findex_q">q</A>
+-
+<A HREF="#findex_r">r</A>
+-
+<A HREF="#findex_s">s</A>
+-
+<A HREF="#findex_t">t</A>
+-
+<A HREF="#findex_u">u</A>
+-
+<A HREF="#findex_v">v</A>
+-
+<A HREF="#findex_y">y</A>
+<P>
+<H2><A NAME="findex__">_</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX195">_rl_digit_p</A>
+<LI><A HREF="readline.html#IDX198">_rl_digit_value</A>
+<LI><A HREF="readline.html#IDX194">_rl_lowercase_p</A>
+<LI><A HREF="readline.html#IDX197">_rl_to_lower</A>
+<LI><A HREF="readline.html#IDX196">_rl_to_upper</A>
+<LI><A HREF="readline.html#IDX193">_rl_uppercase_p</A>
+</DIR>
+<H2><A NAME="findex_a">a</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX83">abort (C-g)</A>
+<LI><A HREF="readline.html#IDX34">accept-line (Newline or Return)</A>
+</DIR>
+<H2><A NAME="findex_b">b</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX29">backward-char (C-b)</A>
+<LI><A HREF="readline.html#IDX48">backward-delete-char (Rubout)</A>
+<LI><A HREF="readline.html#IDX59">backward-kill-line (C-x Rubout)</A>
+<LI><A HREF="readline.html#IDX63">backward-kill-word (M-<KBD>DEL</KBD>)</A>
+<LI><A HREF="readline.html#IDX31">backward-word (M-b)</A>
+<LI><A HREF="readline.html#IDX37">beginning-of-history (M-&#38;#60;)</A>
+<LI><A HREF="readline.html#IDX26">beginning-of-line (C-a)</A>
+<LI><A HREF="readline.html#IDX9">bell-style</A>
+</DIR>
+<H2><A NAME="findex_c">c</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX81">call-last-kbd-macro (C-x e)</A>
+<LI><A HREF="readline.html#IDX57">capitalize-word (M-c)</A>
+<LI><A HREF="readline.html#IDX91">character-search (C-])</A>
+<LI><A HREF="readline.html#IDX92">character-search-backward (M-C-])</A>
+<LI><A HREF="readline.html#IDX32">clear-screen (C-l)</A>
+<LI><A HREF="readline.html#IDX10">comment-begin</A>
+<LI><A HREF="readline.html#IDX74">complete (<KBD>TAB</KBD>)</A>
+<LI><A HREF="readline.html#IDX11">completion-query-items</A>
+<LI><A HREF="readline.html#IDX12">convert-meta</A>
+<LI><A HREF="readline.html#IDX68">copy-backward-word ()</A>
+<LI><A HREF="readline.html#IDX69">copy-forward-word ()</A>
+<LI><A HREF="readline.html#IDX67">copy-region-as-kill ()</A>
+</DIR>
+<H2><A NAME="findex_d">d</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX47">delete-char (C-d)</A>
+<LI><A HREF="readline.html#IDX78">delete-char-or-list ()</A>
+<LI><A HREF="readline.html#IDX65">delete-horizontal-space ()</A>
+<LI><A HREF="readline.html#IDX72">digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, ... <KBD>M--</KBD>)</A>
+<LI><A HREF="readline.html#IDX13">disable-completion</A>
+<LI><A HREF="readline.html#IDX84">do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</A>
+<LI><A HREF="readline.html#IDX56">downcase-word (M-l)</A>
+<LI><A HREF="readline.html#IDX94">dump-functions ()</A>
+<LI><A HREF="readline.html#IDX96">dump-macros ()</A>
+<LI><A HREF="readline.html#IDX95">dump-variables ()</A>
+</DIR>
+<H2><A NAME="findex_e">e</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX14">editing-mode</A>
+<LI><A HREF="readline.html#IDX15">enable-keypad</A>
+<LI><A HREF="readline.html#IDX80">end-kbd-macro (C-x ))</A>
+<LI><A HREF="readline.html#IDX38">end-of-history (M-&#38;#62;)</A>
+<LI><A HREF="readline.html#IDX27">end-of-line (C-e)</A>
+<LI><A HREF="readline.html#IDX90">exchange-point-and-mark (C-x C-x)</A>
+<LI><A HREF="readline.html#IDX16">expand-tilde</A>
+</DIR>
+<H2><A NAME="findex_f">f</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX49">forward-backward-delete-char ()</A>
+<LI><A HREF="readline.html#IDX28">forward-char (C-f)</A>
+<LI><A HREF="readline.html#IDX40">forward-search-history (C-s)</A>
+<LI><A HREF="readline.html#IDX30">forward-word (M-f)</A>
+</DIR>
+<H2><A NAME="findex_h">h</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX44">history-search-backward ()</A>
+<LI><A HREF="readline.html#IDX43">history-search-forward ()</A>
+<LI><A HREF="readline.html#IDX17">horizontal-scroll-mode</A>
+</DIR>
+<H2><A NAME="findex_i">i</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX18">input-meta</A>
+<LI><A HREF="readline.html#IDX93">insert-comment (M-#)</A>
+<LI><A HREF="readline.html#IDX76">insert-completions (M-*)</A>
+<LI><A HREF="readline.html#IDX20">isearch-terminators</A>
+</DIR>
+<H2><A NAME="findex_k">k</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX21">keymap</A>
+<LI><A HREF="readline.html#IDX58">kill-line (C-k)</A>
+<LI><A HREF="readline.html#IDX66">kill-region ()</A>
+<LI><A HREF="readline.html#IDX61">kill-whole-line ()</A>
+<LI><A HREF="readline.html#IDX62">kill-word (M-d)</A>
+</DIR>
+<H2><A NAME="findex_m">m</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX22">mark-modified-lines</A>
+<LI><A HREF="readline.html#IDX77">menu-complete ()</A>
+<LI><A HREF="readline.html#IDX19">meta-flag</A>
+</DIR>
+<H2><A NAME="findex_n">n</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX36">next-history (C-n)</A>
+<LI><A HREF="readline.html#IDX42">non-incremental-forward-search-history (M-n)</A>
+<LI><A HREF="readline.html#IDX41">non-incremental-reverse-search-history (M-p)</A>
+</DIR>
+<H2><A NAME="findex_o">o</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX23">output-meta</A>
+</DIR>
+<H2><A NAME="findex_p">p</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX75">possible-completions (M-?)</A>
+<LI><A HREF="readline.html#IDX85">prefix-meta (<KBD>ESC</KBD>)</A>
+<LI><A HREF="readline.html#IDX35">previous-history (C-p)</A>
+</DIR>
+<H2><A NAME="findex_q">q</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX50">quoted-insert (C-q or C-v)</A>
+</DIR>
+<H2><A NAME="findex_r">r</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX82">re-read-init-file (C-x C-r)</A>
+<LI><A HREF="readline.html#IDX97">readline</A>
+<LI><A HREF="readline.html#IDX33">redraw-current-line ()</A>
+<LI><A HREF="readline.html#IDX39">reverse-search-history (C-r)</A>
+<LI><A HREF="readline.html#IDX87">revert-line (M-r)</A>
+<LI><A HREF="readline.html#IDX131">rl_add_defun</A>
+<LI><A HREF="readline.html#IDX157">rl_add_funmap_entry</A>
+<LI><A HREF="readline.html#IDX160">rl_add_undo</A>
+<LI><A HREF="readline.html#IDX191">rl_alphabetic</A>
+<LI><A HREF="readline.html#IDX109">rl_already_prompted</A>
+<LI><A HREF="readline.html#IDX221">rl_attempted_completion_function</A>
+<LI><A HREF="readline.html#IDX236">rl_attempted_completion_over</A>
+<LI><A HREF="readline.html#IDX227">rl_basic_quote_characters</A>
+<LI><A HREF="readline.html#IDX226">rl_basic_word_break_characters</A>
+<LI><A HREF="readline.html#IDX158">rl_begin_undo_group</A>
+<LI><A HREF="readline.html#IDX140">rl_bind_key</A>
+<LI><A HREF="readline.html#IDX141">rl_bind_key_in_map</A>
+<LI><A HREF="readline.html#IDX125">rl_binding_keymap</A>
+<LI><A HREF="readline.html#IDX199">rl_callback_handler_install</A>
+<LI><A HREF="readline.html#IDX201">rl_callback_handler_remove</A>
+<LI><A HREF="readline.html#IDX200">rl_callback_read_char</A>
+<LI><A HREF="readline.html#IDX202">rl_catch_signals</A>
+<LI><A HREF="readline.html#IDX203">rl_catch_sigwinch</A>
+<LI><A HREF="readline.html#IDX224">rl_char_is_quoted_p</A>
+<LI><A HREF="readline.html#IDX204">rl_cleanup_after_signal</A>
+<LI><A HREF="readline.html#IDX171">rl_clear_message</A>
+<LI><A HREF="readline.html#IDX183">rl_clear_pending_input</A>
+<LI><A HREF="readline.html#IDX210">rl_clear_signals</A>
+<LI><A HREF="readline.html#IDX211">rl_complete</A>, <A HREF="readline.html#IDX214">rl_complete</A>
+<LI><A HREF="readline.html#IDX213">rl_complete_internal</A>
+<LI><A HREF="readline.html#IDX229">rl_completer_quote_characters</A>
+<LI><A HREF="readline.html#IDX228">rl_completer_word_break_characters</A>
+<LI><A HREF="readline.html#IDX232">rl_completion_append_character</A>
+<LI><A HREF="readline.html#IDX241">rl_completion_display_matches_hook</A>
+<LI><A HREF="readline.html#IDX212">rl_completion_entry_function</A>, <A HREF="readline.html#IDX220">rl_completion_entry_function</A>
+<LI><A HREF="readline.html#IDX217">rl_completion_matches</A>
+<LI><A HREF="readline.html#IDX225">rl_completion_query_items</A>
+<LI><A HREF="readline.html#IDX237">rl_completion_type</A>
+<LI><A HREF="readline.html#IDX133">rl_copy_keymap</A>
+<LI><A HREF="readline.html#IDX177">rl_copy_text</A>
+<LI><A HREF="readline.html#IDX169">rl_crlf</A>
+<LI><A HREF="readline.html#IDX176">rl_delete_text</A>
+<LI><A HREF="readline.html#IDX123">rl_deprep_term_function</A>
+<LI><A HREF="readline.html#IDX185">rl_deprep_terminal</A>
+<LI><A HREF="readline.html#IDX190">rl_ding</A>
+<LI><A HREF="readline.html#IDX240">rl_directory_completion_hook</A>
+<LI><A HREF="readline.html#IDX135">rl_discard_keymap</A>
+<LI><A HREF="readline.html#IDX106">rl_dispatching</A>
+<LI><A HREF="readline.html#IDX192">rl_display_match_list</A>
+<LI><A HREF="readline.html#IDX162">rl_do_undo</A>
+<LI><A HREF="readline.html#IDX103">rl_done</A>
+<LI><A HREF="readline.html#IDX130">rl_editing_mode</A>
+<LI><A HREF="readline.html#IDX101">rl_end</A>
+<LI><A HREF="readline.html#IDX159">rl_end_undo_group</A>
+<LI><A HREF="readline.html#IDX107">rl_erase_empty_line</A>
+<LI><A HREF="readline.html#IDX119">rl_event_hook</A>
+<LI><A HREF="readline.html#IDX182">rl_execute_next</A>
+<LI><A HREF="readline.html#IDX124">rl_executing_keymap</A>
+<LI><A HREF="readline.html#IDX126">rl_executing_macro</A>
+<LI><A HREF="readline.html#IDX174">rl_expand_prompt</A>
+<LI><A HREF="readline.html#IDX128">rl_explicit_arg</A>
+<LI><A HREF="readline.html#IDX188">rl_extend_line_buffer</A>
+<LI><A HREF="readline.html#IDX234">rl_filename_completion_desired</A>
+<LI><A HREF="readline.html#IDX218">rl_filename_completion_function</A>
+<LI><A HREF="readline.html#IDX223">rl_filename_dequoting_function</A>
+<LI><A HREF="readline.html#IDX230">rl_filename_quote_characters</A>
+<LI><A HREF="readline.html#IDX235">rl_filename_quoting_desired</A>
+<LI><A HREF="readline.html#IDX222">rl_filename_quoting_function</A>
+<LI><A HREF="readline.html#IDX165">rl_forced_update_display</A>
+<LI><A HREF="readline.html#IDX205">rl_free_line_state</A>
+<LI><A HREF="readline.html#IDX161">rl_free_undo_list</A>
+<LI><A HREF="readline.html#IDX154">rl_function_dumper</A>
+<LI><A HREF="readline.html#IDX151">rl_function_of_keyseq</A>
+<LI><A HREF="readline.html#IDX156">rl_funmap_names</A>
+<LI><A HREF="readline.html#IDX147">rl_generic_bind</A>
+<LI><A HREF="readline.html#IDX136">rl_get_keymap</A>
+<LI><A HREF="readline.html#IDX138">rl_get_keymap_by_name</A>
+<LI><A HREF="readline.html#IDX139">rl_get_keymap_name</A>
+<LI><A HREF="readline.html#IDX180">rl_getc</A>
+<LI><A HREF="readline.html#IDX120">rl_getc_function</A>
+<LI><A HREF="readline.html#IDX111">rl_gnu_readline_p</A>
+<LI><A HREF="readline.html#IDX233">rl_ignore_completion_duplicates</A>
+<LI><A HREF="readline.html#IDX239">rl_ignore_some_completions_function</A>
+<LI><A HREF="readline.html#IDX238">rl_inhibit_completion</A>
+<LI><A HREF="readline.html#IDX189">rl_initialize</A>
+<LI><A HREF="readline.html#IDX216">rl_insert_completions</A>
+<LI><A HREF="readline.html#IDX175">rl_insert_text</A>
+<LI><A HREF="readline.html#IDX114">rl_instream</A>
+<LI><A HREF="readline.html#IDX152">rl_invoking_keyseqs</A>
+<LI><A HREF="readline.html#IDX153">rl_invoking_keyseqs_in_map</A>
+<LI><A HREF="readline.html#IDX178">rl_kill_text</A>
+<LI><A HREF="readline.html#IDX116">rl_last_func</A>
+<LI><A HREF="readline.html#IDX110">rl_library_version</A>
+<LI><A HREF="readline.html#IDX99">rl_line_buffer</A>
+<LI><A HREF="readline.html#IDX155">rl_list_funmap_names</A>
+<LI><A HREF="readline.html#IDX132">rl_make_bare_keymap</A>
+<LI><A HREF="readline.html#IDX134">rl_make_keymap</A>
+<LI><A HREF="readline.html#IDX102">rl_mark</A>
+<LI><A HREF="readline.html#IDX170">rl_message</A>
+<LI><A HREF="readline.html#IDX163">rl_modifying</A>
+<LI><A HREF="readline.html#IDX150">rl_named_function</A>
+<LI><A HREF="readline.html#IDX104">rl_num_chars_to_read</A>
+<LI><A HREF="readline.html#IDX129">rl_numeric_arg</A>
+<LI><A HREF="readline.html#IDX166">rl_on_new_line</A>
+<LI><A HREF="readline.html#IDX167">rl_on_new_line_with_prompt</A>
+<LI><A HREF="readline.html#IDX115">rl_outstream</A>
+<LI><A HREF="readline.html#IDX148">rl_parse_and_bind</A>
+<LI><A HREF="readline.html#IDX105">rl_pending_input</A>
+<LI><A HREF="readline.html#IDX100">rl_point</A>
+<LI><A HREF="readline.html#IDX215">rl_possible_completions</A>
+<LI><A HREF="readline.html#IDX118">rl_pre_input_hook</A>
+<LI><A HREF="readline.html#IDX122">rl_prep_term_function</A>
+<LI><A HREF="readline.html#IDX184">rl_prep_terminal</A>
+<LI><A HREF="readline.html#IDX108">rl_prompt</A>
+<LI><A HREF="readline.html#IDX149">rl_read_init_file</A>
+<LI><A HREF="readline.html#IDX179">rl_read_key</A>
+<LI><A HREF="readline.html#IDX113">rl_readline_name</A>
+<LI><A HREF="readline.html#IDX127">rl_readline_state</A>
+<LI><A HREF="readline.html#IDX164">rl_redisplay</A>
+<LI><A HREF="readline.html#IDX121">rl_redisplay_function</A>
+<LI><A HREF="readline.html#IDX206">rl_reset_after_signal</A>
+<LI><A HREF="readline.html#IDX168">rl_reset_line_state</A>
+<LI><A HREF="readline.html#IDX187">rl_reset_terminal</A>
+<LI><A HREF="readline.html#IDX207">rl_resize_terminal</A>
+<LI><A HREF="readline.html#IDX173">rl_restore_prompt</A>
+<LI><A HREF="readline.html#IDX172">rl_save_prompt</A>
+<LI><A HREF="readline.html#IDX146">rl_set_key</A>
+<LI><A HREF="readline.html#IDX137">rl_set_keymap</A>
+<LI><A HREF="readline.html#IDX208">rl_set_screen_size</A>
+<LI><A HREF="readline.html#IDX209">rl_set_signals</A>
+<LI><A HREF="readline.html#IDX231">rl_special_prefixes</A>
+<LI><A HREF="readline.html#IDX117">rl_startup_hook</A>
+<LI><A HREF="readline.html#IDX181">rl_stuff_char</A>
+<LI><A HREF="readline.html#IDX112">rl_terminal_name</A>
+<LI><A HREF="readline.html#IDX186">rl_tty_set_default_bindings</A>
+<LI><A HREF="readline.html#IDX145">rl_unbind_command_in_map</A>
+<LI><A HREF="readline.html#IDX144">rl_unbind_function_in_map</A>
+<LI><A HREF="readline.html#IDX142">rl_unbind_key</A>
+<LI><A HREF="readline.html#IDX143">rl_unbind_key_in_map</A>
+<LI><A HREF="readline.html#IDX219">rl_username_completion_function</A>
+</DIR>
+<H2><A NAME="findex_s">s</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX52">self-insert (a, b, A, 1, !, ...)</A>
+<LI><A HREF="readline.html#IDX89">set-mark (C-@)</A>
+<LI><A HREF="readline.html#IDX24">show-all-if-ambiguous</A>
+<LI><A HREF="readline.html#IDX79">start-kbd-macro (C-x ()</A>
+</DIR>
+<H2><A NAME="findex_t">t</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX51">tab-insert (M-<KBD>TAB</KBD>)</A>
+<LI><A HREF="readline.html#IDX88">tilde-expand (M-~)</A>
+<LI><A HREF="readline.html#IDX53">transpose-chars (C-t)</A>
+<LI><A HREF="readline.html#IDX54">transpose-words (M-t)</A>
+</DIR>
+<H2><A NAME="findex_u">u</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX86">undo (C-_ or C-x C-u)</A>
+<LI><A HREF="readline.html#IDX73">universal-argument ()</A>
+<LI><A HREF="readline.html#IDX60">unix-line-discard (C-u)</A>
+<LI><A HREF="readline.html#IDX64">unix-word-rubout (C-w)</A>
+<LI><A HREF="readline.html#IDX55">upcase-word (M-u)</A>
+</DIR>
+<H2><A NAME="findex_v">v</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX25">visible-stats</A>
+</DIR>
+<H2><A NAME="findex_y">y</A></H2>
+<DIR>
+<LI><A HREF="readline.html#IDX70">yank (C-y)</A>
+<LI><A HREF="readline.html#IDX46">yank-last-arg (M-. or M-_)</A>
+<LI><A HREF="readline.html#IDX45">yank-nth-arg (M-C-y)</A>
+<LI><A HREF="readline.html#IDX71">yank-pop (M-y)</A>
+</DIR>
+
+</P>
+<P><HR><P>
+This document was generated on 5 Febuary 2001 using the
+<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>
+translator version 1.52.</P>
+</BODY>
+</HTML>
new file mode 100644
--- /dev/null
+++ b/readline/doc/readline.info
@@ -0,0 +1,3400 @@
+This is readline.info, produced by makeinfo version 4.0 from
+/usr/homes/chet/src/bash/readline-src/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
+need to provide a command line interface.
+
+   Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice pare
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+
+File: readline.info,  Node: Top,  Next: Command Line Editing,  Up: (dir)
+
+GNU Readline Library
+********************
+
+   This document describes the GNU Readline Library, a utility which
+aids in the consistency of user interface across discrete programs that
+need to provide a command line interface.
+
+* Menu:
+
+* Command Line Editing::	   GNU Readline User's Manual.
+* Programming with GNU Readline::  GNU Readline Programmer's Manual.
+* Concept Index::		   Index of concepts described in this manual.
+* Function and Variable Index::	   Index of externally visible functions
+				   and variables.
+
+
+File: readline.info,  Node: Command Line Editing,  Next: Programming with GNU Readline,  Prev: Top,  Up: Top
+
+Command Line Editing
+********************
+
+   This chapter describes the basic features of the GNU command line
+editing interface.
+
+* Menu:
+
+* Introduction and Notation::	Notation used in this text.
+* Readline Interaction::	The minimum set of commands for editing a line.
+* Readline Init File::		Customizing Readline from a user's view.
+* Bindable Readline Commands::	A description of most of the Readline commands
+				available for binding
+* Readline vi Mode::		A short description of how to make Readline
+				behave like the vi editor.
+
+
+File: readline.info,  Node: Introduction and Notation,  Next: Readline Interaction,  Up: Command Line Editing
+
+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 `M-k' is read as `Meta-K' and describes the character
+produced when the Meta key (if you have one) is depressed, and the <k>
+key is pressed.  The Meta key is labeled <ALT> on many keyboards.  On
+keyboards with two keys labeled <ALT> (usually to either side of the
+space bar), the <ALT> on the left side is generally set to work as a
+Meta key.  The <ALT> key on the right may also be configured to work as
+a Meta key or may be configured as some other modifier, such as a
+Compose key for typing accented characters.
+
+   If you do not have a Meta or <ALT> key, or another key working as 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.
+
+   The text `M-C-k' is read as `Meta-Control-k' and describes the
+character produced by "metafying" `C-k'.
+
+   In addition, several keys have their own names.  Specifically,
+<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
+when seen in this text, or in an init file (*note Readline Init File::).
+If your keyboard lacks a <LFD> key, typing <C-j> will produce the
+desired character.  The <RET> key may be labeled <Return> or <Enter> on
+some keyboards.
+
+
+File: readline.info,  Node: Readline Interaction,  Next: Readline Init File,  Prev: Introduction and Notation,  Up: Command Line Editing
+
+Readline Interaction
+====================
+
+   Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled.  The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line.  Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections.  Then, when you are satisfied with
+the line, you simply press <RET>.  You do not have to be at the end of
+the line to press <RET>; the entire line is accepted regardless of the
+location of the cursor within the line.
+
+* Menu:
+
+* Readline Bare Essentials::	The least you need to know about Readline.
+* Readline Movement Commands::	Moving about the input line.
+* Readline Killing Commands::	How to delete text, and how to get it back!
+* Readline Arguments::		Giving numeric arguments to commands.
+* Searching::			Searching through previous lines.
+
+
+File: readline.info,  Node: Readline Bare Essentials,  Next: Readline Movement Commands,  Up: Readline Interaction
+
+Readline Bare Essentials
+------------------------
+
+   In order to enter characters into the line, simply type them.  The
+typed character appears where the cursor was, and then the cursor moves
+one space to the right.  If you mistype a character, you can use your
+erase character to back up and delete the mistyped character.
+
+   Sometimes you may mistype a character, and not notice the error
+until you have typed several other characters.  In that case, you can
+type `C-b' to move the cursor to the left, and then correct your
+mistake.  Afterwards, you can move the cursor to the right with `C-f'.
+
+   When you add text in the middle of a line, you will notice that
+characters to the right of the cursor are `pushed over' to make room
+for the text that you have inserted.  Likewise, when you delete text
+behind the cursor, characters to the right of the cursor are `pulled
+back' to fill in the blank space created by the removal of the text.  A
+list of the bare essentials for editing the text of an input line
+follows.
+
+`C-b'
+     Move back one character.
+
+`C-f'
+     Move forward one character.
+
+<DEL> or <Backspace>
+     Delete the character to the left of the cursor.
+
+`C-d'
+     Delete the character underneath the cursor.
+
+Printing characters
+     Insert the character into the line at the cursor.
+
+`C-_' or `C-x C-u'
+     Undo the last editing command.  You can undo all the way back to an
+     empty line.
+
+(Depending on your configuration, the <Backspace> key be set to delete
+the character to the left of the cursor and the <DEL> key set to delete
+the character underneath the cursor, like `C-d', rather than the
+character to the left of the cursor.)
+
+
+File: readline.info,  Node: Readline Movement Commands,  Next: Readline Killing Commands,  Prev: Readline Bare Essentials,  Up: Readline Interaction
+
+Readline Movement Commands
+--------------------------
+
+   The above table describes the most basic keystrokes that you need in
+order to do editing of the input line.  For your convenience, many
+other commands have been added in addition to `C-b', `C-f', `C-d', and
+<DEL>.  Here are some commands for moving more rapidly about the line.
+
+`C-a'
+     Move to the start of the line.
+
+`C-e'
+     Move to the end of the line.
+
+`M-f'
+     Move forward a word, where a word is composed of letters and
+     digits.
+
+`M-b'
+     Move backward a word.
+
+`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.
+
+
+File: readline.info,  Node: Readline Killing Commands,  Next: Readline Arguments,  Prev: Readline Movement Commands,  Up: Readline Interaction
+
+Readline Killing Commands
+-------------------------
+
+   "Killing" text means to delete the text from the line, but to save
+it away for later use, usually by "yanking" (re-inserting) it back into
+the line.  (`Cut' and `paste' are more recent jargon for `kill' and
+`yank'.)
+
+   If the description for a command says that it `kills' text, then you
+can be sure that you can get the text back in a different (or the same)
+place later.
+
+   When you use a kill command, the text is saved in a "kill-ring".
+Any number of consecutive kills save all of the killed text together, so
+that when you yank it back, you get it all.  The kill ring is not line
+specific; the text that you killed on a previously typed line is
+available to be yanked back later, when you are typing another line.
+
+   Here is the list of commands for killing text.
+
+`C-k'
+     Kill the text from the current cursor position to the end of the
+     line.
+
+`M-d'
+     Kill from the cursor to the end of the current word, or, if between
+     words, to the end of the next word.  Word boundaries are the same
+     as those used by `M-f'.
+
+`M-<DEL>'
+     Kill from the cursor the start of the previous word, or, if between
+     words, to the start of the previous word.  Word boundaries are the
+     same as those used by `M-b'.
+
+`C-w'
+     Kill from the cursor to the previous whitespace.  This is
+     different than `M-<DEL>' because the word boundaries differ.
+
+   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'
+     Yank the most recently killed text back into the buffer at the
+     cursor.
+
+`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'.
+
+
+File: readline.info,  Node: Readline Arguments,  Next: Searching,  Prev: Readline Killing Commands,  Up: Readline Interaction
+
+Readline Arguments
+------------------
+
+   You can pass numeric arguments to Readline commands.  Sometimes the
+argument acts as a repeat count, other times it is the sign of the
+argument that is significant.  If you pass a negative argument to a
+command which normally acts in a forward direction, that command will
+act in a backward direction.  For example, to kill text back to the
+start of the line, you might type `M-- C-k'.
+
+   The general way to pass numeric arguments to a command is to type
+meta digits before the command.  If the first `digit' typed is a minus
+sign (`-'), then the sign of the argument will be negative.  Once you
+have typed one meta digit to get the argument started, you can type the
+remainder of the digits, and then the command.  For example, to give
+the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
+will delete the next ten characters on the input line.
+
+
+File: readline.info,  Node: Searching,  Prev: Readline Arguments,  Up: Readline Interaction
+
+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 searches begin before the user has finished typing the
+search string.  As each character of the search string is typed,
+Readline displays the next entry from the history matching the string
+typed so far.  An incremental search requires only as many characters
+as needed to find the desired history entry.  To search backward in the
+history for a particular string, type `C-r'.  Typing `C-s' searches
+forward through the history.  The characters present in the value of
+the `isearch-terminators' variable are used to terminate an incremental
+search.  If that variable has not been assigned a value, the <ESC> and
+`C-J' characters will terminate an incremental search.  `C-g' will
+abort an incremental search and restore the original line.  When the
+search is terminated, the history entry containing the search string
+becomes the current line.
+
+   To find other matching entries in the history list, type `C-r' or
+`C-s' as appropriate.  This will search backward or forward in the
+history for the next entry matching the search string typed so far.
+Any other key sequence bound to a Readline command will terminate the
+search and execute that command.  For instance, a <RET> will terminate
+the search and accept the line, thereby executing the command from the
+history list.  A movement command will terminate the search, make the
+last line found the current line, and begin editing.
+
+   Non-incremental searches read the entire search string before
+starting to search for matching history lines.  The search string may be
+typed by the user or be part of the contents of the current line.
+
+
+File: readline.info,  Node: Readline Init File,  Next: Bindable Readline Commands,  Prev: Readline Interaction,  Up: Command Line Editing
+
+Readline Init File
+==================
+
+   Although the Readline library comes with a set of Emacs-like
+keybindings installed by default, it is possible to use a different set
+of keybindings.  Any user can customize programs that use Readline by
+putting commands in an "inputrc" file, conventionally in his home
+directory.  The name of this file is taken from the value of the
+environment variable `INPUTRC'.  If that variable is unset, the default
+is `~/.inputrc'.
+
+   When a program which uses the Readline library starts up, the init
+file is read, and the key bindings are set.
+
+   In addition, the `C-x C-r' command re-reads this init file, thus
+incorporating any changes that you might have made to it.
+
+* Menu:
+
+* Readline Init File Syntax::	Syntax for the commands in the inputrc file.
+
+* Conditional Init Constructs::	Conditional key bindings in the inputrc file.
+
+* Sample Init File::		An example inputrc file.
+
+
+File: readline.info,  Node: Readline Init File Syntax,  Next: Conditional Init Constructs,  Up: Readline Init File
+
+Readline Init File Syntax
+-------------------------
+
+   There are only a few basic constructs allowed in the Readline init
+file.  Blank lines are ignored.  Lines beginning with a `#' are
+comments.  Lines beginning with a `$' indicate conditional constructs
+(*note Conditional Init Constructs::).  Other lines denote variable
+settings and key bindings.
+
+Variable Settings
+     You can modify the run-time behavior of Readline by altering the
+     values of variables in Readline using the `set' command within the
+     init file.  Here is how to change from the default Emacs-like key
+     binding to use `vi' line editing commands:
+
+          set editing-mode vi
+
+     A great deal of run-time behavior is changeable with the following
+     variables.
+
+    `bell-style'
+          Controls what happens when Readline wants to ring the
+          terminal bell.  If set to `none', Readline never rings the
+          bell.  If set to `visible', Readline uses a visible bell if
+          one is available.  If set to `audible' (the default),
+          Readline attempts to ring the terminal's bell.
+
+    `comment-begin'
+          The string to insert at the beginning of the line when the
+          `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
+          possibilities.  If the number of possible completions is
+          greater than this value, Readline will ask the user whether
+          or not he wishes to view them; otherwise, they are simply
+          listed.  This variable must be set to an integer value
+          greater than or equal to 0.  The default limit is `100'.
+
+    `convert-meta'
+          If set to `on', Readline will convert characters with the
+          eighth bit set to an ASCII key sequence by stripping the
+          eighth bit and prefixing an <ESC> character, converting them
+          to a meta-prefixed key sequence.  The default value is `on'.
+
+    `disable-completion'
+          If set to `On', Readline will inhibit word completion.
+          Completion  characters will be inserted into the line as if
+          they had been mapped to `self-insert'.  The default is `off'.
+
+    `editing-mode'
+          The `editing-mode' variable controls which default set of key
+          bindings is used.  By default, Readline starts up in Emacs
+          editing mode, where the keystrokes are most similar to Emacs.
+          This variable can be set to either `emacs' or `vi'.
+
+    `enable-keypad'
+          When set to `on', Readline will try to enable the application
+          keypad when it is called.  Some systems need this to enable
+          the arrow keys.  The default is `off'.
+
+    `expand-tilde'
+          If set to `on', tilde expansion is performed when Readline
+          attempts word completion.  The default is `off'.
+
+    `horizontal-scroll-mode'
+          This variable can be set to either `on' or `off'.  Setting it
+          to `on' means that the text of the lines being edited will
+          scroll horizontally on a single screen line when they are
+          longer than the width of the screen, instead of wrapping onto
+          a new screen line.  By default, this variable is set to `off'.
+
+    `input-meta'
+          If set to `on', Readline will enable eight-bit input (it will
+          not clear the eighth bit in the characters it reads),
+          regardless of what the terminal claims it can support.  The
+          default value is `off'.  The name `meta-flag' is a synonym
+          for this variable.
+
+    `isearch-terminators'
+          The string of characters that should terminate an incremental
+          search without subsequently executing the character as a
+          command (*note Searching::).  If this variable has not been
+          given a value, the characters <ESC> and `C-J' will terminate
+          an incremental search.
+
+    `keymap'
+          Sets Readline's idea of the current keymap for key binding
+          commands.  Acceptable `keymap' names are `emacs',
+          `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move',
+          `vi-command', and `vi-insert'.  `vi' is equivalent to
+          `vi-command'; `emacs' is equivalent to `emacs-standard'.  The
+          default value is `emacs'.  The value of the `editing-mode'
+          variable also affects the default keymap.
+
+    `mark-directories'
+          If set to `on', completed directory names have a slash
+          appended.  The default is `on'.
+
+    `mark-modified-lines'
+          This variable, when set to `on', causes Readline to display an
+          asterisk (`*') at the start of history lines which have been
+          modified.  This variable is `off' by default.
+
+    `output-meta'
+          If set to `on', Readline will display characters with the
+          eighth bit set directly rather than as a meta-prefixed escape
+          sequence.  The default is `off'.
+
+    `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
+          completion cause the matches to be listed immediately instead
+          of ringing the bell.  The default value is `off'.
+
+    `visible-stats'
+          If set to `on', a character denoting a file's type is
+          appended to the filename when listing possible completions.
+          The default is `off'.
+
+Key Bindings
+     The syntax for controlling key bindings in the init file is
+     simple.  First you need to find the name of the command that you
+     want to change.  The following sections contain tables of the
+     command name, the default keybinding, if any, and a short
+     description of what the command does.
+
+     Once you know the name of the command, simply place on a line in
+     the init file the name of the key you wish to bind the command to,
+     a colon, and then the name of the command.  The name of the key
+     can be expressed in different ways, depending on what you find most
+     comfortable.
+
+    KEYNAME: FUNCTION-NAME or MACRO
+          KEYNAME is the name of a key spelled out in English.  For
+          example:
+               Control-u: universal-argument
+               Meta-Rubout: backward-kill-word
+               Control-o: "> output"
+
+          In the above example, `C-u' is bound to the function
+          `universal-argument', `M-DEL' is bound to the function
+          `backward-kill-word', and `C-o' is bound to run the macro
+          expressed on the right hand side (that is, to insert the text
+          `> output' into the line).
+
+          A number of symbolic character names are recognized while
+          processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
+          NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
+
+    "KEYSEQ": FUNCTION-NAME or MACRO
+          KEYSEQ differs from KEYNAME above in that strings denoting an
+          entire key sequence can be specified, by placing the key
+          sequence in double quotes.  Some GNU Emacs style key escapes
+          can be used, as in the following example, but the special
+          character names are not recognized.
+
+               "\C-u": universal-argument
+               "\C-x\C-r": re-read-init-file
+               "\e[11~": "Function Key 1"
+
+          In the above example, `C-u' is again bound to the function
+          `universal-argument' (just as it was in the first example),
+          `C-x C-r' is bound to the function `re-read-init-file', and
+          `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
+          Key 1'.
+
+     The following GNU Emacs style escape sequences are available when
+     specifying key sequences:
+
+    `\C-'
+          control prefix
+
+    `\M-'
+          meta prefix
+
+    `\e'
+          an escape character
+
+    `\\'
+          backslash
+
+    `\"'
+          <">, a double quotation mark
+
+    `\''
+          <'>, a single quote or apostrophe
+
+     In addition to the GNU Emacs style escape sequences, a second set
+     of backslash escapes is available:
+
+    `\a'
+          alert (bell)
+
+    `\b'
+          backspace
+
+    `\d'
+          delete
+
+    `\f'
+          form feed
+
+    `\n'
+          newline
+
+    `\r'
+          carriage return
+
+    `\t'
+          horizontal tab
+
+    `\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
+
+Conditional Init Constructs
+---------------------------
+
+   Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key bindings
+and variable settings to be performed as the result of tests.  There
+are four parser directives used.
+
+`$if'
+     The `$if' construct allows bindings to be made based on the
+     editing mode, the terminal being used, or the application using
+     Readline.  The text of the test extends to the end of the line; no
+     characters are required to isolate it.
+
+    `mode'
+          The `mode=' form of the `$if' directive is used to test
+          whether Readline is in `emacs' or `vi' mode.  This may be
+          used in conjunction with the `set keymap' command, for
+          instance, to set bindings in the `emacs-standard' and
+          `emacs-ctlx' keymaps only if Readline is starting out in
+          `emacs' mode.
+
+    `term'
+          The `term=' form may be used to include terminal-specific key
+          bindings, perhaps to bind the key sequences output by the
+          terminal's function keys.  The word on the right side of the
+          `=' is tested against both the full name of the terminal and
+          the portion of the terminal name before the first `-'.  This
+          allows `sun' to match both `sun' and `sun-cmd', for instance.
+
+    `application'
+          The APPLICATION construct is used to include
+          application-specific settings.  Each program using the
+          Readline library sets the APPLICATION NAME, and you can test
+          for it.  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:
+               $if Bash
+               # Quote the current or previous word
+               "\C-xq": "\eb\"\ef\""
+               $endif
+
+`$endif'
+     This command, as seen in the previous example, terminates an `$if'
+     command.
+
+`$else'
+     Commands in this branch of the `$if' directive are executed if the
+     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
+
+Sample Init File
+----------------
+
+   Here is an example of an INPUTRC file.  This illustrates key
+binding, variable assignment, and conditional syntax.
+
+
+     # This file controls the behaviour of line input editing for
+     # programs that use the Gnu Readline library.  Existing programs
+     # include FTP, Bash, and Gdb.
+     #
+     # You can re-read the inputrc file with C-x C-r.
+     # Lines beginning with '#' are comments.
+     #
+     # First, include any systemwide bindings and variable assignments from
+     # /etc/Inputrc
+     $include /etc/Inputrc
+     
+     #
+     # Set various bindings for emacs mode.
+     
+     set editing-mode emacs
+     
+     $if mode=emacs
+     
+     Meta-Control-h:	backward-kill-word	Text after the function name is ignored
+     
+     #
+     # Arrow keys in keypad mode
+     #
+     #"\M-OD":        backward-char
+     #"\M-OC":        forward-char
+     #"\M-OA":        previous-history
+     #"\M-OB":        next-history
+     #
+     # Arrow keys in ANSI mode
+     #
+     "\M-[D":        backward-char
+     "\M-[C":        forward-char
+     "\M-[A":        previous-history
+     "\M-[B":        next-history
+     #
+     # Arrow keys in 8 bit keypad mode
+     #
+     #"\M-\C-OD":       backward-char
+     #"\M-\C-OC":       forward-char
+     #"\M-\C-OA":       previous-history
+     #"\M-\C-OB":       next-history
+     #
+     # Arrow keys in 8 bit ANSI mode
+     #
+     #"\M-\C-[D":       backward-char
+     #"\M-\C-[C":       forward-char
+     #"\M-\C-[A":       previous-history
+     #"\M-\C-[B":       next-history
+     
+     C-q: quoted-insert
+     
+     $endif
+     
+     # An old-style binding.  This happens to be the default.
+     TAB: complete
+     
+     # Macros that are convenient for shell interaction
+     $if Bash
+     # edit the path
+     "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
+     # prepare to type a quoted word -- insert open and close double quotes
+     # and move to just after the open quote
+     "\C-x\"": "\"\"\C-b"
+     # insert a backslash (testing backslash escapes in sequences and macros)
+     "\C-x\\": "\\"
+     # Quote the current or previous word
+     "\C-xq": "\eb\"\ef\""
+     # Add a binding to refresh the line, which is unbound
+     "\C-xr": redraw-current-line
+     # Edit variable on current line.
+     "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
+     $endif
+     
+     # use a visible bell if one is available
+     set bell-style visible
+     
+     # don't strip characters to 7 bits when reading
+     set input-meta on
+     
+     # allow iso-latin1 characters to be inserted rather than converted to
+     # prefix-meta sequences
+     set convert-meta off
+     
+     # display characters with the eighth bit set directly rather than
+     # as meta-prefixed characters
+     set output-meta on
+     
+     # if there are more than 150 possible completions for a word, ask the
+     # user if he wants to see all of them
+     set completion-query-items 150
+     
+     # For FTP
+     $if Ftp
+     "\C-xg": "get \M-?"
+     "\C-xt": "put \M-?"
+     "\M-.": yank-last-arg
+     $endif
+
+
+File: readline.info,  Node: Bindable Readline Commands,  Next: Readline vi Mode,  Prev: Readline Init File,  Up: Command Line Editing
+
+Bindable Readline Commands
+==========================
+
+* Menu:
+
+* Commands For Moving::		Moving about the line.
+* Commands For History::	Getting at previous lines.
+* Commands For Text::		Commands for changing text.
+* Commands For Killing::	Commands for killing and yanking.
+* Numeric Arguments::		Specifying numeric arguments, repeat counts.
+* Commands For Completion::	Getting Readline to do the typing for you.
+* Keyboard Macros::		Saving and re-executing typed characters
+* Miscellaneous Commands::	Other miscellaneous commands.
+
+   This section describes Readline commands that may be bound to key
+sequences.
+
+   Command names without an accompanying key sequence are unbound by
+default.  In the following descriptions, "point" refers to the current
+cursor position, and "mark" refers to a cursor position saved by the
+`set-mark' command.  The text between the point and mark is referred to
+as the "region".
+
+
+File: readline.info,  Node: Commands For Moving,  Next: Commands For History,  Up: Bindable Readline Commands
+
+Commands For Moving
+-------------------
+
+`beginning-of-line (C-a)'
+     Move to the start of the current line.
+
+`end-of-line (C-e)'
+     Move to the end of the line.
+
+`forward-char (C-f)'
+     Move forward a character.
+
+`backward-char (C-b)'
+     Move back a character.
+
+`forward-word (M-f)'
+     Move forward to the end of the next word.  Words are composed of
+     letters and digits.
+
+`backward-word (M-b)'
+     Move back to the start of the current or previous word.  Words are
+     composed of letters and digits.
+
+`clear-screen (C-l)'
+     Clear the screen and redraw the current line, leaving the current
+     line at the top of the screen.
+
+`redraw-current-line ()'
+     Refresh the current line.  By default, this is unbound.
+
+
+File: readline.info,  Node: Commands For History,  Next: Commands For Text,  Prev: Commands For Moving,  Up: Bindable Readline Commands
+
+Commands For Manipulating The History
+-------------------------------------
+
+`accept-line (Newline or Return)'
+     Accept the line regardless of where the cursor is.  If this line is
+     non-empty, it may be added to the history list for future recall
+     with `add_history()'.  If this line is a modified history line,
+     then restore the history line to its original state.
+
+`previous-history (C-p)'
+     Move `up' through the history list.
+
+`next-history (C-n)'
+     Move `down' through the history list.
+
+`beginning-of-history (M-<)'
+     Move to the first line in the history.
+
+`end-of-history (M->)'
+     Move to the end of the input history, i.e., the line currently
+     being entered.
+
+`reverse-search-history (C-r)'
+     Search backward starting at the current line and moving `up'
+     through the history as necessary.  This is an incremental search.
+
+`forward-search-history (C-s)'
+     Search forward starting at the current line and moving `down'
+     through the the history as necessary.  This is an incremental
+     search.
+
+`non-incremental-reverse-search-history (M-p)'
+     Search backward starting at the current line and moving `up'
+     through the history as necessary using a non-incremental search
+     for a string supplied by the user.
+
+`non-incremental-forward-search-history (M-n)'
+     Search forward starting at the current line and moving `down'
+     through the the history as necessary using a non-incremental search
+     for a string supplied by the user.
+
+`history-search-forward ()'
+     Search forward through the history for the string of characters
+     between the start of the current line and the point.  This is a
+     non-incremental search.  By default, this command is unbound.
+
+`history-search-backward ()'
+     Search backward through the history for the string of characters
+     between the start of the current line and the point.  This is a
+     non-incremental search.  By default, this command is unbound.
+
+`yank-nth-arg (M-C-y)'
+     Insert the first argument to the previous command (usually the
+     second word on the previous line).  With an argument N, insert the
+     Nth word from the previous command (the words in the previous
+     command begin with word 0).  A negative argument inserts the Nth
+     word from the end of the previous command.
+
+`yank-last-arg (M-. or M-_)'
+     Insert last argument to the previous command (the last word of the
+     previous history entry).  With an argument, behave exactly like
+     `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
+
+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 bound to `delete-char', then
+     return EOF.
+
+`backward-delete-char (Rubout)'
+     Delete the character behind the cursor.  A numeric argument means
+     to kill the characters instead of deleting them.
+
+`forward-backward-delete-char ()'
+     Delete the character under the cursor, unless the cursor is at the
+     end of the line, in which case the character behind the cursor is
+     deleted.  By default, this is not bound to a key.
+
+`quoted-insert (C-q or C-v)'
+     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.
+
+`self-insert (a, b, A, 1, !, ...)'
+     Insert yourself.
+
+`transpose-chars (C-t)'
+     Drag the character before the cursor forward over the character at
+     the cursor, moving the cursor forward as well.  If the insertion
+     point is at the end of the line, then this transposes the last two
+     characters of the line.  Negative arguments have no effect.
+
+`transpose-words (M-t)'
+     Drag the word before point past the word after point, moving point
+     past that word as well.
+
+`upcase-word (M-u)'
+     Uppercase the current (or following) word.  With a negative
+     argument, uppercase the previous word, but do not move the cursor.
+
+`downcase-word (M-l)'
+     Lowercase the current (or following) word.  With a negative
+     argument, lowercase the previous word, but do not move the cursor.
+
+`capitalize-word (M-c)'
+     Capitalize the current (or following) word.  With a negative
+     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
+
+Killing And Yanking
+-------------------
+
+`kill-line (C-k)'
+     Kill the text from point to the end of the line.
+
+`backward-kill-line (C-x Rubout)'
+     Kill backward to the beginning of the line.
+
+`unix-line-discard (C-u)'
+     Kill backward from the cursor to the beginning of the current line.
+
+`kill-whole-line ()'
+     Kill all characters on the current line, no matter point is.  By
+     default, this is unbound.
+
+`kill-word (M-d)'
+     Kill from point to the end of the current word, or if between
+     words, to the end of the next word.  Word boundaries are the same
+     as `forward-word'.
+
+`backward-kill-word (M-<DEL>)'
+     Kill the word behind point.  Word boundaries are the same as
+     `backward-word'.
+
+`unix-word-rubout (C-w)'
+     Kill the word behind point, using white space as a word boundary.
+     The killed text is saved on the kill-ring.
+
+`delete-horizontal-space ()'
+     Delete all spaces and tabs around point.  By default, this is
+     unbound.
+
+`kill-region ()'
+     Kill the text in the current region.  By default, this command is
+     unbound.
+
+`copy-region-as-kill ()'
+     Copy the text in the region to the kill buffer, so it can be yanked
+     right away.  By default, this command is unbound.
+
+`copy-backward-word ()'
+     Copy the word before point to the kill buffer.  The word
+     boundaries are the same as `backward-word'.  By default, this
+     command is unbound.
+
+`copy-forward-word ()'
+     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
+     cursor position.
+
+`yank-pop (M-y)'
+     Rotate the kill-ring, and yank the new top.  You can only do this
+     if the prior command is `yank' or `yank-pop'.
+
+
+File: readline.info,  Node: Numeric Arguments,  Next: Commands For Completion,  Prev: Commands For Killing,  Up: Bindable Readline Commands
+
+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.
+
+`universal-argument ()'
+     This is another way to specify an argument.  If this command is
+     followed by one or more digits, optionally with a leading minus
+     sign, those digits define the argument.  If the command is
+     followed by digits, executing `universal-argument' again ends the
+     numeric argument, but is otherwise ignored.  As a special case, if
+     this command is immediately followed by a character that is
+     neither a digit or minus sign, the argument count for the next
+     command is multiplied by four.  The argument count is initially
+     one, so executing this function the first time makes the argument
+     count four, a second time makes the argument count sixteen, and so
+     on.  By default, this is not bound to a key.
+
+
+File: readline.info,  Node: Commands For Completion,  Next: Keyboard Macros,  Prev: Numeric Arguments,  Up: Bindable Readline Commands
+
+Letting Readline Type For You
+-----------------------------
+
+`complete (<TAB>)'
+     Attempt to perform completion on the text before point.  The
+     actual completion performed is application-specific.  The default
+     is filename completion.
+
+`possible-completions (M-?)'
+     List the possible completions of the text before the cursor.
+
+`insert-completions (M-*)'
+     Insert all completions of the text before point that would have
+     been generated by `possible-completions'.
+
+`menu-complete ()'
+     Similar to `complete', but replaces the word to be completed with
+     a single match from the list of possible completions.  Repeated
+     execution of `menu-complete' steps through the list of possible
+     completions, inserting each match in turn.  At the end of the list
+     of completions, the bell is rung 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.
+
+`delete-char-or-list ()'
+     Deletes the character under the cursor if not at the beginning or
+     end of the line (like `delete-char').  If at the end of the line,
+     behaves identically to `possible-completions'.  This command is
+     unbound by default.
+
+
+File: readline.info,  Node: Keyboard Macros,  Next: Miscellaneous Commands,  Prev: Commands For Completion,  Up: Bindable Readline Commands
+
+Keyboard Macros
+---------------
+
+`start-kbd-macro (C-x ()'
+     Begin saving the characters typed into the current keyboard macro.
+
+`end-kbd-macro (C-x ))'
+     Stop saving the characters typed into the current keyboard macro
+     and save the definition.
+
+`call-last-kbd-macro (C-x e)'
+     Re-execute the last keyboard macro defined, by making the
+     characters in the macro appear as if typed at the keyboard.
+
+
+File: readline.info,  Node: Miscellaneous Commands,  Prev: Keyboard Macros,  Up: Bindable Readline Commands
+
+Some Miscellaneous Commands
+---------------------------
+
+`re-read-init-file (C-x C-r)'
+     Read in the contents of the INPUTRC file, and incorporate any
+     bindings or variable assignments found there.
+
+`abort (C-g)'
+     Abort the current editing command and ring the terminal's bell
+     (subject to the setting of `bell-style').
+
+`do-uppercase-version (M-a, M-b, M-X, ...)'
+     If the metafied character X is lowercase, run the command that is
+     bound to the corresponding uppercase character.
+
+`prefix-meta (<ESC>)'
+     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-_ or 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 executing the
+     `undo' command enough times to get back to the beginning.
+
+`tilde-expand (M-~)'
+     Perform tilde expansion on the current word.
+
+`set-mark (C-@)'
+     Set the mark to the current point.  If a numeric argument is
+     supplied, the mark is set to that position.
+
+`exchange-point-and-mark (C-x C-x)'
+     Swap the point with the mark.  The current cursor position is set
+     to the saved position, and the old cursor position is saved as the
+     mark.
+
+`character-search (C-])'
+     A character is read and point is moved to the next occurrence of
+     that character.  A negative count searches for previous
+     occurrences.
+
+`character-search-backward (M-C-])'
+     A character is read and point is moved to the previous occurrence
+     of that character.  A negative count searches for subsequent
+     occurrences.
+
+`insert-comment (M-#)'
+     The value of the `comment-begin' variable is inserted at the
+     beginning of the current line, and the line is accepted as if a
+     newline had been typed.
+
+`dump-functions ()'
+     Print all of the functions and their key bindings to the Readline
+     output stream.  If a numeric argument is supplied, the output is
+     formatted in such a way that it can be made part of an INPUTRC
+     file.  This command is unbound by default.
+
+`dump-variables ()'
+     Print all of the settable variables and their values to the
+     Readline output stream.  If a numeric argument is supplied, the
+     output is formatted in such a way that it can be made part of an
+     INPUTRC file.  This command is unbound by default.
+
+`dump-macros ()'
+     Print all of the Readline key sequences bound to macros and the
+     strings they output.  If a numeric argument is supplied, the
+     output is formatted in such a way that it can be made part of an
+     INPUTRC file.  This command is unbound by default.
+
+
+File: readline.info,  Node: Readline vi Mode,  Prev: Bindable Readline Commands,  Up: Command Line Editing
+
+Readline vi Mode
+================
+
+   While the Readline library does not have a full set of `vi' editing
+functions, it does contain enough to allow simple editing of the line.
+The Readline `vi' mode behaves as specified in the POSIX 1003.2
+standard.
+
+   In order to switch interactively between `emacs' and `vi' editing
+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
+you into `command' mode, where you can edit the text of the line with
+the standard `vi' movement keys, move to previous history lines with
+`k' and subsequent lines with `j', and so forth.
+
+   This document describes the GNU Readline Library, a utility for
+aiding in the consitency of user interface across discrete programs
+that need to provide a command line interface.
+
+   Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice pare
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: readline.info,  Node: Programming with GNU Readline,  Next: Concept Index,  Prev: Command Line Editing,  Up: Top
+
+Programming with GNU Readline
+*****************************
+
+   This chapter describes the interface between the GNU Readline
+Library and other programs.  If you are a programmer, and you wish to
+include the features found in GNU Readline such as completion, line
+editing, and interactive history manipulation in your own programs,
+this section is for you.
+
+* Menu:
+
+* Basic Behavior::	Using the default behavior of Readline.
+* Custom Functions::	Adding your own functions to Readline.
+* Readline Variables::			Variables accessible to custom
+					functions.
+* Readline Convenience Functions::	Functions which Readline supplies to
+					aid in writing your own custom
+					functions.
+* Readline Signal Handling::	How Readline behaves when it receives signals.
+* Custom Completers::	Supplanting or supplementing Readline's
+			completion functions.
+
+
+File: readline.info,  Node: Basic Behavior,  Next: Custom Functions,  Up: Programming with GNU Readline
+
+Basic Behavior
+==============
+
+   Many programs provide a command line interface, such as `mail',
+`ftp', and `sh'.  For such programs, the default behaviour of Readline
+is sufficient.  This section describes how to use Readline in the
+simplest way possible, perhaps to replace calls in your code to
+`gets()' or `fgets()'.
+
+     `char *readline (const char *PROMPT);'
+
+   The function `readline()' prints a prompt PROMPT and then reads and
+returns a single line of text from the user.  If PROMPT is `NULL' or
+the empty string, no prompt is displayed.  The line `readline' returns
+is allocated with `malloc()'; the caller should `free()' the line when
+it has finished with it.  The declaration for `readline' in ANSI C is
+
+So, one might say
+     `char *line = readline ("Enter a line: ");'
+
+in order to read a line of text from the user.  The line returned has
+the final newline removed, so only the text remains.
+
+   If `readline' encounters an `EOF' while reading the line, and the
+line is empty at that point, then `(char *)NULL' is returned.
+Otherwise, the line is ended just as if a newline had been typed.
+
+   If you want the user to be able to get at the line later, (with
+<C-p> for example), you must call `add_history()' to save the line away
+in a "history" list of such lines.
+
+     `add_history (line)';
+
+For full details on the GNU History Library, see the associated manual.
+
+   It is preferable to avoid saving empty lines on the history list,
+since users rarely have a burning need to reuse a blank line.  Here is
+a function which usefully replaces the standard `gets()' library
+function, and has the advantage of no static buffer to overflow:
+
+     /* A static variable for holding the line. */
+     static char *line_read = (char *)NULL;
+     
+     /* Read a string, and return a pointer to it.  Returns NULL on EOF. */
+     char *
+     rl_gets ()
+     {
+       /* If the buffer has already been allocated, return the memory
+          to the free pool. */
+       if (line_read)
+         {
+           free (line_read);
+           line_read = (char *)NULL;
+         }
+     
+       /* Get a line from the user. */
+       line_read = readline ("");
+     
+       /* If the line has any text in it, save it on the history. */
+       if (line_read && *line_read)
+         add_history (line_read);
+     
+       return (line_read);
+     }
+
+   This function gives the user the default behaviour of <TAB>
+completion: completion on file names.  If you do not want Readline to
+complete on filenames, you can change the binding of the <TAB> key with
+`rl_bind_key()'.
+
+     `int rl_bind_key (int KEY, rl_command_func_t *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).
+
+   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
+might write a function called `initialize_readline()' which performs
+this and other desired initializations, such as installing custom
+completers (*note Custom Completers::).
+
+
+File: readline.info,  Node: Custom Functions,  Next: Readline Variables,  Prev: Basic Behavior,  Up: Programming with GNU Readline
+
+Custom Functions
+================
+
+   Readline provides many functions for manipulating the text of the
+line, but it isn't possible to anticipate the needs of all programs.
+This section describes the various functions and variables defined
+within the Readline library which allow a user program to add
+customized functionality to Readline.
+
+   Before declaring any functions that customize Readline's behavior, or
+using any functionality Readline provides in other code, an application
+writer should include the file `<readline/readline.h>' in any file that
+uses Readline's features.  Since some of the definitions in
+`readline.h' use the `stdio' library, the file `<stdio.h>' should be
+included before `readline.h'.
+
+* Menu:
+
+* Readline Typedefs::	C declarations to make code readable.
+* Function Writing::	Variables and calling conventions.
+
+
+File: readline.info,  Node: Readline Typedefs,  Next: Function Writing,  Up: Custom Functions
+
+Readline Typedefs
+-----------------
+
+   For readabilty, we declare a number of new object types, all pointers
+to functions.
+
+   The reason for declaring these new types is to make it easier to
+write code describing pointers to C functions with appropriately
+prototyped arguments and return values.
+
+   For instance, say we want to declare a variable FUNC as a pointer to
+a function which takes two `int' arguments and returns an `int' (this
+is the type of all of the Readline bindable functions).  Instead of the
+classic C declaration
+
+   `int (*func)();'
+
+or the ANSI-C style declaration
+
+   `int (*func)(int, int);'
+
+we may write
+
+   `rl_command_func_t *func;'
+
+   The full list of function pointer types available is
+
+`typedef int rl_command_func_t (int, int);'
+
+`typedef char *rl_compentry_func_t (const char *, int);'
+
+`typedef char **rl_completion_func_t (const char *, int, int);'
+
+`typedef char *rl_quote_func_t (char *, int, char *);'
+
+`typedef char *rl_dequote_func_t (char *, int);'
+
+`typedef int rl_compignore_func_t (char **);'
+
+`typedef void rl_compdisp_func_t (char **, int, int);'
+
+`typedef int rl_hook_func_t (void);'
+
+`typedef int rl_getc_func_t (FILE *);'
+
+`typedef int rl_linebuf_func_t (char *, int);'
+
+`typedef int rl_intfunc_t (int);'
+
+`#define rl_ivoidfunc_t rl_hook_func_t'
+
+`typedef int rl_icpfunc_t (char *);'
+
+`typedef int rl_icppfunc_t (char **);'
+
+`typedef void rl_voidfunc_t (void);'
+
+`typedef void rl_vintfunc_t (int);'
+
+`typedef void rl_vcpfunc_t (char *);'
+
+`typedef void rl_vcppfunc_t (char **);'
+
+File: readline.info,  Node: Function Writing,  Prev: Readline Typedefs,  Up: Custom Functions
+
+Writing a New Function
+----------------------
+
+   In order to write new functions for Readline, you need to know the
+calling conventions for keyboard-invoked functions, and the names of the
+variables that describe the current state of the line read so far.
+
+   The calling sequence for a command `foo' looks like
+
+     `foo (int count, int key)'
+
+where COUNT is the numeric argument (or 1 if defaulted) and KEY is the
+key that invoked this function.
+
+   It is completely up to the function as to what should be done with
+the numeric argument.  Some functions use it as a repeat count, some as
+a flag, and others to choose alternate behavior (refreshing the current
+line as opposed to refreshing the screen, for example).  Some choose to
+ignore it.  In general, if a function uses the numeric argument as a
+repeat count, it should be able to do something useful with both
+negative and positive arguments.  At the very least, it should be aware
+that it can be passed a negative argument.
+
+
+File: readline.info,  Node: Readline Variables,  Next: Readline Convenience Functions,  Prev: Custom Functions,  Up: Programming with GNU Readline
+
+Readline Variables
+==================
+
+   These variables are available to function writers.
+
+ - Variable: char * rl_line_buffer
+     This is the line gathered so far.  You are welcome to modify the
+     contents of the line, but see *Note Allowing Undoing::.  The
+     function `rl_extend_line_buffer' is available to increase the
+     memory allocated to `rl_line_buffer'.
+
+ - Variable: int rl_point
+     The offset of the current cursor position in `rl_line_buffer' (the
+     _point_).
+
+ - Variable: int rl_end
+     The number of characters present in `rl_line_buffer'.  When
+     `rl_point' is at the end of the line, `rl_point' and `rl_end' are
+     equal.
+
+ - Variable: int rl_mark
+     The MARK (saved position) in the current line.  If set, the mark
+     and point define a _region_.
+
+ - Variable: int rl_done
+     Setting this to a non-zero value causes Readline to return the
+     current line immediately.
+
+ - Variable: int rl_num_chars_to_read
+     Setting this to a positive value before calling `readline()' causes
+     Readline to return after accepting that many characters, rather
+     than reading up to a character bound to `accept-line'.
+
+ - Variable: int rl_pending_input
+     Setting this to a value makes it the next keystroke read.  This is
+     a way to stuff a single character into the input stream.
+
+ - Variable: int rl_dispatching
+     Set to a non-zero value if a function is being called from a key
+     binding; zero otherwise.  Application functions can test this to
+     discover whether they were called directly or by Readline's
+     dispatching mechanism.
+
+ - Variable: int rl_erase_empty_line
+     Setting this to a non-zero value causes Readline to completely
+     erase the current line, including any prompt, any time a newline
+     is typed as the only character on an otherwise-empty line.  The
+     cursor is moved to the beginning of the newly-blank line.
+
+ - Variable: char * rl_prompt
+     The prompt Readline uses.  This is set from the argument to
+     `readline()', and should not be assigned to directly.
+
+ - Variable: int rl_already_prompted
+     If an application wishes to display the prompt itself, rather than
+     have Readline do it the first time `readline()' is called, it
+     should set this variable to a non-zero value after displaying the
+     prompt.  The prompt must also be passed as the argument to
+     `readline()' so the redisplay functions can update the display
+     properly.  The calling application is responsible for managing the
+     value; Readline never sets it.
+
+ - Variable: const char * rl_library_version
+     The version number of this revision of the library.
+
+ - Variable: int rl_gnu_readline_p
+     Always set to 1, denoting that this is GNU readline rather than
+     some emulation.
+
+ - Variable: const char * rl_terminal_name
+     The terminal type, used for initialization.  If not set by the
+     application, Readline sets this to the value of the `TERM'
+     environment variable the first time it is called.
+
+ - Variable: const char * rl_readline_name
+     This variable is set to a unique name by each application using
+     Readline.  The value allows conditional parsing of the inputrc file
+     (*note Conditional Init Constructs::).
+
+ - Variable: FILE * rl_instream
+     The stdio stream from which Readline reads input.
+
+ - Variable: FILE * rl_outstream
+     The stdio stream to which Readline performs output.
+
+ - Variable: rl_command_func_t * rl_last_func
+     The address of the last command function Readline executed.  May
+     be used to test whether or not a function is being executed twice
+     in succession, for example.
+
+ - Variable: rl_hook_func_t * rl_startup_hook
+     If non-zero, this is the address of a function to call just before
+     `readline' prints the first prompt.
+
+ - Variable: rl_hook_func_t * rl_pre_input_hook
+     If non-zero, this is the address of a function to call after the
+     first prompt has been printed and just before `readline' starts
+     reading input characters.
+
+ - Variable: rl_hook_func_t * rl_event_hook
+     If non-zero, this is the address of a function to call periodically
+     when readline is waiting for terminal input.
+
+ - Variable: rl_getc_func_t * rl_getc_function
+     If non-zero, `readline' will call indirectly through this pointer
+     to get a character from the input stream.  By default, it is set to
+     `rl_getc', the default `readline' character input function (*note
+     Character Input::).
+
+ - Variable: rl_voidfunc_t * rl_redisplay_function
+     If non-zero, `readline' will call indirectly through this pointer
+     to update the display with the current contents of the editing
+     buffer.  By default, it is set to `rl_redisplay', the default
+     `readline' redisplay function (*note Redisplay::).
+
+ - Variable: rl_vintfunc_t * rl_prep_term_function
+     If non-zero, `readline' will call indirectly through this pointer
+     to initialize the terminal.  The function takes a single argument,
+     an `int' flag that says whether or not to use eight-bit characters.
+     By default, this is set to `rl_prep_terminal' (*note Terminal
+     Management::).
+
+ - Variable: rl_voidfunc_t * rl_deprep_term_function
+     If non-zero, `readline' will call indirectly through this pointer
+     to reset the terminal.  This function should undo the effects of
+     `rl_prep_term_function'.  By default, this is set to
+     `rl_deprep_terminal' (*note Terminal Management::).
+
+ - Variable: Keymap rl_executing_keymap
+     This variable is set to the keymap (*note Keymaps::) in which the
+     currently executing readline function was found.
+
+ - Variable: Keymap rl_binding_keymap
+     This variable is set to the keymap (*note Keymaps::) in which the
+     last key binding occurred.
+
+ - Variable: char * rl_executing_macro
+     This variable is set to the text of any currently-executing macro.
+
+ - Variable: int rl_readline_state
+     A variable with bit values that encapsulate the current Readline
+     state.  A bit is set with the `RL_SETSTATE' macro, and unset with
+     the `RL_UNSETSTATE' macro.  Use the `RL_ISSTATE' macro to test
+     whether a particular state bit is set.  Current state bits include:
+
+    `RL_STATE_NONE'
+          Readline has not yet been called, nor has it begun to
+          intialize.
+
+    `RL_STATE_INITIALIZING'
+          Readline is initializing its internal data structures.
+
+    `RL_STATE_INITIALIZED'
+          Readline has completed its initialization.
+
+    `RL_STATE_TERMPREPPED'
+          Readline has modified the terminal modes to do its own input
+          and redisplay.
+
+    `RL_STATE_READCMD'
+          Readline is reading a command from the keyboard.
+
+    `RL_STATE_METANEXT'
+          Readline is reading more input after reading the meta-prefix
+          character.
+
+    `RL_STATE_DISPATCHING'
+          Readline is dispatching to a command.
+
+    `RL_STATE_MOREINPUT'
+          Readline is reading more input while executing an editing
+          command.
+
+    `RL_STATE_ISEARCH'
+          Readline is performing an incremental history search.
+
+    `RL_STATE_NSEARCH'
+          Readline is performing a non-incremental history search.
+
+    `RL_STATE_SEARCH'
+          Readline is searching backward or forward through the history
+          for a string.
+
+    `RL_STATE_NUMERICARG'
+          Readline is reading a numeric argument.
+
+    `RL_STATE_MACROINPUT'
+          Readline is currently getting its input from a
+          previously-defined keyboard macro.
+
+    `RL_STATE_MACRODEF'
+          Readline is currently reading characters defining a keyboard
+          macro.
+
+    `RL_STATE_OVERWRITE'
+          Readline is in overwrite mode.
+
+    `RL_STATE_COMPLETING'
+          Readline is performing word completion.
+
+    `RL_STATE_SIGHANDLER'
+          Readline is currently executing the readline signal handler.
+
+    `RL_STATE_UNDOING'
+          Readline is performing an undo.
+
+    `RL_STATE_DONE'
+          Readline has read a key sequence bound to `accept-line' and
+          is about to return the line to the caller.
+
+
+ - Variable: int rl_explicit_arg
+     Set to a non-zero value if an explicit numeric argument was
+     specified by the user.  Only valid in a bindable command function.
+
+ - Variable: int rl_numeric_arg
+     Set to the value of any numeric argument explicitly specified by
+     the user before executing the current Readline function.  Only
+     valid in a bindable command function.
+
+ - Variable: int rl_editing_mode
+     Set to a value denoting Readline's current editing mode.  A value
+     of EMACS_MODE means Readline is currently in emacs mode; VI_MODE
+     means that vi mode is active.
+
+
+File: readline.info,  Node: Readline Convenience Functions,  Next: Readline Signal Handling,  Prev: Readline Variables,  Up: Programming with GNU Readline
+
+Readline Convenience Functions
+==============================
+
+* Menu:
+
+* Function Naming::	How to give a function you write a name.
+* Keymaps::		Making keymaps.
+* Binding Keys::	Changing Keymaps.
+* Associating Function Names and Bindings::	Translate function names to
+						key sequences.
+* Allowing Undoing::	How to make your functions undoable.
+* Redisplay::		Functions to control line display.
+* Modifying Text::	Functions to modify `rl_line_buffer'.
+* Character Input::	Functions to read keyboard input.
+* Terminal Management::	Functions to manage terminal settings.
+* Utility Functions::	Generally useful functions and hooks.
+* Alternate Interface::	Using Readline in a `callback' fashion.
+
+
+File: readline.info,  Node: Function Naming,  Next: Keymaps,  Up: Readline Convenience Functions
+
+Naming a Function
+-----------------
+
+   The user can dynamically change the bindings of keys while using
+Readline.  This is done by representing the function with a descriptive
+name.  The user is able to type the descriptive name when referring to
+the function.  Thus, in an init file, one might find
+
+     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:
+
+ - Function: int rl_add_defun (const char *name, rl_command_func_t
+          *function, int key)
+     Add NAME to the list of named functions.  Make FUNCTION be the
+     function that gets called.  If KEY is not -1, then bind it to
+     FUNCTION using `rl_bind_key()'.
+
+   Using this function alone is sufficient for most applications.  It is
+the recommended way to add a few functions to the default functions that
+Readline has built in.  If you need to do something other than adding a
+function to Readline, you may need to use the underlying functions
+described below.
+
+
+File: readline.info,  Node: Keymaps,  Next: Binding Keys,  Prev: Function Naming,  Up: Readline Convenience Functions
+
+Selecting a Keymap
+------------------
+
+   Key bindings take place on a "keymap".  The keymap is the
+association between the keys that the user types and the functions that
+get run.  You can make your own keymaps, copy existing keymaps, and tell
+Readline which keymap to use.
+
+ - Function: Keymap rl_make_bare_keymap (void)
+     Returns a new, empty keymap.  The space for the keymap is
+     allocated with `malloc()'; the caller should free it by calling
+     `rl_discard_keymap()' when done.
+
+ - Function: Keymap rl_copy_keymap (Keymap map)
+     Return a new keymap which is a copy of MAP.
+
+ - Function: Keymap rl_make_keymap (void)
+     Return a new keymap with the printing characters bound to
+     rl_insert, the lowercase Meta characters bound to run their
+     equivalents, and the Meta digits bound to produce numeric
+     arguments.
+
+ - Function: void rl_discard_keymap (Keymap keymap)
+     Free the storage associated with KEYMAP.
+
+   Readline has several internal keymaps.  These functions allow you to
+change which keymap is active.
+
+ - Function: Keymap rl_get_keymap (void)
+     Returns the currently active keymap.
+
+ - Function: void rl_set_keymap (Keymap keymap)
+     Makes KEYMAP the currently active keymap.
+
+ - Function: Keymap rl_get_keymap_by_name (const char *name)
+     Return the keymap matching NAME.  NAME is one which would be
+     supplied in a `set keymap' inputrc line (*note Readline Init
+     File::).
+
+ - Function: char * rl_get_keymap_name (Keymap keymap)
+     Return the name matching KEYMAP.  NAME is one which would be
+     supplied in a `set keymap' inputrc line (*note Readline Init
+     File::).
+
+
+File: readline.info,  Node: Binding Keys,  Next: Associating Function Names and Bindings,  Prev: Keymaps,  Up: Readline Convenience Functions
+
+Binding Keys
+------------
+
+   Key sequences are associate with functions through the keymap.
+Readline has several internal keymaps: `emacs_standard_keymap',
+`emacs_meta_keymap', `emacs_ctlx_keymap', `vi_movement_keymap', and
+`vi_insertion_keymap'.  `emacs_standard_keymap' is the default, and the
+examples in this manual assume that.
+
+   Since `readline()' installs a set of default key bindings the first
+time it is called, there is always the danger that a custom binding
+installed before the first call to `readline()' will be overridden.  An
+alternate mechanism is to install custom key bindings in an
+initialization function assigned to the `rl_startup_hook' variable
+(*note Readline Variables::).
+
+   These functions manage key bindings.
+
+ - Function: int rl_bind_key (int key, rl_command_func_t *function)
+     Binds KEY to FUNCTION in the currently active keymap.  Returns
+     non-zero in the case of an invalid KEY.
+
+ - Function: int rl_bind_key_in_map (int key, rl_command_func_t
+          *function, Keymap map)
+     Bind KEY to FUNCTION in MAP.  Returns non-zero in the case of an
+     invalid KEY.
+
+ - Function: int rl_unbind_key (int key)
+     Bind KEY to the null function in the currently active keymap.
+     Returns non-zero in case of error.
+
+ - Function: int rl_unbind_key_in_map (int key, Keymap map)
+     Bind KEY to the null function in MAP.  Returns non-zero in case of
+     error.
+
+ - Function: int rl_unbind_function_in_map (rl_command_func_t
+          *function, Keymap map)
+     Unbind all keys that execute FUNCTION in MAP.
+
+ - Function: int rl_unbind_command_in_map (const char *command, Keymap
+          map)
+     Unbind all keys that are bound to COMMAND in MAP.
+
+ - Function: int rl_set_key (const char *keyseq, rl_command_func_t
+          *function, Keymap map)
+     Bind the key sequence represented by the string KEYSEQ to the
+     function FUNCTION.  This makes new keymaps as necessary.  The
+     initial keymap in which to do bindings is MAP.
+
+ - Function: int rl_generic_bind (int type, const char *keyseq, char
+          *data, Keymap map)
+     Bind the key sequence represented by the string KEYSEQ to the
+     arbitrary pointer DATA.  TYPE says what kind of data is pointed to
+     by DATA; this can be a function (`ISFUNC'), a macro (`ISMACR'), or
+     a keymap (`ISKMAP').  This makes new keymaps as necessary.  The
+     initial keymap in which to do bindings is MAP.
+
+ - Function: int rl_parse_and_bind (char *line)
+     Parse LINE as if it had been read from the `inputrc' file and
+     perform any key bindings and variable assignments found (*note
+     Readline Init File::).
+
+ - Function: int rl_read_init_file (const char *filename)
+     Read keybindings and variable assignments from FILENAME (*note
+     Readline Init File::).
+
+
+File: readline.info,  Node: Associating Function Names and Bindings,  Next: Allowing Undoing,  Prev: Binding Keys,  Up: Readline Convenience Functions
+
+Associating Function Names and Bindings
+---------------------------------------
+
+   These functions allow you to find out what keys invoke named
+functions and the functions invoked by a particular key sequence.  You
+may also associate a new function name with an arbitrary function.
+
+ - Function: rl_command_func_t * rl_named_function (const char *name)
+     Return the function with name NAME.
+
+ - Function: rl_command_func_t * rl_function_of_keyseq (const char
+          *keyseq, Keymap map, int *type)
+     Return the function invoked by KEYSEQ in keymap MAP.  If MAP is
+     `NULL', the current keymap is used.  If TYPE is not `NULL', the
+     type of the object is returned in the `int' variable it points to
+     (one of `ISFUNC', `ISKMAP', or `ISMACR').
+
+ - Function: char ** rl_invoking_keyseqs (rl_command_func_t *function)
+     Return an array of strings representing the key sequences used to
+     invoke FUNCTION in the current keymap.
+
+ - Function: char ** rl_invoking_keyseqs_in_map (rl_command_func_t
+          *function, Keymap map)
+     Return an array of strings representing the key sequences used to
+     invoke FUNCTION in the keymap MAP.
+
+ - Function: void rl_function_dumper (int readable)
+     Print the readline function names and the key sequences currently
+     bound to them to `rl_outstream'.  If READABLE is non-zero, the
+     list is formatted in such a way that it can be made part of an
+     `inputrc' file and re-read.
+
+ - Function: void rl_list_funmap_names (void)
+     Print the names of all bindable Readline functions to
+     `rl_outstream'.
+
+ - Function: const char ** rl_funmap_names (void)
+     Return a NULL terminated array of known function names.  The array
+     is sorted.  The array itself is allocated, but not the strings
+     inside.  You should `free()' the array when you are done, but not
+     the pointers.
+
+ - Function: int rl_add_funmap_entry (const char *name,
+          rl_command_func_t *function)
+     Add NAME to the list of bindable Readline command names, and make
+     FUNCTION the function to be called when NAME is invoked.
+
+
+File: readline.info,  Node: Allowing Undoing,  Next: Redisplay,  Prev: Associating Function Names and Bindings,  Up: Readline Convenience Functions
+
+Allowing Undoing
+----------------
+
+   Supporting the undo command is a painless thing, and makes your
+functions much more useful.  It is certainly easy to try something if
+you know you can undo it.
+
+   If your function simply inserts text once, or deletes text once, and
+uses `rl_insert_text()' or `rl_delete_text()' to do it, then undoing is
+already done for you automatically.
+
+   If you do multiple insertions or multiple deletions, or any
+combination of these operations, you should group them together into
+one operation.  This is done with `rl_begin_undo_group()' and
+`rl_end_undo_group()'.
+
+   The types of events that can be undone are:
+
+     enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
+
+   Notice that `UNDO_DELETE' means to insert some text, and
+`UNDO_INSERT' means to delete some text.  That is, the undo code tells
+what to undo, not how to undo it.  `UNDO_BEGIN' and `UNDO_END' are tags
+added by `rl_begin_undo_group()' and `rl_end_undo_group()'.
+
+ - Function: int rl_begin_undo_group (void)
+     Begins saving undo information in a group construct.  The undo
+     information usually comes from calls to `rl_insert_text()' and
+     `rl_delete_text()', but could be the result of calls to
+     `rl_add_undo()'.
+
+ - Function: int rl_end_undo_group (void)
+     Closes the current undo group started with `rl_begin_undo_group
+     ()'.  There should be one call to `rl_end_undo_group()' for each
+     call to `rl_begin_undo_group()'.
+
+ - Function: void rl_add_undo (enum undo_code what, int start, int end,
+          char *text)
+     Remember how to undo an event (according to WHAT).  The affected
+     text runs from START to END, and encompasses TEXT.
+
+ - Function: void rl_free_undo_list (void)
+     Free the existing undo list.
+
+ - Function: int rl_do_undo (void)
+     Undo the first thing on the undo list.  Returns `0' if there was
+     nothing to undo, non-zero if something was undone.
+
+   Finally, if you neither insert nor delete text, but directly modify
+the existing text (e.g., change its case), call `rl_modifying()' once,
+just before you modify the text.  You must supply the indices of the
+text range that you are going to modify.
+
+ - Function: int rl_modifying (int start, int end)
+     Tell Readline to save the text between START and END as a single
+     undo unit.  It is assumed that you will subsequently modify that
+     text.
+
+
+File: readline.info,  Node: Redisplay,  Next: Modifying Text,  Prev: Allowing Undoing,  Up: Readline Convenience Functions
+
+Redisplay
+---------
+
+ - Function: void rl_redisplay (void)
+     Change what's displayed on the screen to reflect the current
+     contents of `rl_line_buffer'.
+
+ - Function: int rl_forced_update_display (void)
+     Force the line to be updated and redisplayed, whether or not
+     Readline thinks the screen display is correct.
+
+ - Function: int rl_on_new_line (void)
+     Tell the update functions that we have moved onto a new (empty)
+     line, usually after ouputting a newline.
+
+ - Function: int rl_on_new_line_with_prompt (void)
+     Tell the update functions that we have moved onto a new line, with
+     RL_PROMPT already displayed.  This could be used by applications
+     that want to output the prompt string themselves, but still need
+     Readline to know the prompt string length for redisplay.  It
+     should be used after setting RL_ALREADY_PROMPTED.
+
+ - Function: int rl_reset_line_state (void)
+     Reset the display state to a clean state and redisplay the current
+     line starting on a new line.
+
+ - Function: int rl_crlf (void)
+     Move the cursor to the start of the next screen line.
+
+ - Function: int rl_message (const char *, ...)
+     The arguments are a format string as would be supplied to `printf',
+     possibly containing conversion specifications such as `%d', and
+     any additional arguments necessary to satisfy the conversion
+     specifications.  The resulting string is displayed in the "echo
+     area".  The echo area is also used to display numeric arguments
+     and search strings.
+
+ - Function: int rl_clear_message (void)
+     Clear the message in the echo area.
+
+ - Function: void rl_save_prompt (void)
+     Save the local Readline prompt display state in preparation for
+     displaying a new message in the message area with `rl_message()'.
+
+ - Function: void rl_restore_prompt (void)
+     Restore the local Readline prompt display state saved by the most
+     recent call to `rl_save_prompt'.
+
+ - Function: int rl_expand_prompt (char *prompt)
+     Expand any special character sequences in PROMPT and set up the
+     local Readline prompt redisplay variables.  This function is
+     called by `readline()'.  It may also be called to expand the
+     primary prompt if the `rl_on_new_line_with_prompt()' function or
+     `rl_already_prompted' variable is used.  It returns the number of
+     visible characters on the last line of the (possibly multi-line)
+     prompt.
+
+
+File: readline.info,  Node: Modifying Text,  Next: Character Input,  Prev: Redisplay,  Up: Readline Convenience Functions
+
+Modifying Text
+--------------
+
+ - Function: int rl_insert_text (const char *text)
+     Insert TEXT into the line at the current cursor position.
+
+ - Function: int rl_delete_text (int start, int end)
+     Delete the text between START and END in the current line.
+
+ - Function: char * rl_copy_text (int start, int end)
+     Return a copy of the text between START and END in the current
+     line.
+
+ - Function: int rl_kill_text (int start, int end)
+     Copy the text between START and END in the current line to the
+     kill ring, appending or prepending to the last kill if the last
+     command was a kill command.  The text is deleted.  If START is
+     less than END, the text is appended, otherwise prepended.  If the
+     last command was not a kill, a new kill ring slot is used.
+
+
+File: readline.info,  Node: Character Input,  Next: Terminal Management,  Prev: Modifying Text,  Up: Readline Convenience Functions
+
+Character Input
+---------------
+
+ - Function: int rl_read_key (void)
+     Return the next character available from Readline's current input
+     stream.  This handles input inserted into the input stream via
+     RL_PENDING_INPUT (*note Readline Variables::) and
+     `rl_stuff_char()', macros, and characters read from the keyboard.
+
+ - Function: int rl_getc (FILE *stream)
+     Return the next character available from STREAM, which is assumed
+     to be the keyboard.
+
+ - Function: int rl_stuff_char (int c)
+     Insert C into the Readline input stream.  It will be "read" before
+     Readline attempts to read characters from the terminal with
+     `rl_read_key()'.
+
+ - Function: int rl_execute_next (int c)
+     Make C be the next command to be executed when `rl_read_key()' is
+     called.  This sets RL_PENDING_INPUT.
+
+ - Function: int rl_clear_pending_input (void)
+     Unet RL_PENDING_INPUT, effectively negating the effect of any
+     previous call to `rl_execute_next()'.  This works only if the
+     pending input has not already been read with `rl_read_key()'.
+
+
+File: readline.info,  Node: Terminal Management,  Next: Utility Functions,  Prev: Character Input,  Up: Readline Convenience Functions
+
+Terminal Management
+-------------------
+
+ - Function: int rl_prep_terminal (int meta_flag)
+     Modify the terminal settings for Readline's use, so `readline()'
+     can read a single character at a time from the keyboard.  The
+     META_FLAG argument should be non-zero if Readline should read
+     eight-bit input.
+
+ - Function: in rl_deprep_terminal (void)
+     Undo the effects of `rl_prep_terminal()', leaving the terminal in
+     the state in which it was before the most recent call to
+     `rl_prep_terminal()'.
+
+ - Function: void rl_tty_set_default_bindings (Keymap kmap)
+     Read the operating system's terminal editing characters (as would
+     be displayed by `stty' to their readline equivalents.  The
+     bindings are performed in KMAP.
+
+ - Function: int rl_reset_terminal (const char *terminal_name)
+     Reinitialize Readline's idea of the terminal settings using
+     TERMINAL_NAME as the terminal type (e.g., `vt100').  If
+     TERMINAL_NAME is NULL, the value of the `TERM' environment
+     variable is used.
+
+
+File: readline.info,  Node: Utility Functions,  Next: Alternate Interface,  Prev: Terminal Management,  Up: Readline Convenience Functions
+
+Utility Functions
+-----------------
+
+ - Function: int rl_extend_line_buffer (int len)
+     Ensure that `rl_line_buffer' has enough space to hold LEN
+     characters, possibly reallocating it if necessary.
+
+ - Function: int rl_initialize (void)
+     Initialize or re-initialize Readline's internal state.  It's not
+     strictly necessary to call this; `readline()' calls it before
+     reading any input.
+
+ - Function: int rl_ding (void)
+     Ring the terminal bell, obeying the setting of `bell-style'.
+
+ - Function: int rl_alphabetic (int c)
+     Return 1 if C is an alphabetic character.
+
+ - Function: void rl_display_match_list (char **matches, int len, int
+          max)
+     A convenience function for displaying a list of strings in
+     columnar format on Readline's output stream.  `matches' is the list
+     of strings, in argv format, such as a list of completion matches.
+     `len' is the number of strings in `matches', and `max' is the
+     length of the longest string in `matches'.  This function uses the
+     setting of `print-completions-horizontally' to select how the
+     matches are displayed (*note Readline Init File Syntax::).
+
+   The following are implemented as macros, defined in `chardefs.h'.
+Applications should refrain from using them.
+
+ - Function: int _rl_uppercase_p (int c)
+     Return 1 if C is an uppercase alphabetic character.
+
+ - Function: int _rl_lowercase_p (int c)
+     Return 1 if C is a lowercase alphabetic character.
+
+ - Function: int _rl_digit_p (int c)
+     Return 1 if C is a numeric character.
+
+ - Function: int _rl_to_upper (int c)
+     If C is a lowercase alphabetic character, return the corresponding
+     uppercase character.
+
+ - Function: int _rl_to_lower (int c)
+     If C is an uppercase alphabetic character, return the corresponding
+     lowercase character.
+
+ - Function: int _rl_digit_value (int c)
+     If C is a number, return the value it represents.
+
+
+File: readline.info,  Node: Alternate Interface,  Prev: Utility Functions,  Up: Readline Convenience Functions
+
+Alternate Interface
+-------------------
+
+   An alternate interface is available to plain `readline()'.  Some
+applications need to interleave keyboard I/O with file, device, or
+window system I/O, typically by using a main loop to `select()' on
+various file descriptors.  To accomodate this need, readline can also
+be invoked as a `callback' function from an event loop.  There are
+functions available to make this easy.
+
+ - Function: void rl_callback_handler_install (const char *prompt,
+          rl_vcpfunc_t *lhandler)
+     Set up the terminal for readline I/O and display the initial
+     expanded value of PROMPT.  Save the value of LHANDLER to use as a
+     function to call when a complete line of input has been entered.
+     The function takes the text of the line as an argument.
+
+ - Function: void rl_callback_read_char (void)
+     Whenever an application determines that keyboard input is
+     available, it should call `rl_callback_read_char()', which will
+     read the next character from the current input source.  If that
+     character completes the line, `rl_callback_read_char' will invoke
+     the LHANDLER function saved by `rl_callback_handler_install' to
+     process the line.  `EOF' is  indicated by calling LHANDLER with a
+     `NULL' line.
+
+ - Function: void rl_callback_handler_remove (void)
+     Restore the terminal to its initial state and remove the line
+     handler.  This may be called from within a callback as well as
+     independently.
+
+An Example
+----------
+
+   Here is a function which changes lowercase characters to their
+uppercase equivalents, and uppercase characters to lowercase.  If this
+function was bound to `M-c', then typing `M-c' would change the case of
+the character under point.  Typing `M-1 0 M-c' would change the case of
+the following 10 characters, leaving the cursor on the last character
+changed.
+
+     /* Invert the case of the COUNT following characters. */
+     int
+     invert_case_line (count, key)
+          int count, key;
+     {
+       register int start, end, i;
+     
+       start = rl_point;
+     
+       if (rl_point >= rl_end)
+         return (0);
+     
+       if (count < 0)
+         {
+           direction = -1;
+           count = -count;
+         }
+       else
+         direction = 1;
+     
+       /* Find the end of the range to modify. */
+       end = start + (count * direction);
+     
+       /* Force it to be within range. */
+       if (end > rl_end)
+         end = rl_end;
+       else if (end < 0)
+         end = 0;
+     
+       if (start == end)
+         return (0);
+     
+       if (start > end)
+         {
+           int temp = start;
+           start = end;
+           end = temp;
+         }
+     
+       /* Tell readline that we are modifying the line, so it will save
+          the undo information. */
+       rl_modifying (start, end);
+     
+       for (i = start; i != end; i++)
+         {
+           if (_rl_uppercase_p (rl_line_buffer[i]))
+             rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
+           else if (_rl_lowercase_p (rl_line_buffer[i]))
+             rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
+         }
+       /* Move point to on top of the last character changed. */
+       rl_point = (direction == 1) ? end - 1 : start;
+       return (0);
+     }
+
+
+File: readline.info,  Node: Readline Signal Handling,  Next: Custom Completers,  Prev: Readline Convenience Functions,  Up: Programming with GNU Readline
+
+Readline Signal Handling
+========================
+
+   Signals are asynchronous events sent to a process by the Unix kernel,
+sometimes on behalf of another process.  They are intended to indicate
+exceptional events, like a user pressing the interrupt key on his
+terminal, or a network connection being broken.  There is a class of
+signals that can be sent to the process currently reading input from
+the keyboard.  Since Readline changes the terminal attributes when it
+is called, it needs to perform special processing when a signal is
+received to restore the terminal to a sane state, or provide application
+writers with functions to do so manually.
+
+   Readline contains an internal signal handler that is installed for a
+number of signals (`SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM',
+`SIGTSTP', `SIGTTIN', and `SIGTTOU').  When one of these signals is
+received, the signal handler will reset the terminal attributes to
+those that were in effect before `readline()' was called, reset the
+signal handling to what it was before `readline()' was called, and
+resend the signal to the calling application.  If and when the calling
+application's signal handler returns, Readline will reinitialize the
+terminal and continue to accept input.  When a `SIGINT' is received,
+the Readline signal handler performs some additional work, which will
+cause any partially-entered line to be aborted (see the description of
+`rl_free_line_state()' below).
+
+   There is an additional Readline signal handler, for `SIGWINCH', which
+the kernel sends to a process whenever the terminal's size changes (for
+example, if a user resizes an `xterm').  The Readline `SIGWINCH'
+handler updates Readline's internal screen size information, and then
+calls any `SIGWINCH' signal handler the calling application has
+installed.  Readline calls the application's `SIGWINCH' signal handler
+without resetting the terminal to its original state.  If the
+application's signal handler does more than update its idea of the
+terminal size and return (for example, a `longjmp' back to a main
+processing loop), it _must_ call `rl_cleanup_after_signal()' (described
+below), to restore the terminal state.
+
+   Readline provides two variables that allow application writers to
+control whether or not it will catch certain signals and act on them
+when they are received.  It is important that applications change the
+values of these variables only when calling `readline()', not in a
+signal handler, so Readline's internal signal state is not corrupted.
+
+ - Variable: int rl_catch_signals
+     If this variable is non-zero, Readline will install signal
+     handlers for `SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM', `SIGTSTP',
+     `SIGTTIN', and `SIGTTOU'.
+
+     The default value of `rl_catch_signals' is 1.
+
+ - Variable: int rl_catch_sigwinch
+     If this variable is non-zero, Readline will install a signal
+     handler for `SIGWINCH'.
+
+     The default value of `rl_catch_sigwinch' is 1.
+
+   If an application does not wish to have Readline catch any signals,
+or to handle signals other than those Readline catches (`SIGHUP', for
+example), Readline provides convenience functions to do the necessary
+terminal and internal state cleanup upon receipt of a signal.
+
+ - Function: void rl_cleanup_after_signal (void)
+     This function will reset the state of the terminal to what it was
+     before `readline()' was called, and remove the Readline signal
+     handlers for all signals, depending on the values of
+     `rl_catch_signals' and `rl_catch_sigwinch'.
+
+ - Function: void rl_free_line_state (void)
+     This will free any partial state associated with the current input
+     line (undo information, any partial history entry, any
+     partially-entered keyboard macro, and any partially-entered
+     numeric argument).  This should be called before
+     `rl_cleanup_after_signal()'.  The Readline signal handler for
+     `SIGINT' calls this to abort the current input line.
+
+ - Function: void rl_reset_after_signal (void)
+     This will reinitialize the terminal and reinstall any Readline
+     signal handlers, depending on the values of `rl_catch_signals' and
+     `rl_catch_sigwinch'.
+
+   If an application does not wish Readline to catch `SIGWINCH', it may
+call `rl_resize_terminal()' or `rl_set_screen_size()' to force Readline
+to update its idea of the terminal size when a `SIGWINCH' is received.
+
+ - Function: void rl_resize_terminal (void)
+     Update Readline's internal screen size by reading values from the
+     kernel.
+
+ - Function: void rl_set_screen_size (int rows, int cols)
+     Set Readline's idea of the terminal size to ROWS rows and COLS
+     columns.
+
+   The following functions install and remove Readline's signal
+handlers.
+
+ - Function: int rl_set_signals (void)
+     Install Readline's signal handler for `SIGINT', `SIGQUIT',
+     `SIGTERM', `SIGALRM', `SIGTSTP', `SIGTTIN', `SIGTTOU', and
+     `SIGWINCH', depending on the values of `rl_catch_signals' and
+     `rl_catch_sigwinch'.
+
+ - Function: int rl_clear_signals (void)
+     Remove all of the Readline signal handlers installed by
+     `rl_set_signals()'.
+
+
+File: readline.info,  Node: Custom Completers,  Prev: Readline Signal Handling,  Up: Programming with GNU Readline
+
+Custom Completers
+=================
+
+   Typically, a program that reads commands from the user has a way of
+disambiguating commands and data.  If your program is one of these, then
+it can provide completion for commands, data, or both.  The following
+sections describe how your program and Readline cooperate to provide
+this service.
+
+* Menu:
+
+* How Completing Works::	The logic used to do completion.
+* Completion Functions::	Functions provided by Readline.
+* Completion Variables::	Variables which control completion.
+* A Short Completion Example::	An example of writing completer subroutines.
+
+
+File: readline.info,  Node: How Completing Works,  Next: Completion Functions,  Up: Custom Completers
+
+How Completing Works
+--------------------
+
+   In order to complete some text, the full list of possible completions
+must be available.  That is, it is not possible to accurately expand a
+partial word without knowing all of the possible words which make sense
+in that context.  The Readline library provides the user interface to
+completion, and two of the most common completion functions:  filename
+and username.  For completing other types of text, you must write your
+own completion function.  This section describes exactly what such
+functions must do, and provides an example.
+
+   There are three major functions used to perform completion:
+
+  1. The user-interface function `rl_complete()'.  This function is
+     called with the same arguments as other bindable Readline
+     functions: COUNT and INVOKING_KEY.  It isolates the word to be
+     completed and calls `rl_completion_matches()' to generate a list
+     of possible completions.  It then either lists the possible
+     completions, inserts the possible completions, or actually
+     performs the completion, depending on which behavior is desired.
+
+  2. The internal function `rl_completion_matches()' uses an
+     application-supplied "generator" function to generate the list of
+     possible matches, and then returns the array of these matches.
+     The caller should place the address of its generator function in
+     `rl_completion_entry_function'.
+
+  3. The generator function is called repeatedly from
+     `rl_completion_matches()', returning a string each time.  The
+     arguments to the generator function are TEXT and STATE.  TEXT is
+     the partial word to be completed.  STATE is zero the first time
+     the function is called, allowing the generator to perform any
+     necessary initialization, and a positive non-zero integer for each
+     subsequent call.  The generator function returns `(char *)NULL' to
+     inform `rl_completion_matches()' that there are no more
+     possibilities left.  Usually the generator function computes the
+     list of possible completions when STATE is zero, and returns them
+     one at a time on subsequent calls.  Each string the generator
+     function returns as a match must be allocated with `malloc()';
+     Readline frees the strings when it has finished with them.
+
+
+ - Function: int rl_complete (int ignore, int invoking_key)
+     Complete the word at or before point.  You have supplied the
+     function that does the initial simple matching selection algorithm
+     (see `rl_completion_matches()').  The default is to do filename
+     completion.
+
+ - Variable: rl_compentry_func_t * rl_completion_entry_function
+     This is a pointer to the generator function for
+     `rl_completion_matches()'.  If the value of
+     `rl_completion_entry_function' is `NULL' then the default filename
+     generator function, `rl_filename_completion_function()', is used.
+
+
+File: readline.info,  Node: Completion Functions,  Next: Completion Variables,  Prev: How Completing Works,  Up: Custom Completers
+
+Completion Functions
+--------------------
+
+   Here is the complete list of callable completion functions present in
+Readline.
+
+ - Function: int rl_complete_internal (int what_to_do)
+     Complete the word at or before point.  WHAT_TO_DO says what to do
+     with the completion.  A value of `?' means list the possible
+     completions.  `TAB' means do standard completion.  `*' means
+     insert all of the possible completions.  `!' means to display all
+     of the possible completions, if there is more than one, as well as
+     performing partial completion.
+
+ - Function: int rl_complete (int ignore, int invoking_key)
+     Complete the word at or before point.  You have supplied the
+     function that does the initial simple matching selection algorithm
+     (see `rl_completion_matches()' and `rl_completion_entry_function').
+     The default is to do filename completion.  This calls
+     `rl_complete_internal()' with an argument depending on
+     INVOKING_KEY.
+
+ - Function: int rl_possible_completions (int count, int invoking_key)
+     List the possible completions.  See description of `rl_complete
+     ()'.  This calls `rl_complete_internal()' with an argument of `?'.
+
+ - Function: int rl_insert_completions (int count, int invoking_key)
+     Insert the list of possible completions into the line, deleting the
+     partially-completed word.  See description of `rl_complete()'.
+     This calls `rl_complete_internal()' with an argument of `*'.
+
+ - Function: char ** rl_completion_matches (const char *text,
+          rl_compentry_func_t *entry_func)
+     Returns an array of `(char *)' which is a list of completions for
+     TEXT.  If there are no completions, returns `NULL'.  The first
+     entry in the returned array is the substitution for TEXT.  The
+     remaining entries are the possible completions.  The array is
+     terminated with a `NULL' pointer.
+
+     ENTRY_FUNC is a function of two args, and returns a `(char *)'.
+     The first argument is TEXT.  The second is a state argument; it is
+     zero on the first call, and non-zero on subsequent calls.
+     ENTRY_FUNC returns a `NULL'  pointer to the caller when there are
+     no more matches.
+
+ - Function: char * rl_filename_completion_function (const char *text,
+          int state)
+     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 command.  The Bash source is a useful reference for writing
+     custom completion functions.
+
+ - Function: char * rl_username_completion_function (const char *text,
+          int state)
+     A completion generator for usernames.  TEXT contains a partial
+     username preceded by a random character (usually `~').  As with all
+     completion generators, STATE is zero on the first call and non-zero
+     for subsequent calls.
+
+
+File: readline.info,  Node: Completion Variables,  Next: A Short Completion Example,  Prev: Completion Functions,  Up: Custom Completers
+
+Completion Variables
+--------------------
+
+ - Variable: rl_compentry_func_t * rl_completion_entry_function
+     A pointer to the generator function for `rl_completion_matches()'.
+     `NULL' means to use `rl_filename_completion_function()', the
+     default filename completer.
+
+ - Variable: rl_completion_func_t * rl_attempted_completion_function
+     A pointer to an alternative function to create matches.  The
+     function is called with TEXT, START, and END.  START and END are
+     indices in `rl_line_buffer' defining the boundaries of TEXT, which
+     is a character string.  If this function exists and returns
+     `NULL', or if this variable is set to `NULL', then `rl_complete()'
+     will call the value of `rl_completion_entry_function' to generate
+     matches, otherwise the array of strings returned will be used.  If
+     this function sets the `rl_attempted_completion_over' variable to
+     a non-zero value, Readline will not perform its default completion
+     if this function returns no matches.
+
+ - Variable: rl_quote_func_t * rl_filename_quoting_function
+     A pointer to a function that will quote a filename in an
+     application-specific fashion.  This is called if filename
+     completion is being attempted and one of the characters in
+     `rl_filename_quote_characters' appears in a completed filename.
+     The function is called with TEXT, MATCH_TYPE, and QUOTE_POINTER.
+     The TEXT is the filename to be quoted.  The MATCH_TYPE is either
+     `SINGLE_MATCH', if there is only one completion match, or
+     `MULT_MATCH'.  Some functions use this to decide whether or not to
+     insert a closing quote character.  The QUOTE_POINTER is a pointer
+     to any opening quote character the user typed.  Some functions
+     choose to reset this character.
+
+ - Variable: rl_dequote_func_t * rl_filename_dequoting_function
+     A pointer to a function that will remove application-specific
+     quoting characters from a filename before completion is attempted,
+     so those characters do not interfere with matching the text
+     against names in the filesystem.  It is called with TEXT, the text
+     of the word to be dequoted, and QUOTE_CHAR, which is the quoting
+     character that delimits the filename (usually `'' or `"').  If
+     QUOTE_CHAR is zero, the filename was not in an embedded string.
+
+ - Variable: rl_linebuf_func_t * rl_char_is_quoted_p
+     A pointer to a function to call that determines whether or not a
+     specific character in the line buffer is quoted, according to
+     whatever quoting mechanism the program calling readline uses.  The
+     function is called with two arguments: TEXT, the text of the line,
+     and INDEX, the index of the character in the line.  It is used to
+     decide whether a character found in
+     `rl_completer_word_break_characters' should be used to break words
+     for the completer.
+
+ - Variable: int rl_completion_query_items
+     Up to this many items will be displayed in response to a
+     possible-completions call.  After that, we ask the user if she is
+     sure she wants to see them all.  The default value is 100.
+
+ - Variable: const char * rl_basic_word_break_characters
+     The basic list of characters that signal a break between words for
+     the completer routine.  The default value of this variable is the
+     characters which break words for completion in Bash, i.e., `"
+     \t\n\"\\'`@$><=;|&{("'.
+
+ - Variable: const char * rl_basic_quote_characters
+     List of quote characters which can cause a word break.
+
+ - Variable: const char * rl_completer_word_break_characters
+     The list of characters that signal a break between words for
+     `rl_complete_internal()'.  The default list is the value of
+     `rl_basic_word_break_characters'.
+
+ - Variable: const char * rl_completer_quote_characters
+     List of characters which can be used to quote a substring of the
+     line.  Completion occurs on the entire substring, and within the
+     substring `rl_completer_word_break_characters' are treated as any
+     other character, unless they also appear within this list.
+
+ - Variable: const char * rl_filename_quote_characters
+     A list of characters that cause a filename to be quoted by the
+     completer when they appear in a completed filename.  The default
+     is the null string.
+
+ - Variable: const char * rl_special_prefixes
+     The list of characters that are word break characters, but should
+     be left in TEXT when it is passed to the completion function.
+     Programs can use this to help determine what kind of completing to
+     do.  For instance, Bash sets this variable to "$@" so that it can
+     complete shell variables and hostnames.
+
+ - Variable: int rl_completion_append_character
+     When a single completion alternative matches at the end of the
+     command line, this character is appended to the inserted
+     completion text.  The default is a space character (` ').  Setting
+     this to the null character (`\0') prevents anything being appended
+     automatically.  This can be changed in custom completion functions
+     to provide the "most sensible word separator character" according
+     to an application-specific command line syntax specification.
+
+ - Variable: int rl_ignore_completion_duplicates
+     If non-zero, then disallow duplicates in the matches.  Default is
+     1.
+
+ - Variable: int rl_filename_completion_desired
+     Non-zero means that the results of the matches are to be treated as
+     filenames.  This is _always_ zero on entry, and can only be changed
+     within a completion entry generator function.  If it is set to a
+     non-zero value, directory names have a slash appended and Readline
+     attempts to quote completed filenames if they contain any
+     characters in `rl_filename_quote_characters' and
+     `rl_filename_quoting_desired' is set to a non-zero value.
+
+ - Variable: int rl_filename_quoting_desired
+     Non-zero means that the results of the matches are to be quoted
+     using double quotes (or an application-specific quoting mechanism)
+     if the completed filename contains any characters in
+     `rl_filename_quote_chars'.  This is _always_ non-zero on entry,
+     and can only be changed within a completion entry generator
+     function.  The quoting is effected via a call to the function
+     pointed to by `rl_filename_quoting_function'.
+
+ - Variable: int rl_attempted_completion_over
+     If an application-specific completion function assigned to
+     `rl_attempted_completion_function' sets this variable to a non-zero
+     value, Readline will not perform its default filename completion
+     if the application's completion function returns no matches.  It
+     should be set only by an application's completion function.
+
+ - Variable: int rl_completion_type
+     Set to a character describing the type of completion Readline is
+     currently attempting; see the description of
+     `rl_complete_internal()' (*note Completion Functions::) for the
+     list of characters.
+
+ - Variable: int rl_inhibit_completion
+     If this variable is non-zero, completion is inhibited.  The
+     completion character will be inserted as any other bound to
+     `self-insert'.
+
+ - Variable: rl_compignore_func_t * rl_ignore_some_completions_function
+     This function, if defined, is called by the completer when real
+     filename completion is done, after all the matching names have
+     been generated.  It is passed a `NULL' terminated array of matches.
+     The first element (`matches[0]') is the maximal substring common
+     to all matches. This function can re-arrange the list of matches
+     as required, but each element deleted from the array must be freed.
+
+ - Variable: rl_icppfunc_t * rl_directory_completion_hook
+     This function, if defined, is allowed to modify the directory
+     portion of filenames Readline completes.  It is called with the
+     address of a string (the current directory name) as an argument,
+     and may modify that string.  If the string is replaced with a new
+     string, the old value should be freed.  Any modified directory
+     name should have a trailing slash.  The modified value will be
+     displayed as part of the completion, replacing the directory
+     portion of the pathname the user typed.  It returns an integer
+     that should be non-zero if the function modifies its directory
+     argument.  It could be used to expand symbolic links or shell
+     variables in pathnames.
+
+ - Variable: rl_compdisp_func_t * rl_completion_display_matches_hook
+     If non-zero, then this is the address of a function to call when
+     completing a word would normally display the list of possible
+     matches.  This function is called in lieu of Readline displaying
+     the list.  It takes three arguments: (`char **'MATCHES, `int'
+     NUM_MATCHES, `int' MAX_LENGTH) where MATCHES is the array of
+     matching strings, NUM_MATCHES is the number of strings in that
+     array, and MAX_LENGTH is the length of the longest string in that
+     array.  Readline provides a convenience function,
+     `rl_display_match_list', that takes care of doing the display to
+     Readline's output stream.  That function may be called from this
+     hook.
+
+
+File: readline.info,  Node: A Short Completion Example,  Prev: Completion Variables,  Up: Custom Completers
+
+A Short Completion Example
+--------------------------
+
+   Here is a small application demonstrating the use of the GNU Readline
+library.  It is called `fileman', and the source code resides in
+`examples/fileman.c'.  This sample application provides completion of
+command names, line editing features, and access to the history list.
+
+     /* fileman.c -- A tiny application which demonstrates how to use the
+        GNU Readline library.  This application interactively allows users
+        to manipulate files and their modes. */
+     
+     #include <stdio.h>
+     #include <sys/types.h>
+     #include <sys/file.h>
+     #include <sys/stat.h>
+     #include <sys/errno.h>
+     
+     #include <readline/readline.h>
+     #include <readline/history.h>
+     
+     extern char *xmalloc ();
+     
+     /* The names of functions that actually do the manipulation. */
+     int com_list __P((char *));
+     int com_view __P((char *));
+     int com_rename __P((char *));
+     int com_stat __P((char *));
+     int com_pwd __P((char *));
+     int com_delete __P((char *));
+     int com_help __P((char *));
+     int com_cd __P((char *));
+     int com_quit __P((char *));
+     
+     /* A structure which contains information on the commands this program
+        can understand. */
+     
+     typedef struct {
+       char *name;			/* User printable name of the function. */
+       rl_icpfunc_t *func;		/* Function to call to do the job. */
+       char *doc;			/* Documentation for this function.  */
+     } COMMAND;
+     
+     COMMAND commands[] = {
+       { "cd", com_cd, "Change to directory DIR" },
+       { "delete", com_delete, "Delete FILE" },
+       { "help", com_help, "Display this text" },
+       { "?", com_help, "Synonym for `help'" },
+       { "list", com_list, "List files in DIR" },
+       { "ls", com_list, "Synonym for `list'" },
+       { "pwd", com_pwd, "Print the current working directory" },
+       { "quit", com_quit, "Quit using Fileman" },
+       { "rename", com_rename, "Rename FILE to NEWNAME" },
+       { "stat", com_stat, "Print out statistics on FILE" },
+       { "view", com_view, "View the contents of FILE" },
+       { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
+     };
+     
+     /* Forward declarations. */
+     char *stripwhite ();
+     COMMAND *find_command ();
+     
+     /* The name of this program, as taken from argv[0]. */
+     char *progname;
+     
+     /* When non-zero, this means the user is done using this program. */
+     int done;
+     
+     char *
+     dupstr (s)
+          int s;
+     {
+       char *r;
+     
+       r = xmalloc (strlen (s) + 1);
+       strcpy (r, s);
+       return (r);
+     }
+     
+     main (argc, argv)
+          int argc;
+          char **argv;
+     {
+       char *line, *s;
+     
+       progname = argv[0];
+     
+       initialize_readline ();	/* Bind our completer. */
+     
+       /* Loop reading and executing lines until the user quits. */
+       for ( ; done == 0; )
+         {
+           line = readline ("FileMan: ");
+     
+           if (!line)
+             break;
+     
+           /* Remove leading and trailing whitespace from the line.
+              Then, if there is anything left, add it to the history list
+              and execute it. */
+           s = stripwhite (line);
+     
+           if (*s)
+             {
+               add_history (s);
+               execute_line (s);
+             }
+     
+           free (line);
+         }
+       exit (0);
+     }
+     
+     /* Execute a command line. */
+     int
+     execute_line (line)
+          char *line;
+     {
+       register int i;
+       COMMAND *command;
+       char *word;
+     
+       /* Isolate the command word. */
+       i = 0;
+       while (line[i] && whitespace (line[i]))
+         i++;
+       word = line + i;
+     
+       while (line[i] && !whitespace (line[i]))
+         i++;
+     
+       if (line[i])
+         line[i++] = '\0';
+     
+       command = find_command (word);
+     
+       if (!command)
+         {
+           fprintf (stderr, "%s: No such command for FileMan.\n", word);
+           return (-1);
+         }
+     
+       /* Get argument to command, if any. */
+       while (whitespace (line[i]))
+         i++;
+     
+       word = line + i;
+     
+       /* Call the function. */
+       return ((*(command->func)) (word));
+     }
+     
+     /* Look up NAME as the name of a command, and return a pointer to that
+        command.  Return a NULL pointer if NAME isn't a command name. */
+     COMMAND *
+     find_command (name)
+          char *name;
+     {
+       register int i;
+     
+       for (i = 0; commands[i].name; i++)
+         if (strcmp (name, commands[i].name) == 0)
+           return (&commands[i]);
+     
+       return ((COMMAND *)NULL);
+     }
+     
+     /* Strip whitespace from the start and end of STRING.  Return a pointer
+        into STRING. */
+     char *
+     stripwhite (string)
+          char *string;
+     {
+       register char *s, *t;
+     
+       for (s = string; whitespace (*s); s++)
+         ;
+     
+       if (*s == 0)
+         return (s);
+     
+       t = s + strlen (s) - 1;
+       while (t > s && whitespace (*t))
+         t--;
+       *++t = '\0';
+     
+       return s;
+     }
+     
+     /* **************************************************************** */
+     /*                                                                  */
+     /*                  Interface to Readline Completion                */
+     /*                                                                  */
+     /* **************************************************************** */
+     
+     char *command_generator __P((const char *, int));
+     char **fileman_completion __P((const char *, int, int));
+     
+     /* Tell the GNU Readline library how to complete.  We want to try to
+        complete on command names if this is the first word in the line, or
+        on filenames if not. */
+     initialize_readline ()
+     {
+       /* Allow conditional parsing of the ~/.inputrc file. */
+       rl_readline_name = "FileMan";
+     
+       /* Tell the completer that we want a crack first. */
+       rl_attempted_completion_function = fileman_completion;
+     }
+     
+     /* Attempt to complete on the contents of TEXT.  START and END
+        bound the region of rl_line_buffer that contains the word to
+        complete.  TEXT is the word to complete.  We can use the entire
+        contents of rl_line_buffer in case we want to do some simple
+        parsing.  Returnthe array of matches, or NULL if there aren't any. */
+     char **
+     fileman_completion (text, start, end)
+          const char *text;
+          int start, end;
+     {
+       char **matches;
+     
+       matches = (char **)NULL;
+     
+       /* If this word is at the start of the line, then it is a command
+          to complete.  Otherwise it is the name of a file in the current
+          directory. */
+       if (start == 0)
+         matches = rl_completion_matches (text, command_generator);
+     
+       return (matches);
+     }
+     
+     /* Generator function for command completion.  STATE lets us
+        know whether to start from scratch; without any state
+        (i.e. STATE == 0), then we start at the top of the list. */
+     char *
+     command_generator (text, state)
+          const char *text;
+          int state;
+     {
+       static int list_index, len;
+       char *name;
+     
+       /* If this is a new word to complete, initialize now.  This
+          includes saving the length of TEXT for efficiency, and
+          initializing the index variable to 0. */
+       if (!state)
+         {
+           list_index = 0;
+           len = strlen (text);
+         }
+     
+       /* Return the next name which partially matches from the
+          command list. */
+       while (name = commands[list_index].name)
+         {
+           list_index++;
+     
+           if (strncmp (name, text, len) == 0)
+             return (dupstr(name));
+         }
+     
+       /* If no names matched, then return NULL. */
+       return ((char *)NULL);
+     }
+     
+     /* **************************************************************** */
+     /*                                                                  */
+     /*                       FileMan Commands                           */
+     /*                                                                  */
+     /* **************************************************************** */
+     
+     /* String to pass to system ().  This is for the LIST, VIEW and RENAME
+        commands. */
+     static char syscom[1024];
+     
+     /* List the file(s) named in arg. */
+     com_list (arg)
+          char *arg;
+     {
+       if (!arg)
+         arg = "";
+     
+       sprintf (syscom, "ls -FClg %s", arg);
+       return (system (syscom));
+     }
+     
+     com_view (arg)
+          char *arg;
+     {
+       if (!valid_argument ("view", arg))
+         return 1;
+     
+       sprintf (syscom, "more %s", arg);
+       return (system (syscom));
+     }
+     
+     com_rename (arg)
+          char *arg;
+     {
+       too_dangerous ("rename");
+       return (1);
+     }
+     
+     com_stat (arg)
+          char *arg;
+     {
+       struct stat finfo;
+     
+       if (!valid_argument ("stat", arg))
+         return (1);
+     
+       if (stat (arg, &finfo) == -1)
+         {
+           perror (arg);
+           return (1);
+         }
+     
+       printf ("Statistics for `%s':\n", arg);
+     
+       printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
+               finfo.st_nlink,
+               (finfo.st_nlink == 1) ? "" : "s",
+               finfo.st_size,
+               (finfo.st_size == 1) ? "" : "s");
+       printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
+       printf ("      Last access at: %s", ctime (&finfo.st_atime));
+       printf ("    Last modified at: %s", ctime (&finfo.st_mtime));
+       return (0);
+     }
+     
+     com_delete (arg)
+          char *arg;
+     {
+       too_dangerous ("delete");
+       return (1);
+     }
+     
+     /* Print out help for ARG, or for all of the commands if ARG is
+        not present. */
+     com_help (arg)
+          char *arg;
+     {
+       register int i;
+       int printed = 0;
+     
+       for (i = 0; commands[i].name; i++)
+         {
+           if (!*arg || (strcmp (arg, commands[i].name) == 0))
+             {
+               printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
+               printed++;
+             }
+         }
+     
+       if (!printed)
+         {
+           printf ("No commands match `%s'.  Possibilties are:\n", arg);
+     
+           for (i = 0; commands[i].name; i++)
+             {
+               /* Print in six columns. */
+               if (printed == 6)
+                 {
+                   printed = 0;
+                   printf ("\n");
+                 }
+     
+               printf ("%s\t", commands[i].name);
+               printed++;
+             }
+     
+           if (printed)
+             printf ("\n");
+         }
+       return (0);
+     }
+     
+     /* Change to the directory ARG. */
+     com_cd (arg)
+          char *arg;
+     {
+       if (chdir (arg) == -1)
+         {
+           perror (arg);
+           return 1;
+         }
+     
+       com_pwd ("");
+       return (0);
+     }
+     
+     /* Print out the current working directory. */
+     com_pwd (ignore)
+          char *ignore;
+     {
+       char dir[1024], *s;
+     
+       s = getcwd (dir, sizeof(dir) - 1);
+       if (s == 0)
+         {
+           printf ("Error getting pwd: %s\n", dir);
+           return 1;
+         }
+     
+       printf ("Current directory is %s\n", dir);
+       return 0;
+     }
+     
+     /* The user wishes to quit using this program.  Just set DONE
+        non-zero. */
+     com_quit (arg)
+          char *arg;
+     {
+       done = 1;
+       return (0);
+     }
+     
+     /* Function which tells you that you can't do this. */
+     too_dangerous (caller)
+          char *caller;
+     {
+       fprintf (stderr,
+                "%s: Too dangerous for me to distribute.  Write it yourself.\n",
+                caller);
+     }
+     
+     /* Return non-zero if ARG is a valid argument for CALLER, else print
+        an error message and return zero. */
+     int
+     valid_argument (caller, arg)
+          char *caller, *arg;
+     {
+       if (!arg || !*arg)
+         {
+           fprintf (stderr, "%s: Argument required.\n", caller);
+           return (0);
+         }
+     
+       return (1);
+     }
+
+
+File: readline.info,  Node: Concept Index,  Next: Function and Variable Index,  Prev: Programming with GNU Readline,  Up: Top
+
+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.
+
+
+File: readline.info,  Node: Function and Variable Index,  Prev: Concept Index,  Up: Top
+
+Function and Variable Index
+***************************
+
+* Menu:
+
+* _rl_digit_p:                           Utility Functions.
+* _rl_digit_value:                       Utility Functions.
+* _rl_lowercase_p:                       Utility Functions.
+* _rl_to_lower:                          Utility Functions.
+* _rl_to_upper:                          Utility Functions.
+* _rl_uppercase_p:                       Utility Functions.
+* abort (C-g):                           Miscellaneous Commands.
+* accept-line (Newline or Return):       Commands For History.
+* 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.
+* 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-char-or-list ():                Commands For Completion.
+* delete-horizontal-space ():            Commands For Killing.
+* digit-argument (M-0, M-1, ... M--):    Numeric Arguments.
+* 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.
+* forward-backward-delete-char ():       Commands For Text.
+* forward-char (C-f):                    Commands For Moving.
+* forward-search-history (C-s):          Commands For History.
+* forward-word (M-f):                    Commands For Moving.
+* 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.
+* isearch-terminators:                   Readline Init File Syntax.
+* 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.
+* 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.
+* 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 or 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_funmap_entry:                   Associating Function Names and Bindings.
+* rl_add_undo:                           Allowing Undoing.
+* rl_alphabetic:                         Utility Functions.
+* rl_already_prompted:                   Readline Variables.
+* rl_attempted_completion_function:      Completion Variables.
+* rl_attempted_completion_over:          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_catch_signals:                      Readline Signal Handling.
+* rl_catch_sigwinch:                     Readline Signal Handling.
+* rl_char_is_quoted_p:                   Completion Variables.
+* rl_cleanup_after_signal:               Readline Signal Handling.
+* rl_clear_message:                      Redisplay.
+* rl_clear_pending_input:                Character Input.
+* rl_clear_signals:                      Readline Signal Handling.
+* 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_display_matches_hook:    Completion Variables.
+* rl_completion_entry_function <1>:      How Completing Works.
+* rl_completion_entry_function:          Completion Variables.
+* rl_completion_matches:                 Completion Functions.
+* rl_completion_query_items:             Completion Variables.
+* rl_completion_type:                    Completion Variables.
+* rl_copy_keymap:                        Keymaps.
+* rl_copy_text:                          Modifying Text.
+* rl_crlf:                               Redisplay.
+* rl_delete_text:                        Modifying Text.
+* rl_deprep_term_function:               Readline Variables.
+* rl_deprep_terminal:                    Terminal Management.
+* rl_ding:                               Utility Functions.
+* rl_directory_completion_hook:          Completion Variables.
+* rl_discard_keymap:                     Keymaps.
+* rl_dispatching:                        Readline Variables.
+* rl_display_match_list:                 Utility Functions.
+* rl_do_undo:                            Allowing Undoing.
+* rl_done:                               Readline Variables.
+* rl_editing_mode:                       Readline Variables.
+* rl_end:                                Readline Variables.
+* rl_end_undo_group:                     Allowing Undoing.
+* rl_erase_empty_line:                   Readline Variables.
+* rl_event_hook:                         Readline Variables.
+* rl_execute_next:                       Character Input.
+* rl_executing_keymap:                   Readline Variables.
+* rl_executing_macro:                    Readline Variables.
+* rl_expand_prompt:                      Redisplay.
+* rl_explicit_arg:                       Readline Variables.
+* rl_extend_line_buffer:                 Utility Functions.
+* rl_filename_completion_desired:        Completion Variables.
+* rl_filename_completion_function:       Completion Functions.
+* 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_free_line_state:                    Readline Signal Handling.
+* rl_free_undo_list:                     Allowing Undoing.
+* rl_function_dumper:                    Associating Function Names and Bindings.
+* rl_function_of_keyseq:                 Associating Function Names and Bindings.
+* rl_funmap_names:                       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:                               Character Input.
+* rl_getc_function:                      Readline Variables.
+* rl_gnu_readline_p:                     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_last_func:                          Readline Variables.
+* 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_num_chars_to_read:                  Readline Variables.
+* rl_numeric_arg:                        Readline Variables.
+* rl_on_new_line:                        Redisplay.
+* rl_on_new_line_with_prompt:            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_pre_input_hook:                     Readline Variables.
+* rl_prep_term_function:                 Readline Variables.
+* rl_prep_terminal:                      Terminal Management.
+* rl_prompt:                             Readline Variables.
+* rl_read_init_file:                     Binding Keys.
+* rl_read_key:                           Character Input.
+* rl_readline_name:                      Readline Variables.
+* rl_readline_state:                     Readline Variables.
+* rl_redisplay:                          Redisplay.
+* rl_redisplay_function:                 Readline Variables.
+* rl_reset_after_signal:                 Readline Signal Handling.
+* rl_reset_line_state:                   Redisplay.
+* rl_reset_terminal:                     Terminal Management.
+* rl_resize_terminal:                    Readline Signal Handling.
+* rl_restore_prompt:                     Redisplay.
+* rl_save_prompt:                        Redisplay.
+* rl_set_key:                            Binding Keys.
+* rl_set_keymap:                         Keymaps.
+* rl_set_screen_size:                    Readline Signal Handling.
+* rl_set_signals:                        Readline Signal Handling.
+* rl_special_prefixes:                   Completion Variables.
+* rl_startup_hook:                       Readline Variables.
+* rl_stuff_char:                         Character Input.
+* rl_terminal_name:                      Readline Variables.
+* rl_tty_set_default_bindings:           Terminal Management.
+* 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.
+* rl_username_completion_function:       Completion Functions.
+* 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.
+* transpose-chars (C-t):                 Commands For Text.
+* transpose-words (M-t):                 Commands For Text.
+* undo (C-_ or C-x C-u):                 Miscellaneous Commands.
+* universal-argument ():                 Numeric Arguments.
+* unix-line-discard (C-u):               Commands For Killing.
+* unix-word-rubout (C-w):                Commands For Killing.
+* upcase-word (M-u):                     Commands For Text.
+* visible-stats:                         Readline Init File Syntax.
+* yank (C-y):                            Commands For Killing.
+* yank-last-arg (M-. or M-_):            Commands For History.
+* yank-nth-arg (M-C-y):                  Commands For History.
+* yank-pop (M-y):                        Commands For Killing.
+
+
+
+Tag Table:
+Node: Top1164
+Node: Command Line Editing1763
+Node: Introduction and Notation2414
+Node: Readline Interaction4032
+Node: Readline Bare Essentials5219
+Node: Readline Movement Commands7000
+Node: Readline Killing Commands7957
+Node: Readline Arguments9867
+Node: Searching10903
+Node: Readline Init File12859
+Node: Readline Init File Syntax13920
+Node: Conditional Init Constructs23536
+Node: Sample Init File25975
+Node: Bindable Readline Commands29145
+Node: Commands For Moving30195
+Node: Commands For History31044
+Node: Commands For Text33826
+Node: Commands For Killing35831
+Node: Numeric Arguments37804
+Node: Commands For Completion38932
+Node: Keyboard Macros40421
+Node: Miscellaneous Commands40980
+Node: Readline vi Mode43796
+Node: Programming with GNU Readline45549
+Node: Basic Behavior46517
+Node: Custom Functions49930
+Node: Readline Typedefs50908
+Node: Function Writing52537
+Node: Readline Variables53621
+Node: Readline Convenience Functions62417
+Node: Function Naming63272
+Node: Keymaps64524
+Node: Binding Keys66280
+Node: Associating Function Names and Bindings69206
+Node: Allowing Undoing71451
+Node: Redisplay73986
+Node: Modifying Text76536
+Node: Character Input77451
+Node: Terminal Management78661
+Node: Utility Functions79830
+Node: Alternate Interface81893
+Node: Readline Signal Handling85289
+Node: Custom Completers90545
+Node: How Completing Works91260
+Node: Completion Functions94258
+Node: Completion Variables97317
+Node: A Short Completion Example106674
+Node: Concept Index119199
+Node: Function and Variable Index119953
+
+End Tag Table
new file mode 100644
--- /dev/null
+++ b/readline/doc/readline.ps
@@ -0,0 +1,4858 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.82 Copyright 1998 Radical Eye Software
+%%Title: readline.dvi
+%%Pages: 62
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -D 300 -t letter -o readline.ps readline.dvi
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource:  TeX output 2001.02.05:1130
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}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}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IE 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IE N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 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 A 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 A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 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}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}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
+
+%%EndProcSet
+TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi)
+@start
+%DVIPSBitmapFont: Fa cmbxti10 14.4 1
+/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmsl9 9 1
+/Fb 1 121 df<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F1201133812
+02487EEA081E123838FC3FC013107F8F14>120 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmsltt10 9 4
+/Fc 4 78 df<EAFFFC13FE13FC0F037C8C14>45 D<EA01E0EA07F8EA0E3CEA1C1CEA180E
+12381270A312E0A4131CA31338A21370EA70E01271EA3F80EA1F000F177C9614>48
+D<134013E0EA01C01203120F123D12111201EA0380A6EA0700A6120EEAFFE0A20B177B96
+14>I<381F81F813C1380FC3E0EA0EC213C6A213CE13CC381CCDC013DD13D9A213F1A238
+38E3801303A53870070038FC0FC0A215177F9614>77 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd cmtt9 9 46
+/Fd 46 127 df<126012F0AD12601200A4126012F0A212600417789614>33
+D<EA071CA5B51280A27E380E3800A7387FFF80B5FCA2381C7000A511177F9614>35
+D<EA01801203EA06005A121C121812385AA35AA91270A37E1218121C120C7EEA03801201
+091D799914>40 D<128012C01260123012381218121C120EA31207A9120EA3121C121812
+381230126012C01280081D7C9914>I<EA0380A3EA638CEAF39EEA7FFCEA3FF8EA0FE0A2
+EA3FF8EA7FFCEAF39EEA638CEA0380A30F107E9214>I<127012F812FCA2127C120C1218
+123012E012C0060A798414>44 D<EAFFFEA30F037E8C14>I<127012F8A3127005057984
+14>I<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>49
+D<1306131E133E13F8EA01F0EA03C0EA0F80EA1F00123C12F85A7E123C121FEA0F80EA03
+C0EA01F0EA00F8133E131E13060F157E9514>60 D<12C012F07E123E7EEA0780EA03E0EA
+01F0EA0078133E131E133E1378EA01F0EA03E0EA0780EA1F00123E12F85A12C00F157E95
+14>62 D<EA1FE0EA3FF8EA701CEAE00EA21240EA003C137013E0EA01C0EA0380A41300C7
+FCA41203EA0780A2EA03000F177E9614>I<EA01E0EA07F0EA0E38EA181CEA38FC1271EA
+731E1277EAEE0EA7EA771CEA7318EA71F0EA38E0EA1806EA0E1EEA07F8EA01F00F177E96
+14>I<EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA2
+38FE3F80A211177F9614>I<3801F180EA07FFEA0E1FEA1C071238EA7003A348C7FCA738
+700380A338380700121CEA0E0EEA07FCEA01F011177F9614>67 D<38FC1F80A2007C1300
+EA7637A4EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>77
+D<38FE3F80A2383E0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA21117
+7F9614>I<EAFFE013F8EA383C131C7FA45B133CEA3FF85BEA38387FA51480EB1DC0A238
+FE0F80EB070012177F9614>82 D<EAFFE0A21200B3A712FFA20B1D7F9914>93
+D<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C
+1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA
+1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<
+EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F0
+0F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301E
+EA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2
+EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA
+038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA
+383B38301800EA701CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA70
+0F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1D
+FEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA212
+07ACEAFFF8A20D187C9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2
+EA1E70EA1C38133C131C7F38FF1F80A21117809614>107 D<EAFF80A21203B3EAFFFEA2
+0F177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC
+78EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA70
+1CA2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F
+07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA212
+18808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07
+C7EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8
+EAFFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA
+001CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA
+0E00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA
+03E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311
+107F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E38
+11107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E781338
+487E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA03
+70A25B1201A25BA3485A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C
+1338EA007013E0EA01C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I<EA
+1C10EA3F38EAE7E0EA41C00D047D9614>126 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe cmti9 9 1
+/Fe 1 47 df<1230127812F0126005047C830C>46 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff cmr9 9 39
+/Ff 39 123 df<13FEEA038138060180EA0E03381C010090C7FCA5B51280EA1C03AE38FF
+8FF0141A809915>12 D<EBFF80EA0383EA0603120E121CA6B5FCEA1C03AE38FF9FF0141A
+809915>I<126012F0A212701210A31220A21240A2040B7D830B>44
+D<EAFFC0A20A0280880D>I<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA
+6006A2EA700EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA
+7FF80D187D9713>I<EA0F80EA1060EA2030EA4038EA803CEAC01C12E01240EA003C1338
+A21370136013C0EA018013001202EA040412081210EA3008EA3FF8127F12FF0E187E9713
+>I<EA07E0EA1838EA201CEA601EEA700EEA201E1200131CA213381370EA07E0EA003813
+1C130E130FA212E0A212C0EA400EEA601CEA1838EA07E010187F9713>I<1318A2133813
+7813F813B8EA01381202A212041208121812101220124012C0B5FCEA0038A6EA03FF1018
+7F9713>I<EA3018EA3FF013E01380EA2000A5EA2FC0EA3060EA2030EA00381318131CA2
+124012E0A2EA8018EA40381330EA30E0EA0F800E187E9713>I<EA01F8EA0704EA0C06EA
+180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEAE0061307A31260A2EA7006
+EA300EEA180CEA0C38EA07E010187F9713>I<1240EA7FFF13FEA2EA4004EA80081310A2
+EA00201340A21380120113005AA25A1206A2120EA5120410197E9813>I<EA07E0EA1818
+EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03E0EA0CF8EA307CEA601E13
+0FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>I<EA07E0EA1C30EA3018EA
+700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07C7EA00071306130E130C12
+701318EA6030EA3060EA0F8010187F9713>I<EA1FC0EA38707FEA101C1200A2EA03FCEA
+1E1C1238127012E01480A2133CEA705F381F8F0011107F8F13>97
+D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906
+EA10F8131A809915>I<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
+07E00E107F8F11>I<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A
+EA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE000
+A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C101300
+A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF3818718038303000EA7038A4EA3030
+6C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07E011
+187F8F13>I<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218
+123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F00130C5B
+13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107
+D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301
+AB39FF9FE7F81D107F8F20>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF01410808F15>
+I<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA381CEA1C38EA07E010
+107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C01480381E0300EA1D
+06EA1CF890C7FCA6B47E1317808F15>I<EA03E1EA0C13EA180BEA300FEA700712E0A612
+70A26C5AEA1C37EA07C7EA0007A6EB3FE013177F8F14>I<EAFC78EA1D9CEA1E1C1308EA
+1C00ABEAFF800E10808F0F>I<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0EA1FE0
+EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238EAFFC0
+EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E
+0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2
+EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16
+081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C
+1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0
+12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C
+5AA248C7FCA212E112E212E4127811177F8F14>I<EAFFF8EAE07012C0EA80E0EA81C0A2
+EA0380EA0700A2EA0E04121CA2EA380812701338EAFFF80E107F8F11>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg cmss10 10.95 2
+/Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
+AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
+D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
+07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh cmbx10 12 27
+/Fh 27 123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC013
+87ED83C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11
+D<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80B6FCA2
+380FC01FB2397FF8FFF0A21C237FA220>I<EA07FE381FFF80383F07E06D7E130180121E
+1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA7C02EA7E0C391FF87F803807E03F1916
+7E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF03EEBC01F9038800F8015C0140715E0A7
+15C0A2140F15809038C01F00381E707E381C3FFC38180FE01B237EA220>I<EBFF800007
+13E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6127C127EA2003E13186C133038
+0FC0603807FFC0C6130015167E9519>I<49B4FCA2EB003FAB13FE3807FFBF380FC1FF48
+C67E003E7F127E127CA212FCA7127C127E123E6C5B380F81FF3907FF3FE0EA01FC1B237E
+A220>I<13FE3807FF80380F83C0381E01E0383E00F0127E007C13F8147812FCB512F8A2
+00FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0C6130015167E951A>I<EB1F80
+EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC000A6EAFFFEA2EA0FC0B2EA7FFCA21423
+7EA212>I<9038FE0F803903FF9FC0380F83E3381F01F3391E00F000003E7FA5001E5BEA
+1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C381FFFE014FC6C13FF7E001F1480
+397C001FC00078130F00F81307A3007CEB0F806CEB1F00381F807E6CB45A000113E01A21
+7F951D>I<B47EA2121FABEB83F0EB8FFCEB987EEBA03EEBC03FA21380AE39FFF1FFE0A2
+1B237DA220>I<121E123FEA7F80A4EA3F00121EC7FCA6EAFF80A2121FB2EAFFF0A20C24
+7EA30F>I<B47EA2121FABECFF80A2EC3C00143014E0EB81C00183C7FC1386139E13BE13
+FFEBDF80EB8FC01307806D7E6D7E130080147E39FFE1FFC0A21A237EA21E>107
+D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F803F890390FFE0FFE3A1F183F
+183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0A22C167D9531>I<38
+FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B167D9520>I<13FF00
+0713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C133E007E137E003E137C
+6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBFFC381FF07EEBC01F90
+38800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEBBFFCEB8FE00180C7FC
+A8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF381F00DF48137F007E7FA2127C
+12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8903801FFE0A21B207E951E>
+I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8A214167E9518>I<38
+07F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003F
+C0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E9517>I<487EA41203A2
+1207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FEEA01F811207F9F16>
+I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B167D9520>I<39FFF01F
+E0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0EB
+7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FCA23A1F807C00E0D80F
+C014C08001E013010007017F1380A2D803F0EB0300ECCF8301F81387D801F913C61487D8
+00FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026167F9529>I<39FFF0
+7FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7FC7F6D7E497EEB37E0
+EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B167F951E>I<39FFF0
+1FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0
+EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8
+FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E0138038C03F005B137EC6
+5A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA7E03B5FCA214167E95
+19>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi cmtt10 12 29
+/Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
+FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<B512F8A3381C0038A51400
+A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA3161E7E9D1A>69
+D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7FCA8EA7FE012
+FF127F161E7F9D1A>I<B51280A33801C000B3A6B51280A3111E7C9D1A>73
+D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B7F12
+1DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF81FE
+387F00FC171E7F9D1A>75 D<EA7FE0487E6C5A000EC7FCB3141CA5387FFFFCB5FC7E161E
+7F9D1A>I<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA
+300738000380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA
+1FFDEA07F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB00
+38120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<
+EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F
+01F0380FFFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0F
+FFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1
+161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0
+A300E0C7FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<
+EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF8048
+13C06C1380151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C0380383801C0A5381C
+0380EA1E07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F83878007C0070131C
+48130EA40070131C0078133C003E13F8381FFFF0000713C00001130017217F941A>I<12
+FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D
+1A>I<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80B512C06C1380121F7C9E1A>
+I<12FEA3120EA6EB0FFCEB1FFEEB0FFCEB03C0EB0780EB0F00131E5B5B13FC120F13DE13
+8F380E07801303EB01C014E0EB00F038FFE3FE14FF14FE181E7F9D1A>107
+D<EAFFE0A31200B3A6B512E0A3131E7D9D1A>I<387CE0E038FFFBF8EA7FFF381F1F1CEA
+1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>I<EAFE3EEBFF80B512
+C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>I<EA01F0EA07FCEA1FFF
+383E0F80EA3C07387803C0EA700138E000E0A6EAF001007013C0EA7803383C0780EA3E0F
+381FFF00EA07FCEA01F013157D941A>I<EAFE3EEBFF80B512E0380FC1F0EB8070EB0038
+120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E1380EB3E0090C7FCA8EAFFE0A316
+207F941A>I<3801F8E0EA07FEEA0FFFEA1E07EA3C03EA78011270EAE000A613011270EA
+7803123CEA1E0FEA0FFFEA07FCEA01F0C7FCA8EB0FFEA317207E941A>I<387F81F838FF
+8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>I<3807FB
+80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA07FE38003F801307386001C0
+12E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A>I<487E1203A6387FFFE0B5
+FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F9B1A>I<38FE0FE0A3EA0E
+00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E
+00E0A3380701C0A338038380A33801C700A3EA00EEA3137CA2133817157F941A>I<387F
+C7FC00FF13FE007F13FC380E00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7
+A213E61366136E133CA31338A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F
+941A>121 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fj cmbx12 13.14 52
+/Fj 52 122 df<123C127E12FFA4127E123C08087C8711>46 D<EB7F803803FFF03807E1
+F8380F807C48487E48133F003E7F007E1480A400FE14C0AD007E1480A46CEB3F00A26C13
+3E6C6C5A3807E1F86CB45A38007F801A237EA21F>48 D<131C133C13FC12FFA21200B3AA
+387FFFFCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12
+FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B
+1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>
+I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB
+03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FE
+A214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A2
+14F81301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A1218
+5A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEB
+FFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FC
+C7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE
+0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA200
+7E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E
+123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512
+C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133C
+A25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F8381C007C48
+133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313E014F800
+0F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C1338381F80
+F03807FFE00001130018237DA21F>I<13FF000313C0380F83E0381F00F04813F8007E13
+7CA2147E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C
+007E13FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141C
+A2143EA3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F140301
+1C7FEB1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C712
+0FA2486E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F0007FED3F80ED1F
+C0ED0FE0A216F0A21507150FA216E0151F16C0ED7F80913801FE0090B512F815FF9039F0
+003FC0ED0FE0ED07F016F8150316FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F82625
+7EA42C>I<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301
+4848130048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C
+1430120F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013
+C025257DA42C>I<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2
+140E141EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7
+FCA223257EA428>69 D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C
+5C90B5FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F8
+0003F800AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72
+D<B512E0A23803F800B3AFB512E0A213257EA417>I<B539E007FF80A2D803F8C7EA7800
+16605E4B5A0307C7FC150E15185D5D5DEC03804AC8FC140E141F4A7E147FECDFC09038FB
+8FE09038FF0FF0EBFC07496C7E816E7E1400157F82153F6F7E6F7E8215076F7E82B539E0
+3FFFC0A22A257EA430>75 D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E
+157CEC03FCB6FCA220257EA425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D14
+06A26D6C130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A29138
+7E0300A3EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A23525
+7EA43A>I<D8FFF8903807FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13
+036D7E6D7E80EC7F80EC3FC0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3F
+D8ED1FF8150F15071503A2150115001678486C1438D8FFFC1418A22B257EA430>I<B67E
+15F83903F801FEEC007F6F7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F8
+03F06E7E6E7E157EA2157FA482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B
+257EA42E>82 D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A2
+7E91C7FCB4FCEA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC
+0FE01407A200C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B
+257DA422>I<007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C16
+0C5AA4C71400B3A390B512FEA226247EA32B>I<B539E00FFFC0A2D803F8C7EA78001630
+B3A700015D7F00005D137C6D495A6D0107C7FC90380FE03E903803FFF89038007FC02A25
+7EA42F>I<B5398001FFE0A2D807F8C7EA1C0000031518A26D1438000115306D14700000
+15607F6D5C80013F495AA2ECC003011F91C7FC6E5A010F130614F001075BA26D6C5AA2EC
+FC3801011330ECFE700100136014FF6E5AA26E5AA36EC8FCA2140EA22B257FA42E>I<B5
+3B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D496C13
+38000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E0138190
+280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14FC6D
+486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>I<B539C001FFE0A2
+D807F8C7EA1C006C6C141816386C6C14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7
+FC90380FF006150E903807F80C6D6C5A15386D6C5A903800FF6015E06E5A6E5AAE90380F
+FFFCA22B257FA42E>89 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1F
+FE3803FE7EEA0FC0EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B
+187E971E>97 D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2
+EC01F8A215FCA815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E26
+7FA522>I<EB7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F
+6C130CEA1F80EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC13
+7F3803FFCF380FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380F
+C0EF3903FFCFFC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048
+137C127E147E12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803
+FFE038007F8017187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400
+A7B5FCA2EA0FC0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F
+01393E00F800007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA2123812
+3C383FFFE06C13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00
+381F807E3807FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0F
+C013D89038D007E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4
+EA1F80EA0F00C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC
+1FF0A2EC0780EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB
+80FC147E80A2EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EA
+FFFCA20E267EA511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A
+9007E803F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE9038
+83FF80390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F
+803803FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F
+00A2381F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC0
+9038F007E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F
+809038CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7C
+EB90FC13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C
+07EA7001EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC0
+01A212E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A3120312
+07120F121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218
+>I<39FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E97
+22>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13
+FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<3BFFF9FF
+E0FF80A23B1FC03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015
+E02601F8635BA29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA201
+1E133CA3010C131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C
+6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F39
+07003F8048131F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E0
+0300A26D5A00031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D
+5AA26DC7FCA21306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720
+>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fk cmsl10 10.95 44
+/Fk 44 122 df<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF0380380
+70A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>12
+D<EB03F4EB1C1CEB383C137013E01438EA01C0A538038070387FFFF038038070A4380700
+E0A6380E01C0A6381C0380001E13C038FF9FF016207E9F19>I<EAFFF0A20C027E8A0F>
+45 D<1408140C141C143CA2147C147E149EA2EB011EA21302801304A21308A201101380
+14071320A2EB7FFF90384007C0EB8003A2EA0100A21202EC01E01206001F130339FF801F
+FE1F207F9F22>65 D<0007B5FC3900F803C090387801E0EC00F04913F8A515F03801E001
+EC03E015C0EC0F809038FFFE009038E00F803903C003C0EC01E015F0A21400A2485A1401
+A215E01403EC07C0390F000F80EC3E00B512F01D1F7E9E20>I<ECFE0290380701869038
+1C004E0170133E49131E4848131C4848130C120748C7FC5A121E003E1408003C1400127C
+A45AA4127815101520A27E1540001C14806CEB01006C13023803800C3800E030EB3FC01F
+217C9F21>I<0007B57E3900F801E0903878007081497F151E150E150FA348481480A648
+4814005DA3151E153E4848133C5DA25D4A5A4A5A260F000FC7FC143CB512F0211F7E9E23
+>I<0007B512FC3900F8007C0178131C150C5B1504A414043901E00800A31438EBFFF8EB
+E0383803C010A4EC00081510485AA21520A2156015C0380F00011407B612801E1F7E9E1F
+>I<0007B512F83900F800780178133815185B1508A53901E00800A314181438EBFFF838
+03C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E>I<3807FF803800F8001378
+A25BA6485AA6485AA6485AA648C7FC7FEAFFF0111F7E9E10>73 D<3A07FF803FE03A00F8
+001F000178130C5D4913205D5D4AC7FC1402140848485A5C146014F013E1EBE4F83803C8
+78EBD07CEBE03CEBC03E141E141F48487E81140781140381380F00016D487E39FFF00FFE
+231F7E9E23>75 D<3807FFE0D800FCC7FC1378A25BA6485AA6485AA41580EC0100EA0780
+A25C14021406140E380F001E147CB512FC191F7E9E1C>I<D807F8EB7FC0D8007CEB1F00
+150C015E1304019E5B138FA2EB8780A2EB83C0D801035BEB01E0A2EB00F0A2147800025C
+143CA2141EA2140F485CEC07C0A21403A21401000C5C001E1300B47E221F7E9E22>78
+D<EB01FCEB0E0790383801C090387000E0484813F048481378485A153C48C7FC5A001E14
+3E123E123C127CA448147CA3157815F81278EC01F0007C14E01403003C14C0001CEB0780
+001EEB0F006C131E380780383801C0E038007F801F217C9F23>I<0007B5FC3900F803C0
+90387800F015785B157CA41578484813F815F0EC01E0EC03C0EC0F00EBFFFCD803C0C7FC
+A6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807FFFE3900F8078090387801E0EC00F05B
+15F8A415F03801E00115E0EC03C0EC0780EC1E00EBFFF03803C03880141E140EA2140F48
+485AA51502D80F001304EB800F39FFF00788C7EA01F01F207E9E21>82
+D<EB1F82EB7066EBC01E3801800EEA030048130C00061304120EA3000F1300A27FEA07F0
+13FF6C13C06C13E038003FF0EB03F813001478143CA200401338A3143000601370146000
+F013C038E8018038C60300EA81FC17217E9F19>I<003FB512F0383C0780003014301260
+39400F0010A212C01280A3D8001E1300A65BA65BA65B7F383FFFE01C1F7A9E21>I<39FF
+F00FF8391F0003E06CEB01801400001EEB0100A6481302A6485BA600705BA25CA200785B
+1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFFF07FF81FF03B1F000FC007
+C0001E903907800380001FED01006C1502140F5EEC17C002135B142301805C000713435E
+14C3913883E0401481D981015B13C1D803C213E193C7FC13C415F2EBC80015F4EA01F015
+F85B5D5B15605B000014402C207A9E2F>87 D<EA07F8EA0C0CEA1E061307121C1200A313
+FFEA07C7EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F878014147D9317>
+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<EBE3E03807EC383801F01C6C487E140F48487E1580A53903800F00A2
+140E141E141C5C38074070EB61C0011FC7FC90C8FCA3120EA4121EEAFFC0191D809319>
+I<EBFC2038038260EA0702381E01E0123C003813C0127812F0A438E00380A212F0A21307
+127038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0131D7D9318>I<EA038E381F
+B380EA07C71203EB8300EA078090C7FCA5120EA65A121EEAFFC011147E9312>I<EA01F9
+EA0607EA080312181301EA3802EA3C00121F13F0EA07FCEA01FEEA001FEA40071303A212
+601306EAF004EAC818EA87E010147F9312>I<1380EA0100A35A5A5A121EEAFFF8EA0E00
+A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03
+A238380700A6EA700EA4131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E0
+001C13C01480121E380E01005B13025B12075BA25BEA039013A013E05B5B120190C7FC15
+147C9318>I<39FF9FE1FC393C078070391C030060148015401580EA0E0790380D810013
+09EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C485A1460000213401E147C9321
+>I<381FF0FF3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E13
+4E1387EA0107380203801204380C01C0383C03E038FE07FC18147F9318>I<390FF83F80
+3901E00E00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C
+133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl cmti10 10.95 20
+/Fl 20 122 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
+12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
+0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
+D<127012F8A212F012E005057B840E>46 D<EBF180380389C038070780EA0E03121C123C
+383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070013147C9317>
+97 D<137EEA01C138030080EA0E07121E001C1300EA3C0248C7FCA35AA5EA70011302EA
+3004EA1838EA07C011147C9315>99 D<1478EB03F8EB0070A414E0A4EB01C0A213F1EA03
+8938070780EA0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C3830
+8C80380F070015207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7BF0
+EA7C0012F0A4127013011302EA3804EA1838EA07C010147C9315>I<EB1E30EB7138EBE0
+F03801C070EA03801207EB00E05AA3381E01C0A4EB0380A2EA0E07130B38061700EA01E7
+EA0007A2130EA21230EA781C485AEA6070EA3FC0151D7F9315>103
+D<13C0EA01E0A213C0C7FCA7120E12131223EA4380EA4700A21287120EA35AA3EA384013
+80A21270EA31001232121C0B1F7C9E0E>105 D<EA03C0121FEA0380A4EA0700A4120EA4
+5AA45AA45AA3127112E2A4126412380A207C9F0C>108 D<391C0F80F0392630C3183947
+40640C903880680EEB0070A2008E495A120EA34848485AA3ED70803A3803807100A215E1
+15623970070064D83003133821147C9325>I<381C0F80382630C0384740601380EB0070
+A2008E13E0120EA3381C01C0A3EB038400381388A2EB0708EB031000701330383001C016
+147C931A>I<137CEA01C338030180000E13C0121E001C13E0123C1278A338F003C0A3EB
+07801400EA700F130EEA3018EA1870EA07C013147C9317>I<3801C1E038026218380474
+1C1378EB701EA2EA08E01200A33801C03CA3143838038078147014E0EBC1C038072380EB
+1E0090C7FCA2120EA45AA2B47E171D809317>I<EA1C1EEA266138278380EA47871307EB
+0300008EC7FC120EA35AA45AA45A123011147C9313>114 D<13FCEA0302EA0601EA0C03
+130713061300EA0F8013F0EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA4010EA20
+60EA1F8010147D9313>I<EA018013C0EA0380A4EA0700A2EAFFF0EA0700120EA45AA45A
+A31320EA7040A21380A2EA3100121E0C1C7C9B0F>I<000E13C0001313E0382301C0EA43
+81EA4701A238870380120EA3381C0700A31410EB0E201218A2381C1E40EA0C263807C380
+14147C9318>I<380E0380EA1307002313C0EA4383EA4701130000871380120EA3381C01
+00A31302A25BA25BEA0E30EA03C012147C9315>I<000EEBC1C0001313E3392301C3E038
+4381C1384701C015603987038040120EA3391C070080A3EC0100A21306EB0F02000C5B38
+0E13083803E1F01B147C931E>I<000E13C0001313E0382301C0EA4381EA4701A2388703
+80120EA3381C0700A4130E1218A2EA1C1EEA0C3CEA07DCEA001CA25B12F05BEAE060485A
+EA4380003EC7FC131D7C9316>121 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fm cmr8 8 29
+/Fm 29 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
+D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
+D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
+13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
+381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
+1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
+132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
+381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
+E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
+3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
+0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
+1303B5FC13177F9616>76 D<00FEEB03F8001E14C000171305A338138009A23811C011A3
+3810E021A2EB7041A3EB3881A2EB1D01A2130EA2123839FE040FF81D177F9620>I<EAFF
+FE381C0380EB00C014601470A4146014C0EB0380381FFE00001CC7FCAAB47E14177F9618
+>80 D<EAFFFC381C0380EB00C014E01470A414E014C0EB0380381FFE00381C0780EB01C0
+EB00E0A514E1A2147238FF803C18177F961A>82 D<EA0FC4EA302CEA601CEA400CEAC004
+A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C130E13061280A3EAC004EAE008EAD810
+EA87E00F177E9614>I<387FFFF83860381800401308A200801304A300001300AF3803FF
+8016177F9619>I<12FCA212C0B3AB12FCA206217D980A>91 D<EA3FC0EA70601330EA20
+381200EA03F8EA1E3812301270EAE039A21379EA70FFEA1F1E100E7F8D12>97
+D<12F81238A8EA39F0EA3E0CEA380613077F1480A414005B1306EA361CEA21F011177F96
+14>I<EA07F0EA18381230EA7010EA600012E0A41260EA70081230EA1830EA07C00D0E7F
+8D10>I<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000A31260EA7008EA3010EA18
+30EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5EA1F801203AF1243EAE300
+12E7127C091D82960B>106 D<12F81238A8133E13381330134013801239EA3FC0EA39E0
+123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1CEA3C0E1238AA38FE3F8011
+0E7F8D14>110 D<EA07C0EA1830EA3018EA600CA2EAE00EA5EA701CEA3018EA1830EA07
+C00F0E7F8D12>I<EAF9F0EA3E1CEA380613077F1480A414005B130EEA3E1CEA39F00038
+C7FCA512FE11147F8D14>I<EAF9E0EA3A70123CEA38201300A9B4FC0C0E7F8D0E>114
+D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA01E0EA8060A212C0EAE0C0EA9F
+000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A71340A4EA1C80EA0F000A147F93
+0E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D14>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fn cmsy9 9 2
+/Fn 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
+A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
+0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fo cmsltt10 10.95 29
+/Fo 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
+769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
+C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
+7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
+120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
+4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
+380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
+78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
+07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
+A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
+1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
+EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
+A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
+B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
+5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
+1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
+D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
+00A2137FEA03FF121FEA3F81387C038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
+14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
+38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
+A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
+5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
+0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
+FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
+7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
+3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
+B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
+EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
+EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
+D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
+13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
+0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
+EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
+FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
+12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
+7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
+FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
+0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
+7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
+E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
+E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
+D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
+EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
+F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
+78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fp cmcsc10 10.95 12
+/Fp 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
+FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
+D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
+127812386C1310120C000713603803818038007E0015177E961B>99
+D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
+14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
+13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
+9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
+387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
+0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
+0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
+D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
+70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
+I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
+19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
+001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
+D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
+D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
+133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
+18177F961C>120 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fq cmbx12 17.28 34
+/Fq 34 121 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
+1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
+7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
+F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
+131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<913A03FF80018002
+3FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C812
+7F4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127F
+A27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93F
+C05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>
+67 D<B812F0A3C6903880003FEE07F816031600A21778A21738A3171C1507A31700A25D
+5D5D91B5FCA3EC803F818181A21707A392C7120EA4171EA2173CA2177C17FC1601160716
+3FB812F8A330317EB035>69 D<B812E0A3C6903880007FEE0FF016031601A21600A21770
+A31738A21507A21700A35D5D5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB0
+33>I<DA03FF1303027FEBF00749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03
+FF49487F4848C87E485A0007824848815B001F82A2484881A2127FA24992C7FC12FFAA03
+07B512F8127F7FDB00011300123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8
+497ED907FFEB3E3F01019038FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B61280A3
+C6EB8000B3B3A7B61280A319317EB01E>73 D<B67EA3000190C9FCB3A9EE0380A4160717
+00A25EA35E5E5E5E4B5A150FB7FCA329317DB030>76 D<B56C49B512C08080C66D903900
+03E0006E6E5AEBEFFC13E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E
+16806E13C0ED7FE0ED3FF0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1
+EE1FF9EE0FFD160717FF828282177F173FA2171F170F486C1507B500E014031701A23A31
+7EB03F>78 D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FF
+A717FEA2EE07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB0
+37>80 D<B77E16F816FEC690398003FF809238007FE0EE1FF0707EA283160783A65F160F
+5F4C5A4C5A4C5ADB03FFC8FC91B512F816E091388007F8ED01FC6F7E167F83707EA283A5
+83A4F0038017F8161F1900706C5AB6398003FE0E933801FFFC9338001FF039317EB03C>
+82 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A348
+1603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807
+C000715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801F
+C0023FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C
+17806E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075D
+A26E130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C02
+1F133815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA23831
+7EB03D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780
+C7FCA414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F80
+0D393FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97
+D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E0
+49EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F8090
+39C3C0FE00903880FFF89038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803
+F0033907E007F8120FEA1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2
+001F14386C7E000714703903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED
+0FC0EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F48
+48133F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01
+FC0F3FFE38007FFEEB0FF027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E0
+3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
+FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
+FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
+1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
+391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
+00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
+121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
+140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
+D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013
+809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E
+487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA
+01F812FFA3120F1207B3B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD9
+3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602
+F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE
+EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F
+2D>I<EB07FC90387FFFC03901FC07F03903F001F848486C7E4848137E001F147F003F15
+8049133F007F15C0A300FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C
+3903F803F83901FE0FF039007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFF
+FC9038FBE07F9039FF003F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216
+FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC
+3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF3
+0FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114
+D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0
+6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13
+1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201
+12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB
+07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007141FB3153FA20003
+147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>I<B53A1FFFE03FF8
+A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15DF
+01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEBF9
+C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E9F
+3A>119 D<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B
+90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF0
+8190380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FC
+A328207F9F2B>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fr cmsy10 10.95 1
+/Fr 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C000
+061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C15
+30A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090C7
+FC282B7EA02D>13 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fs cmbx12 14.4 54
+/Fs 54 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
+0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
+D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
+D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
+127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
+705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
+FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
+F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
+7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
+BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
+A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
+C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
+127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
+22>I<EB07F8EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F
+8091C7FC127EA3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4
+127EA4123E003F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622
+>I<EB7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00FE14C0A315
+E0A5007E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013C0A3EC1F80
+123E127FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622>
+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
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ft cmtt10 10.95 91
+/Ft 91 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
+D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
+12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
+I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
+6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
+F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
+3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
+A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
+7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
+12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
+123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
+EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
+24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
+C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
+FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
+7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
+123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
+A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
+14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
+1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
+0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
+00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
+431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
+C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
+485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
+071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
+D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003C0EA0001EB00E0A2126012
+F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C7E9B18>I<137E48B4FC00
+071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC38FE078038F803
+C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5AEA01F8131C7E9B
+18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13F05BA2485AA3485A
+A448C7FCA7131D7E9C18>I<EA03F8EA0FFE487E383E0F80EA3803387001C0A438380380
+EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0EAE000A4387001C0EA
+7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812FCA2127812301200A8
+1230127812FCA2127812300614779318>58 D<1218123C127EA2123C12181200A8121812
+3C127EA2123E121E120E121C123C127812F01260071A789318>I<14C0EB03E01307EB1F
+C0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C
+7EEB3F80EB1FC0EB07E01303EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4
+387FFFC0B512E0A26C13C0130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C
+7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A
+126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5B
+EA01F05B485AA55BC8FCA5EA0380487EA36C5A111C7D9B18>I<137CEA01FEEA07FF380F
+8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1C1C0127113E338
+70FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00131C7E9B18>I<
+137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA0E03381C01C0A338
+7F07F000FF13F8007F13F0151C7F9B18>I<EA7FFCB5FC6C1380381C03C01301EB00E0A4
+130114C01307381FFF80140014C0EA1C03EB00E014F01470A414F014E01303387FFFC0B5
+1280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA1E03EA3C01EA38005AA2
+14005AA8127014E0A27E123C381E01C0EA0F073807FF803803FE00EA00F8131C7E9B18>
+I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
+C01303EB0F80387FFF00485AEA7FF8141C7F9B18>I<B512F0A3381C0070A41400A2130E
+A3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F8A3381C0038A4
+1400A21307A3EA1FFFA3EA1C07A390C7FCA7EAFFC0A3151C7F9B18>I<3801F1C0EA03FD
+EA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F130F387001C0A2130312
+38A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F038FF8FF8387F07F0
+381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>I<EA7FFFB5
+12806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<3801FFC0A338000E00B3
+12F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8387F07F0381C03
+C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380
+A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>I<EAFFC0A3001CC7FCB114E0A5B5
+FCA3131C7E9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A2
+13F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0
+A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
+151C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF0010070
+13C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E0
+13001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA
+0FFE383FFF804813C0EA7803EA700100F013E0EAE000AE1370A2EAF079387039C0EA783F
+EA7FFF6C1380380FFE00EA000FEB0780A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE
+6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380A5149CA3
+387F01F8EAFF81387F00F0161C7F9B18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A3
+90C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2126012E0130100
+F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E07038A40000
+1300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F01380783C03803
+FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0001C13C0A3EA1E
+03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370151C7F9B18>I<
+38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3138CA2EA1D8DA31305
+000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F380E0700120FEA070E13
+8EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138EEA070F7F000E138013
+03001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03F8EAFF07EAFE03381C
+01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC48
+7E6C5A151C7F9B18>I<383FFFE05AA2387001C01303EB07801400C65A131E131C133C5B
+137013F0485A5B1203485A90C7FC5A001E13E0121C123C5A1270B5FCA3131C7E9B18>I<
+EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>I<126012F0A27E1278127C123CA2123E12
+1E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131EA2131F7F1480
+1307A2EB030011247D9F18>I<EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0
+B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A312F812FC127CA2
+1238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F
+03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E12FE127E12
+0EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFF
+C0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FC
+A25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F
+131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA
+3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F383807
+80EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA
+01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801
+C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C
+0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338
+A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA513
+3EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>
+I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338
+137CA313381300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C
+18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA
+0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A311
+1C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB
+3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38
+FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E0
+00E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<
+EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EB
+FFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1F
+FFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA00
+03A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0
+005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7
+FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F01114
+7D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380
+EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE
+3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700
+A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0
+A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>
+I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA03
+9E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13
+F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC13
+78A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA23870
+01E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A3
+14147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB
+1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC13C0
+1203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18
+>I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA60C00F067C9B18>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fu cmr10 10.95 77
+/Fu 77 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
+B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
+A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
+00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
+80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
+EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
+D<1340A2EA03F0EA0C4EEA10413820408012600040134038C041C01343A238E04180EB40
+001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F801343EB41C0A2EAF040A312801480
+EA404100201300EA3042EA0C4CEA03F0EA0040A312257EA117>36
+D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
+D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
+30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
+0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
+5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
+D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300
+A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D
+7EA117>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
+0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>I<13801203120F12F31203B3A6EA
+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<
+39FFF007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21
+E01341EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>
+75 D<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<
+B46CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A290
+380E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A
+>I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB
+03C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E
+22>I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C
+14F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03
+C06C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E
+80EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B5
+7E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070A280143CA314
+3EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>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
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fv cmbx12 20.736 14
+/Fv 14 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
+010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
+5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
+DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
+EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
+BB4C>71 D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F
+17FF5E04071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F9239
+0007E0006E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E
+6F7E826F7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C3
+18E37013F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F1807
+1803A2433B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F71
+7E717EA284171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A291
+39F0007FF0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B6
+00F890393FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
+D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
+6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
+034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
+FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
+03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
+0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
+FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
+17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
+FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EE3F80ED
+3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348487F48
+487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801FE011F
+13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>100
+D<49B47E010F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0
+485A003F15F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F00
+0F15F06C6C13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013
+C025267DA52C>I<EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA4
+12071203B3AAB512F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A415
+3C7DBB1A>108 D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701
+607F0003497E01FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
+D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
+01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
+D<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E137C017F14786E13F801
+3F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391C7FC6E5A6D131E15BE
+6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C141E0008133E007F133C
+147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA1FFCEA07F02E377EA5
+33>121 D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 75 659 a Fv(GNU)33 b(Readline)h(Library)p 75
+709 1800 17 v 732 757 a Fu(Edition)16 b(4.2-b)q(eta,)e(for)h
+Ft(Readline)f(Library)g Fu(V)l(ersion)i(4.2-b)q(eta.)1698
+811 y(F)l(eb)f(2001)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 217 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 271 y(of)h(user)g(in)o(terface)h(across)e
+(discrete)i(programs)e(that)h(need)h(to)e(pro)o(vide)i(a)f(command)g
+(line)i(in)o(terface.)75 339 y(Published)g(b)o(y)f(the)f(F)l(ree)g
+(Soft)o(w)o(are)f(F)l(oundation)75 394 y(59)h(T)l(emple)h(Place,)f
+(Suite)i(330,)75 448 y(Boston,)d(MA)h(02111)f(USA)75
+516 y(P)o(ermission)j(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g
+(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o
+(vided)h(the)75 570 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q
+(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h(copies.)75
+638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g(cop)o(y)h(and)g
+(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h(man)o(ual)g
+(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h(cop)o(ying,)
+g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g(deriv)o(ed)g(w)o
+(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g(of)g(a)f(p)q
+(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
+814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
+(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
+g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
+(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
+(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
+(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
+d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
+2661 y Fr(\015)i Fu(1988-2001)e(F)l(ree)i(Soft)o(w)o(are)f(F)l
+(oundation,)h(Inc.)p eop
+%%Page: 1 3
+1 2 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(1)75 149 y Fq(1)41 b(Command)28 b(Line)e(Editing)137
+271 y Fu(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
+(of)g(the)g Fp(gnu)g Fu(command)g(line)i(editing)f(in)o(terface.)75
+403 y Fs(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
+501 y Fu(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
+(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
+569 y(The)h(text)f Fo(C-k)h Fu(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
+(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
+567 y Fn(h)p 1844 541 19 2 v 1844 569 a Fm(k)p 1844 577
+V 1860 567 a Fn(i)75 624 y Fu(k)o(ey)d(is)h(pressed)g(while)g(the)f
+(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
+Fo(M-k)f Fu(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
+(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
+o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
+745 y Fn(h)p 942 719 V 942 747 a Fm(k)p 942 755 V 958
+745 a Fn(i)987 747 y Fu(k)o(ey)g(is)h(pressed.)20 b(The)15
+b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Fn(h)p 1791
+719 72 2 v 1791 747 a Fm(AL)m(T)p 1791 755 V 1860 745
+a Fn(i)75 802 y Fu(on)e(man)o(y)g(k)o(eyb)q(oards.)19
+b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
+1213 800 y Fn(h)p 1225 774 V 1225 802 a Fm(AL)m(T)p 1225
+810 V 1294 800 a Fn(i)1322 802 y Fu(\(usually)i(to)e(either)i(side)g
+(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Fn(h)p
+400 829 V 400 857 a Fm(AL)m(T)p 400 865 V 469 855 a Fn(i)499
+857 y Fu(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
+(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Fn(h)p
+1709 829 V 1709 857 a Fm(AL)m(T)p 1709 865 V 1778 855
+a Fn(i)1808 857 y Fu(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
+(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
+(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
+y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
+(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
+y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
+1033 y Fn(h)p 706 1007 V 706 1035 a Fm(AL)m(T)p 706 1043
+V 775 1033 a Fn(i)801 1035 y Fu(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
+o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
+1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
+809 1088 y Fn(h)p 822 1062 70 2 v 822 1090 a Fm(ESC)p
+822 1098 V 888 1088 a Fn(i)915 1090 y Fl(\014rst)p Fu(,)g(and)g(then)h
+(t)o(yping)1339 1088 y Fn(h)p 1351 1062 19 2 v 1351 1090
+a Fm(k)p 1351 1098 V 1368 1088 a Fn(i)1383 1090 y Fu(.)18
+b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
+Fk(metafying)k Fu(the)425 1143 y Fn(h)p 437 1117 V 437
+1145 a Fm(k)p 437 1153 V 454 1143 a Fn(i)484 1145 y Fu(k)o(ey)l(.)137
+1214 y(The)i(text)e Fo(M-C-k)h Fu(is)h(read)f(as)f(`Meta-Con)o(trol-k')
+g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
+1268 y Fk(metafying)e Fo(C-k)p Fu(.)137 1337 y(In)g(addition,)h(sev)o
+(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
+b(Sp)q(eci\014cally)l(,)1384 1335 y Fn(h)p 1396 1309
+73 2 v 1396 1337 a Fm(DEL)p 1396 1345 V 1467 1335 a Fn(i)1482
+1337 y Fu(,)1514 1335 y Fn(h)p 1526 1309 70 2 v 1526
+1337 a Fm(ESC)p 1526 1345 V 1593 1335 a Fn(i)1608 1337
+y Fu(,)1640 1335 y Fn(h)p 1652 1309 72 2 v 1652 1337
+a Fm(LFD)p 1652 1345 V 1722 1335 a Fn(i)1737 1337 y Fu(,)1768
+1335 y Fn(h)p 1780 1309 70 2 v 1780 1337 a Fm(SPC)p 1780
+1345 V 1847 1335 a Fn(i)1862 1337 y Fu(,)75 1390 y Fn(h)p
+87 1364 76 2 v 87 1392 a Fm(RET)p 87 1399 V 160 1390
+a Fn(i)175 1392 y Fu(,)23 b(and)306 1390 y Fn(h)p 318
+1364 74 2 v 318 1392 a Fm(T)m(AB)p 318 1399 V 390 1390
+a Fn(i)427 1392 y Fu(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
+(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
+1447 y(Section)d(1.3)f([Readline)i(Init)f(File],)h(page)e(4\).)32
+b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
+1445 y Fn(h)p 1456 1419 72 2 v 1456 1447 a Fm(LFD)p 1456
+1454 V 1526 1445 a Fn(i)1560 1447 y Fu(k)o(ey)l(,)h(t)o(yping)1802
+1445 y Fn(h)p 1814 1419 49 2 v 1814 1447 a Fm(C-j)p 1814
+1454 V 1860 1445 a Fn(i)75 1501 y Fu(will)c(pro)q(duce)g(the)f(desired)
+h(c)o(haracter.)j(The)874 1499 y Fn(h)p 886 1473 76 2
+v 886 1501 a Fm(RET)p 886 1509 V 959 1499 a Fn(i)989
+1501 y Fu(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
+y Fn(h)p 1397 1473 109 2 v 1397 1501 a Fm(Return)p 1397
+1509 V 1503 1499 a Fn(i)1533 1501 y Fu(or)1588 1499 y
+Fn(h)p 1600 1473 86 2 v 1600 1501 a Fm(En)o(ter)p 1600
+1509 V 1684 1499 a Fn(i)1714 1501 y Fu(on)f(some)75 1556
+y(k)o(eyb)q(oards.)75 1688 y Fs(1.2)33 b(Readline)23
+b(In)n(teraction)137 1786 y Fu(Often)13 b(during)h(an)e(in)o(teractiv)o
+(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
+h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
+(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)j(library)e
+(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
+1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
+g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
+(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
+(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
+(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
+y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
+(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
+2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
+(ou)e(simply)i(press)1160 2058 y Fn(h)p 1172 2032 76
+2 v 1172 2060 a Fm(RET)p 1172 2068 V 1245 2058 a Fn(i)1260
+2060 y Fu(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
+(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
+2113 y Fn(h)p 575 2087 V 575 2115 a Fm(RET)p 575 2122
+V 648 2113 a Fn(i)663 2115 y Fu(;)i(the)f(en)o(tire)h(line)g(is)g
+(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
+2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fj(1.2.1)30
+b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fu(In)12
+b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
+(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
+(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
+(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
+b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
+(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
+(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
+y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
+(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
+o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
+b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fo(C-b)f
+Fu(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
+2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
+b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
+(with)g Fo(C-f)p Fu(.)p eop
+%%Page: 2 4
+2 3 bop 75 -58 a Fu(2)1322 b(GNU)15 b(Readline)i(Library)137
+149 y(When)g(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
+(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
+204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
+(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
+b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
+(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
+(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
+(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
+(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
+369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
+(ws.)75 449 y Fo(C-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
+(haracter.)75 530 y Fo(C-f)168 b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
+(c)o(haracter.)75 608 y Fn(h)p 87 582 73 2 v 87 610 a
+Fm(DEL)p 87 618 V 158 608 a Fn(i)188 610 y Fu(or)244
+608 y Fn(h)p 256 582 159 2 v 256 610 a Fm(Bac)o(kspace)p
+256 618 V 412 608 a Fn(i)315 665 y Fu(Delete)h(the)f(c)o(haracter)g(to)
+f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fo(C-d)168
+b Fu(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
+825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
+(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
+961 y Fo(C-_)g Fu(or)f Fo(C-x)h(C-u)315 1015 y Fu(Undo)i(the)g(last)f
+(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
+(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
+1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
+1149 y Fn(h)p 875 1123 V 875 1151 a Fm(Bac)o(kspace)p
+875 1159 V 1032 1149 a Fn(i)1063 1151 y Fu(k)o(ey)g(b)q(e)h(set)f(to)f
+(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
+(cursor)f(and)g(the)596 1204 y Fn(h)p 608 1178 73 2 v
+608 1206 a Fm(DEL)p 608 1213 V 679 1204 a Fn(i)710 1206
+y Fu(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
+(the)g(cursor,)f(lik)o(e)75 1260 y Fo(C-d)p Fu(,)e(rather)h(than)g(the)
+g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
+1374 y Fj(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
+1471 y Fu(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
+(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
+(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
+b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
+(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fo(C-b)p
+Fu(,)h Fo(C-f)p Fu(,)f Fo(C-d)p Fu(,)g(and)522 1578 y
+Fn(h)p 534 1552 V 534 1580 a Fm(DEL)p 534 1588 V 605
+1578 a Fn(i)619 1580 y Fu(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
+f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
+y(line.)75 1716 y Fo(C-a)168 b Fu(Mo)o(v)o(e)14 b(to)h(the)g(start)f
+(of)h(the)g(line.)75 1796 y Fo(C-e)168 b Fu(Mo)o(v)o(e)14
+b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fo(M-f)168
+b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
+(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
+y Fo(M-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
+2037 y Fo(C-l)168 b Fu(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
+(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
+Fo(C-f)g Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
+Fo(M-f)e Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
+b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
+o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
+(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
+2341 y Fj(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
+2438 y Fk(Killing)26 b Fu(text)18 b(means)g(to)g(delete)i(the)f(text)f
+(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
+h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fk(y)o(anking)22
+b Fu(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
+b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
+2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
+2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
+(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
+(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
+(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
+%%Page: 3 5
+3 4 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
+(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fk(kill-ring)p Fu(.)21
+b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
+204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
+(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
+(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
+(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
+(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
+314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
+(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
+(of)e(commands)h(for)g(killing)j(text.)75 458 y Fo(C-k)168
+b Fu(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
+(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
+Fo(M-d)168 b Fu(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
+(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
+e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
+(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
+Fo(M-f)p Fu(.)75 668 y Fo(M-)123 666 y Fn(h)p 135 640
+73 2 v 135 668 a Fm(DEL)p 135 675 V 206 666 a Fn(i)315
+668 y Fu(Kill)21 b(from)e(the)g(cursor)f(the)h(start)f(of)h(the)g
+(previous)h(w)o(ord,)f(or,)g(if)g(b)q(et)o(w)o(een)h(w)o(ords,)f(to)315
+723 y(the)14 b(start)f(of)g(the)h(previous)g(w)o(ord.)19
+b(W)l(ord)14 b(b)q(oundaries)h(are)e(the)h(same)g(as)f(those)h(used)g
+(b)o(y)315 777 y Fo(M-b)p Fu(.)75 855 y Fo(C-w)168 b
+Fu(Kill)18 b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
+b(This)16 b(is)g(di\013eren)o(t)g(than)f Fo(M-)1777 853
+y Fn(h)p 1789 827 V 1789 855 a Fm(DEL)p 1789 863 V 1860
+853 a Fn(i)315 910 y Fu(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
+(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fk(y)o(ank)j
+Fu(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
+b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
+(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fo(C-y)168
+b Fu(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
+(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
+y Fo(M-y)168 b Fu(Rotate)17 b(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 1252 y(command)d(is)h Fo(C-y)f Fu(or)f Fo(M-y)p Fu(.)75
+1361 y Fj(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
+y Fu(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
+(Readline)i(commands.)k(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
+1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
+(the)g Fl(sign)j Fu(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
+(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
+f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
+(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
+(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
+(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
+(t)o(yp)q(e)g(`)p Ft(M--)f(C-k)p Fu('.)137 1742 y(The)h(general)f(w)o
+(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
+h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
+y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
+g(min)o(us)g(sign)g(\(`)p Ft(-)p Fu('\),)d(then)j(the)f(sign)h(of)f
+(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
+b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
+(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
+1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
+(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
+Fo(C-d)75 1961 y Fu(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
+(could)i(t)o(yp)q(e)f(`)p Ft(M-1)14 b(0)h(C-d)p Fu(',)k(whic)o(h)g
+(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
+b(on)i(the)f(input)h(line.)75 2125 y Fj(1.2.5)30 b(Searc)n(hing)21
+b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fu(Readline)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 2275 y(taining)e(a)f(sp)q(eci\014ed)i
+(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
+b Fk(incremen)o(tal)e Fu(and)e Fk(non-incremen)o(tal)p
+Fu(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
+(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
+19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
+(string)f(is)h(t)o(yp)q(ed,)h(Readline)h(displa)o(ys)e(the)g(next)g(en)
+o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
+b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
+(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
+2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
+(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
+(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fo(C-r)p
+Fu(.)k(T)o(yping)d Fo(C-s)e Fu(searc)o(hes)h(forw)o(ard)e(through)h
+(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
+2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Ft(isearch-terminators)d
+Fu(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
+2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
+(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Fn(h)p
+1301 2642 70 2 v 1301 2670 a Fm(ESC)p 1301 2678 V 1368
+2668 a Fn(i)1402 2670 y Fu(and)e Fo(C-J)f Fu(c)o(haracters)g(will)p
+eop
+%%Page: 4 6
+4 5 bop 75 -58 a Fu(4)1322 b(GNU)15 b(Readline)i(Library)75
+149 y(terminate)k(an)g(incremen)o(tal)i(searc)o(h.)37
+b Fo(C-g)21 b Fu(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
+(and)g(restore)g(the)75 204 y(original)16 b(line.)21
+b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
+(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
+y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 334 y(T)l(o)g(\014nd)i
+(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
+(yp)q(e)f Fo(C-r)g Fu(or)g Fo(C-s)g Fu(as)h(appropriate.)k(This)75
+388 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
+(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
+(searc)o(h)g(string)75 443 y(t)o(yp)q(ed)19 b(so)g(far.)30
+b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
+i(command)d(will)j(terminate)e(the)75 498 y(searc)o(h)10
+b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
+496 y Fn(h)p 1076 470 76 2 v 1076 498 a Fm(RET)p 1076
+506 V 1149 496 a Fn(i)1174 498 y Fu(will)g(terminate)f(the)g(searc)o(h)
+f(and)h(accept)75 553 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
+(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
+(command)g(will)75 608 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
+(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
+(editing.)137 682 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 737 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 792 y(con)o(ten)o(ts)15
+b(of)f(the)i(curren)o(t)f(line.)75 939 y Fs(1.3)33 b(Readline)23
+b(Init)h(File)137 1042 y Fu(Although)f(the)g(Readline)i(library)e
+(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
+(installed)75 1097 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
+(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
+b(An)o(y)20 b(user)h(can)g(customize)75 1152 y(programs)15
+b(that)h(use)g(Readline)j(b)o(y)d(putting)g(commands)g(in)i(an)e
+Fk(inputrc)k Fu(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
+1207 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
+(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
+(v)m(ariable)75 1262 y Ft(INPUTRC)p Fu(.)i(If)c(that)g(v)m(ariable)h
+(is)g(unset,)f(the)g(default)h(is)g(`)p Ft(~/.inputrc)p
+Fu('.)137 1336 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 1391 y(k)o(ey)g(bindings)i(are)e(set.)137 1465
+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
+1520 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
+1647 y Fj(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
+1751 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 1805 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
+1860 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
+([Conditional)h(Init)h(Constructs],)e(page)h(8\).)k(Other)c(lines)75
+1915 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
+2006 y(V)l(ariable)h(Settings)315 2060 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 2115 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 2170 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 2238 y Ft(set)23
+b(editing-mode)g(vi)315 2309 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 2396 y Ft(bell-style)555 2451 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 2506 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 2560 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 2615 y(`)p Ft(audible)p Fu(')g(\(the)h
+(default\),)i(Readline)h(attempts)d(to)g(ring)h(the)g(terminal's)555
+2670 y(b)q(ell.)p eop
+%%Page: 5 7
+5 6 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(5)315 149 y Ft(comment-begin)555 204 y Fu(The)15 b(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 259 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
+338 y Ft(completion-ignore-case)555 393 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 448 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
+527 y Ft(completion-query-items)555 582 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 637 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 691 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
+746 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 801 y(they)f(are)g(simply)i(listed.)20
+b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
+h(v)m(alue)555 856 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
+(default)f(limit)i(is)f Ft(100)p Fu(.)315 935 y Ft(convert-meta)555
+990 y Fu(If)11 b(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
+1044 y(to)f(an)h Fp(asci)q(i)e Fu(k)o(ey)i(sequence)g(b)o(y)g
+(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
+1097 y Fn(h)p 567 1071 70 2 v 567 1099 a Fm(ESC)p 567
+1107 V 634 1097 a Fn(i)666 1099 y Fu(c)o(haracter,)k(con)o(v)o(erting)h
+(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
+1154 y(The)e(default)h(v)m(alue)h(is)e(`)p Ft(on)p Fu('.)315
+1233 y Ft(disable-completion)555 1288 y Fu(If)k(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 1343 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
+1398 y(to)h Ft(self-insert)p Fu(.)j(The)d(default)h(is)g(`)p
+Ft(off)p Fu('.)315 1477 y Ft(editing-mode)555 1531 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 1586 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 1641 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
+1696 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 1775 y Ft(enable-keypad)555 1830 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 1885 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 1939 y(The)j(default)h(is)g(`)p
+Ft(off)p Fu('.)315 2019 y Ft(expand-tilde)555 2073 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 2128 y(w)o(ord)f
+(completion.)21 b(The)15 b(default)h(is)f(`)p Ft(off)p
+Fu('.)315 2207 y Ft(horizontal-scroll-mode)555 2262 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 2317 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
+2372 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 2426 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 2481 y(v)m(ariable)j(is)e(set)g(to)g(`)p
+Ft(off)p Fu('.)315 2560 y Ft(input-meta)555 2615 y Fu(If)h(set)f(to)g
+(`)p Ft(on)p Fu(',)f(Readline)k(will)g(enable)e(eigh)o(t-bit)h(input)f
+(\(it)g(will)h(not)e(clear)555 2670 y(the)20 b(eigh)o(th)g(bit)g(in)h
+(the)f(c)o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)p
+eop
+%%Page: 6 8
+6 7 bop 75 -58 a Fu(6)1322 b(GNU)15 b(Readline)i(Library)555
+149 y(terminal)k(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
+204 y(name)15 b Ft(meta-flag)f Fu(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
+m(ariable.)315 289 y Ft(isearch-terminators)555 344 y
+Fu(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
+(an)g(incremen)o(tal)555 399 y(searc)o(h)12 b(without)h(subsequen)o
+(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
+454 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
+b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 509 y(b)q(een)17
+b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
+507 y Fn(h)p 1259 481 70 2 v 1259 509 a Fm(ESC)p 1259
+516 V 1326 507 a Fn(i)1357 509 y Fu(and)g Fo(C-J)f Fu(will)i(terminate)
+f(an)555 563 y(incremen)o(tal)g(searc)o(h.)315 649 y
+Ft(keymap)96 b Fu(Sets)19 b(Readline's)j(idea)e(of)f(the)g(curren)o(t)h
+(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555 703 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 758 y Ft(emacs-meta)p
+Fu(,)49 b Ft(emacs-ctlx)p Fu(,)g Ft(vi)p Fu(,)h Ft(vi-move)p
+Fu(,)f Ft(vi-command)p Fu(,)g(and)555 813 y Ft(vi-insert)p
+Fu(.)31 b Ft(vi)20 b Fu(is)g(equiv)m(alen)o(t)h(to)e
+Ft(vi-command)p Fu(;)g Ft(emacs)g Fu(is)h(equiv)m(alen)o(t)555
+868 y(to)15 b Ft(emacs-standard)p Fu(.)20 b(The)d(default)f(v)m(alue)h
+(is)g Ft(emacs)p Fu(.)k(The)16 b(v)m(alue)h(of)f(the)555
+923 y Ft(editing-mode)e Fu(v)m(ariable)i(also)f(a\013ects)g(the)g
+(default)h(k)o(eymap.)315 1008 y Ft(mark-directories)555
+1063 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 1117
+y(The)15 b(default)h(is)g(`)p Ft(on)p Fu('.)315 1203
+y Ft(mark-modified-lines)555 1258 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 1312 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 1367 y(This)e(v)m(ariable)g(is)g(`)p Ft(off)p
+Fu(')e(b)o(y)h(default.)315 1452 y Ft(output-meta)555
+1507 y Fu(If)j(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
+1562 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 1617 y(default)16
+b(is)f(`)p Ft(off)p Fu('.)315 1702 y Ft(print-completions-horizont)o
+(ally)555 1757 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
+1812 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 1866 y(The)15 b(default)h(is)g(`)p
+Ft(off)p Fu('.)315 1952 y Ft(show-all-if-ambiguous)555
+2006 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 2061 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 2116 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 2171 y(The)c(default)h(v)m(alue)h(is)e(`)p
+Ft(off)p Fu('.)315 2256 y Ft(visible-stats)555 2311 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
+2366 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 2451 y(Key)h(Bindings)315
+2506 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h
+(in)g(the)f(init)h(\014le)g(is)g(simple.)39 b(First)20
+b(y)o(ou)315 2560 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f
+(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19
+b(The)14 b(follo)o(wing)315 2615 y(sections)k(con)o(tain)h(tables)f(of)
+f(the)h(command)g(name,)g(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)
+l(,)315 2670 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g
+(command)g(do)q(es.)p eop
+%%Page: 7 9
+7 8 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(7)315 149 y(Once)19 b(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
+(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
+204 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
+(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
+259 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
+(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
+314 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)e
+(comfortable.)315 392 y Fk(k)o(eyname)s Fu(:)19 b Fk(function-name)g
+Fu(or)c Fk(macro)555 447 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 511 y Ft(Control-u:)22 b(universal-argument)675
+563 y(Meta-Rubout:)g(backward-kill-word)675 615 y(Control-o:)g(">)i
+(output")555 682 y Fu(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i
+Fo(C-u)e Fu(is)h(b)q(ound)g(to)f(the)g(function)h Ft(universal-)555
+736 y(argument)p Fu(,)e Fo(M-DEL)h Fu(is)g(b)q(ound)h(to)e(the)h
+(function)h Ft(backward-kill-word)p Fu(,)555 791 y(and)g
+Fo(C-o)f Fu(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
+(the)f(righ)o(t)h(hand)555 846 y(side)c(\(that)e(is,)i(to)e(insert)i
+(the)f(text)g(`)p Ft(>)f(output)p Fu(')g(in)o(to)i(the)f(line\).)555
+913 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e(names)
+g(are)g(recognized)i(while)g(pro-)555 968 y(cessing)13
+b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fk(DEL)p
+Fu(,)11 b Fk(ESC)p Fu(,)h Fk(ESCAPE)p Fu(,)f Fk(LFD)p
+Fu(,)g Fk(NEW-)555 1022 y(LINE)p Fu(,)16 b Fk(RET)p Fu(,)f
+Fk(RETURN)p Fu(,)g Fk(R)o(UBOUT)p Fu(,)h Fk(SP)l(A)o(CE)p
+Fu(,)f Fk(SPC)p Fu(,)f(and)i Fk(T)l(AB)p Fu(.)315 1101
+y Ft(")p Fk(k)o(eyseq)q Ft(")p Fu(:)k Fk(function-name)e
+Fu(or)d Fk(macro)555 1156 y(k)o(eyseq)i Fu(di\013ers)e(from)g
+Fk(k)o(eyname)j Fu(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
+(an)f(en-)555 1211 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
+1265 y(double)e(quotes.)j(Some)c Fp(gnu)g Fu(Emacs)f(st)o(yle)h(k)o(ey)
+g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)555 1320 y(in)j(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 1375 y(recognized.)675 1439 y Ft("\\C-u":)23
+b(universal-argument)675 1491 y("\\C-x\\C-r":)f(re-read-init-file)675
+1543 y("\\e[11~":)h("Function)f(Key)i(1")555 1609 y Fu(In)33
+b(the)f(ab)q(o)o(v)o(e)g(example,)37 b Fo(C-u)32 b Fu(is)h(again)f(b)q
+(ound)h(to)f(the)g(function)555 1664 y Ft(universal-argument)19
+b Fu(\(just)j(as)f(it)h(w)o(as)f(in)i(the)f(\014rst)f(example\),)j(`)p
+Fo(C-x)555 1719 y(C-r)p Fu(')c(is)h(b)q(ound)g(to)f(the)h(function)g
+Ft(re-read-init-file)p Fu(,)f(and)g(`)1731 1717 y Fn(h)p
+1743 1691 70 2 v 1743 1719 a Fm(ESC)p 1743 1727 V 1810
+1717 a Fn(i)15 b(h)p 1852 1691 10 2 v 1852 1719 a Fm([)p
+1852 1727 V 1860 1717 a Fn(i)555 1772 y(h)p 567 1746
+18 2 v 567 1774 a Fm(1)p 567 1781 V 583 1772 a Fn(i)g(h)p
+625 1746 V 625 1774 a Fm(1)p 625 1781 V 640 1772 a Fn(i)g(h)p
+683 1746 24 2 v 683 1774 a Ft(~)p 683 1781 V 704 1772
+a Fn(i)719 1774 y Fu(')g(is)h(b)q(ound)g(to)e(insert)i(the)f(text)g(`)p
+Ft(Function)f(Key)g(1)p Fu('.)315 1852 y(The)h(follo)o(wing)h
+Fp(gnu)e Fu(Emacs)h(st)o(yle)g(escap)q(e)h(sequences)g(are)e(a)o(v)m
+(ailable)j(when)e(sp)q(ecifying)315 1907 y(k)o(ey)g(sequences:)315
+1986 y Fo(\\C-)168 b Fu(con)o(trol)15 b(pre\014x)315
+2064 y Fo(\\M-)168 b Fu(meta)15 b(pre\014x)315 2143 y
+Fo(\\e)192 b Fu(an)15 b(escap)q(e)h(c)o(haracter)315
+2222 y Fo(\\\\)192 b Fu(bac)o(kslash)315 2301 y Fo(\\)p
+Ft(")555 2299 y Fn(h)p 567 2272 V 567 2301 a Ft(")p 567
+2308 V 589 2299 a Fn(i)604 2301 y Fu(,)15 b(a)f(double)j(quotation)e
+(mark)315 2379 y Fo(\\')555 2377 y Fn(h)p 567 2351 10
+2 v 567 2379 a Fm(')p 567 2387 V 575 2377 a Fn(i)590
+2379 y Fu(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
+2458 y(In)f(addition)h(to)f(the)f Fp(gnu)h Fu(Emacs)g(st)o(yle)f(escap)
+q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
+2513 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 2591 y
+Ft(\\a)192 b Fu(alert)15 b(\(b)q(ell\))315 2670 y Ft(\\b)192
+b Fu(bac)o(kspace)p eop
+%%Page: 8 10
+8 9 bop 75 -58 a Fu(8)1322 b(GNU)15 b(Readline)i(Library)315
+149 y Ft(\\d)192 b Fu(delete)315 224 y Ft(\\f)g Fu(form)14
+b(feed)315 298 y Ft(\\n)192 b Fu(newline)315 372 y Ft(\\r)g
+Fu(carriage)15 b(return)315 447 y Ft(\\t)192 b Fu(horizon)o(tal)16
+b(tab)315 521 y Ft(\\v)192 b Fu(v)o(ertical)16 b(tab)315
+595 y Ft(\\)p Fk(nnn)141 b Fu(the)14 b(c)o(haracter)f(whose)h
+Fp(asci)q(i)e Fu(co)q(de)j(is)f(the)g(o)q(ctal)g(v)m(alue)h
+Fk(nnn)f Fu(\(one)g(to)f(three)555 650 y(digits\))315
+724 y Ft(\\x)p Fk(nnn)117 b Fu(the)16 b(c)o(haracter)f(whose)h
+Fp(asci)q(i)f Fu(co)q(de)i(is)f(the)h(hexadecimal)g(v)m(alue)g
+Fk(nnn)g Fu(\(one)555 779 y(to)e(three)g(digits\))315
+853 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 908
+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 963 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 1018 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 1073 y(example,)14 b(the)f(follo)o(wing)g
+(binding)i(will)g(mak)o(e)d(`)p Fo(C-x)i Ft(\\)p Fu(')f(insert)g(a)g
+(single)h(`)p Ft(\\)p Fu(')e(in)o(to)h(the)g(line:)435
+1134 y Ft("\\C-x\\\\":)23 b("\\\\")75 1238 y Fj(1.3.2)30
+b(Conditional)20 b(Init)g(Constructs)137 1332 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 1387 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 1441 y(the)e(result)h
+(of)f(tests.)k(There)c(are)g(four)g(parser)g(directiv)o(es)h(used.)75
+1516 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 1570 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
+1625 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
+1699 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 1754 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
+1809 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 1864 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 1919 y(in)k Ft(emacs)f Fu(mo)q(de.)315
+1993 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
+2048 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 2103 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 2157
+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 2212 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
+2267 y Ft(sun-cmd)p Fu(,)d(for)g(instance.)315 2341 y
+Ft(application)555 2396 y Fu(The)d Fk(application)i Fu(construct)e(is)g
+(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
+2451 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)j
+(library)e(sets)f(the)g Fk(application)555 2506 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
+2560 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 2615 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 2670 y(previous)j(w)o(ord)e(in)i(Bash:)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)675 149 y Ft($if)23 b(Bash)675 201 y(#)h(Quote)f(the)g(current)g
+(or)h(previous)f(word)675 253 y("\\C-xq":)g("\\eb\\"\\ef\\"")675
+305 y($endif)75 385 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 465 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 544 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 599 y(bindings)j(from)e(that)f(\014le.)435
+663 y Ft($include)23 b(/etc/inputrc)75 775 y Fj(1.3.3)30
+b(Sample)20 b(Init)h(File)137 872 y Fu(Here)16 b(is)g(an)f(example)h
+(of)f(an)g Fk(inputrc)k Fu(\014le.)i(This)16 b(illustrates)g(k)o(ey)f
+(binding,)i(v)m(ariable)f(assignmen)o(t,)75 927 y(and)f(conditional)i
+(syn)o(tax.)p eop
+%%Page: 10 12
+10 11 bop 75 -58 a Fu(10)1299 b(GNU)15 b(Readline)i(Library)195
+201 y Ft(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
+(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(Gnu)
+f(Readline)g(library.)47 b(Existing)22 b(programs)195
+305 y(#)i(include)f(FTP,)g(Bash,)g(and)h(Gdb.)195 357
+y(#)195 409 y(#)g(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h
+(C-x)f(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h
+(comments.)195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g
+(systemwide)g(bindings)f(and)i(variable)f(assignments)f(from)195
+616 y(#)i(/etc/Inputrc)195 668 y($include)f(/etc/Inputrc)195
+772 y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)
+195 928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
+1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
+f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
+195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
+1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
+1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
+(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
+1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
+1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
+1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
+(previous-history)195 1914 y("\\M-[B":)g(next-history)195
+1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
+195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
+2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
+(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
+2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
+195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
+2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
+(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
+eop
+%%Page: 11 13
+11 12 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(11)195 201 y Ft(C-q:)23 b(quoted-insert)195 305 y($endif)195
+409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
+(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
+(are)h(convenient)e(for)h(shell)h(interaction)195 616
+y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
+y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
+772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)f(insert)g(open)
+h(and)f(close)g(double)g(quotes)195 824 y(#)h(and)f(move)g(to)h(just)f
+(after)h(the)f(open)g(quote)195 876 y("\\C-x\\"":)g("\\"\\"\\C-b")195
+928 y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)f
+(in)i(sequences)f(and)g(macros\))195 980 y("\\C-x\\\\":)g("\\\\")195
+1032 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)195
+1083 y("\\C-xq":)g("\\eb\\"\\ef\\"")195 1135 y(#)h(Add)f(a)h(binding)f
+(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)195
+1187 y("\\C-xr":)f(redraw-current-line)195 1239 y(#)h(Edit)f(variable)g
+(on)g(current)g(line.)195 1291 y("\\M-\\C-v":)f
+("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")195 1343 y($endif)195
+1447 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)195
+1499 y(set)f(bell-style)g(visible)195 1602 y(#)h(don't)f(strip)g
+(characters)g(to)g(7)h(bits)f(when)h(reading)195 1654
+y(set)f(input-meta)g(on)195 1758 y(#)h(allow)f(iso-latin1)f(characters)
+h(to)g(be)h(inserted)f(rather)g(than)g(converted)g(to)195
+1810 y(#)h(prefix-meta)e(sequences)195 1862 y(set)h(convert-meta)g(off)
+195 1966 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h
+(directly)f(rather)g(than)195 2017 y(#)h(as)f(meta-prefixed)f
+(characters)195 2069 y(set)h(output-meta)g(on)195 2173
+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 2225 y(#)h(user)f(if)h(he)f(wants)g
+(to)h(see)f(all)h(of)f(them)195 2277 y(set)g(completion-query-items)e
+(150)195 2381 y(#)j(For)f(FTP)195 2433 y($if)g(Ftp)195
+2484 y("\\C-xg":)g("get)g(\\M-?")195 2536 y("\\C-xt":)g("put)g(\\M-?")
+195 2588 y("\\M-.":)g(yank-last-arg)195 2640 y($endif)p
+eop
+%%Page: 12 14
+12 13 bop 75 -58 a Fu(12)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fs(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
+247 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.)137
+315 y(Command)j(names)g(without)h(an)f(accompan)o(ying)g(k)o(ey)g
+(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)g(default.)29
+b(In)75 369 y(the)15 b(follo)o(wing)h(descriptions,)g
+Fk(p)q(oin)o(t)h Fu(refers)e(to)f(the)i(curren)o(t)f(cursor)f(p)q
+(osition,)i(and)g Fk(mark)h Fu(refers)e(to)f(a)75 424
+y(cursor)h(p)q(osition)h(sa)o(v)o(ed)e(b)o(y)h(the)g
+Ft(set-mark)f Fu(command.)20 b(The)15 b(text)g(b)q(et)o(w)o(een)g(the)g
+(p)q(oin)o(t)h(and)f(mark)f(is)75 479 y(referred)h(to)g(as)g(the)g
+Fk(region)p Fu(.)75 593 y Fj(1.4.1)30 b(Commands)21 b(F)-5
+b(or)19 b(Mo)n(ving)75 716 y Ft(beginning-of-line)13
+b(\(C-a\))315 771 y Fu(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g
+(curren)o(t)g(line.)75 864 y Ft(end-of-line)f(\(C-e\))315
+919 y Fu(Mo)o(v)o(e)g(to)h(the)g(end)h(of)f(the)g(line.)75
+1012 y Ft(forward-char)f(\(C-f\))315 1067 y Fu(Mo)o(v)o(e)g(forw)o(ard)
+g(a)h(c)o(haracter.)75 1160 y Ft(backward-char)e(\(C-b\))315
+1215 y Fu(Mo)o(v)o(e)h(bac)o(k)h(a)g(c)o(haracter.)75
+1309 y Ft(forward-word)f(\(M-f\))315 1363 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 1418 y(digits.)75 1512
+y Ft(backward-word)e(\(M-b\))315 1566 y Fu(Mo)o(v)o(e)j(bac)o(k)g(to)h
+(the)f(start)g(of)g(the)h(curren)o(t)g(or)f(previous)i(w)o(ord.)24
+b(W)l(ords)16 b(are)h(comp)q(osed)315 1621 y(of)e(letters)g(and)g
+(digits.)75 1715 y Ft(clear-screen)f(\(C-l\))315 1769
+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
+1824 y(of)i(the)g(screen.)75 1918 y Ft(redraw-current-line)e(\(\))315
+1972 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 2086 y Fj(1.4.2)30
+b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f(History)75
+2209 y Ft(accept-line)14 b(\(Newline)g(or)h(Return\))315
+2264 y Fu(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
+f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
+2319 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
+(future)g(recall)h(with)f Ft(add_history\(\))p Fu(.)k(If)d(this)315
+2374 y(line)f(is)f(a)f(mo)q(di\014ed)i(history)f(line,)h(then)f
+(restore)f(the)g(history)h(line)h(to)e(its)h(original)g(state.)75
+2467 y Ft(previous-history)e(\(C-p\))315 2522 y Fu(Mo)o(v)o(e)h(`up')h
+(through)g(the)g(history)g(list.)75 2615 y Ft(next-history)f(\(C-n\))
+315 2670 y Fu(Mo)o(v)o(e)g(`do)o(wn')g(through)h(the)h(history)f(list.)
+p eop
+%%Page: 13 15
+13 14 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(13)75 149 y Ft(beginning-of-history)12 b(\(M-<\))315
+204 y Fu(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f(the)f(history)l
+(.)75 307 y Ft(end-of-history)e(\(M->\))315 362 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 466 y Ft
+(reverse-search-history)c(\(C-r\))315 520 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 575 y(tory)e(as)h(necessary)l(.)20
+b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 678
+y Ft(forward-search-history)c(\(C-s\))315 733 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 788 y(history)g(as)g(necessary)l(.)20
+b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 891
+y Ft(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
+946 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
+1001 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 1056
+y(user.)75 1159 y Ft(non-incremental-forward-se)o(arch-hi)o(story)12
+b(\(M-n\))315 1214 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 1268 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
+1323 y(user.)75 1427 y Ft(history-search-forward)f(\(\))315
+1481 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
+1536 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
+(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
+b(By)315 1591 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
+1694 y Ft(history-search-backward)c(\(\))315 1749 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 1804 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
+1859 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
+1962 y Ft(yank-nth-arg)e(\(M-C-y\))315 2017 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 2071 y(the)i(previous)i(line\).)21
+b(With)14 b(an)h(argumen)o(t)e Fk(n)p Fu(,)i(insert)f(the)h
+Fk(n)p Fu(th)f(w)o(ord)g(from)g(the)g(previous)315 2126
+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
+2181 y(argumen)o(t)g(inserts)i(the)f Fk(n)p Fu(th)h(w)o(ord)e(from)h
+(the)g(end)h(of)e(the)i(previous)g(command.)75 2284 y
+Ft(yank-last-arg)d(\(M-.)i(or)g(M-_\))315 2339 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 2394 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 2449 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 2503 y(last)d(argumen)o(t)g(of)f(eac)o(h)i
+(line)g(in)g(turn.)75 2630 y Fj(1.4.3)30 b(Commands)21
+b(F)-5 b(or)19 b(Changing)i(T)-5 b(ext)p eop
+%%Page: 14 16
+14 15 bop 75 -58 a Fu(14)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Ft(delete-char)d(\(C-d\))315 204 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 259 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 314 y(b)q(ound)g(to)f Ft(delete-char)p
+Fu(,)e(then)j(return)f Fp(eof)p Fu(.)75 406 y Ft(backward-delete-char)d
+(\(Rubout\))315 460 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
+515 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
+607 y Ft(forward-backward-delete-ch)o(ar)12 b(\(\))315
+662 y Fu(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
+(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
+717 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
+(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
+771 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 863
+y Ft(quoted-insert)e(\(C-q)i(or)g(C-v\))315 918 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 973
+y(sequences)f(lik)o(e)h Fo(C-q)p Fu(,)d(for)h(example.)75
+1065 y Ft(tab-insert)f(\(M-)401 1063 y Fn(h)p 412 1037
+74 2 v 412 1065 a Fm(T)m(AB)p 412 1072 V 484 1063 a Fn(i)499
+1065 y Ft(\))315 1119 y Fu(Insert)h(a)g(tab)g(c)o(haracter.)75
+1211 y Ft(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
+1266 y Fu(Insert)g(y)o(ourself.)75 1358 y Ft(transpose-chars)e(\(C-t\))
+315 1413 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
+1467 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 1522 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 1577 y(ha)o(v)o(e)k(no)g(e\013ect.)75
+1669 y Ft(transpose-words)e(\(M-t\))315 1724 y Fu(Drag)i(the)h(w)o(ord)
+g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
+(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1778
+y(w)o(ord)f(as)f(w)o(ell.)75 1870 y Ft(upcase-word)g(\(M-u\))315
+1925 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
+1980 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 2072 y Ft(downcase-word)d(\(M-l\))315
+2126 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 2181 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 2273 y Ft(capitalize-word)e(\(M-c\))315
+2328 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
+2383 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 2494 y Fj(1.4.4)30 b(Killing)20 b(And)h(Y)-5
+b(anking)75 2615 y Ft(kill-line)14 b(\(C-k\))315 2670
+y Fu(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
+(the)g(line.)p eop
+%%Page: 15 17
+15 16 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(15)75 149 y Ft(backward-kill-line)13 b(\(C-x)h(Rubout\))315
+204 y Fu(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
+(line.)75 295 y Ft(unix-line-discard)e(\(C-u\))315 349
+y Fu(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
+(eginning)j(of)c(the)i(curren)o(t)f(line.)75 440 y Ft(kill-whole-line)e
+(\(\))315 495 y Fu(Kill)20 b(all)f(c)o(haracters)e(on)h(the)g(curren)o
+(t)f(line,)j(no)e(matter)f(p)q(oin)o(t)h(is.)28 b(By)18
+b(default,)h(this)f(is)315 549 y(un)o(b)q(ound.)75 640
+y Ft(kill-word)c(\(M-d\))315 695 y Fu(Kill)j(from)d(p)q(oin)o(t)h(to)f
+(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o(w)o
+(een)g(w)o(ords,)e(to)i(the)f(end)315 750 y(of)h(the)g(next)g(w)o(ord.)
+20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
+Ft(forward-word)p Fu(.)75 840 y Ft(backward-kill-word)e(\(M-)592
+838 y Fn(h)p 603 812 73 2 v 603 840 a Fm(DEL)p 603 848
+V 674 838 a Fn(i)689 840 y Ft(\))315 895 y Fu(Kill)k(the)d(w)o(ord)g(b)
+q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f(the)h
+(same)f(as)g Ft(backward-word)p Fu(.)75 985 y Ft(unix-word-rubout)f
+(\(C-w\))315 1040 y Fu(Kill)18 b(the)e(w)o(ord)f(b)q(ehind)j(p)q(oin)o
+(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g(b)q(oundary)l(.)23
+b(The)16 b(killed)315 1095 y(text)f(is)g(sa)o(v)o(ed)g(on)g(the)h
+(kill-ring.)75 1185 y Ft(delete-horizontal-space)c(\(\))315
+1240 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 1330
+y Ft(kill-region)e(\(\))315 1385 y Fu(Kill)j(the)f(text)e(in)i(the)g
+(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g(is)h(un)
+o(b)q(ound.)75 1476 y Ft(copy-region-as-kill)d(\(\))315
+1530 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 1585 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
+(ound.)75 1676 y Ft(copy-backward-word)d(\(\))315 1730
+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
+1785 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 1876 y Ft(copy-forward-word)d(\(\))
+315 1930 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 1985 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 2076 y Ft(yank)f(\(C-y\))315
+2131 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
+2221 y Ft(yank-pop)f(\(M-y\))315 2276 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 2331 y(command)d(is)h Ft(yank)e
+Fu(or)h Ft(yank-pop)p Fu(.)75 2441 y Fj(1.4.5)30 b(Sp)r(ecifying)20
+b(Numeric)h(Argumen)n(ts)75 2560 y Ft(digit-argument)13
+b(\()p Fo(M-0)p Ft(,)i Fo(M-1)p Ft(,)f(...)h Fo(M--)p
+Ft(\))315 2615 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
+2670 y Fo(M--)h Fu(starts)f(a)h(negativ)o(e)g(argumen)o(t.)p
+eop
+%%Page: 16 18
+16 17 bop 75 -58 a Fu(16)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Ft(universal-argument)c(\(\))315 204 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
+259 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 314
+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 369
+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
+423 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
+478 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
+533 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
+(executing)i(this)f(function)h(the)e(\014rst)h(time)315
+588 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
+(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
+643 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 745 y Fj(1.4.6)30
+b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
+b(ou)75 857 y Ft(complete)14 b(\()305 855 y Fn(h)p 317
+828 74 2 v 317 857 a Fm(T)m(AB)p 317 864 V 389 855 a
+Fn(i)404 857 y Ft(\))315 911 y Fu(A)o(ttempt)c(to)h(p)q(erform)g
+(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
+b(The)11 b(actual)h(completion)315 966 y(p)q(erformed)j(is)h
+(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
+g(completion.)75 1049 y Ft(possible-completions)c(\(M-?\))315
+1103 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 1186 y Ft(insert-completions)e(\(M-*\))315
+1241 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
+1295 y(b)o(y)f Ft(possible-completions)p Fu(.)75 1378
+y Ft(menu-complete)e(\(\))315 1433 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 1487 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 1542 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 1597 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 1652 y(restored.)26 b(An)17 b(argumen)o(t)g(of)g
+Fk(n)g Fu(mo)o(v)o(es)g Fk(n)g Fu(p)q(ositions)h(forw)o(ard)e(in)i(the)
+g(list)g(of)f(matc)o(hes;)315 1707 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 1761 y(command)15 b(is)h(in)o(tended)g(to)f
+(b)q(e)h(b)q(ound)g(to)1067 1759 y Fn(h)p 1079 1733 V
+1079 1761 a Fm(T)m(AB)p 1079 1769 V 1150 1759 a Fn(i)1165
+1761 y Fu(,)f(but)h(is)f(un)o(b)q(ound)i(b)o(y)e(default.)75
+1844 y Ft(delete-char-or-list)e(\(\))315 1899 y Fu(Deletes)h(the)f(c)o
+(haracter)g(under)h(the)g(cursor)f(if)h(not)f(at)g(the)g(b)q(eginning)j
+(or)d(end)h(of)f(the)g(line)315 1954 y(\(lik)o(e)i Ft(delete-char)p
+Fu(\).)j(If)d(at)f(the)h(end)g(of)f(the)g(line,)i(b)q(eha)o(v)o(es)f
+(iden)o(tically)i(to)d Ft(possible-)315 2008 y(completions)p
+Fu(.)k(This)e(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)75
+2111 y Fj(1.4.7)30 b(Keyb)r(oard)20 b(Macros)75 2222
+y Ft(start-kbd-macro)13 b(\(C-x)i(\(\))315 2277 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 2360 y Ft(end-kbd-macro)e(\(C-x)i(\)\))315
+2414 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 2469 y(de\014nition.)75 2552 y Ft(call-last-kbd-macro)g(\(C-x)
+h(e\))315 2606 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 2661 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.)p eop
+%%Page: 17 19
+17 18 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(17)75 149 y Fj(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
+265 y Ft(re-read-init-file)13 b(\(C-x)h(C-r\))315 320
+y Fu(Read)e(in)f(the)g(con)o(ten)o(ts)g(of)f(the)h Fk(inputrc)k
+Fu(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
+(ariable)315 374 y(assignmen)o(ts)k(found)h(there.)75
+461 y Ft(abort)e(\(C-g\))315 515 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 570 y(setting)i(of)g Ft(bell-style)p
+Fu(\).)75 657 y Ft(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
+Fk(x)p Ft(,)h(...\))315 711 y Fu(If)f(the)g(meta\014ed)g(c)o(haracter)f
+Fk(x)k Fu(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g(b)q
+(ound)h(to)e(the)315 766 y(corresp)q(onding)j(upp)q(ercase)g(c)o
+(haracter.)75 852 y Ft(prefix-meta)e(\()377 850 y Fn(h)p
+389 824 70 2 v 389 852 a Fm(ESC)p 389 860 V 456 850 a
+Fn(i)471 852 y Ft(\))315 907 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 962 y(meta)d(k)o(ey)l(.)20 b(T)o(yping)15
+b(`)694 960 y Fn(h)p 706 934 V 706 962 a Fm(ESC)p 706
+970 V 773 960 a Fn(i)803 962 y Ft(f)p Fu(')g(is)g(equiv)m(alen)o(t)i
+(to)e(t)o(yping)g Fo(M-f)p Fu(.)75 1048 y Ft(undo)g(\(C-_)f(or)h(C-x)g
+(C-u\))315 1103 y Fu(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
+(ered)g(for)e(eac)o(h)h(line.)75 1189 y Ft(revert-line)f(\(M-r\))315
+1244 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 1299 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
+(b)q(eginning.)75 1385 y Ft(tilde-expand)f(\(M-~\))315
+1440 y Fu(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
+(ord.)75 1526 y Ft(set-mark)f(\(C-@\))315 1581 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 1636 y(is)i(set)f(to)f
+(that)h(p)q(osition.)75 1722 y Ft(exchange-point-and-mark)d(\(C-x)j
+(C-x\))315 1777 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 1832 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 1918
+y Ft(character-search)e(\(C-]\))315 1973 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 2028 y(A)j(negativ)o(e)h
+(coun)o(t)f(searc)o(hes)g(for)f(previous)i(o)q(ccurrences.)75
+2114 y Ft(character-search-backward)c(\(M-C-]\))315 2169
+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
+2223 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 2310 y Ft(insert-comment)d(\(M-#\))
+315 2365 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
+2419 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 2506
+y Ft(dump-functions)d(\(\))315 2560 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 2615 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 2670 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
+Fk(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
+(y)f(default.)p eop
+%%Page: 18 20
+18 19 bop 75 -58 a Fu(18)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Ft(dump-variables)c(\(\))315 204 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 259 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 314 y(it)g(can)h(b)q(e)g(made)f
+(part)f(of)h(an)g Fk(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h
+(un)o(b)q(ound)g(b)o(y)f(default.)75 406 y Ft(dump-macros)f(\(\))315
+461 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
+516 y(output.)26 b(If)18 b(a)f(n)o(umeric)h(argumen)o(t)f(is)h
+(supplied,)i(the)d(output)g(is)h(formatted)e(in)j(suc)o(h)e(a)315
+570 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g(part)g(of)f(an)h
+Fk(inputrc)k Fu(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)g(b)o
+(y)315 625 y(default.)75 754 y Fs(1.5)33 b(Readline)23
+b(vi)h(Mo)r(de)137 850 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
+905 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 960 y(the)c Fp(posix)g Fu(1003.2)f(standard.)
+137 1027 y(In)h(order)g(to)f(switc)o(h)g(in)o(teractiv)o(ely)i(b)q(et)o
+(w)o(een)f Ft(emacs)e Fu(and)i Ft(vi)f Fu(editing)i(mo)q(des,)f(use)f
+(the)h(command)75 1082 y Fo(M-C-j)f Fu(\(toggle-editing-mo)q(de\).)21
+b(The)16 b(Readline)h(default)f(is)g Ft(emacs)e Fu(mo)q(de.)137
+1149 y(When)i(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 1204 y(had)e(t)o(yp)q(ed)h(an)f(`)p
+Ft(i)p Fu('.)18 b(Pressing)608 1202 y Fn(h)p 620 1176
+70 2 v 620 1204 a Fm(ESC)p 620 1211 V 687 1202 a Fn(i)715
+1204 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 1259 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 1313
+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: 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 149 y Fq(2)41 b(Programming)28
+b(with)e(GNU)i(Readline)137 267 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 322 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 377 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
+432 y(programs,)i(this)h(section)h(is)g(for)e(y)o(ou.)75
+561 y Fs(2.1)33 b(Basic)22 b(Beha)n(vior)137 658 y Fu(Man)o(y)15
+b(programs)f(pro)o(vide)i(a)f(command)g(line)i(in)o(terface,)e(suc)o(h)
+h(as)f Ft(mail)p Fu(,)f Ft(ftp)p Fu(,)h(and)g Ft(sh)p
+Fu(.)20 b(F)l(or)15 b(suc)o(h)75 713 y(programs,)e(the)h(default)h(b)q
+(eha)o(viour)g(of)f(Readline)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
+768 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 822 y Ft(fgets\(\))p Fu(.)195
+887 y Ft(char)23 b(*readline)g(\(const)g(char)g(*)p Fk(prompt)q
+Ft(\);)137 955 y Fu(The)17 b(function)g Ft(readline\(\))e
+Fu(prin)o(ts)h(a)g(prompt)g Fk(prompt)h Fu(and)f(then)h(reads)f(and)h
+(returns)f(a)g(single)75 1009 y(line)i(of)e(text)g(from)f(the)i(user.)
+23 b(If)17 b Fk(prompt)g Fu(is)g Ft(NULL)e Fu(or)h(the)h(empt)o(y)f
+(string,)g(no)g(prompt)g(is)h(displa)o(y)o(ed.)75 1064
+y(The)i(line)h Ft(readline)d Fu(returns)i(is)g(allo)q(cated)g(with)g
+Ft(malloc\(\))p Fu(;)g(the)g(caller)g(should)h Ft(free\(\))e
+Fu(the)g(line)75 1119 y(when)e(it)f(has)g(\014nished)i(with)f(it.)k
+(The)15 b(declaration)h(for)f Ft(readline)f Fu(in)i(ANSI)g(C)f(is)75
+1187 y(So,)g(one)g(migh)o(t)g(sa)o(y)195 1251 y Ft(char)23
+b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)75
+1319 y Fu(in)12 b(order)f(to)g(read)h(a)f(line)i(of)e(text)g(from)f
+(the)i(user.)19 b(The)11 b(line)j(returned)d(has)h(the)f(\014nal)h
+(newline)i(remo)o(v)o(ed,)75 1374 y(so)h(only)h(the)f(text)g(remains.)
+137 1441 y(If)21 b Ft(readline)e Fu(encoun)o(ters)h(an)g
+Ft(EOF)g Fu(while)i(reading)f(the)f(line,)j(and)d(the)h(line)g(is)g
+(empt)o(y)f(at)g(that)75 1496 y(p)q(oin)o(t,)15 b(then)g
+Ft(\(char)f(*\)NULL)g Fu(is)h(returned.)21 b(Otherwise,)15
+b(the)g(line)h(is)f(ended)h(just)e(as)h(if)g(a)f(newline)j(had)75
+1551 y(b)q(een)f(t)o(yp)q(ed.)137 1618 y(If)d(y)o(ou)g(w)o(an)o(t)f
+(the)h(user)g(to)f(b)q(e)i(able)g(to)e(get)g(at)h(the)g(line)h(later,)f
+(\(with)1325 1616 y Fn(h)p 1338 1590 57 2 v 1338 1618
+a Fm(C-p)p 1338 1626 V 1392 1616 a Fn(i)1420 1618 y Fu(for)f
+(example\),)i(y)o(ou)f(m)o(ust)75 1673 y(call)j Ft(add_history\(\))e
+Fu(to)g(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)d(in)i(a)e
+Fk(history)19 b Fu(list)d(of)f(suc)o(h)h(lines.)195 1738
+y Ft(add_history)22 b(\(line\);)75 1805 y Fu(F)l(or)15
+b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f
+(asso)q(ciated)g(man)o(ual.)137 1873 y(It)h(is)g(preferable)h(to)e(a)o
+(v)o(oid)g(sa)o(ving)h(empt)o(y)f(lines)i(on)f(the)g(history)f(list,)i
+(since)f(users)g(rarely)g(ha)o(v)o(e)f(a)75 1928 y(burning)h(need)g(to)
+e(reuse)h(a)g(blank)g(line.)22 b(Here)15 b(is)g(a)g(function)g(whic)o
+(h)h(usefully)h(replaces)e(the)g(standard)75 1983 y Ft(gets\(\))f
+Fu(library)i(function,)g(and)f(has)g(the)h(adv)m(an)o(tage)e(of)h(no)g
+(static)g(bu\013er)g(to)g(o)o(v)o(er\015o)o(w:)195 2047
+y Ft(/*)24 b(A)f(static)g(variable)g(for)h(holding)e(the)i(line.)f(*/)
+195 2099 y(static)g(char)g(*line_read)g(=)h(\(char)f(*\)NULL;)195
+2203 y(/*)h(Read)f(a)h(string,)f(and)g(return)g(a)h(pointer)f(to)g(it.)
+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
+149 y Ft(})243 253 y(/*)23 b(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)
+243 305 y(line_read)f(=)i(readline)f(\(""\);)243 409
+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 461 y(if)g(\(line_read)g(&&)g(*line_read\))290
+513 y(add_history)g(\(line_read\);)243 616 y(return)g(\(line_read\);)
+195 668 y(})137 738 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 736 y Fn(h)p
+1181 710 74 2 v 1181 738 a Fm(T)m(AB)p 1181 746 V 1253
+736 a Fn(i)1280 738 y Fu(completion:)19 b(completion)13
+b(on)f(\014le)75 793 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 848 y(of)g(the)205 846 y Fn(h)p
+217 820 V 217 848 a Fm(T)m(AB)p 217 855 V 289 846 a Fn(i)319
+848 y Fu(k)o(ey)g(with)h Ft(rl_bind_key\(\))p Fu(.)195
+914 y Ft(int)23 b(rl_bind_key)g(\(int)g Fk(k)o(ey)p Ft(,)h
+(rl_command_func_t)d(*)p Fk(function)p Ft(\);)137 984
+y(rl_bind_key\(\))15 b Fu(tak)o(es)h(t)o(w)o(o)g(argumen)o(ts:)22
+b Fk(k)o(ey)e Fu(is)e(the)e(c)o(haracter)g(that)g(y)o(ou)h(w)o(an)o(t)f
+(to)g(bind,)i(and)75 1039 y Fk(function)h Fu(is)f(the)g(address)g(of)g
+(the)g(function)g(to)g(call)h(when)f Fk(k)o(ey)k Fu(is)c(pressed.)29
+b(Binding)1628 1037 y Fn(h)p 1641 1011 V 1641 1039 a
+Fm(T)m(AB)p 1641 1046 V 1712 1037 a Fn(i)1745 1039 y
+Fu(to)17 b Ft(rl_)75 1094 y(insert\(\))f Fu(mak)o(es)422
+1092 y Fn(h)p 434 1066 V 434 1094 a Fm(T)m(AB)p 434 1101
+V 506 1092 a Fn(i)539 1094 y Fu(insert)i(itself.)28 b
+Ft(rl_bind_key\(\))15 b Fu(returns)j(non-zero)g(if)g
+Fk(k)o(ey)j Fu(is)d(not)f(a)g(v)m(alid)75 1148 y(ASCI)q(I)f(c)o
+(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g(255\).)137
+1218 y(Th)o(us,)g(to)g(disable)h(the)g(default)703 1216
+y Fn(h)p 716 1190 V 716 1218 a Fm(T)m(AB)p 716 1226 V
+787 1216 a Fn(i)817 1218 y Fu(b)q(eha)o(vior,)g(the)f(follo)o(wing)h
+(su\016ces:)195 1285 y Ft(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137
+1354 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 1409 y(tion)k(called)h Ft(initialize_readline\(\))13
+b Fu(whic)o(h)k(p)q(erforms)f(this)h(and)g(other)f(desired)h
+(initializations,)75 1464 y(suc)o(h)f(as)e(installing)k(custom)c
+(completers)i(\(see)f(Section)h(2.6)f([Custom)f(Completers],)g(page)h
+(37\).)75 1599 y Fs(2.2)33 b(Custom)21 b(F)-6 b(unctions)137
+1697 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 1752 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 1807 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 1862 y(functionalit)o(y)j(to)f(Readline.)137
+1931 y(Before)j(declaring)i(an)o(y)e(functions)h(that)f(customize)g
+(Readline's)i(b)q(eha)o(vior,)g(or)d(using)i(an)o(y)f(func-)75
+1986 y(tionalit)o(y)23 b(Readline)i(pro)o(vides)f(in)f(other)g(co)q
+(de,)h(an)f(application)i(writer)d(should)i(include)h(the)e(\014le)75
+2041 y Ft(<readline/readline.h>)14 b Fu(in)j(an)o(y)g(\014le)h(that)e
+(uses)h(Readline's)h(features.)24 b(Since)19 b(some)d(of)g(the)h
+(de\014-)75 2096 y(nitions)g(in)f Ft(readline.h)e Fu(use)i(the)g
+Ft(stdio)f Fu(library)l(,)h(the)g(\014le)g Ft(<stdio.h>)f
+Fu(should)h(b)q(e)g(included)j(b)q(efore)75 2151 y Ft(readline.h)p
+Fu(.)75 2268 y Fj(2.2.1)30 b(Readline)20 b(T)n(yp)r(edefs)137
+2366 y Fu(F)l(or)15 b(readabilt)o(y)l(,)g(w)o(e)g(declare)i(a)d(n)o(um)
+o(b)q(er)i(of)f(new)g(ob)s(ject)g(t)o(yp)q(es,)g(all)h(p)q(oin)o(ters)f
+(to)g(functions.)137 2436 y(The)j(reason)g(for)f(declaring)i(these)f
+(new)g(t)o(yp)q(es)g(is)h(to)e(mak)o(e)g(it)h(easier)h(to)e(write)h(co)
+q(de)g(describing)75 2491 y(p)q(oin)o(ters)e(to)e(C)h(functions)h(with)
+g(appropriately)f(protot)o(yp)q(ed)g(argumen)o(ts)g(and)g(return)g(v)m
+(alues.)137 2560 y(F)l(or)j(instance,)i(sa)o(y)e(w)o(e)g(w)o(an)o(t)f
+(to)h(declare)h(a)f(v)m(ariable)i Fk(func)i Fu(as)c(a)g(p)q(oin)o(ter)h
+(to)f(a)g(function)h(whic)o(h)75 2615 y(tak)o(es)12 b(t)o(w)o(o)g
+Ft(int)g Fu(argumen)o(ts)g(and)h(returns)g(an)g Ft(int)f
+Fu(\(this)h(is)g(the)g(t)o(yp)q(e)g(of)g(all)g(of)g(the)g(Readline)i
+(bindable)75 2670 y(functions\).)20 b(Instead)c(of)f(the)g(classic)h(C)
+f(declaration)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)137 149 y Ft(int)15 b(\(*func\)\(\);)75
+220 y Fu(or)g(the)g(ANSI-C)h(st)o(yle)f(declaration)137
+290 y Ft(int)g(\(*func\)\(int,)f(int\);)75 360 y Fu(w)o(e)h(ma)o(y)f
+(write)137 430 y Ft(rl_command_func_t)f(*func;)137 500
+y Fu(The)j(full)g(list)g(of)f(function)h(p)q(oin)o(ter)g(t)o(yp)q(es)f
+(a)o(v)m(ailable)i(is)75 584 y Ft(typedef)d(int)h(rl_command_func_t)e
+(\(int,)h(int\);)75 652 y(typedef)g(char)h(*rl_compentry_func_t)d
+(\(const)j(char)f(*,)h(int\);)75 721 y(typedef)f(char)h
+(**rl_completion_func_t)d(\(const)i(char)h(*,)g(int,)f(int\);)75
+790 y(typedef)g(char)h(*rl_quote_func_t)e(\(char)h(*,)h(int,)g(char)f
+(*\);)75 858 y(typedef)g(char)h(*rl_dequote_func_t)d(\(char)j(*,)g
+(int\);)75 927 y(typedef)f(int)h(rl_compignore_func_t)d(\(char)j(**\);)
+75 996 y(typedef)f(void)h(rl_compdisp_func_t)d(\(char)j(**,)g(int,)f
+(int\);)75 1064 y(typedef)g(int)h(rl_hook_func_t)e(\(void\);)75
+1133 y(typedef)h(int)h(rl_getc_func_t)e(\(FILE)i(*\);)75
+1202 y(typedef)f(int)h(rl_linebuf_func_t)e(\(char)h(*,)h(int\);)75
+1270 y(typedef)f(int)h(rl_intfunc_t)e(\(int\);)75 1339
+y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)75 1408 y(typedef)h(int)h
+(rl_icpfunc_t)e(\(char)i(*\);)75 1476 y(typedef)f(int)h(rl_icppfunc_t)e
+(\(char)i(**\);)75 1545 y(typedef)f(void)h(rl_voidfunc_t)e(\(void\);)75
+1614 y(typedef)h(void)h(rl_vintfunc_t)e(\(int\);)75 1682
+y(typedef)h(void)h(rl_vcpfunc_t)e(\(char)i(*\);)75 1751
+y(typedef)f(void)h(rl_vcppfunc_t)e(\(char)i(**\);)75
+1855 y Fj(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5
+b(unction)137 1954 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 2009 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 2064 y(state)c(of)h(the)g(line)i
+(read)e(so)g(far.)137 2134 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 2201 y
+Ft(foo)23 b(\(int)h(count,)f(int)g(key\))75 2271 y Fu(where)18
+b Fk(coun)o(t)h Fu(is)f(the)g(n)o(umeric)h(argumen)o(t)e(\(or)h(1)f(if)
+i(defaulted\))f(and)g Fk(k)o(ey)k Fu(is)d(the)f(k)o(ey)g(that)f(in)o(v)
+o(ok)o(ed)75 2326 y(this)f(function.)137 2396 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 2451 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
+2506 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
+2560 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 2615 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 2670 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.)p eop
+%%Page: 22 24
+22 23 bop 75 -58 a Fu(22)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fs(2.3)33 b(Readline)23 b(V)-6 b(ariables)137 246
+y Fu(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h
+(writers.)1773 362 y(V)l(ariable)-1861 b Fi(char)20 b(*)f
+Fh(rl)p 286 362 18 3 v 21 w(line)p 395 362 V 23 w(bu\013er)195
+417 y Fu(This)d(is)g(the)g(line)h(gathered)f(so)f(far.)20
+b(Y)l(ou)c(are)f(w)o(elcome)h(to)f(mo)q(dify)h(the)g(con)o(ten)o(ts)f
+(of)g(the)h(line,)195 472 y(but)i(see)g(Section)h(2.4.5)d([Allo)o(wing)
+i(Undoing],)h(page)e(29.)27 b(The)18 b(function)h Ft(rl_extend_line_)
+195 526 y(buffer)14 b Fu(is)i(a)o(v)m(ailable)h(to)d(increase)j(the)e
+(memory)f(allo)q(cated)j(to)d Ft(rl_line_buffer)p Fu(.)1773
+643 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 643
+V 21 w(p)r(oin)n(t)195 698 y Fu(The)15 b(o\013set)g(of)f(the)i(curren)o
+(t)f(cursor)g(p)q(osition)h(in)g Ft(rl_line_buffer)d
+Fu(\(the)i Fl(p)n(oint)t Fu(\).)1773 814 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 814 V 21 w(end)195 869 y Fu(The)14
+b(n)o(um)o(b)q(er)g(of)g(c)o(haracters)f(presen)o(t)h(in)h
+Ft(rl_line_buffer)p Fu(.)i(When)e Ft(rl_point)e Fu(is)h(at)f(the)h(end)
+195 924 y(of)h(the)g(line,)i Ft(rl_point)d Fu(and)h Ft(rl_end)f
+Fu(are)h(equal.)1773 1040 y(V)l(ariable)-1861 b Fi(int)20
+b Fh(rl)p 215 1040 V 21 w(mark)195 1095 y Fu(The)f Fk(mark)h
+Fu(\(sa)o(v)o(ed)e(p)q(osition\))h(in)g(the)g(curren)o(t)f(line.)31
+b(If)19 b(set,)g(the)f(mark)g(and)h(p)q(oin)o(t)g(de\014ne)g(a)195
+1150 y Fl(r)n(e)n(gion)p Fu(.)1773 1266 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 1266 V 21 w(done)195 1321 y
+Fu(Setting)11 b(this)g(to)g(a)f(non-zero)h(v)m(alue)h(causes)f
+(Readline)i(to)e(return)f(the)h(curren)o(t)g(line)h(immediately)l(.)
+1773 1437 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215
+1437 V 21 w(n)n(um)p 347 1437 V 19 w(c)n(hars)p 496 1437
+V 20 w(to)p 567 1437 V 21 w(read)195 1492 y Fu(Setting)d(this)g(to)f(a)
+g(p)q(ositiv)o(e)h(v)m(alue)h(b)q(efore)f(calling)h Ft(readline\(\))d
+Fu(causes)h(Readline)j(to)d(return)195 1547 y(after)h(accepting)i(that)
+e(man)o(y)g(c)o(haracters,)h(rather)f(than)h(reading)g(up)g(to)f(a)h(c)
+o(haracter)f(b)q(ound)195 1602 y(to)e Ft(accept-line)p
+Fu(.)1773 1718 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
+215 1718 V 21 w(p)r(ending)p 436 1718 V 20 w(input)195
+1773 y Fu(Setting)13 b(this)g(to)f(a)g(v)m(alue)i(mak)o(es)e(it)h(the)f
+(next)h(k)o(eystrok)o(e)f(read.)19 b(This)13 b(is)g(a)f(w)o(a)o(y)g(to)
+f(stu\013)h(a)h(single)195 1828 y(c)o(haracter)h(in)o(to)i(the)f(input)
+h(stream.)1773 1944 y(V)l(ariable)-1861 b Fi(int)20 b
+Fh(rl)p 215 1944 V 21 w(dispatc)n(hing)195 1999 y Fu(Set)12
+b(to)g(a)f(non-zero)i(v)m(alue)g(if)g(a)f(function)h(is)f(b)q(eing)i
+(called)f(from)f(a)f(k)o(ey)h(binding;)j(zero)d(otherwise.)195
+2054 y(Application)20 b(functions)e(can)g(test)g(this)g(to)f(disco)o(v)
+o(er)h(whether)g(they)g(w)o(ere)g(called)h(directly)g(or)195
+2108 y(b)o(y)c(Readline's)i(dispatc)o(hing)g(mec)o(hanism.)1773
+2225 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2225
+V 21 w(erase)p 363 2225 V 20 w(empt)n(y)p 540 2225 V
+20 w(line)195 2280 y Fu(Setting)j(this)h(to)e(a)h(non-zero)g(v)m(alue)h
+(causes)f(Readline)j(to)c(completely)i(erase)f(the)g(curren)o(t)195
+2334 y(line,)g(including)h(an)o(y)c(prompt,)h(an)o(y)g(time)g(a)f
+(newline)j(is)e(t)o(yp)q(ed)g(as)f(the)h(only)g(c)o(haracter)f(on)195
+2389 y(an)e(otherwise-empt)o(y)g(line.)31 b(The)18 b(cursor)g(is)h(mo)o
+(v)o(ed)e(to)h(the)g(b)q(eginning)i(of)e(the)g(newly-blank)195
+2444 y(line.)1773 2560 y(V)l(ariable)-1861 b Fi(char)20
+b(*)f Fh(rl)p 286 2560 V 21 w(prompt)195 2615 y Fu(The)13
+b(prompt)g(Readline)i(uses.)20 b(This)13 b(is)h(set)f(from)f(the)h
+(argumen)o(t)g(to)f Ft(readline\(\))p Fu(,)g(and)h(should)195
+2670 y(not)i(b)q(e)h(assigned)f(to)g(directly)l(.)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)1773 149 y(V)l(ariable)-1861 b Fi(int)20
+b Fh(rl)p 215 149 18 3 v 21 w(already)p 419 149 V 21
+w(prompted)195 204 y Fu(If)e(an)g(application)i(wishes)f(to)f(displa)o
+(y)h(the)f(prompt)g(itself,)h(rather)f(than)g(ha)o(v)o(e)g(Readline)i
+(do)195 259 y(it)d(the)f(\014rst)g(time)h Ft(readline\(\))e
+Fu(is)i(called,)h(it)e(should)i(set)e(this)h(v)m(ariable)g(to)f(a)g
+(non-zero)h(v)m(alue)195 314 y(after)h(displa)o(ying)j(the)e(prompt.)31
+b(The)19 b(prompt)g(m)o(ust)f(also)h(b)q(e)h(passed)f(as)f(the)h
+(argumen)o(t)g(to)195 369 y Ft(readline\(\))c Fu(so)h(the)h(redispla)o
+(y)g(functions)h(can)e(up)q(date)h(the)g(displa)o(y)h(prop)q(erly)l(.)
+24 b(The)17 b(calling)195 423 y(application)g(is)f(resp)q(onsible)h
+(for)d(managing)h(the)h(v)m(alue;)g(Readline)h(nev)o(er)f(sets)e(it.)
+1773 555 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f
+Fh(rl)p 436 555 V 21 w(library)p 625 555 V 21 w(v)n(ersion)195
+610 y Fu(The)c(v)o(ersion)h(n)o(um)o(b)q(er)f(of)g(this)h(revision)g
+(of)f(the)g(library)l(.)1773 741 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 741 V 21 w(gn)n(u)p 327 741
+V 20 w(readline)p 545 741 V 22 w(p)195 796 y Fu(Alw)o(a)o(ys)15
+b(set)g(to)f(1,)h(denoting)h(that)e(this)i(is)g Fp(gnu)f
+Fu(readline)h(rather)f(than)g(some)g(em)o(ulation.)1773
+928 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
+436 928 V 21 w(terminal)p 668 928 V 21 w(name)195 982
+y Fu(The)14 b(terminal)h(t)o(yp)q(e,)f(used)h(for)e(initialization.)23
+b(If)14 b(not)f(set)h(b)o(y)g(the)g(application,)i(Readline)g(sets)195
+1037 y(this)g(to)e(the)h(v)m(alue)i(of)e(the)g Ft(TERM)g
+Fu(en)o(vironmen)o(t)g(v)m(ariable)i(the)e(\014rst)g(time)g(it)h(is)f
+(called.)1773 1169 y(V)l(ariable)-1861 b Fi(const)20
+b(char)g(*)f Fh(rl)p 436 1169 V 21 w(readline)p 655 1169
+V 22 w(name)195 1223 y Fu(This)d(v)m(ariable)h(is)f(set)g(to)f(a)g
+(unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.)24
+b(The)16 b(v)m(alue)195 1278 y(allo)o(ws)e(conditional)i(parsing)e(of)g
+(the)g(inputrc)h(\014le)g(\(see)f(Section)h(1.3.2)d([Conditional)j
+(Init)g(Con-)195 1333 y(structs],)f(page)h(8\).)1773
+1465 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286
+1465 V 21 w(instream)195 1519 y Fu(The)c(stdio)h(stream)e(from)h(whic)o
+(h)h(Readline)h(reads)e(input.)1773 1651 y(V)l(ariable)-1861
+b Fi(FILE)20 b(*)f Fh(rl)p 286 1651 V 21 w(outstream)195
+1706 y Fu(The)c(stdio)h(stream)e(to)h(whic)o(h)h(Readline)h(p)q
+(erforms)e(output.)1773 1837 y(V)l(ariable)-1861 b Fi
+(rl_command_func_t)22 b(*)d Fh(rl)p 626 1837 V 21 w(last)p
+735 1837 V 21 w(func)195 1892 y Fu(The)f(address)f(of)g(the)g(last)h
+(command)f(function)h(Readline)i(executed.)27 b(Ma)o(y)17
+b(b)q(e)h(used)g(to)f(test)195 1947 y(whether)e(or)g(not)g(a)g
+(function)h(is)f(b)q(eing)i(executed)f(t)o(wice)g(in)g(succession,)g
+(for)e(example.)1773 2078 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21
+b(*)e Fh(rl)p 547 2078 V 22 w(startup)p 752 2078 V 19
+w(ho)r(ok)195 2133 y Fu(If)e(non-zero,)h(this)g(is)f(the)h(address)f
+(of)f(a)h(function)h(to)f(call)h(just)f(b)q(efore)g Ft(readline)f
+Fu(prin)o(ts)i(the)195 2188 y(\014rst)d(prompt.)1773
+2319 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
+Fh(rl)p 547 2319 V 22 w(pre)p 651 2319 V 20 w(input)p
+804 2319 V 21 w(ho)r(ok)195 2374 y Fu(If)f(non-zero,)g(this)g(is)h(the)
+f(address)f(of)h(a)f(function)i(to)e(call)i(after)e(the)h(\014rst)f
+(prompt)g(has)h(b)q(een)195 2429 y(prin)o(ted)e(and)f(just)g(b)q(efore)
+h Ft(readline)e Fu(starts)g(reading)h(input)i(c)o(haracters.)1773
+2560 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
+Fh(rl)p 547 2560 V 22 w(ev)n(en)n(t)p 701 2560 V 22 w(ho)r(ok)195
+2615 y Fu(If)j(non-zero,)h(this)e(is)h(the)g(address)f(of)g(a)g
+(function)i(to)d(call)j(p)q(erio)q(dically)h(when)e(readline)h(is)195
+2670 y(w)o(aiting)15 b(for)g(terminal)h(input.)p eop
+%%Page: 24 26
+24 25 bop 75 -58 a Fu(24)1299 b(GNU)15 b(Readline)i(Library)1773
+149 y(V)l(ariable)-1861 b Fi(rl_getc_func_t)21 b(*)e
+Fh(rl)p 547 149 18 3 v 22 w(getc)p 671 149 V 21 w(function)195
+204 y Fu(If)14 b(non-zero,)g Ft(readline)f Fu(will)i(call)g(indirectly)
+h(through)d(this)i(p)q(oin)o(ter)f(to)f(get)g(a)h(c)o(haracter)f(from)
+195 259 y(the)18 b(input)h(stream.)28 b(By)18 b(default,)h(it)f(is)h
+(set)e(to)h Ft(rl_getc)p Fu(,)f(the)h(default)h Ft(readline)e
+Fu(c)o(haracter)195 314 y(input)f(function)g(\(see)f(Section)h(2.4.8)e
+([Character)g(Input],)h(page)g(32\).)1773 442 y(V)l(ariable)-1861
+b Fi(rl_voidfunc_t)21 b(*)e Fh(rl)p 521 442 V 21 w(redispla)n(y)p
+765 442 V 22 w(function)195 497 y Fu(If)e(non-zero,)f
+Ft(readline)g Fu(will)i(call)g(indirectly)g(through)e(this)h(p)q(oin)o
+(ter)g(to)f(up)q(date)h(the)g(displa)o(y)195 552 y(with)d(the)f(curren)
+o(t)h(con)o(ten)o(ts)f(of)g(the)g(editing)i(bu\013er.)k(By)14
+b(default,)g(it)g(is)g(set)f(to)g Ft(rl_redisplay)p Fu(,)195
+607 y(the)i(default)h Ft(readline)e Fu(redispla)o(y)i(function)g(\(see)
+g(Section)g(2.4.6)d([Redispla)o(y],)j(page)f(30\).)1773
+735 y(V)l(ariable)-1861 b Fi(rl_vintfunc_t)21 b(*)e Fh(rl)p
+521 735 V 21 w(prep)p 656 735 V 21 w(term)p 798 735 V
+19 w(function)195 790 y Fu(If)11 b(non-zero,)g Ft(readline)e
+Fu(will)j(call)g(indirectly)h(through)d(this)h(p)q(oin)o(ter)g(to)e
+(initialize)14 b(the)d(terminal.)195 844 y(The)19 b(function)g(tak)o
+(es)f(a)g(single)i(argumen)o(t,)e(an)h Ft(int)f Fu(\015ag)g(that)g(sa)o
+(ys)g(whether)g(or)h(not)f(to)g(use)195 899 y(eigh)o(t-bit)g(c)o
+(haracters.)25 b(By)17 b(default,)h(this)f(is)h(set)e(to)h
+Ft(rl_prep_terminal)e Fu(\(see)i(Section)h(2.4.9)195
+954 y([T)l(erminal)e(Managemen)o(t],)d(page)i(32\).)1773
+1082 y(V)l(ariable)-1861 b Fi(rl_voidfunc_t)21 b(*)e
+Fh(rl)p 521 1082 V 21 w(deprep)p 714 1082 V 21 w(term)p
+856 1082 V 19 w(function)195 1137 y Fu(If)e(non-zero,)g
+Ft(readline)f Fu(will)i(call)g(indirectly)h(through)e(this)g(p)q(oin)o
+(ter)g(to)f(reset)h(the)g(terminal.)195 1192 y(This)h(function)g
+(should)h(undo)f(the)f(e\013ects)h(of)f Ft(rl_prep_term_function)p
+Fu(.)24 b(By)17 b(default,)i(this)195 1247 y(is)d(set)f(to)f
+Ft(rl_deprep_terminal)f Fu(\(see)i(Section)h(2.4.9)e([T)l(erminal)i
+(Managemen)o(t],)d(page)i(32\).)1773 1375 y(V)l(ariable)-1861
+b Fi(Keymap)20 b Fh(rl)p 293 1375 V 21 w(executing)p
+551 1375 V 22 w(k)n(eymap)195 1430 y Fu(This)f(v)m(ariable)g(is)f(set)g
+(to)g(the)g(k)o(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h
+(26\))f(in)i(whic)o(h)195 1485 y(the)c(curren)o(tly)h(executing)g
+(readline)h(function)f(w)o(as)f(found.)1773 1613 y(V)l(ariable)-1861
+b Fi(Keymap)20 b Fh(rl)p 293 1613 V 21 w(binding)p 501
+1613 V 22 w(k)n(eymap)195 1668 y Fu(This)f(v)m(ariable)g(is)f(set)g(to)
+g(the)g(k)o(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h(26\))
+f(in)i(whic)o(h)195 1723 y(the)c(last)g(k)o(ey)g(binding)j(o)q
+(ccurred.)1773 1851 y(V)l(ariable)-1861 b Fi(char)20
+b(*)f Fh(rl)p 286 1851 V 21 w(executing)p 544 1851 V
+22 w(macro)195 1906 y Fu(This)d(v)m(ariable)g(is)g(set)f(to)g(the)g
+(text)g(of)f(an)o(y)h(curren)o(tly-executing)i(macro.)1773
+2034 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2034
+V 21 w(readline)p 434 2034 V 22 w(state)195 2089 y Fu(A)d(v)m(ariable)i
+(with)e(bit)h(v)m(alues)h(that)d(encapsulate)i(the)g(curren)o(t)f
+(Readline)i(state.)25 b(A)18 b(bit)f(is)h(set)195 2144
+y(with)h(the)g Ft(RL_SETSTATE)f Fu(macro,)h(and)g(unset)g(with)g(the)g
+Ft(RL_UNSETSTATE)e Fu(macro.)31 b(Use)19 b(the)195 2199
+y Ft(RL_ISSTATE)e Fu(macro)h(to)g(test)g(whether)h(a)f(particular)i
+(state)d(bit)j(is)f(set.)30 b(Curren)o(t)18 b(state)g(bits)195
+2253 y(include:)195 2339 y Ft(RL_STATE_NONE)435 2393
+y Fu(Readline)f(has)f(not)e(y)o(et)h(b)q(een)h(called,)h(nor)e(has)g
+(it)g(b)q(egun)h(to)f(in)o(tialize.)195 2477 y Ft
+(RL_STATE_INITIALIZING)435 2532 y Fu(Readline)i(is)f(initializi)q(ng)i
+(its)d(in)o(ternal)h(data)f(structures.)195 2615 y Ft
+(RL_STATE_INITIALIZED)435 2670 y Fu(Readline)i(has)f(completed)g(its)f
+(initialization.)p eop
+%%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)195 149 y Ft(RL_STATE_TERMPREPPED)435
+204 y Fu(Readline)17 b(has)d(mo)q(di\014ed)i(the)e(terminal)h(mo)q(des)
+g(to)e(do)i(its)f(o)o(wn)g(input)h(and)g(redis-)435 259
+y(pla)o(y)l(.)195 342 y Ft(RL_STATE_READCMD)435 397 y
+Fu(Readline)i(is)f(reading)g(a)f(command)g(from)f(the)i(k)o(eyb)q
+(oard.)195 480 y Ft(RL_STATE_METANEXT)435 534 y Fu(Readline)h(is)f
+(reading)g(more)f(input)h(after)e(reading)i(the)f(meta-pre\014x)h(c)o
+(haracter.)195 617 y Ft(RL_STATE_DISPATCHING)435 672
+y Fu(Readline)h(is)f(dispatc)o(hing)h(to)d(a)h(command.)195
+755 y Ft(RL_STATE_MOREINPUT)435 810 y Fu(Readline)i(is)f(reading)g
+(more)f(input)h(while)h(executing)f(an)f(editing)i(command.)195
+893 y Ft(RL_STATE_ISEARCH)435 947 y Fu(Readline)g(is)f(p)q(erforming)g
+(an)f(incremen)o(tal)h(history)f(searc)o(h.)195 1030
+y Ft(RL_STATE_NSEARCH)435 1085 y Fu(Readline)i(is)f(p)q(erforming)g(a)f
+(non-incremen)o(tal)h(history)g(searc)o(h.)195 1168 y
+Ft(RL_STATE_SEARCH)435 1223 y Fu(Readline)c(is)f(searc)o(hing)g(bac)o
+(kw)o(ard)e(or)h(forw)o(ard)f(through)h(the)g(history)g(for)f(a)h
+(string.)195 1306 y Ft(RL_STATE_NUMERICARG)435 1360 y
+Fu(Readline)17 b(is)f(reading)g(a)f(n)o(umeric)h(argumen)o(t.)195
+1443 y Ft(RL_STATE_MACROINPUT)435 1498 y Fu(Readline)e(is)f(curren)o
+(tly)g(getting)f(its)g(input)h(from)e(a)h(previously-de\014ned)j(k)o
+(eyb)q(oard)435 1553 y(macro.)195 1636 y Ft(RL_STATE_MACRODEF)435
+1691 y Fu(Readline)i(is)f(curren)o(tly)g(reading)g(c)o(haracters)e
+(de\014ning)j(a)e(k)o(eyb)q(oard)g(macro.)195 1773 y
+Ft(RL_STATE_OVERWRITE)435 1828 y Fu(Readline)i(is)f(in)g(o)o(v)o
+(erwrite)f(mo)q(de.)195 1911 y Ft(RL_STATE_COMPLETING)435
+1966 y Fu(Readline)i(is)f(p)q(erforming)g(w)o(ord)e(completion.)195
+2049 y Ft(RL_STATE_SIGHANDLER)435 2104 y Fu(Readline)j(is)f(curren)o
+(tly)g(executing)g(the)f(readline)i(signal)f(handler.)195
+2187 y Ft(RL_STATE_UNDOING)435 2241 y Fu(Readline)h(is)f(p)q(erforming)
+g(an)f(undo.)195 2324 y Ft(RL_STATE_DONE)435 2379 y Fu(Readline)h(has)e
+(read)g(a)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e Ft(accept-line)f
+Fu(and)i(is)h(ab)q(out)f(to)435 2434 y(return)h(the)g(line)i(to)e(the)g
+(caller.)1773 2560 y(V)l(ariable)-1861 b Fi(int)20 b
+Fh(rl)p 215 2560 18 3 v 21 w(explicit)p 417 2560 V 24
+w(arg)195 2615 y Fu(Set)f(to)g(a)g(non-zero)h(v)m(alue)h(if)e(an)h
+(explicit)h(n)o(umeric)g(argumen)o(t)d(w)o(as)h(sp)q(eci\014ed)i(b)o(y)
+f(the)f(user.)195 2670 y(Only)d(v)m(alid)h(in)f(a)f(bindable)i(command)
+f(function.)p eop
+%%Page: 26 28
+26 27 bop 75 -58 a Fu(26)1299 b(GNU)15 b(Readline)i(Library)1773
+149 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 149
+18 3 v 21 w(n)n(umeric)p 437 149 V 20 w(arg)195 204 y
+Fu(Set)j(to)f(the)g(v)m(alue)i(of)f(an)o(y)f(n)o(umeric)h(argumen)o(t)f
+(explicitly)k(sp)q(eci\014ed)f(b)o(y)d(the)h(user)g(b)q(efore)195
+259 y(executing)14 b(the)f(curren)o(t)g(Readline)i(function.)20
+b(Only)14 b(v)m(alid)h(in)f(a)f(bindable)i(command)d(function.)1773
+368 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 368
+V 21 w(editing)p 407 368 V 22 w(mo)r(de)195 423 y Fu(Set)h(to)f(a)g(v)m
+(alue)i(denoting)f(Readline's)h(curren)o(t)f(editing)h(mo)q(de.)36
+b(A)20 b(v)m(alue)i(of)e Fk(emacs)p 1754 423 14 2 v 17
+w(mo)q(de)195 477 y Fu(means)15 b(Readline)j(is)d(curren)o(tly)h(in)g
+(emacs)f(mo)q(de;)g Fk(vi)p 1123 477 V 17 w(mo)q(de)j
+Fu(means)d(that)g(vi)h(mo)q(de)f(is)h(activ)o(e.)75 601
+y Fs(2.4)33 b(Readline)23 b(Con)n(v)n(enience)g(F)-6
+b(unctions)75 737 y Fj(2.4.1)30 b(Naming)20 b(a)g(F)-5
+b(unction)137 832 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 887 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 941 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
+1004 y Ft(Meta-Rubout:)46 b(backward-kill-word)137 1070
+y Fu(This)21 b(binds)g(the)f(k)o(eystrok)o(e)661 1068
+y Fn(h)p 673 1042 209 2 v 673 1070 a Fm(Meta-Rub)q(out)p
+673 1077 V 879 1068 a Fn(i)914 1070 y Fu(to)g(the)g(function)g
+Fl(descriptively)k Fu(named)c Ft(backward-)75 1124 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
+1179 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:)1762 1288 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1288 18 3 v 21 w(add)p 328
+1288 V 20 w(defun)i Fg(\()p Ft(const)14 b(char)h(*name,)f
+(rl_command_func_t)283 1343 y(*function,)f(int)i(key)p
+Fg(\))195 1397 y Fu(Add)j Fk(name)i Fu(to)d(the)h(list)h(of)e(named)h
+(functions.)28 b(Mak)o(e)17 b Fk(function)h Fu(b)q(e)g(the)g(function)h
+(that)d(gets)195 1452 y(called.)21 b(If)16 b Fk(k)o(ey)j
+Fu(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fk(function)i
+Fu(using)g Ft(rl_bind_key\(\))p Fu(.)137 1539 y(Using)g(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 1594
+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 1649 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
+1704 y(functions)f(describ)q(ed)h(b)q(elo)o(w.)75 1811
+y Fj(2.4.2)30 b(Selecting)20 b(a)h(Keymap)137 1906 y
+Fu(Key)16 b(bindings)i(tak)o(e)c(place)j(on)e(a)g Fk(k)o(eymap)p
+Fu(.)21 b(The)15 b(k)o(eymap)h(is)f(the)h(asso)q(ciation)g(b)q(et)o(w)o
+(een)g(the)f(k)o(eys)75 1960 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 2015 y(existing)i(k)o(eymaps,)
+f(and)g(tell)h(Readline)i(whic)o(h)e(k)o(eymap)f(to)f(use.)1762
+2124 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
+2124 V 21 w(mak)n(e)p 445 2124 V 20 w(bare)p 575 2124
+V 20 w(k)n(eymap)j Fg(\()p Ft(void)p Fg(\))195 2179 y
+Fu(Returns)13 b(a)e(new,)i(empt)o(y)f(k)o(eymap.)18 b(The)13
+b(space)f(for)f(the)i(k)o(eymap)e(is)i(allo)q(cated)g(with)f
+Ft(malloc\(\))p Fu(;)195 2233 y(the)j(caller)i(should)f(free)f(it)h(b)o
+(y)f(calling)i Ft(rl_discard_keymap\(\))12 b Fu(when)k(done.)1762
+2342 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
+2342 V 21 w(cop)n(y)p 428 2342 V 21 w(k)n(eymap)j Fg(\()p
+Ft(Keymap)14 b(map)p Fg(\))195 2397 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 Fk(map)p Fu(.)1762
+2506 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
+2506 V 21 w(mak)n(e)p 445 2506 V 20 w(k)n(eymap)j Fg(\()p
+Ft(void)p Fg(\))195 2560 y Fu(Return)17 b(a)e(new)i(k)o(eymap)e(with)i
+(the)f(prin)o(ting)h(c)o(haracters)e(b)q(ound)i(to)e(rl)p
+1457 2560 14 2 v 17 w(insert,)h(the)g(lo)o(w)o(ercase)195
+2615 y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)f(equiv)m
+(alen)o(ts,)j(and)d(the)h(Meta)e(digits)i(b)q(ound)g(to)f(pro)q(duce)
+195 2670 y(n)o(umeric)16 b(argumen)o(ts.)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)1762 149 y(F)l(unction)-1861 b Fi(void)20
+b Fh(rl)p 241 149 18 3 v 21 w(discard)p 441 149 V 21
+w(k)n(eymap)i Fg(\()p Ft(Keymap)14 b(keymap)p Fg(\))195
+204 y Fu(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f
+Fk(k)o(eymap)p Fu(.)137 293 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 348 y(k)o(eymap)15 b(is)h(activ)o(e.)1762
+459 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
+459 V 21 w(get)p 391 459 V 21 w(k)n(eymap)i Fg(\()p Ft(void)p
+Fg(\))195 514 y Fu(Returns)16 b(the)f(curren)o(tly)h(activ)o(e)f(k)o
+(eymap.)1762 625 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p
+241 625 V 21 w(set)p 333 625 V 21 w(k)n(eymap)i Fg(\()p
+Ft(Keymap)14 b(keymap)p Fg(\))195 680 y Fu(Mak)o(es)g
+Fk(k)o(eymap)j Fu(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1762
+791 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
+791 V 21 w(get)p 391 791 V 21 w(k)n(eymap)p 605 791 V
+20 w(b)n(y)p 685 791 V 21 w(name)i Fg(\()p Ft(const)14
+b(char)g(*name)p Fg(\))195 846 y Fu(Return)j(the)g(k)o(eymap)f(matc)o
+(hing)h Fk(name)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
+(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 901 y(keymap)e
+Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g
+(page)f(4\).)1762 1012 y(F)l(unction)-1861 b Fi(char)20
+b(*)f Fh(rl)p 286 1012 V 21 w(get)p 384 1012 V 21 w(k)n(eymap)p
+598 1012 V 20 w(name)i Fg(\()p Ft(Keymap)14 b(keymap)p
+Fg(\))195 1067 y Fu(Return)j(the)g(name)g(matc)o(hing)f
+Fk(k)o(eymap)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
+(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 1122 y(keymap)e
+Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g
+(page)f(4\).)75 1230 y Fj(2.4.3)30 b(Binding)20 b(Keys)137
+1325 y Fu(Key)13 b(sequences)g(are)e(asso)q(ciate)h(with)h(functions)f
+(through)g(the)g(k)o(eymap.)19 b(Readline)14 b(has)e(sev)o(eral)g(in-)
+75 1380 y(ternal)j(k)o(eymaps:)k Ft(emacs_standard_keymap)p
+Fu(,)11 b Ft(emacs_meta_keymap)p Fu(,)h Ft(emacs_ctlx_keymap)p
+Fu(,)g Ft(vi_)75 1435 y(movement_keymap)p Fu(,)20 b(and)i
+Ft(vi_insertion_keymap)p Fu(.)35 b Ft(emacs_standard_keymap)18
+b Fu(is)k(the)f(default,)75 1490 y(and)15 b(the)h(examples)g(in)g(this)
+f(man)o(ual)h(assume)f(that.)137 1556 y(Since)h Ft(readline\(\))c
+Fu(installs)j(a)f(set)f(of)h(default)g(k)o(ey)g(bindings)h(the)f
+(\014rst)g(time)g(it)g(is)g(called,)i(there)d(is)75 1611
+y(alw)o(a)o(ys)j(the)g(danger)g(that)g(a)g(custom)g(binding)i
+(installed)g(b)q(efore)f(the)f(\014rst)g(call)i(to)d
+Ft(readline\(\))g Fu(will)75 1666 y(b)q(e)f(o)o(v)o(erridden.)19
+b(An)13 b(alternate)g(mec)o(hanism)h(is)f(to)f(install)i(custom)f(k)o
+(ey)g(bindings)h(in)g(an)f(initialization)75 1720 y(function)19
+b(assigned)h(to)d(the)i Ft(rl_startup_hook)e Fu(v)m(ariable)j(\(see)e
+(Section)h(2.3)f([Readline)j(V)l(ariables],)75 1775 y(page)15
+b(22\).)137 1841 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1762
+1953 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1953
+V 21 w(bind)p 347 1953 V 21 w(k)n(ey)k Fg(\()p Ft(int)14
+b(key,)h(rl_command_func_t)d(*function)p Fg(\))195 2007
+y Fu(Binds)18 b Fk(k)o(ey)i Fu(to)c Fk(function)h Fu(in)h(the)e(curren)
+o(tly)h(activ)o(e)g(k)o(eymap.)23 b(Returns)17 b(non-zero)g(in)g(the)g
+(case)195 2062 y(of)e(an)g(in)o(v)m(alid)i Fk(k)o(ey)p
+Fu(.)1762 2173 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 2173 V 21 w(bind)p 347 2173 V 21 w(k)n(ey)p 452 2173
+V 21 w(in)p 520 2173 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h
+(rl_command_func_t)e(*function,)283 2228 y(Keymap)h(map)p
+Fg(\))195 2283 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c Fk(function)h
+Fu(in)g Fk(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 Fk(k)o(ey)p Fu(.)1762 2394 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 2394 V 21 w(un)n(bind)p 409
+2394 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 b(key)p Fg(\))195
+2449 y Fu(Bind)19 b Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i(function)f(in)g
+(the)f(curren)o(tly)g(activ)o(e)h(k)o(eymap.)28 b(Returns)19
+b(non-zero)f(in)195 2504 y(case)d(of)g(error.)1762 2615
+y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2615 V
+21 w(un)n(bind)p 409 2615 V 21 w(k)n(ey)p 514 2615 V
+21 w(in)p 582 2615 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Keymap)f
+(map)p Fg(\))195 2670 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i
+(function)f(in)g Fk(map)p Fu(.)k(Returns)15 b(non-zero)h(in)g(case)f
+(of)g(error.)p eop
+%%Page: 28 30
+28 29 bop 75 -58 a Fu(28)1299 b(GNU)15 b(Readline)i(Library)1762
+149 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 149
+18 3 v 21 w(un)n(bind)p 409 149 V 21 w(function)p 635
+149 V 21 w(in)p 703 149 V 21 w(map)h Fg(\()p Ft(rl_command_func_t)13
+b(*function,)283 204 y(Keymap)h(map)p Fg(\))195 259 y
+Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(execute)i Fk(function)g
+Fu(in)g Fk(map)p Fu(.)1762 377 y(F)l(unction)-1861 b
+Fi(int)20 b Fh(rl)p 215 377 V 21 w(un)n(bind)p 409 377
+V 21 w(command)p 674 377 V 17 w(in)p 738 377 V 22 w(map)h
+Fg(\()p Ft(const)14 b(char)h(*command,)f(Keymap)283 432
+y(map)p Fg(\))195 486 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(are)h(b)q
+(ound)h(to)f Fk(command)i Fu(in)f Fk(map)p Fu(.)1762
+604 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 604
+V 21 w(set)p 307 604 V 20 w(k)n(ey)k Fg(\()p Ft(const)14
+b(char)h(*keyseq,)f(rl_command_func_t)f(*function,)283
+659 y(Keymap)h(map)p Fg(\))195 714 y Fu(Bind)g(the)e(k)o(ey)h(sequence)
+h(represen)o(ted)f(b)o(y)f(the)h(string)f Fk(k)o(eyseq)i
+Fu(to)e(the)g(function)i Fk(function)p Fu(.)19 b(This)195
+768 y(mak)o(es)13 b(new)g(k)o(eymaps)g(as)f(necessary)l(.)20
+b(The)13 b(initial)j(k)o(eymap)c(in)i(whic)o(h)g(to)f(do)g(bindings)i
+(is)f Fk(map)p Fu(.)1762 886 y(F)l(unction)-1861 b Fi(int)20
+b Fh(rl)p 215 886 V 21 w(generic)p 413 886 V 21 w(bind)j
+Fg(\()p Ft(int)15 b(type,)f(const)h(char)f(*keyseq,)g(char)h(*data,)283
+941 y(Keymap)f(map)p Fg(\))195 996 y Fu(Bind)h(the)e(k)o(ey)h(sequence)
+h(represen)o(ted)e(b)o(y)h(the)g(string)f Fk(k)o(eyseq)i
+Fu(to)d(the)i(arbitrary)f(p)q(oin)o(ter)h Fk(data)p Fu(.)195
+1051 y Fk(t)o(yp)q(e)j Fu(sa)o(ys)c(what)h(kind)h(of)f(data)g(is)g(p)q
+(oin)o(ted)i(to)d(b)o(y)h Fk(data)p Fu(;)g(this)h(can)f(b)q(e)h(a)f
+(function)h(\()p Ft(ISFUNC)p Fu(\),)d(a)195 1105 y(macro)i(\()p
+Ft(ISMACR)p Fu(\),)f(or)h(a)h(k)o(eymap)f(\()p Ft(ISKMAP)p
+Fu(\).)k(This)e(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.)20
+b(The)195 1160 y(initial)d(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g
+(bindings)i(is)f Fk(map)p Fu(.)1762 1278 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1278 V 21 w(parse)p 369 1278
+V 19 w(and)p 480 1278 V 21 w(bind)j Fg(\()p Ft(char)14
+b(*line)p Fg(\))195 1333 y Fu(P)o(arse)g Fk(line)19 b
+Fu(as)14 b(if)h(it)g(had)g(b)q(een)h(read)f(from)f(the)g
+Ft(inputrc)g Fu(\014le)i(and)f(p)q(erform)f(an)o(y)h(k)o(ey)f(bindings)
+195 1387 y(and)h(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(4\).)1762
+1505 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1505
+V 21 w(read)p 346 1505 V 20 w(init)p 450 1505 V 22 w(\014le)k
+Fg(\()p Ft(const)14 b(char)h(*filename)p Fg(\))195 1560
+y Fu(Read)h(k)o(eybindings)i(and)e(v)m(ariable)h(assignmen)o(ts)f(from)
+f Fk(\014lename)k Fu(\(see)d(Section)g(1.3)f([Readline)195
+1615 y(Init)h(File],)g(page)f(4\).)75 1727 y Fj(2.4.4)30
+b(Asso)r(ciating)20 b(F)-5 b(unction)20 b(Names)h(and)f(Bindings)137
+1824 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 1879 y(in)o(v)o(ok)o(ed)j(b)o(y)g(a)f(particular)h(k)o
+(ey)g(sequence.)21 b(Y)l(ou)14 b(ma)o(y)f(also)g(asso)q(ciate)h(a)g
+(new)g(function)g(name)g(with)g(an)75 1933 y(arbitrary)h(function.)1762
+2051 y(F)l(unction)-1861 b Fi(rl_command_func_t)22 b(*)d
+Fh(rl)p 626 2051 V 21 w(named)p 814 2051 V 19 w(function)k
+Fg(\()p Ft(const)14 b(char)h(*name)p Fg(\))195 2106 y
+Fu(Return)h(the)f(function)h(with)g(name)f Fk(name)p
+Fu(.)1762 2224 y(F)l(unction)-1861 b Fi(rl_command_func_t)22
+b(*)d Fh(rl)p 626 2224 V 21 w(function)p 852 2224 V 21
+w(of)p 920 2224 V 20 w(k)n(eyseq)24 b Fg(\()p Ft(const)14
+b(char)283 2278 y(*keyseq,)g(Keymap)g(map,)h(int)f(*type)p
+Fg(\))195 2333 y Fu(Return)j(the)f(function)h(in)o(v)o(ok)o(ed)g(b)o(y)
+f Fk(k)o(eyseq)h Fu(in)g(k)o(eymap)f Fk(map)p Fu(.)23
+b(If)17 b Fk(map)g Fu(is)g Ft(NULL)p Fu(,)f(the)g(curren)o(t)195
+2388 y(k)o(eymap)i(is)h(used.)31 b(If)18 b Fk(t)o(yp)q(e)j
+Fu(is)e(not)g Ft(NULL)p Fu(,)f(the)g(t)o(yp)q(e)h(of)f(the)h(ob)s(ject)
+f(is)h(returned)g(in)g(the)f Ft(int)195 2443 y Fu(v)m(ariable)f(it)e(p)
+q(oin)o(ts)h(to)e(\(one)h(of)g Ft(ISFUNC)p Fu(,)f Ft(ISKMAP)p
+Fu(,)g(or)h Ft(ISMACR)p Fu(\).)1762 2560 y(F)l(unction)-1861
+b Fi(char)20 b(**)f Fh(rl)p 312 2560 V 21 w(in)n(v)n(oking)p
+541 2560 V 23 w(k)n(eyseqs)k Fg(\()p Ft(rl_command_func_t)13
+b(*function)p Fg(\))195 2615 y Fu(Return)j(an)g(arra)o(y)e(of)h
+(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
+o(v)o(ok)o(e)h Fk(function)g Fu(in)195 2670 y(the)f(curren)o(t)g(k)o
+(eymap.)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)1762 149 y(F)l(unction)-1861 b Fi(char)20
+b(**)f Fh(rl)p 312 149 18 3 v 21 w(in)n(v)n(oking)p 541
+149 V 23 w(k)n(eyseqs)p 750 149 V 21 w(in)p 818 149 V
+22 w(map)i Fg(\()p Ft(rl_command_func_t)283 204 y(*function,)13
+b(Keymap)i(map)p Fg(\))195 259 y Fu(Return)h(an)g(arra)o(y)e(of)h
+(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
+o(v)o(ok)o(e)h Fk(function)g Fu(in)195 314 y(the)f(k)o(eymap)g
+Fk(map)p Fu(.)1762 426 y(F)l(unction)-1861 b Fi(void)20
+b Fh(rl)p 241 426 V 21 w(function)p 467 426 V 21 w(dump)r(er)g
+Fg(\()p Ft(int)15 b(readable)p Fg(\))195 481 y Fu(Prin)o(t)g(the)f
+(readline)j(function)e(names)g(and)f(the)h(k)o(ey)g(sequences)g(curren)
+o(tly)g(b)q(ound)h(to)e(them)h(to)195 536 y Ft(rl_outstream)p
+Fu(.)j(If)c Fk(readable)j Fu(is)d(non-zero,)g(the)g(list)g(is)h
+(formatted)d(in)j(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)195
+590 y(b)q(e)i(made)f(part)g(of)f(an)i Ft(inputrc)e Fu(\014le)i(and)f
+(re-read.)1762 702 y(F)l(unction)-1861 b Fi(void)20 b
+Fh(rl)p 241 702 V 21 w(list)p 337 702 V 22 w(funmap)p
+550 702 V 18 w(names)h Fg(\()p Ft(void)p Fg(\))195 757
+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(.)1762 869 y(F)l(unction)-1861
+b Fi(const)20 b(char)g(**)f Fh(rl)p 462 869 V 21 w(funmap)p
+674 869 V 18 w(names)i Fg(\()p Ft(void)p Fg(\))195 924
+y Fu(Return)14 b(a)e(NULL)i(terminated)g(arra)o(y)d(of)i(kno)o(wn)g
+(function)g(names.)20 b(The)13 b(arra)o(y)f(is)h(sorted.)19
+b(The)195 979 y(arra)o(y)11 b(itself)j(is)f(allo)q(cated,)h(but)f(not)f
+(the)h(strings)f(inside.)21 b(Y)l(ou)13 b(should)h Ft(free\(\))d
+Fu(the)i(arra)o(y)e(when)195 1034 y(y)o(ou)k(are)g(done,)g(but)g(not)g
+(the)g(p)q(oin)o(ters.)1762 1146 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1146 V 21 w(add)p 328 1146
+V 20 w(funmap)p 539 1146 V 18 w(en)n(try)j Fg(\()p Ft(const)14
+b(char)h(*name,)f(rl_command_func_t)283 1201 y(*function)p
+Fg(\))195 1255 y Fu(Add)j Fk(name)i Fu(to)d(the)g(list)h(of)f(bindable)
+j(Readline)g(command)d(names,)g(and)h(mak)o(e)f Fk(function)h
+Fu(the)195 1310 y(function)f(to)f(b)q(e)g(called)i(when)f
+Fk(name)i Fu(is)d(in)o(v)o(ok)o(ed.)75 1419 y Fj(2.4.5)30
+b(Allo)n(wing)21 b(Undoing)137 1515 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 1569 y(useful.)21
+b(It)15 b(is)h(certainly)g(easy)f(to)g(try)f(something)i(if)f(y)o(ou)g
+(kno)o(w)g(y)o(ou)g(can)g(undo)h(it.)137 1636 y(If)21
+b(y)o(our)f(function)h(simply)h(inserts)f(text)e(once,)j(or)e(deletes)h
+(text)f(once,)i(and)f(uses)f Ft(rl_insert_)75 1690 y(text\(\))13
+b Fu(or)h Ft(rl_delete_text\(\))d Fu(to)j(do)f(it,)h(then)h(undoing)g
+(is)f(already)g(done)h(for)e(y)o(ou)h(automatically)l(.)137
+1757 y(If)d(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o(ultiple)i
+(deletions,)g(or)e(an)o(y)g(com)o(bination)h(of)f(these)g(op)q
+(erations,)75 1812 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 1866 y(group\(\))14 b Fu(and)i Ft
+(rl_end_undo_group\(\))p Fu(.)137 1933 y(The)g(t)o(yp)q(es)f(of)g(ev)o
+(en)o(ts)g(that)f(can)h(b)q(e)h(undone)g(are:)195 1996
+y Ft(enum)23 b(undo_code)g({)h(UNDO_DELETE,)e(UNDO_INSERT,)g
+(UNDO_BEGIN,)g(UNDO_END)h(};)137 2062 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 2117 y(some)e(text.)19
+b(That)14 b(is,)g(the)g(undo)g(co)q(de)g(tells)h(what)e(to)h(undo,)g
+(not)f(ho)o(w)g(to)g(undo)i(it.)k Ft(UNDO_BEGIN)13 b
+Fu(and)75 2172 y Ft(UNDO_END)h Fu(are)h(tags)f(added)i(b)o(y)f
+Ft(rl_begin_undo_group\(\))d Fu(and)k Ft(rl_end_undo_group\(\))p
+Fu(.)1762 2284 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 2284 V 21 w(b)r(egin)p 372 2284 V 20 w(undo)p 517
+2284 V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 2339
+y Fu(Begins)16 b(sa)o(ving)g(undo)g(information)f(in)i(a)e(group)g
+(construct.)20 b(The)c(undo)g(information)g(usually)195
+2393 y(comes)21 b(from)f(calls)i(to)e Ft(rl_insert_text\(\))e
+Fu(and)j Ft(rl_delete_text\(\))p Fu(,)f(but)h(could)g(b)q(e)h(the)195
+2448 y(result)16 b(of)e(calls)j(to)d Ft(rl_add_undo\(\))p
+Fu(.)1762 2560 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 2560 V 21 w(end)p 326 2560 V 20 w(undo)p 471 2560
+V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 2615 y Fu(Closes)15
+b(the)f(curren)o(t)h(undo)g(group)f(started)g(with)g
+Ft(rl_begin_undo_group)f(\(\))p Fu(.)19 b(There)c(should)195
+2670 y(b)q(e)h(one)f(call)i(to)d Ft(rl_end_undo_group\(\))f
+Fu(for)h(eac)o(h)h(call)i(to)d Ft(rl_begin_undo_group\(\))p
+Fu(.)p eop
+%%Page: 30 32
+30 31 bop 75 -58 a Fu(30)1299 b(GNU)15 b(Readline)i(Library)1762
+149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149
+18 3 v 21 w(add)p 354 149 V 20 w(undo)i Fg(\()p Ft(enum)14
+b(undo_code)g(what,)g(int)h(start,)g(int)f(end,)h(char)283
+204 y(*text)p Fg(\))195 259 y Fu(Remem)o(b)q(er)j(ho)o(w)e(to)h(undo)g
+(an)g(ev)o(en)o(t)g(\(according)g(to)g Fk(what)q Fu(\).)24
+b(The)17 b(a\013ected)g(text)f(runs)i(from)195 314 y
+Fk(start)d Fu(to)g Fk(end)p Fu(,)g(and)g(encompasses)h
+Fk(text)p Fu(.)1762 428 y(F)l(unction)-1861 b Fi(void)20
+b Fh(rl)p 241 428 V 21 w(free)p 356 428 V 20 w(undo)p
+501 428 V 20 w(list)k Fg(\()p Ft(void)p Fg(\))195 483
+y Fu(F)l(ree)15 b(the)h(existing)g(undo)f(list.)1762
+598 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 598
+V 21 w(do)p 297 598 V 20 w(undo)i Fg(\()p Ft(void)p Fg(\))195
+652 y Fu(Undo)12 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h(list.)19
+b(Returns)12 b Ft(0)g Fu(if)g(there)f(w)o(as)g(nothing)h(to)e(undo,)j
+(non-zero)195 707 y(if)j(something)f(w)o(as)f(undone.)137
+798 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 853 y(c)o(hange)j(its)h(case\),)g(call)g Ft(rl_modifying\(\))e
+Fu(once,)i(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)f(text.)32
+b(Y)l(ou)20 b(m)o(ust)75 907 y(supply)c(the)g(indices)h(of)e(the)g
+(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q(dify)l(.)1762
+1022 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1022
+V 21 w(mo)r(difying)h Fg(\()p Ft(int)15 b(start,)f(int)h(end)p
+Fg(\))195 1077 y Fu(T)l(ell)22 b(Readline)g(to)d(sa)o(v)o(e)h(the)g
+(text)g(b)q(et)o(w)o(een)g Fk(start)g Fu(and)g Fk(end)j
+Fu(as)c(a)h(single)h(undo)g(unit.)35 b(It)20 b(is)195
+1131 y(assumed)15 b(that)g(y)o(ou)g(will)i(subsequen)o(tly)f(mo)q(dify)
+g(that)e(text.)75 1242 y Fj(2.4.6)30 b(Redispla)n(y)1762
+1385 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241
+1385 V 21 w(redispla)n(y)k Fg(\()p Ft(void)p Fg(\))195
+1440 y Fu(Change)19 b(what's)f(displa)o(y)o(ed)i(on)f(the)g(screen)g
+(to)f(re\015ect)i(the)f(curren)o(t)f(con)o(ten)o(ts)h(of)f
+Ft(rl_line_)195 1495 y(buffer)p Fu(.)1762 1609 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1609 V 21 w(forced)p 390 1609
+V 20 w(up)r(date)p 584 1609 V 20 w(displa)n(y)k Fg(\()p
+Ft(void)p Fg(\))195 1664 y Fu(F)l(orce)c(the)g(line)h(to)e(b)q(e)i(up)q
+(dated)f(and)g(redispla)o(y)o(ed,)i(whether)e(or)g(not)f(Readline)j
+(thinks)f(the)195 1719 y(screen)16 b(displa)o(y)g(is)g(correct.)1762
+1833 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1833
+V 21 w(on)p 297 1833 V 20 w(new)p 416 1833 V 21 w(line)k
+Fg(\()p Ft(void)p Fg(\))195 1888 y Fu(T)l(ell)16 b(the)f(up)q(date)h
+(functions)g(that)e(w)o(e)g(ha)o(v)o(e)h(mo)o(v)o(ed)f(on)o(to)g(a)h
+(new)g(\(empt)o(y\))f(line,)i(usually)h(after)195 1943
+y(ouputting)f(a)e(newline.)1762 2058 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 2058 V 21 w(on)p 297 2058 V
+20 w(new)p 416 2058 V 21 w(line)p 525 2058 V 22 w(with)p
+657 2058 V 22 w(prompt)h Fg(\()p Ft(void)p Fg(\))195
+2112 y Fu(T)l(ell)14 b(the)e(up)q(date)h(functions)g(that)f(w)o(e)g(ha)
+o(v)o(e)g(mo)o(v)o(ed)f(on)o(to)h(a)g(new)g(line,)i(with)f
+Fk(rl)p 1556 2112 14 2 v 17 w(prompt)g Fu(already)195
+2167 y(displa)o(y)o(ed.)21 b(This)15 b(could)g(b)q(e)g(used)g(b)o(y)f
+(applications)i(that)e(w)o(an)o(t)f(to)h(output)g(the)g(prompt)g
+(string)195 2222 y(themselv)o(es,)g(but)g(still)h(need)g(Readline)h(to)
+d(kno)o(w)g(the)h(prompt)f(string)h(length)g(for)f(redispla)o(y)l(.)21
+b(It)195 2277 y(should)16 b(b)q(e)g(used)g(after)e(setting)i
+Fk(rl)p 795 2277 V 16 w(already)p 956 2277 V 17 w(prompted)p
+Fu(.)1762 2391 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 2391 18 3 v 21 w(reset)p 357 2391 V 20 w(line)p 465
+2391 V 23 w(state)j Fg(\()p Ft(void)p Fg(\))195 2446
+y Fu(Reset)18 b(the)f(displa)o(y)i(state)d(to)h(a)g(clean)h(state)f
+(and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)195
+2501 y(new)e(line.)1762 2615 y(F)l(unction)-1861 b Fi(int)20
+b Fh(rl)p 215 2615 V 21 w(crlf)j Fg(\()p Ft(void)p Fg(\))195
+2670 y Fu(Mo)o(v)o(e)14 b(the)h(cursor)g(to)g(the)g(start)f(of)h(the)g
+(next)g(screen)h(line.)p eop
+%%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)1762 149 y(F)l(unction)-1861 b Fi(int)20
+b Fh(rl)p 215 149 18 3 v 21 w(message)g Fg(\()p Ft(const)14
+b(char)h(*,)g(...)p Fg(\))195 204 y Fu(The)c(argumen)o(ts)e(are)h(a)g
+(format)f(string)h(as)g(w)o(ould)h(b)q(e)g(supplied)i(to)c
+Ft(printf)p Fu(,)h(p)q(ossibly)i(con)o(taining)195 259
+y(con)o(v)o(ersion)22 b(sp)q(eci\014cations)i(suc)o(h)f(as)e(`)p
+Ft(\045d)p Fu(',)i(and)f(an)o(y)g(additional)h(argumen)o(ts)e
+(necessary)i(to)195 314 y(satisfy)d(the)h(con)o(v)o(ersion)g(sp)q
+(eci\014cations.)38 b(The)21 b(resulting)h(string)e(is)i(displa)o(y)o
+(ed)g(in)f(the)g Fk(ec)o(ho)195 369 y(area)p Fu(.)e(The)d(ec)o(ho)f
+(area)g(is)g(also)g(used)h(to)f(displa)o(y)h(n)o(umeric)g(argumen)o(ts)
+f(and)g(searc)o(h)g(strings.)1762 518 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 518 V 21 w(clear)p 354 518
+V 21 w(message)h Fg(\()p Ft(void)p Fg(\))195 573 y Fu(Clear)15
+b(the)h(message)e(in)i(the)g(ec)o(ho)f(area.)1762 723
+y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 723 V
+21 w(sa)n(v)n(e)p 365 723 V 21 w(prompt)h Fg(\()p Ft(void)p
+Fg(\))195 778 y Fu(Sa)o(v)o(e)g(the)h(lo)q(cal)g(Readline)i(prompt)d
+(displa)o(y)i(state)e(in)h(preparation)f(for)g(displa)o(ying)j(a)d(new)
+195 833 y(message)15 b(in)h(the)f(message)g(area)f(with)i
+Ft(rl_message\(\))p Fu(.)1762 982 y(F)l(unction)-1861
+b Fi(void)20 b Fh(rl)p 241 982 V 21 w(restore)p 436 982
+V 20 w(prompt)g Fg(\()p Ft(void)p Fg(\))195 1037 y Fu(Restore)h(the)h
+(lo)q(cal)g(Readline)i(prompt)d(displa)o(y)h(state)f(sa)o(v)o(ed)g(b)o
+(y)g(the)g(most)g(recen)o(t)g(call)i(to)195 1092 y Ft(rl_save_prompt)p
+Fu(.)1762 1242 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 1242 V 21 w(expand)p 416 1242 V 20 w(prompt)h Fg(\()p
+Ft(char)14 b(*prompt)p Fg(\))195 1296 y Fu(Expand)22
+b(an)o(y)f(sp)q(ecial)i(c)o(haracter)e(sequences)h(in)g
+Fk(prompt)g Fu(and)g(set)f(up)h(the)f(lo)q(cal)i(Readline)195
+1351 y(prompt)17 b(redispla)o(y)i(v)m(ariables.)30 b(This)18
+b(function)h(is)f(called)i(b)o(y)e Ft(readline\(\))p
+Fu(.)26 b(It)18 b(ma)o(y)f(also)h(b)q(e)195 1406 y(called)12
+b(to)e(expand)h(the)g(primary)g(prompt)f(if)h(the)f Ft
+(rl_on_new_line_with_prompt\(\))d Fu(function)195 1461
+y(or)12 b Ft(rl_already_prompted)e Fu(v)m(ariable)k(is)g(used.)19
+b(It)13 b(returns)g(the)f(n)o(um)o(b)q(er)i(of)e(visible)j(c)o
+(haracters)195 1516 y(on)g(the)g(last)h(line)g(of)f(the)g(\(p)q
+(ossibly)i(m)o(ulti-line\))g(prompt.)75 1649 y Fj(2.4.7)30
+b(Mo)r(difying)20 b(T)-5 b(ext)1762 1828 y Fu(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1828 V 21 w(insert)p 378 1828
+V 21 w(text)k Fg(\()p Ft(const)14 b(char)g(*text)p Fg(\))195
+1883 y Fu(Insert)h Fk(text)h Fu(in)o(to)f(the)h(line)g(at)f(the)g
+(curren)o(t)g(cursor)g(p)q(osition.)1762 2033 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 2033 V 21 w(delete)p 383 2033
+V 22 w(text)k Fg(\()p Ft(int)14 b(start,)h(int)f(end)p
+Fg(\))195 2088 y Fu(Delete)i(the)f(text)g(b)q(et)o(w)o(een)g
+Fk(start)g Fu(and)h Fk(end)h Fu(in)f(the)g(curren)o(t)f(line.)1762
+2237 y(F)l(unction)-1861 b Fi(char)20 b(*)f Fh(rl)p 286
+2237 V 21 w(cop)n(y)p 421 2237 V 21 w(text)24 b Fg(\()p
+Ft(int)14 b(start,)h(int)g(end)p Fg(\))195 2292 y Fu(Return)h(a)f(cop)o
+(y)g(of)g(the)g(text)f(b)q(et)o(w)o(een)i Fk(start)f
+Fu(and)g Fk(end)j Fu(in)e(the)f(curren)o(t)g(line.)1762
+2442 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2442
+V 21 w(kill)p 311 2442 V 23 w(text)k Fg(\()p Ft(int)14
+b(start,)h(int)g(end)p Fg(\))195 2497 y Fu(Cop)o(y)i(the)g(text)f(b)q
+(et)o(w)o(een)i Fk(start)f Fu(and)g Fk(end)i Fu(in)f(the)f(curren)o(t)g
+(line)i(to)e(the)g(kill)i(ring,)e(app)q(ending)195 2552
+y(or)f(prep)q(ending)k(to)c(the)h(last)g(kill)i(if)e(the)g(last)g
+(command)g(w)o(as)f(a)h(kill)i(command.)25 b(The)17 b(text)f(is)195
+2606 y(deleted.)26 b(If)17 b Fk(start)g Fu(is)g(less)g(than)g
+Fk(end)p Fu(,)g(the)g(text)g(is)g(app)q(ended,)h(otherwise)f(prep)q
+(ended.)27 b(If)17 b(the)195 2661 y(last)e(command)g(w)o(as)g(not)f(a)h
+(kill,)i(a)e(new)g(kill)i(ring)f(slot)f(is)h(used.)p
+eop
+%%Page: 32 34
+32 33 bop 75 -58 a Fu(32)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fj(2.4.8)30 b(Character)21 b(Input)1762 305 y Fu(F)l(unction)
+-1861 b Fi(int)20 b Fh(rl)p 215 305 18 3 v 21 w(read)p
+346 305 V 20 w(k)n(ey)k Fg(\()p Ft(void)p Fg(\))195 360
+y Fu(Return)15 b(the)g(next)g(c)o(haracter)f(a)o(v)m(ailable)i(from)e
+(Readline's)j(curren)o(t)e(input)g(stream.)k(This)d(han-)195
+415 y(dles)f(input)g(inserted)f(in)o(to)g(the)g(input)h(stream)e(via)h
+Fk(rl)p 1117 415 14 2 v 17 w(p)q(ending)p 1290 415 V
+18 w(input)i Fu(\(see)e(Section)h(2.3)e([Read-)195 469
+y(line)h(V)l(ariables],)f(page)f(22\))g(and)g Ft(rl_stuff_char\(\))p
+Fu(,)f(macros,)g(and)i(c)o(haracters)e(read)h(from)g(the)195
+524 y(k)o(eyb)q(oard.)1762 651 y(F)l(unction)-1861 b
+Fi(int)20 b Fh(rl)p 215 651 18 3 v 21 w(getc)j Fg(\()p
+Ft(FILE)14 b(*stream)p Fg(\))195 705 y Fu(Return)d(the)g(next)g(c)o
+(haracter)f(a)o(v)m(ailable)i(from)e Fk(stream)p Fu(,)g(whic)o(h)i(is)f
+(assumed)f(to)g(b)q(e)i(the)e(k)o(eyb)q(oard.)1762 832
+y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 832 V 21
+w(stu\013)p 346 832 V 20 w(c)n(har)j Fg(\()p Ft(int)15
+b(c)p Fg(\))195 887 y Fu(Insert)i Fk(c)i Fu(in)o(to)d(the)h(Readline)i
+(input)e(stream.)23 b(It)16 b(will)i(b)q(e)f Ft(")p Fu(read)p
+Ft(")g Fu(b)q(efore)f(Readline)j(attempts)195 942 y(to)c(read)g(c)o
+(haracters)f(from)h(the)g(terminal)h(with)f Ft(rl_read_key\(\))p
+Fu(.)1762 1068 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 1068 V 21 w(execute)p 423 1068 V 22 w(next)j Fg(\()p
+Ft(int)15 b(c)p Fg(\))195 1123 y Fu(Mak)o(e)i Fk(c)k
+Fu(b)q(e)d(the)g(next)g(command)g(to)f(b)q(e)i(executed)f(when)h
+Ft(rl_read_key\(\))d Fu(is)i(called.)29 b(This)195 1178
+y(sets)15 b Fk(rl)p 317 1178 14 2 v 17 w(p)q(ending)p
+490 1178 V 18 w(input)p Fu(.)1762 1304 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1304 18 3 v 21 w(clear)p 354
+1304 V 21 w(p)r(ending)p 575 1304 V 21 w(input)j Fg(\()p
+Ft(void)p Fg(\))195 1359 y Fu(Unet)g Fk(rl)p 348 1359
+14 2 v 17 w(p)q(ending)p 521 1359 V 18 w(input)p Fu(,)j(e\013ectiv)o
+(ely)e(negating)f(the)h(e\013ect)e(of)h(an)o(y)g(previous)h(call)g(to)e
+Ft(rl_)195 1414 y(execute_next\(\))p Fu(.)29 b(This)19
+b(w)o(orks)f(only)h(if)h(the)e(p)q(ending)j(input)f(has)f(not)f
+(already)h(b)q(een)h(read)195 1469 y(with)c Ft(rl_read_key\(\))p
+Fu(.)75 1587 y Fj(2.4.9)30 b(T)-5 b(erminal)20 b(Managemen)n(t)1762
+1743 y Fu(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
+1743 18 3 v 21 w(prep)p 350 1743 V 20 w(terminal)j Fg(\()p
+Ft(int)14 b(meta_flag)p Fg(\))195 1797 y Fu(Mo)q(dify)22
+b(the)f(terminal)h(settings)f(for)g(Readline's)i(use,)g(so)d
+Ft(readline\(\))g Fu(can)i(read)f(a)g(single)195 1852
+y(c)o(haracter)15 b(at)g(a)g(time)i(from)d(the)i(k)o(eyb)q(oard.)22
+b(The)16 b Fk(meta)p 1192 1852 14 2 v 15 w(\015ag)k Fu(argumen)o(t)15
+b(should)h(b)q(e)h(non-zero)195 1907 y(if)f(Readline)h(should)f(read)f
+(eigh)o(t-bit)i(input.)1762 2033 y(F)l(unction)-1861
+b Fi(in)19 b Fh(rl)p 188 2033 18 3 v 22 w(deprep)p 382
+2033 V 20 w(terminal)k Fg(\()p Ft(void)p Fg(\))195 2088
+y Fu(Undo)16 b(the)g(e\013ects)f(of)h Ft(rl_prep_terminal\(\))p
+Fu(,)d(lea)o(ving)k(the)e(terminal)i(in)g(the)e(state)g(in)i(whic)o(h)
+195 2143 y(it)e(w)o(as)g(b)q(efore)g(the)h(most)e(recen)o(t)h(call)i
+(to)d Ft(rl_prep_terminal\(\))p Fu(.)1762 2270 y(F)l(unction)-1861
+b Fi(void)20 b Fh(rl)p 241 2270 V 21 w(tt)n(y)p 334 2270
+V 22 w(set)p 427 2270 V 20 w(default)p 620 2270 V 21
+w(bindings)k Fg(\()p Ft(Keymap)14 b(kmap)p Fg(\))195
+2324 y Fu(Read)19 b(the)g(op)q(erating)f(system's)g(terminal)h(editing)
+h(c)o(haracters)e(\(as)f(w)o(ould)i(b)q(e)g(displa)o(y)o(ed)h(b)o(y)195
+2379 y Ft(stty)15 b Fu(to)f(their)i(readline)h(equiv)m(alen)o(ts.)k
+(The)16 b(bindings)h(are)e(p)q(erformed)g(in)h Fk(kmap)p
+Fu(.)1762 2506 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 2506 V 21 w(reset)p 357 2506 V 20 w(terminal)j Fg(\()p
+Ft(const)15 b(char)f(*terminal_name)p Fg(\))195 2560
+y Fu(Reinitializ)q(e)h(Readline's)f(idea)f(of)f(the)g(terminal)h
+(settings)g(using)g Fk(terminal)p 1491 2560 14 2 v 17
+w(name)h Fu(as)e(the)h(termi-)195 2615 y(nal)i(t)o(yp)q(e)f(\(e.g.,)e
+Ft(vt100)p Fu(\).)19 b(If)14 b Fk(terminal)p 866 2615
+V 17 w(name)i Fu(is)f(NULL,)f(the)h(v)m(alue)g(of)e(the)h
+Ft(TERM)g Fu(en)o(vironmen)o(t)195 2670 y(v)m(ariable)j(is)e(used.)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)75 149 y Fj(2.4.10)29 b(Utilit)n(y)22
+b(F)-5 b(unctions)1762 296 y Fu(F)l(unction)-1861 b Fi(int)20
+b Fh(rl)p 215 296 18 3 v 21 w(extend)p 404 296 V 21 w(line)p
+513 296 V 22 w(bu\013er)j Fg(\()p Ft(int)15 b(len)p Fg(\))195
+351 y Fu(Ensure)g(that)g Ft(rl_line_buffer)e Fu(has)i(enough)g(space)h
+(to)e(hold)i Fk(len)g Fu(c)o(haracters,)e(p)q(ossibly)i(real-)195
+406 y(lo)q(cating)g(it)f(if)h(necessary)l(.)1762 523
+y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 523 V 21
+w(initiali)q(z)q(e)26 b Fg(\()p Ft(void)p Fg(\))195 578
+y Fu(Initialize)21 b(or)d(re-initialize)k(Readline's)e(in)o(ternal)g
+(state.)28 b(It's)18 b(not)g(strictly)h(necessary)g(to)f(call)195
+633 y(this;)d Ft(readline\(\))f Fu(calls)i(it)g(b)q(efore)f(reading)h
+(an)o(y)f(input.)1762 751 y(F)l(unction)-1861 b Fi(int)20
+b Fh(rl)p 215 751 V 21 w(ding)j Fg(\()p Ft(void)p Fg(\))195
+805 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(.)1762 923 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 923 V 21 w(alphab)r(etic)k
+Fg(\()p Ft(int)14 b(c)p Fg(\))195 978 y Fu(Return)i(1)f(if)g
+Fk(c)j Fu(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1762
+1096 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1096
+V 21 w(displa)n(y)p 435 1096 V 22 w(matc)n(h)p 611 1096
+V 20 w(list)25 b Fg(\()p Ft(char)14 b(**matches,)g(int)g(len,)h(int)g
+(max)p Fg(\))195 1150 y Fu(A)i(con)o(v)o(enience)i(function)f(for)f
+(displa)o(ying)i(a)e(list)h(of)e(strings)h(in)i(columnar)e(format)f(on)
+h(Read-)195 1205 y(line's)h(output)f(stream.)23 b Ft(matches)16
+b Fu(is)h(the)g(list)h(of)e(strings,)h(in)g(argv)f(format,)g(suc)o(h)h
+(as)f(a)h(list)g(of)195 1260 y(completion)c(matc)o(hes.)19
+b Ft(len)11 b Fu(is)i(the)f(n)o(um)o(b)q(er)h(of)e(strings)h(in)h
+Ft(matches)p Fu(,)f(and)g Ft(max)g Fu(is)g(the)h(length)f(of)195
+1315 y(the)h(longest)g(string)g(in)h Ft(matches)p Fu(.)19
+b(This)13 b(function)h(uses)f(the)h(setting)f(of)f Ft
+(print-completions-)195 1370 y(horizontally)k Fu(to)i(select)h(ho)o(w)e
+(the)i(matc)o(hes)e(are)h(displa)o(y)o(ed)h(\(see)g(Section)g(1.3.1)d
+([Readline)195 1424 y(Init)g(File)g(Syn)o(tax],)e(page)h(4\).)137
+1517 y(The)i(follo)o(wing)f(are)g(implemen)o(ted)i(as)e(macros,)f
+(de\014ned)i(in)g Ft(chardefs.h)p Fu(.)k(Applications)d(should)75
+1572 y(refrain)d(from)g(using)h(them.)1762 1689 y(F)l(unction)-1861
+b Fi(int)p 176 1689 V 40 w Fh(rl)p 235 1689 V 21 w(upp)r(ercase)p
+506 1689 V 20 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
+1744 y Fu(Return)i(1)f(if)g Fk(c)j Fu(is)e(an)f(upp)q(ercase)i(alphab)q
+(etic)f(c)o(haracter.)1762 1862 y(F)l(unction)-1861 b
+Fi(int)p 176 1862 V 40 w Fh(rl)p 235 1862 V 21 w(lo)n(w)n(ercase)p
+489 1862 V 23 w(p)22 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
+1917 y Fu(Return)h(1)f(if)g Fk(c)j Fu(is)e(a)f(lo)o(w)o(ercase)g
+(alphab)q(etic)i(c)o(haracter.)1762 2034 y(F)l(unction)-1861
+b Fi(int)p 176 2034 V 40 w Fh(rl)p 235 2034 V 21 w(digit)p
+369 2034 V 22 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
+2089 y Fu(Return)i(1)f(if)g Fk(c)j Fu(is)e(a)f(n)o(umeric)h(c)o
+(haracter.)1762 2207 y(F)l(unction)-1861 b Fi(int)p 176
+2207 V 40 w Fh(rl)p 235 2207 V 21 w(to)p 307 2207 V 21
+w(upp)r(er)21 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 2261
+y Fu(If)d Fk(c)j Fu(is)d(a)g(lo)o(w)o(ercase)f(alphab)q(etic)j(c)o
+(haracter,)d(return)h(the)g(corresp)q(onding)h(upp)q(ercase)g(c)o
+(haracter.)1762 2379 y(F)l(unction)-1861 b Fi(int)p 176
+2379 V 40 w Fh(rl)p 235 2379 V 21 w(to)p 307 2379 V 21
+w(lo)n(w)n(er)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
+2434 y Fu(If)g Fk(c)i Fu(is)e(an)f(upp)q(ercase)i(alphab)q(etic)g(c)o
+(haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o(w)o(ercase)f(c)o
+(harac-)195 2489 y(ter.)1762 2606 y(F)l(unction)-1861
+b Fi(int)p 176 2606 V 40 w Fh(rl)p 235 2606 V 21 w(digit)p
+369 2606 V 22 w(v)m(alue)24 b Fg(\()p Ft(int)15 b(c)p
+Fg(\))195 2661 y Fu(If)g Fk(c)k Fu(is)c(a)g(n)o(um)o(b)q(er,)g(return)g
+(the)h(v)m(alue)g(it)g(represen)o(ts.)p eop
+%%Page: 34 36
+34 35 bop 75 -58 a Fu(34)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fj(2.4.11)29 b(Alternate)21 b(In)n(terface)137
+245 y Fu(An)i(alternate)f(in)o(terface)h(is)g(a)o(v)m(ailable)h(to)d
+(plain)j Ft(readline\(\))p Fu(.)40 b(Some)22 b(applications)i(need)g
+(to)75 300 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 355 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
+409 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 464 y(this)i(easy)l(.)1762
+577 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 577
+18 3 v 21 w(callbac)n(k)p 458 577 V 23 w(handler)p 670
+577 V 21 w(install)25 b Fg(\()p Ft(const)14 b(char)h(*prompt,)283
+632 y(rl_vcpfunc_t)e(*lhandler)p Fg(\))195 687 y Fu(Set)f(up)h(the)g
+(terminal)g(for)f(readline)i(I/O)f(and)f(displa)o(y)i(the)e(initial)j
+(expanded)e(v)m(alue)h(of)e Fk(prompt)p Fu(.)195 742
+y(Sa)o(v)o(e)j(the)h(v)m(alue)h(of)f Fk(lhandler)21 b
+Fu(to)15 b(use)h(as)f(a)h(function)h(to)e(call)i(when)f(a)g(complete)g
+(line)i(of)d(input)195 797 y(has)g(b)q(een)h(en)o(tered.)21
+b(The)15 b(function)h(tak)o(es)e(the)i(text)e(of)h(the)g(line)i(as)e
+(an)g(argumen)o(t.)1762 910 y(F)l(unction)-1861 b Fi(void)20
+b Fh(rl)p 241 910 V 21 w(callbac)n(k)p 458 910 V 23 w(read)p
+591 910 V 20 w(c)n(har)j Fg(\()p Ft(void)p Fg(\))195
+965 y Fu(Whenev)o(er)17 b(an)g(application)h(determines)g(that)e(k)o
+(eyb)q(oard)h(input)h(is)f(a)o(v)m(ailable,)i(it)e(should)h(call)195
+1019 y Ft(rl_callback_read_char\(\))p Fu(,)8 b(whic)o(h)k(will)g(read)f
+(the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)195
+1074 y(source.)20 b(If)14 b(that)f(c)o(haracter)g(completes)i(the)f
+(line,)h Ft(rl_callback_read_char)c Fu(will)16 b(in)o(v)o(ok)o(e)e(the)
+195 1129 y Fk(lhandler)21 b Fu(function)c(sa)o(v)o(ed)e(b)o(y)h
+Ft(rl_callback_handler_install)d Fu(to)i(pro)q(cess)h(the)g(line.)24
+b Ft(EOF)195 1184 y Fu(is)16 b(indicated)h(b)o(y)e(calling)i
+Fk(lhandler)j Fu(with)15 b(a)g Ft(NULL)g Fu(line.)1762
+1297 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1297
+V 21 w(callbac)n(k)p 458 1297 V 23 w(handler)p 670 1297
+V 21 w(remo)n(v)n(e)i Fg(\()p Ft(void)p Fg(\))195 1352
+y Fu(Restore)d(the)f(terminal)i(to)d(its)i(initial)i(state)d(and)g
+(remo)o(v)o(e)g(the)h(line)h(handler.)31 b(This)19 b(ma)o(y)f(b)q(e)195
+1407 y(called)f(from)d(within)j(a)e(callbac)o(k)h(as)f(w)o(ell)h(as)f
+(indep)q(enden)o(tly)l(.)75 1516 y Fj(2.4.12)29 b(An)21
+b(Example)137 1612 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 1667 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 1721 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 1776
+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
+1840 y Ft(/*)24 b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h(following)e
+(characters.)h(*/)195 1892 y(int)195 1944 y(invert_case_line)f
+(\(count,)h(key\))314 1995 y(int)h(count,)f(key;)195
+2047 y({)243 2099 y(register)f(int)i(start,)f(end,)g(i;)243
+2203 y(start)g(=)h(rl_point;)243 2307 y(if)f(\(rl_point)g(>=)h
+(rl_end\))290 2359 y(return)f(\(0\);)243 2462 y(if)g(\(count)g(<)h(0\))
+290 2514 y({)338 2566 y(direction)f(=)h(-1;)338 2618
+y(count)f(=)h(-count;)290 2670 y(})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)243 149 y Ft(else)290 201 y(direction)23
+b(=)h(1;)243 305 y(/*)f(Find)h(the)f(end)h(of)f(the)h(range)f(to)g
+(modify.)g(*/)243 357 y(end)g(=)h(start)f(+)h(\(count)f(*)h
+(direction\);)243 461 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g
+(*/)243 513 y(if)g(\(end)h(>)f(rl_end\))290 565 y(end)h(=)g(rl_end;)243
+616 y(else)f(if)h(\(end)f(<)h(0\))290 668 y(end)g(=)g(0;)243
+772 y(if)f(\(start)g(==)h(end\))290 824 y(return)f(\(0\);)243
+928 y(if)g(\(start)g(>)h(end\))290 980 y({)338 1032 y(int)g(temp)f(=)h
+(start;)338 1083 y(start)f(=)h(end;)338 1135 y(end)g(=)f(temp;)290
+1187 y(})243 1291 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 1343 y(the)g(undo)f
+(information.)f(*/)243 1395 y(rl_modifying)g(\(start,)h(end\);)243
+1499 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))290
+1550 y({)338 1602 y(if)h(\(_rl_uppercase_p)d(\(rl_line_buffer[i]\)\))
+386 1654 y(rl_line_buffer[i])g(=)j(_rl_to_lower)e
+(\(rl_line_buffer[i]\);)338 1706 y(else)h(if)h(\(_rl_lowercase_p)e
+(\(rl_line_buffer[i]\)\))386 1758 y(rl_line_buffer[i])f(=)j
+(_rl_to_upper)e(\(rl_line_buffer[i]\);)290 1810 y(})243
+1862 y(/*)h(Move)h(point)f(to)g(on)h(top)f(of)h(the)f(last)h(character)
+e(changed.)h(*/)243 1914 y(rl_point)f(=)i(\(direction)f(==)g(1\))h(?)g
+(end)f(-)h(1)g(:)f(start;)243 1966 y(return)g(\(0\);)195
+2017 y(})75 2217 y Fs(2.5)33 b(Readline)23 b(Signal)h(Handling)137
+2341 y Fu(Signals)e(are)f(async)o(hronous)f(ev)o(en)o(ts)h(sen)o(t)f
+(to)h(a)f(pro)q(cess)h(b)o(y)g(the)g(Unix)h(k)o(ernel,)g(sometimes)f
+(on)75 2396 y(b)q(ehalf)g(of)e(another)h(pro)q(cess.)34
+b(They)20 b(are)g(in)o(tended)h(to)e(indicate)j(exceptional)f(ev)o(en)o
+(ts,)f(lik)o(e)h(a)f(user)75 2451 y(pressing)c(the)f(in)o(terrupt)g(k)o
+(ey)g(on)g(his)h(terminal,)f(or)g(a)f(net)o(w)o(ork)g(connection)i(b)q
+(eing)g(brok)o(en.)k(There)15 b(is)75 2506 y(a)e(class)g(of)g(signals)h
+(that)f(can)g(b)q(e)h(sen)o(t)f(to)f(the)i(pro)q(cess)f(curren)o(tly)h
+(reading)f(input)i(from)d(the)h(k)o(eyb)q(oard.)75 2560
+y(Since)i(Readline)g(c)o(hanges)f(the)f(terminal)h(attributes)f(when)h
+(it)g(is)g(called,)h(it)e(needs)h(to)f(p)q(erform)g(sp)q(ecial)75
+2615 y(pro)q(cessing)22 b(when)f(a)g(signal)h(is)g(receiv)o(ed)g(to)e
+(restore)g(the)i(terminal)f(to)g(a)g(sane)g(state,)g(or)f(pro)o(vide)75
+2670 y(application)d(writers)e(with)g(functions)h(to)f(do)g(so)g(man)o
+(ually)l(.)p eop
+%%Page: 36 38
+36 37 bop 75 -58 a Fu(36)1299 b(GNU)15 b(Readline)i(Library)137
+149 y(Readline)23 b(con)o(tains)d(an)g(in)o(ternal)h(signal)g(handler)g
+(that)f(is)h(installed)h(for)d(a)h(n)o(um)o(b)q(er)g(of)g(signals)75
+204 y(\()p Ft(SIGINT)p Fu(,)h Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p
+Fu(,)g Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)g Ft(SIGTTIN)p
+Fu(,)h(and)f Ft(SIGTTOU)p Fu(\).)36 b(When)21 b(one)g(of)75
+259 y(these)16 b(signals)h(is)f(receiv)o(ed,)h(the)f(signal)h(handler)f
+(will)i(reset)e(the)g(terminal)g(attributes)g(to)f(those)h(that)75
+314 y(w)o(ere)d(in)i(e\013ect)e(b)q(efore)h Ft(readline\(\))e
+Fu(w)o(as)h(called,)i(reset)f(the)f(signal)i(handling)g(to)e(what)g(it)
+h(w)o(as)f(b)q(efore)75 369 y Ft(readline\(\))21 b Fu(w)o(as)h(called,)
+j(and)e(resend)g(the)g(signal)g(to)f(the)h(calling)h(application.)44
+b(If)23 b(and)f(when)75 423 y(the)17 b(calling)i(application's)f
+(signal)g(handler)g(returns,)f(Readline)i(will)g(reinitialize)h(the)d
+(terminal)h(and)75 478 y(con)o(tin)o(ue)d(to)e(accept)i(input.)20
+b(When)15 b(a)e Ft(SIGINT)h Fu(is)g(receiv)o(ed,)h(the)g(Readline)h
+(signal)f(handler)g(p)q(erforms)75 533 y(some)k(additional)i(w)o(ork,)e
+(whic)o(h)h(will)h(cause)f(an)o(y)f(partially-en)o(tered)i(line)g(to)d
+(b)q(e)i(ab)q(orted)g(\(see)f(the)75 588 y(description)e(of)d
+Ft(rl_free_line_state\(\))f Fu(b)q(elo)o(w\).)137 655
+y(There)g(is)f(an)g(additional)i(Readline)h(signal)e(handler,)g(for)f
+Ft(SIGWINCH)p Fu(,)f(whic)o(h)i(the)f(k)o(ernel)h(sends)g(to)e(a)75
+710 y(pro)q(cess)k(whenev)o(er)g(the)f(terminal's)h(size)g(c)o(hanges)f
+(\(for)g(example,)h(if)g(a)f(user)h(resizes)g(an)f Ft(xterm)p
+Fu(\).)19 b(The)75 764 y(Readline)h Ft(SIGWINCH)d Fu(handler)i(up)q
+(dates)f(Readline's)i(in)o(ternal)e(screen)h(size)f(information,)h(and)
+f(then)75 819 y(calls)g(an)o(y)f Ft(SIGWINCH)e Fu(signal)j(handler)g
+(the)f(calling)i(application)f(has)f(installed.)27 b(Readline)19
+b(calls)f(the)75 874 y(application's)h Ft(SIGWINCH)d
+Fu(signal)j(handler)f(without)g(resetting)g(the)f(terminal)i(to)e(its)g
+(original)i(state.)75 929 y(If)d(the)g(application's)h(signal)g
+(handler)g(do)q(es)g(more)e(than)h(up)q(date)h(its)f(idea)h(of)e(the)h
+(terminal)h(size)g(and)75 984 y(return)e(\(for)f(example,)h(a)f
+Ft(longjmp)g Fu(bac)o(k)h(to)f(a)h(main)g(pro)q(cessing)g(lo)q(op\),)g
+(it)g Fl(must)20 b Fu(call)c Ft(rl_cleanup_)75 1038 y(after_signal\(\))
+d Fu(\(describ)q(ed)k(b)q(elo)o(w\),)e(to)g(restore)f(the)h(terminal)h
+(state.)137 1105 y(Readline)h(pro)o(vides)e(t)o(w)o(o)e(v)m(ariables)i
+(that)f(allo)o(w)g(application)i(writers)e(to)g(con)o(trol)g(whether)h
+(or)e(not)75 1160 y(it)k(will)h(catc)o(h)e(certain)h(signals)h(and)f
+(act)f(on)g(them)h(when)g(they)f(are)h(receiv)o(ed.)25
+b(It)16 b(is)i(imp)q(ortan)o(t)e(that)75 1215 y(applications)k(c)o
+(hange)e(the)h(v)m(alues)g(of)f(these)h(v)m(ariables)g(only)g(when)g
+(calling)h Ft(readline\(\))p Fu(,)d(not)h(in)h(a)75 1270
+y(signal)d(handler,)g(so)f(Readline's)i(in)o(ternal)f(signal)g(state)e
+(is)i(not)f(corrupted.)1773 1385 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 1385 18 3 v 21 w(catc)n(h)p
+366 1385 V 22 w(signals)195 1440 y Fu(If)15 b(this)g(v)m(ariable)g(is)g
+(non-zero,)g(Readline)i(will)f(install)f(signal)h(handlers)f(for)f
+Ft(SIGINT)p Fu(,)f Ft(SIGQUIT)p Fu(,)195 1495 y Ft(SIGTERM)p
+Fu(,)h Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)f Ft(SIGTTIN)p
+Fu(,)h(and)i Ft(SIGTTOU)p Fu(.)195 1562 y(The)f(default)h(v)m(alue)h
+(of)d Ft(rl_catch_signals)f Fu(is)j(1.)1773 1678 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 1678 V 21 w(catc)n(h)p 366
+1678 V 22 w(sigwinc)n(h)195 1732 y Fu(If)15 b(this)h(v)m(ariable)h(is)e
+(non-zero,)g(Readline)j(will)f(install)f(a)f(signal)h(handler)h(for)d
+Ft(SIGWINCH)p Fu(.)195 1799 y(The)h(default)h(v)m(alue)h(of)d
+Ft(rl_catch_sigwinch)f Fu(is)j(1.)137 1891 y(If)g(an)f(application)j
+(do)q(es)d(not)g(wish)i(to)d(ha)o(v)o(e)h(Readline)j(catc)o(h)e(an)o(y)
+f(signals,)h(or)f(to)f(handle)j(signals)75 1945 y(other)i(than)g(those)
+g(Readline)j(catc)o(hes)d(\()p Ft(SIGHUP)p Fu(,)g(for)g(example\),)h
+(Readline)i(pro)o(vides)d(con)o(v)o(enience)75 2000 y(functions)d(to)f
+(do)g(the)g(necessary)g(terminal)h(and)g(in)o(ternal)g(state)e(clean)o
+(up)i(up)q(on)g(receipt)g(of)f(a)g(signal.)1762 2116
+y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 2116 V
+21 w(clean)n(up)p 450 2116 V 22 w(after)p 590 2116 V
+20 w(signal)j Fg(\()p Ft(void)p Fg(\))195 2171 y Fu(This)18
+b(function)f(will)i(reset)e(the)g(state)f(of)g(the)h(terminal)h(to)e
+(what)h(it)g(w)o(as)f(b)q(efore)h Ft(readline\(\))195
+2226 y Fu(w)o(as)d(called,)i(and)f(remo)o(v)o(e)f(the)g(Readline)j
+(signal)f(handlers)g(for)e(all)h(signals,)g(dep)q(ending)i(on)e(the)195
+2280 y(v)m(alues)h(of)f Ft(rl_catch_signals)e Fu(and)i
+Ft(rl_catch_sigwinch)p Fu(.)1762 2396 y(F)l(unction)-1861
+b Fi(void)20 b Fh(rl)p 241 2396 V 21 w(free)p 356 2396
+V 20 w(line)p 464 2396 V 23 w(state)j Fg(\()p Ft(void)p
+Fg(\))195 2451 y Fu(This)d(will)h(free)f(an)o(y)f(partial)h(state)f
+(asso)q(ciated)h(with)g(the)g(curren)o(t)f(input)i(line)g(\(undo)f
+(infor-)195 2506 y(mation,)i(an)o(y)f(partial)h(history)f(en)o(try)l(,)
+h(an)o(y)f(partially-en)o(tered)i(k)o(eyb)q(oard)e(macro,)h(and)f(an)o
+(y)195 2560 y(partially-en)o(tered)k(n)o(umeric)g(argumen)o(t\).)45
+b(This)24 b(should)h(b)q(e)g(called)g(b)q(efore)g Ft(rl_cleanup_)195
+2615 y(after_signal\(\))p Fu(.)36 b(The)22 b(Readline)i(signal)e
+(handler)g(for)f Ft(SIGINT)f Fu(calls)j(this)e(to)g(ab)q(ort)g(the)195
+2670 y(curren)o(t)15 b(input)h(line.)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)1762 149 y(F)l(unction)-1861 b Fi(void)20
+b Fh(rl)p 241 149 18 3 v 21 w(reset)p 383 149 V 20 w(after)p
+521 149 V 21 w(signal)j Fg(\()p Ft(void)p Fg(\))195 204
+y Fu(This)15 b(will)h(reinitialize)h(the)d(terminal)h(and)g(reinstall)h
+(an)o(y)d(Readline)k(signal)e(handlers,)g(dep)q(end-)195
+259 y(ing)h(on)f(the)g(v)m(alues)i(of)d Ft(rl_catch_signals)f
+Fu(and)j Ft(rl_catch_sigwinch)p Fu(.)137 354 y(If)k(an)g(application)h
+(do)q(es)f(not)g(wish)g(Readline)i(to)d(catc)o(h)g Ft(SIGWINCH)p
+Fu(,)h(it)g(ma)o(y)f(call)h Ft(rl_resize_)75 409 y(terminal\(\))12
+b Fu(or)h Ft(rl_set_screen_size\(\))e Fu(to)i(force)g(Readline)j(to)d
+(up)q(date)h(its)g(idea)g(of)g(the)f(terminal)75 464
+y(size)j(when)g(a)f Ft(SIGWINCH)f Fu(is)h(receiv)o(ed.)1762
+586 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 586
+V 21 w(resize)p 401 586 V 22 w(terminal)j Fg(\()p Ft(void)p
+Fg(\))195 641 y Fu(Up)q(date)16 b(Readline's)h(in)o(ternal)f(screen)f
+(size)i(b)o(y)e(reading)g(v)m(alues)i(from)d(the)i(k)o(ernel.)1762
+763 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 763
+V 21 w(set)p 333 763 V 21 w(screen)p 510 763 V 20 w(size)k
+Fg(\()p Ft(int)15 b(rows,)f(int)h(cols)p Fg(\))195 817
+y Fu(Set)g(Readline's)i(idea)f(of)f(the)g(terminal)h(size)g(to)f
+Fk(ro)o(ws)h Fu(ro)o(ws)e(and)i Fk(cols)h Fu(columns.)137
+913 y(The)f(follo)o(wing)g(functions)g(install)g(and)g(remo)o(v)o(e)e
+(Readline's)j(signal)f(handlers.)1762 1035 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1035 V 21 w(set)p 307 1035
+V 20 w(signals)j Fg(\()p Ft(void)p Fg(\))195 1090 y Fu(Install)c
+(Readline's)g(signal)g(handler)f(for)f Ft(SIGINT)p Fu(,)g
+Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p Fu(,)g Ft(SIGALRM)p
+Fu(,)f Ft(SIGTSTP)p Fu(,)195 1144 y Ft(SIGTTIN)p Fu(,)11
+b Ft(SIGTTOU)p Fu(,)g(and)h Ft(SIGWINCH)p Fu(,)e(dep)q(ending)k(on)e
+(the)f(v)m(alues)i(of)e Ft(rl_catch_signals)f Fu(and)195
+1199 y Ft(rl_catch_sigwinch)p Fu(.)1762 1321 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 1321 V 21 w(clear)p 354 1321
+V 21 w(signals)j Fg(\()p Ft(void)p Fg(\))195 1376 y Fu(Remo)o(v)o(e)15
+b(all)h(of)f(the)g(Readline)j(signal)e(handlers)g(installed)h(b)o(y)e
+Ft(rl_set_signals\(\))p Fu(.)75 1509 y Fs(2.6)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 1661 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 1716 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
+1886 y Fj(2.6.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 2203 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)22 b(user-in)o(terface)g
+(function)h Ft(rl_complete\(\))p Fu(.)37 b(This)22 b(function)h(is)f
+(called)h(with)f(the)g(same)165 2451 y(argumen)o(ts)17
+b(as)h(other)g(bindable)i(Readline)g(functions:)27 b
+Fk(coun)o(t)19 b Fu(and)f Fk(in)o(v)o(oking)p 1556 2451
+14 2 v 17 w(k)o(ey)p Fu(.)28 b(It)19 b(isolates)165 2506
+y(the)g(w)o(ord)f(to)g(b)q(e)i(completed)f(and)g(calls)h
+Ft(rl_completion_matches\(\))c Fu(to)i(generate)g(a)h(list)g(of)165
+2560 y(p)q(ossible)e(completions.)22 b(It)16 b(then)g(either)g(lists)g
+(the)g(p)q(ossible)h(completions,)g(inserts)f(the)f(p)q(ossible)165
+2615 y(completions,)25 b(or)d(actually)i(p)q(erforms)e(the)g
+(completion,)k(dep)q(ending)e(on)f(whic)o(h)g(b)q(eha)o(vior)g(is)165
+2670 y(desired.)p eop
+%%Page: 38 40
+38 39 bop 75 -58 a Fu(38)1299 b(GNU)15 b(Readline)i(Library)100
+149 y(2.)29 b(The)17 b(in)o(ternal)h(function)f Ft
+(rl_completion_matches\(\))d Fu(uses)j(an)g(application-supplie)q(d)j
+Fk(gener-)165 204 y(ator)h Fu(function)e(to)f(generate)g(the)h(list)g
+(of)f(p)q(ossible)i(matc)o(hes,)f(and)f(then)h(returns)g(the)f(arra)o
+(y)f(of)165 259 y(these)j(matc)o(hes.)32 b(The)20 b(caller)g(should)h
+(place)f(the)g(address)f(of)h(its)f(generator)g(function)h(in)g
+Ft(rl_)165 314 y(completion_entry_function)p Fu(.)100
+383 y(3.)29 b(The)12 b(generator)e(function)i(is)g(called)h(rep)q
+(eatedly)g(from)e Ft(rl_completion_matches\(\))p Fu(,)d(returning)165
+438 y(a)16 b(string)g(eac)o(h)h(time.)24 b(The)17 b(argumen)o(ts)e(to)h
+(the)g(generator)g(function)h(are)f Fk(text)h Fu(and)g
+Fk(state)p Fu(.)22 b Fk(text)165 493 y Fu(is)17 b(the)f(partial)g(w)o
+(ord)f(to)h(b)q(e)h(completed.)23 b Fk(state)18 b Fu(is)e(zero)g(the)g
+(\014rst)g(time)g(the)g(function)h(is)g(called,)165 547
+y(allo)o(wing)23 b(the)f(generator)f(to)g(p)q(erform)h(an)o(y)g
+(necessary)g(initialization,)k(and)c(a)g(p)q(ositiv)o(e)h(non-)165
+602 y(zero)14 b(in)o(teger)h(for)f(eac)o(h)h(subsequen)o(t)g(call.)21
+b(The)15 b(generator)e(function)j(returns)e Ft(\(char)h(*\)NULL)f
+Fu(to)165 657 y(inform)19 b Ft(rl_completion_matches\(\))d
+Fu(that)i(there)h(are)g(no)g(more)g(p)q(ossibilities)j(left.)32
+b(Usually)165 712 y(the)19 b(generator)g(function)h(computes)g(the)f
+(list)h(of)f(p)q(ossible)i(completions)g(when)e Fk(state)j
+Fu(is)d(zero,)165 767 y(and)13 b(returns)g(them)f(one)h(at)f(a)h(time)g
+(on)g(subsequen)o(t)g(calls.)20 b(Eac)o(h)13 b(string)f(the)h
+(generator)f(function)165 821 y(returns)k(as)f(a)h(matc)o(h)f(m)o(ust)h
+(b)q(e)g(allo)q(cated)h(with)g Ft(malloc\(\))p Fu(;)d(Readline)19
+b(frees)d(the)g(strings)f(when)165 876 y(it)g(has)h(\014nished)g(with)g
+(them.)1762 1005 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
+215 1005 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
+(invoking_key)p Fg(\))195 1059 y Fu(Complete)h(the)f(w)o(ord)g(at)f(or)
+h(b)q(efore)h(p)q(oin)o(t.)21 b(Y)l(ou)15 b(ha)o(v)o(e)g(supplied)j
+(the)d(function)i(that)d(do)q(es)i(the)195 1114 y(initial)23
+b(simple)f(matc)o(hing)e(selection)i(algorithm)f(\(see)f
+Ft(rl_completion_matches\(\))p Fu(\).)33 b(The)195 1169
+y(default)16 b(is)f(to)g(do)g(\014lename)h(completion.)1773
+1298 y(V)l(ariable)-1861 b Fi(rl_compentry_func_t)22
+b(*)d Fh(rl)p 678 1298 V 21 w(completion)p 973 1298 V
+21 w(en)n(try)p 1126 1298 V 22 w(function)195 1352 y
+Fu(This)i(is)f(a)g(p)q(oin)o(ter)g(to)f(the)h(generator)g(function)g
+(for)g Ft(rl_completion_matches\(\))p Fu(.)31 b(If)20
+b(the)195 1407 y(v)m(alue)13 b(of)f Ft(rl_completion_entry_fun)o(ction)
+d Fu(is)j Ft(NULL)f Fu(then)h(the)g(default)h(\014lename)g(generator)
+195 1462 y(function,)j Ft(rl_filename_completion_f)o(unction)o(\(\))p
+Fu(,)c(is)k(used.)75 1582 y Fj(2.6.2)30 b(Completion)20
+b(F)-5 b(unctions)137 1682 y Fu(Here)16 b(is)f(the)h(complete)g(list)g
+(of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.)
+1762 1810 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
+1810 V 21 w(complete)p 460 1810 V 21 w(in)n(ternal)k
+Fg(\()p Ft(int)15 b(what_to_do)p Fg(\))195 1865 y Fu(Complete)k(the)g
+(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)31 b Fk(what)p
+1108 1865 14 2 v 16 w(to)p 1165 1865 V 16 w(do)21 b Fu(sa)o(ys)d(what)g
+(to)g(do)h(with)g(the)g(com-)195 1920 y(pletion.)j(A)16
+b(v)m(alue)h(of)e(`)p Ft(?)p Fu(')g(means)g(list)i(the)e(p)q(ossible)j
+(completions.)k(`)p Ft(TAB)p Fu(')14 b(means)i(do)f(standard)195
+1975 y(completion.)22 b(`)p Ft(*)p Fu(')15 b(means)g(insert)h(all)h(of)
+e(the)h(p)q(ossible)h(completions.)22 b(`)p Ft(!)p Fu(')15
+b(means)g(to)g(displa)o(y)i(all)195 2029 y(of)g(the)g(p)q(ossible)i
+(completions,)f(if)g(there)f(is)h(more)f(than)g(one,)g(as)g(w)o(ell)h
+(as)f(p)q(erforming)h(partial)195 2084 y(completion.)1762
+2213 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2213
+18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
+(invoking_key)p Fg(\))195 2268 y Fu(Complete)21 b(the)g(w)o(ord)e(at)h
+(or)g(b)q(efore)h(p)q(oin)o(t.)37 b(Y)l(ou)21 b(ha)o(v)o(e)f(supplied)j
+(the)d(function)i(that)e(do)q(es)195 2322 y(the)d(initial)h(simple)g
+(matc)o(hing)f(selection)h(algorithm)e(\(see)g Ft
+(rl_completion_matches\(\))e Fu(and)195 2377 y Ft
+(rl_completion_entry_functi)o(on)p Fu(\).)25 b(The)18
+b(default)h(is)f(to)f(do)h(\014lename)h(completion.)29
+b(This)195 2432 y(calls)16 b Ft(rl_complete_internal\(\))c
+Fu(with)k(an)f(argumen)o(t)f(dep)q(ending)k(on)d Fk(in)o(v)o(oking)p
+1657 2432 14 2 v 17 w(k)o(ey)p Fu(.)1762 2560 y(F)l(unction)-1861
+b Fi(int)20 b Fh(rl)p 215 2560 18 3 v 21 w(p)r(ossible)p
+433 2560 V 20 w(completions)j Fg(\()p Ft(int)15 b(count,)f(int)h
+(invoking_key)p Fg(\))195 2615 y Fu(List)21 b(the)f(p)q(ossible)i
+(completions.)36 b(See)21 b(description)h(of)e Ft(rl_complete)13
+b(\(\))p Fu(.)35 b(This)21 b(calls)g Ft(rl_)195 2670
+y(complete_internal\(\))13 b Fu(with)i(an)g(argumen)o(t)g(of)f(`)p
+Ft(?)p Fu('.)p eop
+%%Page: 39 41
+39 40 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(39)1762 149 y(F)l(unction)-1861 b Fi(int)20
+b Fh(rl)p 215 149 18 3 v 21 w(insert)p 378 149 V 21 w(completions)j
+Fg(\()p Ft(int)14 b(count,)g(int)h(invoking_key)p Fg(\))195
+204 y Fu(Insert)i(the)g(list)h(of)e(p)q(ossible)j(completions)e(in)o
+(to)g(the)g(line,)i(deleting)f(the)f(partially-completed)195
+259 y(w)o(ord.)k(See)c(description)g(of)e Ft(rl_complete\(\))p
+Fu(.)20 b(This)d(calls)g Ft(rl_complete_internal\(\))c
+Fu(with)195 314 y(an)i(argumen)o(t)g(of)f(`)p Ft(*)p
+Fu('.)1762 445 y(F)l(unction)-1861 b Fi(char)20 b(**)f
+Fh(rl)p 312 445 V 21 w(completion)p 607 445 V 21 w(matc)n(hes)j
+Fg(\()p Ft(const)15 b(char)f(*text,)283 500 y(rl_compentry_func_t)e
+(*entry_func)p Fg(\))195 554 y Fu(Returns)17 b(an)f(arra)o(y)f(of)g
+Ft(\(char)g(*\))h Fu(whic)o(h)h(is)f(a)g(list)h(of)f(completions)h(for)
+e Fk(text)p Fu(.)23 b(If)16 b(there)g(are)g(no)195 609
+y(completions,)i(returns)g Ft(NULL)p Fu(.)25 b(The)17
+b(\014rst)g(en)o(try)g(in)h(the)f(returned)h(arra)o(y)e(is)i(the)f
+(substitution)195 664 y(for)c Fk(text)p Fu(.)18 b(The)c(remaining)g(en)
+o(tries)f(are)g(the)h(p)q(ossible)g(completions.)21 b(The)13
+b(arra)o(y)f(is)i(terminated)195 719 y(with)i(a)e Ft(NULL)h
+Fu(p)q(oin)o(ter.)195 791 y Fk(en)o(try)p 302 791 14
+2 v 16 w(func)20 b Fu(is)e(a)f(function)g(of)g(t)o(w)o(o)f(args,)g(and)
+h(returns)g(a)g Ft(\(char)d(*\))p Fu(.)25 b(The)18 b(\014rst)e(argumen)
+o(t)g(is)195 845 y Fk(text)p Fu(.)32 b(The)19 b(second)h(is)g(a)f
+(state)f(argumen)o(t;)j(it)e(is)h(zero)f(on)g(the)h(\014rst)f(call,)i
+(and)e(non-zero)h(on)195 900 y(subsequen)o(t)e(calls.)27
+b Fk(en)o(try)p 662 900 V 16 w(func)20 b Fu(returns)d(a)g
+Ft(NULL)g Fu(p)q(oin)o(ter)g(to)g(the)g(caller)h(when)g(there)f(are)g
+(no)195 955 y(more)e(matc)o(hes.)1762 1086 y(F)l(unction)-1861
+b Fi(char)20 b(*)f Fh(rl)p 286 1086 18 3 v 21 w(\014lename)p
+515 1086 V 20 w(completion)p 809 1086 V 21 w(function)k
+Fg(\()p Ft(const)15 b(char)f(*text,)h(int)283 1141 y(state)p
+Fg(\))195 1195 y Fu(A)h(generator)e(function)j(for)e(\014lename)h
+(completion)h(in)f(the)g(general)g(case.)21 b(Note)15
+b(that)g(comple-)195 1250 y(tion)i(in)h(Bash)f(is)g(a)f(little)i
+(di\013eren)o(t)f(b)q(ecause)h(of)f(all)g(the)g(pathnames)g(that)f(m)o
+(ust)g(b)q(e)i(follo)o(w)o(ed)195 1305 y(when)f(lo)q(oking)g(up)g
+(completions)h(for)d(a)i(command.)23 b(The)17 b(Bash)f(source)h(is)g(a)
+f(useful)h(reference)195 1360 y(for)e(writing)g(custom)g(completion)h
+(functions.)1762 1491 y(F)l(unction)-1861 b Fi(char)20
+b(*)f Fh(rl)p 286 1491 V 21 w(username)p 547 1491 V 19
+w(completion)p 840 1491 V 21 w(function)k Fg(\()p Ft(const)14
+b(char)g(*text,)283 1546 y(int)g(state)p Fg(\))195 1600
+y Fu(A)g(completion)i(generator)d(for)h(usernames.)19
+b Fk(text)c Fu(con)o(tains)f(a)g(partial)h(username)f(preceded)i(b)o(y)
+195 1655 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p
+Ft(~)p Fu('\).)i(As)c(with)g(all)i(completion)f(generators,)e
+Fk(state)j Fu(is)f(zero)f(on)195 1710 y(the)g(\014rst)g(call)h(and)g
+(non-zero)f(for)g(subsequen)o(t)h(calls.)75 1831 y Fj(2.6.3)30
+b(Completion)20 b(V)-5 b(ariables)1773 1991 y Fu(V)l(ariable)-1861
+b Fi(rl_compentry_func_t)22 b(*)d Fh(rl)p 678 1991 V
+21 w(completion)p 973 1991 V 21 w(en)n(try)p 1126 1991
+V 22 w(function)195 2046 y Fu(A)e(p)q(oin)o(ter)g(to)f(the)h(generator)
+f(function)h(for)f Ft(rl_completion_matches\(\))p Fu(.)22
+b Ft(NULL)16 b Fu(means)h(to)195 2101 y(use)f Ft
+(rl_filename_completion_)o(functio)o(n\(\))p Fu(,)c(the)j(default)h
+(\014lename)g(completer.)1773 2232 y(V)l(ariable)-1861
+b Fi(rl_completion_func_t)22 b(*)d Fh(rl)p 704 2232 V
+22 w(attempted)p 985 2232 V 20 w(completion)p 1279 2232
+V 21 w(function)195 2286 y Fu(A)e(p)q(oin)o(ter)h(to)f(an)g(alternativ)
+o(e)h(function)g(to)f(create)g(matc)o(hes.)26 b(The)18
+b(function)g(is)g(called)h(with)195 2341 y Fk(text)p
+Fu(,)11 b Fk(start)p Fu(,)g(and)h Fk(end)p Fu(.)19 b
+Fk(start)11 b Fu(and)h Fk(end)i Fu(are)d(indices)i(in)g
+Ft(rl_line_buffer)c Fu(de\014ning)k(the)f(b)q(ound-)195
+2396 y(aries)h(of)g Fk(text)p Fu(,)f(whic)o(h)i(is)g(a)e(c)o(haracter)h
+(string.)19 b(If)13 b(this)g(function)h(exists)g(and)f(returns)g
+Ft(NULL)p Fu(,)f(or)g(if)195 2451 y(this)f(v)m(ariable)i(is)e(set)g(to)
+f Ft(NULL)p Fu(,)h(then)g Ft(rl_complete\(\))e Fu(will)k(call)f(the)f
+(v)m(alue)h(of)f Ft(rl_completion_)195 2506 y(entry_function)h
+Fu(to)i(generate)g(matc)o(hes,)f(otherwise)i(the)f(arra)o(y)f(of)h
+(strings)g(returned)g(will)i(b)q(e)195 2560 y(used.)31
+b(If)19 b(this)h(function)f(sets)g(the)g Ft(rl_attempted_completion_)o
+(over)d Fu(v)m(ariable)k(to)e(a)h(non-)195 2615 y(zero)e(v)m(alue,)i
+(Readline)h(will)g(not)d(p)q(erform)g(its)h(default)g(completion)h(if)f
+(this)g(function)g(returns)195 2670 y(no)d(matc)o(hes.)p
+eop
+%%Page: 40 42
+40 41 bop 75 -58 a Fu(40)1299 b(GNU)15 b(Readline)i(Library)1773
+149 y(V)l(ariable)-1861 b Fi(rl_quote_func_t)21 b(*)f
+Fh(rl)p 574 149 18 3 v 21 w(\014lename)p 803 149 V 20
+w(quoting)p 1012 149 V 21 w(function)195 204 y Fu(A)c(p)q(oin)o(ter)h
+(to)f(a)g(function)h(that)e(will)j(quote)e(a)g(\014lename)i(in)f(an)f
+(application-sp)q(eci\014)q(c)j(fashion.)195 259 y(This)h(is)g(called)i
+(if)e(\014lename)g(completion)h(is)f(b)q(eing)h(attempted)e(and)h(one)g
+(of)f(the)h(c)o(haracters)195 314 y(in)d Ft
+(rl_filename_quote_characters)c Fu(app)q(ears)k(in)g(a)g(completed)g
+(\014lename.)25 b(The)17 b(function)195 369 y(is)i(called)i(with)e
+Fk(text)p Fu(,)g Fk(matc)o(h)p 722 369 14 2 v 16 w(t)o(yp)q(e)p
+Fu(,)g(and)g Fk(quote)p 1059 369 V 17 w(p)q(oin)o(ter)p
+Fu(.)31 b(The)19 b Fk(text)h Fu(is)f(the)g(\014lename)h(to)e(b)q(e)195
+423 y(quoted.)39 b(The)21 b Fk(matc)o(h)p 607 423 V 16
+w(t)o(yp)q(e)j Fu(is)e(either)g Ft(SINGLE_MATCH)p Fu(,)f(if)h(there)f
+(is)h(only)g(one)g(completion)195 478 y(matc)o(h,)15
+b(or)g Ft(MULT_MATCH)p Fu(.)20 b(Some)c(functions)g(use)g(this)g(to)f
+(decide)j(whether)e(or)f(not)g(to)g(insert)h(a)195 533
+y(closing)c(quote)e(c)o(haracter.)18 b(The)11 b Fk(quote)p
+877 533 V 16 w(p)q(oin)o(ter)k Fu(is)c(a)f(p)q(oin)o(ter)i(to)e(an)o(y)
+g(op)q(ening)i(quote)f(c)o(haracter)195 588 y(the)k(user)h(t)o(yp)q
+(ed.)k(Some)15 b(functions)h(c)o(ho)q(ose)f(to)g(reset)g(this)g(c)o
+(haracter.)1773 690 y(V)l(ariable)-1861 b Fi(rl_dequote_func_t)22
+b(*)d Fh(rl)p 626 690 18 3 v 21 w(\014lename)p 855 690
+V 20 w(dequoting)p 1122 690 V 21 w(function)195 744 y
+Fu(A)c(p)q(oin)o(ter)g(to)f(a)h(function)g(that)g(will)h(remo)o(v)o(e)e
+(application-sp)q(eci\014)q(c)k(quoting)d(c)o(haracters)f(from)195
+799 y(a)i(\014lename)h(b)q(efore)g(completion)g(is)g(attempted,)f(so)f
+(those)h(c)o(haracters)g(do)g(not)g(in)o(terfere)h(with)195
+854 y(matc)o(hing)i(the)g(text)g(against)f(names)h(in)h(the)f
+(\014lesystem.)33 b(It)19 b(is)g(called)i(with)e Fk(text)p
+Fu(,)g(the)g(text)195 909 y(of)i(the)g(w)o(ord)g(to)g(b)q(e)h
+(dequoted,)h(and)e Fk(quote)p 1009 909 14 2 v 17 w(c)o(har)p
+Fu(,)h(whic)o(h)g(is)g(the)f(quoting)h(c)o(haracter)f(that)195
+964 y(delimits)d(the)e(\014lename)i(\(usually)f(`)p Ft(')p
+Fu(')f(or)f(`)p Ft(")p Fu('\).)22 b(If)17 b Fk(quote)p
+1187 964 V 16 w(c)o(har)i Fu(is)e(zero,)f(the)g(\014lename)i(w)o(as)d
+(not)195 1018 y(in)h(an)f(em)o(b)q(edded)i(string.)1773
+1120 y(V)l(ariable)-1861 b Fi(rl_linebuf_func_t)22 b(*)d
+Fh(rl)p 626 1120 18 3 v 21 w(c)n(har)p 754 1120 V 21
+w(is)p 813 1120 V 21 w(quoted)p 1005 1120 V 21 w(p)195
+1175 y Fu(A)f(p)q(oin)o(ter)h(to)f(a)g(function)h(to)f(call)i(that)d
+(determines)j(whether)e(or)g(not)g(a)g(sp)q(eci\014c)j(c)o(haracter)195
+1230 y(in)d(the)f(line)i(bu\013er)e(is)h(quoted,)g(according)f(to)g
+(whatev)o(er)f(quoting)i(mec)o(hanism)g(the)f(program)195
+1284 y(calling)e(readline)h(uses.)j(The)14 b(function)h(is)f(called)h
+(with)f(t)o(w)o(o)e(argumen)o(ts:)19 b Fk(text)p Fu(,)13
+b(the)g(text)h(of)f(the)195 1339 y(line,)k(and)e Fk(index)p
+Fu(,)i(the)e(index)i(of)e(the)g(c)o(haracter)g(in)h(the)g(line.)22
+b(It)15 b(is)h(used)g(to)f(decide)i(whether)e(a)195 1394
+y(c)o(haracter)f(found)i(in)g Ft(rl_completer_word_break_)o(charact)o
+(ers)c Fu(should)k(b)q(e)g(used)g(to)e(break)195 1449
+y(w)o(ords)g(for)h(the)g(completer.)1773 1551 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 1551 V 21 w(completion)p 510
+1551 V 21 w(query)p 673 1551 V 21 w(items)195 1605 y
+Fu(Up)e(to)g(this)g(man)o(y)g(items)g(will)i(b)q(e)f(displa)o(y)o(ed)g
+(in)g(resp)q(onse)g(to)e(a)h(p)q(ossible-completions)j(call.)195
+1660 y(After)14 b(that,)f(w)o(e)h(ask)g(the)h(user)f(if)h(she)f(is)h
+(sure)g(she)f(w)o(an)o(ts)f(to)h(see)h(them)f(all.)20
+b(The)15 b(default)g(v)m(alue)195 1715 y(is)h(100.)1773
+1817 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
+436 1817 V 21 w(basic)p 580 1817 V 21 w(w)n(ord)p 725
+1817 V 21 w(break)p 886 1817 V 20 w(c)n(haracters)195
+1872 y Fu(The)j(basic)h(list)g(of)f(c)o(haracters)f(that)g(signal)i(a)f
+(break)g(b)q(et)o(w)o(een)g(w)o(ords)g(for)f(the)h(completer)195
+1926 y(routine.)30 b(The)19 b(default)g(v)m(alue)h(of)e(this)h(v)m
+(ariable)h(is)f(the)g(c)o(haracters)f(whic)o(h)h(break)g(w)o(ords)f
+(for)195 1981 y(completion)e(in)g(Bash,)f(i.e.,)g Ft(")g
+(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fu(.)1773 2083 y(V)l(ariable)-1861
+b Fi(const)20 b(char)g(*)f Fh(rl)p 436 2083 V 21 w(basic)p
+580 2083 V 21 w(quote)p 740 2083 V 21 w(c)n(haracters)195
+2138 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.)1773 2239 y(V)l(ariable)-1861 b
+Fi(const)20 b(char)g(*)f Fh(rl)p 436 2239 V 21 w(completer)p
+705 2239 V 21 w(w)n(ord)p 850 2239 V 20 w(break)p 1010
+2239 V 20 w(c)n(haracters)195 2294 y Fu(The)33 b(list)g(of)f(c)o
+(haracters)g(that)f(signal)j(a)e(break)g(b)q(et)o(w)o(een)h(w)o(ords)f
+(for)g Ft(rl_complete_)195 2349 y(internal\(\))p Fu(.)18
+b(The)e(default)g(list)g(is)f(the)h(v)m(alue)g(of)f Ft
+(rl_basic_word_break_chara)o(cters)p Fu(.)1773 2451 y(V)l(ariable)-1861
+b Fi(const)20 b(char)g(*)f Fh(rl)p 436 2451 V 21 w(completer)p
+705 2451 V 21 w(quote)p 865 2451 V 20 w(c)n(haracters)195
+2506 y Fu(List)h(of)e(c)o(haracters)h(whic)o(h)g(can)h(b)q(e)f(used)h
+(to)e(quote)h(a)g(substring)g(of)g(the)g(line.)33 b(Completion)195
+2560 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)g(substring,)h(and)f(within)
+i(the)e(substring)g Ft(rl_completer_word_break_)195 2615
+y(characters)j Fu(are)h(treated)g(as)h(an)o(y)f(other)g(c)o(haracter,)g
+(unless)i(they)e(also)h(app)q(ear)g(within)h(this)195
+2670 y(list.)p eop
+%%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)1773 149 y(V)l(ariable)-1861 b Fi(const)20
+b(char)g(*)f Fh(rl)p 436 149 18 3 v 21 w(\014lename)p
+665 149 V 20 w(quote)p 824 149 V 21 w(c)n(haracters)195
+204 y Fu(A)e(list)h(of)e(c)o(haracters)g(that)g(cause)h(a)g(\014lename)
+h(to)e(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)h(when)f(they)195
+259 y(app)q(ear)e(in)h(a)f(completed)h(\014lename.)21
+b(The)16 b(default)g(is)f(the)h(n)o(ull)g(string.)1773
+376 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
+436 376 V 21 w(sp)r(ecial)p 623 376 V 22 w(pre\014xes)195
+431 y Fu(The)14 b(list)h(of)e(c)o(haracters)g(that)g(are)h(w)o(ord)f
+(break)h(c)o(haracters,)f(but)h(should)h(b)q(e)f(left)g(in)h
+Fk(text)f Fu(when)195 486 y(it)f(is)f(passed)h(to)f(the)g(completion)h
+(function.)20 b(Programs)11 b(can)h(use)h(this)g(to)f(help)h(determine)
+h(what)195 541 y(kind)i(of)e(completing)i(to)e(do.)19
+b(F)l(or)14 b(instance,)i(Bash)e(sets)h(this)g(v)m(ariable)h(to)e
+Ft(")p Fu($)p Ft(@")g Fu(so)g(that)g(it)h(can)195 596
+y(complete)h(shell)h(v)m(ariables)f(and)g(hostnames.)1773
+713 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 713
+V 21 w(completion)p 510 713 V 21 w(app)r(end)p 715 713
+V 19 w(c)n(haracter)195 768 y Fu(When)d(a)f(single)i(completion)g
+(alternativ)o(e)f(matc)o(hes)f(at)g(the)h(end)g(of)f(the)h(command)f
+(line,)j(this)195 823 y(c)o(haracter)10 b(is)h(app)q(ended)i(to)d(the)g
+(inserted)i(completion)g(text.)18 b(The)11 b(default)g(is)g(a)g(space)g
+(c)o(haracter)195 877 y(\(`)j('\).)19 b(Setting)14 b(this)f(to)g(the)g
+(n)o(ull)i(c)o(haracter)e(\(`)p Ft(\\0)p Fu('\))e(prev)o(en)o(ts)i(an)o
+(ything)h(b)q(eing)h(app)q(ended)f(auto-)195 932 y(matically)l(.)21
+b(This)15 b(can)f(b)q(e)h(c)o(hanged)g(in)g(custom)f(completion)i
+(functions)f(to)f(pro)o(vide)h(the)f(\\most)195 987 y(sensible)i(w)o
+(ord)c(separator)h(c)o(haracter")f(according)i(to)f(an)h
+(application-sp)q(eci\014c)j(command)c(line)195 1042
+y(syn)o(tax)h(sp)q(eci\014cation.)1773 1159 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 1159 V 21 w(ignore)p 391 1159
+V 20 w(completion)p 685 1159 V 21 w(duplicates)195 1214
+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.)1773 1331 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 1331 V 21 w(\014lename)p 444
+1331 V 20 w(completion)p 738 1331 V 21 w(desired)195
+1386 y Fu(Non-zero)c(means)g(that)f(the)h(results)g(of)g(the)g(matc)o
+(hes)f(are)h(to)f(b)q(e)i(treated)e(as)g(\014lenames.)23
+b(This)195 1441 y(is)14 b Fl(always)j Fu(zero)c(on)g(en)o(try)l(,)g
+(and)h(can)f(only)h(b)q(e)g(c)o(hanged)f(within)i(a)e(completion)h(en)o
+(try)f(generator)195 1496 y(function.)38 b(If)21 b(it)g(is)g(set)g(to)f
+(a)g(non-zero)h(v)m(alue,)i(directory)e(names)g(ha)o(v)o(e)g(a)f(slash)
+h(app)q(ended)195 1551 y(and)d(Readline)i(attempts)c(to)h(quote)g
+(completed)i(\014lenames)f(if)g(they)g(con)o(tain)g(an)o(y)f(c)o
+(haracters)195 1605 y(in)f Ft(rl_filename_quote_character)o(s)d
+Fu(and)i Ft(rl_filename_quoting_desired)d Fu(is)k(set)f(to)f(a)195
+1660 y(non-zero)h(v)m(alue.)1773 1778 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 1778 V 21 w(\014lename)p 444
+1778 V 20 w(quoting)p 653 1778 V 21 w(desired)195 1832
+y Fu(Non-zero)14 b(means)g(that)f(the)i(results)f(of)g(the)g(matc)o
+(hes)f(are)h(to)f(b)q(e)i(quoted)f(using)h(double)g(quotes)195
+1887 y(\(or)c(an)h(application-sp)q(eci\014)q(c)j(quoting)d(mec)o
+(hanism\))g(if)h(the)f(completed)h(\014lename)g(con)o(tains)f(an)o(y)
+195 1942 y(c)o(haracters)i(in)i Ft(rl_filename_quote_chars)p
+Fu(.)h(This)f(is)f Fl(always)k Fu(non-zero)d(on)f(en)o(try)l(,)f(and)i
+(can)195 1997 y(only)c(b)q(e)g(c)o(hanged)g(within)h(a)f(completion)g
+(en)o(try)g(generator)e(function.)20 b(The)12 b(quoting)g(is)g
+(e\013ected)195 2052 y(via)j(a)g(call)i(to)d(the)i(function)g(p)q(oin)o
+(ted)g(to)e(b)o(y)h Ft(rl_filename_quoting_function)p
+Fu(.)1773 2169 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
+215 2169 V 21 w(attempted)p 495 2169 V 20 w(completion)p
+789 2169 V 21 w(o)n(v)n(er)195 2224 y Fu(If)47 b(an)g(application-sp)q
+(eci\014)q(c)j(completion)e(function)g(assigned)f(to)g
+Ft(rl_attempted_)195 2279 y(completion_function)24 b
+Fu(sets)i(this)h(v)m(ariable)h(to)e(a)g(non-zero)h(v)m(alue,)j
+(Readline)f(will)f(not)195 2333 y(p)q(erform)e(its)h(default)f
+(\014lename)i(completion)f(if)g(the)f(application's)i(completion)f
+(function)195 2388 y(returns)15 b(no)g(matc)o(hes.)20
+b(It)15 b(should)h(b)q(e)g(set)f(only)h(b)o(y)f(an)g(application's)h
+(completion)h(function.)1773 2506 y(V)l(ariable)-1861
+b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(completion)p 510
+2506 V 21 w(t)n(yp)r(e)195 2560 y Fu(Set)e(to)e(a)i(c)o(haracter)f
+(describing)i(the)e(t)o(yp)q(e)h(of)f(completion)i(Readline)h(is)e
+(curren)o(tly)g(attempt-)195 2615 y(ing;)g(see)f(the)f(description)i
+(of)f Ft(rl_complete_internal\(\))c Fu(\(see)k(Section)h(2.6.2)d
+([Completion)195 2670 y(F)l(unctions],)g(page)g(38\))g(for)f(the)h
+(list)h(of)f(c)o(haracters.)p eop
+%%Page: 42 44
+42 43 bop 75 -58 a Fu(42)1299 b(GNU)15 b(Readline)i(Library)1773
+149 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 149
+18 3 v 21 w(inhibit)p 399 149 V 23 w(completion)195 204
+y Fu(If)14 b(this)h(v)m(ariable)g(is)g(non-zero,)f(completion)i(is)e
+(inhibited.)22 b(The)15 b(completion)g(c)o(haracter)e(will)j(b)q(e)195
+259 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to)e
+Ft(self-insert)p Fu(.)1773 376 y(V)l(ariable)-1861 b
+Fi(rl_compignore_func_t)22 b(*)d Fh(rl)p 704 376 V 22
+w(ignore)p 881 376 V 20 w(some)p 1028 376 V 19 w(completions)p
+1344 376 V 21 w(function)195 431 y Fu(This)g(function,)i(if)e
+(de\014ned,)i(is)e(called)h(b)o(y)f(the)g(completer)g(when)h(real)f
+(\014lename)h(completion)195 486 y(is)e(done,)f(after)f(all)i(the)f
+(matc)o(hing)g(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)25
+b(It)17 b(is)h(passed)f(a)g Ft(NULL)f Fu(ter-)195 540
+y(minated)g(arra)o(y)e(of)h(matc)o(hes.)20 b(The)c(\014rst)f(elemen)o
+(t)h(\()p Ft(matches[0])p Fu(\))d(is)j(the)g(maximal)g(substring)195
+595 y(common)e(to)g(all)h(matc)o(hes.)k(This)c(function)g(can)g
+(re-arrange)f(the)g(list)h(of)f(matc)o(hes)g(as)g(required,)195
+650 y(but)h(eac)o(h)h(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f(m)
+o(ust)g(b)q(e)i(freed.)1773 767 y(V)l(ariable)-1861 b
+Fi(rl_icppfunc_t)21 b(*)e Fh(rl)p 521 767 V 21 w(directory)p
+769 767 V 22 w(completion)p 1065 767 V 21 w(ho)r(ok)195
+822 y Fu(This)k(function,)i(if)e(de\014ned,)j(is)d(allo)o(w)o(ed)g(to)f
+(mo)q(dify)h(the)g(directory)g(p)q(ortion)g(of)f(\014lenames)195
+877 y(Readline)f(completes.)29 b(It)19 b(is)f(called)i(with)f(the)f
+(address)h(of)e(a)h(string)h(\(the)f(curren)o(t)g(directory)195
+932 y(name\))g(as)g(an)h(argumen)o(t,)f(and)h(ma)o(y)f(mo)q(dify)h
+(that)f(string.)30 b(If)19 b(the)f(string)h(is)g(replaced)h(with)195
+986 y(a)g(new)g(string,)h(the)f(old)g(v)m(alue)h(should)g(b)q(e)g
+(freed.)34 b(An)o(y)20 b(mo)q(di\014ed)i(directory)e(name)g(should)195
+1041 y(ha)o(v)o(e)14 b(a)g(trailing)i(slash.)k(The)15
+b(mo)q(di\014ed)h(v)m(alue)g(will)g(b)q(e)f(displa)o(y)o(ed)h(as)e
+(part)g(of)h(the)f(completion,)195 1096 y(replacing)h(the)g(directory)f
+(p)q(ortion)g(of)g(the)g(pathname)g(the)h(user)f(t)o(yp)q(ed.)20
+b(It)14 b(returns)g(an)g(in)o(teger)195 1151 y(that)i(should)h(b)q(e)g
+(non-zero)g(if)g(the)g(function)g(mo)q(di\014es)h(its)e(directory)h
+(argumen)o(t.)23 b(It)17 b(could)g(b)q(e)195 1205 y(used)f(to)e(expand)
+i(sym)o(b)q(olic)h(links)f(or)f(shell)i(v)m(ariables)f(in)g(pathnames.)
+1773 1323 y(V)l(ariable)-1861 b Fi(rl_compdisp_func_t)22
+b(*)d Fh(rl)p 652 1323 V 21 w(completion)p 947 1323 V
+21 w(displa)n(y)p 1141 1323 V 22 w(matc)n(hes)p 1366
+1323 V 21 w(ho)r(ok)195 1377 y Fu(If)11 b(non-zero,)h(then)f(this)h(is)
+f(the)g(address)g(of)g(a)g(function)g(to)g(call)h(when)f(completing)i
+(a)d(w)o(ord)h(w)o(ould)195 1432 y(normally)h(displa)o(y)g(the)f(list)h
+(of)f(p)q(ossible)h(matc)o(hes.)18 b(This)12 b(function)g(is)g(called)g
+(in)g(lieu)h(of)e(Readline)195 1487 y(displa)o(ying)21
+b(the)d(list.)32 b(It)19 b(tak)o(es)f(three)h(argumen)o(ts:)26
+b(\()p Ft(char)14 b(**)p Fk(matc)o(hes)p Fu(,)19 b Ft(int)f
+Fk(n)o(um)p 1688 1487 14 2 v 17 w(matc)o(hes)p Fu(,)195
+1542 y Ft(int)13 b Fk(max)p 368 1542 V 16 w(length)p
+Fu(\))i(where)f Fk(matc)o(hes)h Fu(is)f(the)g(arra)o(y)f(of)g(matc)o
+(hing)h(strings,)g Fk(n)o(um)p 1578 1542 V 16 w(matc)o(hes)i
+Fu(is)e(the)195 1597 y(n)o(um)o(b)q(er)h(of)f(strings)h(in)h(that)e
+(arra)o(y)l(,)f(and)i Fk(max)p 1012 1597 V 16 w(length)h
+Fu(is)f(the)g(length)g(of)g(the)f(longest)h(string)g(in)195
+1651 y(that)e(arra)o(y)l(.)19 b(Readline)d(pro)o(vides)f(a)e(con)o(v)o
+(enience)j(function,)f Ft(rl_display_match_list)p Fu(,)c(that)195
+1706 y(tak)o(es)17 b(care)g(of)g(doing)h(the)f(displa)o(y)i(to)d
+(Readline's)k(output)d(stream.)26 b(That)16 b(function)j(ma)o(y)d(b)q
+(e)195 1761 y(called)h(from)d(this)i(ho)q(ok.)75 1873
+y Fj(2.6.4)30 b(A)21 b(Short)f(Completion)g(Example)137
+1969 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 2024 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 2079 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: 43 45
+43 44 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(43)195 149 y Ft(/*)24 b(fileman.c)e(--)i(A)g(tiny)f
+(application)f(which)h(demonstrates)g(how)g(to)h(use)f(the)267
+201 y(GNU)g(Readline)g(library.)46 b(This)24 b(application)e
+(interactively)g(allows)h(users)267 253 y(to)g(manipulate)g(files)g
+(and)g(their)g(modes.)h(*/)195 357 y(#include)f(<stdio.h>)195
+409 y(#include)g(<sys/types.h>)195 461 y(#include)g(<sys/file.h>)195
+513 y(#include)g(<sys/stat.h>)195 565 y(#include)g(<sys/errno.h>)195
+668 y(#include)g(<readline/readline.h>)195 720 y(#include)g
+(<readline/history.h>)195 824 y(extern)g(char)g(*xmalloc)g(\(\);)195
+928 y(/*)h(The)f(names)g(of)h(functions)e(that)i(actually)f(do)g(the)h
+(manipulation.)e(*/)195 980 y(int)h(com_list)g(__P\(\(char)g(*\)\);)195
+1032 y(int)g(com_view)g(__P\(\(char)g(*\)\);)195 1083
+y(int)g(com_rename)g(__P\(\(char)g(*\)\);)195 1135 y(int)g(com_stat)g
+(__P\(\(char)g(*\)\);)195 1187 y(int)g(com_pwd)g(__P\(\(char)g(*\)\);)
+195 1239 y(int)g(com_delete)g(__P\(\(char)g(*\)\);)195
+1291 y(int)g(com_help)g(__P\(\(char)g(*\)\);)195 1343
+y(int)g(com_cd)g(__P\(\(char)g(*\)\);)195 1395 y(int)g(com_quit)g
+(__P\(\(char)g(*\)\);)195 1499 y(/*)h(A)f(structure)g(which)g(contains)
+g(information)f(on)i(the)f(commands)g(this)g(program)267
+1550 y(can)g(understand.)f(*/)195 1654 y(typedef)h(struct)g({)243
+1706 y(char)g(*name;)g(/*)h(User)f(printable)g(name)g(of)h(the)f
+(function.)g(*/)243 1758 y(rl_icpfunc_t)f(*func;)h(/*)h(Function)e(to)i
+(call)f(to)h(do)f(the)h(job.)f(*/)243 1810 y(char)g(*doc;)g(/*)h
+(Documentation)e(for)h(this)h(function.)46 b(*/)195 1862
+y(})24 b(COMMAND;)195 1966 y(COMMAND)f(commands[])f(=)i({)243
+2017 y({)f("cd",)h(com_cd,)f("Change)f(to)i(directory)f(DIR")g(},)243
+2069 y({)g("delete",)g(com_delete,)f("Delete)h(FILE")h(},)243
+2121 y({)f("help",)g(com_help,)g("Display)g(this)g(text")g(},)243
+2173 y({)g("?",)h(com_help,)e("Synonym)h(for)h(`help'")f(},)243
+2225 y({)g("list",)g(com_list,)g("List)g(files)g(in)h(DIR")f(},)243
+2277 y({)g("ls",)h(com_list,)e("Synonym)h(for)g(`list'")g(},)243
+2329 y({)g("pwd",)g(com_pwd,)g("Print)g(the)h(current)f(working)g
+(directory")f(},)243 2381 y({)h("quit",)g(com_quit,)g("Quit)g(using)g
+(Fileman")g(},)243 2433 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)
+h(to)f(NEWNAME")g(},)243 2484 y({)g("stat",)g(com_stat,)g("Print)g(out)
+g(statistics)g(on)h(FILE")f(},)243 2536 y({)g("view",)g(com_view,)g
+("View)g(the)h(contents)e(of)i(FILE")f(},)243 2588 y({)g(\(char)h
+(*\)NULL,)f(\(rl_icpfunc_t)f(*\)NULL,)h(\(char)g(*\)NULL)g(})195
+2640 y(};)p eop
+%%Page: 44 46
+44 45 bop 75 -58 a Fu(44)1299 b(GNU)15 b(Readline)i(Library)195
+201 y Ft(/*)24 b(Forward)e(declarations.)h(*/)195 253
+y(char)g(*stripwhite)g(\(\);)195 305 y(COMMAND)g(*find_command)f(\(\);)
+195 409 y(/*)i(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f(from)g
+(argv[0].)g(*/)195 461 y(char)g(*progname;)195 565 y(/*)h(When)f
+(non-zero,)g(this)g(means)g(the)g(user)h(is)f(done)h(using)f(this)g
+(program.)g(*/)195 616 y(int)g(done;)195 720 y(char)g(*)195
+772 y(dupstr)g(\(s\))314 824 y(int)h(s;)195 876 y({)243
+928 y(char)f(*r;)243 1032 y(r)g(=)h(xmalloc)f(\(strlen)g(\(s\))g(+)h
+(1\);)243 1083 y(strcpy)f(\(r,)g(s\);)243 1135 y(return)g(\(r\);)195
+1187 y(})195 1291 y(main)g(\(argc,)g(argv\))314 1343
+y(int)h(argc;)314 1395 y(char)g(**argv;)195 1447 y({)243
+1499 y(char)f(*line,)g(*s;)243 1602 y(progname)f(=)i(argv[0];)243
+1706 y(initialize_readline)d(\(\);)i(/*)h(Bind)f(our)h(completer.)e(*/)
+243 1810 y(/*)h(Loop)h(reading)f(and)g(executing)g(lines)g(until)g(the)
+g(user)h(quits.)f(*/)243 1862 y(for)g(\()h(;)g(done)f(==)h(0;)f(\))290
+1914 y({)338 1966 y(line)g(=)h(readline)f(\("FileMan:)f("\);)338
+2069 y(if)i(\(!line\))386 2121 y(break;)338 2225 y(/*)g(Remove)f
+(leading)g(and)g(trailing)g(whitespace)f(from)i(the)f(line.)410
+2277 y(Then,)g(if)h(there)f(is)g(anything)g(left,)g(add)h(it)f(to)h
+(the)f(history)g(list)410 2329 y(and)g(execute)g(it.)h(*/)338
+2381 y(s)g(=)g(stripwhite)e(\(line\);)338 2484 y(if)i(\(*s\))386
+2536 y({)434 2588 y(add_history)e(\(s\);)434 2640 y(execute_line)g
+(\(s\);)p eop
+%%Page: 45 47
+45 46 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(45)386 149 y Ft(})338 253 y(free)23 b(\(line\);)290
+305 y(})243 357 y(exit)g(\(0\);)195 409 y(})195 513 y(/*)h(Execute)e(a)
+i(command)f(line.)g(*/)195 565 y(int)195 616 y(execute_line)f(\(line\))
+314 668 y(char)i(*line;)195 720 y({)243 772 y(register)e(int)i(i;)243
+824 y(COMMAND)f(*command;)243 876 y(char)g(*word;)243
+980 y(/*)g(Isolate)g(the)h(command)f(word.)g(*/)243 1032
+y(i)g(=)h(0;)243 1083 y(while)f(\(line[i])g(&&)g(whitespace)g
+(\(line[i]\)\))290 1135 y(i++;)243 1187 y(word)g(=)h(line)f(+)h(i;)243
+1291 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))290
+1343 y(i++;)243 1447 y(if)g(\(line[i]\))290 1499 y(line[i++])g(=)h
+('\\0';)243 1602 y(command)f(=)g(find_command)g(\(word\);)243
+1706 y(if)g(\(!command\))290 1758 y({)338 1810 y(fprintf)g(\(stderr,)g
+("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)338
+1862 y(return)g(\(-1\);)290 1914 y(})243 2017 y(/*)g(Get)h(argument)f
+(to)g(command,)g(if)g(any.)h(*/)243 2069 y(while)f(\(whitespace)f
+(\(line[i]\)\))290 2121 y(i++;)243 2225 y(word)h(=)h(line)f(+)h(i;)243
+2329 y(/*)f(Call)h(the)f(function.)g(*/)243 2381 y(return)g
+(\(\(*\(command->func\)\))e(\(word\)\);)195 2433 y(})195
+2536 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g
+(and)h(return)f(a)g(pointer)g(to)h(that)267 2588 y(command.)46
+b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f
+(name.)g(*/)195 2640 y(COMMAND)g(*)p eop
+%%Page: 46 48
+46 47 bop 75 -58 a Fu(46)1299 b(GNU)15 b(Readline)i(Library)195
+149 y Ft(find_command)22 b(\(name\))314 201 y(char)i(*name;)195
+253 y({)243 305 y(register)e(int)i(i;)243 409 y(for)f(\(i)h(=)f(0;)h
+(commands[i].name;)e(i++\))290 461 y(if)i(\(strcmp)f(\(name,)g
+(commands[i].name\))f(==)h(0\))338 513 y(return)g(\(&commands[i]\);)243
+616 y(return)g(\(\(COMMAND)f(*\)NULL\);)195 668 y(})195
+772 y(/*)i(Strip)f(whitespace)f(from)i(the)f(start)g(and)h(end)f(of)h
+(STRING.)46 b(Return)24 b(a)f(pointer)267 824 y(into)g(STRING.)g(*/)195
+876 y(char)g(*)195 928 y(stripwhite)f(\(string\))314
+980 y(char)i(*string;)195 1032 y({)243 1083 y(register)e(char)i(*s,)f
+(*t;)243 1187 y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))
+290 1239 y(;)243 1343 y(if)g(\(*s)h(==)f(0\))290 1395
+y(return)g(\(s\);)243 1499 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)
+243 1550 y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))290
+1602 y(t--;)243 1654 y(*++t)h(=)h('\\0';)243 1758 y(return)f(s;)195
+1810 y(})195 1914 y(/*)h(***********************)o(*******)o(********)o
+(*******)o(*******)o(********)o(****)d(*/)195 1966 y(/*)1575
+b(*/)195 2017 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381
+b(*/)195 2069 y(/*)1575 b(*/)195 2121 y(/*)24 b
+(***********************)o(*******)o(********)o(*******)o(*******)o
+(********)o(****)d(*/)195 2225 y(char)i(*command_generator)f
+(__P\(\(const)g(char)i(*,)f(int\)\);)195 2277 y(char)g
+(**fileman_completion)e(__P\(\(const)i(char)g(*,)h(int,)f(int\)\);)195
+2381 y(/*)h(Tell)f(the)g(GNU)h(Readline)f(library)f(how)i(to)g
+(complete.)46 b(We)24 b(want)f(to)h(try)f(to)267 2433
+y(complete)f(on)i(command)f(names)g(if)h(this)f(is)h(the)f(first)g
+(word)g(in)h(the)g(line,)f(or)267 2484 y(on)g(filenames)g(if)g(not.)h
+(*/)195 2536 y(initialize_readline)d(\(\))195 2588 y({)243
+2640 y(/*)i(Allow)g(conditional)g(parsing)g(of)g(the)h(~/.inputrc)e
+(file.)h(*/)p eop
+%%Page: 47 49
+47 48 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(47)243 149 y Ft(rl_readline_name)21 b(=)j("FileMan";)
+243 253 y(/*)f(Tell)h(the)f(completer)g(that)g(we)h(want)f(a)h(crack)f
+(first.)g(*/)243 305 y(rl_attempted_completion_)o(functio)o(n)e(=)j
+(fileman_completion;)195 357 y(})195 461 y(/*)g(Attempt)e(to)i
+(complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23
+b(and)h(END)267 513 y(bound)f(the)g(region)g(of)h(rl_line_buffer)e
+(that)h(contains)g(the)g(word)h(to)267 565 y(complete.)46
+b(TEXT)23 b(is)h(the)f(word)h(to)f(complete.)47 b(We)23
+b(can)h(use)f(the)h(entire)267 616 y(contents)e(of)i(rl_line_buffer)e
+(in)h(case)h(we)f(want)h(to)f(do)h(some)f(simple)267
+668 y(parsing.)46 b(Returnthe)23 b(array)g(of)h(matches,)e(or)i(NULL)f
+(if)h(there)f(aren't)g(any.)g(*/)195 720 y(char)g(**)195
+772 y(fileman_completion)e(\(text,)i(start,)g(end\))314
+824 y(const)g(char)h(*text;)314 876 y(int)g(start,)f(end;)195
+928 y({)243 980 y(char)g(**matches;)243 1083 y(matches)g(=)g(\(char)h
+(**\)NULL;)243 1187 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g
+(of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)314
+1239 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h
+(a)f(file)h(in)f(the)h(current)314 1291 y(directory.)f(*/)243
+1343 y(if)g(\(start)g(==)h(0\))290 1395 y(matches)f(=)h
+(rl_completion_matches)d(\(text,)i(command_generator\);)243
+1499 y(return)g(\(matches\);)195 1550 y(})195 1654 y(/*)h(Generator)e
+(function)h(for)g(command)g(completion.)47 b(STATE)23
+b(lets)g(us)267 1706 y(know)g(whether)g(to)g(start)h(from)f(scratch;)g
+(without)g(any)g(state)267 1758 y(\(i.e.)g(STATE)g(==)h(0\),)f(then)g
+(we)h(start)f(at)h(the)f(top)h(of)f(the)h(list.)f(*/)195
+1810 y(char)g(*)195 1862 y(command_generator)f(\(text,)h(state\))314
+1914 y(const)g(char)h(*text;)314 1966 y(int)g(state;)195
+2017 y({)243 2069 y(static)f(int)g(list_index,)g(len;)243
+2121 y(char)g(*name;)243 2225 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g
+(to)h(complete,)f(initialize)f(now.)47 b(This)314 2277
+y(includes)23 b(saving)g(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)f
+(and)314 2329 y(initializing)h(the)g(index)g(variable)g(to)h(0.)f(*/)
+243 2381 y(if)g(\(!state\))290 2433 y({)338 2484 y(list_index)g(=)g(0;)
+338 2536 y(len)h(=)f(strlen)g(\(text\);)290 2588 y(})p
+eop
+%%Page: 48 50
+48 49 bop 75 -58 a Fu(48)1299 b(GNU)15 b(Readline)i(Library)243
+149 y Ft(/*)23 b(Return)g(the)h(next)f(name)g(which)h(partially)e
+(matches)h(from)g(the)314 201 y(command)g(list.)g(*/)243
+253 y(while)g(\(name)g(=)h(commands[list_index].name)o(\))290
+305 y({)338 357 y(list_index++;)338 461 y(if)g(\(strncmp)f(\(name,)g
+(text,)g(len\))g(==)h(0\))386 513 y(return)f(\(dupstr\(name\)\);)290
+565 y(})243 668 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f
+(NULL.)g(*/)243 720 y(return)g(\(\(char)g(*\)NULL\);)195
+772 y(})195 876 y(/*)h(***********************)o(*******)o(********)o
+(*******)o(*******)o(********)o(****)d(*/)195 928 y(/*)1575
+b(*/)195 980 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)195
+1032 y(/*)1575 b(*/)195 1083 y(/*)24 b(***********************)o
+(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)195
+1187 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47
+b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)267
+1239 y(commands.)f(*/)195 1291 y(static)h(char)g(syscom[1024];)195
+1395 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)195
+1447 y(com_list)g(\(arg\))314 1499 y(char)h(*arg;)195
+1550 y({)243 1602 y(if)f(\(!arg\))290 1654 y(arg)h(=)g("";)243
+1758 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)243
+1810 y(return)g(\(system)g(\(syscom\)\);)195 1862 y(})195
+1966 y(com_view)g(\(arg\))314 2017 y(char)h(*arg;)195
+2069 y({)243 2121 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))290
+2173 y(return)g(1;)243 2277 y(sprintf)g(\(syscom,)f("more)i(\045s",)f
+(arg\);)243 2329 y(return)g(\(system)g(\(syscom\)\);)195
+2381 y(})195 2484 y(com_rename)f(\(arg\))314 2536 y(char)i(*arg;)195
+2588 y({)243 2640 y(too_dangerous)e(\("rename"\);)p eop
+%%Page: 49 51
+49 50 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(49)243 149 y Ft(return)23 b(\(1\);)195
+201 y(})195 305 y(com_stat)g(\(arg\))314 357 y(char)h(*arg;)195
+409 y({)243 461 y(struct)f(stat)g(finfo;)243 565 y(if)g
+(\(!valid_argument)f(\("stat",)h(arg\)\))290 616 y(return)g(\(1\);)243
+720 y(if)g(\(stat)g(\(arg,)h(&finfo\))f(==)g(-1\))290
+772 y({)338 824 y(perror)g(\(arg\);)338 876 y(return)g(\(1\);)290
+928 y(})243 1032 y(printf)g(\("Statistics)f(for)h(`\045s':\\n",)g
+(arg\);)243 1135 y(printf)g(\("\045s)g(has)h(\045d)f(link\045s,)g(and)g
+(is)h(\045d)g(byte\045s)f(in)g(length.\\n",)g(arg,)434
+1187 y(finfo.st_nlink,)434 1239 y(\(finfo.st_nlink)e(==)j(1\))g(?)f("")
+h(:)g("s",)434 1291 y(finfo.st_size,)434 1343 y(\(finfo.st_size)e(==)h
+(1\))h(?)f("")h(:)g("s"\);)243 1395 y(printf)f(\("Inode)g(Last)g
+(Change)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_ctime\)\);)243
+1447 y(printf)g(\(")143 b(Last)23 b(access)g(at:)g(\045s",)h(ctime)f
+(\(&finfo.st_atime\)\);)243 1499 y(printf)g(\(")95 b(Last)23
+b(modified)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_mtime\)\);)243
+1550 y(return)g(\(0\);)195 1602 y(})195 1706 y(com_delete)f(\(arg\))314
+1758 y(char)i(*arg;)195 1810 y({)243 1862 y(too_dangerous)e
+(\("delete"\);)243 1914 y(return)h(\(1\);)195 1966 y(})195
+2069 y(/*)h(Print)f(out)g(help)h(for)f(ARG,)g(or)h(for)f(all)h(of)f
+(the)h(commands)f(if)g(ARG)h(is)267 2121 y(not)f(present.)g(*/)195
+2173 y(com_help)g(\(arg\))314 2225 y(char)h(*arg;)195
+2277 y({)243 2329 y(register)e(int)i(i;)243 2381 y(int)f(printed)g(=)h
+(0;)243 2484 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290
+2536 y({)338 2588 y(if)i(\(!*arg)f(||)g(\(strcmp)g(\(arg,)g
+(commands[i].name\))f(==)i(0\)\))386 2640 y({)p eop
+%%Page: 50 52
+50 51 bop 75 -58 a Fu(50)1299 b(GNU)15 b(Readline)i(Library)434
+149 y Ft(printf)23 b(\("\045s\\t\\t\045s.\\n",)e(commands[i].name,)h
+(commands[i].doc\);)434 201 y(printed++;)386 253 y(})290
+305 y(})243 409 y(if)h(\(!printed\))290 461 y({)338 513
+y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48 b(Possibilties)22
+b(are:\\n",)h(arg\);)338 616 y(for)h(\(i)f(=)h(0;)g(commands[i].name;)d
+(i++\))386 668 y({)434 720 y(/*)i(Print)g(in)h(six)f(columns.)g(*/)434
+772 y(if)g(\(printed)g(==)h(6\))481 824 y({)529 876 y(printed)f(=)h(0;)
+529 928 y(printf)f(\("\\n"\);)481 980 y(})434 1083 y(printf)g
+(\("\045s\\t",)f(commands[i].name\);)434 1135 y(printed++;)386
+1187 y(})338 1291 y(if)i(\(printed\))386 1343 y(printf)f(\("\\n"\);)290
+1395 y(})243 1447 y(return)g(\(0\);)195 1499 y(})195
+1602 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)195
+1654 y(com_cd)f(\(arg\))314 1706 y(char)h(*arg;)195 1758
+y({)243 1810 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))290
+1862 y({)338 1914 y(perror)g(\(arg\);)338 1966 y(return)g(1;)290
+2017 y(})243 2121 y(com_pwd)g(\(""\);)243 2173 y(return)g(\(0\);)195
+2225 y(})195 2329 y(/*)h(Print)f(out)g(the)h(current)f(working)f
+(directory.)h(*/)195 2381 y(com_pwd)g(\(ignore\))314
+2433 y(char)h(*ignore;)195 2484 y({)243 2536 y(char)f(dir[1024],)g(*s;)
+243 2640 y(s)g(=)h(getcwd)f(\(dir,)g(sizeof\(dir\))g(-)g(1\);)p
+eop
+%%Page: 51 53
+51 52 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
+(Readline)844 b(51)243 149 y Ft(if)23 b(\(s)h(==)f(0\))290
+201 y({)338 253 y(printf)g(\("Error)g(getting)g(pwd:)g(\045s\\n",)g
+(dir\);)338 305 y(return)g(1;)290 357 y(})243 461 y(printf)g
+(\("Current)f(directory)h(is)h(\045s\\n",)f(dir\);)243
+513 y(return)g(0;)195 565 y(})195 668 y(/*)h(The)f(user)g(wishes)g(to)h
+(quit)f(using)g(this)h(program.)46 b(Just)24 b(set)f(DONE)267
+720 y(non-zero.)f(*/)195 772 y(com_quit)h(\(arg\))314
+824 y(char)h(*arg;)195 876 y({)243 928 y(done)f(=)h(1;)243
+980 y(return)f(\(0\);)195 1032 y(})195 1135 y(/*)h(Function)e(which)i
+(tells)f(you)g(that)g(you)h(can't)f(do)h(this.)f(*/)195
+1187 y(too_dangerous)f(\(caller\))314 1239 y(char)i(*caller;)195
+1291 y({)243 1343 y(fprintf)f(\(stderr,)457 1395 y("\045s:)h(Too)f
+(dangerous)g(for)g(me)h(to)g(distribute.)46 b(Write)23
+b(it)h(yourself.\\n",)p 1987 1405 21 42 v 457 1447 a(caller\);)195
+1499 y(})195 1602 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 1654 y(an)g(error)g
+(message)g(and)h(return)f(zero.)g(*/)195 1706 y(int)195
+1758 y(valid_argument)f(\(caller,)h(arg\))314 1810 y(char)h(*caller,)e
+(*arg;)195 1862 y({)243 1914 y(if)h(\(!arg)g(||)h(!*arg\))290
+1966 y({)338 2017 y(fprintf)f(\(stderr,)g("\045s:)g(Argument)g
+(required.\\n",)f(caller\);)338 2069 y(return)h(\(0\);)290
+2121 y(})243 2225 y(return)g(\(1\);)195 2277 y(})p eop
+%%Page: 52 54
+52 53 bop 75 -58 a Fu(52)1299 b(GNU)15 b(Readline)i(Library)p
+eop
+%%Page: 53 55
+53 54 bop 75 -58 a Fu(Concept)15 b(Index)1466 b(53)75
+149 y Fq(Concept)27 b(Index)75 321 y Fs(C)75 383 y Ff(command)14
+b(editing)e Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
+b Ff(1)75 513 y Fs(E)75 574 y Ff(editing)15 b(command)f(lines)f
+Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Ff(1)75 704 y Fs(I)75
+765 y Ff(initiali)q(zati)q(on)16 b(\014le,)e(readline)t
+Fe(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)17 b Ff(4)75 811 y(in)o(teraction,)e(readline)5
+b Fe(.)j(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(1)75
+942 y Fs(K)1012 321 y Ff(kill)d(ring)8 b Fe(.)f(.)g(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(3)1012 367 y(killin)q(g)16 b(text)9 b Fe(.)d(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(2)1012
+497 y Fs(N)1012 559 y Ff(notation,)15 b(readline)7 b
+Fe(.)h(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(1)1012
+689 y Fs(R)1012 750 y Ff(readline,)15 b(function)8 b
+Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Ff(19)1012
+880 y Fs(Y)1012 942 y Ff(y)o(anking)15 b(text)t Fe(.)7
+b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17
+b Ff(2)p eop
+%%Page: 54 56
+54 55 bop 75 -58 a Fu(54)1299 b(GNU)15 b(Readline)i(Library)p
+eop
+%%Page: 55 57
+55 56 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
+b(55)75 149 y Fq(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
+b(Index)p 79 307 21 3 v 75 369 a Fd(_rl_digit_)o(p)7
+b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
+b Ff(33)75 415 y Fd(_rl_digit_)o(va)o(lue)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)20 b Ff(33)75 462 y Fd(_rl_lowerc)o(as)o(e_p)6
+b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(33)75
+508 y Fd(_rl_to_low)o(er)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)22 b Ff(33)75 554 y Fd(_rl_to_upp)o(er)6
+b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
+b Ff(33)75 600 y Fd(_rl_upperc)o(as)o(e_p)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)20 b Ff(33)75 733 y Fs(A)75 794 y
+Fd(abort)11 b(\(C-g\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)17 b Ff(17)75 841 y Fd(accept-lin)o(e)10
+b(\(Newline)f(or)j(Return\))6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)19 b Ff(12)75 973 y Fs(B)75 1035 y Fd(backward-c)o(ha)o(r)10
+b(\(C-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(12)75
+1081 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))e
+Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
+b Ff(14)75 1127 y Fd(backward-k)o(il)o(l-l)o(in)o(e)10
+b(\(C-x)h(Rubout\))e Fe(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
+b Ff(15)75 1174 y Fd(backward-k)o(il)o(l-w)o(or)o(d)10
+b(\(M-)501 1172 y Fn(h)p 512 1146 73 2 v 512 1174 a Fm(DEL)p
+512 1181 V 583 1172 a Fn(i)598 1174 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 b Ff(15)75 1220 y
+Fd(backward-w)o(or)o(d)10 b(\(M-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21
+b Ff(12)75 1266 y Fd(beginning-)o(of)o(-hi)o(st)o(ory)9
+b(\(M-<\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)25 b Ff(13)75 1312 y Fd(beginning-)o(of)o(-li)o(ne)9
+b(\(C-a\))c Fe(.)t(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(12)75 1359 y(b)q(ell-st)o(yle)7
+b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)20 b Ff(4)75 1490 y Fs(C)75 1552 y Fd(call-last-)o(kb)o(d-m)
+o(ac)o(ro)9 b(\(C-x)j(e\))5 b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)h(.)f(.)18 b Ff(16)75 1598 y Fd(capitalize)o(-w)o(ord)9
+b(\(M-c\))d Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(14)75 1644 y Fd(character-)o(se)
+o(arc)o(h)10 b(\(C-]\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(17)75
+1691 y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9
+b(\(M-C-]\))e Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)20
+b Ff(17)75 1737 y Fd(clear-scre)o(en)9 b(\(C-l\))g Fe(.)t(.)d(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)21 b Ff(12)75 1783 y(commen)o(t-b)q(egin)9
+b Fe(.)f(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)21
+b Ff(5)75 1829 y Fd(complete)10 b(\()265 1827 y Fn(h)p
+276 1801 74 2 v 276 1829 a Fm(T)m(AB)p 276 1837 V 348
+1827 a Fn(i)363 1829 y Fd(\))f Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
+22 b Ff(16)75 1875 y(completion-query-i)q(tems)t Fe(.)9
+b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(5)75 1922 y(con)o(v)o(ert-meta)10
+b Fe(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
+b Ff(5)75 1968 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10
+b(\(\))c Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)75 2014 y Fd(copy-forwa)o(rd)o
+(-wo)o(rd)9 b(\(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(15)75
+2060 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))d
+Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)18 b Ff(15)75 2193 y Fs(D)75 2255 y Fd(delete-cha)o(r)10
+b(\(C-d\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(14)75
+2301 y Fd(delete-cha)o(r-)o(or-)o(li)o(st)9 b(\(\))d
+Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)18 b Ff(16)75 2347 y Fd(delete-hor)o(iz)o(ont)o(al)o
+(-sp)o(ace)9 b(\(\))i Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)25 b Ff(15)75 2393 y Fd(digit-argu)o(me)o(nt)9
+b(\()p Fc(M-0)p Fd(,)i Fc(M-1)p Fd(,)h(...)f Fc(M--)p
+Fd(\))c Fe(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(15)75
+2439 y(disable-comple)q(tion)9 b Fe(.)g(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)21 b Ff(5)75 2486 y Fd(do-upperca)o(se)o(-ve)o(rs)o(ion)9
+b(\(M-a,)i(M-b,)g(M-)p Fb(x)p Fd(,)h(...)o(\))159 2531
+y Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(17)75 2578 y Fd(downcase-w)o(or)o(d)10
+b(\(M-l\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(14)75
+2624 y Fd(dump-funct)o(io)o(ns)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)22 b Ff(17)75 2670 y Fd(dump-macro)o(s)10 b(\(\))g
+Fe(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Ff(18)1012
+307 y Fd(dump-variab)o(le)o(s)10 b(\(\))e Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)23 b Ff(18)1012 465 y Fs(E)1012 537 y Ff(editing-mo)q(de)12
+b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
+b Ff(5)1012 587 y(enable-k)o(eypad)9 b Fe(.)g(.)d(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(5)1012 638 y Fd(end-kbd-mac)o(ro)9
+b(\(C-x)i(\)\))e Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 b Ff(16)1012 689
+y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))d Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
+b Ff(13)1012 740 y Fd(end-of-line)9 b(\(C-e\))e Fe(.)f(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)23 b Ff(12)1012 791 y Fd(exchange-po)o(in)o(t-a)o(nd)o(-ma)
+o(rk)9 b(\(C-x)j(C-x\))c Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24
+b Ff(17)1012 842 y(expand-tilde)6 b Fe(.)j(.)d(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Ff(5)1012 999 y
+Fs(F)1012 1070 y Fd(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o(-ch)o(ar)9
+b(\(\))f Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
+b Ff(14)1012 1121 y Fd(forward-cha)o(r)10 b(\(C-f\))f
+Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1172 y
+Fd(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))e
+Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
+b Ff(13)1012 1223 y Fd(forward-wor)o(d)10 b(\(M-f\))f
+Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1373 y
+Fs(H)1012 1445 y Fd(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9
+b(\(\))i Fe(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)25 b Ff(13)1012 1496 y Fd(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10
+b(\(\))s Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)17 b Ff(13)1012 1546 y(horizon)o(tal-scrol)q(l-mo)r(de)6
+b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(5)1012 1697 y
+Fs(I)1012 1768 y Ff(input-meta)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(5)1012 1819
+y Fd(insert-comm)o(en)o(t)10 b(\(M-#\))d Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
+b Ff(17)1012 1870 y Fd(insert-comp)o(le)o(tio)o(ns)9
+b(\(M-*\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)18 b Ff(16)1012 1921 y(isearc)o(h-terminators)t
+Fe(.)8 b(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 b Ff(6)1012
+2071 y Fs(K)1012 2143 y Ff(k)o(eymap)9 b Fe(.)e(.)f(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
+b Ff(6)1012 2194 y Fd(kill-line)10 b(\(C-k\))f Fe(.)d(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)24 b Ff(14)1012 2245 y Fd(kill-region)9
+b(\(\))i Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
+b Ff(15)1012 2295 y Fd(kill-whole-)o(li)o(ne)9 b(\(\))g
+Fe(.)c(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(15)1012 2346 y
+Fd(kill-word)10 b(\(M-d\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+24 b Ff(15)1012 2497 y Fs(M)1012 2568 y Ff(mark-mo)q(di\014ed-li)q(nes)
+8 b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012
+2619 y Fd(menu-comple)o(te)9 b(\(\))g Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)23 b Ff(16)1012 2670 y(meta-\015ag)t Fe(.)8 b(.)e(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18
+b Ff(5)p eop
+%%Page: 56 58
+56 57 bop 75 -58 a Fu(56)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fs(N)75 212 y Fd(next-histo)o(ry)9 b(\(C-n\))g
+Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(12)75 258 y Fd(non-increm)o(en)o
+(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9
+b(\(M-n\))159 304 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(13)75
+350 y Fd(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o
+(st)o(ory)9 b(\(M-p\))159 396 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
+b Ff(13)75 521 y Fs(O)75 583 y Ff(output-meta)5 b Fe(.)i(.)f(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(6)75
+716 y Fs(P)75 778 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9
+b(\(M-?\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)25 b Ff(16)75 824 y Fd(prefix-met)o(a)10 b(\()324
+822 y Fn(h)p 335 796 70 2 v 335 824 a Fm(ESC)p 335 832
+V 402 822 a Fn(i)417 824 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23
+b Ff(17)75 870 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))c
+Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)18 b Ff(12)75 1004 y Fs(Q)75 1066 y Fd(quoted-ins)o(er)o
+(t)10 b(\(C-q)h(or)h(C-v\))c Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(14)75 1199 y Fs(R)75
+1261 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))5
+b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)18
+b Ff(17)75 1307 y Fd(readline)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(19)75
+1354 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9 b(\(\))d
+Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)18 b Ff(12)75 1400 y Fd(reverse-se)o(ar)o(ch-)o(hi)o
+(sto)o(ry)9 b(\(C-r\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)23 b Ff(13)75 1446 y Fd(revert-lin)o(e)10
+b(\(M-r\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(17)75
+1493 y Fd(rl_add_def)o(un)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)22 b Ff(26)75 1539 y Fd(rl_add_fun)o(ma)o(p_e)o(nt)o(ry)
+t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(29)75 1585 y Fd(rl_add_und)o(o)7
+b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
+b Ff(30)75 1632 y Fd(rl_alphabe)o(ti)o(c)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(33)75 1678 y Fd(rl_already)o(_p)o(rom)o
+(pt)o(ed)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(23)75
+1724 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_f)o(unc)o(ti)o(on)t
+Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(39)75
+1771 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)6
+b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
+b Ff(41)75 1817 y Fd(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)8
+b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+22 b Ff(40)75 1863 y Fd(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o(ra)o
+(cte)o(rs)5 b Fe(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18
+b Ff(40)75 1910 y Fd(rl_begin_u)o(nd)o(o_g)o(ro)o(up)t
+Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(29)75 1956 y Fd(rl_bind_ke)o(y)7
+b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
+b Ff(27)75 2002 y Fd(rl_bind_ke)o(y_)o(in_)o(ma)o(p)5
+b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(27)75 2049 y
+Fd(rl_binding)o(_k)o(eym)o(ap)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
+b Ff(24)75 2095 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7
+b Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
+b Ff(34)75 2141 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)8
+b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
+b Ff(34)75 2188 y Fd(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)9
+b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)25 b Ff(34)75 2234 y Fd(rl_catch_s)o(ig)o(nal)o(s)6
+b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(36)75
+2281 y Fd(rl_catch_s)o(ig)o(win)o(ch)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)19 b Ff(36)75 2327 y Fd(rl_char_is)o(_q)o(uot)o(ed)o(_p)t
+Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(40)75 2373 y Fd(rl_cleanup)o(_a)o
+(fte)o(r_)o(sig)o(nal)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(36)75 2420 y
+Fd(rl_clear_m)o(es)o(sag)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
+19 b Ff(31)75 2466 y Fd(rl_clear_p)o(en)o(din)o(g_)o(inp)o(ut)8
+b Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)24 b Ff(32)75 2512 y Fd(rl_clear_s)o(ig)o(nal)o(s)6
+b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(37)1012
+149 y Fd(rl_complete)6 b Fe(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)24 b Ff(38)1012 196 y Fd(rl_complete)o(_i)o(nte)o(rn)o(al)s
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(38)1012 242 y Fd(rl_complete)o(r_)o
+(quo)o(te)o(_ch)o(ar)o(act)o(ers)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)20 b Ff(40)1012 288 y Fd(rl_complete)o(r_)o(wor)o
+(d_)o(bre)o(ak)o(_ch)o(ara)o(ct)o(ers)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)
+25 b Ff(40)1012 335 y Fd(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o
+(cte)o(r)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
+b Ff(41)1012 381 y Fd(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o
+(hes)o(_h)o(ook)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)25 b
+Ff(42)1012 427 y Fd(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o(on)s
+Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(38,)c(39)1012
+474 y Fd(rl_completi)o(on)o(_ma)o(tc)o(hes)8 b Fe(.)f(.)f(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
+b Ff(39)1012 520 y Fd(rl_completi)o(on)o(_qu)o(er)o(y_i)o(te)o(ms)9
+b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+23 b Ff(40)1012 566 y Fd(rl_completi)o(on)o(_ty)o(pe)t
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 613 y
+Fd(rl_copy_key)o(ma)o(p)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)21 b Ff(26)1012 659 y Fd(rl_copy_tex)o(t)6 b Fe(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(31)1012 705 y
+Fd(rl_crlf)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(30)1012 752 y Fd(rl_delete_t)o(ex)o(t)8
+b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b
+Ff(31)1012 798 y Fd(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)7
+b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)24 b Ff(24)1012 844 y Fd(rl_deprep_t)o(er)o(min)o(al)t
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(32)1012 891 y
+Fd(rl_ding)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(33)1012 937 y Fd(rl_director)o(y_)o
+(com)o(pl)o(eti)o(on)o(_ho)o(ok)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(42)1012 983 y Fd(rl_discard_)o(ke)o(yma)
+o(p)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(27)1012
+1030 y Fd(rl_dispatch)o(in)o(g)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)21 b Ff(22)1012 1076 y Fd(rl_display_)o(ma)o(tch)o(_l)o
+(ist)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)25 b Ff(33)1012 1122 y Fd(rl_do_undo)8
+b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
+b Ff(30)1012 1169 y Fd(rl_done)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(22)1012
+1215 y Fd(rl_editing_)o(mo)o(de)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)21 b Ff(26)1012 1261 y Fd(rl_end)5 b Fe(.)t(.)h(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
+b Ff(22)1012 1308 y Fd(rl_end_undo)o(_g)o(rou)o(p)6 b
+Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(29)1012 1354
+y Fd(rl_erase_em)o(pt)o(y_l)o(in)o(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18
+b Ff(22)1012 1400 y Fd(rl_event_ho)o(ok)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(23)1012 1447 y Fd(rl_execute_)o(ne)o
+(xt)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(32)1012 1493 y Fd(rl_executin)o(g_)o(key)o(ma)o(p)t
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(24)1012 1539 y Fd(rl_executin)o(g_)
+o(mac)o(ro)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(24)1012
+1586 y Fd(rl_expand_p)o(ro)o(mpt)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)20 b Ff(31)1012 1632 y Fd(rl_explicit)o(_a)o(rg)7
+b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(25)1012
+1678 y Fd(rl_extend_l)o(in)o(e_b)o(uf)o(fer)8 b Fe(.)f(.)f(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
+b Ff(33)1012 1725 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(des)o
+(ire)o(d)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
+b Ff(41)1012 1771 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o
+(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
+b Ff(39)1012 1817 y Fd(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o
+(tio)o(n)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
+b Ff(40)1012 1864 y Fd(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o
+(rs)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
+b Ff(41)1012 1910 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o
+(d)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
+b Ff(41)1012 1956 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o(cti)o
+(on)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
+b Ff(40)1012 2003 y Fd(rl_forced_u)o(pd)o(ate)o(_d)o(isp)o(la)o(y)7
+b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)23 b Ff(30)1012 2049 y Fd(rl_free_lin)o(e_)o(sta)o(te)t
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(36)1012 2095
+y Fd(rl_free_und)o(o_)o(lis)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+19 b Ff(30)1012 2142 y Fd(rl_function)o(_d)o(ump)o(er)t
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(29)1012 2188
+y Fd(rl_function)o(_o)o(f_k)o(ey)o(seq)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
+b Ff(28)1012 2234 y Fd(rl_funmap_n)o(am)o(es)7 b Fe(.)s(.)f(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)21 b Ff(29)1012 2281 y Fd(rl_generic_)o(bi)o(nd)7
+b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(28)1012
+2327 y Fd(rl_get_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)22 b Ff(27)1012 2373 y Fd(rl_get_keym)o(ap)o(_by)o(_n)o
+(ame)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)25 b Ff(27)1012 2420 y Fd(rl_get_keym)o(ap)o
+(_na)o(me)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(27)1012
+2466 y Fd(rl_getc)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(32)1012 2512 y
+Fd(rl_getc_fun)o(ct)o(ion)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20
+b Ff(24)p eop
+%%Page: 57 59
+57 58 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
+b(57)75 149 y Fd(rl_gnu_rea)o(dl)o(ine)o(_p)5 b Fe(.)s(.)i(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)19 b Ff(23)75 195 y Fd(rl_ignore_)o(co)o(mpl)o(et)o(ion)o
+(_du)o(pl)o(ica)o(te)o(s)5 b Fe(.)s(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)18 b Ff(41)75 241 y Fd(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o
+(s_f)o(un)o(cti)o(on)7 b Fe(.)g(.)f(.)g(.)g(.)g(.)24
+b Ff(42)75 286 y Fd(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)9
+b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)25 b Ff(42)75 332 y Fd(rl_initial)o(iz)o(e)9
+b Fe(.)s(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
+b Ff(33)75 378 y Fd(rl_insert_)o(co)o(mpl)o(et)o(ion)o(s)9
+b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)25 b Ff(39)75 424 y Fd(rl_insert_)o(te)o(xt)8
+b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b
+Ff(31)75 469 y Fd(rl_instrea)o(m)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(23)75 515 y Fd(rl_invokin)o(g_)o(key)o
+(se)o(qs)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(28)75
+561 y Fd(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o(p)8
+b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
+b Ff(29)75 606 y Fd(rl_kill_te)o(xt)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(31)75 652 y Fd(rl_last_fu)o(nc)6
+b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
+b Ff(23)75 698 y Fd(rl_library)o(_v)o(ers)o(io)o(n)5
+b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(23)75 743 y Fd(rl_line_bu)o(ff)
+o(er)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(22)75 789 y Fd(rl_list_fu)o(nm)o(ap_)o(na)o(mes)s
+Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(29)75 835 y Fd(rl_make_ba)o(re)o(_ke)o
+(ym)o(ap)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(26)75
+880 y Fd(rl_make_ke)o(ym)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)21 b Ff(26)75 926 y Fd(rl_mark)t Fe(.)t(.)6
+b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+17 b Ff(22)75 972 y Fd(rl_message)7 b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(31)75 1017 y Fd(rl_modifyi)o(ng)
+6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
+b Ff(30)75 1063 y Fd(rl_named_f)o(un)o(cti)o(on)5 b Fe(.)s(.)i(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)19 b Ff(28)75 1109 y Fd(rl_num_cha)o(rs)o(_to)o(_r)o
+(ead)s Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(22)75 1154 y Fd(rl_numeric)o(_a)
+o(rg)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(26)75 1200 y Fd(rl_on_new_)o(li)o(ne)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(30)75 1246 y Fd(rl_on_new_)o(li)o(ne_)o
+(wi)o(th_)o(pro)o(mp)o(t)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(30)75 1291 y Fd(rl_outstre)o(am)6
+b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
+b Ff(23)75 1337 y Fd(rl_parse_a)o(nd)o(_bi)o(nd)5 b Fe(.)s(.)i(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)19 b Ff(28)75 1383 y Fd(rl_pending)o(_i)o(npu)o(t)6
+b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(22)75
+1428 y Fd(rl_point)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(22)75 1474 y Fd(rl_possibl)o(e_)o
+(com)o(pl)o(eti)o(ons)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(38)75 1520 y
+Fd(rl_pre_inp)o(ut)o(_ho)o(ok)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
+b Ff(23)75 1566 y Fd(rl_prep_te)o(rm)o(_fu)o(nc)o(tio)o(n)9
+b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)25 b Ff(24)75 1611 y Fd(rl_prep_te)o(rm)o(ina)o(l)6
+b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(32)75
+1657 y Fd(rl_prompt)8 b Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)24 b Ff(22)75 1703 y Fd(rl_read_in)o(it)o(_fi)o(le)
+5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(28)75
+1748 y Fd(rl_read_ke)o(y)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)23 b Ff(32)75 1794 y Fd(rl_readlin)o(e_)o(nam)o(e)6
+b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(23)75
+1840 y Fd(rl_readlin)o(e_)o(sta)o(te)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
+g(.)19 b Ff(24)75 1885 y Fd(rl_redispl)o(ay)6 b Fe(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(30)75 1931 y
+Fd(rl_redispl)o(ay)o(_fu)o(nc)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
+b Ff(24)75 1977 y Fd(rl_reset_a)o(ft)o(er_)o(si)o(gna)o(l)9
+b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)25 b Ff(37)75 2022 y Fd(rl_reset_l)o(in)o(e_s)o(ta)o
+(te)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(30)75 2068
+y Fd(rl_reset_t)o(er)o(min)o(al)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+19 b Ff(32)75 2114 y Fd(rl_resize_)o(te)o(rmi)o(na)o(l)5
+b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(37)75 2159 y
+Fd(rl_restore)o(_p)o(rom)o(pt)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
+b Ff(31)75 2205 y Fd(rl_save_pr)o(om)o(pt)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(31)75 2251 y Fd(rl_set_key)7
+b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
+b Ff(28)1012 149 y Fd(rl_set_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(27)1012 195 y Fd(rl_set_scre)o(en)o
+(_si)o(ze)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(37)1012
+242 y Fd(rl_set_sign)o(al)o(s)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)21 b Ff(37)1012 288 y Fd(rl_special_)o(pr)o(efi)o(xe)o(s)t
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(41)1012 334 y Fd(rl_startup_)o(ho)o
+(ok)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
+b Ff(23)1012 380 y Fd(rl_stuff_ch)o(ar)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(32)1012 426 y Fd(rl_terminal)o(_n)o
+(ame)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(23)1012
+472 y Fd(rl_tty_set_)o(de)o(fau)o(lt)o(_bi)o(nd)o(ing)o(s)8
+b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
+b Ff(32)1012 518 y Fd(rl_unbind_c)o(om)o(man)o(d_)o(in_)o(ma)o(p)7
+b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)23 b Ff(28)1012 564 y Fd(rl_unbind_f)o(un)o(cti)o(on)o(_in)o(_m)o
+(ap)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)23 b Ff(28)1012 610 y Fd(rl_unbind_k)o(ey)8 b
+Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
+b Ff(27)1012 656 y Fd(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)s
+Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(27)1012 702 y Fd(rl_username)o(_c)o
+(omp)o(le)o(tio)o(n_)o(fun)o(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)18 b Ff(39)1012 833 y Fs(S)1012 895 y
+Fd(self-insert)9 b(\(a,)j(b,)g(A,)g(1,)g(!,)g(...)o(\))6
+b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
+b Ff(14)1012 941 y Fd(set-mark)10 b(\(C-@\))g Fe(.)c(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(17)1012 987 y(sho)o(w-all-if-am)o(bigu)q
+(ous)14 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(6)1012
+1033 y Fd(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))c Fe(.)d(.)i(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
+b Ff(16)1012 1157 y Fs(T)1012 1219 y Fd(tab-insert)9
+b(\(M-)1281 1217 y Fn(h)p 1292 1191 74 2 v 1292 1219
+a Fm(T)m(AB)p 1292 1226 V 1364 1217 a Fn(i)1379 1219
+y Fd(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(14)1012 1265
+y Fd(tilde-expan)o(d)10 b(\(M-~\))f Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
+b Ff(17)1012 1311 y Fd(transpose-c)o(ha)o(rs)9 b(\(C-t\))d
+Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1357 y Fd(transpose-w)o(or)o(ds)9
+b(\(M-t\))d Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1488 y
+Fs(U)1012 1550 y Fd(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))c
+Fe(.)t(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(17)1012 1596 y Fd(universal-a)o(rg)o
+(ume)o(nt)9 b(\(\))d Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(16)1012
+1642 y Fd(unix-line-d)o(is)o(car)o(d)10 b(\(C-u\))5 b
+Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)h(.)f(.)18 b Ff(15)1012 1688 y Fd(unix-word-r)o(ub)o(out)9
+b(\(C-w\))d Fe(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)1012 1734 y Fd(upcase-word)9
+b(\(M-u\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(14)1012
+1865 y Fs(V)1012 1927 y Ff(visible-stats)14 b Fe(.)6
+b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
+b Ff(6)1012 2051 y Fs(Y)1012 2113 y Fd(yank)12 b(\(C-y\))5
+b Fe(.)t(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
+b Ff(15)1012 2159 y Fd(yank-last-a)o(rg)9 b(\(M-.)i(or)h(M-_\))c
+Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
+b Ff(13)1012 2205 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))d
+Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 2251 y Fd(yank-pop)10
+b(\(M-y\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
+b Ff(15)p eop
+%%Page: 58 60
+58 59 bop 75 -58 a Fu(58)1299 b(GNU)15 b(Readline)i(Library)p
+eop
+%%Page: -1 61
+-1 60 bop 1862 -58 a Fu(i)75 149 y Fq(T)-7 b(able)27
+b(of)f(Con)n(ten)n(ts)75 320 y Fs(1)67 b(Command)22 b(Line)i(Editing)d
+Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)g(.)42 b Fs(1)224 389 y Fu(1.1)j(In)o(tro)q(duction)16
+b(to)f(Line)h(Editing)e Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)27 b Fu(1)224 444 y(1.2)45 b(Readline)17 b(In)o(teraction)8
+b Fl(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)23 b Fu(1)374 499 y(1.2.1)44 b(Readline)17
+b(Bare)e(Essen)o(tials)f Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
+b Fu(1)374 553 y(1.2.2)44 b(Readline)17 b(Mo)o(v)o(emen)o(t)d(Commands)
+7 b Fl(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)21 b Fu(2)374 608 y(1.2.3)44 b(Readline)17 b(Killing)h(Commands)
+11 b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)25 b Fu(2)374 663 y(1.2.4)44 b(Readline)17
+b(Argumen)o(ts)12 b Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
+b Fu(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
+(the)f(History)e Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
+b Fu(3)224 773 y(1.3)45 b(Readline)17 b(Init)g(File)e
+Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)29 b Fu(4)374 827 y(1.3.1)44 b(Readline)17
+b(Init)f(File)h(Syn)o(tax)7 b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
+b Fu(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
+b Fl(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)19 b Fu(8)374 937 y(1.3.3)44 b(Sample)16
+b(Init)g(File)11 b Fl(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)26 b Fu(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)h(Commands)
+6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(12)374
+1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
+Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fu(12)374 1101 y(1.4.2)44
+b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
+b Fl(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fu(12)374 1156 y(1.4.3)44
+b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fl(.)8
+b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
+b Fu(13)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
+b Fl(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fu(14)374
+1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
+Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
+b Fu(15)374 1320 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 Fl(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)25 b Fu(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
+b(Macros)6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
+b Fu(16)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
+b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+22 b Fu(17)224 1485 y(1.5)45 b(Readline)17 b(vi)f(Mo)q(de)e
+Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)28 b Fu(18)75 1606 y Fs(2)67 b(Programming)23
+b(with)g(GNU)f(Readline)12 b Fa(.)f(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)35
+b Fs(19)224 1675 y Fu(2.1)45 b(Basic)16 b(Beha)o(vior)8
+b Fl(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fu(19)224 1729 y(2.2)45
+b(Custom)14 b(F)l(unctions)7 b Fl(.)i(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fu(20)374
+1784 y(2.2.1)44 b(Readline)17 b(T)o(yp)q(edefs)9 b Fl(.)g(.)e(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)g(.)f(.)h(.)24 b Fu(20)374 1839 y(2.2.2)44
+b(W)l(riting)16 b(a)e(New)i(F)l(unction)6 b Fl(.)i(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+21 b Fu(21)224 1894 y(2.3)45 b(Readline)17 b(V)l(ariables)f
+Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)29 b Fu(22)224 1949 y(2.4)45 b(Readline)17
+b(Con)o(v)o(enience)g(F)l(unctions)7 b Fl(.)i(.)e(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+23 b Fu(26)374 2003 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e
+Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fu(26)374
+2058 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6 b Fl(.)h(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)21 b Fu(26)374 2113 y(2.4.3)44 b(Binding)17
+b(Keys)5 b Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)20 b Fu(27)374 2168 y(2.4.4)44 b(Asso)q(ciating)16
+b(F)l(unction)g(Names)f(and)g(Bindings)8 b Fl(.)h(.)f(.)f(.)h(.)f(.)h
+(.)23 b Fu(28)374 2222 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f
+Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b
+Fu(29)374 2277 y(2.4.6)44 b(Redispla)o(y)10 b Fl(.)f(.)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(.)f(.)h(.)f(.)26
+b Fu(30)374 2332 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)7
+b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
+b Fu(31)374 2387 y(2.4.8)44 b(Character)14 b(Input)c
+Fl(.)f(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25
+b Fu(32)374 2442 y(2.4.9)44 b(T)l(erminal)16 b(Managemen)o(t)11
+b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(32)374 2496 y(2.4.10)43
+b(Utilit)o(y)17 b(F)l(unctions)c Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)28 b Fu(33)374 2551 y(2.4.11)43 b(Alternate)16
+b(In)o(terface)f Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
+b Fu(34)374 2606 y(2.4.12)43 b(An)16 b(Example)f Fl(.)8
+b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
+b Fu(34)224 2661 y(2.5)45 b(Readline)17 b(Signal)g(Handling)12
+b Fl(.)c(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
+b Fu(35)p eop
+%%Page: -2 62
+-2 61 bop 75 -58 a Fu(ii)1321 b(GNU)15 b(Readline)i(Library)224
+42 y(2.6)45 b(Custom)14 b(Completers)f Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)28 b Fu(37)374
+96 y(2.6.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)10
+b Fl(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fu(37)374 151 y(2.6.2)44
+b(Completion)16 b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+21 b Fu(38)374 206 y(2.6.3)44 b(Completion)16 b(V)l(ariables)c
+Fl(.)c(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(39)374 261
+y(2.6.4)44 b(A)15 b(Short)g(Completion)h(Example)5 b
+Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)20 b Fu(42)75 382 y Fs(Concept)i(Index)10 b Fa(.)i(.)e(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)33 b Fs(53)75 517
+y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)9
+b Fa(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)32 b Fs(55)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
new file mode 100644
--- /dev/null
+++ b/readline/doc/readline_3.ps
@@ -0,0 +1,1227 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.15
+%%CreationDate: Mon Feb  5 11:30:24 2001
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Courier
+%%DocumentSuppliedResources: procset grops 1.15 0
+%%Pages: 13
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.15 0
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Courier
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
+/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 9
+/Times-Bold@0 SF -.18(NA)72 84 S(ME).18 E F0
+(readline \255 get a line from a user with editing)108 96 Q F1(SYNOPSIS)
+72 112.8 Q/F2 10/Times-Bold@0 SF(#include <stdio.h>)108 124.8 Q
+(#include <r)108 136.8 Q(eadline/r)-.18 E(eadline.h>)-.18 E(#include <r)
+108 148.8 Q(eadline/history)-.18 E(.h>)-.7 E/F3 10/Times-Italic@0 SF
+-.15(ch)108 165.6 S(ar *).15 E F2 -.18(re)108 177.6 S(adline).18 E F0
+(\()2.5 E F3(const c)A(har *pr)-.15 E(ompt)-.45 E F0(\);)A F1(COPYRIGHT)
+72 194.4 Q F0(Readline is Cop)108 206.4 Q
+(yright \251 1989\2552001 by the Free Softw)-.1 E(are F)-.1 E
+(oundation, Inc.)-.15 E F1(DESCRIPTION)72 223.2 Q F2 -.18(re)108 235.2 S
+(adline).18 E F0 .088
+(will read a line from the terminal and return it, using)2.588 F F2(pr)
+2.587 E(ompt)-.18 E F0 .087(as a prompt.)2.587 F(If)5.087 E F2(pr)2.587
+E(ompt)-.18 E F0(is)2.587 E F2(NULL)2.587 E F0(or)2.587 E .42
+(the empty string, no prompt is issued.)108 247.2 R .421
+(The line returned is allocated with)5.42 F F3(malloc)2.921 E F0 .421
+(\(3\); the caller must free it).31 F(when \214nished.)108 259.2 Q
+(The line returned has the \214nal ne)5 E(wline remo)-.25 E -.15(ve)-.15
+G(d, so only the te).15 E(xt of the line remains.)-.15 E F2 -.18(re)108
+276 S(adline).18 E F0(of)3.79 E 1.29
+(fers editing capabilities while the user is entering the line.)-.25 F
+1.289(By def)6.289 F 1.289(ault, the line editing com-)-.1 F
+(mands are similar to those of emacs.)108 288 Q 2.5(Av)5 G
+(i\255style line editing interf)-2.5 E(ace is also a)-.1 E -.25(va)-.2 G
+(ilable.).25 E .272
+(This manual page describes only the most basic use of)108 304.8 R F2
+-.18(re)2.772 G(adline).18 E F0 5.272(.M)C .272
+(uch more functionality is a)-5.272 F -.25(va)-.2 G .272(ilable; see).25
+F F3(The GNU Readline Libr)108 316.8 Q(ary)-.15 E F0(and)2.5 E F3
+(The GNU History Libr)2.5 E(ary)-.15 E F0(for additional information.)
+2.5 E F1(RETURN V)72 333.6 Q(ALUE)-1.215 E F2 -.18(re)108 345.6 S
+(adline).18 E F0 1.09(returns the te)3.59 F 1.09(xt of the line read.)
+-.15 F 3.589(Ab)6.09 G 1.089(lank line returns the empty string.)-3.589
+F(If)6.089 E F2(EOF)3.589 E F0 1.089(is encountered)3.589 F .283
+(while reading a line, and the line is empty)108 357.6 R(,)-.65 E F2
+(NULL)2.783 E F0 .283(is returned.)2.783 F .283(If an)5.283 F F2(EOF)
+2.783 E F0 .283(is read with a non\255empty line, it)2.783 F
+(is treated as a ne)108 369.6 Q(wline.)-.25 E F1(NO)72 386.4 Q -.81(TA)
+-.36 G(TION)-.045 E F0 .181(An emacs-style notation is used to denote k)
+108 398.4 R -.15(ey)-.1 G(strok).15 E 2.681(es. Control)-.1 F -.1(ke)
+2.681 G .18(ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 2.68
+(,e)C .18(.g., C\255n means)-2.68 F 2.625(Control\255N. Similarly)108
+410.4 R(,)-.65 E F3(meta)2.625 E F0 -.1(ke)2.625 G .125
+(ys are denoted by M\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 2.625(,s)C 2.625
+(oM)-2.625 G .125(\255x means Meta\255X.)-2.625 F .126(\(On k)5.126 F
+-.15(ey)-.1 G .126(boards without a).15 F F3(meta)108 422.4 Q F0 -.1(ke)
+3.309 G 2.109 -.65(y, M)-.05 H<ad>.65 E F3(x)A F0 .809(means ESC)3.309 F
+F3(x)3.309 E F0 3.309(,i)C .809(.e., press the Escape k)-3.309 F 1.108
+-.15(ey t)-.1 H .808(hen the).15 F F3(x)3.308 E F0 -.1(ke)3.308 G 4.608
+-.65(y. T)-.05 H .808(his mak).65 F .808(es ESC the)-.1 F F3 .808
+(meta pr)3.308 F(e\214x)-.37 E F0(.)A .48(The combination M\255C\255)108
+434.4 R F3(x)A F0 .48(means ESC\255Control\255)2.98 F F3(x)A F0 2.98(,o)
+C 2.98(rp)-2.98 G .48(ress the Escape k)-2.98 F .78 -.15(ey t)-.1 H .48
+(hen hold the Control k).15 F .78 -.15(ey w)-.1 H(hile).15 E
+(pressing the)108 446.4 Q F3(x)2.5 E F0 -.1(ke)2.5 G -.65(y.)-.05 G(\))
+.65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G 3.119
+(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
+.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E
+(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti)
+.4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
+(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
+.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
+(ument to a command that).18 F 1.019(acts in the forw)108 487.2 R 1.018
+(ard direction \(e.g.,)-.1 F F2(kill\255line)3.518 E F0 3.518(\)c)C
+1.018(auses that command to act in a backw)-3.518 F 1.018
+(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 499.2 Q
+(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted.)-.25 E
+.811(When a command is described as)108 516 R F3(killing)3.311 E F0(te)
+3.311 E .811(xt, the te)-.15 F .811(xt deleted is sa)-.15 F -.15(ve)-.2
+G 3.311(df).15 G .812(or possible future retrie)-3.311 F -.25(va)-.25 G
+3.312(l\().25 G F3(yank-)-3.312 E(ing)108 528 Q F0 2.529(\). The)B .029
+(killed te)2.529 F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G
+2.529(na)-2.529 G F3 .029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E
+.329 -.15(ve k)-.25 H .029(ills cause the te).15 F .029
+(xt to be accumulated into one unit,)-.15 F .567(which can be yank)108
+540 R .567(ed all at once.)-.1 F .567(Commands which do not kill te)
+5.567 F .567(xt separate the chunks of te)-.15 F .567(xt on the kill)
+-.15 F(ring.)108 552 Q F1(INITIALIZA)72 568.8 Q(TION FILE)-.855 E F0
+.091(Readline is customized by putting commands in an initialization \
+\214le \(the)108 580.8 R F3(inputr)2.591 E(c)-.37 E F0 2.591
+(\214le\). The)2.591 F .091(name of this \214le)2.591 F 1.442(is tak)108
+592.8 R 1.443(en from the v)-.1 F 1.443(alue of the)-.25 F F2(INPUTRC)
+3.943 E F0(en)3.943 E 1.443(vironment v)-.4 F 3.943(ariable. If)-.25 F
+1.443(that v)3.943 F 1.443(ariable is unset, the def)-.25 F 1.443
+(ault is)-.1 F F3(~/.inputr)108 604.8 Q(c)-.37 E F0 5.359(.W).31 G .359
+(hen a program which uses the readline library starts up, the init \214\
+le is read, and the k)-5.359 F .658 -.15(ey b)-.1 H(ind-).15 E 1.083
+(ings and v)108 616.8 R 1.083(ariables are set.)-.25 F 1.083
+(There are only a fe)6.083 F 3.583(wb)-.25 G 1.083(asic constructs allo)
+-3.583 F 1.084(wed in the readline init \214le.)-.25 F(Blank)6.084 E
+.737(lines are ignored.)108 628.8 R .737(Lines be)5.737 F .737
+(ginning with a)-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737
+(Lines be)5.737 F .737(ginning with a)-.15 F F2($)3.237 E F0 .736
+(indicate conditional)3.236 F 2.614(constructs. Other)108 640.8 R .114
+(lines denote k)2.614 F .414 -.15(ey b)-.1 H .115(indings and v).15 F
+.115(ariable settings.)-.25 F .115
+(Each program using this library may add)5.115 F(its o)108 652.8 Q
+(wn commands and bindings.)-.25 E -.15(Fo)108 669.6 S 2.5(re).15 G
+(xample, placing)-2.65 E(M\255Control\255u: uni)144 686.4 Q -.15(ve)-.25
+G(rsal\255ar).15 E(gument)-.18 E(or)108 698.4 Q(C\255Meta\255u: uni)144
+710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(GNU Readline 4.2)
+72 768 Q(2001 Feb 5)136.79 E(1)206.5 E EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R
+(into the)108 84 Q/F1 10/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0 -.1
+(wo)2.5 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G
+(cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument)
+-.37 E F0(.).68 E 2.795(The follo)108 100.8 R 2.795
+(wing symbolic character names are recognized while processing k)-.25 F
+3.095 -.15(ey b)-.1 H(indings:).15 E F1(DEL)5.295 E F0(,).53 E F1(ESC)
+5.295 E F0(,).72 E F1(ESCAPE)108 112.8 Q F0(,).73 E F1(LFD)2.5 E F0(,)
+.28 E F1(NEWLINE)2.5 E F0(,).73 E F1(RET)2.5 E F0(,)1.27 E F1(RETURN)2.5
+E F0(,)1.1 E F1 -.4(RU)2.5 G(BOUT).4 E F0(,)1.27 E F1(SP)2.5 E -.3(AC)
+-.9 G(E).3 E F0(,).73 E F1(SPC)2.5 E F0 2.5(,a).72 G(nd)-2.5 E F1 -.5
+(TA)2.5 G(B).5 E F0(.).27 E .209
+(In addition to command names, readline allo)108 129.6 R .209(ws k)-.25
+F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
+(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
+-.1 H(s).15 E(pressed \(a)108 141.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A/F2
+10/Times-Bold@0 SF -.25(Ke)87 163.2 S 2.5(yB).25 G(indings)-2.5 E F0
+.382(The syntax for controlling k)108 175.2 R .682 -.15(ey b)-.1 H .382
+(indings in the).15 F F1(inputr)2.882 E(c)-.37 E F0 .382
+(\214le is simple.)2.882 F .382(All that is required is the name of the)
+5.382 F .382(command or the te)108 187.2 R .383(xt of a macro and a k)
+-.15 F .683 -.15(ey s)-.1 H .383
+(equence to which it should be bound. The name may be speci-).15 F .853
+(\214ed in one of tw)108 199.2 R 3.353(ow)-.1 G .853
+(ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
+(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr)
+3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
+(ey)-.1 G 3.145(sequence. When)108 211.2 R .645(using the form)3.145 F
+F2 -.1(ke)3.145 G(yname).1 E F0(:)A F1(function-name).833 E F0(or)3.145
+E F1(macr)3.145 E(o)-.45 E F0(,)A F1 -.1(ke)3.145 G(yname)-.2 E F0 .645
+(is the name of a k)3.145 F .946 -.15(ey s)-.1 H(pelled).15 E
+(out in English.)108 223.2 Q -.15(Fo)5 G 2.5(re).15 G(xample:)-2.65 E
+(Control\255u: uni)144 247.2 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)
+-.18 E(Meta\255Rubout: backw)144 259.2 Q(ard\255kill\255w)-.1 E(ord)-.1
+E(Control\255o: "> output")144 271.2 Q .229(In the abo)108 288 R .529
+-.15(ve ex)-.15 H(ample,).15 E F1(C\255u)2.729 E F0 .229
+(is bound to the function)2.729 F F2(uni)2.729 E -.1(ve)-.1 G
+(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)2.729 E F0 .228
+(is bound to the function)2.729 F F2(backward\255kill\255w)108 300 Q
+(ord)-.1 E F0 3.837(,a)C(nd)-3.837 E F1(C\255o)3.837 E F0 1.337
+(is bound to run the macro e)3.837 F 1.337
+(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
+312 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(into the line\).)2.5 E .056(In the second form,)108 328.8 R F2("k)2.556
+E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
+2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
+(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
+(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
+(denoting an entire k)108 340.8 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+ay be speci\214ed by placing the sequence within double quotes.).15 F
+(Some)6.284 E(GNU Emacs style k)108 352.8 Q .3 -.15(ey e)-.1 H
+(scapes can be used, as in the follo).15 E(wing e)-.25 E(xample.)-.15 E
+("\\C\255u": uni)144 376.8 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18
+E("\\C\255x\\C\255r": re\255read\255init\255\214le)144 388.8 Q
+("\\e[11~": "Function K)144 400.8 Q .3 -.15(ey 1)-.25 H(").15 E .238
+(In this e)108 417.6 R(xample,)-.15 E F1(C-u)2.738 E F0 .238(is ag)2.738
+F .238(ain bound to the function)-.05 F F2(uni)2.738 E -.1(ve)-.1 G
+(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .237(C-x C-r)5.238 F F0 .237
+(is bound to the function)2.737 F F2 -.18(re)108 429.6 S<ad72>.18 E
+(ead\255init\255\214le)-.18 E F0 3.224(,a)C(nd)-3.224 E F1 .724
+(ESC [ 1 1 ~)3.224 F F0 .724(is bound to insert the te)3.224 F(xt)-.15 E
+F3 .725(Function Key 1)3.225 F F0 5.725(.T)C .725(he full set of GNU)
+-5.725 F(Emacs style escape sequences is)108 441.6 Q F2<5c43ad>144 453.6
+Q F0(control pre\214x)20.3 E F2<5c4dad>144 465.6 Q F0(meta pre\214x)
+18.08 E F2(\\e)144 477.6 Q F0(an escape character)28.78 E F2(\\\\)144
+489.6 Q F0(backslash)30.44 E F2(\\")144 501.6 Q F0
+(literal ", a double quote)27.67 E F2(\\')144 513.6 Q F0
+(literal ', a single quote)29.89 E(In addition to the GNU Emacs style e\
+scape sequences, a second set of backslash escapes is a)108 530.4 Q -.25
+(va)-.2 G(ilable:).25 E F2(\\a)144 542.4 Q F0(alert \(bell\))28.22 E F2
+(\\b)144 554.4 Q F0(backspace)27.66 E F2(\\d)144 566.4 Q F0(delete)27.66
+E F2(\\f)144 578.4 Q F0(form feed)29.89 E F2(\\n)144 590.4 Q F0(ne)27.66
+E(wline)-.25 E F2(\\r)144 602.4 Q F0(carriage return)28.78 E F2(\\t)144
+614.4 Q F0(horizontal tab)29.89 E F2(\\v)144 626.4 Q F0 -.15(ve)28.22 G
+(rtical tab).15 E F2(\\)144 638.4 Q F1(nnn)A F0
+(the character whose ASCII code is the octal v)18.22 E(alue)-.25 E F1
+(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)144 650.4 Q F1(nnn)A
+F0(the character whose ASCII code is the he)13.22 E(xadecimal v)-.15 E
+(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E .74
+(When entering the te)108 667.2 R .74(xt of a macro, single or double q\
+uotes should be used to indicate a macro de\214nition.)-.15 F .089
+(Unquoted te)108 679.2 R .089(xt is assumed to be a function name.)-.15
+F .09(In the macro body)5.089 F 2.59(,t)-.65 G .09
+(he backslash escapes described abo)-2.59 F -.15(ve)-.15 G(are e)108
+691.2 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
+(ther character in the macro te)-2.5 E(xt, including " and '.)-.15 E F2
+(Bash)108 708 Q F0(allo)2.93 E .43(ws the current readline k)-.25 F .73
+-.15(ey b)-.1 H .429(indings to be displayed or modi\214ed with the).15
+F F2(bind)2.929 E F0 -.2(bu)2.929 G .429(iltin command.).2 F 2.515
+(The editing mode may be switched during interacti)108 720 R 2.815 -.15
+(ve u)-.25 H 2.515(se by using the).15 F F2<ad6f>5.015 E F0 2.516
+(option to the)5.016 F F2(set)5.016 E F0 -.2(bu)5.016 G(iltin).2 E
+(GNU Readline 4.2)72 768 Q(2001 Feb 5)136.79 E(2)206.5 E EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 3.12
+(command. Other)108 84 R .62(programs using this library pro)3.12 F .619
+(vide similar mechanisms.)-.15 F(The)5.619 E/F1 10/Times-Italic@0 SF
+(inputr)3.119 E(c)-.37 E F0 .619(\214le may be edited)3.119 F
+(and re-read if a program does not pro)108 96 Q(vide an)-.15 E 2.5(yo)
+-.15 G(ther means to incorporate ne)-2.5 E 2.5(wb)-.25 G(indings.)-2.5 E
+/F2 10/Times-Bold@0 SF -.92(Va)87 112.8 S(riables).92 E F0 .043
+(Readline has v)108 124.8 R .044
+(ariables that can be used to further customize its beha)-.25 F(vior)-.2
+E 5.044(.A)-.55 G -.25(va)-2.5 G .044(riable may be set in the).25 F F1
+(inpu-)2.544 E(tr)108 136.8 Q(c)-.37 E F0
+(\214le with a statement of the form)2.5 E F2(set)144 153.6 Q F1
+(variable\255name value)2.5 E F0 .807(Except where noted, readline v)108
+170.4 R .807(ariables can tak)-.25 F 3.307(et)-.1 G .807(he v)-3.307 F
+(alues)-.25 E F2(On)3.307 E F0(or)3.307 E F2(Off)3.307 E F0 .807
+(\(without re)3.307 F -.05(ga)-.15 G .807(rd to case\).).05 F .807
+(The v)5.807 F(ari-)-.25 E(ables and their def)108 182.4 Q(ault v)-.1 E
+(alues are:)-.25 E F2(bell\255style \(audible\))108 199.2 Q F0 .01
+(Controls what happens when readline w)144 211.2 R .011
+(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F2(none)
+2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E
+.94(rings the bell.)144 223.2 R .94(If set to)5.94 F F2(visible)3.44 E
+F0 3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25
+(va)-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F2(audible)3.44 E F0
+(,)A(readline attempts to ring the terminal')144 235.2 Q 2.5(sb)-.55 G
+(ell.)-2.5 E F2(comment\255begin \(`)108 247.2 Q(`#')-.63 E('\))-.63 E
+F0 .062(The string that is inserted in)144 259.2 R F2(vi)2.562 E F0 .062
+(mode when the)2.562 F F2(insert\255comment)2.562 E F0 .062
+(command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562
+E(mand is bound to)144 271.2 Q F2(M\255#)2.5 E F0(in emacs mode and to)
+2.5 E F2(#)2.5 E F0(in vi command mode.)2.5 E F2(completion\255ignor)108
+283.2 Q(e\255case \(Off\))-.18 E F0(If set to)144 295.2 Q F2(On)2.5 E F0
+2.5(,r)C(eadline performs \214lename matching and completion in a case\
+\255insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F2
+(completion\255query\255items \(100\))108 307.2 Q F0 .53
+(This determines when the user is queried about vie)144 319.2 R .529
+(wing the number of possible completions gen-)-.25 F .56(erated by the)
+144 331.2 R F2(possible\255completions)3.06 E F0 3.06(command. It)3.06 F
+.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v)
+-.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 343.2 R
+.783(If the number of possible completions is greater than or equal to \
+the v)5.783 F .782(alue of this)-.25 F -.25(va)144 355.2 S .237
+(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
+-.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
+.237(re simply listed)-2.737 F(on the terminal.)144 367.2 Q F2(con)108
+379.2 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 391.2
+R F2(On)3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4
+G .613(rt characters with the eighth bit set to an ASCII k).15 F .912
+-.15(ey s)-.1 H .612(equence by).15 F 1.315(stripping the eighth bit an\
+d pre\214xing it with an escape character \(in ef)144 403.2 R 1.316
+(fect, using escape as the)-.25 F F1(meta pr)144 415.2 Q(e\214x)-.37 E
+F0(\).)A F2(disable\255completion \(Off\))108 427.2 Q F0 .038(If set to)
+144 439.2 R F2(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)
+-2.538 F .038(ord completion.)-.1 F .038
+(Completion characters will be inserted into the)5.038 F(line as if the)
+144 451.2 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F2(self-insert)2.5 E
+F0(.)A F2(editing\255mode \(emacs\))108 463.2 Q F0 .215
+(Controls whether readline be)144 475.2 R .215(gins with a set of k)-.15
+F .515 -.15(ey b)-.1 H .216(indings similar to emacs or vi.).15 F F2
+(editing\255mode)5.216 E F0(can be set to either)144 487.2 Q F2(emacs)
+2.5 E F0(or)2.5 E F2(vi)2.5 E F0(.)A F2(enable\255k)108 499.2 Q
+(eypad \(Off\))-.1 E F0 .893(When set to)144 511.2 R F2(On)3.393 E F0
+3.393(,r)C .893(eadline will try to enable the application k)-3.393 F
+-.15(ey)-.1 G .893(pad when it is called.).15 F .892(Some sys-)5.893 F
+(tems need this to enable the arro)144 523.2 Q 2.5(wk)-.25 G -.15(ey)
+-2.6 G(s.).15 E F2(expand\255tilde \(Off\))108 535.2 Q F0(If set to)144
+547.2 Q F2(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
+(xpansion is performed when readline attempts w)-.15 E(ord completion.)
+-.1 E F2(horizontal\255scr)108 559.2 Q(oll\255mode \(Off\))-.18 E F0
+.448(When set to)144 571.2 R F2(On)2.948 E F0 2.948(,m)C(ak)-2.948 E
+.448(es readline use a single line for display)-.1 F 2.948(,s)-.65 G
+.449(crolling the input horizontally on a)-2.948 F 1.194(single screen \
+line when it becomes longer than the screen width rather than wrapping \
+to a ne)144 583.2 R(w)-.25 E(line.)144 595.2 Q F2(input\255meta \(Off\))
+108 607.2 Q F0 .367(If set to)144 619.2 R F2(On)2.867 E F0 2.867(,r)C
+.367(eadline will enable eight-bit input \(that is, it will not clear t\
+he eighth bit in the char)-2.867 F(-)-.2 E .957(acters it reads\), re)
+144 631.2 R -.05(ga)-.15 G .956
+(rdless of what the terminal claims it can support.).05 F .956(The name)
+5.956 F F2(meta\255\215ag)3.456 E F0 .956(is a)3.456 F(synon)144 643.2 Q
+(ym for this v)-.15 E(ariable.)-.25 E F2(isear)108 655.2 Q
+(ch\255terminators \(`)-.18 E(`C\255[ C\255J')-.63 E('\))-.63 E F0 .439
+(The string of characters that should terminate an incremental search w\
+ithout subsequently e)144 667.2 R -.15(xe)-.15 G(cut-).15 E .935
+(ing the character as a command.)144 679.2 R .935(If this v)5.935 F .935
+(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
+(alue, the characters)-3.684 F F1(ESC)3.434 E F0(and)144 691.2 Q F1
+(C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F2 -.1(ke)
+108 703.2 S(ymap \(emacs\)).1 E F0 2.323(Set the current readline k)144
+715.2 R -.15(ey)-.1 G 4.823(map. The).15 F 2.323(set of le)4.823 F -.05
+(ga)-.15 G 4.823(lk).05 G -.15(ey)-4.923 G 2.323(map names is).15 F F1
+2.324(emacs, emacs-standar)4.823 F(d,)-.37 E .809
+(emacs-meta, emacs-ctlx, vi, vi-mo)144 727.2 R(ve)-.1 E 3.308(,v)-.1 G
+(i-command)-3.308 E F0 3.308(,a)C(nd)-3.308 E F1(vi-insert)3.308 E F0(.)
+.68 E F1(vi)5.808 E F0 .808(is equi)3.308 F -.25(va)-.25 G .808(lent to)
+.25 F F1(vi-command)3.308 E F0(;)A(GNU Readline 4.2)72 768 Q(2001 Feb 5)
+136.79 E(3)206.5 E EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
+/Times-Italic@0 SF(emacs)144 84 Q F0 .697(is equi)3.196 F -.25(va)-.25 G
+.697(lent to).25 F F1(emacs-standar)3.197 E(d)-.37 E F0 5.697(.T)C .697
+(he def)-5.697 F .697(ault v)-.1 F .697(alue is)-.25 F F1(emacs)3.197 E
+F0 5.697(.T).27 G .697(he v)-5.697 F .697(alue of)-.25 F/F2 10
+/Times-Bold@0 SF(editing\255mode)3.197 E F0(also af)144 96 Q
+(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F2
+(mark\255dir)108 108 Q(ectories \(On\))-.18 E F0(If set to)144 120 Q F2
+(On)2.5 E F0 2.5(,c)C(ompleted directory names ha)-2.5 E .3 -.15(ve a s)
+-.2 H(lash appended.).15 E F2(mark\255modi\214ed\255lines \(Off\))108
+132 Q F0(If set to)144 144 Q F2(On)2.5 E F0 2.5(,h)C
+(istory lines that ha)-2.5 E .3 -.15(ve b)-.2 H
+(een modi\214ed are displayed with a preceding asterisk \().15 E F2(*)A
+F0(\).)A F2(output\255meta \(Off\))108 156 Q F0 .507(If set to)144 168 R
+F2(On)3.007 E F0 3.007(,r)C .507(eadline will display characters with t\
+he eighth bit set directly rather than as a meta-)-3.007 F(pre\214x)144
+180 Q(ed escape sequence.)-.15 E F2
+(print\255completions\255horizontally \(Off\))108 192 Q F0 1.318
+(If set to)144 204 R F2(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
+play completions with matches sorted horizontally in alphabetical)-3.818
+F(order)144 216 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
+E F2(sho)108 228 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .478
+(This alters the def)144 240 R .478(ault beha)-.1 F .478
+(vior of the completion functions.)-.2 F .477(If set to)5.477 F F2(on)
+2.977 E F0 2.977(,w)C .477(ords which ha)-3.077 F .777 -.15(ve m)-.2 H
+(ore).15 E 1.264(than one possible completion cause the matches to be l\
+isted immediately instead of ringing the)144 252 R(bell.)144 264 Q F2
+(visible\255stats \(Off\))108 276 Q F0 .847(If set to)144 288 R F2(On)
+3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
+(st)-.55 G .846(ype as reported by)-3.346 F F1(stat)3.346 E F0 .846
+(\(2\) is appended to the \214lename)B
+(when listing possible completions.)144 300 Q F2(Conditional Constructs)
+87 316.8 Q F0 .05(Readline implements a f)108 328.8 R .05(acility simil\
+ar in spirit to the conditional compilation features of the C preproces\
+sor)-.1 F .097(which allo)108 340.8 R .097(ws k)-.25 F .396 -.15(ey b)
+-.1 H .096(indings and v).15 F .096
+(ariable settings to be performed as the result of tests.)-.25 F .096
+(There are four parser)5.096 F(directi)108 352.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F2($if)108 369.6 Q F0(The)24.89 E F2($if)2.962 E
+F0 .462(construct allo)2.962 F .463(ws bindings to be made based on the\
+ editing mode, the terminal being used,)-.25 F .478
+(or the application using readline.)144 381.6 R .477(The te)5.477 F .477
+(xt of the test e)-.15 F .477
+(xtends to the end of the line; no characters)-.15 F
+(are required to isolate it.)144 393.6 Q F2(mode)144 410.4 Q F0(The)
+12.67 E F2(mode=)3.711 E F0 1.211(form of the)3.711 F F2($if)3.711 E F0
+(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
+(sed to test whether readline is in emacs or vi)-3.711 F 3.065
+(mode. This)180 422.4 R .565(may be used in conjunction with the)3.065 F
+F2 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
+3.065 F .029(set bindings in the)180 434.4 R F1(emacs-standar)2.529 E(d)
+-.37 E F0(and)2.529 E F1(emacs-ctlx)2.529 E F0 -.1(ke)2.529 G .029
+(ymaps only if readline is starting out)-.05 F(in emacs mode.)180 446.4
+Q F2(term)144 463.2 Q F0(The)15.46 E F2(term=)3.197 E F0 .696
+(form may be used to include terminal-speci\214c k)3.197 F .996 -.15
+(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 475.2 R
+.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
+(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 487.2 Q F2(=)3.004
+E F0 .504(is tested ag)3.004 F .503(ainst the full name of the terminal\
+ and the portion of the terminal name)-.05 F(before the \214rst)180
+499.2 Q F2<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F1(sun)2.5 E F0
+(to match both)2.5 E F1(sun)2.5 E F0(and)2.5 E F1(sun\255cmd)2.5 E F0
+2.5(,f).77 G(or instance.)-2.5 E F2(application)144 516 Q F0(The)180 528
+Q F2(application)3.003 E F0 .503
+(construct is used to include application-speci\214c settings.)3.003 F
+.503(Each program)5.503 F .114(using the readline library sets the)180
+540 R F1 .114(application name)2.614 F F0 2.614(,a)C .114
+(nd an initialization \214le can test for a)-2.614 F .5(particular v)180
+552 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
+(ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397
+(ci\214c program.)180 564 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+(nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
+(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 576 Q
+(vious w)-.25 E(ord in Bash:)-.1 E F2($if)180 600 Q F0(Bash)2.5 E 2.5
+(#Q)180 612 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
+("\\C-xq": "\\eb\\"\\ef\\"")180 624 Q F2($endif)180 636 Q($endif)108
+652.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
+(xample, terminates an)-.15 E F2($if)2.5 E F0(command.)2.5 E F2($else)
+108 669.6 Q F0(Commands in this branch of the)15.45 E F2($if)2.5 E F0
+(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
+(cuted if the test f).15 E(ails.)-.1 E F2($include)108 686.4 Q F0 .356
+(This directi)144 698.4 R .656 -.15(ve t)-.25 H(ak).15 E .356
+(es a single \214lename as an ar)-.1 F .357
+(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
+144 710.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+-.15(ve w)-.25 H(ould read).05 E F1(/etc/inputr)2.5 E(c)-.37 E F0(:)A
+(GNU Readline 4.2)72 768 Q(2001 Feb 5)136.79 E(4)206.5 E EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
+/Times-Bold@0 SF($include)144 84 Q/F2 10/Times-Italic@0 SF(/etc/inputr)
+5.833 E(c)-.37 E/F3 9/Times-Bold@0 SF(SEARCHING)72 100.8 Q F0 1.004
+(Readline pro)108 112.8 R 1.003(vides commands for searching through th\
+e command history for lines containing a speci\214ed)-.15 F 2.5
+(string. There)108 124.8 R(are tw)2.5 E 2.5(os)-.1 G(earch modes:)-2.5 E
+F2(incr)2.5 E(emental)-.37 E F0(and)2.5 E F2(non-incr)2.5 E(emental)-.37
+E F0(.).51 E .697(Incremental searches be)108 141.6 R .697
+(gin before the user has \214nished typing the search string.)-.15 F
+.698(As each character of the)5.698 F .113
+(search string is typed, readline displays the ne)108 153.6 R .112
+(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
+E 5.112(.A)-.55 G(n)-5.112 E .544
+(incremental search requires only as man)108 165.6 R 3.044(yc)-.15 G
+.544(haracters as needed to \214nd the desired history entry)-3.044 F
+5.545(.T)-.65 G 3.045(os)-6.345 G(earch)-3.045 E(backw)108 177.6 Q .181
+(ard in the history for a particular string, type)-.1 F F1(C\255r)2.681
+E F0 5.181(.T)C(yping)-5.981 E F1(C\255s)2.68 E F0 .18(searches forw)
+2.68 F .18(ard through the history)-.1 F(.)-.65 E .354
+(The characters present in the v)108 189.6 R .354(alue of the)-.25 F F1
+(isear)2.854 E(ch-terminators)-.18 E F0 -.25(va)2.854 G .354
+(riable are used to terminate an incremen-).25 F .6(tal search.)108
+201.6 R .6(If that v)5.6 F .6(ariable has not been assigned a v)-.25 F
+.6(alue the)-.25 F F2(Escape)3.1 E F0(and)3.1 E F1(C\255J)3.1 E F0 .6
+(characters will terminate an)3.1 F .122(incremental search.)108 213.6 R
+F1(C\255G)5.122 E F0 .122
+(will abort an incremental search and restore the original line.)2.622 F
+.123(When the search is)5.123 F(terminated, the history entry containin\
+g the search string becomes the current line.)108 225.6 Q 2.407 -.8
+(To \214)108 242.4 T .806
+(nd other matching entries in the history list, type).8 F F1(C\255s)
+3.306 E F0(or)3.306 E F1(C\255r)3.306 E F0 .806(as appropriate.)3.306 F
+.806(This will search back-)5.806 F -.1(wa)108 254.4 S 1.308(rd or forw)
+.1 F 1.309(ard in the history for the ne)-.1 F 1.309
+(xt line matching the search string typed so f)-.15 F(ar)-.1 E 6.309(.A)
+-.55 G 1.609 -.15(ny o)-6.309 H 1.309(ther k).15 F -.15(ey)-.1 G .317
+(sequence bound to a readline command will terminate the search and e)
+108 266.4 R -.15(xe)-.15 G .317(cute that command.).15 F -.15(Fo)5.317 G
+2.817(ri).15 G(nstance,)-2.817 E 3.48(an)108 278.4 S -.25(ew)-3.48 G .98
+(line will terminate the search and accept the line, thereby e).25 F
+-.15(xe)-.15 G .981(cuting the command from the history).15 F 3.062
+(list. A)108 290.4 R(mo)3.062 E -.15(ve)-.15 G .562
+(ment command will terminate the search, mak).15 F 3.062(et)-.1 G .562
+(he last line found the current line, and be)-3.062 F(gin)-.15 E
+(editing.)108 302.4 Q .567(Non-incremental searches read the entire sea\
+rch string before starting to search for matching history lines.)108
+319.2 R(The search string may be typed by the user or be part of the co\
+ntents of the current line.)108 331.2 Q F3(EDITING COMMANDS)72 348 Q F0
+1.392(The follo)108 360 R 1.391
+(wing is a list of the names of the commands and the def)-.25 F 1.391
+(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
+3.891(ya)-.15 G(re)-3.891 E 2.5(bound. Command)108 372 R
+(names without an accompan)2.5 E(ying k)-.15 E .3 -.15(ey s)-.1 H
+(equence are unbound by def).15 E(ault.)-.1 E .054(In the follo)108
+388.8 R .054(wing descriptions,)-.25 F F2(point)2.554 E F0 .055
+(refers to the current cursor position, and)2.554 F F2(mark)2.555 E F0
+.055(refers to a cursor position)2.555 F(sa)108 400.8 Q -.15(ve)-.2 G
+2.5(db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5
+(command. The)2.5 F(te)2.5 E
+(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
+2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 417.6 Q(or Mo)-.25 E(ving)-.1
+E(beginning\255of\255line \(C\255a\))108 429.6 Q F0(Mo)144 441.6 Q .3
+-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
+(end\255of\255line \(C\255e\))108 453.6 Q F0(Mo)144 465.6 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108
+477.6 S(rward\255char \(C\255f\)).25 E F0(Mo)144 489.6 Q .3 -.15(ve f)
+-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
+(backward\255char \(C\255b\))108 501.6 Q F0(Mo)144 513.6 Q .3 -.15(ve b)
+-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 525.6 S(rward\255w)
+.25 E(ord \(M\255f\))-.1 E F0(Mo)144 537.6 Q .823 -.15(ve f)-.15 H(orw)
+.15 E .523(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W)
+-.1 F .522(ords are composed of alphanumeric characters \(let-)-.8 F
+(ters and digits\).)144 549.6 Q F1(backward\255w)108 561.6 Q
+(ord \(M\255b\))-.1 E F0(Mo)144 573.6 Q 1.71 -.15(ve b)-.15 H 1.41
+(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
+(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
+(characters \(letters and digits\).)144 585.6 Q F1(clear\255scr)108
+597.6 Q(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 609.6 R
+.993(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993
+G .993(th an ar).4 F .993(gument, refresh the)-.18 F
+(current line without clearing the screen.)144 621.6 Q F1 -.18(re)108
+633.6 S(draw\255curr).18 E(ent\255line)-.18 E F0
+(Refresh the current line.)144 645.6 Q F1(Commands f)87 662.4 Q
+(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108
+674.4 Q(n\))-.15 E F0 .364(Accept the line re)144 686.4 R -.05(ga)-.15 G
+.364(rdless of where the cursor is.).05 F .364
+(If this line is non-empty)5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G
+.365(ay be added to the)-2.864 F .741
+(history list for future recall with)144 698.4 R F1(add_history\(\))
+3.241 E F0 5.741(.I)C 3.241(ft)-5.741 G .74
+(he line is a modi\214ed history line, the history)-3.241 F
+(line is restored to its original state.)144 710.4 Q(GNU Readline 4.2)72
+768 Q(2001 Feb 5)136.79 E(5)206.5 E EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
+/Times-Bold@0 SF(pr)108 84 Q -.15(ev)-.18 G(ious\255history \(C\255p\))
+.15 E F0(Fetch the pre)144 96 Q(vious command from the history list, mo)
+-.25 E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108
+108 Q F0(Fetch the ne)144 120 Q(xt command from the history list, mo)
+-.15 E(ving forw)-.15 E(ard in the list.)-.1 E F1
+(beginning\255of\255history \(M\255<\))108 132 Q F0(Mo)144 144 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)-.65 E
+F1(end\255of\255history \(M\255>\))108 156 Q F0(Mo)144 168 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5(,i)-.65
+G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18(re v)108
+180 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.47
+(Search backw)144 192 R 1.471(ard starting at the current line and mo)
+-.1 F 1.471(ving `up' through the history as necessary)-.15 F(.)-.65 E
+(This is an incremental search.)144 204 Q F1 -.25(fo)108 216 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
+(Search forw)144 228 R 1.132(ard starting at the current line and mo)-.1
+F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)-.25
+F(.)-.65 E(This is an incremental search.)144 240 Q F1(non\255incr)108
+252 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E
+(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)144 264 R .164(ar\
+d through the history starting at the current line using a non-incremen\
+tal search for)-.1 F 2.5(as)144 276 S(tring supplied by the user)-2.5 E
+(.)-.55 E F1(non\255incr)108 288 Q(emental\255f)-.18 E(orward\255sear)
+-.25 E(ch\255history \(M\255n\))-.18 E F0 1.354(Search forw)144 300 R
+1.354(ard through the history using a non-incremental search for a stri\
+ng supplied by the)-.1 F(user)144 312 Q(.)-.55 E F1(history\255sear)108
+324 Q(ch\255f)-.18 E(orward)-.25 E F0 .248(Search forw)144 336 R .249(a\
+rd through the history for the string of characters between the start o\
+f the current line)-.1 F(and the current cursor position \(the)144 348 Q
+/F2 10/Times-Italic@0 SF(point)2.5 E F0 2.5(\). This)B
+(is a non-incremental search.)2.5 E F1(history\255sear)108 360 Q
+(ch\255backward)-.18 E F0 .951(Search backw)144 372 R .951(ard through \
+the history for the string of characters between the start of the curre\
+nt)-.1 F(line and the point.)144 384 Q
+(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 396 Q
+2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 408
+R .622(gument to the pre)-.18 F .622
+(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
+.622(vious line\))-.25 F .682(at point \(the current cursor position\).)
+144 420 R -.4(Wi)5.682 G .682(th an ar).4 F(gument)-.18 E F2(n)3.182 E
+F0 3.182(,i).24 G .682(nsert the)-3.182 F F2(n)3.182 E F0 .682(th w)B
+.681(ord from the pre)-.1 F(vious)-.25 E .729(command \(the w)144 432 R
+.729(ords in the pre)-.1 F .729(vious command be)-.25 F .729(gin with w)
+-.15 F .729(ord 0\).)-.1 F 3.23(An)5.73 G -2.25 -.15(eg a)-3.23 H(ti).15
+E 1.03 -.15(ve a)-.25 H -.18(rg).15 G .73(ument inserts).18 F(the)144
+444 Q F2(n)2.5 E F0(th w)A(ord from the end of the pre)-.1 E
+(vious command.)-.25 E F1(yank\255last\255ar)108 456 Q 2.5(g\()-.1 G
+-1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308
+(Insert the last ar)144 468 R 1.308(gument to the pre)-.18 F 1.307
+(vious command \(the last w)-.25 F 1.307(ord of the pre)-.1 F 1.307
+(vious history entry\).)-.25 F -.4(Wi)144 480 S .735(th an ar).4 F .735
+(gument, beha)-.18 F 1.035 -.15(ve ex)-.2 H .735(actly lik).15 F(e)-.1 E
+F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.736(.S)C(uccessi)-5.736 E
+1.036 -.15(ve c)-.25 H .736(alls to).15 F F1(yank\255last\255ar)3.236 E
+(g)-.1 E F0(mo)3.236 E -.15(ve)-.15 G
+(back through the history list, inserting the last ar)144 492 Q
+(gument of each line in turn.)-.18 E F1(Commands f)87 508.8 Q
+(or Changing T)-.25 E(ext)-.92 E(delete\255char \(C\255d\))108 520.8 Q
+F0 .487(Delete the character under the cursor)144 532.8 R 5.487(.I)-.55
+G 2.987(fp)-5.487 G .487(oint is at the be)-2.987 F .486
+(ginning of the line, there are no charac-)-.15 F
+(ters in the line, and the last character typed w)144 544.8 Q
+(as not bound to)-.1 E F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)
+-2.5 E/F3 9/Times-Bold@0 SF(EOF)2.5 E/F4 9/Times-Roman@0 SF(.)A F1
+(backward\255delete\255char \(Rubout\))108 556.8 Q F0 .552
+(Delete the character behind the cursor)144 568.8 R 5.553(.W)-.55 G .553
+(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F
+.553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553(he deleted te).15 F
+.553(xt on)-.15 F(the kill ring.)144 580.8 Q F1 -.25(fo)108 592.8 S
+(rward\255backward\255delete\255char).25 E F0 .474
+(Delete the character under the cursor)144 604.8 R 2.974(,u)-.4 G .474
+(nless the cursor is at the end of the line, in which case the)-2.974 F
+(character behind the cursor is deleted.)144 616.8 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 628.8 Q F0 1.228(Add the ne)144
+640.8 R 1.228(xt character that you type to the line v)-.15 F 3.728
+(erbatim. This)-.15 F 1.228(is ho)3.728 F 3.729(wt)-.25 G 3.729(oi)
+-3.729 G 1.229(nsert characters lik)-3.729 F(e)-.1 E F1(C\255q)144 652.8
+Q F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108
+664.8 Q(AB\))-.9 E F0(Insert a tab character)144 676.8 Q(.)-.55 E F1
+(self\255insert \(a, b, A, 1, !, ...\))108 688.8 Q F0
+(Insert the character typed.)144 700.8 Q(GNU Readline 4.2)72 768 Q
+(2001 Feb 5)136.79 E(6)206.5 E EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
+/Times-Bold@0 SF(transpose\255chars \(C\255t\))108 84 Q F0 .322
+(Drag the character before point forw)144 96 R .321(ard o)-.1 F -.15(ve)
+-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321
+(ving point forw)-.15 F .321(ard as well.)-.1 F 1.03
+(If point is at the end of the line, then transpose the tw)144 108 R
+3.531(oc)-.1 G 1.031(haracters before point.)-3.531 F(Ne)6.031 E -.05
+(ga)-.15 G(ti).05 E 1.331 -.15(ve a)-.25 H -.18(rg).15 G(u-).18 E
+(ments don')144 120 Q 2.5(tw)-.18 G(ork.)-2.6 E F1(transpose\255w)108
+132 Q(ords \(M\255t\))-.1 E F0 .566(Drag the w)144 144 R .566
+(ord behind the cursor past the w)-.1 F .565(ord in front of the cursor)
+-.1 F 3.065(,m)-.4 G -.15(ov)-3.065 G .565(ing the cursor o).15 F -.15
+(ve)-.15 G 3.065(rt).15 G(hat)-3.065 E -.1(wo)144 156 S(rd as well.).1 E
+F1(upcase\255w)108 168 Q(ord \(M\255u\))-.1 E F0 1.698
+(Uppercase the current \(or follo)144 180 R 1.698(wing\) w)-.25 F 4.198
+(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.999 -.15
+(ve a)-.25 H -.18(rg).15 G 1.699(ument, uppercase the pre).18 F(vious)
+-.25 E -.1(wo)144 192 S(rd, b).1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15
+H(oint.).15 E F1(do)108 204 Q(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0
+(Lo)144 216 Q 1.648(wercase the current \(or follo)-.25 F 1.648
+(wing\) w)-.25 F 4.148(ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G
+(ti).05 E 1.947 -.15(ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F
+1.647(wercase the pre)-.25 F(vious)-.25 E -.1(wo)144 228 S(rd, b).1 E
+(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)
+108 240 Q(ord \(M\255c\))-.1 E F0 1.974
+(Capitalize the current \(or follo)144 252 R 1.974(wing\) w)-.25 F 4.474
+(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 2.274 -.15
+(ve a)-.25 H -.18(rg).15 G 1.975(ument, capitalize the pre).18 F(vious)
+-.25 E -.1(wo)144 264 S(rd, b).1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15
+H(oint.).15 E F1(Killing and Y)87 280.8 Q(anking)-.85 E
+(kill\255line \(C\255k\))108 292.8 Q F0(Kill the te)144 304.8 Q
+(xt from the current cursor position to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 316.8 Q F0(Kill backw)
+144 328.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 340.8 Q F0(Kill backw)144 352.8
+Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
+(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 364.8 Q F0(Kil\
+l all characters on the current line, no matter where the cursor is.)144
+376.8 Q F1(kill\255w)108 388.8 Q(ord \(M\255d\))-.1 E F0 1.044
+(Kill from the cursor to the end of the current w)144 400.8 R 1.043
+(ord, or if between w)-.1 F 1.043(ords, to the end of the ne)-.1 F(xt)
+-.15 E -.1(wo)144 412.8 S 2.5(rd. W).1 F
+(ord boundaries are the same as those used by)-.8 E F1 -.25(fo)2.5 G
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 424.8 Q
+(ord \(M\255Rubout\))-.1 E F0 3.26(Kill the w)144 436.8 R 3.26
+(ord behind the cursor)-.1 F 8.26(.W)-.55 G 3.26
+(ord boundaries are the same as those used by)-9.06 F F1(back-)5.76 E
+(ward\255w)144 448.8 Q(ord)-.1 E F0(.)A F1(unix\255w)108 460.8 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .482(Kill the w)144 472.8 R .482
+(ord behind the cursor)-.1 F 2.982(,u)-.4 G .482
+(sing white space as a w)-2.982 F .482(ord boundary)-.1 F 5.482(.T)-.65
+G .482(he w)-5.482 F .481(ord boundaries are)-.1 F(dif)144 484.8 Q
+(ferent from)-.25 E F1(backward\255kill\255w)2.5 E(ord)-.1 E F0(.)A F1
+(delete\255horizontal\255space \(M\255\\\))108 496.8 Q F0
+(Delete all spaces and tabs around point.)144 508.8 Q F1(kill\255r)108
+520.8 Q(egion)-.18 E F0 1.13(Kill the te)144 532.8 R 1.13
+(xt between the point and)-.15 F/F2 10/Times-Italic@0 SF(mark)3.63 E F0
+(\(sa)3.63 E -.15(ve)-.2 G 3.63(dc).15 G 1.13(ursor position\).)-3.63 F
+1.13(This te)6.13 F 1.13(xt is referred to as the)-.15 F F2 -.37(re)144
+544.8 S(gion)-.03 E F0(.)A F1(copy\255r)108 556.8 Q(egion\255as\255kill)
+-.18 E F0(Cop)144 568.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
+(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
+(copy\255backward\255w)108 580.8 Q(ord)-.1 E F0(Cop)144 592.8 Q 4.801
+(yt)-.1 G 2.301(he w)-4.801 F 2.301(ord before point to the kill b)-.1 F
+(uf)-.2 E(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.3
+(ord boundaries are the same as)-.1 F F1(back-)4.8 E(ward\255w)144 604.8
+Q(ord)-.1 E F0(.)A F1(copy\255f)108 616.8 Q(orward\255w)-.25 E(ord)-.1 E
+F0(Cop)144 628.8 Q 4.507(yt)-.1 G 2.007(he w)-4.507 F 2.007(ord follo)
+-.1 F 2.007(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.008
+(.T)-.55 G 2.008(he w)-7.008 F 2.008(ord boundaries are the same as)-.1
+F F1 -.25(fo)4.508 G -.37(r-).25 G(ward\255w)144 640.8 Q(ord)-.1 E F0(.)
+A F1(yank \(C\255y\))108 652.8 Q F0 -1(Ya)144 664.8 S
+(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at the cursor)
+-.25 E(.)-.55 E F1(yank\255pop \(M\255y\))108 676.8 Q F0
+(Rotate the kill ring, and yank the ne)144 688.8 Q 2.5(wt)-.25 G 2.5
+(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 705.6 Q
+(guments)-.1 E F0(GNU Readline 4.2)72 768 Q(2001 Feb 5)136.79 E(7)206.5
+E EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
+/Times-Bold@0 SF(digit\255ar)108 84 Q
+(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .642
+(Add this digit to the ar)144 96 R .641
+(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
+(rg)-3.141 G 3.141(ument. M\255\255).18 F .641(starts a ne)3.141 F(g-)
+-.15 E(ati)144 108 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
+(uni)108 120 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778
+(This is another w)144 132 R .779(ay to specify an ar)-.1 F 3.279
+(gument. If)-.18 F .779(this command is follo)3.279 F .779
+(wed by one or more digits,)-.25 F 1.376
+(optionally with a leading minus sign, those digits de\214ne the ar)144
+144 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+156 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
+(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
+-.2 F(-)-.2 E .899(wise ignored.)144 168 R .898
+(As a special case, if this command is immediately follo)5.899 F .898
+(wed by a character that is)-.25 F .243
+(neither a digit or minus sign, the ar)144 180 R .243
+(gument count for the ne)-.18 F .243(xt command is multiplied by four)
+-.15 F 5.243(.T)-.55 G(he)-5.243 E(ar)144 192 Q .378
+(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
+(cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
+.378(gument count)-.18 F(four)144 204 Q 2.5(,as)-.4 G(econd time mak)
+-2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
+(Completing)87 220.8 Q(complete \(T)108 232.8 Q(AB\))-.9 E F0 1.908
+(Attempt to perform completion on the te)144 244.8 R 1.908
+(xt before point.)-.15 F 1.909(The actual completion performed is)6.909
+F(application-speci\214c.)144 256.8 Q F1(Bash)5.518 E F0 3.018(,f)C .518
+(or instance, attempts completion treating the te)-3.018 F .517
+(xt as a v)-.15 F .517(ariable \(if the)-.25 F(te)144 268.8 Q .656
+(xt be)-.15 F .656(gins with)-.15 F F1($)3.156 E F0 .656
+(\), username \(if the te)B .656(xt be)-.15 F .656(gins with)-.15 F F1
+(~)3.156 E F0 .656(\), hostname \(if the te)B .656(xt be)-.15 F .656
+(gins with)-.15 F F1(@)3.157 E F0 .657(\), or)B .93
+(command \(including aliases and functions\) in turn.)144 280.8 R .929
+(If none of these produces a match, \214lename)5.929 F 1.273
+(completion is attempted.)144 292.8 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773
+(nt)-3.773 G 1.273(he other hand, allo)-3.773 F 1.273
+(ws completion of program functions and)-.25 F -.25(va)144 304.8 S(riab\
+les, and only attempts \214lename completion under certain circumstance\
+s.).25 E F1(possible\255completions \(M\255?\))108 316.8 Q F0
+(List the possible completions of the te)144 328.8 Q(xt before point.)
+-.15 E F1(insert\255completions \(M\255*\))108 340.8 Q F0 .783
+(Insert all completions of the te)144 352.8 R .783
+(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
+.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144
+364.8 Q F0(.)A F1(menu\255complete)108 376.8 Q F0 .928(Similar to)144
+388.8 R F1(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628
+F .929(ord to be completed with a single match from the list of)-.1 F
+1.194(possible completions.)144 400.8 R 1.194(Repeated e)6.194 F -.15
+(xe)-.15 G 1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193
+(steps through the list of possible)3.694 F .828
+(completions, inserting each match in turn.)144 412.8 R .828
+(At the end of the list of completions, the bell is rung)5.828 F 2.049
+(and the original te)144 424.8 R 2.049(xt is restored.)-.15 F 2.048
+(An ar)7.048 F 2.048(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)4.548 E
+F0(mo)4.548 E -.15(ve)-.15 G(s).15 E F2(n)4.548 E F0 2.048
+(positions forw)4.548 F 2.048(ard in the list of)-.1 F .648
+(matches; a ne)144 436.8 R -.05(ga)-.15 G(ti).05 E .948 -.15(ve a)-.25 H
+-.18(rg).15 G .649(ument may be used to mo).18 F .949 -.15(ve b)-.15 H
+(ackw).15 E .649(ard through the list.)-.1 F .649(This command is)5.649
+F(intended to be bound to)144 448.8 Q F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C
+(ut is unbound by def)-2.7 E(ault.)-.1 E F1
+(delete\255char\255or\255list)108 460.8 Q F0 .374
+(Deletes the character under the cursor if not at the be)144 472.8 R
+.373(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete-char)
+2.873 E F0(\).)A(If at the end of the line, beha)144 484.8 Q -.15(ve)-.2
+G 2.5(si).15 G(dentically to)-2.5 E F1(possible-completions)2.5 E F0(.)A
+F1 -.25(Ke)87 501.6 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)
+108 513.6 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 525.6 Q
+(gin sa)-.15 E(ving the characters typed into the current k)-.2 E -.15
+(ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 537.6 Q 2.5(o\()
+-.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 549.6 Q
+(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
+(board macro and store the de\214nition.).15 E F1
+(call\255last\255kbd\255macr)108 561.6 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 573.6 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
+-.1 G .999(board macro de\214ned, by making the characters in the macro\
+ appear as if).15 F(typed at the k)144 585.6 Q -.15(ey)-.1 G(board.).15
+E F1(Miscellaneous)87 602.4 Q -.18(re)108 614.4 S<ad72>.18 E
+(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
+(Read in the contents of the)144 626.4 R F2(inputr)4.277 E(c)-.37 E F0
+1.776(\214le, and incorporate an)4.276 F 4.276(yb)-.15 G 1.776
+(indings or v)-4.276 F 1.776(ariable assignments)-.25 F(found there.)144
+638.4 Q F1(abort \(C\255g\))108 650.4 Q F0 3.248
+(Abort the current editing command and ring the terminal')144 662.4 R
+5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
+(bell\255style)144 674.4 Q F0(\).)A F1(do\255upper)108 686.4 Q
+(case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)
+C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 698.4 R F2(x)
+4.256 E F0 1.755(is lo)4.256 F 1.755
+(wercase, run the command that is bound to the corresponding)-.25 F
+(uppercase character)144 710.4 Q(.)-.55 E(GNU Readline 4.2)72 768 Q
+(2001 Feb 5)136.79 E(8)206.5 E EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
+/Times-Bold@0 SF(pr)108 84 Q(e\214x\255meta \(ESC\))-.18 E F0
+(Metafy the ne)144 96 Q(xt character typed.)-.15 E/F2 9/Times-Bold@0 SF
+(ESC)5 E F1(f)2.25 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1
+(Meta\255f)2.5 E F0(.)A F1(undo \(C\255_, C\255x C\255u\))108 108 Q F0
+(Incremental undo, separately remembered for each line.)144 120 Q F1
+-2.29 -.18(re v)108 132 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 144 R 1.095(This is lik)6.095 F
+3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
+F0 1.095(command enough times to)3.595 F
+(return the line to its initial state.)144 156 Q F1
+(tilde\255expand \(M\255&\))108 168 Q F0(Perform tilde e)144 180 Q
+(xpansion on the current w)-.15 E(ord.)-.1 E F1
+(set\255mark \(C\255@, M\255<space>\))108 192 Q F0 .591
+(Set the mark to the current point.)144 204 R .591(If a numeric ar)5.591
+F .59(gument is supplied, the mark is set to that posi-)-.18 F(tion.)144
+216 Q F1(exchange\255point\255and\255mark \(C\255x C\255x\))108 228 Q F0
+(Sw)144 240 Q .282(ap the point with the mark.)-.1 F .283
+(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
+2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
+144 252 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
+(character\255sear)108 264 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 276 S
+.536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt)
+.15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
+(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
+(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
+144 288 Q(vious occurrences.)-.25 E F1(character\255sear)108 300 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 312 S 1.043
+(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
+3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
+(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
+-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
+(count searches for subsequent occurrences.)144 324 Q F1
+(insert\255comment \(M\255#\))108 336 Q F0 .291(The v)144 348 R .291
+(alue of the readline)-.25 F F1(comment\255begin)2.791 E F0 -.25(va)
+2.791 G .291(riable is inserted at the be).25 F .29
+(ginning of the current line,)-.15 F 1.277
+(and the line is accepted as if a ne)144 360 R 1.277
+(wline had been typed.)-.25 F 1.277(The def)6.277 F 1.277(ault v)-.1 F
+1.277(alue of)-.25 F F1(comment\255begin)3.777 E F0(mak)144 372 Q
+(es the current line a shell comment.)-.1 E F1(dump\255functions)108 384
+Q F0 .627(Print all of the functions and their k)144 396 R .927 -.15
+(ey b)-.1 H .626(indings to the readline output stream.).15 F .626
+(If a numeric ar)5.626 F(gu-)-.18 E
+(ment is supplied, the output is formatted in such a w)144 408 Q
+(ay that it can be made part of an)-.1 E/F3 10/Times-Italic@0 SF(inputr)
+2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 420 Q(ariables)-.1 E F0
+.283(Print all of the settable v)144 432 R .283(ariables and their v)
+-.25 F .283(alues to the readline output stream.)-.25 F .283
+(If a numeric ar)5.283 F(gu-)-.18 E
+(ment is supplied, the output is formatted in such a w)144 444 Q
+(ay that it can be made part of an)-.1 E F3(inputr)2.5 E(c)-.37 E F0
+(\214le.)2.5 E F1(dump\255macr)108 456 Q(os)-.18 E F0 .756
+(Print all of the readline k)144 468 R 1.056 -.15(ey s)-.1 H .756
+(equences bound to macros and the strings the).15 F 3.256(yo)-.15 G
+3.256(uput. If)-3.256 F 3.255(an)3.255 G(umeric)-3.255 E(ar)144 480 Q
+.528(gument is supplied, the output is formatted in such a w)-.18 F .528
+(ay that it can be made part of an)-.1 F F3(inputr)3.028 E(c)-.37 E F0
+(\214le.)144 492 Q F1(emacs\255editing\255mode \(C\255e\))108 504 Q F0
+(When in)144 516 Q F1(vi)2.5 E F0(editing mode, this causes a switch to)
+2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1
+(vi\255editing\255mode \(M\255C\255j\))108 528 Q F0(When in)144 540 Q F1
+(emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E
+F0(editing mode.)2.5 E F2(DEF)72 556.8 Q -.45(AU)-.81 G 1.656 -.828
+(LT K).45 H(EY BINDINGS).828 E F0 .065(The follo)108 568.8 R .065
+(wing is a list of the def)-.25 F .065(ault emacs and vi bindings.)-.1 F
+.064(Characters with the eighth bit set are written as)5.064 F .615
+(M\255<character>, and are referred to as)108 580.8 R F3(meta\214ed)
+3.115 E F0 3.115(characters. The)3.115 F .616
+(printable ASCII characters not mentioned)3.116 F 1.116
+(in the list of emacs standard bindings are bound to the)108 592.8 R F1
+(self\255insert)3.615 E F0 1.115(function, which just inserts the gi)
+3.615 F -.15(ve)-.25 G(n).15 E .945(character into the input line.)108
+604.8 R .945(In vi insertion mode, all characters not speci\214cally me\
+ntioned are bound to)5.945 F F1(self\255insert)108 616.8 Q F0 5.359(.C)C
+.359(haracters assigned to signal generation by)-5.359 F F3(stty)2.859 E
+F0 .359(\(1\) or the terminal dri).32 F -.15(ve)-.25 G 1.159 -.4(r, s)
+.15 H .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 628.8
+R .187(Upper and lo)5.187 F .188(wer case meta\214ed characters are bou\
+nd to the same function in the emacs)-.25 F .305(mode meta k)108 640.8 R
+-.15(ey)-.1 G 2.805(map. The).15 F .305(remaining characters are unboun\
+d, which causes readline to ring the bell \(subject)2.805 F
+(to the setting of the)108 652.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5
+G(riable\).).25 E F1(Emacs Mode)87 669.6 Q F0(Emacs Standard bindings)
+151.2 681.6 Q 2.5("C-@" set-mark)151.2 705.6 R 2.5("C-A" be)151.2 717.6
+R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 729.6 R(ard-char)-.1 E
+(GNU Readline 4.2)72 768 Q(2001 Feb 5)136.79 E(9)206.5 E EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
+("C-D" delete-char)151.2 84 R 2.5("C-E" end-of-line)151.2 96 R 2.5
+("C-F" forw)151.2 108 R(ard-char)-.1 E 2.5("C-G" abort)151.2 120 R 2.5
+("C-H" backw)151.2 132 R(ard-delete-char)-.1 E 2.5("C-I" complete)151.2
+144 R 2.5("C-J" accept-line)151.2 156 R 2.5("C-K" kill-line)151.2 168 R
+2.5("C-L" clear)151.2 180 R(-screen)-.2 E 2.5("C-M" accept-line)151.2
+192 R 2.5("C-N" ne)151.2 204 R(xt-history)-.15 E 2.5("C-P" pre)151.2 216
+R(vious-history)-.25 E 2.5("C-Q" quoted-insert)151.2 228 R 2.5("C-R" re)
+151.2 240 R -.15(ve)-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2
+252 R(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 264 R 2.5
+("C-U" unix-line-discard)151.2 276 R 2.5("C-V" quoted-insert)151.2 288 R
+2.5("C-W" unix-w)151.2 300 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 312 R
+2.5("C-]" character)151.2 324 R(-search)-.2 E 2.5("C-_" undo)151.2 336 R
+3.333("")151.2 348 S(to "/")-.833 E(self-insert)5 E 2.5("0" to)151.2 360
+R 2.5("9" self-insert)2.5 F 2.5(":" to)151.2 372 R 2.5("~" self-insert)
+2.5 F 2.5("C-?" backw)151.2 384 R(ard-delete-char)-.1 E
+(Emacs Meta bindings)151.2 400.8 Q 2.5("M-C-G" abort)151.2 424.8 R 2.5
+("M-C-H" backw)151.2 436.8 R(ard-kill-w)-.1 E(ord)-.1 E 2.5
+("M-C-I" tab-insert)151.2 448.8 R 2.5("M-C-J" vi-editing-mode)151.2
+460.8 R 2.5("M-C-M" vi-editing-mode)151.2 472.8 R 2.5("M-C-R" re)151.2
+484.8 R -.15(ve)-.25 G(rt-line).15 E 2.5("M-C-Y" yank-nth-ar)151.2 496.8
+R(g)-.18 E 2.5("M-C-[" complete)151.2 508.8 R 2.5("M-C-]" character)
+151.2 520.8 R(-search-backw)-.2 E(ard)-.1 E 2.5("M-space" set-mark)151.2
+532.8 R 2.5("M-#" insert-comment)151.2 544.8 R 2.5("M-&" tilde-e)151.2
+556.8 R(xpand)-.15 E 2.5("M-*" insert-completions)151.2 568.8 R 2.5
+("M--" digit-ar)151.2 580.8 R(gument)-.18 E 2.5("M-." yank-last-ar)151.2
+592.8 R(g)-.18 E 2.5("M-0" digit-ar)151.2 604.8 R(gument)-.18 E 2.5
+("M-1" digit-ar)151.2 616.8 R(gument)-.18 E 2.5("M-2" digit-ar)151.2
+628.8 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 640.8 R(gument)-.18 E 2.5
+("M-4" digit-ar)151.2 652.8 R(gument)-.18 E 2.5("M-5" digit-ar)151.2
+664.8 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 676.8 R(gument)-.18 E 2.5
+("M-7" digit-ar)151.2 688.8 R(gument)-.18 E 2.5("M-8" digit-ar)151.2
+700.8 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 712.8 R(gument)-.18 E 2.5
+("M-<" be)151.2 724.8 R(ginning-of-history)-.15 E(GNU Readline 4.2)72
+768 Q(2001 Feb 5)136.79 E(10)201.5 E EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
+("M-=" possible-completions)151.2 84 R 2.5("M->" end-of-history)151.2 96
+R 2.5("M-?" possible-completions)151.2 108 R 2.5("M-B" backw)151.2 120 R
+(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 132 R(ord)-.1 E 2.5
+("M-D" kill-w)151.2 144 R(ord)-.1 E 2.5("M-F" forw)151.2 156 R(ard-w)-.1
+E(ord)-.1 E 2.5("M-L" do)151.2 168 R(wncase-w)-.25 E(ord)-.1 E 2.5
+("M-N" non-incremental-forw)151.2 180 R(ard-search-history)-.1 E 2.5
+("M-P" non-incremental-re)151.2 192 R -.15(ve)-.25 G(rse-search-history)
+.15 E 2.5("M-R" re)151.2 204 R -.15(ve)-.25 G(rt-line).15 E 2.5
+("M-T" transpose-w)151.2 216 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 228 R
+(ord)-.1 E 2.5("M-Y" yank-pop)151.2 240 R 2.5
+("M-\\" delete-horizontal-space)151.2 252 R 2.5("M-~" tilde-e)151.2 264
+R(xpand)-.15 E 2.5("M-C-?" backw)151.2 276 R(ard-delete-w)-.1 E(ord)-.1
+E 2.5("M-_" yank-last-ar)151.2 288 R(g)-.18 E(Emacs Control-X bindings)
+151.2 304.8 Q 2.5("C-XC-G" abort)151.2 328.8 R 2.5
+("C-XC-R" re-read-init-\214le)151.2 340.8 R 2.5("C-XC-U" undo)151.2
+352.8 R 2.5("C-XC-X" e)151.2 364.8 R(xchange-point-and-mark)-.15 E 2.5
+("C-X\(" start-kbd-macro)151.2 376.8 R 2.5("C-X\)" end-kbd-macro)151.2
+388.8 R 2.5("C-XE" call-last-kbd-macro)151.2 400.8 R 2.5("C-XC-?" backw)
+151.2 412.8 R(ard-kill-line)-.1 E/F1 10/Times-Bold@0 SF
+(VI Mode bindings)87 441.6 Q F0(VI Insert Mode functions)151.2 453.6 Q
+2.5("C-D" vi-eof-maybe)151.2 477.6 R 2.5("C-H" backw)151.2 489.6 R
+(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 501.6 R 2.5
+("C-J" accept-line)151.2 513.6 R 2.5("C-M" accept-line)151.2 525.6 R 2.5
+("C-R" re)151.2 537.6 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
+("C-S" forw)151.2 549.6 R(ard-search-history)-.1 E 2.5
+("C-T" transpose-chars)151.2 561.6 R 2.5("C-U" unix-line-discard)151.2
+573.6 R 2.5("C-V" quoted-insert)151.2 585.6 R 2.5("C-W" unix-w)151.2
+597.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 609.6 R 2.5("C-[" vi-mo)
+151.2 621.6 R -.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 633.6
+R 3.333("")151.2 645.6 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)
+151.2 657.6 R(ard-delete-char)-.1 E(VI Command Mode functions)151.2
+674.4 Q 2.5("C-D" vi-eof-maybe)151.2 698.4 R 2.5
+("C-E" emacs-editing-mode)151.2 710.4 R 2.5("C-G" abort)151.2 722.4 R
+(GNU Readline 4.2)72 768 Q(2001 Feb 5)136.79 E(11)201.5 E EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
+("C-H" backw)151.2 84 R(ard-char)-.1 E 2.5("C-J" accept-line)151.2 96 R
+2.5("C-K" kill-line)151.2 108 R 2.5("C-L" clear)151.2 120 R(-screen)-.2
+E 2.5("C-M" accept-line)151.2 132 R 2.5("C-N" ne)151.2 144 R(xt-history)
+-.15 E 2.5("C-P" pre)151.2 156 R(vious-history)-.25 E 2.5
+("C-Q" quoted-insert)151.2 168 R 2.5("C-R" re)151.2 180 R -.15(ve)-.25 G
+(rse-search-history).15 E 2.5("C-S" forw)151.2 192 R(ard-search-history)
+-.1 E 2.5("C-T" transpose-chars)151.2 204 R 2.5("C-U" unix-line-discard)
+151.2 216 R 2.5("C-V" quoted-insert)151.2 228 R 2.5("C-W" unix-w)151.2
+240 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 252 R -4.166 3.333("" f)
+151.2 264 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 276
+R 2.5("$" end-of-line)151.2 288 R 2.5("%" vi-match)151.2 300 R 2.5
+("&" vi-tilde-e)151.2 312 R(xpand)-.15 E 2.5("*" vi-complete)151.2 324 R
+2.5("+" ne)151.2 336 R(xt-history)-.15 E 2.5("," vi-char)151.2 348 R
+(-search)-.2 E 2.5("-" pre)151.2 360 R(vious-history)-.25 E 2.5
+("." vi-redo)151.2 372 R 2.5("/" vi-search)151.2 384 R 2.5("0" be)151.2
+396 R(ginning-of-line)-.15 E("1" to "9")151.2 408 Q(vi-ar)5 E(g-digit)
+-.18 E 2.5(";" vi-char)151.2 420 R(-search)-.2 E 2.5("=" vi-complete)
+151.2 432 R 2.5("?" vi-search)151.2 444 R 2.5("A" vi-append-eol)151.2
+456 R 2.5("B" vi-pre)151.2 468 R(v-w)-.25 E(ord)-.1 E 2.5
+("C" vi-change-to)151.2 480 R 2.5("D" vi-delete-to)151.2 492 R 2.5
+("E" vi-end-w)151.2 504 R(ord)-.1 E 2.5("F" vi-char)151.2 516 R(-search)
+-.2 E 2.5("G" vi-fetch-history)151.2 528 R 2.5("I" vi-insert-be)151.2
+540 R(g)-.15 E 2.5("N" vi-search-ag)151.2 552 R(ain)-.05 E 2.5
+("P" vi-put)151.2 564 R 2.5("R" vi-replace)151.2 576 R 2.5("S" vi-subst)
+151.2 588 R 2.5("T" vi-char)151.2 600 R(-search)-.2 E 2.5("U" re)151.2
+612 R -.15(ve)-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2 624 R(xt-w)-.15 E
+(ord)-.1 E 2.5("X" backw)151.2 636 R(ard-delete-char)-.1 E 2.5
+("Y" vi-yank-to)151.2 648 R 2.5("\\" vi-complete)151.2 660 R 2.5
+("^" vi-\214rst-print)151.2 672 R 2.5("_" vi-yank-ar)151.2 684 R(g)-.18
+E 2.5("`" vi-goto-mark)151.2 696 R 2.5("a" vi-append-mode)151.2 708 R
+2.5("b" vi-pre)151.2 720 R(v-w)-.25 E(ord)-.1 E(GNU Readline 4.2)72 768
+Q(2001 Feb 5)136.79 E(12)201.5 E EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
+("c" vi-change-to)151.2 84 R 2.5("d" vi-delete-to)151.2 96 R 2.5
+("e" vi-end-w)151.2 108 R(ord)-.1 E 2.5("f" vi-char)151.2 120 R(-search)
+-.2 E 2.5("h" backw)151.2 132 R(ard-char)-.1 E 2.5
+("i" vi-insertion-mode)151.2 144 R 2.5("j" ne)151.2 156 R(xt-history)
+-.15 E 2.5("k" pre)151.2 168 R(v-history)-.25 E 2.5("l" forw)151.2 180 R
+(ard-char)-.1 E 2.5("m" vi-set-mark)151.2 192 R 2.5("n" vi-search-ag)
+151.2 204 R(ain)-.05 E 2.5("p" vi-put)151.2 216 R 2.5
+("r" vi-change-char)151.2 228 R 2.5("s" vi-subst)151.2 240 R 2.5
+("t" vi-char)151.2 252 R(-search)-.2 E 2.5("u" undo)151.2 264 R 2.5
+("w" vi-ne)151.2 276 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2 288
+R 2.5("y" vi-yank-to)151.2 300 R 2.5("|" vi-column)151.2 312 R 2.5
+("~" vi-change-case)151.2 324 R/F1 9/Times-Bold@0 SF(SEE ALSO)72 340.8 Q
+/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 352.8 Q(ary)-.15 E F0
+2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2
+(The Gnu History Libr)108 364.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F2(bash)108 376.8 Q F0(\(1\))A F1
+(FILES)72 393.6 Q F2(~/.inputr)109.666 405.6 Q(c)-.37 E F0(Indi)144
+417.6 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF -.18(re)2.5 G(adline).18 E
+F0(initialization \214le)2.5 E F1 -.45(AU)72 434.4 S(THORS).45 E F0
+(Brian F)108 446.4 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
+(bfox@gnu.or)108 458.4 Q(g)-.18 E(Chet Rame)108 475.2 Q 1.3 -.65(y, C)
+-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)
+-.25 G(rsity).15 E(chet@ins.CWR)108 487.2 Q(U.Edu)-.4 E F1 -.09(BU)72
+504 S 2.25(GR).09 G(EPOR)-2.25 E(TS)-.36 E F0 .69(If you \214nd a b)108
+516 R .69(ug in)-.2 F F3 -.18(re)3.19 G(adline,).18 E F0 .69
+(you should report it.)3.19 F .691(But \214rst, you should mak)5.69 F
+3.191(es)-.1 G .691(ure that it really is a b)-3.191 F(ug,)-.2 E
+(and that it appears in the latest v)108 528 Q(ersion of the)-.15 E F3
+-.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.)
+.15 E .705(Once you ha)108 544.8 R 1.005 -.15(ve d)-.2 H .705
+(etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b)
+-.15 F .704(ug report to)-.2 F F2 -.2(bu)3.204 G(g\255r).2 E(eadline)
+-.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.704(.I)C 3.204(fy)-5.704 G(ou)
+-3.204 E(ha)108 556.8 Q 1.809 -.15(ve a \214)-.2 H 1.509
+(x, you are welcome to mail that as well!).15 F 1.51
+(Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F
+(mailed to)108 568.8 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2
+(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3
+(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 585.6 Q
+(ug reports concerning this manual page should be directed to)-.2 E F2
+-.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E F1
+-.09(BU)72 602.4 S(GS).09 E F0(It')108 614.4 Q 2.5(st)-.55 G
+(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 4.2)72 768 Q
+(2001 Feb 5)136.79 E(13)201.5 E EP
+%%Trailer
+end
+%%EOF
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..72da63ace1817194aaa4a18e8fd1b1706eee6ba9
GIT binary patch
literal 58876
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
S|I_g1!j}P~pKg4L{`vp@uKxi5
new file mode 100644
--- /dev/null
+++ b/readline/doc/rluserman.html
@@ -0,0 +1,1589 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.52
+     from /usr/homes/chet/src/bash/readline-src/doc/rluserman.texinfo on 5 Febuary 2001 -->
+
+<TITLE>GNU Readline Library</TITLE>
+</HEAD>
+<BODY>
+<H1>GNU Readline Library User Interface</H1>
+<H2>Edition 4.2-beta, for <CODE>Readline Library</CODE> Version 4.2-beta.</H2>
+<H2>Feb 2001</H2>
+<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
+<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
+<P>
+<P><HR><P>
+<H1>Table of Contents</H1>
+<UL>
+<LI><A NAME="TOC1" HREF="rluserman.html#SEC1">Command Line Editing</A>
+<UL>
+<LI><A NAME="TOC2" HREF="rluserman.html#SEC2">Introduction to Line Editing</A>
+<LI><A NAME="TOC3" HREF="rluserman.html#SEC3">Readline Interaction</A>
+<UL>
+<LI><A NAME="TOC4" HREF="rluserman.html#SEC4">Readline Bare Essentials</A>
+<LI><A NAME="TOC5" HREF="rluserman.html#SEC5">Readline Movement Commands</A>
+<LI><A NAME="TOC6" HREF="rluserman.html#SEC6">Readline Killing Commands</A>
+<LI><A NAME="TOC7" HREF="rluserman.html#SEC7">Readline Arguments</A>
+<LI><A NAME="TOC8" HREF="rluserman.html#SEC8">Searching for Commands in the History</A>
+</UL>
+<LI><A NAME="TOC9" HREF="rluserman.html#SEC9">Readline Init File</A>
+<UL>
+<LI><A NAME="TOC10" HREF="rluserman.html#SEC10">Readline Init File Syntax</A>
+<LI><A NAME="TOC11" HREF="rluserman.html#SEC11">Conditional Init Constructs</A>
+<LI><A NAME="TOC12" HREF="rluserman.html#SEC12">Sample Init File</A>
+</UL>
+<LI><A NAME="TOC13" HREF="rluserman.html#SEC13">Bindable Readline Commands</A>
+<UL>
+<LI><A NAME="TOC14" HREF="rluserman.html#SEC14">Commands For Moving</A>
+<LI><A NAME="TOC15" HREF="rluserman.html#SEC15">Commands For Manipulating The History</A>
+<LI><A NAME="TOC16" HREF="rluserman.html#SEC16">Commands For Changing Text</A>
+<LI><A NAME="TOC17" HREF="rluserman.html#SEC17">Killing And Yanking</A>
+<LI><A NAME="TOC18" HREF="rluserman.html#SEC18">Specifying Numeric Arguments</A>
+<LI><A NAME="TOC19" HREF="rluserman.html#SEC19">Letting Readline Type For You</A>
+<LI><A NAME="TOC20" HREF="rluserman.html#SEC20">Keyboard Macros</A>
+<LI><A NAME="TOC21" HREF="rluserman.html#SEC21">Some Miscellaneous Commands</A>
+</UL>
+<LI><A NAME="TOC22" HREF="rluserman.html#SEC22">Readline vi Mode</A>
+</UL>
+</UL>
+<P><HR><P>
+
+<P>
+This document describes the end user interface of the GNU Readline Library,
+a utility which aids in the consistency of user interface across discrete
+programs that need to provide a command line interface.
+
+</P>
+<P>
+Published by the Free Software Foundation <BR>
+59 Temple Place, Suite 330, <BR>
+Boston, MA 02111 USA
+
+</P>
+<P>
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+</P>
+<P>
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+</P>
+<P>
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+</P>
+<P>
+Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+</P>
+
+
+
+<H1><A NAME="SEC1" HREF="rluserman.html#TOC1">Command Line Editing</A></H1>
+
+<P>
+This chapter describes the basic features of the GNU
+command line editing interface.
+
+</P>
+
+<UL>
+<LI><A HREF="rluserman.html#SEC2">Introduction and Notation</A>: Notation used in this text.
+<LI><A HREF="rluserman.html#SEC3">Readline Interaction</A>: The minimum set of commands for editing a line.
+<LI><A HREF="rluserman.html#SEC9">Readline Init File</A>: Customizing Readline from a user's view.
+<LI><A HREF="rluserman.html#SEC13">Bindable Readline Commands</A>: A description of most of the Readline commands
+				available for binding
+<LI><A HREF="rluserman.html#SEC22">Readline vi Mode</A>: A short description of how to make Readline
+				behave like the vi editor.
+</UL>
+
+
+
+<H2><A NAME="SEC2" HREF="rluserman.html#TOC2">Introduction to Line Editing</A></H2>
+
+<P>
+The following paragraphs describe the notation used to represent
+keystrokes.
+
+</P>
+<P>
+The text <KBD>C-k</KBD> is read as `Control-K' and describes the character
+produced when the <KBD>k</KBD> key is pressed while the Control key
+is depressed.
+
+</P>
+<P>
+The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character
+produced when the Meta key (if you have one) is depressed, and the <KBD>k</KBD>
+key is pressed.
+The Meta key is labeled <KBD>ALT</KBD> on many keyboards.
+On keyboards with two keys labeled <KBD>ALT</KBD> (usually to either side of
+the space bar), the <KBD>ALT</KBD> on the left side is generally set to
+work as a Meta key.
+The <KBD>ALT</KBD> key on the right may also be configured to work as a
+Meta key or may be configured as some other modifier, such as a
+Compose key for typing accented characters.
+
+</P>
+<P>
+If you do not have a Meta or <KBD>ALT</KBD> key, or another key working as
+a Meta key, the identical keystroke can be generated by typing <KBD>ESC</KBD>
+<EM>first</EM>, and then typing <KBD>k</KBD>.
+Either process is known as <EM>metafying</EM> the <KBD>k</KBD> key.
+
+</P>
+<P>
+The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the
+character produced by <EM>metafying</EM> <KBD>C-k</KBD>.
+
+</P>
+<P>
+In addition, several keys have their own names.  Specifically,
+<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all
+stand for themselves when seen in this text, or in an init file
+(see section <A HREF="rluserman.html#SEC9">Readline Init File</A>).
+If your keyboard lacks a <KBD>LFD</KBD> key, typing <KBD>C-j</KBD> will
+produce the desired character.
+The <KBD>RET</KBD> key may be labeled <KBD>Return</KBD> or <KBD>Enter</KBD> on
+some keyboards.
+
+</P>
+
+
+<H2><A NAME="SEC3" HREF="rluserman.html#TOC3">Readline Interaction</A></H2>
+<P>
+<A NAME="IDX1"></A>
+
+</P>
+<P>
+Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled.  The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line.  Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections.  Then, when you are satisfied with
+the line, you simply press <KBD>RET</KBD>.  You do not have to be at the
+end of the line to press <KBD>RET</KBD>; the entire line is accepted
+regardless of the location of the cursor within the line.
+
+</P>
+
+<UL>
+<LI><A HREF="rluserman.html#SEC4">Readline Bare Essentials</A>: The least you need to know about Readline.
+<LI><A HREF="rluserman.html#SEC5">Readline Movement Commands</A>: Moving about the input line.
+<LI><A HREF="rluserman.html#SEC6">Readline Killing Commands</A>: How to delete text, and how to get it back!
+<LI><A HREF="rluserman.html#SEC7">Readline Arguments</A>: Giving numeric arguments to commands.
+<LI><A HREF="rluserman.html#SEC8">Searching</A>: Searching through previous lines.
+</UL>
+
+
+
+<H3><A NAME="SEC4" HREF="rluserman.html#TOC4">Readline Bare Essentials</A></H3>
+<P>
+<A NAME="IDX2"></A>
+<A NAME="IDX3"></A>
+<A NAME="IDX4"></A>
+
+</P>
+<P>
+In order to enter characters into the line, simply type them.  The typed
+character appears where the cursor was, and then the cursor moves one
+space to the right.  If you mistype a character, you can use your
+erase character to back up and delete the mistyped character.
+
+</P>
+<P>
+Sometimes you may mistype a character, and
+not notice the error until you have typed several other characters.  In
+that case, you can type <KBD>C-b</KBD> to move the cursor to the left, and then
+correct your mistake.  Afterwards, you can move the cursor to the right
+with <KBD>C-f</KBD>.
+
+</P>
+<P>
+When you add text in the middle of a line, you will notice that characters
+to the right of the cursor are `pushed over' to make room for the text
+that you have inserted.  Likewise, when you delete text behind the cursor,
+characters to the right of the cursor are `pulled back' to fill in the
+blank space created by the removal of the text.  A list of the bare
+essentials for editing the text of an input line follows.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-b</KBD>
+<DD>
+Move back one character.
+<DT><KBD>C-f</KBD>
+<DD>
+Move forward one character.
+<DT><KBD>DEL</KBD> or <KBD>Backspace</KBD>
+<DD>
+Delete the character to the left of the cursor.
+<DT><KBD>C-d</KBD>
+<DD>
+Delete the character underneath the cursor.
+<DT>Printing characters
+<DD>
+Insert the character into the line at the cursor.
+<DT><KBD>C-_</KBD> or <KBD>C-x C-u</KBD>
+<DD>
+Undo the last editing command.  You can undo all the way back to an
+empty line.
+</DL>
+
+<P>
+(Depending on your configuration, the <KBD>Backspace</KBD> key be set to
+delete the character to the left of the cursor and the <KBD>DEL</KBD> key set
+to delete the character underneath the cursor, like <KBD>C-d</KBD>, rather
+than the character to the left of the cursor.)
+
+</P>
+
+
+<H3><A NAME="SEC5" HREF="rluserman.html#TOC5">Readline Movement Commands</A></H3>
+
+<P>
+The above table describes the most basic keystrokes that you need
+in order to do editing of the input line.  For your convenience, many
+other commands have been added in addition to <KBD>C-b</KBD>, <KBD>C-f</KBD>,
+<KBD>C-d</KBD>, and <KBD>DEL</KBD>.  Here are some commands for moving more rapidly
+about the line.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-a</KBD>
+<DD>
+Move to the start of the line.
+<DT><KBD>C-e</KBD>
+<DD>
+Move to the end of the line.
+<DT><KBD>M-f</KBD>
+<DD>
+Move forward a word, where a word is composed of letters and digits.
+<DT><KBD>M-b</KBD>
+<DD>
+Move backward a word.
+<DT><KBD>C-l</KBD>
+<DD>
+Clear the screen, reprinting the current line at the top.
+</DL>
+
+<P>
+Notice how <KBD>C-f</KBD> moves forward a character, while <KBD>M-f</KBD> moves
+forward a word.  It is a loose convention that control keystrokes
+operate on characters while meta keystrokes operate on words.
+
+</P>
+
+
+<H3><A NAME="SEC6" HREF="rluserman.html#TOC6">Readline Killing Commands</A></H3>
+
+<P>
+<A NAME="IDX5"></A>
+<A NAME="IDX6"></A>
+
+</P>
+<P>
+<EM>Killing</EM> text means to delete the text from the line, but to save
+it away for later use, usually by <EM>yanking</EM> (re-inserting)
+it back into the line.
+(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
+
+</P>
+<P>
+If the description for a command says that it `kills' text, then you can
+be sure that you can get the text back in a different (or the same)
+place later.
+
+</P>
+<P>
+When you use a kill command, the text is saved in a <EM>kill-ring</EM>.
+Any number of consecutive kills save all of the killed text together, so
+that when you yank it back, you get it all.  The kill
+ring is not line specific; the text that you killed on a previously
+typed line is available to be yanked back later, when you are typing
+another line.
+<A NAME="IDX7"></A>
+
+</P>
+<P>
+Here is the list of commands for killing text.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-k</KBD>
+<DD>
+Kill the text from the current cursor position to the end of the line.
+
+<DT><KBD>M-d</KBD>
+<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 by <KBD>M-f</KBD>.
+
+<DT><KBD>M-<KBD>DEL</KBD></KBD>
+<DD>
+Kill from the cursor the start of the previous word, or, if between
+words, to the start of the previous word.
+Word boundaries are the same as those used by <KBD>M-b</KBD>.
+
+<DT><KBD>C-w</KBD>
+<DD>
+Kill from the cursor to the previous whitespace.  This is different than
+<KBD>M-<KBD>DEL</KBD></KBD> because the word boundaries differ.
+
+</DL>
+
+<P>
+Here is how to <EM>yank</EM> the text back into the line.  Yanking
+means to copy the most-recently-killed text from the kill buffer.
+
+</P>
+<DL COMPACT>
+
+<DT><KBD>C-y</KBD>
+<DD>
+Yank the most recently killed text back into the buffer at the cursor.
+
+<DT><KBD>M-y</KBD>
+<DD>
+Rotate the kill-ring, and yank the new top.  You can only do this if
+the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
+</DL>
+
+
+
+<H3><A NAME="SEC7" HREF="rluserman.html#TOC7">Readline Arguments</A></H3>
+
+<P>
+You can pass numeric arguments to Readline commands.  Sometimes the
+argument acts as a repeat count, other times it is the <I>sign</I> of the
+argument that is significant.  If you pass a negative argument to a
+command which normally acts in a forward direction, that command will
+act in a backward direction.  For example, to kill text back to the
+start of the line, you might type <SAMP>`M-- C-k'</SAMP>.
+
+</P>
+<P>
+The general way to pass numeric arguments to a command is to type meta
+digits before the command.  If the first `digit' typed is a minus
+sign (<SAMP>`-'</SAMP>), then the sign of the argument will be negative.  Once
+you have typed one meta digit to get the argument started, you can type
+the remainder of the digits, and then the command.  For example, to give
+the <KBD>C-d</KBD> command an argument of 10, you could type <SAMP>`M-1 0 C-d'</SAMP>,
+which will delete the next ten characters on the input line.
+
+</P>
+
+
+<H3><A NAME="SEC8" HREF="rluserman.html#TOC8">Searching for Commands in the History</A></H3>
+
+<P>
+Readline provides commands for searching through the command history
+for lines containing a specified string.
+There are two search modes:  <EM>incremental</EM> and <EM>non-incremental</EM>.
+
+</P>
+<P>
+Incremental searches begin before the user has finished typing the
+search string.
+As each character of the search string is typed, Readline displays
+the next entry from the history matching the string typed so far.
+An incremental search requires only as many characters as needed to
+find the desired history entry.
+To search backward in the history for a particular string, type
+<KBD>C-r</KBD>.  Typing <KBD>C-s</KBD> searches forward through the history.
+The characters present in the value of the <CODE>isearch-terminators</CODE> variable
+are used to terminate an incremental search.
+If that variable has not been assigned a value, the <KBD>ESC</KBD> and
+<KBD>C-J</KBD> characters will terminate an incremental search.
+<KBD>C-g</KBD> 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.
+
+</P>
+<P>
+To find other matching entries in the history list, type <KBD>C-r</KBD> or
+<KBD>C-s</KBD> 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 <KBD>RET</KBD> will terminate the search and accept
+the line, thereby executing the command from the history list.
+A movement command will terminate the search, make the last line found
+the current line, and begin editing.
+
+</P>
+<P>
+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.
+
+</P>
+
+
+<H2><A NAME="SEC9" HREF="rluserman.html#TOC9">Readline Init File</A></H2>
+<P>
+<A NAME="IDX8"></A>
+
+</P>
+<P>
+Although the Readline library comes with a set of Emacs-like
+keybindings installed by default, it is possible to use a different set
+of keybindings.
+Any user can customize programs that use Readline by putting
+commands in an <EM>inputrc</EM> file, conventionally in his home directory.
+The name of this
+file is taken from the value of the environment variable @env{INPUTRC}.  If
+that variable is unset, the default is <TT>`~/.inputrc'</TT>.
+
+</P>
+<P>
+When a program which uses the Readline library starts up, the
+init file is read, and the key bindings are set.
+
+</P>
+<P>
+In addition, the <CODE>C-x C-r</CODE> command re-reads this init file, thus
+incorporating any changes that you might have made to it.
+
+</P>
+
+<UL>
+<LI><A HREF="rluserman.html#SEC10">Readline Init File Syntax</A>: Syntax for the commands in the inputrc file.
+
+<LI><A HREF="rluserman.html#SEC11">Conditional Init Constructs</A>: Conditional key bindings in the inputrc file.
+
+<LI><A HREF="rluserman.html#SEC12">Sample Init File</A>: An example inputrc file.
+</UL>
+
+
+
+<H3><A NAME="SEC10" HREF="rluserman.html#TOC10">Readline Init File Syntax</A></H3>
+
+<P>
+There are only a few basic constructs allowed in the
+Readline init file.  Blank lines are ignored.
+Lines beginning with a <SAMP>`#'</SAMP> are comments.
+Lines beginning with a <SAMP>`$'</SAMP> indicate conditional
+constructs (see section <A HREF="rluserman.html#SEC11">Conditional Init Constructs</A>).  Other lines
+denote variable settings and key bindings.
+
+</P>
+<DL COMPACT>
+
+<DT>Variable Settings
+<DD>
+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>
+
+A great deal of run-time behavior is changeable with the following
+variables.
+
+<DL COMPACT>
+
+<DT><CODE>bell-style</CODE>
+<DD>
+<A NAME="IDX9"></A>
+Controls what happens when Readline wants to ring the terminal bell.
+If set to <SAMP>`none'</SAMP>, Readline never rings the bell.  If set to
+<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
+If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring
+the terminal's bell.
+
+<DT><CODE>comment-begin</CODE>
+<DD>
+<A NAME="IDX10"></A>
+The string to insert at the beginning of the line when the
+<CODE>insert-comment</CODE> command is executed.  The default value
+is <CODE>"#"</CODE>.
+
+<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="IDX11"></A>
+The number of possible completions that determines when the user is
+asked whether he wants to see the list of possibilities.  If the
+number of possible completions is greater than this value,
+Readline will ask the user whether or not he wishes to view
+them; otherwise, they are simply listed.
+This variable must be set to an integer value greater than or equal to 0.
+The default limit is <CODE>100</CODE>.
+
+<DT><CODE>convert-meta</CODE>
+<DD>
+<A NAME="IDX12"></A>
+If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
+eighth bit set to an ASCII key sequence by stripping the eighth
+bit and prefixing an <KBD>ESC</KBD> character, converting them to a
+meta-prefixed key sequence.  The default value is <SAMP>`on'</SAMP>.
+
+<DT><CODE>disable-completion</CODE>
+<DD>
+<A NAME="IDX13"></A>
+If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
+Completion  characters will be inserted into the line as if they had
+been mapped to <CODE>self-insert</CODE>.  The default is <SAMP>`off'</SAMP>.
+
+<DT><CODE>editing-mode</CODE>
+<DD>
+<A NAME="IDX14"></A>
+The <CODE>editing-mode</CODE> variable controls which default set of
+key bindings is used.  By default, Readline starts up in Emacs editing
+mode, where the keystrokes are most similar to Emacs.  This variable can be
+set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
+
+<DT><CODE>enable-keypad</CODE>
+<DD>
+<A NAME="IDX15"></A>
+When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
+keypad when it is called.  Some systems need this to enable the
+arrow keys.  The default is <SAMP>`off'</SAMP>.
+
+<DT><CODE>expand-tilde</CODE>
+<DD>
+<A NAME="IDX16"></A>
+If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
+attempts word completion.  The default is <SAMP>`off'</SAMP>.
+
+<DT><CODE>horizontal-scroll-mode</CODE>
+<DD>
+<A NAME="IDX17"></A>
+This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>.  Setting it
+to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
+horizontally on a single screen line when they are longer than the width
+of the screen, instead of wrapping onto a new screen line.  By default,
+this variable is set to <SAMP>`off'</SAMP>.
+
+<DT><CODE>input-meta</CODE>
+<DD>
+<A NAME="IDX18"></A>
+<A NAME="IDX19"></A>
+If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
+will not clear the eighth bit in the characters it reads),
+regardless of what the terminal claims it can support.  The
+default value is <SAMP>`off'</SAMP>.  The name <CODE>meta-flag</CODE> is a
+synonym for this variable.
+
+<DT><CODE>isearch-terminators</CODE>
+<DD>
+<A NAME="IDX20"></A>
+The string of characters that should terminate an incremental search without
+subsequently executing the character as a command (see section <A HREF="rluserman.html#SEC8">Searching for Commands in the History</A>).
+If this variable has not been given a value, the characters <KBD>ESC</KBD> and
+<KBD>C-J</KBD> will terminate an incremental search.
+
+<DT><CODE>keymap</CODE>
+<DD>
+<A NAME="IDX21"></A>
+Sets Readline's idea of the current keymap for key binding commands.
+Acceptable <CODE>keymap</CODE> names are
+<CODE>emacs</CODE>,
+<CODE>emacs-standard</CODE>,
+<CODE>emacs-meta</CODE>,
+<CODE>emacs-ctlx</CODE>,
+<CODE>vi</CODE>,
+<CODE>vi-move</CODE>,
+<CODE>vi-command</CODE>, and
+<CODE>vi-insert</CODE>.
+<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
+equivalent to <CODE>emacs-standard</CODE>.  The default value is <CODE>emacs</CODE>.
+The value of the <CODE>editing-mode</CODE> variable also affects the
+default keymap.
+
+<DT><CODE>mark-directories</CODE>
+<DD>
+If set to <SAMP>`on'</SAMP>, completed directory names have a slash
+appended.  The default is <SAMP>`on'</SAMP>.
+
+<DT><CODE>mark-modified-lines</CODE>
+<DD>
+<A NAME="IDX22"></A>
+This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
+asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
+This variable is <SAMP>`off'</SAMP> by default.
+
+<DT><CODE>output-meta</CODE>
+<DD>
+<A NAME="IDX23"></A>
+If set to <SAMP>`on'</SAMP>, Readline will display characters with the
+eighth bit set directly rather than as a meta-prefixed escape
+sequence.  The default is <SAMP>`off'</SAMP>.
+
+<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="IDX24"></A>
+This alters the default behavior of the completion functions.  If
+set to <SAMP>`on'</SAMP>, 
+words which have more than one possible completion cause the
+matches to be listed immediately instead of ringing the bell.
+The default value is <SAMP>`off'</SAMP>.
+
+<DT><CODE>visible-stats</CODE>
+<DD>
+<A NAME="IDX25"></A>
+If set to <SAMP>`on'</SAMP>, a character denoting a file's type
+is appended to the filename when listing possible
+completions.  The default is <SAMP>`off'</SAMP>.
+
+</DL>
+
+<DT>Key Bindings
+<DD>
+The syntax for controlling key bindings in the init file is
+simple.  First you need to find the name of the command that you
+want to change.  The following sections contain tables of the command
+name, the default keybinding, if any, and a short description of what
+the command does.
+
+Once you know the name of the command, simply place on a line
+in the init file the name of the key
+you wish to bind the command to, a colon, and then the name of the
+command.  The name of the key
+can be expressed in different ways, depending on what you find most
+comfortable.
+
+<DL COMPACT>
+
+<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR>
+<DD>
+<VAR>keyname</VAR> is the name of a key spelled out in English.  For example:
+
+<PRE>
+Control-u: universal-argument
+Meta-Rubout: backward-kill-word
+Control-o: "&#62; output"
+</PRE>
+
+In the above example, <KBD>C-u</KBD> is bound to the function
+<CODE>universal-argument</CODE>,
+<KBD>M-DEL</KBD> is bound to the function <CODE>backward-kill-word</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).
+
+A number of symbolic character names are recognized while
+processing this key binding syntax:
+<VAR>DEL</VAR>,
+<VAR>ESC</VAR>,
+<VAR>ESCAPE</VAR>,
+<VAR>LFD</VAR>,
+<VAR>NEWLINE</VAR>,
+<VAR>RET</VAR>,
+<VAR>RETURN</VAR>,
+<VAR>RUBOUT</VAR>,
+<VAR>SPACE</VAR>,
+<VAR>SPC</VAR>,
+and
+<VAR>TAB</VAR>.
+
+<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR>
+<DD>
+<VAR>keyseq</VAR> differs from <VAR>keyname</VAR> above in that strings
+denoting an entire key sequence can be specified, by placing
+the key sequence in double quotes.  Some GNU Emacs style key
+escapes can be used, as in the following example, but the
+special character names are not recognized.
+
+
+<PRE>
+"\C-u": universal-argument
+"\C-x\C-r": re-read-init-file
+"\e[11~": "Function Key 1"
+</PRE>
+
+In the above example, <KBD>C-u</KBD> is again bound to the function
+<CODE>universal-argument</CODE> (just as it was in the first example),
+<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>
+
+<DT><CODE><KBD>\C-</KBD></CODE>
+<DD>
+control prefix
+<DT><CODE><KBD>\M-</KBD></CODE>
+<DD>
+meta prefix
+<DT><CODE><KBD>\e</KBD></CODE>
+<DD>
+an escape character
+<DT><CODE><KBD>\\</KBD></CODE>
+<DD>
+backslash
+<DT><CODE><KBD>\"</KBD></CODE>
+<DD>
+<KBD>"</KBD>, a double quotation mark
+<DT><CODE><KBD>\'</KBD></CODE>
+<DD>
+<KBD>'</KBD>, a single quote or apostrophe
+</DL>
+
+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>`<KBD>C-x</KBD> \'</SAMP>
+insert a single <SAMP>`\'</SAMP> into the line:
+
+<PRE>
+"\C-x\\": "\\"
+</PRE>
+
+</DL>
+
+
+
+<H3><A NAME="SEC11" HREF="rluserman.html#TOC11">Conditional Init Constructs</A></H3>
+
+<P>
+Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key
+bindings and variable settings to be performed as the result
+of tests.  There are four parser directives used.
+
+</P>
+<DL COMPACT>
+
+<DT><CODE>$if</CODE>
+<DD>
+The <CODE>$if</CODE> construct allows bindings to be made based on the
+editing mode, the terminal being used, or the application using
+Readline.  The text of the test extends to the end of the line;
+no characters are required to isolate it.
+
+<DL COMPACT>
+
+<DT><CODE>mode</CODE>
+<DD>
+The <CODE>mode=</CODE> form of the <CODE>$if</CODE> directive is used to test
+whether Readline is in <CODE>emacs</CODE> or <CODE>vi</CODE> mode.
+This may be used in conjunction
+with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in
+the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if
+Readline is starting out in <CODE>emacs</CODE> mode.
+
+<DT><CODE>term</CODE>
+<DD>
+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 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.
+
+<DT><CODE>application</CODE>
+<DD>
+The <VAR>application</VAR> construct is used to include
+application-specific settings.  Each program using the Readline
+library sets the <VAR>application name</VAR>, and you can test for it. 
+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:
+
+<PRE>
+$if Bash
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+$endif
+</PRE>
+
+</DL>
+
+<DT><CODE>$endif</CODE>
+<DD>
+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>
+
+
+
+<H3><A NAME="SEC12" HREF="rluserman.html#TOC12">Sample Init File</A></H3>
+
+<P>
+Here is an example of an <VAR>inputrc</VAR> file.  This illustrates key
+binding, variable assignment, and conditional syntax.
+
+</P>
+
+<PRE>
+# This file controls the behaviour of line input editing for
+# programs that use the Gnu Readline library.  Existing programs
+# include FTP, Bash, and Gdb.
+#
+# You can re-read the inputrc file with C-x C-r.
+# Lines beginning with '#' are comments.
+#
+# First, include any systemwide bindings and variable assignments from
+# /etc/Inputrc
+$include /etc/Inputrc
+
+#
+# Set various bindings for emacs mode.
+
+set editing-mode emacs 
+
+$if mode=emacs
+
+Meta-Control-h:	backward-kill-word	Text after the function name is ignored
+
+#
+# Arrow keys in keypad mode
+#
+#"\M-OD":        backward-char
+#"\M-OC":        forward-char
+#"\M-OA":        previous-history
+#"\M-OB":        next-history
+#
+# Arrow keys in ANSI mode
+#
+"\M-[D":        backward-char
+"\M-[C":        forward-char
+"\M-[A":        previous-history
+"\M-[B":        next-history
+#
+# Arrow keys in 8 bit keypad mode
+#
+#"\M-\C-OD":       backward-char
+#"\M-\C-OC":       forward-char
+#"\M-\C-OA":       previous-history
+#"\M-\C-OB":       next-history
+#
+# Arrow keys in 8 bit ANSI mode
+#
+#"\M-\C-[D":       backward-char
+#"\M-\C-[C":       forward-char
+#"\M-\C-[A":       previous-history
+#"\M-\C-[B":       next-history
+
+C-q: quoted-insert
+
+$endif
+
+# An old-style binding.  This happens to be the default.
+TAB: complete
+
+# Macros that are convenient for shell interaction
+$if Bash
+# edit the path
+"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
+# prepare to type a quoted word -- insert open and close double quotes
+# and move to just after the open quote
+"\C-x\"": "\"\"\C-b"
+# insert a backslash (testing backslash escapes in sequences and macros)
+"\C-x\\": "\\"
+# Quote the current or previous word
+"\C-xq": "\eb\"\ef\""
+# Add a binding to refresh the line, which is unbound
+"\C-xr": redraw-current-line
+# Edit variable on current line.
+"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
+$endif
+
+# use a visible bell if one is available
+set bell-style visible
+
+# don't strip characters to 7 bits when reading
+set input-meta on
+
+# allow iso-latin1 characters to be inserted rather than converted to
+# prefix-meta sequences
+set convert-meta off
+
+# display characters with the eighth bit set directly rather than
+# as meta-prefixed characters
+set output-meta on
+
+# if there are more than 150 possible completions for a word, ask the
+# user if he wants to see all of them
+set completion-query-items 150
+
+# For FTP
+$if Ftp
+"\C-xg": "get \M-?"
+"\C-xt": "put \M-?"
+"\M-.": yank-last-arg
+$endif
+</PRE>
+
+
+
+<H2><A NAME="SEC13" HREF="rluserman.html#TOC13">Bindable Readline Commands</A></H2>
+
+
+<UL>
+<LI><A HREF="rluserman.html#SEC14">Commands For Moving</A>: Moving about the line.
+<LI><A HREF="rluserman.html#SEC15">Commands For History</A>: Getting at previous lines.
+<LI><A HREF="rluserman.html#SEC16">Commands For Text</A>: Commands for changing text.
+<LI><A HREF="rluserman.html#SEC17">Commands For Killing</A>: Commands for killing and yanking.
+<LI><A HREF="rluserman.html#SEC18">Numeric Arguments</A>: Specifying numeric arguments, repeat counts.
+<LI><A HREF="rluserman.html#SEC19">Commands For Completion</A>: Getting Readline to do the typing for you.
+<LI><A HREF="rluserman.html#SEC20">Keyboard Macros</A>: Saving and re-executing typed characters
+<LI><A HREF="rluserman.html#SEC21">Miscellaneous Commands</A>: Other miscellaneous commands.
+</UL>
+
+<P>
+This section describes Readline commands that may be bound to key
+sequences.
+
+</P>
+<P>
+Command names without an accompanying key sequence are unbound by default.
+In the following descriptions, <EM>point</EM> refers to the current cursor
+position, and <EM>mark</EM> refers to a cursor position saved by the
+<CODE>set-mark</CODE> command.
+The text between the point and mark is referred to as the <EM>region</EM>.
+
+</P>
+
+
+<H3><A NAME="SEC14" HREF="rluserman.html#TOC14">Commands For Moving</A></H3>
+<DL COMPACT>
+
+<DT><CODE>beginning-of-line (C-a)</CODE>
+<DD>
+<A NAME="IDX26"></A>
+Move to the start of the current line.
+
+<DT><CODE>end-of-line (C-e)</CODE>
+<DD>
+<A NAME="IDX27"></A>
+Move to the end of the line.
+
+<DT><CODE>forward-char (C-f)</CODE>
+<DD>
+<A NAME="IDX28"></A>
+Move forward a character.
+
+<DT><CODE>backward-char (C-b)</CODE>
+<DD>
+<A NAME="IDX29"></A>
+Move back a character.
+
+<DT><CODE>forward-word (M-f)</CODE>
+<DD>
+<A NAME="IDX30"></A>
+Move forward to the end of the next word.  Words are composed of
+letters and digits.
+
+<DT><CODE>backward-word (M-b)</CODE>
+<DD>
+<A NAME="IDX31"></A>
+Move back to the start of the current or previous word.  Words are
+composed of letters and digits.
+
+<DT><CODE>clear-screen (C-l)</CODE>
+<DD>
+<A NAME="IDX32"></A>
+Clear the screen and redraw the current line,
+leaving the current line at the top of the screen.
+
+<DT><CODE>redraw-current-line ()</CODE>
+<DD>
+<A NAME="IDX33"></A>
+Refresh the current line.  By default, this is unbound.
+
+</DL>
+
+
+
+<H3><A NAME="SEC15" HREF="rluserman.html#TOC15">Commands For Manipulating The History</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>accept-line (Newline or Return)</CODE>
+<DD>
+<A NAME="IDX34"></A>
+Accept the line regardless of where the cursor is.
+If this line is
+non-empty, it may be added to the history list for future recall with
+<CODE>add_history()</CODE>.
+If this line is a modified history line, then restore the history line
+to its original state.
+
+<DT><CODE>previous-history (C-p)</CODE>
+<DD>
+<A NAME="IDX35"></A>
+Move `up' through the history list.
+
+<DT><CODE>next-history (C-n)</CODE>
+<DD>
+<A NAME="IDX36"></A>
+Move `down' through the history list.
+
+<DT><CODE>beginning-of-history (M-&#60;)</CODE>
+<DD>
+<A NAME="IDX37"></A>
+Move to the first line in the history.
+
+<DT><CODE>end-of-history (M-&#62;)</CODE>
+<DD>
+<A NAME="IDX38"></A>
+Move to the end of the input history, i.e., the line currently
+being entered.
+
+<DT><CODE>reverse-search-history (C-r)</CODE>
+<DD>
+<A NAME="IDX39"></A>
+Search backward starting at the current line and moving `up' through
+the history as necessary.  This is an incremental search.
+
+<DT><CODE>forward-search-history (C-s)</CODE>
+<DD>
+<A NAME="IDX40"></A>
+Search forward starting at the current line and moving `down' through
+the the history as necessary.  This is an incremental search.
+
+<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
+<DD>
+<A NAME="IDX41"></A>
+Search backward starting at the current line and moving `up'
+through the history as necessary using a non-incremental search
+for a string supplied by the user.
+
+<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
+<DD>
+<A NAME="IDX42"></A>
+Search forward starting at the current line and moving `down'
+through the the history as necessary using a non-incremental search
+for a string supplied by the user.
+
+<DT><CODE>history-search-forward ()</CODE>
+<DD>
+<A NAME="IDX43"></A>
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+This is a non-incremental search.
+By default, this command is unbound.
+
+<DT><CODE>history-search-backward ()</CODE>
+<DD>
+<A NAME="IDX44"></A>
+Search backward through the history for the string of characters
+between the start of the current line and the point.  This
+is a non-incremental search.  By default, this command is unbound.
+
+<DT><CODE>yank-nth-arg (M-C-y)</CODE>
+<DD>
+<A NAME="IDX45"></A>
+Insert the first argument to the previous command (usually
+the second word on the previous line).  With an argument <VAR>n</VAR>,
+insert the <VAR>n</VAR>th word from the previous command (the words
+in the previous command begin with word 0).  A negative argument
+inserts the <VAR>n</VAR>th word from the end of the previous command.
+
+<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
+<DD>
+<A NAME="IDX46"></A>
+Insert last argument to the previous command (the last word of the
+previous history entry).  With an
+argument, behave exactly like <CODE>yank-nth-arg</CODE>.
+Successive calls to <CODE>yank-last-arg</CODE> move back through the history
+list, inserting the last argument of each line in turn.
+
+</DL>
+
+
+
+<H3><A NAME="SEC16" HREF="rluserman.html#TOC16">Commands For Changing Text</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>delete-char (C-d)</CODE>
+<DD>
+<A NAME="IDX47"></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 bound to <CODE>delete-char</CODE>, then
+return EOF.
+
+<DT><CODE>backward-delete-char (Rubout)</CODE>
+<DD>
+<A NAME="IDX48"></A>
+Delete the character behind the cursor.  A numeric argument means
+to kill the characters instead of deleting them.
+
+<DT><CODE>forward-backward-delete-char ()</CODE>
+<DD>
+<A NAME="IDX49"></A>
+Delete the character under the cursor, unless the cursor is at the
+end of the line, in which case the character behind the cursor is
+deleted.  By default, this is not bound to a key.
+
+<DT><CODE>quoted-insert (C-q or C-v)</CODE>
+<DD>
+<A NAME="IDX50"></A>
+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-<KBD>TAB</KBD>)</CODE>
+<DD>
+<A NAME="IDX51"></A>
+Insert a tab character.
+
+<DT><CODE>self-insert (a, b, A, 1, !, ...)</CODE>
+<DD>
+<A NAME="IDX52"></A>
+Insert yourself.
+
+<DT><CODE>transpose-chars (C-t)</CODE>
+<DD>
+<A NAME="IDX53"></A>
+Drag the character before the cursor forward over
+the character at the cursor, moving the
+cursor forward as well.  If the insertion point
+is at the end of the line, then this
+transposes the last two characters of the line.
+Negative arguments have no effect.
+
+<DT><CODE>transpose-words (M-t)</CODE>
+<DD>
+<A NAME="IDX54"></A>
+Drag the word before point past the word after point,
+moving point past that word as well.
+
+<DT><CODE>upcase-word (M-u)</CODE>
+<DD>
+<A NAME="IDX55"></A>
+Uppercase the current (or following) word.  With a negative argument,
+uppercase the previous word, but do not move the cursor.
+
+<DT><CODE>downcase-word (M-l)</CODE>
+<DD>
+<A NAME="IDX56"></A>
+Lowercase the current (or following) word.  With a negative argument,
+lowercase the previous word, but do not move the cursor.
+
+<DT><CODE>capitalize-word (M-c)</CODE>
+<DD>
+<A NAME="IDX57"></A>
+Capitalize the current (or following) word.  With a negative argument,
+capitalize the previous word, but do not move the cursor.
+
+</DL>
+
+
+
+<H3><A NAME="SEC17" HREF="rluserman.html#TOC17">Killing And Yanking</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>kill-line (C-k)</CODE>
+<DD>
+<A NAME="IDX58"></A>
+Kill the text from point to the end of the line.
+
+<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
+<DD>
+<A NAME="IDX59"></A>
+Kill backward to the beginning of the line.
+
+<DT><CODE>unix-line-discard (C-u)</CODE>
+<DD>
+<A NAME="IDX60"></A>
+Kill backward from the cursor to the beginning of the current line.
+
+<DT><CODE>kill-whole-line ()</CODE>
+<DD>
+<A NAME="IDX61"></A>
+Kill all characters on the current line, no matter point is.
+By default, this is unbound.
+
+<DT><CODE>kill-word (M-d)</CODE>
+<DD>
+<A NAME="IDX62"></A>
+Kill from point to the end of the current word, or if between
+words, to the end of the next word.
+Word boundaries are the same as <CODE>forward-word</CODE>.
+
+<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
+<DD>
+<A NAME="IDX63"></A>
+Kill the word behind point.
+Word boundaries are the same as <CODE>backward-word</CODE>.
+
+<DT><CODE>unix-word-rubout (C-w)</CODE>
+<DD>
+<A NAME="IDX64"></A>
+Kill the word behind point, using white space as a word boundary.
+The killed text is saved on the kill-ring.
+
+<DT><CODE>delete-horizontal-space ()</CODE>
+<DD>
+<A NAME="IDX65"></A>
+Delete all spaces and tabs around point.  By default, this is unbound.
+
+<DT><CODE>kill-region ()</CODE>
+<DD>
+<A NAME="IDX66"></A>
+Kill the text in the current region.
+By default, this command is unbound.
+
+<DT><CODE>copy-region-as-kill ()</CODE>
+<DD>
+<A NAME="IDX67"></A>
+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="IDX68"></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="IDX69"></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>
+<DD>
+<A NAME="IDX70"></A>
+Yank the top of the kill ring into the buffer at the current
+cursor position.
+
+<DT><CODE>yank-pop (M-y)</CODE>
+<DD>
+<A NAME="IDX71"></A>
+Rotate the kill-ring, and yank the new top.  You can only do this if
+the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
+</DL>
+
+
+
+<H3><A NAME="SEC18" HREF="rluserman.html#TOC18">Specifying Numeric Arguments</A></H3>
+<DL COMPACT>
+
+<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, ... <KBD>M--</KBD>)</CODE>
+<DD>
+<A NAME="IDX72"></A>
+Add this digit to the argument already accumulating, or start a new
+argument.  <KBD>M--</KBD> starts a negative argument.
+
+<DT><CODE>universal-argument ()</CODE>
+<DD>
+<A NAME="IDX73"></A>
+This is another way to specify an argument.
+If this command is followed by one or more digits, optionally with a
+leading minus sign, those digits define the argument.
+If the command is followed by digits, executing <CODE>universal-argument</CODE>
+again ends the numeric argument, but is otherwise ignored.
+As a special case, if this command is immediately followed by a
+character that is neither a digit or minus sign, the argument count
+for the next command is multiplied by four.
+The argument count is initially one, so executing this function the
+first time makes the argument count four, a second time makes the
+argument count sixteen, and so on.
+By default, this is not bound to a key.
+</DL>
+
+
+
+<H3><A NAME="SEC19" HREF="rluserman.html#TOC19">Letting Readline Type For You</A></H3>
+
+<DL COMPACT>
+
+<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
+<DD>
+<A NAME="IDX74"></A>
+Attempt to perform completion on the text before point.
+The actual completion performed is application-specific.
+The default is filename completion.
+
+<DT><CODE>possible-completions (M-?)</CODE>
+<DD>
+<A NAME="IDX75"></A>
+List the possible completions of the text before the cursor.
+
+<DT><CODE>insert-completions (M-*)</CODE>
+<DD>
+<A NAME="IDX76"></A>
+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="IDX77"></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 <KBD>TAB</KBD>, but is unbound
+by default.
+
+<DT><CODE>delete-char-or-list ()</CODE>
+<DD>
+<A NAME="IDX78"></A>
+Deletes the character under the cursor if not at the beginning or
+end of the line (like <CODE>delete-char</CODE>).
+If at the end of the line, behaves identically to
+<CODE>possible-completions</CODE>.
+This command is unbound by default.
+
+</DL>
+
+
+
+<H3><A NAME="SEC20" HREF="rluserman.html#TOC20">Keyboard Macros</A></H3>
+<DL COMPACT>
+
+<DT><CODE>start-kbd-macro (C-x ()</CODE>
+<DD>
+<A NAME="IDX79"></A>
+Begin saving the characters typed into the current keyboard macro.
+
+<DT><CODE>end-kbd-macro (C-x ))</CODE>
+<DD>
+<A NAME="IDX80"></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="IDX81"></A>
+Re-execute the last keyboard macro defined, by making the characters
+in the macro appear as if typed at the keyboard.
+
+</DL>
+
+
+
+<H3><A NAME="SEC21" HREF="rluserman.html#TOC21">Some Miscellaneous Commands</A></H3>
+<DL COMPACT>
+
+<DT><CODE>re-read-init-file (C-x C-r)</CODE>
+<DD>
+<A NAME="IDX82"></A>
+Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
+any bindings or variable assignments found there.
+
+<DT><CODE>abort (C-g)</CODE>
+<DD>
+<A NAME="IDX83"></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="IDX84"></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 (<KBD>ESC</KBD>)</CODE>
+<DD>
+<A NAME="IDX85"></A>
+Make the next character typed be metafied.  This is for keyboards
+without a meta key.  Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
+<KBD>M-f</KBD>.
+
+<DT><CODE>undo (C-_ or C-x C-u)</CODE>
+<DD>
+<A NAME="IDX86"></A>
+Incremental undo, separately remembered for each line.
+
+<DT><CODE>revert-line (M-r)</CODE>
+<DD>
+<A NAME="IDX87"></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="IDX88"></A>
+Perform tilde expansion on the current word.
+
+<DT><CODE>set-mark (C-@)</CODE>
+<DD>
+<A NAME="IDX89"></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="IDX90"></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="IDX91"></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="IDX92"></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="IDX93"></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="IDX94"></A>
+Print all of the functions and their key bindings to the
+Readline output stream.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an <VAR>inputrc</VAR> file.  This command is unbound by default.
+
+<DT><CODE>dump-variables ()</CODE>
+<DD>
+<A NAME="IDX95"></A>
+Print all of the settable variables and their values to the
+Readline output stream.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an <VAR>inputrc</VAR> file.  This command is unbound by default.
+
+<DT><CODE>dump-macros ()</CODE>
+<DD>
+<A NAME="IDX96"></A>
+Print all of the Readline key sequences bound to macros and the
+strings they output.  If a numeric argument is supplied,
+the output is formatted in such a way that it can be made part
+of an <VAR>inputrc</VAR> file.  This command is unbound by default.
+
+</DL>
+
+
+
+<H2><A NAME="SEC22" HREF="rluserman.html#TOC22">Readline vi Mode</A></H2>
+
+<P>
+While the Readline library does not have a full set of <CODE>vi</CODE>
+editing functions, it does contain enough to allow simple editing
+of the line.  The Readline <CODE>vi</CODE> mode behaves as specified in
+the POSIX 1003.2 standard.
+
+</P>
+<P>
+In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE>
+editing modes, use the command <KBD>M-C-j</KBD> (toggle-editing-mode).
+The Readline default is <CODE>emacs</CODE> mode.
+
+</P>
+<P>
+When you enter a line in <CODE>vi</CODE> mode, you are already placed in
+`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>.  Pressing <KBD>ESC</KBD>
+switches you into `command' mode, where you can edit the text of the
+line with the standard <CODE>vi</CODE> movement keys, move to previous
+history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and
+so forth.
+
+</P>
+
+<P><HR><P>
+This document was generated on 5 Febuary 2001 using the
+<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>
+translator version 1.52.</P>
+</BODY>
+</HTML>
new file mode 100644
--- /dev/null
+++ b/readline/doc/rluserman.info
@@ -0,0 +1,1194 @@
+This is rluserman.info, produced by makeinfo version 4.0 from
+/usr/homes/chet/src/bash/readline-src/doc/rluserman.texinfo.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* RLuserman: (rluserman).       The GNU readline library User's Manual.
+END-INFO-DIR-ENTRY
+
+   This document describes the end user interface of the GNU Readline
+Library, a utility which aids in the consistency of user interface
+across discrete programs that need to provide a command line interface.
+
+   Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice pare
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+
+File: rluserman.info,  Node: Top,  Next: Command Line Editing,  Up: (dir)
+
+GNU Readline Library
+********************
+
+   This document describes the end user interface of the GNU Readline
+Library, a utility which aids in the consistency of user interface
+across discrete programs that need to provide a command line interface.
+
+* Menu:
+
+* Command Line Editing::	   GNU Readline User's Manual.
+
+
+File: rluserman.info,  Node: Command Line Editing,  Prev: Top,  Up: Top
+
+Command Line Editing
+********************
+
+   This chapter describes the basic features of the GNU command line
+editing interface.
+
+* Menu:
+
+* Introduction and Notation::	Notation used in this text.
+* Readline Interaction::	The minimum set of commands for editing a line.
+* Readline Init File::		Customizing Readline from a user's view.
+* Bindable Readline Commands::	A description of most of the Readline commands
+				available for binding
+* Readline vi Mode::		A short description of how to make Readline
+				behave like the vi editor.
+
+
+File: rluserman.info,  Node: Introduction and Notation,  Next: Readline Interaction,  Up: Command Line Editing
+
+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 `M-k' is read as `Meta-K' and describes the character
+produced when the Meta key (if you have one) is depressed, and the <k>
+key is pressed.  The Meta key is labeled <ALT> on many keyboards.  On
+keyboards with two keys labeled <ALT> (usually to either side of the
+space bar), the <ALT> on the left side is generally set to work as a
+Meta key.  The <ALT> key on the right may also be configured to work as
+a Meta key or may be configured as some other modifier, such as a
+Compose key for typing accented characters.
+
+   If you do not have a Meta or <ALT> key, or another key working as 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.
+
+   The text `M-C-k' is read as `Meta-Control-k' and describes the
+character produced by "metafying" `C-k'.
+
+   In addition, several keys have their own names.  Specifically,
+<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
+when seen in this text, or in an init file (*note Readline Init File::).
+If your keyboard lacks a <LFD> key, typing <C-j> will produce the
+desired character.  The <RET> key may be labeled <Return> or <Enter> on
+some keyboards.
+
+
+File: rluserman.info,  Node: Readline Interaction,  Next: Readline Init File,  Prev: Introduction and Notation,  Up: Command Line Editing
+
+Readline Interaction
+====================
+
+   Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled.  The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line.  Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections.  Then, when you are satisfied with
+the line, you simply press <RET>.  You do not have to be at the end of
+the line to press <RET>; the entire line is accepted regardless of the
+location of the cursor within the line.
+
+* Menu:
+
+* Readline Bare Essentials::	The least you need to know about Readline.
+* Readline Movement Commands::	Moving about the input line.
+* Readline Killing Commands::	How to delete text, and how to get it back!
+* Readline Arguments::		Giving numeric arguments to commands.
+* Searching::			Searching through previous lines.
+
+
+File: rluserman.info,  Node: Readline Bare Essentials,  Next: Readline Movement Commands,  Up: Readline Interaction
+
+Readline Bare Essentials
+------------------------
+
+   In order to enter characters into the line, simply type them.  The
+typed character appears where the cursor was, and then the cursor moves
+one space to the right.  If you mistype a character, you can use your
+erase character to back up and delete the mistyped character.
+
+   Sometimes you may mistype a character, and not notice the error
+until you have typed several other characters.  In that case, you can
+type `C-b' to move the cursor to the left, and then correct your
+mistake.  Afterwards, you can move the cursor to the right with `C-f'.
+
+   When you add text in the middle of a line, you will notice that
+characters to the right of the cursor are `pushed over' to make room
+for the text that you have inserted.  Likewise, when you delete text
+behind the cursor, characters to the right of the cursor are `pulled
+back' to fill in the blank space created by the removal of the text.  A
+list of the bare essentials for editing the text of an input line
+follows.
+
+`C-b'
+     Move back one character.
+
+`C-f'
+     Move forward one character.
+
+<DEL> or <Backspace>
+     Delete the character to the left of the cursor.
+
+`C-d'
+     Delete the character underneath the cursor.
+
+Printing characters
+     Insert the character into the line at the cursor.
+
+`C-_' or `C-x C-u'
+     Undo the last editing command.  You can undo all the way back to an
+     empty line.
+
+(Depending on your configuration, the <Backspace> key be set to delete
+the character to the left of the cursor and the <DEL> key set to delete
+the character underneath the cursor, like `C-d', rather than the
+character to the left of the cursor.)
+
+
+File: rluserman.info,  Node: Readline Movement Commands,  Next: Readline Killing Commands,  Prev: Readline Bare Essentials,  Up: Readline Interaction
+
+Readline Movement Commands
+--------------------------
+
+   The above table describes the most basic keystrokes that you need in
+order to do editing of the input line.  For your convenience, many
+other commands have been added in addition to `C-b', `C-f', `C-d', and
+<DEL>.  Here are some commands for moving more rapidly about the line.
+
+`C-a'
+     Move to the start of the line.
+
+`C-e'
+     Move to the end of the line.
+
+`M-f'
+     Move forward a word, where a word is composed of letters and
+     digits.
+
+`M-b'
+     Move backward a word.
+
+`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.
+
+
+File: rluserman.info,  Node: Readline Killing Commands,  Next: Readline Arguments,  Prev: Readline Movement Commands,  Up: Readline Interaction
+
+Readline Killing Commands
+-------------------------
+
+   "Killing" text means to delete the text from the line, but to save
+it away for later use, usually by "yanking" (re-inserting) it back into
+the line.  (`Cut' and `paste' are more recent jargon for `kill' and
+`yank'.)
+
+   If the description for a command says that it `kills' text, then you
+can be sure that you can get the text back in a different (or the same)
+place later.
+
+   When you use a kill command, the text is saved in a "kill-ring".
+Any number of consecutive kills save all of the killed text together, so
+that when you yank it back, you get it all.  The kill ring is not line
+specific; the text that you killed on a previously typed line is
+available to be yanked back later, when you are typing another line.
+
+   Here is the list of commands for killing text.
+
+`C-k'
+     Kill the text from the current cursor position to the end of the
+     line.
+
+`M-d'
+     Kill from the cursor to the end of the current word, or, if between
+     words, to the end of the next word.  Word boundaries are the same
+     as those used by `M-f'.
+
+`M-<DEL>'
+     Kill from the cursor the start of the previous word, or, if between
+     words, to the start of the previous word.  Word boundaries are the
+     same as those used by `M-b'.
+
+`C-w'
+     Kill from the cursor to the previous whitespace.  This is
+     different than `M-<DEL>' because the word boundaries differ.
+
+   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'
+     Yank the most recently killed text back into the buffer at the
+     cursor.
+
+`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'.
+
+
+File: rluserman.info,  Node: Readline Arguments,  Next: Searching,  Prev: Readline Killing Commands,  Up: Readline Interaction
+
+Readline Arguments
+------------------
+
+   You can pass numeric arguments to Readline commands.  Sometimes the
+argument acts as a repeat count, other times it is the sign of the
+argument that is significant.  If you pass a negative argument to a
+command which normally acts in a forward direction, that command will
+act in a backward direction.  For example, to kill text back to the
+start of the line, you might type `M-- C-k'.
+
+   The general way to pass numeric arguments to a command is to type
+meta digits before the command.  If the first `digit' typed is a minus
+sign (`-'), then the sign of the argument will be negative.  Once you
+have typed one meta digit to get the argument started, you can type the
+remainder of the digits, and then the command.  For example, to give
+the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
+will delete the next ten characters on the input line.
+
+
+File: rluserman.info,  Node: Searching,  Prev: Readline Arguments,  Up: Readline Interaction
+
+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 searches begin before the user has finished typing the
+search string.  As each character of the search string is typed,
+Readline displays the next entry from the history matching the string
+typed so far.  An incremental search requires only as many characters
+as needed to find the desired history entry.  To search backward in the
+history for a particular string, type `C-r'.  Typing `C-s' searches
+forward through the history.  The characters present in the value of
+the `isearch-terminators' variable are used to terminate an incremental
+search.  If that variable has not been assigned a value, the <ESC> and
+`C-J' characters will terminate an incremental search.  `C-g' will
+abort an incremental search and restore the original line.  When the
+search is terminated, the history entry containing the search string
+becomes the current line.
+
+   To find other matching entries in the history list, type `C-r' or
+`C-s' as appropriate.  This will search backward or forward in the
+history for the next entry matching the search string typed so far.
+Any other key sequence bound to a Readline command will terminate the
+search and execute that command.  For instance, a <RET> will terminate
+the search and accept the line, thereby executing the command from the
+history list.  A movement command will terminate the search, make the
+last line found the current line, and begin editing.
+
+   Non-incremental searches read the entire search string before
+starting to search for matching history lines.  The search string may be
+typed by the user or be part of the contents of the current line.
+
+
+File: rluserman.info,  Node: Readline Init File,  Next: Bindable Readline Commands,  Prev: Readline Interaction,  Up: Command Line Editing
+
+Readline Init File
+==================
+
+   Although the Readline library comes with a set of Emacs-like
+keybindings installed by default, it is possible to use a different set
+of keybindings.  Any user can customize programs that use Readline by
+putting commands in an "inputrc" file, conventionally in his home
+directory.  The name of this file is taken from the value of the
+environment variable `INPUTRC'.  If that variable is unset, the default
+is `~/.inputrc'.
+
+   When a program which uses the Readline library starts up, the init
+file is read, and the key bindings are set.
+
+   In addition, the `C-x C-r' command re-reads this init file, thus
+incorporating any changes that you might have made to it.
+
+* Menu:
+
+* Readline Init File Syntax::	Syntax for the commands in the inputrc file.
+
+* Conditional Init Constructs::	Conditional key bindings in the inputrc file.
+
+* Sample Init File::		An example inputrc file.
+
+
+File: rluserman.info,  Node: Readline Init File Syntax,  Next: Conditional Init Constructs,  Up: Readline Init File
+
+Readline Init File Syntax
+-------------------------
+
+   There are only a few basic constructs allowed in the Readline init
+file.  Blank lines are ignored.  Lines beginning with a `#' are
+comments.  Lines beginning with a `$' indicate conditional constructs
+(*note Conditional Init Constructs::).  Other lines denote variable
+settings and key bindings.
+
+Variable Settings
+     You can modify the run-time behavior of Readline by altering the
+     values of variables in Readline using the `set' command within the
+     init file.  Here is how to change from the default Emacs-like key
+     binding to use `vi' line editing commands:
+
+          set editing-mode vi
+
+     A great deal of run-time behavior is changeable with the following
+     variables.
+
+    `bell-style'
+          Controls what happens when Readline wants to ring the
+          terminal bell.  If set to `none', Readline never rings the
+          bell.  If set to `visible', Readline uses a visible bell if
+          one is available.  If set to `audible' (the default),
+          Readline attempts to ring the terminal's bell.
+
+    `comment-begin'
+          The string to insert at the beginning of the line when the
+          `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
+          possibilities.  If the number of possible completions is
+          greater than this value, Readline will ask the user whether
+          or not he wishes to view them; otherwise, they are simply
+          listed.  This variable must be set to an integer value
+          greater than or equal to 0.  The default limit is `100'.
+
+    `convert-meta'
+          If set to `on', Readline will convert characters with the
+          eighth bit set to an ASCII key sequence by stripping the
+          eighth bit and prefixing an <ESC> character, converting them
+          to a meta-prefixed key sequence.  The default value is `on'.
+
+    `disable-completion'
+          If set to `On', Readline will inhibit word completion.
+          Completion  characters will be inserted into the line as if
+          they had been mapped to `self-insert'.  The default is `off'.
+
+    `editing-mode'
+          The `editing-mode' variable controls which default set of key
+          bindings is used.  By default, Readline starts up in Emacs
+          editing mode, where the keystrokes are most similar to Emacs.
+          This variable can be set to either `emacs' or `vi'.
+
+    `enable-keypad'
+          When set to `on', Readline will try to enable the application
+          keypad when it is called.  Some systems need this to enable
+          the arrow keys.  The default is `off'.
+
+    `expand-tilde'
+          If set to `on', tilde expansion is performed when Readline
+          attempts word completion.  The default is `off'.
+
+    `horizontal-scroll-mode'
+          This variable can be set to either `on' or `off'.  Setting it
+          to `on' means that the text of the lines being edited will
+          scroll horizontally on a single screen line when they are
+          longer than the width of the screen, instead of wrapping onto
+          a new screen line.  By default, this variable is set to `off'.
+
+    `input-meta'
+          If set to `on', Readline will enable eight-bit input (it will
+          not clear the eighth bit in the characters it reads),
+          regardless of what the terminal claims it can support.  The
+          default value is `off'.  The name `meta-flag' is a synonym
+          for this variable.
+
+    `isearch-terminators'
+          The string of characters that should terminate an incremental
+          search without subsequently executing the character as a
+          command (*note Searching::).  If this variable has not been
+          given a value, the characters <ESC> and `C-J' will terminate
+          an incremental search.
+
+    `keymap'
+          Sets Readline's idea of the current keymap for key binding
+          commands.  Acceptable `keymap' names are `emacs',
+          `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move',
+          `vi-command', and `vi-insert'.  `vi' is equivalent to
+          `vi-command'; `emacs' is equivalent to `emacs-standard'.  The
+          default value is `emacs'.  The value of the `editing-mode'
+          variable also affects the default keymap.
+
+    `mark-directories'
+          If set to `on', completed directory names have a slash
+          appended.  The default is `on'.
+
+    `mark-modified-lines'
+          This variable, when set to `on', causes Readline to display an
+          asterisk (`*') at the start of history lines which have been
+          modified.  This variable is `off' by default.
+
+    `output-meta'
+          If set to `on', Readline will display characters with the
+          eighth bit set directly rather than as a meta-prefixed escape
+          sequence.  The default is `off'.
+
+    `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
+          completion cause the matches to be listed immediately instead
+          of ringing the bell.  The default value is `off'.
+
+    `visible-stats'
+          If set to `on', a character denoting a file's type is
+          appended to the filename when listing possible completions.
+          The default is `off'.
+
+Key Bindings
+     The syntax for controlling key bindings in the init file is
+     simple.  First you need to find the name of the command that you
+     want to change.  The following sections contain tables of the
+     command name, the default keybinding, if any, and a short
+     description of what the command does.
+
+     Once you know the name of the command, simply place on a line in
+     the init file the name of the key you wish to bind the command to,
+     a colon, and then the name of the command.  The name of the key
+     can be expressed in different ways, depending on what you find most
+     comfortable.
+
+    KEYNAME: FUNCTION-NAME or MACRO
+          KEYNAME is the name of a key spelled out in English.  For
+          example:
+               Control-u: universal-argument
+               Meta-Rubout: backward-kill-word
+               Control-o: "> output"
+
+          In the above example, `C-u' is bound to the function
+          `universal-argument', `M-DEL' is bound to the function
+          `backward-kill-word', and `C-o' is bound to run the macro
+          expressed on the right hand side (that is, to insert the text
+          `> output' into the line).
+
+          A number of symbolic character names are recognized while
+          processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
+          NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
+
+    "KEYSEQ": FUNCTION-NAME or MACRO
+          KEYSEQ differs from KEYNAME above in that strings denoting an
+          entire key sequence can be specified, by placing the key
+          sequence in double quotes.  Some GNU Emacs style key escapes
+          can be used, as in the following example, but the special
+          character names are not recognized.
+
+               "\C-u": universal-argument
+               "\C-x\C-r": re-read-init-file
+               "\e[11~": "Function Key 1"
+
+          In the above example, `C-u' is again bound to the function
+          `universal-argument' (just as it was in the first example),
+          `C-x C-r' is bound to the function `re-read-init-file', and
+          `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
+          Key 1'.
+
+     The following GNU Emacs style escape sequences are available when
+     specifying key sequences:
+
+    `\C-'
+          control prefix
+
+    `\M-'
+          meta prefix
+
+    `\e'
+          an escape character
+
+    `\\'
+          backslash
+
+    `\"'
+          <">, a double quotation mark
+
+    `\''
+          <'>, a single quote or apostrophe
+
+     In addition to the GNU Emacs style escape sequences, a second set
+     of backslash escapes is available:
+
+    `\a'
+          alert (bell)
+
+    `\b'
+          backspace
+
+    `\d'
+          delete
+
+    `\f'
+          form feed
+
+    `\n'
+          newline
+
+    `\r'
+          carriage return
+
+    `\t'
+          horizontal tab
+
+    `\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: rluserman.info,  Node: Conditional Init Constructs,  Next: Sample Init File,  Prev: Readline Init File Syntax,  Up: Readline Init File
+
+Conditional Init Constructs
+---------------------------
+
+   Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key bindings
+and variable settings to be performed as the result of tests.  There
+are four parser directives used.
+
+`$if'
+     The `$if' construct allows bindings to be made based on the
+     editing mode, the terminal being used, or the application using
+     Readline.  The text of the test extends to the end of the line; no
+     characters are required to isolate it.
+
+    `mode'
+          The `mode=' form of the `$if' directive is used to test
+          whether Readline is in `emacs' or `vi' mode.  This may be
+          used in conjunction with the `set keymap' command, for
+          instance, to set bindings in the `emacs-standard' and
+          `emacs-ctlx' keymaps only if Readline is starting out in
+          `emacs' mode.
+
+    `term'
+          The `term=' form may be used to include terminal-specific key
+          bindings, perhaps to bind the key sequences output by the
+          terminal's function keys.  The word on the right side of the
+          `=' is tested against both the full name of the terminal and
+          the portion of the terminal name before the first `-'.  This
+          allows `sun' to match both `sun' and `sun-cmd', for instance.
+
+    `application'
+          The APPLICATION construct is used to include
+          application-specific settings.  Each program using the
+          Readline library sets the APPLICATION NAME, and you can test
+          for it.  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:
+               $if Bash
+               # Quote the current or previous word
+               "\C-xq": "\eb\"\ef\""
+               $endif
+
+`$endif'
+     This command, as seen in the previous example, terminates an `$if'
+     command.
+
+`$else'
+     Commands in this branch of the `$if' directive are executed if the
+     test fails.
+
+`$include'
+     This directive takes a single filename as an argument and reads
+     commands and bindings from that file.
+          $include /etc/inputrc
+
+
+File: rluserman.info,  Node: Sample Init File,  Prev: Conditional Init Constructs,  Up: Readline Init File
+
+Sample Init File
+----------------
+
+   Here is an example of an INPUTRC file.  This illustrates key
+binding, variable assignment, and conditional syntax.
+
+
+     # This file controls the behaviour of line input editing for
+     # programs that use the Gnu Readline library.  Existing programs
+     # include FTP, Bash, and Gdb.
+     #
+     # You can re-read the inputrc file with C-x C-r.
+     # Lines beginning with '#' are comments.
+     #
+     # First, include any systemwide bindings and variable assignments from
+     # /etc/Inputrc
+     $include /etc/Inputrc
+     
+     #
+     # Set various bindings for emacs mode.
+     
+     set editing-mode emacs
+     
+     $if mode=emacs
+     
+     Meta-Control-h:	backward-kill-word	Text after the function name is ignored
+     
+     #
+     # Arrow keys in keypad mode
+     #
+     #"\M-OD":        backward-char
+     #"\M-OC":        forward-char
+     #"\M-OA":        previous-history
+     #"\M-OB":        next-history
+     #
+     # Arrow keys in ANSI mode
+     #
+     "\M-[D":        backward-char
+     "\M-[C":        forward-char
+     "\M-[A":        previous-history
+     "\M-[B":        next-history
+     #
+     # Arrow keys in 8 bit keypad mode
+     #
+     #"\M-\C-OD":       backward-char
+     #"\M-\C-OC":       forward-char
+     #"\M-\C-OA":       previous-history
+     #"\M-\C-OB":       next-history
+     #
+     # Arrow keys in 8 bit ANSI mode
+     #
+     #"\M-\C-[D":       backward-char
+     #"\M-\C-[C":       forward-char
+     #"\M-\C-[A":       previous-history
+     #"\M-\C-[B":       next-history
+     
+     C-q: quoted-insert
+     
+     $endif
+     
+     # An old-style binding.  This happens to be the default.
+     TAB: complete
+     
+     # Macros that are convenient for shell interaction
+     $if Bash
+     # edit the path
+     "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
+     # prepare to type a quoted word -- insert open and close double quotes
+     # and move to just after the open quote
+     "\C-x\"": "\"\"\C-b"
+     # insert a backslash (testing backslash escapes in sequences and macros)
+     "\C-x\\": "\\"
+     # Quote the current or previous word
+     "\C-xq": "\eb\"\ef\""
+     # Add a binding to refresh the line, which is unbound
+     "\C-xr": redraw-current-line
+     # Edit variable on current line.
+     "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
+     $endif
+     
+     # use a visible bell if one is available
+     set bell-style visible
+     
+     # don't strip characters to 7 bits when reading
+     set input-meta on
+     
+     # allow iso-latin1 characters to be inserted rather than converted to
+     # prefix-meta sequences
+     set convert-meta off
+     
+     # display characters with the eighth bit set directly rather than
+     # as meta-prefixed characters
+     set output-meta on
+     
+     # if there are more than 150 possible completions for a word, ask the
+     # user if he wants to see all of them
+     set completion-query-items 150
+     
+     # For FTP
+     $if Ftp
+     "\C-xg": "get \M-?"
+     "\C-xt": "put \M-?"
+     "\M-.": yank-last-arg
+     $endif
+
+
+File: rluserman.info,  Node: Bindable Readline Commands,  Next: Readline vi Mode,  Prev: Readline Init File,  Up: Command Line Editing
+
+Bindable Readline Commands
+==========================
+
+* Menu:
+
+* Commands For Moving::		Moving about the line.
+* Commands For History::	Getting at previous lines.
+* Commands For Text::		Commands for changing text.
+* Commands For Killing::	Commands for killing and yanking.
+* Numeric Arguments::		Specifying numeric arguments, repeat counts.
+* Commands For Completion::	Getting Readline to do the typing for you.
+* Keyboard Macros::		Saving and re-executing typed characters
+* Miscellaneous Commands::	Other miscellaneous commands.
+
+   This section describes Readline commands that may be bound to key
+sequences.
+
+   Command names without an accompanying key sequence are unbound by
+default.  In the following descriptions, "point" refers to the current
+cursor position, and "mark" refers to a cursor position saved by the
+`set-mark' command.  The text between the point and mark is referred to
+as the "region".
+
+
+File: rluserman.info,  Node: Commands For Moving,  Next: Commands For History,  Up: Bindable Readline Commands
+
+Commands For Moving
+-------------------
+
+`beginning-of-line (C-a)'
+     Move to the start of the current line.
+
+`end-of-line (C-e)'
+     Move to the end of the line.
+
+`forward-char (C-f)'
+     Move forward a character.
+
+`backward-char (C-b)'
+     Move back a character.
+
+`forward-word (M-f)'
+     Move forward to the end of the next word.  Words are composed of
+     letters and digits.
+
+`backward-word (M-b)'
+     Move back to the start of the current or previous word.  Words are
+     composed of letters and digits.
+
+`clear-screen (C-l)'
+     Clear the screen and redraw the current line, leaving the current
+     line at the top of the screen.
+
+`redraw-current-line ()'
+     Refresh the current line.  By default, this is unbound.
+
+
+File: rluserman.info,  Node: Commands For History,  Next: Commands For Text,  Prev: Commands For Moving,  Up: Bindable Readline Commands
+
+Commands For Manipulating The History
+-------------------------------------
+
+`accept-line (Newline or Return)'
+     Accept the line regardless of where the cursor is.  If this line is
+     non-empty, it may be added to the history list for future recall
+     with `add_history()'.  If this line is a modified history line,
+     then restore the history line to its original state.
+
+`previous-history (C-p)'
+     Move `up' through the history list.
+
+`next-history (C-n)'
+     Move `down' through the history list.
+
+`beginning-of-history (M-<)'
+     Move to the first line in the history.
+
+`end-of-history (M->)'
+     Move to the end of the input history, i.e., the line currently
+     being entered.
+
+`reverse-search-history (C-r)'
+     Search backward starting at the current line and moving `up'
+     through the history as necessary.  This is an incremental search.
+
+`forward-search-history (C-s)'
+     Search forward starting at the current line and moving `down'
+     through the the history as necessary.  This is an incremental
+     search.
+
+`non-incremental-reverse-search-history (M-p)'
+     Search backward starting at the current line and moving `up'
+     through the history as necessary using a non-incremental search
+     for a string supplied by the user.
+
+`non-incremental-forward-search-history (M-n)'
+     Search forward starting at the current line and moving `down'
+     through the the history as necessary using a non-incremental search
+     for a string supplied by the user.
+
+`history-search-forward ()'
+     Search forward through the history for the string of characters
+     between the start of the current line and the point.  This is a
+     non-incremental search.  By default, this command is unbound.
+
+`history-search-backward ()'
+     Search backward through the history for the string of characters
+     between the start of the current line and the point.  This is a
+     non-incremental search.  By default, this command is unbound.
+
+`yank-nth-arg (M-C-y)'
+     Insert the first argument to the previous command (usually the
+     second word on the previous line).  With an argument N, insert the
+     Nth word from the previous command (the words in the previous
+     command begin with word 0).  A negative argument inserts the Nth
+     word from the end of the previous command.
+
+`yank-last-arg (M-. or M-_)'
+     Insert last argument to the previous command (the last word of the
+     previous history entry).  With an argument, behave exactly like
+     `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: rluserman.info,  Node: Commands For Text,  Next: Commands For Killing,  Prev: Commands For History,  Up: Bindable Readline Commands
+
+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 bound to `delete-char', then
+     return EOF.
+
+`backward-delete-char (Rubout)'
+     Delete the character behind the cursor.  A numeric argument means
+     to kill the characters instead of deleting them.
+
+`forward-backward-delete-char ()'
+     Delete the character under the cursor, unless the cursor is at the
+     end of the line, in which case the character behind the cursor is
+     deleted.  By default, this is not bound to a key.
+
+`quoted-insert (C-q or C-v)'
+     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.
+
+`self-insert (a, b, A, 1, !, ...)'
+     Insert yourself.
+
+`transpose-chars (C-t)'
+     Drag the character before the cursor forward over the character at
+     the cursor, moving the cursor forward as well.  If the insertion
+     point is at the end of the line, then this transposes the last two
+     characters of the line.  Negative arguments have no effect.
+
+`transpose-words (M-t)'
+     Drag the word before point past the word after point, moving point
+     past that word as well.
+
+`upcase-word (M-u)'
+     Uppercase the current (or following) word.  With a negative
+     argument, uppercase the previous word, but do not move the cursor.
+
+`downcase-word (M-l)'
+     Lowercase the current (or following) word.  With a negative
+     argument, lowercase the previous word, but do not move the cursor.
+
+`capitalize-word (M-c)'
+     Capitalize the current (or following) word.  With a negative
+     argument, capitalize the previous word, but do not move the cursor.
+
+
+File: rluserman.info,  Node: Commands For Killing,  Next: Numeric Arguments,  Prev: Commands For Text,  Up: Bindable Readline Commands
+
+Killing And Yanking
+-------------------
+
+`kill-line (C-k)'
+     Kill the text from point to the end of the line.
+
+`backward-kill-line (C-x Rubout)'
+     Kill backward to the beginning of the line.
+
+`unix-line-discard (C-u)'
+     Kill backward from the cursor to the beginning of the current line.
+
+`kill-whole-line ()'
+     Kill all characters on the current line, no matter point is.  By
+     default, this is unbound.
+
+`kill-word (M-d)'
+     Kill from point to the end of the current word, or if between
+     words, to the end of the next word.  Word boundaries are the same
+     as `forward-word'.
+
+`backward-kill-word (M-<DEL>)'
+     Kill the word behind point.  Word boundaries are the same as
+     `backward-word'.
+
+`unix-word-rubout (C-w)'
+     Kill the word behind point, using white space as a word boundary.
+     The killed text is saved on the kill-ring.
+
+`delete-horizontal-space ()'
+     Delete all spaces and tabs around point.  By default, this is
+     unbound.
+
+`kill-region ()'
+     Kill the text in the current region.  By default, this command is
+     unbound.
+
+`copy-region-as-kill ()'
+     Copy the text in the region to the kill buffer, so it can be yanked
+     right away.  By default, this command is unbound.
+
+`copy-backward-word ()'
+     Copy the word before point to the kill buffer.  The word
+     boundaries are the same as `backward-word'.  By default, this
+     command is unbound.
+
+`copy-forward-word ()'
+     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
+     cursor position.
+
+`yank-pop (M-y)'
+     Rotate the kill-ring, and yank the new top.  You can only do this
+     if the prior command is `yank' or `yank-pop'.
+
+
+File: rluserman.info,  Node: Numeric Arguments,  Next: Commands For Completion,  Prev: Commands For Killing,  Up: Bindable Readline Commands
+
+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.
+
+`universal-argument ()'
+     This is another way to specify an argument.  If this command is
+     followed by one or more digits, optionally with a leading minus
+     sign, those digits define the argument.  If the command is
+     followed by digits, executing `universal-argument' again ends the
+     numeric argument, but is otherwise ignored.  As a special case, if
+     this command is immediately followed by a character that is
+     neither a digit or minus sign, the argument count for the next
+     command is multiplied by four.  The argument count is initially
+     one, so executing this function the first time makes the argument
+     count four, a second time makes the argument count sixteen, and so
+     on.  By default, this is not bound to a key.
+
+
+File: rluserman.info,  Node: Commands For Completion,  Next: Keyboard Macros,  Prev: Numeric Arguments,  Up: Bindable Readline Commands
+
+Letting Readline Type For You
+-----------------------------
+
+`complete (<TAB>)'
+     Attempt to perform completion on the text before point.  The
+     actual completion performed is application-specific.  The default
+     is filename completion.
+
+`possible-completions (M-?)'
+     List the possible completions of the text before the cursor.
+
+`insert-completions (M-*)'
+     Insert all completions of the text before point that would have
+     been generated by `possible-completions'.
+
+`menu-complete ()'
+     Similar to `complete', but replaces the word to be completed with
+     a single match from the list of possible completions.  Repeated
+     execution of `menu-complete' steps through the list of possible
+     completions, inserting each match in turn.  At the end of the list
+     of completions, the bell is rung 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.
+
+`delete-char-or-list ()'
+     Deletes the character under the cursor if not at the beginning or
+     end of the line (like `delete-char').  If at the end of the line,
+     behaves identically to `possible-completions'.  This command is
+     unbound by default.
+
+
+File: rluserman.info,  Node: Keyboard Macros,  Next: Miscellaneous Commands,  Prev: Commands For Completion,  Up: Bindable Readline Commands
+
+Keyboard Macros
+---------------
+
+`start-kbd-macro (C-x ()'
+     Begin saving the characters typed into the current keyboard macro.
+
+`end-kbd-macro (C-x ))'
+     Stop saving the characters typed into the current keyboard macro
+     and save the definition.
+
+`call-last-kbd-macro (C-x e)'
+     Re-execute the last keyboard macro defined, by making the
+     characters in the macro appear as if typed at the keyboard.
+
+
+File: rluserman.info,  Node: Miscellaneous Commands,  Prev: Keyboard Macros,  Up: Bindable Readline Commands
+
+Some Miscellaneous Commands
+---------------------------
+
+`re-read-init-file (C-x C-r)'
+     Read in the contents of the INPUTRC file, and incorporate any
+     bindings or variable assignments found there.
+
+`abort (C-g)'
+     Abort the current editing command and ring the terminal's bell
+     (subject to the setting of `bell-style').
+
+`do-uppercase-version (M-a, M-b, M-X, ...)'
+     If the metafied character X is lowercase, run the command that is
+     bound to the corresponding uppercase character.
+
+`prefix-meta (<ESC>)'
+     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-_ or 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 executing the
+     `undo' command enough times to get back to the beginning.
+
+`tilde-expand (M-~)'
+     Perform tilde expansion on the current word.
+
+`set-mark (C-@)'
+     Set the mark to the current point.  If a numeric argument is
+     supplied, the mark is set to that position.
+
+`exchange-point-and-mark (C-x C-x)'
+     Swap the point with the mark.  The current cursor position is set
+     to the saved position, and the old cursor position is saved as the
+     mark.
+
+`character-search (C-])'
+     A character is read and point is moved to the next occurrence of
+     that character.  A negative count searches for previous
+     occurrences.
+
+`character-search-backward (M-C-])'
+     A character is read and point is moved to the previous occurrence
+     of that character.  A negative count searches for subsequent
+     occurrences.
+
+`insert-comment (M-#)'
+     The value of the `comment-begin' variable is inserted at the
+     beginning of the current line, and the line is accepted as if a
+     newline had been typed.
+
+`dump-functions ()'
+     Print all of the functions and their key bindings to the Readline
+     output stream.  If a numeric argument is supplied, the output is
+     formatted in such a way that it can be made part of an INPUTRC
+     file.  This command is unbound by default.
+
+`dump-variables ()'
+     Print all of the settable variables and their values to the
+     Readline output stream.  If a numeric argument is supplied, the
+     output is formatted in such a way that it can be made part of an
+     INPUTRC file.  This command is unbound by default.
+
+`dump-macros ()'
+     Print all of the Readline key sequences bound to macros and the
+     strings they output.  If a numeric argument is supplied, the
+     output is formatted in such a way that it can be made part of an
+     INPUTRC file.  This command is unbound by default.
+
+
+File: rluserman.info,  Node: Readline vi Mode,  Prev: Bindable Readline Commands,  Up: Command Line Editing
+
+Readline vi Mode
+================
+
+   While the Readline library does not have a full set of `vi' editing
+functions, it does contain enough to allow simple editing of the line.
+The Readline `vi' mode behaves as specified in the POSIX 1003.2
+standard.
+
+   In order to switch interactively between `emacs' and `vi' editing
+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
+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.
+
+
+
+Tag Table:
+Node: Top1208
+Node: Command Line Editing1604
+Node: Introduction and Notation2218
+Node: Readline Interaction3837
+Node: Readline Bare Essentials5025
+Node: Readline Movement Commands6807
+Node: Readline Killing Commands7765
+Node: Readline Arguments9676
+Node: Searching10713
+Node: Readline Init File12670
+Node: Readline Init File Syntax13732
+Node: Conditional Init Constructs23349
+Node: Sample Init File25789
+Node: Bindable Readline Commands28960
+Node: Commands For Moving30011
+Node: Commands For History30861
+Node: Commands For Text33644
+Node: Commands For Killing35650
+Node: Numeric Arguments37624
+Node: Commands For Completion38753
+Node: Keyboard Macros40243
+Node: Miscellaneous Commands40803
+Node: Readline vi Mode43620
+
+End Tag Table
new file mode 100644
--- /dev/null
+++ b/readline/doc/rluserman.ps
@@ -0,0 +1,1917 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.82 Copyright 1998 Radical Eye Software
+%%Title: rluserman.dvi
+%%Pages: 22
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -D 300 -t letter -o rluserman.ps rluserman.dvi
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource:  TeX output 2001.02.05:1130
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}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}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IE 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IE N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 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 A 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 A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 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}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}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
+
+%%EndProcSet
+TeXDict begin 40258431 52099146 1000 300 300 (rluserman.dvi)
+@start
+%DVIPSBitmapFont: Fa cmbxti10 14.4 1
+/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmbx12 13.14 46
+/Fb 46 122 df<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA212
+00B3AA387FFFFCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC38
+7C00FE12FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F
+00131E5B1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA21823
+7DA21F>I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C010000
+13FCA2EB03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210
+127C12FEA214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14
+381478A214F81301130313071306130C131C13381330136013E0EA01C01380EA03005A12
+0E5A12185A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C00
+1F137CEBFFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8
+000813FCC7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FF
+C03801FE0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F
+005AA2007E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4
+003E137E123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C
+003FB512C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA2
+5BA2133CA25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F838
+1C007C48133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313
+E014F8000F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C13
+38381F80F03807FFE00001130018237DA21F>I<141CA2143EA3147FA24A7EA39038019F
+C0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FC
+A29039E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229
+257EA42E>65 D<B612E015FC3903F0007FED3F80ED1FC0ED0FE0A216F0A21507150FA216
+E0151F16C0ED7F80913801FE0090B512F815FF9039F0003FC0ED0FE0ED07F016F8150316
+FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F826257EA42C>I<9138FF8008010FEBF0
+1890393FC03C789039FE0006F8D801F81303484813014848130048481478121F48481438
+A2007F151890C8FCA2481500A97E16187F123FA26C6C1430120F6C6C14606C6C14C06C6C
+EB0180D800FEEB070090383FC01E90380FFFF8010013C025257DA42C>I<B7FCA23903F8
+007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFEA2EBF81E140E14
+06A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428>69
+D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F80
+80A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FCA2
+9038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A213
+257EA417>I<B539E007FF80A2D803F8C7EA780016605E4B5A0307C7FC150E15185D5D5D
+EC03804AC8FC140E141F4A7E147FECDFC09038FB8FE09038FF0FF0EBFC07496C7E816E7E
+1400157F82153F6F7E6F7E8215076F7E82B539E03FFFC0A22A257EA430>75
+D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FCB6FCA220257E
+A425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C130CA26D6C1318
+A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3EC3F06A2EC1F8C
+A2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>I<D8FFF8903807
+FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13036D7E6D7E80EC7F80EC3F
+C0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3FD8ED1FF8150F15071503A2
+150115001678486C1438D8FFFC1418A22B257EA430>I<B67E15F83903F801FEEC007F6F
+7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F803F06E7E6E7E157EA2157F
+A482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B257EA42E>82
+D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
+EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
+C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<
+007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400
+B3A390B512FEA226247EA32B>I<B539C001FFE0A2D807F8C7EA1C006C6C141816386C6C
+14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7FC90380FF006150E903807F80C6D6C
+5A15386D6C5A903800FF6015E06E5A6E5AAE90380FFFFCA22B257FA42E>89
+D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
+00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
+D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
+A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
+7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
+EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
+0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
+FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
+12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
+17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
+C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
+007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
+13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
+FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
+07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
+C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC1FF0A2EC0780
+EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB80FC147E80A2
+EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EAFFFCA20E267E
+A511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001
+A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E
+0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803FFF038
+07C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A2381F807E
+6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F007E001
+C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00
+EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013
+A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF0
+00A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0
+EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB5
+12C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07F
+E0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<39FFF8
+0FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00005B13FE
+EB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A2390FC00F
+003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EB
+E0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
+D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
+005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
+1370EA68E0EA7FC0001FC8FC1D237F9720>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmsl10 10.95 37
+/Fc 37 122 df<EAFFF0A20C027E8A0F>45 D<1408140C141C143CA2147C147E149EA2EB
+011EA21302801304A21308A20110138014071320A2EB7FFF90384007C0EB8003A2EA0100
+A21202EC01E01206001F130339FF801FFE1F207F9F22>65 D<0007B5FC3900F803C09038
+7801E0EC00F04913F8A515F03801E001EC03E015C0EC0F809038FFFE009038E00F803903
+C003C0EC01E015F0A21400A2485A1401A215E01403EC07C0390F000F80EC3E00B512F01D
+1F7E9E20>I<ECFE02903807018690381C004E0170133E49131E4848131C4848130C1207
+48C7FC5A121E003E1408003C1400127CA45AA4127815101520A27E1540001C14806CEB01
+006C13023803800C3800E030EB3FC01F217C9F21>I<0007B57E3900F801E09038780070
+81497F151E150E150FA348481480A6484814005DA3151E153E4848133C5DA25D4A5A4A5A
+260F000FC7FC143CB512F0211F7E9E23>I<0007B512FC3900F8007C0178131C150C5B15
+04A414043901E00800A31438EBFFF8EBE0383803C010A4EC00081510485AA21520A21560
+15C0380F00011407B612801E1F7E9E1F>I<0007B512F83900F800780178133815185B15
+08A53901E00800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D
+1F7E9E1E>I<3807FF803800F8001378A25BA6485AA6485AA6485AA648C7FC7FEAFFF011
+1F7E9E10>73 D<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC14021408
+48485A5C146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E811407
+81140381380F00016D487E39FFF00FFE231F7E9E23>75 D<3807FFE0D800FCC7FC1378A2
+5BA6485AA6485AA41580EC0100EA0780A25C14021406140E380F001E147CB512FC191F7E
+9E1C>I<D807F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83C0D8
+01035BEB01E0A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A2140100
+0C5C001E1300B47E221F7E9E22>78 D<EB01FCEB0E0790383801C090387000E0484813F0
+48481378485A153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01F0
+007C14E01403003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F801F
+217C9F23>I<0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC01
+E0EC03C0EC0F00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807FF
+FE3900F8078090387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00EB
+FFF03803C03880141E140EA2140F48485AA51502D80F001304EB800F39FFF00788C7EA01
+F01F207E9E21>82 D<EB1F82EB7066EBC01E3801800EEA030048130C00061304120EA300
+0F1300A27FEA07F013FF6C13C06C13E038003FF0EB03F813001478143CA200401338A314
+3000601370146000F013C038E8018038C60300EA81FC17217E9F19>I<003FB512F0383C
+078000301430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383FFFE01C
+1F7A9E21>I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A6485BA600
+705BA25CA200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFFF07FF8
+1FF03B1F000FC007C0001E903907800380001FED01006C1502140F5EEC17C002135B1423
+01805C000713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C415F2EB
+C80015F4EA01F015F85B5D5B15605B000014402C207A9E2F>87 D<EA07F8EA0C0CEA1E06
+1307121C1200A313FFEA07C7EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F
+878014147D9317>97 D<13FEEA0383380E0780121C0038130090C7FC12785AA45AA37E5B
+EA70026C5AEA1C18EA07E011147D9314>99 D<13F8EA070EEA0E07121C38380380127812
+7012F0A2B5FC00F0C7FC5AA46C5AEA7002EA3004EA1C18EA07E011147D9314>101
+D<EB07C0EB1C60EB30F01360EBE0E0EBC0001201A5485AEA3FFCEA0380A448C7FCA6120E
+A65A121EEAFFC014207F9F0E>I<140EEB3E11EBE1A33801C1C2380381E0EA0780130112
+0FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C014E0381800F0481330
+5A5AA3006013606C13C0381C0700EA07FC181F809417>I<EA01C0EA03E0A213C0EA0180
+C7FCA6EA0380121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>105
+D<13E0120712011200A2485AA6485AEB81FCEB80F014C0EB81801400EA07045B13181338
+137C131C120E7FA2130F7F1480EA1C03381E07C038FF8FF016207E9F18>107
+D<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C
+>I<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5000E
+EBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07
+A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E9319
+>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300F0
+138038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C6C487E14
+0F48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90C8FCA312
+0EA4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C003813C01278
+12F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4131EEBFF
+C0131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120EA65A121E
+EAFFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13F0EA07FC
+EA01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<1380EA01
+00A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<
+381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F801114
+7B9319>I<381FF0FF3803C0780001137014403800E0C0EBE180EB73001376133CA2131C
+132E134E1387EA0107380203801204380C01C0383C03E038FE07FC18147F9318>120
+D<390FF83F803901E00E00EBC00C140813E000005B143014205C13705CA20171C7FC1339
+133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>
+I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd cmti10 10.95 8
+/Fd 8 117 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
+12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
+0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
+D<127012F8A212F012E005057B840E>46 D<EB1E30EB7138EBE0F03801C070EA03801207
+EB00E05AA3381E01C0A4EB0380A2EA0E07130B38061700EA01E7EA0007A2130EA21230EA
+781C485AEA6070EA3FC0151D7F9315>103 D<13C0EA01E0A213C0C7FCA7120E12131223
+EA4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C0B1F7C9E0E>
+105 D<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB0384
+00381388A2EB0708EB031000701330383001C016147C931A>110
+D<EA1C1EEA266138278380EA47871307EB0300008EC7FC120EA35AA45AA45A123011147C
+9313>114 D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0EA07F8EA03FCEA00
+3E130E1270EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<EA018013C0EA0380
+A4EA0700A2EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA3100121E0C1C7C9B
+0F>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe cmr8 8 26
+/Fe 26 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
+D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
+D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
+13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
+381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
+1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
+132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
+381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
+E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
+3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
+0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
+1303B5FC13177F9616>76 D<EAFFFE381C0380EB00C014601470A4146014C0EB0380381F
+FE00001CC7FCAAB47E14177F9618>80 D<EAFFFC381C0380EB00C014E01470A414E014C0
+EB0380381FFE00381C0780EB01C0EB00E0A514E1A2147238FF803C18177F961A>82
+D<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C
+130E13061280A3EAC004EAE008EAD810EA87E00F177E9614>I<387FFFF8386038180040
+1308A200801304A300001300AF3803FF8016177F9619>I<12FCA212C0B3AB12FCA20621
+7D980A>91 D<EA3FC0EA70601330EA20381200EA03F8EA1E3812301270EAE039A21379EA
+70FFEA1F1E100E7F8D12>97 D<EA07F0EA18381230EA7010EA600012E0A41260EA700812
+30EA1830EA07C00D0E7F8D10>99 D<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000
+A31260EA7008EA3010EA1830EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5
+EA1F801203AF1243EAE30012E7127C091D82960B>106 D<12F81238A8133E1338133013
+4013801239EA3FC0EA39E0123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1C
+EA3C0E1238AA38FE3F80110E7F8D14>110 D<EAF9F0EA3E1CEA380613077F1480A41400
+5B130EEA3E1CEA39F00038C7FCA512FE11147F8D14>112 D<EAF9E0EA3A70123CEA3820
+1300A9B4FC0C0E7F8D0E>114 D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA
+01E0EA8060A212C0EAE0C0EA9F000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A7
+1340A4EA1C80EA0F000A147F930E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D
+14>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff cmsy9 9 2
+/Ff 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
+A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
+0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg cmsltt10 10.95 29
+/Fg 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
+769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
+C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
+7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
+120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
+4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
+380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
+78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
+07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
+A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
+1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
+EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
+A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
+B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
+5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
+1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
+D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
+00A2137FEA03FF121FEA3F81387C038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
+14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
+38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
+A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
+5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
+0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
+FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
+7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
+3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
+B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
+EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
+EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
+D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
+13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
+0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
+EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
+FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
+12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
+7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
+FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
+0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
+7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
+E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
+E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
+D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
+EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
+F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
+78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh cmcsc10 10.95 12
+/Fh 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
+FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
+D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
+127812386C1310120C000713603803818038007E0015177E961B>99
+D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
+14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
+13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
+9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
+387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
+0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
+0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
+D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
+70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
+I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
+19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
+001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
+D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
+D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
+133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
+18177F961C>120 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi cmbx12 17.28 18
+/Fi 18 117 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
+1C2E7AAD28>49 D<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB
+079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607A248
+5A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D15
+0E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7
+FCD9003F13F80203138031317CB03A>67 D<B812F0A3C6903880003FEE07F816031600A2
+1778A21738A3171C1507A31700A25D5D5D91B5FCA3EC803F818181A21707A392C7120EA4
+171EA2173CA2177C17FC16011607163FB812F8A330317EB035>69
+D<B67EA3000190C9FCB3A9EE0380A416071700A25EA35E5E5E5E4B5A150FB7FCA329317D
+B030>76 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780
+A3481603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<EBFFF0000313FF390F803F80
+9038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FCA414FF131FEBFFE33803FC03EA0FF0
+EA1FC0123FEA7F80A2EAFF00A31407A2387F800D393FC01DFE3A1FE078FFF03907FFE07F
+C6EB803F24207E9F27>97 D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039
+FF001F8049EB0FC04914E049EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB
+0FE06D14C001E7EB3F809039C3C0FE00903880FFF89038003FC027327EB12D>I<ED0FC0
+EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F484813
+3F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F
+3FFE38007FFEEB0FF027327DB12D>100 D<EB0FFC90387FFF803901FC0FC03903F003E0
+3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
+FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
+FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
+1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
+391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
+00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
+121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
+140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
+D8001F90C7FC242F7E9F28>I<EA03C0487E487E487EA46C5A6C5A6C5AC8FCA9EA01F812
+7FA31207B3A7B51280A311337DB217>105 D<EA01F812FFA3120F1207B3B3A6B512C0A3
+12327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC02C09038
+8300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3B500C3B5380F
+FFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1801FC03807F3
+0001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFFC03901FC07F0
+3903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300FF15E0A8007F
+15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF039007FFFC0D9
+07FCC7FC23207E9F28>I<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90
+C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F01001380143F0060131F00
+E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F8019207D9F20>115
+D<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A712
+01EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fj cmsy10 10.95 1
+/Fj 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C000
+061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C15
+30A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090C7
+FC282B7EA02D>13 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fk cmbx12 14.4 39
+/Fk 39 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
+0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
+D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
+D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
+127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
+705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
+FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
+F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
+7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
+BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
+A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
+C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
+127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
+22>I<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED
+07F0150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216
+FFA616FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>66
+D<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484814
+7F4848143F4848141F485A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E
+6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE0090
+38007FF028297CA831>I<B712E0A33903FC001FED07F01501A215001670A3913801C078
+1638A302031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C163816
+7816F815011503151FB712F0A327297EA82C>69 D<B712C0A33903FC003FED0FE0150315
+01A21500A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FC
+A9B512FCA324297EA82A>I<B512F0A33803FC00B3B1B512F0A314297EA819>73
+D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F157F913801FF00
+B7FCA322297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99F
+C0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338
+A2027F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5A
+A26E5AD8FFFE0203B51280A2157039297DA840>I<B612E015FE6F7E3A03FC003FE0ED0F
+F06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC0
+6F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>82
+D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2
+14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB
+007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00
+00E15B38C01FF01C297CA825>I<B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F
+0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7FC2F297EA834
+>85 D<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C
+604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F0
+9126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA291
+3AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141E
+A242297FA845>87 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4
+EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F38
+03FC031E1B7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F0
+9038F001F89038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C
+0FE090380FFF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F
+80EA3F00A248133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE0
+0E3803F83C3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807
+F03F380FC00F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E0
+7FFF3801FFE738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F13
+0048EB0F80127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003
+803907C007003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC
+7FEA03F813F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<90
+38FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E13
+3E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14
+C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC0
+1F806CB5120038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC0
+01E413E0EBE80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA
+1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>
+I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0
+903AC307E0C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFF
+FE3FFF8FFFE0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC807
+01D813F013D0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390F
+C01F80391F800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A239
+1F800FC0390FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFC1F0EBC7FC
+EBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
+D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
+13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
+C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
+AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
+07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
+0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
+9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
+0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
+FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
+EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
+FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
+803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
+00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
+3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
+EA74F0EA3FE0EA0F8020277F9A23>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl cmtt10 10.95 77
+/Fl 77 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
+D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
+12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
+I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
+6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
+F8EA07E0EA01C0A3120011247D9F18>I<1238127CA2127E123E120EA3121CA2123812F8
+12F012C0070E789B18>39 D<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA4
+5AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F012
+787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F0012
+1E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07
+F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A411147D9718>I<121C123E127E
+127F123F121F1207120E121E127C12F81260080C788518>44 D<387FFFC0B512E0A26C13
+C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F14005B
+131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A121E123E
+123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C073838
+0380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C0700EA1F
+1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12431203
+B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C
+0780383003C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFC
+EA03F0131C7E9B18>53 D<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13
+F05BA2485AA3485AA448C7FCA7131D7E9C18>55 D<EA03F8EA0FFE487E383E0F80EA3803
+387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0
+EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812
+FCA2127812301200A81230127812FCA2127812300614779318>58
+D<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C
+7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E9918>60
+D<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0130C7E9318>I<126012
+F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE0048
+5AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F
+38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A111C
+7D9B18>I<137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C1
+12E1EAE380A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC0
+0001138038007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
+A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>I<EA7FFC
+B5FC6C1380381C03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03EB00E014
+F01470A414F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07
+FFEA0F07EA1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA0F073807
+FF803803FE00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E013
+00A214F01470A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C7F9B18>
+I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A315
+1C7F9B18>I<B512F8A3381C0038A41400A21307A3EA1FFFA3EA1C07A390C7FCA7EAFFC0
+A3151C7F9B18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5
+EB0FF0131F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B
+18>I<387F07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8
+387F07F0151C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C
+7D9B18>I<387F07F038FF87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0
+121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0
+151C7F9B18>75 D<EAFFC0A3001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE
+03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C
+7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA213E1A313611371A213
+311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF8048
+13C0EA7803EA700100F013E0EAE000B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00
+131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF
+1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA0FFE383FFF804813C0EA7803EA7001
+00F013E0EAE000AE1370A2EAF079387039C0EA783FEA7FFF6C1380380FFE00EA000FEB07
+80A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE6C7E381C0F80130314C01301A31303
+1480130F381FFF005BA2EA1C0F7FEB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B
+18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FE
+C67EEB0F80EB03C01301EB00E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8
+131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF
+83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300EA007C171C809B18>I<38
+FE03F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3
+EA00F8A21370A9EA01FC487E6C5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D
+24779F18>91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F
+12017F12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<
+EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0B512E0A26C13C013047E7F18>
+95 D<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F03127812E0A3
+EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>97 D<127E12FE127E120EA5133EEB
+FF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
+38063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FCA25AA61270
+EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F131F1303A5
+EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA3C1F381FFF
+F0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F38380780EA7003A2
+38E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA01F812147D
+9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801C000AEEA7F
+FFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA
+1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0
+EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF8000
+0F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>I<EA0380EA
+07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338137CA31338
+1300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E
+12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB03
+8014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>I<
+38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E17148093
+18>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7
+FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF001
+007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF
+80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
+EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA38
+0FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB
+3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FC
+A9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1F
+FCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<48
+7E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F
+9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714
+809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038E
+A3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0A4381C01C013
+7113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF013
+9F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707
+000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F038
+0E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313
+F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB
+078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318>
+I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE013
+1F130713247E9F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005B
+ABEA03C012FF90C7FC127C13247E9F18>125 D<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA
+60C00F067C9B18>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fm cmr10 10.95 71
+/Fm 71 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
+B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
+A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<127012F812FCA212741204A312
+08A21210A212201240060E7C9F0D>39 D<13401380EA01005A12061204120C5AA2123812
+30A212701260A412E0AC1260A412701230A212381218A27E120412067E7EEA008013400A
+2E7BA112>I<7E12407E12307E1208120C7EA212077EA213801201A413C0AC1380A41203
+1300A25A1206A25A120812185A12205A5A0A2E7EA112>I<127012F012F8A212781208A3
+1210A31220A21240050E7C840D>44 D<EAFFF0A20C02808A0F>I<127012F8A312700505
+7C840D>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
+0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>48 D<13801203120F12F31203B3A6
+EA07C0EAFFFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF8
+03A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380
+EA3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12
+001400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F0138012
+40EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2
+EA010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17
+>I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214
+C0A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137C
+EA0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406
+EAF807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D
+17>I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E0
+5B1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A312
+7038780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01
+C012C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E
+18487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E3380003
+80A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A3
+12701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A2
+12781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB
+2078A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14
+E039FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEB
+FFF0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E
+20>I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A
+1510127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E0
+0300EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F01570
+1578A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F
+7F9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF1301
+13001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780
+071401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE
+1A1F7F9E1E>I<90380FE0109038381C309038E002703803C00139078000F048C7127012
+1E15305A1510127C127800F81400A7EC3FFEEC01F000781300127C123CA27EA27E6C7E39
+03C001703900E002309038380C1090380FF0001F217E9F24>I<39FFF07FF8390F000780
+AD90B5FCEB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>
+I<39FFF007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB
+21E01341EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23
+>75 D<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<12FFA21203B3B3A512FFA2082D80A10D
+>93 D<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
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fn cmbx12 20.736 19
+/Fn 19 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
+010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
+5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
+DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
+EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
+BB4C>71 D<B612F8A439007FF000B3B3AFB612F8A41D3B7DBA24>73
+D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F17FF5E04
+071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F92390007E000
+6E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F
+7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C318E37013
+F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F18071803A243
+3B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F717E717EA2
+84171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A29139F0007F
+F0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B600F89039
+3FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
+D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
+6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
+034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
+FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
+03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
+0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
+FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
+17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
+FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<903801FF
+F0010F13FE013FEBFF809039FF801FC03901FE003F4848EB7FE0485A485A121F4848EB3F
+C0ED1F80007FEC0F004990C7FCA212FFAA127F7FA2123F6D14F0121F6C6CEB01E012076C
+6CEB03C06CB4EB0F806C9038C03F0090383FFFFE010F13F8010113C024267DA52B>I<EE
+3F80ED3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348
+487F48487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801
+FE011F13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>I<49B47E01
+0F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15
+F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C
+13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013C025267DA5
+2C>I<EC1FF0ECFFFC010313FF90390FF83F8090381FE07F90393FC0FFC0495A13FFA248
+9038007F80ED3F00151E92C7FCAAB67EA4000190C8FCB3AC007F13FEA4223C7DBB1E>I<
+EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512
+F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108
+D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701607F0003497E01
+FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
+D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
+01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
+D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
+0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
+07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
+12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
+B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
+01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
+7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
+C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
+1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
+1FFCEA07F02E377EA533>121 D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 75 659 a Fn(GNU)33 b(Readline)h(Library)e(User)h(In)m(terface)p
+75 709 1800 17 v 732 757 a Fm(Edition)16 b(4.2-b)q(eta,)e(for)h
+Fl(Readline)f(Library)g Fm(V)l(ersion)i(4.2-b)q(eta.)1698
+811 y(F)l(eb)f(2001)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 217 a Fm(This)22 b(do)q(cumen)o(t)f(describ)q(es)i(the)f
+(end)f(user)h(in)o(terface)f(of)g(the)g(GNU)g(Readline)j(Library)l(,)f
+(a)e(utilit)o(y)75 271 y(whic)o(h)14 b(aids)f(in)g(the)g(consistency)h
+(of)e(user)h(in)o(terface)g(across)f(discrete)h(programs)f(that)g(need)
+h(to)f(pro)o(vide)75 326 y(a)j(command)g(line)i(in)o(terface.)75
+394 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
+(oundation)75 448 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
+503 y(Boston,)d(MA)h(02111)f(USA)75 570 y(P)o(ermission)j(is)f(gran)o
+(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
+(this)h(man)o(ual)f(pro)o(vided)h(the)75 625 y(cop)o(yrigh)o(t)e
+(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
+(on)f(all)h(copies.)75 692 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
+(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
+(man)o(ual)g(under)h(the)f(con-)75 747 y(ditions)k(for)e(v)o(erbatim)h
+(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
+(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 802 y(under)h(the)f(terms)g
+(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
+869 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
+(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
+g(lan-)75 924 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
+(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
+(ermission)g(notice)75 979 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
+(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
+d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
+2661 y Fj(\015)i Fm(1988-2001)e(F)l(ree)i(Soft)o(w)o(are)f(F)l
+(oundation,)h(Inc.)p eop
+%%Page: 1 3
+1 2 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(1)75 149 y Fi(1)41 b(Command)28 b(Line)e(Editing)137
+271 y Fm(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
+(of)g(the)g Fh(gnu)g Fm(command)g(line)i(editing)f(in)o(terface.)75
+403 y Fk(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
+501 y Fm(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
+(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
+569 y(The)h(text)f Fg(C-k)h Fm(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
+(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
+567 y Ff(h)p 1844 541 19 2 v 1844 569 a Fe(k)p 1844 577
+V 1860 567 a Ff(i)75 624 y Fm(k)o(ey)d(is)h(pressed)g(while)g(the)f
+(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
+Fg(M-k)f Fm(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
+(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
+o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
+745 y Ff(h)p 942 719 V 942 747 a Fe(k)p 942 755 V 958
+745 a Ff(i)987 747 y Fm(k)o(ey)g(is)h(pressed.)20 b(The)15
+b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Ff(h)p 1791
+719 72 2 v 1791 747 a Fe(AL)m(T)p 1791 755 V 1860 745
+a Ff(i)75 802 y Fm(on)e(man)o(y)g(k)o(eyb)q(oards.)19
+b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
+1213 800 y Ff(h)p 1225 774 V 1225 802 a Fe(AL)m(T)p 1225
+810 V 1294 800 a Ff(i)1322 802 y Fm(\(usually)i(to)e(either)i(side)g
+(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Ff(h)p
+400 829 V 400 857 a Fe(AL)m(T)p 400 865 V 469 855 a Ff(i)499
+857 y Fm(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
+(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Ff(h)p
+1709 829 V 1709 857 a Fe(AL)m(T)p 1709 865 V 1778 855
+a Ff(i)1808 857 y Fm(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
+(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
+(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
+y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
+(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
+y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
+1033 y Ff(h)p 706 1007 V 706 1035 a Fe(AL)m(T)p 706 1043
+V 775 1033 a Ff(i)801 1035 y Fm(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
+o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
+1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
+809 1088 y Ff(h)p 822 1062 70 2 v 822 1090 a Fe(ESC)p
+822 1098 V 888 1088 a Ff(i)915 1090 y Fd(\014rst)p Fm(,)g(and)g(then)h
+(t)o(yping)1339 1088 y Ff(h)p 1351 1062 19 2 v 1351 1090
+a Fe(k)p 1351 1098 V 1368 1088 a Ff(i)1383 1090 y Fm(.)18
+b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
+Fc(metafying)k Fm(the)425 1143 y Ff(h)p 437 1117 V 437
+1145 a Fe(k)p 437 1153 V 454 1143 a Ff(i)484 1145 y Fm(k)o(ey)l(.)137
+1214 y(The)i(text)e Fg(M-C-k)h Fm(is)h(read)f(as)f(`Meta-Con)o(trol-k')
+g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
+1268 y Fc(metafying)e Fg(C-k)p Fm(.)137 1337 y(In)g(addition,)h(sev)o
+(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
+b(Sp)q(eci\014cally)l(,)1384 1335 y Ff(h)p 1396 1309
+73 2 v 1396 1337 a Fe(DEL)p 1396 1345 V 1467 1335 a Ff(i)1482
+1337 y Fm(,)1514 1335 y Ff(h)p 1526 1309 70 2 v 1526
+1337 a Fe(ESC)p 1526 1345 V 1593 1335 a Ff(i)1608 1337
+y Fm(,)1640 1335 y Ff(h)p 1652 1309 72 2 v 1652 1337
+a Fe(LFD)p 1652 1345 V 1722 1335 a Ff(i)1737 1337 y Fm(,)1768
+1335 y Ff(h)p 1780 1309 70 2 v 1780 1337 a Fe(SPC)p 1780
+1345 V 1847 1335 a Ff(i)1862 1337 y Fm(,)75 1390 y Ff(h)p
+87 1364 76 2 v 87 1392 a Fe(RET)p 87 1399 V 160 1390
+a Ff(i)175 1392 y Fm(,)23 b(and)306 1390 y Ff(h)p 318
+1364 74 2 v 318 1392 a Fe(T)m(AB)p 318 1399 V 390 1390
+a Ff(i)427 1392 y Fm(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
+(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
+1447 y(Section)d(1.3)f([Readline)i(Init)f(File],)h(page)e(4\).)32
+b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
+1445 y Ff(h)p 1456 1419 72 2 v 1456 1447 a Fe(LFD)p 1456
+1454 V 1526 1445 a Ff(i)1560 1447 y Fm(k)o(ey)l(,)h(t)o(yping)1802
+1445 y Ff(h)p 1814 1419 49 2 v 1814 1447 a Fe(C-j)p 1814
+1454 V 1860 1445 a Ff(i)75 1501 y Fm(will)c(pro)q(duce)g(the)f(desired)
+h(c)o(haracter.)j(The)874 1499 y Ff(h)p 886 1473 76 2
+v 886 1501 a Fe(RET)p 886 1509 V 959 1499 a Ff(i)989
+1501 y Fm(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
+y Ff(h)p 1397 1473 109 2 v 1397 1501 a Fe(Return)p 1397
+1509 V 1503 1499 a Ff(i)1533 1501 y Fm(or)1588 1499 y
+Ff(h)p 1600 1473 86 2 v 1600 1501 a Fe(En)o(ter)p 1600
+1509 V 1684 1499 a Ff(i)1714 1501 y Fm(on)f(some)75 1556
+y(k)o(eyb)q(oards.)75 1688 y Fk(1.2)33 b(Readline)23
+b(In)n(teraction)137 1786 y Fm(Often)13 b(during)h(an)e(in)o(teractiv)o
+(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
+h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
+(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)j(library)e
+(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
+1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
+g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
+(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
+(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
+(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
+y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
+(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
+2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
+(ou)e(simply)i(press)1160 2058 y Ff(h)p 1172 2032 76
+2 v 1172 2060 a Fe(RET)p 1172 2068 V 1245 2058 a Ff(i)1260
+2060 y Fm(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
+(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
+2113 y Ff(h)p 575 2087 V 575 2115 a Fe(RET)p 575 2122
+V 648 2113 a Ff(i)663 2115 y Fm(;)i(the)f(en)o(tire)h(line)g(is)g
+(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
+2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fb(1.2.1)30
+b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fm(In)12
+b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
+(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
+(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
+(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
+b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
+(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
+(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
+y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
+(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
+o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
+b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fg(C-b)f
+Fm(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
+2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
+b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
+(with)g Fg(C-f)p Fm(.)p eop
+%%Page: 2 4
+2 3 bop 75 -58 a Fm(2)1322 b(GNU)15 b(Readline)i(Library)137
+149 y(When)g(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
+(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
+204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
+(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
+b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
+(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
+(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
+(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
+(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
+369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
+(ws.)75 449 y Fg(C-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
+(haracter.)75 530 y Fg(C-f)168 b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
+(c)o(haracter.)75 608 y Ff(h)p 87 582 73 2 v 87 610 a
+Fe(DEL)p 87 618 V 158 608 a Ff(i)188 610 y Fm(or)244
+608 y Ff(h)p 256 582 159 2 v 256 610 a Fe(Bac)o(kspace)p
+256 618 V 412 608 a Ff(i)315 665 y Fm(Delete)h(the)f(c)o(haracter)g(to)
+f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fg(C-d)168
+b Fm(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
+825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
+(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
+961 y Fg(C-_)g Fm(or)f Fg(C-x)h(C-u)315 1015 y Fm(Undo)i(the)g(last)f
+(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
+(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
+1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
+1149 y Ff(h)p 875 1123 V 875 1151 a Fe(Bac)o(kspace)p
+875 1159 V 1032 1149 a Ff(i)1063 1151 y Fm(k)o(ey)g(b)q(e)h(set)f(to)f
+(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
+(cursor)f(and)g(the)596 1204 y Ff(h)p 608 1178 73 2 v
+608 1206 a Fe(DEL)p 608 1213 V 679 1204 a Ff(i)710 1206
+y Fm(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
+(the)g(cursor,)f(lik)o(e)75 1260 y Fg(C-d)p Fm(,)e(rather)h(than)g(the)
+g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
+1374 y Fb(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
+1471 y Fm(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
+(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
+(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
+b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
+(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fg(C-b)p
+Fm(,)h Fg(C-f)p Fm(,)f Fg(C-d)p Fm(,)g(and)522 1578 y
+Ff(h)p 534 1552 V 534 1580 a Fe(DEL)p 534 1588 V 605
+1578 a Ff(i)619 1580 y Fm(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
+f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
+y(line.)75 1716 y Fg(C-a)168 b Fm(Mo)o(v)o(e)14 b(to)h(the)g(start)f
+(of)h(the)g(line.)75 1796 y Fg(C-e)168 b Fm(Mo)o(v)o(e)14
+b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fg(M-f)168
+b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
+(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
+y Fg(M-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
+2037 y Fg(C-l)168 b Fm(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
+(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
+Fg(C-f)g Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
+Fg(M-f)e Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
+b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
+o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
+(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
+2341 y Fb(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
+2438 y Fc(Killing)26 b Fm(text)18 b(means)g(to)g(delete)i(the)f(text)f
+(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
+h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fc(y)o(anking)22
+b Fm(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
+b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
+2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
+2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
+(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
+(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
+(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
+%%Page: 3 5
+3 4 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
+(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fc(kill-ring)p Fm(.)21
+b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
+204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
+(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
+(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
+(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
+(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
+314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
+(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
+(of)e(commands)h(for)g(killing)j(text.)75 458 y Fg(C-k)168
+b Fm(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
+(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
+Fg(M-d)168 b Fm(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
+(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
+e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
+(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
+Fg(M-f)p Fm(.)75 668 y Fg(M-)123 666 y Ff(h)p 135 640
+73 2 v 135 668 a Fe(DEL)p 135 675 V 206 666 a Ff(i)315
+668 y Fm(Kill)21 b(from)e(the)g(cursor)f(the)h(start)f(of)h(the)g
+(previous)h(w)o(ord,)f(or,)g(if)g(b)q(et)o(w)o(een)h(w)o(ords,)f(to)315
+723 y(the)14 b(start)f(of)g(the)h(previous)g(w)o(ord.)19
+b(W)l(ord)14 b(b)q(oundaries)h(are)e(the)h(same)g(as)f(those)h(used)g
+(b)o(y)315 777 y Fg(M-b)p Fm(.)75 855 y Fg(C-w)168 b
+Fm(Kill)18 b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
+b(This)16 b(is)g(di\013eren)o(t)g(than)f Fg(M-)1777 853
+y Ff(h)p 1789 827 V 1789 855 a Fe(DEL)p 1789 863 V 1860
+853 a Ff(i)315 910 y Fm(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
+(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fc(y)o(ank)j
+Fm(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
+b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
+(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fg(C-y)168
+b Fm(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
+(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
+y Fg(M-y)168 b Fm(Rotate)17 b(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 1252 y(command)d(is)h Fg(C-y)f Fm(or)f Fg(M-y)p Fm(.)75
+1361 y Fb(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
+y Fm(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
+(Readline)i(commands.)k(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
+1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
+(the)g Fd(sign)j Fm(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
+(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
+f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
+(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
+(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
+(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
+(t)o(yp)q(e)g(`)p Fl(M--)f(C-k)p Fm('.)137 1742 y(The)h(general)f(w)o
+(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
+h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
+y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
+g(min)o(us)g(sign)g(\(`)p Fl(-)p Fm('\),)d(then)j(the)f(sign)h(of)f
+(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
+b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
+(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
+1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
+(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
+Fg(C-d)75 1961 y Fm(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
+(could)i(t)o(yp)q(e)f(`)p Fl(M-1)14 b(0)h(C-d)p Fm(',)k(whic)o(h)g
+(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
+b(on)i(the)f(input)h(line.)75 2125 y Fb(1.2.5)30 b(Searc)n(hing)21
+b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fm(Readline)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 2275 y(taining)e(a)f(sp)q(eci\014ed)i
+(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
+b Fc(incremen)o(tal)e Fm(and)e Fc(non-incremen)o(tal)p
+Fm(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
+(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
+19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
+(string)f(is)h(t)o(yp)q(ed,)h(Readline)h(displa)o(ys)e(the)g(next)g(en)
+o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
+b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
+(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
+2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
+(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
+(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fg(C-r)p
+Fm(.)k(T)o(yping)d Fg(C-s)e Fm(searc)o(hes)h(forw)o(ard)e(through)h
+(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
+2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Fl(isearch-terminators)d
+Fm(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
+2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
+(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Ff(h)p
+1301 2642 70 2 v 1301 2670 a Fe(ESC)p 1301 2678 V 1368
+2668 a Ff(i)1402 2670 y Fm(and)e Fg(C-J)f Fm(c)o(haracters)g(will)p
+eop
+%%Page: 4 6
+4 5 bop 75 -58 a Fm(4)1322 b(GNU)15 b(Readline)i(Library)75
+149 y(terminate)k(an)g(incremen)o(tal)i(searc)o(h.)37
+b Fg(C-g)21 b Fm(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
+(and)g(restore)g(the)75 204 y(original)16 b(line.)21
+b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
+(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
+y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 334 y(T)l(o)g(\014nd)i
+(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
+(yp)q(e)f Fg(C-r)g Fm(or)g Fg(C-s)g Fm(as)h(appropriate.)k(This)75
+388 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
+(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
+(searc)o(h)g(string)75 443 y(t)o(yp)q(ed)19 b(so)g(far.)30
+b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
+i(command)d(will)j(terminate)e(the)75 498 y(searc)o(h)10
+b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
+496 y Ff(h)p 1076 470 76 2 v 1076 498 a Fe(RET)p 1076
+506 V 1149 496 a Ff(i)1174 498 y Fm(will)g(terminate)f(the)g(searc)o(h)
+f(and)h(accept)75 553 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
+(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
+(command)g(will)75 608 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
+(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
+(editing.)137 682 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 737 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 792 y(con)o(ten)o(ts)15
+b(of)f(the)i(curren)o(t)f(line.)75 939 y Fk(1.3)33 b(Readline)23
+b(Init)h(File)137 1042 y Fm(Although)f(the)g(Readline)i(library)e
+(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
+(installed)75 1097 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
+(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
+b(An)o(y)20 b(user)h(can)g(customize)75 1152 y(programs)15
+b(that)h(use)g(Readline)j(b)o(y)d(putting)g(commands)g(in)i(an)e
+Fc(inputrc)k Fm(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
+1207 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
+(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
+(v)m(ariable)75 1262 y Fl(INPUTRC)p Fm(.)i(If)c(that)g(v)m(ariable)h
+(is)g(unset,)f(the)g(default)h(is)g(`)p Fl(~/.inputrc)p
+Fm('.)137 1336 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 1391 y(k)o(ey)g(bindings)i(are)e(set.)137 1465
+y(In)f(addition,)h(the)e Fl(C-x)i(C-r)e Fm(command)g(re-reads)h(this)g
+(init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75
+1520 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
+1647 y Fb(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
+1751 y Fm(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w)
+o(ed)i(in)f(the)g(Readline)i(init)f(\014le.)26 b(Blank)18
+b(lines)g(are)75 1805 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d
+(a)h(`)p Fl(#)p Fm(')e(are)h(commen)o(ts.)35 b(Lines)22
+b(b)q(eginning)h(with)e(a)f(`)p Fl($)p Fm(')f(indicate)75
+1860 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
+([Conditional)h(Init)h(Constructs],)e(page)h(8\).)k(Other)c(lines)75
+1915 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
+2006 y(V)l(ariable)h(Settings)315 2060 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 2115 y(v)m(ariables)13 b(in)g(Readline)i
+(using)d(the)g Fl(set)g Fm(command)g(within)h(the)f(init)h(\014le.)20
+b(Here)13 b(is)f(ho)o(w)g(to)315 2170 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
+Fl(vi)g Fm(line)i(editing)g(commands:)435 2238 y Fl(set)23
+b(editing-mode)g(vi)315 2309 y Fm(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 2396 y Fl(bell-style)555 2451 y Fm(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 2506 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p
+Fl(none)p Fm(',)g(Readline)j(nev)o(er)e(rings)g(the)f(b)q(ell.)32
+b(If)19 b(set)g(to)555 2560 y(`)p Fl(visible)p Fm(',)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 2615 y(`)p Fl(audible)p Fm(')g(\(the)h
+(default\),)i(Readline)h(attempts)d(to)g(ring)h(the)g(terminal's)555
+2670 y(b)q(ell.)p eop
+%%Page: 5 7
+5 6 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(5)315 149 y Fl(comment-begin)555 204 y Fm(The)15 b(string)f(to)g
+(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g
+Fl(insert-)555 259 y(comment)f Fm(command)h(is)h(executed.)21
+b(The)15 b(default)h(v)m(alue)g(is)g Fl("#")p Fm(.)315
+338 y Fl(completion-ignore-case)555 393 y Fm(If)e(set)f(to)g(`)p
+Fl(on)p Fm(',)g(Readline)j(p)q(erforms)d(\014lename)i(matc)o(hing)f
+(and)g(completion)555 448 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k
+(The)15 b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)315
+527 y Fl(completion-query-items)555 582 y Fm(The)d(n)o(um)o(b)q(er)h
+(of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f
+(user)555 637 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 691 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
+746 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 801 y(they)f(are)g(simply)i(listed.)20
+b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
+h(v)m(alue)555 856 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
+(default)f(limit)i(is)f Fl(100)p Fm(.)315 935 y Fl(convert-meta)555
+990 y Fm(If)11 b(set)g(to)g(`)p Fl(on)p Fm(',)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
+1044 y(to)f(an)h Fh(asci)q(i)e Fm(k)o(ey)i(sequence)g(b)o(y)g
+(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
+1097 y Ff(h)p 567 1071 70 2 v 567 1099 a Fe(ESC)p 567
+1107 V 634 1097 a Ff(i)666 1099 y Fm(c)o(haracter,)k(con)o(v)o(erting)h
+(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
+1154 y(The)e(default)h(v)m(alue)h(is)e(`)p Fl(on)p Fm('.)315
+1233 y Fl(disable-completion)555 1288 y Fm(If)k(set)f(to)f(`)p
+Fl(On)p Fm(',)h(Readline)j(will)f(inhibit)g(w)o(ord)e(completion.)30
+b(Completion)555 1343 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
+1398 y(to)h Fl(self-insert)p Fm(.)j(The)d(default)h(is)g(`)p
+Fl(off)p Fm('.)315 1477 y Fl(editing-mode)555 1531 y
+Fm(The)f Fl(editing-mode)d Fm(v)m(ariable)k(con)o(trols)e(whic)o(h)h
+(default)g(set)f(of)g(k)o(ey)g(bind-)555 1586 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 1641 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
+1696 y(b)q(e)g(set)f(to)f(either)i(`)p Fl(emacs)p Fm(')e(or)h(`)p
+Fl(vi)p Fm('.)315 1775 y Fl(enable-keypad)555 1830 y
+Fm(When)d(set)f(to)h(`)p Fl(on)p Fm(',)e(Readline)k(will)g(try)d(to)g
+(enable)i(the)f(application)h(k)o(eypad)555 1885 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 1939 y(The)j(default)h(is)g(`)p
+Fl(off)p Fm('.)315 2019 y Fl(expand-tilde)555 2073 y
+Fm(If)e(set)g(to)f(`)p Fl(on)p Fm(',)f(tilde)k(expansion)e(is)h(p)q
+(erformed)f(when)g(Readline)i(attempts)555 2128 y(w)o(ord)f
+(completion.)21 b(The)15 b(default)h(is)f(`)p Fl(off)p
+Fm('.)315 2207 y Fl(horizontal-scroll-mode)555 2262 y
+Fm(This)k(v)m(ariable)g(can)f(b)q(e)g(set)g(to)f(either)i(`)p
+Fl(on)p Fm(')e(or)g(`)p Fl(off)p Fm('.)27 b(Setting)19
+b(it)f(to)f(`)p Fl(on)p Fm(')555 2317 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
+2372 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 2426 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 2481 y(v)m(ariable)j(is)e(set)g(to)g(`)p
+Fl(off)p Fm('.)315 2560 y Fl(input-meta)555 2615 y Fm(If)h(set)f(to)g
+(`)p Fl(on)p Fm(',)f(Readline)k(will)g(enable)e(eigh)o(t-bit)h(input)f
+(\(it)g(will)h(not)e(clear)555 2670 y(the)20 b(eigh)o(th)g(bit)g(in)h
+(the)f(c)o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)p
+eop
+%%Page: 6 8
+6 7 bop 75 -58 a Fm(6)1322 b(GNU)15 b(Readline)i(Library)555
+149 y(terminal)k(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20
+b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)33 b(The)555
+204 y(name)15 b Fl(meta-flag)f Fm(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
+m(ariable.)315 289 y Fl(isearch-terminators)555 344 y
+Fm(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
+(an)g(incremen)o(tal)555 399 y(searc)o(h)12 b(without)h(subsequen)o
+(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
+454 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
+b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 509 y(b)q(een)17
+b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
+507 y Ff(h)p 1259 481 70 2 v 1259 509 a Fe(ESC)p 1259
+516 V 1326 507 a Ff(i)1357 509 y Fm(and)g Fg(C-J)f Fm(will)i(terminate)
+f(an)555 563 y(incremen)o(tal)g(searc)o(h.)315 649 y
+Fl(keymap)96 b Fm(Sets)19 b(Readline's)j(idea)e(of)f(the)g(curren)o(t)h
+(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555 703 y(mands.)41
+b(Acceptable)23 b Fl(keymap)f Fm(names)g(are)f Fl(emacs)p
+Fm(,)i Fl(emacs-standard)p Fm(,)555 758 y Fl(emacs-meta)p
+Fm(,)49 b Fl(emacs-ctlx)p Fm(,)g Fl(vi)p Fm(,)h Fl(vi-move)p
+Fm(,)f Fl(vi-command)p Fm(,)g(and)555 813 y Fl(vi-insert)p
+Fm(.)31 b Fl(vi)20 b Fm(is)g(equiv)m(alen)o(t)h(to)e
+Fl(vi-command)p Fm(;)g Fl(emacs)g Fm(is)h(equiv)m(alen)o(t)555
+868 y(to)15 b Fl(emacs-standard)p Fm(.)20 b(The)d(default)f(v)m(alue)h
+(is)g Fl(emacs)p Fm(.)k(The)16 b(v)m(alue)h(of)f(the)555
+923 y Fl(editing-mode)e Fm(v)m(ariable)i(also)f(a\013ects)g(the)g
+(default)h(k)o(eymap.)315 1008 y Fl(mark-directories)555
+1063 y Fm(If)j(set)g(to)g(`)p Fl(on)p Fm(',)f(completed)i(directory)g
+(names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1117
+y(The)15 b(default)h(is)g(`)p Fl(on)p Fm('.)315 1203
+y Fl(mark-modified-lines)555 1258 y Fm(This)j(v)m(ariable,)g(when)g
+(set)e(to)h(`)p Fl(on)p Fm(',)f(causes)h(Readline)i(to)d(displa)o(y)i
+(an)f(as-)555 1312 y(terisk)f(\(`)p Fl(*)p Fm('\))e(at)i(the)f(start)g
+(of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q
+(di\014ed.)555 1367 y(This)e(v)m(ariable)g(is)g(`)p Fl(off)p
+Fm(')e(b)o(y)h(default.)315 1452 y Fl(output-meta)555
+1507 y Fm(If)j(set)f(to)g(`)p Fl(on)p Fm(',)g(Readline)j(will)g(displa)
+o(y)f(c)o(haracters)d(with)j(the)e(eigh)o(th)h(bit)555
+1562 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 1617 y(default)16
+b(is)f(`)p Fl(off)p Fm('.)315 1702 y Fl(print-completions-horizont)o
+(ally)555 1757 y Fm(If)d(set)g(to)f(`)p Fl(on)p Fm(',)h(Readline)i
+(will)f(displa)o(y)h(completions)f(with)f(matc)o(hes)f(sorted)555
+1812 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 1866 y(The)15 b(default)h(is)g(`)p
+Fl(off)p Fm('.)315 1952 y Fl(show-all-if-ambiguous)555
+2006 y Fm(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h
+(completion)h(functions.)21 b(If)15 b(set)555 2061 y(to)e(`)p
+Fl(on)p Fm(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h
+(p)q(ossible)i(completion)f(cause)555 2116 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 2171 y(The)c(default)h(v)m(alue)h(is)e(`)p
+Fl(off)p Fm('.)315 2256 y Fl(visible-stats)555 2311 y
+Fm(If)h(set)g(to)f(`)p Fl(on)p Fm(',)g(a)h(c)o(haracter)f(denoting)h(a)
+g(\014le's)h(t)o(yp)q(e)f(is)g(app)q(ended)i(to)d(the)555
+2366 y(\014lename)h(when)g(listing)h(p)q(ossible)g(completions.)j(The)c
+(default)g(is)f(`)p Fl(off)p Fm('.)75 2451 y(Key)h(Bindings)315
+2506 y(The)21 b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h
+(in)g(the)f(init)h(\014le)g(is)g(simple.)39 b(First)20
+b(y)o(ou)315 2560 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f
+(command)h(that)f(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19
+b(The)14 b(follo)o(wing)315 2615 y(sections)k(con)o(tain)h(tables)f(of)
+f(the)h(command)g(name,)g(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)
+l(,)315 2670 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g
+(command)g(do)q(es.)p eop
+%%Page: 7 9
+7 8 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(7)315 149 y(Once)19 b(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
+(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
+204 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
+(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
+259 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
+(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
+314 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)e
+(comfortable.)315 392 y Fc(k)o(eyname)s Fm(:)19 b Fc(function-name)g
+Fm(or)c Fc(macro)555 447 y(k)o(eyname)i Fm(is)e(the)f(name)h(of)f(a)g
+(k)o(ey)g(sp)q(elled)j(out)d(in)h(English.)21 b(F)l(or)13
+b(example:)675 511 y Fl(Control-u:)22 b(universal-argument)675
+563 y(Meta-Rubout:)g(backward-kill-word)675 615 y(Control-o:)g(">)i
+(output")555 682 y Fm(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i
+Fg(C-u)e Fm(is)h(b)q(ound)g(to)f(the)g(function)h Fl(universal-)555
+736 y(argument)p Fm(,)e Fg(M-DEL)h Fm(is)g(b)q(ound)h(to)e(the)h
+(function)h Fl(backward-kill-word)p Fm(,)555 791 y(and)g
+Fg(C-o)f Fm(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
+(the)f(righ)o(t)h(hand)555 846 y(side)c(\(that)e(is,)i(to)e(insert)i
+(the)f(text)g(`)p Fl(>)f(output)p Fm(')g(in)o(to)i(the)f(line\).)555
+913 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e(names)
+g(are)g(recognized)i(while)g(pro-)555 968 y(cessing)13
+b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fc(DEL)p
+Fm(,)11 b Fc(ESC)p Fm(,)h Fc(ESCAPE)p Fm(,)f Fc(LFD)p
+Fm(,)g Fc(NEW-)555 1022 y(LINE)p Fm(,)16 b Fc(RET)p Fm(,)f
+Fc(RETURN)p Fm(,)g Fc(R)o(UBOUT)p Fm(,)h Fc(SP)l(A)o(CE)p
+Fm(,)f Fc(SPC)p Fm(,)f(and)i Fc(T)l(AB)p Fm(.)315 1101
+y Fl(")p Fc(k)o(eyseq)q Fl(")p Fm(:)k Fc(function-name)e
+Fm(or)d Fc(macro)555 1156 y(k)o(eyseq)i Fm(di\013ers)e(from)g
+Fc(k)o(eyname)j Fm(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
+(an)f(en-)555 1211 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
+1265 y(double)e(quotes.)j(Some)c Fh(gnu)g Fm(Emacs)f(st)o(yle)h(k)o(ey)
+g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)555 1320 y(in)j(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 1375 y(recognized.)675 1439 y Fl("\\C-u":)23
+b(universal-argument)675 1491 y("\\C-x\\C-r":)f(re-read-init-file)675
+1543 y("\\e[11~":)h("Function)f(Key)i(1")555 1609 y Fm(In)33
+b(the)f(ab)q(o)o(v)o(e)g(example,)37 b Fg(C-u)32 b Fm(is)h(again)f(b)q
+(ound)h(to)f(the)g(function)555 1664 y Fl(universal-argument)19
+b Fm(\(just)j(as)f(it)h(w)o(as)f(in)i(the)f(\014rst)f(example\),)j(`)p
+Fg(C-x)555 1719 y(C-r)p Fm(')c(is)h(b)q(ound)g(to)f(the)h(function)g
+Fl(re-read-init-file)p Fm(,)f(and)g(`)1731 1717 y Ff(h)p
+1743 1691 70 2 v 1743 1719 a Fe(ESC)p 1743 1727 V 1810
+1717 a Ff(i)15 b(h)p 1852 1691 10 2 v 1852 1719 a Fe([)p
+1852 1727 V 1860 1717 a Ff(i)555 1772 y(h)p 567 1746
+18 2 v 567 1774 a Fe(1)p 567 1781 V 583 1772 a Ff(i)g(h)p
+625 1746 V 625 1774 a Fe(1)p 625 1781 V 640 1772 a Ff(i)g(h)p
+683 1746 24 2 v 683 1774 a Fl(~)p 683 1781 V 704 1772
+a Ff(i)719 1774 y Fm(')g(is)h(b)q(ound)g(to)e(insert)i(the)f(text)g(`)p
+Fl(Function)f(Key)g(1)p Fm('.)315 1852 y(The)h(follo)o(wing)h
+Fh(gnu)e Fm(Emacs)h(st)o(yle)g(escap)q(e)h(sequences)g(are)e(a)o(v)m
+(ailable)j(when)e(sp)q(ecifying)315 1907 y(k)o(ey)g(sequences:)315
+1986 y Fg(\\C-)168 b Fm(con)o(trol)15 b(pre\014x)315
+2064 y Fg(\\M-)168 b Fm(meta)15 b(pre\014x)315 2143 y
+Fg(\\e)192 b Fm(an)15 b(escap)q(e)h(c)o(haracter)315
+2222 y Fg(\\\\)192 b Fm(bac)o(kslash)315 2301 y Fg(\\)p
+Fl(")555 2299 y Ff(h)p 567 2272 V 567 2301 a Fl(")p 567
+2308 V 589 2299 a Ff(i)604 2301 y Fm(,)15 b(a)f(double)j(quotation)e
+(mark)315 2379 y Fg(\\')555 2377 y Ff(h)p 567 2351 10
+2 v 567 2379 a Fe(')p 567 2387 V 575 2377 a Ff(i)590
+2379 y Fm(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
+2458 y(In)f(addition)h(to)f(the)f Fh(gnu)h Fm(Emacs)g(st)o(yle)f(escap)
+q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
+2513 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 2591 y
+Fl(\\a)192 b Fm(alert)15 b(\(b)q(ell\))315 2670 y Fl(\\b)192
+b Fm(bac)o(kspace)p eop
+%%Page: 8 10
+8 9 bop 75 -58 a Fm(8)1322 b(GNU)15 b(Readline)i(Library)315
+149 y Fl(\\d)192 b Fm(delete)315 224 y Fl(\\f)g Fm(form)14
+b(feed)315 298 y Fl(\\n)192 b Fm(newline)315 372 y Fl(\\r)g
+Fm(carriage)15 b(return)315 447 y Fl(\\t)192 b Fm(horizon)o(tal)16
+b(tab)315 521 y Fl(\\v)192 b Fm(v)o(ertical)16 b(tab)315
+595 y Fl(\\)p Fc(nnn)141 b Fm(the)14 b(c)o(haracter)f(whose)h
+Fh(asci)q(i)e Fm(co)q(de)j(is)f(the)g(o)q(ctal)g(v)m(alue)h
+Fc(nnn)f Fm(\(one)g(to)f(three)555 650 y(digits\))315
+724 y Fl(\\x)p Fc(nnn)117 b Fm(the)16 b(c)o(haracter)f(whose)h
+Fh(asci)q(i)f Fm(co)q(de)i(is)f(the)h(hexadecimal)g(v)m(alue)g
+Fc(nnn)g Fm(\(one)555 779 y(to)e(three)g(digits\))315
+853 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 908
+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 963 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 1018 y(will)i(quote)d(an)o(y)h(other)g(c)o(haracter)
+f(in)i(the)f(macro)f(text,)h(including)j(`)p Fl(")p Fm(')c(and)h(`)p
+Fl(')p Fm('.)34 b(F)l(or)315 1073 y(example,)14 b(the)f(follo)o(wing)g
+(binding)i(will)g(mak)o(e)d(`)p Fg(C-x)i Fl(\\)p Fm(')f(insert)g(a)g
+(single)h(`)p Fl(\\)p Fm(')e(in)o(to)h(the)g(line:)435
+1134 y Fl("\\C-x\\\\":)23 b("\\\\")75 1238 y Fb(1.3.2)30
+b(Conditional)20 b(Init)g(Constructs)137 1332 y Fm(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 1387 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 1441 y(the)e(result)h
+(of)f(tests.)k(There)c(are)g(four)g(parser)g(directiv)o(es)h(used.)75
+1516 y Fl($if)168 b Fm(The)16 b Fl($if)f Fm(construct)g(allo)o(ws)h
+(bindings)i(to)d(b)q(e)h(made)g(based)g(on)f(the)h(editing)h(mo)q(de,)f
+(the)315 1570 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
+1625 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
+1699 y Fl(mode)144 b Fm(The)11 b Fl(mode=)e Fm(form)h(of)g(the)h
+Fl($if)f Fm(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)
+555 1754 y(is)k(in)h Fl(emacs)e Fm(or)g Fl(vi)g Fm(mo)q(de.)20
+b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555
+1809 y(`)p Fl(set)f(keymap)p Fm(')f(command,)g(for)h(instance,)g(to)f
+(set)h(bindings)h(in)g(the)f Fl(emacs-)555 1864 y(standard)d
+Fm(and)i Fl(emacs-ctlx)e Fm(k)o(eymaps)h(only)i(if)f(Readline)h(is)f
+(starting)f(out)555 1919 y(in)k Fl(emacs)f Fm(mo)q(de.)315
+1993 y Fl(term)144 b Fm(The)14 b Fl(term=)e Fm(form)h(ma)o(y)g(b)q(e)h
+(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555
+2048 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 2103 y(function)13
+b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g
+(the)g(`)p Fl(=)p Fm(')f(is)h(tested)g(against)555 2157
+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 2212 y(name)i(b)q(efore)g(the)g
+(\014rst)f(`)p Fl(-)p Fm('.)24 b(This)17 b(allo)o(ws)g
+Fl(sun)f Fm(to)g(matc)o(h)h(b)q(oth)f Fl(sun)h Fm(and)555
+2267 y Fl(sun-cmd)p Fm(,)d(for)g(instance.)315 2341 y
+Fl(application)555 2396 y Fm(The)d Fc(application)i Fm(construct)e(is)g
+(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
+2451 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)j
+(library)e(sets)f(the)g Fc(application)555 2506 y(name)p
+Fm(,)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
+2560 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 2615 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 2670 y(previous)j(w)o(ord)e(in)i(Bash:)p
+eop
+%%Page: 9 11
+9 10 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
+b(9)675 149 y Fl($if)23 b(Bash)675 201 y(#)h(Quote)f(the)g(current)g
+(or)h(previous)f(word)675 253 y("\\C-xq":)g("\\eb\\"\\ef\\"")675
+305 y($endif)75 385 y($endif)96 b Fm(This)16 b(command,)e(as)h(seen)h
+(in)g(the)f(previous)h(example,)g(terminates)f(an)g Fl($if)f
+Fm(command.)75 465 y Fl($else)120 b Fm(Commands)15 b(in)h(this)f(branc)
+o(h)h(of)e(the)i Fl($if)e Fm(directiv)o(e)j(are)e(executed)h(if)g(the)f
+(test)g(fails.)75 544 y Fl($include)48 b Fm(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 599 y(bindings)j(from)e(that)f(\014le.)435
+663 y Fl($include)23 b(/etc/inputrc)75 775 y Fb(1.3.3)30
+b(Sample)20 b(Init)h(File)137 872 y Fm(Here)16 b(is)g(an)f(example)h
+(of)f(an)g Fc(inputrc)k Fm(\014le.)i(This)16 b(illustrates)g(k)o(ey)f
+(binding,)i(v)m(ariable)f(assignmen)o(t,)75 927 y(and)f(conditional)i
+(syn)o(tax.)p eop
+%%Page: 10 12
+10 11 bop 75 -58 a Fm(10)1299 b(GNU)15 b(Readline)i(Library)195
+201 y Fl(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
+(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(Gnu)
+f(Readline)g(library.)47 b(Existing)22 b(programs)195
+305 y(#)i(include)f(FTP,)g(Bash,)g(and)h(Gdb.)195 357
+y(#)195 409 y(#)g(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h
+(C-x)f(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h
+(comments.)195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g
+(systemwide)g(bindings)f(and)i(variable)f(assignments)f(from)195
+616 y(#)i(/etc/Inputrc)195 668 y($include)f(/etc/Inputrc)195
+772 y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)
+195 928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
+1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
+f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
+195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
+1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
+1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
+(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
+1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
+1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
+1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
+(previous-history)195 1914 y("\\M-[B":)g(next-history)195
+1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
+195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
+2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
+(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
+2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
+195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
+2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
+(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
+eop
+%%Page: 11 13
+11 12 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(11)195 201 y Fl(C-q:)23 b(quoted-insert)195 305 y($endif)195
+409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
+(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
+(are)h(convenient)e(for)h(shell)h(interaction)195 616
+y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
+y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
+772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)f(insert)g(open)
+h(and)f(close)g(double)g(quotes)195 824 y(#)h(and)f(move)g(to)h(just)f
+(after)h(the)f(open)g(quote)195 876 y("\\C-x\\"":)g("\\"\\"\\C-b")195
+928 y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)f
+(in)i(sequences)f(and)g(macros\))195 980 y("\\C-x\\\\":)g("\\\\")195
+1032 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)195
+1083 y("\\C-xq":)g("\\eb\\"\\ef\\"")195 1135 y(#)h(Add)f(a)h(binding)f
+(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)195
+1187 y("\\C-xr":)f(redraw-current-line)195 1239 y(#)h(Edit)f(variable)g
+(on)g(current)g(line.)195 1291 y("\\M-\\C-v":)f
+("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")195 1343 y($endif)195
+1447 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)195
+1499 y(set)f(bell-style)g(visible)195 1602 y(#)h(don't)f(strip)g
+(characters)g(to)g(7)h(bits)f(when)h(reading)195 1654
+y(set)f(input-meta)g(on)195 1758 y(#)h(allow)f(iso-latin1)f(characters)
+h(to)g(be)h(inserted)f(rather)g(than)g(converted)g(to)195
+1810 y(#)h(prefix-meta)e(sequences)195 1862 y(set)h(convert-meta)g(off)
+195 1966 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h
+(directly)f(rather)g(than)195 2017 y(#)h(as)f(meta-prefixed)f
+(characters)195 2069 y(set)h(output-meta)g(on)195 2173
+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 2225 y(#)h(user)f(if)h(he)f(wants)g
+(to)h(see)f(all)h(of)f(them)195 2277 y(set)g(completion-query-items)e
+(150)195 2381 y(#)j(For)f(FTP)195 2433 y($if)g(Ftp)195
+2484 y("\\C-xg":)g("get)g(\\M-?")195 2536 y("\\C-xt":)g("put)g(\\M-?")
+195 2588 y("\\M-.":)g(yank-last-arg)195 2640 y($endif)p
+eop
+%%Page: 12 14
+12 13 bop 75 -58 a Fm(12)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fk(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
+247 y Fm(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.)137
+315 y(Command)j(names)g(without)h(an)f(accompan)o(ying)g(k)o(ey)g
+(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)g(default.)29
+b(In)75 369 y(the)15 b(follo)o(wing)h(descriptions,)g
+Fc(p)q(oin)o(t)h Fm(refers)e(to)f(the)i(curren)o(t)f(cursor)f(p)q
+(osition,)i(and)g Fc(mark)h Fm(refers)e(to)f(a)75 424
+y(cursor)h(p)q(osition)h(sa)o(v)o(ed)e(b)o(y)h(the)g
+Fl(set-mark)f Fm(command.)20 b(The)15 b(text)g(b)q(et)o(w)o(een)g(the)g
+(p)q(oin)o(t)h(and)f(mark)f(is)75 479 y(referred)h(to)g(as)g(the)g
+Fc(region)p Fm(.)75 593 y Fb(1.4.1)30 b(Commands)21 b(F)-5
+b(or)19 b(Mo)n(ving)75 716 y Fl(beginning-of-line)13
+b(\(C-a\))315 771 y Fm(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g
+(curren)o(t)g(line.)75 864 y Fl(end-of-line)f(\(C-e\))315
+919 y Fm(Mo)o(v)o(e)g(to)h(the)g(end)h(of)f(the)g(line.)75
+1012 y Fl(forward-char)f(\(C-f\))315 1067 y Fm(Mo)o(v)o(e)g(forw)o(ard)
+g(a)h(c)o(haracter.)75 1160 y Fl(backward-char)e(\(C-b\))315
+1215 y Fm(Mo)o(v)o(e)h(bac)o(k)h(a)g(c)o(haracter.)75
+1309 y Fl(forward-word)f(\(M-f\))315 1363 y Fm(Mo)o(v)o(e)g(forw)o(ard)
+g(to)g(the)i(end)g(of)e(the)h(next)h(w)o(ord.)j(W)l(ords)c(are)f(comp)q
+(osed)i(of)f(letters)g(and)315 1418 y(digits.)75 1512
+y Fl(backward-word)e(\(M-b\))315 1566 y Fm(Mo)o(v)o(e)j(bac)o(k)g(to)h
+(the)f(start)g(of)g(the)h(curren)o(t)g(or)f(previous)i(w)o(ord.)24
+b(W)l(ords)16 b(are)h(comp)q(osed)315 1621 y(of)e(letters)g(and)g
+(digits.)75 1715 y Fl(clear-screen)f(\(C-l\))315 1769
+y Fm(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g(curren)o(t)g(line,)
+i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g(top)315
+1824 y(of)i(the)g(screen.)75 1918 y Fl(redraw-current-line)e(\(\))315
+1972 y Fm(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 2086 y Fb(1.4.2)30
+b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f(History)75
+2209 y Fl(accept-line)14 b(\(Newline)g(or)h(Return\))315
+2264 y Fm(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
+f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
+2319 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
+(future)g(recall)h(with)f Fl(add_history\(\))p Fm(.)k(If)d(this)315
+2374 y(line)f(is)f(a)f(mo)q(di\014ed)i(history)f(line,)h(then)f
+(restore)f(the)g(history)h(line)h(to)e(its)h(original)g(state.)75
+2467 y Fl(previous-history)e(\(C-p\))315 2522 y Fm(Mo)o(v)o(e)h(`up')h
+(through)g(the)g(history)g(list.)75 2615 y Fl(next-history)f(\(C-n\))
+315 2670 y Fm(Mo)o(v)o(e)g(`do)o(wn')g(through)h(the)h(history)f(list.)
+p eop
+%%Page: 13 15
+13 14 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(13)75 149 y Fl(beginning-of-history)12 b(\(M-<\))315
+204 y Fm(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f(the)f(history)l
+(.)75 307 y Fl(end-of-history)e(\(M->\))315 362 y Fm(Mo)o(v)o(e)h(to)h
+(the)g(end)h(of)f(the)g(input)h(history)l(,)f(i.e.,)g(the)g(line)i
+(curren)o(tly)f(b)q(eing)g(en)o(tered.)75 466 y Fl
+(reverse-search-history)c(\(C-r\))315 520 y Fm(Searc)o(h)k(bac)o(kw)o
+(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)h
+(`up')f(through)g(the)h(his-)315 575 y(tory)e(as)h(necessary)l(.)20
+b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 678
+y Fl(forward-search-history)c(\(C-s\))315 733 y Fm(Searc)o(h)j(forw)o
+(ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)
+o(wn')f(through)g(the)h(the)315 788 y(history)g(as)g(necessary)l(.)20
+b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 891
+y Fl(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
+946 y Fm(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)
+f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315
+1001 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 1056
+y(user.)75 1159 y Fl(non-incremental-forward-se)o(arch-hi)o(story)12
+b(\(M-n\))315 1214 y Fm(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f
+(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)
+315 1268 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
+1323 y(user.)75 1427 y Fl(history-search-forward)f(\(\))315
+1481 y Fm(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f
+(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315
+1536 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
+(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
+b(By)315 1591 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
+1694 y Fl(history-search-backward)c(\(\))315 1749 y Fm(Searc)o(h)18
+b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f
+(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1804 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
+1859 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
+1962 y Fl(yank-nth-arg)e(\(M-C-y\))315 2017 y Fm(Insert)f(the)g
+(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h
+(the)f(second)h(w)o(ord)e(on)315 2071 y(the)i(previous)i(line\).)21
+b(With)14 b(an)h(argumen)o(t)e Fc(n)p Fm(,)i(insert)f(the)h
+Fc(n)p Fm(th)f(w)o(ord)g(from)g(the)g(previous)315 2126
+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
+2181 y(argumen)o(t)g(inserts)i(the)f Fc(n)p Fm(th)h(w)o(ord)e(from)h
+(the)g(end)h(of)e(the)i(previous)g(command.)75 2284 y
+Fl(yank-last-arg)d(\(M-.)i(or)g(M-_\))315 2339 y Fm(Insert)j(last)f
+(argumen)o(t)g(to)g(the)g(previous)i(command)e(\(the)g(last)h(w)o(ord)f
+(of)g(the)g(previous)315 2394 y(history)e(en)o(try\).)20
+b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)o(e)g(exactly)h(lik)o(e)g
+Fl(yank-nth-arg)p Fm(.)j(Succes-)315 2449 y(siv)o(e)f(calls)g(to)f
+Fl(yank-last-arg)e Fm(mo)o(v)o(e)i(bac)o(k)g(through)g(the)g(history)g
+(list,)i(inserting)f(the)315 2503 y(last)d(argumen)o(t)g(of)f(eac)o(h)i
+(line)g(in)g(turn.)75 2630 y Fb(1.4.3)30 b(Commands)21
+b(F)-5 b(or)19 b(Changing)i(T)-5 b(ext)p eop
+%%Page: 14 16
+14 15 bop 75 -58 a Fm(14)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fl(delete-char)d(\(C-d\))315 204 y Fm(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 259 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 314 y(b)q(ound)g(to)f Fl(delete-char)p
+Fm(,)e(then)j(return)f Fh(eof)p Fm(.)75 406 y Fl(backward-delete-char)d
+(\(Rubout\))315 460 y Fm(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)
+f(cursor.)j(A)c(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315
+515 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
+607 y Fl(forward-backward-delete-ch)o(ar)12 b(\(\))315
+662 y Fm(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
+(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
+717 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
+(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
+771 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 863
+y Fl(quoted-insert)e(\(C-q)i(or)g(C-v\))315 918 y Fm(Add)j(the)f(next)g
+(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26
+b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 973
+y(sequences)f(lik)o(e)h Fg(C-q)p Fm(,)d(for)h(example.)75
+1065 y Fl(tab-insert)f(\(M-)401 1063 y Ff(h)p 412 1037
+74 2 v 412 1065 a Fe(T)m(AB)p 412 1072 V 484 1063 a Ff(i)499
+1065 y Fl(\))315 1119 y Fm(Insert)h(a)g(tab)g(c)o(haracter.)75
+1211 y Fl(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
+1266 y Fm(Insert)g(y)o(ourself.)75 1358 y Fl(transpose-chars)e(\(C-t\))
+315 1413 y Fm(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e
+(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315
+1467 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 1522 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 1577 y(ha)o(v)o(e)k(no)g(e\013ect.)75
+1669 y Fl(transpose-words)e(\(M-t\))315 1724 y Fm(Drag)i(the)h(w)o(ord)
+g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
+(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1778
+y(w)o(ord)f(as)f(w)o(ell.)75 1870 y Fl(upcase-word)g(\(M-u\))315
+1925 y Fm(Upp)q(ercase)j(the)f(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o
+(ord.)22 b(With)16 b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315
+1980 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 2072 y Fl(downcase-word)d(\(M-l\))315
+2126 y Fm(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h
+(w)o(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o
+(ercase)315 2181 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 2273 y Fl(capitalize-word)e(\(M-c\))315
+2328 y Fm(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o
+(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315
+2383 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 2494 y Fb(1.4.4)30 b(Killing)20 b(And)h(Y)-5
+b(anking)75 2615 y Fl(kill-line)14 b(\(C-k\))315 2670
+y Fm(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
+(the)g(line.)p eop
+%%Page: 15 17
+15 16 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(15)75 149 y Fl(backward-kill-line)13 b(\(C-x)h(Rubout\))315
+204 y Fm(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
+(line.)75 295 y Fl(unix-line-discard)e(\(C-u\))315 349
+y Fm(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
+(eginning)j(of)c(the)i(curren)o(t)f(line.)75 440 y Fl(kill-whole-line)e
+(\(\))315 495 y Fm(Kill)20 b(all)f(c)o(haracters)e(on)h(the)g(curren)o
+(t)f(line,)j(no)e(matter)f(p)q(oin)o(t)h(is.)28 b(By)18
+b(default,)h(this)f(is)315 549 y(un)o(b)q(ound.)75 640
+y Fl(kill-word)c(\(M-d\))315 695 y Fm(Kill)j(from)d(p)q(oin)o(t)h(to)f
+(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o(w)o
+(een)g(w)o(ords,)e(to)i(the)f(end)315 750 y(of)h(the)g(next)g(w)o(ord.)
+20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
+Fl(forward-word)p Fm(.)75 840 y Fl(backward-kill-word)e(\(M-)592
+838 y Ff(h)p 603 812 73 2 v 603 840 a Fe(DEL)p 603 848
+V 674 838 a Ff(i)689 840 y Fl(\))315 895 y Fm(Kill)k(the)d(w)o(ord)g(b)
+q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f(the)h
+(same)f(as)g Fl(backward-word)p Fm(.)75 985 y Fl(unix-word-rubout)f
+(\(C-w\))315 1040 y Fm(Kill)18 b(the)e(w)o(ord)f(b)q(ehind)j(p)q(oin)o
+(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g(b)q(oundary)l(.)23
+b(The)16 b(killed)315 1095 y(text)f(is)g(sa)o(v)o(ed)g(on)g(the)h
+(kill-ring.)75 1185 y Fl(delete-horizontal-space)c(\(\))315
+1240 y Fm(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q(oin)o(t.)k
+(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 1330
+y Fl(kill-region)e(\(\))315 1385 y Fm(Kill)j(the)f(text)e(in)i(the)g
+(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g(is)h(un)
+o(b)q(ound.)75 1476 y Fl(copy-region-as-kill)d(\(\))315
+1530 y Fm(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
+(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
+(a)o(y)l(.)315 1585 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
+(ound.)75 1676 y Fl(copy-backward-word)d(\(\))315 1730
+y Fm(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
+(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
+1785 y(same)c(as)g Fl(backward-word)p Fm(.)j(By)d(default,)g(this)h
+(command)f(is)h(un)o(b)q(ound.)75 1876 y Fl(copy-forward-word)d(\(\))
+315 1930 y Fm(Cop)o(y)i(the)h(w)o(ord)e(follo)o(wing)j(p)q(oin)o(t)f
+(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o(ord)f(b)q(oundaries)i(are)e
+(the)315 1985 y(same)g(as)g Fl(forward-word)p Fm(.)j(By)d(default,)h
+(this)f(command)g(is)h(un)o(b)q(ound.)75 2076 y Fl(yank)f(\(C-y\))315
+2131 y Fm(Y)l(ank)g(the)h(top)f(of)f(the)i(kill)h(ring)e(in)o(to)g(the)
+h(bu\013er)f(at)f(the)i(curren)o(t)f(cursor)g(p)q(osition.)75
+2221 y Fl(yank-pop)f(\(M-y\))315 2276 y Fm(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 2331 y(command)d(is)h Fl(yank)e
+Fm(or)h Fl(yank-pop)p Fm(.)75 2441 y Fb(1.4.5)30 b(Sp)r(ecifying)20
+b(Numeric)h(Argumen)n(ts)75 2560 y Fl(digit-argument)13
+b(\()p Fg(M-0)p Fl(,)i Fg(M-1)p Fl(,)f(...)h Fg(M--)p
+Fl(\))315 2615 y Fm(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
+(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
+2670 y Fg(M--)h Fm(starts)f(a)h(negativ)o(e)g(argumen)o(t.)p
+eop
+%%Page: 16 18
+16 17 bop 75 -58 a Fm(16)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fl(universal-argument)c(\(\))315 204 y Fm(This)g(is)h(another)e
+(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
+b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
+259 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 314
+y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
+(digits,)g(executing)g Fl(universal-argument)315 369
+y Fm(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
+(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
+423 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
+478 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
+533 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
+(executing)i(this)f(function)h(the)e(\014rst)h(time)315
+588 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
+(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
+643 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 745 y Fb(1.4.6)30
+b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
+b(ou)75 857 y Fl(complete)14 b(\()305 855 y Ff(h)p 317
+828 74 2 v 317 857 a Fe(T)m(AB)p 317 864 V 389 855 a
+Ff(i)404 857 y Fl(\))315 911 y Fm(A)o(ttempt)c(to)h(p)q(erform)g
+(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
+b(The)11 b(actual)h(completion)315 966 y(p)q(erformed)j(is)h
+(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
+g(completion.)75 1049 y Fl(possible-completions)c(\(M-?\))315
+1103 y Fm(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
+q(efore)h(the)f(cursor.)75 1186 y Fl(insert-completions)e(\(M-*\))315
+1241 y Fm(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
+q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
+1295 y(b)o(y)f Fl(possible-completions)p Fm(.)75 1378
+y Fl(menu-complete)e(\(\))315 1433 y Fm(Similar)g(to)f
+Fl(complete)p Fm(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
+(completed)f(with)h(a)e(single)j(matc)o(h)315 1487 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 Fl(menu-complete)315 1542 y Fm(steps)h(through)g
+(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
+(matc)o(h)f(in)i(turn.)315 1597 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 1652 y(restored.)26 b(An)17 b(argumen)o(t)g(of)g
+Fc(n)g Fm(mo)o(v)o(es)g Fc(n)g Fm(p)q(ositions)h(forw)o(ard)e(in)i(the)
+g(list)g(of)f(matc)o(hes;)315 1707 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 1761 y(command)15 b(is)h(in)o(tended)g(to)f
+(b)q(e)h(b)q(ound)g(to)1067 1759 y Ff(h)p 1079 1733 V
+1079 1761 a Fe(T)m(AB)p 1079 1769 V 1150 1759 a Ff(i)1165
+1761 y Fm(,)f(but)h(is)f(un)o(b)q(ound)i(b)o(y)e(default.)75
+1844 y Fl(delete-char-or-list)e(\(\))315 1899 y Fm(Deletes)h(the)f(c)o
+(haracter)g(under)h(the)g(cursor)f(if)h(not)f(at)g(the)g(b)q(eginning)j
+(or)d(end)h(of)f(the)g(line)315 1954 y(\(lik)o(e)i Fl(delete-char)p
+Fm(\).)j(If)d(at)f(the)h(end)g(of)f(the)g(line,)i(b)q(eha)o(v)o(es)f
+(iden)o(tically)i(to)d Fl(possible-)315 2008 y(completions)p
+Fm(.)k(This)e(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)75
+2111 y Fb(1.4.7)30 b(Keyb)r(oard)20 b(Macros)75 2222
+y Fl(start-kbd-macro)13 b(\(C-x)i(\(\))315 2277 y Fm(Begin)h(sa)o(ving)
+f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o(to)f(the)g(curren)o(t)g(k)o
+(eyb)q(oard)g(macro.)75 2360 y Fl(end-kbd-macro)e(\(C-x)i(\)\))315
+2414 y Fm(Stop)f(sa)o(ving)f(the)h(c)o(haracters)f(t)o(yp)q(ed)h(in)o
+(to)f(the)h(curren)o(t)g(k)o(eyb)q(oard)f(macro)g(and)h(sa)o(v)o(e)f
+(the)315 2469 y(de\014nition.)75 2552 y Fl(call-last-kbd-macro)g(\(C-x)
+h(e\))315 2606 y Fm(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 2661 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.)p eop
+%%Page: 17 19
+17 18 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
+b(17)75 149 y Fb(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
+265 y Fl(re-read-init-file)13 b(\(C-x)h(C-r\))315 320
+y Fm(Read)e(in)f(the)g(con)o(ten)o(ts)g(of)f(the)h Fc(inputrc)k
+Fm(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
+(ariable)315 374 y(assignmen)o(ts)k(found)h(there.)75
+461 y Fl(abort)e(\(C-g\))315 515 y Fm(Ab)q(ort)f(the)g(curren)o(t)h
+(editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s
+(ject)e(to)g(the)315 570 y(setting)i(of)g Fl(bell-style)p
+Fm(\).)75 657 y Fl(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
+Fc(x)p Fl(,)h(...\))315 711 y Fm(If)f(the)g(meta\014ed)g(c)o(haracter)f
+Fc(x)k Fm(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g(b)q
+(ound)h(to)e(the)315 766 y(corresp)q(onding)j(upp)q(ercase)g(c)o
+(haracter.)75 852 y Fl(prefix-meta)e(\()377 850 y Ff(h)p
+389 824 70 2 v 389 852 a Fe(ESC)p 389 860 V 456 850 a
+Ff(i)471 852 y Fl(\))315 907 y Fm(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 962 y(meta)d(k)o(ey)l(.)20 b(T)o(yping)15
+b(`)694 960 y Ff(h)p 706 934 V 706 962 a Fe(ESC)p 706
+970 V 773 960 a Ff(i)803 962 y Fl(f)p Fm(')g(is)g(equiv)m(alen)o(t)i
+(to)e(t)o(yping)g Fg(M-f)p Fm(.)75 1048 y Fl(undo)g(\(C-_)f(or)h(C-x)g
+(C-u\))315 1103 y Fm(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
+(ered)g(for)e(eac)o(h)h(line.)75 1189 y Fl(revert-line)f(\(M-r\))315
+1244 y Fm(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26
+b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Fl(undo)f
+Fm(command)315 1299 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
+(b)q(eginning.)75 1385 y Fl(tilde-expand)f(\(M-~\))315
+1440 y Fm(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
+(ord.)75 1526 y Fl(set-mark)f(\(C-@\))315 1581 y Fm(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 1636 y(is)i(set)f(to)f
+(that)h(p)q(osition.)75 1722 y Fl(exchange-point-and-mark)d(\(C-x)j
+(C-x\))315 1777 y Fm(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k
+(The)c(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o
+(v)o(ed)315 1832 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 1918
+y Fl(character-search)e(\(C-]\))315 1973 y Fm(A)f(c)o(haracter)g(is)h
+(read)g(and)f(p)q(oin)o(t)h(is)g(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q
+(ccurrence)g(of)f(that)g(c)o(haracter.)315 2028 y(A)j(negativ)o(e)h
+(coun)o(t)f(searc)o(hes)g(for)f(previous)i(o)q(ccurrences.)75
+2114 y Fl(character-search-backward)c(\(M-C-]\))315 2169
+y Fm(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q(oin)o(t)g(is)g(mo)o(v)
+o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)e(that)315
+2223 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 2310 y Fl(insert-comment)d(\(M-#\))
+315 2365 y Fm(The)19 b(v)m(alue)i(of)e(the)g Fl(comment-begin)e
+Fm(v)m(ariable)k(is)f(inserted)g(at)e(the)i(b)q(eginning)h(of)e(the)315
+2419 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 2506
+y Fl(dump-functions)d(\(\))315 2560 y Fm(Prin)o(t)g(all)h(of)f(the)g
+(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)h
+(output)e(stream.)315 2615 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 2670 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
+Fc(inputrc)k Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
+(y)f(default.)p eop
+%%Page: 18 20
+18 19 bop 75 -58 a Fm(18)1299 b(GNU)15 b(Readline)i(Library)75
+149 y Fl(dump-variables)c(\(\))315 204 y Fm(Prin)o(t)e(all)g(of)f(the)h
+(settable)g(v)m(ariables)h(and)f(their)g(v)m(alues)h(to)e(the)h
+(Readline)i(output)d(stream.)315 259 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 314 y(it)g(can)h(b)q(e)g(made)f
+(part)f(of)h(an)g Fc(inputrc)k Fm(\014le.)i(This)16 b(command)f(is)h
+(un)o(b)q(ound)g(b)o(y)f(default.)75 406 y Fl(dump-macros)f(\(\))315
+461 y Fm(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
+516 y(output.)26 b(If)18 b(a)f(n)o(umeric)h(argumen)o(t)f(is)h
+(supplied,)i(the)d(output)g(is)h(formatted)e(in)j(suc)o(h)e(a)315
+570 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g(part)g(of)f(an)h
+Fc(inputrc)k Fm(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)g(b)o
+(y)315 625 y(default.)75 754 y Fk(1.5)33 b(Readline)23
+b(vi)h(Mo)r(de)137 850 y Fm(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 Fl(vi)g
+Fm(editing)j(functions,)f(it)f(do)q(es)g(con)o(tain)75
+905 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 Fl(vi)e Fm(mo)q(de)g(b)q(eha)o(v)o(es)g(as)g
+(sp)q(eci\014ed)i(in)75 960 y(the)c Fh(posix)g Fm(1003.2)f(standard.)
+137 1027 y(In)h(order)g(to)f(switc)o(h)g(in)o(teractiv)o(ely)i(b)q(et)o
+(w)o(een)f Fl(emacs)e Fm(and)i Fl(vi)f Fm(editing)i(mo)q(des,)f(use)f
+(the)h(command)75 1082 y Fg(M-C-j)f Fm(\(toggle-editing-mo)q(de\).)21
+b(The)16 b(Readline)h(default)f(is)g Fl(emacs)e Fm(mo)q(de.)137
+1149 y(When)i(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e Fl(vi)g
+Fm(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g(`insertion')f(mo)q
+(de,)g(as)g(if)g(y)o(ou)75 1204 y(had)e(t)o(yp)q(ed)h(an)f(`)p
+Fl(i)p Fm('.)18 b(Pressing)608 1202 y Ff(h)p 620 1176
+70 2 v 620 1204 a Fe(ESC)p 620 1211 V 687 1202 a Ff(i)715
+1204 y Fm(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q(de,)i
+(where)f(y)o(ou)g(can)g(edit)h(the)75 1259 y(text)i(of)h(the)g(line)h
+(with)g(the)f(standard)f Fl(vi)h Fm(mo)o(v)o(emen)o(t)f(k)o(eys,)g(mo)o
+(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75 1313
+y(`)p Fl(k)p Fm(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p
+Fl(j)p Fm(',)e(and)h(so)g(forth.)p eop
+%%Page: -1 21
+-1 20 bop 1862 -58 a Fm(i)75 149 y Fi(T)-7 b(able)27
+b(of)f(Con)n(ten)n(ts)75 320 y Fk(1)67 b(Command)22 b(Line)i(Editing)d
+Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)g(.)42 b Fk(1)224 389 y Fm(1.1)j(In)o(tro)q(duction)16
+b(to)f(Line)h(Editing)e Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)27 b Fm(1)224 444 y(1.2)45 b(Readline)17 b(In)o(teraction)8
+b Fd(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)23 b Fm(1)374 499 y(1.2.1)44 b(Readline)17
+b(Bare)e(Essen)o(tials)f Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
+b Fm(1)374 553 y(1.2.2)44 b(Readline)17 b(Mo)o(v)o(emen)o(t)d(Commands)
+7 b Fd(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)21 b Fm(2)374 608 y(1.2.3)44 b(Readline)17 b(Killing)h(Commands)
+11 b Fd(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)25 b Fm(2)374 663 y(1.2.4)44 b(Readline)17
+b(Argumen)o(ts)12 b Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
+b Fm(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
+(the)f(History)e Fd(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
+b Fm(3)224 773 y(1.3)45 b(Readline)17 b(Init)g(File)e
+Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)29 b Fm(4)374 827 y(1.3.1)44 b(Readline)17
+b(Init)f(File)h(Syn)o(tax)7 b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
+b Fm(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
+b Fd(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)19 b Fm(8)374 937 y(1.3.3)44 b(Sample)16
+b(Init)g(File)11 b Fd(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)26 b Fm(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)h(Commands)
+6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fm(12)374
+1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
+Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fm(12)374 1101 y(1.4.2)44
+b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
+b Fd(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fm(12)374 1156 y(1.4.3)44
+b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fd(.)8
+b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
+b Fm(13)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
+b Fd(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fm(14)374
+1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
+Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
+b Fm(15)374 1320 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 Fd(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)25 b Fm(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
+b(Macros)6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
+b Fm(16)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
+b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+22 b Fm(17)224 1485 y(1.5)45 b(Readline)17 b(vi)f(Mo)q(de)e
+Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)28 b Fm(18)p eop
+%%Page: -2 22
+-2 21 bop 75 -58 a Fm(ii)1321 b(GNU)15 b(Readline)i(Library)p
+eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
new file mode 100644
--- /dev/null
+++ b/readline/doc/rluserman.texinfo
@@ -0,0 +1,94 @@
+\input texinfo    @c -*-texinfo-*-
+@comment %**start of header (This is for running Texinfo on a region.)
+@setfilename rluserman.info
+@settitle GNU Readline Library
+@comment %**end of header (This is for running Texinfo on a region.)
+@setchapternewpage odd
+
+@include manvers.texinfo
+
+@ifinfo
+@dircategory Libraries
+@direntry
+* RLuserman: (rluserman).       The GNU readline library User's Manual.
+@end direntry
+
+This document describes the end user interface of the GNU Readline Library,
+a utility which aids in the consistency of user interface across discrete
+programs that need to provide a command line interface.
+
+Copyright (C) 1988-2001 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+pare preserved on all copies.
+
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+@end ignore
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+@end ifinfo
+
+@titlepage  
+@title GNU Readline Library User Interface
+@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
+@subtitle @value{UPDATE-MONTH}
+@author Brian Fox, Free Software Foundation
+@author Chet Ramey, Case Western Reserve University
+
+@page
+This document describes the end user interface of the GNU Readline Library,
+a utility which aids in the consistency of user interface across discrete
+programs that need to provide a command line interface.
+
+Published by the Free Software Foundation @*
+59 Temple Place, Suite 330, @*
+Boston, MA 02111 USA
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1988-2001 Free Software Foundation, Inc.
+@end titlepage
+
+@ifinfo
+@node Top
+@top GNU Readline Library
+
+This document describes the end user interface of the GNU Readline Library,
+a utility which aids in the consistency of user interface across discrete
+programs that need to provide a command line interface.
+
+@menu
+* Command Line Editing::	   GNU Readline User's Manual.
+@end menu
+@end ifinfo
+
+@include rluser.texinfo
+
+@contents
+@bye
new file mode 100644
--- /dev/null
+++ b/readline/rlprivate.h
@@ -0,0 +1,267 @@
+/* rlprivate.h -- functions and variables global to the readline library,
+		  but not intended for use by applications. */
+
+/* Copyright (C) 1999 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline 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,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if !defined (_RL_PRIVATE_H_)
+#define _RL_PRIVATE_H_
+
+#include "rlconf.h"	/* for VISIBLE_STATS */
+#include "rlstdc.h"
+#include "posixjmp.h" /* defines procenv_t */
+
+/*************************************************************************
+ *									 *
+ * Global functions undocumented in texinfo manual and not in readline.h *
+ *									 *
+ *************************************************************************/
+
+/* terminal.c */
+extern char *rl_get_termcap __P((const char *));
+
+/*************************************************************************
+ *									 *
+ * Global variables undocumented in texinfo manual and not in readline.h *
+ *									 *
+ *************************************************************************/
+
+/* complete.c */
+extern int rl_complete_with_tilde_expansion;
+#if defined (VISIBLE_STATS)
+extern int rl_visible_stats;
+#endif /* VISIBLE_STATS */
+
+/* readline.c */
+extern int rl_line_buffer_len;
+extern int rl_arg_sign;
+extern int rl_visible_prompt_length;
+extern int readline_echoing_p;
+extern int rl_key_sequence_length;
+
+/* display.c */
+extern int rl_display_fixed;
+
+/* parens.c */
+extern int rl_blink_matching_paren;
+
+/*************************************************************************
+ *									 *
+ * Global functions and variables unsed and undocumented		 *
+ *									 *
+ *************************************************************************/
+
+/* bind.c */
+extern char *rl_untranslate_keyseq __P((int));
+
+/* kill.c */
+extern int rl_set_retained_kills __P((int));
+
+/* readline.c */
+extern int rl_discard_argument __P((void));
+
+/* rltty.c */
+extern int rl_stop_output __P((int, int));
+
+/* terminal.c */
+extern void _rl_set_screen_size __P((int, int));
+
+/* undo.c */
+extern int _rl_fix_last_undo_of_type __P((int, int, int));
+
+/* util.c */
+extern char *_rl_savestring __P((const char *));
+
+/*************************************************************************
+ *									 *
+ * Functions and variables private to the readline library		 *
+ *									 *
+ *************************************************************************/
+
+/* NOTE: Functions and variables prefixed with `_rl_' are
+   pseudo-global: they are global so they can be shared
+   between files in the readline library, but are not intended
+   to be visible to readline callers. */
+
+/*************************************************************************
+ * Undocumented private functions					 *
+ *************************************************************************/
+
+#if defined(READLINE_CALLBACKS)
+
+/* readline.c */
+extern void readline_internal_setup __P((void));
+extern char *readline_internal_teardown __P((int));
+extern int readline_internal_char __P((void));
+
+#endif /* READLINE_CALLBACKS */
+
+/* bind.c */
+extern void _rl_bind_if_unbound __P((const char *, rl_command_func_t *));
+
+/* display.c */
+extern char *_rl_strip_prompt __P((char *));
+extern void _rl_move_cursor_relative __P((int, const char *));
+extern void _rl_move_vert __P((int));
+extern void _rl_save_prompt __P((void));
+extern void _rl_restore_prompt __P((void));
+extern char *_rl_make_prompt_for_search __P((int));
+extern void _rl_erase_at_end_of_line __P((int));
+extern void _rl_clear_to_eol __P((int));
+extern void _rl_clear_screen __P((void));
+extern void _rl_update_final __P((void));
+extern void _rl_redisplay_after_sigwinch __P((void));
+extern void _rl_clean_up_for_exit __P((void));
+extern void _rl_erase_entire_line __P((void));
+extern int _rl_currentb_display_line __P((void));
+
+/* input.c */
+extern int _rl_any_typein __P((void));
+extern int _rl_input_available __P((void));
+extern void _rl_insert_typein __P((int));
+
+/* macro.c */
+extern void _rl_with_macro_input __P((char *));
+extern int _rl_next_macro_key __P((void));
+extern void _rl_push_executing_macro __P((void));
+extern void _rl_pop_executing_macro __P((void));
+extern void _rl_add_macro_char __P((int));
+extern void _rl_kill_kbd_macro __P((void));
+
+/* nls.c */
+extern int _rl_init_eightbit __P((void));
+
+/* parens.c */
+extern void _rl_enable_paren_matching __P((int));
+
+/* readline.c */
+extern void _rl_init_line_state __P((void));
+extern void _rl_set_the_line __P((void));
+extern int _rl_dispatch __P((int, Keymap));
+extern int _rl_init_argument __P((void));
+extern void _rl_fix_point __P((int));
+extern void _rl_replace_text __P((const char *, int, int));
+extern int _rl_char_search_internal __P((int, int, int));
+extern int _rl_set_mark_at_pos __P((int));
+
+/* rltty.c */
+extern int _rl_disable_tty_signals __P((void));
+extern int _rl_restore_tty_signals __P((void));
+
+/* terminal.c */
+extern void _rl_get_screen_size __P((int, int));
+extern int _rl_init_terminal_io __P((const char *));
+#ifdef _MINIX
+extern void _rl_output_character_function __P((int));
+#else
+extern int _rl_output_character_function __P((int));
+#endif
+extern void _rl_output_some_chars __P((const char *, int));
+extern int _rl_backspace __P((int));
+extern void _rl_enable_meta_key __P((void));
+extern void _rl_control_keypad __P((int));
+
+/* util.c */
+extern int rl_alphabetic __P((int));
+extern int _rl_abort_internal __P((void));
+extern char *_rl_strindex __P((const char *, const char *));
+extern int _rl_qsort_string_compare __P((char **, char **));
+extern int (_rl_uppercase_p) __P((int));
+extern int (_rl_lowercase_p) __P((int));
+extern int (_rl_pure_alphabetic) __P((int));
+extern int (_rl_digit_p) __P((int));
+extern int (_rl_to_lower) __P((int));
+extern int (_rl_to_upper) __P((int));
+extern int (_rl_digit_value) __P((int));
+
+/* vi_mode.c */
+extern void _rl_vi_initialize_line __P((void));
+extern void _rl_vi_reset_last __P((void));
+extern void _rl_vi_set_last __P((int, int, int));
+extern int _rl_vi_textmod_command __P((int));
+extern void _rl_vi_done_inserting __P((void));
+
+/*************************************************************************
+ * Undocumented private variables					 *
+ *************************************************************************/
+
+/* bind.c */
+extern const char *_rl_possible_control_prefixes[];
+extern const char *_rl_possible_meta_prefixes[];
+
+/* complete.c */
+extern int _rl_complete_show_all;
+extern int _rl_complete_mark_directories;
+extern int _rl_print_completions_horizontally;
+extern int _rl_completion_case_fold;
+
+/* display.c */
+extern int _rl_vis_botlin;
+extern int _rl_last_c_pos;
+extern int _rl_suppress_redisplay;
+extern char *rl_display_prompt;
+
+/* isearch.c */
+extern unsigned char *_rl_isearch_terminators;
+
+/* macro.c */
+extern int _rl_defining_kbd_macro;
+extern char *_rl_executing_macro;
+
+/* readline.c */
+extern int _rl_horizontal_scroll_mode;
+extern int _rl_mark_modified_lines;
+extern int _rl_bell_preference;
+extern int _rl_meta_flag;
+extern int _rl_convert_meta_chars_to_ascii;
+extern int _rl_output_meta_chars;
+extern char *_rl_comment_begin;
+extern unsigned char _rl_parsing_conditionalized_out;
+extern Keymap _rl_keymap;
+extern FILE *_rl_in_stream;
+extern FILE *_rl_out_stream;
+extern int _rl_last_command_was_kill;
+extern int _rl_eof_char;
+extern procenv_t readline_top_level;
+
+/* terminal.c */
+extern int _rl_enable_keypad;
+extern int _rl_enable_meta;
+extern char *_rl_term_clreol;
+extern char *_rl_term_clrpag;
+extern char *_rl_term_im;
+extern char *_rl_term_ic;
+extern char *_rl_term_ei;
+extern char *_rl_term_DC;
+extern char *_rl_term_up;
+extern char *_rl_term_dc;
+extern char *_rl_term_cr;
+extern char *_rl_term_IC;
+extern int _rl_screenheight;
+extern int _rl_screenwidth;
+extern int _rl_screenchars;
+extern int _rl_terminal_can_insert;
+extern int _rl_term_autowrap;
+
+/* undo.c */
+extern int _rl_doing_an_undo;
+extern int _rl_undo_group_level;
+
+#endif /* _RL_PRIVATE_H_ */
new file mode 100644
--- /dev/null
+++ b/readline/rlshell.h
@@ -0,0 +1,34 @@
+/* rlshell.h -- utility functions normally provided by bash. */
+
+/* Copyright (C) 1999 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline 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,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if !defined (_RL_SHELL_H_)
+#define _RL_SHELL_H_
+
+#include "rlstdc.h"
+
+extern char *sh_single_quote __P((char *));
+extern void sh_set_lines_and_columns __P((int, int));
+extern char *sh_get_env_value __P((const char *));
+extern char *sh_get_home_dir __P((void));
+extern int sh_unset_nodelay_mode __P((int));
+
+#endif /* _RL_SHELL_H_ */
new file mode 100644
--- /dev/null
+++ b/readline/rlstdc.h
@@ -0,0 +1,51 @@
+/* stdc.h -- macros to make source compile on both ANSI C and K&R C
+   compilers. */
+
+/* Copyright (C) 1993 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash, the Bourne Again SHell.
+
+   Bash is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   Bash is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if !defined (_RL_STDC_H_)
+#define _RL_STDC_H_
+
+/* Adapted from BSD /usr/include/sys/cdefs.h. */
+
+/* A function can be defined using prototypes and compile on both ANSI C
+   and traditional C compilers with something like this:
+	extern char *func __P((char *, char *, int)); */
+
+#if !defined (__P)
+#  if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
+#    define __P(protos) protos
+#  else
+#    define __P(protos) ()
+#  endif
+#endif
+
+#if !defined (__STDC__) && !defined (__cplusplus)
+#  if defined (__GNUC__)	/* gcc with -traditional */
+#    if !defined (const)
+#      define const __const
+#    endif /* !const */
+#  else /* !__GNUC__ */
+#    if !defined (const)
+#      define const
+#    endif /* !const */
+#  endif /* !__GNUC__ */
+#endif /* !__STDC__ && !__cplusplus */
+
+#endif /* !_RL_STDC_H_ */
new file mode 100644
--- /dev/null
+++ b/readline/rltypedefs.h
@@ -0,0 +1,88 @@
+/* rltypedefs.h -- Type declarations for readline functions. */
+
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline 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,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#ifndef _RL_TYPEDEFS_H_
+#define _RL_TYPEDEFS_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Old-style */
+
+#if !defined (_FUNCTION_DEF)
+#  define _FUNCTION_DEF
+
+typedef int Function ();
+typedef void VFunction ();
+typedef char *CPFunction ();
+typedef char **CPPFunction ();
+
+#endif /* _FUNCTION_DEF */
+
+/* New style. */
+
+#if !defined (_RL_FUNCTION_TYPEDEF)
+#  define _RL_FUNCTION_TYPEDEF
+
+/* Bindable functions */
+typedef int rl_command_func_t __P((int, int));
+
+/* Typedefs for the completion system */
+typedef char *rl_compentry_func_t __P((const char *, int));
+typedef char **rl_completion_func_t __P((const char *, int, int));
+
+typedef char *rl_quote_func_t __P((char *, int, char *));
+typedef char *rl_dequote_func_t __P((char *, int));
+
+typedef int rl_compignore_func_t __P((char **));
+
+typedef void rl_compdisp_func_t __P((char **, int, int));
+
+/* Type for input and pre-read hook functions like rl_event_hook */
+typedef int rl_hook_func_t __P((void));
+
+/* Input function type */
+typedef int rl_getc_func_t __P((FILE *));
+
+/* Generic function that takes a character buffer (which could be the readline
+   line buffer) and an index into it (which could be rl_point) and returns
+   an int. */
+typedef int rl_linebuf_func_t __P((char *, int));
+
+/* `Generic' function pointer typedefs */
+typedef int rl_intfunc_t __P((int));
+#define rl_ivoidfunc_t rl_hook_func_t
+typedef int rl_icpfunc_t __P((char *));
+typedef int rl_icppfunc_t __P((char **));
+
+typedef void rl_voidfunc_t __P((void));
+typedef void rl_vintfunc_t __P((int));
+typedef void rl_vcpfunc_t __P((char *));
+typedef void rl_vcppfunc_t __P((char **));
+#endif /* _RL_FUNCTION_TYPEDEF */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RL_TYPEDEFS_H_ */
new file mode 100644
--- /dev/null
+++ b/readline/rlwinsize.h
@@ -0,0 +1,57 @@
+/* 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 2, 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,
+   59 Temple Place, Suite 330, Boston, MA 02111 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 */
+
new file mode 100644
--- /dev/null
+++ b/readline/savestring.c
@@ -0,0 +1,33 @@
+/* savestring.c  */
+
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline 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,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+extern char *strcpy ();
+extern char *xmalloc ();
+
+/* Backwards compatibility, now that savestring has been removed from
+   all `public' readline header files. */
+char *
+savestring (s)
+     const char *s;
+{
+  return ((char *)strcpy (xmalloc (1 + (int)strlen (s)), (s)));
+}
new file mode 100644
--- /dev/null
+++ b/readline/xmalloc.h
@@ -0,0 +1,46 @@
+/* xmalloc.h -- memory allocation that aborts on errors. */
+
+/* Copyright (C) 1999 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline 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,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if !defined (_XMALLOC_H_)
+#define _XMALLOC_H_
+
+#if defined (READLINE_LIBRARY)
+#  include "rlstdc.h"
+#else
+#  include <readline/rlstdc.h>
+#endif
+
+#ifndef PTR_T
+
+#ifdef __STDC__
+#  define PTR_T	void *
+#else
+#  define PTR_T	char *
+#endif
+
+#endif /* !PTR_T */
+
+extern char *xmalloc __P((int));
+extern char *xrealloc __P((void *, int));
+extern void xfree __P((void *));
+
+#endif /* _XMALLOC_H_ */