changeset 3046:639808eda8eb

[project @ 1997-06-06 22:11:57 by jwe]
author jwe
date Fri, 06 Jun 1997 22:11:59 +0000
parents d2046ca9a380
children 540812544d0d
files readline/doc/history.dvi readline/doc/history.html readline/doc/history.info readline/doc/history.ps readline/doc/readline.0 readline/doc/readline.dvi readline/doc/readline.html readline/doc/readline.info readline/doc/readline.ps
diffstat 9 files changed, 0 insertions(+), 14512 deletions(-) [+]
line wrap: on
line diff
Binary file readline/doc/history.dvi has changed
--- a/readline/doc/history.html	Fri Jun 06 22:08:11 1997 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1062 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from /usr/homes/chet/src/bash/readline-src/doc/hist.texinfo on 16 April 1997 -->
-
-<TITLE>GNU History Library</TITLE>
-</HEAD>
-<BODY>
-<H1>GNU History Library</H1>
-<H2>Edition 2.1, for <CODE>History Library</CODE> Version 2.1.</H2>
-<H2>March 1996</H2>
-<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
-<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
-<P>
-<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>
-675 Massachusetts Avenue, <BR>
-Cambridge, MA 02139 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 Foundation.
-
-</P>
-<P>
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-
-</P>
-
-
-
-<H1><A NAME="SEC1" HREF="history_toc.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>
-
-
-
-<H2><A NAME="SEC2" HREF="history_toc.html#TOC2">Interactive 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 previous history should be used during substitution.
-The second is to select portions of that line for inclusion into the
-current one.  The line selected from the previous history is called the
-<STRONG>event</STRONG>, and the portions of that line that are acted upon are
-called <STRONG>words</STRONG>.  Various <STRONG>modifiers</STRONG> are available to manipulate
-the selected words.  The line is broken into words in the same fashion
-that Bash does, so that several English (or Unix) words
-surrounded by quotes are considered as one word.
-History expansions are introduced by the appearance of the
-history expansion character, which is <SAMP>`!'</SAMP> by default.
-
-</P>
-
-
-
-<H3><A NAME="SEC3" HREF="history_toc.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, <KBD>=</KBD> or <KBD>(</KBD>.
-
-<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_toc.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
-can 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>
-<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_toc.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_toc.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>
-
-
-
-<H2><A NAME="SEC7" HREF="history_toc.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 <STRONG>expansion</STRONG> 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>
-
-
-<H2><A NAME="SEC8" HREF="history_toc.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 struct _hist_entry {
-  char *line;
-  char *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 the current state of the history stuff around. */
-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_toc.html#TOC9">History Functions</A></H2>
-
-<P>
-This section describes the calling sequence for the various functions
-present in GNU History.
-
-</P>
-
-
-
-<H3><A NAME="SEC10" HREF="history_toc.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>()</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>()</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_toc.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>(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, char *line, char *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>()</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>()</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>()</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_toc.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>()</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>()</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>()</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>.  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>()</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_toc.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 position in the history list 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>()</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>()</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_toc.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 <STRONG>anchored</STRONG>,
-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>(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> &#60; 0, then the search is through previous entries,
-else through subsequent.  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>(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> &#60; 0, then the search is through previous
-entries, else through subsequent.  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>(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_toc.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>(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 errno if not.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>read_history_range</B> <I>(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>(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, char *filename)</I>
-<DD><A NAME="IDX30"></A>
-Append the last <VAR>nelements</VAR> of the history list to <VAR>filename</VAR>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>history_truncate_file</B> <I>(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.
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC16" HREF="history_toc.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">Interactive 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 de-slashifying of 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 only 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, 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 broken up as in Bash.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> char * <B>get_history_event</B> <I>(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>(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 white space and on the
-characters <CODE>()&#60;&#62;;&#38;|$</CODE>, and shell quoting conventions are
-obeyed.
-</DL>
-
-</P>
-
-
-<H2><A NAME="SEC17" HREF="history_toc.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 whitespace 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 whitespace, <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> Function * <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 integer 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 NULL.
-</DL>
-
-</P>
-
-
-<H2><A NAME="SEC18" HREF="history_toc.html#TOC18">History Programming Example</A></H2>
-
-<P>
-The following program demonstrates simple use of the GNU History Library.
-
-</P>
-
-<PRE>
-main ()
-{
-  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_toc.html#TOC19">Concept Index</A></H1>
-<P>
-<H2>a</H2>
-<DIR>
-<LI><A HREF="history.html#IDX23">anchored search</A>
-</DIR>
-<H2>e</H2>
-<DIR>
-<LI><A HREF="history.html#IDX2">event designators</A>
-</DIR>
-<H2>h</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_toc.html#TOC20">Function and Variable Index</A></H1>
-<P>
-<H2>a</H2>
-<DIR>
-<LI><A HREF="history.html#IDX7">add_history</A>
-<LI><A HREF="history.html#IDX30">append_history</A>
-</DIR>
-<H2>c</H2>
-<DIR>
-<LI><A HREF="history.html#IDX10">clear_history</A>
-<LI><A HREF="history.html#IDX16">current_history</A>
-</DIR>
-<H2>g</H2>
-<DIR>
-<LI><A HREF="history.html#IDX34">get_history_event</A>
-</DIR>
-<H2>h</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>m</H2>
-<DIR>
-<LI><A HREF="history.html#IDX38">max_input_history</A>
-</DIR>
-<H2>n</H2>
-<DIR>
-<LI><A HREF="history.html#IDX21">next_history</A>
-</DIR>
-<H2>p</H2>
-<DIR>
-<LI><A HREF="history.html#IDX20">previous_history</A>
-</DIR>
-<H2>r</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>s</H2>
-<DIR>
-<LI><A HREF="history.html#IDX11">stifle_history</A>
-</DIR>
-<H2>u</H2>
-<DIR>
-<LI><A HREF="history.html#IDX12">unstifle_history</A>
-<LI><A HREF="history.html#IDX4">using_history</A>
-</DIR>
-<H2>w</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 16 April 1997 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
-translator version 1.51.</P>
-</BODY>
-</HTML>
--- a/readline/doc/history.info	Fri Jun 06 22:08:11 1997 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,785 +0,0 @@
-This is Info file history.info, produced by Makeinfo-1.55 from the
-input file /usr/homes/chet/src/bash/readline-src/doc/hist.texinfo.
-
-   This document describes the GNU History library, a programming tool
-that provides a consistent user interface for recalling lines of
-previously typed input.
-
-   Copyright (C) 1988, 1991, 1993, 1995, 1996 Free Software Foundation,
-Inc.
-
-   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: history.info,  Node: Top,  Next: Using History Interactively,  Prev: (DIR),  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
-
-Interactive 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 previous history should be used during
-substitution.  The second is to select portions of that line for
-inclusion into the current one.  The line selected from the previous
-history is called the "event", and the portions of that line that are
-acted upon are called "words".  Various "modifiers" are available to
-manipulate the selected words.  The line is broken into words in the
-same fashion that Bash does, so that several English (or Unix) words
-surrounded by quotes are considered as one word.  History expansions
-are introduced by the appearance of the history expansion character,
-which is `!' by default.
-
-* 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 can
-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.
-
-`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.
-
-
-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 struct _hist_entry {
-       char *line;
-       char *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 the current state of the history stuff around. */
-     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 ()
-     Begin a session in which the history functions might be used.  This
-     initializes the interactive variables.
-
- - Function: HISTORY_STATE * history_get_history_state ()
-     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 (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, char *line,
-          char *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 ()
-     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 ()
-     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 ()
-     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 ()
-     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 ()
-     Returns the offset of the current history element.
-
- - Function: HIST_ENTRY * current_history ()
-     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'.  If there is no entry there, or if OFFSET is
-     greater than the history length, return a `NULL' pointer.
-
- - Function: int history_total_bytes ()
-     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 position in the history list to POS, an absolute index
-     into the list.
-
- - Function: HIST_ENTRY * previous_history ()
-     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 ()
-     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 (char *string, int direction)
-     Search the history for STRING, starting at the current history
-     offset.  If DIRECTION < 0, then the search is through previous
-     entries, else through subsequent.  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 (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 < 0, then the search is through previous
-     entries, else through subsequent.  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 (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 (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 (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 (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, char *filename)
-     Append the last NELEMENTS of the history list to FILENAME.
-
- - Function: int history_truncate_file (char *filename, int nlines)
-     Truncate the history file FILENAME, leaving only the last NLINES
-     lines.
-
-
-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 de-slashifying of the history expansion
-          character);
-
-    `1'
-          if expansions did take place;
-
-    `-1'
-          if there was an error in expansion;
-
-    `2'
-          if the returned line should only 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, char
-          *string)
-     Extract a string segment consisting of the FIRST through LAST
-     arguments present in STRING.  Arguments are broken up as in Bash.
-
- - Function: char * get_history_event (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 (char *string)
-     Return an array of tokens parsed out of STRING, much as the shell
-     might.  The tokens are split on white space and on the characters
-     `()<>;&|$', 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
-     whitespace and `='.
-
- - Variable: char * history_search_delimiter_chars
-     The list of additional characters which can delimit a history
-     search string, in addition to whitespace, `:' 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: Function * history_inhibit_expansion_function
-     This should be set to the address of a function that takes two
-     arguments: a `char *' (STRING) and an integer 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.
-
-     main ()
-     {
-       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: Top1035
-Node: Using History Interactively1629
-Node: History Interaction2137
-Node: Event Designators3614
-Node: Word Designators4537
-Node: Modifiers5786
-Node: Programming with GNU History6924
-Node: Introduction to History7650
-Node: History Storage8971
-Node: History Functions10064
-Node: Initializing History and State Management11035
-Node: History List Management11827
-Node: Information About the History List13348
-Node: Moving Around the History List14654
-Node: Searching the History List15539
-Node: Managing the History File17371
-Node: History Expansion18877
-Node: History Variables20721
-Node: History Programming Example23039
-Node: Concept Index25643
-Node: Function and Variable Index26124
-
-End Tag Table
--- a/readline/doc/history.ps	Fri Jun 06 22:08:11 1997 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1558 +0,0 @@
-%!PS (but not EPSF; comments have been disabled)
-%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
-%DVIPSParameters: dpi=300, compressed, comments removed
-%DVIPSSource:  TeX output 1997.04.16:1522
-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-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{dup dup 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 dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /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 dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup 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 /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-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 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-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 /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /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
-TeXDict begin 40258431 52099146 1000 300 300 (history.dvi)
-@start /Fa 1 47 df<127012F8A212F012E005057B840E>46 D
-E /Fb 1 47 df<1238127C12FCA212F8127006067A8512>46 D E
-/Fc 25 123 df<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C1C127012E0A3
-EA707C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E0300
-1C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<EA03F8EA0FFE
-EA1C0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>
-I<137EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301EEA383E381FEF
-C0EA07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE0
-0012601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA038EEA070413
-00A3EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA383B38301800
-EA701CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA700F38E00380A4
-38700700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1DFEEA1F86EA1E
-07121CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A2
-0D187C9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38
-133C131C7F38FF1F80A21117809614>107 D<EAFF80A21203B3EAFFFEA20F177E9614>I<
-EAFB8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78EAFDFEEA1F
-86EA1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6
-EA701CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C
-1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218808F14>I<
-EA03E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7EA0007A6EB
-3FE0A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EAFFF0A21110
-7F8F14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA001CEA600612
-E012F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E00A8130EA3
-131CEA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03E71310808F
-14>I<38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311107F8F14>I<38
-FE3F80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<
-EA7E3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E781338487E38FE3F80A2
-11107F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370A25B1201A25B
-A3485A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C1338EA007013E0
-EA01C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I
-E /Fd 1 47 df<1270A212F0126004047D830B>46 D E /Fe 25
-122 df<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA6006A2EA700EEA30
-0CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA7FF80D187D9713>
-I<EA0F80EA1060EA2030EA4038EA803CEAC01C12E01240EA003C1338A21370136013C0EA
-018013001202EA040412081210EA3008EA3FF8127F12FF0E187E9713>I<EA01F8EA0704
-EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEAE0061307A31260
-A2EA7006EA300EEA180CEA0C38EA07E010187F9713>54 D<1240EA7FFF13FEA2EA4004EA
-80081310A2EA00201340A21380120113005AA25A1206A2120EA5120410197E9813>I<EA
-07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03E0EA0CF8EA30
-7CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>I<EA07E0EA1C
-30EA3018EA700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07C7EA00071306
-130E130C12701318EA6030EA3060EA0F8010187F9713>I<39FFE1FFC0390E001C00AB38
-0FFFFC380E001CAC39FFE1FFC01A1A7F991D>72 D<EA0FC2EA1836EA200EEA600612C013
-02A3EAE0001270127EEA3FE0EA1FF8EA03FCEA007E130E130713031280A3EAC0021306EA
-E004EAD818EA87E0101A7E9915>83 D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C12
-38127012E01480A2133CEA705F381F8F0011107F8F13>97 D<EA07F8EA1C1C1238EA7008
-13005AA612701304EA3808EA1C18EA07E00E107F8F11>99 D<133F1307A9EA03E7EA0C17
-EA180F487E127012E0A6126012706C5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30
-EA30181270EA600C12E0EAFFFCEAE000A41260EA7004EA3808EA1C18EA07E00E107F8F11
->I<EA0FCF3818718038303000EA7038A4EA30306C5AEA2FC00060C7FCA21270EA3FF013
-FC6C7EEA600FEAC003A4EA6006EA381CEA07E011187F8F13>103
-D<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218123CA212
-181200A612FC121CAE12FF081A80990A>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF0
-1410808F15>110 D<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA38
-1CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C0
-1480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<EAFC78EA1D9CEA1E1C1308
-EA1C00ABEAFF800E10808F0F>114 D<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0
-EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238
-EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38FF0F80383C0700EA1C06
-1304A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>118
-D<38FE3F80383C1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181C
-EA381E38FC3FC012107F8F14>120 D<38FF0F80383C0700EA1C061304A26C5AA26C5AA3
-EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I
-E /Ff 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012
-F0AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E /Fg 27
-123 df<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80
-B6FCA2380FC01FB2397FF8FFF0A21C237FA220>12 D<90380FFF80137F3801FC1F3803F0
-3FEA07E0EA0FC0141FA7B6FCA2380FC01FB2397FF8FFF0A21C237FA220>I<EA07FE381F
-FF80383F07E06D7E130180121E1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA7C02EA
-7E0C391FF87F803807E03F19167E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF03EEBC0
-1F9038800F8015C0140715E0A715C0A2140F15809038C01F00381E707E381C3FFC38180F
-E01B237EA220>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6
-127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<49B4FCA2EB00
-3FAB13FE3807FFBF380FC1FF48C67E003E7F127E127CA212FCA7127C127E123E6C5B380F
-81FF3907FF3FE0EA01FC1B237EA220>I<13FE3807FF80380F83C0381E01E0383E00F012
-7E007C13F8147812FCB512F8A200FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0
-C6130015167E951A>I<EB1F80EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC000A6EA
-FFFEA2EA0FC0B2EA7FFCA214237EA212>I<9038FE0F803903FF9FC0380F83E3381F01F3
-391E00F000003E7FA5001E5BEA1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C38
-1FFFE014FC6C13FF7E001F1480397C001FC00078130F00F81307A3007CEB0F806CEB1F00
-381F807E6CB45A000113E01A217F951D>I<B47EA2121FABEB83F0EB8FFCEB987EEBA03E
-EBC03FA21380AE39FFF1FFE0A21B237DA220>I<121E123FEA7F80A4EA3F00121EC7FCA6
-EAFF80A2121FB2EAFFF0A20C247EA30F>I<B47EA2121FABECFF80A2EC3C00143014E0EB
-81C00183C7FC1386139E13BE13FFEBDF80EB8FC01307806D7E6D7E130080147E39FFE1FF
-C0A21A237EA21E>107 D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F803F890
-390FFE0FFE3A1F183F183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0
-A22C167D9531>I<38FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B
-167D9520>I<13FF000713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C13
-3E007E137E003E137C6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBF
-FC381FF07EEBC01F9038800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEB
-BFFCEB8FE00180C7FCA8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF381F00DF
-48137F007E7FA2127C12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8903801
-FFE0A21B207E951E>I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8
-A214167E9518>I<3807F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C
-7E6C1380120738003FC0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E95
-17>I<487EA41203A21207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FE
-EA01F811207F9F16>I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B16
-7D9520>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5A
-A26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FC
-A23A1F807C00E0D80FC014C08001E013010007017F1380A2D803F0EB0300ECCF8301F813
-87D801F913C61487D800FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026
-167F9529>I<39FFF07FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7
-FC7F6D7E497EEB37E0EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B
-167F951E>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C
-5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305B
-EA69C0EA7F80001FC8FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E013
-8038C03F005B137EC65A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA
-7E03B5FCA214167E9519>I E /Fh 24 119 df<13E0A538F0E1E0EAFCE7387EEFC0381F
-FF00EA07FCEA01F0EA07FCEA1FFF387EEFC038FCE7E0EAF0E13800E000A513157D991A>
-42 D<1338137CA2136C13EEA313C6A2EA01C7A438038380A4380701C0A213FFA24813E0
-EA0E00A4481370387F01FC38FF83FE387F01FC171E7F9D1A>65 D<B512F8A3381C0038A5
-1400A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA3161E7E9D1A>69
-D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7FCA8EA7FE012
-FF127F161E7F9D1A>I<38FF83FEA3381C0070AA381FFFF0A3381C0070AB38FF83FEA317
-1E7F9D1A>72 D<B51280A33801C000B3A6B51280A3111E7C9D1A>I<38FE03FE12FFA238
-1D8070A213C0121CA213E0A213601370A213301338A21318131CA2130C130EA21306A213
-071303A238FF81F0A21380171E7F9D1A>78 D<EA0FFE383FFF804813C0EA7C07EA700100
-F013E0EAE000B1EAF001A2007013C0EA7C07EA7FFF6C1380380FFE00131E7D9D1A>I<EA
-FFFC13FF1480381C07C0EB01E0EB00F01470A414F0EB01E0EB07C0381FFF801400148038
-1C07C01301EB00E0A514E214E7A338FF807EA21438181E7F9D1A>82
-D<3803F1C0EA0FFDEA3FFFEA7C0FEA700312E01301A390C7FC12701278123FEA1FF0EA07
-FE3800FF80EB0FC0EB01E013001470A2126012E0A214E0EAF00138FC03C0B5128000EF13
-00EAE3FC141E7D9D1A>I<387FFFFEB5FCA238E0380EA500001300B33803FF80A3171E7F
-9D1A>I<38FF01FEA3381C00706C13E0A2380701C0A213830003138013C700011300A2EA
-00EEA2137CA21338AA48B4FCA3171E7F9D1A>89 D<387FFFC0B512E0A26C13C013047D7E
-1A>95 D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA3F83EA7803
-127012E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97
-D<EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E38
-1F01F0380FFFE0000313C03800FE0014157D941A>99 D<EB1FC0A31301A6EA01F1EA07FD
-EA0FFFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA
-01F1161E7E9D1A>I<12FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FF
-E3FE13E713E3171E7F9D1A>104 D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF
-80B512C06C1380121F7C9E1A>I<EAFE3EEBFF80B512C0EA0FC1EB80E01300120EAC38FF
-E3FE13E713E317157F941A>110 D<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA
-700138E000E0A6EAF001007013C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F01315
-7D941A>I<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC
-7E17157F941A>114 D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF
-6C1380EB3F00141C7F9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7EEA00
-FC17157F941A>I<387FC7FC00FF13FE007F13FC380E00E0A3380701C0A338038380A338
-01C700A3EA00EEA3137CA2133817157F941A>I E /Fi 41 123 df<EB07FCEB3FFF9038
-FE0780D803F013C03807E00FA2EA0FC0A3EC030091C7FCA3EC7FE0B6FCA2380FC007B3A2
-39FFFC7FFEA21F267FA522>12 D<123C127E12FFA4127E123C08087C8711>46
-D<131C133C13FC12FFA21200B3AA387FFFFCA216237CA21F>49 D<48B4FC000713C0381E
-07F0383803F8386001FC387C00FE12FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14
-F8EB03F0EB07E01480EB0F00131E5B1370EBE003EA01C038038007380700061206380FFF
-FE5A5A4813FCB5FCA218237DA21F>I<48B4FC000713E0381E03F0383801F8003C13FC38
-7E00FEA3123EEA1C01000013FCA2EB03F8EB07F0EB0FC03801FF00A2380007E0EB01F014
-F8EB00FC14FE14FFA21210127C12FEA214FEA2387C01FC007013F8383E07F0380FFFC000
-01130018237DA21F>I<14381478A214F81301130313071306130C131C13381330136013
-E0EA01C01380EA03005A120E5A12185A12705AB612C0A2390001F800A790387FFFC0A21A
-237EA21F>I<0018130C001F137CEBFFF814F014E014C01480EBFC000018C7FCA513FF00
-1B13E0381F03F0381C00F8000813FCC7127EA3147FA2127812FCA3147E5A006013FC1270
-383801F8381E07E03807FFC03801FE0018237DA21F>I<EB1FC0EB7FF03801F0383803E0
-0C3807803E000F137EEA1F005AA2007E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB
-007C147E5A147FA4127EA4003E137E123F6C137C380F80F83807C1F03803FFC038007F00
-18237DA21F>I<1230123C003FB512C0A215804814005C5C38600018A200E05B485B5CC6
-485AA249C7FC1306130EA25BA2133CA25BA213F8A41201A66C5A13601A257DA41F>I<14
-1CA2143EA3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F1403
-011C7FEB1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C7
-120FA2486E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F800FFED1FC0ED
-07E06F7E6F7E82150082A2167FA31780AA1700A316FEA24B5A5E4B5A4B5AED1FC0EDFF80
-B648C7FC15E029257EA42F>68 D<B7FCA23903F8007FED0F8015071503A21501A3ED00C0
-1406A21600A2140E141EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2
-ED0F80153FB7FCA223257EA428>I<B612FEA23803F800151F8181A281A3ED01801403A2
-92C7FCA25C5C90B5FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512
-E0A23B03F80003F800AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72
-D<B512E0A23803F800B3AFB512E0A213257EA417>I<B512F0A2D803F8C7FCB3A31503A3
-1506A3150EA2151E153E157CEC03FCB6FCA220257EA425>76 D<D8FFF8EDFFF86D5C0003
-EEFE00017EEC037EA36D1406A26D6C130CA26D6C1318A26D6C1330A36D6C1360A26D6C13
-C0A2903900FC0180A291387E0300A3EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA0780
-3CFFFC01C01FFFF8A235257EA43A>I<01FF1380000713E3380F80F7381E001F48130F48
-1307140312F81401A27E91C7FCB4FCEA7FE013FE383FFFE014F86C13FE00077F6C1480C6
-7E010313C0EB003FEC0FE01407A200C01303A315C07E6C13076C14806CEB0F0038FFC03E
-38E3FFF838803FE01B257DA422>83 D<B53B81FFFE01FFF0A23D07F0001FC0000F007013
-066C6C010F5CA26F7E6C6C5EA26D496C1338000017304B7E017F01195CA291388030FE01
-3F5E829139C0607F01011F5E03E0138190280FE0C03F83C7FCA29139F1801FC3010715C6
-17E69139FB000FEE010315EC02FF14FC6D486D5AA24A130301005DA24A130102785CA202
-306D5A3C257FA43F>87 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1F
-FE3803FE7EEA0FC0EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B
-187E971E>97 D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2
-EC01F8A215FCA815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E26
-7FA522>I<EB7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F
-6C130CEA1F80EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC13
-7F3803FFCF380FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380F
-C0EF3903FFCFFC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048
-137C127E147E12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803
-FFE038007F8017187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400
-A7B5FCA2EA0FC0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F
-01393E00F800007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA2123812
-3C383FFFE06C13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00
-381F807E3807FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0F
-C013D89038D007E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4
-EA1F80EA0F00C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FB3B0
-EAFFFCA20E267EA511>108 D<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813
-CC903A9007E803F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80
-FE903883FF80390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>
-I<EB7F803803FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A2
-6CEB3F00A2381F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390F
-FC1FC09038F007E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE090
-38DC1F809038CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF838
-0F8C7CEB90FC13B013A01478EBE0005BAEEAFFFEA216187F9719>114
-D<3807F8C0EA1FFFEA3C07EA7001EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0
-120338001FE01303EAC001A212E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>
-I<13C0A41201A312031207120F121FB512C0A2380FC000AC1460A63807E0C013E13801FF
-8038007E0013237FA218>I<39FFC07FE0A2000F1307B0140FA200071317EBE0673903FF
-C7FE38007F071F187E9722>I<39FFF80FF8A2390FC001C015803907E00300A26D5A0003
-1306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D
-187F9720>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C6C5A00001360EB7EC0
-6D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F3907003F8048131F39FF
-C07FF8A21D187F9720>120 D<39FFF80FF8A2390FC001C015803907E00300A26D5A0003
-1306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA213
-06A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720>I<387FFFF8A2
-387C03F0EA700738600FE000E013C0EB1F80EAC03F1400137EEA00FE5B485A0003130C13
-F0EA07E0120FEBC01C381F8018003F1338387F0078387E01F8B5FCA216187E971B>I
-E /Fj 31 122 df<903803F07C90381E0DC69038380F0FEB701E01E0130EEC0C003801C0
-1CA548485A007FB512C03903803800A448485AA6000E5BA648485A001E7F38FF8FFC2020
-7E9F1B>11 D<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF038038070
-A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>I<903803F03F90
-391E09E0809039380F80C09039701F01E0EBE03E021E13C02601C01CC7FCA548485A007F
-B612803903803803A43A0700700700A6000EEBE00EA64848485A001EEBE01E3AFF8FF8FF
-C023207E9F26>14 D<13201360A4383061C0383C4380380E4E00EA0778EA01E0A2EA07B8
-EA1C9CEA708FEAE083EA0180A490C7FC12147AA117>42 D<EAFFF0A20C027E8A0F>45
-D<13181338EA01F8EA0E701200A513E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B
-9D17>49 D<EB3F80EBC1E038010070000213785AA2000F137C1380A2EB00781206C712F8
-14F0EB01E014C0EB0380EB0700130E5B5B13605B485A380300201206000813405A383FFF
-C0481380B5FC161E7E9D17>I<13FFEA01FE1380A5EA0300A61206A65AA65AA65AA65AA6
-B4FCA2102D7EA10D>91 D<13FFEA01FEEA0006A5130CA61318A61330A61360A613C0A6EA
-0180A6EAFF00A2102D82A10D>93 D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7
-EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F878014147D9317>97
-D<13FEEA0383380E0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA
-07E011147D9314>99 D<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121C
-EA3C00383801C0127812F0A438E00380A412F0EA700738380F00381C37803807C7E01520
-7D9F19>I<13F8EA070EEA0E07121C383803801278127012F0A2B5FC00F0C7FC5AA46C5A
-EA7002EA3004EA1C18EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC000
-1201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E
-11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA2
-1218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0381C0700EA07FC18
-1F809417>I<13E0120712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713
-E01300A5380E01C0A6381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213
-C0EA0180C7FCA6EA0380121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>
-I<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C
->108 D<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5
-000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0
-EA07A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E
-9319>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C01303
-00F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383800F01C497E
-140F48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90C8FCA3
-120EA4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C003813C012
-7812F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4131EEB
-FFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120EA65A12
-1EEAFFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13F0EA07
-FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<1380EA
-0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>
-I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011
-147B9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA
-039013A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C03006014
-8015401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A2
-6C485A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE1
-80EB73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE
-07FC18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C1370
-5CA20171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E6
-1278191D809318>I E /Fk 36 122 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F
-1200B3B1007FB512F0A31C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C039
-1E003FE00038EB1FF0007CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307
-C7FC15FCA2EC0FF8A215F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC01
-1E130E5B133849131E49131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28
->I<1578A215FCA34A7EA24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F0278
-7FEC700FA202E07F1507010180ECC003A249486C7EA201078191C7FC498191B6FCA24981
-011CC7123F013C810138141FA24981160F01F081491407A2484881486C1403B549B512FC
-A336317DB03D>65 D<B712C016FC16FFD801FEC77FEE7FE0707E161F707EA2831607A416
-0FA25FA24C5A4C5A4C5A4B485ADB1FFEC7FC90B65AEEFF8049C7EA3FE0EE0FF0EE07FCA2
-707E83821880A718005E5F16074C5A4C5AEEFFF0B812C094C7FC16F831317DB039>I<91
-3A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9
-FF807F4848C8127F4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7
-FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C
-6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F8020313
-8031317CB03A>I<B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A215
-07A21700A35D5D5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70
-D<DA03FF1303027FEBF00749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49
-487F4848C87E485A0007824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B5
-12F8127F7FDB00011300123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497E
-D907FFEB3E3F01019038FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B6D8807FB512
-C0A3C60180C7387FC000B391B7FCA30280C7127FB3A3B6D8807FB512C0A33A317EB03F>
-I<B61280A3C6EB8000B3B3A7B61280A319317EB01E>I<B56C49B512C08080C66D903900
-03E0006E6E5AEBEFFC13E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E
-16806E13C0ED7FE0ED3FF0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1
-EE1FF9EE0FFD160717FF828282177F173FA2171F170F486C1507B500E014031701A23A31
-7EB03F>78 D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FF
-A717FEA2EE07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB0
-37>80 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3
-481603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C738
-07C000715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF80
-1FC0023FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C0
-6C17806E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D800107
-5DA26E130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C
-021F133815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238
-317EB03D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA07
-80C7FCA414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F
-800D393FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97
-D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E0
-49EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F8090
-39C3C0FE00903880FFF89038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803
-F0033907E007F8120FEA1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2
-001F14386C7E000714703903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED
-0FC0EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F48
-48133F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01
-FC0F3FFE38007FFEEB0FF027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E0
-3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
-FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
-FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
-1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
-391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
-00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
-121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
-140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
-D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013
-809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E
-487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA
-01F812FFA3120F1207B3B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD9
-3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602
-F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE
-EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F
-2D>I<EB07FC90387FFFC03901FC07F03903F001F848486C7E4848137E001F147F003F15
-8049133F007F15C0A300FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C
-3903F803F83901FE0FF039007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFF
-FC9038FBE07F9039FF003F80D807FEEB1FC049EB0FE04914F0ED07F8A216FC1503A216FE
-A816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3F
-C091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30F
-F0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114
-D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0
-6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13
-1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201
-12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB
-07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007141FB3153FA20003
-147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>I<B5EB1FFCA3D80F
-F8EB03C0000715806D1307000315007F0001140E7F6C5CA2EC803C017F1338ECC078013F
-1370ECE0F0011F5B14F1010F5B14F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478
-A226207E9F2B>I<B53A1FFFE03FF8A33C0FF000FE0007806D150300076EEB0700816D5D
-00039138FF800EA26C6C486D5A15DF01FF153C6C9039038FE038A2D97F876D5A150702C7
-14F0D93FCF6D5AECCE03D91FFEEBF9C09138FC01FD16FF010F5D4A7EA26D486DC7FCA201
-03147E4A133EA26D48131C35207E9F3A>I<3A7FFF807FFCA33A03FC000F006C6C131E6C
-6C5BEC803890387FC078013F5B90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E
-81815B903803DFE09038078FF08190380F07FC90381E03FEEB3C01496C7E4914804848EB
-7FC00003EC3FE026FFFC01B5FCA328207F9F2B>I<B5EB1FFCA3D80FF8EB03C000071580
-6D1307000315007F0001140E7F6C5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B
-14F1010F5B14F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478A21470A214F05C13
-01007C5BEAFE035C49C8FC5BEAFC1EEA787CEA3FF0EA0FC0262E7E9F2B>I
-E /Fl 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C0
-00061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C
-1530A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090
-C7FC282B7EA02D>13 D E /Fm 46 122 df<123C127FEAFF80A213C0A3127F123E1200A2
-EA0180A3EA0300A21206120E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00
-A2121C09097B8813>46 D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277B
-A622>49 D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15
-E0140FA2127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E
-4913E013705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB
-7F803803FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C
-495AEB07F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F
-481480007CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C
-5BA2EB03BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12
-F0B612F8A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C
-5C14C091C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215
-E0A21218127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C61380
-1B277DA622>I<1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5C
-C6485AA2495A130791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297C
-A822>55 D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA20103
-7F1480A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F08049
-1303000181491301A2000381D8FFFE013F13FCA32E297EA833>65
-D<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0
-150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA6
-16FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>I<91387FE003903907FF
-FC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F48
-5A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C
-6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831>
-I<B712E0A33903FC001FED07F01501A215001670A3913801C0781638A302031300A2140F
-90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB7
-12F0A327297EA82C>69 D<B712C0A33903FC003FED0FE015031501A21500A316F0913801
-C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A
->I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848
-80484880484880485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7E
-A26C7E6C7E6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297C
-A835>I<B5D8F00FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA3
-30297EA835>I<B512F0A33803FC00B3B1B512F0A314297EA819>I<D8FFFE92383FFF80A2
-6D5D0003EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D9
-83F8130EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A29138
-0FE380A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>
-77 D<D8FFFCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF
-01801380147F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1
-ED1FF1150F16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A23029
-7EA835>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA716FC150316
-F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>80
-D<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC0
-90B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA21503923801FC1CB538F0
-00FEEE7FF8EE0FE02F297EA832>82 D<9038FF80600003EBF0E0000F13F8381F80FD383F
-001F003E1307481303A200FC1301A214007EA26C140013C0EA7FFCEBFFE06C13F86C13FE
-80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E01303A46C14E0A26C1307
-6C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA825>I<B500F0EBFFFEA3
-D803FCC7EA0380B3AA0001ED07007F0000150E137F6D143CD91FC05B90390FF003F06DB5
-5A01001480DA1FFCC7FC2F297EA834>85 D<B500F0EB7FFFA3D803FEC7EA01C00001ED03
-80A26D14076C16006E5B017F140E80013F5CA26E133C011F14386E1378010F1470800107
-5CA26D6C485AA2ECFE0301015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA2
-6E5AA36E5AA26E5AA230297FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000
-A26D6D7E000160A26D6E13016C604B138002801503017F5F4B13C0D93FC0013F49C7FCA2
-913AE00E1FE00F011F160E17F09126F01C0F131E010F161C033C13F8902707F838075BA2
-037813FC902703FC70035BA2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA3
-6EC76CC8FCA2023E80021E141EA242297FA845>I<3803FF80000F13F0381F01FC383F80
-FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E
-13DF393F839FFC381FFE0F3803FC031E1B7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EF
-FF809038FE07E09038F803F09038F001F89038E000FCA2157EA2157FA8157EA315FCA290
-38F001F89038F803F090389C0FE090380FFF80390E01FC00202A7EA925>I<EB3FF03801
-FFFC3803F03E380FC07FEA1F80EA3F00A248133E007E90C7FCA212FEA7127EA2127F6CEB
-03801380001FEB0700380FE00E3803F83C3801FFF838003FC0191B7E9A1E>I<EC7FF0A3
-1407ACEB3F873801FFF73807F03F380FC00F381F8007EA3F00A2127EA312FEA8127EA27E
-A2381F800F380FC01F3907E07FFF3801FFE738007F87202A7EA925>I<EB3FC03801FFF0
-3803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2B6FCA248C8FCA3127E
-A2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB3FE01A1B7E9A1F>I<
-EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207143E1400A7B512C0A33807F000B3A338
-7FFF80A3182A7EA915>I<9038FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003E
-EB3E10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFFE00018138090C8FC12
-38A2123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007CEB01F8481300A4007C
-EB01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>I<EAFFE0A3120FAC
-147E9038E1FF809038E30FC001E413E0EBE80701F813F013F0A213E0B039FFFE3FFFA320
-2A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120F
-B3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108
-D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039C803F200
-01D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC07E9038C1
-FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA3201B7D9A25
->I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0393F0007E0A2007EEB03F0A300
-FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907F07F003801FFFC38003F
-E01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F001F801E013FC
-140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0FE09038EFFF80
-9038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC63E380FCC7F13
-D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 D<3803FE30380FFFF0EA3E03EA78
-00127000F01370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6FCEB07FC
-130000E0137C143C7E14387E6C137038FF01E038E7FFC000C11300161B7E9A1B>I<13E0
-A41201A31203A21207120F381FFFE0B5FCA2380FE000AD1470A73807F0E0000313C03801
-FF8038007F0014267FA51A>I<39FFE07FF0A3000F1307B2140FA2000713173903F067FF
-3801FFC738007F87201B7D9A25>I<39FFFC03FFA3390FF000F0000714E07F0003EB01C0
-A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA36D5A
-A26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE00FE001C02607F007EB0380A201F8
-EBF00700031600EC0FF801FC5C0001150EEC1FFC2600FE1C5B15FE9039FF387E3C017F14
-38EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2EC800701075CA22E1B7F9A31>I<
-39FFFC1FFEA33907F003803803F8079038FC0F003801FE1E00005BEB7F3814F86D5A6D5A
-130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F803901E01FC0D803C013E0EB800F
-39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF000F0000714E07F0003EB01C0A2EB
-FC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA36D5AA26D
-5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5BEA74F0EA3FE0EA0F8020277F9A23
->I E /Fn 75 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
-3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
-A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
-7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
-12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
-123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
-EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
-24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
-C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
-FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
-7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
-123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
-A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
-14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
-1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
-0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
-00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
-431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
-C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
-485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
-071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
-D<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC
-38FE078038F803C0EAF001EB00E05A7E1270A3383801C0EA3C03381E0780380FFF006C5A
-EA01F8131C7E9B18>54 D<1230127812FCA2127812301200A81230127812FCA212781230
-0614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E12
-1C123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07
-F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E013
-03EB00C013187E9918>I<387FFFC0B512E0A3C8FCA4B512E0A36C13C0130C7E9318>I<12
-6012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE
-00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA
-700F38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A
-111C7D9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA0E
-03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65 D<EA7FF8EAFFFE6C7E381C
-0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114C01303EB0F80387FFF0048
-5AEA7FF8141C7F9B18>68 D<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390
-C7FCA21438A5B512F8A3151C7F9B18>I<B512F8A3381C0038A41400A21307A3EA1FFFA3
-EA1C07A390C7FCA7EAFFC0A3151C7F9B18>I<387F07F038FF8FF8387F07F0381C01C0A9
-EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>72
-D<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<EAFFC0A300
-1CC7FCB114E0A5B5FCA3131C7E9B18>76 D<387E07F038FF0FF8387F07F0381D81C0A313
-C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C
-7F9B18>78 D<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF001007013
-C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013
-001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA7F
-F8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380
-A5149CA3387F01F8EAFF81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0FEA70
-03EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A21260
-12E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E0
-7038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F0138
-0783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03381C01C0EA1E
-03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C5A15
-1C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>91
-D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F12007F
-1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<EAFFF8A3EA00
-38B3ACEAFFF8A30D247F9F18>I<EA0180EA07C0EA1FF0EA7EFCEAF83EEAE00E0F067C9B
-18>I<387FFFC0B512E0A26C13C013047E7F18>I<1206121E123E12381270A212E0A312F8
-12FC127CA21238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF12
-07121FEA7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E
-12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80
-E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838
-030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<
-EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007
-A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA
-3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF80
-00071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0
-B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00
-487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F03870
-0070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE12
-7E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC17
-1C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C
-18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>108 D<38F9C1C038FFF7F013FF383E3E
-38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E1714809318>I<EA7E3E38FEFF80007F13
-C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC1714809318>I<EA01F0EA0F
-FE487E383E0F80EA3803387001C0A238E000E0A5EAF001007013C0EA7803383C0780EA3E
-0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF80007F13C0380FC1E01380EB00
-70120E1438A6000F1370A2EB80E013C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0487E6C
-5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2
-EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38
-FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>I<
-EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1FFCEA03FEEA001F38600780EAE0
-03A212F038F80F00B5FC13FCEAE7F011147D9318>I<487E1203A4387FFFC0B5FCA23803
-8000A9144014E0A33801C1C013FF6C1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E
-07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714809318>I<387F8FF000FF13F8
-007F13F0381C01C0380E0380A338070700A3138FEA038EA3EA01DCA3EA00F8A213701514
-7F9318>I<38FF07F8138F1307383800E0A4381C01C0137113F9A213D9EA1DDD000D1380
-A3138DEA0F8FA23807070015147F9318>I<387F8FF0139F138F380F0700EA078EEA039E
-EA01DC13F81200137013F07FEA01DCEA039E138EEA0707000E1380387F8FF000FF13F800
-7F13F015147F9318>I<387F8FF000FF13F8007F13F0380E01C0EB0380A21207EB0700A2
-EA0387A2138EEA01CEA213CC120013DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC
-121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB078038000F00131E5B13F8485A
-EA03C0485A380F0070121E5A5AB512F0A314147F9318>I<EB07E0131F137FEB780013E0
-AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE0131F130713247E9F18>I<126012
-F0B3B012600424769F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0
-005BABEA03C012FF90C7FC127C13247E9F18>I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA
-60C00F067C9B18>I E /Fo 74 123 df<90381F83E09038F06E303901C07878380380F8
-903800F03048EB7000A7B612803907007000B2383FE3FF1D20809F1B>11
-D<133FEBE0C0EA01C0380381E0EA0701A290C7FCA6B512E0EA0700B2383FC3FC1620809F
-19>I<EB3FE013E0EA01C1EA0381EA0700A8B5FCEA0700B2383FE7FC1620809F19>I<9038
-1F81F89038F04F043901C07C06390380F80FEB00F05A0270C7FCA6B7FC3907007007B23A
-3FE3FE3FE02320809F26>I<EA7038EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008
-A2EA2010EA40200F0E7F9F17>34 D<127012F812FCA212741204A31208A21210A2122012
-40060E7C9F0D>39 D<13401380EA01005A12061204120C5AA212381230A212701260A412
-E0AC1260A412701230A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12
-407E12307E1208120C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A
-120812185A12205A5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240
-050E7C840D>44 D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<EA03F0EA
-0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA780700381300EA1806EA
-1C0E6C5AEA03F0121F7E9D17>48 D<13801203120F12F31203B3A6EA07C0EAFFFE0F1E7C
-9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803A3EA200712001480
-A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5FC121E7E
-9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12001400A2131E131C13
-70EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240EB0F00EA200EEA18
-3CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202A2120412
-08A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803EA1FFE5B
-5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012F0A200E0
-13801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA0701380E03
-80EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F0
-13C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE0
-14C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A
-131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F
-06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA
-600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E13071270
-EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB07001230EA78
-06130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA127012F8
-A3127005147C930D>I<127012F8A312701200AA127012F012F8A212781208A31210A312
-20A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03E
-EB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F
-9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F
-80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE01090
-38381C309038E002703803C00139078000F048C71270121E15305A1510127C127800F814
-00A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C
-217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8
-153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B6128038
-0F000F14031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A3
-1540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C015
-40A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<9038
-0FE0109038381C309038E002703803C00139078000F048C71270121E15305A1510127C12
-7800F81400A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903C001703900E00230
-9038380C1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39
-FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<EAFFF8EA0F8090C7
-FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0
-A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3
-EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F80
-03E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F0
-1478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB7038
-3801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8
-147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C06C14803903800700
-3801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A415
-80A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E
-48487E39070003804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F814
-7CA900781478007C14F8A2003C14F0383E0781391E0841E0390F1023C000071480390390
-17003801D01E3900783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E29
-7E9F23>I<B57E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070
-A280143CA3143EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>I<3803F0
-40380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4FC00
-071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C60300
-EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C01430008014
-10A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3A46C
-EB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE391F80
-00F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB7804
-A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF81FF0
-3B1F000FC007C06C903907800180170015C001805C00071502EC09E013C000035DEC19F0
-1410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090383D
-000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<12FFA212C0
-B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA8040A3EAB85CEA
-FC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80A10D>I<120812
-101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96 D<EA1FE0EA3030EA7818
-131CEA300E1200A313FEEA078EEA1E0E1238127800F01310A3131E127838386720380F83
-C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00C0001C13E01470A21478
-A6147014F014E0001E13C0381A018038198700EA107C15207E9F19>I<EA01FCEA0706EA
-1C0F123813060078C7FC127012F0A61270127800381380A2381C0100EA0706EA01F81114
-7F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112381278127012F0A61270
-A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA0E1C487E487EA21270EB
-038012F0A2B5FC00F0C7FCA31270A26C1380A2381C0100EA0706EA01F811147F9314>I<
-137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE01020809F0E>I<14E038
-03E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33E00020C7FCA21230A2
-EA3FFE381FFF8014C0383001E038600070481330A4006013606C13C0381C03803803FC00
-141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A2121CAE38FF8FF014207E
-9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F9E0C>I<13E0EA01F0A3
-EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA6180EA3F000C28829E0E>
-I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0EA1DF0EA1E70EA1C3813
-3C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC121CB3ABEAFF8009207F
-9F0C>I<391C3E03E039FCC30C30391D039038391E01E01CA2001C13C0AE3AFF8FF8FF80
-21147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF8FF014147E9319>I<EA01
-F8EA070E381C0380383801C0A2387000E0A200F013F0A6007013E0A2383801C0A2381C03
-8038070E00EA01F814147F9317>I<EA1C7CEAFD87381E018014C0381C00E014F0147014
-78A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FCA8B47E151D7E9319>I<38
-01F04038070CC0EA0E02EA1C03EA38011278127012F0A6127012781238EA1C03EA0C05EA
-0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18EA1E3CA21318EA1C00AEEA
-FFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000127CEA3FE0EA1FF0EA07F8
-EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F9312>I<1202A31206A212
-0EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F9B12>I<381C0380EAFC1F
-EA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8383E00E0001C13C06C13
-80A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3132015147F9318>I<39
-FF9FE1FC393C078070391C030060EC8020000E1440A214C0D80704138014E0A239038861
-001471A23801D032143A143E3800E01CA2EB6018EB40081E147F9321>I<38FF87F8381E
-03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F01370137813F8139CEA010E1202
-EA060738040380000C13C0003C13E038FE07FC16147F9318>I<38FF83F8383E00E0001C
-13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A31320A25BA3EA
-F080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260EA401C133813781370EA
-00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006130EEAFFFE10147F9314
->I E /Fp 13 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC
-00FE0F010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9
-121F485A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB6128012
-7FA27FDC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C
-6D01C0EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC
-413D7BBB4C>71 D<B6D8F803B612E0A426007FF0C70001EBC000B3A491B8FCA402F0C712
-01B3A7B6D8F803B612E0A4433B7CBA4C>I<B612FEA426007FF0C9FCB3ADEF03C0A51707
-1880A3170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>76
-D<B500F00207B512E0808080D8007F92390007E0006E6F5A81017B7F81137901787F6E7E
-6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F7E816F13806F13C017E06F13F081EE
-7FF8EE3FFC17FEEE1FFF827013837013C318E37013F382EF7FFBEF3FFFA283838383A283
-83187F183FA201FC161FB500FC150F18071803A2433B7CBA4C>78
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EA01E0EA
-07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512F0A4143D
-7DBC1A>105 D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE0D807F8EB0FF0
-48486D7EA248486D7E003F81A248486D7EA400FF1680A9007F1600A36C6C495AA2001F5D
-6D1307000F5D6C6C495AD803FEEB3FE03A00FF80FF806DB5C7FC010F13F8010113C02926
-7DA530>111 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000
-035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
-0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
-07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
-12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
-B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
-01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
-7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
-C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
-1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
-1FFCEA07F02E377EA533>121 D E end
-TeXDict begin
-
-1 0 bop 0 693 a Fp(GNU)33 b(History)f(Library)p 0 743
-1950 17 v 1035 791 a Fo(Edition)16 b(2.1,)e(for)h Fn(History)f(Library)
-g Fo(V)l(ersion)i(2.1.)1718 845 y(Marc)o(h)e(1996)0 2467
-y Fm(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)
--6 b(oundation)0 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6
-b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)p 0 2570
-1950 9 v eop
-2 1 bop 0 320 a Fo(This)16 b(do)q(cumen)o(t)g(describ)q(es)h(the)f(GNU)
-f(History)g(library)l(,)h(a)g(programming)e(to)q(ol)i(that)f(pro)o
-(vides)h(a)f(consisten)o(t)0 382 y(user)g(in)o(terface)h(for)e
-(recalling)j(lines)g(of)e(previously)h(t)o(yp)q(ed)g(input.)0
-519 y(Published)h(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)0 582 y(675)g(Massac)o(h)o(usetts)g(Av)o(en)o(ue,)0
-644 y(Cam)o(bridge,)h(MA)g(02139)f(USA)0 781 y(P)o(ermission)f(is)g
-(gran)o(ted)f(to)f(mak)o(e)h(and)h(distribute)h(v)o(erbatim)e(copies)h
-(of)f(this)h(man)o(ual)g(pro)o(vided)g(the)f(cop)o(yrigh)o(t)0
-843 y(notice)k(and)f(this)h(p)q(ermission)h(notice)e(are)g(preserv)o
-(ed)h(on)f(all)h(copies.)0 980 y(P)o(ermission)f(is)f(gran)o(ted)f(to)h
-(cop)o(y)g(and)g(distribute)h(mo)q(di\014ed)h(v)o(ersions)e(of)f(this)i
-(man)o(ual)f(under)h(the)f(conditions)0 1043 y(for)e(v)o(erbatim)g(cop)
-o(ying,)h(pro)o(vided)h(that)d(the)i(en)o(tire)g(resulting)h(deriv)o
-(ed)f(w)o(ork)f(is)h(distributed)h(under)f(the)g(terms)0
-1105 y(of)i(a)g(p)q(ermission)h(notice)g(iden)o(tical)h(to)e(this)g
-(one.)0 1242 y(P)o(ermission)20 b(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)
-f(distribute)i(translations)f(of)f(this)h(man)o(ual)f(in)o(to)h
-(another)f(language,)0 1304 y(under)c(the)f(ab)q(o)o(v)o(e)g
-(conditions)h(for)e(mo)q(di\014ed)j(v)o(ersions,)e(except)g(that)g
-(this)g(p)q(ermission)i(notice)e(ma)o(y)g(b)q(e)h(stated)0
-1366 y(in)h(a)f(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l
-(oundation.)0 2661 y(Cop)o(yrigh)o(t)226 2660 y(c)214
-2661 y Fl(\015)g Fo(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-1 2 bop 0 -58 a Fo(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1157 b(1)0 183 y Fk(1)41 b(Using)14 b(History)h(In)n(teractiv)n
-(ely)62 380 y Fo(This)i(c)o(hapter)e(describ)q(es)j(ho)o(w)d(to)h(use)g
-(the)g(GNU)g(History)f(Library)i(in)o(teractiv)o(ely)l(,)g(from)e(a)g
-(user's)h(stand-)0 442 y(p)q(oin)o(t.)23 b(It)16 b(should)h(b)q(e)f
-(considered)i(a)d(user's)h(guide.)23 b(F)l(or)15 b(information)h(on)g
-(using)h(the)f(GNU)g(History)f(Library)0 505 y(in)h(y)o(our)f(o)o(wn)f
-(programs,)g(see)i(Chapter)e(2)h([Programming)f(with)i(GNU)f(History],)
-f(page)h(5.)0 747 y Fm(1.1)33 b(In)n(teractiv)n(e)16
-b(History)g(Expansion)62 886 y Fo(The)e(History)f(library)h(pro)o
-(vides)g(a)f(history)g(expansion)h(feature)f(that)g(is)g(similar)i(to)d
-(the)i(history)f(expansion)0 948 y(pro)o(vided)j(b)o(y)f
-Fn(csh)p Fo(.)20 b(This)15 b(section)h(describ)q(es)h(the)e(syn)o(tax)g
-(used)g(to)g(manipulate)h(the)g(history)f(information.)62
-1087 y(History)h(expansions)g(in)o(tro)q(duce)g(w)o(ords)f(from)g(the)h
-(history)f(list)i(in)o(to)e(the)h(input)g(stream,)f(making)g(it)h(easy)
-0 1150 y(to)g(rep)q(eat)g(commands,)h(insert)g(the)f(argumen)o(ts)g(to)
-g(a)g(previous)h(command)f(in)o(to)h(the)f(curren)o(t)h(input)g(line,)h
-(or)0 1212 y(\014x)d(errors)g(in)h(previous)g(commands)f(quic)o(kly)l
-(.)62 1351 y(History)c(expansion)i(tak)o(es)d(place)i(in)h(t)o(w)o(o)d
-(parts.)18 b(The)11 b(\014rst)g(is)h(to)f(determine)h(whic)o(h)g(line)h
-(from)e(the)g(previous)0 1413 y(history)h(should)h(b)q(e)f(used)h
-(during)f(substitution.)20 b(The)12 b(second)g(is)h(to)e(select)h(p)q
-(ortions)g(of)g(that)f(line)i(for)f(inclusion)0 1475
-y(in)o(to)f(the)h(curren)o(t)f(one.)18 b(The)12 b(line)h(selected)f
-(from)f(the)g(previous)h(history)g(is)f(called)i(the)e
-Fj(ev)o(en)o(t)p Fo(,)h(and)f(the)h(p)q(ortions)0 1538
-y(of)h(that)f(line)j(that)e(are)f(acted)i(up)q(on)g(are)e(called)j
-Fj(w)o(ords)p Fo(.)k(V)l(arious)13 b Fj(mo)q(di\014ers)j
-Fo(are)d(a)o(v)m(ailable)i(to)d(manipulate)j(the)0 1600
-y(selected)i(w)o(ords.)23 b(The)16 b(line)i(is)f(brok)o(en)f(in)o(to)g
-(w)o(ords)f(in)i(the)g(same)f(fashion)g(that)g(Bash)g(do)q(es,)g(so)g
-(that)g(sev)o(eral)0 1662 y(English)g(\(or)e(Unix\))h(w)o(ords)e
-(surrounded)j(b)o(y)e(quotes)h(are)f(considered)i(as)e(one)h(w)o(ord.)k
-(History)14 b(expansions)h(are)0 1725 y(in)o(tro)q(duced)h(b)o(y)g(the)
-f(app)q(earance)h(of)e(the)i(history)f(expansion)h(c)o(haracter,)e
-(whic)o(h)i(is)g(`)p Fn(!)p Fo(')e(b)o(y)h(default.)0
-1950 y Fi(1.1.1)30 b(Ev)n(en)n(t)16 b(Designators)62
-2089 y Fo(An)g(ev)o(en)o(t)f(designator)g(is)g(a)g(reference)h(to)f(a)g
-(command)g(line)i(en)o(try)d(in)i(the)g(history)f(list.)0
-2243 y Fn(!)216 b Fo(Start)14 b(a)g(history)h(substitution,)g(except)h
-(when)f(follo)o(w)o(ed)g(b)o(y)g(a)f(space,)h(tab,)f(the)h(end)g(of)g
-(the)g(line,)240 2305 y Fn(=)g Fo(or)g Fn(\()p Fo(.)0
-2396 y Fn(!)p Fj(n)191 b Fo(Refer)16 b(to)e(command)h(line)i
-Fj(n)p Fo(.)0 2488 y Fn(!-)p Fj(n)167 b Fo(Refer)16 b(to)e(the)i
-(command)f Fj(n)g Fo(lines)i(bac)o(k.)0 2579 y Fn(!!)192
-b Fo(Refer)16 b(to)e(the)i(previous)f(command.)20 b(This)c(is)g(a)f
-(synon)o(ym)g(for)f(`)p Fn(!-1)p Fo('.)0 2670 y Fn(!)p
-Fj(string)102 b Fo(Refer)16 b(to)e(the)i(most)e(recen)o(t)h(command)g
-(starting)g(with)g Fj(string)p Fo(.)p eop
-2 3 bop 0 -58 a Fo(2)1497 b(GNU)15 b(History)g(Library)0
-183 y Fn(!?)p Fj(string)t Fn([?])240 246 y Fo(Refer)h(to)f(the)g(most)g
-(recen)o(t)g(command)g(con)o(taining)h Fj(string)p Fo(.)21
-b(The)15 b(trailing)i(`)p Fn(?)p Fo(')d(ma)o(y)h(b)q(e)h(omitted)240
-308 y(if)g(the)f Fj(string)k Fo(is)d(follo)o(w)o(ed)f(immediately)i(b)o
-(y)e(a)g(newline.)0 395 y Fn(^)p Fj(string1)t Fn(^)p
-Fj(string2)t Fn(^)240 457 y Fo(Quic)o(k)i(Substitution.)22
-b(Rep)q(eat)16 b(the)g(last)f(command,)h(replacing)h
-Fj(string1)h Fo(with)e Fj(string2)p Fo(.)21 b(Equiv-)240
-520 y(alen)o(t)15 b(to)g Fn(!!:s/)p Fj(string1)t Fn(/)p
-Fj(string2)t Fn(/)p Fo(.)0 607 y Fn(!#)192 b Fo(The)15
-b(en)o(tire)h(command)f(line)i(t)o(yp)q(ed)f(so)e(far.)0
-816 y Fi(1.1.2)30 b(W)-5 b(ord)15 b(Designators)62 953
-y Fo(W)l(ord)k(designators)g(are)f(used)i(to)e(select)i(desired)g(w)o
-(ords)e(from)h(the)g(ev)o(en)o(t.)31 b(A)19 b(`)p Fn(:)p
-Fo(')f(separates)g(the)h(ev)o(en)o(t)0 1015 y(sp)q(eci\014cation)e
-(from)d(the)h(w)o(ord)f(designator.)20 b(It)15 b(can)g(b)q(e)g(omitted)
-g(if)g(the)g(w)o(ord)g(designator)f(b)q(egins)i(with)g(a)e(`)p
-Fn(^)p Fo(',)0 1077 y(`)p Fn($)p Fo(',)i(`)p Fn(*)p Fo(',)g(`)p
-Fn(-)p Fo(',)g(or)g(`)p Fn(\045)p Fo('.)24 b(W)l(ords)17
-b(are)f(n)o(um)o(b)q(ered)i(from)e(the)h(b)q(eginning)i(of)d(the)h
-(line,)i(with)e(the)g(\014rst)g(w)o(ord)f(b)q(eing)0
-1139 y(denoted)g(b)o(y)f(0)g(\(zero\).)k(W)l(ords)c(are)g(inserted)h
-(in)o(to)f(the)g(curren)o(t)g(line)i(separated)e(b)o(y)g(single)i
-(spaces.)0 1289 y Fn(0)e(\(zero\))57 b Fo(The)15 b Fn(0)p
-Fo(th)g(w)o(ord.)20 b(F)l(or)14 b(man)o(y)h(applications,)h(this)g(is)g
-(the)f(command)g(w)o(ord.)0 1376 y Fj(n)215 b Fo(The)15
-b Fj(n)p Fo(th)h(w)o(ord.)0 1464 y Fn(^)216 b Fo(The)15
-b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o(ord)g(1.)0
-1551 y Fn($)216 b Fo(The)15 b(last)h(argumen)o(t.)0 1639
-y Fn(\045)216 b Fo(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g(most)g
-(recen)o(t)g(`)p Fn(?)p Fj(string)t Fn(?)p Fo(')f(searc)o(h.)0
-1726 y Fj(x)p Fn(-)p Fj(y)168 b Fo(A)15 b(range)g(of)g(w)o(ords;)f(`)p
-Fn(-)p Fj(y)t Fo(')g(abbreviates)i(`)p Fn(0-)p Fj(y)t
-Fo('.)0 1813 y Fn(*)216 b Fo(All)16 b(of)f(the)g(w)o(ords,)f(except)h
-(the)g Fn(0)p Fo(th.)k(This)d(is)f(a)g(synon)o(ym)g(for)f(`)p
-Fn(1-$)p Fo('.)k(It)d(is)h(not)e(an)h(error)f(to)h(use)240
-1876 y(`)p Fn(*)p Fo(')f(if)i(there)f(is)h(just)f(one)g(w)o(ord)g(in)h
-(the)f(ev)o(en)o(t;)g(the)g(empt)o(y)g(string)g(is)h(returned)f(in)h
-(that)f(case.)0 1963 y Fj(x)s Fn(*)189 b Fo(Abbreviates)16
-b(`)p Fj(x)p Fn(-$)p Fo(')0 2050 y Fj(x)p Fn(-)192 b
-Fo(Abbreviates)16 b(`)p Fj(x)p Fn(-$)p Fo(')e(lik)o(e)i(`)p
-Fj(x)s Fn(*)p Fo(',)e(but)i(omits)f(the)g(last)g(w)o(ord.)62
-2200 y(If)i(a)g(w)o(ord)f(designator)g(is)i(supplied)h(without)d(an)h
-(ev)o(en)o(t)g(sp)q(eci\014cation,)h(the)f(previous)h(command)e(is)h
-(used)0 2262 y(as)e(the)g(ev)o(en)o(t.)0 2471 y Fi(1.1.3)30
-b(Mo)r(di\014ers)62 2608 y Fo(After)20 b(the)f(optional)i(w)o(ord)e
-(designator,)h(y)o(ou)f(can)h(add)g(a)g(sequence)h(of)e(one)h(or)f
-(more)g(of)g(the)h(follo)o(wing)0 2670 y(mo)q(di\014ers,)c(eac)o(h)f
-(preceded)i(b)o(y)e(a)g(`)p Fn(:)p Fo('.)p eop
-3 4 bop 0 -58 a Fo(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1157 b(3)0 183 y Fn(h)216 b Fo(Remo)o(v)o(e)15 b(a)g(trailing)h
-(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the)f(head.)0
-270 y Fn(t)216 b Fo(Remo)o(v)o(e)15 b(all)h(leading)h(pathname)e(comp)q
-(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)0 358 y Fn(r)216
-b Fo(Remo)o(v)o(e)15 b(a)g(trailing)h(su\016x)f(of)g(the)g(form)g(`)p
-Fn(.)p Fj(su\016x)s Fo(',)f(lea)o(ving)i(the)f(basename.)0
-445 y Fn(e)216 b Fo(Remo)o(v)o(e)15 b(all)h(but)g(the)f(trailing)h
-(su\016x.)0 532 y Fn(p)216 b Fo(Prin)o(t)15 b(the)g(new)h(command)f
-(but)g(do)g(not)g(execute)h(it.)0 619 y Fn(s/)p Fj(old)r
-Fn(/)p Fj(new)t Fn(/)240 681 y Fo(Substitute)k Fj(new)k
-Fo(for)19 b(the)g(\014rst)g(o)q(ccurrence)i(of)e Fj(old)j
-Fo(in)e(the)f(ev)o(en)o(t)h(line.)34 b(An)o(y)19 b(delimiter)j(ma)o(y)
-240 744 y(b)q(e)e(used)g(in)g(place)g(of)f(`)p Fn(/)p
-Fo('.)31 b(The)19 b(delimiter)i(ma)o(y)e(b)q(e)h(quoted)f(in)h
-Fj(old)h Fo(and)f Fj(new)j Fo(with)d(a)f(single)240 806
-y(bac)o(kslash.)28 b(If)18 b(`)p Fn(&)p Fo(')f(app)q(ears)h(in)h
-Fj(new)p Fo(,)f(it)h(is)f(replaced)h(b)o(y)f Fj(old)p
-Fo(.)28 b(A)18 b(single)h(bac)o(kslash)g(will)g(quote)240
-868 y(the)c(`)p Fn(&)p Fo('.)k(The)d(\014nal)g(delimiter)h(is)e
-(optional)h(if)g(it)f(is)h(the)f(last)g(c)o(haracter)g(on)g(the)g
-(input)i(line.)0 955 y Fn(&)216 b Fo(Rep)q(eat)16 b(the)f(previous)h
-(substitution.)0 1043 y Fn(g)216 b Fo(Cause)17 b(c)o(hanges)g(to)f(b)q
-(e)i(applied)g(o)o(v)o(er)e(the)h(en)o(tire)h(ev)o(en)o(t)e(line.)27
-b(Used)17 b(in)h(conjunction)g(with)f(`)p Fn(s)p Fo(',)240
-1105 y(as)e(in)h Fn(gs/)p Fj(old)r Fn(/)p Fj(new)t Fn(/)p
-Fo(,)f(or)f(with)i(`)p Fn(&)p Fo('.)p eop
-4 5 bop 0 -58 a Fo(4)1497 b(GNU)15 b(History)g(Library)p
-eop
-5 6 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1039 b(5)0 183 y Fk(2)41 b(Programming)16 b(with)f(GNU)h
-(History)62 370 y Fo(This)e(c)o(hapter)f(describ)q(es)i(ho)o(w)d(to)h
-(in)o(terface)g(programs)f(that)h(y)o(ou)g(write)g(with)g(the)h(GNU)f
-(History)g(Library)l(.)0 432 y(It)j(should)g(b)q(e)g(considered)h(a)f
-(tec)o(hnical)h(guide.)22 b(F)l(or)15 b(information)h(on)f(the)h(in)o
-(teractiv)o(e)g(use)g(of)f(GNU)g(History)l(,)0 495 y(see)g(Chapter)g(1)
-g([Using)h(History)f(In)o(teractiv)o(ely],)g(page)g(1.)0
-719 y Fm(2.1)33 b(In)n(tro)r(duction)17 b(to)e(History)62
-856 y Fo(Man)o(y)j(programs)g(read)h(input)h(from)e(the)g(user)h(a)g
-(line)h(at)f(a)f(time.)31 b(The)19 b(GNU)g(History)f(library)i(is)f
-(able)0 918 y(to)e(k)o(eep)g(trac)o(k)f(of)h(those)g(lines,)i(asso)q
-(ciate)e(arbitrary)g(data)g(with)g(eac)o(h)g(line,)j(and)d(utilize)i
-(information)f(from)0 980 y(previous)e(lines)h(in)f(comp)q(osing)f(new)
-h(ones.)62 1117 y(The)i(programmer)f(using)h(the)g(History)g(library)g
-(has)g(a)o(v)m(ailable)h(functions)g(for)e(remem)o(b)q(ering)h(lines)i
-(on)d(a)0 1180 y(history)f(list,)g(asso)q(ciating)g(arbitrary)g(data)f
-(with)h(a)f(line,)j(remo)o(ving)d(lines)j(from)d(the)h(list,)g(searc)o
-(hing)g(through)0 1242 y(the)h(list)h(for)e(a)h(line)h(con)o(taining)g
-(an)f(arbitrary)f(text)h(string,)g(and)g(referencing)h(an)o(y)f(line)h
-(in)g(the)f(list)h(directly)l(.)0 1304 y(In)d(addition,)h(a)e(history)h
-Fj(expansion)h Fo(function)g(is)f(a)o(v)m(ailable)h(whic)o(h)g(pro)o
-(vides)f(for)f(a)h(consisten)o(t)g(user)g(in)o(terface)0
-1366 y(across)f(di\013eren)o(t)i(programs.)62 1503 y(The)i(user)g
-(using)g(programs)f(written)g(with)h(the)g(History)f(library)i(has)e
-(the)h(b)q(ene\014t)h(of)e(a)g(consisten)o(t)h(user)0
-1566 y(in)o(terface)d(with)g(a)f(set)h(of)f(w)o(ell-kno)o(wn)h
-(commands)g(for)f(manipulating)i(the)f(text)f(of)g(previous)h(lines)h
-(and)f(using)0 1628 y(that)g(text)g(in)i(new)e(commands.)22
-b(The)15 b(basic)i(history)e(manipulation)j(commands)d(are)g(similar)i
-(to)e(the)h(history)0 1690 y(substitution)g(pro)o(vided)g(b)o(y)f
-Fn(csh)p Fo(.)62 1827 y(If)g(the)g(programmer)e(desires,)i(he)g(can)g
-(use)g(the)f(Readline)j(library)l(,)e(whic)o(h)h(includes)g(some)f
-(history)f(manip-)0 1889 y(ulation)i(b)o(y)f(default,)h(and)f(has)g
-(the)g(added)h(adv)m(an)o(tage)f(of)g(command)g(line)h(editing.)0
-2114 y Fm(2.2)33 b(History)15 b(Storage)62 2251 y Fo(The)h(history)f
-(list)h(is)g(an)f(arra)o(y)f(of)g(history)i(en)o(tries.)k(A)15
-b(history)g(en)o(try)g(is)h(declared)g(as)f(follo)o(ws:)120
-2377 y Fn(typedef)23 b(struct)g(_hist_entry)f({)168 2429
-y(char)h(*line;)168 2481 y(char)g(*data;)120 2533 y(})h(HIST_ENTRY;)62
-2670 y Fo(The)16 b(history)f(list)h(itself)g(migh)o(t)f(therefore)g(b)q
-(e)h(declared)g(as)p eop
-6 7 bop 0 -58 a Fo(6)1497 b(GNU)15 b(History)g(Library)120
-183 y Fn(HIST_ENTRY)22 b(**the_history_list;)62 327 y
-Fo(The)16 b(state)e(of)h(the)g(History)g(library)h(is)g(encapsulated)g
-(in)o(to)f(a)g(single)i(structure:)120 460 y Fn(/*)24
-b(A)f(structure)g(used)g(to)h(pass)f(the)h(current)f(state)g(of)g(the)h
-(history)f(stuff)g(around.)g(*/)120 512 y(typedef)g(struct)g
-(_hist_state)f({)168 564 y(HIST_ENTRY)g(**entries;)214
-b(/*)23 b(Pointer)g(to)h(the)f(entries)g(themselves.)f(*/)168
-616 y(int)h(offset;)453 b(/*)23 b(The)h(location)e(pointer)h(within)g
-(this)h(array.)f(*/)168 668 y(int)g(length;)453 b(/*)23
-b(Number)g(of)h(elements)f(within)g(this)g(array.)g(*/)168
-719 y(int)g(size;)501 b(/*)23 b(Number)g(of)h(slots)f(allocated)g(to)g
-(this)h(array.)f(*/)168 771 y(int)g(flags;)120 823 y(})h
-(HISTORY_STATE;)62 967 y Fo(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g
-(includes)j Fn(HS_STIFLED)p Fo(,)13 b(the)i(history)h(has)f(b)q(een)h
-(sti\015ed.)0 1250 y Fm(2.3)33 b(History)15 b(F)-6 b(unctions)62
-1394 y Fo(This)16 b(section)g(describ)q(es)h(the)e(calling)i(sequence)f
-(for)f(the)g(v)m(arious)h(functions)g(presen)o(t)f(in)h(GNU)f(History)l
-(.)0 1661 y Fi(2.3.1)30 b(Initializing)15 b(History)g(and)g(State)g
-(Managemen)n(t)62 1805 y Fo(This)j(section)g(describ)q(es)h(functions)f
-(used)g(to)e(initialize)21 b(and)c(manage)g(the)g(state)g(of)g(the)g
-(History)g(library)0 1867 y(when)f(y)o(ou)f(w)o(an)o(t)f(to)g(use)i
-(the)f(history)g(functions)h(in)g(y)o(our)f(program.)1725
-2049 y(F)l(unction)-1899 b Fh(void)20 b Fg(using)p 258
-2049 18 3 v 20 w(history)j Ff(\(\))120 2111 y Fo(Begin)g(a)f(session)g
-(in)h(whic)o(h)g(the)f(history)g(functions)g(migh)o(t)g(b)q(e)h(used.)
-40 b(This)23 b(initializes)i(the)120 2173 y(in)o(teractiv)o(e)16
-b(v)m(ariables.)1725 2355 y(F)l(unction)-1899 b Fh(HISTORY_STATE)21
-b(*)e Fg(history)p 582 2355 V 21 w(get)p 680 2355 V 21
-w(history)p 876 2355 V 21 w(state)j Ff(\(\))120 2417
-y Fo(Return)16 b(a)f(structure)g(describing)i(the)e(curren)o(t)g(state)
-f(of)h(the)g(input)i(history)l(.)1725 2599 y(F)l(unction)-1899
-b Fh(void)20 b Fg(history)p 302 2599 V 20 w(set)p 393
-2599 V 21 w(history)p 589 2599 V 21 w(state)j Ff(\()p
-Fn(HISTORY_STATE)13 b(*state)p Ff(\))120 2661 y Fo(Set)i(the)h(state)e
-(of)h(the)g(history)g(list)h(according)g(to)e Fj(state)p
-Fo(.)p eop
-7 8 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1039 b(7)0 183 y Fi(2.3.2)30 b(History)15 b(List)g(Managemen)n
-(t)62 322 y Fo(These)i(functions)h(manage)e(individual)k(en)o(tries)d
-(on)f(the)h(history)g(list,)g(or)f(set)h(parameters)e(managing)i(the)0
-384 y(list)f(itself.)1725 552 y(F)l(unction)-1899 b Fh(void)20
-b Fg(add)p 219 552 18 3 v 20 w(history)j Ff(\()p Fn(char)14
-b(*string)p Ff(\))120 614 y Fo(Place)j Fj(string)k Fo(at)16
-b(the)g(end)i(of)e(the)g(history)h(list.)25 b(The)17
-b(asso)q(ciated)g(data)f(\014eld)h(\(if)g(an)o(y\))f(is)h(set)g(to)120
-677 y Fn(NULL)p Fo(.)1725 844 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21
-b(*)e Fg(remo)n(v)n(e)p 509 844 V 20 w(history)k Ff(\()p
-Fn(int)14 b(which)p Ff(\))120 907 y Fo(Remo)o(v)o(e)d(history)g(en)o
-(try)g(at)g(o\013set)f Fj(whic)o(h)i Fo(from)f(the)g(history)l(.)19
-b(The)11 b(remo)o(v)o(ed)g(elemen)o(t)h(is)g(returned)120
-969 y(so)j(y)o(ou)g(can)g(free)g(the)h(line,)g(data,)e(and)i(con)o
-(taining)g(structure.)1725 1137 y(F)l(unction)-1899 b
-Fh(HIST_ENTRY)21 b(*)e Fg(replace)p 505 1137 V 22 w(history)p
-702 1137 V 20 w(en)n(try)24 b Ff(\()p Fn(int)14 b(which,)g(char)h
-(*line,)f(char)208 1199 y(*data)p Ff(\))120 1261 y Fo(Mak)o(e)d(the)i
-(history)f(en)o(try)g(at)f(o\013set)h Fj(whic)o(h)h Fo(ha)o(v)o(e)e
-Fj(line)17 b Fo(and)12 b Fj(data)p Fo(.)19 b(This)12
-b(returns)g(the)h(old)g(en)o(try)e(so)120 1324 y(y)o(ou)i(can)g(disp)q
-(ose)h(of)e(the)h(data.)19 b(In)13 b(the)g(case)g(of)f(an)h(in)o(v)m
-(alid)i Fj(whic)o(h)p Fo(,)f(a)f Fn(NULL)f Fo(p)q(oin)o(ter)i(is)f
-(returned.)1725 1491 y(F)l(unction)-1899 b Fh(void)20
-b Fg(clear)p 245 1491 V 21 w(history)j Ff(\(\))120 1554
-y Fo(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f
-(en)o(tries.)1725 1721 y(F)l(unction)-1899 b Fh(void)20
-b Fg(sti\015e)p 245 1721 V 21 w(history)j Ff(\()p Fn(int)14
-b(max)p Ff(\))120 1784 y Fo(Sti\015e)i(the)f(history)h(list,)f(remem)o
-(b)q(ering)h(only)g(the)f(last)g Fj(max)j Fo(en)o(tries.)1725
-1951 y(F)l(unction)-1899 b Fh(int)20 b Fg(unsti\015e)p
-283 1951 V 21 w(history)i Ff(\(\))120 2014 y Fo(Stop)13
-b(sti\015ing)h(the)f(history)l(.)19 b(This)14 b(returns)f(the)g
-(previous)h(amoun)o(t)e(the)h(history)g(w)o(as)g(sti\015ed.)20
-b(The)120 2076 y(v)m(alue)c(is)g(p)q(ositiv)o(e)g(if)g(the)f(history)g
-(w)o(as)g(sti\015ed,)h(negativ)o(e)f(if)g(it)h(w)o(asn't.)1725
-2244 y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276
-2244 V 20 w(is)p 334 2244 V 21 w(sti\015ed)k Ff(\(\))120
-2306 y Fo(Returns)16 b(non-zero)f(if)h(the)f(history)g(is)h(sti\015ed,)
-g(zero)f(if)g(it)h(is)g(not.)0 2531 y Fi(2.3.3)30 b(Information)14
-b(Ab)r(out)h(the)g(History)g(List)62 2670 y Fo(These)h(functions)g
-(return)f(information)g(ab)q(out)g(the)h(en)o(tire)f(history)g(list)h
-(or)f(individual)j(list)f(en)o(tries.)p eop
-8 9 bop 0 -58 a Fo(8)1497 b(GNU)15 b(History)g(Library)1725
-183 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21 b(**)e Fg(history)p
-530 183 18 3 v 21 w(list)24 b Ff(\(\))120 246 y Fo(Return)e(a)e
-Fn(NULL)h Fo(terminated)g(arra)o(y)f(of)g Fn(HIST_ENTRY)g
-Fo(whic)o(h)i(is)f(the)g(curren)o(t)g(input)h(history)l(.)120
-308 y(Elemen)o(t)16 b(0)f(of)f(this)i(list)g(is)g(the)f(b)q(eginning)i
-(of)e(time.)20 b(If)c(there)f(is)h(no)f(history)l(,)g(return)g
-Fn(NULL)p Fo(.)1725 482 y(F)l(unction)-1899 b Fh(int)20
-b Fg(where)p 250 482 V 20 w(history)j Ff(\(\))120 544
-y Fo(Returns)16 b(the)f(o\013set)f(of)h(the)g(curren)o(t)g(history)g
-(elemen)o(t.)1725 719 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21
-b(*)e Fg(curren)n(t)p 512 719 V 21 w(history)k Ff(\(\))120
-781 y Fo(Return)14 b(the)g(history)g(en)o(try)f(at)h(the)g(curren)o(t)f
-(p)q(osition,)i(as)e(determined)j(b)o(y)d Fn(where_history)h(\(\))p
-Fo(.)120 843 y(If)h(there)h(is)f(no)h(en)o(try)e(there,)h(return)g(a)g
-Fn(NULL)g Fo(p)q(oin)o(ter.)1725 1018 y(F)l(unction)-1899
-b Fh(HIST_ENTRY)21 b(*)e Fg(history)p 504 1018 V 21 w(get)j
-Ff(\()p Fn(int)15 b(offset)p Ff(\))120 1080 y Fo(Return)g(the)g
-(history)f(en)o(try)g(at)g(p)q(osition)i Fj(o\013set)p
-Fo(,)d(starting)h(from)g Fn(history_base)p Fo(.)k(If)c(there)h(is)g(no)
-120 1142 y(en)o(try)g(there,)g(or)f(if)i Fj(o\013set)f
-Fo(is)h(greater)e(than)h(the)h(history)f(length,)g(return)g(a)g
-Fn(NULL)g Fo(p)q(oin)o(ter.)1725 1316 y(F)l(unction)-1899
-b Fh(int)20 b Fg(history)p 276 1316 V 20 w(total)p 412
-1316 V 22 w(b)n(ytes)j Ff(\(\))120 1379 y Fo(Return)17
-b(the)f(n)o(um)o(b)q(er)g(of)g(b)o(ytes)g(that)f(the)h(primary)g
-(history)g(en)o(tries)h(are)e(using.)23 b(This)17 b(function)120
-1441 y(returns)e(the)g(sum)h(of)e(the)i(lengths)f(of)g(all)h(the)g
-(lines)g(in)g(the)g(history)l(.)0 1686 y Fi(2.3.4)30
-b(Mo)n(ving)15 b(Around)h(the)f(History)g(List)62 1827
-y Fo(These)h(functions)g(allo)o(w)f(the)g(curren)o(t)h(index)g(in)o(to)
-f(the)h(history)f(list)h(to)e(b)q(e)i(set)f(or)g(c)o(hanged.)1725
-2001 y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276
-2001 V 20 w(set)p 367 2001 V 21 w(p)r(os)h Ff(\()p Fn(int)15
-b(pos)p Ff(\))120 2063 y Fo(Set)g(the)h(p)q(osition)g(in)g(the)f
-(history)g(list)h(to)f Fj(p)q(os)p Fo(,)g(an)g(absolute)g(index)i(in)o
-(to)e(the)g(list.)1725 2238 y(F)l(unction)-1899 b Fh(HIST_ENTRY)21
-b(*)e Fg(previous)p 540 2238 V 20 w(history)k Ff(\(\))120
-2300 y Fo(Bac)o(k)16 b(up)h(the)g(curren)o(t)f(history)h(o\013set)e(to)
-h(the)h(previous)g(history)g(en)o(try)l(,)f(and)h(return)f(a)g(p)q(oin)
-o(ter)120 2362 y(to)f(that)f(en)o(try)l(.)20 b(If)15
-b(there)g(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g
-Fn(NULL)g Fo(p)q(oin)o(ter.)1725 2537 y(F)l(unction)-1899
-b Fh(HIST_ENTRY)21 b(*)e Fg(next)p 439 2537 V 21 w(history)k
-Ff(\(\))120 2599 y Fo(Mo)o(v)o(e)c(the)h(curren)o(t)g(history)f
-(o\013set)g(forw)o(ard)g(to)g(the)h(next)g(history)g(en)o(try)l(,)g
-(and)g(return)g(the)g(a)120 2661 y(p)q(oin)o(ter)c(to)e(that)h(en)o
-(try)l(.)k(If)d(there)f(is)h(no)f(next)g(en)o(try)l(,)g(return)g(a)g
-Fn(NULL)g Fo(p)q(oin)o(ter.)p eop
-9 10 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1039 b(9)0 183 y Fi(2.3.5)30 b(Searc)n(hing)15
-b(the)h(History)f(List)62 320 y Fo(These)e(functions)g(allo)o(w)f
-(searc)o(hing)h(of)f(the)g(history)g(list)h(for)f(en)o(tries)h(con)o
-(taining)g(a)f(sp)q(eci\014c)i(string.)19 b(Searc)o(h-)0
-382 y(ing)e(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q(oth)g(forw)o(ard)f(and)
-h(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)f(history)h(p)q(osition.)26
-b(The)17 b(searc)o(h)0 445 y(ma)o(y)d(b)q(e)i Fj(anc)o(hored)p
-Fo(,)f(meaning)h(that)f(the)g(string)g(m)o(ust)g(matc)o(h)f(at)h(the)g
-(b)q(eginning)i(of)e(the)h(history)f(en)o(try)l(.)1725
-600 y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276
-600 18 3 v 20 w(searc)n(h)j Ff(\()p Fn(char)14 b(*string,)g(int)h
-(direction)p Ff(\))120 662 y Fo(Searc)o(h)k(the)g(history)g(for)f
-Fj(string)p Fo(,)i(starting)e(at)g(the)h(curren)o(t)g(history)g
-(o\013set.)30 b(If)19 b Fj(direction)h Fn(<)f Fo(0,)120
-724 y(then)14 b(the)f(searc)o(h)g(is)h(through)e(previous)i(en)o
-(tries,)g(else)g(through)f(subsequen)o(t.)20 b(If)13
-b Fj(string)k Fo(is)d(found,)120 786 y(then)f(the)g(curren)o(t)g
-(history)g(index)i(is)e(set)g(to)f(that)h(history)g(en)o(try)l(,)f(and)
-i(the)f(v)m(alue)h(returned)f(is)h(the)120 849 y(o\013set)h(in)i(the)f
-(line)i(of)d(the)h(en)o(try)g(where)g Fj(string)k Fo(w)o(as)c(found.)22
-b(Otherwise,)17 b(nothing)f(is)h(c)o(hanged,)120 911
-y(and)e(a)g(-1)g(is)h(returned.)1725 1066 y(F)l(unction)-1899
-b Fh(int)20 b Fg(history)p 276 1066 V 20 w(searc)n(h)p
-452 1066 V 21 w(pre\014x)i Ff(\()p Fn(char)15 b(*string,)f(int)g
-(direction)p Ff(\))120 1128 y Fo(Searc)o(h)22 b(the)h(history)f(for)f
-Fj(string)p Fo(,)j(starting)e(at)f(the)i(curren)o(t)f(history)g
-(o\013set.)40 b(The)22 b(searc)o(h)g(is)120 1190 y(anc)o(hored:)i(matc)
-o(hing)18 b(lines)h(m)o(ust)d(b)q(egin)j(with)f Fj(string)p
-Fo(.)26 b(If)17 b Fj(direction)i Fn(<)e Fo(0,)g(then)h(the)f(searc)o(h)
-g(is)120 1253 y(through)e(previous)h(en)o(tries,)f(else)i(through)d
-(subsequen)o(t.)21 b(If)16 b Fj(string)j Fo(is)d(found,)f(then)h(the)f
-(curren)o(t)120 1315 y(history)20 b(index)i(is)e(set)g(to)g(that)f(en)o
-(try)l(,)i(and)f(the)g(return)h(v)m(alue)g(is)g(0.)34
-b(Otherwise,)22 b(nothing)e(is)120 1377 y(c)o(hanged,)15
-b(and)h(a)e(-1)h(is)h(returned.)1725 1532 y(F)l(unction)-1899
-b Fh(int)20 b Fg(history)p 276 1532 V 20 w(searc)n(h)p
-452 1532 V 21 w(p)r(os)h Ff(\()p Fn(char)15 b(*string,)f(int)g
-(direction,)g(int)h(pos)p Ff(\))120 1594 y Fo(Searc)o(h)d(for)f
-Fj(string)k Fo(in)d(the)g(history)f(list,)i(starting)e(at)g
-Fj(p)q(os)p Fo(,)h(an)f(absolute)h(index)h(in)o(to)e(the)h(list.)19
-b(If)12 b Fj(di-)120 1656 y(rection)g Fo(is)h(negativ)o(e,)f(the)g
-(searc)o(h)g(pro)q(ceeds)h(bac)o(kw)o(ard)e(from)g Fj(p)q(os)p
-Fo(,)i(otherwise)f(forw)o(ard.)17 b(Returns)120 1719
-y(the)e(absolute)h(index)g(of)f(the)g(history)h(elemen)o(t)f(where)h
-Fj(string)j Fo(w)o(as)14 b(found,)h(or)g(-1)g(otherwise.)0
-1912 y Fi(2.3.6)30 b(Managing)14 b(the)i(History)f(File)62
-2049 y Fo(The)f(History)g(library)h(can)f(read)g(the)g(history)g(from)f
-(and)i(write)f(it)g(to)f(a)h(\014le.)20 b(This)15 b(section)g(do)q
-(cumen)o(ts)f(the)0 2111 y(functions)i(for)f(managing)g(a)f(history)i
-(\014le.)1725 2266 y(F)l(unction)-1899 b Fh(int)20 b
-Fg(read)p 211 2266 V 20 w(history)i Ff(\()p Fn(char)15
-b(*filename)p Ff(\))120 2328 y Fo(Add)i(the)f(con)o(ten)o(ts)g(of)g
-Fj(\014lename)k Fo(to)c(the)h(history)f(list,)h(a)f(line)i(at)e(a)g
-(time.)24 b(If)17 b Fj(\014lename)j Fo(is)d Fn(NULL)p
-Fo(,)120 2391 y(then)f(read)f(from)f(`)p Fn(~/.history)p
-Fo('.)k(Returns)e(0)e(if)i(successful,)g(or)f(errno)g(if)h(not.)1725
-2545 y(F)l(unction)-1899 b Fh(int)20 b Fg(read)p 211
-2545 V 20 w(history)p 406 2545 V 20 w(range)i Ff(\()p
-Fn(char)15 b(*filename,)e(int)i(from,)g(int)f(to)p Ff(\))120
-2608 y Fo(Read)j(a)e(range)h(of)f(lines)j(from)d Fj(\014lename)p
-Fo(,)i(adding)f(them)g(to)f(the)h(history)g(list.)23
-b(Start)15 b(reading)i(at)120 2670 y(line)f Fj(from)f
-Fo(and)g(end)g(at)f Fj(to)p Fo(.)19 b(If)d Fj(from)e
-Fo(is)h(zero,)f(start)g(at)g(the)h(b)q(eginning.)22 b(If)15
-b Fj(to)i Fo(is)e(less)g(than)g Fj(from)p Fo(,)p eop
-10 11 bop 0 -58 a Fo(10)1474 b(GNU)15 b(History)g(Library)120
-183 y(then)i(read)g(un)o(til)h(the)f(end)g(of)g(the)g(\014le.)25
-b(If)17 b Fj(\014lename)k Fo(is)c Fn(NULL)p Fo(,)f(then)i(read)e(from)g
-(`)p Fn(~/.history)p Fo('.)120 246 y(Returns)g(0)f(if)g(successful,)h
-(or)f Fn(errno)g Fo(if)g(not.)1725 410 y(F)l(unction)-1899
-b Fh(int)20 b Fg(write)p 229 410 18 3 v 22 w(history)i
-Ff(\()p Fn(char)15 b(*filename)p Ff(\))120 472 y Fo(W)l(rite)20
-b(the)g(curren)o(t)f(history)h(to)f Fj(\014lename)p Fo(,)i(o)o(v)o
-(erwriting)f Fj(\014lename)j Fo(if)d(necessary)l(.)34
-b(If)20 b Fj(\014lename)120 534 y Fo(is)d Fn(NULL)p Fo(,)g(then)g
-(write)g(the)g(history)g(list)h(to)e(`)p Fn(~/.history)p
-Fo('.)23 b(V)l(alues)18 b(returned)g(are)e(as)h(in)h
-Fn(read_)120 596 y(history)c(\(\))p Fo(.)1725 760 y(F)l(unction)-1899
-b Fh(int)20 b Fg(app)r(end)p 285 760 V 19 w(history)j
-Ff(\()p Fn(int)14 b(nelements,)g(char)h(*filename)p Ff(\))120
-823 y Fo(App)q(end)i(the)e(last)g Fj(nelemen)o(ts)j Fo(of)d(the)g
-(history)g(list)h(to)f Fj(\014lename)p Fo(.)1725 987
-y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276 987
-V 20 w(truncate)p 507 987 V 21 w(\014le)k Ff(\()p Fn(char)14
-b(*filename,)g(int)h(nlines)p Ff(\))120 1049 y Fo(T)l(runcate)g(the)h
-(history)f(\014le)h Fj(\014lename)p Fo(,)g(lea)o(ving)g(only)g(the)f
-(last)g Fj(nlines)k Fo(lines.)0 1263 y Fi(2.3.7)30 b(History)15
-b(Expansion)62 1401 y Fo(These)h(functions)g(implemen)o(t)g
-Fn(csh)p Fo(-lik)o(e)g(history)g(expansion.)1725 1565
-y(F)l(unction)-1899 b Fh(int)20 b Fg(history)p 276 1565
-V 20 w(expand)j Ff(\()p Fn(char)14 b(*string,)g(char)h(**output)p
-Ff(\))120 1627 y Fo(Expand)20 b Fj(string)p Fo(,)f(placing)i(the)e
-(result)h(in)o(to)f Fj(output)p Fo(,)h(a)f(p)q(oin)o(ter)h(to)e(a)h
-(string)h(\(see)f(Section)h(1.1)120 1689 y([History)15
-b(In)o(teraction],)f(page)h(1\).)20 b(Returns:)120 1840
-y Fn(0)216 b Fo(If)21 b(no)g(expansions)h(to)q(ok)e(place)h(\(or,)g(if)
-h(the)f(only)g(c)o(hange)g(in)h(the)f(text)f(w)o(as)g(the)360
-1902 y(de-slashifying)d(of)e(the)g(history)h(expansion)g(c)o
-(haracter\);)120 1991 y Fn(1)216 b Fo(if)16 b(expansions)g(did)g(tak)o
-(e)e(place;)120 2080 y Fn(-1)192 b Fo(if)16 b(there)f(w)o(as)f(an)h
-(error)g(in)h(expansion;)120 2168 y Fn(2)216 b Fo(if)14
-b(the)f(returned)h(line)h(should)f(only)g(b)q(e)f(displa)o(y)o(ed,)i
-(but)e(not)g(executed,)h(as)f(with)h(the)360 2231 y Fn(:p)h
-Fo(mo)q(di\014er)h(\(see)f(Section)h(1.1.3)e([Mo)q(di\014ers],)h(page)g
-(2\).)120 2381 y(If)g(an)h(error)e(o)q(curred)i(in)g(expansion,)f(then)
-h Fj(output)g Fo(con)o(tains)f(a)g(descriptiv)o(e)i(error)d(message.)
-1725 2545 y(F)l(unction)-1899 b Fh(char)20 b(*)f Fg(history)p
-347 2545 V 21 w(arg)p 449 2545 V 19 w(extract)24 b Ff(\()p
-Fn(int)14 b(first,)h(int)g(last,)f(char)h(*string)p Ff(\))120
-2608 y Fo(Extract)10 b(a)h(string)g(segmen)o(t)g(consisting)h(of)f(the)
-g Fj(\014rst)h Fo(through)f Fj(last)h Fo(argumen)o(ts)e(presen)o(t)h
-(in)h Fj(string)p Fo(.)120 2670 y(Argumen)o(ts)j(are)g(brok)o(en)g(up)g
-(as)g(in)h(Bash.)p eop
-11 12 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1017 b(11)1725 183 y(F)l(unction)-1899 b Fh(char)20
-b(*)f Fg(get)p 249 183 18 3 v 21 w(history)p 445 183
-V 20 w(ev)n(en)n(t)25 b Ff(\()p Fn(char)14 b(*string,)g(int)h(*cindex,)
-f(int)h(qchar)p Ff(\))120 246 y Fo(Returns)e(the)f(text)f(of)h(the)g
-(history)g(ev)o(en)o(t)f(b)q(eginning)k(at)c Fj(string)16
-b Fn(+)c Fj(*cindex)p Fo(.)20 b Fj(*cindex)c Fo(is)d(mo)q(di\014ed)120
-308 y(to)h(p)q(oin)o(t)h(to)f(after)h(the)f(ev)o(en)o(t)h(sp)q
-(eci\014er.)21 b(A)o(t)15 b(function)g(en)o(try)l(,)f
-Fj(cindex)20 b Fo(p)q(oin)o(ts)15 b(to)f(the)h(index)h(in)o(to)120
-370 y Fj(string)h Fo(where)d(the)f(history)h(ev)o(en)o(t)f(sp)q
-(eci\014cation)i(b)q(egins.)20 b Fj(qc)o(har)d Fo(is)c(a)g(c)o
-(haracter)g(that)g(is)h(allo)o(w)o(ed)120 432 y(to)h(end)g(the)h(ev)o
-(en)o(t)f(sp)q(eci\014cation)i(in)f(addition)g(to)f(the)g(\\normal")g
-(terminating)g(c)o(haracters.)1725 587 y(F)l(unction)-1899
-b Fh(char)20 b(**)f Fg(history)p 373 587 V 21 w(tok)n(enize)25
-b Ff(\()p Fn(char)14 b(*string)p Ff(\))120 649 y Fo(Return)k(an)f(arra)
-o(y)f(of)h(tok)o(ens)f(parsed)i(out)e(of)h Fj(string)p
-Fo(,)g(m)o(uc)o(h)h(as)e(the)i(shell)g(migh)o(t.)26 b(The)17
-b(tok)o(ens)120 711 y(are)c(split)h(on)f(white)g(space)h(and)f(on)g
-(the)g(c)o(haracters)f Fn(\(\)<>;&|$)p Fo(,)g(and)h(shell)i(quoting)e
-(con)o(v)o(en)o(tions)120 774 y(are)i(ob)q(ey)o(ed.)0
-983 y Fm(2.4)33 b(History)15 b(V)-6 b(ariables)62 1120
-y Fo(This)16 b(section)g(describ)q(es)h(the)e(externally)h(visible)i(v)
-m(ariables)e(exp)q(orted)g(b)o(y)f(the)g(GNU)g(History)g(Library)l(.)
-1736 1275 y(V)l(ariable)-1899 b Fh(int)20 b Fg(history)p
-276 1275 V 20 w(base)120 1337 y Fo(The)15 b(logical)i(o\013set)d(of)h
-(the)g(\014rst)g(en)o(try)g(in)h(the)f(history)g(list.)1736
-1491 y(V)l(ariable)-1899 b Fh(int)20 b Fg(history)p 276
-1491 V 20 w(length)120 1554 y Fo(The)15 b(n)o(um)o(b)q(er)h(of)f(en)o
-(tries)g(curren)o(tly)h(stored)f(in)h(the)f(history)g(list.)1736
-1708 y(V)l(ariable)-1899 b Fh(int)20 b Fg(max)p 208 1708
-V 19 w(input)p 360 1708 V 21 w(history)120 1771 y Fo(The)12
-b(maxim)o(um)g(n)o(um)o(b)q(er)g(of)f(history)h(en)o(tries.)19
-b(This)12 b(m)o(ust)f(b)q(e)h(c)o(hanged)g(using)h Fn(stifle_history)
-120 1833 y(\(\))p Fo(.)1736 1987 y(V)l(ariable)-1899
-b Fh(char)20 b Fg(history)p 302 1987 V 20 w(expansion)p
-569 1987 V 21 w(c)n(har)120 2050 y Fo(The)15 b(c)o(haracter)g(that)f
-(starts)g(a)h(history)g(ev)o(en)o(t.)20 b(The)15 b(default)h(is)g(`)p
-Fn(!)p Fo('.)1736 2204 y(V)l(ariable)-1899 b Fh(char)20
-b Fg(history)p 302 2204 V 20 w(subst)p 454 2204 V 20
-w(c)n(har)120 2266 y Fo(The)13 b(c)o(haracter)e(that)h(in)o(v)o(ok)o
-(es)g(w)o(ord)g(substitution)h(if)g(found)g(at)e(the)i(start)e(of)h(a)g
-(line.)21 b(The)12 b(default)120 2329 y(is)k(`)p Fn(^)p
-Fo('.)1736 2483 y(V)l(ariable)-1899 b Fh(char)20 b Fg(history)p
-302 2483 V 20 w(commen)n(t)p 552 2483 V 19 w(c)n(har)120
-2545 y Fo(During)12 b(tok)o(enization,)h(if)f(this)h(c)o(haracter)e(is)
-i(seen)f(as)g(the)g(\014rst)f(c)o(haracter)g(of)h(a)g(w)o(ord,)f(then)i
-(it)f(and)120 2608 y(all)19 b(subsequen)o(t)g(c)o(haracters)e(up)h(to)g
-(a)f(newline)j(are)e(ignored,)h(suppressing)g(history)f(expansion)120
-2670 y(for)d(the)g(remainder)h(of)f(the)g(line.)21 b(This)16
-b(is)g(disabled)h(b)o(y)e(default.)p eop
-12 13 bop 0 -58 a Fo(12)1474 b(GNU)15 b(History)g(Library)1736
-183 y(V)l(ariable)-1899 b Fh(char)20 b(*)f Fg(history)p
-347 183 18 3 v 21 w(no)p 429 183 V 20 w(expand)p 629
-183 V 20 w(c)n(hars)120 246 y Fo(The)f(list)g(of)g(c)o(haracters)e
-(whic)o(h)j(inhibit)h(history)d(expansion)i(if)f(found)g(immediately)h
-(follo)o(wing)120 308 y Fj(history)p 261 308 14 2 v 16
-w(expansion)p 472 308 V 18 w(c)o(har)p Fo(.)g(The)d(default)f(is)h
-(whitespace)g(and)g(`)p Fn(=)p Fo('.)1736 469 y(V)l(ariable)-1899
-b Fh(char)20 b(*)f Fg(history)p 347 469 18 3 v 21 w(searc)n(h)p
-524 469 V 20 w(delimiter)p 768 469 V 23 w(c)n(hars)120
-532 y Fo(The)d(list)g(of)f(additional)i(c)o(haracters)d(whic)o(h)i(can)
-g(delimit)h(a)e(history)g(searc)o(h)h(string,)f(in)h(addition)120
-594 y(to)f(whitespace,)g(`)p Fn(:)p Fo(')f(and)i(`)p
-Fn(?)p Fo(')e(in)i(the)f(case)h(of)e(a)h(substring)h(searc)o(h.)k(The)
-15 b(default)h(is)g(empt)o(y)l(.)1736 755 y(V)l(ariable)-1899
-b Fh(int)20 b Fg(history)p 276 755 V 20 w(quotes)p 458
-755 V 21 w(inhibit)p 642 755 V 23 w(expansion)120 818
-y Fo(If)e(non-zero,)f(single-quoted)i(w)o(ords)e(are)g(not)g(scanned)h
-(for)e(the)i(history)f(expansion)h(c)o(haracter.)120
-880 y(The)d(default)h(v)m(alue)h(is)e(0.)1736 1041 y(V)l(ariable)-1899
-b Fh(Function)20 b(*)g Fg(history)p 452 1041 V 20 w(inhibit)p
-635 1041 V 23 w(expansion)p 905 1041 V 21 w(function)120
-1104 y Fo(This)f(should)h(b)q(e)f(set)f(to)g(the)h(address)f(of)g(a)h
-(function)g(that)f(tak)o(es)f(t)o(w)o(o)h(argumen)o(ts:)25
-b(a)19 b Fn(char)14 b(*)120 1166 y Fo(\()p Fj(string)t
-Fo(\))c(and)i(an)f(in)o(teger)g(index)h(in)o(to)f(that)g(string)g(\()p
-Fj(i)r Fo(\).)19 b(It)11 b(should)h(return)f(a)g(non-zero)g(v)m(alue)h
-(if)g(the)120 1228 y(history)17 b(expansion)h(starting)e(at)h
-Fj(string[i])h Fo(should)g(not)f(b)q(e)h(p)q(erformed;)f(zero)g(if)h
-(the)f(expansion)120 1290 y(should)i(b)q(e)f(done.)28
-b(It)18 b(is)g(in)o(tended)h(for)e(use)h(b)o(y)g(applications)h(lik)o
-(e)g(Bash)f(that)f(use)h(the)g(history)120 1353 y(expansion)e(c)o
-(haracter)f(for)f(additional)j(purp)q(oses.)j(By)c(default,)f(this)h(v)
-m(ariable)g(is)g(set)f(to)f(NULL.)0 1576 y Fm(2.5)33
-b(History)15 b(Programming)h(Example)62 1713 y Fo(The)g(follo)o(wing)g
-(program)e(demonstrates)g(simple)j(use)e(of)g(the)g(GNU)g(History)g
-(Library)l(.)120 1840 y Fn(main)23 b(\(\))120 1892 y({)168
-1944 y(char)g(line[1024],)f(*t;)168 1995 y(int)h(len,)g(done)h(=)g(0;)
-168 2099 y(line[0])f(=)g(0;)168 2203 y(using_history)f(\(\);)168
-2255 y(while)h(\(!done\))215 2307 y({)263 2359 y(printf)g(\("history$)g
-("\);)263 2411 y(fflush)g(\(stdout\);)263 2462 y(t)h(=)g(fgets)f
-(\(line,)g(sizeof)g(\(line\))g(-)h(1,)f(stdin\);)263
-2514 y(if)h(\(t)f(&&)h(*t\))311 2566 y({)359 2618 y(len)f(=)h(strlen)f
-(\(t\);)359 2670 y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))p
-eop
-13 14 bop 0 -58 a Fo(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)1017 b(13)406 183 y Fn(t[len)24 b(-)f(1])h(=)g('\\0';)311
-235 y(})263 339 y(if)g(\(!t\))311 391 y(strcpy)f(\(line,)g("quit"\);)
-263 495 y(if)h(\(line[0]\))311 546 y({)359 598 y(char)f(*expansion;)359
-650 y(int)g(result;)359 754 y(result)g(=)g(history_expand)f(\(line,)h
-(&expansion\);)359 806 y(if)g(\(result\))406 858 y(fprintf)g(\(stderr,)
-g("\045s\\n",)g(expansion\);)359 962 y(if)g(\(result)g(<)h(0)g(||)f
-(result)g(==)h(2\))406 1013 y({)454 1065 y(free)f(\(expansion\);)454
-1117 y(continue;)406 1169 y(})359 1273 y(add_history)f(\(expansion\);)
-359 1325 y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h
-(1\);)359 1377 y(free)f(\(expansion\);)311 1429 y(})263
-1532 y(if)h(\(strcmp)f(\(line,)g("quit"\))g(==)g(0\))311
-1584 y(done)g(=)h(1;)263 1636 y(else)f(if)h(\(strcmp)f(\(line,)g
-("save"\))g(==)h(0\))311 1688 y(write_history)e(\("history_file"\);)263
-1740 y(else)h(if)h(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))311
-1792 y(read_history)e(\("history_file"\);)263 1844 y(else)h(if)h
-(\(strcmp)f(\(line,)g("list"\))g(==)h(0\))311 1896 y({)359
-1947 y(register)e(HIST_ENTRY)h(**the_list;)359 1999 y(register)f(int)i
-(i;)359 2103 y(the_list)e(=)i(history_list)e(\(\);)359
-2155 y(if)h(\(the_list\))406 2207 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e
-(i++\))454 2259 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g
-(history_base,)e(the_list[i]->line\);)311 2311 y(})263
-2363 y(else)h(if)h(\(strncmp)f(\(line,)g("delete",)g(6\))g(==)h(0\))311
-2414 y({)359 2466 y(int)f(which;)359 2518 y(if)g(\(\(sscanf)g(\(line)g
-(+)h(6,)f("\045d",)h(&which\)\))e(==)i(1\))406 2570 y({)454
-2622 y(HIST_ENTRY)f(*entry)g(=)g(remove_history)f(\(which\);)p
-eop
-14 15 bop 0 -58 a Fo(14)1474 b(GNU)15 b(History)g(Library)454
-183 y Fn(if)24 b(\(!entry\))502 235 y(fprintf)f(\(stderr,)f("No)i(such)
-f(entry)g(\045d\\n",)g(which\);)454 287 y(else)502 339
-y({)550 391 y(free)g(\(entry->line\);)550 443 y(free)g(\(entry\);)502
-495 y(})406 546 y(})359 598 y(else)406 650 y({)454 702
-y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f
-(`delete'\\n"\);)406 754 y(})311 806 y(})215 858 y(})120
-910 y(})p eop
-15 16 bop 0 -58 a Fo(App)q(endix)17 b(A:)e(Concept)g(Index)1346
-b(15)0 183 y Fk(App)r(endix)13 b(A)41 b(Concept)15 b(Index)0
-430 y Fm(A)0 496 y Fe(anc)o(hored)f(searc)o(h)5 b Fd(.)i(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Fe(9)0 604 y Fm(E)0 670 y Fe(ev)o(en)o(t)13 b(designators)g
-Fd(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)23 b Fe(1)1015 430 y Fm(H)1015 496 y Fe(history)15
-b(ev)o(en)o(ts)5 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(1)1015 554
-y(history)d(expansion)8 b Fd(.)h(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Fe(1)1015 612 y(History)14
-b(Searc)o(hing)7 b Fd(.)h(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)20 b Fe(9)p eop
-16 17 bop 0 -58 a Fo(16)1474 b(GNU)15 b(History)g(Library)p
-eop
-17 18 bop 0 -58 a Fo(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l
-(ariable)g(Index)1069 b(17)0 183 y Fk(App)r(endix)13
-b(B)41 b(F)-7 b(unction)15 b(and)g(V)-7 b(ariable)14
-b(Index)0 430 y Fm(A)0 496 y Fc(add)p 62 496 12 2 v 13
-w(history)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)20 b Fe(7)0 554 y
-Fc(append)p 122 554 V 12 w(history)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Fe(10)0
-679 y Fm(C)0 745 y Fc(clear)p 102 745 V 12 w(history)5
-b Fd(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)18 b Fe(7)0 803 y Fc(current)p 142 803
-V 11 w(history)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)24 b Fe(8)0 928 y Fm(G)0 994 y Fc(get)p
-62 994 V 13 w(history)p 215 994 V 11 w(event)9 b Fd(.)d(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fe(11)0 1119
-y Fm(H)0 1185 y Fc(history)p 142 1185 V 11 w(arg)p 213
-1185 V 13 w(extract)8 b Fd(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)21 b Fe(10)0 1243 y Fc(history)p 142 1243 V 11 w(base)e
-Fd(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)20 b Fe(11)0 1301 y Fc(history)p 142 1301
-V 11 w(comment)p 293 1301 V 12 w(char)g Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)21 b Fe(11)0 1359 y Fc(history)p 142 1359
-V 11 w(expand)10 b Fd(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)24 b Fe(10)0 1418 y Fc(history)p
-142 1418 V 11 w(expansion)p 333 1418 V 11 w(char)17 b
-Fd(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(11)0 1476
-y Fc(history)p 142 1476 V 11 w(get)8 b Fd(.)d(.)h(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)20
-b Fe(8)0 1534 y Fc(history)p 142 1534 V 11 w(get)p 213
-1534 V 13 w(history)p 366 1534 V 12 w(state)t Fd(.)t(.)6
-b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)17 b Fe(6)0 1592 y Fc(history)p
-142 1592 V 11 w(inhibit)p 293 1592 V 12 w(expansion)p
-484 1592 V 10 w(function)k Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)23 b Fe(12)0 1650 y Fc(history)p 142 1650 V 11
-w(is)p 193 1650 V 14 w(stifled)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)23 b Fe(7)0 1708 y Fc(history)p
-142 1708 V 11 w(length)16 b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(11)0 1766 y Fc(history)p
-142 1766 V 11 w(list)7 b Fd(.)t(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(8)0 1824
-y Fc(history)p 142 1824 V 11 w(no)p 193 1824 V 14 w(expand)p
-327 1824 V 12 w(chars)f Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)20
-b Fe(12)0 1883 y Fc(history)p 142 1883 V 11 w(quotes)p
-273 1883 V 12 w(inhibit)p 425 1883 V 12 w(expansion)14
-b Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17
-b Fe(12)0 1941 y Fc(history)p 142 1941 V 11 w(search)t
-Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)17 b Fe(9)0 1999 y Fc(history)p 142 1999 V
-11 w(search)p 273 1999 V 12 w(delimiter)p 465 1999 V
-11 w(chars)h Fd(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)20 b Fe(12)0 2057 y Fc(history)p 142 2057
-V 11 w(search)p 273 2057 V 12 w(pos)9 b Fd(.)d(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Fe(9)0 2115 y Fc(history)p
-142 2115 V 11 w(search)p 273 2115 V 12 w(prefix)6 b Fd(.)t(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(9)0 2173 y Fc(history)p
-142 2173 V 11 w(set)p 213 2173 V 13 w(history)p 366 2173
-V 12 w(state)t Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Fe(6)1015
-430 y Fc(history)p 1157 430 V 12 w(set)p 1229 430 V 13
-w(pos)5 b Fd(.)g(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)19 b Fe(8)1015 488 y Fc(history)p 1157
-488 V 12 w(subst)p 1269 488 V 12 w(char)k Fd(.)6 b(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)25 b Fe(11)1015 546 y Fc(history)p
-1157 546 V 12 w(tokenize)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)22 b Fe(11)1015 604 y Fc(history)p
-1157 604 V 12 w(total)p 1269 604 V 12 w(bytes)9 b Fd(.)t(.)d(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Fe(8)1015 662
-y Fc(history)p 1157 662 V 12 w(truncate)p 1329 662 V
-11 w(file)5 b Fd(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Fe(10)1015 770 y Fm(M)1015 836 y Fc(max)p 1077 836
-V 13 w(input)p 1190 836 V 13 w(history)14 b Fd(.)6 b(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 b Fe(11)1015 944
-y Fm(N)1015 1011 y Fc(next)p 1097 1011 V 13 w(history)7
-b Fd(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)20 b Fe(8)1015 1119 y Fm(P)1015 1185
-y Fc(previous)p 1177 1185 V 12 w(history)7 b Fd(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Fe(8)1015
-1293 y Fm(R)1015 1359 y Fc(read)p 1097 1359 V 13 w(history)7
-b Fd(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)20 b Fe(9)1015 1418 y Fc(read)p 1097
-1418 V 13 w(history)p 1250 1418 V 11 w(range)9 b Fd(.)d(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Fe(9)1015 1476
-y Fc(remove)p 1137 1476 V 12 w(history)t Fd(.)t(.)6 b(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17
-b Fe(7)1015 1534 y Fc(replace)p 1157 1534 V 12 w(history)p
-1309 1534 V 11 w(entry)6 b Fd(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)19 b Fe(7)1015 1642 y Fm(S)1015 1708 y Fc(stifle)p
-1137 1708 V 12 w(history)t Fd(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17 b Fe(7)1015 1816
-y Fm(U)1015 1883 y Fc(unstifle)p 1177 1883 V 12 w(history)7
-b Fd(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)23
-b Fe(7)1015 1941 y Fc(using)p 1117 1941 V 13 w(history)5
-b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)18 b Fe(6)1015 2049 y Fm(W)1015 2115 y
-Fc(where)p 1117 2115 V 13 w(history)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
-b Fe(8)1015 2173 y Fc(write)p 1117 2173 V 13 w(history)t
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)17 b Fe(10)p eop
-18 19 bop 0 -58 a Fo(18)1474 b(GNU)15 b(History)g(Library)p
-eop
--1 20 bop 1937 -58 a Fo(i)0 183 y Fk(T)-7 b(able)15 b(of)g(Con)n(ten)n
-(ts)0 358 y Fm(1)67 b(Using)22 b(History)h(In)n(teractiv)n(ely)15
-b Fb(.)e(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)f(.)h(.)g(.)37 b Fm(1)149 435 y Fo(1.1)45
-b(In)o(teractiv)o(e)15 b(History)g(Expansion)9 b Fa(.)g(.)e(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)23 b
-Fo(1)299 498 y(1.1.1)44 b(Ev)o(en)o(t)14 b(Designators)d
-Fa(.)d(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)26 b Fo(1)299 560 y(1.1.2)44 b(W)l(ord)15 b(Designators)t
-Fa(.)7 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)19 b Fo(2)299 622 y(1.1.3)44 b(Mo)q(di\014ers)15
-b Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b Fo(2)0
-747 y Fm(2)67 b(Programming)23 b(with)g(GNU)f(History)11
-b Fb(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)
-g(.)33 b Fm(5)149 825 y Fo(2.1)45 b(In)o(tro)q(duction)16
-b(to)f(History)9 b Fa(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fo(5)149
-887 y(2.2)45 b(History)15 b(Storage)c Fa(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)26 b Fo(5)149 949 y(2.3)45 b(History)15
-b(F)l(unctions)c Fa(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fo(6)299 1011 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e
-(Managemen)o(t)g Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)29 b Fo(6)299 1074 y(2.3.2)44 b(History)15 b(List)h(Managemen)o
-(t)d Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)28
-b Fo(7)299 1136 y(2.3.3)44 b(Information)15 b(Ab)q(out)g(the)h(History)
-f(List)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)25 b Fo(7)299 1198 y(2.3.4)44
-b(Mo)o(ving)15 b(Around)g(the)g(History)g(List)10 b Fa(.)f(.)e(.)h(.)f
-(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)25 b Fo(8)299 1260 y(2.3.5)44 b(Searc)o(hing)16
-b(the)f(History)g(List)7 b Fa(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)21 b Fo(9)299 1323 y(2.3.6)44 b(Managing)15 b(the)g(History)g
-(File)5 b Fa(.)k(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)20
-b Fo(9)299 1385 y(2.3.7)44 b(History)15 b(Expansion)8
-b Fa(.)g(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)23 b Fo(10)149 1447 y(2.4)45 b(History)15 b(V)l(ariables)5
-b Fa(.)k(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)20 b Fo(11)149
-1510 y(2.5)45 b(History)15 b(Programming)f(Example)6
-b Fa(.)j(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)21
-b Fo(12)0 1634 y Fm(App)r(endix)j(A)67 b(Concept)22 b(Index)7
-b Fb(.)k(.)f(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)
-h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)29 b Fm(15)0 1774 y(App)r(endix)24
-b(B)67 b(F)-6 b(unction)25 b(and)e(V)-6 b(ariable)24
-b(Index)13 b Fb(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)35
-b Fm(17)p eop
--2 21 bop 0 -58 a Fo(ii)1496 b(GNU)15 b(History)g(Library)p
-eop end
-userdict /end-hook known{end-hook}if
--- a/readline/doc/readline.0	Fri Jun 06 22:08:11 1997 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1122 +0,0 @@
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-NNAAMMEE
-       readline - get a line from a user with editing
-
-SSYYNNOOPPSSIISS
-       ##iinncclluuddee <<rreeaaddlliinnee..hh>>
-       ##iinncclluuddee <<hhiissttoorryy..hh>>
-
-       cchhaarr **rreeaaddlliinnee ((pprroommpptt))
-       cchhaarr **pprroommpptt;;
-
-CCOOPPYYRRIIGGHHTT
-       Readline  is Copyright (C) 1989, 1991, 1993, 1995, 1996 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 null, no prompt is
-       issued.  The line returned is allocated with _m_a_l_l_o_c(3), so
-       the  caller must free it when finished.  The line returned
-       has the final newline removed, so only  the  text  of  the
-       line remains.
-
-       rreeaaddlliinnee  offers  editing  capabilities  while the user is
-       entering the line.  By default, the line editing  commands
-       are  similar  to  those of emacs.  A vi-style line editing
-       interface is also available.
-
-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
-       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).
-
-
-
-GNU                         1997 Feb 5                          1
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-       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: _R_U_B_O_U_T, _D_E_L, _E_S_C, _L_F_D, _N_E_W_-
-       _L_I_N_E, _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, 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
-              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 _>_&_o_u_t_p_u_t into the line).
-
-
-
-
-GNU                         1997 Feb 5                          2
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-       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 FFuunnccttiioonn KKeeyy 11.  The full set of escape sequences is
-
-              \\CC--    control prefix
-
-              \\MM--    meta prefix
-
-              \\ee     an escape character
-
-              \\\\     backslash
-
-              \\""     literal "
-
-              \\''     literal '
-
-       When entering the text of a macro, single or double quotes
-       should be used to indicate a macro  definition.   Unquoted
-       text  is  assumed  to  be a function name.  Backslash will
-       quote any character in the macro text, including " and  '.
-
-       BBaasshh  allows  the current readline key bindings to be dis-
-       played or modified with the  bbiinndd  builtin  command.   The
-       editing  mode  may  be  switched during interactive use by
-       using the --oo option to the  sseett  builtin  command.   Other
-       programs  using  this  library provide similar mechanisms.
-       The _i_n_p_u_t_r_c file may be edited and re-read  if  a  program
-       does  not provide any other means to incorporate new bind-
-       ings.
-
-   VVaarriiaabblleess
-       Readline has variables that can be used  to  further  cus-
-       tomize its behavior.  A variable may be set in the _i_n_p_u_t_r_c
-       file with a statement of the form
-
-              sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e
-
-       Except where noted, readline variables can take the values
-       OOnn or OOffff.  The variables and their default values are:
-
-       bbeellll--ssttyyllee ((aauuddiibbllee))
-              Controls  what  happens when readline wants to ring
-              the terminal bell.  If set to nnoonnee, readline  never
-
-
-
-GNU                         1997 Feb 5                          3
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-              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--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 prepending 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.
-       eeddiittiinngg--mmooddee ((eemmaaccss))
-              Controls whether readline begins with a set of  key
-              bindings  similar to _e_m_a_c_s or _v_i.  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.
-       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
-
-
-
-GNU                         1997 Feb 5                          4
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-              slash appended.
-       mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
-              If set to OOnn, history lines that have been modified
-              are displayed with a preceding asterisk (**).
-       mmeettaa--ffllaagg ((OOffff))
-              If set to OOnn, readline will enable eight-bit  input
-              (that  is,  it will not strip the high bit from the
-              characters it reads), regardless of what the termi-
-              nal claims it can support.
-       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.
-       sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
-              This  alters the default behavior of the completion
-              functions.  If set to oonn,  words  which  have  more
-              than  one  possible completion cause the matches to
-              be listed immediately instead of ringing the  bell.
-       vviissiibbllee--ssttaattss ((OOffff))
-              If set to OOnn, a character denoting a file's type as
-              reported by ssttaatt(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  three  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.
-
-
-
-
-
-GNU                         1997 Feb 5                          5
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-              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 you saw in the previous example,
-              terminates an $$iiff command.
-
-       $$eellssee  Commands in this branch of the  $$iiff  directive  are
-              executed if the test fails.
-
-SSEEAARRCCHHIINNGG
-       Readline  provides commands for searching through the com-
-       mand history for  lines  containing  a  specified  string.
-       There   are   two   search  modes:  _i_n_c_r_e_m_e_n_t_a_l  and  _n_o_n_-
-       _i_n_c_r_e_m_e_n_t_a_l.
-
-       Incremental searches begin before the  user  has  finished
-       typing the search string.  As each character of the search
-       string is typed, readline displays the next entry from the
-       history  matching the string typed so far.  An incremental
-       search requires only as many characters as needed to  find
-       the  desired  history entry.  The Escape character is used
-       to terminate an incremental search.  Control-J  will  also
-       terminate the search.  Control-G will abort an incremental
-       search and restore the original line.  When the search  is
-       terminated, the history entry containing the search string
-       becomes the current line.  To find other matching  entries
-       in the history list, type Control-S or Control-R as appro-
-       priate.  This will search backward or forward in the  his-
-       tory for the next line matching the search string typed so
-       far.  Any other key sequence bound to a  readline  command
-       will  terminate  the search and execute that command.  For
-       instance, a _n_e_w_l_i_n_e will terminate the search  and  accept
-       the  line,  thereby executing the command from the history
-       list.
-
-       Non-incremental searches read  the  entire  search  string
-       before starting to search for matching history lines.  The
-       search string may be typed by the user or part of the con-
-       tents of the current line.
-
-
-
-
-
-GNU                         1997 Feb 5                          6
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-EEDDIITTIINNGG CCOOMMMMAANNDDSS
-       The  following  is a list of the names of the commands and
-       the default key sequences to which they are  bound.   Com-
-       mand  names  without  an  accompanying  key  sequence  are
-       unbound by default.
-
-   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 this,  or  the  previous,
-              word.   Words  are composed of alphanumeric charac-
-              ters (letters and digits).
-       cclleeaarr--ssccrreeeenn ((CC--ll))
-              Clear the screen leaving the current  line  at  the
-              top  of  the screen.  With an argument, refresh the
-              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, add it to the history
-              list. If the line is a modified history line,  then
-              restore the history line to its original state.
-       pprreevviioouuss--hhiissttoorryy ((CC--pp))
-              Fetch  the  previous command from the history list,
-              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.
-       ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss))
-              Search forward starting at  the  current  line  and
-              moving  `down'  through  the  history as necessary.
-
-
-
-GNU                         1997 Feb 5                          7
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-              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.
-
-   CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
-       ddeelleettee--cchhaarr ((CC--dd))
-              Delete the character under the cursor.  If point is
-              at  the beginning of the line, there are no charac-
-              ters in the line, and the last character typed  was
-              not CC--dd, then return EEOOFF.
-       bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
-              Delete the character behind the cursor.  When given
-              a numeric argument, save the deleted  text  on  the
-              kill ring.
-       qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
-              Add  the  next  character that you type to the line
-              verbatim.  This is how to  insert  characters  like
-              CC--qq, for example.
-       ttaabb--iinnsseerrtt ((MM--TTAABB))
-              Insert a tab character.
-       sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
-              Insert the character typed.
-       ttrraannssppoossee--cchhaarrss ((CC--tt))
-              Drag  the  character  before point forward over the
-              character at point.  Point moves forward  as  well.
-              If  point is at the end of the line, then transpose
-              the  two   characters   before   point.    Negative
-
-
-
-GNU                         1997 Feb 5                          8
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-              arguments don't work.
-       ttrraannssppoossee--wwoorrddss ((MM--tt))
-              Drag  the  word  behind the cursor past the word in
-              front of the cursor moving  the  cursor  over  that
-              word as well.
-       uuppccaassee--wwoorrdd ((MM--uu))
-              Uppercase  the current (or following) word.  With a
-              negative argument, do the previous word, but do not
-              move point.
-       ddoowwnnccaassee--wwoorrdd ((MM--ll))
-              Lowercase  the current (or following) word.  With a
-              negative argument, do the previous word, but do not
-              move point.
-       ccaappiittaalliizzee--wwoorrdd ((MM--cc))
-              Capitalize the current (or following) word.  With a
-              negative argument, do the previous word, but do not
-              move point.
-
-   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.
-       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.
-       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.
-       ccooppyy--ffoorrwwaarrdd--wwoorrdd
-              Copy the word following point to the kill buffer.
-
-
-
-GNU                         1997 Feb 5                          9
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-       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.
-       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  ppoossssii--
-              bbllee--ccoommpplleettiioonnss.
-
-   KKeeyybbooaarrdd MMaaccrrooss
-       ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
-              Begin saving the characters typed into the  current
-              keyboard macro.
-
-
-
-
-GNU                         1997 Feb 5                         10
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-       eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
-              Stop  saving  the characters typed into the current
-              keyboard macro and store the definition.
-       ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee))
-              Re-execute the last keyboard macro defined, by mak-
-              ing  the characters in the macro appear as if typed
-              at the keyboard.
-
-   MMiisscceellllaanneeoouuss
-       rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
-              Read in the  contents  of  the  _i_n_p_u_t_r_c  file,  and
-              incorporate  any  bindings  or variable assignments
-              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.
-       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
-              typing  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.    This  makes  the  current  line  a  shell
-
-
-
-GNU                         1997 Feb 5                         11
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-              comment.
-       gglloobb--eexxppaanndd--wwoorrdd ((CC--xx **))
-              The word before point is treated as a  pattern  for
-              pathname  expansion,  and the list of matching file
-              names is inserted, replacing the word.
-       gglloobb--lliisstt--eexxppaannssiioonnss ((CC--xx gg))
-              The list of expansions that would have been  gener-
-              ated by gglloobb--eexxppaanndd--wwoorrdd is inserted into the line,
-              replacing the word before point.
-       dduummpp--ffuunnccttiioonnss
-              Print all of the functions and their  key  bindings
-              to  the readline output stream.  If a numeric argu-
-              ment is supplied, the output is formatted in such a
-              way that it can be made part of an _i_n_p_u_t_r_c file.
-       dduummpp--vvaarriiaabblleess
-              Print  all of the settable variables and their val-
-              ues to the readline output stream.   If  a  numeric
-              argument  is  supplied,  the output is formatted in
-              such a way that it can be made part of  an  _i_n_p_u_t_r_c
-              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.
-
-DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
-       The  following is a list of the default emacs and vi bind-
-       ings.  Characters with the 8th  bit  set  are  written  as
-       M-<character>, and are referred to as _m_e_t_a_f_i_e_d characters.
-       The printable ASCII characters not mentioned in  the  list
-       of  emacs  standard  bindings are bound to the _s_e_l_f_-_i_n_s_e_r_t
-       function, which just inserts the given character into  the
-       input  line.   In  vi  insertion  mode, all characters not
-       specifically mentioned are bound to _s_e_l_f_-_i_n_s_e_r_t.   Charac-
-       ters  assigned to signal generation by _s_t_t_y(1) or the ter-
-       minal driver, such as C-Z or C-C,  retain  that  function.
-       Upper  and lower case _m_e_t_a_f_i_e_d characters are bound to the
-       same function in the emacs mode meta keymap.  The  remain-
-       ing  characters are unbound, which causes readline to ring
-       the bell (subject to the setting of the  bbeellll--ssttyyllee  vari-
-       able).
-
-   EEmmaaccss MMooddee
-             Emacs Standard bindings
-
-             "C-@"  set-mark
-
-
-
-GNU                         1997 Feb 5                         12
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-             "C-A"  beginning-of-line
-             "C-B"  backward-char
-             "C-D"  delete-char
-             "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
-             "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
-
-
-
-GNU                         1997 Feb 5                         13
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-             "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
-
-
-   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
-
-
-
-
-GNU                         1997 Feb 5                         14
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-             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
-             "="  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
-
-
-
-GNU                         1997 Feb 5                         15
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-             "^"  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
-       _~_/_._i_n_p_u_t_r_c
-              Individual rreeaaddlliinnee initialization file
-
-AAUUTTHHOORRSS
-       Brian Fox, Free Software Foundation (primary author)
-       bfox@ai.MIT.Edu
-
-       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@_p_r_e_p_._a_i_._M_I_T_._E_d_u.  If you have
-       a fix, you are welcome to mail that as well!   Suggestions
-       and  `philosophical'  bug  reports  may  be mailed to _b_u_g_-
-       _r_e_a_d_l_i_n_e@_p_r_e_p_._a_i_._M_I_T_._E_d_u or posted to the Usenet newsgroup
-
-
-
-GNU                         1997 Feb 5                         16
-
-
-
-
-
-READLINE(3)                                           READLINE(3)
-
-
-       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                         1997 Feb 5                         17
-
-
Binary file readline/doc/readline.dvi has changed
--- a/readline/doc/readline.html	Fri Jun 06 22:08:11 1997 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3363 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from /usr/homes/chet/src/bash/readline-2.1-beta2/doc/rlman.texinfo on 22 May 1997 -->
-
-<TITLE>GNU Readline Library</TITLE>
-</HEAD>
-<BODY>
-<H1>GNU Readline Library</H1>
-<H2>Edition 2.1, for <CODE>Readline Library</CODE> Version 2.1.</H2>
-<H2>March 1996</H2>
-<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
-<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
-<P>
-<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>
-675 Massachusetts Avenue, <BR>
-Cambridge, MA 02139 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 Foundation.
-
-</P>
-<P>
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-
-</P>
-
-
-
-<H1><A NAME="SEC1" HREF="readline_toc.html#TOC1">Command Line Editing</A></H1>
-
-<P>
-This chapter describes the basic features of the GNU
-command line editing interface.
-
-</P>
-
-
-
-<H2><A NAME="SEC2" HREF="readline_toc.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.  If you do not have a meta key, the identical keystroke
-can be generated by typing <KBD>ESC</KBD> <I>first</I>, and then typing <KBD>k</KBD>.
-Either process is known as <STRONG>metafying</STRONG> 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 <STRONG>metafying</STRONG> <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
-(@xref{Readline Init File}).
-
-</P>
-
-
-<H2><A NAME="SEC3" HREF="readline_toc.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>RETURN</KBD>.  You do not have to be at the
-end of the line to press <KBD>RETURN</KBD>; the entire line is accepted
-regardless of the location of the cursor within the line.
-
-</P>
-
-
-
-<H3><A NAME="SEC4" HREF="readline_toc.html#TOC4">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#SEC5">Conditional Init Constructs</A>).  Other lines
-denote variable settings and key bindings.
-
-</P>
-<DL COMPACT>
-
-<DT>Variable Settings
-<DD>
-You can change the state of a few variables in Readline by
-using the <CODE>set</CODE> command within the init file.  Here is how you
-would specify that you wish to use <CODE>vi</CODE> line editing commands:
-
-
-<PRE>
-set editing-mode vi
-</PRE>
-
-Right now, there are only a few variables which can be set;
-so few, in fact, that we just list them here:
-
-<DL COMPACT>
-
-<DT><CODE>bell-style</CODE>
-<DD>
-<A NAME="IDX2"></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="IDX3"></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-query-items</CODE>
-<DD>
-<A NAME="IDX4"></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.  The default limit is
-<CODE>100</CODE>.
-
-<DT><CODE>convert-meta</CODE>
-<DD>
-<A NAME="IDX5"></A>
-If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
-eigth bit set to an ASCII key sequence by stripping the eigth
-bit and prepending an <KBD>ESC</KBD> character, converting them to a
-meta-prefixed key sequence.  The default value is <SAMP>`on'</SAMP>.
-
-<DT><CODE>disable-completion</CODE>
-<DD>
-<A NAME="IDX6"></A>
-If set to <SAMP>`On'</SAMP>, readline will inhibit word completion.
-Completion  characters will be inserted into the line as if they had
-been mapped to <CODE>self-insert</CODE>.  The default is <SAMP>`off'</SAMP>.
-
-<DT><CODE>editing-mode</CODE>
-<DD>
-<A NAME="IDX7"></A>
-The <CODE>editing-mode</CODE> variable controls which editing mode you are
-using.  By default, Readline starts up in Emacs editing mode, where
-the keystrokes are most similar to Emacs.  This variable can be
-set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
-
-<DT><CODE>enable-keypad</CODE>
-<DD>
-<A NAME="IDX8"></A>
-When set to <SAMP>`on'</SAMP>, readline will try to enable the application
-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="IDX9"></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="IDX10"></A>
-This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>.  Setting it
-to <SAMP>`on'</SAMP> means that the text of the lines that you edit will scroll
-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>keymap</CODE>
-<DD>
-<A NAME="IDX11"></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-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="IDX12"></A>
-This variable, when set to <SAMP>`on'</SAMP>, says to display an asterisk
-(<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
-This variable is <SAMP>`off'</SAMP> by default.
-
-<DT><CODE>input-meta</CODE>
-<DD>
-<A NAME="IDX13"></A>
-<A NAME="IDX14"></A>
-If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
-will not strip the eighth bit from 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>output-meta</CODE>
-<DD>
-<A NAME="IDX15"></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>show-all-if-ambiguous</CODE>
-<DD>
-<A NAME="IDX16"></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="IDX17"></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 have to know the name of the command that you
-want to change.  The following pages contain tables of the command name,
-the default keybinding, and a short description of what the command
-does.
-
-Once you know the name of the command, simply place the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command on a line in the init file.  The name of the key
-can be expressed in different ways, depending on which is most
-comfortable for you.
-
-<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, <SAMP>`C-u'</SAMP> is bound to the function
-<CODE>universal-argument</CODE>, and <SAMP>`C-o'</SAMP> 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).
-
-<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, <SAMP>`C-u'</SAMP> is bound to the function
-<CODE>universal-argument</CODE> (just as it was in the first example),
-<SAMP>`C-x C-r'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>, and
-<SAMP>`ESC [ 1 1 ~'</SAMP> is bound to insert the text <SAMP>`Function Key 1'</SAMP>.
-The following escape sequences are available when specifying key
-sequences:
-
-<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>
-<DT><CODE><KBD>\'</KBD></CODE>
-<DD>
-<KBD>'</KBD>
-</DL>
-
-When entering the text of a macro, single or double quotes should
-be used to indicate a macro definition.  Unquoted text
-is assumed to be a function name.  Backslash
-will quote any character in the macro text, including <SAMP>`"'</SAMP>
-and <SAMP>`''</SAMP>.
-For example, the following binding will make <SAMP>`C-x \'</SAMP>
-insert a single <SAMP>`\'</SAMP> into the line:
-
-<PRE>
-"\C-x\\": "\\"
-</PRE>
-
-</DL>
-</DL>
-
-
-
-<H3><A NAME="SEC5" HREF="readline_toc.html#TOC5">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 three 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 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 you saw 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.
-</DL>
-
-
-
-<H3><A NAME="SEC6" HREF="readline_toc.html#TOC6">Sample Init File</A></H3>
-
-<P>
-Here is an example of an inputrc 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.
-#
-# 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="SEC7" HREF="readline_toc.html#TOC7">Bindable Readline Commands</A></H2>
-
-<P>
-This section describes Readline commands that may be bound to key
-sequences.
-
-</P>
-
-
-<H3><A NAME="SEC8" HREF="readline_toc.html#TOC8">Commands For Moving</A></H3>
-<DL COMPACT>
-
-<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD>
-<A NAME="IDX18"></A>
-Move to the start of the current line.
-
-<DT><CODE>end-of-line (C-e)</CODE>
-<DD>
-<A NAME="IDX19"></A>
-Move to the end of the line.
-
-<DT><CODE>forward-char (C-f)</CODE>
-<DD>
-<A NAME="IDX20"></A>
-Move forward a character.
-
-<DT><CODE>backward-char (C-b)</CODE>
-<DD>
-<A NAME="IDX21"></A>
-Move back a character.
-
-<DT><CODE>forward-word (M-f)</CODE>
-<DD>
-<A NAME="IDX22"></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="IDX23"></A>
-Move back to the start of this, or the previous, word.  Words are
-composed of letters and digits.
-
-<DT><CODE>clear-screen (C-l)</CODE>
-<DD>
-<A NAME="IDX24"></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="IDX25"></A>
-Refresh the current line.  By default, this is unbound.
-
-</DL>
-
-
-
-<H3><A NAME="SEC9" HREF="readline_toc.html#TOC9">Commands For Manipulating The History</A></H3>
-
-<DL COMPACT>
-
-<DT><CODE>accept-line (Newline, Return)</CODE>
-<DD>
-<A NAME="IDX26"></A>
-Accept the line regardless of where the cursor is.  If this line is
-non-empty, add it to the history list.  If this line was a history
-line, then restore the history line to its original state.
-
-<DT><CODE>previous-history (C-p)</CODE>
-<DD>
-<A NAME="IDX27"></A>
-Move `up' through the history list.
-
-<DT><CODE>next-history (C-n)</CODE>
-<DD>
-<A NAME="IDX28"></A>
-Move `down' through the history list.
-
-<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD>
-<A NAME="IDX29"></A>
-Move to the first line in the history.
-
-<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD>
-<A NAME="IDX30"></A>
-Move to the end of the input history, i.e., the line you are entering.
-
-<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD>
-<A NAME="IDX31"></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="IDX32"></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="IDX33"></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="IDX34"></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="IDX35"></A>
-Search forward through the history for the string of characters
-between the start of the current line and the current cursor
-position (the `point').  This is a non-incremental search.  By
-default, this command is unbound.
-
-<DT><CODE>history-search-backward ()</CODE>
-<DD>
-<A NAME="IDX36"></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="IDX37"></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-., M-_)</CODE>
-<DD>
-<A NAME="IDX38"></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>.
-
-</DL>
-
-
-
-<H3><A NAME="SEC10" HREF="readline_toc.html#TOC10">Commands For Changing Text</A></H3>
-
-<DL COMPACT>
-
-<DT><CODE>delete-char (C-d)</CODE>
-<DD>
-<A NAME="IDX39"></A>
-Delete the character under the cursor.  If the cursor is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not <KBD>C-d</KBD>, then return <CODE>EOF</CODE>.
-
-<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD>
-<A NAME="IDX40"></A>
-Delete the character behind the cursor.  A numeric arg says to kill
-the characters instead of deleting them.
-
-<DT><CODE>quoted-insert (C-q, C-v)</CODE>
-<DD>
-<A NAME="IDX41"></A>
-Add the next character that you type to the line verbatim.  This is
-how to insert key sequences like <KBD>C-q</KBD>, for example.
-
-<DT><CODE>tab-insert (M-TAB)</CODE>
-<DD>
-<A NAME="IDX42"></A>
-Insert a tab character.
-
-<DT><CODE>self-insert (a, b, A, 1, !, ...)</CODE>
-<DD>
-<A NAME="IDX43"></A>
-Insert yourself.
-
-<DT><CODE>transpose-chars (C-t)</CODE>
-<DD>
-<A NAME="IDX44"></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 argumentss don't work.
-
-<DT><CODE>transpose-words (M-t)</CODE>
-<DD>
-<A NAME="IDX45"></A>
-Drag the word behind the cursor past the word in front of the cursor
-moving the cursor over that word as well.
-
-<DT><CODE>upcase-word (M-u)</CODE>
-<DD>
-<A NAME="IDX46"></A>
-Uppercase the current (or following) word.  With a negative argument,
-do the previous word, but do not move the cursor.
-
-<DT><CODE>downcase-word (M-l)</CODE>
-<DD>
-<A NAME="IDX47"></A>
-Lowercase the current (or following) word.  With a negative argument,
-do the previous word, but do not move the cursor.
-
-<DT><CODE>capitalize-word (M-c)</CODE>
-<DD>
-<A NAME="IDX48"></A>
-Capitalize the current (or following) word.  With a negative argument,
-do the previous word, but do not move the cursor.
-
-</DL>
-
-
-
-<H3><A NAME="SEC11" HREF="readline_toc.html#TOC11">Killing And Yanking</A></H3>
-
-<DL COMPACT>
-
-<DT><CODE>kill-line (C-k)</CODE>
-<DD>
-<A NAME="IDX49"></A>
-Kill the text from the current cursor position to the end of the line.
-
-<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD>
-<A NAME="IDX50"></A>
-Kill backward to the beginning of the line.
-
-<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD>
-<A NAME="IDX51"></A>
-Kill backward from the cursor to the beginning of the current line.
-Save the killed text on the kill-ring.
-
-<DT><CODE>kill-whole-line ()</CODE>
-<DD>
-<A NAME="IDX52"></A>
-Kill all characters on the current line, no matter where the
-cursor is.  By default, this is unbound.
-
-<DT><CODE>kill-word (M-d)</CODE>
-<DD>
-<A NAME="IDX53"></A>
-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 <CODE>forward-word</CODE>.
-
-<DT><CODE>backward-kill-word (M-DEL)</CODE>
-<DD>
-<A NAME="IDX54"></A>
-Kill the word behind the cursor.  Word boundaries are the same
-as <CODE>backward-word</CODE>.
-
-<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD>
-<A NAME="IDX55"></A>
-Kill the word behind the cursor, 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="IDX56"></A>
-Delete all spaces and tabs around point.  By default, this is unbound.
-
-<DT><CODE>kill-region ()</CODE>
-<DD>
-<A NAME="IDX57"></A>
-Kill the text between the point and the <EM>mark</EM> (saved
-cursor position.  This text is referred to as the <VAR>region</VAR>.
-By default, this command is unbound.
-
-<DT><CODE>copy-region-as-kill ()</CODE>
-<DD>
-<A NAME="IDX58"></A>
-Copy the text in the region to the kill buffer, so you can yank it
-right away.  By default, this command is unbound.
-
-<DT><CODE>copy-backward-word ()</CODE>
-<DD>
-<A NAME="IDX59"></A>
-Copy the word before point to the kill buffer.
-By default, this command is unbound.
-
-<DT><CODE>copy-forward-word ()</CODE>
-<DD>
-<A NAME="IDX60"></A>
-Copy the word following point to the kill buffer.
-By default, this command is unbound.
-
-<DT><CODE>yank (C-y)</CODE>
-<DD>
-<A NAME="IDX61"></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="IDX62"></A>
-Rotate the kill-ring, and yank the new top.  You can only do this if
-the prior command is yank or yank-pop.
-</DL>
-
-
-
-<H3><A NAME="SEC12" HREF="readline_toc.html#TOC12">Specifying Numeric Arguments</A></H3>
-<DL COMPACT>
-
-<DT><CODE>digit-argument (M-0, M-1, ... M--)</CODE>
-<DD>
-<A NAME="IDX63"></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="IDX64"></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="SEC13" HREF="readline_toc.html#TOC13">Letting Readline Type For You</A></H3>
-
-<DL COMPACT>
-
-<DT><CODE>complete (TAB)</CODE>
-<DD>
-<A NAME="IDX65"></A>
-Attempt to do completion on the text before the cursor.  This is
-application-specific.  Generally, if you are typing a filename
-argument, you can do filename completion; if you are typing a command,
-you can do command completion, if you are typing in a symbol to GDB, you
-can do symbol name completion, if you are typing in a variable to Bash,
-you can do variable name completion, and so on.
-
-<DT><CODE>possible-completions (M-?)</CODE>
-<DD>
-<A NAME="IDX66"></A>
-List the possible completions of the text before the cursor.
-
-<DT><CODE>insert-completions (M-*)</CODE>
-<DD>
-<A NAME="IDX67"></A>
-Insert all completions of the text before point that would have
-been generated by <CODE>possible-completions</CODE>.
-
-</DL>
-
-
-
-<H3><A NAME="SEC14" HREF="readline_toc.html#TOC14">Keyboard Macros</A></H3>
-<DL COMPACT>
-
-<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD>
-<A NAME="IDX68"></A>
-Begin saving the characters typed into the current keyboard macro.
-
-<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD>
-<A NAME="IDX69"></A>
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-
-<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD>
-<A NAME="IDX70"></A>
-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="SEC15" HREF="readline_toc.html#TOC15">Some Miscellaneous Commands</A></H3>
-<DL COMPACT>
-
-<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD>
-<A NAME="IDX71"></A>
-Read in the contents of the inputrc file, and incorporate
-any bindings or variable assignments found there.
-
-<DT><CODE>abort (C-g)</CODE>
-<DD>
-<A NAME="IDX72"></A>
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-<CODE>bell-style</CODE>).
-
-<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</CODE>
-<DD>
-<A NAME="IDX73"></A>
-If the metafied character <VAR>x</VAR> is lowercase, run the command
-that is bound to the corresponding uppercase character.
-
-<DT><CODE>prefix-meta (ESC)</CODE>
-<DD>
-<A NAME="IDX74"></A>
-Make the next character that you type be metafied.  This is for people
-without a meta key.  Typing <SAMP>`ESC f'</SAMP> is equivalent to typing
-<SAMP>`M-f'</SAMP>.
-
-<DT><CODE>undo (C-_, C-x C-u)</CODE>
-<DD>
-<A NAME="IDX75"></A>
-Incremental undo, separately remembered for each line.
-
-<DT><CODE>revert-line (M-r)</CODE>
-<DD>
-<A NAME="IDX76"></A>
-Undo all changes made to this line.  This is like typing the <CODE>undo</CODE>
-command enough times to get back to the beginning.
-
-<DT><CODE>tilde-expand (M-~)</CODE>
-<DD>
-<A NAME="IDX77"></A>
-Perform tilde expansion on the current word.
-
-<DT><CODE>set-mark (C-@)</CODE>
-<DD>
-<A NAME="IDX78"></A>
-Set the mark to the current point.  If a
-numeric argument is supplied, the mark is set to that position.
-
-<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD>
-<A NAME="IDX79"></A>
-Swap the point with the mark.  The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-
-<DT><CODE>character-search (C-])</CODE>
-<DD>
-<A NAME="IDX80"></A>
-A character is read and point is moved to the next occurrence of that
-character.  A negative count searches for previous occurrences.
-
-<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD>
-<A NAME="IDX81"></A>
-A character is read and point is moved to the previous occurrence
-of that character.  A negative count searches for subsequent
-occurrences.
-
-<DT><CODE>insert-comment (M-#)</CODE>
-<DD>
-<A NAME="IDX82"></A>
-The value of the <CODE>comment-begin</CODE>
-variable is inserted at the beginning of the current line,
-and the line is accepted as if a newline had been typed.
-
-<DT><CODE>dump-functions ()</CODE>
-<DD>
-<A NAME="IDX83"></A>
-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="IDX84"></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="IDX85"></A>
-Print all of the readline key sequences bound to macros and the
-strings they ouput.  If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file.  This command is unbound by default.
-
-</DL>
-
-
-
-<H2><A NAME="SEC16" HREF="readline_toc.html#TOC16">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 M-C-j (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="SEC17" HREF="readline_toc.html#TOC17">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>
-
-
-
-<H2><A NAME="SEC18" HREF="readline_toc.html#TOC18">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="IDX86"></A>
-<A NAME="IDX87"></A>
-The function <CODE>readline ()</CODE> prints a prompt and then reads and returns
-a single line of text from the user.  The line <CODE>readline</CODE>
-returns is allocated with <CODE>malloc ()</CODE>; you should <CODE>free ()</CODE>
-the line when you are done with it.  The declaration for <CODE>readline</CODE>
-in ANSI C is
-
-</P>
-
-<PRE>
-<CODE>char *readline (char *<VAR>prompt</VAR>);</CODE>
-</PRE>
-
-<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 <STRONG>history</STRONG> 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>, int (*<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#SEC34">Custom Completers</A>).
-
-</P>
-
-
-<H2><A NAME="SEC19" HREF="readline_toc.html#TOC19">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>
-
-
-
-<H3><A NAME="SEC20" HREF="readline_toc.html#TOC20">The Function Type</A></H3>
-
-<P>
-For readabilty, we declare a new type of object, called
-<STRONG>Function</STRONG>.  A <CODE>Function</CODE> is a C function which
-returns an <CODE>int</CODE>.  The type declaration for <CODE>Function</CODE> is:
-
-</P>
-<P>
-<CODE>typedef int Function ();</CODE>
-
-</P>
-<P>
-The reason for declaring this new type is to make it easier to write
-code describing pointers to C functions.  Let us say we had a variable
-called <VAR>func</VAR> which was a pointer to a function.  Instead of the
-classic C declaration
-
-</P>
-<P>
-<CODE>int (*)()func;</CODE>
-
-</P>
-<P>
-we may write
-
-</P>
-<P>
-<CODE>Function *func;</CODE>
-
-</P>
-<P>
-Similarly, there are
-
-</P>
-
-<PRE>
-typedef void VFunction ();
-typedef char *CPFunction (); and
-typedef char **CPPFunction ();
-</PRE>
-
-<P>
-for functions returning no value, <CODE>pointer to char</CODE>, and
-<CODE>pointer to pointer to char</CODE>, respectively.
-
-</P>
-
-
-<H3><A NAME="SEC21" HREF="readline_toc.html#TOC21">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="SEC22" HREF="readline_toc.html#TOC22">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="IDX88"></A>
-This is the line gathered so far.  You are welcome to modify the
-contents of the line, but see section <A HREF="readline.html#SEC28">Allowing Undoing</A>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> int <B>rl_point</B>
-<DD><A NAME="IDX89"></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="IDX90"></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="IDX91"></A>
-The mark (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="IDX92"></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_pending_input</B>
-<DD><A NAME="IDX93"></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> char * <B>rl_prompt</B>
-<DD><A NAME="IDX94"></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> char * <B>rl_library_version</B>
-<DD><A NAME="IDX95"></A>
-The version number of this revision of the library.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_terminal_name</B>
-<DD><A NAME="IDX96"></A>
-The terminal type, used for initialization.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_readline_name</B>
-<DD><A NAME="IDX97"></A>
-This variable is set to a unique name by each application using Readline.
-The value allows conditional parsing of the inputrc file
-(see section <A HREF="readline.html#SEC5">Conditional Init Constructs</A>).
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> FILE * <B>rl_instream</B>
-<DD><A NAME="IDX98"></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="IDX99"></A>
-The stdio stream to which Readline performs output.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> Function * <B>rl_startup_hook</B>
-<DD><A NAME="IDX100"></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> Function * <B>rl_event_hook</B>
-<DD><A NAME="IDX101"></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> Function * <B>rl_getc_function</B>
-<DD><A NAME="IDX102"></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#SEC31">Utility Functions</A>).
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> VFunction * <B>rl_redisplay_function</B>
-<DD><A NAME="IDX103"></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#SEC29">Redisplay</A>).
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B>
-<DD><A NAME="IDX104"></A>
-This variable is set to the keymap (see section <A HREF="readline.html#SEC25">Selecting a Keymap</A>) in which the
-currently executing readline function was found.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B>
-<DD><A NAME="IDX105"></A>
-This variable is set to the keymap (see section <A HREF="readline.html#SEC25">Selecting a Keymap</A>) in which the
-last key binding occurred.
-</DL>
-
-</P>
-
-
-<H2><A NAME="SEC23" HREF="readline_toc.html#TOC23">Readline Convenience Functions</A></H2>
-
-
-
-<H3><A NAME="SEC24" HREF="readline_toc.html#TOC24">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>(char *name, Function *function, int key)</I>
-<DD><A NAME="IDX106"></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="SEC25" HREF="readline_toc.html#TOC25">Selecting a Keymap</A></H3>
-
-<P>
-Key bindings take place on a <STRONG>keymap</STRONG>.  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>()</I>
-<DD><A NAME="IDX107"></A>
-Returns a new, empty keymap.  The space for the keymap is allocated with
-<CODE>malloc ()</CODE>; you should <CODE>free ()</CODE> it when you are done.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I>
-<DD><A NAME="IDX108"></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>()</I>
-<DD><A NAME="IDX109"></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="IDX110"></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>()</I>
-<DD><A NAME="IDX111"></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="IDX112"></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>(char *name)</I>
-<DD><A NAME="IDX113"></A>
-Return the keymap matching <VAR>name</VAR>.  <VAR>name</VAR> is one which would
-be supplied in a <CODE>set keymap</CODE> inputrc line (@xref{Readline Init File}).
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I>
-<DD><A NAME="IDX114"></A>
-Return the name matching <VAR>keymap</VAR>.  <VAR>name</VAR> is one which would
-be supplied in a <CODE>set keymap</CODE> inputrc line (@xref{Readline Init File}).
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC26" HREF="readline_toc.html#TOC26">Binding Keys</A></H3>
-
-<P>
-You associate keys 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>
-These functions manage key bindings.
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, Function *function)</I>
-<DD><A NAME="IDX115"></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, Function *function, Keymap map)</I>
-<DD><A NAME="IDX116"></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="IDX117"></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="IDX118"></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_generic_bind</B> <I>(int type, char *keyseq, char *data, Keymap map)</I>
-<DD><A NAME="IDX119"></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="IDX120"></A>
-Parse <VAR>line</VAR> as if it had been read from the <CODE>inputrc</CODE> file and
-perform any key bindings and variable assignments found
-(@xref{Readline Init File}).
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(char *filename)</I>
-<DD><A NAME="IDX121"></A>
-Read keybindings and variable assignments from <VAR>filename</VAR>
-(@xref{Readline Init File}).
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC27" HREF="readline_toc.html#TOC27">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.
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> Function * <B>rl_named_function</B> <I>(char *name)</I>
-<DD><A NAME="IDX122"></A>
-Return the function with name <VAR>name</VAR>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> Function * <B>rl_function_of_keyseq</B> <I>(char *keyseq, Keymap map, int *type)</I>
-<DD><A NAME="IDX123"></A>
-Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>.
-If <VAR>map</VAR> is NULL, the current keymap is used.  If <VAR>type</VAR> is
-not NULL, the type of the object is returned in it (one of <CODE>ISFUNC</CODE>,
-<CODE>ISKMAP</CODE>, or <CODE>ISMACR</CODE>).
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(Function *function)</I>
-<DD><A NAME="IDX124"></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>(Function *function, Keymap map)</I>
-<DD><A NAME="IDX125"></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="IDX126"></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>()</I>
-<DD><A NAME="IDX127"></A>
-Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC28" HREF="readline_toc.html#TOC28">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.  I could use an undo function for
-the stock market.
-
-</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 undo 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>()</I>
-<DD><A NAME="IDX128"></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>()</I>
-<DD><A NAME="IDX129"></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="IDX130"></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>free_undo_list</B> <I>()</I>
-<DD><A NAME="IDX131"></A>
-Free the existing undo list.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_do_undo</B> <I>()</I>
-<DD><A NAME="IDX132"></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="IDX133"></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="SEC29" HREF="readline_toc.html#TOC29">Redisplay</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> void <B>rl_redisplay</B> <I>()</I>
-<DD><A NAME="IDX134"></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>()</I>
-<DD><A NAME="IDX135"></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>()</I>
-<DD><A NAME="IDX136"></A>
-Tell the update routines 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_reset_line_state</B> <I>()</I>
-<DD><A NAME="IDX137"></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_message</B> <I>(va_alist)</I>
-<DD><A NAME="IDX138"></A>
-The arguments are a string as would be supplied to <CODE>printf</CODE>.  The
-resulting string is displayed in the <STRONG>echo area</STRONG>.  The echo area
-is also used to display numeric arguments and search strings.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_clear_message</B> <I>()</I>
-<DD><A NAME="IDX139"></A>
-Clear the message in the echo area.
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC30" HREF="readline_toc.html#TOC30">Modifying Text</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(char *text)</I>
-<DD><A NAME="IDX140"></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="IDX141"></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="IDX142"></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="IDX143"></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="SEC31" HREF="readline_toc.html#TOC31">Utility Functions</A></H3>
-
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_read_key</B> <I>()</I>
-<DD><A NAME="IDX144"></A>
-Return the next character available.  This handles input inserted into
-the input stream via <VAR>pending input</VAR> (see section <A HREF="readline.html#SEC22">Readline Variables</A>)
-and <CODE>rl_stuff_char ()</CODE>, macros, and characters read from the keyboard.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *)</I>
-<DD><A NAME="IDX145"></A>
-Return the next character available from the keyboard.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
-<DD><A NAME="IDX146"></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> rl_extend_line_buffer <B>(int</B> <I>len)</I>
-<DD><A NAME="IDX147"></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>()</I>
-<DD><A NAME="IDX148"></A>
-Initialize or re-initialize Readline's internal state.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(char *terminal_name)</I>
-<DD><A NAME="IDX149"></A>
-Reinitialize Readline's idea of the terminal settings using
-<VAR>terminal_name</VAR> as the terminal type (e.g., <CODE>vt100</CODE>).
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>alphabetic</B> <I>(int c)</I>
-<DD><A NAME="IDX150"></A>
-Return 1 if <VAR>c</VAR> is an alphabetic character.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>numeric</B> <I>(int c)</I>
-<DD><A NAME="IDX151"></A>
-Return 1 if <VAR>c</VAR> is a numeric character.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>ding</B> <I>()</I>
-<DD><A NAME="IDX152"></A>
-Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
-</DL>
-
-</P>
-<P>
-The following are implemented as macros, defined in <CODE>chartypes.h</CODE>.
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>uppercase_p</B> <I>(int c)</I>
-<DD><A NAME="IDX153"></A>
-Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>lowercase_p</B> <I>(int c)</I>
-<DD><A NAME="IDX154"></A>
-Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>digit_p</B> <I>(int c)</I>
-<DD><A NAME="IDX155"></A>
-Return 1 if <VAR>c</VAR> is a numeric character.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>to_upper</B> <I>(int c)</I>
-<DD><A NAME="IDX156"></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>to_lower</B> <I>(int c)</I>
-<DD><A NAME="IDX157"></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>digit_value</B> <I>(int c)</I>
-<DD><A NAME="IDX158"></A>
-If <VAR>c</VAR> is a number, return the value it represents.
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC32" HREF="readline_toc.html#TOC32">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>(char *prompt, Vfunction *lhandler)</I>
-<DD><A NAME="IDX159"></A>
-Set up the terminal for readline I/O and display the initial
-expanded value of <VAR>prompt</VAR>.  Save the value of <VAR>lhandler</VAR> to
-use as a callback when a complete line of input has been entered.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>()</I>
-<DD><A NAME="IDX160"></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>()</I>
-<DD><A NAME="IDX161"></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="SEC33" HREF="readline_toc.html#TOC33">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 (uppercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = to_lower (rl_line_buffer[i]);
-      else if (lowercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = 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="SEC34" HREF="readline_toc.html#TOC34">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>
-
-
-
-<H3><A NAME="SEC35" HREF="readline_toc.html#TOC35">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 Readline
-functions intended for interactive use:  <VAR>count</VAR> and
-<VAR>invoking_key</VAR>.  It isolates the word to be completed and calls
-<CODE>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>completion_matches ()</CODE> uses your
-<STRONG>generator</STRONG> function to generate the list of possible matches, and
-then returns the array of these matches.  You should place the address
-of your generator function in <CODE>rl_completion_entry_function</CODE>.
-
-<LI>
-
-The generator function is called repeatedly from
-<CODE>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.  When the generator function returns
-<CODE>(char *)NULL</CODE> this signals <CODE>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="IDX162"></A>
-Complete the word at or before point.  You have supplied the function
-that does the initial simple matching selection algorithm (see
-<CODE>completion_matches ()</CODE>).  The default is to do filename completion.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> Function * <B>rl_completion_entry_function</B>
-<DD><A NAME="IDX163"></A>
-This is a pointer to the generator function for <CODE>completion_matches
-()</CODE>.  If the value of <CODE>rl_completion_entry_function</CODE> is
-<CODE>(Function *)NULL</CODE> then the default filename generator function,
-<CODE>filename_completion_function ()</CODE>, is used.
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC36" HREF="readline_toc.html#TOC36">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="IDX164"></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="IDX165"></A>
-Complete the word at or before point.  You have supplied the function
-that does the initial simple matching selection algorithm (see
-<CODE>completion_matches ()</CODE> 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="IDX166"></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="IDX167"></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>completion_matches</B> <I>(char *text, CPFunction *entry_func)</I>
-<DD><A NAME="IDX168"></A>
-Returns an array of <CODE>(char *)</CODE> which is a list of completions for
-<VAR>text</VAR>.  If there are no completions, returns <CODE>(char **)NULL</CODE>.
-The first entry in the returned array is the substitution for <VAR>text</VAR>.
-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>filename_completion_function</B> <I>(char *text, int state)</I>
-<DD><A NAME="IDX169"></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>username_completion_function</B> <I>(char *text, int state)</I>
-<DD><A NAME="IDX170"></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="SEC37" HREF="readline_toc.html#TOC37">Completion Variables</A></H3>
-
-<P>
-<DL>
-<DT><U>Variable:</U> Function * <B>rl_completion_entry_function</B>
-<DD><A NAME="IDX171"></A>
-A pointer to the generator function for <CODE>completion_matches ()</CODE>.
-<CODE>NULL</CODE> means to use <CODE>filename_entry_function ()</CODE>, the default
-filename completer.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> CPPFunction * <B>rl_attempted_completion_function</B>
-<DD><A NAME="IDX172"></A>
-A pointer to an alternative function to create matches.
-The function is called with <VAR>text</VAR>, <VAR>start</VAR>, and <VAR>end</VAR>.
-<VAR>start</VAR> and <VAR>end</VAR> are indices in <CODE>rl_line_buffer</CODE> saying
-what the boundaries of <VAR>text</VAR> are.  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.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> CPFunction * <B>rl_filename_quoting_function</B>
-<DD><A NAME="IDX173"></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> CPFunction * <B>rl_filename_dequoting_function</B>
-<DD><A NAME="IDX174"></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> Function * <B>rl_char_is_quoted_p</B>
-<DD><A NAME="IDX175"></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="IDX176"></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> char * <B>rl_basic_word_break_characters</B>
-<DD><A NAME="IDX177"></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> char * <B>rl_basic_quote_characters</B>
-<DD><A NAME="IDX178"></A>
-List of quote characters which can cause a word break.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_completer_word_break_characters</B>
-<DD><A NAME="IDX179"></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> char * <B>rl_completer_quote_characters</B>
-<DD><A NAME="IDX180"></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> char * <B>rl_filename_quote_characters</B>
-<DD><A NAME="IDX181"></A>
-A list of characters that cause a filename to be quoted by the completer
-when they appear in a completed filename.  The default is empty.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_special_prefixes</B>
-<DD><A NAME="IDX182"></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="IDX183"></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="IDX184"></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="IDX185"></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 embedded word break
-characters.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
-<DD><A NAME="IDX186"></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_inhibit_completion</B>
-<DD><A NAME="IDX187"></A>
-If this variable is non-zero, completion is inhibit&#60;ed.  The completion
-character will be inserted as any other bound to <CODE>self-insert</CODE>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Variable:</U> Function * <B>rl_ignore_some_completions_function</B>
-<DD><A NAME="IDX188"></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> Function * <B>rl_directory_completion_hook</B>
-<DD><A NAME="IDX189"></A>
-This function, if defined, is allowed to modify the directory portion
-of filenames Readline completes.  It is called with the address of a
-string (the current directory name) as an argument.  It could be used
-to expand symbolic links or shell variables in pathnames.
-</DL>
-
-</P>
-
-
-<H3><A NAME="SEC38" HREF="readline_toc.html#TOC38">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 *getwd ();
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list (), com_view (), com_rename (), com_stat (), com_pwd ();
-int com_delete (), com_help (), com_cd (), com_quit ();
-
-/* A structure which contains information on the commands this program
-   can understand. */
-
-typedef struct {
-  char *name;			/* User printable name of the function. */
-  Function *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, (Function *)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 global 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 ();
-char **fileman_completion ();
-
-/* 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 = (CPPFunction *)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.  Return the array of matches,
-   or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
-     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 = 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)
-     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 = getwd (dir);
-  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="SEC39" HREF="readline_toc.html#TOC39">Concept Index</A></H1>
-<P>
-<H2>i</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX1">interaction, readline</A>
-</DIR>
-<H2>r</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX87">readline, function</A>
-</DIR>
-
-</P>
-
-
-<H1><A NAME="SEC40" HREF="readline_toc.html#TOC40">Function and Variable Index</A></H1>
-<P>
-<H2>(</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX147">(int</A>
-</DIR>
-<H2>a</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX72">abort (C-g)</A>
-<LI><A HREF="readline.html#IDX26">accept-line (Newline, Return)</A>
-<LI><A HREF="readline.html#IDX150">alphabetic</A>
-</DIR>
-<H2>b</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX21">backward-char (C-b)</A>
-<LI><A HREF="readline.html#IDX40">backward-delete-char (Rubout)</A>
-<LI><A HREF="readline.html#IDX50">backward-kill-line (C-x Rubout)</A>
-<LI><A HREF="readline.html#IDX54">backward-kill-word (M-DEL)</A>
-<LI><A HREF="readline.html#IDX23">backward-word (M-b)</A>
-<LI><A HREF="readline.html#IDX29">beginning-of-history (M-&#38;#60;)</A>
-<LI><A HREF="readline.html#IDX18">beginning-of-line (C-a)</A>
-<LI><A HREF="readline.html#IDX2">bell-style</A>
-</DIR>
-<H2>c</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX70">call-last-kbd-macro (C-x e)</A>
-<LI><A HREF="readline.html#IDX48">capitalize-word (M-c)</A>
-<LI><A HREF="readline.html#IDX80">character-search (C-])</A>
-<LI><A HREF="readline.html#IDX81">character-search-backward (M-C-])</A>
-<LI><A HREF="readline.html#IDX24">clear-screen (C-l)</A>
-<LI><A HREF="readline.html#IDX3">comment-begin</A>
-<LI><A HREF="readline.html#IDX65">complete (TAB)</A>
-<LI><A HREF="readline.html#IDX4">completion-query-items</A>
-<LI><A HREF="readline.html#IDX168">completion_matches</A>
-<LI><A HREF="readline.html#IDX5">convert-meta</A>
-<LI><A HREF="readline.html#IDX59">copy-backward-word ()</A>
-<LI><A HREF="readline.html#IDX60">copy-forward-word ()</A>
-<LI><A HREF="readline.html#IDX58">copy-region-as-kill ()</A>
-</DIR>
-<H2>d</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX39">delete-char (C-d)</A>
-<LI><A HREF="readline.html#IDX56">delete-horizontal-space ()</A>
-<LI><A HREF="readline.html#IDX63">digit-argument (M-0, M-1, ... M--)</A>
-<LI><A HREF="readline.html#IDX155">digit_p</A>
-<LI><A HREF="readline.html#IDX158">digit_value</A>
-<LI><A HREF="readline.html#IDX152">ding</A>
-<LI><A HREF="readline.html#IDX6">disable-completion</A>
-<LI><A HREF="readline.html#IDX73">do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, ...)</A>
-<LI><A HREF="readline.html#IDX47">downcase-word (M-l)</A>
-<LI><A HREF="readline.html#IDX83">dump-functions ()</A>
-<LI><A HREF="readline.html#IDX85">dump-macros ()</A>
-<LI><A HREF="readline.html#IDX84">dump-variables ()</A>
-</DIR>
-<H2>e</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX7">editing-mode</A>
-<LI><A HREF="readline.html#IDX8">enable-keypad</A>
-<LI><A HREF="readline.html#IDX69">end-kbd-macro (C-x ))</A>
-<LI><A HREF="readline.html#IDX30">end-of-history (M-&#38;#62;)</A>
-<LI><A HREF="readline.html#IDX19">end-of-line (C-e)</A>
-<LI><A HREF="readline.html#IDX79">exchange-point-and-mark (C-x C-x)</A>
-<LI><A HREF="readline.html#IDX9">expand-tilde</A>
-</DIR>
-<H2>f</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX169">filename_completion_function</A>
-<LI><A HREF="readline.html#IDX20">forward-char (C-f)</A>
-<LI><A HREF="readline.html#IDX32">forward-search-history (C-s)</A>
-<LI><A HREF="readline.html#IDX22">forward-word (M-f)</A>
-<LI><A HREF="readline.html#IDX131">free_undo_list</A>
-</DIR>
-<H2>h</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX36">history-search-backward ()</A>
-<LI><A HREF="readline.html#IDX35">history-search-forward ()</A>
-<LI><A HREF="readline.html#IDX10">horizontal-scroll-mode</A>
-</DIR>
-<H2>i</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX13">input-meta</A>
-<LI><A HREF="readline.html#IDX82">insert-comment (M-#)</A>
-<LI><A HREF="readline.html#IDX67">insert-completions (M-*)</A>
-</DIR>
-<H2>k</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX11">keymap</A>
-<LI><A HREF="readline.html#IDX49">kill-line (C-k)</A>
-<LI><A HREF="readline.html#IDX57">kill-region ()</A>
-<LI><A HREF="readline.html#IDX52">kill-whole-line ()</A>
-<LI><A HREF="readline.html#IDX53">kill-word (M-d)</A>
-</DIR>
-<H2>l</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX154">lowercase_p</A>
-</DIR>
-<H2>m</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX12">mark-modified-lines</A>
-<LI><A HREF="readline.html#IDX14">meta-flag</A>
-</DIR>
-<H2>n</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX28">next-history (C-n)</A>
-<LI><A HREF="readline.html#IDX34">non-incremental-forward-search-history (M-n)</A>
-<LI><A HREF="readline.html#IDX33">non-incremental-reverse-search-history (M-p)</A>
-<LI><A HREF="readline.html#IDX151">numeric</A>
-</DIR>
-<H2>o</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX15">output-meta</A>
-</DIR>
-<H2>p</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX66">possible-completions (M-?)</A>
-<LI><A HREF="readline.html#IDX74">prefix-meta (ESC)</A>
-<LI><A HREF="readline.html#IDX27">previous-history (C-p)</A>
-</DIR>
-<H2>q</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX41">quoted-insert (C-q, C-v)</A>
-</DIR>
-<H2>r</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX71">re-read-init-file (C-x C-r)</A>
-<LI><A HREF="readline.html#IDX86">readline</A>
-<LI><A HREF="readline.html#IDX25">redraw-current-line ()</A>
-<LI><A HREF="readline.html#IDX31">reverse-search-history (C-r)</A>
-<LI><A HREF="readline.html#IDX76">revert-line (M-r)</A>
-<LI><A HREF="readline.html#IDX106">rl_add_defun</A>
-<LI><A HREF="readline.html#IDX130">rl_add_undo</A>
-<LI><A HREF="readline.html#IDX172">rl_attempted_completion_function</A>
-<LI><A HREF="readline.html#IDX178">rl_basic_quote_characters</A>
-<LI><A HREF="readline.html#IDX177">rl_basic_word_break_characters</A>
-<LI><A HREF="readline.html#IDX128">rl_begin_undo_group</A>
-<LI><A HREF="readline.html#IDX115">rl_bind_key</A>
-<LI><A HREF="readline.html#IDX116">rl_bind_key_in_map</A>
-<LI><A HREF="readline.html#IDX105">rl_binding_keymap</A>
-<LI><A HREF="readline.html#IDX159">rl_callback_handler_install</A>
-<LI><A HREF="readline.html#IDX161">rl_callback_handler_remove</A>
-<LI><A HREF="readline.html#IDX160">rl_callback_read_char</A>
-<LI><A HREF="readline.html#IDX175">rl_char_is_quoted_p</A>
-<LI><A HREF="readline.html#IDX139">rl_clear_message</A>
-<LI><A HREF="readline.html#IDX162">rl_complete</A>, <A HREF="rlman.html#IDX165">rl_complete</A>
-<LI><A HREF="readline.html#IDX164">rl_complete_internal</A>
-<LI><A HREF="readline.html#IDX180">rl_completer_quote_characters</A>
-<LI><A HREF="readline.html#IDX179">rl_completer_word_break_characters</A>
-<LI><A HREF="readline.html#IDX183">rl_completion_append_character</A>
-<LI><A HREF="readline.html#IDX163">rl_completion_entry_function</A>, <A HREF="rlman.html#IDX171">rl_completion_entry_function</A>
-<LI><A HREF="readline.html#IDX176">rl_completion_query_items</A>
-<LI><A HREF="readline.html#IDX108">rl_copy_keymap</A>
-<LI><A HREF="readline.html#IDX142">rl_copy_text</A>
-<LI><A HREF="readline.html#IDX141">rl_delete_text</A>
-<LI><A HREF="readline.html#IDX189">rl_directory_completion_hook</A>
-<LI><A HREF="readline.html#IDX110">rl_discard_keymap</A>
-<LI><A HREF="readline.html#IDX132">rl_do_undo</A>
-<LI><A HREF="readline.html#IDX92">rl_done</A>
-<LI><A HREF="readline.html#IDX90">rl_end</A>
-<LI><A HREF="readline.html#IDX129">rl_end_undo_group</A>
-<LI><A HREF="readline.html#IDX101">rl_event_hook</A>
-<LI><A HREF="readline.html#IDX104">rl_executing_keymap</A>
-<LI><A HREF="readline.html#IDX185">rl_filename_completion_desired</A>
-<LI><A HREF="readline.html#IDX174">rl_filename_dequoting_function</A>
-<LI><A HREF="readline.html#IDX181">rl_filename_quote_characters</A>
-<LI><A HREF="readline.html#IDX186">rl_filename_quoting_desired</A>
-<LI><A HREF="readline.html#IDX173">rl_filename_quoting_function</A>
-<LI><A HREF="readline.html#IDX135">rl_forced_update_display</A>
-<LI><A HREF="readline.html#IDX126">rl_function_dumper</A>
-<LI><A HREF="readline.html#IDX123">rl_function_of_keyseq</A>
-<LI><A HREF="readline.html#IDX119">rl_generic_bind</A>
-<LI><A HREF="readline.html#IDX111">rl_get_keymap</A>
-<LI><A HREF="readline.html#IDX113">rl_get_keymap_by_name</A>
-<LI><A HREF="readline.html#IDX114">rl_get_keymap_name</A>
-<LI><A HREF="readline.html#IDX145">rl_getc</A>
-<LI><A HREF="readline.html#IDX102">rl_getc_function</A>
-<LI><A HREF="readline.html#IDX184">rl_ignore_completion_duplicates</A>
-<LI><A HREF="readline.html#IDX188">rl_ignore_some_completions_function</A>
-<LI><A HREF="readline.html#IDX187">rl_inhibit_completion</A>
-<LI><A HREF="readline.html#IDX148">rl_initialize</A>
-<LI><A HREF="readline.html#IDX167">rl_insert_completions</A>
-<LI><A HREF="readline.html#IDX140">rl_insert_text</A>
-<LI><A HREF="readline.html#IDX98">rl_instream</A>
-<LI><A HREF="readline.html#IDX124">rl_invoking_keyseqs</A>
-<LI><A HREF="readline.html#IDX125">rl_invoking_keyseqs_in_map</A>
-<LI><A HREF="readline.html#IDX143">rl_kill_text</A>
-<LI><A HREF="readline.html#IDX95">rl_library_version</A>
-<LI><A HREF="readline.html#IDX88">rl_line_buffer</A>
-<LI><A HREF="readline.html#IDX127">rl_list_funmap_names</A>
-<LI><A HREF="readline.html#IDX107">rl_make_bare_keymap</A>
-<LI><A HREF="readline.html#IDX109">rl_make_keymap</A>
-<LI><A HREF="readline.html#IDX91">rl_mark</A>
-<LI><A HREF="readline.html#IDX138">rl_message</A>
-<LI><A HREF="readline.html#IDX133">rl_modifying</A>
-<LI><A HREF="readline.html#IDX122">rl_named_function</A>
-<LI><A HREF="readline.html#IDX136">rl_on_new_line</A>
-<LI><A HREF="readline.html#IDX99">rl_outstream</A>
-<LI><A HREF="readline.html#IDX120">rl_parse_and_bind</A>
-<LI><A HREF="readline.html#IDX93">rl_pending_input</A>
-<LI><A HREF="readline.html#IDX89">rl_point</A>
-<LI><A HREF="readline.html#IDX166">rl_possible_completions</A>
-<LI><A HREF="readline.html#IDX94">rl_prompt</A>
-<LI><A HREF="readline.html#IDX121">rl_read_init_file</A>
-<LI><A HREF="readline.html#IDX144">rl_read_key</A>
-<LI><A HREF="readline.html#IDX97">rl_readline_name</A>
-<LI><A HREF="readline.html#IDX134">rl_redisplay</A>
-<LI><A HREF="readline.html#IDX103">rl_redisplay_function</A>
-<LI><A HREF="readline.html#IDX137">rl_reset_line_state</A>
-<LI><A HREF="readline.html#IDX149">rl_reset_terminal</A>
-<LI><A HREF="readline.html#IDX112">rl_set_keymap</A>
-<LI><A HREF="readline.html#IDX182">rl_special_prefixes</A>
-<LI><A HREF="readline.html#IDX100">rl_startup_hook</A>
-<LI><A HREF="readline.html#IDX146">rl_stuff_char</A>
-<LI><A HREF="readline.html#IDX96">rl_terminal_name</A>
-<LI><A HREF="readline.html#IDX117">rl_unbind_key</A>
-<LI><A HREF="readline.html#IDX118">rl_unbind_key_in_map</A>
-</DIR>
-<H2>s</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX43">self-insert (a, b, A, 1, !, ...)</A>
-<LI><A HREF="readline.html#IDX78">set-mark (C-@)</A>
-<LI><A HREF="readline.html#IDX16">show-all-if-ambiguous</A>
-<LI><A HREF="readline.html#IDX68">start-kbd-macro (C-x ()</A>
-</DIR>
-<H2>t</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX42">tab-insert (M-TAB)</A>
-<LI><A HREF="readline.html#IDX77">tilde-expand (M-~)</A>
-<LI><A HREF="readline.html#IDX157">to_lower</A>
-<LI><A HREF="readline.html#IDX156">to_upper</A>
-<LI><A HREF="readline.html#IDX44">transpose-chars (C-t)</A>
-<LI><A HREF="readline.html#IDX45">transpose-words (M-t)</A>
-</DIR>
-<H2>u</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX75">undo (C-_, C-x C-u)</A>
-<LI><A HREF="readline.html#IDX64">universal-argument ()</A>
-<LI><A HREF="readline.html#IDX51">unix-line-discard (C-u)</A>
-<LI><A HREF="readline.html#IDX55">unix-word-rubout (C-w)</A>
-<LI><A HREF="readline.html#IDX46">upcase-word (M-u)</A>
-<LI><A HREF="readline.html#IDX153">uppercase_p</A>
-<LI><A HREF="readline.html#IDX170">username_completion_function</A>
-</DIR>
-<H2>v</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX17">visible-stats</A>
-</DIR>
-<H2>y</H2>
-<DIR>
-<LI><A HREF="readline.html#IDX61">yank (C-y)</A>
-<LI><A HREF="readline.html#IDX38">yank-last-arg (M-., M-_)</A>
-<LI><A HREF="readline.html#IDX37">yank-nth-arg (M-C-y)</A>
-<LI><A HREF="readline.html#IDX62">yank-pop (M-y)</A>
-</DIR>
-
-</P>
-<P><HR><P>
-This document was generated on 22 May 1997 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
-translator version 1.51.</P>
-</BODY>
-</HTML>
--- a/readline/doc/readline.info	Fri Jun 06 22:08:11 1997 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2766 +0,0 @@
-This is Info file readline.info, produced by Makeinfo-1.55 from the
-input file
-/usr/homes/chet/src/bash/readline-2.1-beta2/doc/rlman.texinfo.
-
-   This document describes the GNU Readline Library, a utility which
-aids in the consistency of user interface across discrete programs that
-need to provide a command line interface.
-
-   Copyright (C) 1988, 1991 Free Software Foundation, Inc.
-
-   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: Top,  Next: Command Line Editing,  Prev: (DIR),  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.  If you do not have a meta key, the identical keystroke
-can be generated by typing ESC first, and then typing k.  Either
-process is known as "metafying" the k key.
-
-   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::.).
-
-
-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 RETURN.  You do not have to be at the end of
-the line to press RETURN; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* 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 miss typing a character that you wanted to type,
-and not notice your error until you have typed several other
-characters.  In that case, you can type C-b to move the cursor to the
-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 basic bare essentials for editing the text of an input line
-follows.
-
-C-b
-     Move back one character.
-
-C-f
-     Move forward one character.
-
-DEL
-     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-_
-     Undo the last thing that you did.  You can undo all the way back
-     to an empty line.
-
-
-File: readline.info,  Node: Readline Movement Commands,  Next: Readline Killing Commands,  Prev: Readline Bare Essentials,  Up: Readline Interaction
-
-Readline Movement Commands
---------------------------
-
-   The above table describes the most basic possible keystrokes that
-you need in order to do editing of the input line.  For your
-convenience, many other commands have been added in addition to C-b,
-C-f, C-d, and DEL.  Here are some commands for moving more rapidly
-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.
-
-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.  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.
-
-M-DEL
-     Kill from the cursor the start of the previous word, or if between
-     words, to the start of the previous word.
-
-C-w
-     Kill from the cursor to the previous whitespace.  This is
-     different than M-DEL because the word boundaries differ.
-
-   And, here is how to "yank" the text back into the line.  Yanking
-means to copy the most-recently-killed text from the kill buffer.
-
-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' you type is a
-minus sign (-), then the sign of the argument will be negative.  Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command.  For example, to give
-the C-d command an argument of 10, you could type `M-1 0 C-d'.
-
-
-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.  The Escape character is
-used to terminate an incremental search.  Control-J will also terminate
-the search.  Control-G will abort an incremental search and restore the
-original line.  When the search is terminated, the history entry
-containing the search string becomes the current line.  To find other
-matching entries in the history list, type Control-S or Control-R as
-appropriate.  This will search backward or forward in the history for
-the next entry matching the search string typed so far.  Any other key
-sequence bound to a readline command will terminate the search and
-execute that command.  For instance, a `newline' will terminate the
-search and accept the line, thereby executing the command from the
-history list.
-
-   Non-incremental searches read the entire search string before
-starting to search for matching history lines.  The search string may be
-typed by the user or part of the contents of the current line.
-
-
-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 that you would like to
-use a different set of keybindings.  You can customize programs that
-use Readline by putting commands in an "inputrc" file in your home
-directory.  The name of this file is taken from the value of the
-environment variable `INPUTRC'.  If that variable is unset, the default
-is `~/.inputrc'.
-
-   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 change the state of a few variables in Readline by using
-     the `set' command within the init file.  Here is how you would
-     specify that you wish to use `vi' line editing commands:
-
-          set editing-mode vi
-
-     Right now, there are only a few variables which can be set; so
-     few, in fact, that we just list them here:
-
-    `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-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.  The default limit is `100'.
-
-    `convert-meta'
-          If set to `on', Readline will convert characters with the
-          eigth bit set to an ASCII key sequence by stripping the eigth
-          bit and prepending an ESC character, converting them to a
-          meta-prefixed key sequence.  The default value is `on'.
-
-    `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 editing mode you
-          are using.  By default, Readline starts up in Emacs editing
-          mode, where the keystrokes are most similar to Emacs.  This
-          variable can be set to either `emacs' or `vi'.
-
-    `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 that you edit 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'.
-
-    `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-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', says to display an asterisk
-          (`*') at the start of history lines which have been modified.
-          This variable is `off' by default.
-
-    `input-meta'
-          If set to `on', Readline will enable eight-bit input (it will
-          not strip the eighth bit from 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.
-
-    `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'.
-
-    `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 have to know the name of the command that you
-     want to change.  The following pages contain tables of the command
-     name, the default keybinding, and a short description of what the
-     command does.
-
-     Once you know the name of the command, simply place the name of
-     the key you wish to bind the command to, a colon, and then the
-     name of the command on a line in the init file.  The name of the
-     key can be expressed in different ways, depending on which is most
-     comfortable for you.
-
-    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', 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).
-
-    "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 bound to the function
-          `universal-argument' (just as it was in the first example),
-          `C-x C-r' is bound to the function `re-read-init-file', and
-          `ESC [ 1 1 ~' is bound to insert the text `Function Key 1'.
-          The following escape sequences are available when specifying
-          key sequences:
-
-         ``\C-''
-               control prefix
-
-         ``\M-''
-               meta prefix
-
-         ``\e''
-               an escape character
-
-         ``\\''
-               backslash
-
-         ``\"''
-               "
-
-         ``\'''
-               '
-
-          When entering the text of a macro, single or double quotes
-          should be used to indicate a macro definition.  Unquoted text
-          is assumed to be a function name.  Backslash will quote any
-          character in the macro text, including `"' and `''.  For
-          example, the following binding will make `C-x \' insert a
-          single `\' into the line:
-               "\C-x\\": "\\"
-
-
-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 three 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 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 you saw in the previous example, terminates an
-     `$if' command.
-
-`$else'
-     Commands in this branch of the `$if' directive are executed if the
-     test fails.
-
-
-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.
-     #
-     # 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.
-
-
-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 this, or the 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, Return)'
-     Accept the line regardless of where the cursor is.  If this line is
-     non-empty, add it to the history list.  If this line was a 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 you are
-     entering.
-
-`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 current cursor
-     position (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-., 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'.
-
-
-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 `C-d', then return `EOF'.
-
-`backward-delete-char (Rubout)'
-     Delete the character behind the cursor.  A numeric arg says to kill
-     the characters instead of deleting them.
-
-`quoted-insert (C-q, C-v)'
-     Add the next character that you type to the line verbatim.  This is
-     how to insert key sequences like C-q, for example.
-
-`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 argumentss don't work.
-
-`transpose-words (M-t)'
-     Drag the word behind the cursor past the word in front of the
-     cursor moving the cursor over that word as well.
-
-`upcase-word (M-u)'
-     Uppercase the current (or following) word.  With a negative
-     argument, do the previous word, but do not move the cursor.
-
-`downcase-word (M-l)'
-     Lowercase the current (or following) word.  With a negative
-     argument, do the previous word, but do not move the cursor.
-
-`capitalize-word (M-c)'
-     Capitalize the current (or following) word.  With a negative
-     argument, do 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 the current cursor position 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.
-     Save the killed text on the kill-ring.
-
-`kill-whole-line ()'
-     Kill all characters on the current line, no matter where the
-     cursor is.  By default, this is unbound.
-
-`kill-word (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 `forward-word'.
-
-`backward-kill-word (M-DEL)'
-     Kill the word behind the cursor.  Word boundaries are the same as
-     `backward-word'.
-
-`unix-word-rubout (C-w)'
-     Kill the word behind the cursor, 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 between the point and the *mark* (saved cursor
-     position.  This text is referred to as the REGION.  By default,
-     this command is unbound.
-
-`copy-region-as-kill ()'
-     Copy the text in the region to the kill buffer, so you can yank it
-     right away.  By default, this command is unbound.
-
-`copy-backward-word ()'
-     Copy the word before point to the kill buffer.  By default, this
-     command is unbound.
-
-`copy-forward-word ()'
-     Copy the word following point to the kill buffer.  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 do completion on the text before the cursor.  This is
-     application-specific.  Generally, if you are typing a filename
-     argument, you can do filename completion; if you are typing a
-     command, you can do command completion, if you are typing in a
-     symbol to GDB, you can do symbol name completion, if you are
-     typing in a variable to Bash, you can do variable name completion,
-     and so on.
-
-`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'.
-
-
-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 that you type be metafied.  This is for
-     people without a meta key.  Typing `ESC f' is equivalent to typing
-     `M-f'.
-
-`undo (C-_, C-x C-u)'
-     Incremental undo, separately remembered for each line.
-
-`revert-line (M-r)'
-     Undo all changes made to this line.  This is like typing the `undo'
-     command enough times to get back to the beginning.
-
-`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 ouput.  If a numeric argument is supplied, the output
-     is formatted in such a way that it can be made part of an INPUTRC
-     file.  This command is unbound by default.
-
-
-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, 1994, 1996 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 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 ()'.
-
-   The function `readline ()' prints a prompt and then reads and returns
-a single line of text from the user.  The line `readline' returns is
-allocated with `malloc ()'; you should `free ()' the line when you are
-done with it.  The declaration for `readline' in ANSI C is
-
-     `char *readline (char *PROMPT);'
-
-So, one might say
-     `char *line = readline ("Enter a line: ");'
-
-in order to read a line of text from the user.  The line returned has
-the final newline removed, so only the text remains.
-
-   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, int (*FUNCTION)());'
-
-   `rl_bind_key ()' takes two arguments: KEY is the character that you
-want to bind, and FUNCTION is the address of the function to call when
-KEY is pressed.  Binding TAB to `rl_insert ()' makes TAB insert itself.
-`rl_bind_key ()' returns non-zero if KEY is not a valid ASCII character
-code (between 0 and 255).
-
-   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.
-
-* Menu:
-
-* The Function Type::	C declarations to make code readable.
-* Function Writing::	Variables and calling conventions.
-
-
-File: readline.info,  Node: The Function Type,  Next: Function Writing,  Up: Custom Functions
-
-The Function Type
------------------
-
-   For readabilty, we declare a new type of object, called "Function".
-A `Function' is a C function which returns an `int'.  The type
-declaration for `Function' is:
-
-`typedef int Function ();'
-
-   The reason for declaring this new type is to make it easier to write
-code describing pointers to C functions.  Let us say we had a variable
-called FUNC which was a pointer to a function.  Instead of the classic
-C declaration
-
-   `int (*)()func;'
-
-we may write
-
-   `Function *func;'
-
-Similarly, there are
-
-     typedef void VFunction ();
-     typedef char *CPFunction (); and
-     typedef char **CPPFunction ();
-
-for functions returning no value, `pointer to char', and `pointer to
-pointer to char', respectively.
-
-
-File: readline.info,  Node: Function Writing,  Prev: The Function Type,  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::.
-
- - 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_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: char * rl_prompt
-     The prompt Readline uses.  This is set from the argument to
-     `readline ()', and should not be assigned to directly.
-
- - Variable: char * rl_library_version
-     The version number of this revision of the library.
-
- - Variable: char * rl_terminal_name
-     The terminal type, used for initialization.
-
- - Variable: 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: Function * rl_startup_hook
-     If non-zero, this is the address of a function to call just before
-     `readline' prints the first prompt.
-
- - Variable: Function * rl_event_hook
-     If non-zero, this is the address of a function to call periodically
-     when readline is waiting for terminal input.
-
- - Variable: Function * 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
-     Utility Functions::.).
-
- - Variable: VFunction * 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: 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.
-
-
-File: readline.info,  Node: Readline Convenience Functions,  Next: Custom Completers,  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'.
-* 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 (char *name, Function *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 ()
-     Returns a new, empty keymap.  The space for the keymap is
-     allocated with `malloc ()'; you should `free ()' it when you are
-     done.
-
- - Function: Keymap rl_copy_keymap (Keymap map)
-     Return a new keymap which is a copy of MAP.
-
- - Function: Keymap rl_make_keymap ()
-     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 ()
-     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 (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
-------------
-
-   You associate keys 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.
-
-   These functions manage key bindings.
-
- - Function: int rl_bind_key (int key, Function *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, Function *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_generic_bind (int type, 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 (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.
-
- - Function: Function * rl_named_function (char *name)
-     Return the function with name NAME.
-
- - Function: Function * rl_function_of_keyseq (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 it (one of `ISFUNC', `ISKMAP', or
-     `ISMACR').
-
- - Function: char ** rl_invoking_keyseqs (Function *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 (Function *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 ()
-     Print the names of all bindable Readline functions to
-     `rl_outstream'.
-
-
-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.  I could use an undo function for the stock
-market.
-
-   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
-undo 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 ()
-     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 ()
-     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 free_undo_list ()
-     Free the existing undo list.
-
- - Function: int rl_do_undo ()
-     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 ()
-     Change what's displayed on the screen to reflect the current
-     contents of `rl_line_buffer'.
-
- - Function: int rl_forced_update_display ()
-     Force the line to be updated and redisplayed, whether or not
-     Readline thinks the screen display is correct.
-
- - Function: int rl_on_new_line ()
-     Tell the update routines that we have moved onto a new (empty)
-     line, usually after ouputting a newline.
-
- - Function: int rl_reset_line_state ()
-     Reset the display state to a clean state and redisplay the current
-     line starting on a new line.
-
- - Function: int rl_message (va_alist)
-     The arguments are a string as would be supplied to `printf'.  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 ()
-     Clear the message in the echo area.
-
-
-File: readline.info,  Node: Modifying Text,  Next: Utility Functions,  Prev: Redisplay,  Up: Readline Convenience Functions
-
-Modifying Text
---------------
-
- - Function: int rl_insert_text (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: Utility Functions,  Next: Alternate Interface,  Prev: Modifying Text,  Up: Readline Convenience Functions
-
-Utility Functions
------------------
-
- - Function: int rl_read_key ()
-     Return the next character available.  This handles input inserted
-     into the input stream via PENDING INPUT (*note Readline
-     Variables::.) and `rl_stuff_char ()', macros, and characters read
-     from the keyboard.
-
- - Function: int rl_getc (FILE *)
-     Return the next character available from 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: 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 ()
-     Initialize or re-initialize Readline's internal state.
-
- - Function: int rl_reset_terminal (char *terminal_name)
-     Reinitialize Readline's idea of the terminal settings using
-     TERMINAL_NAME as the terminal type (e.g., `vt100').
-
- - Function: int alphabetic (int c)
-     Return 1 if C is an alphabetic character.
-
- - Function: int numeric (int c)
-     Return 1 if C is a numeric character.
-
- - Function: int ding ()
-     Ring the terminal bell, obeying the setting of `bell-style'.
-
-   The following are implemented as macros, defined in `chartypes.h'.
-
- - Function: int uppercase_p (int c)
-     Return 1 if C is an uppercase alphabetic character.
-
- - Function: int lowercase_p (int c)
-     Return 1 if C is a lowercase alphabetic character.
-
- - Function: int digit_p (int c)
-     Return 1 if C is a numeric character.
-
- - Function: int to_upper (int c)
-     If C is a lowercase alphabetic character, return the corresponding
-     uppercase character.
-
- - Function: int to_lower (int c)
-     If C is an uppercase alphabetic character, return the corresponding
-     lowercase character.
-
- - Function: int 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 (char *prompt, Vfunction
-          *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
-     callback when a complete line of input has been entered.
-
- - Function: void rl_callback_read_char ()
-     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 ()
-     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 (uppercase_p (rl_line_buffer[i]))
-             rl_line_buffer[i] = to_lower (rl_line_buffer[i]);
-           else if (lowercase_p (rl_line_buffer[i]))
-             rl_line_buffer[i] = 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: Custom Completers,  Prev: Readline Convenience Functions,  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 Readline functions
-     intended for interactive use:  COUNT and INVOKING_KEY.  It
-     isolates the word to be completed and calls `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 `completion_matches ()' uses your
-     "generator" function to generate the list of possible matches, and
-     then returns the array of these matches.  You should place the
-     address of your generator function in
-     `rl_completion_entry_function'.
-
-  3. The generator function is called repeatedly from
-     `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.  When the generator function returns `(char
-     *)NULL' this signals `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 `completion_matches ()').  The default is to do filename
-     completion.
-
- - Variable: Function * rl_completion_entry_function
-     This is a pointer to the generator function for `completion_matches
-     ()'.  If the value of `rl_completion_entry_function' is `(Function
-     *)NULL' then the default filename generator function,
-     `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 `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 ** completion_matches (char *text, CPFunction
-          *entry_func)
-     Returns an array of `(char *)' which is a list of completions for
-     TEXT.  If there are no completions, returns `(char **)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 * filename_completion_function (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 * username_completion_function (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: Function * rl_completion_entry_function
-     A pointer to the generator function for `completion_matches ()'.
-     `NULL' means to use `filename_entry_function ()', the default
-     filename completer.
-
- - Variable: CPPFunction * 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' saying what the boundaries of TEXT
-     are.  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.
-
- - Variable: CPFunction * 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: CPFunction * 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: Function * 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: 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: char * rl_basic_quote_characters
-     List of quote characters which can cause a word break.
-
- - Variable: 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: 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: char * rl_filename_quote_characters
-     A list of characters that cause a filename to be quoted by the
-     completer when they appear in a completed filename.  The default
-     is empty.
-
- - Variable: 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 embedded
-     word break characters.
-
- - 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_inhibit_completion
-     If this variable is non-zero, completion is inhibit<ed.  The
-     completion character will be inserted as any other bound to
-     `self-insert'.
-
- - Variable: Function * 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: Function * 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.
-     It could be used to expand symbolic links or shell variables in
-     pathnames.
-
-
-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 *getwd ();
-     extern char *xmalloc ();
-     
-     /* The names of functions that actually do the manipulation. */
-     int com_list (), com_view (), com_rename (), com_stat (), com_pwd ();
-     int com_delete (), com_help (), com_cd (), com_quit ();
-     
-     /* A structure which contains information on the commands this program
-        can understand. */
-     
-     typedef struct {
-       char *name;			/* User printable name of the function. */
-       Function *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, (Function *)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 global 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 ();
-     char **fileman_completion ();
-     
-     /* 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 = (CPPFunction *)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.  Return the array of matches,
-        or NULL if there aren't any. */
-     char **
-     fileman_completion (text, start, end)
-          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 = 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)
-          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 = getwd (dir);
-       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:
-
-* (:                                    Utility Functions.
-* abort (C-g):                          Miscellaneous Commands.
-* accept-line (Newline, Return):        Commands For History.
-* alphabetic:                           Utility Functions.
-* backward-char (C-b):                  Commands For Moving.
-* backward-delete-char (Rubout):        Commands For Text.
-* backward-kill-line (C-x Rubout):      Commands For Killing.
-* backward-kill-word (M-DEL):           Commands For Killing.
-* backward-word (M-b):                  Commands For Moving.
-* beginning-of-history (M-<):           Commands For History.
-* beginning-of-line (C-a):              Commands For Moving.
-* bell-style:                           Readline Init File Syntax.
-* call-last-kbd-macro (C-x e):          Keyboard Macros.
-* capitalize-word (M-c):                Commands For Text.
-* character-search (C-]):               Miscellaneous Commands.
-* character-search-backward (M-C-]):    Miscellaneous Commands.
-* clear-screen (C-l):                   Commands For Moving.
-* comment-begin:                        Readline Init File Syntax.
-* complete (TAB):                       Commands For Completion.
-* completion-query-items:               Readline Init File Syntax.
-* completion_matches:                   Completion Functions.
-* convert-meta:                         Readline Init File Syntax.
-* copy-backward-word ():                Commands For Killing.
-* copy-forward-word ():                 Commands For Killing.
-* copy-region-as-kill ():               Commands For Killing.
-* delete-char (C-d):                    Commands For Text.
-* delete-horizontal-space ():           Commands For Killing.
-* digit-argument (M-0, M-1, ... M-):    Numeric Arguments.
-* digit_p:                              Utility Functions.
-* digit_value:                          Utility Functions.
-* ding:                                 Utility Functions.
-* disable-completion:                   Readline Init File Syntax.
-* do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands.
-* downcase-word (M-l):                  Commands For Text.
-* dump-functions ():                    Miscellaneous Commands.
-* dump-macros ():                       Miscellaneous Commands.
-* dump-variables ():                    Miscellaneous Commands.
-* editing-mode:                         Readline Init File Syntax.
-* enable-keypad:                        Readline Init File Syntax.
-* end-kbd-macro (C-x )):                Keyboard Macros.
-* end-of-history (M->):                 Commands For History.
-* end-of-line (C-e):                    Commands For Moving.
-* exchange-point-and-mark (C-x C-x):    Miscellaneous Commands.
-* expand-tilde:                         Readline Init File Syntax.
-* filename_completion_function:         Completion Functions.
-* forward-char (C-f):                   Commands For Moving.
-* forward-search-history (C-s):         Commands For History.
-* forward-word (M-f):                   Commands For Moving.
-* free_undo_list:                       Allowing Undoing.
-* history-search-backward ():           Commands For History.
-* history-search-forward ():            Commands For History.
-* horizontal-scroll-mode:               Readline Init File Syntax.
-* input-meta:                           Readline Init File Syntax.
-* insert-comment (M-#):                 Miscellaneous Commands.
-* insert-completions (M-*):             Commands For Completion.
-* keymap:                               Readline Init File Syntax.
-* kill-line (C-k):                      Commands For Killing.
-* kill-region ():                       Commands For Killing.
-* kill-whole-line ():                   Commands For Killing.
-* kill-word (M-d):                      Commands For Killing.
-* lowercase_p:                          Utility Functions.
-* mark-modified-lines:                  Readline Init File Syntax.
-* meta-flag:                            Readline Init File Syntax.
-* next-history (C-n):                   Commands For History.
-* non-incremental-forward-search-history (M-n): Commands For History.
-* non-incremental-reverse-search-history (M-p): Commands For History.
-* numeric:                              Utility Functions.
-* output-meta:                          Readline Init File Syntax.
-* possible-completions (M-?):           Commands For Completion.
-* prefix-meta (ESC):                    Miscellaneous Commands.
-* previous-history (C-p):               Commands For History.
-* quoted-insert (C-q, C-v):             Commands For Text.
-* re-read-init-file (C-x C-r):          Miscellaneous Commands.
-* readline:                             Basic Behavior.
-* redraw-current-line ():               Commands For Moving.
-* reverse-search-history (C-r):         Commands For History.
-* revert-line (M-r):                    Miscellaneous Commands.
-* rl_add_defun:                         Function Naming.
-* rl_add_undo:                          Allowing Undoing.
-* rl_attempted_completion_function:     Completion Variables.
-* rl_basic_quote_characters:            Completion Variables.
-* rl_basic_word_break_characters:       Completion Variables.
-* rl_begin_undo_group:                  Allowing Undoing.
-* rl_binding_keymap:                    Readline Variables.
-* rl_bind_key:                          Binding Keys.
-* rl_bind_key_in_map:                   Binding Keys.
-* rl_callback_handler_install:          Alternate Interface.
-* rl_callback_handler_remove:           Alternate Interface.
-* rl_callback_read_char:                Alternate Interface.
-* rl_char_is_quoted_p:                  Completion Variables.
-* rl_clear_message:                     Redisplay.
-* rl_complete:                          Completion Functions.
-* rl_complete:                          How Completing Works.
-* rl_completer_quote_characters:        Completion Variables.
-* rl_completer_word_break_characters:   Completion Variables.
-* rl_complete_internal:                 Completion Functions.
-* rl_completion_append_character:       Completion Variables.
-* rl_completion_entry_function:         Completion Variables.
-* rl_completion_entry_function:         How Completing Works.
-* rl_completion_query_items:            Completion Variables.
-* rl_copy_keymap:                       Keymaps.
-* rl_copy_text:                         Modifying Text.
-* rl_delete_text:                       Modifying Text.
-* rl_directory_completion_hook:         Completion Variables.
-* rl_discard_keymap:                    Keymaps.
-* rl_done:                              Readline Variables.
-* rl_do_undo:                           Allowing Undoing.
-* rl_end:                               Readline Variables.
-* rl_end_undo_group:                    Allowing Undoing.
-* rl_event_hook:                        Readline Variables.
-* rl_executing_keymap:                  Readline Variables.
-* rl_filename_completion_desired:       Completion Variables.
-* rl_filename_dequoting_function:       Completion Variables.
-* rl_filename_quote_characters:         Completion Variables.
-* rl_filename_quoting_desired:          Completion Variables.
-* rl_filename_quoting_function:         Completion Variables.
-* rl_forced_update_display:             Redisplay.
-* rl_function_dumper:                   Associating Function Names and Bindings.
-* rl_function_of_keyseq:                Associating Function Names and Bindings.
-* rl_generic_bind:                      Binding Keys.
-* rl_getc:                              Utility Functions.
-* rl_getc_function:                     Readline Variables.
-* rl_get_keymap:                        Keymaps.
-* rl_get_keymap_by_name:                Keymaps.
-* rl_get_keymap_name:                   Keymaps.
-* rl_ignore_completion_duplicates:      Completion Variables.
-* rl_ignore_some_completions_function:  Completion Variables.
-* rl_inhibit_completion:                Completion Variables.
-* rl_initialize:                        Utility Functions.
-* rl_insert_completions:                Completion Functions.
-* rl_insert_text:                       Modifying Text.
-* rl_instream:                          Readline Variables.
-* rl_invoking_keyseqs:                  Associating Function Names and Bindings.
-* rl_invoking_keyseqs_in_map:           Associating Function Names and Bindings.
-* rl_kill_text:                         Modifying Text.
-* rl_library_version:                   Readline Variables.
-* rl_line_buffer:                       Readline Variables.
-* rl_list_funmap_names:                 Associating Function Names and Bindings.
-* rl_make_bare_keymap:                  Keymaps.
-* rl_make_keymap:                       Keymaps.
-* rl_mark:                              Readline Variables.
-* rl_message:                           Redisplay.
-* rl_modifying:                         Allowing Undoing.
-* rl_named_function:                    Associating Function Names and Bindings.
-* rl_on_new_line:                       Redisplay.
-* rl_outstream:                         Readline Variables.
-* rl_parse_and_bind:                    Binding Keys.
-* rl_pending_input:                     Readline Variables.
-* rl_point:                             Readline Variables.
-* rl_possible_completions:              Completion Functions.
-* rl_prompt:                            Readline Variables.
-* rl_readline_name:                     Readline Variables.
-* rl_read_init_file:                    Binding Keys.
-* rl_read_key:                          Utility Functions.
-* rl_redisplay:                         Redisplay.
-* rl_redisplay_function:                Readline Variables.
-* rl_reset_line_state:                  Redisplay.
-* rl_reset_terminal:                    Utility Functions.
-* rl_set_keymap:                        Keymaps.
-* rl_special_prefixes:                  Completion Variables.
-* rl_startup_hook:                      Readline Variables.
-* rl_stuff_char:                        Utility Functions.
-* rl_terminal_name:                     Readline Variables.
-* rl_unbind_key:                        Binding Keys.
-* rl_unbind_key_in_map:                 Binding Keys.
-* self-insert (a, b, A, 1, !, ...):     Commands For Text.
-* set-mark (C-@):                       Miscellaneous Commands.
-* show-all-if-ambiguous:                Readline Init File Syntax.
-* start-kbd-macro (C-x ():              Keyboard Macros.
-* tab-insert (M-TAB):                   Commands For Text.
-* tilde-expand (M-~):                   Miscellaneous Commands.
-* to_lower:                             Utility Functions.
-* to_upper:                             Utility Functions.
-* transpose-chars (C-t):                Commands For Text.
-* transpose-words (M-t):                Commands For Text.
-* undo (C-_, C-x C-u):                  Miscellaneous Commands.
-* universal-argument ():                Numeric Arguments.
-* unix-line-discard (C-u):              Commands For Killing.
-* unix-word-rubout (C-w):               Commands For Killing.
-* upcase-word (M-u):                    Commands For Text.
-* uppercase_p:                          Utility Functions.
-* username_completion_function:         Completion Functions.
-* visible-stats:                        Readline Init File Syntax.
-* yank (C-y):                           Commands For Killing.
-* yank-last-arg (M-., M-_):             Commands For History.
-* yank-nth-arg (M-C-y):                 Commands For History.
-* yank-pop (M-y):                       Commands For Killing.
-
-
-
-Tag Table:
-Node: Top1048
-Node: Command Line Editing1661
-Node: Introduction and Notation2312
-Node: Readline Interaction3321
-Node: Readline Bare Essentials4510
-Node: Readline Movement Commands6040
-Node: Readline Killing Commands6931
-Node: Readline Arguments8634
-Node: Searching9608
-Node: Readline Init File11209
-Node: Readline Init File Syntax12272
-Node: Conditional Init Constructs20062
-Node: Sample Init File22344
-Node: Bindable Readline Commands25378
-Node: Commands For Moving26129
-Node: Commands For History26977
-Node: Commands For Text29591
-Node: Commands For Killing31334
-Node: Numeric Arguments33361
-Node: Commands For Completion34486
-Node: Keyboard Macros35370
-Node: Miscellaneous Commands35929
-Node: Readline vi Mode38740
-Node: Programming with GNU Readline40496
-Node: Basic Behavior41365
-Node: Custom Functions44678
-Node: The Function Type45279
-Node: Function Writing46124
-Node: Readline Variables47208
-Node: Readline Convenience Functions50296
-Node: Function Naming51027
-Node: Keymaps52254
-Node: Binding Keys53968
-Node: Associating Function Names and Bindings55912
-Node: Allowing Undoing57490
-Node: Redisplay60075
-Node: Modifying Text61146
-Node: Utility Functions62057
-Node: Alternate Interface64176
-Node: Custom Completers67470
-Node: How Completing Works68191
-Node: Completion Functions71187
-Node: Completion Variables74202
-Node: A Short Completion Example81344
-Node: Concept Index93650
-Node: Function and Variable Index94395
-
-End Tag Table
--- a/readline/doc/readline.ps	Fri Jun 06 22:08:11 1997 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3856 +0,0 @@
-%!PS (but not EPSF; comments have been disabled)
-%DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi
-%DVIPSParameters: dpi=300, compressed, comments removed
-%DVIPSSource:  TeX output 1997.05.22:1433
-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-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{dup dup 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 dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /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 dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup 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 /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-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 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-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 /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /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
-TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi)
-@start /Fa 1 47 df<127012F8A212F012E005057B840E>46 D
-E /Fb 1 47 df<1238127C12FCA212F8127006067A8512>46 D E
-/Fc 1 59 df<126012F0A2126004047D830B>58 D E /Fd 52 127
-df<126012F0AD12601200A4126012F0A212600417789614>33 D<EA071CA5EA7FFFB512
-80A2380E3800A7B51280A26C1300EA1C70A511177F9614>35 D<EA01801203EA06005A12
-1C121812385AA35AA91270A37E1218121C120C7EEA03801201091D799914>40
-D<128012C01260123012381218121C120EA31207A9120EA3121C121812381230126012C0
-1280081D7C9914>I<EA0380A3EA638CEAF39EEA7FFCEA3FF8EA0FE0A2EA3FF8EA7FFCEA
-F39EEA638CEA0380A30F107E9214>I<127012F812FCA2127C120C1218123012E012C006
-0A798414>44 D<EAFFFEA30F037E8C14>I<127012F8A312700505798414>I<EA07C0EA0F
-E0EA1C70EA3838EA3018EA701CA2EAE00EA9EA701CA2EA3838A2EA1C70EA0FE0EA07C00F
-177E9614>48 D<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>I<130E133E
-137C13F0EA03E0EA07C0EA1F00123E12F85A7E123E7EEA07C0EA03E0EA00F0137C133E13
-0E0F137E9414>60 D<124012E012F8127C121EEA0F80EA07C0EA01F0EA00F8133E131E13
-3E13F8EA01F0EA07C0EA0F80EA1E00127C5A12E012400F157E9514>62
-D<EA1FE0EA3FF8EA701CEAE00EA21240EA003C137013E0EA01C0EA0380A41300C7FCA412
-03EA0780A2EA03000F177E9614>I<EA01E0EA07F0EA0E38EA181CEA38FC1271EA731E12
-77EAEE0EA7EA771CEA7318EA71F0EA38E0EA1806EA0E1EEA07F8EA01F00F177E9614>I<
-EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA238FE3F
-80A211177F9614>I<EAFFF013FCEA381E130E1307A4130E131EEA3FFCA2EA381E130E13
-07A5130E131EEAFFFC13F810177F9614>I<3801F180EA07FFEA0E1FEA1C071238EA7003
-A348C7FCA738700380A338380700121CEA0E0EEA07FCEA01F011177F9614>I<EAFFE013
-F8EA383C7F130E7FA3EB0380A8EB0700A2130E131E5BEAFFF813E011177F9614>I<B5FC
-A2EA3807A490C7FCA21338A2EA3FF8A2EA3838A290C7FCA3EB0380A4B5FCA211177F9614
->I<B4FCA21238AF1307A4B5FCA210177E9614>76 D<38FC1F80A2007C1300EA7637A4EA
-7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>I<38FE3F80A2383E
-0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA211177F9614>I<EAFFE0
-13F8EA383C131C7FA45B133CEA3FF85BEA38387FA51480EB1DC0A238FE0F80EB07001217
-7F9614>82 D<EA0FCCEA1FFCEA307CEA603CEAE01CA313001270127EEA3FE0EA0FF0EA01
-F8EA001C131E130E126012E0A2EAF01CEAF838EAFFF0EAC7E00F177E9614>I<387FFF80
-B5FCEAE1C3A43801C000AFEA0FF8A211177F9614>I<EAFFE0A21200B3A712FFA20B1D7F
-9914>93 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C1C127012E0A3EA70
-7C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C13
-80EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<EA03F8EA0FFEEA1C
-0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13
-7EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301EEA383E381FEFC0EA
-07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012
-601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA038EEA07041300A3
-EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA383B38301800EA70
-1CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA700F38E00380A43870
-0700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1DFEEA1F86EA1E0712
-1CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A20D18
-7C9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C
-131C7F38FF1F80A21117809614>107 D<EAFF80A21203B3EAFFFEA20F177E9614>I<EAFB
-8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78EAFDFEEA1F86EA
-1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA70
-1CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380
-EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218808F14>I<EA03
-E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7EA0007A6EB3FE0
-A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EAFFF0A211107F8F
-14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA001CEA600612E012
-F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E00A8130EA3131C
-EA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03E71310808F14>I<
-38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA311107F8F14>I<38FE3F
-80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<EA7E
-3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E781338487E38FE3F80A21110
-7F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370A25B1201A25BA348
-5A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C1338EA007013E0EA01
-C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I<EA1C10EA3F38EAE7E0EA
-41C00D047D9614>126 D E /Fe 2 121 df<1270A212F0126004047D830B>46
-D<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F120113381202487EEA081E
-123838FC3FC013107F8F14>120 D E /Ff 39 123 df<13FEEA038138060180EA0E0338
-1C010090C7FCA5B51280EA1C03AE38FF8FF0141A809915>12 D<EBFF80EA0383EA060312
-0E121CA6B5FCEA1C03AE38FF9FF0141A809915>I<126012F0A212701210A31220A21240
-A2040B7D830B>44 D<EAFFC0A20A0280880D>I<EA07E0EA1C38EA381CEA300CEA700EEA
-6006A2EAE007AAEA6006A2EA700EEA300CEA381CEA1C38EA07E010187F9713>48
-D<12035AB4FC1207B3A2EA7FF80D187D9713>I<EA0F80EA1060EA2030EA4038EA803CEA
-C01C12E01240EA003C1338A21370136013C0EA018013001202EA040412081210EA3008EA
-3FF8127F12FF0E187E9713>I<EA07E0EA1838EA201CEA601EEA700EEA201E1200131CA2
-13381370EA07E0EA0038131C130E130FA212E0A212C0EA400EEA601CEA1838EA07E01018
-7F9713>I<1318A21338137813F813B8EA01381202A212041208121812101220124012C0
-B5FCEA0038A6EA03FF10187F9713>I<EA3018EA3FF013E01380EA2000A5EA2FC0EA3060
-EA2030EA00381318131CA2124012E0A2EA8018EA40381330EA30E0EA0F800E187E9713>
-I<EA01F8EA0704EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEA
-E0061307A31260A2EA7006EA300EEA180CEA0C38EA07E010187F9713>I<1240EA7FFF13
-FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2120EA512041019
-7E9813>I<EA07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03
-E0EA0CF8EA307CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>
-I<EA07E0EA1C30EA3018EA700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07
-C7EA00071306130E130C12701318EA6030EA3060EA0F8010187F9713>I<EA1FC0EA3870
-7FEA101C1200A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F8F0011107F8F13
->97 D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA
-1906EA10F8131A809915>I<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C
-18EA07E00E107F8F11>I<133F1307A9EA03E7EA0C17EA180F487E127012E0A612601270
-6C5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEA
-E000A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C10
-1300A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF3818718038303000EA7038A4EA
-30306C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07
-E011187F8F13>I<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<
-1218123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F0013
-0C5B13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107
-D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301
-AB39FF9FE7F81D107F8F20>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF01410808F15>
-I<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA381CEA1C38EA07E010
-107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C01480381E0300EA1D
-06EA1CF890C7FCA6B47E1317808F15>I<EA03E1EA0C13EA180BEA300FEA700712E0A612
-70A26C5AEA1C37EA07C7EA0007A6EB3FE013177F8F14>I<EAFC78EA1D9CEA1E1C1308EA
-1C00ABEAFF800E10808F0F>I<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0EA1FE0
-EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238EAFFC0
-EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E
-0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2
-EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16
-081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C
-1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0
-12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C
-5AA248C7FCA212E112E212E4127811177F8F14>I<EAFFF8EAE07012C0EA80E0EA81C0A2
-EA0380EA0700A2EA0E04121CA2EA380812701338EAFFF80E107F8F11>I
-E /Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012
-F0AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E /Fh 28
-123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC01387ED83
-C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11
-D<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80B6FCA2
-380FC01FB2397FF8FFF0A21C237FA220>I<13181330136013C01201EA0380120713005A
-121EA2123E123CA2127CA3127812F8AD1278127CA3123CA2123E121EA27E7E13801203EA
-01C012001360133013180D317BA416>40 D<EA07FE381FFF80383F07E06D7E130180121E
-1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA7C02EA7E0C391FF87F803807E03F1916
-7E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF03EEBC01F9038800F8015C0140715E0A7
-15C0A2140F15809038C01F00381E707E381C3FFC38180FE01B237EA220>I<EBFF800007
-13E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6127C127EA2003E13186C133038
-0FC0603807FFC0C6130015167E9519>I<49B4FCA2EB003FAB13FE3807FFBF380FC1FF48
-C67E003E7F127E127CA212FCA7127C127E123E6C5B380F81FF3907FF3FE0EA01FC1B237E
-A220>I<13FE3807FF80380F83C0381E01E0383E00F0127E007C13F8147812FCB512F8A2
-00FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0C6130015167E951A>I<EB1F80
-EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC000A6EAFFFEA2EA0FC0B2EA7FFCA21423
-7EA212>I<9038FE0F803903FF9FC0380F83E3381F01F3391E00F000003E7FA5001E5BEA
-1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C381FFFE014FC6C13FF7E001F1480
-397C001FC00078130F00F81307A3007CEB0F806CEB1F00381F807E6CB45A000113E01A21
-7F951D>I<B47EA2121FABEB83F0EB8FFCEB987EEBA03EEBC03FA21380AE39FFF1FFE0A2
-1B237DA220>I<121E123FEA7F80A4EA3F00121EC7FCA6EAFF80A2121FB2EAFFF0A20C24
-7EA30F>I<B47EA2121FABECFF80A2EC3C00143014E0EB81C00183C7FC1386139E13BE13
-FFEBDF80EB8FC01307806D7E6D7E130080147E39FFE1FFC0A21A237EA21E>107
-D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F803F890390FFE0FFE3A1F183F
-183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0A22C167D9531>I<38
-FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B167D9520>I<13FF00
-0713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C133E007E137E003E137C
-6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBFFC381FF07EEBC01F90
-38800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEBBFFCEB8FE00180C7FC
-A8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF381F00DF48137F007E7FA2127C
-12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8903801FFE0A21B207E951E>
-I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8A214167E9518>I<38
-07F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003F
-C0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E9517>I<487EA41203A2
-1207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FEEA01F811207F9F16>
-I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B167D9520>I<39FFF01F
-E0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0EB
-7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FCA23A1F807C00E0D80F
-C014C08001E013010007017F1380A2D803F0EB0300ECCF8301F81387D801F913C61487D8
-00FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026167F9529>I<39FFF0
-7FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7FC7F6D7E497EEB37E0
-EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B167F951E>I<39FFF0
-1FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0
-EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8
-FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E0138038C03F005B137EC6
-5A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA7E03B5FCA214167E95
-19>I E /Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA
-07FCEA1FFF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42
-D<EB7C38EA01FF000713F8EA0F83EA1E00001C13785A14385AA214005AA812701438A27E
-A26C1370001E13F0380F83E03807FFC00001138038007C00151E7E9D1A>67
-D<B512F8A3381C0038A51400A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA316
-1E7E9D1A>69 D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7
-FCA8EA7FE012FF127F161E7F9D1A>I<B51280A33801C000B3A6B51280A3111E7C9D1A>
-73 D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B
-7F121DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF
-81FE387F00FC171E7F9D1A>75 D<EA7FE0487E6C5A000EC7FCB3141CA5387FFFFCB5FC7E
-161E7F9D1A>I<EAFFFEEBFF8014C0381C03E0EB00F0147014781438A41478147014F0EB
-03E0381FFFC01480EBFE00001CC7FCA9B47EA3151E7E9D1A>80 D<38FF01FEA3381C0070
-A3001E13F0000E13E0A3380701C0A438038380A43801C700A4EA00C613EEA3136C137CA2
-1338171E7F9D1A>86 D<387FFFC0B512E0A26C13C013047D7E1A>95
-D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA3F83EA7803127012
-E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97 D<12FEA3120EA6133EEBFF
-80000F13E0EBC1F0EB8070EB0038120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E
-138038063E00161E7F9D1A>I<EBFF80000313C0000F13E0EA1F01383C00C04813001270
-A25AA51270A2007813707E381F01F0380FFFE0000313C03800FE0014157D941A>I<EB1F
-C0A31301A6EA01F1EA07FDEA0FFFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807
-EA3E0F381FFFFCEA07FDEA01F1161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01
-387800E01270481370A2B512F0A300E0C7FC1270A2007813707E381F01F0380FFFE00003
-13803800FE0014157D941A>I<EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0
-B5FCA23800E000AF383FFF804813C06C1380151E7F9D1A>I<12FEA3120EA6133EEBFF80
-000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D1A>104
-D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80B512C06C1380121F7C9E1A>I<
-EAFFE0A31200B3A6B512E0A3131E7D9D1A>108 D<387CE0E038FFFBF8EA7FFF381F1F1C
-EA1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>I<EAFE3EEBFF80B5
-12C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>I<EA01F0EA07FCEA1F
-FF383E0F80EA3C07387803C0EA700138E000E0A6EAF001007013C0EA7803383C0780EA3E
-0F381FFF00EA07FCEA01F013157D941A>I<EAFE3EEBFF80B512E0380FC1F0EB8070EB00
-38120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E1380EB3E0090C7FCA8EAFFE0A3
-16207F941A>I<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFF
-B5FC7E17157F941A>114 D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E0
-13FF6C1380EB3F00141C7F9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7E
-EA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E00E0A3380701C0A338038380
-A33801C700A3EA00EEA3137CA2133817157F941A>I<387FC7F8EBCFFCEBC7F8380703C0
-38038380EBC700EA01EFEA00FE137C13781338137C13EE120113C738038380000713C013
-01387FC7FC00FF13FE007F13FC17157F941A>120 D<387FC7FC00FF13FE007F13FC380E
-00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7A213E61366136E133CA31338
-A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F941A>I
-E /Fj 1 59 df<127012F8A3127005057C840D>58 D E /Fk 52
-122 df<123C127E12FFA4127E123C08087C8711>46 D<EB7F803803FFF03807E1F8380F
-807C48487E48133F003E7F007E1480A400FE14C0AD007E1480A46CEB3F00A26C133E6C6C
-5A3807E1F86CB45A38007F801A237EA21F>48 D<131C133C13FC12FFA21200B3AA387FFF
-FCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14FF
-147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370EB
-E003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48B4
-FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8EB
-07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214FE
-A2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F813
-01130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A1270
-5AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF814
-F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC7127E
-A3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE001823
-7DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA2007E133C
-1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E123F6C
-137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512C0A215
-804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25BA2
-13F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F8381C007C48133C14
-1E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313E014F8000F13FC
-EA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C1338381F80F03807
-FFE00001130018237DA21F>I<13FF000313C0380F83E0381F00F04813F8007E137CA214
-7E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C007E13
-FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141CA2143E
-A3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB
-1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C7120FA248
-6E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F0007FED3F80ED1FC0ED0F
-E0A216F0A21507150FA216E0151F16C0ED7F80913801FE0090B512F815FF9039F0003FC0
-ED0FE0ED07F016F8150316FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F826257EA42C
->I<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301484813
-0048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C143012
-0F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013C02525
-7DA42C>I<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2140E14
-1EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223
-257EA428>69 D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5
-FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F8
-00AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3
-AFB512E0A213257EA417>I<B539E007FF80A2D803F8C7EA780016605E4B5A0307C7FC15
-0E15185D5D5DEC03804AC8FC140E141F4A7E147FECDFC09038FB8FE09038FF0FF0EBFC07
-496C7E816E7E1400157F82153F6F7E6F7E8215076F7E82B539E03FFFC0A22A257EA430>
-75 D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FCB6FCA220
-257EA425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C130CA26D6C
-1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3EC3F06A2EC
-1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>I<D8FFF890
-3807FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13036D7E6D7E80EC7F80
-EC3FC0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3FD8ED1FF8150F150715
-03A2150115001678486C1438D8FFFC1418A22B257EA430>I<B67E15F83903F801FEEC00
-7F6F7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F803F06E7E6E7E157EA2
-157FA482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B257EA42E>82
-D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<
-007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400
-B3A390B512FEA226247EA32B>I<B539E00FFFC0A2D803F8C7EA78001630B3A700015D7F
-00005D137C6D495A6D0107C7FC90380FE03E903803FFF89038007FC02A257EA42F>I<B5
-398001FFE0A2D807F8C7EA1C0000031518A26D1438000115306D1470000015607F6D5C80
-013F495AA2ECC003011F91C7FC6E5A010F130614F001075BA26D6C5AA2ECFC3801011330
-ECFE700100136014FF6E5AA26E5AA36EC8FCA2140EA22B257FA42E>I<B53B81FFFE01FF
-F0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D496C1338000017304B
-7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E0138190280FE0C03F83
-C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14FC6D486D5AA24A13
-0301005DA24A130102785CA202306D5A3C257FA43F>I<B539C001FFE0A2D807F8C7EA1C
-006C6C141816386C6C14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7FC90380FF006
-150E903807F80C6D6C5A15386D6C5A903800FF6015E06E5A6E5AAE90380FFFFCA22B257F
-A42E>89 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA
-0FC0EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
-D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
-A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
-7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
-EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
-0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
-FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
-12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
-17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
-C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
-007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
-13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
-FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
-07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
-C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC1FF0A2EC0780
-EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB80FC147E80A2
-EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EAFFFCA20E267E
-A511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001
-A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E
-0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803FFF038
-07C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A2381F807E
-6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F007E001
-C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00
-EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013
-A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF0
-00A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0
-EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB5
-12C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07F
-E0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<39FFF8
-0FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00005B13FE
-EB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<3BFFF9FFE0FF80A23B1F
-C03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015E02601F8635B
-A29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA2011E133CA3010C
-131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C6C5A00001360
-EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F3907003F804813
-1F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00
-031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA2
-1306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720>I
-E /Fl 28 122 df<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF03803
-8070A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>12
-D<EAFFF0A20C027E8A0F>45 D<0007B512F83900F800780178133815185B1508A53901E0
-0800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E>
-70 D<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC1402140848485A5C
-146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E81140781140381
-380F00016D487E39FFF00FFE231F7E9E23>75 D<EA07F8EA0C0CEA1E061307121C1200A3
-13FFEA07C7EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F878014147D9317
->97 D<1207123F120F7EA2120EA65A137CEA1D83381E0180001C13C0EB00E05A14F0A538
-7001E0A214C013031480EB0700EAE80EEACC38EA83E014207B9F19>I<13FEEA0383380E
-0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314>
-I<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278
-12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07
-0EEA0E07121C383803801278127012F0A2B5FC00F0C7FC5AA46C5AEA7002EA3004EA1C18
-EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC0001201A5485AEA3FFCEA
-0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E11EBE1A33801C1C238
-0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0
-14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012
-0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6
-381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213C0EA0180C7FCA6EA03
-80121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>I<13E0120712011200
-A2485AA6485AEB81FCEB80F014C0EB81801400EA07045B13181338137C131C120E7FA213
-0F7F1480EA1C03381E07C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0
-A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>I<390387C07C391F98618639
-07A072073903C03403EB80380007EB7807EB0070A5000EEBE00EA64848485A001EEBE01E
-3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A03803C0601380000713E01300
-A5380E01C0A6381C0380001E13C038FF8FF014147E9319>I<13FCEA0387380E0180381C
-00C04813E0A24813F012F0A438E001E0A214C0130300F0138038700700EA380E6C5AEA07
-E014147D9317>I<EBE3E03807EC383800F01C497E140F48487E1580A53903800F00A214
-0E141E141C5C38074070EB61C0011FC7FC90C8FCA3120EA4121EEAFFC0191D809319>I<
-EBFC2038038260EA0702381E01E0123C003813C0127812F0A438E00380A212F0A2130712
-7038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0131D7D9318>I<EA038E381FB3
-80EA07C71203EB8300EA078090C7FCA5120EA65A121EEAFFC011147E9312>I<EA01F9EA
-0607EA080312181301EA3802EA3C00121F13F0EA07FCEA01FEEA001FEA40071303A21260
-1306EAF004EAC818EA87E010147F9312>I<1380EA0100A35A5A5A121EEAFFF8EA0E00A4
-5AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03A2
-38380700A6EA700EA4131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E000
-1C13C01480121E380E01005B13025B12075BA25BEA039013A013E05B5B120190C7FC1514
-7C9318>I<39FF9FE1FC393C078070391C030060148015401580EA0E0790380D81001309
-EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C485A1460000213401E147C9321>
-I<381FF0FF3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E134E
-1387EA0107380203801204380C01C0383C03E038FE07FC18147F9318>I<390FF83F8039
-01E00E00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C13
-3813181310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I
-E /Fm 8 89 df<903807F00890383C0C189038E003383901C000B8D80780137848C71238
-120E001E14185A1508127C1278150012F8A6EC1FFF0078EB00F81578127C123CA27E120E
-120F6C7ED801C013B83900E0011890383C0E08903807F00020217C9F27>71
-D<EAFFF0EA0F00B3ABEAFFF00C1F7D9E12>73 D<B4EB0FF8390F8003E0EC0080EA0BC0EA
-09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F01478A2143C141EA214
-0F1407A214031401123E38FF80001D1F7C9E25>78 D<EB1FE0EB70383801C00E48487E39
-070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8147CA90078147800
-7C14F8A2003C14F0003E1301001E14E06CEB03C06C148039038007003801E01E38007038
-EB1FE01E217C9F26>I<B512F0380F803E0007130FEC0780EC03C0A215E0A415C0A2EC07
-80EC0F00143EEBFFF00180C7FCAD487EEAFFFC1B1F7D9E22>I<3803F020380C0C603818
-03E0EA30005A146012E01420A36C13007E127CEA7F80EA3FFC6CB4FC00071380000113C0
-38000FE013031301EB00F014707EA46C136014E06C13C038F8018038C60300EA81FC1421
-7C9F1C>83 D<39FFF00FF8390F0003E0EC0080B3A46CEB01001380120314026C6C5A6C6C
-5AEB3830EB0FC01D207C9E25>85 D<397FF807FE390FE001F0D807C013C06C6C6C5A0001
-49C7FCEBF0023800F806EB78046D5AEB3E18EB1F106D5A14C0130713036D7E497EEB06F8
-EB0478EB087CEB183EEB101EEB201F496C7EEBC007496C7ED801007F486D7E481300391F
-8001F83AFFC007FF80211F7E9E25>88 D E /Fn 34 121 df<EB01C01303130F137FEA1F
-FFB5FC13BFEAE03F1200B3B1007FB512F0A31C2E7AAD28>49 D<EB3FE03801FFFE0007EB
-FF80D80F8013C0391E003FE00038EB1FF0007CEB0FF8007EEB07FCB4FC018013FEA21403
-A2EA7F00003E1307C7FC15FCA2EC0FF8A215F0EC1FE015C0EC3F80EC7F00147E14F8495A
-495A495A49C7FC011E130E5B133849131E49131C485A48C7123C48B512FC5A5A5A4814F8
-B6FCA31F2E7CAD28>I<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91F
-F8EB079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607
-A2485A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E
-6D150E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FF
-FEC7FCD9003F13F80203138031317CB03A>67 D<B812F0A3C6903880003FEE07F8160316
-00A21778A21738A3171C1507A31700A25D5D5D91B5FCA3EC803F818181A21707A392C712
-0EA4171EA2173CA2177C17FC16011607163FB812F8A330317EB035>69
-D<B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D
-5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>I<DA03FF1303027FEBF0
-0749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49487F4848C87E485A0007
-824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B512F8127F7FDB00011300
-123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497ED907FFEB3E3F01019038
-FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B61280A3C6EB8000B3B3A7B61280A319
-317EB01E>73 D<B67EA3000190C9FCB3A9EE0380A416071700A25EA35E5E5E5E4B5A150F
-B7FCA329317DB030>76 D<B56C49B512C08080C66D90390003E0006E6E5AEBEFFC13E780
-EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E16806E13C0ED7FE0ED3FF015
-1F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1EE1FF9EE0FFD160717FF8282
-82177F173FA2171F170F486C1507B500E014031701A23A317EB03F>78
-D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FFA717FEA2EE
-07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB037>80
-D<B77E16F816FEC690398003FF809238007FE0EE1FF0707EA283160783A65F160F5F4C5A
-4C5A4C5ADB03FFC8FC91B512F816E091388007F8ED01FC6F7E167F83707EA283A583A4F0
-038017F8161F1900706C5AB6398003FE0E933801FFFC9338001FF039317EB03C>82
-D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603
-A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807C000
-715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801FC002
-3FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C1780
-6E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075DA26E
-130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C021F13
-3815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238317EB0
-3D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FC
-A414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F800D39
-3FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 D<EA01F812FFA3120F12
-07ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E049EB07F016F8A2ED03FC
-A316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F809039C3C0FE00903880FFF8
-9038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803F0033907E007F8120FEA
-1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2001F14386C7E00071470
-3903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED0FC0EC07FFA3EC007F15
-3FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F4848133F123FA2485AA312
-FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F3FFE38007FFEEB0F
-F027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E03907E001F0000F14F839
-1FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7FCA4127FA36C6C130712
-1F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807FE0020207E9F25>I<EB
-01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC1203EC07E0EC018091C7
-FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90391FF007C09039FFFE3F
-E03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2
-000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C
-14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC
-0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F
-28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013809039F9801FC0EBFB00
-01FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E487E487EA46C5A6C5A6C
-5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA01F812FFA3120F1207B3
-B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01
-E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3
-B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1
-801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFF
-C03901FC07F03903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300
-FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF0
-39007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFFFC9038FBE07F9039FF00
-3F80D807FEEB1FC049EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2ED
-0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A327
-2E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07E0
-EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C13
-3E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F
-01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F
-8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7
-FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07E0
-00FFEB03FFA3000FEB003F0007141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF90
-387FFF1FEB0FFC28207D9F2D>I<B53A1FFFE03FF8A33C0FF000FE0007806D150300076E
-EB0700816D5D00039138FF800EA26C6C486D5A15DF01FF153C6C9039038FE038A2D97F87
-6D5A150702C714F0D93FCF6D5AECCE03D91FFEEBF9C09138FC01FD16FF010F5D4A7EA26D
-486DC7FCA20103147E4A133EA26D48131C35207E9F3A>119 D<3A7FFF807FFCA33A03FC
-000F006C6C131E6C6C5BEC803890387FC078013F5B90381FE1E090380FF3C0ECFF806D90
-C7FC6D5A13016D7E81815B903803DFE09038078FF08190380F07FC90381E03FEEB3C0149
-6C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA328207F9F2B>I
-E /Fo 1 14 df<14FF010713E090381F00F80178131E01E01307D80180EB018048C812C0
-00061560481530A248151848150CA2481506A4481503A900601506A46C150CA26C15186C
-1530A26C15606C15C06C6CEB0180D800E0EB07000178131E011F13F8903807FFE0010090
-C7FC282B7EA02D>13 D E /Fp 54 122 df<1306130C13181338137013E01201EA03C0A2
-EA0780A2120F13005AA2123EA3127EA3127CA212FCAE127CA2127EA3123EA37EA27E1380
-1207A2EA03C0A2EA01E01200137013381318130C13060F3C7AAC1A>40
-D<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A21206120E5A5A12100A
-157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<EB7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00FE14C0A3
-15E0A5007E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013C0A3EC1F
-80123E127FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622
->57 D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F14
-80A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303
-000181491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8
-001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EA
-FE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1F
-F8B712E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF0
-0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290
-C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039
-7FF007C0011FB512800107EBFE009038007FF028297CA831>I<B612FCEDFF8016E03A03
-FC001FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07F0A417F8AA17F0A3EE0FE0
-A217C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7FC2D297EA834>I<B712E0
-A33903FC001FED07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3
-EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327
-297EA82C>I<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A31600
-1403A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387F
-E003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F48488048488048
-4880485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E
-6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5
-D8F00FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835
->I<B512F0A33803FC00B3B1B512F0A314297EA819>I<B500F0EBFFFEA3D803FCC7EA0F00
-161E5E5E16E0ED03C04B5A4BC7FC151E5D15F04A5A4A5A1407140F4A7EEC7FF04A7EEBFD
-E79038FFC3FCEC83FE9038FE01FF497E6F7E826F7E151F6F7E8215076F7E6F7E8281EE7F
-80B539F00FFFFEA32F297EA835>75 D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A2
-1507A2150FA2151F157F913801FF00B7FCA322297EA828>I<D8FFFE92383FFF80A26D5D
-0003EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8
-130EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A291380FE3
-80A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>I<D8
-FFFCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF01801380
-147F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1ED1FF115
-0F16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A230297EA835>
-I<ECFFC0010F13FC90383F807F9039FE001FC0D801F8EB07E048486D7E48486D7E000F81
-48486D7EA24848147FA2007F168090C8123FA34816C0AA6C16806D147FA2003F1600A26C
-6C14FEA26C6C495A6C6C495A6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC
-010013C02A297CA833>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FE
-A716FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<
-ECFFC0010F13FC90383FC0FF9039FE001FC048486D7ED803F0EB03F000078148486D7E48
-486D7EA24848147FA2007F1680A290C8123FA24816C0AA6C16806D147FA2003F1600A26C
-6C14FE143E3A0FE07F81FC00079038C1C1F83A03F18063F0D801F9EB67E0D800FFEB3FC0
-90263FC07FC7FC90380FFFFC01004913C0EC003C811601ED1F8316FF6F1380A21700816F
-5A6F5A6F5A2A357CA833>I<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A6
-5E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170E
-A21503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>I<9038FF80600003EBF0E0
-000F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7F
-FCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E0
-1303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA8
-25>I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A24815
-01A5C791C7FCB3A490B612C0A32A287EA72F>I<B500F0EBFFFEA3D803FCC7EA0380B3AA
-0001ED07007F0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7
-FC2F297EA834>I<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B
-017F140E80013F5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE03
-01015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230
-297FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E
-13016C604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F16
-0E17F09126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC7003
-5BA2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E8002
-1E141EA242297FA845>I<B500F0EB3FFFA3D803FEC7EA03C06C6C15806C6DEB07005E6D
-6C130E6E5B013F143C6D6C13386E5B010F14F06D6C5B6E485A01031303D901FF5B0387C7
-FC6D138FEC7FCE15FC143F6E5A5D140FAE0103B512C0A330297FA833>89
-D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA
-0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21
->97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F89038E0
-00FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380FFF8039
-0E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E
-007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FF
-F838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F
-8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FFE73800
-7F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15
-C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803
-F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207
-143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F00003EBE3
-F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C
-380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F012
-1F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512003800
-7FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701
-F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1F
-C0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FB3
-B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D8
-0FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A333
-1B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213
-E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0
-393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F
-803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE039
-0FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038
-F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FF
-C1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
-D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
-13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
-C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
-AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
-07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
-0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
-FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
-EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
-FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
-803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
-00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
-3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
-EA74F0EA3FE0EA0F8020277F9A23>I E /Fq 90 127 df<127012F8B012701200A51270
-12F8A31270051C779B18>33 D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<
-EA0306EA078FA6387FFFC0B512E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E
-3C00A6EA0C18131C7E9B18>I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C3
-8013C7A338F1C0001279123F6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EB
-C7001271EA79DEEA3FFEEA1FF8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780
-A2EAEE0F1400A25B131EA2133EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA212
-07EB8380EB87C0120FEB0EE0A2121F121EA2123E383C07C0A23818038013247E9F18>I<
-EA01C0EA07E0487EEA0E70487EA4EB73F813F313E3380FC1C0EBC38013831303381F0700
-EA3F87EA7B8EEA71CEEAE1FC12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C
-7F9B18>I<1238127CA2127E123E120EA3121CA2123812F812F012C0070E789B18>I<1370
-13F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780
-EA03C0EA01F0120013700C24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA
-00E0A41370A813E0A4EA01C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA
-01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1
-C73841C100EA01C0A411147D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000
-A7136013147E9718>I<121C123E127E127F123F121F1207120E121E127C12F81260080C
-788518>I<387FFFC0B512E0A26C13C013047E8F18>I<1230127812FCA212781230060677
-8518>I<1303EB0780A2130F14005B131EA2133E133C137C1378A213F85B12015B12035B
-A212075B120F90C7FCA25A121E123E123CA2127C127812F85AA2126011247D9F18>I<EA
-01F0EA07FC487EEA1F1FEA1C0738380380007813C0EA7001A238E000E0A9EAF001007013
-C0A2EA780300381380381C0700EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203
-A21207120F123F12FF12FB12431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA
-0FFEEA3FFF387C0F80387003C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB
-0F00131E5B5B5B485AEA07C0485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B13
-77A213E7120113C7EA038712071307120E121E123C1238127812F0B512F8A338000700A6
-EB7FF0A3151C7F9B18>52 D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003
-C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C
-7E9B18>I<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EA
-E7FEB5FC38FE078038F803C0EAF001EB00E05A7E1270A3383801C0EA3C03381E0780380F
-FF006C5AEA01F8131C7E9B18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5B
-A25B13F05BA2485AA3485AA448C7FCA7131D7E9C18>I<EA03F8EA0FFE487E383E0F80EA
-3803387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F0
-13E0EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<123012
-7812FCA2127812301200A81230127812FCA2127812300614779318>58
-D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E121C123C127812F0
-1260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048
-C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E
-9918>I<387FFFC0B512E0A3C8FCA4B512E0A36C13C0130C7E9318>I<126012F87E127F6C
-7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F048
-5AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F38F00380A2
-EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A111C7D9B18>I<
-137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380
-A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038
-007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80
-A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>I<EA7FFCB5FC6C1380
-381C03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03EB00E014F01470A414
-F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA
-1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA0F073807FF803803FE
-00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F014
-70A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C7F9B18>I<B512F0A3
-381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>
-I<B512F8A3381C0038A41400A21307A3EA1FFFA3EA1C07A390C7FCA7EAFFC0A3151C7F9B
-18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F
-130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F
-07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F015
-1C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<38
-01FFC0A338000E00B312F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF
-87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121E
-EA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>I<EAFFC0A3
-001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA39
-8CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0F
-F8387F07F0381D81C0A313C1121CA213E1A313611371A213311339A31319A2131D130DA3
-EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0
-EAE000B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF
-8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47E
-A3141C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000AE1370A2EA
-F079387039C0EA783FEA7FFF6C1380380FFE00EA000FEB0780A2EB03C01301A213227E9B
-18>I<EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C
-0F7FEB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>I<3803F1C0EA1FFF5AEA
-7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00
-E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5
-FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0
-EA0F01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C
-01E0001C13C0A3EA1E03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A2
-1370151C7F9B18>I<38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3
-138CA2EA1D8DA31305000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F38
-0E0700120FEA070E138EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138E
-EA070F7F000E13801303001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03
-F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00
-F8A21370A9EA01FC487E6C5A151C7F9B18>I<EAFFF8A3EAE000B3ACEAFFF8A30D24779F
-18>91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F
-12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<EAFFF8
-A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0B512E0A26C13C013047E7F18>95
-D<1206121E123E12381270A212E0A312F812FC127CA21238070E789E18>I<EA0FF0EA1F
-FC487EEA3C0FEA180738000380A213FF1207121FEA7F03127812E0A3EAF007EA780F383F
-FFF8EA1FFDEA07F015147E9318>I<127E12FE127E120EA5133EEBFF80000F13C0EBC1E0
-1380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E138038063E00151C809B18
->I<EA01FEEA07FF001F1380EA3E073838030048C7FCA25AA61270EB01C01238EA3E0338
-1FFF8000071300EA01FC12147D9318>I<EB1F80133F131F1303A5EA03E3EA0FFBEA1FFF
-EA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA3C1F381FFFF0380FFBF83803E3F0
-151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F38380780EA7003A238E001C0A2B5FCA300
-E0C7FC1270EB01C01238EA3E07381FFF8000071300EA01F812147D9318>I<EB1F80EB7F
-C0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801C000AEEA7FFFA3131C7F9B18>I<
-3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7
-FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0EA7E03381FFFC06C13
-803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF80000F13C013C1EB80E013
-00120EAB387FC7FC38FFE7FE387FC7FC171C809B18>I<EA0380EA07C0A3EA0380C7FCA4
-EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338137CA313381300A4EA0FFCA3EA00
-1CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E12FE127E120EA5EB3F
-F0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB038014C0387FC7F812FF
-127F151C7F9B18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>I<38F9C1C038FFF7F013
-FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E1714809318>I<EA7E3E38FEFF
-80007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC1714809318>I<EA
-01F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF001007013C0EA7803383C
-0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF80007F13C0380FC1E0
-1380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380EB3E0090C7FCA7EA7F
-C0487E6C5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6
-EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E93
-18>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E
-9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1FFCEA03FEEA001F3860
-0780EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<487E1203A4387FFFC0B5
-FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F9818>I<387E07E0EA
-FE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714809318>I<387F8FF0
-00FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038EA3EA01DCA3EA00F8A2
-137015147F9318>I<38FF07F8138F1307383800E0A4381C01C0137113F9A213D9EA1DDD
-000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF0139F138F380F0700EA07
-8EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707000E1380387F8FF000
-FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F0380E01C0EB0380A21207
-EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313F05B1279EA7BC0EA7F
-806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB078038000F00131E5B
-13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318>I<EB07E0131F137FEB
-780013E0AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE0131F130713247E9F18>
-I<126012F0B3B012600424769F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB
-7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18>I<EA060CEA1F1EEA3FBEEAFBF8
-EAF1F0EA60C00F067C9B18>I E /Fr 78 123 df<90381F83E09038F06E303901C07878
-380380F8903800F03048EB7000A7B612803907007000B2383FE3FF1D20809F1B>11
-D<133FEBE0C0EA01C0380381E0EA0701A290C7FCA6B512E0EA0700B2383FC3FC1620809F
-19>I<EB3FE013E0EA01C1EA0381EA0700A8B5FCEA0700B2383FE7FC1620809F19>I<9038
-1F81F89038F04F043901C07C06390380F80FEB00F05A0270C7FCA6B7FC3907007007B23A
-3FE3FE3FE02320809F26>I<EA7038EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008
-A2EA2010EA40200F0E7F9F17>34 D<1340A2EA03F0EA0C4EEA1041382040801260004013
-4038C041C01343A238E04180EB40001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F80
-1343EB41C0A2EAF040A312801480EA404100201300EA3042EA0C4CEA03F0EA0040A31225
-7EA117>36 D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
-D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
-30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
-0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
-5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
-D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300
-A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D
-7EA117>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
-0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>I<13801203120F12F31203B3A6EA
-07C0EAFFFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803
-A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA
-3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F1200
-1400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240
-EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA
-010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>
-I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0
-A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA
-0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EA
-F807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17
->I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B
-1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A31270
-38780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C0
-12C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18
-487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380
-A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312
-701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212
-781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB20
-78A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E0
-39FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEBFF
-F0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20
->I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A15
-10127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E003
-00EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F0157015
-78A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F
-9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF130113
-001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B6128038078007
-1401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A
-1F7F9E1E>I<90380FE0109038381C309038E002703803C00139078000F048C71270121E
-15305A1510127C127800F81400A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903
-C001703900E002309038380C1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD
-90B5FCEB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<
-3807FFC038003E00131EB3A3122012F8A3EAF01CEA403CEA6038EA1070EA0FC012207F9E
-17>I<39FFF007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13
-C0EB21E01341EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E
-9E23>I<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>
-I<B46CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A2
-90380E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E
-2A>I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2
-EB03C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E
-9E22>I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A200
-7C14F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB
-03C06C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C14
-1E80EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<
-B57E380F00F0143C8080A21580A41500A2141E5C14F0EBFF80EB01C0EB0070A280143CA3
-143EA31504143F141FEC0F0839FFF00788C7EA01F01E207E9E21>82
-D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8
-6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180
-38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014
-3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00
-80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003
-FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213
-F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0
-7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003
-5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14
-4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39
-FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06
-EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89
-D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA80
-40A3EAB85CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80
-A10D>I<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA078EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA21270EB038012F0A2B5FC00F0C7FCA31270A26C1380A2381C0100EA0706
-EA01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE0
-1020809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA
-33E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C
-13C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A2
-121CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F
-7F9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA
-6180EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013
-E0EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12
-FC121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D039038391E01E01CA2
-001C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38
-FF8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A600
-7013E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E01
-8014C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7
-FCA8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A612
-7012781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD
-18EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE0
-00127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F14
-7F9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C
-7F9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83
-F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370
-A3132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D8
-0704138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E14
-7F9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F01370
-137813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>
-I<38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00
-E8A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E12
-60EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA70
-06130EEAFFFE10147F9314>I E /Fs 14 122 df<DB1FFC14C00203B5EAC001021FECF0
-03027FECFC07903B01FFFC00FE0F010701C0EB1F9F4948C7EA07FFD93FF8804948140049
-48157F485B4A153F4890C9121F485A000F170F5B001F1707A2485A1803A2127FA24993C8
-FCA212FFAA041FB61280127FA27FDC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C
-7F6D6C5CEB3FFCD90FFF5C6D01C0EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF80302
-03ECE0009126001FFEC9FC413D7BBB4C>71 D<B612FEA426007FF0C9FCB3ADEF03C0A517
-071880A3170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>76
-D<B500F00207B512E0808080D8007F92390007E0006E6F5A81017B7F81137901787F6E7E
-6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F7E816F13806F13C017E06F13F081EE
-7FF8EE3FFC17FEEE1FFF827013837013C318E37013F382EF7FFBEF3FFFA283838383A283
-83187F183FA201FC161FB500FC150F18071803A2433B7CBA4C>78
-D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F717E717EA284171FA284A6
-60A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A29139F0007FF0EE1FF8707E
-707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B600F890393FFC07809438
-1FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82 D<B600F80107B512E0A426007F
-F0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA26D6C151E0107163E6E5D6D6C5D
-6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02034AC8FCDA007F13F003071380
-433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007FC9038F001FE486C6C7E6F7E82
-153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F3803FF803807FC00EA0FF0485A12
-3F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F0FFFE03807FFFE0001497E3900
-3FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4FC021F13F0027F13FC9138FC03
-FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF017F8A2EE07FCA317FEA917FCA3
-160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EBFF009039F0FC07FE91387FFFF8
-D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EE3F80ED3FFFA4150181B0ECFF80010F13
-F0013F13FC9038FFC03F3901FE000F4848130348487F48487F121F485AA2127F5BA312FF
-A9127FA36C7EA2121F6C6C5B6C6C5B00035CD801FE011F13C02700FF807E13FE90387FFF
-F8010F13E0010113002F3C7DBB36>100 D<49B47E010F13F0017F13FC9038FF81FE3A03
-FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15F01507485A16F8A212FFA290B6FC
-A301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C13016C6CEB03E06C6CEB0FC03A00
-FFC07F8090393FFFFE00010F13F8010013C025267DA52C>I<EA01E0EA07F8487EA2487E
-A46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512F0A4143D7DBC1A>105
-D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108 D<D801FCEBFF8000FF0103
-13F0020F7F91381E03FC91383801FE000701607F0003497E01FD15805C01FFC7FCA35BB3
-A4B5D8F83F13FEA42F267CA536>110 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC
-707F00079038E0FFC000035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512
-FCA422267DA528>114 D<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E
-137C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F0103
-91C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C
-141E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FC
-EA1FFCEA07F02E377EA533>121 D E end
-TeXDict begin
-
-1 0 bop 0 693 a Fs(GNU)33 b(Readline)h(Library)p 0 743
-1950 17 v 1011 791 a Fr(Edition)17 b(2.1,)c(for)i Fq(Readline)f
-(Library)g Fr(V)l(ersion)i(2.1.)1718 845 y(Marc)o(h)e(1996)0
-2467 y Fp(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23
-b(Soft)n(w)n(are)f(F)-6 b(oundation)0 2534 y(Chet)22
-b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n
-(ersit)n(y)p 0 2570 1950 9 v eop
-2 1 bop 0 320 a Fr(This)15 b(do)q(cumen)o(t)f(describ)q(es)i(the)e(GNU)
-g(Readline)j(Library)l(,)d(a)g(utilit)o(y)h(whic)o(h)g(aids)g(in)g(the)
-f(consistency)h(of)f(user)0 382 y(in)o(terface)h(across)g(discrete)h
-(programs)e(that)g(need)j(to)d(pro)o(vide)i(a)f(command)g(line)i(in)o
-(terface.)0 519 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f
-(F)l(oundation)0 582 y(675)g(Massac)o(h)o(usetts)g(Av)o(en)o(ue,)0
-644 y(Cam)o(bridge,)h(MA)g(02139)f(USA)0 781 y(P)o(ermission)f(is)g
-(gran)o(ted)f(to)f(mak)o(e)h(and)h(distribute)h(v)o(erbatim)e(copies)h
-(of)f(this)h(man)o(ual)g(pro)o(vided)g(the)f(cop)o(yrigh)o(t)0
-843 y(notice)k(and)f(this)h(p)q(ermission)h(notice)e(are)g(preserv)o
-(ed)h(on)f(all)h(copies.)0 980 y(P)o(ermission)f(is)f(gran)o(ted)f(to)h
-(cop)o(y)g(and)g(distribute)h(mo)q(di\014ed)h(v)o(ersions)e(of)f(this)i
-(man)o(ual)f(under)h(the)f(conditions)0 1043 y(for)e(v)o(erbatim)g(cop)
-o(ying,)h(pro)o(vided)h(that)d(the)i(en)o(tire)g(resulting)h(deriv)o
-(ed)f(w)o(ork)f(is)h(distributed)h(under)f(the)g(terms)0
-1105 y(of)i(a)g(p)q(ermission)h(notice)g(iden)o(tical)h(to)e(this)g
-(one.)0 1242 y(P)o(ermission)20 b(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)
-f(distribute)i(translations)f(of)f(this)h(man)o(ual)f(in)o(to)h
-(another)f(language,)0 1304 y(under)c(the)f(ab)q(o)o(v)o(e)g
-(conditions)h(for)e(mo)q(di\014ed)j(v)o(ersions,)e(except)g(that)g
-(this)g(p)q(ermission)i(notice)e(ma)o(y)g(b)q(e)h(stated)0
-1366 y(in)h(a)f(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l
-(oundation.)0 2661 y(Cop)o(yrigh)o(t)226 2660 y(c)214
-2661 y Fo(\015)g Fr(1989,)f(1991)g(F)l(ree)h(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-1 2 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(1)0 183 y Fn(1)41 b(Command)16 b(Line)f(Editing)62
-408 y Fr(This)h(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fm(GNU)g Fr(command)g(line)i(editing)f(in)o(terface.)0
-701 y Fp(1.1)33 b(In)n(tro)r(duction)17 b(to)e(Line)h(Editing)62
-845 y Fr(The)g(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
-(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)62
-990 y(The)k(text)e Fq(C-K)h Fr(is)h(read)f(as)f(`Con)o(trol-K')h(and)g
-(describ)q(es)i(the)e(c)o(haracter)f(pro)q(duced)j(when)e(the)g
-Fq(K)g Fr(k)o(ey)g(is)0 1052 y(pressed)d(while)g(the)g(Con)o(trol)e(k)o
-(ey)h(is)h(depressed.)62 1197 y(The)h(text)f Fq(M-K)g
-Fr(is)i(read)e(as)g(`Meta-K')g(and)h(describ)q(es)h(the)f(c)o(haracter)
-f(pro)q(duced)h(when)h(the)e(meta)g(k)o(ey)h(\(if)0 1259
-y(y)o(ou)f(ha)o(v)o(e)f(one\))h(is)g(depressed,)h(and)f(the)g
-Fq(K)f Fr(k)o(ey)h(is)h(pressed.)22 b(If)16 b(y)o(ou)g(do)g(not)f(ha)o
-(v)o(e)g(a)h(meta)f(k)o(ey)l(,)h(the)g(iden)o(tical)0
-1321 y(k)o(eystrok)o(e)j(can)g(b)q(e)i(generated)e(b)o(y)h(t)o(yping)f
-Fq(ESC)h Fl(\014rst)p Fr(,)g(and)f(then)h(t)o(yping)g
-Fq(K)p Fr(.)33 b(Either)20 b(pro)q(cess)g(is)g(kno)o(wn)f(as)0
-1383 y Fl(metafying)g Fr(the)c Fq(K)g Fr(k)o(ey)l(.)62
-1528 y(The)h(text)e Fq(M-C-K)g Fr(is)i(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)h(the)g(c)o(haracter)e(pro)q(duced)i(b)o(y)f
-Fl(metafying)0 1590 y Fq(C-K)p Fr(.)62 1735 y(In)i(addition,)h(sev)o
-(eral)e(k)o(eys)g(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)23
-b(Sp)q(eci\014cally)m(,)c Fq(DEL)p Fr(,)d Fq(ESC)p Fr(,)f
-Fq(LFD)p Fr(,)h Fq(SPC)p Fr(,)g Fq(RET)p Fr(,)g(and)g
-Fq(TAB)0 1797 y Fr(all)e(stand)f(for)f(themselv)o(es)i(when)f(seen)h
-(in)g(this)f(text,)g(or)g(in)g(an)g(init)i(\014le)f(\(see)f(Section)h
-(1.3)e([Readline)j(Init)f(File],)0 1859 y(page)h(5\).)0
-2152 y Fp(1.2)33 b(Readline)16 b(In)n(teraction)62 2296
-y Fr(Often)g(during)h(an)f(in)o(teractiv)o(e)g(session)h(y)o(ou)e(t)o
-(yp)q(e)h(in)h(a)f(long)g(line)h(of)f(text,)f(only)h(to)g(notice)g
-(that)f(the)h(\014rst)0 2359 y(w)o(ord)d(on)i(the)f(line)i(is)e(missp)q
-(elled.)23 b(The)14 b(Readline)i(library)f(giv)o(es)g(y)o(ou)e(a)h(set)
-g(of)g(commands)g(for)f(manipulating)0 2421 y(the)18
-b(text)g(as)g(y)o(ou)g(t)o(yp)q(e)g(it)h(in,)g(allo)o(wing)g(y)o(ou)f
-(to)g(just)g(\014x)g(y)o(our)g(t)o(yp)q(o,)g(and)h(not)f(forcing)g(y)o
-(ou)g(to)g(ret)o(yp)q(e)g(the)0 2483 y(ma)s(jorit)o(y)d(of)h(the)g
-(line.)25 b(Using)17 b(these)g(editing)h(commands,)e(y)o(ou)g(mo)o(v)o
-(e)f(the)i(cursor)f(to)g(the)g(place)h(that)f(needs)0
-2545 y(correction,)g(and)h(delete)g(or)f(insert)g(the)h(text)e(of)h
-(the)g(corrections.)23 b(Then,)17 b(when)g(y)o(ou)f(are)g(satis\014ed)g
-(with)h(the)0 2608 y(line,)h(y)o(ou)e(simply)i(press)f
-Fq(RETURN)p Fr(.)23 b(Y)l(ou)17 b(do)f(not)g(ha)o(v)o(e)g(to)g(b)q(e)i
-(at)e(the)g(end)h(of)f(the)h(line)h(to)e(press)h Fq(RETURN)p
-Fr(;)f(the)0 2670 y(en)o(tire)g(line)h(is)e(accepted)h(regardless)f(of)
-g(the)g(lo)q(cation)h(of)f(the)h(cursor)e(within)j(the)e(line.)p
-eop
-2 3 bop 0 -58 a Fr(2)1472 b(GNU)15 b(Readline)i(Library)0
-183 y Fk(1.2.1)30 b(Readline)15 b(Bare)g(Essen)n(tials)62
-320 y Fr(In)f(order)f(to)f(en)o(ter)h(c)o(haracters)g(in)o(to)g(the)g
-(line,)i(simply)f(t)o(yp)q(e)f(them.)19 b(The)14 b(t)o(yp)q(ed)f(c)o
-(haracter)f(app)q(ears)i(where)0 382 y(the)h(cursor)h(w)o(as,)e(and)h
-(then)h(the)g(cursor)f(mo)o(v)o(es)f(one)i(space)g(to)e(the)i(righ)o
-(t.)k(If)c(y)o(ou)f(mist)o(yp)q(e)h(a)f(c)o(haracter,)f(y)o(ou)0
-445 y(can)h(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g
-(and)h(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)62
-582 y(Sometimes)f(y)o(ou)e(ma)o(y)h(miss)g(t)o(yping)g(a)g(c)o
-(haracter)g(that)f(y)o(ou)h(w)o(an)o(ted)f(to)g(t)o(yp)q(e,)h(and)h
-(not)e(notice)i(y)o(our)f(error)0 644 y(un)o(til)k(y)o(ou)e(ha)o(v)o(e)
-g(t)o(yp)q(ed)h(sev)o(eral)g(other)f(c)o(haracters.)23
-b(In)18 b(that)d(case,)i(y)o(ou)f(can)h(t)o(yp)q(e)g
-Fq(C-B)f Fr(to)g(mo)o(v)o(e)g(the)g(cursor)0 706 y(to)f(the)h(left,)g
-(and)g(then)g(correct)f(y)o(our)h(mistak)o(e.)21 b(Afterw)o(ards,)14
-b(y)o(ou)i(can)g(mo)o(v)o(e)f(the)h(cursor)f(to)g(the)h(righ)o(t)g
-(with)0 769 y Fq(C-F)p Fr(.)62 906 y(When)i(y)o(ou)f(add)g(text)g(in)h
-(the)f(middle)i(of)e(a)g(line,)i(y)o(ou)e(will)i(notice)e(that)g(c)o
-(haracters)f(to)h(the)g(righ)o(t)g(of)g(the)0 968 y(cursor)h(are)h
-(`pushed)g(o)o(v)o(er')e(to)h(mak)o(e)g(ro)q(om)g(for)g(the)h(text)f
-(that)g(y)o(ou)g(ha)o(v)o(e)h(inserted.)31 b(Lik)o(ewise,)20
-b(when)f(y)o(ou)0 1030 y(delete)f(text)f(b)q(ehind)i(the)f(cursor,)f(c)
-o(haracters)f(to)h(the)g(righ)o(t)g(of)g(the)h(cursor)f(are)g(`pulled)i
-(bac)o(k')d(to)h(\014ll)i(in)f(the)0 1092 y(blank)g(space)f(created)g
-(b)o(y)g(the)h(remo)o(v)m(al)f(of)f(the)i(text.)25 b(A)17
-b(list)h(of)e(the)h(basic)h(bare)f(essen)o(tials)h(for)e(editing)j(the)
-0 1155 y(text)c(of)f(an)i(input)g(line)h(follo)o(ws.)0
-1303 y Fq(C-B)168 b Fr(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o(haracter.)0
-1390 y Fq(C-F)168 b Fr(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h(c)o
-(haracter.)0 1476 y Fq(DEL)168 b Fr(Delete)16 b(the)f(c)o(haracter)g
-(to)f(the)h(left)h(of)f(the)g(cursor.)0 1562 y Fq(C-D)168
-b Fr(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)0
-1648 y(Prin)o(ting)h(c)o(haracters)240 1710 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)0
-1796 y Fq(C-_)168 b Fr(Undo)15 b(the)h(last)f(thing)h(that)e(y)o(ou)h
-(did.)21 b(Y)l(ou)15 b(can)h(undo)f(all)h(the)g(w)o(a)o(y)e(bac)o(k)h
-(to)f(an)i(empt)o(y)e(line.)0 2001 y Fk(1.2.2)30 b(Readline)15
-b(Mo)n(v)n(emen)n(t)h(Commands)62 2138 y Fr(The)c(ab)q(o)o(v)o(e)g
-(table)g(describ)q(es)i(the)e(most)f(basic)h(p)q(ossible)i(k)o(eystrok)
-o(es)d(that)g(y)o(ou)g(need)i(in)g(order)f(to)f(do)h(editing)0
-2201 y(of)g(the)h(input)h(line.)21 b(F)l(or)12 b(y)o(our)g(con)o(v)o
-(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o(e)f(b)q(een)i(added)f
-(in)h(addition)g(to)e Fq(C-B)p Fr(,)0 2263 y Fq(C-F)p
-Fr(,)i Fq(C-D)p Fr(,)h(and)g Fq(DEL)p Fr(.)20 b(Here)15
-b(are)g(some)g(commands)g(for)f(mo)o(ving)h(more)g(rapidly)i(ab)q(out)e
-(the)g(line.)0 2412 y Fq(C-A)168 b Fr(Mo)o(v)o(e)14 b(to)h(the)g(start)
-f(of)h(the)g(line.)0 2498 y Fq(C-E)168 b Fr(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)0 2584 y Fq(M-F)168
-b Fr(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord.)0 2670
-y Fq(M-B)168 b Fr(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)p
-eop
-3 4 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(3)0 183 y Fq(C-L)168 b Fr(Clear)15 b(the)h(screen,)f(reprin)o(ting)h
-(the)f(curren)o(t)g(line)i(at)e(the)g(top.)62 350 y(Notice)22
-b(ho)o(w)e Fq(C-F)h Fr(mo)o(v)o(es)f(forw)o(ard)g(a)g(c)o(haracter,)i
-(while)g Fq(M-F)f Fr(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)36
-b(It)21 b(is)h(a)f(lo)q(ose)0 412 y(con)o(v)o(en)o(tion)15
-b(that)g(con)o(trol)g(k)o(eystrok)o(es)f(op)q(erate)h(on)g(c)o
-(haracters)f(while)j(meta)e(k)o(eystrok)o(es)f(op)q(erate)h(on)g(w)o
-(ords.)0 696 y Fk(1.2.3)30 b(Readline)15 b(Killing)g(Commands)62
-841 y Fl(Killing)25 b Fr(text)18 b(means)g(to)f(delete)i(the)g(text)e
-(from)h(the)g(line,)i(but)e(to)g(sa)o(v)o(e)f(it)i(a)o(w)o(a)o(y)d(for)
-i(later)g(use,)h(usually)0 903 y(b)o(y)c Fl(y)o(anking)k
-Fr(\(re-inserting\))c(it)g(bac)o(k)g(in)o(to)g(the)g(line.)21
-b(If)16 b(the)f(description)h(for)e(a)h(command)f(sa)o(ys)h(that)f(it)h
-(`kills')0 966 y(text,)f(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)g(y)
-o(ou)g(can)g(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o(t)g
-(\(or)f(the)i(same\))e(place)i(later.)62 1111 y(When)g(y)o(ou)f(use)g
-(a)g(kill)i(command,)e(the)h(text)e(is)i(sa)o(v)o(ed)f(in)h(a)f
-Fl(kill-ring)p Fr(.)22 b(An)o(y)16 b(n)o(um)o(b)q(er)f(of)g(consecutiv)
-o(e)h(kills)0 1173 y(sa)o(v)o(e)g(all)i(of)e(the)h(killed)i(text)d
-(together,)g(so)g(that)g(when)h(y)o(ou)f(y)o(ank)h(it)g(bac)o(k,)f(y)o
-(ou)h(get)f(it)h(all.)25 b(The)17 b(kill)h(ring)f(is)0
-1236 y(not)e(line)i(sp)q(eci\014c;)g(the)f(text)f(that)g(y)o(ou)g
-(killed)j(on)d(a)h(previously)g(t)o(yp)q(ed)g(line)h(is)f(a)o(v)m
-(ailable)i(to)d(b)q(e)h(y)o(ank)o(ed)f(bac)o(k)0 1298
-y(later,)g(when)h(y)o(ou)e(are)h(t)o(yping)h(another)e(line.)62
-1443 y(Here)i(is)f(the)h(list)g(of)e(commands)h(for)g(killing)j(text.)0
-1610 y Fq(C-K)168 b Fr(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g
-(cursor)g(p)q(osition)h(to)f(the)g(end)h(of)f(the)g(line.)0
-1714 y Fq(M-D)168 b Fr(Kill)17 b(from)d(the)h(cursor)g(to)f(the)h(end)g
-(of)g(the)g(curren)o(t)f(w)o(ord,)g(or)g(if)i(b)q(et)o(w)o(een)f(w)o
-(ords,)f(to)g(the)h(end)g(of)240 1776 y(the)g(next)h(w)o(ord.)0
-1880 y Fq(M-DEL)120 b Fr(Kill)16 b(from)d(the)i(cursor)e(the)h(start)f
-(of)h(the)g(previous)h(w)o(ord,)e(or)g(if)i(b)q(et)o(w)o(een)f(w)o
-(ords,)f(to)h(the)g(start)e(of)240 1942 y(the)j(previous)h(w)o(ord.)0
-2046 y Fq(C-W)168 b Fr(Kill)18 b(from)e(the)g(cursor)g(to)f(the)h
-(previous)h(whitespace.)24 b(This)17 b(is)f(di\013eren)o(t)h(than)f
-Fq(M-DEL)f Fr(b)q(ecause)240 2109 y(the)g(w)o(ord)g(b)q(oundaries)h
-(di\013er.)62 2275 y(And,)e(here)g(is)h(ho)o(w)e(to)g
-Fl(y)o(ank)j Fr(the)e(text)f(bac)o(k)g(in)o(to)h(the)f(line.)22
-b(Y)l(anking)14 b(means)g(to)f(cop)o(y)g(the)h(most-recen)o(tly-)0
-2337 y(killed)j(text)e(from)g(the)g(kill)i(bu\013er.)0
-2504 y Fq(C-Y)168 b Fr(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h
-(text)e(bac)o(k)g(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)0
-2608 y Fq(M-Y)168 b Fr(Rotate)13 b(the)h(kill-ring,)i(and)e(y)o(ank)g
-(the)g(new)g(top.)19 b(Y)l(ou)14 b(can)g(only)g(do)g(this)g(if)g(the)g
-(prior)g(command)240 2670 y(is)i Fq(C-Y)e Fr(or)h Fq(M-Y)p
-Fr(.)p eop
-4 5 bop 0 -58 a Fr(4)1472 b(GNU)15 b(Readline)i(Library)0
-183 y Fk(1.2.4)30 b(Readline)15 b(Argumen)n(ts)62 345
-y Fr(Y)l(ou)k(can)g(pass)f(n)o(umeric)i(argumen)o(ts)d(to)h(Readline)j
-(commands.)30 b(Sometimes)19 b(the)f(argumen)o(t)g(acts)g(as)g(a)0
-407 y(rep)q(eat)f(coun)o(t,)f(other)g(times)g(it)h(is)g(the)g
-Fl(sign)f Fr(of)g(the)h(argumen)o(t)f(that)f(is)i(signi\014can)o(t.)25
-b(If)16 b(y)o(ou)h(pass)f(a)g(negativ)o(e)0 470 y(argumen)o(t)g(to)g(a)
-h(command)g(whic)o(h)h(normally)f(acts)g(in)h(a)e(forw)o(ard)g
-(direction,)i(that)f(command)f(will)j(act)d(in)i(a)0
-532 y(bac)o(kw)o(ard)13 b(direction.)20 b(F)l(or)13 b(example,)i(to)d
-(kill)k(text)d(bac)o(k)g(to)g(the)h(start)e(of)h(the)h(line,)h(y)o(ou)e
-(migh)o(t)g(t)o(yp)q(e)h Fq(M--)h(C-k)o Fr(.)62 694 y(The)k(general)g
-(w)o(a)o(y)f(to)g(pass)g(n)o(umeric)i(argumen)o(ts)e(to)g(a)g(command)h
-(is)g(to)f(t)o(yp)q(e)g(meta)g(digits)i(b)q(efore)f(the)0
-756 y(command.)36 b(If)21 b(the)g(\014rst)f(`digit')h(y)o(ou)g(t)o(yp)q
-(e)f(is)i(a)e(min)o(us)h(sign)g(\()p Fq(-)p Fr(\),)g(then)g(the)g(sign)
-g(of)g(the)f(argumen)o(t)g(will)0 818 y(b)q(e)i(negativ)o(e.)40
-b(Once)22 b(y)o(ou)f(ha)o(v)o(e)h(t)o(yp)q(ed)g(one)f(meta)g(digit)i
-(to)e(get)g(the)h(argumen)o(t)f(started,)h(y)o(ou)f(can)h(t)o(yp)q(e)0
-881 y(the)c(remainder)h(of)f(the)g(digits,)h(and)f(then)h(the)f
-(command.)29 b(F)l(or)17 b(example,)i(to)f(giv)o(e)g(the)g
-Fq(C-D)g Fr(command)g(an)0 943 y(argumen)o(t)c(of)h(10,)f(y)o(ou)h
-(could)h(t)o(yp)q(e)g(`)p Fq(M-1)e(0)h(C-d)p Fr('.)0
-1375 y Fk(1.2.5)30 b(Searc)n(hing)15 b(for)g(Commands)h(in)f(the)g
-(History)62 1537 y Fr(Readline)j(pro)o(vides)d(commands)g(for)g(searc)o
-(hing)h(through)e(the)i(command)f(history)g(for)g(lines)h(con)o
-(taining)g(a)0 1599 y(sp)q(eci\014ed)h(string.)j(There)c(are)f(t)o(w)o
-(o)e(searc)o(h)i(mo)q(des:)20 b Fl(incremen)o(tal)f Fr(and)c
-Fl(non-incremen)o(tal)p Fr(.)62 1761 y(Incremen)o(tal)i(searc)o(hes)e
-(b)q(egin)i(b)q(efore)f(the)g(user)f(has)h(\014nished)h(t)o(yping)f
-(the)g(searc)o(h)f(string.)21 b(As)15 b(eac)o(h)h(c)o(har-)0
-1823 y(acter)f(of)h(the)g(searc)o(h)f(string)h(is)g(t)o(yp)q(ed,)g
-(readline)h(displa)o(ys)g(the)f(next)g(en)o(try)f(from)g(the)h(history)
-g(matc)o(hing)g(the)0 1885 y(string)g(t)o(yp)q(ed)g(so)f(far.)20
-b(An)c(incremen)o(tal)h(searc)o(h)e(requires)i(only)f(as)f(man)o(y)g(c)
-o(haracters)g(as)h(needed)h(to)e(\014nd)h(the)0 1948
-y(desired)g(history)f(en)o(try)l(.)20 b(The)15 b(Escap)q(e)h(c)o
-(haracter)e(is)h(used)h(to)e(terminate)h(an)g(incremen)o(tal)h(searc)o
-(h.)k(Con)o(trol-J)0 2010 y(will)c(also)f(terminate)g(the)g(searc)o(h.)
-k(Con)o(trol-G)14 b(will)j(ab)q(ort)d(an)h(incremen)o(tal)g(searc)o(h)g
-(and)g(restore)f(the)h(original)0 2072 y(line.)30 b(When)18
-b(the)h(searc)o(h)e(is)i(terminated,)g(the)f(history)g(en)o(try)f(con)o
-(taining)i(the)f(searc)o(h)g(string)g(b)q(ecomes)h(the)0
-2134 y(curren)o(t)g(line.)35 b(T)l(o)20 b(\014nd)g(other)f(matc)o(hing)
-h(en)o(tries)g(in)g(the)g(history)g(list,)h(t)o(yp)q(e)e(Con)o(trol-S)h
-(or)f(Con)o(trol-R)g(as)0 2197 y(appropriate.)k(This)17
-b(will)h(searc)o(h)e(bac)o(kw)o(ard)g(or)f(forw)o(ard)g(in)j(the)e
-(history)g(for)g(the)g(next)h(en)o(try)f(matc)o(hing)g(the)0
-2259 y(searc)o(h)c(string)h(t)o(yp)q(ed)f(so)g(far.)19
-b(An)o(y)12 b(other)g(k)o(ey)g(sequence)i(b)q(ound)f(to)f(a)g(readline)
-i(command)e(will)i(terminate)f(the)0 2321 y(searc)o(h)j(and)h(execute)g
-(that)f(command.)24 b(F)l(or)16 b(instance,)h(a)g Fq(newline)e
-Fr(will)j(terminate)f(the)g(searc)o(h)f(and)h(accept)0
-2384 y(the)e(line,)i(thereb)o(y)e(executing)h(the)g(command)f(from)f
-(the)h(history)h(list.)62 2545 y(Non-incremen)o(tal)k(searc)o(hes)f
-(read)f(the)h(en)o(tire)g(searc)o(h)g(string)f(b)q(efore)h(starting)f
-(to)g(searc)o(h)h(for)f(matc)o(hing)0 2608 y(history)g(lines.)29
-b(The)18 b(searc)o(h)g(string)g(ma)o(y)f(b)q(e)h(t)o(yp)q(ed)g(b)o(y)g
-(the)g(user)g(or)f(part)g(of)h(the)g(con)o(ten)o(ts)f(of)g(the)h
-(curren)o(t)0 2670 y(line.)p eop
-5 6 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(5)0 183 y Fp(1.3)33 b(Readline)16 b(Init)g(File)62
-324 y Fr(Although)h(the)f(Readline)j(library)e(comes)f(with)g(a)g(set)g
-(of)g Fq(emacs)p Fr(-lik)o(e)h(k)o(eybindings)h(installed)g(b)o(y)e
-(default,)0 387 y(it)e(is)g(p)q(ossible)i(that)d(y)o(ou)g(w)o(ould)h
-(lik)o(e)h(to)e(use)h(a)f(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)
-21 b(Y)l(ou)14 b(can)g(customize)g(programs)0 449 y(that)j(use)h
-(Readline)i(b)o(y)e(putting)h(commands)e(in)i(an)f Fl(inputrc)j
-Fr(\014le)e(in)g(y)o(our)e(home)h(directory)l(.)28 b(The)19
-b(name)e(of)0 511 y(this)e(\014le)h(is)g(tak)o(en)e(from)h(the)g(v)m
-(alue)h(of)e(the)h(en)o(vironmen)o(t)h(v)m(ariable)g
-Fq(INPUTRC)p Fr(.)j(If)c(that)f(v)m(ariable)j(is)e(unset,)g(the)0
-573 y(default)h(is)f(`)p Fq(~/.inputrc)p Fr('.)62 714
-y(When)k(a)g(program)e(whic)o(h)j(uses)f(the)g(Readline)i(library)e
-(starts)f(up,)h(the)g(init)h(\014le)g(is)f(read,)g(and)g(the)g(k)o(ey)0
-777 y(bindings)e(are)e(set.)62 918 y(In)j(addition,)h(the)f
-Fq(C-x)c(C-r)k Fr(command)f(re-reads)g(this)h(init)h(\014le,)g(th)o(us)
-e(incorp)q(orating)h(an)o(y)f(c)o(hanges)h(that)0 980
-y(y)o(ou)d(migh)o(t)g(ha)o(v)o(e)g(made)g(to)f(it.)0
-1224 y Fk(1.3.1)30 b(Readline)15 b(Init)g(File)g(Syn)n(tax)62
-1365 y Fr(There)h(are)f(only)h(a)f(few)g(basic)h(constructs)f(allo)o(w)
-o(ed)h(in)g(the)g(Readline)i(init)e(\014le.)22 b(Blank)16
-b(lines)h(are)e(ignored.)0 1427 y(Lines)f(b)q(eginning)h(with)e(a)f(`)p
-Fq(#)p Fr(')g(are)g(commen)o(ts.)19 b(Lines)14 b(b)q(eginning)h(with)e
-(a)f(`)p Fq($)p Fr(')g(indicate)i(conditional)g(constructs)0
-1490 y(\(see)i(Section)h(1.3.2)e([Conditional)i(Init)g(Constructs],)e
-(page)i(8\).)22 b(Other)16 b(lines)i(denote)f(v)m(ariable)h(settings)e
-(and)0 1552 y(k)o(ey)f(bindings.)0 1710 y(V)l(ariable)h(Settings)240
-1772 y(Y)l(ou)j(can)g(c)o(hange)g(the)g(state)f(of)g(a)g(few)h(v)m
-(ariables)h(in)g(Readline)h(b)o(y)d(using)i(the)f Fq(set)f
-Fr(command)240 1834 y(within)e(the)f(init)h(\014le.)k(Here)15
-b(is)g(ho)o(w)g(y)o(ou)f(w)o(ould)h(sp)q(ecify)h(that)e(y)o(ou)g(wish)i
-(to)e(use)h Fq(vi)f Fr(line)j(editing)240 1896 y(commands:)360
-1965 y Fq(set)23 b(editing-mode)g(vi)240 2044 y Fr(Righ)o(t)14
-b(no)o(w,)f(there)h(are)f(only)h(a)f(few)h(v)m(ariables)g(whic)o(h)h
-(can)f(b)q(e)g(set;)f(so)g(few,)h(in)g(fact,)f(that)g(w)o(e)g(just)240
-2106 y(list)j(them)f(here:)240 2201 y Fq(bell-style)480
-2263 y Fr(Con)o(trols)h(what)f(happ)q(ens)j(when)f(Readline)h(w)o(an)o
-(ts)e(to)f(ring)i(the)f(terminal)h(b)q(ell.)26 b(If)480
-2326 y(set)17 b(to)f(`)p Fq(none)p Fr(',)g(Readline)j(nev)o(er)f(rings)
-f(the)g(b)q(ell.)28 b(If)17 b(set)g(to)f(`)p Fq(visible)p
-Fr(',)g(Readline)480 2388 y(uses)21 b(a)g(visible)j(b)q(ell)f(if)e(one)
-h(is)f(a)o(v)m(ailable.)40 b(If)21 b(set)g(to)g(`)p Fq(audible)p
-Fr(')e(\(the)i(default\),)480 2450 y(Readline)d(attempts)c(to)g(ring)i
-(the)f(terminal's)h(b)q(ell.)240 2545 y Fq(comment-begin)480
-2608 y Fr(The)d(string)h(to)e(insert)i(at)e(the)i(b)q(eginning)h(of)e
-(the)g(line)i(when)f(the)f Fq(insert-comment)480 2670
-y Fr(command)i(is)h(executed.)21 b(The)15 b(default)h(v)m(alue)g(is)g
-Fq("#")p Fr(.)p eop
-6 7 bop 0 -58 a Fr(6)1472 b(GNU)15 b(Readline)i(Library)240
-183 y Fq(completion-query-items)480 246 y Fr(The)12 b(n)o(um)o(b)q(er)g
-(of)f(p)q(ossible)j(completions)e(that)f(determines)i(when)f(the)g
-(user)g(is)g(ask)o(ed)480 308 y(whether)k(he)h(w)o(an)o(ts)d(to)i(see)g
-(the)g(list)h(of)e(p)q(ossibiliti)q(es.)25 b(If)16 b(the)g(n)o(um)o(b)q
-(er)h(of)e(p)q(ossible)480 370 y(completions)i(is)f(greater)f(than)h
-(this)h(v)m(alue,)f(Readline)j(will)e(ask)f(the)g(user)g(whether)480
-432 y(or)k(not)h(he)h(wishes)f(to)g(view)g(them;)j(otherwise,)e(they)f
-(are)g(simply)h(listed.)39 b(The)480 495 y(default)16
-b(limit)g(is)g Fq(100)p Fr(.)240 592 y Fq(convert-meta)480
-654 y Fr(If)21 b(set)f(to)g(`)p Fq(on)p Fr(',)g(Readline)j(will)f(con)o
-(v)o(ert)e(c)o(haracters)f(with)i(the)g(eigth)f(bit)h(set)g(to)480
-716 y(an)c(ASCI)q(I)g(k)o(ey)g(sequence)h(b)o(y)e(stripping)i(the)f
-(eigth)g(bit)g(and)g(prep)q(ending)i(an)d Fq(ESC)480
-779 y Fr(c)o(haracter,)h(con)o(v)o(erting)g(them)g(to)f(a)h
-(meta-pre\014xed)h(k)o(ey)f(sequence.)27 b(The)17 b(default)480
-841 y(v)m(alue)f(is)g(`)p Fq(on)p Fr('.)240 938 y Fq
-(disable-completion)480 1000 y Fr(If)e(set)f(to)g(`)p
-Fq(On)p Fr(',)f(readline)j(will)h(inhibit)f(w)o(ord)e(completion.)20
-b(Completion)15 b(c)o(haracters)480 1063 y(will)h(b)q(e)g(inserted)g
-(in)o(to)e(the)h(line)i(as)d(if)h(they)g(had)g(b)q(een)h(mapp)q(ed)g
-(to)e Fq(self-insert)p Fr(.)480 1125 y(The)h(default)h(is)g(`)p
-Fq(off)p Fr('.)240 1222 y Fq(editing-mode)480 1285 y
-Fr(The)d Fq(editing-mode)e Fr(v)m(ariable)j(con)o(trols)e(whic)o(h)h
-(editing)h(mo)q(de)f(y)o(ou)f(are)g(using.)20 b(By)480
-1347 y(default,)f(Readline)h(starts)c(up)i(in)h(Emacs)e(editing)i(mo)q
-(de,)f(where)g(the)g(k)o(eystrok)o(es)480 1409 y(are)g(most)f(similar)i
-(to)e(Emacs.)27 b(This)19 b(v)m(ariable)g(can)f(b)q(e)h(set)e(to)g
-(either)i(`)p Fq(emacs)p Fr(')d(or)480 1471 y(`)p Fq(vi)p
-Fr('.)240 1569 y Fq(enable-keypad)480 1631 y Fr(When)g(set)g(to)f(`)p
-Fq(on)p Fr(',)g(readline)j(will)f(try)e(to)h(enable)h(the)f
-(application)h(k)o(eypad)f(when)480 1693 y(it)f(is)g(called.)22
-b(Some)15 b(systems)f(need)i(this)f(to)f(enable)i(the)f(arro)o(w)f(k)o
-(eys.)19 b(The)c(default)480 1755 y(is)h(`)p Fq(off)p
-Fr('.)240 1853 y Fq(expand-tilde)480 1915 y Fr(If)i(set)f(to)f(`)p
-Fq(on)p Fr(',)h(tilde)h(expansion)h(is)e(p)q(erformed)h(when)g
-(Readline)h(attempts)e(w)o(ord)480 1977 y(completion.)k(The)15
-b(default)h(is)g(`)p Fq(off)p Fr('.)240 2075 y Fq
-(horizontal-scroll-mode)480 2137 y Fr(This)j(v)m(ariable)h(can)e(b)q(e)
-i(set)e(to)g(either)h(`)p Fq(on)p Fr(')e(or)h(`)p Fq(off)p
-Fr('.)28 b(Setting)19 b(it)g(to)f(`)p Fq(on)p Fr(')f(means)480
-2199 y(that)f(the)h(text)f(of)h(the)f(lines)j(that)d(y)o(ou)g(edit)i
-(will)g(scroll)g(horizon)o(tally)f(on)g(a)g(single)480
-2261 y(screen)h(line)h(when)f(they)f(are)g(longer)h(than)f(the)g(width)
-h(of)f(the)g(screen,)h(instead)g(of)480 2324 y(wrapping)e(on)o(to)e(a)h
-(new)g(screen)h(line.)21 b(By)16 b(default,)f(this)h(v)m(ariable)g(is)g
-(set)f(to)g(`)p Fq(off)p Fr('.)240 2421 y Fq(keymap)96
-b Fr(Sets)13 b(Readline's)i(idea)e(of)g(the)g(curren)o(t)f(k)o(eymap)h
-(for)f(k)o(ey)h(binding)i(commands.)k(Ac-)480 2483 y(ceptable)d
-Fq(keymap)e Fr(names)h(are)g Fq(emacs)p Fr(,)f Fq(emacs-standard)p
-Fr(,)f Fq(emacs-meta)p Fr(,)g Fq(emacs-)480 2545 y(ctlx)p
-Fr(,)18 b Fq(vi)p Fr(,)h Fq(vi-command)p Fr(,)e(and)i
-Fq(vi-insert)p Fr(.)28 b Fq(vi)18 b Fr(is)h(equiv)m(alen)o(t)h(to)e
-Fq(vi-command)p Fr(;)480 2608 y Fq(emacs)d Fr(is)i(equiv)m(alen)o(t)h
-(to)d Fq(emacs-standard)p Fr(.)20 b(The)d(default)f(v)m(alue)i(is)e
-Fq(emacs)p Fr(.)22 b(The)480 2670 y(v)m(alue)16 b(of)f(the)g
-Fq(editing-mode)f Fr(v)m(ariable)j(also)e(a\013ects)f(the)h(default)h
-(k)o(eymap.)p eop
-7 8 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(7)240 183 y Fq(mark-directories)480 246 y Fr(If)22
-b(set)g(to)g(`)p Fq(on)p Fr(',)g(completed)h(directory)f(names)h(ha)o
-(v)o(e)e(a)h(slash)h(app)q(ended.)42 b(The)480 308 y(default)16
-b(is)f(`)p Fq(on)p Fr('.)240 388 y Fq(mark-modified-lines)480
-450 y Fr(This)f(v)m(ariable,)h(when)e(set)g(to)g(`)p
-Fq(on)p Fr(',)f(sa)o(ys)h(to)g(displa)o(y)h(an)f(asterisk)g(\(`)p
-Fq(*)p Fr('\))f(at)h(the)g(start)480 512 y(of)f(history)h(lines)h(whic)
-o(h)f(ha)o(v)o(e)f(b)q(een)i(mo)q(di\014ed.)21 b(This)13
-b(v)m(ariable)h(is)f(`)p Fq(off)p Fr(')e(b)o(y)i(default.)240
-593 y Fq(input-meta)480 655 y Fr(If)21 b(set)g(to)g(`)p
-Fq(on)p Fr(',)g(Readline)i(will)g(enable)g(eigh)o(t-bit)f(input)g(\(it)
-f(will)i(not)d(strip)i(the)480 717 y(eigh)o(th)e(bit)f(from)f(the)i(c)o
-(haracters)e(it)h(reads\),)h(regardless)f(of)f(what)h(the)g(terminal)
-480 779 y(claims)d(it)g(can)f(supp)q(ort.)21 b(The)15
-b(default)h(v)m(alue)h(is)e(`)p Fq(off)p Fr('.)20 b(The)15
-b(name)g Fq(meta-flag)f Fr(is)480 842 y(a)h(synon)o(ym)g(for)f(this)i
-(v)m(ariable.)240 922 y Fq(output-meta)480 984 y Fr(If)11
-b(set)f(to)g(`)p Fq(on)p Fr(',)g(Readline)j(will)g(displa)o(y)e(c)o
-(haracters)f(with)h(the)g(eigh)o(th)g(bit)g(set)g(directly)480
-1046 y(rather)k(than)g(as)f(a)h(meta-pre\014xed)h(escap)q(e)g
-(sequence.)21 b(The)16 b(default)f(is)h(`)p Fq(off)p
-Fr('.)240 1126 y Fq(show-all-if-ambiguous)480 1189 y
-Fr(This)f(alters)f(the)h(default)g(b)q(eha)o(vior)g(of)f(the)h
-(completion)g(functions.)21 b(If)14 b(set)h(to)e(`)p
-Fq(on)p Fr(',)480 1251 y(w)o(ords)18 b(whic)o(h)i(ha)o(v)o(e)f(more)f
-(than)h(one)g(p)q(ossible)i(completion)f(cause)f(the)g(matc)o(hes)480
-1313 y(to)e(b)q(e)h(listed)h(immediately)g(instead)f(of)f(ringing)i
-(the)e(b)q(ell.)29 b(The)18 b(default)g(v)m(alue)g(is)480
-1375 y(`)p Fq(off)p Fr('.)240 1456 y Fq(visible-stats)480
-1518 y Fr(If)c(set)g(to)f(`)p Fq(on)p Fr(',)f(a)i(c)o(haracter)f
-(denoting)h(a)g(\014le's)g(t)o(yp)q(e)g(is)g(app)q(ended)i(to)d(the)h
-(\014lename)480 1580 y(when)i(listing)g(p)q(ossible)h(completions.)k
-(The)16 b(default)f(is)h(`)p Fq(off)p Fr('.)0 1660 y(Key)g(Bindings)240
-1722 y(The)k(syn)o(tax)f(for)g(con)o(trolling)i(k)o(ey)e(bindings)j(in)
-e(the)g(init)h(\014le)g(is)f(simple.)35 b(First)19 b(y)o(ou)g(ha)o(v)o
-(e)h(to)240 1785 y(kno)o(w)13 b(the)h(name)g(of)f(the)h(command)g(that)
-f(y)o(ou)g(w)o(an)o(t)g(to)g(c)o(hange.)20 b(The)14 b(follo)o(wing)g
-(pages)g(con)o(tain)240 1847 y(tables)i(of)f(the)h(command)g(name,)f
-(the)h(default)g(k)o(eybinding,)i(and)e(a)f(short)g(description)i(of)f
-(what)240 1909 y(the)f(command)g(do)q(es.)240 1980 y(Once)h(y)o(ou)e
-(kno)o(w)g(the)h(name)g(of)f(the)h(command,)f(simply)i(place)g(the)f
-(name)f(of)h(the)f(k)o(ey)h(y)o(ou)f(wish)240 2043 y(to)g(bind)j(the)e
-(command)g(to,)f(a)g(colon,)i(and)f(then)g(the)g(name)g(of)g(the)g
-(command)g(on)g(a)f(line)j(in)f(the)240 2105 y(init)h(\014le.)22
-b(The)16 b(name)g(of)f(the)h(k)o(ey)f(can)h(b)q(e)g(expressed)h(in)f
-(di\013eren)o(t)g(w)o(a)o(ys,)f(dep)q(ending)i(on)f(whic)o(h)240
-2167 y(is)g(most)e(comfortable)h(for)g(y)o(ou.)240 2247
-y Fl(k)o(eyname)s Fr(:)k Fl(function-name)g Fr(or)c Fl(macro)480
-2310 y(k)o(eyname)j Fr(is)d(the)h(name)f(of)g(a)g(k)o(ey)g(sp)q(elled)i
-(out)e(in)h(English.)21 b(F)l(or)15 b(example:)600 2370
-y Fq(Control-u:)22 b(universal-argument)600 2422 y(Meta-Rubout:)g
-(backward-kill-word)600 2474 y(Control-o:)g(">)i(output")480
-2545 y Fr(In)12 b(the)g(ab)q(o)o(v)o(e)f(example,)h(`)p
-Fq(C-u)p Fr(')f(is)h(b)q(ound)g(to)f(the)h(function)g
-Fq(universal-argument)p Fr(,)480 2608 y(and)h(`)p Fq(C-o)p
-Fr(')f(is)h(b)q(ound)h(to)f(run)g(the)g(macro)f(expressed)i(on)f(the)g
-(righ)o(t)g(hand)g(side)h(\(that)480 2670 y(is,)h(to)g(insert)h(the)f
-(text)g(`)p Fq(>)f(output)p Fr(')g(in)o(to)h(the)h(line\).)p
-eop
-8 9 bop 0 -58 a Fr(8)1472 b(GNU)15 b(Readline)i(Library)240
-183 y Fq(")p Fl(k)o(eyseq)q Fq(")p Fr(:)j Fl(function-name)e
-Fr(or)d Fl(macro)480 246 y(k)o(eyseq)j Fr(di\013ers)f(from)f
-Fl(k)o(eyname)k Fr(ab)q(o)o(v)o(e)c(in)i(that)e(strings)h(denoting)h
-(an)f(en)o(tire)g(k)o(ey)480 308 y(sequence)i(can)f(b)q(e)h(sp)q
-(eci\014ed,)i(b)o(y)d(placing)h(the)f(k)o(ey)g(sequence)h(in)g(double)h
-(quotes.)480 370 y(Some)e(GNU)g(Emacs)f(st)o(yle)h(k)o(ey)g(escap)q(es)
-g(can)g(b)q(e)h(used,)g(as)e(in)i(the)f(follo)o(wing)h(ex-)480
-432 y(ample,)c(but)h(the)f(sp)q(ecial)i(c)o(haracter)e(names)g(are)g
-(not)f(recognized.)600 499 y Fq("\\C-u":)23 b(universal-argument)600
-551 y("\\C-x\\C-r":)f(re-read-init-file)600 603 y("\\e[11~":)h
-("Function)f(Key)i(1")480 681 y Fr(In)13 b(the)g(ab)q(o)o(v)o(e)g
-(example,)g(`)p Fq(C-u)p Fr(')f(is)h(b)q(ound)h(to)e(the)h(function)g
-Fq(universal-argument)480 743 y Fr(\(just)g(as)f(it)i(w)o(as)e(in)i
-(the)f(\014rst)g(example\),)h(`)p Fq(C-x)g(C-r)p Fr(')f(is)g(b)q(ound)i
-(to)d(the)h(function)h Fq(re-)480 805 y(read-init-file)p
-Fr(,)g(and)i(`)p Fq(ESC)e([)h(1)g(1)g(~)p Fr(')h(is)g(b)q(ound)h(to)f
-(insert)g(the)g(text)f(`)p Fq(Function)480 867 y(Key)g(1)p
-Fr('.)24 b(The)18 b(follo)o(wing)f(escap)q(e)h(sequences)g(are)f(a)o(v)
-m(ailable)i(when)e(sp)q(ecifying)i(k)o(ey)480 930 y(sequences:)480
-1022 y Fq(\\C-)168 b Fr(con)o(trol)15 b(pre\014x)480
-1115 y Fq(\\M-)168 b Fr(meta)15 b(pre\014x)480 1208 y
-Fq(\\e)192 b Fr(an)15 b(escap)q(e)h(c)o(haracter)480
-1300 y Fq(\\\\)192 b Fr(bac)o(kslash)480 1393 y Fq(\\")g(")480
-1485 y(\\')g(')480 1578 y Fr(When)14 b(en)o(tering)h(the)f(text)f(of)h
-(a)f(macro,)g(single)j(or)d(double)i(quotes)f(should)h(b)q(e)f(used)480
-1640 y(to)g(indicate)j(a)e(macro)f(de\014nition.)22 b(Unquoted)15
-b(text)g(is)g(assumed)g(to)g(b)q(e)g(a)g(function)480
-1703 y(name.)21 b(Bac)o(kslash)16 b(will)h(quote)f(an)o(y)f(c)o
-(haracter)g(in)h(the)g(macro)f(text,)g(including)j(`)p
-Fq(")p Fr(')480 1765 y(and)12 b(`)p Fq(')p Fr('.)18 b(F)l(or)11
-b(example,)i(the)f(follo)o(wing)g(binding)i(will)f(mak)o(e)e(`)p
-Fq(C-x)k(\\)p Fr(')c(insert)h(a)g(single)480 1827 y(`)p
-Fq(\\)p Fr(')i(in)o(to)h(the)h(line:)600 1894 y Fq("\\C-x\\\\":)23
-b("\\\\")0 2126 y Fk(1.3.2)30 b(Conditional)15 b(Init)g(Constructs)62
-2266 y Fr(Readline)j(implemen)o(ts)e(a)f(facilit)o(y)h(similar)g(in)g
-(spirit)g(to)f(the)g(conditional)i(compilation)f(features)f(of)g(the)g
-(C)0 2328 y(prepro)q(cessor)f(whic)o(h)h(allo)o(ws)f(k)o(ey)g(bindings)
-h(and)f(v)m(ariable)i(settings)e(to)f(b)q(e)h(p)q(erformed)h(as)e(the)h
-(result)g(of)g(tests.)0 2391 y(There)h(are)g(three)h(parser)e(directiv)
-o(es)j(used.)0 2545 y Fq($if)168 b Fr(The)14 b Fq($if)e
-Fr(construct)h(allo)o(ws)h(bindings)h(to)e(b)q(e)h(made)f(based)h(on)f
-(the)h(editing)g(mo)q(de,)g(the)f(terminal)240 2608 y(b)q(eing)k(used,)
-e(or)g(the)g(application)i(using)f(Readline.)22 b(The)16
-b(text)f(of)g(the)g(test)g(extends)g(to)g(the)g(end)240
-2670 y(of)g(the)g(line;)i(no)e(c)o(haracters)f(are)h(required)h(to)f
-(isolate)g(it.)p eop
-9 10 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1227
-b(9)240 183 y Fq(mode)144 b Fr(The)19 b Fq(mode=)f Fr(form)g(of)h(the)g
-Fq($if)f Fr(directiv)o(e)i(is)f(used)h(to)e(test)g(whether)h(Readline)i
-(is)480 246 y(in)h Fq(emacs)f Fr(or)f Fq(vi)h Fr(mo)q(de.)38
-b(This)22 b(ma)o(y)f(b)q(e)h(used)g(in)g(conjunction)g(with)f(the)h(`)p
-Fq(set)480 308 y(keymap)p Fr(')d(command,)i(for)e(instance,)j(to)d(set)
-h(bindings)i(in)f(the)f Fq(emacs-standard)480 370 y Fr(and)15
-b Fq(emacs-ctlx)f Fr(k)o(eymaps)h(only)h(if)f(Readline)j(is)e(starting)
-e(out)h(in)h Fq(emacs)f Fr(mo)q(de.)240 457 y Fq(term)144
-b Fr(The)21 b Fq(term=)f Fr(form)g(ma)o(y)h(b)q(e)g(used)h(to)e
-(include)j(terminal-sp)q(eci\014c)h(k)o(ey)c(bindings,)480
-519 y(p)q(erhaps)15 b(to)f(bind)j(the)d(k)o(ey)h(sequences)h(output)e
-(b)o(y)h(the)g(terminal's)g(function)h(k)o(eys.)480 582
-y(The)f(w)o(ord)g(on)f(the)i(righ)o(t)e(side)i(of)f(the)g(`)p
-Fq(=)p Fr(')f(is)h(tested)g(against)g(the)g(full)h(name)f(of)g(the)480
-644 y(terminal)k(and)g(the)g(p)q(ortion)g(of)f(the)h(terminal)g(name)g
-(b)q(efore)g(the)g(\014rst)f(`)p Fq(-)p Fr('.)29 b(This)480
-706 y(allo)o(ws)15 b Fq(sun)g Fr(to)g(matc)o(h)f(b)q(oth)i
-Fq(sun)e Fr(and)i Fq(sun-cmd)p Fr(,)e(for)g(instance.)240
-793 y Fq(application)480 856 y Fr(The)k Fl(application)i
-Fr(construct)e(is)g(used)h(to)e(include)k(application-sp)q(eci\014c)g
-(settings.)480 918 y(Eac)o(h)d(program)g(using)h(the)f(Readline)j
-(library)e(sets)f(the)h Fl(application)h(name)p Fr(,)f(and)480
-980 y(y)o(ou)c(can)h(test)f(for)g(it.)21 b(This)16 b(could)g(b)q(e)h
-(used)f(to)e(bind)j(k)o(ey)f(sequences)g(to)f(functions)480
-1043 y(useful)h(for)e(a)h(sp)q(eci\014c)i(program.)h(F)l(or)d
-(instance,)g(the)g(follo)o(wing)h(command)e(adds)h(a)480
-1105 y(k)o(ey)g(sequence)h(that)f(quotes)g(the)g(curren)o(t)g(or)g
-(previous)h(w)o(ord)e(in)i(Bash:)600 1169 y Fq($if)23
-b(Bash)600 1221 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)600
-1273 y("\\C-xq":)g("\\eb\\"\\ef\\"")600 1325 y($endif)0
-1412 y($endif)96 b Fr(This)16 b(command,)e(as)h(y)o(ou)g(sa)o(w)g(in)h
-(the)f(previous)h(example,)f(terminates)h(an)f Fq($if)f
-Fr(command.)0 1499 y Fq($else)120 b Fr(Commands)15 b(in)h(this)f(branc)
-o(h)h(of)e(the)i Fq($if)e Fr(directiv)o(e)j(are)e(executed)h(if)g(the)f
-(test)g(fails.)0 1707 y Fk(1.3.3)30 b(Sample)15 b(Init)g(File)62
-1844 y Fr(Here)20 b(is)f(an)g(example)h(of)f(an)g(inputrc)h(\014le.)33
-b(This)20 b(illustrates)g(k)o(ey)f(binding,)j(v)m(ariable)e(assignmen)o
-(t,)g(and)0 1906 y(conditional)d(syn)o(tax.)p eop
-10 11 bop 0 -58 a Fr(10)1449 b(GNU)15 b(Readline)i(Library)120
-235 y Fq(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)120 287 y(#)h(programs)e(that)i(use)f(the)h(Gnu)
-f(Readline)g(library.)47 b(Existing)22 b(programs)120
-339 y(#)i(include)f(FTP,)g(Bash,)g(and)h(Gdb.)120 391
-y(#)120 443 y(#)g(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h
-(C-x)f(C-r.)120 495 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h
-(comments.)120 546 y(#)120 598 y(#)g(Set)f(various)g(bindings)g(for)g
-(emacs)g(mode.)120 702 y(set)g(editing-mode)g(emacs)120
-806 y($if)g(mode=emacs)120 910 y(Meta-Control-h:)46 b
-(backward-kill-word)21 b(Text)i(after)h(the)f(function)g(name)g(is)h
-(ignored)120 1013 y(#)120 1065 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)
-120 1117 y(#)120 1169 y(#"\\M-OD":)190 b(backward-char)120
-1221 y(#"\\M-OC":)g(forward-char)120 1273 y(#"\\M-OA":)g
-(previous-history)120 1325 y(#"\\M-OB":)g(next-history)120
-1377 y(#)120 1429 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)120
-1480 y(#)120 1532 y("\\M-[D":)190 b(backward-char)120
-1584 y("\\M-[C":)g(forward-char)120 1636 y("\\M-[A":)g
-(previous-history)120 1688 y("\\M-[B":)g(next-history)120
-1740 y(#)120 1792 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-120 1844 y(#)120 1896 y(#"\\M-\\C-OD":)165 b(backward-char)120
-1947 y(#"\\M-\\C-OC":)g(forward-char)120 1999 y(#"\\M-\\C-OA":)g
-(previous-history)120 2051 y(#"\\M-\\C-OB":)g(next-history)120
-2103 y(#)120 2155 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-120 2207 y(#)120 2259 y(#"\\M-\\C-[D":)165 b(backward-char)120
-2311 y(#"\\M-\\C-[C":)g(forward-char)120 2363 y(#"\\M-\\C-[A":)g
-(previous-history)120 2414 y(#"\\M-\\C-[B":)g(next-history)120
-2518 y(C-q:)23 b(quoted-insert)120 2622 y($endif)p eop
-11 12 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(11)120 235 y Fq(#)24 b(An)f(old-style)g(binding.)47
-b(This)23 b(happens)g(to)g(be)h(the)f(default.)120 287
-y(TAB:)g(complete)120 391 y(#)h(Macros)f(that)g(are)h(convenient)e(for)
-h(shell)h(interaction)120 443 y($if)f(Bash)120 495 y(#)h(edit)f(the)g
-(path)120 546 y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")120
-598 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)f(insert)g(open)
-h(and)f(close)g(double)g(quotes)120 650 y(#)h(and)f(move)g(to)h(just)f
-(after)h(the)f(open)g(quote)120 702 y("\\C-x\\"":)g("\\"\\"\\C-b")120
-754 y(#)h(insert)f(a)g(backslash)g(\(testing)g(backslash)g(escapes)f
-(in)i(sequences)f(and)g(macros\))120 806 y("\\C-x\\\\":)g("\\\\")120
-858 y(#)h(Quote)f(the)g(current)g(or)h(previous)f(word)120
-910 y("\\C-xq":)g("\\eb\\"\\ef\\"")120 962 y(#)h(Add)f(a)h(binding)f
-(to)g(refresh)g(the)h(line,)f(which)g(is)h(unbound)120
-1013 y("\\C-xr":)f(redraw-current-line)120 1065 y(#)h(Edit)f(variable)g
-(on)g(current)g(line.)120 1117 y("\\M-\\C-v":)f
-("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)o(")120 1169 y($endif)120
-1273 y(#)i(use)f(a)h(visible)f(bell)g(if)h(one)f(is)h(available)120
-1325 y(set)f(bell-style)g(visible)120 1429 y(#)h(don't)f(strip)g
-(characters)g(to)g(7)h(bits)f(when)h(reading)120 1480
-y(set)f(input-meta)g(on)120 1584 y(#)h(allow)f(iso-latin1)f(characters)
-h(to)g(be)h(inserted)f(rather)g(than)g(converted)g(to)120
-1636 y(#)h(prefix-meta)e(sequences)120 1688 y(set)h(convert-meta)g(off)
-120 1792 y(#)h(display)f(characters)f(with)h(the)h(eighth)f(bit)g(set)h
-(directly)f(rather)g(than)120 1844 y(#)h(as)f(meta-prefixed)f
-(characters)120 1896 y(set)h(output-meta)g(on)120 1999
-y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g(completions)f
-(for)i(a)f(word,)h(ask)f(the)120 2051 y(#)h(user)f(if)h(he)f(wants)g
-(to)h(see)f(all)h(of)f(them)120 2103 y(set)g(completion-query-items)e
-(150)120 2207 y(#)j(For)f(FTP)120 2259 y($if)g(Ftp)120
-2311 y("\\C-xg":)g("get)g(\\M-?")120 2363 y("\\C-xt":)g("put)g(\\M-?")
-120 2414 y("\\M-.":)g(yank-last-arg)120 2466 y($endif)p
-eop
-12 13 bop 0 -58 a Fr(12)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fp(1.4)33 b(Bindable)16 b(Readline)h(Commands)62
-322 y Fr(This)f(section)g(describ)q(es)h(Readline)g(commands)e(that)g
-(ma)o(y)f(b)q(e)i(b)q(ound)g(to)f(k)o(ey)g(sequences.)0
-545 y Fk(1.4.1)30 b(Commands)15 b(F)-5 b(or)15 b(Mo)n(ving)0
-698 y Fq(beginning-of-line)e(\(C-a\))240 760 y Fr(Mo)o(v)o(e)h(to)h
-(the)g(start)f(of)h(the)g(curren)o(t)g(line.)0 851 y
-Fq(end-of-line)f(\(C-e\))240 913 y Fr(Mo)o(v)o(e)g(to)h(the)g(end)h(of)
-f(the)g(line.)0 1003 y Fq(forward-char)f(\(C-f\))240
-1066 y Fr(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)0
-1156 y Fq(backward-char)e(\(C-b\))240 1219 y Fr(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)0 1309 y Fq(forward-word)f(\(M-f\))240
-1371 y Fr(Mo)o(v)o(e)g(forw)o(ard)g(to)h(the)g(end)h(of)f(the)g(next)g
-(w)o(ord.)k(W)l(ords)c(are)g(comp)q(osed)h(of)e(letters)i(and)f
-(digits.)0 1462 y Fq(backward-word)e(\(M-b\))240 1524
-y Fr(Mo)o(v)o(e)j(bac)o(k)g(to)g(the)h(start)f(of)g(this,)h(or)g(the)f
-(previous,)i(w)o(ord.)24 b(W)l(ords)16 b(are)g(comp)q(osed)i(of)e
-(letters)240 1587 y(and)f(digits.)0 1677 y Fq(clear-screen)f(\(C-l\))
-240 1739 y Fr(Clear)h(the)g(screen)g(and)g(redra)o(w)f(the)h(curren)o
-(t)g(line,)h(lea)o(ving)g(the)f(curren)o(t)f(line)j(at)d(the)h(top)f
-(of)h(the)240 1802 y(screen.)0 1892 y Fq(redraw-current-line)e(\(\))240
-1955 y Fr(Refresh)j(the)f(curren)o(t)g(line.)22 b(By)15
-b(default,)h(this)f(is)h(un)o(b)q(ound.)0 2177 y Fk(1.4.2)30
-b(Commands)15 b(F)-5 b(or)15 b(Manipulating)g(The)g(History)0
-2330 y Fq(accept-line)f(\(Newline,)g(Return\))240 2393
-y Fr(Accept)g(the)f(line)i(regardless)e(of)g(where)g(the)g(cursor)g
-(is.)20 b(If)13 b(this)h(line)h(is)e(non-empt)o(y)l(,)h(add)f(it)g(to)g
-(the)240 2455 y(history)k(list.)25 b(If)17 b(this)g(line)i(w)o(as)c(a)i
-(history)g(line,)h(then)f(restore)f(the)h(history)f(line)j(to)d(its)h
-(original)240 2517 y(state.)0 2608 y Fq(previous-history)c(\(C-p\))240
-2670 y Fr(Mo)o(v)o(e)h(`up')h(through)g(the)g(history)g(list.)p
-eop
-13 14 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(13)0 183 y Fq(next-history)14 b(\(C-n\))240 246 y Fr(Mo)o(v)o(e)g
-(`do)o(wn')g(through)h(the)h(history)f(list.)0 331 y
-Fq(beginning-of-history)d(\(M-<\))240 393 y Fr(Mo)o(v)o(e)i(to)h(the)g
-(\014rst)g(line)i(in)f(the)f(history)l(.)0 478 y Fq(end-of-history)e
-(\(M->\))240 540 y Fr(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h
-(history)l(,)f(i.e.,)g(the)g(line)i(y)o(ou)e(are)g(en)o(tering.)0
-625 y Fq(reverse-search-history)d(\(C-r\))240 688 y Fr(Searc)o(h)18
-b(bac)o(kw)o(ard)f(starting)g(at)g(the)g(curren)o(t)h(line)h(and)f(mo)o
-(ving)f(`up')h(through)f(the)h(history)f(as)240 750 y(necessary)l(.)j
-(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)0 835 y
-Fq(forward-search-history)c(\(C-s\))240 897 y Fr(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)g(the)g(curren)o(t)h(line)h(and)f(mo)o(ving)f(`do)
-o(wn')g(through)g(the)g(the)h(history)240 960 y(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)0 1045
-y Fq(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))240
-1107 y Fr(Searc)o(h)18 b(bac)o(kw)o(ard)f(starting)g(at)g(the)g(curren)
-o(t)h(line)h(and)f(mo)o(ving)f(`up')h(through)f(the)h(history)f(as)240
-1169 y(necessary)e(using)h(a)f(non-incremen)o(tal)i(searc)o(h)e(for)g
-(a)f(string)i(supplied)h(b)o(y)e(the)h(user.)0 1254 y
-Fq(non-incremental-forward-se)o(arch-hi)o(story)c(\(M-n\))240
-1317 y Fr(Searc)o(h)j(forw)o(ard)e(starting)h(at)g(the)g(curren)o(t)h
-(line)h(and)f(mo)o(ving)f(`do)o(wn')g(through)g(the)g(the)h(history)240
-1379 y(as)g(necessary)g(using)h(a)f(non-incremen)o(tal)i(searc)o(h)e
-(for)f(a)h(string)g(supplied)j(b)o(y)d(the)g(user.)0
-1464 y Fq(history-search-forward)d(\(\))240 1526 y Fr(Searc)o(h)h(forw)
-o(ard)f(through)h(the)g(history)g(for)g(the)g(string)g(of)g(c)o
-(haracters)f(b)q(et)o(w)o(een)i(the)f(start)f(of)h(the)240
-1589 y(curren)o(t)19 b(line)h(and)f(the)g(curren)o(t)f(cursor)h(p)q
-(osition)g(\(the)g(`p)q(oin)o(t'\).)30 b(This)19 b(is)g(a)f
-(non-incremen)o(tal)240 1651 y(searc)o(h.)i(By)15 b(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)0 1736 y Fq(history-search-backward)c
-(\(\))240 1798 y Fr(Searc)o(h)21 b(bac)o(kw)o(ard)f(through)g(the)h
-(history)f(for)g(the)h(string)f(of)h(c)o(haracters)f(b)q(et)o(w)o(een)g
-(the)h(start)240 1860 y(of)c(the)h(curren)o(t)g(line)h(and)f(the)f(p)q
-(oin)o(t.)28 b(This)18 b(is)h(a)e(non-incremen)o(tal)i(searc)o(h.)27
-b(By)18 b(default,)h(this)240 1923 y(command)c(is)h(un)o(b)q(ound.)0
-2008 y Fq(yank-nth-arg)e(\(M-C-y\))240 2070 y Fr(Insert)19
-b(the)g(\014rst)f(argumen)o(t)g(to)g(the)h(previous)g(command)g
-(\(usually)g(the)g(second)g(w)o(ord)f(on)h(the)240 2132
-y(previous)e(line\).)23 b(With)16 b(an)g(argumen)o(t)f
-Fl(n)p Fr(,)h(insert)h(the)f Fl(n)p Fr(th)g(w)o(ord)f(from)g(the)h
-(previous)h(command)240 2195 y(\(the)d(w)o(ords)g(in)h(the)g(previous)g
-(command)f(b)q(egin)i(with)f(w)o(ord)f(0\).)19 b(A)14
-b(negativ)o(e)h(argumen)o(t)f(inserts)240 2257 y(the)h
-Fl(n)p Fr(th)h(w)o(ord)e(from)h(the)g(end)h(of)e(the)i(previous)g
-(command.)0 2342 y Fq(yank-last-arg)d(\(M-.,)i(M-_\))240
-2404 y Fr(Insert)i(last)g(argumen)o(t)g(to)f(the)h(previous)h(command)f
-(\(the)g(last)g(w)o(ord)f(of)h(the)g(previous)h(history)240
-2467 y(en)o(try\).)h(With)d(an)f(argumen)o(t,)f(b)q(eha)o(v)o(e)h
-(exactly)h(lik)o(e)g Fq(yank-nth-arg)p Fr(.)0 2670 y
-Fk(1.4.3)30 b(Commands)15 b(F)-5 b(or)15 b(Changing)g(T)-5
-b(ext)p eop
-14 15 bop 0 -58 a Fr(14)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fq(delete-char)d(\(C-d\))240 246 y Fr(Delete)f(the)f(c)o
-(haracter)f(under)i(the)f(cursor.)19 b(If)12 b(the)g(cursor)g(is)g(at)g
-(the)g(b)q(eginning)i(of)e(the)g(line,)i(there)240 308
-y(are)k(no)h(c)o(haracters)e(in)j(the)e(line,)j(and)d(the)h(last)f(c)o
-(haracter)g(t)o(yp)q(ed)h(w)o(as)f(not)g Fq(C-d)p Fr(,)g(then)h(return)
-240 370 y Fq(EOF)p Fr(.)0 460 y Fq(backward-delete-char)12
-b(\(Rubout\))240 522 y Fr(Delete)g(the)f(c)o(haracter)f(b)q(ehind)j
-(the)e(cursor.)18 b(A)11 b(n)o(umeric)h(arg)e(sa)o(ys)g(to)g(kill)j
-(the)e(c)o(haracters)f(instead)240 584 y(of)15 b(deleting)h(them.)0
-674 y Fq(quoted-insert)d(\(C-q,)i(C-v\))240 736 y Fr(Add)i(the)f(next)h
-(c)o(haracter)f(that)f(y)o(ou)h(t)o(yp)q(e)h(to)f(the)g(line)i(v)o
-(erbatim.)24 b(This)17 b(is)g(ho)o(w)e(to)h(insert)h(k)o(ey)240
-799 y(sequences)f(lik)o(e)h Fq(C-Q)p Fr(,)d(for)h(example.)0
-888 y Fq(tab-insert)f(\(M-TAB\))240 951 y Fr(Insert)h(a)g(tab)g(c)o
-(haracter.)0 1040 y Fq(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...\))
-240 1103 y Fr(Insert)g(y)o(ourself.)0 1192 y Fq(transpose-chars)e
-(\(C-t\))240 1255 y Fr(Drag)h(the)h(c)o(haracter)g(b)q(efore)g(the)h
-(cursor)f(forw)o(ard)f(o)o(v)o(er)g(the)h(c)o(haracter)g(at)f(the)i
-(cursor,)e(mo)o(ving)240 1317 y(the)k(cursor)h(forw)o(ard)e(as)h(w)o
-(ell.)30 b(If)19 b(the)f(insertion)i(p)q(oin)o(t)f(is)g(at)e(the)i(end)
-g(of)f(the)g(line,)j(then)e(this)240 1379 y(transp)q(oses)c(the)g(last)
-g(t)o(w)o(o)f(c)o(haracters)h(of)f(the)i(line.)21 b(Negativ)o(e)15
-b(argumen)o(tss)f(don't)h(w)o(ork.)0 1469 y Fq(transpose-words)e
-(\(M-t\))240 1531 y Fr(Drag)f(the)h(w)o(ord)f(b)q(ehind)i(the)f(cursor)
-g(past)f(the)h(w)o(ord)f(in)h(fron)o(t)f(of)h(the)f(cursor)h(mo)o(ving)
-f(the)h(cursor)240 1594 y(o)o(v)o(er)h(that)h(w)o(ord)f(as)h(w)o(ell.)0
-1683 y Fq(upcase-word)f(\(M-u\))240 1746 y Fr(Upp)q(ercase)h(the)e
-(curren)o(t)h(\(or)f(follo)o(wing\))h(w)o(ord.)k(With)c(a)f(negativ)o
-(e)h(argumen)o(t,)f(do)g(the)h(previous)240 1808 y(w)o(ord,)g(but)h(do)
-h(not)e(mo)o(v)o(e)h(the)g(cursor.)0 1898 y Fq(downcase-word)e(\(M-l\))
-240 1960 y Fr(Lo)o(w)o(ercase)g(the)i(curren)o(t)f(\(or)f(follo)o
-(wing\))h(w)o(ord.)19 b(With)14 b(a)g(negativ)o(e)g(argumen)o(t,)f(do)h
-(the)g(previous)240 2022 y(w)o(ord,)g(but)h(do)h(not)e(mo)o(v)o(e)h
-(the)g(cursor.)0 2112 y Fq(capitalize-word)e(\(M-c\))240
-2174 y Fr(Capitalize)j(the)e(curren)o(t)g(\(or)f(follo)o(wing\))i(w)o
-(ord.)j(With)d(a)f(negativ)o(e)g(argumen)o(t,)f(do)h(the)g(previous)240
-2236 y(w)o(ord,)g(but)h(do)h(not)e(mo)o(v)o(e)h(the)g(cursor.)0
-2456 y Fk(1.4.4)30 b(Killing)15 b(And)h(Y)-5 b(anking)0
-2608 y Fq(kill-line)14 b(\(C-k\))240 2670 y Fr(Kill)j(the)f(text)e
-(from)h(the)g(curren)o(t)g(cursor)g(p)q(osition)h(to)f(the)g(end)h(of)f
-(the)g(line.)p eop
-15 16 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(15)0 183 y Fq(backward-kill-line)13 b(\(C-x)h(Rubout\))240
-246 y Fr(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)0 332 y Fq(unix-line-discard)e(\(C-u\))240 394
-y Fr(Kill)j(bac)o(kw)o(ard)d(from)f(the)i(cursor)f(to)g(the)h(b)q
-(eginning)i(of)d(the)g(curren)o(t)h(line.)21 b(Sa)o(v)o(e)13
-b(the)h(killed)h(text)240 456 y(on)g(the)g(kill-ring.)0
-543 y Fq(kill-whole-line)e(\(\))240 605 y Fr(Kill)18
-b(all)f(c)o(haracters)e(on)h(the)g(curren)o(t)f(line,)j(no)e(matter)e
-(where)i(the)g(cursor)g(is.)22 b(By)16 b(default,)h(this)240
-667 y(is)f(un)o(b)q(ound.)0 753 y Fq(kill-word)e(\(M-d\))240
-816 y Fr(Kill)j(from)d(the)h(cursor)g(to)f(the)h(end)g(of)g(the)g
-(curren)o(t)f(w)o(ord,)g(or)g(if)i(b)q(et)o(w)o(een)f(w)o(ords,)f(to)g
-(the)h(end)g(of)240 878 y(the)g(next)h(w)o(ord.)j(W)l(ord)c(b)q
-(oundaries)h(are)f(the)g(same)g(as)g Fq(forward-word)p
-Fr(.)0 964 y Fq(backward-kill-word)e(\(M-DEL\))240 1027
-y Fr(Kill)k(the)f(w)o(ord)e(b)q(ehind)j(the)f(cursor.)j(W)l(ord)c(b)q
-(oundaries)i(are)d(the)i(same)f(as)f Fq(backward-word)p
-Fr(.)0 1113 y Fq(unix-word-rubout)f(\(C-w\))240 1175
-y Fr(Kill)i(the)e(w)o(ord)f(b)q(ehind)j(the)f(cursor,)e(using)i(white)f
-(space)h(as)e(a)h(w)o(ord)f(b)q(oundary)l(.)20 b(The)13
-b(killed)i(text)240 1237 y(is)h(sa)o(v)o(ed)e(on)i(the)f(kill-ring.)0
-1324 y Fq(delete-horizontal-space)d(\(\))240 1386 y Fr(Delete)k(all)g
-(spaces)f(and)h(tabs)e(around)i(p)q(oin)o(t.)k(By)15
-b(default,)h(this)f(is)h(un)o(b)q(ound.)0 1472 y Fq(kill-region)e(\(\))
-240 1535 y Fr(Kill)23 b(the)e(text)g(b)q(et)o(w)o(een)g(the)g(p)q(oin)o
-(t)g(and)g(the)g Fl(mark)j Fr(\(sa)o(v)o(ed)c(cursor)g(p)q(osition.)38
-b(This)22 b(text)e(is)240 1597 y(referred)15 b(to)g(as)g(the)g
-Fl(region)p Fr(.)20 b(By)15 b(default,)h(this)g(command)f(is)g(un)o(b)q
-(ound.)0 1683 y Fq(copy-region-as-kill)e(\(\))240 1745
-y Fr(Cop)o(y)f(the)h(text)f(in)i(the)f(region)g(to)f(the)g(kill)j
-(bu\013er,)e(so)f(y)o(ou)h(can)f(y)o(ank)h(it)g(righ)o(t)f(a)o(w)o(a)o
-(y)l(.)18 b(By)13 b(default,)240 1808 y(this)j(command)f(is)g(un)o(b)q
-(ound.)0 1894 y Fq(copy-backward-word)e(\(\))240 1956
-y Fr(Cop)o(y)i(the)g(w)o(ord)f(b)q(efore)i(p)q(oin)o(t)g(to)e(the)h
-(kill)j(bu\013er.)h(By)d(default,)f(this)h(command)f(is)h(un)o(b)q
-(ound.)0 2043 y Fq(copy-forward-word)d(\(\))240 2105
-y Fr(Cop)o(y)f(the)h(w)o(ord)f(follo)o(wing)h(p)q(oin)o(t)g(to)f(the)h
-(kill)h(bu\013er.)19 b(By)13 b(default,)g(this)h(command)e(is)h(un)o(b)
-q(ound.)0 2191 y Fq(yank)i(\(C-y\))240 2253 y Fr(Y)l(ank)g(the)h(top)f
-(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(the)i(curren)
-o(t)f(cursor)g(p)q(osition.)0 2340 y Fq(yank-pop)f(\(M-y\))240
-2402 y Fr(Rotate)f(the)h(kill-ring,)i(and)e(y)o(ank)g(the)g(new)g(top.)
-19 b(Y)l(ou)14 b(can)g(only)g(do)g(this)g(if)g(the)g(prior)g(command)
-240 2464 y(is)i(y)o(ank)f(or)f(y)o(ank-p)q(op.)0 2670
-y Fk(1.4.5)30 b(Sp)r(ecifying)15 b(Numeric)h(Argumen)n(ts)p
-eop
-16 17 bop 0 -58 a Fr(16)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fq(digit-argument)c(\(M-0,)i(M-1,)f(...)h(M--\))240
-246 y Fr(Add)j(this)g(digit)h(to)e(the)h(argumen)o(t)e(already)i(accum)
-o(ulating,)h(or)e(start)g(a)g(new)h(argumen)o(t.)26 b
-Fq(M--)240 308 y Fr(starts)14 b(a)h(negativ)o(e)g(argumen)o(t.)0
-403 y Fq(universal-argument)e(\(\))240 465 y Fr(This)f(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)12
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)g(or)f(more)240
-527 y(digits,)19 b(optionally)g(with)f(a)g(leading)h(min)o(us)f(sign,)h
-(those)e(digits)i(de\014ne)g(the)f(argumen)o(t.)27 b(If)18
-b(the)240 590 y(command)12 b(is)h(follo)o(w)o(ed)g(b)o(y)f(digits,)i
-(executing)f Fq(universal-argument)d Fr(again)j(ends)g(the)f(n)o
-(umeric)240 652 y(argumen)o(t,)i(but)h(is)g(otherwise)g(ignored.)20
-b(As)15 b(a)f(sp)q(ecial)j(case,)d(if)h(this)g(command)g(is)g
-(immediately)240 714 y(follo)o(w)o(ed)e(b)o(y)f(a)h(c)o(haracter)e
-(that)h(is)h(neither)h(a)e(digit)i(or)e(min)o(us)h(sign,)g(the)g
-(argumen)o(t)f(coun)o(t)g(for)g(the)240 776 y(next)i(command)g(is)h(m)o
-(ultiplied)i(b)o(y)d(four.)19 b(The)c(argumen)o(t)e(coun)o(t)h(is)h
-(initially)i(one,)d(so)g(executing)240 839 y(this)k(function)g(the)f
-(\014rst)g(time)g(mak)o(es)g(the)g(argumen)o(t)g(coun)o(t)g(four,)g(a)g
-(second)h(time)f(mak)o(es)g(the)240 901 y(argumen)o(t)d(coun)o(t)h
-(sixteen,)h(and)f(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f(b)
-q(ound)h(to)f(a)g(k)o(ey)l(.)0 1143 y Fk(1.4.6)30 b(Letting)14
-b(Readline)h(T)n(yp)r(e)h(F)-5 b(or)14 b(Y)-5 b(ou)0
-1301 y Fq(complete)14 b(\(TAB\))240 1363 y Fr(A)o(ttempt)i(to)h(do)g
-(completion)i(on)e(the)g(text)g(b)q(efore)h(the)f(cursor.)26
-b(This)18 b(is)g(application-sp)q(eci\014c.)240 1425
-y(Generally)l(,)h(if)f(y)o(ou)f(are)h(t)o(yping)g(a)f(\014lename)i
-(argumen)o(t,)e(y)o(ou)g(can)h(do)f(\014lename)i(completion;)g(if)240
-1487 y(y)o(ou)f(are)f(t)o(yping)i(a)e(command,)i(y)o(ou)e(can)i(do)f
-(command)g(completion,)h(if)g(y)o(ou)e(are)h(t)o(yping)g(in)h(a)240
-1550 y(sym)o(b)q(ol)e(to)f(GDB,)g(y)o(ou)g(can)h(do)g(sym)o(b)q(ol)g
-(name)g(completion,)h(if)f(y)o(ou)f(are)h(t)o(yping)g(in)g(a)g(v)m
-(ariable)240 1612 y(to)e(Bash,)f(y)o(ou)h(can)h(do)f(v)m(ariable)h
-(name)g(completion,)g(and)f(so)g(on.)0 1707 y Fq(possible-completions)d
-(\(M-?\))240 1769 y Fr(List)k(the)f(p)q(ossible)i(completions)f(of)f
-(the)g(text)g(b)q(efore)h(the)f(cursor.)0 1864 y Fq(insert-completions)
-e(\(M-*\))240 1926 y Fr(Insert)22 b(all)h(completions)g(of)f(the)g
-(text)f(b)q(efore)h(p)q(oin)o(t)h(that)e(w)o(ould)h(ha)o(v)o(e)g(b)q
-(een)h(generated)f(b)o(y)240 1989 y Fq(possible-completions)p
-Fr(.)0 2231 y Fk(1.4.7)30 b(Keyb)r(oard)15 b(Macros)0
-2388 y Fq(start-kbd-macro)e(\(C-x)i(\(\))240 2451 y Fr(Begin)h(sa)o
-(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o(to)f(the)g(curren)o(t)
-g(k)o(eyb)q(oard)g(macro.)0 2545 y Fq(end-kbd-macro)e(\(C-x)i(\)\))240
-2608 y Fr(Stop)f(sa)o(ving)h(the)g(c)o(haracters)f(t)o(yp)q(ed)h(in)o
-(to)f(the)h(curren)o(t)f(k)o(eyb)q(oard)h(macro)f(and)h(sa)o(v)o(e)f
-(the)g(de\014ni-)240 2670 y(tion.)p eop
-17 18 bop 0 -58 a Fr(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1205
-b(17)0 183 y Fq(call-last-kbd-macro)13 b(\(C-x)h(e\))240
-246 y Fr(Re-execute)20 b(the)f(last)f(k)o(eyb)q(oard)g(macro)g
-(de\014ned,)i(b)o(y)f(making)f(the)h(c)o(haracters)f(in)h(the)g(macro)
-240 308 y(app)q(ear)c(as)g(if)h(t)o(yp)q(ed)f(at)g(the)g(k)o(eyb)q
-(oard.)0 546 y Fk(1.4.8)30 b(Some)15 b(Miscellaneous)h(Commands)0
-703 y Fq(re-read-init-file)d(\(C-x)h(C-r\))240 765 y
-Fr(Read)23 b(in)h(the)e(con)o(ten)o(ts)g(of)h(the)f(inputrc)i(\014le,)h
-(and)e(incorp)q(orate)g(an)o(y)f(bindings)i(or)f(v)m(ariable)240
-827 y(assignmen)o(ts)15 b(found)h(there.)0 921 y Fq(abort)e(\(C-g\))240
-984 y Fr(Ab)q(ort)f(the)h(curren)o(t)f(editing)i(command)e(and)h(ring)g
-(the)f(terminal's)h(b)q(ell)h(\(sub)s(ject)f(to)e(the)i(setting)240
-1046 y(of)h Fq(bell-style)p Fr(\).)0 1140 y Fq(do-uppercase-version)d
-(\(M-a,)j(M-b,)f(M-)p Fl(x)p Fq(,)h Fj(:)8 b(:)g(:)n
-Fq(\))240 1202 y Fr(If)16 b(the)f(meta\014ed)g(c)o(haracter)g
-Fl(x)k Fr(is)c(lo)o(w)o(ercase,)g(run)h(the)f(command)g(that)g(is)h(b)q
-(ound)g(to)f(the)g(corre-)240 1264 y(sp)q(onding)h(upp)q(ercase)h(c)o
-(haracter.)0 1358 y Fq(prefix-meta)d(\(ESC\))240 1421
-y Fr(Mak)o(e)g(the)g(next)h(c)o(haracter)f(that)g(y)o(ou)g(t)o(yp)q(e)h
-(b)q(e)g(meta\014ed.)20 b(This)15 b(is)g(for)f(p)q(eople)i(without)e(a)
-h(meta)240 1483 y(k)o(ey)l(.)20 b(T)o(yping)c(`)p Fq(ESC)e(f)p
-Fr(')h(is)g(equiv)m(alen)o(t)i(to)e(t)o(yping)g(`)p Fq(M-f)p
-Fr('.)0 1577 y Fq(undo)g(\(C-_,)f(C-x)h(C-u\))240 1639
-y Fr(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q(ered)g(for)e
-(eac)o(h)h(line.)0 1733 y Fq(revert-line)f(\(M-r\))240
-1796 y Fr(Undo)20 b(all)h(c)o(hanges)f(made)g(to)f(this)i(line.)35
-b(This)21 b(is)f(lik)o(e)h(t)o(yping)f(the)g Fq(undo)g
-Fr(command)g(enough)240 1858 y(times)15 b(to)g(get)g(bac)o(k)g(to)f
-(the)i(b)q(eginning.)0 1952 y Fq(tilde-expand)e(\(M-~\))240
-2014 y Fr(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)0 2108 y Fq(set-mark)f(\(C-@\))240 2171 y Fr(Set)i(the)g(mark)f
-(to)g(the)h(curren)o(t)g(p)q(oin)o(t.)23 b(If)16 b(a)f(n)o(umeric)i
-(argumen)o(t)e(is)i(supplied,)h(the)e(mark)f(is)h(set)240
-2233 y(to)f(that)f(p)q(osition.)0 2327 y Fq(exchange-point-and-mark)e
-(\(C-x)j(C-x\))240 2389 y Fr(Sw)o(ap)e(the)g(p)q(oin)o(t)h(with)f(the)g
-(mark.)19 b(The)13 b(curren)o(t)g(cursor)g(p)q(osition)h(is)g(set)f(to)
-f(the)i(sa)o(v)o(ed)e(p)q(osition,)240 2451 y(and)j(the)h(old)f(cursor)
-g(p)q(osition)i(is)e(sa)o(v)o(ed)g(as)g(the)g(mark.)0
-2545 y Fq(character-search)e(\(C-]\))240 2608 y Fr(A)19
-b(c)o(haracter)e(is)j(read)e(and)h(p)q(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)
-g(the)g(next)h(o)q(ccurrence)h(of)e(that)g(c)o(haracter.)29
-b(A)240 2670 y(negativ)o(e)15 b(coun)o(t)g(searc)o(hes)g(for)g
-(previous)h(o)q(ccurrences.)p eop
-18 19 bop 0 -58 a Fr(18)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fq(character-search-backward)12 b(\(M-C-]\))240
-246 y Fr(A)i(c)o(haracter)f(is)h(read)g(and)f(p)q(oin)o(t)i(is)f(mo)o
-(v)o(ed)f(to)g(the)h(previous)g(o)q(ccurrence)h(of)e(that)g(c)o
-(haracter.)19 b(A)240 308 y(negativ)o(e)c(coun)o(t)g(searc)o(hes)g(for)
-g(subsequen)o(t)h(o)q(ccurrences.)0 395 y Fq(insert-comment)d(\(M-#\))
-240 457 y Fr(The)19 b(v)m(alue)g(of)f(the)g Fq(comment-begin)f
-Fr(v)m(ariable)i(is)g(inserted)g(at)f(the)g(b)q(eginning)j(of)d(the)g
-(curren)o(t)240 519 y(line,)e(and)g(the)f(line)i(is)f(accepted)g(as)e
-(if)i(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)0 607
-y Fq(dump-functions)c(\(\))240 669 y Fr(Prin)o(t)18 b(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(readline)h
-(output)e(stream.)28 b(If)18 b(a)240 731 y(n)o(umeric)i(argumen)o(t)d
-(is)i(supplied,)j(the)d(output)f(is)h(formatted)f(in)h(suc)o(h)g(a)f(w)
-o(a)o(y)g(that)g(it)h(can)f(b)q(e)240 793 y(made)d(part)g(of)g(an)g
-Fl(inputrc)k Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)o
-(y)e(default.)0 881 y Fq(dump-variables)e(\(\))240 943
-y Fr(Prin)o(t)j(all)h(of)f(the)h(settable)f(v)m(ariables)i(and)e(their)
-h(v)m(alues)g(to)f(the)g(readline)i(output)e(stream.)23
-b(If)16 b(a)240 1005 y(n)o(umeric)k(argumen)o(t)d(is)i(supplied,)j(the)
-d(output)f(is)h(formatted)f(in)h(suc)o(h)g(a)f(w)o(a)o(y)g(that)g(it)h
-(can)f(b)q(e)240 1067 y(made)d(part)g(of)g(an)g Fl(inputrc)k
-Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)o(y)e(default.)
-0 1155 y Fq(dump-macros)f(\(\))240 1217 y Fr(Prin)o(t)h(all)g(of)g(the)
-f(readline)j(k)o(ey)d(sequences)i(b)q(ound)g(to)e(macros)g(and)h(the)f
-(strings)h(they)g(ouput.)20 b(If)240 1279 y(a)c(n)o(umeric)h(argumen)o
-(t)e(is)i(supplied,)h(the)e(output)g(is)g(formatted)f(in)i(suc)o(h)g(a)
-e(w)o(a)o(y)g(that)h(it)g(can)g(b)q(e)240 1341 y(made)f(part)g(of)g(an)
-g Fl(inputrc)k Fr(\014le.)i(This)15 b(command)g(is)h(un)o(b)q(ound)h(b)
-o(y)e(default.)0 1566 y Fp(1.5)33 b(Readline)16 b(vi)g(Mo)r(de)62
-1703 y Fr(While)d(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o
-(e)f(a)g(full)i(set)f(of)f Fq(vi)g Fr(editing)i(functions,)g(it)f(do)q
-(es)g(con)o(tain)g(enough)0 1765 y(to)f(allo)o(w)i(simple)g(editing)g
-(of)f(the)g(line.)20 b(The)13 b(Readline)h Fq(vi)d Fr(mo)q(de)i(b)q
-(eha)o(v)o(es)f(as)g(sp)q(eci\014ed)i(in)e(the)h Fm(POSIX)f
-Fr(1003.2)0 1827 y(standard.)62 1964 y(In)17 b(order)e(to)g(switc)o(h)h
-(in)o(teractiv)o(ely)h(b)q(et)o(w)o(een)f Fq(emacs)f
-Fr(and)h Fq(vi)f Fr(editing)i(mo)q(des,)f(use)g(the)g(command)f(M-C-j)0
-2026 y(\(toggle-editing-mo)q(de\).)21 b(The)15 b(Readline)j(default)e
-(is)f Fq(emacs)g Fr(mo)q(de.)62 2163 y(When)k(y)o(ou)f(en)o(ter)g(a)g
-(line)i(in)g Fq(vi)e Fr(mo)q(de,)h(y)o(ou)f(are)g(already)g(placed)i
-(in)f(`insertion')g(mo)q(de,)g(as)f(if)h(y)o(ou)f(had)0
-2226 y(t)o(yp)q(ed)e(an)f(`)p Fq(i)p Fr('.)20 b(Pressing)c
-Fq(ESC)f Fr(switc)o(hes)h(y)o(ou)f(in)o(to)h(`command')f(mo)q(de,)g
-(where)h(y)o(ou)f(can)h(edit)g(the)g(text)f(of)g(the)0
-2288 y(line)j(with)e(the)h(standard)e Fq(vi)h Fr(mo)o(v)o(emen)o(t)f(k)
-o(eys,)h(mo)o(v)o(e)g(to)f(previous)i(history)f(lines)i(with)f(`)p
-Fq(k)p Fr(')e(and)h(subsequen)o(t)0 2350 y(lines)h(with)e(`)p
-Fq(j)p Fr(',)f(and)i(so)e(forth.)p eop
-19 20 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(19)0 183 y Fn(2)41 b(Programming)16 b(with)f(GNU)h
-(Readline)62 394 y Fr(This)j(c)o(hapter)f(describ)q(es)i(the)e(in)o
-(terface)g(b)q(et)o(w)o(een)h(the)f(GNU)g(Readline)j(Library)d(and)h
-(other)f(programs.)0 456 y(If)h(y)o(ou)g(are)f(a)h(programmer,)f(and)i
-(y)o(ou)e(wish)i(to)e(include)j(the)e(features)g(found)g(in)h(GNU)f
-(Readline)i(suc)o(h)e(as)0 518 y(completion,)f(line)h(editing,)f(and)f
-(in)o(teractiv)o(e)h(history)f(manipulation)h(in)g(y)o(our)f(o)o(wn)f
-(programs,)g(this)h(section)0 581 y(is)f(for)e(y)o(ou.)0
-848 y Fp(2.1)33 b(Basic)14 b(Beha)n(vior)62 989 y Fr(Man)o(y)c
-(programs)g(pro)o(vide)h(a)g(command)f(line)j(in)o(terface,)e(suc)o(h)g
-(as)g Fq(mail)p Fr(,)f Fq(ftp)p Fr(,)h(and)g Fq(sh)p
-Fr(.)18 b(F)l(or)10 b(suc)o(h)i(programs,)0 1052 y(the)17
-b(default)h(b)q(eha)o(viour)g(of)e(Readline)k(is)e(su\016cien)o(t.)26
-b(This)18 b(section)f(describ)q(es)i(ho)o(w)e(to)f(use)i(Readline)h(in)
-f(the)0 1114 y(simplest)e(w)o(a)o(y)e(p)q(ossible,)j(p)q(erhaps)f(to)e
-(replace)j(calls)f(in)g(y)o(our)f(co)q(de)g(to)g Fq(gets\(\))f
-Fr(or)h Fq(fgets)f(\(\))p Fr(.)62 1256 y(The)g(function)g
-Fq(readline)g(\(\))f Fr(prin)o(ts)h(a)f(prompt)g(and)h(then)g(reads)f
-(and)g(returns)h(a)f(single)i(line)g(of)e(text)g(from)0
-1318 y(the)g(user.)19 b(The)13 b(line)i Fq(readline)d
-Fr(returns)g(is)i(allo)q(cated)g(with)f Fq(malloc)h(\(\))p
-Fr(;)f(y)o(ou)g(should)h Fq(free)g(\(\))f Fr(the)g(line)h(when)0
-1380 y(y)o(ou)h(are)g(done)g(with)h(it.)k(The)15 b(declaration)h(for)f
-Fq(readline)f Fr(in)i(ANSI)g(C)f(is)120 1512 y Fq(char)23
-b(*readline)g(\(char)g(*)p Fl(prompt)q Fq(\);)0 1653
-y Fr(So,)15 b(one)g(migh)o(t)g(sa)o(y)120 1785 y Fq(char)23
-b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)0
-1927 y Fr(in)17 b(order)g(to)f(read)g(a)g(line)j(of)d(text)g(from)g
-(the)g(user.)24 b(The)17 b(line)h(returned)f(has)g(the)f(\014nal)i
-(newline)g(remo)o(v)o(ed,)e(so)0 1989 y(only)g(the)f(text)g(remains.)62
-2131 y(If)g Fq(readline)f Fr(encoun)o(ters)h(an)f Fq(EOF)h
-Fr(while)h(reading)f(the)g(line,)h(and)f(the)g(line)h(is)f(empt)o(y)g
-(at)f(that)g(p)q(oin)o(t,)h(then)0 2193 y Fq(\(char)f(*\)NULL)h
-Fr(is)h(returned.)k(Otherwise,)15 b(the)h(line)h(is)e(ended)i(just)d
-(as)h(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)62
-2335 y(If)g(y)o(ou)g(w)o(an)o(t)f(the)h(user)g(to)f(b)q(e)i(able)f(to)g
-(get)f(at)g(the)h(line)i(later,)e(\(with)g Fq(C-P)f Fr(for)g
-(example\),)i(y)o(ou)e(m)o(ust)h(call)0 2397 y Fq(add_history)d(\(\))h
-Fr(to)f(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)c(in)j(a)f
-Fl(history)k Fr(list)d(of)f(suc)o(h)h(lines.)120 2528
-y Fq(add_history)22 b(\(line\);)0 2670 y Fr(F)l(or)15
-b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f
-(asso)q(ciated)g(man)o(ual.)p eop
-20 21 bop 0 -58 a Fr(20)1449 b(GNU)15 b(Readline)i(Library)62
-183 y(It)e(is)g(preferable)g(to)f(a)o(v)o(oid)g(sa)o(ving)h(empt)o(y)f
-(lines)i(on)f(the)f(history)h(list,)g(since)g(users)g(rarely)g(ha)o(v)o
-(e)f(a)g(burning)0 246 y(need)i(to)e(reuse)h(a)f(blank)i(line.)21
-b(Here)15 b(is)g(a)g(function)g(whic)o(h)h(usefully)g(replaces)g(the)f
-(standard)f Fq(gets)h(\(\))f Fr(library)0 308 y(function,)i(and)f(has)g
-(the)g(adv)m(an)o(tage)g(of)g(no)g(static)g(bu\013er)g(to)g(o)o(v)o
-(er\015o)o(w:)120 445 y Fq(/*)24 b(A)f(static)g(variable)g(for)h
-(holding)e(the)i(line.)f(*/)120 497 y(static)g(char)g(*line_read)g(=)h
-(\(char)f(*\)NULL;)120 601 y(/*)h(Read)f(a)h(string,)f(and)g(return)g
-(a)h(pointer)f(to)g(it.)48 b(Returns)22 b(NULL)i(on)f(EOF.)h(*/)120
-653 y(char)f(*)120 705 y(rl_gets)g(\(\))120 757 y({)168
-809 y(/*)g(If)h(the)f(buffer)g(has)h(already)f(been)g(allocated,)g
-(return)g(the)g(memory)239 861 y(to)h(the)f(free)h(pool.)f(*/)168
-912 y(if)g(\(line_read\))215 964 y({)263 1016 y(free)g(\(line_read\);)
-263 1068 y(line_read)g(=)h(\(char)f(*\)NULL;)215 1120
-y(})168 1224 y(/*)g(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)168
-1276 y(line_read)f(=)i(readline)f(\(""\);)168 1379 y(/*)g(If)h(the)f
-(line)h(has)f(any)h(text)f(in)g(it,)h(save)f(it)h(on)f(the)h(history.)f
-(*/)168 1431 y(if)g(\(line_read)g(&&)g(*line_read\))215
-1483 y(add_history)g(\(line_read\);)168 1587 y(return)g(\(line_read\);)
-120 1639 y(})62 1787 y Fr(This)15 b(function)g(giv)o(es)f(the)g(user)g
-(the)g(default)h(b)q(eha)o(viour)g(of)e Fq(TAB)h Fr(completion:)20
-b(completion)15 b(on)f(\014le)h(names.)0 1849 y(If)h(y)o(ou)f(do)h(not)
-f(w)o(an)o(t)g(Readline)j(to)d(complete)i(on)e(\014lenames,)i(y)o(ou)e
-(can)h(c)o(hange)g(the)g(binding)i(of)d(the)h Fq(TAB)f
-Fr(k)o(ey)0 1912 y(with)h Fq(rl_bind_key)d(\(\))p Fr(.)120
-2049 y Fq(int)23 b(rl_bind_key)g(\(int)g Fl(k)o(ey)p
-Fq(,)h(int)f(\(*)p Fl(function)p Fq(\)\(\)\);)62 2197
-y(rl_bind_key)14 b(\(\))f Fr(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)19
-b Fl(k)o(ey)e Fr(is)d(the)g(c)o(haracter)f(that)g(y)o(ou)g(w)o(an)o(t)f
-(to)h(bind,)i(and)f Fl(function)0 2260 y Fr(is)g(the)g(address)g(of)f
-(the)h(function)g(to)f(call)i(when)f Fl(k)o(ey)j Fr(is)d(pressed.)20
-b(Binding)c Fq(TAB)d Fr(to)g Fq(rl_insert)h(\(\))f Fr(mak)o(es)g
-Fq(TAB)0 2322 y Fr(insert)i(itself.)20 b Fq(rl_bind_key)14
-b(\(\))g Fr(returns)g(non-zero)h(if)g Fl(k)o(ey)j Fr(is)d(not)f(a)g(v)m
-(alid)i(ASCI)q(I)f(c)o(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)0
-2384 y(0)g(and)g(255\).)62 2532 y(Th)o(us,)g(to)g(disable)h(the)g
-(default)f Fq(TAB)g Fr(b)q(eha)o(vior,)h(the)f(follo)o(wing)h
-(su\016ces:)120 2670 y Fq(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)p
-eop
-21 22 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(21)62 183 y(This)12 b(co)q(de)f(should)h(b)q(e)f
-(executed)h(once)f(at)f(the)h(start)f(of)g(y)o(our)g(program;)h(y)o(ou)
-g(migh)o(t)f(write)h(a)g(function)g(called)0 246 y Fq
-(initialize_readline)i(\(\))j Fr(whic)o(h)h(p)q(erforms)f(this)h(and)f
-(other)g(desired)i(initializations,)h(suc)o(h)e(as)f(installing)0
-308 y(custom)f(completers)g(\(see)h(Section)g(2.5)e([Custom)g
-(Completers],)h(page)g(34\).)0 562 y Fp(2.2)33 b(Custom)14
-b(F)-6 b(unctions)62 702 y Fr(Readline)18 b(pro)o(vides)f(man)o(y)e
-(functions)i(for)e(manipulating)j(the)e(text)f(of)g(the)h(line,)i(but)e
-(it)g(isn't)g(p)q(ossible)i(to)0 765 y(an)o(ticipate)i(the)g(needs)g
-(of)f(all)h(programs.)31 b(This)20 b(section)g(describ)q(es)h(the)f(v)m
-(arious)g(functions)g(and)g(v)m(ariables)0 827 y(de\014ned)c(within)f
-(the)g(Readline)i(library)e(whic)o(h)g(allo)o(w)g(a)f(user)g(program)f
-(to)h(add)h(customized)g(functionalit)o(y)h(to)0 889
-y(Readline.)0 1127 y Fk(2.2.1)30 b(The)15 b(F)-5 b(unction)14
-b(T)n(yp)r(e)62 1267 y Fr(F)l(or)j(readabilt)o(y)l(,)h(w)o(e)f(declare)
-i(a)e(new)g(t)o(yp)q(e)h(of)f(ob)s(ject,)f(called)j Fl(F)l(unction)p
-Fr(.)28 b(A)17 b Fq(Function)f Fr(is)i(a)f(C)g(function)0
-1329 y(whic)o(h)f(returns)f(an)g Fq(int)p Fr(.)20 b(The)15
-b(t)o(yp)q(e)g(declaration)h(for)f Fq(Function)f Fr(is:)0
-1470 y Fq(typedef)g(int)h(Function)f(\(\);)62 1610 y
-Fr(The)i(reason)f(for)g(declaring)i(this)f(new)g(t)o(yp)q(e)f(is)h(to)f
-(mak)o(e)g(it)h(easier)g(to)f(write)g(co)q(de)h(describing)i(p)q(oin)o
-(ters)e(to)0 1672 y(C)g(functions.)25 b(Let)17 b(us)f(sa)o(y)g(w)o(e)g
-(had)h(a)f(v)m(ariable)i(called)g Fl(func)i Fr(whic)o(h)d(w)o(as)f(a)g
-(p)q(oin)o(ter)h(to)f(a)g(function.)25 b(Instead)0 1735
-y(of)15 b(the)g(classic)h(C)f(declaration)62 1875 y Fq(int)g
-(\(*\)\(\)func;)0 2015 y Fr(w)o(e)g(ma)o(y)f(write)62
-2156 y Fq(Function)g(*func;)0 2296 y Fr(Similarly)l(,)j(there)e(are)120
-2426 y Fq(typedef)23 b(void)g(VFunction)g(\(\);)120 2478
-y(typedef)g(char)g(*CPFunction)g(\(\);)g Fr(and)120 2530
-y Fq(typedef)g(char)g(**CPPFunction)f(\(\);)0 2670 y
-Fr(for)12 b(functions)h(returning)g(no)g(v)m(alue,)g
-Fq(pointer)i(to)g(char)p Fr(,)d(and)g Fq(pointer)i(to)h(pointer)g(to)f
-(char)p Fr(,)e(resp)q(ectiv)o(ely)l(.)p eop
-22 23 bop 0 -58 a Fr(22)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fk(2.2.2)30 b(W)-5 b(riting)15 b(a)g(New)g(F)-5
-b(unction)62 325 y Fr(In)22 b(order)f(to)g(write)g(new)h(functions)g
-(for)f(Readline,)j(y)o(ou)d(need)h(to)f(kno)o(w)g(the)g(calling)i(con)o
-(v)o(en)o(tions)f(for)0 387 y(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)17
-b(functions,)g(and)f(the)h(names)f(of)g(the)h(v)m(ariables)h(that)d
-(describ)q(e)j(the)f(curren)o(t)f(state)g(of)g(the)0
-449 y(line)h(read)e(so)g(far.)62 591 y(The)h(calling)h(sequence)f(for)f
-(a)f(command)i Fq(foo)e Fr(lo)q(oks)i(lik)o(e)120 722
-y Fq(foo)23 b(\(int)h(count,)f(int)g(key\))0 864 y Fr(where)f
-Fl(coun)o(t)g Fr(is)g(the)f(n)o(umeric)i(argumen)o(t)d(\(or)h(1)g(if)h
-(defaulted\))g(and)f Fl(k)o(ey)26 b Fr(is)21 b(the)h(k)o(ey)f(that)g
-(in)o(v)o(ok)o(ed)h(this)0 926 y(function.)62 1068 y(It)f(is)h
-(completely)g(up)f(to)f(the)h(function)h(as)f(to)f(what)g(should)i(b)q
-(e)g(done)f(with)g(the)g(n)o(umeric)h(argumen)o(t.)0
-1130 y(Some)c(functions)g(use)g(it)g(as)f(a)h(rep)q(eat)g(coun)o(t,)f
-(some)h(as)f(a)g(\015ag,)h(and)g(others)f(to)g(c)o(ho)q(ose)h
-(alternate)f(b)q(eha)o(vior)0 1192 y(\(refreshing)12
-b(the)g(curren)o(t)g(line)h(as)f(opp)q(osed)g(to)f(refreshing)i(the)f
-(screen,)g(for)g(example\).)19 b(Some)12 b(c)o(ho)q(ose)f(to)h(ignore)0
-1255 y(it.)24 b(In)17 b(general,)g(if)g(a)g(function)g(uses)g(the)g(n)o
-(umeric)g(argumen)o(t)f(as)g(a)g(rep)q(eat)h(coun)o(t,)f(it)h(should)h
-(b)q(e)f(able)g(to)f(do)0 1317 y(something)f(useful)g(with)g(b)q(oth)f
-(negativ)o(e)h(and)f(p)q(ositiv)o(e)i(argumen)o(ts.)i(A)o(t)c(the)h(v)o
-(ery)f(least,)g(it)h(should)g(b)q(e)g(a)o(w)o(are)0 1379
-y(that)f(it)i(can)f(b)q(e)h(passed)g(a)e(negativ)o(e)i(argumen)o(t.)0
-1645 y Fp(2.3)33 b(Readline)16 b(V)-6 b(ariables)62 1787
-y Fr(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h
-(writers.)1736 1963 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 1963 18 3 v 21 w(line)p 320 1963 V
-23 w(bu\013er)120 2025 y Fr(This)f(is)g(the)f(line)i(gathered)e(so)g
-(far.)25 b(Y)l(ou)18 b(are)f(w)o(elcome)g(to)g(mo)q(dify)h(the)f(con)o
-(ten)o(ts)g(of)f(the)i(line,)120 2087 y(but)d(see)h(Section)g(2.4.5)d
-([Allo)o(wing)k(Undoing],)e(page)g(28.)1736 2263 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 2263 V 21 w(p)r(oin)n(t)120
-2325 y Fr(The)15 b(o\013set)g(of)f(the)i(curren)o(t)f(cursor)g(p)q
-(osition)h(in)g Fq(rl_line_buffer)d Fr(\(the)i Fl(p)q(oin)o(t)q
-Fr(\).)1736 2501 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p
-140 2501 V 21 w(end)120 2563 y Fr(The)d(n)o(um)o(b)q(er)f(of)g(c)o
-(haracters)g(presen)o(t)g(in)h Fq(rl_line_buffer)p Fr(.)k(When)c
-Fq(rl_point)e Fr(is)i(at)f(the)g(end)120 2626 y(of)f(the)g(line,)i
-Fq(rl_point)d Fr(and)h Fq(rl_end)f Fr(are)h(equal.)p
-eop
-23 24 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(23)1736 183 y(V)l(ariable)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(mark)120 246 y Fr(The)h(mark)e(\(sa)o(v)o
-(ed)h(p)q(osition\))h(in)g(the)f(curren)o(t)h(line.)37
-b(If)20 b(set,)h(the)g(mark)e(and)i(p)q(oin)o(t)g(de\014ne)g(a)120
-308 y Fl(region)p Fr(.)1736 473 y(V)l(ariable)-1899 b
-Fi(int)20 b Fh(rl)p 140 473 V 21 w(done)120 536 y Fr(Setting)13
-b(this)h(to)f(a)f(non-zero)i(v)m(alue)g(causes)f(Readline)j(to)c
-(return)h(the)h(curren)o(t)f(line)h(immediately)l(.)1736
-701 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 701
-V 21 w(p)r(ending)p 361 701 V 20 w(input)120 764 y Fr(Setting)15
-b(this)f(to)g(a)g(v)m(alue)i(mak)o(es)d(it)i(the)f(next)h(k)o(eystrok)o
-(e)e(read.)19 b(This)c(is)g(a)f(w)o(a)o(y)f(to)h(stu\013)g(a)g(single)
-120 826 y(c)o(haracter)g(in)o(to)i(the)f(input)h(stream.)1736
-991 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p 211
-991 V 21 w(prompt)120 1054 y Fr(The)c(prompt)e(Readline)k(uses.)j(This)
-15 b(is)f(set)h(from)e(the)h(argumen)o(t)g(to)g Fq(readline)g(\(\))p
-Fr(,)f(and)i(should)120 1116 y(not)g(b)q(e)h(assigned)f(to)g(directly)l
-(.)1736 1282 y(V)l(ariable)-1899 b Fi(char)20 b(*)f Fh(rl)p
-211 1282 V 21 w(library)p 400 1282 V 22 w(v)n(ersion)120
-1344 y Fr(The)c(v)o(ersion)h(n)o(um)o(b)q(er)f(of)g(this)h(revision)g
-(of)f(the)g(library)l(.)1736 1509 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 1509 V 21 w(terminal)p
-443 1509 V 21 w(name)120 1572 y Fr(The)c(terminal)h(t)o(yp)q(e,)f(used)
-h(for)f(initialization.)1736 1737 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 1737 V 21 w(readline)p
-430 1737 V 22 w(name)120 1800 y Fr(This)f(v)m(ariable)h(is)f(set)f(to)g
-(a)g(unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.)
-29 b(The)18 b(v)m(alue)120 1862 y(allo)o(ws)f(conditional)h(parsing)f
-(of)f(the)g(inputrc)i(\014le)f(\(see)g(Section)g(1.3.2)e([Conditional)j
-(Init)f(Con-)120 1924 y(structs],)d(page)h(8\).)1736
-2090 y(V)l(ariable)-1899 b Fi(FILE)20 b(*)f Fh(rl)p 211
-2090 V 21 w(instream)120 2152 y Fr(The)c(stdio)h(stream)e(from)h(whic)o
-(h)h(Readline)h(reads)e(input.)1736 2318 y(V)l(ariable)-1899
-b Fi(FILE)20 b(*)f Fh(rl)p 211 2318 V 21 w(outstream)120
-2380 y Fr(The)c(stdio)h(stream)e(to)h(whic)o(h)h(Readline)h(p)q
-(erforms)e(output.)1736 2545 y(V)l(ariable)-1899 b Fi(Function)20
-b(*)g Fh(rl)p 316 2545 V 21 w(startup)p 520 2545 V 20
-w(ho)r(ok)120 2608 y Fr(If)13 b(non-zero,)h(this)f(is)h(the)f(address)g
-(of)g(a)f(function)i(to)f(call)h(just)f(b)q(efore)g Fq(readline)f
-Fr(prin)o(ts)h(the)g(\014rst)120 2670 y(prompt.)p eop
-24 25 bop 0 -58 a Fr(24)1449 b(GNU)15 b(Readline)i(Library)1736
-183 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p
-316 183 18 3 v 21 w(ev)n(en)n(t)p 469 183 V 22 w(ho)r(ok)120
-246 y Fr(If)13 b(non-zero,)f(this)h(is)g(the)g(address)f(of)g(a)g
-(function)h(to)f(call)i(p)q(erio)q(dically)h(when)e(readline)h(is)f(w)o
-(aiting)120 308 y(for)i(terminal)h(input.)1736 471 y(V)l(ariable)-1899
-b Fi(Function)20 b(*)g Fh(rl)p 316 471 V 21 w(getc)p
-439 471 V 21 w(function)120 533 y Fr(If)c(non-zero,)h
-Fq(readline)d Fr(will)k(call)f(indirectly)i(through)c(this)i(p)q(oin)o
-(ter)g(to)e(get)h(a)f(c)o(haracter)h(from)120 595 y(the)k(input)h
-(stream.)33 b(By)20 b(default,)i(it)e(is)g(set)g(to)g
-Fq(rl_getc)p Fr(,)f(the)h(default)h Fq(readline)e Fr(c)o(haracter)120
-657 y(input)d(function)g(\(see)f(Section)h(2.4.8)e([Utilit)o(y)i(F)l
-(unctions],)f(page)g(31\).)1736 820 y(V)l(ariable)-1899
-b Fi(VFunction)20 b(*)g Fh(rl)p 342 820 V 21 w(redispla)n(y)p
-586 820 V 22 w(function)120 883 y Fr(If)f(non-zero,)h
-Fq(readline)e Fr(will)i(call)g(indirectly)i(through)c(this)i(p)q(oin)o
-(ter)f(to)f(up)q(date)i(the)f(displa)o(y)120 945 y(with)d(the)g(curren)
-o(t)f(con)o(ten)o(ts)g(of)h(the)f(editing)i(bu\013er.)22
-b(By)15 b(default,)h(it)g(is)h(set)e(to)g Fq(rl_redisplay)p
-Fr(,)120 1007 y(the)g(default)h Fq(readline)e Fr(redispla)o(y)i
-(function)g(\(see)g(Section)g(2.4.6)d([Redispla)o(y],)j(page)f(29\).)
-1736 1170 y(V)l(ariable)-1899 b Fi(Keymap)20 b Fh(rl)p
-218 1170 V 21 w(executing)p 476 1170 V 22 w(k)n(eymap)120
-1232 y Fr(This)15 b(v)m(ariable)h(is)f(set)g(to)f(the)g(k)o(eymap)h
-(\(see)f(Section)i(2.4.2)d([Keymaps],)h(page)g(25\))g(in)h(whic)o(h)h
-(the)120 1294 y(curren)o(tly)g(executing)g(readline)h(function)f(w)o
-(as)e(found.)1736 1457 y(V)l(ariable)-1899 b Fi(Keymap)20
-b Fh(rl)p 218 1457 V 21 w(binding)p 426 1457 V 22 w(k)n(eymap)120
-1520 y Fr(This)15 b(v)m(ariable)h(is)f(set)g(to)f(the)g(k)o(eymap)h
-(\(see)f(Section)i(2.4.2)d([Keymaps],)h(page)g(25\))g(in)h(whic)o(h)h
-(the)120 1582 y(last)f(k)o(ey)g(binding)i(o)q(ccurred.)0
-1809 y Fp(2.4)33 b(Readline)16 b(Con)n(v)n(enience)g(F)-6
-b(unctions)0 2019 y Fk(2.4.1)30 b(Naming)15 b(a)g(F)-5
-b(unction)62 2157 y Fr(The)19 b(user)f(can)g(dynamically)i(c)o(hange)e
-(the)g(bindings)i(of)e(k)o(eys)f(while)j(using)f(Readline.)30
-b(This)19 b(is)g(done)f(b)o(y)0 2219 y(represen)o(ting)f(the)g
-(function)h(with)f(a)g(descriptiv)o(e)h(name.)25 b(The)17
-b(user)g(is)g(able)h(to)e(t)o(yp)q(e)h(the)g(descriptiv)o(e)h(name)0
-2281 y(when)e(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14
-b(in)j(an)e(init)h(\014le,)g(one)f(migh)o(t)g(\014nd)120
-2408 y Fq(Meta-Rubout:)46 b(backward-kill-word)62 2545
-y Fr(This)21 b(binds)f(the)g(k)o(eystrok)o(e)f Fq(META-RUBOUT)f
-Fr(to)h(the)h(function)g Fl(descriptiv)o(ely)26 b Fr(named)20
-b Fq(backward-kill-)0 2608 y(word)p Fr(.)j(Y)l(ou,)16
-b(as)g(the)g(programmer,)f(should)i(bind)h(the)e(functions)i(y)o(ou)d
-(write)i(to)e(descriptiv)o(e)j(names)e(as)g(w)o(ell.)0
-2670 y(Readline)i(pro)o(vides)d(a)g(function)h(for)f(doing)g(that:)p
-eop
-25 26 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(25)1725 183 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(add)p 253 183 V 20 w(defun)i
-Fg(\()p Fq(char)14 b(*name,)g(Function)g(*function,)g(int)h(key)p
-Fg(\))120 246 y Fr(Add)20 b Fl(name)i Fr(to)d(the)h(list)g(of)f(named)h
-(functions.)33 b(Mak)o(e)19 b Fl(function)i Fr(b)q(e)f(the)f(function)i
-(that)d(gets)120 308 y(called.)j(If)16 b Fl(k)o(ey)j
-Fr(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fl(function)i
-Fr(using)g Fq(rl_bind_key)e(\(\))p Fr(.)62 471 y(Using)i(this)g
-(function)g(alone)g(is)g(su\016cien)o(t)h(for)d(most)h(applications.)22
-b(It)16 b(is)g(the)f(recommended)i(w)o(a)o(y)d(to)h(add)0
-533 y(a)i(few)h(functions)g(to)f(the)h(default)g(functions)h(that)e
-(Readline)j(has)d(built)i(in.)28 b(If)18 b(y)o(ou)g(need)g(to)f(do)h
-(something)0 595 y(other)c(than)h(adding)h(a)e(function)i(to)e
-(Readline,)j(y)o(ou)d(ma)o(y)g(need)i(to)e(use)h(the)g(underlying)h
-(functions)g(describ)q(ed)0 658 y(b)q(elo)o(w.)0 869
-y Fk(2.4.2)30 b(Selecting)15 b(a)g(Keymap)62 1006 y Fr(Key)k(bindings)i
-(tak)o(e)c(place)j(on)e(a)g Fl(k)o(eymap)p Fr(.)30 b(The)18
-b(k)o(eymap)h(is)g(the)f(asso)q(ciation)h(b)q(et)o(w)o(een)g(the)f(k)o
-(eys)h(that)0 1069 y(the)g(user)g(t)o(yp)q(es)g(and)g(the)g(functions)g
-(that)f(get)h(run.)30 b(Y)l(ou)20 b(can)e(mak)o(e)h(y)o(our)f(o)o(wn)g
-(k)o(eymaps,)h(cop)o(y)g(existing)0 1131 y(k)o(eymaps,)14
-b(and)i(tell)g(Readline)i(whic)o(h)e(k)o(eymap)f(to)f(use.)1725
-1294 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218
-1294 V 21 w(mak)n(e)p 370 1294 V 20 w(bare)p 500 1294
-V 20 w(k)n(eymap)j Fg(\(\))120 1356 y Fr(Returns)14 b(a)f(new,)g(empt)o
-(y)g(k)o(eymap.)19 b(The)14 b(space)f(for)g(the)h(k)o(eymap)f(is)g
-(allo)q(cated)i(with)e Fq(malloc)i(\(\))p Fr(;)120 1419
-y(y)o(ou)g(should)h Fq(free)f(\(\))g Fr(it)g(when)h(y)o(ou)f(are)f
-(done.)1725 1582 y(F)l(unction)-1899 b Fi(Keymap)20 b
-Fh(rl)p 218 1582 V 21 w(cop)n(y)p 353 1582 V 21 w(k)n(eymap)j
-Fg(\()p Fq(Keymap)14 b(map)p Fg(\))120 1644 y Fr(Return)i(a)f(new)g(k)o
-(eymap)g(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fl(map)p
-Fr(.)1725 1807 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p
-218 1807 V 21 w(mak)n(e)p 370 1807 V 20 w(k)n(eymap)j
-Fg(\(\))120 1869 y Fr(Return)c(a)f(new)h(k)o(eymap)f(with)h(the)f(prin)
-o(ting)i(c)o(haracters)d(b)q(ound)j(to)e(rl)p 1407 1869
-14 2 v 16 w(insert,)i(the)e(lo)o(w)o(ercase)120 1932
-y(Meta)13 b(c)o(haracters)g(b)q(ound)h(to)f(run)h(their)g(equiv)m(alen)
-o(ts,)i(and)d(the)h(Meta)f(digits)h(b)q(ound)h(to)e(pro)q(duce)120
-1994 y(n)o(umeric)j(argumen)o(ts.)1725 2157 y(F)l(unction)-1899
-b Fi(void)20 b Fh(rl)p 166 2157 18 3 v 21 w(discard)p
-366 2157 V 21 w(k)n(eymap)i Fg(\()p Fq(Keymap)14 b(keymap)p
-Fg(\))120 2219 y Fr(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f
-Fl(k)o(eymap)p Fr(.)62 2382 y(Readline)20 b(has)d(sev)o(eral)h(in)o
-(ternal)g(k)o(eymaps.)26 b(These)18 b(functions)g(allo)o(w)g(y)o(ou)f
-(to)g(c)o(hange)g(whic)o(h)h(k)o(eymap)f(is)0 2445 y(activ)o(e.)1725
-2608 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218
-2608 V 21 w(get)p 316 2608 V 21 w(k)n(eymap)i Fg(\(\))120
-2670 y Fr(Returns)16 b(the)f(curren)o(tly)h(activ)o(e)f(k)o(eymap.)p
-eop
-26 27 bop 0 -58 a Fr(26)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 183
-18 3 v 21 w(set)p 258 183 V 21 w(k)n(eymap)i Fg(\()p
-Fq(Keymap)14 b(keymap)p Fg(\))120 246 y Fr(Mak)o(es)g
-Fl(k)o(eymap)j Fr(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1725
-420 y(F)l(unction)-1899 b Fi(Keymap)20 b Fh(rl)p 218
-420 V 21 w(get)p 316 420 V 21 w(k)n(eymap)p 530 420 V
-20 w(b)n(y)p 610 420 V 21 w(name)i Fg(\()p Fq(char)14
-b(*name)p Fg(\))120 482 y Fr(Return)19 b(the)g(k)o(eymap)f(matc)o(hing)
-g Fl(name)p Fr(.)30 b Fl(name)21 b Fr(is)e(one)g(whic)o(h)g(w)o(ould)g
-(b)q(e)g(supplied)i(in)e(a)f Fq(set)120 544 y(keymap)c
-Fr(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g
-(page)f(5\).)1725 719 y(F)l(unction)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 719 V 21 w(get)p 309 719 V 21 w(k)n(eymap)p
-523 719 V 20 w(name)i Fg(\()p Fq(Keymap)14 b(keymap)p
-Fg(\))120 781 y Fr(Return)19 b(the)g(name)f(matc)o(hing)h
-Fl(k)o(eymap)p Fr(.)29 b Fl(name)21 b Fr(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)g(supplied)i(in)e(a)f Fq(set)120 843 y(keymap)c
-Fr(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)j(Init)f(File],)g
-(page)f(5\).)0 1088 y Fk(2.4.3)30 b(Binding)15 b(Keys)62
-1229 y Fr(Y)l(ou)h(asso)q(ciate)f(k)o(eys)f(with)i(functions)g(through)
-e(the)i(k)o(eymap.)j(Readline)f(has)c(sev)o(eral)i(in)o(ternal)g(k)o
-(eymaps:)0 1291 y Fq(emacs_standard_keymap)p Fr(,)i Fq
-(emacs_meta_keymap)p Fr(,)g Fq(emacs_ctlx_keymap)p Fr(,)h
-Fq(vi_movement_keymap)p Fr(,)f(and)0 1354 y Fq(vi_insertion_keymap)p
-Fr(.)h Fq(emacs_standard_keymap)13 b Fr(is)k(the)f(default,)g(and)g
-(the)g(examples)h(in)f(this)h(man)o(ual)0 1416 y(assume)e(that.)62
-1557 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1725
-1731 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1731
-V 21 w(bind)p 272 1731 V 21 w(k)n(ey)k Fg(\()p Fq(int)14
-b(key,)h(Function)f(*function)p Fg(\))120 1794 y Fr(Binds)i
-Fl(k)o(ey)j Fr(to)14 b Fl(function)i Fr(in)g(the)f(curren)o(tly)h
-(activ)o(e)f(k)o(eymap.)k(Returns)d(non-zero)f(in)h(the)f(case)g(of)120
-1856 y(an)g(in)o(v)m(alid)j Fl(k)o(ey)p Fr(.)1725 2030
-y(F)l(unction)-1899 b Fi(int)19 b Fh(rl)p 139 2030 V
-21 w(bind)p 271 2030 V 21 w(k)n(ey)p 376 2030 V 21 w(in)p
-444 2030 V 22 w(map)i Fg(\()p Fq(int)14 b(key,)h(Function)f(*function,)
-g(Keymap)g(map)p Fg(\))120 2093 y Fr(Bind)i Fl(k)o(ey)j
-Fr(to)c Fl(function)h Fr(in)g Fl(map)p Fr(.)k(Returns)15
-b(non-zero)h(in)g(the)f(case)g(of)g(an)g(in)o(v)m(alid)j
-Fl(k)o(ey)p Fr(.)1725 2267 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 2267 V 21 w(un)n(bind)p 334 2267 V 21 w(k)n(ey)k
-Fg(\()p Fq(int)14 b(key)p Fg(\))120 2329 y Fr(Bind)h
-Fl(k)o(ey)i Fr(to)c(the)h(n)o(ull)h(function)f(in)g(the)g(curren)o(tly)
-g(activ)o(e)g(k)o(eymap.)19 b(Returns)14 b(non-zero)g(in)g(case)120
-2391 y(of)h(error.)1725 2566 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 2566 V 21 w(un)n(bind)p 334 2566 V 21 w(k)n(ey)p
-439 2566 V 21 w(in)p 507 2566 V 22 w(map)h Fg(\()p Fq(int)14
-b(key,)h(Keymap)f(map)p Fg(\))120 2628 y Fr(Bind)i Fl(k)o(ey)j
-Fr(to)c(the)g(n)o(ull)i(function)f(in)g Fl(map)p Fr(.)k(Returns)15
-b(non-zero)h(in)g(case)f(of)g(error.)p eop
-27 28 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(27)1725 183 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(generic)p 338 183 V 21
-w(bind)j Fg(\()p Fq(int)15 b(type,)f(char)h(*keyseq,)f(char)h(*data,)f
-(Keymap)208 246 y(map)p Fg(\))120 308 y Fr(Bind)j(the)f(k)o(ey)g
-(sequence)h(represen)o(ted)f(b)o(y)g(the)g(string)g Fl(k)o(eyseq)g
-Fr(to)g(the)f(arbitrary)h(p)q(oin)o(ter)g Fl(data)p Fr(.)120
-370 y Fl(t)o(yp)q(e)j Fr(sa)o(ys)c(what)g(kind)i(of)f(data)f(is)i(p)q
-(oin)o(ted)g(to)e(b)o(y)h Fl(data)p Fr(;)f(this)i(can)f(b)q(e)g(a)g
-(function)h(\()p Fq(ISFUNC)p Fr(\),)d(a)120 432 y(macro)i(\()p
-Fq(ISMACR)p Fr(\),)f(or)i(a)f(k)o(eymap)g(\()p Fq(ISKMAP)p
-Fr(\).)23 b(This)18 b(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.)
-25 b(The)120 495 y(initial)17 b(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g
-(bindings)i(is)f Fl(map)p Fr(.)1725 683 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 683 V 21 w(parse)p 294 683
-V 19 w(and)p 405 683 V 21 w(bind)j Fg(\()p Fq(char)14
-b(*line)p Fg(\))120 745 y Fr(P)o(arse)i Fl(line)21 b
-Fr(as)16 b(if)h(it)g(had)f(b)q(een)i(read)f(from)e(the)i
-Fq(inputrc)f Fr(\014le)h(and)g(p)q(erform)f(an)o(y)h(k)o(ey)f(bindings)
-120 808 y(and)f(v)m(ariable)i(assignmen)o(ts)e(found)h(\(see)f(Section)
-h(1.3)e([Readline)j(Init)f(File],)g(page)f(5\).)1725
-996 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 996
-V 21 w(read)p 271 996 V 20 w(init)p 375 996 V 22 w(\014le)k
-Fg(\()p Fq(char)14 b(*filename)p Fg(\))120 1059 y Fr(Read)19
-b(k)o(eybindings)i(and)e(v)m(ariable)h(assignmen)o(ts)f(from)f
-Fl(\014lename)k Fr(\(see)d(Section)g(1.3)f([Readline)120
-1121 y(Init)e(File],)g(page)f(5\).)0 1409 y Fk(2.4.4)30
-b(Asso)r(ciating)15 b(F)-5 b(unction)15 b(Names)g(and)g(Bindings)62
-1554 y Fr(These)22 b(functions)g(allo)o(w)g(y)o(ou)f(to)f(\014nd)i(out)
-f(what)g(k)o(eys)g(in)o(v)o(ok)o(e)h(named)f(functions)h(and)g(the)f
-(functions)0 1617 y(in)o(v)o(ok)o(ed)15 b(b)o(y)h(a)e(particular)i(k)o
-(ey)f(sequence.)1725 1805 y(F)l(unction)-1899 b Fi(Function)20
-b(*)g Fh(rl)p 316 1805 V 21 w(named)p 504 1805 V 19 w(function)j
-Fg(\()p Fq(char)14 b(*name)p Fg(\))120 1868 y Fr(Return)i(the)f
-(function)h(with)g(name)f Fl(name)p Fr(.)1725 2056 y(F)l(unction)-1899
-b Fi(Function)20 b(*)g Fh(rl)p 316 2056 V 21 w(function)p
-542 2056 V 21 w(of)p 610 2056 V 19 w(k)n(eyseq)k Fg(\()p
-Fq(char)15 b(*keyseq,)f(Keymap)g(map,)h(int)208 2118
-y(*type)p Fg(\))120 2181 y Fr(Return)i(the)f(function)h(in)o(v)o(ok)o
-(ed)g(b)o(y)f Fl(k)o(eyseq)i Fr(in)f(k)o(eymap)f Fl(map)p
-Fr(.)23 b(If)16 b Fl(map)i Fr(is)f(NULL,)g(the)f(curren)o(t)120
-2243 y(k)o(eymap)g(is)i(used.)25 b(If)17 b Fl(t)o(yp)q(e)i
-Fr(is)e(not)g(NULL,)g(the)g(t)o(yp)q(e)g(of)f(the)h(ob)s(ject)f(is)h
-(returned)g(in)h(it)f(\(one)f(of)120 2305 y Fq(ISFUNC)p
-Fr(,)e Fq(ISKMAP)p Fr(,)g(or)h Fq(ISMACR)p Fr(\).)1725
-2494 y(F)l(unction)-1899 b Fi(char)20 b(**)f Fh(rl)p
-237 2494 V 21 w(in)n(v)n(oking)p 466 2494 V 23 w(k)n(eyseqs)k
-Fg(\()p Fq(Function)14 b(*function)p Fg(\))120 2556 y
-Fr(Return)19 b(an)e(arra)o(y)g(of)h(strings)f(represen)o(ting)i(the)f
-(k)o(ey)g(sequences)h(used)f(to)f(in)o(v)o(ok)o(e)h Fl(function)h
-Fr(in)120 2618 y(the)c(curren)o(t)g(k)o(eymap.)p eop
-28 29 bop 0 -58 a Fr(28)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(char)20 b(**)f Fh(rl)p 237
-183 18 3 v 21 w(in)n(v)n(oking)p 466 183 V 23 w(k)n(eyseqs)p
-675 183 V 21 w(in)p 743 183 V 22 w(map)i Fg(\()p Fq(Function)14
-b(*function,)f(Keymap)208 246 y(map)p Fg(\))120 308 y
-Fr(Return)19 b(an)e(arra)o(y)g(of)h(strings)f(represen)o(ting)i(the)f
-(k)o(ey)g(sequences)h(used)f(to)f(in)o(v)o(ok)o(e)h Fl(function)h
-Fr(in)120 370 y(the)c(k)o(eymap)g Fl(map)p Fr(.)1725
-563 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 563
-V 21 w(function)p 392 563 V 21 w(dump)r(er)g Fg(\()p
-Fq(int)15 b(readable)p Fg(\))120 625 y Fr(Prin)o(t)i(the)g(readline)h
-(function)g(names)f(and)g(the)g(k)o(ey)g(sequences)h(curren)o(tly)g(b)q
-(ound)f(to)g(them)g(to)120 687 y Fq(rl_outstream)p Fr(.)j(If)c
-Fl(readable)j Fr(is)d(non-zero,)g(the)g(list)g(is)g(formatted)f(in)i
-(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)120 750 y(b)q(e)g(made)f
-(part)g(of)f(an)i Fq(inputrc)e Fr(\014le)i(and)f(re-read.)1725
-942 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 942
-V 21 w(list)p 262 942 V 22 w(funmap)p 475 942 V 18 w(names)h
-Fg(\(\))120 1005 y Fr(Prin)o(t)15 b(the)g(names)h(of)e(all)j(bindable)g
-(Readline)g(functions)f(to)f Fq(rl_outstream)p Fr(.)0
-1305 y Fk(2.4.5)30 b(Allo)n(wing)16 b(Undoing)62 1452
-y Fr(Supp)q(orting)f(the)f(undo)g(command)g(is)g(a)g(painless)h(thing,)
-f(and)g(mak)o(es)f(y)o(our)h(functions)g(m)o(uc)o(h)g(more)f(useful.)0
-1515 y(It)i(is)g(certainly)g(easy)f(to)g(try)g(something)h(if)g(y)o(ou)
-f(kno)o(w)g(y)o(ou)g(can)h(undo)g(it.)20 b(I)15 b(could)g(use)g(an)f
-(undo)h(function)h(for)0 1577 y(the)f(sto)q(c)o(k)g(mark)o(et.)62
-1724 y(If)h(y)o(our)f(function)i(simply)g(inserts)f(text)f(once,)h(or)f
-(deletes)h(text)f(once,)h(and)g(uses)g Fq(rl_insert_text)d(\(\))i
-Fr(or)0 1786 y Fq(rl_delete_text)e(\(\))i Fr(to)g(do)g(it,)g(then)g
-(undoing)i(is)e(already)h(done)f(for)g(y)o(ou)g(automatically)l(.)62
-1934 y(If)h(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o(ultiple)i
-(deletions,)f(or)f(an)o(y)g(com)o(bination)h(of)f(these)g(op)q
-(erations,)g(y)o(ou)0 1996 y(should)j(group)e(them)g(together)g(in)o
-(to)g(one)h(op)q(eration.)24 b(This)17 b(is)g(done)g(with)g
-Fq(rl_begin_undo_group)c(\(\))j Fr(and)0 2058 y Fq(rl_end_undo_group)d
-(\(\))p Fr(.)62 2206 y(The)j(t)o(yp)q(es)f(of)g(ev)o(en)o(ts)g(that)f
-(can)h(b)q(e)h(undone)g(are:)120 2343 y Fq(enum)23 b(undo_code)g({)h
-(UNDO_DELETE,)e(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)h(};)62
-2490 y Fr(Notice)c(that)e Fq(UNDO_DELETE)f Fr(means)i(to)f(insert)i
-(some)e(text,)h(and)g Fq(UNDO_INSERT)e Fr(means)i(to)f(delete)i(some)0
-2552 y(text.)37 b(That)21 b(is,)i(the)e(undo)h(co)q(de)f(tells)i(undo)e
-(what)g(to)f(undo,)j(not)e(ho)o(w)g(to)f(undo)i(it.)38
-b Fq(UNDO_BEGIN)20 b Fr(and)0 2614 y Fq(UNDO_END)14 b
-Fr(are)h(tags)f(added)i(b)o(y)f Fq(rl_begin_undo_group)e(\(\))i
-Fr(and)g Fq(rl_end_undo_group)e(\(\))p Fr(.)p eop
-29 30 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(29)1725 183 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 183 18 3 v 21 w(b)r(egin)p 297 183 V 20
-w(undo)p 442 183 V 20 w(group)h Fg(\(\))120 246 y Fr(Begins)e(sa)o
-(ving)e(undo)i(information)f(in)g(a)g(group)f(construct.)27
-b(The)18 b(undo)h(information)f(usually)120 308 y(comes)j(from)f(calls)
-h(to)g Fq(rl_insert_text)13 b(\(\))20 b Fr(and)h Fq(rl_delete_text)13
-b(\(\))p Fr(,)22 b(but)f(could)g(b)q(e)h(the)120 370
-y(result)16 b(of)e(calls)j(to)d Fq(rl_add_undo)g(\(\))p
-Fr(.)1725 541 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p
-140 541 V 21 w(end)p 251 541 V 20 w(undo)p 396 541 V
-20 w(group)h Fg(\(\))120 603 y Fr(Closes)d(the)f(curren)o(t)g(undo)h
-(group)f(started)g(with)h Fq(rl_begin_undo_group)12 b(\(\))p
-Fr(.)26 b(There)18 b(should)120 665 y(b)q(e)e(one)f(call)i(to)d
-Fq(rl_end_undo_group)f(\(\))i Fr(for)f(eac)o(h)i(call)g(to)f
-Fq(rl_begin_undo_group)d(\(\))p Fr(.)1725 836 y(F)l(unction)-1899
-b Fi(void)20 b Fh(rl)p 166 836 V 21 w(add)p 279 836 V
-20 w(undo)i Fg(\()p Fq(enum)14 b(undo_code)g(what,)g(int)h(start,)g
-(int)f(end,)h(char)208 898 y(*text)p Fg(\))120 960 y
-Fr(Remem)o(b)q(er)20 b(ho)o(w)e(to)h(undo)g(an)g(ev)o(en)o(t)g
-(\(according)g(to)g Fl(what)q Fr(\).)30 b(The)19 b(a\013ected)g(text)f
-(runs)i(from)120 1023 y Fl(start)15 b Fr(to)g Fl(end)p
-Fr(,)g(and)g(encompasses)h Fl(text)p Fr(.)1725 1193 y(F)l(unction)-1899
-b Fi(void)20 b Fh(free)p 221 1193 V 20 w(undo)p 366 1193
-V 20 w(list)k Fg(\(\))120 1256 y Fr(F)l(ree)15 b(the)h(existing)g(undo)
-f(list.)1725 1426 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p
-140 1426 V 21 w(do)p 222 1426 V 20 w(undo)i Fg(\(\))120
-1488 y Fr(Undo)14 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h(list.)20
-b(Returns)14 b Fq(0)f Fr(if)h(there)g(w)o(as)e(nothing)i(to)f(undo,)h
-(non-zero)120 1551 y(if)i(something)f(w)o(as)f(undone.)62
-1721 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i
-(text,)d(but)i(directly)h(mo)q(dify)f(the)f(existing)i(text)e(\(e.g.,)f
-(c)o(hange)0 1784 y(its)g(case\),)f(call)i Fq(rl_modifying)e(\(\))g
-Fr(once,)h(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)g(text.)19
-b(Y)l(ou)14 b(m)o(ust)f(supply)h(the)g(indices)0 1846
-y(of)h(the)g(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q
-(dify)l(.)1725 2017 y(F)l(unction)-1899 b Fi(int)20 b
-Fh(rl)p 140 2017 V 21 w(mo)r(difying)h Fg(\()p Fq(int)15
-b(start,)f(int)h(end)p Fg(\))120 2079 y Fr(T)l(ell)e(Readline)g(to)e
-(sa)o(v)o(e)f(the)i(text)f(b)q(et)o(w)o(een)g Fl(start)g
-Fr(and)h Fl(end)h Fr(as)e(a)g(single)i(undo)e(unit.)20
-b(It)11 b(is)h(assumed)120 2141 y(that)i(y)o(ou)h(will)i(subsequen)o
-(tly)g(mo)q(dify)e(that)g(text.)0 2375 y Fk(2.4.6)30
-b(Redispla)n(y)1725 2545 y Fr(F)l(unction)-1899 b Fi(void)20
-b Fh(rl)p 166 2545 V 21 w(redispla)n(y)k Fg(\(\))120
-2608 y Fr(Change)d(what's)g(displa)o(y)o(ed)h(on)g(the)f(screen)h(to)f
-(re\015ect)h(the)f(curren)o(t)g(con)o(ten)o(ts)g(of)g
-Fq(rl_line_)120 2670 y(buffer)p Fr(.)p eop
-30 31 bop 0 -58 a Fr(30)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 183
-18 3 v 21 w(forced)p 315 183 V 20 w(up)r(date)p 509 183
-V 20 w(displa)n(y)k Fg(\(\))120 246 y Fr(F)l(orce)12
-b(the)g(line)h(to)f(b)q(e)g(up)q(dated)h(and)f(redispla)o(y)o(ed,)i
-(whether)e(or)f(not)h(Readline)i(thinks)e(the)g(screen)120
-308 y(displa)o(y)k(is)g(correct.)1725 462 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 462 V 21 w(on)p 222 462 V 20
-w(new)p 341 462 V 21 w(line)k Fg(\(\))120 524 y Fr(T)l(ell)c(the)f(up)q
-(date)g(routines)g(that)f(w)o(e)g(ha)o(v)o(e)g(mo)o(v)o(ed)g(on)o(to)g
-(a)g(new)h(\(empt)o(y\))e(line,)k(usually)f(after)120
-587 y(ouputting)c(a)e(newline.)1725 741 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 741 V 21 w(reset)p 282 741
-V 20 w(line)p 390 741 V 23 w(state)j Fg(\(\))120 803
-y Fr(Reset)14 b(the)f(displa)o(y)h(state)f(to)f(a)h(clean)h(state)f
-(and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)g
-(new)120 866 y(line.)1725 1020 y(F)l(unction)-1899 b
-Fi(int)20 b Fh(rl)p 140 1020 V 21 w(message)g Fg(\()p
-Fq(va_alist)p Fg(\))120 1082 y Fr(The)f(argumen)o(ts)e(are)h(a)g
-(string)g(as)g(w)o(ould)h(b)q(e)g(supplied)i(to)d Fq(printf)p
-Fr(.)28 b(The)19 b(resulting)g(string)f(is)120 1145 y(displa)o(y)o(ed)h
-(in)f(the)g Fl(ec)o(ho)f(area)p Fr(.)27 b(The)18 b(ec)o(ho)f(area)g(is)
-h(also)g(used)g(to)f(displa)o(y)h(n)o(umeric)h(argumen)o(ts)120
-1207 y(and)c(searc)o(h)g(strings.)1725 1361 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 1361 V 21 w(clear)p 279 1361
-V 21 w(message)h Fg(\(\))120 1424 y Fr(Clear)15 b(the)h(message)e(in)i
-(the)g(ec)o(ho)f(area.)0 1616 y Fk(2.4.7)30 b(Mo)r(difying)15
-b(T)-5 b(ext)1725 1771 y Fr(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 1771 V 21 w(insert)p 303 1771 V 21 w(text)k
-Fg(\()p Fq(char)14 b(*text)p Fg(\))120 1833 y Fr(Insert)h
-Fl(text)h Fr(in)o(to)f(the)h(line)g(at)f(the)g(curren)o(t)g(cursor)g(p)
-q(osition.)1725 1988 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 1988 V 21 w(delete)p 308 1988 V 22 w(text)k
-Fg(\()p Fq(int)14 b(start,)h(int)f(end)p Fg(\))120 2050
-y Fr(Delete)i(the)f(text)g(b)q(et)o(w)o(een)g Fl(start)g
-Fr(and)h Fl(end)h Fr(in)f(the)g(curren)o(t)f(line.)1725
-2204 y(F)l(unction)-1899 b Fi(char)20 b(*)f Fh(rl)p 211
-2204 V 21 w(cop)n(y)p 346 2204 V 21 w(text)24 b Fg(\()p
-Fq(int)14 b(start,)h(int)g(end)p Fg(\))120 2266 y Fr(Return)h(a)f(cop)o
-(y)g(of)g(the)g(text)f(b)q(et)o(w)o(een)i Fl(start)f
-Fr(and)g Fl(end)j Fr(in)e(the)f(curren)o(t)g(line.)1725
-2421 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 2421
-V 21 w(kill)p 236 2421 V 23 w(text)k Fg(\()p Fq(int)14
-b(start,)h(int)g(end)p Fg(\))120 2483 y Fr(Cop)o(y)k(the)g(text)f(b)q
-(et)o(w)o(een)i Fl(start)e Fr(and)i Fl(end)h Fr(in)f(the)f(curren)o(t)g
-(line)i(to)d(the)h(kill)i(ring,)f(app)q(ending)120 2545
-y(or)e(prep)q(ending)j(to)d(the)h(last)f(kill)j(if)e(the)g(last)f
-(command)h(w)o(as)e(a)i(kill)h(command.)30 b(The)19 b(text)f(is)120
-2608 y(deleted.)j(If)13 b Fl(start)g Fr(is)h(less)f(than)h
-Fl(end)p Fr(,)f(the)h(text)e(is)i(app)q(ended,)h(otherwise)e(prep)q
-(ended.)21 b(If)14 b(the)f(last)120 2670 y(command)i(w)o(as)f(not)h(a)g
-(kill,)i(a)e(new)g(kill)i(ring)f(slot)f(is)g(used.)p
-eop
-31 32 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(31)0 183 y Fk(2.4.8)30 b(Utilit)n(y)16
-b(F)-5 b(unctions)1725 345 y Fr(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 345 18 3 v 21 w(read)p 271 345 V 20 w(k)n(ey)k
-Fg(\(\))120 407 y Fr(Return)14 b(the)g(next)g(c)o(haracter)f(a)o(v)m
-(ailable.)21 b(This)15 b(handles)g(input)g(inserted)f(in)o(to)g(the)g
-(input)h(stream)120 469 y(via)h Fl(p)q(ending)i(input)h
-Fr(\(see)d(Section)h(2.3)e([Readline)j(V)l(ariables],)f(page)f(22\))f
-(and)i Fq(rl_stuff_char)120 532 y(\(\))p Fr(,)e(macros,)f(and)h(c)o
-(haracters)f(read)h(from)g(the)g(k)o(eyb)q(oard.)1725
-693 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 693
-V 21 w(getc)j Fg(\()p Fq(FILE)14 b(*)p Fg(\))120 755
-y Fr(Return)i(the)f(next)g(c)o(haracter)g(a)o(v)m(ailable)i(from)d(the)
-h(k)o(eyb)q(oard.)1725 917 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 917 V 21 w(stu\013)p 271 917 V 20 w(c)n(har)j
-Fg(\()p Fq(int)15 b(c)p Fg(\))120 979 y Fr(Insert)g Fl(c)i
-Fr(in)o(to)e(the)g(Readline)i(input)e(stream.)k(It)c(will)h(b)q(e)g
-Fq(")p Fr(read)p Fq(")e Fr(b)q(efore)h(Readline)i(attempts)d(to)120
-1041 y(read)h(c)o(haracters)g(from)f(the)h(terminal)h(with)g
-Fq(rl_read_key)d(\(\))p Fr(.)1725 1203 y(F)l(unction)-1899
-b Fi(rl_extend_line_buffer)22 b Fh(\(in)n(t)j Fq(len)p
-Fg(\))120 1265 y Fr(Ensure)15 b(that)f Fq(rl_line_buffer)e
-Fr(has)j(enough)g(space)g(to)e(hold)j Fl(len)f Fr(c)o(haracters,)f(p)q
-(ossibly)i(reallo-)120 1327 y(cating)f(it)h(if)f(necessary)l(.)1725
-1489 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1489
-V 21 w(initiali)q(z)q(e)26 b Fg(\(\))120 1551 y Fr(Initialize)18
-b(or)d(re-initialize)j(Readline's)f(in)o(ternal)f(state.)1725
-1713 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 1713
-V 21 w(reset)p 282 1713 V 20 w(terminal)j Fg(\()p Fq(char)15
-b(*terminal_name)p Fg(\))120 1775 y Fr(Reinitializ)q(e)f(Readline's)e
-(idea)g(of)e(the)h(terminal)h(settings)f(using)g Fl(terminal)p
-1404 1775 14 2 v 17 w(name)j Fr(as)c(the)h(terminal)120
-1837 y(t)o(yp)q(e)k(\(e.g.,)f Fq(vt100)p Fr(\).)1725
-1999 y(F)l(unction)-1899 b Fi(int)20 b Fh(alphab)r(etic)k
-Fg(\()p Fq(int)14 b(c)p Fg(\))120 2061 y Fr(Return)i(1)f(if)g
-Fl(c)j Fr(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1725
-2222 y(F)l(unction)-1899 b Fi(int)20 b Fh(n)n(umeric)i
-Fg(\()p Fq(int)15 b(c)p Fg(\))120 2285 y Fr(Return)h(1)f(if)g
-Fl(c)j Fr(is)e(a)f(n)o(umeric)h(c)o(haracter.)1725 2446
-y(F)l(unction)-1899 b Fi(int)20 b Fh(ding)i Fg(\(\))120
-2508 y Fr(Ring)16 b(the)f(terminal)h(b)q(ell,)h(ob)q(eying)f(the)g
-(setting)f(of)g Fq(bell-style)p Fr(.)62 2670 y(The)h(follo)o(wing)g
-(are)f(implemen)o(ted)h(as)f(macros,)f(de\014ned)j(in)f
-Fq(chartypes.h)p Fr(.)p eop
-32 33 bop 0 -58 a Fr(32)1449 b(GNU)15 b(Readline)i(Library)1725
-183 y(F)l(unction)-1899 b Fi(int)20 b Fh(upp)r(ercase)p
-351 183 18 3 v 19 w(p)j Fg(\()p Fq(int)14 b(c)p Fg(\))120
-246 y Fr(Return)i(1)f(if)g Fl(c)j Fr(is)e(an)f(upp)q(ercase)i(alphab)q
-(etic)f(c)o(haracter.)1725 409 y(F)l(unction)-1899 b
-Fi(int)20 b Fh(lo)n(w)n(ercase)p 334 409 V 22 w(p)i Fg(\()p
-Fq(int)15 b(c)p Fg(\))120 471 y Fr(Return)h(1)f(if)g
-Fl(c)j Fr(is)e(a)f(lo)o(w)o(ercase)g(alphab)q(etic)i(c)o(haracter.)1725
-634 y(F)l(unction)-1899 b Fi(int)20 b Fh(digit)p 214
-634 V 22 w(p)i Fg(\()p Fq(int)15 b(c)p Fg(\))120 696
-y Fr(Return)h(1)f(if)g Fl(c)j Fr(is)e(a)f(n)o(umeric)h(c)o(haracter.)
-1725 859 y(F)l(unction)-1899 b Fi(int)20 b Fh(to)p 152
-859 V 20 w(upp)r(er)i Fg(\()p Fq(int)14 b(c)p Fg(\))120
-922 y Fr(If)h Fl(c)i Fr(is)f(a)e(lo)o(w)o(ercase)g(alphab)q(etic)j(c)o
-(haracter,)c(return)i(the)g(corresp)q(onding)g(upp)q(ercase)h(c)o
-(haracter.)1725 1085 y(F)l(unction)-1899 b Fi(int)20
-b Fh(to)p 152 1085 V 20 w(lo)n(w)n(er)k Fg(\()p Fq(int)15
-b(c)p Fg(\))120 1147 y Fr(If)e Fl(c)i Fr(is)e(an)f(upp)q(ercase)h
-(alphab)q(etic)h(c)o(haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o
-(w)o(ercase)f(c)o(haracter.)1725 1310 y(F)l(unction)-1899
-b Fi(int)20 b Fh(digit)p 214 1310 V 22 w(v)m(alue)j Fg(\()p
-Fq(int)15 b(c)p Fg(\))120 1372 y Fr(If)g Fl(c)k Fr(is)c(a)g(n)o(um)o(b)
-q(er,)g(return)g(the)h(v)m(alue)g(it)g(represen)o(ts.)0
-1584 y Fk(2.4.9)30 b(Alternate)15 b(In)n(terface)62 1721
-y Fr(An)k(alternate)e(in)o(terface)h(is)h(a)o(v)m(ailable)h(to)d(plain)
-i Fq(readline\(\))p Fr(.)27 b(Some)18 b(applications)h(need)g(to)e(in)o
-(terlea)o(v)o(e)0 1783 y(k)o(eyb)q(oard)d(I/O)h(with)f(\014le,)h
-(device,)h(or)d(windo)o(w)i(system)e(I/O,)i(t)o(ypically)g(b)o(y)f
-(using)h(a)f(main)h(lo)q(op)g(to)e Fq(select\(\))0 1846
-y Fr(on)k(v)m(arious)h(\014le)g(descriptors.)26 b(T)l(o)17
-b(accomo)q(date)g(this)h(need,)g(readline)h(can)e(also)h(b)q(e)f(in)o
-(v)o(ok)o(ed)h(as)f(a)g(`callbac)o(k')0 1908 y(function)f(from)e(an)i
-(ev)o(en)o(t)f(lo)q(op.)20 b(There)15 b(are)g(functions)h(a)o(v)m
-(ailable)h(to)e(mak)o(e)f(this)i(easy)l(.)1725 2071 y(F)l(unction)-1899
-b Fi(void)20 b Fh(rl)p 166 2071 V 21 w(callbac)n(k)p
-383 2071 V 23 w(handler)p 595 2071 V 21 w(install)25
-b Fg(\()p Fq(char)14 b(*prompt,)g(Vfunction)208 2133
-y(*lhandler)p Fg(\))120 2196 y Fr(Set)h(up)g(the)f(terminal)i(for)d
-(readline)k(I/O)e(and)f(displa)o(y)i(the)f(initial)h(expanded)g(v)m
-(alue)g(of)e Fl(prompt)p Fr(.)120 2258 y(Sa)o(v)o(e)h(the)f(v)m(alue)j
-(of)d Fl(lhandler)20 b Fr(to)14 b(use)h(as)g(a)g(callbac)o(k)h(when)f
-(a)f(complete)i(line)h(of)d(input)i(has)f(b)q(een)120
-2320 y(en)o(tered.)1725 2483 y(F)l(unction)-1899 b Fi(void)20
-b Fh(rl)p 166 2483 V 21 w(callbac)n(k)p 383 2483 V 23
-w(read)p 516 2483 V 20 w(c)n(har)j Fg(\(\))120 2545 y
-Fr(Whenev)o(er)d(an)f(application)i(determines)g(that)e(k)o(eyb)q(oard)
-g(input)i(is)f(a)o(v)m(ailable,)i(it)d(should)i(call)120
-2608 y Fq(rl_callback_read_char\(\))p Fr(,)11 b(whic)o(h)j(will)i(read)
-e(the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)120
-2670 y(source.)24 b(If)17 b(that)f(c)o(haracter)g(completes)i(the)f
-(line,)h Fq(rl_callback_read_char)c Fr(will)k(in)o(v)o(ok)o(e)f(the)p
-eop
-33 34 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(33)120 183 y Fl(lhandler)19 b Fr(function)d(sa)o(v)o
-(ed)e(b)o(y)g Fq(rl_callback_handler_install)d Fr(to)j(pro)q(cess)h
-(the)f(line.)21 b Fq(EOF)14 b Fr(is)120 246 y(indicated)j(b)o(y)e
-(calling)i Fl(lhandler)j Fr(with)c(a)f Fq(NULL)f Fr(line.)1725
-413 y(F)l(unction)-1899 b Fi(void)20 b Fh(rl)p 166 413
-18 3 v 21 w(callbac)n(k)p 383 413 V 23 w(handler)p 595
-413 V 21 w(remo)n(v)n(e)i Fg(\(\))120 476 y Fr(Restore)12
-b(the)g(terminal)h(to)e(its)i(initial)h(state)d(and)h(remo)o(v)o(e)g
-(the)g(line)i(handler.)20 b(This)12 b(ma)o(y)g(b)q(e)g(called)120
-538 y(from)i(within)j(a)e(callbac)o(k)h(as)f(w)o(ell)h(as)f(indep)q
-(enden)o(tly)l(.)0 763 y Fk(2.4.10)29 b(An)16 b(Example)62
-902 y Fr(Here)d(is)g(a)f(function)h(whic)o(h)g(c)o(hanges)g(lo)o(w)o
-(ercase)f(c)o(haracters)f(to)h(their)h(upp)q(ercase)g(equiv)m(alen)o
-(ts,)h(and)f(upp)q(er-)0 964 y(case)j(c)o(haracters)g(to)g(lo)o(w)o
-(ercase.)23 b(If)16 b(this)h(function)g(w)o(as)f(b)q(ound)h(to)f(`)p
-Fq(M-c)p Fr(',)f(then)h(t)o(yping)h(`)p Fq(M-c)p Fr(')e(w)o(ould)i(c)o
-(hange)0 1026 y(the)g(case)f(of)g(the)h(c)o(haracter)f(under)h(p)q(oin)
-o(t.)25 b(T)o(yping)17 b(`)p Fq(M-1)d(0)h(M-c)p Fr(')h(w)o(ould)h(c)o
-(hange)f(the)h(case)f(of)h(the)f(follo)o(wing)0 1089
-y(10)f(c)o(haracters,)f(lea)o(ving)i(the)f(cursor)g(on)g(the)g(last)g
-(c)o(haracter)g(c)o(hanged.)120 1217 y Fq(/*)24 b(Invert)f(the)g(case)g
-(of)h(the)f(COUNT)h(following)e(characters.)h(*/)120
-1269 y(int)120 1321 y(invert_case_line)f(\(count,)h(key\))239
-1373 y(int)h(count,)f(key;)120 1425 y({)168 1477 y(register)f(int)i
-(start,)f(end,)g(i;)168 1580 y(start)g(=)h(rl_point;)168
-1684 y(if)f(\(rl_point)g(>=)h(rl_end\))215 1736 y(return)f(\(0\);)168
-1840 y(if)g(\(count)g(<)h(0\))215 1892 y({)263 1944 y(direction)f(=)h
-(-1;)263 1995 y(count)f(=)h(-count;)215 2047 y(})168
-2099 y(else)215 2151 y(direction)f(=)h(1;)168 2255 y(/*)f(Find)h(the)f
-(end)h(of)f(the)h(range)f(to)g(modify.)g(*/)168 2307
-y(end)g(=)h(start)f(+)h(\(count)f(*)h(direction\);)168
-2411 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g(*/)168
-2462 y(if)g(\(end)h(>)f(rl_end\))215 2514 y(end)h(=)g(rl_end;)168
-2566 y(else)f(if)h(\(end)f(<)h(0\))215 2618 y(end)g(=)g(0;)p
-eop
-34 35 bop 0 -58 a Fr(34)1449 b(GNU)15 b(Readline)i(Library)168
-183 y Fq(if)23 b(\(start)g(==)h(end\))215 235 y(return)f(\(0\);)168
-339 y(if)g(\(start)g(>)h(end\))215 391 y({)263 443 y(int)g(temp)f(=)h
-(start;)263 495 y(start)f(=)h(end;)263 546 y(end)g(=)f(temp;)215
-598 y(})168 702 y(/*)g(Tell)h(readline)e(that)i(we)f(are)h(modifying)e
-(the)i(line,)f(so)h(it)f(will)h(save)239 754 y(the)g(undo)f
-(information.)f(*/)168 806 y(rl_modifying)g(\(start,)h(end\);)168
-910 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))215
-962 y({)263 1013 y(if)h(\(uppercase_p)e(\(rl_line_buffer[i]\)\))311
-1065 y(rl_line_buffer[i])f(=)j(to_lower)f(\(rl_line_buffer[i]\);)263
-1117 y(else)g(if)h(\(lowercase_p)e(\(rl_line_buffer[i]\)\))311
-1169 y(rl_line_buffer[i])f(=)j(to_upper)f(\(rl_line_buffer[i]\);)215
-1221 y(})168 1273 y(/*)g(Move)h(point)f(to)g(on)h(top)f(of)h(the)f
-(last)h(character)e(changed.)h(*/)168 1325 y(rl_point)f(=)i
-(\(direction)f(==)g(1\))h(?)g(end)f(-)h(1)g(:)f(start;)168
-1377 y(return)g(\(0\);)120 1429 y(})0 1670 y Fp(2.5)33
-b(Custom)14 b(Completers)62 1809 y Fr(T)o(ypically)l(,)g(a)c(program)g
-(that)h(reads)g(commands)g(from)f(the)h(user)h(has)e(a)h(w)o(a)o(y)f
-(of)h(disam)o(biguating)h(commands)0 1871 y(and)k(data.)k(If)c(y)o(our)
-f(program)g(is)h(one)g(of)f(these,)h(then)g(it)g(can)g(pro)o(vide)g
-(completion)g(for)g(commands,)f(data,)f(or)0 1933 y(b)q(oth.)28
-b(The)18 b(follo)o(wing)h(sections)f(describ)q(e)h(ho)o(w)f(y)o(our)f
-(program)g(and)h(Readline)i(co)q(op)q(erate)e(to)f(pro)o(vide)i(this)0
-1995 y(service.)0 2220 y Fk(2.5.1)30 b(Ho)n(w)15 b(Completing)g(W)-5
-b(orks)62 2359 y Fr(In)16 b(order)f(to)g(complete)h(some)f(text,)f(the)
-h(full)i(list)f(of)f(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o
-(v)m(ailable.)21 b(That)15 b(is,)0 2421 y(it)k(is)f(not)g(p)q(ossible)i
-(to)e(accurately)h(expand)g(a)f(partial)h(w)o(ord)e(without)i(kno)o
-(wing)f(all)h(of)f(the)h(p)q(ossible)h(w)o(ords)0 2483
-y(whic)o(h)c(mak)o(e)f(sense)h(in)g(that)e(con)o(text.)20
-b(The)15 b(Readline)j(library)e(pro)o(vides)f(the)h(user)f(in)o
-(terface)h(to)e(completion,)0 2545 y(and)h(t)o(w)o(o)f(of)h(the)h(most)
-e(common)h(completion)h(functions:)21 b(\014lename)c(and)e(username.)20
-b(F)l(or)15 b(completing)h(other)0 2608 y(t)o(yp)q(es)h(of)f(text,)g(y)
-o(ou)h(m)o(ust)f(write)h(y)o(our)f(o)o(wn)g(completion)i(function.)25
-b(This)18 b(section)f(describ)q(es)h(exactly)g(what)0
-2670 y(suc)o(h)e(functions)f(m)o(ust)g(do,)g(and)g(pro)o(vides)h(an)f
-(example.)p eop
-35 36 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(35)62 183 y(There)16 b(are)f(three)g(ma)s(jor)f
-(functions)i(used)f(to)g(p)q(erform)g(completion:)25
-320 y(1.)29 b(The)15 b(user-in)o(terface)g(function)g
-Fq(rl_complete)e(\(\))p Fr(.)20 b(This)15 b(function)g(is)g(called)h
-(with)e(the)h(same)f(argumen)o(ts)90 383 y(as)j(other)g(Readline)j
-(functions)f(in)o(tended)g(for)e(in)o(teractiv)o(e)h(use:)25
-b Fl(coun)o(t)18 b Fr(and)g Fl(in)o(v)o(oking)p 1633
-383 14 2 v 17 w(k)o(ey)p Fr(.)27 b(It)18 b(isolates)90
-445 y(the)j(w)o(ord)g(to)f(b)q(e)i(completed)h(and)e(calls)h
-Fq(completion_matches)13 b(\(\))21 b Fr(to)f(generate)h(a)g(list)h(of)f
-(p)q(ossible)90 507 y(completions.)h(It)16 b(then)g(either)h(lists)f
-(the)g(p)q(ossible)h(completions,)g(inserts)f(the)g(p)q(ossible)h
-(completions,)f(or)90 569 y(actually)g(p)q(erforms)f(the)g(completion,)
-h(dep)q(ending)i(on)d(whic)o(h)h(b)q(eha)o(vior)f(is)h(desired.)25
-644 y(2.)29 b(The)18 b(in)o(ternal)h(function)g Fq(completion_matches)
-13 b(\(\))18 b Fr(uses)g(y)o(our)f Fl(generator)k Fr(function)e(to)e
-(generate)h(the)90 706 y(list)h(of)e(p)q(ossible)j(matc)o(hes,)e(and)g
-(then)g(returns)g(the)g(arra)o(y)f(of)h(these)g(matc)o(hes.)28
-b(Y)l(ou)18 b(should)h(place)g(the)90 769 y(address)c(of)g(y)o(our)g
-(generator)f(function)i(in)g Fq(rl_completion_entry_functi)o(on)p
-Fr(.)25 843 y(3.)29 b(The)16 b(generator)g(function)h(is)f(called)i
-(rep)q(eatedly)g(from)d Fq(completion_matches)e(\(\))p
-Fr(,)i(returning)i(a)f(string)90 906 y(eac)o(h)j(time.)31
-b(The)19 b(argumen)o(ts)f(to)g(the)h(generator)e(function)j(are)e
-Fl(text)i Fr(and)f Fl(state)p Fr(.)29 b Fl(text)19 b
-Fr(is)h(the)f(partial)90 968 y(w)o(ord)13 b(to)g(b)q(e)h(completed.)21
-b Fl(state)15 b Fr(is)f(zero)g(the)g(\014rst)f(time)h(the)g(function)g
-(is)g(called,)i(allo)o(wing)e(the)g(generator)90 1030
-y(to)19 b(p)q(erform)f(an)o(y)h(necessary)h(initialization,)i(and)e(a)f
-(p)q(ositiv)o(e)h(non-zero)f(in)o(teger)h(for)e(eac)o(h)h(subsequen)o
-(t)90 1092 y(call.)35 b(When)21 b(the)f(generator)f(function)i(returns)
-f Fq(\(char)14 b(*\)NULL)19 b Fr(this)i(signals)f Fq
-(completion_matches)90 1155 y(\(\))c Fr(that)g(there)h(are)f(no)h(more)
-f(p)q(ossibilitie)q(s)j(left.)25 b(Usually)18 b(the)e(generator)g
-(function)i(computes)e(the)h(list)90 1217 y(of)j(p)q(ossible)i
-(completions)f(when)g Fl(state)h Fr(is)f(zero,)g(and)f(returns)g(them)h
-(one)f(at)g(a)g(time)g(on)g(subsequen)o(t)90 1279 y(calls.)g(Eac)o(h)14
-b(string)f(the)h(generator)e(function)j(returns)e(as)g(a)g(matc)o(h)g
-(m)o(ust)g(b)q(e)h(allo)q(cated)h(with)e Fq(malloc\(\))p
-Fr(;)90 1341 y(Readline)18 b(frees)d(the)g(strings)g(when)h(it)f(has)g
-(\014nished)i(with)f(them.)1725 1503 y(F)l(unction)-1899
-b Fi(int)20 b Fh(rl)p 140 1503 18 3 v 21 w(complete)j
-Fg(\()p Fq(int)14 b(ignore,)g(int)h(invoking_key)p Fg(\))120
-1566 y Fr(Complete)j(the)f(w)o(ord)f(at)h(or)g(b)q(efore)g(p)q(oin)o
-(t.)27 b(Y)l(ou)17 b(ha)o(v)o(e)g(supplied)i(the)f(function)g(that)e
-(do)q(es)i(the)120 1628 y(initial)d(simple)f(matc)o(hing)f(selection)h
-(algorithm)f(\(see)f Fq(completion_matches)h(\(\))p Fr(\).)18
-b(The)13 b(default)120 1690 y(is)j(to)e(do)h(\014lename)i(completion.)
-1736 1852 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g
-Fh(rl)p 316 1852 V 21 w(completion)p 611 1852 V 21 w(en)n(try)p
-764 1852 V 21 w(function)120 1914 y Fr(This)e(is)g(a)f(p)q(oin)o(ter)h
-(to)f(the)g(generator)g(function)h(for)f Fq(completion_matches)12
-b(\(\))p Fr(.)27 b(If)17 b(the)h(v)m(alue)120 1977 y(of)j
-Fq(rl_completion_entry_funct)o(ion)d Fr(is)k Fq(\(Function)14
-b(*\)NULL)20 b Fr(then)i(the)f(default)h(\014lename)120
-2039 y(generator)14 b(function,)i Fq(filename_completion_functi)o(on)c
-(\(\))p Fr(,)j(is)g(used.)0 2247 y Fk(2.5.2)30 b(Completion)15
-b(F)-5 b(unctions)62 2384 y Fr(Here)16 b(is)f(the)h(complete)g(list)g
-(of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.)
-1725 2545 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140
-2545 V 21 w(complete)p 385 2545 V 21 w(in)n(ternal)k
-Fg(\()p Fq(int)15 b(what_to_do)p Fg(\))120 2608 y Fr(Complete)d(the)g
-(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)19 b Fl(what)p
-979 2608 14 2 v 16 w(to)p 1036 2608 V 16 w(do)14 b Fr(sa)o(ys)d(what)g
-(to)g(do)g(with)h(the)g(completion.)120 2670 y(A)g(v)m(alue)h(of)f(`)p
-Fq(?)p Fr(')f(means)h(list)h(the)f(p)q(ossible)i(completions.)20
-b(`)p Fq(TAB)p Fr(')11 b(means)h(do)g(standard)f(completion.)p
-eop
-36 37 bop 0 -58 a Fr(36)1449 b(GNU)15 b(Readline)i(Library)120
-183 y(`)p Fq(*)p Fr(')c(means)h(insert)h(all)g(of)f(the)g(p)q(ossible)i
-(completions.)21 b(`)p Fq(!)p Fr(')13 b(means)h(to)g(displa)o(y)h(all)g
-(of)f(the)g(p)q(ossible)120 246 y(completions,)i(if)g(there)f(is)h
-(more)e(than)h(one,)g(as)g(w)o(ell)h(as)f(p)q(erforming)h(partial)f
-(completion.)1725 441 y(F)l(unction)-1899 b Fi(int)20
-b Fh(rl)p 140 441 18 3 v 21 w(complete)j Fg(\()p Fq(int)14
-b(ignore,)g(int)h(invoking_key)p Fg(\))120 503 y Fr(Complete)23
-b(the)g(w)o(ord)e(at)h(or)g(b)q(efore)h(p)q(oin)o(t.)43
-b(Y)l(ou)23 b(ha)o(v)o(e)f(supplied)j(the)d(function)i(that)e(do)q(es)
-120 565 y(the)16 b(initial)j(simple)f(matc)o(hing)e(selection)i
-(algorithm)e(\(see)g Fq(completion_matches)d(\(\))j Fr(and)g
-Fq(rl_)120 627 y(completion_entry_function)p Fr(\))o(.)25
-b(The)18 b(default)g(is)g(to)f(do)h(\014lename)h(completion.)29
-b(This)18 b(calls)120 690 y Fq(rl_complete_internal)12
-b(\(\))j Fr(with)h(an)f(argumen)o(t)f(dep)q(ending)k(on)d
-Fl(in)o(v)o(oking)p 1496 690 14 2 v 17 w(k)o(ey)p Fr(.)1725
-885 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p 140 885
-18 3 v 21 w(p)r(ossible)p 358 885 V 20 w(completions)j
-Fg(\()p Fq(int)15 b(count,)f(int)h(invoking_key)p Fg(\)\))120
-947 y Fr(List)23 b(the)f(p)q(ossible)j(completions.)42
-b(See)23 b(description)h(of)e Fq(rl_complete)14 b(\(\))p
-Fr(.)41 b(This)23 b(calls)g Fq(rl_)120 1009 y(complete_internal)13
-b(\(\))i Fr(with)g(an)g(argumen)o(t)g(of)g(`)p Fq(?)p
-Fr('.)1725 1204 y(F)l(unction)-1899 b Fi(int)20 b Fh(rl)p
-140 1204 V 21 w(insert)p 303 1204 V 21 w(completions)j
-Fg(\()p Fq(int)14 b(count,)g(int)h(invoking_key)p Fg(\)\))120
-1267 y Fr(Insert)20 b(the)f(list)i(of)e(p)q(ossible)i(completions)f(in)
-o(to)g(the)f(line,)j(deleting)f(the)f(partially-completed)120
-1329 y(w)o(ord.)h(See)c(description)g(of)e Fq(rl_complete)f(\(\))p
-Fr(.)21 b(This)c(calls)g Fq(rl_complete_internal)12 b(\(\))k
-Fr(with)120 1391 y(an)f(argumen)o(t)g(of)f(`)p Fq(*)p
-Fr('.)1725 1586 y(F)l(unction)-1899 b Fi(char)20 b(**)f
-Fh(completion)p 472 1586 V 21 w(matc)n(hes)j Fg(\()p
-Fq(char)15 b(*text,)f(CPFunction)208 1648 y(*entry_func)p
-Fg(\))120 1711 y Fr(Returns)22 b(an)g(arra)o(y)e(of)h
-Fq(\(char)15 b(*\))21 b Fr(whic)o(h)i(is)f(a)f(list)i(of)e(completions)
-i(for)e Fl(text)p Fr(.)39 b(If)22 b(there)f(are)120 1773
-y(no)d(completions,)i(returns)e Fq(\(char)c(**\)NULL)p
-Fr(.)28 b(The)19 b(\014rst)e(en)o(try)h(in)h(the)g(returned)f(arra)o(y)
-f(is)i(the)120 1835 y(substitution)c(for)e Fl(text)p
-Fr(.)19 b(The)c(remaining)g(en)o(tries)f(are)g(the)g(p)q(ossible)i
-(completions.)k(The)15 b(arra)o(y)d(is)120 1897 y(terminated)j(with)h
-(a)f Fq(NULL)f Fr(p)q(oin)o(ter.)120 2045 y Fl(en)o(try)p
-227 2045 14 2 v 16 w(func)h Fr(is)d(a)g(function)h(of)e(t)o(w)o(o)g
-(args,)g(and)h(returns)g(a)f Fq(\(char)k(*\))p Fr(.)j(The)12
-b(\014rst)f(argumen)o(t)g(is)i Fl(text)p Fr(.)120 2108
-y(The)i(second)f(is)h(a)f(state)g(argumen)o(t;)f(it)i(is)g(zero)f(on)g
-(the)h(\014rst)f(call,)h(and)f(non-zero)h(on)f(subsequen)o(t)120
-2170 y(calls.)21 b Fl(en)o(try)p 346 2170 V 16 w(func)c
-Fr(returns)e(a)f Fq(NULL)g Fr(p)q(oin)o(ter)h(to)f(the)g(caller)i(when)
-f(there)f(are)g(no)h(more)f(matc)o(hes.)1725 2365 y(F)l(unction)-1899
-b Fi(char)20 b(*)f Fh(\014lename)p 380 2365 18 3 v 20
-w(completion)p 674 2365 V 21 w(function)k Fg(\()p Fq(char)15
-b(*text,)f(int)h(state)p Fg(\))120 2427 y Fr(A)e(generator)f(function)h
-(for)f(\014lename)i(completion)g(in)f(the)g(general)g(case.)19
-b(Note)13 b(that)f(completion)120 2490 y(in)18 b(Bash)f(is)h(a)f
-(little)h(di\013eren)o(t)f(b)q(ecause)h(of)f(all)h(the)f(pathnames)g
-(that)g(m)o(ust)f(b)q(e)i(follo)o(w)o(ed)f(when)120 2552
-y(lo)q(oking)23 b(up)f(completions)h(for)e(a)g(command.)39
-b(The)22 b(Bash)g(source)g(is)g(a)f(useful)i(reference)g(for)120
-2614 y(writing)16 b(custom)f(completion)h(functions.)p
-eop
-37 38 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(37)1725 183 y(F)l(unction)-1899 b Fi(char)20
-b(*)f Fh(username)p 412 183 18 3 v 19 w(completion)p
-705 183 V 21 w(function)k Fg(\()p Fq(char)14 b(*text,)g(int)h(state)p
-Fg(\))120 246 y Fr(A)i(completion)h(generator)e(for)g(usernames.)24
-b Fl(text)18 b Fr(con)o(tains)e(a)h(partial)g(username)g(preceded)h(b)o
-(y)120 308 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p
-Fq(~)p Fr('\).)24 b(As)18 b(with)f(all)h(completion)h(generators,)d
-Fl(state)j Fr(is)f(zero)f(on)120 370 y(the)e(\014rst)g(call)h(and)g
-(non-zero)f(for)g(subsequen)o(t)h(calls.)0 618 y Fk(2.5.3)30
-b(Completion)15 b(V)-5 b(ariables)1736 793 y Fr(V)l(ariable)-1899
-b Fi(Function)20 b(*)g Fh(rl)p 316 793 V 21 w(completion)p
-611 793 V 21 w(en)n(try)p 764 793 V 21 w(function)120
-856 y Fr(A)d(p)q(oin)o(ter)h(to)f(the)g(generator)f(function)i(for)f
-Fq(completion_matches)c(\(\))p Fr(.)25 b Fq(NULL)17 b
-Fr(means)g(to)g(use)120 918 y Fq(filename_entry_function)12
-b(\(\))p Fr(,)j(the)g(default)h(\014lename)g(completer.)1736
-1093 y(V)l(ariable)-1899 b Fi(CPPFunction)21 b(*)e Fh(rl)p
-394 1093 V 21 w(attempted)p 674 1093 V 20 w(completion)p
-968 1093 V 21 w(function)120 1156 y Fr(A)g(p)q(oin)o(ter)h(to)f(an)g
-(alternativ)o(e)h(function)g(to)f(create)g(matc)o(hes.)32
-b(The)20 b(function)g(is)g(called)h(with)120 1218 y Fl(text)p
-Fr(,)e Fl(start)p Fr(,)g(and)g Fl(end)p Fr(.)32 b Fl(start)19
-b Fr(and)g Fl(end)j Fr(are)c(indices)j(in)f Fq(rl_line_buffer)d
-Fr(sa)o(ying)i(what)g(the)120 1280 y(b)q(oundaries)c(of)e
-Fl(text)h Fr(are.)19 b(If)13 b(this)h(function)g(exists)g(and)g
-(returns)f Fq(NULL)p Fr(,)g(or)g(if)h(this)f(v)m(ariable)i(is)f(set)120
-1342 y(to)h Fq(NULL)p Fr(,)f(then)i Fq(rl_complete)e(\(\))h
-Fr(will)i(call)g(the)e(v)m(alue)i(of)e Fq(rl_completion_entry_funct)o
-(ion)120 1405 y Fr(to)g(generate)f(matc)o(hes,)h(otherwise)g(the)h
-(arra)o(y)e(of)g(strings)h(returned)h(will)h(b)q(e)f(used.)1736
-1580 y(V)l(ariable)-1899 b Fi(CPFunction)21 b(*)e Fh(rl)p
-368 1580 V 21 w(\014lename)p 597 1580 V 20 w(quoting)p
-806 1580 V 21 w(function)120 1642 y Fr(A)e(p)q(oin)o(ter)h(to)f(a)g
-(function)h(that)e(will)j(quote)e(a)g(\014lename)h(in)h(an)e
-(application-)i(sp)q(eci\014c)g(fashion.)120 1705 y(This)f(is)g(called)
-i(if)e(\014lename)h(completion)f(is)h(b)q(eing)f(attempted)g(and)f(one)
-h(of)f(the)h(c)o(haracters)f(in)120 1767 y Fq
-(rl_filename_quote_characte)o(rs)g Fr(app)q(ears)k(in)g(a)f(completed)h
-(\014lename.)37 b(The)20 b(function)h(is)120 1829 y(called)14
-b(with)f Fl(text)p Fr(,)g Fl(matc)o(h)p 579 1829 14 2
-v 15 w(t)o(yp)q(e)p Fr(,)g(and)g Fl(quote)p 903 1829
-V 16 w(p)q(oin)o(ter)p Fr(.)20 b(The)13 b Fl(text)g Fr(is)g(the)g
-(\014lename)h(to)e(b)q(e)h(quoted.)120 1891 y(The)21
-b Fl(matc)o(h)p 345 1891 V 16 w(t)o(yp)q(e)j Fr(is)e(either)f
-Fq(SINGLE_MATCH)p Fr(,)g(if)h(there)f(is)h(only)f(one)h(completion)g
-(matc)o(h,)f(or)120 1954 y Fq(MULT_MATCH)p Fr(.)d(Some)13
-b(functions)g(use)h(this)f(to)f(decide)j(whether)e(or)f(not)h(to)f
-(insert)i(a)e(closing)i(quote)120 2016 y(c)o(haracter.)36
-b(The)21 b Fl(quote)p 565 2016 V 16 w(p)q(oin)o(ter)k
-Fr(is)c(a)g(p)q(oin)o(ter)g(to)f(an)o(y)h(op)q(ening)h(quote)f(c)o
-(haracter)f(the)h(user)120 2078 y(t)o(yp)q(ed.)f(Some)15
-b(functions)h(c)o(ho)q(ose)g(to)e(reset)h(this)h(c)o(haracter.)1736
-2254 y(V)l(ariable)-1899 b Fi(CPFunction)21 b(*)e Fh(rl)p
-368 2254 18 3 v 21 w(\014lename)p 597 2254 V 20 w(dequoting)p
-864 2254 V 21 w(function)120 2316 y Fr(A)f(p)q(oin)o(ter)g(to)f(a)g
-(function)h(that)f(will)i(remo)o(v)o(e)e(application-sp)q(eci\014c)k
-(quoting)d(c)o(haracters)f(from)120 2378 y(a)h(\014lename)i(b)q(efore)f
-(completion)h(is)f(attempted,)g(so)f(those)h(c)o(haracters)f(do)g(not)h
-(in)o(terfere)g(with)120 2440 y(matc)o(hing)13 b(the)g(text)f(against)g
-(names)h(in)g(the)g(\014lesystem.)20 b(It)13 b(is)g(called)h(with)f
-Fl(text)p Fr(,)g(the)f(text)h(of)f(the)120 2503 y(w)o(ord)i(to)g(b)q(e)
-h(dequoted,)g(and)g Fl(quote)p 757 2503 14 2 v 16 w(c)o(har)p
-Fr(,)f(whic)o(h)i(is)f(the)g(quoting)g(c)o(haracter)f(that)f(delimits)k
-(the)120 2565 y(\014lename)d(\(usually)g(`)p Fq(')p Fr(')e(or)g(`)p
-Fq(")p Fr('\).)18 b(If)13 b Fl(quote)p 838 2565 V 16
-w(c)o(har)j Fr(is)e(zero,)e(the)h(\014lename)h(w)o(as)e(not)h(in)h(an)f
-(em)o(b)q(edded)120 2627 y(string.)p eop
-38 39 bop 0 -58 a Fr(38)1449 b(GNU)15 b(Readline)i(Library)1736
-183 y(V)l(ariable)-1899 b Fi(Function)20 b(*)g Fh(rl)p
-316 183 18 3 v 21 w(c)n(har)p 444 183 V 20 w(is)p 502
-183 V 22 w(quoted)p 695 183 V 20 w(p)120 246 y Fr(A)d(p)q(oin)o(ter)g
-(to)f(a)g(function)i(to)e(call)h(that)f(determines)i(whether)f(or)f
-(not)g(a)h(sp)q(eci\014c)h(c)o(haracter)e(in)120 308
-y(the)c(line)i(bu\013er)e(is)h(quoted,)f(according)h(to)e(whatev)o(er)h
-(quoting)g(mec)o(hanism)h(the)f(program)f(calling)120
-370 y(readline)j(uses.)20 b(The)13 b(function)g(is)h(called)g(with)f(t)
-o(w)o(o)f(argumen)o(ts:)17 b Fl(text)p Fr(,)c(the)g(text)f(of)g(the)h
-(line,)i(and)120 432 y Fl(index)p Fr(,)j(the)e(index)i(of)e(the)g(c)o
-(haracter)g(in)h(the)g(line.)25 b(It)16 b(is)h(used)g(to)f(decide)i
-(whether)f(a)f(c)o(haracter)120 495 y(found)j(in)g Fq
-(rl_completer_word_break_)o(charact)o(ers)c Fr(should)20
-b(b)q(e)e(used)h(to)f(break)g(w)o(ords)g(for)120 557
-y(the)d(completer.)1736 745 y(V)l(ariable)-1899 b Fi(int)20
-b Fh(rl)p 140 745 V 21 w(completion)p 435 745 V 21 w(query)p
-598 745 V 21 w(items)120 807 y Fr(Up)h(to)e(this)i(man)o(y)f(items)h
-(will)h(b)q(e)f(displa)o(y)o(ed)h(in)f(resp)q(onse)g(to)f(a)g(p)q
-(ossible-completions)j(call.)120 869 y(After)16 b(that,)f(w)o(e)g(ask)h
-(the)g(user)g(if)g(she)g(is)h(sure)f(she)g(w)o(an)o(ts)f(to)g(see)h
-(them)g(all.)23 b(The)16 b(default)h(v)m(alue)120 932
-y(is)f(100.)1736 1120 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 1120 V 21 w(basic)p 355 1120 V 21 w(w)n(ord)p
-500 1120 V 21 w(break)p 661 1120 V 20 w(c)n(haracters)120
-1182 y Fr(The)12 b(basic)g(list)h(of)e(c)o(haracters)g(that)g(signal)h
-(a)g(break)f(b)q(et)o(w)o(een)h(w)o(ords)f(for)g(the)h(completer)g
-(routine.)120 1244 y(The)17 b(default)h(v)m(alue)g(of)e(this)i(v)m
-(ariable)g(is)g(the)f(c)o(haracters)f(whic)o(h)h(break)g(w)o(ords)g
-(for)f(completion)120 1306 y(in)g(Bash,)f(i.e.,)g Fq(")g
-(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fr(.)1736 1494 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 1494 V 21 w(basic)p 355
-1494 V 21 w(quote)p 515 1494 V 21 w(c)n(haracters)120
-1557 y Fr(List)d(of)f(quote)g(c)o(haracters)f(whic)o(h)i(can)f(cause)h
-(a)f(w)o(ord)f(break.)1736 1745 y(V)l(ariable)-1899 b
-Fi(char)20 b(*)f Fh(rl)p 211 1745 V 21 w(completer)p
-480 1745 V 21 w(w)n(ord)p 625 1745 V 20 w(break)p 785
-1745 V 20 w(c)n(haracters)120 1807 y Fr(The)f(list)h(of)e(c)o
-(haracters)g(that)g(signal)i(a)f(break)f(b)q(et)o(w)o(een)h(w)o(ords)g
-(for)f Fq(rl_complete_internal)120 1869 y(\(\))p Fr(.)j(The)15
-b(default)h(list)g(is)f(the)h(v)m(alue)g(of)f Fq
-(rl_basic_word_break_charac)o(ters)p Fr(.)1736 2057 y(V)l(ariable)-1899
-b Fi(char)20 b(*)f Fh(rl)p 211 2057 V 21 w(completer)p
-480 2057 V 21 w(quote)p 640 2057 V 21 w(c)n(haracters)120
-2120 y Fr(List)j(of)e(c)o(haracters)g(whic)o(h)i(can)f(b)q(e)h(used)f
-(to)f(quote)h(a)g(substring)g(of)f(the)h(line.)39 b(Completion)120
-2182 y(o)q(ccurs)17 b(on)f(the)h(en)o(tire)g(substring,)g(and)f(within)
-i(the)e(substring)h Fq(rl_completer_word_break_)120 2244
-y(characters)i Fr(are)g(treated)h(as)f(an)o(y)h(other)g(c)o(haracter,)g
-(unless)h(they)f(also)g(app)q(ear)g(within)i(this)120
-2306 y(list.)1736 2494 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 2494 V 21 w(\014lename)p 440 2494 V
-20 w(quote)p 599 2494 V 21 w(c)n(haracters)120 2557 y
-Fr(A)g(list)h(of)e(c)o(haracters)g(that)g(cause)h(a)g(\014lename)h(to)e
-(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)h(when)f(they)120
-2619 y(app)q(ear)c(in)h(a)f(completed)h(\014lename.)21
-b(The)16 b(default)g(is)f(empt)o(y)l(.)p eop
-39 40 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(39)1736 183 y(V)l(ariable)-1899 b Fi(char)20
-b(*)f Fh(rl)p 211 183 18 3 v 21 w(sp)r(ecial)p 398 183
-V 22 w(pre\014xes)120 246 y Fr(The)d(list)h(of)e(c)o(haracters)g(that)g
-(are)h(w)o(ord)f(break)h(c)o(haracters,)f(but)h(should)h(b)q(e)f(left)g
-(in)h Fl(text)f Fr(when)120 308 y(it)f(is)g(passed)g(to)f(the)g
-(completion)i(function.)k(Programs)14 b(can)g(use)h(this)g(to)f(help)i
-(determine)g(what)120 370 y(kind)h(of)f(completing)i(to)e(do.)23
-b(F)l(or)16 b(instance,)h(Bash)f(sets)g(this)h(v)m(ariable)h(to)e
-Fq(")p Fr($)p Fq(@")f Fr(so)h(that)g(it)h(can)120 432
-y(complete)f(shell)h(v)m(ariables)f(and)g(hostnames.)1736
-587 y(V)l(ariable)-1899 b Fi(int)20 b Fh(rl)p 140 587
-V 21 w(completion)p 435 587 V 21 w(app)r(end)p 640 587
-V 19 w(c)n(haracter)120 650 y Fr(When)f(a)g(single)h(completion)g
-(alternativ)o(e)f(matc)o(hes)g(at)f(the)h(end)g(of)g(the)g(command)f
-(line,)k(this)120 712 y(c)o(haracter)12 b(is)i(app)q(ended)h(to)d(the)i
-(inserted)g(completion)g(text.)19 b(The)13 b(default)h(is)f(a)g(space)h
-(c)o(haracter)120 774 y(\(`)g('\).)21 b(Setting)c(this)f(to)f(the)h(n)o
-(ull)h(c)o(haracter)e(\(`)p Fq(\\0)p Fr('\))f(prev)o(en)o(ts)i(an)o
-(ything)g(b)q(eing)h(app)q(ended)g(auto-)120 836 y(matically)l(.)26
-b(This)17 b(can)g(b)q(e)g(c)o(hanged)g(in)g(custom)g(completion)h
-(functions)f(to)f(pro)o(vide)h(the)g(\\most)120 899 y(sensible)i(w)o
-(ord)d(separator)g(c)o(haracter")g(according)h(to)f(an)h
-(application-sp)q(eci\014)q(c)j(command)c(line)120 961
-y(syn)o(tax)e(sp)q(eci\014cation.)1736 1116 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 1116 V 21 w(ignore)p 316 1116
-V 20 w(completion)p 610 1116 V 21 w(duplicates)120 1178
-y Fr(If)15 b(non-zero,)h(then)f(disallo)o(w)h(duplicates)h(in)f(the)g
-(matc)o(hes.)j(Default)c(is)h(1.)1736 1333 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 1333 V 21 w(\014lename)p 369
-1333 V 20 w(completion)p 663 1333 V 21 w(desired)120
-1395 y Fr(Non-zero)e(means)g(that)f(the)g(results)i(of)e(the)h(matc)o
-(hes)f(are)h(to)f(b)q(e)h(treated)f(as)h(\014lenames.)28
-b(This)120 1458 y(is)16 b Fl(alw)o(a)o(ys)h Fr(zero)e(on)g(en)o(try)l
-(,)g(and)h(can)g(only)g(b)q(e)g(c)o(hanged)f(within)i(a)e(completion)i
-(en)o(try)e(generator)120 1520 y(function.)26 b(If)18
-b(it)f(is)h(set)f(to)f(a)h(non-zero)g(v)m(alue,)i(directory)e(names)g
-(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(and)120 1582
-y(Readline)i(attempts)c(to)g(quote)h(completed)i(\014lenames)f(if)f
-(they)h(con)o(tain)f(an)o(y)g(em)o(b)q(edded)i(w)o(ord)120
-1645 y(break)15 b(c)o(haracters.)1736 1800 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 1800 V 21 w(\014lename)p 369
-1800 V 20 w(quoting)p 578 1800 V 21 w(desired)120 1862
-y Fr(Non-zero)c(means)g(that)g(the)g(results)h(of)e(the)i(matc)o(hes)e
-(are)h(to)g(b)q(e)h(quoted)f(using)h(double)g(quotes)120
-1924 y(\(or)d(an)h(application-sp)q(eci\014)q(c)j(quoting)d(mec)o
-(hanism\))g(if)h(the)f(completed)h(\014lename)g(con)o(tains)f(an)o(y)
-120 1986 y(c)o(haracters)i(in)h Fq(rl_filename_quote_chars)p
-Fr(.)24 b(This)19 b(is)f Fl(alw)o(a)o(ys)h Fr(non-zero)f(on)f(en)o(try)
-l(,)h(and)g(can)120 2049 y(only)d(b)q(e)g(c)o(hanged)f(within)i(a)e
-(completion)h(en)o(try)f(generator)g(function.)20 b(The)14
-b(quoting)h(is)g(e\013ected)120 2111 y(via)g(a)g(call)i(to)d(the)i
-(function)g(p)q(oin)o(ted)g(to)e(b)o(y)h Fq
-(rl_filename_quoting_function)p Fr(.)1736 2266 y(V)l(ariable)-1899
-b Fi(int)20 b Fh(rl)p 140 2266 V 21 w(inhibit)p 324 2266
-V 23 w(completion)120 2328 y Fr(If)15 b(this)g(v)m(ariable)h(is)f
-(non-zero,)g(completion)h(is)f(inhibit)p Fq(<)p Fr(ed.)22
-b(The)15 b(completion)h(c)o(haracter)e(will)i(b)q(e)120
-2390 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to)e
-Fq(self-insert)p Fr(.)1736 2545 y(V)l(ariable)-1899 b
-Fi(Function)20 b(*)g Fh(rl)p 316 2545 V 21 w(ignore)p
-492 2545 V 20 w(some)p 639 2545 V 19 w(completions)p
-955 2545 V 21 w(function)120 2608 y Fr(This)e(function,)g(if)g
-(de\014ned,)h(is)f(called)h(b)o(y)e(the)h(completer)g(when)g(real)f
-(\014lename)i(completion)f(is)120 2670 y(done,)13 b(after)e(all)i(the)g
-(matc)o(hing)f(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)19
-b(It)12 b(is)h(passed)f(a)g Fq(NULL)g Fr(terminated)p
-eop
-40 41 bop 0 -58 a Fr(40)1449 b(GNU)15 b(Readline)i(Library)120
-183 y(arra)o(y)f(of)h(matc)o(hes.)26 b(The)17 b(\014rst)g(elemen)o(t)h
-(\()p Fq(matches[0])p Fr(\))e(is)h(the)h(maximal)g(substring)f(common)
-120 246 y(to)f(all)h(matc)o(hes.)22 b(This)17 b(function)g(can)f
-(re-arrange)g(the)g(list)h(of)f(matc)o(hes)g(as)f(required,)j(but)e
-(eac)o(h)120 308 y(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f(m)o
-(ust)h(b)q(e)h(freed.)1736 470 y(V)l(ariable)-1899 b
-Fi(Function)20 b(*)g Fh(rl)p 316 470 18 3 v 21 w(directory)p
-564 470 V 21 w(completion)p 859 470 V 21 w(ho)r(ok)120
-532 y Fr(This)15 b(function,)g(if)g(de\014ned,)h(is)f(allo)o(w)o(ed)g
-(to)e(mo)q(dify)j(the)e(directory)h(p)q(ortion)g(of)f(\014lenames)h
-(Read-)120 594 y(line)h(completes.)k(It)14 b(is)g(called)i(with)e(the)g
-(address)g(of)g(a)g(string)g(\(the)g(curren)o(t)f(directory)i(name\))e
-(as)120 656 y(an)f(argumen)o(t.)17 b(It)12 b(could)h(b)q(e)f(used)g(to)
-f(expand)h(sym)o(b)q(olic)h(links)g(or)e(shell)i(v)m(ariables)g(in)f
-(pathnames.)0 864 y Fk(2.5.4)30 b(A)15 b(Short)g(Completion)g(Example)
-62 1001 y Fr(Here)20 b(is)h(a)e(small)i(application)g(demonstrating)f
-(the)f(use)i(of)e(the)h(GNU)f(Readline)k(library)l(.)34
-b(It)20 b(is)g(called)0 1063 y Fq(fileman)p Fr(,)14 b(and)i(the)f
-(source)g(co)q(de)h(resides)g(in)h(`)p Fq(examples/fileman.c)p
-Fr(')o(.)h(This)e(sample)f(application)i(pro)o(vides)0
-1126 y(completion)f(of)f(command)g(names,)g(line)i(editing)f(features,)
-f(and)g(access)g(to)g(the)g(history)g(list.)p eop
-41 42 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(41)120 183 y Fq(/*)24 b(fileman.c)e(--)i(A)g(tiny)f
-(application)f(which)h(demonstrates)g(how)g(to)h(use)f(the)192
-235 y(GNU)g(Readline)g(library.)46 b(This)24 b(application)e
-(interactively)g(allows)h(users)192 287 y(to)g(manipulate)g(files)g
-(and)g(their)g(modes.)h(*/)120 391 y(#include)f(<stdio.h>)120
-443 y(#include)g(<sys/types.h>)120 495 y(#include)g(<sys/file.h>)120
-546 y(#include)g(<sys/stat.h>)120 598 y(#include)g(<sys/errno.h>)120
-702 y(#include)g(<readline/readline.h>)120 754 y(#include)g
-(<readline/history.h>)120 858 y(extern)g(char)g(*getwd)g(\(\);)120
-910 y(extern)g(char)g(*xmalloc)g(\(\);)120 1013 y(/*)h(The)f(names)g
-(of)h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)120
-1065 y(int)h(com_list)g(\(\),)h(com_view)e(\(\),)i(com_rename)e(\(\),)i
-(com_stat)f(\(\),)g(com_pwd)g(\(\);)120 1117 y(int)g(com_delete)g
-(\(\),)g(com_help)g(\(\),)h(com_cd)f(\(\),)g(com_quit)g(\(\);)120
-1221 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f
-(commands)g(this)g(program)192 1273 y(can)g(understand.)f(*/)120
-1377 y(typedef)h(struct)g({)168 1429 y(char)g(*name;)g(/*)h(User)f
-(printable)g(name)g(of)h(the)f(function.)g(*/)168 1480
-y(Function)f(*func;)i(/*)f(Function)g(to)g(call)h(to)f(do)h(the)f(job.)
-h(*/)168 1532 y(char)f(*doc;)g(/*)h(Documentation)e(for)h(this)h
-(function.)46 b(*/)120 1584 y(})24 b(COMMAND;)120 1688
-y(COMMAND)f(commands[])f(=)i({)168 1740 y({)f("cd",)h(com_cd,)f
-("Change)f(to)i(directory)f(DIR")g(},)168 1792 y({)g("delete",)g
-(com_delete,)f("Delete)h(FILE")h(},)168 1844 y({)f("help",)g(com_help,)
-g("Display)g(this)g(text")g(},)168 1896 y({)g("?",)h(com_help,)e
-("Synonym)h(for)h(`help'")f(},)168 1947 y({)g("list",)g(com_list,)g
-("List)g(files)g(in)h(DIR")f(},)168 1999 y({)g("ls",)h(com_list,)e
-("Synonym)h(for)g(`list'")g(},)168 2051 y({)g("pwd",)g(com_pwd,)g
-("Print)g(the)h(current)f(working)g(directory")f(},)168
-2103 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)168
-2155 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g
-(},)168 2207 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g
-(on)h(FILE")f(},)168 2259 y({)g("view",)g(com_view,)g("View)g(the)h
-(contents)e(of)i(FILE")f(},)168 2311 y({)g(\(char)h(*\)NULL,)f
-(\(Function)f(*\)NULL,)h(\(char)g(*\)NULL)g(})120 2363
-y(};)120 2466 y(/*)h(Forward)e(declarations.)h(*/)120
-2518 y(char)g(*stripwhite)g(\(\);)120 2570 y(COMMAND)g(*find_command)f
-(\(\);)p eop
-42 43 bop 0 -58 a Fr(42)1449 b(GNU)15 b(Readline)i(Library)120
-183 y Fq(/*)24 b(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f(from)
-g(argv[0].)g(*/)120 235 y(char)g(*progname;)120 339 y(/*)h(When)f
-(non-zero,)g(this)g(global)g(means)g(the)h(user)f(is)g(done)h(using)f
-(this)g(program.)g(*/)120 391 y(int)g(done;)120 495 y(char)g(*)120
-546 y(dupstr)g(\(s\))239 598 y(int)h(s;)120 650 y({)168
-702 y(char)f(*r;)168 806 y(r)g(=)h(xmalloc)f(\(strlen)g(\(s\))g(+)h
-(1\);)168 858 y(strcpy)f(\(r,)g(s\);)168 910 y(return)g(\(r\);)120
-962 y(})120 1065 y(main)g(\(argc,)g(argv\))239 1117 y(int)h(argc;)239
-1169 y(char)g(**argv;)120 1221 y({)168 1273 y(char)f(*line,)g(*s;)168
-1377 y(progname)f(=)i(argv[0];)168 1480 y(initialize_readline)d(\(\);)i
-(/*)h(Bind)f(our)h(completer.)e(*/)168 1584 y(/*)h(Loop)h(reading)f
-(and)g(executing)g(lines)g(until)g(the)g(user)h(quits.)f(*/)168
-1636 y(for)g(\()h(;)g(done)f(==)h(0;)f(\))215 1688 y({)263
-1740 y(line)g(=)h(readline)f(\("FileMan:)f("\);)263 1844
-y(if)i(\(!line\))311 1896 y(break;)263 1999 y(/*)g(Remove)f(leading)g
-(and)g(trailing)g(whitespace)f(from)i(the)f(line.)335
-2051 y(Then,)g(if)h(there)f(is)g(anything)g(left,)g(add)h(it)f(to)h
-(the)f(history)g(list)335 2103 y(and)g(execute)g(it.)h(*/)263
-2155 y(s)g(=)g(stripwhite)e(\(line\);)263 2259 y(if)i(\(*s\))311
-2311 y({)359 2363 y(add_history)e(\(s\);)359 2414 y(execute_line)g
-(\(s\);)311 2466 y(})263 2570 y(free)h(\(line\);)215
-2622 y(})p eop
-43 44 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(43)168 183 y Fq(exit)23 b(\(0\);)120
-235 y(})120 339 y(/*)h(Execute)e(a)i(command)f(line.)g(*/)120
-391 y(int)120 443 y(execute_line)f(\(line\))239 495 y(char)i(*line;)120
-546 y({)168 598 y(register)e(int)i(i;)168 650 y(COMMAND)f(*command;)168
-702 y(char)g(*word;)168 806 y(/*)g(Isolate)g(the)h(command)f(word.)g
-(*/)168 858 y(i)g(=)h(0;)168 910 y(while)f(\(line[i])g(&&)g(whitespace)
-g(\(line[i]\)\))215 962 y(i++;)168 1013 y(word)g(=)h(line)f(+)h(i;)168
-1117 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))215
-1169 y(i++;)168 1273 y(if)g(\(line[i]\))215 1325 y(line[i++])g(=)h
-('\\0';)168 1429 y(command)f(=)g(find_command)g(\(word\);)168
-1532 y(if)g(\(!command\))215 1584 y({)263 1636 y(fprintf)g(\(stderr,)g
-("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)263
-1688 y(return)g(\(-1\);)215 1740 y(})168 1844 y(/*)g(Get)h(argument)f
-(to)g(command,)g(if)g(any.)h(*/)168 1896 y(while)f(\(whitespace)f
-(\(line[i]\)\))215 1947 y(i++;)168 2051 y(word)h(=)h(line)f(+)h(i;)168
-2155 y(/*)f(Call)h(the)f(function.)g(*/)168 2207 y(return)g
-(\(\(*\(command->func\)\))e(\(word\)\);)120 2259 y(})120
-2363 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g
-(and)h(return)f(a)g(pointer)g(to)h(that)192 2414 y(command.)46
-b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f
-(name.)g(*/)120 2466 y(COMMAND)g(*)120 2518 y(find_command)f(\(name\))
-239 2570 y(char)i(*name;)120 2622 y({)p eop
-44 45 bop 0 -58 a Fr(44)1449 b(GNU)15 b(Readline)i(Library)168
-183 y Fq(register)22 b(int)i(i;)168 287 y(for)f(\(i)h(=)f(0;)h
-(commands[i].name;)e(i++\))215 339 y(if)i(\(strcmp)f(\(name,)g
-(commands[i].name\))f(==)h(0\))263 391 y(return)g(\(&commands[i]\);)168
-495 y(return)g(\(\(COMMAND)f(*\)NULL\);)120 546 y(})120
-650 y(/*)i(Strip)f(whitespace)f(from)i(the)f(start)g(and)h(end)f(of)h
-(STRING.)46 b(Return)24 b(a)f(pointer)192 702 y(into)g(STRING.)g(*/)120
-754 y(char)g(*)120 806 y(stripwhite)f(\(string\))239
-858 y(char)i(*string;)120 910 y({)168 962 y(register)e(char)i(*s,)f
-(*t;)168 1065 y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))
-215 1117 y(;)168 1221 y(if)g(\(*s)h(==)f(0\))215 1273
-y(return)g(\(s\);)168 1377 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)
-168 1429 y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))215
-1480 y(t--;)168 1532 y(*++t)h(=)h('\\0';)168 1636 y(return)f(s;)120
-1688 y(})120 1792 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)120 1844 y(/*)1575
-b(*/)120 1896 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381
-b(*/)120 1947 y(/*)1575 b(*/)120 1999 y(/*)24 b
-(***********************)o(*******)o(********)o(*******)o(*******)o
-(********)o(****)d(*/)120 2103 y(char)i(*command_generator)f(\(\);)120
-2155 y(char)h(**fileman_completion)e(\(\);)120 2259 y(/*)j(Tell)f(the)g
-(GNU)h(Readline)f(library)f(how)i(to)g(complete.)46 b(We)24
-b(want)f(to)h(try)f(to)h(complete)192 2311 y(on)f(command)g(names)g(if)
-h(this)f(is)h(the)f(first)g(word)h(in)f(the)h(line,)f(or)h(on)f
-(filenames)192 2363 y(if)g(not.)g(*/)120 2414 y(initialize_readline)e
-(\(\))120 2466 y({)168 2518 y(/*)i(Allow)g(conditional)g(parsing)g(of)g
-(the)h(~/.inputrc)e(file.)h(*/)168 2570 y(rl_readline_name)e(=)j
-("FileMan";)p eop
-45 46 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(45)168 183 y Fq(/*)23 b(Tell)h(the)f(completer)g(that)g
-(we)h(want)f(a)h(crack)f(first.)g(*/)168 235 y
-(rl_attempted_completion_)o(functio)o(n)e(=)j(\(CPPFunction)e
-(*\)fileman_completion;)120 287 y(})120 391 y(/*)i(Attempt)e(to)i
-(complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23
-b(and)h(END)f(bound)h(the)192 443 y(region)f(of)g(rl_line_buffer)f
-(that)h(contains)g(the)h(word)f(to)h(complete.)46 b(TEXT)23
-b(is)192 495 y(the)g(word)g(to)h(complete.)46 b(We)24
-b(can)f(use)h(the)f(entire)g(contents)g(of)h(rl_line_buffer)192
-546 y(in)f(case)g(we)h(want)f(to)h(do)g(some)f(simple)g(parsing.)47
-b(Return)23 b(the)g(array)g(of)h(matches,)192 598 y(or)f(NULL)g(if)h
-(there)f(aren't)g(any.)h(*/)120 650 y(char)f(**)120 702
-y(fileman_completion)e(\(text,)i(start,)g(end\))239 754
-y(char)h(*text;)239 806 y(int)g(start,)f(end;)120 858
-y({)168 910 y(char)g(**matches;)168 1013 y(matches)g(=)g(\(char)h
-(**\)NULL;)168 1117 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g
-(of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)239
-1169 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h
-(a)f(file)h(in)f(the)h(current)239 1221 y(directory.)f(*/)168
-1273 y(if)g(\(start)g(==)h(0\))215 1325 y(matches)f(=)h
-(completion_matches)d(\(text,)j(command_generator\);)168
-1429 y(return)f(\(matches\);)120 1480 y(})120 1584 y(/*)h(Generator)e
-(function)h(for)g(command)g(completion.)47 b(STATE)23
-b(lets)g(us)h(know)f(whether)192 1636 y(to)g(start)g(from)h(scratch;)e
-(without)h(any)h(state)f(\(i.e.)g(STATE)g(==)h(0\),)f(then)h(we)192
-1688 y(start)f(at)g(the)h(top)f(of)h(the)f(list.)g(*/)120
-1740 y(char)g(*)120 1792 y(command_generator)f(\(text,)h(state\))239
-1844 y(char)h(*text;)239 1896 y(int)g(state;)120 1947
-y({)168 1999 y(static)f(int)g(list_index,)g(len;)168
-2051 y(char)g(*name;)168 2155 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g
-(to)h(complete,)f(initialize)f(now.)47 b(This)24 b(includes)239
-2207 y(saving)f(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)g(and)g
-(initializing)f(the)i(index)239 2259 y(variable)f(to)h(0.)f(*/)168
-2311 y(if)g(\(!state\))215 2363 y({)263 2414 y(list_index)g(=)g(0;)263
-2466 y(len)h(=)f(strlen)g(\(text\);)215 2518 y(})168
-2622 y(/*)g(Return)g(the)h(next)f(name)g(which)h(partially)e(matches)h
-(from)g(the)h(command)f(list.)g(*/)p eop
-46 47 bop 0 -58 a Fr(46)1449 b(GNU)15 b(Readline)i(Library)168
-183 y Fq(while)23 b(\(name)g(=)h(commands[list_index].name)o(\))215
-235 y({)263 287 y(list_index++;)263 391 y(if)g(\(strncmp)f(\(name,)g
-(text,)g(len\))g(==)h(0\))311 443 y(return)f(\(dupstr\(name\)\);)215
-495 y(})168 598 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f
-(NULL.)g(*/)168 650 y(return)g(\(\(char)g(*\)NULL\);)120
-702 y(})120 806 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)120 858 y(/*)1575
-b(*/)120 910 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)120
-962 y(/*)1575 b(*/)120 1013 y(/*)24 b(***********************)o
-(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)120
-1117 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47
-b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)192
-1169 y(commands.)f(*/)120 1221 y(static)h(char)g(syscom[1024];)120
-1325 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)120
-1377 y(com_list)g(\(arg\))239 1429 y(char)h(*arg;)120
-1480 y({)168 1532 y(if)f(\(!arg\))215 1584 y(arg)h(=)g("";)168
-1688 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)168
-1740 y(return)g(\(system)g(\(syscom\)\);)120 1792 y(})120
-1896 y(com_view)g(\(arg\))239 1947 y(char)h(*arg;)120
-1999 y({)168 2051 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))215
-2103 y(return)g(1;)168 2207 y(sprintf)g(\(syscom,)f("more)i(\045s",)f
-(arg\);)168 2259 y(return)g(\(system)g(\(syscom\)\);)120
-2311 y(})120 2414 y(com_rename)f(\(arg\))239 2466 y(char)i(*arg;)120
-2518 y({)168 2570 y(too_dangerous)e(\("rename"\);)168
-2622 y(return)h(\(1\);)p eop
-47 48 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(47)120 183 y Fq(})120 287 y(com_stat)23
-b(\(arg\))239 339 y(char)h(*arg;)120 391 y({)168 443
-y(struct)f(stat)g(finfo;)168 546 y(if)g(\(!valid_argument)f(\("stat",)h
-(arg\)\))215 598 y(return)g(\(1\);)168 702 y(if)g(\(stat)g(\(arg,)h
-(&finfo\))f(==)g(-1\))215 754 y({)263 806 y(perror)g(\(arg\);)263
-858 y(return)g(\(1\);)215 910 y(})168 1013 y(printf)g(\("Statistics)f
-(for)h(`\045s':\\n",)g(arg\);)168 1117 y(printf)g(\("\045s)g(has)h
-(\045d)f(link\045s,)g(and)g(is)h(\045d)g(byte\045s)f(in)g(length.\\n",)
-g(arg,)359 1169 y(finfo.st_nlink,)359 1221 y(\(finfo.st_nlink)e(==)j
-(1\))g(?)f("")h(:)g("s",)359 1273 y(finfo.st_size,)359
-1325 y(\(finfo.st_size)e(==)h(1\))h(?)f("")h(:)g("s"\);)168
-1377 y(printf)f(\("Inode)g(Last)g(Change)g(at:)g(\045s",)h(ctime)f
-(\(&finfo.st_ctime\)\);)168 1429 y(printf)g(\(")143 b(Last)23
-b(access)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_atime\)\);)168
-1480 y(printf)g(\(")95 b(Last)23 b(modified)g(at:)g(\045s",)h(ctime)f
-(\(&finfo.st_mtime\)\);)168 1532 y(return)g(\(0\);)120
-1584 y(})120 1688 y(com_delete)f(\(arg\))239 1740 y(char)i(*arg;)120
-1792 y({)168 1844 y(too_dangerous)e(\("delete"\);)168
-1896 y(return)h(\(1\);)120 1947 y(})120 2051 y(/*)h(Print)f(out)g(help)
-h(for)f(ARG,)g(or)h(for)f(all)h(of)f(the)h(commands)f(if)g(ARG)h(is)192
-2103 y(not)f(present.)g(*/)120 2155 y(com_help)g(\(arg\))239
-2207 y(char)h(*arg;)120 2259 y({)168 2311 y(register)e(int)i(i;)168
-2363 y(int)f(printed)g(=)h(0;)168 2466 y(for)f(\(i)h(=)f(0;)h
-(commands[i].name;)e(i++\))215 2518 y({)263 2570 y(if)i(\(!*arg)f(||)g
-(\(strcmp)g(\(arg,)g(commands[i].name\))f(==)i(0\)\))311
-2622 y({)p eop
-48 49 bop 0 -58 a Fr(48)1449 b(GNU)15 b(Readline)i(Library)359
-183 y Fq(printf)23 b(\("\045s\\t\\t\045s.\\n",)e(commands[i].name,)h
-(commands[i].doc\);)359 235 y(printed++;)311 287 y(})215
-339 y(})168 443 y(if)h(\(!printed\))215 495 y({)263 546
-y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48 b(Possibilties)22
-b(are:\\n",)h(arg\);)263 650 y(for)h(\(i)f(=)h(0;)g(commands[i].name;)d
-(i++\))311 702 y({)359 754 y(/*)i(Print)g(in)h(six)f(columns.)g(*/)359
-806 y(if)g(\(printed)g(==)h(6\))406 858 y({)454 910 y(printed)f(=)h(0;)
-454 962 y(printf)f(\("\\n"\);)406 1013 y(})359 1117 y(printf)g
-(\("\045s\\t",)f(commands[i].name\);)359 1169 y(printed++;)311
-1221 y(})263 1325 y(if)i(\(printed\))311 1377 y(printf)f(\("\\n"\);)215
-1429 y(})168 1480 y(return)g(\(0\);)120 1532 y(})120
-1636 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)120
-1688 y(com_cd)f(\(arg\))239 1740 y(char)h(*arg;)120 1792
-y({)168 1844 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))215
-1896 y({)263 1947 y(perror)g(\(arg\);)263 1999 y(return)g(1;)215
-2051 y(})168 2155 y(com_pwd)g(\(""\);)168 2207 y(return)g(\(0\);)120
-2259 y(})120 2363 y(/*)h(Print)f(out)g(the)h(current)f(working)f
-(directory.)h(*/)120 2414 y(com_pwd)g(\(ignore\))239
-2466 y(char)h(*ignore;)120 2518 y({)168 2570 y(char)f(dir[1024],)g(*s;)
-p eop
-49 50 bop 0 -58 a Fr(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)994 b(49)168 183 y Fq(s)23 b(=)h(getwd)f(\(dir\);)168
-235 y(if)g(\(s)h(==)f(0\))215 287 y({)263 339 y(printf)g(\("Error)g
-(getting)g(pwd:)g(\045s\\n",)g(dir\);)263 391 y(return)g(1;)215
-443 y(})168 546 y(printf)g(\("Current)f(directory)h(is)h(\045s\\n",)f
-(dir\);)168 598 y(return)g(0;)120 650 y(})120 754 y(/*)h(The)f(user)g
-(wishes)g(to)h(quit)f(using)g(this)h(program.)46 b(Just)24
-b(set)f(DONE)h(non-zero.)e(*/)120 806 y(com_quit)h(\(arg\))239
-858 y(char)h(*arg;)120 910 y({)168 962 y(done)f(=)h(1;)168
-1013 y(return)f(\(0\);)120 1065 y(})120 1169 y(/*)h(Function)e(which)i
-(tells)f(you)g(that)g(you)h(can't)f(do)h(this.)f(*/)120
-1221 y(too_dangerous)f(\(caller\))239 1273 y(char)i(*caller;)120
-1325 y({)168 1377 y(fprintf)f(\(stderr,)382 1429 y("\045s:)h(Too)f
-(dangerous)g(for)g(me)h(to)g(distribute.)46 b(Write)23
-b(it)h(yourself.\\n",)382 1480 y(caller\);)120 1532 y(})120
-1636 y(/*)g(Return)f(non-zero)f(if)i(ARG)f(is)h(a)g(valid)f(argument)g
-(for)g(CALLER,)g(else)g(print)192 1688 y(an)g(error)g(message)g(and)h
-(return)f(zero.)g(*/)120 1740 y(int)120 1792 y(valid_argument)f
-(\(caller,)h(arg\))239 1844 y(char)h(*caller,)e(*arg;)120
-1896 y({)168 1947 y(if)h(\(!arg)g(||)h(!*arg\))215 1999
-y({)263 2051 y(fprintf)f(\(stderr,)g("\045s:)g(Argument)g
-(required.\\n",)f(caller\);)263 2103 y(return)h(\(0\);)215
-2155 y(})168 2259 y(return)g(\(1\);)120 2311 y(})p eop
-50 51 bop 0 -58 a Fr(50)1449 b(GNU)15 b(Readline)i(Library)p
-eop
-51 52 bop 0 -58 a Fr(Concept)15 b(Index)1616 b(51)0 183
-y Fn(Concept)16 b(Index)0 430 y Fp(C)0 496 y Ff(command)e(editing)f
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)23 b Ff(2)0 604 y Fp(E)0 670 y Ff(editing)15 b(command)f(lines)d
-Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(2)0 778 y Fp(I)0 845 y Ff(initiali)q(zati)q(on)16
-b(\014le,)e(readline)d Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(5)0 903 y(in)o(teraction,)15 b(readline)5 b Fe(.)j(.)e(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17 b Ff(1)0 1011
-y Fp(K)0 1077 y Ff(kill)e(ring)5 b Fe(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)17 b Ff(3)1015 430 y(killin)q(g)f(text)t Fe(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(3)1015 579 y Fp(N)1015
-646 y Ff(notation,)e(readline)7 b Fe(.)h(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(2)1015 795
-y Fp(R)1015 861 y Ff(readline,)15 b(function)8 b Fe(.)g(.)e(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(19)1015
-1011 y Fp(Y)1015 1077 y Ff(y)o(anking)15 b(text)7 b Fe(.)g(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)20 b Ff(3)p eop
-52 53 bop 0 -58 a Fr(52)1449 b(GNU)15 b(Readline)i(Library)p
-eop
-53 54 bop 0 -58 a Fr(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1337
-b(53)0 183 y Fn(F)-7 b(unction)15 b(and)g(V)-7 b(ariable)14
-b(Index)0 424 y Fp(\()0 490 y Fd(\(int)t Fe(.)5 b(.)h(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)17 b Ff(31)0 608 y Fp(A)0 674
-y Fd(abort)11 b(\(C-g\))c Fe(.)t(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 b Ff(17)0
-732 y Fd(accept-lin)o(e)10 b(\(Newline)o(,)g(Return\))5
-b Fe(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)18 b Ff(12)0 790 y Fd(alphabetic)t Fe(.)s(.)7
-b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)18 b Ff(31)0 908 y Fp(B)0 974 y Fd(backward-c)o(ha)o(r)10
-b(\(C-b\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(12)0 1032 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9
-b(\(Rubout\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)23 b Ff(14)0 1090 y Fd(backward-k)o(il)o(l-l)o(in)o
-(e)10 b(\(C-x)h(Rubout\))d Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(15)0 1148 y Fd(backward-k)o(il)o(l-w)o
-(or)o(d)10 b(\(M-DEL\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(15)0
-1207 y Fd(backward-w)o(or)o(d)10 b(\(M-b\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(12)0 1265 y Fd(beginning-)o(of)o(-hi)o
-(st)o(ory)9 b(\(M-<\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(13)0
-1323 y Fd(beginning-)o(of)o(-li)o(ne)9 b(\(C-a\))g Fe(.)c(.)h(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)22 b Ff(12)0 1381 y(b)q(ell-st)o(yle)s Fe(.)9
-b(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16 b Ff(5)0 1498 y Fp(C)0
-1565 y Fd(call-last-)o(kb)o(d-m)o(ac)o(ro)9 b(\(C-x)j(e\))7
-b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)20 b Ff(17)0 1623 y Fd(capitalize)o(-w)o(ord)9
-b(\(M-c\))s Fe(.)t(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16
-b Ff(14)0 1681 y Fd(character-)o(se)o(arc)o(h)10 b(\(C-]\))e
-Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(17)0 1739
-y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9 b(\(M-C-]\))c
-Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Ff(18)0 1797 y Fd(clear-scre)o(en)9 b(\(C-l\))e Fe(.)t(.)f(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(12)0 1855
-y(commen)o(t-b)q(egin)13 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(5)0 1913
-y Fd(complete)10 b(\(TAB\))t Fe(.)s(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(16)0 1972 y(completion-query-i)
-q(tems)d Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23
-b Ff(6)0 2030 y Fd(completion)p 201 2030 12 2 v 10 w(matches)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(36)0 2088 y(con)o(v)o(ert-meta)t Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)16
-b Ff(6)0 2146 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10
-b(\(\))s Fe(.)5 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16
-b Ff(15)0 2204 y Fd(copy-forwa)o(rd)o(-wo)o(rd)9 b(\(\))t
-Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(15)0
-2262 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))h
-Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(15)0 2379
-y Fp(D)0 2446 y Fd(delete-cha)o(r)10 b(\(C-d\))e Fe(.)t(.)e(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(14)0 2504
-y Fd(delete-hor)o(iz)o(ont)o(al)o(-sp)o(ace)9 b(\(\))c
-Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)18 b Ff(15)0 2562 y Fd(digit-argu)o(me)o(nt)9
-b(\(M-0,)i(M-1,)h(...)f(M--\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)18 b Ff(16)0 2620 y Fd(digit)p 102
-2620 V 12 w(p)s Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)16
-b Ff(32)0 2678 y Fd(digit)p 102 2678 V 12 w(value)7 b
-Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)20 b Ff(32)1015 424 y Fd(ding)t Fe(.)5
-b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(31)1015
-482 y(disable-compl)q(eti)q(on)9 b Fe(.)g(.)d(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Ff(6)1015 540 y
-Fd(do-uppercas)o(e-)o(ver)o(sio)o(n)10 b(\(M-a,)g(M-b,)i(M-)p
-Fe(x)p Fd(,)g Fc(:)6 b(:)g(:)g Fd(\))j Fe(.)c(.)h(.)g(.)g(.)g(.)22
-b Ff(17)1015 598 y Fd(downcase-wo)o(rd)9 b(\(M-l\))d
-Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(14)1015 656 y Fd(dump-functi)o(on)o(s)10 b(\(\))e
-Fe(.)d(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(18)1015 715 y Fd(dump-macros)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b
-Ff(18)1015 773 y Fd(dump-variab)o(le)o(s)10 b(\(\))e
-Fe(.)d(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(18)1015 890 y Fp(E)1015 956 y Ff(editing-mo)q(de)t
-Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(6)1015 1014 y(enable-k)o(eypad)d
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)24 b Ff(6)1015 1072 y Fd(end-kbd-mac)o(ro)9
-b(\(C-x)j(\)\))7 b Fe(.)t(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(16)1015 1131 y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))t
-Fe(.)t(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(13)1015
-1189 y Fd(end-of-line)9 b(\(C-e\))f Fe(.)t(.)f(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(12)1015 1247 y Fd(exchange-po)o(in)o
-(t-a)o(nd-)o(ma)o(rk)9 b(\(C-x)j(C-x\))c Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(17)1015 1305 y(expand-tilde)10
-b Fe(.)f(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)22 b Ff(6)1015 1422 y Fp(F)1015
-1488 y Fd(filename)p 1177 1488 V 12 w(completi)o(on)p
-1388 1488 V 11 w(function)5 b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(36)1015
-1547 y Fd(forward-cha)o(r)10 b(\(C-f\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(12)1015 1605 y Fd(forward-sea)o(rc)o
-(h-h)o(ist)o(or)o(y)10 b(\(C-s\))f Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)25 b Ff(13)1015
-1663 y Fd(forward-wor)o(d)10 b(\(M-f\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(12)1015 1721 y Fd(free)p
-1097 1721 V 13 w(undo)p 1190 1721 V 13 w(list)6 b Fe(.)t(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(29)1015 1838 y Fp(H)1015 1904 y Fd(history-sea)o(rc)o(h-b)o(ack)o
-(wa)o(rd)9 b(\(\))c Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(13)1015
-1963 y Fd(history-sea)o(rc)o(h-f)o(orw)o(ar)o(d)10 b(\(\))d
-Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(13)1015 2021 y(horizon)o(tal-scrol)q(l)q
-(-mo)q(de)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)17
-b Ff(6)1015 2138 y Fp(I)1015 2204 y Ff(input-meta)s Fe(.)8
-b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)16 b Ff(7)1015 2262 y Fd(insert-comm)o(en)o(t)
-10 b(\(M-#\))t Fe(.)t(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Ff(18)1015 2320 y Fd(insert-comp)o(le)o(tio)o(ns)9
-b(\(M-*\))f Fe(.)t(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(16)1015
-2438 y Fp(K)1015 2504 y Ff(k)o(eymap)6 b Fe(.)h(.)f(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)19 b Ff(6)1015 2562 y Fd(kill-line)10 b(\(C-k\))f
-Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24
-b Ff(14)1015 2620 y Fd(kill-region)9 b(\(\))t Fe(.)c(.)h(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
-b Ff(15)1015 2678 y Fd(kill-whole-)o(li)o(ne)10 b(\(\))d
-Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20
-b Ff(15)p eop
-54 55 bop 0 -58 a Fr(54)1449 b(GNU)15 b(Readline)i(Library)0
-183 y Fd(kill-word)9 b(\(M-d\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(15)0 298 y Fp(L)0
-364 y Fd(lowercase)p 182 364 12 2 v 11 w(p)7 b Fe(.)e(.)h(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(32)0 479 y Fp(M)0 545 y Ff(mark-mo)q(di\014ed-lin)q(es)7
-b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(7)0 603 y(meta-\015ag)10 b Fe(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(7)0 718 y Fp(N)0 784 y Fd(next-histo)o(ry)9 b(\(C-n\))e
-Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(13)0 842 y Fd(non-increm)o(en)o(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o
-(ch)o(-hi)o(st)o(ory)9 b(\(M-n\))82 900 y Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)18 b Ff(13)0 958 y Fd(non-increm)o(en)o(tal)o(-r)o
-(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9 b(\(M-p\))82
-1017 y Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Ff(13)0 1075 y Fd(numeric)9 b Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(31)0 1189 y Fp(O)0 1256 y Ff(output-meta)8 b Fe(.)g(.)e(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-21 b Ff(7)0 1370 y Fp(P)0 1436 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9
-b(\(M-?\))c Fe(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(16)0 1495 y Fd(prefix-met)o(a)10
-b(\(ESC\))e Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-21 b Ff(17)0 1553 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))e
-Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(12)0 1667
-y Fp(Q)0 1734 y Fd(quoted-ins)o(er)o(t)10 b(\(C-q,)h(C-v\))e
-Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(14)0 1848 y Fp(R)0
-1914 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))c
-Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)20 b Ff(17)0 1973 y Fd(readline)8 b Fe(.)s(.)e(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)21 b Ff(19)0 2031 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9
-b(\(\))h Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b Ff(12)0
-2089 y Fd(reverse-se)o(ar)o(ch-)o(hi)o(sto)o(ry)9 b(\(C-r\))h
-Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)24 b Ff(13)0 2147 y Fd(revert-lin)o(e)10 b(\(M-r\))e
-Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)21
-b Ff(17)0 2205 y Fd(rl)p 42 2205 V 13 w(add)p 115 2205
-V 13 w(defun)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(25)0 2263 y Fd(rl)p
-42 2263 V 13 w(add)p 115 2263 V 13 w(undo)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(29)0 2321 y Fd(rl)p 42 2321 V 13 w(attempted)p 235
-2321 V 11 w(completion)p 445 2321 V 10 w(function)15
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17
-b Ff(37)0 2379 y Fd(rl)p 42 2379 V 13 w(basic)p 155 2379
-V 13 w(quote)p 268 2379 V 12 w(character)o(s)e Fe(.)6
-b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)18 b Ff(38)0 2438 y Fd(rl)p 42 2438
-V 13 w(basic)p 155 2438 V 13 w(word)p 248 2438 V 12 w(break)p
-360 2438 V 12 w(characters)h Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(38)0 2496 y Fd(rl)p
-42 2496 V 13 w(begin)p 155 2496 V 13 w(undo)p 248 2496
-V 12 w(group)9 b Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23
-b Ff(28)0 2554 y Fd(rl)p 42 2554 V 13 w(bind)p 135 2554
-V 13 w(key)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(26)0 2612 y Fd(rl)p
-42 2612 V 13 w(bind)p 135 2612 V 13 w(key)p 208 2612
-V 13 w(in)p 261 2612 V 13 w(map)6 b Fe(.)f(.)h(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(26)0 2670 y Fd(rl)p 42
-2670 V 13 w(binding)p 195 2670 V 12 w(keymap)14 b Fe(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
-b Ff(24)1015 183 y Fd(rl)p 1057 183 V 14 w(callback)p
-1231 183 V 11 w(handler)p 1382 183 V 11 w(install)9 b
-Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)22 b Ff(32)1015 241 y Fd(rl)p 1057 241
-V 14 w(callback)p 1231 241 V 11 w(handler)p 1382 241
-V 11 w(remove)8 b Fe(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(33)1015 299
-y Fd(rl)p 1057 299 V 14 w(callback)p 1231 299 V 11 w(read)p
-1322 299 V 12 w(char)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21
-b Ff(32)1015 358 y Fd(rl)p 1057 358 V 14 w(char)p 1151
-358 V 12 w(is)p 1203 358 V 14 w(quoted)p 1337 358 V 12
-w(p)e Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(37)1015 416 y Fd(rl)p 1057 416 V 14 w(clear)p 1171
-416 V 12 w(message)s Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)16 b Ff(30)1015 474 y Fd(rl)p 1057
-474 V 14 w(complete)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(35,)13 b(36)1015 532
-y Fd(rl)p 1057 532 V 14 w(complete)p 1231 532 V 11 w(internal)6
-b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b
-Ff(35)1015 590 y Fd(rl)p 1057 590 V 14 w(completer)p
-1250 590 V 10 w(quote)p 1361 590 V 13 w(character)o(s)e
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)22 b Ff(38)1015 648 y Fd(rl)p 1057 648 V 14 w(completer)p
-1250 648 V 10 w(word)p 1341 648 V 13 w(break)p 1454 648
-V 12 w(characters)14 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)18 b Ff(38)1015 706 y Fd(rl)p 1057 706 V 14 w(completio)o(n)p
-1270 706 V 11 w(append)p 1401 706 V 12 w(character)e
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-20 b Ff(39)1015 764 y Fd(rl)p 1057 764 V 14 w(completio)o(n)p
-1270 764 V 11 w(entry)p 1381 764 V 12 w(function)14 b
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18
-b Ff(35,)13 b(37)1015 823 y Fd(rl)p 1057 823 V 14 w(completio)o(n)p
-1270 823 V 11 w(query)p 1381 823 V 12 w(items)j Fe(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)18 b Ff(38)1015 881 y Fd(rl)p 1057
-881 V 14 w(copy)p 1151 881 V 12 w(keymap)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b
-Ff(25)1015 939 y Fd(rl)p 1057 939 V 14 w(copy)p 1151
-939 V 12 w(text)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)21 b Ff(30)1015 997 y
-Fd(rl)p 1057 997 V 14 w(delete)p 1191 997 V 12 w(text)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)19 b Ff(30)1015 1055 y Fd(rl)p 1057 1055 V 14
-w(directory)p 1250 1055 V 10 w(completion)p 1461 1055
-V 11 w(hook)i Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(40)1015 1113 y Fd(rl)p
-1057 1113 V 14 w(discard)p 1211 1113 V 11 w(keymap)8
-b Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24
-b Ff(25)1015 1171 y Fd(rl)p 1057 1171 V 14 w(do)p 1111
-1171 V 13 w(undo)9 b Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(29)1015
-1229 y Fd(rl)p 1057 1229 V 14 w(done)17 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)19 b Ff(23)1015 1287 y Fd(rl)p 1057 1287 V 14
-w(end)f Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(22)1015
-1346 y Fd(rl)p 1057 1346 V 14 w(end)p 1131 1346 V 13
-w(undo)p 1224 1346 V 12 w(group)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(29)1015 1404 y Fd(rl)p
-1057 1404 V 14 w(event)p 1171 1404 V 12 w(hook)i Fe(.)6
-b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-22 b Ff(24)1015 1462 y Fd(rl)p 1057 1462 V 14 w(executing)p
-1250 1462 V 10 w(keymap)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)23 b Ff(24)1015 1520 y Fd(rl)p 1057 1520 V 14 w(filename)p
-1231 1520 V 11 w(completio)o(n)p 1441 1520 V 11 w(desired)17
-b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)20 b Ff(39)1015 1578 y Fd(rl)p 1057 1578 V 14 w(filename)p
-1231 1578 V 11 w(dequoting)p 1421 1578 V 11 w(function)c
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-20 b Ff(37)1015 1636 y Fd(rl)p 1057 1636 V 14 w(filename)p
-1231 1636 V 11 w(quote)p 1342 1636 V 12 w(characters)f
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)23 b Ff(38)1015 1694 y Fd(rl)p 1057 1694 V 14
-w(filename)p 1231 1694 V 11 w(quoting)p 1382 1694 V 11
-w(desired)e Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)24 b Ff(39)1015 1752 y Fd(rl)p
-1057 1752 V 14 w(filename)p 1231 1752 V 11 w(quoting)p
-1382 1752 V 11 w(function)c Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(37)1015 1810
-y Fd(rl)p 1057 1810 V 14 w(forced)p 1191 1810 V 12 w(update)p
-1323 1810 V 11 w(display)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17
-b Ff(30)1015 1869 y Fd(rl)p 1057 1869 V 14 w(function)p
-1231 1869 V 11 w(dumper)9 b Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)22 b Ff(28)1015 1927 y Fd(rl)p 1057 1927
-V 14 w(function)p 1231 1927 V 11 w(of)p 1282 1927 V 13
-w(keyseq)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)21
-b Ff(27)1015 1985 y Fd(rl)p 1057 1985 V 14 w(generic)p
-1211 1985 V 11 w(bind)t Fe(.)5 b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(26)1015 2043 y Fd(rl)p
-1057 2043 V 14 w(get)p 1131 2043 V 13 w(keymap)7 b Fe(.)t(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(25)1015 2101 y Fd(rl)p 1057 2101 V 14 w(get)p 1131
-2101 V 13 w(keymap)p 1264 2101 V 12 w(by)p 1316 2101
-V 13 w(name)9 b Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24
-b Ff(26)1015 2159 y Fd(rl)p 1057 2159 V 14 w(get)p 1131
-2159 V 13 w(keymap)p 1264 2159 V 12 w(name)s Fe(.)t(.)7
-b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17
-b Ff(26)1015 2217 y Fd(rl)p 1057 2217 V 14 w(getc)s Fe(.)5
-b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(31)1015 2275
-y Fd(rl)p 1057 2275 V 14 w(getc)p 1151 2275 V 12 w(function)e
-Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(24)1015 2334 y Fd(rl)p 1057 2334 V 14 w(ignore)p
-1191 2334 V 12 w(completio)o(n)p 1402 2334 V 11 w(duplicate)o(s)d
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19
-b Ff(39)1015 2392 y Fd(rl)p 1057 2392 V 14 w(ignore)p
-1191 2392 V 12 w(some)p 1283 2392 V 12 w(completion)o(s)p
-1514 2392 V 11 w(function)13 b Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)17 b Ff(39)1015 2450 y Fd(rl)p 1057 2450 V
-14 w(inhibit)p 1211 2450 V 11 w(completion)g Fe(.)6 b(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)21 b Ff(39)1015 2508 y Fd(rl)p 1057 2508
-V 14 w(initializ)o(e)t Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(31)1015 2566
-y Fd(rl)p 1057 2566 V 14 w(insert)p 1191 2566 V 12 w(completio)o(ns)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(36)1015
-2624 y Fd(rl)p 1057 2624 V 14 w(insert)p 1191 2624 V
-12 w(text)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)19 b Ff(30)p eop
-55 56 bop 0 -58 a Fr(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1337
-b(55)0 183 y Fd(rl)p 42 183 12 2 v 13 w(instream)19 b
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)22 b Ff(23)0 241 y Fd(rl)p 42 241 V 13
-w(invoking)p 215 241 V 11 w(keyseqs)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)21 b Ff(27)0 299 y Fd(rl)p 42 299
-V 13 w(invoking)p 215 299 V 11 w(keyseqs)p 366 299 V
-12 w(in)p 418 299 V 13 w(map)t Fe(.)5 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)17
-b Ff(27)0 358 y Fd(rl)p 42 358 V 13 w(kill)p 135 358
-V 13 w(text)8 b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b Ff(30)0 416 y Fd(rl)p
-42 416 V 13 w(library)p 195 416 V 12 w(version)g Fe(.)6
-b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(23)0
-474 y Fd(rl)p 42 474 V 13 w(line)p 135 474 V 13 w(buffer)18
-b Fe(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)21 b Ff(22)0 532 y Fd(rl)p 42 532 V 13 w(list)p 135
-532 V 13 w(funmap)p 268 532 V 12 w(names)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)22 b Ff(28)0 590 y Fd(rl)p 42 590
-V 13 w(make)p 135 590 V 13 w(bare)p 228 590 V 13 w(keymap)8
-b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23
-b Ff(25)0 648 y Fd(rl)p 42 648 V 13 w(make)p 135 648
-V 13 w(keymap)6 b Fe(.)s(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)18 b Ff(25)0 706 y Fd(rl)p 42
-706 V 13 w(mark)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18
-b Ff(22)0 764 y Fd(rl)p 42 764 V 13 w(message)8 b Fe(.)t(.)e(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-21 b Ff(30)0 823 y Fd(rl)p 42 823 V 13 w(modifying)5
-b Fe(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)18 b Ff(29)0 881 y Fd(rl)p 42 881 V 13
-w(named)p 155 881 V 13 w(function)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(27)0 939 y Fd(rl)p
-42 939 V 13 w(on)p 95 939 V 14 w(new)p 169 939 V 13 w(line)8
-b Fe(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)21 b Ff(30)0 997 y Fd(rl)p 42 997 V 13 w(outstream)c
-Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)20 b Ff(23)0 1055 y Fd(rl)p 42 1055 V 13 w(parse)p
-155 1055 V 13 w(and)p 228 1055 V 13 w(bind)5 b Fe(.)t(.)h(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(27)0
-1113 y Fd(rl)p 42 1113 V 13 w(pending)p 195 1113 V 12
-w(input)f Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)18 b Ff(23)0 1171 y Fd(rl)p 42 1171 V 13 w(point)d
-Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(22)0 1229 y Fd(rl)p
-42 1229 V 13 w(possible)p 215 1229 V 11 w(completions)7
-b Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(36)0 1287 y Fd(rl)p
-42 1287 V 13 w(prompt)e Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(23)0
-1346 y Fd(rl)p 42 1346 V 13 w(read)p 135 1346 V 13 w(init)p
-228 1346 V 13 w(file)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)17 b Ff(27)0 1404 y Fd(rl)p 42 1404 V
-13 w(read)p 135 1404 V 13 w(key)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(31)0 1462 y Fd(rl)p 42 1462 V 13 w(readline)p 215
-1462 V 11 w(name)17 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)g(.)18 b Ff(23)0 1520 y Fd(rl)p 42 1520 V
-13 w(redisplay)5 b Fe(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(29)0 1578 y Fd(rl)p
-42 1578 V 13 w(redisplay)p 235 1578 V 11 w(function)f
-Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(24)0
-1636 y Fd(rl)p 42 1636 V 13 w(reset)p 155 1636 V 13 w(line)p
-248 1636 V 12 w(state)9 b Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)23 b Ff(30)0 1694 y Fd(rl)p 42 1694 V 13 w(reset)p
-155 1694 V 13 w(terminal)7 b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)23 b Ff(31)0 1752 y Fd(rl)p 42 1752 V
-13 w(set)p 115 1752 V 13 w(keymap)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(26)0
-1810 y Fd(rl)p 42 1810 V 13 w(special)p 195 1810 V 12
-w(prefixes)f Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23
-b Ff(38)0 1869 y Fd(rl)p 42 1869 V 13 w(startup)p 195
-1869 V 12 w(hook)18 b Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)19 b Ff(23)0 1927 y Fd(rl)p 42 1927
-V 13 w(stuff)p 155 1927 V 13 w(char)7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b
-Ff(31)0 1985 y Fd(rl)p 42 1985 V 13 w(terminal)p 215
-1985 V 11 w(name)d Fe(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)g(.)18 b Ff(23)0 2043 y Fd(rl)p 42 2043 V 13
-w(unbind)p 175 2043 V 12 w(key)7 b Fe(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b Ff(26)1015
-183 y Fd(rl)p 1057 183 V 14 w(unbind)p 1191 183 V 12
-w(key)p 1263 183 V 13 w(in)p 1316 183 V 13 w(map)t Fe(.)t(.)6
-b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(26)1015
-291 y Fp(S)1015 358 y Fd(self-insert)9 b(\(a,)j(b,)g(A,)g(1,)g(!,)g
-(...\))6 b Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)h(.)19 b Ff(14)1015 416 y Fd(set-mark)10 b(\(C-@\))t
-Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)17 b Ff(17)1015 474 y(sho)o(w-all-if-am)o(bigu)q(ous)9
-b Fe(.)g(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(7)1015 532 y Fd(start-kbd-m)o(ac)o(ro)10 b(\(C-x)h(\(\))t
-Fe(.)5 b(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(16)1015 640
-y Fp(T)1015 706 y Fd(tab-insert)9 b(\(M-TAB\))e Fe(.)t(.)f(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(14)1015 764 y
-Fd(tilde-expan)o(d)10 b(\(M-~\))d Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)20 b Ff(17)1015 823 y Fd(to)p 1057
-823 V 14 w(lower)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)24 b
-Ff(32)1015 881 y Fd(to)p 1057 881 V 14 w(upper)8 b Fe(.)f(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)24 b Ff(32)1015 939 y Fd(transpose-c)o(ha)o(rs)10
-b(\(C-t\))s Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16
-b Ff(14)1015 997 y Fd(transpose-w)o(or)o(ds)10 b(\(M-t\))s
-Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(14)1015
-1105 y Fp(U)1015 1171 y Fd(undo)c(\(C-)p 1169 1171 V
-13 w(,)g(C-x)g(C-u\))7 b Fe(.)t(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)g(.)20 b Ff(17)1015 1229 y Fd(universal-a)o(rg)o(ume)o(nt)9
-b(\(\))s Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)16
-b Ff(16)1015 1287 y Fd(unix-line-d)o(is)o(car)o(d)10
-b(\(C-u\))f Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)22 b Ff(15)1015
-1346 y Fd(unix-word-r)o(ub)o(out)9 b(\(C-w\))g Fe(.)d(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)24 b Ff(15)1015 1404 y Fd(upcase-word)9 b(\(M-u\))f
-Fe(.)t(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(14)1015 1462 y Fd(uppercase)p 1197 1462 V 11 w(p)7
-b Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)20 b Ff(32)1015 1520 y Fd(username)p
-1177 1520 V 12 w(completi)o(on)p 1388 1520 V 11 w(function)5
-b Fe(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)18 b Ff(36)1015 1628 y Fp(V)1015 1694 y Ff(visible-stats)6
-b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(7)1015 1802 y Fp(Y)1015
-1869 y Fd(yank)12 b(\(C-y\))d Fe(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)22
-b Ff(15)1015 1927 y Fd(yank-last-a)o(rg)9 b(\(M-.,)i(M-)p
-1436 1927 V 13 w(\))6 b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19
-b Ff(13)1015 1985 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))t
-Fe(.)s(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b Ff(13)1015
-2043 y Fd(yank-pop)10 b(\(M-y\))t Fe(.)t(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(15)p eop
-56 57 bop 0 -58 a Fr(56)1449 b(GNU)15 b(Readline)i(Library)p
-eop
--1 58 bop 1937 -58 a Fr(i)0 183 y Fn(T)-7 b(able)15 b(of)g(Con)n(ten)n
-(ts)0 358 y Fp(1)67 b(Command)22 b(Line)i(Editing)18
-b Fb(.)10 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)38 b Fp(1)149
-435 y Fr(1.1)45 b(In)o(tro)q(duction)16 b(to)f(Line)h(Editing)d
-Fa(.)8 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)27 b Fr(1)149 498 y(1.2)45 b(Readline)17 b(In)o(teraction)8
-b Fa(.)g(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fr(1)299
-560 y(1.2.1)44 b(Readline)17 b(Bare)e(Essen)o(tials)f
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fr(2)299 622 y(1.2.2)44 b(Readline)17 b(Mo)o(v)o(emen)o(t)d(Commands)
-7 b Fa(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fr(2)299 684
-y(1.2.3)44 b(Readline)17 b(Killing)h(Commands)10 b Fa(.)e(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)25 b Fr(3)299 747 y(1.2.4)44
-b(Readline)17 b(Argumen)o(ts)12 b Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fr(4)299 809
-y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h(the)f(History)e
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-27 b Fr(4)149 871 y(1.3)45 b(Readline)17 b(Init)g(File)e
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fr(5)299
-934 y(1.3.1)44 b(Readline)17 b(Init)f(File)h(Syn)o(tax)6
-b Fa(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fr(5)299 996 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)t
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)19 b
-Fr(8)299 1058 y(1.3.3)44 b(Sample)16 b(Init)g(File)11
-b Fa(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)25 b Fr(9)149 1120 y(1.4)45 b(Bindable)17
-b(Readline)h(Commands)6 b Fa(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)g(.)f(.)h(.)f(.)21 b Fr(12)299 1183 y(1.4.1)44
-b(Commands)14 b(F)l(or)h(Mo)o(ving)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)28 b Fr(12)299 1245 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fa(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24
-b Fr(12)299 1307 y(1.4.3)44 b(Commands)14 b(F)l(or)h(Changing)h(T)l
-(ext)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)29 b Fr(13)299 1369
-y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)8 b Fa(.)g(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)23 b Fr(14)299
-1432 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fr(15)299 1494 y(1.4.6)44
-b(Letting)15 b(Readline)j(T)o(yp)q(e)d(F)l(or)g(Y)l(ou)9
-b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fr(16)299 1556 y(1.4.7)44
-b(Keyb)q(oard)15 b(Macros)5 b Fa(.)i(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 b Fr(16)299
-1618 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)6
-b Fa(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fr(17)149 1681 y(1.5)45
-b(Readline)17 b(vi)f(Mo)q(de)d Fa(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)28 b Fr(18)0 1805 y Fp(2)67 b(Programming)23 b(with)g(GNU)f
-(Readline)d Fb(.)10 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g
-(.)g(.)41 b Fp(19)149 1883 y Fr(2.1)k(Basic)16 b(Beha)o(vior)7
-b Fa(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22
-b Fr(19)149 1945 y(2.2)45 b(Custom)14 b(F)l(unctions)7
-b Fa(.)i(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22 b Fr(21)299
-2008 y(2.2.1)44 b(The)15 b(F)l(unction)h(T)o(yp)q(e)10
-b Fa(.)e(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)26 b Fr(21)299 2070 y(2.2.2)44 b(W)l(riting)16 b(a)e(New)i(F)l
-(unction)5 b Fa(.)k(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fr(22)149 2132 y(2.3)45 b(Readline)17 b(V)l(ariables)f
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b Fr(22)149
-2194 y(2.4)45 b(Readline)17 b(Con)o(v)o(enience)g(F)l(unctions)7
-b Fa(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)22
-b Fr(24)299 2257 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)27 b Fr(24)299 2319 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6
-b Fa(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)21 b Fr(25)299 2381 y(2.4.3)44 b(Binding)17 b(Keys)t
-Fa(.)8 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)20 b Fr(26)299 2444 y(2.4.4)44
-b(Asso)q(ciating)16 b(F)l(unction)g(Names)f(and)g(Bindings)8
-b Fa(.)h(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)23
-b Fr(27)299 2506 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f
-Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)29 b Fr(28)299 2568 y(2.4.6)44 b(Redispla)o(y)10
-b Fa(.)f(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25 b Fr(29)299
-2630 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)6 b Fa(.)i(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fr(30)p eop
--2 59 bop 0 -58 a Fr(ii)1471 b(GNU)15 b(Readline)i(Library)299
-42 y(2.4.8)44 b(Utilit)o(y)16 b(F)l(unctions)e Fa(.)7
-b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)28 b Fr(31)299 104 y(2.4.9)44 b(Alternate)15 b(In)o(terface)t
-Fa(.)8 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)19 b Fr(32)299 166 y(2.4.10)43 b(An)16 b(Example)f
-Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)29 b Fr(33)149 228 y(2.5)45 b(Custom)14
-b(Completers)f Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)27 b
-Fr(34)299 291 y(2.5.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)9
-b Fa(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)25
-b Fr(34)299 353 y(2.5.2)44 b(Completion)16 b(F)l(unctions)6
-b Fa(.)i(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fr(35)299 415 y(2.5.3)44 b(Completion)16 b(V)l(ariables)11
-b Fa(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26
-b Fr(37)299 477 y(2.5.4)44 b(A)15 b(Short)g(Completion)h(Example)t
-Fa(.)8 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fr(40)0 602
-y Fp(Concept)j(Index)11 b Fb(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)34 b Fp(51)0
-742 y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)17
-b Fb(.)10 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b Fp(53)p eop end
-userdict /end-hook known{end-hook}if