]> git.ipfire.org Git - thirdparty/readline.git/commitdiff
clean up files not in readline-6.3 distribution
authorChet Ramey <chet.ramey@case.edu>
Thu, 9 Jul 2015 20:24:55 +0000 (16:24 -0400)
committerChet Ramey <chet.ramey@case.edu>
Thu, 9 Jul 2015 20:24:55 +0000 (16:24 -0400)
25 files changed:
ChangeLog [deleted file]
MANIFEST.doc [deleted file]
Makefile [deleted file]
STANDALONE [deleted file]
acconfig.h [deleted file]
config.h [deleted file]
config.status [deleted file]
configure.in [deleted file]
doc/Makefile [deleted file]
doc/hist.texinfo [deleted file]
doc/history_toc.html [deleted file]
doc/hstech.texinfo [deleted file]
doc/hsuser.texinfo [deleted file]
doc/manvers.texinfo [deleted file]
doc/readline.info-1 [deleted file]
doc/readline.info-2 [deleted file]
doc/readline_toc.html [deleted file]
doc/rlman.texinfo [deleted file]
doc/rltech.texinfo [deleted file]
doc/rluser.texinfo [deleted file]
doc/rluserman.texinfo [deleted file]
examples/Makefile [deleted file]
examples/rlfe.c [deleted file]
memalloc.h [deleted file]
stamp-config [deleted file]

diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index 1cf0c00..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,403 +0,0 @@
-Tue Mar 23 14:36:51 1993  Brian Fox  (bfox@eos.crseo.ucsb.edu)
-
-       * readline.c (rl_copy): Changed name to rl_copy_text.
-
-Mon Mar 22 19:16:05 1993  Brian Fox  (bfox@eos.crseo.ucsb.edu)
-
-       * dispose_cmd.c, several other files. Declare dispose_xxx () as
-       "void".
-
-       * builtins/hashcom.h: Make declarations of hashed_filenames be
-       "extern" to keep the SGI compiler happy.
-
-       * readline.c (rl_initialize_everything): Assign values to
-       out_stream and in_stream immediately, since
-       output_character_function () can be called before
-       readline_internal () is called.
-
-Tue Dec  8 09:30:56 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c (rl_init_terminal) Set PC from BC, not from *buffer.
-
-Mon Nov 30 09:35:47 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c (invoking_keyseqs_in_map, rl_parse_and_bind) Allow
-       backslash to quote characters, such as backslash, double quote,
-       and space. Backslash quotes all character indiscriminately.
-
-       * funmap.c (vi_keymap) Fix type in "vi-replace" declaration.
-
-Fri Nov 20 10:55:05 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c (init_terminal_io, rl_prep_terminal): FINALLY!
-       Declare and use termcap variable `ospeed' when setting up terminal
-       parameters.
-
-Thu Oct  8 08:53:07 1992  Brian J. Fox  (bfox@helios)
-
-       * Makefile, this directory: Include (as links to the canonical
-       sources), tilde.c, tilde.h, posixstat.h and xmalloc.c.
-
-Tue Sep 29 13:07:21 1992  Brian J. Fox  (bfox@helios)
-
-       * readline.c (init_terminal_io) Don't set arrow keys if the key
-       sequences that represent them are already set.
-
-       * readline.c (rl_function_of_keyseq) New function returns the first
-       function (or macro) found while searching a key sequence.
-
-Mon Sep 28 00:34:04 1992  Brian J. Fox  (bfox@helios)
-
-       * readline.c (LibraryVersion) New static char * contains current
-       version number.  Version is at 2.0.
-
-       * readline.c (rl_complete_internal): Incorporated clean changes
-       from gilmore (gnu@cygnus.com) to support quoted substrings within
-       completion functions.
-
-       * readline.c (many locations) Added support for the _GO32_,
-       whatever that is.  Patches supplied by Cygnus, typed in by hand,
-       with cleanups.
-
-Sun Aug 16 12:46:24 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c (init_terminal_io): Find out the values of the keypad
-       arrows and bind them to appropriate RL functions if present.
-
-Mon Aug 10 18:13:24 1992  Brian Fox  (bfox@cubit)
-
-       * history.c (stifle_history): A negative argument to stifle
-       becomes zero.
-
-Tue Jul 28 09:28:41 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c (rl_variable_bind): New local structure describes
-       booleans by name and address; code in rl_variable_bind () looks at
-       structure to set simple variables.
-
-       * parens.c (rl_insert_close): New variable rl_blink_matching_paren
-       is non-zero if we want to blink the matching open when a close is
-       inserted.  If FD_SET is defined, rl_blink_matching_paren defaults
-       to 1, else 0.  If FD_SET is not defined, and
-       rl_blink_matching_paren is non-zero, the close character(s) are/is
-       simply inserted.
-
-Wed Jul 22 20:03:59 1992  Brian Fox  (bfox@cubit)
-
-       * history.c, readline.c, vi_mode.c: Cause the functions strchr ()
-       and strrchr () to be used instead of index () and rindex ()
-       throughout the source.
-
-Mon Jul 13 11:34:07 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c: (rl_variable_bind) New variable "meta-flag" if "on"
-       means force the use of the 8th bit as Meta bit.  Internal variable
-       is called meta_flag.
-
-Thu Jul  9 10:37:56 1992  Brian Fox  (bfox@cubit)
-
-       * history.c (get_history_event) Change INDEX to LOCAL_INDEX.  If
-       compiling for the shell, allow shell metacharacters to separate
-       history tokens as they would for shell tokens.
-
-Sat Jul  4 19:29:12 1992  Brian Fox  (bfox@cubit)
-
-       * vi_keymap.c: According to Posix, TAB self-inserts instead of
-       doing completion.
-
-       * vi_mode.c: (rl_vi_yank_arg) Enter VI insert mode after yanking
-       an arg from the previous line.
-
-       * search.c: New file takes over vi style searching and implements
-       non-incremental searching the history.
-
-       Makefile: Add search.c and search.o.
-
-       funmap.c: Add names for non-incremental-forward-search-history and
-       non-incremental-reverse-search-history.
-
-       readline.h: Add extern definitions for non-incremental searching.
-
-       vi_mode.c: Remove old search code; add calls to code in search.c.
-
-Fri Jul  3 10:36:33 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c (rl_delete_horizontal_space); New function deletes
-       all whitespace surrounding point.
-
-       funmap.c: Add "delete-horizontal-space".
-       emacs_keymap.c: Put rl_delete_horizontal_space () on M-\.
-
-       * readline.c (rl_set_signals, rl_clear_signals); New function
-       rl_set_sighandler () is either defined in a Posix way (if
-       HAVE_POSIX_SIGNALS is defined) or in a BSD way.  Function is
-       called from rl_set_signals () and rl_clear_signals ().
-
-Fri May  8 12:50:15 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c: (readline_default_bindings) Do comparisons with
-       _POSIX_VDISABLE casted to `unsigned char'.  Change tty characters
-       to be unsigned char.
-
-Thu Apr 30 12:36:35 1992  Brian Fox  (bfox@cubit)
-
-       * readline.c: (rl_getc) Handle "read would block" error on
-       non-blocking IO streams.
-
-       * readline.c: (rl_signal_handler): Unblock only the signal that we
-       have caught, not all signals.
-
-Sun Feb 23 03:33:09 1992  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: Many functions.  Use only the macros META_CHAR and
-       UNMETA to deal with meta characters.  Prior to this, we used
-       numeric values and tests.
-
-       * readline.c (rl_complete_internal) Report exactly the number of
-       possible completions, not the number + 1.
-
-       * vi_mode.c (rl_do_move) Do not change the cursor position when
-       using `cw' or `cW'.
-
-       * vi_mode.c (rl_vi_complete) Enter insert mode after completing
-       with `*' or `\'.
-
-Fri Feb 21 05:58:18 1992  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c (rl_dispatch) Increment rl_key_sequence_length for
-       meta characters that map onto ESC map.
-
-Mon Feb 10 01:41:35 1992  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * history.c (history_do_write) Build a buffer of all of the lines
-       to write and write them in one fell swoop (lower overhead than
-       calling write () for each line).  Suggested by Peter Ho.
-
-       * readline.c: Include hbullx20 as well as hpux for determining
-       USGr3ness.
-
-       * readline.c (rl_unix_word_rubout) As per the "Now REMEMBER"
-       comment, pass arguments to rl_kill_text () in the correct order to
-       preserve prepending and appending of killed text.
-
-       * readline.c (rl_search_history) malloc (), realloc (), and free
-       () SEARCH_STRING so that there are no static limits on searching.
-
-       * vi_mode.c (rl_vi_subst) Don't forget to end the undo group.
-
-Fri Jan 31 14:51:02 1992  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c (rl_signal_handler): Zero the current history entry's
-       pointer after freeing the undo_list when SIGINT received.
-       Reformat a couple of functions.
-
-Sat Jan 25 13:47:35 1992  Brian Fox  (bfox at bears)
-
-        * readline.c (parser_if): free () TNAME after use.
-
-Tue Jan 21 01:01:35 1992  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c (rl_redisplay) and (rl_character_len): Display
-       Control characters as "^c" and Meta characters as "\234", instead
-       of "C-C" and "M-C".
-
-Sun Dec 29 10:59:00 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c (init_terminal_io) Default to environment variables
-       LINES and COLUMNS before termcap entry values.  If all else fails,
-       then assume 80x24 terminal.
-
-Sat Dec 28 16:33:11 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: If this machine is USG and it is hpux, then define
-       USGr3.
-
-       * history.c: Cosmetic fixes.
-
-Thu Nov 21 00:10:12 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * vi_mode.c: (rl_do_move) Place cursor at end of line, never at
-       next to last character.
-
-Thu Nov 14 05:08:01 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * history.c (get_history_event) Non-anchored searches can have a
-       return index of greater than zero from get_history_event ().
-
-Fri Nov  1 07:02:13 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c (rl_translate_keyseq) Make C-? translate to RUBOUT
-       unconditionally.
-
-Mon Oct 28 11:34:52 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c; Use Posix directory routines and macros.
-
-       * funmap.c; Add entry for call-last-kbd-macro.
-
-       * readline.c (rl_prep_term); Use system EOF character on POSIX
-       systems also.
-
-Thu Oct  3 16:19:53 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c; Make a distinction between having a TERMIOS tty
-       driver, and having POSIX signal handling.  You might one without
-       the other.  New defines used HAVE_POSIX_SIGNALS, and
-       TERMIOS_TTY_DRIVER.
-
-Tue Jul 30 22:37:26 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: rl_getc () If a call to read () returns without an
-       error, but with zero characters, the file is empty, so return EOF.
-
-Thu Jul 11 20:58:38 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: (rl_get_next_history, rl_get_previous_history)
-       Reallocate the buffer space if the line being moved to is longer
-       the the current space allocated.  Amazing that no one has found
-       this bug until now.
-
-Sun Jul  7 02:37:05 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c:(rl_parse_and_bind) Allow leading whitespace.
-         Make sure TERMIO and TERMIOS systems treat CR and NL
-         disctinctly.
-       
-Tue Jun 25 04:09:27 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: Rework parsing conditionals to pay attention to the
-       prior states of the conditional stack.  This makes $if statements
-       work correctly.
-
-Mon Jun 24 20:45:59 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: support for displaying key binding information
-       includes the functions rl_list_funmap_names (),
-       invoking_keyseqs_in_map (), rl_invoking_keyseqs (),
-       rl_dump_functions (), and rl_function_dumper ().
-
-       funmap.c: support for same includes rl_funmap_names ().
-
-       readline.c, funmap.c: no longer define STATIC_MALLOC.  However,
-       update both version of xrealloc () to handle a null pointer.
-
-Thu Apr 25 12:03:49 1991  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * vi_mode.c (rl_vi_fword, fWord, etc.  All functions use
-       the macro `isident()'.  Fixed movement bug which prevents
-       continious movement through the text.
-
-Fri Jul 27 16:47:01 1990  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c (parser_if) Allow "$if term=foo" construct.
-
-Wed May 23 16:10:33 1990  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c (rl_dispatch) Correctly remember the last command
-       executed.  Fixed typo in username_completion_function ().
-
-Mon Apr  9 19:55:48 1990  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: username_completion_function (); For text passed in
-       with a leading `~', remember that this could be a filename (after
-       it is completed).
-
-Thu Apr  5 13:44:24 1990  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: rl_search_history (): Correctly handle case of an
-       unfound search string, but a graceful exit (as with ESC).
-
-       * readline.c: rl_restart_output ();  The Apollo passes the address
-       of the file descriptor to TIOCSTART, not the descriptor itself.
-
-Tue Mar 20 05:38:55 1990  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * readline.c: rl_complete (); second call in a row causes possible
-       completions to be listed.
-
-       * readline.c: rl_redisplay (), added prompt_this_line variable
-       which is the first character character following \n in prompt.
-
-Sun Mar 11 04:32:03 1990  Brian Fox  (bfox at gnuwest.fsf.org)
-
-       * Signals are now supposedly handled inside of SYSV compilation.
-
-Wed Jan 17 19:24:09 1990  Brian Fox  (bfox at sbphy.ucsb.edu)
-
-       * history.c: history_expand (); fixed overwriting memory error,
-       added needed argument to call to get_history_event ().
-
-Thu Jan 11 10:54:04 1990  Brian Fox  (bfox at sbphy.ucsb.edu)
-
-       * readline.c: added mark_modified_lines to control the
-       display of an asterisk on modified history lines.  Also
-       added a user variable called mark-modified-lines to the
-       `set' command.
-
-Thu Jan  4 10:38:05 1990  Brian Fox  (bfox at sbphy.ucsb.edu)
-
-       * readline.c: start_insert ().  Only use IC if we don't have an im
-       capability.
-
-Fri Sep  8 09:00:45 1989  Brian Fox  (bfox at aurel)
-
-       * readline.c: rl_prep_terminal ().  Only turn on 8th bit
-         as meta-bit iff the terminal is not using parity.
-
-Sun Sep  3 08:57:40 1989  Brian Fox  (bfox at aurel)
-
-       * readline.c: start_insert ().  Uses multiple
-         insertion call in cases where that makes sense.
-
-         rl_insert ().  Read type-ahead buffer for additional
-         keys that are bound to rl_insert, and insert them
-         all at once.  Make insertion of single keys given
-         with an argument much more efficient.
-
-Tue Aug  8 18:13:57 1989  Brian Fox  (bfox at aurel)
-
-       * readline.c: Changed handling of EOF.  readline () returns
-        (char *)EOF or consed string.  The EOF character is read from the
-        tty, or if the tty doesn't have one, defaults to C-d.
-
-       * readline.c: Added support for event driven programs.
-         rl_event_hook is the address of a function you want called
-         while Readline is waiting for input.
-
-       * readline.c: Cleanup time.  Functions without type declarations
-         do not use return with a value.
-
-       * history.c: history_expand () has new variable which is the
-         characters to ignore immediately following history_expansion_char.
-
-Sun Jul 16 08:14:00 1989  Brian Fox  (bfox at aurel)
-
-       * rl_prep_terminal ()
-         BSD version turns off C-s, C-q, C-y, C-v.
-
-       * readline.c -- rl_prep_terminal ()
-         SYSV version hacks readline_echoing_p.
-         BSD version turns on passing of the 8th bit for the duration
-         of reading the line.
-
-Tue Jul 11 06:25:01 1989  Brian Fox  (bfox at aurel)
-
-       * readline.c: new variable rl_tilde_expander.
-         If non-null, this contains the address of a function to call if
-         the standard meaning for expanding a tilde fails.  The function is
-         called with the text sans tilde (as in "foo"), and returns a
-         malloc()'ed string which is the expansion, or a NULL pointer if
-         there is no expansion. 
-
-       * readline.h - new file chardefs.h
-         Separates things that only readline.c needs from the standard
-         header file publishing interesting things about readline.
-
-       * readline.c:
-         readline_default_bindings () now looks at terminal chararacters
-         and binds those as well.
-
-Wed Jun 28 20:20:51 1989  Brian Fox  (bfox at aurel)
-
-       * Made readline and history into independent libraries.
-
diff --git a/MANIFEST.doc b/MANIFEST.doc
deleted file mode 100644 (file)
index ed27cb3..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Master Manifest file for documentation-only distribution
-#
-doc    d
-MANIFEST.doc   f
-doc/readline.ps        f
-doc/history.ps f
-doc/readline.dvi       f
-doc/history.dvi        f
-doc/readline.info      f
-doc/history.info       f
-doc/readline.html      f
-doc/readline_toc.html  f
-doc/history.html       f
-doc/history_toc.html   f
-doc/readline.0 f
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index afeab8b..0000000
--- a/Makefile
+++ /dev/null
@@ -1,205 +0,0 @@
-# Generated automatically from Makefile.in by configure.
-# Master Makefile for the GNU readline library.
-# Copyright (C) 1994 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-srcdir = .
-
-prefix = /usr/local
-exec_prefix = $(prefix)
-bindir = $(exec_prefix)/bin
-libdir = $(exec_prefix)/lib
-mandir = $(prefix)/man/man1
-
-SHELL = /bin/sh
-
-INSTALL = /bin/install -c
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_DATA = ${INSTALL} -m 644
-
-RANLIB = ranlib
-AR = ar
-RM = rm
-CP = cp
-MV = mv
-
-DEFS = -DHAVE_CONFIG_H
-CFLAGS = -g
-LDFLAGS = -g
-
-# For libraries which include headers from other libraries.
-INCLUDES = -I. -I$(srcdir)
-
-CPPFLAGS = $(DEFS) $(INCLUDES)
-
-PICFLAG=        -pic    # -fpic for some versions of gcc
-SHLIB_OPTS=    -assert pure-text -ldl  # -Bshareable for some versions of gcc
-MAJOR=         2
-MINOR=         .0
-
-.SUFFIXES:     .so
-.c.o:
-       $(CC) -c $(CPPFLAGS) $(CFLAGS) $<
-
-.c.so:
-       -mv $*.o z$*.o
-       $(CC) -c $(PICFLAG) $(CPPFLAGS) $(CFLAGS) $< 
-       mv $*.o $@
-       -mv z$*.o $*.o
-
-# The name of the main library target.
-LIBRARY_NAME = libreadline.a
-SHARED_READLINE = libreadline.so.$(MAJOR)$(MINOR)
-SHARED_HISTORY = libhistory.so.$(MAJOR)$(MINOR)
-SHARED_LIBS = $(SHARED_READLINE) $(SHARED_HISTORY)
-
-# The C code source files for this library.
-CSOURCES = $(srcdir)readline.c $(srcdir)funmap.c $(srcdir)keymaps.c \
-          $(srcdir)vi_mode.c $(srcdir)parens.c $(srcdir)rltty.c \
-          $(srcdir)complete.c $(srcdir)bind.c $(srcdir)isearch.c \
-          $(srcdir)display.c $(srcdir)signals.c $(srcdir)emacs_keymap.c \
-          $(srcdir)vi_keymap.c $(srcdir)history.c $(srcdir)tilde.c \
-          $(srcdir)xmalloc.c
-
-# The header files for this library.
-HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h \
-          posixstat.h tilde.h rlconf.h
-
-INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h
-
-OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \
-         rltty.o complete.o bind.o isearch.o display.o signals.o \
-         history.o tilde.o xmalloc.o
-
-SHARED_OBJ = readline.so vi_mode.so funmap.so keymaps.so parens.so search.so \
-         rltty.so complete.so bind.so isearch.so display.so signals.so \
-         history.so tilde.so xmalloc.so
-
-# The texinfo files which document this library.
-DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo
-DOCOBJECT = doc/readline.dvi
-DOCSUPPORT = doc/Makefile
-DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT)
-
-SUPPORT = Makefile ChangeLog $(DOCSUPPORT) examples/[-a-z.]*
-
-SOURCES  = $(CSOURCES) $(HSOURCES) $(DOCSOURCE)
-
-THINGS_TO_TAR = $(SOURCES) $(SUPPORT)
-
-##########################################################################
-
-all: libreadline.a libhistory.a
-shared: $(SHARED_LIBS)
-
-libreadline.a: $(OBJECTS)
-       $(RM) -f $@
-       $(AR) cq $@ $(OBJECTS)
-       -$(RANLIB) $@
-
-libhistory.a: history.o
-       $(RM) -f $@
-       $(AR) cq $@ history.o
-       -$(RANLIB) $@
-
-$(SHARED_READLINE):    $(SHARED_OBJ)
-       $(RM) -f $@
-       ld ${SHLIB_OPTS} -o $@ $(SHARED_OBJ)
-
-$(SHARED_HISTORY):     history.so
-       $(RM) -f $@
-       ld ${SHLIB_OPTS} -o $@ history.so
-
-documentation: force
-       [ ! -d doc ] && mkdir doc
-       (if [ -d doc ]; then cd doc; $(MAKE) $(MFLAGS); fi)
-
-force:
-
-install: installdirs libreadline.a
-       $(INSTALL_DATA) $(INSTALLED_HEADERS) $(incdir)/readline
-       -$(MV) $(libdir)/libreadline.a $(libdir)/libreadline.old
-       $(INSTALL_DATA) libreadline.a $(libdir)/libreadline.a
-       -$(RANLIB) -t $(libdir)/libreadline.a
-
-installdirs:
-       [ ! -d $(incdir)/readline ] && { \
-         mkdir $(incdir)/readline && chmod 755 $(incdir)/readline; }
-       [ ! -d $(libdir) ] && mkdir $(libdir)
-
-uninstall:
-       [ -n "$(incdir)" ] && cd $(incdir)/readline && \
-               ${RM} -f ${INSTALLED_HEADERS}
-       [ -n "$(libdir)" ] && cd $(libdir) && \
-               ${RM} -f libreadline.a libreadline.old $(SHARED_LIBS)
-
-clean::
-       rm -f $(OBJECTS) *.a $(SHARED_OBJ) $(SHARED_LIBS)
-       (if [ -d doc ]; then cd doc; $(MAKE) $(MFLAGS) $@; fi)
-
-readline: readline.h rldefs.h chardefs.h
-readline: $(OBJECTS)
-       $(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \
-         $(LOCAL_INCLUDES) -DTEST -o readline readline.c vi_mode.o funmap.o \
-         keymaps.o -ltermcap
-
-info:
-install-info:
-dvi:
-check:
-installcheck:
-
-tags:  force
-       etags $(CSOURCES) $(HSOURCES)
-
-TAGS:  force
-       ctags -x $(CSOURCES) $(HSOURCES) > $@
-
-Makefile: config.status $(srcdir)/Makefile.in
-       $(SHELL) config.status
-
-config.status: configure
-       $(SHELL) config.status --recheck
-
-configure: configure.in            ## Comment-me-out in distribution
-       cd $(srcdir); autoconf     ## Comment-me-out in distribution
-config.h.in: configure.in          ## Comment-me-out in distribution
-       cd $(srcdir); autoheader   ## Comment-me-out in distribution
-
-mostlyclean: clean
-
-distclean realclean: clean
-       rm -f Makefile config.status config.h stamp-config
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-# Dependencies
-readline.o: readline.c readline.h rldefs.h rlconf.h chardefs.h
-readline.o: keymaps.h history.h
-vi_mode.o:  rldefs.h rlconf.h readline.h history.h
-funmap.o:   funmap.c readline.h rlconf.h
-keymaps.o:  keymaps.c emacs_keymap.c vi_keymap.c keymaps.h chardefs.h rlconf.h
-history.o: history.h memalloc.h
-isearch.o: memalloc.h readline.h history.h
-search.o: memalloc.h readline.h history.h
-display.o: readline.h history.h rldefs.h rlconf.h
-complete.o: readline.h rldefs.h rlconf.h
-rltty.o: rldefs.h rlconf.h readline.h
-bind.o: rldefs.h rlconf.h readline.h history.h
-signals.o: rldefs.h rlconf.h readline.h history.h
-parens.o: readline.h
diff --git a/STANDALONE b/STANDALONE
deleted file mode 100644 (file)
index c1387f3..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-This is a description of C preprocessor defines that readline accepts.
-Most are passed in from the parent `make'; e.g. from the bash source
-directory.
-
-NO_SYS_FILE            <sys/file.h> is not present
-HAVE_UNISTD_H          <unistd.h> exists
-HAVE_STDLIB_H          <stdlib.h> exists
-HAVE_VARARGS_H         <varargs.h> exists and is usable
-HAVE_STRING_H          <string.h> exists
-HAVE_ALLOCA_H          <alloca.h> exists and is needed for alloca()
-HAVE_ALLOCA            alloca(3) or a define for it exists
-PRAGMA_ALLOCA          use of alloca() requires a #pragma, as in AIX 3.x
-VOID_SIGHANDLER                signal handlers are void functions
-HAVE_DIRENT_H          <dirent.h> exists and is usable
-HAVE_SYS_PTEM_H                <sys/ptem.h> exists 
-HAVE_SYS_PTE_H         <sys/pte.h> exists 
-HAVE_SYS_STREAM_H      <sys/stream.h> exists
-
-System-specific options:
-
-GWINSZ_IN_SYS_IOCTL    need to include <sys/ioctl.h> for TIOCGWINSZ
-HAVE_GETPW_DECLS       the getpw* functions are declared in <pwd.h> and cannot
-                       be redeclared without compiler errors
-HAVE_STRCASECMP                the strcasecmp and strncasecmp functions are available
-
-USG                    Running a variant of System V
-USGr3                  Running System V.3
-XENIX_22               Xenix 2.2
-Linux                  Linux
-CRAY                   running a recent version of Cray UNICOS
-SunOS4                 Running SunOS 4.x
diff --git a/acconfig.h b/acconfig.h
deleted file mode 100644 (file)
index 4f42238..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* acconfig.h
-   This file is in the public domain.
-
-   Descriptive text for the C preprocessor macros that
-   the distributed Autoconf macros can define.
-   No software package will use all of them; autoheader copies the ones
-   your configure.in uses into your configuration header file templates.
-
-   The entries are in sort -df order: alphabetical, case insensitive,
-   ignoring punctuation (such as underscores).  Although this order
-   can split up related entries, it makes it easier to check whether
-   a given entry is in the file.
-
-   Leave the following blank line there!!  Autoheader needs it.  */
-\f
-
-/* Definitions pulled in from aclocal.m4. */
-#undef VOID_SIGHANDLER
-
-#undef TIOCGWINSZ_IN_SYS_IOCTL
-
-#undef TIOCSTAT_IN_SYS_IOCTL
-
-#undef HAVE_GETPW_DECLS
-
-\f
-/* Leave that blank line there!!  Autoheader needs it.
-   If you're adding to this file, keep in mind:
-   The entries are in sort -df order: alphabetical, case insensitive,
-   ignoring punctuation (such as underscores).  */
diff --git a/config.h b/config.h
deleted file mode 100644 (file)
index 045ea22..0000000
--- a/config.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* config.h.  Generated automatically by configure.  */
-/* config.h.in.  Generated automatically from configure.in by autoheader.  */
-
-#ifndef _RL_CONFIG_H
-#define _RL_CONFIG_H
-
-/* Define if using alloca.c.  */
-/* #undef C_ALLOCA */
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
-   This function is required for alloca.c support on those systems.  */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define if you have alloca.h and it should be used (not Ultrix).  */
-#define HAVE_ALLOCA_H 1
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at run-time.
-       STACK_DIRECTION > 0 => grows toward higher addresses
-       STACK_DIRECTION < 0 => grows toward lower addresses
-       STACK_DIRECTION = 0 => direction of growth unknown
- */
-/* #undef STACK_DIRECTION */
-
-/* Define if you do not have strings.h, index, bzero, etc..  */
-/* #undef USG */
-
-/* Define if your system defines TIOCGWINSZ in sys/ioctl.h.  */
-#define GWINSZ_IN_SYS_IOCTL 1
-
-/* #undef HAVE_GETPW_DECLS */
-#define NO_SYS_FILE 1
-
-/* Define if you have strcasecmp.  */
-#define HAVE_STRCASECMP 1
-
-/* Define if you have the <alloca.h> header file.  */
-#define HAVE_ALLOCA_H 1
-
-/* Define if you have the <dirent.h> header file.  */
-/* #undef HAVE_DIRENT_H */
-
-/* Define if you have the <stdlib.h> header file.  */
-/* #undef HAVE_STDLIB_H */
-
-/* Define if you have the <string.h> header file.  */
-/* #undef HAVE_STRING_H */
-
-/* Define if you have the <sys/pte.h> header file.  */
-/* #undef HAVE_SYS_PTE_H */
-
-/* Define if you have the <sys/ptem.h> header file.  */
-/* #undef HAVE_SYS_PTEM_H */
-
-/* Define if you have the <sys/stream.h> header file.  */
-/* #undef HAVE_SYS_STREAM_H */
-
-/* Define if you have the <termcap.h> header file.  */
-/* #undef HAVE_TERMCAP_H */
-
-/* Define if you have the <termio.h> header file.  */
-/* #undef HAVE_TERMIO_H */
-
-/* Define if you have the <unistd.h> header file.  */
-/* #undef HAVE_UNISTD_H */
-
-/* Define if you have the <varargs.h> header file.  */
-/* #undef HAVE_VARARGS_H */
-
-#endif
diff --git a/config.status b/config.status
deleted file mode 100755 (executable)
index b6bc9ee..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host odin:
-#
-# ./configure  --with-gcc
-
-ac_cs_usage="Usage: config.status [--recheck] [--version] [--help]"
-for ac_option
-do
-  case "$ac_option" in
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo running ${CONFIG_SHELL-/bin/sh} ./configure  --with-gcc --no-create
-    exec ${CONFIG_SHELL-/bin/sh} ./configure  --with-gcc --no-create ;;
-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "config.status generated by autoconf version 1.11"
-    exit 0 ;;
-  -help | --help | --hel | --he | --h)
-    echo "$ac_cs_usage"; exit 0 ;;
-  *) echo "$ac_cs_usage"; exit 1 ;;
-  esac
-done
-
-trap 'rm -fr Makefile config.h conftest*; exit 1' 1 2 15
-CC='gcc'
-CFLAGS='-g -O'
-LDFLAGS=''
-CPP='/lib/cpp'
-INSTALL='/bin/install -c'
-INSTALL_PROGRAM='${INSTALL}'
-INSTALL_DATA='${INSTALL} -m 644'
-RANLIB='ranlib'
-ALLOCA=''
-LIBS=''
-srcdir='.'
-top_srcdir=''
-prefix='/usr/local'
-exec_prefix='${prefix}'
-ac_prsub=''
-ac_vpsub='/^[  ]*VPATH[        ]*=[^:]*$/d'
-extrasub=''
-
-ac_given_srcdir=$srcdir
-
-CONFIG_FILES=${CONFIG_FILES-"Makefile"}
-for ac_file in .. ${CONFIG_FILES}; do if test "x$ac_file" != x..; then
-  # Remove last slash and all that follows it.  Not all systems have dirname.
-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    # The file is in a subdirectory.
-    test ! -d "$ac_dir" && mkdir "$ac_dir"
-    ac_dir_suffix="/$ac_dir"
-  else
-    ac_dir_suffix=
-  fi
-
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
-  case "$ac_given_srcdir" in
-  .)  srcdir=.
-      if test -z "$ac_dir_suffix"; then top_srcdir=.
-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-  *) # Relative path.
-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
-  esac
-
-  echo creating "$ac_file"
-  rm -f "$ac_file"
-  comment_str="Generated automatically from `echo $ac_file|sed 's|.*/||'`.in by configure."
-  case "$ac_file" in
-    *.c | *.h | *.C | *.cc | *.m )  echo "/* $comment_str */" > "$ac_file" ;;
-    * )          echo "# $comment_str"     > "$ac_file" ;;
-  esac
-  sed -e "
-$ac_prsub
-$ac_vpsub
-$extrasub
-s%@CC@%$CC%g
-s%@CFLAGS@%$CFLAGS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@CPP@%$CPP%g
-s%@INSTALL@%$INSTALL%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@RANLIB@%$RANLIB%g
-s%@ALLOCA@%$ALLOCA%g
-s%@LIBS@%$LIBS%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@prefix@%$prefix%g
-s%@exec_prefix@%$exec_prefix%g
-s%@DEFS@%-DHAVE_CONFIG_H%" $ac_given_srcdir/${ac_file}.in >> $ac_file
-fi; done
-
-# These sed commands are put into ac_sed_defs when defining a macro.
-# They are broken into pieces to make the sed script easier to manage.
-# They are passed to sed as "A NAME B NAME C VALUE D", where NAME
-# is the cpp macro being defined and VALUE is the value it is being given.
-# Each defining turns into a single global substitution command.
-# Hopefully no one uses "!" as a variable value.
-# Other candidates for the sed separators, like , and @, do get used.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s!^\([  ]*\)#\([        ]*define[       ][      ]*\)'
-ac_dB='\([     ][      ]*\)[^  ]*!\1#\2'
-ac_dC='\3'
-ac_dD='!g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s!^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_uB='\([     ]\)!\1#\2define\3'
-ac_uC=' '
-ac_uD='\4!g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s!^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_eB='$!\1#\2define\3'
-ac_eC=' '
-ac_eD='!g'
-rm -f conftest.sed
-cat >> conftest.sed <<CONFEOF
-${ac_dA}HAVE_STRCASECMP${ac_dB}HAVE_STRCASECMP${ac_dC}1${ac_dD}
-${ac_uA}HAVE_STRCASECMP${ac_uB}HAVE_STRCASECMP${ac_uC}1${ac_uD}
-${ac_eA}HAVE_STRCASECMP${ac_eB}HAVE_STRCASECMP${ac_eC}1${ac_eD}
-${ac_dA}NO_SYS_FILE${ac_dB}NO_SYS_FILE${ac_dC}1${ac_dD}
-${ac_uA}NO_SYS_FILE${ac_uB}NO_SYS_FILE${ac_uC}1${ac_uD}
-${ac_eA}NO_SYS_FILE${ac_eB}NO_SYS_FILE${ac_eC}1${ac_eD}
-${ac_dA}GWINSZ_IN_SYS_IOCTL${ac_dB}GWINSZ_IN_SYS_IOCTL${ac_dC}1${ac_dD}
-${ac_uA}GWINSZ_IN_SYS_IOCTL${ac_uB}GWINSZ_IN_SYS_IOCTL${ac_uC}1${ac_uD}
-${ac_eA}GWINSZ_IN_SYS_IOCTL${ac_eB}GWINSZ_IN_SYS_IOCTL${ac_eC}1${ac_eD}
-CONFEOF
-cat >> conftest.sed <<CONFEOF
-${ac_dA}HAVE_ALLOCA_H${ac_dB}HAVE_ALLOCA_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_ALLOCA_H${ac_uB}HAVE_ALLOCA_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_ALLOCA_H${ac_eB}HAVE_ALLOCA_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_ALLOCA${ac_dB}HAVE_ALLOCA${ac_dC}1${ac_dD}
-${ac_uA}HAVE_ALLOCA${ac_uB}HAVE_ALLOCA${ac_uC}1${ac_uD}
-${ac_eA}HAVE_ALLOCA${ac_eB}HAVE_ALLOCA${ac_eC}1${ac_eD}
-
-CONFEOF
-# This sed command replaces #undef's with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it in
-# config.h.
-cat >> conftest.sed <<\CONFEOF
-s,^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-CONFEOF
-rm -f conftest.h
-# Break up the sed commands because old seds have small limits.
-ac_max_sed_lines=20
-
-CONFIG_HEADERS=${CONFIG_HEADERS-"config.h"}
-for ac_file in .. ${CONFIG_HEADERS}; do if test "x$ac_file" != x..; then
-  echo creating $ac_file
-
-  cp $ac_given_srcdir/$ac_file.in conftest.h1
-  cp conftest.sed conftest.stm
-  while :
-  do
-    ac_lines=`grep -c . conftest.stm`
-    if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
-    rm -f conftest.s1 conftest.s2 conftest.h2
-    sed ${ac_max_sed_lines}q conftest.stm > conftest.s1 # Like head -20.
-    sed 1,${ac_max_sed_lines}d conftest.stm > conftest.s2 # Like tail +21.
-    sed -f conftest.s1 < conftest.h1 > conftest.h2
-    rm -f conftest.s1 conftest.h1 conftest.stm
-    mv conftest.h2 conftest.h1
-    mv conftest.s2 conftest.stm
-  done
-  rm -f conftest.stm conftest.h
-  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
-  cat conftest.h1 >> conftest.h
-  rm -f conftest.h1
-  if cmp -s $ac_file conftest.h 2>/dev/null; then
-    # The file exists and we would not be changing it.
-    echo "$ac_file is unchanged"
-    rm -f conftest.h
-  else
-    rm -f $ac_file
-    mv conftest.h $ac_file
-  fi
-fi; done
-rm -f conftest.sed
-
-
-
-# Makefile uses this timestamp file to record whether config.h is up to date.
-touch stamp-config
-exit 0
diff --git a/configure.in b/configure.in
deleted file mode 100644 (file)
index 0fba243..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-dnl
-dnl Configure script for readline library
-dnl
-dnl report bugs to chet@po.cwru.edu
-dnl
-dnl Process this file with autoconf to produce a configure script.
-
-# Copyright (C) 1987-2009 Free Software Foundation, Inc.
-
-#   This program is free software: you can redistribute it and/or modify
-#   it under the terms of the GNU General Public License as published by
-#   the Free Software Foundation, either version 3 of the License, or
-#   (at your option) any later version.
-
-#   This program is distributed in the hope that it will be useful,
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#   GNU General Public License for more details.
-
-#   You should have received a copy of the GNU General Public License
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-AC_REVISION([for Readline 6.2, version 2.67])
-
-AC_INIT(readline, 6.2, bug-readline@gnu.org)
-
-dnl make sure we are using a recent autoconf version
-AC_PREREQ(2.50)
-
-AC_CONFIG_SRCDIR(readline.h)
-AC_CONFIG_AUX_DIR(./support)
-AC_CONFIG_HEADERS(config.h)
-
-dnl update the value of RL_READLINE_VERSION in readline.h when this changes
-LIBVERSION=6.2
-
-AC_CANONICAL_HOST
-
-dnl configure defaults
-opt_curses=no
-opt_purify=no
-
-dnl arguments to configure
-AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
-AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
-
-if test "$opt_curses" = "yes"; then
-       prefer_curses=yes
-fi
-
-if test "$opt_purify" = yes; then
-       PURIFY="purify"
-else
-       PURIFY=
-fi
-
-dnl option parsing for optional features
-opt_multibyte=yes
-opt_static_libs=yes
-opt_shared_libs=yes
-
-AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
-AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval)
-AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
-
-if test $opt_multibyte = no; then
-AC_DEFINE(NO_MULTIBYTE_SUPPORT)
-fi
-
-dnl load up the cross-building cache file -- add more cases and cache
-dnl files as necessary
-
-dnl Note that host and target machine are the same, and different than the
-dnl build machine.
-
-CROSS_COMPILE=
-if test "x$cross_compiling" = "xyes"; then
-    case "${host}" in
-    *-cygwin*)
-        cross_cache=${srcdir}/cross-build/cygwin.cache
-        ;;
-    *-mingw*)
-        cross_cache=${srcdir}/cross-build/mingw.cache
-        ;;
-    i[[3456]]86-*-beos*)
-        cross_cache=${srcdir}/cross-build/x86-beos.cache
-        ;;
-    *)  echo "configure: cross-compiling for $host is not supported" >&2
-        ;;
-    esac
-    if test -n "${cross_cache}" && test -r "${cross_cache}"; then
-        echo "loading cross-build cache file ${cross_cache}"
-        . ${cross_cache}
-    fi
-    unset cross_cache
-    CROSS_COMPILE='-DCROSS_COMPILING'
-    AC_SUBST(CROSS_COMPILE)
-fi
-
-echo ""
-echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
-echo ""
-
-# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
-
-AC_PROG_MAKE_SET
-AC_PROG_CC
-dnl AC_AIX
-AC_MINIX
-
-# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
-
-AC_PROG_GCC_TRADITIONAL
-AC_PROG_INSTALL
-AC_CHECK_PROG(AR, ar, , ar)
-dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
-dnl This allows people to set it when running configure or make
-test -n "$ARFLAGS" || ARFLAGS="cr"
-AC_PROG_RANLIB
-
-MAKE_SHELL=/bin/sh
-AC_SUBST(MAKE_SHELL)
-
-AC_C_CONST
-AC_C_PROTOTYPES
-AC_C_CHAR_UNSIGNED
-AC_C_VOLATILE
-
-AC_TYPE_SIGNAL
-
-AC_TYPE_SIZE_T
-AC_CHECK_TYPE(ssize_t, int)
-
-AC_HEADER_STDC
-
-AC_HEADER_STAT
-AC_HEADER_DIRENT
-
-AC_CHECK_FUNCS(fcntl kill lstat)
-AC_CHECK_FUNCS(memmove putenv select setenv setlocale \
-               strcasecmp strpbrk tcgetattr vsnprintf)
-AC_CHECK_FUNCS(isascii isxdigit)
-AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
-
-AC_FUNC_STRCOLL
-
-AC_CHECK_HEADERS(fcntl.h unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
-               limits.h locale.h pwd.h memory.h termcap.h termios.h termio.h)
-AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h)
-
-AC_CHECK_HEADERS(sys/ptem.h,,,
-[[
-#if HAVE_SYS_STREAM_H
-#  include <sys/stream.h>
-#endif
-]])
-
-AC_SYS_LARGEFILE
-
-BASH_SYS_SIGNAL_VINTAGE
-BASH_SYS_REINSTALL_SIGHANDLERS
-
-BASH_FUNC_POSIX_SETJMP
-BASH_FUNC_LSTAT
-BASH_FUNC_STRCOLL
-BASH_FUNC_CTYPE_NONASCII
-
-BASH_CHECK_GETPW_FUNCS
-
-AC_HEADER_TIOCGWINSZ
-
-BASH_TYPE_SIG_ATOMIC_T
-BASH_TYPE_SIGHANDLER
-
-BASH_HAVE_TIOCSTAT
-BASH_HAVE_FIONREAD
-BASH_CHECK_SPEED_T
-BASH_STRUCT_WINSIZE
-BASH_STRUCT_DIRENT_D_INO
-BASH_STRUCT_DIRENT_D_FILENO
-
-dnl yuck
-case "$host_os" in
-aix*)   prefer_curses=yes ;;
-esac
-BASH_CHECK_LIB_TERMCAP
-if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
-       if test "$prefer_curses" = yes; then
-               TERMCAP_LIB=-lcurses
-       else
-               TERMCAP_LIB=-ltermcap   #default
-       fi
-fi
-
-BASH_CHECK_MULTIBYTE
-
-case "$host_cpu" in
-*cray*)        LOCAL_CFLAGS=-DCRAY ;;
-*s390*) LOCAL_CFLAGS=-fsigned-char ;;
-esac
-
-case "$host_os" in
-isc*)  LOCAL_CFLAGS=-Disc386 ;;
-esac
-
-# shared library configuration section
-#
-# Shared object configuration section.  These values are generated by
-# ${srcdir}/support/shobj-conf
-#
-if test -f ${srcdir}/support/shobj-conf; then
-        AC_MSG_CHECKING(configuration for building shared libraries)
-        eval `TERMCAP_LIB=$TERMCAP_LIB ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
-
-#      case "$SHLIB_LIBS" in
-#      *curses*|*termcap*|*termlib*)   ;;
-#      *)                      SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;;
-#      esac
-       
-        AC_SUBST(SHOBJ_CC)
-        AC_SUBST(SHOBJ_CFLAGS)
-        AC_SUBST(SHOBJ_LD)
-        AC_SUBST(SHOBJ_LDFLAGS)
-       AC_SUBST(SHOBJ_XLDFLAGS)
-        AC_SUBST(SHOBJ_LIBS)
-        AC_SUBST(SHOBJ_STATUS)
-       AC_SUBST(SHLIB_STATUS)
-       AC_SUBST(SHLIB_XLDFLAGS)
-       AC_SUBST(SHLIB_DOT)
-       AC_SUBST(SHLIB_LIBPREF)
-       AC_SUBST(SHLIB_LIBSUFF)
-       AC_SUBST(SHLIB_LIBVERSION)
-       AC_SUBST(SHLIB_DLLVERSION)
-       AC_SUBST(SHLIB_LIBS)
-        AC_MSG_RESULT($SHLIB_STATUS)
-
-       # SHLIB_STATUS is either `supported' or `unsupported'.  If it's
-       # `unsupported', turn off any default shared library building
-       if test "$SHLIB_STATUS" = 'unsupported'; then
-               opt_shared_libs=no
-       fi
-
-       # shared library versioning
-       # quoted for m4 so I can use character classes
-       SHLIB_MAJOR=[`expr "$LIBVERSION" : '\([0-9]\)\..*'`]
-       SHLIB_MINOR=[`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`]
-       AC_SUBST(SHLIB_MAJOR)
-       AC_SUBST(SHLIB_MINOR)
-fi
-
-if test "$opt_static_libs" = "yes"; then
-       STATIC_TARGET=static
-       STATIC_INSTALL_TARGET=install-static
-fi
-if test "$opt_shared_libs" = "yes"; then
-       SHARED_TARGET=shared
-       SHARED_INSTALL_TARGET=install-shared
-fi
-
-AC_SUBST(STATIC_TARGET)
-AC_SUBST(SHARED_TARGET)
-AC_SUBST(STATIC_INSTALL_TARGET)
-AC_SUBST(SHARED_INSTALL_TARGET)
-
-case "$host_os" in
-msdosdjgpp*)   BUILD_DIR=`pwd.exe` ;;  # to prevent //d/path/file
-*)             BUILD_DIR=`pwd` ;;
-esac
-
-case "$BUILD_DIR" in
-*\ *)  BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
-*)     ;;
-esac
-
-AC_SUBST(PURIFY)
-AC_SUBST(BUILD_DIR)
-
-AC_SUBST(CFLAGS)
-AC_SUBST(LOCAL_CFLAGS)
-AC_SUBST(LOCAL_LDFLAGS)
-AC_SUBST(LOCAL_DEFS)
-
-AC_SUBST(AR)
-AC_SUBST(ARFLAGS)
-
-AC_SUBST(host_cpu)
-AC_SUBST(host_os)
-
-AC_SUBST(LIBVERSION)
-
-AC_SUBST(TERMCAP_LIB)
-
-AC_OUTPUT([Makefile doc/Makefile examples/Makefile shlib/Makefile],
-[
-# Makefile uses this timestamp file to record whether config.h is up to date.
-echo > stamp-h
-])
diff --git a/doc/Makefile b/doc/Makefile
deleted file mode 100644 (file)
index ad5ef70..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-# This makefile for History library documentation is in -*- text -*- mode.
-# Emacs likes it that way.
-
-DOC_SUPPORT = ../../doc-support/
-TEXINDEX    = $(DOC_SUPPORT)/texindex
-
-TEX    = tex
-
-DVIOBJ = readline.dvi history.dvi
-INFOBJ = readline.info history.info
-PSOBJ = readline.ps history.ps
-
-all: info dvi
-
-readline.dvi: rlman.texinfo rluser.texinfo rltech.texinfo
-       $(TEX) rlman.texinfo
-       $(TEXINDEX) rlman.??
-       $(TEX) rlman.texinfo
-       mv rlman.dvi readline.dvi
-
-readline.info: rlman.texinfo rluser.texinfo rltech.texinfo
-       makeinfo rlman.texinfo
-
-history.dvi: hist.texinfo hsuser.texinfo hstech.texinfo
-       $(TEX) hist.texinfo
-       $(TEXINDEX) hist.??
-       $(TEX) hist.texinfo
-       mv hist.dvi history.dvi
-
-history.info: hist.texinfo hsuser.texinfo hstech.texinfo
-       makeinfo hist.texinfo
-
-readline.ps:   readline.dvi
-       dvips -D 300 -o $@ readline.dvi
-
-history.ps:    history.dvi
-       dvips -D 300 -o $@ history.dvi
-
-info:  $(INFOOBJ)
-dvi:   $(DVIOBJ)
-ps:    $(PSOBJ)
-
-
-$(TEXINDEX):
-       (cd $(DOC_SUPPORT); $(MAKE) $(MFLAGS) CFLAGS='$(CFLAGS)' texindex)
-
-clean:
-       rm -f *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
-             *.fns *.kys *.tps *.vrs *.o core
-
-squeaky-clean:
-       rm -f *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
-             *.dvi *.info *.info-* *.fns *.kys *.tps *.vrs *.o core
-
-distclean: clean
-realclean: clean
diff --git a/doc/hist.texinfo b/doc/hist.texinfo
deleted file mode 100644 (file)
index 63ceb16..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-\input texinfo    @c -*-texinfo-*-
-@c %**start of header (This is for running Texinfo on a region.)
-@setfilename history.info
-@settitle GNU History Library
-@c %**end of header (This is for running Texinfo on a region.)
-
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* History: (history).       The GNU history library API
-@end direntry
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title GNU History Library
-@subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU History Library
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-@menu
-* Using History Interactively::          GNU History User's Manual.
-* Programming with GNU History::  GNU History Programmer's Manual.
-* Concept Index::                Index of concepts described in this manual.
-* Function and Variable Index::          Index of externally visible functions
-                                 and variables.
-@end menu
-@end ifinfo
-
-@syncodeindex fn vr
-
-@include hsuser.texinfo
-@include hstech.texinfo
-
-@node Concept Index
-@appendix Concept Index
-@printindex cp
-
-@node Function and Variable Index
-@appendix Function and Variable Index
-@printindex vr
-
-@contents
-@bye
diff --git a/doc/history_toc.html b/doc/history_toc.html
deleted file mode 100644 (file)
index 7e271c0..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from /usr/homes/chet/src/bash/readline-2.2/doc/hist.texinfo on 2 April 1998 -->
-
-<TITLE>GNU History Library - Table of Contents</TITLE>
-</HEAD>
-<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>
-<UL>
-<LI><A NAME="TOC1" HREF="history.html#SEC1">Using History Interactively</A>
-<UL>
-<LI><A NAME="TOC2" HREF="history.html#SEC2">History Expansion</A>
-<UL>
-<LI><A NAME="TOC3" HREF="history.html#SEC3">Event Designators</A>
-<LI><A NAME="TOC4" HREF="history.html#SEC4">Word Designators</A>
-<LI><A NAME="TOC5" HREF="history.html#SEC5">Modifiers</A>
-</UL>
-</UL>
-<LI><A NAME="TOC6" HREF="history.html#SEC6">Programming with GNU History</A>
-<UL>
-<LI><A NAME="TOC7" HREF="history.html#SEC7">Introduction to History</A>
-<LI><A NAME="TOC8" HREF="history.html#SEC8">History Storage</A>
-<LI><A NAME="TOC9" HREF="history.html#SEC9">History Functions</A>
-<UL>
-<LI><A NAME="TOC10" HREF="history.html#SEC10">Initializing History and State Management</A>
-<LI><A NAME="TOC11" HREF="history.html#SEC11">History List Management</A>
-<LI><A NAME="TOC12" HREF="history.html#SEC12">Information About the History List</A>
-<LI><A NAME="TOC13" HREF="history.html#SEC13">Moving Around the History List</A>
-<LI><A NAME="TOC14" HREF="history.html#SEC14">Searching the History List</A>
-<LI><A NAME="TOC15" HREF="history.html#SEC15">Managing the History File</A>
-<LI><A NAME="TOC16" HREF="history.html#SEC16">History Expansion</A>
-</UL>
-<LI><A NAME="TOC17" HREF="history.html#SEC17">History Variables</A>
-<LI><A NAME="TOC18" HREF="history.html#SEC18">History Programming Example</A>
-</UL>
-<LI><A NAME="TOC19" HREF="history.html#SEC19">Concept Index</A>
-<LI><A NAME="TOC20" HREF="history.html#SEC20">Function and Variable Index</A>
-</UL>
-<P><HR><P>
-This document was generated on 2 April 1998 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
-translator version 1.51.</P>
-</BODY>
-</HTML>
diff --git a/doc/hstech.texinfo b/doc/hstech.texinfo
deleted file mode 100644 (file)
index 9494446..0000000
+++ /dev/null
@@ -1,550 +0,0 @@
-@ignore
-This file documents the user interface to the GNU History library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@node Programming with GNU History
-@chapter Programming with GNU History
-
-This chapter describes how to interface programs that you write
-with the @sc{gnu} History Library.
-It should be considered a technical guide.
-For information on the interactive use of @sc{gnu} History, @pxref{Using
-History Interactively}.
-
-@menu
-* Introduction to History::    What is the GNU History library for?
-* History Storage::            How information is stored.
-* History Functions::          Functions that you can use.
-* History Variables::          Variables that control behaviour.
-* History Programming Example::        Example of using the GNU History Library.
-@end menu
-
-@node Introduction to History
-@section Introduction to History
-
-Many programs read input from the user a line at a time.  The @sc{gnu}
-History library is able to keep track of those lines, associate arbitrary
-data with each line, and utilize information from previous lines in
-composing new ones. 
-
-The programmer using the History library has available functions
-for remembering lines on a history list, associating arbitrary data
-with a line, removing lines from the list, searching through the list
-for a line containing an arbitrary text string, and referencing any line
-in the list directly.  In addition, a history @dfn{expansion} function
-is available which provides for a consistent user interface across
-different programs.
-
-The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands.  The basic history manipulation commands are similar to
-the history substitution provided by @code{csh}.
-
-If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-
-Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file @code{<readline/history.h>} in any file that uses the
-History library's features.  It supplies extern declarations for all
-of the library's public functions and variables, and declares all of
-the public data structures.
-
-@node History Storage
-@section History Storage
-
-The history list is an array of history entries.  A history entry is
-declared as follows:
-
-@example
-typedef void *histdata_t;
-
-typedef struct _hist_entry @{
-  char *line;
-  histdata_t data;
-@} HIST_ENTRY;
-@end example
-
-The history list itself might therefore be declared as
-
-@example
-HIST_ENTRY **the_history_list;
-@end example
-
-The state of the History library is encapsulated into a single structure:
-
-@example
-/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state @{
-  HIST_ENTRY **entries; /* Pointer to the entries themselves. */
-  int offset;           /* The location pointer within this array. */
-  int length;           /* Number of elements within this array. */
-  int size;             /* Number of slots allocated to this array. */
-  int flags;
-@} HISTORY_STATE;
-@end example
-
-If the flags member includes @code{HS_STIFLED}, the history has been
-stifled.
-
-@node History Functions
-@section History Functions
-
-This section describes the calling sequence for the various functions
-exported by the @sc{gnu} History library.
-
-@menu
-* Initializing History and State Management::  Functions to call when you
-                                               want to use history in a
-                                               program.
-* History List Management::            Functions used to manage the list
-                                       of history entries.
-* Information About the History List:: Functions returning information about
-                                       the history list.
-* Moving Around the History List::     Functions used to change the position
-                                       in the history list.
-* Searching the History List::         Functions to search the history list
-                                       for entries containing a string.
-* Managing the History File::          Functions that read and write a file
-                                       containing the history list.
-* History Expansion::                  Functions to perform csh-like history
-                                       expansion.
-@end menu
-
-@node Initializing History and State Management
-@subsection Initializing History and State Management
-
-This section describes functions used to initialize and manage
-the state of the History library when you want to use the history
-functions in your program.
-
-@deftypefun void using_history (void)
-Begin a session in which the history functions might be used.  This
-initializes the interactive variables.
-@end deftypefun
-
-@deftypefun {HISTORY_STATE *} history_get_history_state (void)
-Return a structure describing the current state of the input history.
-@end deftypefun
-
-@deftypefun void history_set_history_state (HISTORY_STATE *state)
-Set the state of the history list according to @var{state}.
-@end deftypefun
-
-@node History List Management
-@subsection History List Management
-
-These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-
-@deftypefun void add_history (const char *string)
-Place @var{string} at the end of the history list.  The associated data
-field (if any) is set to @code{NULL}.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} remove_history (int which)
-Remove history entry at offset @var{which} from the history.  The
-removed element is returned so you can free the line, data,
-and containing structure.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data)
-Make the history entry at offset @var{which} have @var{line} and @var{data}.
-This returns the old entry so you can dispose of the data.  In the case
-of an invalid @var{which}, a @code{NULL} pointer is returned.
-@end deftypefun
-
-@deftypefun void clear_history (void)
-Clear the history list by deleting all the entries.
-@end deftypefun
-
-@deftypefun void stifle_history (int max)
-Stifle the history list, remembering only the last @var{max} entries.
-@end deftypefun
-
-@deftypefun int unstifle_history (void)
-Stop stifling the history.  This returns the previously-set
-maximum number of history entries (as set by @code{stifle_history()}).
-The value is positive if the history was
-stifled, negative if it wasn't.
-@end deftypefun
-
-@deftypefun int history_is_stifled (void)
-Returns non-zero if the history is stifled, zero if it is not.
-@end deftypefun
-
-@node Information About the History List
-@subsection Information About the History List
-
-These functions return information about the entire history list or
-individual list entries.
-
-@deftypefun {HIST_ENTRY **} history_list (void)
-Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the
-current input history.  Element 0 of this list is the beginning of time.
-If there is no history, return @code{NULL}.
-@end deftypefun
-
-@deftypefun int where_history (void)
-Returns the offset of the current history element.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} current_history (void)
-Return the history entry at the current position, as determined by
-@code{where_history()}.  If there is no entry there, return a @code{NULL}
-pointer.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} history_get (int offset)
-Return the history entry at position @var{offset}, starting from
-@code{history_base} (@pxref{History Variables}).
-If there is no entry there, or if @var{offset}
-is greater than the history length, return a @code{NULL} pointer.
-@end deftypefun
-
-@deftypefun int history_total_bytes (void)
-Return the number of bytes that the primary history entries are using.
-This function returns the sum of the lengths of all the lines in the
-history.
-@end deftypefun
-
-@node Moving Around the History List
-@subsection Moving Around the History List
-
-These functions allow the current index into the history list to be
-set or changed.
-
-@deftypefun int history_set_pos (int pos)
-Set the current history offset to @var{pos}, an absolute index
-into the list.
-Returns 1 on success, 0 if @var{pos} is less than zero or greater
-than the number of history entries.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} previous_history (void)
-Back up the current history offset to the previous history entry, and
-return a pointer to that entry.  If there is no previous entry, return
-a @code{NULL} pointer.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} next_history (void)
-Move the current history offset forward to the next history entry, and
-return the a pointer to that entry.  If there is no next entry, return
-a @code{NULL} pointer.
-@end deftypefun
-
-@node Searching the History List
-@subsection Searching the History List
-@cindex History Searching
-
-These functions allow searching of the history list for entries containing
-a specific string.  Searching may be performed both forward and backward
-from the current history position.  The search may be @dfn{anchored},
-meaning that the string must match at the beginning of the history entry.
-@cindex anchored search
-
-@deftypefun int history_search (const char *string, int direction)
-Search the history for @var{string}, starting at the current history offset.
-If @var{direction} is less than 0, then the search is through
-previous entries, otherwise through subsequent entries.
-If @var{string} is found, then
-the current history index is set to that history entry, and the value
-returned is the offset in the line of the entry where
-@var{string} was found.  Otherwise, nothing is changed, and a -1 is
-returned.
-@end deftypefun
-
-@deftypefun int history_search_prefix (const char *string, int direction)
-Search the history for @var{string}, starting at the current history
-offset.  The search is anchored: matching lines must begin with
-@var{string}.  If @var{direction} is less than 0, then the search is
-through previous entries, otherwise through subsequent entries.
-If @var{string} is found, then the
-current history index is set to that entry, and the return value is 0. 
-Otherwise, nothing is changed, and a -1 is returned. 
-@end deftypefun
-
-@deftypefun int history_search_pos (const char *string, int direction, int pos)
-Search for @var{string} in the history list, starting at @var{pos}, an
-absolute index into the list.  If @var{direction} is negative, the search
-proceeds backward from @var{pos}, otherwise forward.  Returns the absolute
-index of the history element where @var{string} was found, or -1 otherwise.
-@end deftypefun
-
-@node Managing the History File
-@subsection Managing the History File
-
-The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-
-@deftypefun int read_history (const char *filename)
-Add the contents of @var{filename} to the history list, a line at a time.
-If @var{filename} is @code{NULL}, then read from @file{~/.history}.
-Returns 0 if successful, or @code{errno} if not.
-@end deftypefun
-
-@deftypefun int read_history_range (const char *filename, int from, int to)
-Read a range of lines from @var{filename}, adding them to the history list.
-Start reading at line @var{from} and end at @var{to}.
-If @var{from} is zero, start at the beginning.  If @var{to} is less than
-@var{from}, then read until the end of the file.  If @var{filename} is
-@code{NULL}, then read from @file{~/.history}.  Returns 0 if successful,
-or @code{errno} if not.
-@end deftypefun
-
-@deftypefun int write_history (const char *filename)
-Write the current history to @var{filename}, overwriting @var{filename}
-if necessary.
-If @var{filename} is @code{NULL}, then write the history list to
-@file{~/.history}.
-Returns 0 on success, or @code{errno} on a read or write error.
-@end deftypefun
-
-@deftypefun int append_history (int nelements, const char *filename)
-Append the last @var{nelements} of the history list to @var{filename}.
-If @var{filename} is @code{NULL}, then append to @file{~/.history}.
-Returns 0 on success, or @code{errno} on a read or write error.
-@end deftypefun
-
-@deftypefun int history_truncate_file (const char *filename, int nlines)
-Truncate the history file @var{filename}, leaving only the last
-@var{nlines} lines.
-If @var{filename} is @code{NULL}, then @file{~/.history} is truncated.
-Returns 0 on success, or @code{errno} on failure.
-@end deftypefun
-
-@node History Expansion
-@subsection History Expansion
-
-These functions implement history expansion.
-
-@deftypefun int history_expand (char *string, char **output)
-Expand @var{string}, placing the result into @var{output}, a pointer
-to a string (@pxref{History Interaction}).  Returns:
-@table @code
-@item 0
-If no expansions took place (or, if the only change in
-the text was the removal of escape characters preceding the history expansion
-character);
-@item 1
-if expansions did take place;
-@item -1
-if there was an error in expansion;
-@item 2
-if the returned line should be displayed, but not executed,
-as with the @code{:p} modifier (@pxref{Modifiers}).
-@end table
-
-If an error ocurred in expansion, then @var{output} contains a descriptive
-error message.
-@end deftypefun
-
-@deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar)
-Returns the text of the history event beginning at @var{string} +
-@var{*cindex}.  @var{*cindex} is modified to point to after the event
-specifier.  At function entry, @var{cindex} points to the index into
-@var{string} where the history event specification begins.  @var{qchar}
-is a character that is allowed to end the event specification in addition
-to the ``normal'' terminating characters.
-@end deftypefun
-
-@deftypefun {char **} history_tokenize (const char *string)
-Return an array of tokens parsed out of @var{string}, much as the
-shell might.  The tokens are split on the characters in the
-@var{history_word_delimiters} variable,
-and shell quoting conventions are obeyed.
-@end deftypefun
-
-@deftypefun {char *} history_arg_extract (int first, int last, const char *string)
-Extract a string segment consisting of the @var{first} through @var{last}
-arguments present in @var{string}.  Arguments are split using
-@code{history_tokenize}.
-@end deftypefun
-
-@node History Variables
-@section History Variables
-
-This section describes the externally-visible variables exported by
-the @sc{gnu} History Library.
-
-@deftypevar int history_base
-The logical offset of the first entry in the history list.
-@end deftypevar
-
-@deftypevar int history_length
-The number of entries currently stored in the history list.
-@end deftypevar
-
-@deftypevar int history_max_entries
-The maximum number of history entries.  This must be changed using
-@code{stifle_history()}.
-@end deftypevar
-
-@deftypevar char history_expansion_char
-The character that introduces a history event.  The default is @samp{!}.
-Setting this to 0 inhibits history expansion.
-@end deftypevar
-
-@deftypevar char history_subst_char
-The character that invokes word substitution if found at the start of
-a line.  The default is @samp{^}.
-@end deftypevar
-
-@deftypevar char history_comment_char
-During tokenization, if this character is seen as the first character
-of a word, then it and all subsequent characters up to a newline are
-ignored, suppressing history expansion for the remainder of the line.
-This is disabled by default.
-@end deftypevar
-
-@deftypevar {char *} history_word_delimiters
-The characters that separate tokens for @code{history_tokenize()}.
-The default value is @code{" \t\n()<>;&|"}.
-@end deftypevar
-
-@deftypevar {char *} history_no_expand_chars
-The list of characters which inhibit history expansion if found immediately
-following @var{history_expansion_char}.  The default is space, tab, newline,
-carriage return, and @samp{=}.
-@end deftypevar
-
-@deftypevar {char *} history_search_delimiter_chars
-The list of additional characters which can delimit a history search
-string, in addition to space, TAB, @samp{:} and @samp{?} in the case of
-a substring search.  The default is empty.
-@end deftypevar
-
-@deftypevar int history_quotes_inhibit_expansion
-If non-zero, single-quoted words are not scanned for the history expansion
-character.  The default value is 0.
-@end deftypevar
-
-@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
-This should be set to the address of a function that takes two arguments:
-a @code{char *} (@var{string})
-and an @code{int} index into that string (@var{i}).
-It should return a non-zero value if the history expansion starting at
-@var{string[i]} should not be performed; zero if the expansion should
-be done.
-It is intended for use by applications like Bash that use the history
-expansion character for additional purposes.
-By default, this variable is set to @code{NULL}.
-@end deftypevar
-
-@node History Programming Example
-@section History Programming Example
-
-The following program demonstrates simple use of the @sc{gnu} History Library.
-
-@smallexample
-#include <stdio.h>
-#include <readline/history.h>
-
-main (argc, argv)
-     int argc;
-     char **argv;
-@{
-  char line[1024], *t;
-  int len, done = 0;
-
-  line[0] = 0;
-
-  using_history ();
-  while (!done)
-    @{
-      printf ("history$ ");
-      fflush (stdout);
-      t = fgets (line, sizeof (line) - 1, stdin);
-      if (t && *t)
-        @{
-          len = strlen (t);
-          if (t[len - 1] == '\n')
-            t[len - 1] = '\0';
-        @}
-
-      if (!t)
-        strcpy (line, "quit");
-
-      if (line[0])
-        @{
-          char *expansion;
-          int result;
-
-          result = history_expand (line, &expansion);
-          if (result)
-            fprintf (stderr, "%s\n", expansion);
-
-          if (result < 0 || result == 2)
-            @{
-              free (expansion);
-              continue;
-            @}
-
-          add_history (expansion);
-          strncpy (line, expansion, sizeof (line) - 1);
-          free (expansion);
-        @}
-
-      if (strcmp (line, "quit") == 0)
-        done = 1;
-      else if (strcmp (line, "save") == 0)
-        write_history ("history_file");
-      else if (strcmp (line, "read") == 0)
-        read_history ("history_file");
-      else if (strcmp (line, "list") == 0)
-        @{
-          register HIST_ENTRY **the_list;
-          register int i;
-
-          the_list = history_list ();
-          if (the_list)
-            for (i = 0; the_list[i]; i++)
-              printf ("%d: %s\n", i + history_base, the_list[i]->line);
-        @}
-      else if (strncmp (line, "delete", 6) == 0)
-        @{
-          int which;
-          if ((sscanf (line + 6, "%d", &which)) == 1)
-            @{
-              HIST_ENTRY *entry = remove_history (which);
-              if (!entry)
-                fprintf (stderr, "No such entry %d\n", which);
-              else
-                @{
-                  free (entry->line);
-                  free (entry);
-                @}
-            @}
-          else
-            @{
-              fprintf (stderr, "non-numeric arg given to `delete'\n");
-            @}
-        @}
-    @}
-@}
-@end smallexample
diff --git a/doc/hsuser.texinfo b/doc/hsuser.texinfo
deleted file mode 100644 (file)
index 418bfa8..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-@ignore
-This file documents the user interface to the GNU History library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@node Using History Interactively
-@chapter Using History Interactively
-
-@ifclear BashFeatures
-@defcodeindex bt
-@end ifclear
-
-@ifset BashFeatures
-This chapter describes how to use the @sc{gnu} History Library
-interactively, from a user's standpoint.
-It should be considered a user's guide.
-For information on using the @sc{gnu} History Library in other programs,
-see the @sc{gnu} Readline Library Manual.
-@end ifset
-@ifclear BashFeatures
-This chapter describes how to use the @sc{gnu} History Library interactively,
-from a user's standpoint.  It should be considered a user's guide.  For
-information on using the @sc{gnu} History Library in your own programs,
-@pxref{Programming with GNU History}.
-@end ifclear
-
-@ifset BashFeatures
-@menu
-* Bash History Facilities::    How Bash lets you manipulate your command
-                               history.
-* Bash History Builtins::      The Bash builtin commands that manipulate
-                               the command history.
-* History Interaction::                What it feels like using History as a user.
-@end menu
-@end ifset
-@ifclear BashFeatures
-@menu
-* History Interaction::                What it feels like using History as a user.
-@end menu
-@end ifclear
-
-@ifset BashFeatures
-@node Bash History Facilities
-@section Bash History Facilities
-@cindex command history
-@cindex history list
-
-When the @option{-o history} option to the @code{set} builtin
-is enabled (@pxref{The Set Builtin}),
-the shell provides access to the @dfn{command history},
-the list of commands previously typed.
-The value of the @env{HISTSIZE} shell variable is used as the
-number of commands to save in a history list.
-The text of the last @env{$HISTSIZE}
-commands (default 500) is saved.
-The shell stores each command in the history list prior to
-parameter and variable expansion
-but after history expansion is performed, subject to the
-values of the shell variables
-@env{HISTIGNORE} and @env{HISTCONTROL}.
-
-When the shell starts up, the history is initialized from the
-file named by the @env{HISTFILE} variable (default @file{~/.bash_history}).
-The file named by the value of @env{HISTFILE} is truncated, if
-necessary, to contain no more than the number of lines specified by
-the value of the @env{HISTFILESIZE} variable.
-When an interactive shell exits, the last
-@env{$HISTSIZE} lines are copied from the history list to the file
-named by @env{$HISTFILE}.
-If the @code{histappend} shell option is set (@pxref{Bash Builtins}),
-the lines are appended to the history file,
-otherwise the history file is overwritten.
-If @env{HISTFILE}
-is unset, or if the history file is unwritable, the history is
-not saved.  After saving the history, the history file is truncated
-to contain no more than @env{$HISTFILESIZE}
-lines.  If @env{HISTFILESIZE} is not set, no truncation is performed.
-
-The builtin command @code{fc} may be used to list or edit and re-execute
-a portion of the history list.
-The @code{history} builtin may be used to display or modify the history
-list and manipulate the history file.
-When using command-line editing, search commands
-are available in each editing mode that provide access to the
-history list (@pxref{Commands For History}).
-
-The shell allows control over which commands are saved on the history
-list.  The @env{HISTCONTROL} and @env{HISTIGNORE}
-variables may be set to cause the shell to save only a subset of the
-commands entered.
-The @code{cmdhist}
-shell option, if enabled, causes the shell to attempt to save each
-line of a multi-line command in the same history entry, adding
-semicolons where necessary to preserve syntactic correctness.
-The @code{lithist}
-shell option causes the shell to save the command with embedded newlines
-instead of semicolons.
-The @code{shopt} builtin is used to set these options.
-@xref{Bash Builtins}, for a description of @code{shopt}.
-
-@node Bash History Builtins
-@section Bash History Builtins
-@cindex history builtins
-
-Bash provides two builtin commands which manipulate the
-history list and history file.
-
-@table @code
-
-@item fc
-@btindex fc
-@example
-@code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]}
-@code{fc -s [@var{pat}=@var{rep}] [@var{command}]}
-@end example
-
-Fix Command.  In the first form, a range of commands from @var{first} to
-@var{last} is selected from the history list.  Both @var{first} and
-@var{last} may be specified as a string (to locate the most recent
-command beginning with that string) or as a number (an index into the
-history list, where a negative number is used as an offset from the
-current command number).  If @var{last} is not specified it is set to
-@var{first}.  If @var{first} is not specified it is set to the previous
-command for editing and @minus{}16 for listing.  If the @option{-l} flag is
-given, the commands are listed on standard output.  The @option{-n} flag
-suppresses the command numbers when listing.  The @option{-r} flag
-reverses the order of the listing.  Otherwise, the editor given by
-@var{ename} is invoked on a file containing those commands.  If
-@var{ename} is not given, the value of the following variable expansion
-is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}.  This says to use the
-value of the @env{FCEDIT} variable if set, or the value of the
-@env{EDITOR} variable if that is set, or @code{vi} if neither is set.
-When editing is complete, the edited commands are echoed and executed.
-
-In the second form, @var{command} is re-executed after each instance
-of @var{pat} in the selected command is replaced by @var{rep}.
-
-A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so
-that typing @samp{r cc} runs the last command beginning with @code{cc}
-and typing @samp{r} re-executes the last command (@pxref{Aliases}).
-
-@item history
-@btindex history
-@example
-history [@var{n}]
-history -c
-history -d @var{offset}
-history [-anrw] [@var{filename}]
-history -ps @var{arg}
-@end example
-
-With no options, display the history list with line numbers.
-Lines prefixed with a @samp{*} have been modified.
-An argument of @var{n} lists only the last @var{n} lines.
-Options, if supplied, have the following meanings:
-
-@table @code
-@item -c
-Clear the history list.  This may be combined
-with the other options to replace the history list completely.
-
-@item -d @var{offset}
-Delete the history entry at position @var{offset}.
-@var{offset} should be specified as it appears when the history is
-displayed.
-
-@item -a
-Append the new
-history lines (history lines entered since the beginning of the
-current Bash session) to the history file.
-
-@item -n
-Append the history lines not already read from the history file
-to the current history list.  These are lines appended to the history
-file since the beginning of the current Bash session.
-
-@item -r
-Read the current history file and append its contents to
-the history list.
-
-@item -w
-Write out the current history to the history file.
-
-@item -p
-Perform history substitution on the @var{arg}s and display the result
-on the standard output, without storing the results in the history list.
-
-@item -s
-The @var{arg}s are added to the end of
-the history list as a single entry.
-
-@end table
-
-When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is
-used, if @var{filename}
-is given, then it is used as the history file.  If not, then
-the value of the @env{HISTFILE} variable is used.
-
-@end table
-@end ifset
-
-@node History Interaction
-@section History Expansion
-@cindex history expansion
-
-The History library provides a history expansion feature that is similar
-to the history expansion provided by @code{csh}.  This section
-describes the syntax used to manipulate the history information.
-
-History expansions introduce words from the history list into
-the input stream, making it easy to repeat commands, insert the
-arguments to a previous command into the current input line, or
-fix errors in previous commands quickly.
-
-History expansion takes place in two parts.  The first is to determine
-which line from the history list should be used during substitution.
-The second is to select portions of that line for inclusion into the
-current one.  The line selected from the history is called the
-@dfn{event}, and the portions of that line that are acted upon are
-called @dfn{words}.  Various @dfn{modifiers} are available to manipulate
-the selected words.  The line is broken into words in the same fashion
-that Bash does, so that several words
-surrounded by quotes are considered one word.
-History expansions are introduced by the appearance of the
-history expansion character, which is @samp{!} by default.
-@ifset BashFeatures
-Only @samp{\} and @samp{'} may be used to escape the history expansion
-character.
-@end ifset
-
-@ifset BashFeatures
-Several shell options settable with the @code{shopt}
-builtin (@pxref{Bash Builtins}) may be used to tailor
-the behavior of history expansion.  If the
-@code{histverify} shell option is enabled, and Readline
-is being used, history substitutions are not immediately passed to
-the shell parser.
-Instead, the expanded line is reloaded into the Readline
-editing buffer for further modification.
-If Readline is being used, and the @code{histreedit}
-shell option is enabled, a failed history expansion will be
-reloaded into the Readline editing buffer for correction.
-The @option{-p} option to the @code{history} builtin command
-may be used to see what a history expansion will do before using it.
-The @option{-s} option to the @code{history} builtin may be used to
-add commands to the end of the history list without actually executing
-them, so that they are available for subsequent recall.
-This is most useful in conjunction with Readline.
-
-The shell allows control of the various characters used by the
-history expansion mechanism with the @code{histchars} variable.
-@end ifset
-
-@menu
-* Event Designators::  How to specify which history line to use.
-* Word Designators::   Specifying which words are of interest.
-* Modifiers::          Modifying the results of substitution.
-@end menu
-
-@node Event Designators
-@subsection Event Designators
-@cindex event designators
-
-An event designator is a reference to a command line entry in the
-history list.
-@cindex history events
-
-@table @asis
-
-@item @code{!}
-Start a history substitution, except when followed by a space, tab,
-the end of the line, @samp{=} or @samp{(}.
-
-@item @code{!@var{n}}
-Refer to command line @var{n}.
-
-@item @code{!-@var{n}}
-Refer to the command @var{n} lines back.
-
-@item @code{!!}
-Refer to the previous command.  This is a synonym for @samp{!-1}.
-
-@item @code{!@var{string}}
-Refer to the most recent command starting with @var{string}.
-
-@item @code{!?@var{string}[?]}
-Refer to the most recent command containing @var{string}.  The trailing
-@samp{?} may be omitted if the @var{string} is followed immediately by
-a newline.
-
-@item @code{^@var{string1}^@var{string2}^}
-Quick Substitution.  Repeat the last command, replacing @var{string1}
-with @var{string2}.  Equivalent to
-@code{!!:s/@var{string1}/@var{string2}/}.
-
-@item @code{!#}
-The entire command line typed so far.
-
-@end table
-
-@node Word Designators
-@subsection Word Designators
-
-Word designators are used to select desired words from the event.
-A @samp{:} separates the event specification from the word designator.  It
-may be omitted if the word designator begins with a @samp{^}, @samp{$},
-@samp{*}, @samp{-}, or @samp{%}.  Words are numbered from the beginning
-of the line, with the first word being denoted by 0 (zero).  Words are
-inserted into the current line separated by single spaces.
-
-@need 0.75
-For example,
-
-@table @code
-@item !!
-designates the preceding command.  When you type this, the preceding
-command is repeated in toto.
-
-@item !!:$
-designates the last argument of the preceding command.  This may be
-shortened to @code{!$}.
-
-@item !fi:2
-designates the second argument of the most recent command starting with
-the letters @code{fi}.
-@end table
-
-@need 0.75
-Here are the word designators:
-@table @code
-
-@item 0 (zero)
-The @code{0}th word.  For many applications, this is the command word.
-
-@item @var{n}
-The @var{n}th word.
-
-@item ^
-The first argument; that is, word 1.
-
-@item $
-The last argument.
-
-@item %
-The word matched by the most recent @samp{?@var{string}?} search.
-
-@item @var{x}-@var{y}
-A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}.
-
-@item *
-All of the words, except the @code{0}th.  This is a synonym for @samp{1-$}.
-It is not an error to use @samp{*} if there is just one word in the event;
-the empty string is returned in that case.
-
-@item @var{x}*
-Abbreviates @samp{@var{x}-$}
-
-@item @var{x}-
-Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word.
-
-@end table
-
-If a word designator is supplied without an event specification, the
-previous command is used as the event.
-
-@node Modifiers
-@subsection Modifiers
-
-After the optional word designator, you can add a sequence of one or more
-of the following modifiers, each preceded by a @samp{:}.
-
-@table @code
-
-@item h
-Remove a trailing pathname component, leaving only the head.
-
-@item t
-Remove all leading  pathname  components, leaving the tail.
-
-@item r
-Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving
-the basename.
-
-@item e
-Remove all but the trailing suffix.
-
-@item p
-Print the new command but do not execute it.
-
-@ifset BashFeatures
-@item q
-Quote the substituted words, escaping further substitutions.
-
-@item x
-Quote the substituted words as with @samp{q},
-but break into words at spaces, tabs, and newlines.
-@end ifset
-
-@item s/@var{old}/@var{new}/
-Substitute @var{new} for the first occurrence of @var{old} in the
-event line.  Any delimiter may be used in place of @samp{/}.
-The delimiter may be quoted in @var{old} and @var{new}
-with a single backslash.  If @samp{&} appears in @var{new},
-it is replaced by @var{old}.  A single backslash will quote
-the @samp{&}.  The final delimiter is optional if it is the last
-character on the input line.
-
-@item &
-Repeat the previous substitution.
-
-@item g
-Cause changes to be applied over the entire event line.  Used in
-conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/},
-or with @samp{&}.
-
-@end table
diff --git a/doc/manvers.texinfo b/doc/manvers.texinfo
deleted file mode 100644 (file)
index 1206cf0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-@ignore
-Copyright (C) 1988-2002 Free Software Foundation, Inc. 
-@end ignore
-
-@set EDITION 4.3
-@set VERSION 4.3
-@set UPDATED 2002 March 4
-@set UPDATE-MONTH March 2002
-
-@set LASTCHANGE Mon Mar  4 12:00:16 EST 2002
diff --git a/doc/readline.info-1 b/doc/readline.info-1
deleted file mode 100644 (file)
index 78bbd05..0000000
+++ /dev/null
@@ -1,1322 +0,0 @@
-This is Info file readline.info, produced by Makeinfo-1.55 from the
-input file 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.
-
-\1f
-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.
-
-\1f
-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.
-
-\1f
-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 Control key is depressed and the k key is struck.
-
-   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 struck.  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::., for more info).
-
-\1f
-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.
-
-\1f
-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.
-
-\1f
-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.
-
-\1f
-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.
-
-\1f
-File: readline.info,  Node: Readline Arguments,  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.
-
-\1f
-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 "init" 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 Syntax::       Syntax for the commands in the inputrc file.
-* Conditional Init Constructs::        Conditional key bindings in the inputrc file.
-
-\1f
-File: readline.info,  Node: Readline Init Syntax,  Next: Conditional Init Constructs,  Up: Readline Init File
-
-Readline Init 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:
-
-    `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'.
-
-    `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'.
-
-    `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.
-
-    `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
-          `vi-comment' command is executed.  The default value is `"#"'.
-
-    `meta-flag'
-          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'.
-
-    `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'.
-
-    `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'.
-
-    `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'.
-
-    `keymap'
-          Sets Readline's idea of the current keymap for key binding
-          commands.  Acceptable `keymap' names are `emacs',
-          `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move',
-          `vi-command', and `vi-insert'.  `vi' is equivalent to
-          `vi-command'; `emacs' is equivalent to `emacs-standard'.  The
-          default value is `emacs'.  The value of the `editing-mode'
-          variable also affects the default keymap.
-
-    `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'.
-
-    `expand-tilde'
-          If set to `on', tilde expansion is performed when Readline
-          attempts word completion.  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\\": "\\"
-
-\1f
-File: readline.info,  Node: Conditional Init Constructs,  Prev: Readline Init 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.
-
-\1f
-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.
-
-\1f
-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.
-
-\1f
-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 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 current 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 on the
-     previous line).  With an argument, behave exactly like
-     `yank-nth-arg'.
-
-\1f
-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.
-
-\1f
-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.
-
-`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.
-
-\1f
-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 ()'
-     Each time this is executed, the argument count is multiplied by
-     four.  The argument count is initially one, so executing this
-     function the first time makes the argument count four.  By
-     default, this is not bound to a key.
-
-\1f
-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 ()'
-     Insert all completions of the text before point that would have
-     been generated by `possible-completions'.  By default, this is not
-     bound to a key.
-
-\1f
-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.
-
-\1f
-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 your init 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, ...)'
-     Run the command that is bound to the corresoponding 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.
-
-`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.
-
-\1f
-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 following 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 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.
-
-\1f
-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 Convenience Functions::     Functions which Readline supplies to
-                                       aid in writing your own
-* Custom Completers::  Supplanting or supplementing Readline's
-                       completion functions.
-
-\1f
-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::.).
-
-\1f
-File: readline.info,  Node: Custom Functions,  Next: Readline Convenience Functions,  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.
-
-\1f
-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.
-
-\1f
-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.
-
- - 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_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.
-
-\1f
-File: readline.info,  Node: Readline Convenience Functions,  Next: Custom Completers,  Prev: Custom Functions,  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.
-
-\1f
-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.
-
-\1f
-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::.).
-
-\1f
-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::.).
-
-\1f
-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.
-
-\1f
-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.
-
-\1f
-File: readline.info,  Node: Redisplay,  Next: Modifying Text,  Prev: Allowing Undoing,  Up: Readline Convenience Functions
-
-Redisplay
----------
-
- - Function: int 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.
-
diff --git a/doc/readline.info-2 b/doc/readline.info-2
deleted file mode 100644 (file)
index 35681aa..0000000
+++ /dev/null
@@ -1,978 +0,0 @@
-This is Info file readline.info, produced by Makeinfo-1.55 from the
-input file 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.
-
-\1f
-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.
-
-\1f
-File: readline.info,  Node: Utility Functions,  Prev: Modifying Text,  Up: Readline Convenience Functions
-
-Utility Functions
------------------
-
- - 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.
-
-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);
-     }
-
-\1f
-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.
-
-\1f
-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_entry_function ()', is used.
-
-\1f
-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.
-
-\1f
-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: 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_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_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_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_completer_word_break_chars'.  This is *always* non-zero on
-     entry, and can only be changed within a completion entry generator
-     function.
-
- - 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: 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.
-
-\1f
-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 show the
-        region of TEXT that contains the word to complete.  We can use the
-        entire line 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);
-     }
-
-\1f
-File: readline.info,  Node: Concept Index,  Next: Function and Variable Index,  Prev: Programming with GNU Readline,  Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* interaction, readline:                Readline Interaction.
-* Kill ring:                            Readline Killing Commands.
-* Killing text:                         Readline Killing Commands.
-* readline, function:                   Basic Behavior.
-* Yanking text:                         Readline Killing Commands.
-
-\1f
-File: readline.info,  Node: Function and Variable Index,  Prev: Concept Index,  Up: Top
-
-Function and Variable Index
-***************************
-
-* Menu:
-
-* $else:                                Conditional Init Constructs.
-* $endif:                               Conditional Init Constructs.
-* $if:                                  Conditional Init Constructs.
-* 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 Syntax.
-* call-last-kbd-macro (C-x e):          Keyboard Macros.
-* capitalize-word (M-c):                Commands For Text.
-* clear-screen (C-l):                   Commands For Moving.
-* comment-begin:                        Readline Init Syntax.
-* complete (TAB):                       Commands For Completion.
-* completion-query-items:               Readline Init Syntax.
-* completion_matches:                   Completion Functions.
-* convert-meta:                         Readline Init Syntax.
-* 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.
-* do-uppercase-version (M-a, M-b, ...): Miscellaneous Commands.
-* downcase-word (M-l):                  Commands For Text.
-* dump-functions ():                    Miscellaneous Commands.
-* editing-mode:                         Readline Init Syntax.
-* end-kbd-macro (C-x )):                Keyboard Macros.
-* end-of-history (M->):                 Commands For History.
-* end-of-line (C-e):                    Commands For Moving.
-* expand-tilde:                         Readline Init 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 Syntax.
-* insert-completions ():                Commands For Completion.
-* keymap:                               Readline Init Syntax.
-* kill-line (C-k):                      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 Syntax.
-* meta-flag:                            Readline Init 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 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_word_break_characters:       Completion Variables.
-* rl_begin_undo_group:                  Allowing Undoing.
-* rl_bind_key:                          Binding Keys.
-* rl_bind_key_in_map:                   Binding Keys.
-* rl_clear_message:                     Redisplay.
-* rl_complete:                          How Completing Works.
-* rl_complete:                          Completion Functions.
-* rl_completer_quote_characters:        Completion Variables.
-* rl_completer_word_break_characters:   Completion Variables.
-* rl_complete_internal:                 Completion Functions.
-* 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_discard_keymap:                    Keymaps.
-* rl_done:                              Function Writing.
-* rl_do_undo:                           Allowing Undoing.
-* rl_end:                               Function Writing.
-* rl_end_undo_group:                    Allowing Undoing.
-* rl_filename_completion_desired:       Completion Variables.
-* rl_filename_quoting_desired:          Completion Variables.
-* rl_forced_update_display:             Redisplay.
-* rl_function_of_keyseq:                Associating Function Names and Bindings.
-* rl_generic_bind:                      Binding Keys.
-* rl_get_keymap:                        Keymaps.
-* rl_get_keymap_by_name:                Keymaps.
-* rl_ignore_completion_duplicates:      Completion Variables.
-* rl_ignore_some_completions_function:  Completion Variables.
-* rl_insert_completions:                Completion Functions.
-* rl_insert_text:                       Modifying Text.
-* rl_instream:                          Function Writing.
-* rl_invoking_keyseqs:                  Associating Function Names and Bindings.
-* rl_invoking_keyseqs_in_map:           Associating Function Names and Bindings.
-* rl_kill_text:                         Modifying Text.
-* rl_line_buffer:                       Function Writing.
-* rl_make_bare_keymap:                  Keymaps.
-* rl_make_keymap:                       Keymaps.
-* rl_mark:                              Function Writing.
-* rl_message:                           Redisplay.
-* rl_modifying:                         Allowing Undoing.
-* rl_named_function:                    Associating Function Names and Bindings.
-* rl_on_new_line:                       Redisplay.
-* rl_outstream:                         Function Writing.
-* rl_parse_and_bind:                    Binding Keys.
-* rl_pending_input:                     Function Writing.
-* rl_point:                             Function Writing.
-* rl_possible_completions:              Completion Functions.
-* rl_prompt:                            Function Writing.
-* rl_readline_name:                     Function Writing.
-* rl_redisplay:                         Redisplay.
-* rl_reset_line_state:                  Redisplay.
-* rl_reset_terminal:                    Utility Functions.
-* rl_set_keymap:                        Keymaps.
-* rl_special_prefixes:                  Completion Variables.
-* rl_startup_hook:                      Function Writing.
-* rl_terminal_name:                     Function Writing.
-* rl_unbind_key:                        Binding Keys.
-* rl_unbind_key_in_map:                 Binding Keys.
-* self-insert (a, b, A, 1, !, ...):     Commands For Text.
-* show-all-if-ambiguous:                Readline Init 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.
-* 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.
-
-
diff --git a/doc/readline_toc.html b/doc/readline_toc.html
deleted file mode 100644 (file)
index bf6d5d1..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.51
-     from /usr/homes/chet/src/bash/readline-2.2/doc/rlman.texinfo on 2 April 1998 -->
-
-<TITLE>GNU Readline Library - Table of Contents</TITLE>
-</HEAD>
-<BODY>
-<H1>GNU Readline Library</H1>
-<H2>Edition 2.2, for <CODE>Readline Library</CODE> Version 2.1.</H2>
-<H2>September 1997</H2>
-<ADDRESS>Brian Fox, Free Software Foundation</ADDRESS>
-<ADDRESS>Chet Ramey, Case Western Reserve University</ADDRESS>
-<P>
-<P><HR><P>
-<UL>
-<LI><A NAME="TOC1" HREF="readline.html#SEC1">Command Line Editing</A>
-<UL>
-<LI><A NAME="TOC2" HREF="readline.html#SEC2">Introduction to Line Editing</A>
-<LI><A NAME="TOC3" HREF="readline.html#SEC3">Readline Interaction</A>
-<UL>
-<LI><A NAME="TOC4" HREF="readline.html#SEC4">Readline Init File Syntax</A>
-<LI><A NAME="TOC5" HREF="readline.html#SEC5">Conditional Init Constructs</A>
-<LI><A NAME="TOC6" HREF="readline.html#SEC6">Sample Init File</A>
-</UL>
-<LI><A NAME="TOC7" HREF="readline.html#SEC7">Bindable Readline Commands</A>
-<UL>
-<LI><A NAME="TOC8" HREF="readline.html#SEC8">Commands For Moving</A>
-<LI><A NAME="TOC9" HREF="readline.html#SEC9">Commands For Manipulating The History</A>
-<LI><A NAME="TOC10" HREF="readline.html#SEC10">Commands For Changing Text</A>
-<LI><A NAME="TOC11" HREF="readline.html#SEC11">Killing And Yanking</A>
-<LI><A NAME="TOC12" HREF="readline.html#SEC12">Specifying Numeric Arguments</A>
-<LI><A NAME="TOC13" HREF="readline.html#SEC13">Letting Readline Type For You</A>
-<LI><A NAME="TOC14" HREF="readline.html#SEC14">Keyboard Macros</A>
-<LI><A NAME="TOC15" HREF="readline.html#SEC15">Some Miscellaneous Commands</A>
-</UL>
-<LI><A NAME="TOC16" HREF="readline.html#SEC16">Readline vi Mode</A>
-</UL>
-<LI><A NAME="TOC17" HREF="readline.html#SEC17">Programming with GNU Readline</A>
-<UL>
-<LI><A NAME="TOC18" HREF="readline.html#SEC18">Basic Behavior</A>
-<LI><A NAME="TOC19" HREF="readline.html#SEC19">Custom Functions</A>
-<UL>
-<LI><A NAME="TOC20" HREF="readline.html#SEC20">The Function Type</A>
-<LI><A NAME="TOC21" HREF="readline.html#SEC21">Writing a New Function</A>
-</UL>
-<LI><A NAME="TOC22" HREF="readline.html#SEC22">Readline Variables</A>
-<LI><A NAME="TOC23" HREF="readline.html#SEC23">Readline Convenience Functions</A>
-<UL>
-<LI><A NAME="TOC24" HREF="readline.html#SEC24">Naming a Function</A>
-<LI><A NAME="TOC25" HREF="readline.html#SEC25">Selecting a Keymap</A>
-<LI><A NAME="TOC26" HREF="readline.html#SEC26">Binding Keys</A>
-<LI><A NAME="TOC27" HREF="readline.html#SEC27">Associating Function Names and Bindings</A>
-<LI><A NAME="TOC28" HREF="readline.html#SEC28">Allowing Undoing</A>
-<LI><A NAME="TOC29" HREF="readline.html#SEC29">Redisplay</A>
-<LI><A NAME="TOC30" HREF="readline.html#SEC30">Modifying Text</A>
-<LI><A NAME="TOC31" HREF="readline.html#SEC31">Utility Functions</A>
-<LI><A NAME="TOC32" HREF="readline.html#SEC32">Alternate Interface</A>
-<LI><A NAME="TOC33" HREF="readline.html#SEC33">An Example</A>
-</UL>
-<LI><A NAME="TOC34" HREF="readline.html#SEC34">Custom Completers</A>
-<UL>
-<LI><A NAME="TOC35" HREF="readline.html#SEC35">How Completing Works</A>
-<LI><A NAME="TOC36" HREF="readline.html#SEC36">Completion Functions</A>
-<LI><A NAME="TOC37" HREF="readline.html#SEC37">Completion Variables</A>
-<LI><A NAME="TOC38" HREF="readline.html#SEC38">A Short Completion Example</A>
-</UL>
-</UL>
-<LI><A NAME="TOC39" HREF="readline.html#SEC39">Concept Index</A>
-<LI><A NAME="TOC40" HREF="readline.html#SEC40">Function and Variable Index</A>
-</UL>
-<P><HR><P>
-This document was generated on 2 April 1998 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
-translator version 1.51.</P>
-</BODY>
-</HTML>
diff --git a/doc/rlman.texinfo b/doc/rlman.texinfo
deleted file mode 100644 (file)
index 1ffebad..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-\input texinfo    @c -*-texinfo-*-
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename readline.info
-@settitle GNU Readline Library
-@comment %**end of header (This is for running Texinfo on a region.)
-@synindex vr fn
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* Readline: (readline).       The GNU readline library API
-@end direntry
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage  
-@title GNU Readline Library
-@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU Readline Library
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs 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.
-@end menu
-@end ifinfo
-
-@include rluser.texinfo
-@include rltech.texinfo
-
-@node Concept Index
-@unnumbered Concept Index
-@printindex cp
-
-@node Function and Variable Index
-@unnumbered Function and Variable Index
-@printindex fn
-
-@contents
-@bye
diff --git a/doc/rltech.texinfo b/doc/rltech.texinfo
deleted file mode 100644 (file)
index 037e824..0000000
+++ /dev/null
@@ -1,2165 +0,0 @@
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rltech.info
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@ifinfo
-This document describes the GNU Readline Library, a utility for aiding
-in the consitency of user interface across discrete programs that need
-to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Foundation.
-@end ifinfo
-
-@node Programming with GNU Readline
-@chapter Programming with GNU Readline
-
-This chapter describes the interface between the @sc{gnu} Readline Library and
-other programs.  If you are a programmer, and you wish to include the
-features found in @sc{gnu} Readline
-such as completion, line editing, and interactive history manipulation
-in your own programs, this section is for you.
-
-@menu
-* Basic Behavior::     Using the default behavior of Readline.
-* Custom Functions::   Adding your own functions to Readline.
-* Readline Variables::                 Variables accessible to custom
-                                       functions.
-* Readline Convenience Functions::     Functions which Readline supplies to
-                                       aid in writing your own custom
-                                       functions.
-* Readline Signal Handling::   How Readline behaves when it receives signals.
-* Custom Completers::  Supplanting or supplementing Readline's
-                       completion functions.
-@end menu
-
-@node Basic Behavior
-@section Basic Behavior
-
-Many programs provide a command line interface, such as @code{mail},
-@code{ftp}, and @code{sh}.  For such programs, the default behaviour of
-Readline is sufficient.  This section describes how to use Readline in
-the simplest way possible, perhaps to replace calls in your code to
-@code{gets()} or @code{fgets()}.
-
-@findex readline
-@cindex readline, function
-
-The function @code{readline()} prints a prompt @var{prompt}
-and then reads and returns a single line of text from the user.
-If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed.
-The line @code{readline} returns is allocated with @code{malloc()};
-the caller should @code{free()} the line when it has finished with it.
-The declaration for @code{readline} in ANSI C is
-
-@example
-@code{char *readline (const char *@var{prompt});}
-@end example
-
-@noindent
-So, one might say
-@example
-@code{char *line = readline ("Enter a line: ");}
-@end example
-@noindent
-in order to read a line of text from the user.
-The line returned has the final newline removed, so only the
-text remains.
-
-If @code{readline} encounters an @code{EOF} while reading the line, and the
-line is empty at that point, then @code{(char *)NULL} is returned.
-Otherwise, the line is ended just as if a newline had been typed.
-
-If you want the user to be able to get at the line later, (with
-@key{C-p} for example), you must call @code{add_history()} to save the
-line away in a @dfn{history} list of such lines.
-
-@example
-@code{add_history (line)};
-@end example
-
-@noindent
-For full details on the GNU History Library, see the associated manual.
-
-It is preferable to avoid saving empty lines on the history list, since
-users rarely have a burning need to reuse a blank line.  Here is
-a function which usefully replaces the standard @code{gets()} library
-function, and has the advantage of no static buffer to overflow:
-
-@example
-/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it.
-   Returns NULL on EOF. */
-char *
-rl_gets ()
-@{
-  /* If the buffer has already been allocated,
-     return the memory to the free pool. */
-  if (line_read)
-    @{
-      free (line_read);
-      line_read = (char *)NULL;
-    @}
-
-  /* Get a line from the user. */
-  line_read = readline ("");
-
-  /* If the line has any text in it,
-     save it on the history. */
-  if (line_read && *line_read)
-    add_history (line_read);
-
-  return (line_read);
-@}
-@end example
-
-This function gives the user the default behaviour of @key{TAB}
-completion: completion on file names.  If you do not want Readline to
-complete on filenames, you can change the binding of the @key{TAB} key
-with @code{rl_bind_key()}.
-
-@example
-@code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});}
-@end example
-
-@code{rl_bind_key()} takes two arguments: @var{key} is the character that
-you want to bind, and @var{function} is the address of the function to
-call when @var{key} is pressed.  Binding @key{TAB} to @code{rl_insert()}
-makes @key{TAB} insert itself.
-@code{rl_bind_key()} returns non-zero if @var{key} is not a valid
-ASCII character code (between 0 and 255).
-
-Thus, to disable the default @key{TAB} behavior, the following suffices:
-@example
-@code{rl_bind_key ('\t', rl_insert);}
-@end example
-
-This code should be executed once at the start of your program; you
-might write a function called @code{initialize_readline()} which
-performs this and other desired initializations, such as installing
-custom completers (@pxref{Custom Completers}).
-
-@node Custom Functions
-@section Custom Functions
-
-Readline provides many functions for manipulating the text of
-the line, but it isn't possible to anticipate the needs of all
-programs.  This section describes the various functions and variables
-defined within the Readline library which allow a user program to add
-customized functionality to Readline.
-
-Before declaring any functions that customize Readline's behavior, or
-using any functionality Readline provides in other code, an
-application writer should include the file @code{<readline/readline.h>}
-in any file that uses Readline's features.  Since some of the definitions
-in @code{readline.h} use the @code{stdio} library, the file
-@code{<stdio.h>} should be included before @code{readline.h}.
-
-@code{readline.h} defines a C preprocessor variable that should
-be treated as an integer, @code{RL_READLINE_VERSION}, which may
-be used to conditionally compile application code depending on
-the installed Readline version.  The value is a hexadecimal
-encoding of the major and minor version numbers of the library,
-of the form 0x@var{MMmm}.  @var{MM} is the two-digit major
-version number; @var{mm} is the two-digit minor version number. 
-For Readline 4.2, for example, the value of
-@code{RL_READLINE_VERSION} would be @code{0x0402}. 
-
-@menu
-* Readline Typedefs::  C declarations to make code readable.
-* Function Writing::   Variables and calling conventions.
-@end menu
-
-@node Readline Typedefs
-@subsection Readline Typedefs
-
-For readabilty, we declare a number of new object types, all pointers
-to functions.
-
-The reason for declaring these new types is to make it easier to write
-code describing pointers to C functions with appropriately prototyped
-arguments and return values.
-
-For instance, say we want to declare a variable @var{func} as a pointer
-to a function which takes two @code{int} arguments and returns an
-@code{int} (this is the type of all of the Readline bindable functions).
-Instead of the classic C declaration
-
-@code{int (*func)();}
-
-@noindent
-or the ANSI-C style declaration
-
-@code{int (*func)(int, int);}
-
-@noindent
-we may write
-
-@code{rl_command_func_t *func;}
-
-The full list of function pointer types available is
-
-@table @code
-@item typedef int rl_command_func_t (int, int);
-
-@item typedef char *rl_compentry_func_t (const char *, int);
-
-@item typedef char **rl_completion_func_t (const char *, int, int);
-
-@item typedef char *rl_quote_func_t (char *, int, char *);
-
-@item typedef char *rl_dequote_func_t (char *, int);
-
-@item typedef int rl_compignore_func_t (char **);
-
-@item typedef void rl_compdisp_func_t (char **, int, int);
-
-@item typedef int rl_hook_func_t (void);
-
-@item typedef int rl_getc_func_t (FILE *);
-
-@item typedef int rl_linebuf_func_t (char *, int);
-
-@item typedef int rl_intfunc_t (int);
-@item #define rl_ivoidfunc_t rl_hook_func_t
-@item typedef int rl_icpfunc_t (char *);
-@item typedef int rl_icppfunc_t (char **);
-
-@item typedef void rl_voidfunc_t (void);
-@item typedef void rl_vintfunc_t (int);
-@item typedef void rl_vcpfunc_t (char *);
-@item typedef void rl_vcppfunc_t (char **);
-
-@end table
-
-@node Function Writing
-@subsection Writing a New Function
-
-In order to write new functions for Readline, you need to know the
-calling conventions for keyboard-invoked functions, and the names of the
-variables that describe the current state of the line read so far.
-
-The calling sequence for a command @code{foo} looks like
-
-@example
-@code{int foo (int count, int key)}
-@end example
-
-@noindent
-where @var{count} is the numeric argument (or 1 if defaulted) and
-@var{key} is the key that invoked this function.
-
-It is completely up to the function as to what should be done with the
-numeric argument.  Some functions use it as a repeat count, some
-as a flag, and others to choose alternate behavior (refreshing the current
-line as opposed to refreshing the screen, for example).  Some choose to
-ignore it.  In general, if a
-function uses the numeric argument as a repeat count, it should be able
-to do something useful with both negative and positive arguments.
-At the very least, it should be aware that it can be passed a
-negative argument.
-
-A command function should return 0 if its action completes successfully,
-and a non-zero value if some error occurs.
-
-@node Readline Variables
-@section Readline Variables
-
-These variables are available to function writers.
-
-@deftypevar {char *} rl_line_buffer
-This is the line gathered so far.  You are welcome to modify the
-contents of the line, but see @ref{Allowing Undoing}.  The
-function @code{rl_extend_line_buffer} is available to increase
-the memory allocated to @code{rl_line_buffer}.
-@end deftypevar
-
-@deftypevar int rl_point
-The offset of the current cursor position in @code{rl_line_buffer}
-(the @emph{point}).
-@end deftypevar
-
-@deftypevar int rl_end
-The number of characters present in @code{rl_line_buffer}.  When
-@code{rl_point} is at the end of the line, @code{rl_point} and
-@code{rl_end} are equal.
-@end deftypevar
-
-@deftypevar int rl_mark
-The @var{mark} (saved position) in the current line.  If set, the mark
-and point define a @emph{region}.
-@end deftypevar
-
-@deftypevar int rl_done
-Setting this to a non-zero value causes Readline to return the current
-line immediately.
-@end deftypevar
-
-@deftypevar int rl_num_chars_to_read
-Setting this to a positive value before calling @code{readline()} causes
-Readline to return after accepting that many characters, rather
-than reading up to a character bound to @code{accept-line}.
-@end deftypevar
-
-@deftypevar int rl_pending_input
-Setting this to a value makes it the next keystroke read.  This is a
-way to stuff a single character into the input stream.
-@end deftypevar
-
-@deftypevar int rl_dispatching
-Set to a non-zero value if a function is being called from a key binding;
-zero otherwise.  Application functions can test this to discover whether
-they were called directly or by Readline's dispatching mechanism.
-@end deftypevar
-
-@deftypevar int rl_erase_empty_line
-Setting this to a non-zero value causes Readline to completely erase
-the current line, including any prompt, any time a newline is typed as
-the only character on an otherwise-empty line.  The cursor is moved to
-the beginning of the newly-blank line.
-@end deftypevar
-
-@deftypevar {char *} rl_prompt
-The prompt Readline uses.  This is set from the argument to
-@code{readline()}, and should not be assigned to directly.
-The @code{rl_set_prompt()} function (@pxref{Redisplay}) may
-be used to modify the prompt string after calling @code{readline()}.
-@end deftypevar
-
-@deftypevar int rl_already_prompted
-If an application wishes to display the prompt itself, rather than have
-Readline do it the first time @code{readline()} is called, it should set
-this variable to a non-zero value after displaying the prompt.
-The prompt must also be passed as the argument to @code{readline()} so
-the redisplay functions can update the display properly.
-The calling application is responsible for managing the value; Readline
-never sets it.
-@end deftypevar
-
-@deftypevar {const char *} rl_library_version
-The version number of this revision of the library.
-@end deftypevar
-
-@deftypevar int rl_readline_version
-An integer encoding the current version of the library.  The encoding is
-of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version
-number, and @var{mm} is the two-digit minor version number.
-For example, for Readline-4.2, @code{rl_readline_version} would have the
-value 0x0402.
-@end deftypevar
-
-@deftypevar {int} rl_gnu_readline_p
-Always set to 1, denoting that this is @sc{gnu} readline rather than some
-emulation.
-@end deftypevar
-
-@deftypevar {const char *} rl_terminal_name
-The terminal type, used for initialization.  If not set by the application,
-Readline sets this to the value of the @env{TERM} environment variable
-the first time it is called.
-@end deftypevar
-
-@deftypevar {const char *} rl_readline_name
-This variable is set to a unique name by each application using Readline.
-The value allows conditional parsing of the inputrc file
-(@pxref{Conditional Init Constructs}).
-@end deftypevar
-
-@deftypevar {FILE *} rl_instream
-The stdio stream from which Readline reads input.
-If @code{NULL}, Readline defaults to @var{stdin}.
-@end deftypevar
-
-@deftypevar {FILE *} rl_outstream
-The stdio stream to which Readline performs output.
-If @code{NULL}, Readline defaults to @var{stdout}.
-@end deftypevar
-
-@deftypevar {rl_command_func_t *} rl_last_func
-The address of the last command function Readline executed.  May be used to
-test whether or not a function is being executed twice in succession, for
-example.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_startup_hook
-If non-zero, this is the address of a function to call just
-before @code{readline} prints the first prompt.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_pre_input_hook
-If non-zero, this is the address of a function to call after
-the first prompt has been printed and just before @code{readline}
-starts reading input characters.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_event_hook
-If non-zero, this is the address of a function to call periodically
-when Readline is waiting for terminal input.
-By default, this will be called at most ten times a second if there
-is no keyboard input.
-@end deftypevar
-
-@deftypevar {rl_getc_func_t *} rl_getc_function
-If non-zero, Readline will call indirectly through this pointer
-to get a character from the input stream.  By default, it is set to
-@code{rl_getc}, the default Readline character input function
-(@pxref{Character Input}).
-@end deftypevar
-
-@deftypevar {rl_voidfunc_t *} rl_redisplay_function
-If non-zero, Readline will call indirectly through this pointer
-to update the display with the current contents of the editing buffer.
-By default, it is set to @code{rl_redisplay}, the default Readline
-redisplay function (@pxref{Redisplay}).
-@end deftypevar
-
-@deftypevar {rl_vintfunc_t *} rl_prep_term_function
-If non-zero, Readline will call indirectly through this pointer
-to initialize the terminal.  The function takes a single argument, an
-@code{int} flag that says whether or not to use eight-bit characters.
-By default, this is set to @code{rl_prep_terminal}
-(@pxref{Terminal Management}).
-@end deftypevar
-
-@deftypevar {rl_voidfunc_t *} rl_deprep_term_function
-If non-zero, Readline will call indirectly through this pointer
-to reset the terminal.  This function should undo the effects of
-@code{rl_prep_term_function}.
-By default, this is set to @code{rl_deprep_terminal}
-(@pxref{Terminal Management}).
-@end deftypevar
-
-@deftypevar {Keymap} rl_executing_keymap
-This variable is set to the keymap (@pxref{Keymaps}) in which the
-currently executing readline function was found.
-@end deftypevar 
-
-@deftypevar {Keymap} rl_binding_keymap
-This variable is set to the keymap (@pxref{Keymaps}) in which the
-last key binding occurred.
-@end deftypevar 
-
-@deftypevar {char *} rl_executing_macro
-This variable is set to the text of any currently-executing macro.
-@end deftypevar
-
-@deftypevar {int} rl_readline_state
-A variable with bit values that encapsulate the current Readline state.
-A bit is set with the @code{RL_SETSTATE} macro, and unset with the
-@code{RL_UNSETSTATE} macro.  Use the @code{RL_ISSTATE} macro to test
-whether a particular state bit is set.  Current state bits include:
-
-@table @code
-@item RL_STATE_NONE
-Readline has not yet been called, nor has it begun to intialize.
-@item RL_STATE_INITIALIZING
-Readline is initializing its internal data structures.
-@item RL_STATE_INITIALIZED
-Readline has completed its initialization.
-@item RL_STATE_TERMPREPPED
-Readline has modified the terminal modes to do its own input and redisplay.
-@item RL_STATE_READCMD
-Readline is reading a command from the keyboard.
-@item RL_STATE_METANEXT
-Readline is reading more input after reading the meta-prefix character.
-@item RL_STATE_DISPATCHING
-Readline is dispatching to a command.
-@item RL_STATE_MOREINPUT
-Readline is reading more input while executing an editing command.
-@item RL_STATE_ISEARCH
-Readline is performing an incremental history search.
-@item RL_STATE_NSEARCH
-Readline is performing a non-incremental history search.
-@item RL_STATE_SEARCH
-Readline is searching backward or forward through the history for a string.
-@item RL_STATE_NUMERICARG
-Readline is reading a numeric argument.
-@item RL_STATE_MACROINPUT
-Readline is currently getting its input from a previously-defined keyboard
-macro.
-@item RL_STATE_MACRODEF
-Readline is currently reading characters defining a keyboard macro.
-@item RL_STATE_OVERWRITE
-Readline is in overwrite mode.
-@item RL_STATE_COMPLETING
-Readline is performing word completion.
-@item RL_STATE_SIGHANDLER
-Readline is currently executing the readline signal handler.
-@item RL_STATE_UNDOING
-Readline is performing an undo.
-@item RL_STATE_DONE
-Readline has read a key sequence bound to @code{accept-line}
-and is about to return the line to the caller.
-@end table
-
-@end deftypevar
-
-@deftypevar {int} rl_explicit_arg
-Set to a non-zero value if an explicit numeric argument was specified by
-the user.  Only valid in a bindable command function.
-@end deftypevar
-
-@deftypevar {int} rl_numeric_arg
-Set to the value of any numeric argument explicitly specified by the user
-before executing the current Readline function.  Only valid in a bindable
-command function.
-@end deftypevar
-
-@deftypevar {int} rl_editing_mode
-Set to a value denoting Readline's current editing mode.  A value of
-@var{1} means Readline is currently in emacs mode; @var{0}
-means that vi mode is active.
-@end deftypevar
-
-
-@node Readline Convenience Functions
-@section Readline Convenience Functions
-
-@menu
-* Function Naming::    How to give a function you write a name.
-* Keymaps::            Making keymaps.
-* Binding Keys::       Changing Keymaps.
-* Associating Function Names and Bindings::    Translate function names to
-                                               key sequences.
-* Allowing Undoing::   How to make your functions undoable.
-* Redisplay::          Functions to control line display.
-* Modifying Text::     Functions to modify @code{rl_line_buffer}.
-* Character Input::    Functions to read keyboard input.
-* Terminal Management::        Functions to manage terminal settings.
-* Utility Functions::  Generally useful functions and hooks.
-* Miscellaneous Functions::    Functions that don't fall into any category.
-* Alternate Interface::        Using Readline in a `callback' fashion.
-* A Readline Example::         An example Readline function.
-@end menu
-
-@node Function Naming
-@subsection Naming a Function
-
-The user can dynamically change the bindings of keys while using
-Readline.  This is done by representing the function with a descriptive
-name.  The user is able to type the descriptive name when referring to
-the function.  Thus, in an init file, one might find
-
-@example
-Meta-Rubout:   backward-kill-word
-@end example
-
-This binds the keystroke @key{Meta-Rubout} to the function
-@emph{descriptively} named @code{backward-kill-word}.  You, as the
-programmer, should bind the functions you write to descriptive names as
-well.  Readline provides a function for doing that:
-
-@deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key)
-Add @var{name} to the list of named functions.  Make @var{function} be
-the function that gets called.  If @var{key} is not -1, then bind it to
-@var{function} using @code{rl_bind_key()}.
-@end deftypefun
-
-Using this function alone is sufficient for most applications.  It is
-the recommended way to add a few functions to the default functions that
-Readline has built in.  If you need to do something other
-than adding a function to Readline, you may need to use the
-underlying functions described below.
-
-@node Keymaps
-@subsection Selecting a Keymap
-
-Key bindings take place on a @dfn{keymap}.  The keymap is the
-association between the keys that the user types and the functions that
-get run.  You can make your own keymaps, copy existing keymaps, and tell
-Readline which keymap to use.
-
-@deftypefun Keymap rl_make_bare_keymap (void)
-Returns a new, empty keymap.  The space for the keymap is allocated with
-@code{malloc()}; the caller should free it by calling
-@code{rl_discard_keymap()} when done.
-@end deftypefun
-
-@deftypefun Keymap rl_copy_keymap (Keymap map)
-Return a new keymap which is a copy of @var{map}.
-@end deftypefun
-
-@deftypefun Keymap rl_make_keymap (void)
-Return a new keymap with the printing characters bound to rl_insert,
-the lowercase Meta characters bound to run their equivalents, and
-the Meta digits bound to produce numeric arguments.
-@end deftypefun
-
-@deftypefun void rl_discard_keymap (Keymap keymap)
-Free the storage associated with @var{keymap}.
-@end deftypefun
-
-Readline has several internal keymaps.  These functions allow you to
-change which keymap is active.
-
-@deftypefun Keymap rl_get_keymap (void)
-Returns the currently active keymap.
-@end deftypefun
-
-@deftypefun void rl_set_keymap (Keymap keymap)
-Makes @var{keymap} the currently active keymap.
-@end deftypefun
-
-@deftypefun Keymap rl_get_keymap_by_name (const char *name)
-Return the keymap matching @var{name}.  @var{name} is one which would
-be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
-@end deftypefun
-
-@deftypefun {char *} rl_get_keymap_name (Keymap keymap)
-Return the name matching @var{keymap}.  @var{name} is one which would
-be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
-@end deftypefun
-
-@node Binding Keys
-@subsection Binding Keys
-
-Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: @code{emacs_standard_keymap},
-@code{emacs_meta_keymap}, @code{emacs_ctlx_keymap},
-@code{vi_movement_keymap}, and @code{vi_insertion_keymap}.
-@code{emacs_standard_keymap} is the default, and the examples in
-this manual assume that.
-
-Since @code{readline()} installs a set of default key bindings the first
-time it is called, there is always the danger that a custom binding
-installed before the first call to @code{readline()} will be overridden.
-An alternate mechanism is to install custom key bindings in an
-initialization function assigned to the @code{rl_startup_hook} variable
-(@pxref{Readline Variables}).
-
-These functions manage key bindings.
-
-@deftypefun int rl_bind_key (int key, rl_command_func_t *function)
-Binds @var{key} to @var{function} in the currently active keymap.
-Returns non-zero in the case of an invalid @var{key}.
-@end deftypefun
-
-@deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map)
-Bind @var{key} to @var{function} in @var{map}.  Returns non-zero in the case
-of an invalid @var{key}.
-@end deftypefun
-
-@deftypefun int rl_unbind_key (int key)
-Bind @var{key} to the null function in the currently active keymap.
-Returns non-zero in case of error.
-@end deftypefun
-
-@deftypefun int rl_unbind_key_in_map (int key, Keymap map)
-Bind @var{key} to the null function in @var{map}.
-Returns non-zero in case of error.
-@end deftypefun
-
-@deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map)
-Unbind all keys that execute @var{function} in @var{map}.
-@end deftypefun
-
-@deftypefun int rl_unbind_command_in_map (const char *command, Keymap map)
-Unbind all keys that are bound to @var{command} in @var{map}.
-@end deftypefun
-
-@deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map)
-Bind the key sequence represented by the string @var{keyseq} to the function
-@var{function}.  This makes new keymaps as
-necessary.  The initial keymap in which to do bindings is @var{map}.
-@end deftypefun
-
-@deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
-Bind the key sequence represented by the string @var{keyseq} to the arbitrary
-pointer @var{data}.  @var{type} says what kind of data is pointed to by
-@var{data}; this can be a function (@code{ISFUNC}), a macro
-(@code{ISMACR}), or a keymap (@code{ISKMAP}).  This makes new keymaps as
-necessary.  The initial keymap in which to do bindings is @var{map}.
-@end deftypefun
-
-@deftypefun int rl_parse_and_bind (char *line)
-Parse @var{line} as if it had been read from the @code{inputrc} file and
-perform any key bindings and variable assignments found
-(@pxref{Readline Init File}).
-@end deftypefun
-
-@deftypefun int rl_read_init_file (const char *filename)
-Read keybindings and variable assignments from @var{filename}
-(@pxref{Readline Init File}).
-@end deftypefun
-
-@node Associating Function Names and Bindings
-@subsection Associating Function Names and Bindings
-
-These functions allow you to find out what keys invoke named functions
-and the functions invoked by a particular key sequence.  You may also
-associate a new function name with an arbitrary function.
-
-@deftypefun {rl_command_func_t *} rl_named_function (const char *name)
-Return the function with name @var{name}.
-@end deftypefun
-
-@deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type)
-Return the function invoked by @var{keyseq} in keymap @var{map}.
-If @var{map} is @code{NULL}, the current keymap is used.  If @var{type} is
-not @code{NULL}, the type of the object is returned in the @code{int} variable
-it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
-@end deftypefun
-
-@deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
-Return an array of strings representing the key sequences used to
-invoke @var{function} in the current keymap.
-@end deftypefun
-
-@deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map)
-Return an array of strings representing the key sequences used to
-invoke @var{function} in the keymap @var{map}.
-@end deftypefun
-
-@deftypefun void rl_function_dumper (int readable)
-Print the readline function names and the key sequences currently
-bound to them to @code{rl_outstream}.  If @var{readable} is non-zero,
-the list is formatted in such a way that it can be made part of an
-@code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun void rl_list_funmap_names (void)
-Print the names of all bindable Readline functions to @code{rl_outstream}.
-@end deftypefun
-
-@deftypefun {const char **} rl_funmap_names (void)
-Return a NULL terminated array of known function names.  The array is
-sorted.  The array itself is allocated, but not the strings inside.  You
-should @code{free()} the array when you are done, but not the pointers.
-@end deftypefun
-
-@deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function)
-Add @var{name} to the list of bindable Readline command names, and make
-@var{function} the function to be called when @var{name} is invoked.
-@end deftypefun
-
-@node Allowing Undoing
-@subsection Allowing Undoing
-
-Supporting the undo command is a painless thing, and makes your
-functions much more useful.  It is certainly easy to try
-something if you know you can undo it.
-
-If your function simply inserts text once, or deletes text once, and
-uses @code{rl_insert_text()} or @code{rl_delete_text()} to do it, then
-undoing is already done for you automatically.
-
-If you do multiple insertions or multiple deletions, or any combination
-of these operations, you should group them together into one operation.
-This is done with @code{rl_begin_undo_group()} and
-@code{rl_end_undo_group()}.
-
-The types of events that can be undone are:
-
-@smallexample
-enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @}; 
-@end smallexample
-
-Notice that @code{UNDO_DELETE} means to insert some text, and
-@code{UNDO_INSERT} means to delete some text.  That is, the undo code
-tells what to undo, not how to undo it.  @code{UNDO_BEGIN} and
-@code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and
-@code{rl_end_undo_group()}.
-
-@deftypefun int rl_begin_undo_group (void)
-Begins saving undo information in a group construct.  The undo
-information usually comes from calls to @code{rl_insert_text()} and
-@code{rl_delete_text()}, but could be the result of calls to
-@code{rl_add_undo()}.
-@end deftypefun
-
-@deftypefun int rl_end_undo_group (void)
-Closes the current undo group started with @code{rl_begin_undo_group
-()}.  There should be one call to @code{rl_end_undo_group()}
-for each call to @code{rl_begin_undo_group()}.
-@end deftypefun
-
-@deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text)
-Remember how to undo an event (according to @var{what}).  The affected
-text runs from @var{start} to @var{end}, and encompasses @var{text}.
-@end deftypefun
-
-@deftypefun void rl_free_undo_list (void)
-Free the existing undo list.
-@end deftypefun
-
-@deftypefun int rl_do_undo (void)
-Undo the first thing on the undo list.  Returns @code{0} if there was
-nothing to undo, non-zero if something was undone.
-@end deftypefun
-
-Finally, if you neither insert nor delete text, but directly modify the
-existing text (e.g., change its case), call @code{rl_modifying()}
-once, just before you modify the text.  You must supply the indices of
-the text range that you are going to modify.
-
-@deftypefun int rl_modifying (int start, int end)
-Tell Readline to save the text between @var{start} and @var{end} as a
-single undo unit.  It is assumed that you will subsequently modify
-that text.
-@end deftypefun
-
-@node Redisplay
-@subsection Redisplay
-
-@deftypefun void rl_redisplay (void)
-Change what's displayed on the screen to reflect the current contents
-of @code{rl_line_buffer}.
-@end deftypefun
-
-@deftypefun int rl_forced_update_display (void)
-Force the line to be updated and redisplayed, whether or not
-Readline thinks the screen display is correct.
-@end deftypefun
-
-@deftypefun int rl_on_new_line (void)
-Tell the update functions that we have moved onto a new (empty) line,
-usually after ouputting a newline.
-@end deftypefun
-
-@deftypefun int rl_on_new_line_with_prompt (void)
-Tell the update functions that we have moved onto a new line, with
-@var{rl_prompt} already displayed.
-This could be used by applications that want to output the prompt string
-themselves, but still need Readline to know the prompt string length for
-redisplay.
-It should be used after setting @var{rl_already_prompted}.
-@end deftypefun
-
-@deftypefun int rl_reset_line_state (void)
-Reset the display state to a clean state and redisplay the current line
-starting on a new line.
-@end deftypefun
-
-@deftypefun int rl_crlf (void)
-Move the cursor to the start of the next screen line.
-@end deftypefun
-
-@deftypefun int rl_show_char (int c)
-Display character @var{c} on @code{rl_outstream}.
-If Readline has not been set to display meta characters directly, this
-will convert meta characters to a meta-prefixed key sequence.
-This is intended for use by applications which wish to do their own
-redisplay.
-@end deftypefun
-
-@deftypefun int rl_message (const char *, @dots{})
-The arguments are a format string as would be supplied to @code{printf},
-possibly containing conversion specifications such as @samp{%d}, and
-any additional arguments necessary to satisfy the conversion specifications.
-The resulting string is displayed in the @dfn{echo area}.  The echo area
-is also used to display numeric arguments and search strings.
-@end deftypefun
-
-@deftypefun int rl_clear_message (void)
-Clear the message in the echo area.
-@end deftypefun
-
-@deftypefun void rl_save_prompt (void)
-Save the local Readline prompt display state in preparation for
-displaying a new message in the message area with @code{rl_message()}.
-@end deftypefun
-
-@deftypefun void rl_restore_prompt (void)
-Restore the local Readline prompt display state saved by the most
-recent call to @code{rl_save_prompt}.
-@end deftypefun
-
-@deftypefun int rl_expand_prompt (char *prompt)
-Expand any special character sequences in @var{prompt} and set up the
-local Readline prompt redisplay variables.
-This function is called by @code{readline()}.  It may also be called to
-expand the primary prompt if the @code{rl_on_new_line_with_prompt()}
-function or @code{rl_already_prompted} variable is used.
-It returns the number of visible characters on the last line of the
-(possibly multi-line) prompt.
-@end deftypefun
-
-@deftypefun int rl_set_prompt (const char *prompt)
-Make Readline use @var{prompt} for subsequent redisplay.  This calls
-@code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt}
-to the result.
-@end deftypefun
-
-@node Modifying Text
-@subsection Modifying Text
-
-@deftypefun int rl_insert_text (const char *text)
-Insert @var{text} into the line at the current cursor position.
-Returns the number of characters inserted.
-@end deftypefun
-
-@deftypefun int rl_delete_text (int start, int end)
-Delete the text between @var{start} and @var{end} in the current line.
-Returns the number of characters deleted.
-@end deftypefun
-
-@deftypefun {char *} rl_copy_text (int start, int end)
-Return a copy of the text between @var{start} and @var{end} in
-the current line.
-@end deftypefun
-
-@deftypefun int rl_kill_text (int start, int end)
-Copy the text between @var{start} and @var{end} in the current line
-to the kill ring, appending or prepending to the last kill if the
-last command was a kill command.  The text is deleted.
-If @var{start} is less than @var{end},
-the text is appended, otherwise prepended.  If the last command was
-not a kill, a new kill ring slot is used.
-@end deftypefun
-
-@deftypefun int rl_push_macro_input (char *macro)
-Cause @var{macro} to be inserted into the line, as if it had been invoked
-by a key bound to a macro.  Not especially useful; use
-@code{rl_insert_text()} instead.
-@end deftypefun
-
-@node Character Input
-@subsection Character Input
-
-@deftypefun int rl_read_key (void)
-Return the next character available from Readline's current input stream.
-This handles input inserted into
-the input stream via @var{rl_pending_input} (@pxref{Readline Variables})
-and @code{rl_stuff_char()}, macros, and characters read from the keyboard.
-While waiting for input, this function will call any function assigned to
-the @code{rl_event_hook} variable.
-@end deftypefun
-
-@deftypefun int rl_getc (FILE *stream)
-Return the next character available from @var{stream}, which is assumed to
-be the keyboard.
-@end deftypefun
-
-@deftypefun int rl_stuff_char (int c)
-Insert @var{c} into the Readline input stream.  It will be "read"
-before Readline attempts to read characters from the terminal with
-@code{rl_read_key()}.  Up to 512 characters may be pushed back.
-@code{rl_stuff_char} returns 1 if the character was successfully inserted;
-0 otherwise.
-@end deftypefun
-
-@deftypefun int rl_execute_next (int c)
-Make @var{c} be the next command to be executed when @code{rl_read_key()}
-is called.  This sets @var{rl_pending_input}.
-@end deftypefun
-
-@deftypefun int rl_clear_pending_input (void)
-Unset @var{rl_pending_input}, effectively negating the effect of any
-previous call to @code{rl_execute_next()}.  This works only if the
-pending input has not already been read with @code{rl_read_key()}.
-@end deftypefun
-
-@deftypefun int rl_set_keyboard_input_timeout (int u)
-While waiting for keyboard input in @code{rl_read_key()}, Readline will
-wait for @var{u} microseconds for input before calling any function
-assigned to @code{rl_event_hook}.  The default waiting period is
-one-tenth of a second.  Returns the old timeout value.
-@end deftypefun
-
-@node Terminal Management
-@subsection Terminal Management
-
-@deftypefun void rl_prep_terminal (int meta_flag)
-Modify the terminal settings for Readline's use, so @code{readline()}
-can read a single character at a time from the keyboard.
-The @var{meta_flag} argument should be non-zero if Readline should
-read eight-bit input.
-@end deftypefun
-
-@deftypefun void rl_deprep_terminal (void)
-Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in
-the state in which it was before the most recent call to
-@code{rl_prep_terminal()}.
-@end deftypefun
-
-@deftypefun void rl_tty_set_default_bindings (Keymap kmap)
-Read the operating system's terminal editing characters (as would be displayed
-by @code{stty}) to their Readline equivalents.  The bindings are performed
-in @var{kmap}.
-@end deftypefun
-
-@deftypefun int rl_reset_terminal (const char *terminal_name)
-Reinitialize Readline's idea of the terminal settings using
-@var{terminal_name} as the terminal type (e.g., @code{vt100}).
-If @var{terminal_name} is @code{NULL}, the value of the @code{TERM}
-environment variable is used.
-@end deftypefun
-
-@node Utility Functions
-@subsection Utility Functions
-
-@deftypefun void rl_replace_line (const char *text, int clear_undo)
-Replace the contents of @code{rl_line_buffer} with @var{text}.
-The point and mark are preserved, if possible.
-If @var{clear_undo} is non-zero, the undo list associated with the
-current line is cleared.
-@end deftypefun
-
-@deftypefun int rl_extend_line_buffer (int len)
-Ensure that @code{rl_line_buffer} has enough space to hold @var{len}
-characters, possibly reallocating it if necessary.
-@end deftypefun
-
-@deftypefun int rl_initialize (void)
-Initialize or re-initialize Readline's internal state.
-It's not strictly necessary to call this; @code{readline()} calls it before
-reading any input.
-@end deftypefun
-
-@deftypefun int rl_ding (void)
-Ring the terminal bell, obeying the setting of @code{bell-style}.
-@end deftypefun
-
-@deftypefun int rl_alphabetic (int c)
-Return 1 if @var{c} is an alphabetic character.
-@end deftypefun
-
-@deftypefun void rl_display_match_list (char **matches, int len, int max)
-A convenience function for displaying a list of strings in
-columnar format on Readline's output stream.  @code{matches} is the list
-of strings, in argv format, such as a list of completion matches.
-@code{len} is the number of strings in @code{matches}, and @code{max}
-is the length of the longest string in @code{matches}.  This function uses
-the setting of @code{print-completions-horizontally} to select how the
-matches are displayed (@pxref{Readline Init File Syntax}).
-@end deftypefun
-
-The following are implemented as macros, defined in @code{chardefs.h}.
-Applications should refrain from using them.
-
-@deftypefun int _rl_uppercase_p (int c)
-Return 1 if @var{c} is an uppercase alphabetic character.
-@end deftypefun
-
-@deftypefun int _rl_lowercase_p (int c)
-Return 1 if @var{c} is a lowercase alphabetic character.
-@end deftypefun
-
-@deftypefun int _rl_digit_p (int c)
-Return 1 if @var{c} is a numeric character.
-@end deftypefun
-
-@deftypefun int _rl_to_upper (int c)
-If @var{c} is a lowercase alphabetic character, return the corresponding
-uppercase character.
-@end deftypefun
-
-@deftypefun int _rl_to_lower (int c)
-If @var{c} is an uppercase alphabetic character, return the corresponding
-lowercase character.
-@end deftypefun
-
-@deftypefun int _rl_digit_value (int c)
-If @var{c} is a number, return the value it represents.
-@end deftypefun
-
-@node Miscellaneous Functions
-@subsection Miscellaneous Functions
-
-@deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map)
-Bind the key sequence @var{keyseq} to invoke the macro @var{macro}.
-The binding is performed in @var{map}.  When @var{keyseq} is invoked, the
-@var{macro} will be inserted into the line.  This function is deprecated;
-use @code{rl_generic_bind()} instead.
-@end deftypefun
-
-@deftypefun void rl_macro_dumper (int readable)
-Print the key sequences bound to macros and their values, using
-the current keymap, to @code{rl_outstream}.
-If @var{readable} is non-zero, the list is formatted in such a way
-that it can be made part of an @code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun int rl_variable_bind (const char *variable, const char *value)
-Make the Readline variable @var{variable} have @var{value}.
-This behaves as if the readline command
-@samp{set @var{variable} @var{value}} had been executed in an @code{inputrc}
-file (@pxref{Readline Init File Syntax}).
-@end deftypefun
-
-@deftypefun void rl_variable_dumper (int readable)
-Print the readline variable names and their current values
-to @code{rl_outstream}.
-If @var{readable} is non-zero, the list is formatted in such a way
-that it can be made part of an @code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun int rl_set_paren_blink_timeout (int u)
-Set the time interval (in microseconds) that Readline waits when showing
-a balancing character when @code{blink-matching-paren} has been enabled.
-@end deftypefun
-
-@deftypefun {char *} rl_get_termcap (const char *cap)
-Retrieve the string value of the termcap capability @var{cap}.
-Readline fetches the termcap entry for the current terminal name and
-uses those capabilities to move around the screen line and perform other
-terminal-specific operations, like erasing a line.  Readline does not
-use all of a terminal's capabilities, and this function will return
-values for only those capabilities Readline uses.
-@end deftypefun
-
-@node Alternate Interface
-@subsection Alternate Interface
-
-An alternate interface is available to plain @code{readline()}.  Some
-applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to @code{select()}
-on various file descriptors.  To accomodate this need, readline can
-also be invoked as a `callback' function from an event loop.  There
-are functions available to make this easy.
-
-@deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
-Set up the terminal for readline I/O and display the initial
-expanded value of @var{prompt}.  Save the value of @var{lhandler} to
-use as a function to call when a complete line of input has been entered.
-The function takes the text of the line as an argument.
-@end deftypefun
-
-@deftypefun void rl_callback_read_char (void)
-Whenever an application determines that keyboard input is available, it
-should call @code{rl_callback_read_char()}, which will read the next
-character from the current input source.
-If that character completes the line, @code{rl_callback_read_char} will
-invoke the @var{lhandler} function saved by @code{rl_callback_handler_install}
-to process the line.
-Before calling the @var{lhandler} function, the terminal settings are
-reset to the values they had before calling
-@code{rl_callback_handler_install}.
-If the @var{lhandler} function returns,
-the terminal settings are modified for Readline's use again.
-@code{EOF} is  indicated by calling @var{lhandler} with a
-@code{NULL} line.
-@end deftypefun
-
-@deftypefun void rl_callback_handler_remove (void)
-Restore the terminal to its initial state and remove the line handler.
-This may be called from within a callback as well as independently.
-If the @var{lhandler} installed by @code{rl_callback_handler_install}
-does not exit the program, either this function or the function referred
-to by the value of @code{rl_deprep_term_function} should be called before
-the program exits to reset the terminal settings.
-@end deftypefun
-
-@node A Readline Example
-@subsection A Readline Example
-
-Here is a function which changes lowercase characters to their uppercase
-equivalents, and uppercase characters to lowercase.  If
-this function was bound to @samp{M-c}, then typing @samp{M-c} would
-change the case of the character under point.  Typing @samp{M-1 0 M-c}
-would change the case of the following 10 characters, leaving the cursor on
-the last character changed.
-
-@example
-/* Invert the case of the COUNT following characters. */
-int
-invert_case_line (count, key)
-     int count, key;
-@{
-  register int start, end, i;
-
-  start = rl_point;
-
-  if (rl_point >= rl_end)
-    return (0);
-
-  if (count < 0)
-    @{
-      direction = -1;
-      count = -count;
-    @}
-  else
-    direction = 1;
-      
-  /* Find the end of the range to modify. */
-  end = start + (count * direction);
-
-  /* Force it to be within range. */
-  if (end > rl_end)
-    end = rl_end;
-  else if (end < 0)
-    end = 0;
-
-  if (start == end)
-    return (0);
-
-  if (start > end)
-    @{
-      int temp = start;
-      start = end;
-      end = temp;
-    @}
-
-  /* Tell readline that we are modifying the line,
-     so it will save the undo information. */
-  rl_modifying (start, end);
-
-  for (i = start; i != end; i++)
-    @{
-      if (_rl_uppercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
-      else if (_rl_lowercase_p (rl_line_buffer[i]))
-        rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
-    @}
-  /* Move point to on top of the last character changed. */
-  rl_point = (direction == 1) ? end - 1 : start;
-  return (0);
-@}
-@end example
-
-@node Readline Signal Handling
-@section Readline Signal Handling
-
-Signals are asynchronous events sent to a process by the Unix kernel,
-sometimes on behalf of another process.  They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his terminal,
-or a network connection being broken.  There is a class of signals that can
-be sent to the process currently reading input from the keyboard.  Since
-Readline changes the terminal attributes when it is called, it needs to
-perform special processing when such a signal is received in order to
-restore the terminal to a sane state, or provide application writers with
-functions to do so manually. 
-
-Readline contains an internal signal handler that is installed for a
-number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM},
-@code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}).
-When one of these signals is received, the signal handler
-will reset the terminal attributes to those that were in effect before
-@code{readline()} was called, reset the signal handling to what it was
-before @code{readline()} was called, and resend the signal to the calling
-application.
-If and when the calling application's signal handler returns, Readline
-will reinitialize the terminal and continue to accept input.
-When a @code{SIGINT} is received, the Readline signal handler performs
-some additional work, which will cause any partially-entered line to be
-aborted (see the description of @code{rl_free_line_state()} below).
-
-There is an additional Readline signal handler, for @code{SIGWINCH}, which
-the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an @code{xterm}).  The Readline @code{SIGWINCH}
-handler updates Readline's internal screen size information, and then calls
-any @code{SIGWINCH} signal handler the calling application has installed. 
-Readline calls the application's @code{SIGWINCH} signal handler without
-resetting the terminal to its original state.  If the application's signal
-handler does more than update its idea of the terminal size and return (for
-example, a @code{longjmp} back to a main processing loop), it @emph{must}
-call @code{rl_cleanup_after_signal()} (described below), to restore the
-terminal state. 
-
-Readline provides two variables that allow application writers to
-control whether or not it will catch certain signals and act on them
-when they are received.  It is important that applications change the
-values of these variables only when calling @code{readline()}, not in
-a signal handler, so Readline's internal signal state is not corrupted.
-
-@deftypevar int rl_catch_signals
-If this variable is non-zero, Readline will install signal handlers for
-@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM},
-@code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}.
-
-The default value of @code{rl_catch_signals} is 1.
-@end deftypevar
-
-@deftypevar int rl_catch_sigwinch
-If this variable is non-zero, Readline will install a signal handler for
-@code{SIGWINCH}.
-
-The default value of @code{rl_catch_sigwinch} is 1.
-@end deftypevar
-
-If an application does not wish to have Readline catch any signals, or
-to handle signals other than those Readline catches (@code{SIGHUP},
-for example), 
-Readline provides convenience functions to do the necessary terminal
-and internal state cleanup upon receipt of a signal.
-
-@deftypefun void rl_cleanup_after_signal (void)
-This function will reset the state of the terminal to what it was before
-@code{readline()} was called, and remove the Readline signal handlers for
-all signals, depending on the values of @code{rl_catch_signals} and
-@code{rl_catch_sigwinch}.
-@end deftypefun
-
-@deftypefun void rl_free_line_state (void)
-This will free any partial state associated with the current input line
-(undo information, any partial history entry, any partially-entered
-keyboard macro, and any partially-entered numeric argument).  This
-should be called before @code{rl_cleanup_after_signal()}.  The
-Readline signal handler for @code{SIGINT} calls this to abort the
-current input line.
-@end deftypefun
-
-@deftypefun void rl_reset_after_signal (void)
-This will reinitialize the terminal and reinstall any Readline signal
-handlers, depending on the values of @code{rl_catch_signals} and
-@code{rl_catch_sigwinch}.
-@end deftypefun
-
-If an application does not wish Readline to catch @code{SIGWINCH}, it may
-call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force
-Readline to update its idea of the terminal size when a @code{SIGWINCH}
-is received.
-
-@deftypefun void rl_resize_terminal (void)
-Update Readline's internal screen size by reading values from the kernel.
-@end deftypefun
-
-@deftypefun void rl_set_screen_size (int rows, int cols)
-Set Readline's idea of the terminal size to @var{rows} rows and
-@var{cols} columns.
-@end deftypefun
-
-If an application does not want to install a @code{SIGWINCH} handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
-
-@deftypefun void rl_get_screen_size (int *rows, int *cols)
-Return Readline's idea of the terminal's size in the
-variables pointed to by the arguments.
-@end deftypefun
-
-The following functions install and remove Readline's signal handlers.
-
-@deftypefun int rl_set_signals (void)
-Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT},
-@code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN},
-@code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of
-@code{rl_catch_signals} and @code{rl_catch_sigwinch}.
-@end deftypefun
-
-@deftypefun int rl_clear_signals (void)
-Remove all of the Readline signal handlers installed by
-@code{rl_set_signals()}.
-@end deftypefun
-
-@node Custom Completers
-@section Custom Completers
-
-Typically, a program that reads commands from the user has a way of
-disambiguating commands and data.  If your program is one of these, then
-it can provide completion for commands, data, or both.
-The following sections describe how your program and Readline
-cooperate to provide this service.
-
-@menu
-* How Completing Works::       The logic used to do completion.
-* Completion Functions::       Functions provided by Readline.
-* Completion Variables::       Variables which control completion.
-* A Short Completion Example:: An example of writing completer subroutines.
-@end menu
-
-@node How Completing Works
-@subsection How Completing Works
-
-In order to complete some text, the full list of possible completions
-must be available.  That is, it is not possible to accurately
-expand a partial word without knowing all of the possible words
-which make sense in that context.  The Readline library provides
-the user interface to completion, and two of the most common
-completion functions:  filename and username.  For completing other types
-of text, you must write your own completion function.  This section
-describes exactly what such functions must do, and provides an example.
-
-There are three major functions used to perform completion:
-
-@enumerate
-@item
-The user-interface function @code{rl_complete()}.  This function is
-called with the same arguments as other bindable Readline functions:
-@var{count} and @var{invoking_key}.
-It isolates the word to be completed and calls
-@code{rl_completion_matches()} to generate a list of possible completions.
-It then either lists the possible completions, inserts the possible
-completions, or actually performs the
-completion, depending on which behavior is desired.
-
-@item
-The internal function @code{rl_completion_matches()} uses an
-application-supplied @dfn{generator} function to generate the list of
-possible matches, and then returns the array of these matches.
-The caller should place the address of its generator function in
-@code{rl_completion_entry_function}.
-
-@item
-The generator function is called repeatedly from
-@code{rl_completion_matches()}, returning a string each time.  The
-arguments to the generator function are @var{text} and @var{state}.
-@var{text} is the partial word to be completed.  @var{state} is zero the
-first time the function is called, allowing the generator to perform
-any necessary initialization, and a positive non-zero integer for
-each subsequent call.  The generator function returns
-@code{(char *)NULL} to inform @code{rl_completion_matches()} that there are
-no more possibilities left.  Usually the generator function computes the
-list of possible completions when @var{state} is zero, and returns them
-one at a time on subsequent calls.  Each string the generator function
-returns as a match must be allocated with @code{malloc()}; Readline
-frees the strings when it has finished with them.
-
-@end enumerate
-
-@deftypefun int rl_complete (int ignore, int invoking_key)
-Complete the word at or before point.  You have supplied the function
-that does the initial simple matching selection algorithm (see
-@code{rl_completion_matches()}).  The default is to do filename completion.
-@end deftypefun
-
-@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
-This is a pointer to the generator function for
-@code{rl_completion_matches()}.
-If the value of @code{rl_completion_entry_function} is
-@code{NULL} then the default filename generator
-function, @code{rl_filename_completion_function()}, is used.
-@end deftypevar
-
-@node Completion Functions
-@subsection Completion Functions
-
-Here is the complete list of callable completion functions present in
-Readline.
-
-@deftypefun int rl_complete_internal (int what_to_do)
-Complete the word at or before point.  @var{what_to_do} says what to do
-with the completion.  A value of @samp{?} means list the possible
-completions.  @samp{TAB} means do standard completion.  @samp{*} means
-insert all of the possible completions.  @samp{!} means to display
-all of the possible completions, if there is more than one, as well as
-performing partial completion.
-@end deftypefun
-
-@deftypefun int rl_complete (int ignore, int invoking_key)
-Complete the word at or before point.  You have supplied the function
-that does the initial simple matching selection algorithm (see
-@code{rl_completion_matches()} and @code{rl_completion_entry_function}).
-The default is to do filename
-completion.  This calls @code{rl_complete_internal()} with an
-argument depending on @var{invoking_key}.
-@end deftypefun
-
-@deftypefun int rl_possible_completions (int count, int invoking_key)
-List the possible completions.  See description of @code{rl_complete
-()}.  This calls @code{rl_complete_internal()} with an argument of
-@samp{?}.
-@end deftypefun
-
-@deftypefun int rl_insert_completions (int count, int invoking_key)
-Insert the list of possible completions into the line, deleting the
-partially-completed word.  See description of @code{rl_complete()}.
-This calls @code{rl_complete_internal()} with an argument of @samp{*}.
-@end deftypefun
-
-@deftypefun int rl_completion_mode (rl_command_func_t *cfunc)
-Returns the apppriate value to pass to @code{rl_complete_internal()}
-depending on whether @var{cfunc} was called twice in succession and
-the value of the @code{show-all-if-ambiguous} variable.
-Application-specific completion functions may use this function to present
-the same interface as @code{rl_complete()}.
-@end deftypefun
-
-@deftypefun {char **} rl_completion_matches (const char *text, rl_compentry_func_t *entry_func)
-Returns an array of strings which is a list of completions for
-@var{text}.  If there are no completions, returns @code{NULL}.
-The first entry in the returned array is the substitution for @var{text}.
-The remaining entries are the possible completions.  The array is
-terminated with a @code{NULL} pointer.
-
-@var{entry_func} is a function of two args, and returns a
-@code{char *}.  The first argument is @var{text}.  The second is a
-state argument; it is zero on the first call, and non-zero on subsequent
-calls.  @var{entry_func} returns a @code{NULL}  pointer to the caller
-when there are no more matches.
-@end deftypefun
-
-@deftypefun {char *} rl_filename_completion_function (const char *text, int state)
-A generator function for filename completion in the general case.
-@var{text} is a partial filename.
-The Bash source is a useful reference for writing custom
-completion functions (the Bash completion functions call this and other
-Readline functions).
-@end deftypefun
-
-@deftypefun {char *} rl_username_completion_function (const char *text, int state)
-A completion generator for usernames.  @var{text} contains a partial
-username preceded by a random character (usually @samp{~}).  As with all
-completion generators, @var{state} is zero on the first call and non-zero
-for subsequent calls.
-@end deftypefun
-
-@node Completion Variables
-@subsection Completion Variables
-
-@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
-A pointer to the generator function for @code{rl_completion_matches()}.
-@code{NULL} means to use @code{rl_filename_completion_function()}, the default
-filename completer.
-@end deftypevar
-
-@deftypevar {rl_completion_func_t *} rl_attempted_completion_function
-A pointer to an alternative function to create matches.
-The function is called with @var{text}, @var{start}, and @var{end}.
-@var{start} and @var{end} are indices in @code{rl_line_buffer} defining
-the boundaries of @var{text}, which is a character string.
-If this function exists and returns @code{NULL}, or if this variable is
-set to @code{NULL}, then @code{rl_complete()} will call the value of
-@code{rl_completion_entry_function} to generate matches, otherwise the
-array of strings returned will be used.
-If this function sets the @code{rl_attempted_completion_over}
-variable to a non-zero value, Readline will not perform its default
-completion even if this function returns no matches.
-@end deftypevar
-
-@deftypevar {rl_quote_func_t *} rl_filename_quoting_function
-A pointer to a function that will quote a filename in an
-application-specific fashion.  This is called if filename completion is being
-attempted and one of the characters in @code{rl_filename_quote_characters}
-appears in a completed filename.  The function is called with
-@var{text}, @var{match_type}, and @var{quote_pointer}.  The @var{text}
-is the filename to be quoted.  The @var{match_type} is either
-@code{SINGLE_MATCH}, if there is only one completion match, or
-@code{MULT_MATCH}.  Some functions use this to decide whether or not to
-insert a closing quote character.  The @var{quote_pointer} is a pointer
-to any opening quote character the user typed.  Some functions choose
-to reset this character.
-@end deftypevar
-
-@deftypevar {rl_dequote_func_t *} rl_filename_dequoting_function
-A pointer to a function that will remove application-specific quoting
-characters from a filename before completion is attempted, so those
-characters do not interfere with matching the text against names in
-the filesystem.  It is called with @var{text}, the text of the word
-to be dequoted, and @var{quote_char}, which is the quoting character 
-that delimits the filename (usually @samp{'} or @samp{"}).  If
-@var{quote_char} is zero, the filename was not in an embedded string.
-@end deftypevar
-
-@deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p
-A pointer to a function to call that determines whether or not a specific
-character in the line buffer is quoted, according to whatever quoting
-mechanism the program calling Readline uses.  The function is called with
-two arguments: @var{text}, the text of the line, and @var{index}, the
-index of the character in the line.  It is used to decide whether a
-character found in @code{rl_completer_word_break_characters} should be
-used to break words for the completer.
-@end deftypevar
-
-@deftypevar {rl_compignore_func_t *} rl_ignore_some_completions_function
-This function, if defined, is called by the completer when real filename
-completion is done, after all the matching names have been generated.
-It is passed a @code{NULL} terminated array of matches.
-The first element (@code{matches[0]}) is the
-maximal substring common to all matches. This function can
-re-arrange the list of matches as required, but each element deleted
-from the array must be freed.
-@end deftypevar
-
-@deftypevar {rl_icppfunc_t *} rl_directory_completion_hook
-This function, if defined, is allowed to modify the directory portion
-of filenames Readline completes.  It is called with the address of a
-string (the current directory name) as an argument, and may modify that string.
-If the string is replaced with a new string, the old value should be freed.
-Any modified directory name should have a trailing slash.
-The modified value will be displayed as part of the completion, replacing
-the directory portion of the pathname the user typed.
-It returns an integer that should be non-zero if the function modifies
-its directory argument.
-It could be used to expand symbolic links or shell variables in pathnames.
-@end deftypevar
-
-@deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook
-If non-zero, then this is the address of a function to call when
-completing a word would normally display the list of possible matches.
-This function is called in lieu of Readline displaying the list.
-It takes three arguments:
-(@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length})
-where @var{matches} is the array of matching strings,
-@var{num_matches} is the number of strings in that array, and
-@var{max_length} is the length of the longest string in that array.
-Readline provides a convenience function, @code{rl_display_match_list},
-that takes care of doing the display to Readline's output stream.  That
-function may be called from this hook.
-@end deftypevar
-
-@deftypevar {const char *} rl_basic_word_break_characters
-The basic list of characters that signal a break between words for the
-completer routine.  The default value of this variable is the characters
-which break words for completion in Bash:
-@code{" \t\n\"\\'`@@$><=;|&@{("}.
-@end deftypevar
-
-@deftypevar {const char *} rl_basic_quote_characters
-A list of quote characters which can cause a word break.
-@end deftypevar
-
-@deftypevar {const char *} rl_completer_word_break_characters
-The list of characters that signal a break between words for
-@code{rl_complete_internal()}.  The default list is the value of
-@code{rl_basic_word_break_characters}.
-@end deftypevar
-
-@deftypevar {const char *} rl_completer_quote_characters
-A list of characters which can be used to quote a substring of the line.
-Completion occurs on the entire substring, and within the substring
-@code{rl_completer_word_break_characters} are treated as any other character,
-unless they also appear within this list.
-@end deftypevar
-
-@deftypevar {const char *} rl_filename_quote_characters
-A list of characters that cause a filename to be quoted by the completer
-when they appear in a completed filename.  The default is the null string.
-@end deftypevar
-
-@deftypevar {const char *} rl_special_prefixes
-The list of characters that are word break characters, but should be
-left in @var{text} when it is passed to the completion function.
-Programs can use this to help determine what kind of completing to do.
-For instance, Bash sets this variable to "$@@" so that it can complete
-shell variables and hostnames.
-@end deftypevar
-
-@deftypevar int rl_completion_query_items
-Up to this many items will be displayed in response to a
-possible-completions call.  After that, we ask the user if she is sure
-she wants to see them all.  The default value is 100.
-@end deftypevar
-
-@deftypevar {int} rl_completion_append_character
-When a single completion alternative matches at the end of the command
-line, this character is appended to the inserted completion text.  The
-default is a space character (@samp{ }).  Setting this to the null
-character (@samp{\0}) prevents anything being appended automatically.
-This can be changed in custom completion functions to
-provide the ``most sensible word separator character'' according to
-an application-specific command line syntax specification.
-@end deftypevar
-
-@deftypevar int rl_completion_suppress_append
-If non-zero, @var{rl_completion_append_character} is not appended to
-matches at the end of the command line, as described above.  It is
-set to 0 before any application-specific completion function is called.
-@end deftypevar
-
-@deftypevar int rl_completion_mark_symlink_dirs
-If non-zero, a slash will be appended to completed filenames that are
-symbolic links to directory names, subject to the value of the
-user-settable @var{mark-directories} variable.
-This variable exists so that application completion functions can
-override the user's global preference (set via the
-@var{mark-symlinked-directories} Readline variable) if appropriate.
-This variable is set to the user's preference before any
-application completion function is called, so unless that function
-modifies the value, the user's preferences are honored.
-@end deftypevar
-
-@deftypevar int rl_ignore_completion_duplicates
-If non-zero, then duplicates in the matches are removed.
-The default is 1.
-@end deftypevar
-
-@deftypevar int rl_filename_completion_desired
-Non-zero means that the results of the matches are to be treated as
-filenames.  This is @emph{always} zero on entry, and can only be changed
-within a completion entry generator function.  If it is set to a non-zero
-value, directory names have a slash appended and Readline attempts to
-quote completed filenames if they contain any characters in
-@code{rl_filename_quote_characters} and @code{rl_filename_quoting_desired}
-is set to a non-zero value.
-@end deftypevar
-
-@deftypevar int rl_filename_quoting_desired
-Non-zero means that the results of the matches are to be quoted using
-double quotes (or an application-specific quoting mechanism) if the
-completed filename contains any characters in
-@code{rl_filename_quote_chars}.  This is @emph{always} non-zero
-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}.
-@end deftypevar
-
-@deftypevar int rl_attempted_completion_over
-If an application-specific completion function assigned to
-@code{rl_attempted_completion_function} sets this variable to a non-zero
-value, Readline will not perform its default filename completion even
-if the application's completion function returns no matches.
-It should be set only by an application's completion function.
-@end deftypevar
-
-@deftypevar int rl_completion_type
-Set to a character describing the type of completion Readline is currently
-attempting; see the description of @code{rl_complete_internal()}
-(@pxref{Completion Functions}) for the list of characters.
-@end deftypevar
-
-@deftypevar int rl_inhibit_completion
-If this variable is non-zero, completion is inhibited.  The completion
-character will be inserted as any other bound to @code{self-insert}.
-@end deftypevar
-
-@node A Short Completion Example
-@subsection A Short Completion Example
-
-Here is a small application demonstrating the use of the GNU Readline
-library.  It is called @code{fileman}, and the source code resides in
-@file{examples/fileman.c}.  This sample application provides
-completion of command names, line editing features, and access to the
-history list.
-
-@page
-@smallexample
-/* fileman.c -- A tiny application which demonstrates how to use the
-   GNU Readline library.  This application interactively allows users
-   to manipulate files and their modes. */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/errno.h>
-
-#include <readline/readline.h>
-#include <readline/history.h>
-
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list __P((char *));
-int com_view __P((char *));
-int com_rename __P((char *));
-int com_stat __P((char *));
-int com_pwd __P((char *));
-int com_delete __P((char *));
-int com_help __P((char *));
-int com_cd __P((char *));
-int com_quit __P((char *));
-
-/* A structure which contains information on the commands this program
-   can understand. */
-
-typedef struct @{
-  char *name;                  /* User printable name of the function. */
-  rl_icpfunc_t *func;          /* Function to call to do the job. */
-  char *doc;                   /* Documentation for this function.  */
-@} COMMAND;
-
-COMMAND commands[] = @{
-  @{ "cd", com_cd, "Change to directory DIR" @},
-  @{ "delete", com_delete, "Delete FILE" @},
-  @{ "help", com_help, "Display this text" @},
-  @{ "?", com_help, "Synonym for `help'" @},
-  @{ "list", com_list, "List files in DIR" @},
-  @{ "ls", com_list, "Synonym for `list'" @},
-  @{ "pwd", com_pwd, "Print the current working directory" @},
-  @{ "quit", com_quit, "Quit using Fileman" @},
-  @{ "rename", com_rename, "Rename FILE to NEWNAME" @},
-  @{ "stat", com_stat, "Print out statistics on FILE" @},
-  @{ "view", com_view, "View the contents of FILE" @},
-  @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @}
-@};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
-     int s;
-@{
-  char *r;
-
-  r = xmalloc (strlen (s) + 1);
-  strcpy (r, s);
-  return (r);
-@}
-
-main (argc, argv)
-     int argc;
-     char **argv;
-@{
-  char *line, *s;
-
-  progname = argv[0];
-
-  initialize_readline ();      /* Bind our completer. */
-
-  /* Loop reading and executing lines until the user quits. */
-  for ( ; done == 0; )
-    @{
-      line = readline ("FileMan: ");
-
-      if (!line)
-        break;
-
-      /* Remove leading and trailing whitespace from the line.
-         Then, if there is anything left, add it to the history list
-         and execute it. */
-      s = stripwhite (line);
-
-      if (*s)
-        @{
-          add_history (s);
-          execute_line (s);
-        @}
-
-      free (line);
-    @}
-  exit (0);
-@}
-
-/* Execute a command line. */
-int
-execute_line (line)
-     char *line;
-@{
-  register int i;
-  COMMAND *command;
-  char *word;
-
-  /* Isolate the command word. */
-  i = 0;
-  while (line[i] && whitespace (line[i]))
-    i++;
-  word = line + i;
-
-  while (line[i] && !whitespace (line[i]))
-    i++;
-
-  if (line[i])
-    line[i++] = '\0';
-
-  command = find_command (word);
-
-  if (!command)
-    @{
-      fprintf (stderr, "%s: No such command for FileMan.\n", word);
-      return (-1);
-    @}
-
-  /* Get argument to command, if any. */
-  while (whitespace (line[i]))
-    i++;
-
-  word = line + i;
-
-  /* Call the function. */
-  return ((*(command->func)) (word));
-@}
-
-/* Look up NAME as the name of a command, and return a pointer to that
-   command.  Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
-     char *name;
-@{
-  register int i;
-
-  for (i = 0; commands[i].name; i++)
-    if (strcmp (name, commands[i].name) == 0)
-      return (&commands[i]);
-
-  return ((COMMAND *)NULL);
-@}
-
-/* Strip whitespace from the start and end of STRING.  Return a pointer
-   into STRING. */
-char *
-stripwhite (string)
-     char *string;
-@{
-  register char *s, *t;
-
-  for (s = string; whitespace (*s); s++)
-    ;
-    
-  if (*s == 0)
-    return (s);
-
-  t = s + strlen (s) - 1;
-  while (t > s && whitespace (*t))
-    t--;
-  *++t = '\0';
-
-  return s;
-@}
-
-/* **************************************************************** */
-/*                                                                  */
-/*                  Interface to Readline Completion                */
-/*                                                                  */
-/* **************************************************************** */
-
-char *command_generator __P((const char *, int));
-char **fileman_completion __P((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete.  We want to try to
-   complete on command names if this is the first word in the line, or
-   on filenames if not. */
-initialize_readline ()
-@{
-  /* Allow conditional parsing of the ~/.inputrc file. */
-  rl_readline_name = "FileMan";
-
-  /* Tell the completer that we want a crack first. */
-  rl_attempted_completion_function = fileman_completion;
-@}
-
-/* Attempt to complete on the contents of TEXT.  START and END
-   bound the region of rl_line_buffer that contains the word to
-   complete.  TEXT is the word to complete.  We can use the entire
-   contents of rl_line_buffer in case we want to do some simple
-   parsing.  Returnthe array of matches, or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
-     const char *text;
-     int start, end;
-@{
-  char **matches;
-
-  matches = (char **)NULL;
-
-  /* If this word is at the start of the line, then it is a command
-     to complete.  Otherwise it is the name of a file in the current
-     directory. */
-  if (start == 0)
-    matches = rl_completion_matches (text, command_generator);
-
-  return (matches);
-@}
-
-/* Generator function for command completion.  STATE lets us
-   know whether to start from scratch; without any state
-   (i.e. STATE == 0), then we start at the top of the list. */
-char *
-command_generator (text, state)
-     const char *text;
-     int state;
-@{
-  static int list_index, len;
-  char *name;
-
-  /* If this is a new word to complete, initialize now.  This
-     includes saving the length of TEXT for efficiency, and
-     initializing the index variable to 0. */
-  if (!state)
-    @{
-      list_index = 0;
-      len = strlen (text);
-    @}
-
-  /* Return the next name which partially matches from the
-     command list. */
-  while (name = commands[list_index].name)
-    @{
-      list_index++;
-
-      if (strncmp (name, text, len) == 0)
-        return (dupstr(name));
-    @}
-
-  /* If no names matched, then return NULL. */
-  return ((char *)NULL);
-@}
-
-/* **************************************************************** */
-/*                                                                  */
-/*                       FileMan Commands                           */
-/*                                                                  */
-/* **************************************************************** */
-
-/* String to pass to system ().  This is for the LIST, VIEW and RENAME
-   commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
-     char *arg;
-@{
-  if (!arg)
-    arg = "";
-
-  sprintf (syscom, "ls -FClg %s", arg);
-  return (system (syscom));
-@}
-
-com_view (arg)
-     char *arg;
-@{
-  if (!valid_argument ("view", arg))
-    return 1;
-
-  sprintf (syscom, "more %s", arg);
-  return (system (syscom));
-@}
-
-com_rename (arg)
-     char *arg;
-@{
-  too_dangerous ("rename");
-  return (1);
-@}
-
-com_stat (arg)
-     char *arg;
-@{
-  struct stat finfo;
-
-  if (!valid_argument ("stat", arg))
-    return (1);
-
-  if (stat (arg, &finfo) == -1)
-    @{
-      perror (arg);
-      return (1);
-    @}
-
-  printf ("Statistics for `%s':\n", arg);
-
-  printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
-          finfo.st_nlink,
-          (finfo.st_nlink == 1) ? "" : "s",
-          finfo.st_size,
-          (finfo.st_size == 1) ? "" : "s");
-  printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
-  printf ("      Last access at: %s", ctime (&finfo.st_atime));
-  printf ("    Last modified at: %s", ctime (&finfo.st_mtime));
-  return (0);
-@}
-
-com_delete (arg)
-     char *arg;
-@{
-  too_dangerous ("delete");
-  return (1);
-@}
-
-/* Print out help for ARG, or for all of the commands if ARG is
-   not present. */
-com_help (arg)
-     char *arg;
-@{
-  register int i;
-  int printed = 0;
-
-  for (i = 0; commands[i].name; i++)
-    @{
-      if (!*arg || (strcmp (arg, commands[i].name) == 0))
-        @{
-          printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
-          printed++;
-        @}
-    @}
-
-  if (!printed)
-    @{
-      printf ("No commands match `%s'.  Possibilties are:\n", arg);
-
-      for (i = 0; commands[i].name; i++)
-        @{
-          /* Print in six columns. */
-          if (printed == 6)
-            @{
-              printed = 0;
-              printf ("\n");
-            @}
-
-          printf ("%s\t", commands[i].name);
-          printed++;
-        @}
-
-      if (printed)
-        printf ("\n");
-    @}
-  return (0);
-@}
-
-/* Change to the directory ARG. */
-com_cd (arg)
-     char *arg;
-@{
-  if (chdir (arg) == -1)
-    @{
-      perror (arg);
-      return 1;
-    @}
-
-  com_pwd ("");
-  return (0);
-@}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
-     char *ignore;
-@{
-  char dir[1024], *s;
-
-  s = getcwd (dir, sizeof(dir) - 1);
-  if (s == 0)
-    @{
-      printf ("Error getting pwd: %s\n", dir);
-      return 1;
-    @}
-
-  printf ("Current directory is %s\n", dir);
-  return 0;
-@}
-
-/* The user wishes to quit using this program.  Just set DONE
-   non-zero. */
-com_quit (arg)
-     char *arg;
-@{
-  done = 1;
-  return (0);
-@}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
-     char *caller;
-@{
-  fprintf (stderr,
-           "%s: Too dangerous for me to distribute.\n"
-           caller);
-  fprintf (stderr, "Write it yourself.\n");
-@}
-
-/* Return non-zero if ARG is a valid argument for CALLER,
-   else print an error message and return zero. */
-int
-valid_argument (caller, arg)
-     char *caller, *arg;
-@{
-  if (!arg || !*arg)
-    @{
-      fprintf (stderr, "%s: Argument required.\n", caller);
-      return (0);
-    @}
-
-  return (1);
-@}
-@end smallexample
diff --git a/doc/rluser.texinfo b/doc/rluser.texinfo
deleted file mode 100644 (file)
index 94f851e..0000000
+++ /dev/null
@@ -1,1796 +0,0 @@
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rluser.info
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@ignore
-This file documents the end user interface to the GNU command line
-editing features.  It is to be an appendix to manuals for programs which
-use these features.  There is a document entitled "readline.texinfo"
-which contains both end-user and programmer documentation for the
-GNU Readline Library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@comment If you are including this manual as an appendix, then set the
-@comment variable readline-appendix.
-
-@ifclear BashFeatures
-@defcodeindex bt
-@end ifclear
-
-@node Command Line Editing
-@chapter Command Line Editing
-
-This chapter describes the basic features of the @sc{gnu}
-command line editing interface.
-@ifset BashFeatures
-Command line editing is provided by the Readline library, which is
-used by several different programs, including Bash.
-@end ifset
-
-@menu
-* Introduction and Notation::  Notation used in this text.
-* Readline Interaction::       The minimum set of commands for editing a line.
-* Readline Init File::         Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
-                               available for binding
-* Readline vi Mode::           A short description of how to make Readline
-                               behave like the vi editor.
-@ifset BashFeatures
-* Programmable Completion::    How to specify the possible completions for
-                               a specific command.
-* Programmable Completion Builtins::   Builtin commands to specify how to
-                               complete arguments for a particular command.
-@end ifset
-@end menu
-
-@node Introduction and Notation
-@section Introduction to Line Editing
-
-The following paragraphs describe the notation used to represent
-keystrokes.
-
-The text @kbd{C-k} is read as `Control-K' and describes the character
-produced when the @key{k} key is pressed while the Control key
-is depressed.
-
-The text @kbd{M-k} is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the @key{k}
-key is pressed.
-The Meta key is labeled @key{ALT} on many keyboards.
-On keyboards with two keys labeled @key{ALT} (usually to either side of
-the space bar), the @key{ALT} on the left side is generally set to
-work as a Meta key.
-The @key{ALT} key on the right may also be configured to work as a
-Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
-If you do not have a Meta or @key{ALT} key, or another key working as
-a Meta key, the identical keystroke can be generated by typing @key{ESC}
-@emph{first}, and then typing @key{k}.
-Either process is known as @dfn{metafying} the @key{k} key.
-
-The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the
-character produced by @dfn{metafying} @kbd{C-k}.
-
-In addition, several keys have their own names.  Specifically,
-@key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all
-stand for themselves when seen in this text, or in an init file
-(@pxref{Readline Init File}).
-If your keyboard lacks a @key{LFD} key, typing @key{C-j} will
-produce the desired character.
-The @key{RET} key may be labeled @key{Return} or @key{Enter} on
-some keyboards.
-
-@node Readline Interaction
-@section Readline Interaction
-@cindex interaction, readline
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled.  The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line.  Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections.  Then, when you are satisfied with
-the line, you simply press @key{RET}.  You do not have to be at the
-end of the line to press @key{RET}; the entire line is accepted
-regardless of the location of the cursor within the line.
-
-@menu
-* Readline Bare Essentials::   The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands::  How to delete text, and how to get it back!
-* Readline Arguments::         Giving numeric arguments to commands.
-* Searching::                  Searching through previous lines.
-@end menu
-
-@node Readline Bare Essentials
-@subsection Readline Bare Essentials
-@cindex notation, readline
-@cindex command editing
-@cindex editing command lines
-
-In order to enter characters into the line, simply type them.  The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right.  If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-
-Sometimes you may mistype a character, and
-not notice the error until you have typed several other characters.  In
-that case, you can type @kbd{C-b} to move the cursor to the left, and then
-correct your mistake.  Afterwards, you can move the cursor to the right
-with @kbd{C-f}.
-
-When you add text in the middle of a line, you will notice that characters
-to the right of the cursor are `pushed over' to make room for the text
-that you have inserted.  Likewise, when you delete text behind the cursor,
-characters to the right of the cursor are `pulled back' to fill in the
-blank space created by the removal of the text.  A list of the bare
-essentials for editing the text of an input line follows.
-
-@table @asis
-@item @kbd{C-b}
-Move back one character.
-@item @kbd{C-f}
-Move forward one character.
-@item @key{DEL} or @key{Backspace}
-Delete the character to the left of the cursor.
-@item @kbd{C-d}
-Delete the character underneath the cursor.
-@item @w{Printing characters}
-Insert the character into the line at the cursor.
-@item @kbd{C-_} or @kbd{C-x C-u}
-Undo the last editing command.  You can undo all the way back to an
-empty line.
-@end table
-
-@noindent
-(Depending on your configuration, the @key{Backspace} key be set to
-delete the character to the left of the cursor and the @key{DEL} key set
-to delete the character underneath the cursor, like @kbd{C-d}, rather
-than the character to the left of the cursor.)
-
-@node Readline Movement Commands
-@subsection Readline Movement Commands
-
-
-The above table describes the most basic keystrokes that you need
-in order to do editing of the input line.  For your convenience, many
-other commands have been added in addition to @kbd{C-b}, @kbd{C-f},
-@kbd{C-d}, and @key{DEL}.  Here are some commands for moving more rapidly
-about the line.
-
-@table @kbd
-@item C-a
-Move to the start of the line.
-@item C-e
-Move to the end of the line.
-@item M-f
-Move forward a word, where a word is composed of letters and digits.
-@item M-b
-Move backward a word.
-@item C-l
-Clear the screen, reprinting the current line at the top.
-@end table
-
-Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves
-forward a word.  It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-
-@node Readline Killing Commands
-@subsection Readline Killing Commands
-
-@cindex killing text
-@cindex yanking text
-
-@dfn{Killing} text means to delete the text from the line, but to save
-it away for later use, usually by @dfn{yanking} (re-inserting)
-it back into the line.
-(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
-
-If the description for a command says that it `kills' text, then you can
-be sure that you can get the text back in a different (or the same)
-place later.
-
-When you use a kill command, the text is saved in a @dfn{kill-ring}.
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all.  The kill
-ring is not line specific; the text that you killed on a previously
-typed line is available to be yanked back later, when you are typing
-another line.
-@cindex kill ring
-
-Here is the list of commands for killing text.
-
-@table @kbd
-@item C-k
-Kill the text from the current cursor position to the end of the line.
-
-@item M-d
-Kill from the cursor to the end of the current word, or, if between
-words, to the end of the next word.
-Word boundaries are the same as those used by @kbd{M-f}.
-
-@item M-@key{DEL}
-Kill from the cursor the start of the current word, or, if between
-words, to the start of the previous word.
-Word boundaries are the same as those used by @kbd{M-b}.
-
-@item C-w
-Kill from the cursor to the previous whitespace.  This is different than
-@kbd{M-@key{DEL}} because the word boundaries differ.
-
-@end table
-
-Here is how to @dfn{yank} the text back into the line.  Yanking
-means to copy the most-recently-killed text from the kill buffer.
-
-@table @kbd
-@item C-y
-Yank the most recently killed text back into the buffer at the cursor.
-
-@item M-y
-Rotate the kill-ring, and yank the new top.  You can only do this if
-the prior command is @kbd{C-y} or @kbd{M-y}.
-@end table
-
-@node Readline Arguments
-@subsection Readline Arguments
-
-You can pass numeric arguments to Readline commands.  Sometimes the
-argument acts as a repeat count, other times it is the @i{sign} of the
-argument that is significant.  If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction.  For example, to kill text back to the
-start of the line, you might type @samp{M-- C-k}.
-
-The general way to pass numeric arguments to a command is to type meta
-digits before the command.  If the first `digit' typed is a minus
-sign (@samp{-}), then the sign of the argument will be negative.  Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command.  For example, to give
-the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d},
-which will delete the next ten characters on the input line.
-
-@node Searching
-@subsection Searching for Commands in the History
-
-Readline provides commands for searching through the command history
-@ifset BashFeatures
-(@pxref{Bash History Facilities})
-@end ifset
-for lines containing a specified string.
-There are two search modes:  @dfn{incremental} and @dfn{non-incremental}.
-
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, Readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-@kbd{C-r}.  Typing @kbd{C-s} searches forward through the history.
-The characters present in the value of the @code{isearch-terminators} variable
-are used to terminate an incremental search.
-If that variable has not been assigned a value, the @key{ESC} and
-@kbd{C-J} characters will terminate an incremental search.
-@kbd{C-g} will abort an incremental search and restore the original line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-
-To find other matching entries in the history list, type @kbd{C-r} or
-@kbd{C-s} as appropriate.
-This will search backward or forward in the history for the next
-entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate
-the search and execute that command.
-For instance, a @key{RET} will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-
-Readline remembers the last incremental search string.  If two
-@kbd{C-r}s are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-
-Non-incremental searches read the entire search string before starting
-to search for matching history lines.  The search string may be
-typed by the user or be part of the contents of the current line.
-
-@node Readline Init File
-@section Readline Init File
-@cindex initialization file, readline
-
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings.
-Any user can customize programs that use Readline by putting
-commands in an @dfn{inputrc} file, conventionally in his home directory.
-The name of this
-@ifset BashFeatures
-file is taken from the value of the shell variable @env{INPUTRC}.  If
-@end ifset
-@ifclear BashFeatures
-file is taken from the value of the environment variable @env{INPUTRC}.  If
-@end ifclear
-that variable is unset, the default is @file{~/.inputrc}.
-
-When a program which uses the Readline library starts up, the
-init file is read, and the key bindings are set.
-
-In addition, the @code{C-x C-r} command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-@menu
-* Readline Init File Syntax::  Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs::        Conditional key bindings in the inputrc file.
-
-* Sample Init File::           An example inputrc file.
-@end menu
-
-@node Readline Init File Syntax
-@subsection Readline Init File Syntax
-
-There are only a few basic constructs allowed in the
-Readline init file.  Blank lines are ignored.
-Lines beginning with a @samp{#} are comments.
-Lines beginning with a @samp{$} indicate conditional
-constructs (@pxref{Conditional Init Constructs}).  Other lines
-denote variable settings and key bindings.
-
-@table @asis
-@item Variable Settings
-You can modify the run-time behavior of Readline by
-altering the values of variables in Readline
-using the @code{set} command within the init file.
-The syntax is simple:
-
-@example
-set @var{variable} @var{value}
-@end example
-
-@noindent
-Here, for example, is how to
-change from the default Emacs-like key binding to use
-@code{vi} line editing commands:
-
-@example
-set editing-mode vi
-@end example
-
-Variable names and values, where appropriate, are recognized without regard
-to case. 
-
-@ifset BashFeatures
-The @w{@code{bind -V}} command lists the current Readline variable names
-and values.  @xref{Bash Builtins}.
-@end ifset
-
-A great deal of run-time behavior is changeable with the following
-variables.
-
-@cindex variables, readline
-@table @code
-
-@item bell-style
-@vindex bell-style
-Controls what happens when Readline wants to ring the terminal bell.
-If set to @samp{none}, Readline never rings the bell.  If set to
-@samp{visible}, Readline uses a visible bell if one is available.
-If set to @samp{audible} (the default), Readline attempts to ring
-the terminal's bell.
-
-@item comment-begin
-@vindex comment-begin
-The string to insert at the beginning of the line when the
-@code{insert-comment} command is executed.  The default value
-is @code{"#"}.
-
-@item completion-ignore-case
-If set to @samp{on}, Readline performs filename matching and completion
-in a case-insensitive fashion.
-The default value is @samp{off}.
-
-@item completion-query-items
-@vindex completion-query-items
-The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities.  If the
-number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-The default limit is @code{100}.
-
-@item convert-meta
-@vindex convert-meta
-If set to @samp{on}, Readline will convert characters with the
-eighth bit set to an @sc{ascii} key sequence by stripping the eighth
-bit and prefixing an @key{ESC} character, converting them to a
-meta-prefixed key sequence.  The default value is @samp{on}.
-
-@item disable-completion
-@vindex disable-completion
-If set to @samp{On}, Readline will inhibit word completion.
-Completion  characters will be inserted into the line as if they had
-been mapped to @code{self-insert}.  The default is @samp{off}.
-
-@item editing-mode
-@vindex editing-mode
-The @code{editing-mode} variable controls which default set of
-key bindings is used.  By default, Readline starts up in Emacs editing
-mode, where the keystrokes are most similar to Emacs.  This variable can be
-set to either @samp{emacs} or @samp{vi}.
-
-@item enable-keypad
-@vindex enable-keypad
-When set to @samp{on}, Readline will try to enable the application
-keypad when it is called.  Some systems need this to enable the
-arrow keys.  The default is @samp{off}.
-
-@item expand-tilde
-@vindex expand-tilde
-If set to @samp{on}, tilde expansion is performed when Readline
-attempts word completion.  The default is @samp{off}.
-
-@vindex history-preserve-point
-If set to @samp{on}, the history code attempts to place point at the
-same location on each history line retrived with @code{previous-history}
-or @code{next-history}.
-
-@item horizontal-scroll-mode
-@vindex horizontal-scroll-mode
-This variable can be set to either @samp{on} or @samp{off}.  Setting it
-to @samp{on} means that the text of the lines being edited will scroll
-horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line.  By default,
-this variable is set to @samp{off}.
-
-@item input-meta
-@vindex input-meta
-@vindex meta-flag
-If set to @samp{on}, Readline will enable eight-bit input (it
-will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support.  The
-default value is @samp{off}.  The name @code{meta-flag} is a
-synonym for this variable.
-
-@item isearch-terminators
-@vindex isearch-terminators
-The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (@pxref{Searching}).
-If this variable has not been given a value, the characters @key{ESC} and
-@kbd{C-J} will terminate an incremental search.
-
-@item keymap
-@vindex keymap
-Sets Readline's idea of the current keymap for key binding commands.
-Acceptable @code{keymap} names are
-@code{emacs},
-@code{emacs-standard},
-@code{emacs-meta},
-@code{emacs-ctlx},
-@code{vi},
-@code{vi-move},
-@code{vi-command}, and
-@code{vi-insert}.
-@code{vi} is equivalent to @code{vi-command}; @code{emacs} is
-equivalent to @code{emacs-standard}.  The default value is @code{emacs}.
-The value of the @code{editing-mode} variable also affects the
-default keymap.
-
-@item mark-directories
-If set to @samp{on}, completed directory names have a slash
-appended.  The default is @samp{on}.
-
-@item mark-modified-lines
-@vindex mark-modified-lines
-This variable, when set to @samp{on}, causes Readline to display an
-asterisk (@samp{*}) at the start of history lines which have been modified.
-This variable is @samp{off} by default.
-
-@item mark-symlinked-directories
-@vindex mark-symlinked-directories
-If set to @samp{on}, completed names which are symbolic links
-to directories have a slash appended (subject to the value of
-@code{mark-directories}).
-The default is @samp{off}.
-
-@item match-hidden-files
-@vindex match-hidden-files
-This variable, when set to @samp{on}, causes Readline to match files whose
-names begin with a @samp{.} (hidden files) when performing filename
-completion, unless the leading @samp{.} is
-supplied by the user in the filename to be completed.
-This variable is @samp{on} by default.
-
-@item output-meta
-@vindex output-meta
-If set to @samp{on}, Readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence.  The default is @samp{off}.
-
-@item page-completions
-@vindex page-completions
-If set to @samp{on}, Readline uses an internal @code{more}-like pager
-to display a screenful of possible completions at a time.
-This variable is @samp{on} by default.
-
-@item print-completions-horizontally
-If set to @samp{on}, Readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-The default is @samp{off}.
-
-@item show-all-if-ambiguous
-@vindex show-all-if-ambiguous
-This alters the default behavior of the completion functions.  If
-set to @samp{on}, 
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-The default value is @samp{off}.
-
-@item visible-stats
-@vindex visible-stats
-If set to @samp{on}, a character denoting a file's type
-is appended to the filename when listing possible
-completions.  The default is @samp{off}.
-
-@end table
-
-@item Key Bindings
-The syntax for controlling key bindings in the init file is
-simple.  First you need to find the name of the command that you
-want to change.  The following sections contain tables of the command
-name, the default keybinding, if any, and a short description of what
-the command does.
-
-Once you know the name of the command, simply place on a line
-in the init file the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command.  The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
-
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a @var{macro}).
-
-@ifset BashFeatures
-The @w{@code{bind -p}} command displays Readline function names and
-bindings in a format that can put directly into an initialization file.
-@xref{Bash Builtins}.
-@end ifset
-
-@table @asis
-@item @w{@var{keyname}: @var{function-name} or @var{macro}}
-@var{keyname} is the name of a key spelled out in English.  For example:
-@example
-Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "> output"
-@end example
-
-In the above example, @kbd{C-u} is bound to the function
-@code{universal-argument},
-@kbd{M-DEL} is bound to the function @code{backward-kill-word}, and
-@kbd{C-o} is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-@samp{> output} into the line).
-
-A number of symbolic character names are recognized while
-processing this key binding syntax:
-@var{DEL},
-@var{ESC},
-@var{ESCAPE},
-@var{LFD},
-@var{NEWLINE},
-@var{RET},
-@var{RETURN},
-@var{RUBOUT},
-@var{SPACE},
-@var{SPC},
-and
-@var{TAB}.
-
-@item @w{"@var{keyseq}": @var{function-name} or @var{macro}}
-@var{keyseq} differs from @var{keyname} above in that strings
-denoting an entire key sequence can be specified, by placing
-the key sequence in double quotes.  Some @sc{gnu} Emacs style key
-escapes can be used, as in the following example, but the
-special character names are not recognized.
-
-@example
-"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-@end example
-
-In the above example, @kbd{C-u} is again bound to the function
-@code{universal-argument} (just as it was in the first example),
-@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file},
-and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert
-the text @samp{Function Key 1}.
-
-@end table
-
-The following @sc{gnu} Emacs style escape sequences are available when
-specifying key sequences:
-
-@table @code
-@item @kbd{\C-}
-control prefix
-@item @kbd{\M-}
-meta prefix
-@item @kbd{\e}
-an escape character
-@item @kbd{\\}
-backslash
-@item @kbd{\"}
-@key{"}, a double quotation mark
-@item @kbd{\'}
-@key{'}, a single quote or apostrophe
-@end table
-
-In addition to the @sc{gnu} Emacs style escape sequences, a second
-set of backslash escapes is available:
-
-@table @code
-@item \a
-alert (bell)
-@item \b
-backspace
-@item \d
-delete
-@item \f
-form feed
-@item \n
-newline
-@item \r
-carriage return
-@item \t
-horizontal tab
-@item \v
-vertical tab
-@item \@var{nnn}
-the eight-bit character whose value is the octal value @var{nnn}
-(one to three digits)
-@item \x@var{HH}
-the eight-bit character whose value is the hexadecimal value @var{HH}
-(one or two hex digits)
-@end table
-
-When entering the text of a macro, single or double quotes must
-be used to indicate a macro definition.
-Unquoted text is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including @samp{"} and @samp{'}.
-For example, the following binding will make @samp{@kbd{C-x} \}
-insert a single @samp{\} into the line:
-@example
-"\C-x\\": "\\"
-@end example
-
-@end table
-
-@node Conditional Init Constructs
-@subsection Conditional Init Constructs
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests.  There are four parser directives used.
-
-@table @code
-@item $if
-The @code{$if} construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-Readline.  The text of the test extends to the end of the line;
-no characters are required to isolate it.
-
-@table @code
-@item mode
-The @code{mode=} form of the @code{$if} directive is used to test
-whether Readline is in @code{emacs} or @code{vi} mode.
-This may be used in conjunction
-with the @samp{set keymap} command, for instance, to set bindings in
-the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if
-Readline is starting out in @code{emacs} mode.
-
-@item term
-The @code{term=} form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys.  The word on the right side of the
-@samp{=} is tested against both the full name of the terminal and
-the portion of the terminal name before the first @samp{-}.  This
-allows @code{sun} to match both @code{sun} and @code{sun-cmd},
-for instance.
-
-@item application
-The @var{application} construct is used to include
-application-specific settings.  Each program using the Readline
-library sets the @var{application name}, and you can test for
-a particular value. 
-This could be used to bind key sequences to functions useful for
-a specific program.  For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-@example
-$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-@end example
-@end table
-
-@item $endif
-This command, as seen in the previous example, terminates an
-@code{$if} command.
-
-@item $else
-Commands in this branch of the @code{$if} directive are executed if
-the test fails.
-
-@item $include
-This directive takes a single filename as an argument and reads commands
-and bindings from that file.
-For example, the following directive reads from @file{/etc/inputrc}:
-@example
-$include /etc/inputrc
-@end example
-@end table
-
-@node Sample Init File
-@subsection Sample Init File
-
-Here is an example of an @var{inputrc} file.  This illustrates key
-binding, variable assignment, and conditional syntax.
-
-@example
-@page
-# This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library.  Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs 
-
-$if mode=emacs
-
-Meta-Control-h:        backward-kill-word      Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD":        backward-char
-#"\M-OC":        forward-char
-#"\M-OA":        previous-history
-#"\M-OB":        next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D":        backward-char
-"\M-[C":        forward-char
-"\M-[A":        previous-history
-"\M-[B":        next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD":       backward-char
-#"\M-\C-OC":       forward-char
-#"\M-\C-OA":       previous-history
-#"\M-\C-OB":       next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D":       backward-char
-#"\M-\C-[C":       forward-char
-#"\M-\C-[A":       previous-history
-#"\M-\C-[B":       next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding.  This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-@end example
-
-@node Bindable Readline Commands
-@section Bindable Readline Commands
-
-@menu
-* Commands For Moving::                Moving about the line.
-* Commands For History::       Getting at previous lines.
-* Commands For Text::          Commands for changing text.
-* Commands For Killing::       Commands for killing and yanking.
-* Numeric Arguments::          Specifying numeric arguments, repeat counts.
-* Commands For Completion::    Getting Readline to do the typing for you.
-* Keyboard Macros::            Saving and re-executing typed characters
-* Miscellaneous Commands::     Other miscellaneous commands.
-@end menu
-
-This section describes Readline commands that may be bound to key
-sequences.
-@ifset BashFeatures
-You can list your key bindings by executing
-@w{@code{bind -P}} or, for a more terse format, suitable for an
-@var{inputrc} file, @w{@code{bind -p}}.  (@xref{Bash Builtins}.)
-@end ifset
-Command names without an accompanying key sequence are unbound by default.
-
-In the following descriptions, @dfn{point} refers to the current cursor
-position, and @dfn{mark} refers to a cursor position saved by the
-@code{set-mark} command.
-The text between the point and mark is referred to as the @dfn{region}.
-
-@node Commands For Moving
-@subsection Commands For Moving
-@ftable @code
-@item beginning-of-line (C-a)
-Move to the start of the current line.
-
-@item end-of-line (C-e)
-Move to the end of the line.
-
-@item forward-char (C-f)
-Move forward a character.
-
-@item backward-char (C-b)
-Move back a character.
-
-@item forward-word (M-f)
-Move forward to the end of the next word.  Words are composed of
-letters and digits.
-
-@item backward-word (M-b)
-Move back to the start of the current or previous word.  Words are
-composed of letters and digits.
-
-@item clear-screen (C-l)
-Clear the screen and redraw the current line,
-leaving the current line at the top of the screen.
-
-@item redraw-current-line ()
-Refresh the current line.  By default, this is unbound.
-
-@end ftable
-
-@node Commands For History
-@subsection Commands For Manipulating The History
-
-@ftable @code
-@item accept-line (Newline or Return)
-@ifset BashFeatures
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, add it to the history list according to the setting of
-the @env{HISTCONTROL} and @env{HISTIGNORE} variables.
-If this line is a modified history line, then restore the history line
-to its original state.
-@end ifset
-@ifclear BashFeatures
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-@code{add_history()}.
-If this line is a modified history line, the history line is restored
-to its original state.
-@end ifclear
-
-@item previous-history (C-p)
-Move `back' through the history list, fetching the previous command.
-
-@item next-history (C-n)
-Move `forward' through the history list, fetching the next command.
-
-@item beginning-of-history (M-<)
-Move to the first line in the history.
-
-@item end-of-history (M->)
-Move to the end of the input history, i.e., the line currently
-being entered.
-
-@item reverse-search-history (C-r)
-Search backward starting at the current line and moving `up' through
-the history as necessary.  This is an incremental search.
-
-@item forward-search-history (C-s)
-Search forward starting at the current line and moving `down' through
-the the history as necessary.  This is an incremental search.
-
-@item non-incremental-reverse-search-history (M-p)
-Search backward starting at the current line and moving `up'
-through the history as necessary using a non-incremental search
-for a string supplied by the user.
-
-@item non-incremental-forward-search-history (M-n)
-Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
-for a string supplied by the user.
-
-@item history-search-forward ()
-Search forward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-By default, this command is unbound.
-
-@item history-search-backward ()
-Search backward through the history for the string of characters
-between the start of the current line and the point.  This
-is a non-incremental search.  By default, this command is unbound.
-
-@item yank-nth-arg (M-C-y)
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument @var{n},
-insert the @var{n}th word from the previous command (the words
-in the previous command begin with word 0).  A negative argument
-inserts the @var{n}th word from the end of the previous command.
-
-@item yank-last-arg (M-. or M-_)
-Insert last argument to the previous command (the last word of the
-previous history entry).  With an
-argument, behave exactly like @code{yank-nth-arg}.
-Successive calls to @code{yank-last-arg} move back through the history
-list, inserting the last argument of each line in turn.
-
-@end ftable
-
-@node Commands For Text
-@subsection Commands For Changing Text
-
-@ftable @code
-@item delete-char (C-d)
-Delete the character at point.  If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to @code{delete-char}, then
-return @sc{eof}.
-
-@item backward-delete-char (Rubout)
-Delete the character behind the cursor.  A numeric argument means
-to kill the characters instead of deleting them.
-
-@item forward-backward-delete-char ()
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted.  By default, this is not bound to a key.
-
-@item quoted-insert (C-q or C-v)
-Add the next character typed to the line verbatim.  This is
-how to insert key sequences like @kbd{C-q}, for example.
-
-@ifclear BashFeatures
-@item tab-insert (M-@key{TAB})
-Insert a tab character.
-@end ifclear
-
-@item self-insert (a, b, A, 1, !, @dots{})
-Insert yourself.
-
-@item transpose-chars (C-t)
-Drag the character before the cursor forward over
-the character at the cursor, moving the
-cursor forward as well.  If the insertion point
-is at the end of the line, then this
-transposes the last two characters of the line.
-Negative arguments have no effect.
-
-@item transpose-words (M-t)
-Drag the word before point past the word after point,
-moving point past that word as well.
-If the insertion point is at the end of the line, this transposes
-the last two words on the line.
-
-@item upcase-word (M-u)
-Uppercase the current (or following) word.  With a negative argument,
-uppercase the previous word, but do not move the cursor.
-
-@item downcase-word (M-l)
-Lowercase the current (or following) word.  With a negative argument,
-lowercase the previous word, but do not move the cursor.
-
-@item capitalize-word (M-c)
-Capitalize the current (or following) word.  With a negative argument,
-capitalize the previous word, but do not move the cursor.
-
-@item overwrite-mode ()
-Toggle overwrite mode.  With an explicit positive numeric argument,
-switches to overwrite mode.  With an explicit non-positive numeric
-argument, switches to insert mode.  This command affects only
-@code{emacs} mode; @code{vi} mode does overwrite differently.
-Each call to @code{readline()} starts in insert mode.
-
-In overwrite mode, characters bound to @code{self-insert} replace
-the text at point rather than pushing the text to the right.
-Characters bound to @code{backward-delete-char} replace the character
-before point with a space.
-
-By default, this command is unbound.
-
-@end ftable
-
-@node Commands For Killing
-@subsection Killing And Yanking
-
-@ftable @code
-
-@item kill-line (C-k)
-Kill the text from point to the end of the line.
-
-@item backward-kill-line (C-x Rubout)
-Kill backward to the beginning of the line.
-
-@item unix-line-discard (C-u)
-Kill backward from the cursor to the beginning of the current line.
-
-@item kill-whole-line ()
-Kill all characters on the current line, no matter where point is.
-By default, this is unbound.
-
-@item kill-word (M-d)
-Kill from point to the end of the current word, or if between
-words, to the end of the next word.
-Word boundaries are the same as @code{forward-word}.
-
-@item backward-kill-word (M-@key{DEL})
-Kill the word behind point.
-Word boundaries are the same as @code{backward-word}.
-
-@item unix-word-rubout (C-w)
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-
-@item delete-horizontal-space ()
-Delete all spaces and tabs around point.  By default, this is unbound.
-
-@item kill-region ()
-Kill the text in the current region.
-By default, this command is unbound.
-
-@item copy-region-as-kill ()
-Copy the text in the region to the kill buffer, so it can be yanked
-right away.  By default, this command is unbound.
-
-@item copy-backward-word ()
-Copy the word before point to the kill buffer.
-The word boundaries are the same as @code{backward-word}.
-By default, this command is unbound.
-
-@item copy-forward-word ()
-Copy the word following point to the kill buffer.
-The word boundaries are the same as @code{forward-word}.
-By default, this command is unbound.
-
-@item yank (C-y)
-Yank the top of the kill ring into the buffer at point.
-
-@item yank-pop (M-y)
-Rotate the kill-ring, and yank the new top.  You can only do this if
-the prior command is @code{yank} or @code{yank-pop}.
-@end ftable
-
-@node Numeric Arguments
-@subsection Specifying Numeric Arguments
-@ftable @code
-
-@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--})
-Add this digit to the argument already accumulating, or start a new
-argument.  @kbd{M--} starts a negative argument.
-
-@item universal-argument ()
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing @code{universal-argument}
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-By default, this is not bound to a key.
-@end ftable
-
-@node Commands For Completion
-@subsection Letting Readline Type For You
-
-@ftable @code
-@item complete (@key{TAB})
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-@ifset BashFeatures
-Bash attempts completion treating the text as a variable (if the
-text begins with @samp{$}), username (if the text begins with
-@samp{~}), hostname (if the text begins with @samp{@@}), or
-command (including aliases and functions) in turn.  If none 
-of these produces a match, filename completion is attempted.
-@end ifset
-@ifclear BashFeatures
-The default is filename completion.
-@end ifclear
-
-@item possible-completions (M-?)
-List the possible completions of the text before point.
-
-@item insert-completions (M-*)
-Insert all completions of the text before point that would have
-been generated by @code{possible-completions}.
-
-@item menu-complete ()
-Similar to @code{complete}, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of @code{menu-complete} steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of @code{bell-style})
-and the original text is restored.
-An argument of @var{n} moves @var{n} positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to @key{TAB}, but is unbound
-by default.
-
-@item delete-char-or-list ()
-Deletes the character under the cursor if not at the beginning or
-end of the line (like @code{delete-char}).
-If at the end of the line, behaves identically to
-@code{possible-completions}.
-This command is unbound by default.
-
-@ifset BashFeatures
-@item complete-filename (M-/)
-Attempt filename completion on the text before point.
-
-@item possible-filename-completions (C-x /)
-List the possible completions of the text before point,
-treating it as a filename.
-
-@item complete-username (M-~)
-Attempt completion on the text before point, treating
-it as a username.
-
-@item possible-username-completions (C-x ~)
-List the possible completions of the text before point,
-treating it as a username.
-
-@item complete-variable (M-$)
-Attempt completion on the text before point, treating
-it as a shell variable.
-
-@item possible-variable-completions (C-x $)
-List the possible completions of the text before point,
-treating it as a shell variable.
-
-@item complete-hostname (M-@@)
-Attempt completion on the text before point, treating
-it as a hostname.
-
-@item possible-hostname-completions (C-x @@)
-List the possible completions of the text before point,
-treating it as a hostname.
-
-@item complete-command (M-!)
-Attempt completion on the text before point, treating
-it as a command name.  Command completion attempts to
-match the text against aliases, reserved words, shell
-functions, shell builtins, and finally executable filenames,
-in that order.
-
-@item possible-command-completions (C-x !)
-List the possible completions of the text before point,
-treating it as a command name.
-
-@item dynamic-complete-history (M-@key{TAB})
-Attempt completion on the text before point, comparing
-the text against lines from the history list for possible
-completion matches.
-
-@item complete-into-braces (M-@{)
-Perform filename completion and insert the list of possible completions
-enclosed within braces so the list is available to the shell
-(@pxref{Brace Expansion}).
-
-@end ifset
-@end ftable
-
-@node Keyboard Macros
-@subsection Keyboard Macros
-@ftable @code
-
-@item start-kbd-macro (C-x ()
-Begin saving the characters typed into the current keyboard macro.
-
-@item end-kbd-macro (C-x ))
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-
-@item call-last-kbd-macro (C-x e)
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-
-@end ftable
-
-@node Miscellaneous Commands
-@subsection Some Miscellaneous Commands
-@ftable @code
-
-@item re-read-init-file (C-x C-r)
-Read in the contents of the @var{inputrc} file, and incorporate
-any bindings or variable assignments found there.
-
-@item abort (C-g)
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-@code{bell-style}).
-
-@item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{})
-If the metafied character @var{x} is lowercase, run the command
-that is bound to the corresponding uppercase character.
-
-@item prefix-meta (@key{ESC})
-Metafy the next character typed.  This is for keyboards
-without a meta key.  Typing @samp{@key{ESC} f} is equivalent to typing
-@kbd{M-f}.
-
-@item undo (C-_ or C-x C-u)
-Incremental undo, separately remembered for each line.
-
-@item revert-line (M-r)
-Undo all changes made to this line.  This is like executing the @code{undo}
-command enough times to get back to the beginning.
-
-@ifset BashFeatures
-@item tilde-expand (M-&)
-@end ifset
-@ifclear BashFeatures
-@item tilde-expand (M-~)
-@end ifclear
-Perform tilde expansion on the current word.
-
-@item set-mark (C-@@)
-Set the mark to the point.  If a
-numeric argument is supplied, the mark is set to that position.
-
-@item exchange-point-and-mark (C-x C-x)
-Swap the point with the mark.  The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-
-@item character-search (C-])
-A character is read and point is moved to the next occurrence of that
-character.  A negative count searches for previous occurrences.
-
-@item character-search-backward (M-C-])
-A character is read and point is moved to the previous occurrence
-of that character.  A negative count searches for subsequent
-occurrences.
-
-@item insert-comment (M-#)
-Without a numeric argument, the value of the @code{comment-begin}
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle:  if
-the characters at the beginning of the line do not match the value
-of @code{comment-begin}, the value is inserted, otherwise
-the characters in @code{comment-begin} are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-@ifset BashFeatures
-The default value of @code{comment-begin} causes this command
-to make the current line a shell comment.
-If a numeric argument causes the comment character to be removed, the line
-will be executed by the shell.
-@end ifset
-
-@item dump-functions ()
-Print all of the functions and their key bindings to the
-Readline output stream.  If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file.  This command is unbound by default.
-
-@item dump-variables ()
-Print all of the settable variables and their values to the
-Readline output stream.  If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file.  This command is unbound by default.
-
-@item dump-macros ()
-Print all of the Readline key sequences bound to macros and the
-strings they output.  If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file.  This command is unbound by default.
-
-@ifset BashFeatures
-@item glob-complete-word (M-g)
-The word before point is treated as a pattern for pathname expansion,
-with an asterisk implicitly appended.  This pattern is used to
-generate a list of matching file names for possible completions.
-
-@item glob-expand-word (C-x *)
-The word before point is treated as a pattern for pathname expansion,
-and the list of matching file names is inserted, replacing the word.
-If a numeric argument is supplied, a @samp{*} is appended before
-pathname expansion.
-
-@item glob-list-expansions (C-x g)
-The list of expansions that would have been generated by
-@code{glob-expand-word} is displayed, and the line is redrawn.
-If a numeric argument is supplied, a @samp{*} is appended before
-pathname expansion.
-
-@item display-shell-version (C-x C-v)
-Display version information about the current instance of Bash.
-
-@item shell-expand-line (M-C-e)
-Expand the line as the shell does.
-This performs alias and history expansion as well as all of the shell
-word expansions (@pxref{Shell Expansions}).
-
-@item history-expand-line (M-^)
-Perform history expansion on the current line.
-
-@item magic-space ()
-Perform history expansion on the current line and insert a space
-(@pxref{History Interaction}).
-
-@item alias-expand-line ()
-Perform alias expansion on the current line (@pxref{Aliases}).
-
-@item history-and-alias-expand-line ()
-Perform history and alias expansion on the current line.
-
-@item insert-last-argument (M-. or M-_)
-A synonym for @code{yank-last-arg}.
-
-@item operate-and-get-next (C-o)
-Accept the current line for execution and fetch the next line
-relative to the current line from the history for editing.  Any
-argument is ignored.
-
-@item edit-and-execute-command (C-xC-e)
-Invoke an editor on the current command line, and execute the result as shell
-commands.
-Bash attempts to invoke
-@code{$FCEDIT}, @code{$EDITOR}, and @code{emacs}
-as the editor, in that order.
-
-@end ifset
-
-@ifclear BashFeatures
-@item emacs-editing-mode (C-e)
-When in @code{vi} command mode, this causes a switch to @code{emacs}
-editing mode.
-
-@item vi-editing-mode (M-C-j)
-When in @code{emacs} editing mode, this causes a switch to @code{vi}
-editing mode.
-
-@end ifclear
-
-@end ftable
-
-@node Readline vi Mode
-@section Readline vi Mode
-
-While the Readline library does not have a full set of @code{vi}
-editing functions, it does contain enough to allow simple editing
-of the line.  The Readline @code{vi} mode behaves as specified in
-the @sc{posix} 1003.2 standard.
-
-@ifset BashFeatures
-In order to switch interactively between @code{emacs} and @code{vi}
-editing modes, use the @samp{set -o emacs} and @samp{set -o vi}
-commands (@pxref{The Set Builtin}).
-@end ifset
-@ifclear BashFeatures
-In order to switch interactively between @code{emacs} and @code{vi}
-editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode
-when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode).
-@end ifclear
-The Readline default is @code{emacs} mode.
-
-When you enter a line in @code{vi} mode, you are already placed in
-`insertion' mode, as if you had typed an @samp{i}.  Pressing @key{ESC}
-switches you into `command' mode, where you can edit the text of the
-line with the standard @code{vi} movement keys, move to previous
-history lines with @samp{k} and subsequent lines with @samp{j}, and
-so forth.
-
-@ifset BashFeatures
-@node Programmable Completion
-@section Programmable Completion
-@cindex programmable completion
-
-When word completion is attempted for an argument to a command for
-which a completion specification (a @var{compspec}) has been defined
-using the @code{complete} builtin (@pxref{Programmable Completion Builtins}),
-the programmable completion facilities are invoked. 
-
-First, the command name is identified.
-If a compspec has been defined for that command, the
-compspec is used to generate the list of possible completions for the word.
-If the command word is a full pathname, a compspec for the full
-pathname is searched for first.
-If no compspec is found for the full pathname, an attempt is made to
-find a compspec for the portion following the final slash.
-
-Once a compspec has been found, it is used to generate the list of
-matching words.
-If a compspec is not found, the default Bash completion
-described above (@pxref{Commands For Completion}) is performed.
-
-First, the actions specified by the compspec are used.
-Only matches which are prefixed by the word being completed are
-returned.
-When the @option{-f} or @option{-d} option is used for filename or
-directory name completion, the shell variable @env{FIGNORE} is
-used to filter the matches.
-@xref{Bash Variables}, for a description of @env{FIGNORE}.
-
-Any completions specified by a filename expansion pattern to the
-@option{-G} option are generated next.
-The words generated by the pattern need not match the word being completed.
-The @env{GLOBIGNORE} shell variable is not used to filter the matches,
-but the @env{FIGNORE} shell variable is used.
-
-Next, the string specified as the argument to the @option{-W} option
-is considered.
-The string is first split using the characters in the @env{IFS}
-special variable as delimiters.
-Shell quoting is honored.
-Each word is then expanded using
-brace expansion, tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and pathname expansion,
-as described above (@pxref{Shell Expansions}).
-The results are split using the rules described above
-(@pxref{Word Splitting}).
-The results of the expansion are prefix-matched against the word being
-completed, and the matching words become the possible completions.
-
-After these matches have been generated, any shell function or command
-specified with the @option{-F} and @option{-C} options is invoked.
-When the command or function is invoked, the @env{COMP_LINE} and
-@env{COMP_POINT} variables are assigned values as described above
-(@pxref{Bash Variables}).
-If a shell function is being invoked, the @env{COMP_WORDS} and
-@env{COMP_CWORD} variables are also set.
-When the function or command is invoked, the first argument is the
-name of the command whose arguments are being completed, the
-second argument is the word being completed, and the third argument
-is the word preceding the word being completed on the current command line.
-No filtering of the generated completions against the word being completed
-is performed; the function or command has complete freedom in generating
-the matches.
-
-Any function specified with @option{-F} is invoked first.
-The function may use any of the shell facilities, including the
-@code{compgen} builtin described below
-(@pxref{Programmable Completion Builtins}), to generate the matches.
-It must put the possible completions in the @env{COMPREPLY} array
-variable.
-
-Next, any command specified with the @option{-C} option is invoked
-in an environment equivalent to command substitution.
-It should print a list of completions, one per line, to
-the standard output.
-Backslash may be used to escape a newline, if necessary.
-
-After all of the possible completions are generated, any filter
-specified with the @option{-X} option is applied to the list.
-The filter is a pattern as used for pathname expansion; a @samp{&}
-in the pattern is replaced with the text of the word being completed.
-A literal @samp{&} may be escaped with a backslash; the backslash
-is removed before attempting a match.
-Any completion that matches the pattern will be removed from the list.
-A leading @samp{!} negates the pattern; in this case any completion
-not matching the pattern will be removed.
-
-Finally, any prefix and suffix specified with the @option{-P} and @option{-S}
-options are added to each member of the completion list, and the result is
-returned to the Readline completion code as the list of possible
-completions.
-
-If the previously-applied actions do not generate any matches, and the
-@option{-o dirnames} option was supplied to @code{complete} when the
-compspec was defined, directory name completion is attempted. 
-
-By default, if a compspec is found, whatever it generates is returned to
-the completion code as the full set of possible completions.
-The default Bash completions are not attempted, and the Readline default
-of filename completion is disabled.
-If the @option{-o default} option was supplied to @code{complete} when the
-compspec was defined, Readline's default completion will be performed
-if the compspec generates no matches.
-
-When a compspec indicates that directory name completion is desired,
-the programmable completion functions force Readline to append a slash
-to completed names which are symbolic links to directories, subject to
-the value of the @var{mark-directories} Readline variable, regardless
-of the setting of the @var{mark-symlinked-directories} Readline variable.
-
-@node Programmable Completion Builtins
-@section Programmable Completion Builtins
-@cindex completion builtins
-
-Two builtin commands are available to manipulate the programmable completion
-facilities.
-
-@table @code
-@item compgen
-@btindex compgen
-@example
-@code{compgen [@var{option}] [@var{word}]}
-@end example
-
-Generate possible completion matches for @var{word} according to
-the @var{option}s, which may be any option accepted by the
-@code{complete}
-builtin with the exception of @option{-p} and @option{-r}, and write
-the matches to the standard output.
-When using the @option{-F} or @option{-C} options, the various shell variables
-set by the programmable completion facilities, while available, will not
-have useful values.
-
-The matches will be generated in the same way as if the programmable
-completion code had generated them directly from a completion specification
-with the same flags.
-If @var{word} is specified, only those completions matching @var{word}
-will be displayed.
-
-The return value is true unless an invalid option is supplied, or no
-matches were generated.
-
-@item complete
-@btindex complete
-@example
-@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
-[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}]
-[-C @var{command}] @var{name} [@var{name} @dots{}]}
-@code{complete -pr [@var{name} @dots{}]}
-@end example
-
-Specify how arguments to each @var{name} should be completed.
-If the @option{-p} option is supplied, or if no options are supplied, existing
-completion specifications are printed in a way that allows them to be
-reused as input.
-The @option{-r} option removes a completion specification for
-each @var{name}, or, if no @var{name}s are supplied, all
-completion specifications.
-
-The process of applying these completion specifications when word completion
-is attempted is described above (@pxref{Programmable Completion}).
-
-Other options, if specified, have the following meanings.
-The arguments to the @option{-G}, @option{-W}, and @option{-X} options
-(and, if necessary, the @option{-P} and @option{-S} options)
-should be quoted to protect them from expansion before the
-@code{complete} builtin is invoked.
-
-
-@table @code
-@item -o @var{comp-option}
-The @var{comp-option} controls several aspects of the compspec's behavior
-beyond the simple generation of completions.
-@var{comp-option} may be one of: 
-
-@table @code
-
-@item default
-Use Readline's default filename completion if the compspec generates
-no matches.
-
-@item dirnames
-Perform directory name completion if the compspec generates no matches.
-
-@item filenames
-Tell Readline that the compspec generates filenames, so it can perform any
-filename\-specific processing (like adding a slash to directory names or
-suppressing trailing spaces).  This option is intended to be used with
-shell functions specified with @option{-F}.
-
-@item nospace
-Tell Readline not to append a space (the default) to words completed at
-the end of the line.
-@end table
-
-@item -A @var{action}
-The @var{action} may be one of the following to generate a list of possible
-completions:
-
-@table @code
-@item alias
-Alias names.  May also be specified as @option{-a}.
-
-@item arrayvar
-Array variable names.
-
-@item binding
-Readline key binding names (@pxref{Bindable Readline Commands}).
-
-@item builtin
-Names of shell builtin commands.  May also be specified as @option{-b}.
-
-@item command
-Command names.  May also be specified as @option{-c}.
-
-@item directory
-Directory names.  May also be specified as @option{-d}.
-
-@item disabled
-Names of disabled shell builtins.
-
-@item enabled
-Names of enabled shell builtins.
-
-@item export
-Names of exported shell variables.  May also be specified as @option{-e}.
-
-@item file
-File names.  May also be specified as @option{-f}.
-
-@item function
-Names of shell functions.
-
-@item group
-Group names.  May also be specified as @option{-g}.
-
-@item helptopic
-Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}).
-
-@item hostname
-Hostnames, as taken from the file specified by the
-@env{HOSTFILE} shell variable (@pxref{Bash Variables}).
-
-@item job
-Job names, if job control is active.  May also be specified as @option{-j}.
-
-@item keyword
-Shell reserved words.  May also be specified as @option{-k}.
-
-@item running
-Names of running jobs, if job control is active.
-
-@item service
-Service names.  May also be specified as @option{-s}.
-
-@item setopt
-Valid arguments for the @option{-o} option to the @code{set} builtin
-(@pxref{The Set Builtin}).
-
-@item shopt
-Shell option names as accepted by the @code{shopt} builtin
-(@pxref{Bash Builtins}).
-
-@item signal
-Signal names.
-
-@item stopped
-Names of stopped jobs, if job control is active.
-
-@item user
-User names.  May also be specified as @option{-u}.
-
-@item variable
-Names of all shell variables.  May also be specified as @option{-v}.
-@end table
-
-@item -G @var{globpat}
-The filename expansion pattern @var{globpat} is expanded to generate
-the possible completions.
-
-@item -W @var{wordlist}
-The @var{wordlist} is split using the characters in the
-@env{IFS} special variable as delimiters, and each resultant word
-is expanded.
-The possible completions are the members of the resultant list which
-match the word being completed.
-
-@item -C @var{command}
-@var{command} is executed in a subshell environment, and its output is
-used as the possible completions.
-
-@item -F @var{function}
-The shell function @var{function} is executed in the current shell
-environment.
-When it finishes, the possible completions are retrieved from the value
-of the @env{COMPREPLY} array variable.
-
-@item -X @var{filterpat}
-@var{filterpat} is a pattern as used for filename expansion.
-It is applied to the list of possible completions generated by the
-preceding options and arguments, and each completion matching
-@var{filterpat} is removed from the list.
-A leading @samp{!} in @var{filterpat} negates the pattern; in this
-case, any completion not matching @var{filterpat} is removed.
-
-@item -P @var{prefix}
-@var{prefix} is added at the beginning of each possible completion
-after all other options have been applied.
-
-@item -S @var{suffix}
-@var{suffix} is appended to each possible completion
-after all other options have been applied.
-@end table
-
-The return value is true unless an invalid option is supplied, an option
-other than @option{-p} or @option{-r} is supplied without a @var{name}
-argument, an attempt is made to remove a completion specification for
-a @var{name} for which no specification exists, or
-an error occurs adding a completion specification.
-
-@end table
-@end ifset
diff --git a/doc/rluserman.texinfo b/doc/rluserman.texinfo
deleted file mode 100644 (file)
index 89abe31..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-\input texinfo    @c -*-texinfo-*-
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rluserman.info
-@settitle GNU Readline Library
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* RLuserman: (rluserman).       The GNU readline library User's Manual.
-@end direntry
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage  
-@title GNU Readline Library User Interface
-@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU Readline Library
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-@menu
-* Command Line Editing::          GNU Readline User's Manual.
-@end menu
-@end ifinfo
-
-@include rluser.texinfo
-
-@contents
-@bye
diff --git a/examples/Makefile b/examples/Makefile
deleted file mode 100644 (file)
index 55ebffc..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# This is the Makefile for the examples subdirectory of readline. -*- text -*-
-#
-
-EXECUTABLES = fileman
-CFLAGS  = -g -I..
-LDFLAGS = -g -L..
-
-fileman: fileman.o
-       $(CC) $(LDFLAGS) -o fileman fileman.o -lreadline -ltermcap
-
-fileman.o: fileman.c
-  
diff --git a/examples/rlfe.c b/examples/rlfe.c
deleted file mode 100644 (file)
index d634d7c..0000000
+++ /dev/null
@@ -1,1042 +0,0 @@
-/* A front-end using readline to "cook" input lines for Kawa.
- *
- * Copyright (C) 1999  Per Bothner
- * 
- * This front-end program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * Some code from Johnson & Troan: "Linux Application Development"
- * (Addison-Wesley, 1998) was used directly or for inspiration.
- */
-
-/* PROBLEMS/TODO:
- *
- * Only tested under Linux;  needs to be ported.
- *
- * When running mc -c under the Linux console, mc does not recognize
- * mouse clicks, which mc does when not running under fep.
- *
- * Pasting selected text containing tabs is like hitting the tab character,
- * which invokes readline completion.  We don't want this.  I don't know
- * if this is fixable without integrating fep into a terminal emulator.
- *
- * Echo suppression is a kludge, but can only be avoided with better kernel
- * support: We need a tty mode to disable "real" echoing, while still
- * letting the inferior think its tty driver to doing echoing.
- * Stevens's book claims SCR$ and BSD4.3+ have TIOCREMOTE.
- *
- * The latest readline may have some hooks we can use to avoid having
- * to back up the prompt.
- *
- * Desirable readline feature:  When in cooked no-echo mode (e.g. password),
- * echo characters are they are types with '*', but remove them when done.
- *
- * A synchronous output while we're editing an input line should be
- * inserted in the output view *before* the input line, so that the
- * lines being edited (with the prompt) float at the end of the input.
- *
- * A "page mode" option to emulate more/less behavior:  At each page of
- * output, pause for a user command.  This required parsing the output
- * to keep track of line lengths.  It also requires remembering the
- * output, if we want an option to scroll back, which suggests that
- * this should be integrated with a terminal emulator like xterm.
- */
-
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <signal.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <grp.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <termios.h>
-#include <limits.h>
-#include <dirent.h>
-
-#ifdef READLINE_LIBRARY
-#  include "readline.h"
-#  include "history.h"
-#else
-#  include <readline/readline.h>
-#  include <readline/history.h>
-#endif
-
-#ifndef COMMAND
-#define COMMAND "/bin/sh"
-#endif
-#ifndef COMMAND_ARGS
-#define COMMAND_ARGS COMMAND
-#endif
-
-#ifndef HAVE_MEMMOVE
-#ifndef memmove
-#  if __GNUC__ > 1
-#    define memmove(d, s, n)   __builtin_memcpy(d, s, n)
-#  else
-#    define memmove(d, s, n)   memcpy(d, s, n)
-#  endif
-#else
-#  define memmove(d, s, n)     memcpy(d, s, n)
-#endif
-#endif
-
-#define APPLICATION_NAME "Rlfe"
-
-#ifndef errno
-extern int errno;
-#endif
-
-extern int optind;
-extern char *optarg;
-
-static char *progname;
-static char *progversion;
-
-static int in_from_inferior_fd;
-static int out_to_inferior_fd;
-
-/* Unfortunately, we cannot safely display echo from the inferior process.
-   The reason is that the echo bit in the pty is "owned" by the inferior,
-   and if we try to turn it off, we could confuse the inferior.
-   Thus, when echoing, we get echo twice:  First readline echoes while
-   we're actually editing. Then we send the line to the inferior, and the
-   terminal driver send back an extra echo.
-   The work-around is to remember the input lines, and when we see that
-   line come back, we supress the output.
-   A better solution (supposedly available on SVR4) would be a smarter
-   terminal driver, with more flags ... */
-#define ECHO_SUPPRESS_MAX 1024
-char echo_suppress_buffer[ECHO_SUPPRESS_MAX];
-int echo_suppress_start = 0;
-int echo_suppress_limit = 0;
-
-/* #define DEBUG */
-
-static FILE *logfile = NULL;
-
-#ifdef DEBUG
-FILE *debugfile = NULL;
-#define DPRINT0(FMT) (fprintf(debugfile, FMT), fflush(debugfile))
-#define DPRINT1(FMT, V1) (fprintf(debugfile, FMT, V1), fflush(debugfile))
-#define DPRINT2(FMT, V1, V2) (fprintf(debugfile, FMT, V1, V2), fflush(debugfile))
-#else
-#define DPRINT0(FMT) /* Do nothing */
-#define DPRINT1(FMT, V1) /* Do nothing */
-#define DPRINT2(FMT, V1, V2) /* Do nothing */
-#endif
-
-struct termios orig_term;
-
-static int rlfe_directory_completion_hook __P((char **));
-static int rlfe_directory_rewrite_hook __P((char **));
-static char *rlfe_filename_completion_function __P((const char *, int));
-
-/* Pid of child process. */
-static pid_t child = -1;
-
-static void
-sig_child (int signo)
-{
-  int status;
-  wait (&status);
-  DPRINT0 ("(Child process died.)\n");
-  tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
-  exit (0);
-}
-
-volatile int propagate_sigwinch = 0;
-
-/* sigwinch_handler
- * propagate window size changes from input file descriptor to
- * master side of pty.
- */
-void sigwinch_handler(int signal) { 
-   propagate_sigwinch = 1;
-}
-
-/* get_master_pty() takes a double-indirect character pointer in which
- * to put a slave name, and returns an integer file descriptor.
- * If it returns < 0, an error has occurred.
- * Otherwise, it has returned the master pty file descriptor, and fills
- * in *name with the name of the corresponding slave pty.
- * Once the slave pty has been opened, you are responsible to free *name.
- */
-
-int get_master_pty(char **name) { 
-   int i, j;
-   /* default to returning error */
-   int master = -1;
-
-   /* create a dummy name to fill in */
-   *name = strdup("/dev/ptyXX");
-
-   /* search for an unused pty */
-   for (i=0; i<16 && master <= 0; i++) {
-      for (j=0; j<16 && master <= 0; j++) {
-         (*name)[5] = 'p';
-         (*name)[8] = "pqrstuvwxyzPQRST"[i];
-         (*name)[9] = "0123456789abcdef"[j];
-         /* open the master pty */
-         if ((master = open(*name, O_RDWR)) < 0) {
-            if (errno == ENOENT) {
-               /* we are out of pty devices */
-               free (*name);
-               return (master);
-            }
-         }
-         else {
-           /* By substituting a letter, we change the master pty
-            * name into the slave pty name.
-            */
-           (*name)[5] = 't';
-           if (access(*name, R_OK|W_OK) != 0)
-             {
-               close(master);
-               master = -1;
-             }
-         }
-      }
-   }
-   if ((master < 0) && (i == 16) && (j == 16)) {
-      /* must have tried every pty unsuccessfully */
-      free (*name);
-      return (master);
-   }
-
-   (*name)[5] = 't';
-
-   return (master);
-}
-
-/* get_slave_pty() returns an integer file descriptor.
- * If it returns < 0, an error has occurred.
- * Otherwise, it has returned the slave file descriptor.
- */
-
-int get_slave_pty(char *name) { 
-   struct group *gptr;
-   gid_t gid;
-   int slave = -1;
-
-   /* chown/chmod the corresponding pty, if possible.
-    * This will only work if the process has root permissions.
-    * Alternatively, write and exec a small setuid program that
-    * does just this.
-    */
-   if ((gptr = getgrnam("tty")) != 0) {
-      gid = gptr->gr_gid;
-   } else {
-      /* if the tty group does not exist, don't change the
-       * group on the slave pty, only the owner
-       */
-      gid = -1;
-   }
-
-   /* Note that we do not check for errors here.  If this is code
-    * where these actions are critical, check for errors!
-    */
-   chown(name, getuid(), gid);
-   /* This code only makes the slave read/writeable for the user.
-    * If this is for an interactive shell that will want to
-    * receive "write" and "wall" messages, OR S_IWGRP into the
-    * second argument below.
-    */
-   chmod(name, S_IRUSR|S_IWUSR);
-
-   /* open the corresponding slave pty */
-   slave = open(name, O_RDWR);
-   return (slave);
-}
-
-/* Certain special characters, such as ctrl/C, we want to pass directly
-   to the inferior, rather than letting readline handle them. */
-
-static char special_chars[20];
-static int special_chars_count;
-
-static void
-add_special_char(int ch)
-{
-  if (ch != 0)
-    special_chars[special_chars_count++] = ch;
-}
-
-static int eof_char;
-
-static int
-is_special_char(int ch)
-{
-  int i;
-#if 0
-  if (ch == eof_char && rl_point == rl_end)
-    return 1;
-#endif
-  for (i = special_chars_count;  --i >= 0; )
-    if (special_chars[i] == ch)
-      return 1;
-  return 0;
-}
-
-static char buf[1024];
-/* buf[0 .. buf_count-1] is the what has been emitted on the current line.
-   It is used as the readline prompt. */
-static int buf_count = 0;
-
-int num_keys = 0;
-
-static void
-null_prep_terminal (int meta)
-{
-}
-
-static void
-null_deprep_terminal ()
-{
-}
-
-char pending_special_char;
-
-static void
-line_handler (char *line)
-{
-  if (line == NULL)
-    {
-      char buf[1];
-      DPRINT0("saw eof!\n");
-      buf[0] = '\004'; /* ctrl/d */
-      write (out_to_inferior_fd, buf, 1);
-    }
-  else
-    {
-      static char enter[] = "\r";
-      /*  Send line to inferior: */
-      int length = strlen (line);
-      if (length > ECHO_SUPPRESS_MAX-2)
-       {
-         echo_suppress_start = 0;
-         echo_suppress_limit = 0;
-       }
-      else
-       {
-         if (echo_suppress_limit + length > ECHO_SUPPRESS_MAX - 2)
-           {
-             if (echo_suppress_limit - echo_suppress_start + length
-                 <= ECHO_SUPPRESS_MAX - 2)
-               {
-                 memmove (echo_suppress_buffer,
-                          echo_suppress_buffer + echo_suppress_start,
-                          echo_suppress_limit - echo_suppress_start);
-                 echo_suppress_limit -= echo_suppress_start;
-                 echo_suppress_start = 0;
-               }
-             else
-               {
-                 echo_suppress_limit = 0;
-               }
-             echo_suppress_start = 0;
-           }
-         memcpy (echo_suppress_buffer + echo_suppress_limit,
-                 line, length);
-         echo_suppress_limit += length;
-         echo_suppress_buffer[echo_suppress_limit++] = '\r';
-         echo_suppress_buffer[echo_suppress_limit++] = '\n';
-       }
-      write (out_to_inferior_fd, line, length);
-      if (pending_special_char == 0)
-        {
-          write (out_to_inferior_fd, enter, sizeof(enter)-1);
-          if (*line)
-            add_history (line);
-        }
-      free (line);
-    }
-  rl_callback_handler_remove ();
-  buf_count = 0;
-  num_keys = 0;
-  if (pending_special_char != 0)
-    {
-      write (out_to_inferior_fd, &pending_special_char, 1);
-      pending_special_char = 0;
-    }
-}
-
-/* Value of rl_getc_function.
-   Use this because readline should read from stdin, not rl_instream,
-   points to the pty (so readline has monitor its terminal modes). */
-
-int
-my_rl_getc (FILE *dummy)
-{
-  int ch = rl_getc (stdin);
-  if (is_special_char (ch))
-    {
-      pending_special_char = ch;
-      return '\r';
-    }
-  return ch;
-}
-
-static void
-usage()
-{
-  fprintf (stderr, "%s: usage: %s [-l filename] [-a] [-n appname] [-hv] [command [arguments...]]\n",
-                  progname, progname);
-}
-
-int
-main(int argc, char** argv)
-{
-  char *path;
-  int i, append;
-  int master;
-  char *name, *logfname, *appname;
-  int in_from_tty_fd;
-  struct sigaction act;
-  struct winsize ws;
-  struct termios t;
-  int maxfd;
-  fd_set in_set;
-  static char empty_string[1] = "";
-  char *prompt = empty_string;
-  int ioctl_err = 0;
-
-  if ((progname = strrchr (argv[0], '/')) == 0)
-    progname = argv[0];
-  else
-    progname++;
-  progversion = RL_LIBRARY_VERSION;
-
-  append = 0;
-  appname = APPLICATION_NAME;
-  logfname = (char *)NULL;
-
-  while ((i = getopt (argc, argv, "ahl:n:v")) != EOF)
-    {
-      switch (i)
-       {
-       case 'l':
-         logfname = optarg;
-         break;
-       case 'n':
-         appname = optarg;
-         break;
-       case 'a':
-         append = 1;
-         break;
-       case 'h':
-         usage ();
-         exit (0);
-       case 'v':
-         fprintf (stderr, "%s version %s\n", progname, progversion);
-         exit (0);
-       default:
-         usage ();
-         exit (2);
-       }
-    }
-
-  argc -= optind;
-  argv += optind;
-
-  if (logfname)
-    {
-      logfile = fopen (logfname, append ? "a" : "w");
-      if (logfile == 0)
-       fprintf (stderr, "%s: warning: could not open log file %s: %s\n",
-                        progname, logfname, strerror (errno));
-    }
-    
-  rl_readline_name = appname;
-  
-#ifdef DEBUG
-  debugfile = fopen("LOG", "w");
-#endif
-
-  if ((master = get_master_pty(&name)) < 0)
-    {
-      perror("ptypair: could not open master pty");
-      exit(1);
-    }
-
-  DPRINT1("pty name: '%s'\n", name);
-
-  /* set up SIGWINCH handler */
-  act.sa_handler = sigwinch_handler;
-  sigemptyset(&(act.sa_mask));
-  act.sa_flags = 0;
-  if (sigaction(SIGWINCH, &act, NULL) < 0)
-    {
-      perror("ptypair: could not handle SIGWINCH ");
-      exit(1);
-    }
-
-  if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) < 0)
-    {
-      perror("ptypair: could not get window size");
-      exit(1);
-    }
-
-  if ((child = fork()) < 0)
-    {
-      perror("cannot fork");
-      exit(1);
-    }
-
-  if (child == 0)
-    { 
-      int slave;  /* file descriptor for slave pty */
-
-      /* We are in the child process */
-      close(master);
-
-#ifdef TIOCSCTTY
-      if ((slave = get_slave_pty(name)) < 0)
-       {
-         perror("ptypair: could not open slave pty");
-         exit(1);
-       }
-      free(name);
-#endif
-
-      /* We need to make this process a session group leader, because
-       * it is on a new PTY, and things like job control simply will
-       * not work correctly unless there is a session group leader
-       * and process group leader (which a session group leader
-       * automatically is). This also disassociates us from our old
-       * controlling tty. 
-       */
-      if (setsid() < 0)
-       {
-         perror("could not set session leader");
-       }
-
-      /* Tie us to our new controlling tty. */
-#ifdef TIOCSCTTY
-      if (ioctl(slave, TIOCSCTTY, NULL))
-       {
-         perror("could not set new controlling tty");
-       }
-#else
-      if ((slave = get_slave_pty(name)) < 0)
-       {
-         perror("ptypair: could not open slave pty");
-         exit(1);
-       }
-      free(name);
-#endif
-
-      /* make slave pty be standard in, out, and error */
-      dup2(slave, STDIN_FILENO);
-      dup2(slave, STDOUT_FILENO);
-      dup2(slave, STDERR_FILENO);
-
-      /* at this point the slave pty should be standard input */
-      if (slave > 2)
-       {
-         close(slave);
-       }
-
-      /* Try to restore window size; failure isn't critical */
-      if (ioctl(STDOUT_FILENO, TIOCSWINSZ, &ws) < 0)
-       {
-         perror("could not restore window size");
-       }
-
-      /* now start the shell */
-      {
-       static char* command_args[] = { COMMAND_ARGS, NULL };
-       if (argc < 1)
-         execvp(COMMAND, command_args);
-       else
-         execvp(argv[0], &argv[0]);
-      }
-
-      /* should never be reached */
-      exit(1);
-    }
-
-  /* parent */
-  signal (SIGCHLD, sig_child);
-  free(name);
-
-  /* Note that we only set termios settings for standard input;
-   * the master side of a pty is NOT a tty.
-   */
-  tcgetattr(STDIN_FILENO, &orig_term);
-
-  t = orig_term;
-  eof_char = t.c_cc[VEOF];
-  /*  add_special_char(t.c_cc[VEOF]);*/
-  add_special_char(t.c_cc[VINTR]);
-  add_special_char(t.c_cc[VQUIT]);
-  add_special_char(t.c_cc[VSUSP]);
-#if defined (VDISCARD)
-  add_special_char(t.c_cc[VDISCARD]);
-#endif
-
-#if 0
-  t.c_lflag |= (ICANON | ISIG | ECHO | ECHOCTL | ECHOE | \
-               ECHOK | ECHOKE | ECHONL | ECHOPRT );
-#else
-  t.c_lflag &= ~(ICANON | ISIG | ECHO | ECHOCTL | ECHOE | \
-                ECHOK | ECHOKE | ECHONL | ECHOPRT );
-#endif
-  t.c_iflag |= IGNBRK;
-  t.c_cc[VMIN] = 1;
-  t.c_cc[VTIME] = 0;
-  tcsetattr(STDIN_FILENO, TCSANOW, &t);
-  in_from_inferior_fd = master;
-  out_to_inferior_fd = master;
-  rl_instream = fdopen (master, "r");
-  rl_getc_function = my_rl_getc;
-
-  rl_prep_term_function = null_prep_terminal; 
-  rl_deprep_term_function = null_deprep_terminal; 
-  rl_callback_handler_install (prompt, line_handler);
-
-#if 1
-  rl_directory_completion_hook = rlfe_directory_completion_hook;
-  rl_completion_entry_function = rlfe_filename_completion_function;
-#else
-  rl_directory_rewrite_hook = rlfe_directory_rewrite_hook;
-#endif
-
-  in_from_tty_fd = STDIN_FILENO;
-  FD_ZERO (&in_set);
-  maxfd = in_from_inferior_fd > in_from_tty_fd ? in_from_inferior_fd
-    : in_from_tty_fd;
-  for (;;)
-    {
-      int num;
-      FD_SET (in_from_inferior_fd, &in_set);
-      FD_SET (in_from_tty_fd, &in_set);
-
-      num = select(maxfd+1, &in_set, NULL, NULL, NULL);
-
-      if (propagate_sigwinch)
-       {
-         struct winsize ws;
-         if (ioctl (STDIN_FILENO, TIOCGWINSZ, &ws) >= 0)
-           {
-             ioctl (master, TIOCSWINSZ, &ws);
-           }
-         propagate_sigwinch = 0;
-         continue;
-       }
-
-      if (num <= 0)
-       {
-         perror ("select");
-         exit (-1);
-       }
-      if (FD_ISSET (in_from_tty_fd, &in_set))
-       {
-         extern int readline_echoing_p;
-         struct termios term_master;
-         int do_canon = 1;
-         int ioctl_ret;
-
-         DPRINT1("[tty avail num_keys:%d]\n", num_keys);
-
-         /* If we can't get tty modes for the master side of the pty, we
-            can't handle non-canonical-mode programs.  Always assume the
-            master is in canonical echo mode if we can't tell. */
-         ioctl_ret = tcgetattr(master, &term_master);
-
-         if (ioctl_ret >= 0)
-           {
-             DPRINT2 ("echo:%d, canon:%d\n",
-                       (term_master.c_lflag & ECHO) != 0,
-                       (term_master.c_lflag & ICANON) != 0);
-             do_canon = (term_master.c_lflag & ICANON) != 0;
-             readline_echoing_p = (term_master.c_lflag & ECHO) != 0;
-           }
-         else
-           {
-             if (ioctl_err == 0)
-               DPRINT1("tcgetattr on master fd failed: errno = %d\n", errno);
-             ioctl_err = 1;
-           }
-
-         if (do_canon == 0 && num_keys == 0)
-           {
-             char ch[10];
-             int count = read (STDIN_FILENO, ch, sizeof(ch));
-             write (out_to_inferior_fd, ch, count);
-           }
-         else
-           {
-             if (num_keys == 0)
-               {
-                 int i;
-                 /* Re-install callback handler for new prompt. */
-                 if (prompt != empty_string)
-                   free (prompt);
-                 prompt = malloc (buf_count + 1);
-                 if (prompt == NULL)
-                   prompt = empty_string;
-                 else
-                   {
-                     memcpy (prompt, buf, buf_count);
-                     prompt[buf_count] = '\0';
-                     DPRINT1("New prompt '%s'\n", prompt);
-#if 0 /* ifdef HAVE_RL_ALREADY_PROMPTED -- doesn't work */
-                     rl_already_prompted = buf_count > 0;
-#else
-                     if (buf_count > 0)
-                       write (1, "\r", 1);
-#endif
-                   }
-                 rl_callback_handler_install (prompt, line_handler);
-               }
-             num_keys++;
-             rl_callback_read_char ();
-           }
-       }
-      else /* input from inferior. */
-       {
-         int i;
-         int count;
-         int old_count;
-         if (buf_count > (sizeof(buf) >> 2))
-           buf_count = 0;
-         count = read (in_from_inferior_fd, buf+buf_count,
-                       sizeof(buf) - buf_count);
-         if (count <= 0)
-           {
-             DPRINT0 ("(Connection closed by foreign host.)\n");
-             tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
-             exit (0);
-           }
-         old_count = buf_count;
-
-         /* Do some minimal carriage return translation and backspace
-            processing before logging the input line. */
-         if (logfile)
-           {
-#ifndef __GNUC__
-             char *b;
-#else
-             char b[count + 1];
-#endif
-             int i, j;
-
-#ifndef __GNUC__
-             b = malloc (count + 1);
-             if (b) {
-#endif
-             for (i = 0; i < count; i++)
-               b[i] = buf[buf_count + i];
-             b[i] = '\0';
-             for (i = j = 0; i <= count; i++)
-               {
-                 if (b[i] == '\r')
-                   {
-                     if (b[i+1] != '\n')
-                       b[j++] = '\n';
-                   }
-                 else if (b[i] == '\b')
-                   {
-                     if (i)
-                       j--;
-                   }
-                 else
-                   b[j++] = b[i];
-               }
-             fprintf (logfile, "%s", b);
-
-#ifndef __GNUC__
-             free (b);
-             }
-#endif
-           }
-
-          /* Look for any pending echo that we need to suppress. */
-         while (echo_suppress_start < echo_suppress_limit
-                && count > 0
-                && buf[buf_count] == echo_suppress_buffer[echo_suppress_start])
-           {
-             count--;
-             buf_count++;
-             echo_suppress_start++;
-           }
-
-          /* Write to the terminal anything that was not suppressed. */
-          if (count > 0)
-            write (1, buf + buf_count, count);
-
-          /* Finally, look for a prompt candidate.
-           * When we get around to going input (from the keyboard),
-           * we will consider the prompt to be anything since the last
-           * line terminator.  So we need to save that text in the
-           * initial part of buf.  However, anything before the
-           * most recent end-of-line is not interesting. */
-         buf_count += count;
-#if 1
-         for (i = buf_count;  --i >= old_count; )
-#else
-         for (i = buf_count - 1;  i-- >= buf_count - count; )
-#endif
-           {
-             if (buf[i] == '\n' || buf[i] == '\r')
-               {
-                 i++;
-                 memmove (buf, buf+i, buf_count - i);
-                 buf_count -= i;
-                 break;
-               }
-           }
-         DPRINT2("-> i: %d, buf_count: %d\n", i, buf_count);
-       }
-    }
-}
-
-/*
- *
- * FILENAME COMPLETION FOR RLFE
- *
- */
-
-#ifndef PATH_MAX
-#  define PATH_MAX 1024
-#endif
-
-#define DIRSEP         '/'
-#define ISDIRSEP(x)    ((x) == '/')
-#define PATHSEP(x)     (ISDIRSEP(x) || (x) == 0)
-
-#define DOT_OR_DOTDOT(x) \
-       ((x)[0] == '.' && (PATHSEP((x)[1]) || \
-                         ((x)[1] == '.' && PATHSEP((x)[2]))))
-
-#define FREE(x)                if (x) free(x)
-
-#define STRDUP(s, x)   do { \
-                         s = strdup (x);\
-                         if (s == 0) \
-                           return ((char *)NULL); \
-                       } while (0)
-
-static int
-get_inferior_cwd (path, psize)
-     char *path;
-     size_t psize;
-{
-  int n;
-  static char procfsbuf[PATH_MAX] = { '\0' };
-
-  if (procfsbuf[0] == '\0')
-    sprintf (procfsbuf, "/proc/%d/cwd", (int)child);
-  n = readlink (procfsbuf, path, psize);
-  if (n < 0)
-    return n;
-  if (n > psize)
-    return -1;
-  path[n] = '\0';
-  return n;
-}
-
-static int
-rlfe_directory_rewrite_hook (dirnamep)
-     char **dirnamep;
-{
-  char *ldirname, cwd[PATH_MAX], *retdir, *ld;
-  int n, ldlen;
-
-  ldirname = *dirnamep;
-
-  if (*ldirname == '/')
-    return 0;
-
-  n = get_inferior_cwd (cwd, sizeof(cwd) - 1);
-  if (n < 0)
-    return 0;
-  if (n == 0)  /* current directory */
-    {
-      cwd[0] = '.';
-      cwd[1] = '\0';
-      n = 1;
-    }
-
-  /* Minimally canonicalize ldirname by removing leading `./' */
-  for (ld = ldirname; *ld; )
-    {
-      if (ISDIRSEP (ld[0]))
-       ld++;
-      else if (ld[0] == '.' && PATHSEP(ld[1]))
-       ld++;
-      else
-       break;
-    }
-  ldlen = (ld && *ld) ? strlen (ld) : 0;
-
-  retdir = (char *)malloc (n + ldlen + 3);
-  if (retdir == 0)
-    return 0;
-  if (ldlen)
-    sprintf (retdir, "%s/%s", cwd, ld);
-  else
-    strcpy (retdir, cwd);
-  free (ldirname);
-
-  *dirnamep = retdir;
-
-  DPRINT1("rl_directory_rewrite_hook returns %s\n", retdir);
-  return 1;
-}
-
-/* Translate *DIRNAMEP to be relative to the inferior's CWD.  Leave a trailing
-   slash on the result. */
-static int
-rlfe_directory_completion_hook (dirnamep)
-     char **dirnamep;
-{
-  char *ldirname, *retdir;
-  int n, ldlen;
-
-  ldirname = *dirnamep;
-
-  if (*ldirname == '/')
-    return 0;
-
-  n = rlfe_directory_rewrite_hook (dirnamep);
-  if (n == 0)
-    return 0;
-
-  ldirname = *dirnamep;
-  ldlen = (ldirname && *ldirname) ? strlen (ldirname) : 0;
-
-  if (ldlen == 0 || ldirname[ldlen - 1] != '/')
-    {
-      retdir = (char *)malloc (ldlen + 3);
-      if (retdir == 0)
-       return 0;
-      if (ldlen)
-       strcpy (retdir, ldirname);
-      else
-       retdir[ldlen++] = '.';
-      retdir[ldlen] = '/';
-      retdir[ldlen+1] = '\0';
-      free (ldirname);
-
-      *dirnamep = retdir;
-    }
-
-  DPRINT1("rl_directory_completion_hook returns %s\n", retdir);
-  return 1;
-}
-
-static char *
-rlfe_filename_completion_function (text, state)
-     const char *text;
-     int state;
-{
-  static DIR *directory;
-  static char *filename = (char *)NULL;
-  static char *dirname = (char *)NULL, *ud = (char *)NULL;
-  static int flen, udlen;
-  char *temp;
-  struct dirent *dentry;
-
-  if (state == 0)
-    {
-      if (directory)
-       {
-         closedir (directory);
-         directory = 0;
-       }
-      FREE (dirname);
-      FREE (filename);
-      FREE (ud);
-
-      if (text && *text)
-        STRDUP (filename, text);
-      else
-       {
-         filename = malloc(1); 
-         if (filename == 0)
-           return ((char *)NULL);
-         filename[0] = '\0';
-       }
-      dirname = (text && *text) ? strdup (text) : strdup (".");
-      if (dirname == 0)
-        return ((char *)NULL);
-
-      temp = strrchr (dirname, '/');
-      if (temp)
-       {
-         strcpy (filename, ++temp);
-         *temp = '\0';
-       }
-      else
-       {
-         dirname[0] = '.';
-         dirname[1] = '\0';
-       }
-
-      STRDUP (ud, dirname);
-      udlen = strlen (ud);
-
-      rlfe_directory_completion_hook (&dirname);
-
-      directory = opendir (dirname);
-      flen = strlen (filename);
-
-      rl_filename_completion_desired = 1;
-    }
-
-  dentry = 0;
-  while (directory && (dentry = readdir (directory)))
-    {
-      if (flen == 0)
-       {
-          if (DOT_OR_DOTDOT(dentry->d_name) == 0)
-            break;
-       }
-      else
-       {
-         if ((dentry->d_name[0] == filename[0]) &&
-             (strlen (dentry->d_name) >= flen) &&
-             (strncmp (filename, dentry->d_name, flen) == 0))
-           break;
-       }
-    }
-
-  if (dentry == 0)
-    {
-      if (directory)
-       {
-         closedir (directory);
-         directory = 0;
-       }
-      FREE (dirname);
-      FREE (filename);
-      FREE (ud);
-      dirname = filename = ud = 0;
-      return ((char *)NULL);
-    }
-
-  if (ud == 0 || (ud[0] == '.' && ud[1] == '\0'))
-    temp = strdup (dentry->d_name);
-  else
-    {
-      temp = malloc (1 + udlen + strlen (dentry->d_name));
-      strcpy (temp, ud);
-      strcpy (temp + udlen, dentry->d_name);
-    }
-  return (temp);
-}
diff --git a/memalloc.h b/memalloc.h
deleted file mode 100644 (file)
index 750d53d..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* memalloc.h -- consolidate code for including alloca.h or malloc.h and
-   defining alloca. */
-
-/* Copyright (C) 1993 Free Software Foundation, Inc.
-
-   This file is part of GNU Bash, the Bourne Again SHell.
-
-   Bash is free software; you can redistribute it and/or modify it under
-   the terms of the GNU General Public License as published by the Free
-   Software Foundation; either version 2, or (at your option) any later
-   version.
-
-   Bash is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or
-   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-   for more details.
-
-   You should have received a copy of the GNU General Public License along
-   with Bash; see the file COPYING.  If not, write to the Free Software
-   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-#if !defined (__MEMALLOC_H__)
-#  define __MEMALLOC_H__
-
-#if defined (sparc) && defined (sun) && !defined (HAVE_ALLOCA_H)
-#  define HAVE_ALLOCA_H
-#endif
-
-#if defined (__GNUC__) && !defined (HAVE_ALLOCA)
-#  define HAVE_ALLOCA
-#endif
-
-#if defined (HAVE_ALLOCA_H) && !defined (HAVE_ALLOCA)
-#  define HAVE_ALLOCA
-#endif /* HAVE_ALLOCA_H && !HAVE_ALLOCA */
-
-#if !defined (BUILDING_MAKEFILE)
-
-#if defined (__GNUC__)
-#  undef alloca
-#  define alloca __builtin_alloca
-#else /* !__GNUC__ */
-#  if defined (HAVE_ALLOCA_H)
-#    if defined (IBMESA)
-#      include <malloc.h>
-#    else /* !IBMESA */
-#      include <alloca.h>
-#    endif /* !IBMESA */
-#  else
-extern char *alloca ();
-#  endif /* !HAVE_ALLOCA_H */
-#endif /* !__GNUC__ */
-
-#endif /* !BUILDING_MAKEFILE */
-
-#endif /* __MEMALLOC_H__ */
diff --git a/stamp-config b/stamp-config
deleted file mode 100644 (file)
index e69de29..0000000