- change Requires.private to use TERMCAP_PKG_CONFIG_LIB instead of
hardcoded `tinfo'. Report and fix from Thomas Petazzoni
<thomas.petazzoni@bootlin.com>
+
+ 5/4
+ ---
+Makefile.in
+ - new targets to install and uninstall the `readline.pc' pkgconfig
+ file
+ - install-{static,shared}: add install-pc to the list of prereqs
+ - uninstall{,-shared}: add uninstall-pc to list of prereqs. Change
+ from Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+
+configure.ac,Makefile.in
+ - add new configure option to optionally disable installing the
+ source code examples. From Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+
+ 5/23
+ ----
+Makefile.in
+ - install-pc: make sure we install readline.pc into an existing
+ pkgconfig directory. Report from ilove zfs <ilovezfs@icloud.com>
+
+ 5/24
+ ----
+Makefile.in
+ - installdirs: create $(pkgconfigdir) if it doesn't exist
+This document details the changes between this version, readline-8.0, and the
+previous version, readline-7.0.
+
+1. Changes to Readline
+
+a. Added a guard to prevent nested macros from causing an infinite expansion
+ loop.
+
+b. Instead of allocating enough history list entries to hold the maximum list
+ size, cap the number allocated initially.
+
+c. Added a strategy to avoid allocating huge amounts of memory if a block of
+ history entries without timestamps occurs after a block with timestamps.
+
+d. Added support for keyboard timeouts when an ESC character is the last
+ character in a macro.
+
+e. There are several performance improvements when in a UTF-8 locale.
+
+f. Readline does a better job of preserving the original set of blocked
+ signals when using pselect() to wait for input.
+
+g. Fixed a bug that caused multibyte characters in macros to be mishandled.
+
+h. Fixed several bugs in the code that calculates line breaks when expanding
+ prompts that span several lines, contain multibyte characters, and contain
+ invisible character seqeuences.
+
+i. Fixed several bugs in cursor positioning when displaying lines with prompts
+ containing invisible characters and multibyte characters.
+
+j. When performing case-insensitive completion, Readline no longer sorts the
+ list of matches unless directed to do so.
+
+k. Fixed a problem with key sequences ending with a backslash.
+
+l. Fixed out-of-bounds and free memory read errors found via fuzzing.
+
+m. Fixed several cases where the mark was set to an invalid value.
+
+n. Fixed a problem with the case-changing operators in the case where the
+ lower and upper case versions of a character do not have the same number
+ of bytes.
+
+o. Handle incremental and non-incremental search character reads returning EOF.
+
+p. Handle the case where a failing readline command at the end of a multi-key
+ sequence could be misinterpreted.
+
+q. The history library now prints a meaningful error message if the history
+ file isn't a regular file.
+
+r. Fixed a problem with vi-mode redo (`.') on a command when trying to replace
+ a multibyte character.
+
+s. The key binding code now attempts to remove a keymap if a key unbinding
+ leaves it empty.
+
+t. Fixed a line-wrapping issue that caused problems for some terminal
+ emulators.
+
+u. If there is a key bound to the tty's VDISCARD special character, readline
+ disables VDISCARD while it is active.
+
+v. Fixed a problem with exiting bracketed paste mode on terminals that assume
+ the bracketed paste mode character sequence contains visible characters.
+
+w. Fixed a bug that could cause a key binding command to refer to an
+ uninitialized variable.
+
+x. Added more UTF-8-specific versions of multibyte functions, and optimized
+ existing functions if the current locale uses UTF-8 encoding.
+
+y. Fixed a problem with bracketed-paste inserting more than one character and
+ interacting with other readline functions.
+
+z. Fixed a bug that caused the history library to attempt to append a history
+ line to a non-existent history entry.
+
+aa. If using bracketed paste mode, output a newline after the \r that is the
+ last character of the mode disable string to avoid overwriting output.
+
+bb. Fixes to the vi-mode `b', `B', `w', `W', `e', and `E' commands to better
+ handle multibyte characters.
+
+cc. Fixed a redisplay problem that caused an extra newline to be generated on
+ accept-line when the line length is exactly the screenwidth.
+
+2. New Features in Readline
+
+a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
+ Posix specifies (uses fnmatch(3) if available).
+
+b. There are new `next-screen-line' and `previous-screen-line' bindable
+ commands, which move the cursor to the same column in the next, or previous,
+ physical line, respectively.
+
+c. There are default key bindings for control-arrow-key key combinations.
+
+d. A negative argument (-N) to `quoted-insert' means to insert the next N
+ characters using quoted-insert.
+
+e. New public function: rl_check_signals(), which allows applications to
+ respond to signals that readline catches while waiting for input using
+ a custom read function.
+
+f. There is new support for conditionally testing the readline version in an
+ inputrc file, with a full set of arithmetic comparison operators available.
+
+g. There is a simple variable comparison facility available for use within an
+ inputrc file. Allowable operators are equality and inequality; string
+ variables may be compared to a value; boolean variables must be compared to
+ either `on' or `off'; variable names are separated from the operator by
+ whitespace.
+
+h. The history expansion library now understands command and process
+ substitution and extended globbing and allows them to appear anywhere in a
+ word.
+
+i. The history library has a new variable that allows applications to set the
+ initial quoting state, so quoting state can be inherited from a previous
+ line.
+
+-------------------------------------------------------------------------------
This document details the changes between this version, readline-7.0, and the
previous version, readline-6.3.
Basic Installation
==================
-These are installation instructions for Readline-7.0.
+These are installation instructions for Readline-8.0.
The simplest way to compile readline is:
## -*- text -*- ##
# Master Makefile for the GNU readline library.
-# Copyright (C) 1994-2009 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 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
includedir = @includedir@
datadir = @datadir@
localedir = @localedir@
+pkgconfigdir = ${libdir}/pkgconfig
infodir = @infodir@
ASAN_XCFLAGS = -fsanitize=address -fno-omit-frame-pointer
ASAN_XLDFLAGS = -fsanitize=address
+install_examples = @EXAMPLES_INSTALL_TARGET@
+
.c.o:
${RM} $@
$(CC) -c $(CCFLAGS) $<
maybe-uninstall-headers: uninstall-headers
-install-static: installdirs $(STATIC_LIBS) install-headers install-doc install-examples
+install-pc: installdirs
+ -$(INSTALL_DATA) $(BUILD_DIR)/readline.pc $(DESTDIR)$(pkgconfigdir)/readline.pc
+
+uninstall-pc:
+ -test -n "$(pkgconfigdir)" && cd $(DESTDIR)$(pkgconfigdir) && \
+ ${RM} readline.pc
+
+maybe-uninstall-pc: uninstall-pc
+
+install-static: installdirs $(STATIC_LIBS) install-headers install-doc ${install_examples} install-pc
-$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old
$(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a
-test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a
installdirs: $(srcdir)/support/mkinstalldirs
-$(SHELL) $(srcdir)/support/mkinstalldirs $(DESTDIR)$(includedir) \
$(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \
- $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) $(DESTDIR)$(docdir)
+ $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) $(DESTDIR)$(docdir) \
+ $(DESTDIR)$(pkgconfigdir)
-uninstall: uninstall-headers uninstall-doc uninstall-examples
+uninstall: uninstall-headers uninstall-doc uninstall-examples uninstall-pc
-test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \
${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS)
-( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
-install-shared: installdirs install-headers shared install-doc
+install-shared: installdirs install-headers shared install-doc install-pc
( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install )
-uninstall-shared: maybe-uninstall-headers
+uninstall-shared: maybe-uninstall-headers maybe-uninstall-pc
-( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
install-examples: installdirs install-headers
+This is a terse description of the new features added to readline-8.0 since
+the release of readline-7.0.
+
+New Features in Readline
+
+a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
+ Posix specifies (uses fnmatch(3) if available).
+
+b. There are new `next-screen-line' and `previous-screen-line' bindable
+ commands, which move the cursor to the same column in the next, or previous,
+ physical line, respectively.
+
+c. There are default key bindings for control-arrow-key key combinations.
+
+d. A negative argument (-N) to `quoted-insert' means to insert the next N
+ characters using quoted-insert.
+
+e. New public function: rl_check_signals(), which allows applications to
+ respond to signals that readline catches while waiting for input using
+ a custom read function.
+
+f. There is new support for conditionally testing the readline version in an
+ inputrc file, with a full set of arithmetic comparison operators available.
+
+g. There is a simple variable comparison facility available for use within an
+ inputrc file. Allowable operators are equality and inequality; string
+ variables may be compared to a value; boolean variables must be compared to
+ either `on' or `off'; variable names are separated from the operator by
+ whitespace.
+
+h. The history expansion library now understands command and process
+ substitution and extended globbing and allows them to appear anywhere in a
+ word.
+
+i. The history library has a new variable that allows applications to set the
+ initial quoting state, so quoting state can be inherited from a previous
+ line.
+
+-------------------------------------------------------------------------------
This is a terse description of the new features added to readline-7.0 since
the release of readline-6.3.
Introduction
============
-This is the Gnu Readline library, version 7.0.
+This is the Gnu Readline library, version 8.0.
The Readline library provides a set of functions for use by applications
that allow users to edit command lines as they are typed in. Both
typedef RETSIGTYPE sigfunc();
-int nsigint;
+volatile int nsigint;
#ifdef HAVE_POSIX_SIGNALS
sigfunc *
#! /bin/sh
-# From configure.ac for Readline 7.0, version 2.83.
+# From configure.ac for Readline 8.0, version 2.85.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for readline 7.0.
+# Generated by GNU Autoconf 2.69 for readline 8.0.
#
# Report bugs to <bug-readline@gnu.org>.
#
# Identity of this package.
PACKAGE_NAME='readline'
PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='7.0'
-PACKAGE_STRING='readline 7.0'
+PACKAGE_VERSION='8.0'
+PACKAGE_STRING='readline 8.0'
PACKAGE_BUGREPORT='bug-readline@gnu.org'
PACKAGE_URL=''
LOCAL_LDFLAGS
LOCAL_CFLAGS
BUILD_DIR
+EXAMPLES_INSTALL_TARGET
SHARED_INSTALL_TARGET
STATIC_INSTALL_TARGET
SHARED_TARGET
enable_multibyte
enable_shared
enable_static
+enable_install_examples
enable_largefile
'
ac_precious_vars='build_alias
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures readline 7.0 to adapt to many kinds of systems.
+\`configure' configures readline 8.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of readline 7.0:";;
+ short | recursive ) echo "Configuration of readline 8.0:";;
esac
cat <<\_ACEOF
--enable-multibyte enable multibyte characters if OS supports them
--enable-shared build shared libraries [[default=YES]]
--enable-static build static libraries [[default=YES]]
+ --disable-install-examples
+ don't install examples [[default=install]]
--disable-largefile omit support for large files
Optional Packages:
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-readline configure 7.0
+readline configure 8.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by readline $as_me 7.0, which was
+It was created by readline $as_me 8.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
ac_config_headers="$ac_config_headers config.h"
-LIBVERSION=7.0
+LIBVERSION=8.0
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
opt_multibyte=yes
opt_static_libs=yes
opt_shared_libs=yes
+opt_install_examples=yes
# Check whether --enable-multibyte was given.
if test "${enable_multibyte+set}" = set; then :
enableval=$enable_static; opt_static_libs=$enableval
fi
+# Check whether --enable-install-examples was given.
+if test "${enable_install_examples+set}" = set; then :
+ enableval=$enable_install_examples; opt_install_examples=$enableval
+fi
+
if test $opt_multibyte = no; then
$as_echo "#define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h
+if test "$opt_install_examples" = "yes"; then
+ EXAMPLES_INSTALL_TARGET=install-examples
+fi
+
+
case "$build_os" in
msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file
*) BUILD_DIR=`pwd` ;;
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by readline $as_me 7.0, which was
+This file was extended by readline $as_me 8.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-readline config.status 7.0
+readline config.status 8.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
dnl
dnl Process this file with autoconf to produce a configure script.
-# Copyright (C) 1987-2016 Free Software Foundation, Inc.
+# Copyright (C) 1987-2018 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
# 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 7.0, version 2.83])
+AC_REVISION([for Readline 8.0, version 2.85])
-AC_INIT(readline, 7.0, bug-readline@gnu.org)
+AC_INIT(readline, 8.0, bug-readline@gnu.org)
dnl make sure we are using a recent autoconf version
AC_PREREQ(2.50)
AC_CONFIG_HEADERS(config.h)
dnl update the value of RL_READLINE_VERSION in readline.h when this changes
-LIBVERSION=7.0
+LIBVERSION=8.0
AC_CANONICAL_HOST
AC_CANONICAL_BUILD
opt_multibyte=yes
opt_static_libs=yes
opt_shared_libs=yes
+opt_install_examples=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)
+AC_ARG_ENABLE(install-examples, AC_HELP_STRING([--disable-install-examples], [don't install examples [[default=install]]]), opt_install_examples=$enableval)
if test $opt_multibyte = no; then
AC_DEFINE(NO_MULTIBYTE_SUPPORT)
AC_SUBST(STATIC_INSTALL_TARGET)
AC_SUBST(SHARED_INSTALL_TARGET)
+if test "$opt_install_examples" = "yes"; then
+ EXAMPLES_INSTALL_TARGET=install-examples
+fi
+AC_SUBST(EXAMPLES_INSTALL_TARGET)
+
case "$build_os" in
msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file
*) BUILD_DIR=`pwd` ;;
putc (last_line[_rl_screenwidth - 1 + woff], rl_outstream);
}
_rl_vis_botlin = 0;
- rl_crlf ();
+ if (botline_length > 0 || _rl_last_c_pos > 0)
+ rl_crlf ();
fflush (rl_outstream);
rl_display_fixed++;
}
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on January, 2 2018 by texi2html 1.64 -->
+<!-- Created on May, 21 2018 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>January, 2 2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>May, 21 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>January, 2 2018</I>
+by <I>Chet Ramey</I> on <I>May, 21 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
%%Title: history.dvi
-%%CreationDate: Tue Jan 2 15:56:03 2018
+%%CreationDate: Mon May 21 14:32:51 2018
%%Pages: 24
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o history.ps history.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2018.01.02:1056
+%DVIPSSource: TeX output 2018.05.21:1032
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
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.
+and shell quoting conventions are obeyed as described below.
@end deftypefun
@deftypefun {char *} history_arg_extract (int first, int last, const char *string)
@end deftypevar
@deftypevar int history_quotes_inhibit_expansion
-If non-zero, double-quoted words are not scanned for the history expansion
-character or the history comment character. The default value is 0.
+If non-zero, the history expansion code implements shell-like quoting:
+single-quoted words are not scanned for the history expansion
+character or the history comment character, and double-quoted words may
+have history expansion performed, since single quotes are not special
+within double quotes.
+The default value is 0.
+@end deftypevar
+
+@deftypevar int history_quoting_state
+An application may set this variable to indicate that the current line
+being expanded is subject to existing quoting. If set to @samp{'}, the
+history expansion function will assume that the line is single-quoted and
+inhibit expansion until it reads an unquoted closing single quote; if set
+to @samp{"}, history expansion will assume the line is double quoted until
+it reads an unquoted closing double quote. If set to zero, the default,
+the history expansion function will assume the line is not quoted and
+treat quote characters within the line as described above.
+This is only effective if @var{history_quotes_inhibit_expansion} is set.
@end deftypevar
@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
@ifset BashFeatures
History expansion is performed immediately after a complete line
is read, before the shell breaks it into words, and is performed
-on each line individually without taking quoting on previous lines into
-account.
+on each line individually. Bash attempts to inform the history
+expansion functions about quoting still in effect from previous lines.
@end ifset
History expansion takes place in two parts. The first is to determine
surrounded by quotes are considered one word.
History expansions are introduced by the appearance of the
history expansion character, which is @samp{!} by default.
+
+History expansion implements shell-like quoting conventions:
+a backslash can be used to remove the special handling for the next character;
+single quotes enclose verbatim sequences of characters, and can be used to
+inhibit history expansion;
+and characters enclosed within double quotes may be subject to history
+expansion, since backslash can escape the history expansion character,
+but single quotes may not, since they are not treated specially within
+double quotes.
+
@ifset BashFeatures
-Only @samp{\} and @samp{'} may be used to escape the history expansion
-character, but the history expansion character is
+When using the shell, only @samp{\} and @samp{'} may be used to escape the
+history expansion character, but the history expansion character is
also treated as quoted if it immediately precedes the closing double quote
in a double-quoted string.
@end ifset
and store the definition.
\e[1mcall-last-kbd-macro (C-x e)\e[0m
Re-execute the last keyboard macro defined, by making the char-
- acters in the macro appear as if typed at the keyboard.
- \e[1mprint-last-kbd-macro () \e[22mPrint the last keyboard macro defined in
- a format suitable for the \e[4minputrc\e[24m file.
+ acters in the macro appear as if typed at the keyboard.
+ \e[1mprint-last-kbd-macro ()\e[0m
+ Print the last keyboard macro defined in a format suitable for
+ the \e[4minputrc\e[24m file.
\e[1mMiscellaneous\e[0m
\e[1mre-read-init-file (C-x C-r)\e[0m
- Read in the contents of the \e[4minputrc\e[24m file, and incorporate any
+ Read in the contents of the \e[4minputrc\e[24m file, and incorporate any
bindings or variable assignments found there.
\e[1mabort (C-g)\e[0m
- Abort the current editing command and ring the terminal's bell
+ Abort the current editing command and ring the terminal's bell
(subject to the setting of \e[1mbell-style\e[22m).
\e[1mdo-lowercase-version (M-A, M-B, M-\e[4m\e[22mx\e[24m\e[1m, ...)\e[0m
- If the metafied character \e[4mx\e[24m is uppercase, run the command that
+ If the metafied character \e[4mx\e[24m is uppercase, run the command that
is bound to the corresponding metafied lowercase character. The
behavior is undefined if \e[4mx\e[24m is already lowercase.
\e[1mprefix-meta (ESC)\e[0m
\e[1mundo (C-_, C-x C-u)\e[0m
Incremental undo, separately remembered for each line.
\e[1mrevert-line (M-r)\e[0m
- Undo all changes made to this line. This is like executing the
- \e[1mundo \e[22mcommand enough times to return the line to its initial
+ Undo all changes made to this line. This is like executing the
+ \e[1mundo \e[22mcommand enough times to return the line to its initial
state.
\e[1mtilde-expand (M-&)\e[0m
Perform tilde expansion on the current word.
\e[1mset-mark (C-@, M-<space>)\e[0m
- Set the mark to the point. If a numeric argument is supplied,
+ Set the mark to the point. If a numeric argument is supplied,
the mark is set to that position.
\e[1mexchange-point-and-mark (C-x C-x)\e[0m
- Swap the point with the mark. The current cursor position is
- set to the saved position, and the old cursor position is saved
+ 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.
\e[1mcharacter-search (C-])\e[0m
A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous occur-
+ that character. A negative count searches for previous occur-
rences.
\e[1mcharacter-search-backward (M-C-])\e[0m
- A character is read and point is moved to the previous occur-
- rence of that character. A negative count searches for subse-
+ A character is read and point is moved to the previous occur-
+ rence of that character. A negative count searches for subse-
quent occurrences.
\e[1mskip-csi-sequence\e[0m
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. Such sequences begin
+ Read enough characters to consume a multi-key sequence such as
+ those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
- sequence is bound to "\[", keys producing such sequences will
- have no effect unless explicitly bound to a readline command,
- instead of inserting stray characters into the editing buffer.
+ sequence is bound to "\[", keys producing such sequences will
+ have no effect unless explicitly bound to a readline command,
+ instead of inserting stray characters into the editing buffer.
This is unbound by default, but usually bound to ESC-[.
\e[1minsert-comment (M-#)\e[0m
- Without a numeric argument, the value of the readline \e[1mcom-\e[0m
- \e[1mment-begin \e[22mvariable is inserted at the beginning of the current
+ Without a numeric argument, the value of the readline \e[1mcom-\e[0m
+ \e[1mment-begin \e[22mvariable 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 \e[1mcomment-begin\e[22m, the value is inserted, other-
+ toggle: if the characters at the beginning of the line do not
+ match the value of \e[1mcomment-begin\e[22m, the value is inserted, other-
wise the characters in \e[1mcomment-begin \e[22mare deleted from the begin-
- ning of the line. In either case, the line is accepted as if a
- newline had been typed. The default value of \e[1mcomment-begin\e[0m
- makes the current line a shell comment. If a numeric argument
- causes the comment character to be removed, the line will be
+ ning of the line. In either case, the line is accepted as if a
+ newline had been typed. The default value of \e[1mcomment-begin\e[0m
+ makes the current line a shell comment. If a numeric argument
+ causes the comment character to be removed, the line will be
executed by the shell.
\e[1mdump-functions\e[0m
- Print all of the functions and their key bindings to the read-
+ Print all of the functions and their key bindings to the read-
line output stream. If a numeric argument is supplied, the out-
- put is formatted in such a way that it can be made part of an
+ put is formatted in such a way that it can be made part of an
\e[4minputrc\e[24m file.
\e[1mdump-variables\e[0m
- Print all of the settable variables and their values to the
- readline output stream. If a numeric argument is supplied, the
+ 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
\e[4minputrc\e[24m file.
\e[1mdump-macros\e[0m
- Print all of the readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
+ 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
\e[4minputrc\e[24m file.
\e[1memacs-editing-mode (C-e)\e[0m
- When in \e[1mvi \e[22mcommand mode, this causes a switch to \e[1memacs \e[22mediting
+ When in \e[1mvi \e[22mcommand mode, this causes a switch to \e[1memacs \e[22mediting
mode.
\e[1mvi-editing-mode (M-C-j)\e[0m
- When in \e[1memacs \e[22mediting mode, this causes a switch to \e[1mvi \e[22mediting
+ When in \e[1memacs \e[22mediting mode, this causes a switch to \e[1mvi \e[22mediting
mode.
\e[1mDEFAULT KEY BINDINGS\e[0m
- The following is a list of the default emacs and vi bindings. Charac-
- ters with the eighth bit set are written as M-<character>, and are
+ The following is a list of the default emacs and vi bindings. Charac-
+ ters with the eighth bit set are written as M-<character>, and are
referred to as \e[4mmetafied\e[24m characters. The printable ASCII characters not
- mentioned in the list of emacs standard bindings are bound to the
- \e[1mself-insert \e[22mfunction, which just inserts the given character into the
+ mentioned in the list of emacs standard bindings are bound to the
+ \e[1mself-insert \e[22mfunction, which just inserts the given character into the
input line. In vi insertion mode, all characters not specifically men-
tioned are bound to \e[1mself-insert\e[22m. Characters assigned to signal genera-
tion by \e[4mstty\e[24m(1) or the terminal driver, such as C-Z or C-C, retain that
- function. Upper and lower case metafied characters are bound to the
- same function in the emacs mode meta keymap. The remaining characters
- are unbound, which causes readline to ring the bell (subject to the
+ function. Upper and lower case metafied characters are bound to the
+ same function in the emacs mode meta keymap. The remaining characters
+ are unbound, which causes readline to ring the bell (subject to the
setting of the \e[1mbell-style \e[22mvariable).
\e[1mEmacs Mode\e[0m
chet.ramey@case.edu
\e[1mBUG REPORTS\e[0m
- If you find a bug in \e[1mreadline, \e[22myou should report it. But first, you
- should make sure that it really is a bug, and that it appears in the
+ If you find a bug in \e[1mreadline, \e[22myou should report it. But first, you
+ should make sure that it really is a bug, and that it appears in the
latest version of the \e[1mreadline \e[22mlibrary that you have.
- Once you have determined that a bug actually exists, mail a bug report
- to \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m. If you have a fix, you are welcome to mail
- that as well! Suggestions and `philosophical' bug reports may be
- mailed to \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m or posted to the Usenet newsgroup
+ Once you have determined that a bug actually exists, mail a bug report
+ to \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m. If you have a fix, you are welcome to mail
+ that as well! Suggestions and `philosophical' bug reports may be
+ mailed to \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m or posted to the Usenet newsgroup
\e[1mgnu.bash.bug\e[22m.
Comments and bug reports concerning this manual page should be directed
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on January, 2 2018 by texi2html 1.64 -->
+<!-- Created on May, 21 2018 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
<A NAME="IDX284"></A>
<DL>
+<DT><U>Function:</U> rl_command_func_t * <B>rl_function_of_keyseq_len</B> <I>(const char *keyseq, size_t len Keymap map, int *type)</I>
+<DD>Return the function invoked by <VAR>keyseq</VAR> of length <VAR>len</VAR>
+in keymap <VAR>map</VAR>. Equivalent to <CODE>rl_function_of_keyseq</CODE> with the
+addition of the <VAR>len</VAR> parameter.
+</DL>
+</P><P>
+
+<A NAME="IDX285"></A>
+<DL>
<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(rl_command_func_t *function)</I>
<DD>Return an array of strings representing the key sequences used to
invoke <VAR>function</VAR> in the current keymap.
</DL>
</P><P>
-<A NAME="IDX285"></A>
+<A NAME="IDX286"></A>
<DL>
<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
<DD>Return an array of strings representing the key sequences used to
</DL>
</P><P>
-<A NAME="IDX286"></A>
+<A NAME="IDX287"></A>
<DL>
<DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I>
<DD>Print the readline function names and the key sequences currently
</DL>
</P><P>
-<A NAME="IDX287"></A>
+<A NAME="IDX288"></A>
<DL>
<DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>(void)</I>
<DD>Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
</DL>
</P><P>
-<A NAME="IDX288"></A>
+<A NAME="IDX289"></A>
<DL>
<DT><U>Function:</U> const char ** <B>rl_funmap_names</B> <I>(void)</I>
<DD>Return a NULL terminated array of known function names. The array is
</DL>
</P><P>
-<A NAME="IDX289"></A>
+<A NAME="IDX290"></A>
<DL>
<DT><U>Function:</U> int <B>rl_add_funmap_entry</B> <I>(const char *name, rl_command_func_t *function)</I>
<DD>Add <VAR>name</VAR> to the list of bindable Readline command names, and make
<CODE>rl_end_undo_group()</CODE>.
</P><P>
-<A NAME="IDX290"></A>
+<A NAME="IDX291"></A>
<DL>
<DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>(void)</I>
<DD>Begins saving undo information in a group construct. The undo
</DL>
</P><P>
-<A NAME="IDX291"></A>
+<A NAME="IDX292"></A>
<DL>
<DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>(void)</I>
<DD>Closes the current undo group started with <CODE>rl_begin_undo_group
</DL>
</P><P>
-<A NAME="IDX292"></A>
+<A NAME="IDX293"></A>
<DL>
<DT><U>Function:</U> void <B>rl_add_undo</B> <I>(enum undo_code what, int start, int end, char *text)</I>
<DD>Remember how to undo an event (according to <VAR>what</VAR>). The affected
</DL>
</P><P>
-<A NAME="IDX293"></A>
+<A NAME="IDX294"></A>
<DL>
<DT><U>Function:</U> void <B>rl_free_undo_list</B> <I>(void)</I>
<DD>Free the existing undo list.
</DL>
</P><P>
-<A NAME="IDX294"></A>
+<A NAME="IDX295"></A>
<DL>
<DT><U>Function:</U> int <B>rl_do_undo</B> <I>(void)</I>
<DD>Undo the first thing on the undo list. Returns <CODE>0</CODE> if there was
the text range that you are going to modify.
</P><P>
-<A NAME="IDX295"></A>
+<A NAME="IDX296"></A>
<DL>
<DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I>
<DD>Tell Readline to save the text between <VAR>start</VAR> and <VAR>end</VAR> as a
<!--docid::SEC35::-->
<P>
-<A NAME="IDX296"></A>
+<A NAME="IDX297"></A>
<DL>
<DT><U>Function:</U> void <B>rl_redisplay</B> <I>(void)</I>
<DD>Change what's displayed on the screen to reflect the current contents
</DL>
</P><P>
-<A NAME="IDX297"></A>
+<A NAME="IDX298"></A>
<DL>
<DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>(void)</I>
<DD>Force the line to be updated and redisplayed, whether or not
</DL>
</P><P>
-<A NAME="IDX298"></A>
+<A NAME="IDX299"></A>
<DL>
<DT><U>Function:</U> int <B>rl_on_new_line</B> <I>(void)</I>
<DD>Tell the update functions that we have moved onto a new (empty) line,
</DL>
</P><P>
-<A NAME="IDX299"></A>
+<A NAME="IDX300"></A>
<DL>
<DT><U>Function:</U> int <B>rl_on_new_line_with_prompt</B> <I>(void)</I>
<DD>Tell the update functions that we have moved onto a new line, with
</DL>
</P><P>
-<A NAME="IDX300"></A>
+<A NAME="IDX301"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_visible_line</B> <I>(void)</I>
<DD>Clear the screen lines corresponding to the current line's contents.
</DL>
</P><P>
-<A NAME="IDX301"></A>
+<A NAME="IDX302"></A>
<DL>
<DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>(void)</I>
<DD>Reset the display state to a clean state and redisplay the current line
</DL>
</P><P>
-<A NAME="IDX302"></A>
+<A NAME="IDX303"></A>
<DL>
<DT><U>Function:</U> int <B>rl_crlf</B> <I>(void)</I>
<DD>Move the cursor to the start of the next screen line.
</DL>
</P><P>
-<A NAME="IDX303"></A>
+<A NAME="IDX304"></A>
<DL>
<DT><U>Function:</U> int <B>rl_show_char</B> <I>(int c)</I>
<DD>Display character <VAR>c</VAR> on <CODE>rl_outstream</CODE>.
</DL>
</P><P>
-<A NAME="IDX304"></A>
+<A NAME="IDX305"></A>
<DL>
<DT><U>Function:</U> int <B>rl_message</B> <I>(const char *, <small>...</small>)</I>
<DD>The arguments are a format string as would be supplied to <CODE>printf</CODE>,
</DL>
</P><P>
-<A NAME="IDX305"></A>
+<A NAME="IDX306"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_message</B> <I>(void)</I>
<DD>Clear the message in the echo area. If the prompt was saved with a call to
</DL>
</P><P>
-<A NAME="IDX306"></A>
+<A NAME="IDX307"></A>
<DL>
<DT><U>Function:</U> void <B>rl_save_prompt</B> <I>(void)</I>
<DD>Save the local Readline prompt display state in preparation for
</DL>
</P><P>
-<A NAME="IDX307"></A>
+<A NAME="IDX308"></A>
<DL>
<DT><U>Function:</U> void <B>rl_restore_prompt</B> <I>(void)</I>
<DD>Restore the local Readline prompt display state saved by the most
</DL>
</P><P>
-<A NAME="IDX308"></A>
+<A NAME="IDX309"></A>
<DL>
<DT><U>Function:</U> int <B>rl_expand_prompt</B> <I>(char *prompt)</I>
<DD>Expand any special character sequences in <VAR>prompt</VAR> and set up the
</DL>
</P><P>
-<A NAME="IDX309"></A>
+<A NAME="IDX310"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_prompt</B> <I>(const char *prompt)</I>
<DD>Make Readline use <VAR>prompt</VAR> for subsequent redisplay. This calls
<!--docid::SEC36::-->
<P>
-<A NAME="IDX310"></A>
+<A NAME="IDX311"></A>
<DL>
<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(const char *text)</I>
<DD>Insert <VAR>text</VAR> into the line at the current cursor position.
</DL>
</P><P>
-<A NAME="IDX311"></A>
+<A NAME="IDX312"></A>
<DL>
<DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I>
<DD>Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
</DL>
</P><P>
-<A NAME="IDX312"></A>
+<A NAME="IDX313"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I>
<DD>Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in
</DL>
</P><P>
-<A NAME="IDX313"></A>
+<A NAME="IDX314"></A>
<DL>
<DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I>
<DD>Copy the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line
</DL>
</P><P>
-<A NAME="IDX314"></A>
+<A NAME="IDX315"></A>
<DL>
<DT><U>Function:</U> int <B>rl_push_macro_input</B> <I>(char *macro)</I>
<DD>Cause <VAR>macro</VAR> to be inserted into the line, as if it had been invoked
<!--docid::SEC37::-->
<P>
-<A NAME="IDX315"></A>
+<A NAME="IDX316"></A>
<DL>
<DT><U>Function:</U> int <B>rl_read_key</B> <I>(void)</I>
<DD>Return the next character available from Readline's current input stream.
</DL>
</P><P>
-<A NAME="IDX316"></A>
+<A NAME="IDX317"></A>
<DL>
<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *stream)</I>
<DD>Return the next character available from <VAR>stream</VAR>, which is assumed to
</DL>
</P><P>
-<A NAME="IDX317"></A>
+<A NAME="IDX318"></A>
<DL>
<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
<DD>Insert <VAR>c</VAR> into the Readline input stream. It will be "read"
</DL>
</P><P>
-<A NAME="IDX318"></A>
+<A NAME="IDX319"></A>
<DL>
<DT><U>Function:</U> int <B>rl_execute_next</B> <I>(int c)</I>
<DD>Make <VAR>c</VAR> be the next command to be executed when <CODE>rl_read_key()</CODE>
</DL>
</P><P>
-<A NAME="IDX319"></A>
+<A NAME="IDX320"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_pending_input</B> <I>(void)</I>
<DD>Unset <VAR>rl_pending_input</VAR>, effectively negating the effect of any
</DL>
</P><P>
-<A NAME="IDX320"></A>
+<A NAME="IDX321"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_keyboard_input_timeout</B> <I>(int u)</I>
<DD>While waiting for keyboard input in <CODE>rl_read_key()</CODE>, Readline will
<!--docid::SEC38::-->
<P>
-<A NAME="IDX321"></A>
+<A NAME="IDX322"></A>
<DL>
<DT><U>Function:</U> void <B>rl_prep_terminal</B> <I>(int meta_flag)</I>
<DD>Modify the terminal settings for Readline's use, so <CODE>readline()</CODE>
</DL>
</P><P>
-<A NAME="IDX322"></A>
+<A NAME="IDX323"></A>
<DL>
<DT><U>Function:</U> void <B>rl_deprep_terminal</B> <I>(void)</I>
<DD>Undo the effects of <CODE>rl_prep_terminal()</CODE>, leaving the terminal in
</DL>
</P><P>
-<A NAME="IDX323"></A>
+<A NAME="IDX324"></A>
<DL>
<DT><U>Function:</U> void <B>rl_tty_set_default_bindings</B> <I>(Keymap kmap)</I>
<DD>Read the operating system's terminal editing characters (as would be
</DL>
</P><P>
-<A NAME="IDX324"></A>
+<A NAME="IDX325"></A>
<DL>
<DT><U>Function:</U> void <B>rl_tty_unset_default_bindings</B> <I>(Keymap kmap)</I>
<DD>Reset the bindings manipulated by <CODE>rl_tty_set_default_bindings</CODE> so
</DL>
</P><P>
-<A NAME="IDX325"></A>
+<A NAME="IDX326"></A>
<DL>
<DT><U>Function:</U> int <B>rl_tty_set_echoing</B> <I>(int value)</I>
<DD>Set Readline's idea of whether or not it is echoing output to its output
</DL>
</P><P>
-<A NAME="IDX326"></A>
+<A NAME="IDX327"></A>
<DL>
<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(const char *terminal_name)</I>
<DD>Reinitialize Readline's idea of the terminal settings using
<!--docid::SEC39::-->
<P>
-<A NAME="IDX327"></A>
+<A NAME="IDX328"></A>
<DL>
<DT><U>Function:</U> int <B>rl_save_state</B> <I>(struct readline_state *sp)</I>
<DD>Save a snapshot of Readline's internal state to <VAR>sp</VAR>.
</DL>
</P><P>
-<A NAME="IDX328"></A>
+<A NAME="IDX329"></A>
<DL>
<DT><U>Function:</U> int <B>rl_restore_state</B> <I>(struct readline_state *sp)</I>
<DD>Restore Readline's internal state to that stored in <VAR>sp</VAR>, which must
</DL>
</P><P>
-<A NAME="IDX329"></A>
+<A NAME="IDX330"></A>
<DL>
<DT><U>Function:</U> void <B>rl_free</B> <I>(void *mem)</I>
<DD>Deallocate the memory pointed to by <VAR>mem</VAR>. <VAR>mem</VAR> must have been
</DL>
</P><P>
-<A NAME="IDX330"></A>
+<A NAME="IDX331"></A>
<DL>
<DT><U>Function:</U> void <B>rl_replace_line</B> <I>(const char *text, int clear_undo)</I>
<DD>Replace the contents of <CODE>rl_line_buffer</CODE> with <VAR>text</VAR>.
</DL>
</P><P>
-<A NAME="IDX331"></A>
+<A NAME="IDX332"></A>
<DL>
<DT><U>Function:</U> void <B>rl_extend_line_buffer</B> <I>(int len)</I>
<DD>Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR>
</DL>
</P><P>
-<A NAME="IDX332"></A>
+<A NAME="IDX333"></A>
<DL>
<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
<DD>Initialize or re-initialize Readline's internal state.
</DL>
</P><P>
-<A NAME="IDX333"></A>
+<A NAME="IDX334"></A>
<DL>
<DT><U>Function:</U> int <B>rl_ding</B> <I>(void)</I>
<DD>Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
</DL>
</P><P>
-<A NAME="IDX334"></A>
+<A NAME="IDX335"></A>
<DL>
<DT><U>Function:</U> int <B>rl_alphabetic</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is an alphabetic character.
</DL>
</P><P>
-<A NAME="IDX335"></A>
+<A NAME="IDX336"></A>
<DL>
<DT><U>Function:</U> void <B>rl_display_match_list</B> <I>(char **matches, int len, int max)</I>
<DD>A convenience function for displaying a list of strings in
Applications should refrain from using them.
</P><P>
-<A NAME="IDX336"></A>
+<A NAME="IDX337"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_uppercase_p</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
</DL>
</P><P>
-<A NAME="IDX337"></A>
+<A NAME="IDX338"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_lowercase_p</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
</DL>
</P><P>
-<A NAME="IDX338"></A>
+<A NAME="IDX339"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_digit_p</B> <I>(int c)</I>
<DD>Return 1 if <VAR>c</VAR> is a numeric character.
</DL>
</P><P>
-<A NAME="IDX339"></A>
+<A NAME="IDX340"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_to_upper</B> <I>(int c)</I>
<DD>If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding
</DL>
</P><P>
-<A NAME="IDX340"></A>
+<A NAME="IDX341"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_to_lower</B> <I>(int c)</I>
<DD>If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding
</DL>
</P><P>
-<A NAME="IDX341"></A>
+<A NAME="IDX342"></A>
<DL>
<DT><U>Function:</U> int <B>_rl_digit_value</B> <I>(int c)</I>
<DD>If <VAR>c</VAR> is a number, return the value it represents.
<!--docid::SEC40::-->
<P>
-<A NAME="IDX342"></A>
+<A NAME="IDX343"></A>
<DL>
<DT><U>Function:</U> int <B>rl_macro_bind</B> <I>(const char *keyseq, const char *macro, Keymap map)</I>
<DD>Bind the key sequence <VAR>keyseq</VAR> to invoke the macro <VAR>macro</VAR>.
</DL>
</P><P>
-<A NAME="IDX343"></A>
+<A NAME="IDX344"></A>
<DL>
<DT><U>Function:</U> void <B>rl_macro_dumper</B> <I>(int readable)</I>
<DD>Print the key sequences bound to macros and their values, using
</DL>
</P><P>
-<A NAME="IDX344"></A>
+<A NAME="IDX345"></A>
<DL>
<DT><U>Function:</U> int <B>rl_variable_bind</B> <I>(const char *variable, const char *value)</I>
<DD>Make the Readline variable <VAR>variable</VAR> have <VAR>value</VAR>.
</DL>
</P><P>
-<A NAME="IDX345"></A>
+<A NAME="IDX346"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_variable_value</B> <I>(const char *variable)</I>
<DD>Return a string representing the value of the Readline variable <VAR>variable</VAR>.
</DL>
</P><P>
-<A NAME="IDX346"></A>
+<A NAME="IDX347"></A>
<DL>
<DT><U>Function:</U> void <B>rl_variable_dumper</B> <I>(int readable)</I>
<DD>Print the readline variable names and their current values
</DL>
</P><P>
-<A NAME="IDX347"></A>
+<A NAME="IDX348"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_paren_blink_timeout</B> <I>(int u)</I>
<DD>Set the time interval (in microseconds) that Readline waits when showing
</DL>
</P><P>
-<A NAME="IDX348"></A>
+<A NAME="IDX349"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_get_termcap</B> <I>(const char *cap)</I>
<DD>Retrieve the string value of the termcap capability <VAR>cap</VAR>.
</DL>
</P><P>
-<A NAME="IDX349"></A>
+<A NAME="IDX350"></A>
<DL>
<DT><U>Function:</U> void <B>rl_clear_history</B> <I>(void)</I>
<DD>Clear the history list by deleting all of the entries, in the same manner
are functions available to make this easy.
</P><P>
-<A NAME="IDX350"></A>
+<A NAME="IDX351"></A>
<DL>
<DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(const char *prompt, rl_vcpfunc_t *lhandler)</I>
<DD>Set up the terminal for readline I/O and display the initial
</DL>
</P><P>
-<A NAME="IDX351"></A>
+<A NAME="IDX352"></A>
<DL>
<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>(void)</I>
<DD>Whenever an application determines that keyboard input is available, it
</DL>
</P><P>
-<A NAME="IDX352"></A>
+<A NAME="IDX353"></A>
<DL>
<DT><U>Function:</U> void <B>rl_callback_sigcleanup</B> <I>(void)</I>
<DD>Clean up any internal state the callback interface uses to maintain state
</DL>
</P><P>
-<A NAME="IDX353"></A>
+<A NAME="IDX354"></A>
<DL>
<DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>(void)</I>
<DD>Restore the terminal to its initial state and remove the line handler.
a signal handler, so Readline's internal signal state is not corrupted.
</P><P>
-<A NAME="IDX354"></A>
+<A NAME="IDX355"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_catch_signals</B>
<DD>If this variable is non-zero, Readline will install signal handlers for
</DL>
</P><P>
-<A NAME="IDX355"></A>
+<A NAME="IDX356"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
<DD>If this variable is set to a non-zero value,
</DL>
</P><P>
-<A NAME="IDX356"></A>
+<A NAME="IDX357"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_persistent_signal_handlers</B>
<DD>If an application using the callback interface wishes Readline's signal
</DL>
</P><P>
-<A NAME="IDX357"></A>
+<A NAME="IDX358"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_change_environment</B>
<DD>If this variable is set to a non-zero value,
and internal state cleanup upon receipt of a signal.
</P><P>
-<A NAME="IDX358"></A>
+<A NAME="IDX359"></A>
<DL>
<DT><U>Function:</U> int <B>rl_pending_signal</B> <I>(void)</I>
<DD>Return the signal number of the most recent signal Readline received but
</DL>
</P><P>
-<A NAME="IDX359"></A>
+<A NAME="IDX360"></A>
<DL>
<DT><U>Function:</U> void <B>rl_cleanup_after_signal</B> <I>(void)</I>
<DD>This function will reset the state of the terminal to what it was before
</DL>
</P><P>
-<A NAME="IDX360"></A>
+<A NAME="IDX361"></A>
<DL>
<DT><U>Function:</U> void <B>rl_free_line_state</B> <I>(void)</I>
<DD>This will free any partial state associated with the current input line
</DL>
</P><P>
-<A NAME="IDX361"></A>
+<A NAME="IDX362"></A>
<DL>
<DT><U>Function:</U> void <B>rl_reset_after_signal</B> <I>(void)</I>
<DD>This will reinitialize the terminal and reinstall any Readline signal
to handle signals received while waiting for input.
</P><P>
-<A NAME="IDX362"></A>
+<A NAME="IDX363"></A>
<DL>
<DT><U>Function:</U> void <B>rl_check_signals</B> <I>(void)</I>
<DD>If there are any pending signals, call Readline's internal signal handling
is received.
</P><P>
-<A NAME="IDX363"></A>
+<A NAME="IDX364"></A>
<DL>
<DT><U>Function:</U> void <B>rl_echo_signal_char</B> <I>(int sig)</I>
<DD>If an application wishes to install its own signal handlers, but still
</DL>
</P><P>
-<A NAME="IDX364"></A>
+<A NAME="IDX365"></A>
<DL>
<DT><U>Function:</U> void <B>rl_resize_terminal</B> <I>(void)</I>
<DD>Update Readline's internal screen size by reading values from the kernel.
</DL>
</P><P>
-<A NAME="IDX365"></A>
+<A NAME="IDX366"></A>
<DL>
<DT><U>Function:</U> void <B>rl_set_screen_size</B> <I>(int rows, int cols)</I>
<DD>Set Readline's idea of the terminal size to <VAR>rows</VAR> rows and
size may be queried.
</P><P>
-<A NAME="IDX366"></A>
+<A NAME="IDX367"></A>
<DL>
<DT><U>Function:</U> void <B>rl_get_screen_size</B> <I>(int *rows, int *cols)</I>
<DD>Return Readline's idea of the terminal's size in the
</DL>
</P><P>
-<A NAME="IDX367"></A>
+<A NAME="IDX368"></A>
<DL>
<DT><U>Function:</U> void <B>rl_reset_screen_size</B> <I>(void)</I>
<DD>Cause Readline to reobtain the screen size and recalculate its dimensions.
The following functions install and remove Readline's signal handlers.
</P><P>
-<A NAME="IDX368"></A>
+<A NAME="IDX369"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_signals</B> <I>(void)</I>
<DD>Install Readline's signal handler for <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>,
</DL>
</P><P>
-<A NAME="IDX369"></A>
+<A NAME="IDX370"></A>
<DL>
<DT><U>Function:</U> int <B>rl_clear_signals</B> <I>(void)</I>
<DD>Remove all of the Readline signal handlers installed by
</OL>
<P>
-<A NAME="IDX370"></A>
+<A NAME="IDX371"></A>
<DL>
<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
<DD>Complete the word at or before point. You have supplied the function
</DL>
</P><P>
-<A NAME="IDX371"></A>
+<A NAME="IDX372"></A>
<DL>
<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
<DD>This is a pointer to the generator function for
Readline.
</P><P>
-<A NAME="IDX372"></A>
+<A NAME="IDX373"></A>
<DL>
<DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I>
<DD>Complete the word at or before point. <VAR>what_to_do</VAR> says what to do
</DL>
</P><P>
-<A NAME="IDX373"></A>
+<A NAME="IDX374"></A>
<DL>
<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
<DD>Complete the word at or before point. You have supplied the function
</DL>
</P><P>
-<A NAME="IDX374"></A>
+<A NAME="IDX375"></A>
<DL>
<DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key)</I>
<DD>List the possible completions. See description of <CODE>rl_complete
</DL>
</P><P>
-<A NAME="IDX375"></A>
+<A NAME="IDX376"></A>
<DL>
<DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key)</I>
<DD>Insert the list of possible completions into the line, deleting the
</DL>
</P><P>
-<A NAME="IDX376"></A>
+<A NAME="IDX377"></A>
<DL>
<DT><U>Function:</U> int <B>rl_completion_mode</B> <I>(rl_command_func_t *cfunc)</I>
<DD>Returns the appropriate value to pass to <CODE>rl_complete_internal()</CODE>
</DL>
</P><P>
-<A NAME="IDX377"></A>
+<A NAME="IDX378"></A>
<DL>
<DT><U>Function:</U> char ** <B>rl_completion_matches</B> <I>(const char *text, rl_compentry_func_t *entry_func)</I>
<DD>Returns an array of strings which is a list of completions for
</DL>
</P><P>
-<A NAME="IDX378"></A>
+<A NAME="IDX379"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_filename_completion_function</B> <I>(const char *text, int state)</I>
<DD>A generator function for filename completion in the general case.
</DL>
</P><P>
-<A NAME="IDX379"></A>
+<A NAME="IDX380"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_username_completion_function</B> <I>(const char *text, int state)</I>
<DD>A completion generator for usernames. <VAR>text</VAR> contains a partial
<!--docid::SEC48::-->
<P>
-<A NAME="IDX380"></A>
+<A NAME="IDX381"></A>
<DL>
<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
<DD>A pointer to the generator function for <CODE>rl_completion_matches()</CODE>.
</DL>
</P><P>
-<A NAME="IDX381"></A>
+<A NAME="IDX382"></A>
<DL>
<DT><U>Variable:</U> rl_completion_func_t * <B>rl_attempted_completion_function</B>
<DD>A pointer to an alternative function to create matches.
</DL>
</P><P>
-<A NAME="IDX382"></A>
+<A NAME="IDX383"></A>
<DL>
<DT><U>Variable:</U> rl_quote_func_t * <B>rl_filename_quoting_function</B>
<DD>A pointer to a function that will quote a filename in an
</DL>
</P><P>
-<A NAME="IDX383"></A>
+<A NAME="IDX384"></A>
<DL>
<DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_dequoting_function</B>
<DD>A pointer to a function that will remove application-specific quoting
</DL>
</P><P>
-<A NAME="IDX384"></A>
+<A NAME="IDX385"></A>
<DL>
<DT><U>Variable:</U> rl_linebuf_func_t * <B>rl_char_is_quoted_p</B>
<DD>A pointer to a function to call that determines whether or not a specific
</DL>
</P><P>
-<A NAME="IDX385"></A>
+<A NAME="IDX386"></A>
<DL>
<DT><U>Variable:</U> rl_compignore_func_t * <B>rl_ignore_some_completions_function</B>
<DD>This function, if defined, is called by the completer when real filename
</DL>
</P><P>
-<A NAME="IDX386"></A>
+<A NAME="IDX387"></A>
<DL>
<DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_completion_hook</B>
<DD>This function, if defined, is allowed to modify the directory portion
</DL>
</P><P>
-<A NAME="IDX387"></A>
+<A NAME="IDX388"></A>
<DL>
<DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_rewrite_hook;</B>
<DD>If non-zero, this is the address of a function to call when completing
</DL>
</P><P>
-<A NAME="IDX388"></A>
+<A NAME="IDX389"></A>
<DL>
<DT><U>Variable:</U> rl_icppfunc_t * <B>rl_filename_stat_hook</B>
<DD>If non-zero, this is the address of a function for the completer to
</DL>
</P><P>
-<A NAME="IDX389"></A>
+<A NAME="IDX390"></A>
<DL>
<DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_rewrite_hook</B>
<DD>If non-zero, this is the address of a function called when reading
</DL>
</P><P>
-<A NAME="IDX390"></A>
+<A NAME="IDX391"></A>
<DL>
<DT><U>Variable:</U> rl_compdisp_func_t * <B>rl_completion_display_matches_hook</B>
<DD>If non-zero, then this is the address of a function to call when
</DL>
</P><P>
-<A NAME="IDX391"></A>
+<A NAME="IDX392"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_basic_word_break_characters</B>
<DD>The basic list of characters that signal a break between words for the
</DL>
</P><P>
-<A NAME="IDX392"></A>
+<A NAME="IDX393"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_basic_quote_characters</B>
<DD>A list of quote characters which can cause a word break.
</DL>
</P><P>
-<A NAME="IDX393"></A>
+<A NAME="IDX394"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_completer_word_break_characters</B>
<DD>The list of characters that signal a break between words for
</DL>
</P><P>
-<A NAME="IDX394"></A>
+<A NAME="IDX395"></A>
<DL>
<DT><U>Variable:</U> rl_cpvfunc_t * <B>rl_completion_word_break_hook</B>
<DD>If non-zero, this is the address of a function to call when Readline is
</DL>
</P><P>
-<A NAME="IDX395"></A>
+<A NAME="IDX396"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_completer_quote_characters</B>
<DD>A list of characters which can be used to quote a substring of the line.
</DL>
</P><P>
-<A NAME="IDX396"></A>
+<A NAME="IDX397"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_filename_quote_characters</B>
<DD>A list of characters that cause a filename to be quoted by the completer
</DL>
</P><P>
-<A NAME="IDX397"></A>
+<A NAME="IDX398"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_special_prefixes</B>
<DD>The list of characters that are word break characters, but should be
</DL>
</P><P>
-<A NAME="IDX398"></A>
+<A NAME="IDX399"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_query_items</B>
<DD>Up to this many items will be displayed in response to a
</DL>
</P><P>
-<A NAME="IDX399"></A>
+<A NAME="IDX400"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_append_character</B>
<DD>When a single completion alternative matches at the end of the command
</DL>
</P><P>
-<A NAME="IDX400"></A>
+<A NAME="IDX401"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_suppress_append</B>
<DD>If non-zero, <VAR>rl_completion_append_character</VAR> is not appended to
</DL>
</P><P>
-<A NAME="IDX401"></A>
+<A NAME="IDX402"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_quote_character</B>
<DD>When Readline is completing quoted text, as delimited by one of the
</DL>
</P><P>
-<A NAME="IDX402"></A>
+<A NAME="IDX403"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_suppress_quote</B>
<DD>If non-zero, Readline does not append a matching quote character when
</DL>
</P><P>
-<A NAME="IDX403"></A>
+<A NAME="IDX404"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_found_quote</B>
<DD>When Readline is completing quoted text, it sets this variable
</DL>
</P><P>
-<A NAME="IDX404"></A>
+<A NAME="IDX405"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_mark_symlink_dirs</B>
<DD>If non-zero, a slash will be appended to completed filenames that are
</DL>
</P><P>
-<A NAME="IDX405"></A>
+<A NAME="IDX406"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
<DD>If non-zero, then duplicates in the matches are removed.
</DL>
</P><P>
-<A NAME="IDX406"></A>
+<A NAME="IDX407"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_filename_completion_desired</B>
<DD>Non-zero means that the results of the matches are to be treated as
</DL>
</P><P>
-<A NAME="IDX407"></A>
+<A NAME="IDX408"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
<DD>Non-zero means that the results of the matches are to be quoted using
</DL>
</P><P>
-<A NAME="IDX408"></A>
+<A NAME="IDX409"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
<DD>If an application-specific completion function assigned to
</DL>
</P><P>
-<A NAME="IDX409"></A>
+<A NAME="IDX410"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_sort_completion_matches</B>
<DD>If an application sets this variable to 0, Readline will not sort the
</DL>
</P><P>
-<A NAME="IDX410"></A>
+<A NAME="IDX411"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_type</B>
<DD>Set to a character describing the type of completion Readline is currently
</DL>
</P><P>
-<A NAME="IDX411"></A>
+<A NAME="IDX412"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_invoking_key</B>
<DD>Set to the final character in the key sequence that invoked one of the
</DL>
</P><P>
-<A NAME="IDX412"></A>
+<A NAME="IDX413"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
<DD>If this variable is non-zero, completion is inhibited. The completion
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn__"></A>_</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX338"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX341"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX337"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX340"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX339"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX336"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX339"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX342"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX338"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX341"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX340"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX337"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX179"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX187"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX188"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><CODE>rl_add_defun</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC30">2.4.1 Naming a Function</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX335"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX226">rl_already_prompted</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX381">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX408">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX392">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX391">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX382">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX409">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX393">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX392">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_bind_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX268"><CODE>rl_bind_key_if_unbound</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX269"><CODE>rl_bind_key_if_unbound_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX278"><CODE>rl_bind_keyseq_if_unbound_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX275"><CODE>rl_bind_keyseq_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX246">rl_binding_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX350"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX353"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX351"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX352"><CODE>rl_callback_sigcleanup</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX354">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX355">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX357">rl_change_environment</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX384">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX362"><CODE>rl_check_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX359"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349"><CODE>rl_clear_history</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX305"><CODE>rl_clear_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319"><CODE>rl_clear_pending_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX369"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX300"><CODE>rl_clear_visible_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX370"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX373"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX372"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX395">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX393">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX399">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX390">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX371">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX380">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX403">rl_completion_found_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX411">rl_completion_invoking_key</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX404">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX377"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX376"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX398">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX401">rl_completion_quote_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX400">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX402">rl_completion_suppress_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX410">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX394">rl_completion_word_break_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX351"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX354"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX352"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX353"><CODE>rl_callback_sigcleanup</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX355">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX356">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX358">rl_change_environment</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX385">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX363"><CODE>rl_check_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX360"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX350"><CODE>rl_clear_history</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX306"><CODE>rl_clear_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX320"><CODE>rl_clear_pending_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX370"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_clear_visible_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX371"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX374"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX373"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX396">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX394">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX400">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX391">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX372">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX381">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX404">rl_completion_found_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX412">rl_completion_invoking_key</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX405">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX378"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX377"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX399">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX402">rl_completion_quote_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX401">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX403">rl_completion_suppress_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX411">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX395">rl_completion_word_break_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX257"><CODE>rl_copy_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX312"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302"><CODE>rl_crlf</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_crlf</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX312"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX244">rl_deprep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX386">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX387">rl_directory_rewrite_hook;</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX387">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX388">rl_directory_rewrite_hook;</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX259"><CODE>rl_discard_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX222">rl_dispatching</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX335"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX336"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX225">rl_display_prompt</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX295"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX219">rl_done</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX363"><CODE>rl_echo_signal_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX364"><CODE>rl_echo_signal_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX254">rl_editing_mode</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX261"><CODE>rl_empty_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX217">rl_end</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX223">rl_erase_empty_line</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX238">rl_event_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318"><CODE>rl_execute_next</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319"><CODE>rl_execute_next</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX248">rl_executing_key</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX245">rl_executing_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX249">rl_executing_keyseq</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX247">rl_executing_macro</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_expand_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_expand_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX252">rl_explicit_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX406">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX378"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX383">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX396">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX407">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX382">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX389">rl_filename_rewrite_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX388">rl_filename_stat_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><CODE>rl_forced_update_display</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX329"><CODE>rl_free</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX407">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX379"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX384">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX397">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX408">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX383">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX390">rl_filename_rewrite_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX389">rl_filename_stat_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>rl_forced_update_display</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330"><CODE>rl_free</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX260"><CODE>rl_free_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX360"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX361"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX283"><CODE>rl_function_of_keyseq</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX288"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_function_of_keyseq_len</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX279"><CODE>rl_generic_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX262"><CODE>rl_get_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX264"><CODE>rl_get_keymap_by_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX265"><CODE>rl_get_keymap_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX366"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX348"><CODE>rl_get_termcap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX316"><CODE>rl_getc</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX367"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349"><CODE>rl_get_termcap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317"><CODE>rl_getc</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX239">rl_getc_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX229">rl_gnu_readline_p</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX405">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX385">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX412">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX406">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX386">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX413">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX241">rl_input_available_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX375"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX310"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX376"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX232">rl_instream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX250">rl_key_sequence_length</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX235">rl_last_func</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX227">rl_library_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX215">rl_line_buffer</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX342"><CODE>rl_macro_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX343"><CODE>rl_macro_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX288"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX343"><CODE>rl_macro_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX344"><CODE>rl_macro_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX256"><CODE>rl_make_bare_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX258"><CODE>rl_make_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX218">rl_mark</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX295"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX305"><CODE>rl_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX296"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX282"><CODE>rl_named_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX220">rl_num_chars_to_read</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX253">rl_numeric_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>rl_on_new_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX299"><CODE>rl_on_new_line_with_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX299"><CODE>rl_on_new_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX300"><CODE>rl_on_new_line_with_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX233">rl_outstream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX280"><CODE>rl_parse_and_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX221">rl_pending_input</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX358"><CODE>rl_pending_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX356">rl_persistent_signal_handlers</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX359"><CODE>rl_pending_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX357">rl_persistent_signal_handlers</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX216">rl_point</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX374"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX375"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX237">rl_pre_input_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX234">rl_prefer_env_winsize</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX243">rl_prep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX224">rl_prompt</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX281"><CODE>rl_read_init_file</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315"><CODE>rl_read_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX316"><CODE>rl_read_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX231">rl_readline_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX251">rl_readline_state</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX228">rl_readline_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX296"><CODE>rl_redisplay</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><CODE>rl_redisplay</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX242">rl_redisplay_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX361"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_reset_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX367"><CODE>rl_reset_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX364"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_restore_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328"><CODE>rl_restore_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX306"><CODE>rl_save_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327"><CODE>rl_save_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX362"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302"><CODE>rl_reset_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX368"><CODE>rl_reset_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX365"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_restore_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX329"><CODE>rl_restore_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_save_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328"><CODE>rl_save_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX276"><CODE>rl_set_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX320"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX263"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX347"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX365"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX368"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_show_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX348"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX310"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX366"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX369"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_show_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX240">rl_signal_event_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX409">rl_sort_completion_matches</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX397">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX410">rl_sort_completion_matches</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX398">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX236">rl_startup_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317"><CODE>rl_stuff_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318"><CODE>rl_stuff_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX230">rl_terminal_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325"><CODE>rl_tty_set_echoing</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324"><CODE>rl_tty_unset_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326"><CODE>rl_tty_set_echoing</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325"><CODE>rl_tty_unset_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX273"><CODE>rl_unbind_command_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX272"><CODE>rl_unbind_function_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX270"><CODE>rl_unbind_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX271"><CODE>rl_unbind_key_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX379"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX344"><CODE>rl_variable_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX346"><CODE>rl_variable_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX345"><CODE>rl_variable_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX380"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX345"><CODE>rl_variable_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX347"><CODE>rl_variable_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX346"><CODE>rl_variable_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX107"><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>January, 2 2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>May, 21 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>January, 2 2018</I>
+by <I>Chet Ramey</I> on <I>May, 21 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
type of the object is returned in the 'int' variable it points to
(one of 'ISFUNC', 'ISKMAP', or 'ISMACR').
+ -- Function: rl_command_func_t * rl_function_of_keyseq_len (const char
+ *keyseq, size_t len Keymap map, int *type)
+ Return the function invoked by KEYSEQ of length LEN in keymap MAP.
+ Equivalent to 'rl_function_of_keyseq' with the addition of the LEN
+ parameter.
+
-- Function: char ** rl_invoking_keyseqs (rl_command_func_t *function)
Return an array of strings representing the key sequences used to
invoke FUNCTION in the current keymap.
(line 26)
* rl_add_defun: Function Naming. (line 18)
* rl_add_funmap_entry: Associating Function Names and Bindings.
- (line 45)
+ (line 51)
* rl_add_undo: Allowing Undoing. (line 39)
* rl_alphabetic: Utility Functions. (line 38)
* rl_already_prompted: Readline Variables. (line 63)
(line 113)
* rl_free_undo_list: Allowing Undoing. (line 44)
* rl_function_dumper: Associating Function Names and Bindings.
- (line 29)
+ (line 35)
* rl_function_of_keyseq: Associating Function Names and Bindings.
(line 13)
+* rl_function_of_keyseq_len: Associating Function Names and Bindings.
+ (line 20)
* rl_funmap_names: Associating Function Names and Bindings.
- (line 39)
+ (line 45)
* rl_generic_bind: Binding Keys. (line 87)
* rl_getc: Character Input. (line 14)
* rl_getc_function: Readline Variables. (line 128)
* rl_insert_text: Modifying Text. (line 6)
* rl_instream: Readline Variables. (line 96)
* rl_invoking_keyseqs: Associating Function Names and Bindings.
- (line 20)
+ (line 26)
* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
- (line 24)
+ (line 30)
* rl_key_sequence_length: Readline Variables. (line 199)
* rl_kill_text: Modifying Text. (line 18)
* rl_last_func: Readline Variables. (line 109)
* rl_library_version: Readline Variables. (line 72)
* rl_line_buffer: Readline Variables. (line 8)
* rl_list_funmap_names: Associating Function Names and Bindings.
- (line 35)
+ (line 41)
* rl_macro_bind: Miscellaneous Functions.
(line 6)
* rl_macro_dumper: Miscellaneous Functions.
Node: Keymaps\7f87619
Node: Binding Keys\7f89774
Node: Associating Function Names and Bindings\7f94322
-Node: Allowing Undoing\7f96607
-Node: Redisplay\7f99157
-Node: Modifying Text\7f103181
-Node: Character Input\7f104428
-Node: Terminal Management\7f106326
-Node: Utility Functions\7f108149
-Node: Miscellaneous Functions\7f111477
-Node: Alternate Interface\7f114066
-Node: A Readline Example\7f116808
-Node: Alternate Interface Example\7f118747
-Node: Readline Signal Handling\7f122279
-Node: Custom Completers\7f131328
-Node: How Completing Works\7f132048
-Node: Completion Functions\7f135355
-Node: Completion Variables\7f138929
-Node: A Short Completion Example\7f154573
-Node: GNU Free Documentation License\7f167352
-Node: Concept Index\7f192526
-Node: Function and Variable Index\7f194047
+Node: Allowing Undoing\7f96893
+Node: Redisplay\7f99443
+Node: Modifying Text\7f103467
+Node: Character Input\7f104714
+Node: Terminal Management\7f106612
+Node: Utility Functions\7f108435
+Node: Miscellaneous Functions\7f111763
+Node: Alternate Interface\7f114352
+Node: A Readline Example\7f117094
+Node: Alternate Interface Example\7f119033
+Node: Readline Signal Handling\7f122565
+Node: Custom Completers\7f131614
+Node: How Completing Works\7f132334
+Node: Completion Functions\7f135641
+Node: Completion Variables\7f139215
+Node: A Short Completion Example\7f154859
+Node: GNU Free Documentation License\7f167638
+Node: Concept Index\7f192812
+Node: Function and Variable Index\7f194333
\1f
End Tag Table
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
%%Title: readline.dvi
-%%CreationDate: Tue Jan 2 15:56:03 2018
+%%CreationDate: Mon May 21 14:32:51 2018
%%Pages: 80
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o readline.ps readline.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2018.01.02:1055
+%DVIPSSource: TeX output 2018.05.21:1032
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39
39 39 39 39 39 39 39 3[39 1[39 39 39 39 39 39 39 39 39
39 39 39 39 39 39 39 1[39 39 39 33[{}86 74.7198 /CMTT9
-rf /Ff 134[53 53 72 53 55 39 39 39 53 55 50 55 83 28
-53 1[28 55 50 30 44 55 44 55 50 20[62 77 1[36 2[65 68
-22[28 1[28 1[50 28[55 55 12[{}34 99.6264 /CMSL10 rf /Fg
-214[35 35 40[{}2 90.9091 /CMSS10 rf /Fh 133[52 52 52
-52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52 52 52
-52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52 16[52
+rf /Ff 133[44 53 53 72 53 55 39 39 39 53 55 50 55 83
+28 53 1[28 55 50 30 44 55 44 55 50 20[62 77 1[36 2[65
+68 22[28 1[28 1[50 28[55 55 12[{}35 99.6264 /CMSL10 rf
+/Fg 214[35 35 40[{}2 90.9091 /CMSS10 rf /Fh 133[52 52
+52 52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52 52
+52 52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52 16[52
42[{}33 99.6264 /CMTT10 rf /Fi 134[65 65 89 65 68 48
48 50 1[68 61 68 102 34 65 1[34 68 61 37 56 68 55 68
60 7[93 1[127 93 94 85 68 92 3[96 116 74 96 1[46 96 1[77
y(2.6)92 b(Custom)29 b(Completers)e Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)40 b Ft(49)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8
+(:)40 b Ft(50)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8
b(orks)11 b Fn(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)24 b Ft(50)399 521 y(2.6.2)93 b(Completion)31
b(F)-8 b(unctions)28 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(50)399 631 y(2.6.3)93
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(51)399 631 y(2.6.3)93
b(Completion)31 b(V)-8 b(ariables)18 b Fn(:)e(:)g(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)31 b
b Ft(whic)m(h)33 b(p)s(erforms)e(this)h(and)h(other)g(desired)f
(initializations,)150 3773 y(suc)m(h)e(as)h(installing)g(custom)g
(completers)g(\(see)g(Section)h(2.6)f([Custom)f(Completers],)h(page)g
-(49\).)150 4023 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150
+(50\).)150 4023 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150
4182 y Ft(Readline)28 b(pro)m(vides)f(man)m(y)g(functions)g(for)g
(manipulating)h(the)f(text)h(of)g(the)f(line,)i(but)d(it)i(isn't)f(p)s
(ossible)150 4292 y(to)37 b(an)m(ticipate)i(the)e(needs)f(of)h(all)g
(in)h(the)g Fs(int)390 4453 y Ft(v)-5 b(ariable)31 b(it)g(p)s(oin)m(ts)
f(to)h(\(one)g(of)g Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)h
Fs(ISMACR)p Ft(\).)3350 4622 y([F)-8 b(unction])-3599
+b Fh(rl_command_func_t)57 b(*)c(rl_function_of_keyseq_)q(len)f
+Fg(\()p Ff(const)34 b(c)m(har)565 4732 y(*k)m(eyseq,)f(size)p
+1121 4732 V 44 w(t)g(len)g(Keymap)h(map,)f(in)m(t)g(*t)m(yp)s(e)p
+Fg(\))390 4842 y Ft(Return)g(the)h(function)f(in)m(v)m(ok)m(ed)i(b)m(y)
+f Fj(k)m(eyseq)i Ft(of)e(length)g Fj(len)g Ft(in)f(k)m(eymap)h
+Fj(map)p Ft(.)51 b(Equiv)-5 b(alen)m(t)34 b(to)390 4951
+y Fs(rl_function_of_keyseq)25 b Ft(with)30 b(the)g(addition)h(of)f(the)
+h Fj(len)f Ft(parameter.)3350 5121 y([F)-8 b(unction])-3599
b Fh(char)54 b(**)e(rl_invoking_keyseqs)g Fg(\()p Ff(rl)p
-1717 4622 V 44 w(command)p 2181 4622 V 44 w(func)p 2409
-4622 V 45 w(t)33 b(*function)p Fg(\))390 4732 y Ft(Return)d(an)i(arra)m
+1717 5121 V 44 w(command)p 2181 5121 V 44 w(func)p 2409
+5121 V 45 w(t)33 b(*function)p Fg(\))390 5230 y Ft(Return)d(an)i(arra)m
(y)f(of)h(strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e
-(to)i(in)m(v)m(ok)m(e)h Fj(function)e Ft(in)390 4842
-y(the)g(curren)m(t)f(k)m(eymap.)3350 5011 y([F)-8 b(unction])-3599
-b Fh(char)54 b(**)e(rl_invoking_keyseqs_i)q(n_m)q(ap)g
-Fg(\()p Ff(rl)p 2083 5011 V 44 w(command)p 2547 5011
-V 44 w(func)p 2775 5011 V 45 w(t)565 5121 y(*function,)34
-b(Keymap)g(map)p Fg(\))390 5230 y Ft(Return)c(an)i(arra)m(y)f(of)h
-(strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e(to)i(in)
-m(v)m(ok)m(e)h Fj(function)e Ft(in)390 5340 y(the)g(k)m(eymap)f
-Fj(map)p Ft(.)p eop end
+(to)i(in)m(v)m(ok)m(e)h Fj(function)e Ft(in)390 5340
+y(the)g(curren)m(t)f(k)m(eymap.)p eop end
%%Page: 36 40
TeXDict begin 36 39 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(36)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_function_dumper)c
-Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 408 y Ft(Prin)m(t)29
-b(the)h(readline)f(function)g(names)g(and)g(the)g(k)m(ey)h(sequences)g
-(curren)m(tly)f(b)s(ound)e(to)j(them)f(to)390 518 y Fs(rl_outstream)p
-Ft(.)36 b(If)27 b Fj(readable)33 b Ft(is)28 b(non-zero,)h(the)e(list)i
-(is)e(formatted)h(in)f(suc)m(h)g(a)h(w)m(a)m(y)h(that)f(it)g(can)390
-628 y(b)s(e)i(made)g(part)g(of)h(an)f Fs(inputrc)f Ft(\014le)h(and)g
-(re-read.)3350 813 y([F)-8 b(unction])-3599 b Fh(void)54
-b(rl_list_funmap_names)d Fg(\()p Ff(v)m(oid)p Fg(\))390
-923 y Ft(Prin)m(t)30 b(the)h(names)f(of)h(all)g(bindable)f(Readline)h
-(functions)f(to)h Fs(rl_outstream)p Ft(.)3350 1109 y([F)-8
-b(unction])-3599 b Fh(const)54 b(char)f(**)g(rl_funmap_names)d
-Fg(\()p Ff(v)m(oid)p Fg(\))390 1218 y Ft(Return)25 b(a)i(NULL)f
-(terminated)g(arra)m(y)h(of)f(kno)m(wn)f(function)h(names.)39
-b(The)26 b(arra)m(y)g(is)g(sorted.)39 b(The)390 1328
-y(arra)m(y)28 b(itself)h(is)f(allo)s(cated,)j(but)c(not)h(the)h
-(strings)e(inside.)40 b(Y)-8 b(ou)29 b(should)e(free)h(the)g(arra)m(y)
--8 b(,)29 b(but)f(not)390 1438 y(the)j(p)s(oin)m(ters,)f(using)g
+299 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e(rl_invoking_keyseqs_i)
+q(n_m)q(ap)g Fg(\()p Ff(rl)p 2083 299 30 5 v 44 w(command)p
+2547 299 V 44 w(func)p 2775 299 V 45 w(t)565 408 y(*function,)34
+b(Keymap)g(map)p Fg(\))390 518 y Ft(Return)c(an)i(arra)m(y)f(of)h
+(strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e(to)i(in)
+m(v)m(ok)m(e)h Fj(function)e Ft(in)390 628 y(the)g(k)m(eymap)f
+Fj(map)p Ft(.)3350 790 y([F)-8 b(unction])-3599 b Fh(void)54
+b(rl_function_dumper)c Fg(\()p Ff(in)m(t)34 b(readable)p
+Fg(\))390 900 y Ft(Prin)m(t)29 b(the)h(readline)f(function)g(names)g
+(and)g(the)g(k)m(ey)h(sequences)g(curren)m(tly)f(b)s(ound)e(to)j(them)f
+(to)390 1009 y Fs(rl_outstream)p Ft(.)36 b(If)27 b Fj(readable)33
+b Ft(is)28 b(non-zero,)h(the)e(list)i(is)e(formatted)h(in)f(suc)m(h)g
+(a)h(w)m(a)m(y)h(that)f(it)g(can)390 1119 y(b)s(e)i(made)g(part)g(of)h
+(an)f Fs(inputrc)f Ft(\014le)h(and)g(re-read.)3350 1281
+y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_list_funmap_names)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1391 y Ft(Prin)m(t)30
+b(the)h(names)f(of)h(all)g(bindable)f(Readline)h(functions)f(to)h
+Fs(rl_outstream)p Ft(.)3350 1553 y([F)-8 b(unction])-3599
+b Fh(const)54 b(char)f(**)g(rl_funmap_names)d Fg(\()p
+Ff(v)m(oid)p Fg(\))390 1663 y Ft(Return)25 b(a)i(NULL)f(terminated)g
+(arra)m(y)h(of)f(kno)m(wn)f(function)h(names.)39 b(The)26
+b(arra)m(y)g(is)g(sorted.)39 b(The)390 1772 y(arra)m(y)28
+b(itself)h(is)f(allo)s(cated,)j(but)c(not)h(the)h(strings)e(inside.)40
+b(Y)-8 b(ou)29 b(should)e(free)h(the)g(arra)m(y)-8 b(,)29
+b(but)f(not)390 1882 y(the)j(p)s(oin)m(ters,)f(using)g
Fs(free)f Ft(or)i Fs(rl_free)d Ft(when)h(y)m(ou)i(are)g(done.)3350
-1623 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_add_funmap_entry)e
-Fg(\()p Ff(const)34 b(c)m(har)g(*name,)g(rl)p 2331 1623
-30 5 v 43 w(command)p 2794 1623 V 45 w(func)p 3023 1623
-V 45 w(t)565 1733 y(*function)p Fg(\))390 1843 y Ft(Add)e
+2044 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_add_funmap_entry)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*name,)g(rl)p 2331 2044
+V 43 w(command)p 2794 2044 V 45 w(func)p 3023 2044 V
+45 w(t)565 2154 y(*function)p Fg(\))390 2264 y Ft(Add)e
Fj(name)38 b Ft(to)33 b(the)g(list)h(of)f(bindable)f(Readline)h
(command)g(names,)g(and)f(mak)m(e)i Fj(function)f Ft(the)390
-1952 y(function)d(to)h(b)s(e)f(called)h(when)f Fj(name)35
-b Ft(is)c(in)m(v)m(ok)m(ed.)150 2152 y Fi(2.4.5)63 b(Allo)m(wing)41
-b(Undoing)150 2299 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g
+2373 y(function)d(to)h(b)s(e)f(called)h(when)f Fj(name)35
+b Ft(is)c(in)m(v)m(ok)m(ed.)150 2558 y Fi(2.4.5)63 b(Allo)m(wing)41
+b(Undoing)150 2705 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g
(a)g(painless)g(thing,)h(and)e(mak)m(es)i(y)m(our)f(functions)f(m)m(uc)
-m(h)h(more)150 2409 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
+m(h)h(more)150 2814 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
(try)g(something)g(if)f(y)m(ou)h(kno)m(w)f(y)m(ou)h(can)f(undo)g(it.)
-275 2544 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h
+275 2942 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h
(once,)i(or)d(deletes)h(text)g(once,)i(and)c(uses)h Fs(rl_insert_)150
-2654 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
+3051 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
b Ft(to)29 b(do)f(it,)h(then)f(undoing)f(is)g(already)i(done)f(for)f(y)
-m(ou)h(automatically)-8 b(.)275 2789 y(If)20 b(y)m(ou)g(do)h(m)m
+m(ou)h(automatically)-8 b(.)275 3178 y(If)20 b(y)m(ou)g(do)h(m)m
(ultiple)g(insertions)f(or)h(m)m(ultiple)g(deletions,)j(or)c(an)m(y)h
-(com)m(bination)h(of)e(these)h(op)s(erations,)150 2898
+(com)m(bination)h(of)e(these)h(op)s(erations,)150 3288
y(y)m(ou)38 b(should)f(group)h(them)g(together)h(in)m(to)g(one)f(op)s
(eration.)64 b(This)37 b(is)h(done)g(with)g Fs(rl_begin_undo_)150
-3008 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p
-Ft(.)275 3143 y(The)f(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b)
-s(e)e(undone)h(are:)390 3256 y Fe(enum)40 b(undo_code)h({)f
+3398 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p
+Ft(.)275 3525 y(The)f(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b)
+s(e)e(undone)h(are:)390 3630 y Fe(enum)40 b(undo_code)h({)f
(UNDO_DELETE,)i(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)f(};)275
-3391 y Ft(Notice)32 b(that)f Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f
+3757 y Ft(Notice)32 b(that)f Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f
(some)h(text,)h(and)d Fs(UNDO_INSERT)e Ft(means)k(to)g(delete)150
-3501 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g
+3866 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g
(what)g(to)g(undo,)f(not)h(ho)m(w)g(to)g(undo)e(it.)41
-b Fs(UNDO_BEGIN)25 b Ft(and)150 3610 y Fs(UNDO_END)j
+b Fs(UNDO_BEGIN)25 b Ft(and)150 3976 y Fs(UNDO_END)j
Ft(are)j(tags)g(added)f(b)m(y)g Fs(rl_begin_undo_group\(\))25
-b Ft(and)30 b Fs(rl_end_undo_group\(\))p Ft(.)3350 3796
+b Ft(and)30 b Fs(rl_end_undo_group\(\))p Ft(.)3350 4138
y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_begin_undo_group)e
-Fg(\()p Ff(v)m(oid)p Fg(\))390 3906 y Ft(Begins)32 b(sa)m(ving)g(undo)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4248 y Ft(Begins)32 b(sa)m(ving)g(undo)d
(information)j(in)e(a)i(group)e(construct.)43 b(The)30
-b(undo)g(information)h(usually)390 4015 y(comes)42 b(from)f(calls)i(to)
+b(undo)g(information)h(usually)390 4358 y(comes)42 b(from)f(calls)i(to)
f Fs(rl_insert_text\(\))37 b Ft(and)k Fs(rl_delete_text\(\))p
-Ft(,)f(but)h(could)h(b)s(e)f(the)390 4125 y(result)30
-b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p Ft(.)3350 4311
+Ft(,)f(but)h(could)h(b)s(e)f(the)390 4467 y(result)30
+b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p Ft(.)3350 4630
y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_end_undo_group)e
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4420 y Ft(Closes)29 b(the)h(curren)m(t)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4739 y Ft(Closes)29 b(the)h(curren)m(t)e
(undo)g(group)h(started)g(with)g Fs(rl_begin_undo_group)c(\(\))p
-Ft(.)39 b(There)29 b(should)390 4530 y(b)s(e)h(one)g(call)i(to)f
+Ft(.)39 b(There)29 b(should)390 4849 y(b)s(e)h(one)g(call)i(to)f
Fs(rl_end_undo_group\(\))25 b Ft(for)30 b(eac)m(h)i(call)g(to)f
-Fs(rl_begin_undo_group\(\))p Ft(.)3350 4716 y([F)-8 b(unction])-3599
+Fs(rl_begin_undo_group\(\))p Ft(.)3350 5011 y([F)-8 b(unction])-3599
b Fh(void)54 b(rl_add_undo)48 b Fg(\()p Ff(en)m(um)35
-b(undo)p 1558 4716 V 45 w(co)s(de)e(what,)g(in)m(t)g(start,)g(in)m(t)g
-(end,)h(c)m(har)565 4825 y(*text)p Fg(\))390 4935 y Ft(Remem)m(b)s(er)g
+b(undo)p 1558 5011 V 45 w(co)s(de)e(what,)g(in)m(t)g(start,)g(in)m(t)g
+(end,)h(c)m(har)565 5121 y(*text)p Fg(\))390 5230 y Ft(Remem)m(b)s(er)g
(ho)m(w)g(to)h(undo)d(an)i(ev)m(en)m(t)i(\(according)f(to)g
Fj(what)r Ft(\).)52 b(The)33 b(a\013ected)j(text)f(runs)d(from)390
-5045 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h
-Fj(text)p Ft(.)3350 5230 y([F)-8 b(unction])-3599 b Fh(void)54
-b(rl_free_undo_list)c Fg(\()p Ff(v)m(oid)p Fg(\))390
-5340 y Ft(F)-8 b(ree)31 b(the)g(existing)g(undo)f(list.)p
-eop end
+5340 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h
+Fj(text)p Ft(.)p eop end
%%Page: 37 41
TeXDict begin 37 40 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(37)3350
-299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_do_undo)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Undo)22 b(the)h(\014rst)g
-(thing)f(on)h(the)g(undo)f(list.)39 b(Returns)22 b Fs(0)g
-Ft(if)h(there)g(w)m(as)g(nothing)g(to)h(undo,)f(non-zero)390
-518 y(if)30 b(something)h(w)m(as)g(undone.)275 698 y(Finally)-8
-b(,)32 b(if)f(y)m(ou)h(neither)f(insert)g(nor)f(delete)j(text,)f(but)f
-(directly)g(mo)s(dify)g(the)g(existing)h(text)g(\(e.g.,)150
-808 y(c)m(hange)40 b(its)f(case\),)j(call)e Fs(rl_modifying\(\))35
-b Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s(dify)f(the)h(text.)67
-b(Y)-8 b(ou)39 b(m)m(ust)150 917 y(supply)29 b(the)h(indices)h(of)f
-(the)h(text)g(range)g(that)g(y)m(ou)g(are)g(going)g(to)g(mo)s(dify)-8
-b(.)3350 1098 y([F)g(unction])-3599 b Fh(int)53 b(rl_modifying)c
-Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p Fg(\))390
-1207 y Ft(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g(the)g(text)g(b)s
-(et)m(w)m(een)g Fj(start)i Ft(and)c Fj(end)k Ft(as)e(a)f(single)h(undo)
-e(unit.)70 b(It)40 b(is)390 1317 y(assumed)30 b(that)h(y)m(ou)f(will)h
-(subsequen)m(tly)f(mo)s(dify)f(that)i(text.)150 1513
-y Fi(2.4.6)63 b(Redispla)m(y)3350 1707 y Ft([F)-8 b(unction])-3599
-b Fh(void)54 b(rl_redisplay)49 b Fg(\()p Ff(v)m(oid)p
-Fg(\))390 1817 y Ft(Change)38 b(what's)f(displa)m(y)m(ed)i(on)e(the)h
-(screen)g(to)h(re\015ect)f(the)g(curren)m(t)g(con)m(ten)m(ts)h(of)f
-Fs(rl_line_)390 1926 y(buffer)p Ft(.)3350 2106 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_forced_update_disp)q(lay)f
-Fg(\()p Ff(v)m(oid)p Fg(\))390 2216 y Ft(F)-8 b(orce)41
-b(the)f(line)g(to)h(b)s(e)e(up)s(dated)f(and)h(redispla)m(y)m(ed,)k
-(whether)c(or)g(not)h(Readline)h(thinks)e(the)390 2326
-y(screen)30 b(displa)m(y)h(is)f(correct.)3350 2506 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_on_new_line)d Fg(\()p
-Ff(v)m(oid)p Fg(\))390 2615 y Ft(T)-8 b(ell)31 b(the)f(up)s(date)f
-(functions)g(that)i(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)g(a)f
-(new)f(\(empt)m(y\))i(line,)g(usually)e(after)390 2725
-y(outputting)i(a)f(newline.)3350 2905 y([F)-8 b(unction])-3599
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_free_undo_list)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(F)-8 b(ree)31
+b(the)g(existing)g(undo)f(list.)3350 608 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_do_undo)c Fg(\()p Ff(v)m(oid)p Fg(\))390
+718 y Ft(Undo)22 b(the)h(\014rst)g(thing)f(on)h(the)g(undo)f(list.)39
+b(Returns)22 b Fs(0)g Ft(if)h(there)g(w)m(as)g(nothing)g(to)h(undo,)f
+(non-zero)390 828 y(if)30 b(something)h(w)m(as)g(undone.)275
+1028 y(Finally)-8 b(,)32 b(if)f(y)m(ou)h(neither)f(insert)g(nor)f
+(delete)j(text,)f(but)f(directly)g(mo)s(dify)g(the)g(existing)h(text)g
+(\(e.g.,)150 1137 y(c)m(hange)40 b(its)f(case\),)j(call)e
+Fs(rl_modifying\(\))35 b Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s
+(dify)f(the)h(text.)67 b(Y)-8 b(ou)39 b(m)m(ust)150 1247
+y(supply)29 b(the)h(indices)h(of)f(the)h(text)g(range)g(that)g(y)m(ou)g
+(are)g(going)g(to)g(mo)s(dify)-8 b(.)3350 1447 y([F)g(unction])-3599
+b Fh(int)53 b(rl_modifying)c Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i
+(end)p Fg(\))390 1556 y Ft(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g
+(the)g(text)g(b)s(et)m(w)m(een)g Fj(start)i Ft(and)c
+Fj(end)k Ft(as)e(a)f(single)h(undo)e(unit.)70 b(It)40
+b(is)390 1666 y(assumed)30 b(that)h(y)m(ou)f(will)h(subsequen)m(tly)f
+(mo)s(dify)f(that)i(text.)150 1873 y Fi(2.4.6)63 b(Redispla)m(y)3350
+2077 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_redisplay)49
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 2187 y Ft(Change)38
+b(what's)f(displa)m(y)m(ed)i(on)e(the)h(screen)g(to)h(re\015ect)f(the)g
+(curren)m(t)g(con)m(ten)m(ts)h(of)f Fs(rl_line_)390 2297
+y(buffer)p Ft(.)3350 2497 y([F)-8 b(unction])-3599 b
+Fh(int)53 b(rl_forced_update_disp)q(lay)f Fg(\()p Ff(v)m(oid)p
+Fg(\))390 2606 y Ft(F)-8 b(orce)41 b(the)f(line)g(to)h(b)s(e)e(up)s
+(dated)f(and)h(redispla)m(y)m(ed,)k(whether)c(or)g(not)h(Readline)h
+(thinks)e(the)390 2716 y(screen)30 b(displa)m(y)h(is)f(correct.)3350
+2916 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_on_new_line)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 3025 y Ft(T)-8 b(ell)31
+b(the)f(up)s(date)f(functions)g(that)i(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m
+(ed)g(on)m(to)g(a)f(new)f(\(empt)m(y\))i(line,)g(usually)e(after)390
+3135 y(outputting)i(a)f(newline.)3350 3335 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_on_new_line_with_p)q(romp)q(t)f Fg(\()p
-Ff(v)m(oid)p Fg(\))390 3015 y Ft(T)-8 b(ell)25 b(the)f(up)s(date)f
+Ff(v)m(oid)p Fg(\))390 3444 y Ft(T)-8 b(ell)25 b(the)f(up)s(date)f
(functions)h(that)h(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)h(a)e
-(new)g(line,)i(with)d Fj(rl)p 3106 3015 28 4 v 40 w(prompt)i
-Ft(already)390 3124 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g
+(new)g(line,)i(with)d Fj(rl)p 3106 3444 28 4 v 40 w(prompt)i
+Ft(already)390 3554 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g
(used)g(b)m(y)g(applications)i(that)f(w)m(an)m(t)h(to)f(output)f(the)h
-(prompt)f(string)390 3234 y(themselv)m(es,)h(but)e(still)h(need)g
+(prompt)f(string)390 3664 y(themselv)m(es,)h(but)e(still)h(need)g
(Readline)g(to)g(kno)m(w)f(the)h(prompt)e(string)h(length)h(for)f
-(redispla)m(y)-8 b(.)41 b(It)390 3343 y(should)29 b(b)s(e)h(used)g
-(after)h(setting)g Fj(rl)p 1590 3343 V 40 w(already)p
-1920 3343 V 41 w(prompted)p Ft(.)3350 3524 y([F)-8 b(unction])-3599
+(redispla)m(y)-8 b(.)41 b(It)390 3773 y(should)29 b(b)s(e)h(used)g
+(after)h(setting)g Fj(rl)p 1590 3773 V 40 w(already)p
+1920 3773 V 41 w(prompted)p Ft(.)3350 3973 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_clear_visible_line)f Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3633 y Ft(Clear)31 b(the)f(screen)h(lines)f(corresp)s(onding)
+Fg(\))390 4083 y Ft(Clear)31 b(the)f(screen)h(lines)f(corresp)s(onding)
g(to)h(the)f(curren)m(t)g(line's)h(con)m(ten)m(ts.)3350
-3813 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_line_state)e
-Fg(\()p Ff(v)m(oid)p Fg(\))390 3923 y Ft(Reset)36 b(the)e(displa)m(y)h
+4283 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_line_state)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4392 y Ft(Reset)36 b(the)e(displa)m(y)h
(state)h(to)g(a)f(clean)g(state)h(and)e(redispla)m(y)h(the)g(curren)m
-(t)g(line)g(starting)g(on)g(a)390 4032 y(new)30 b(line.)3350
-4213 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_crlf)48
-b Fg(\()p Ff(v)m(oid)p Fg(\))390 4322 y Ft(Mo)m(v)m(e)32
+(t)g(line)g(starting)g(on)g(a)390 4502 y(new)30 b(line.)3350
+4702 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_crlf)48
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 4811 y Ft(Mo)m(v)m(e)32
b(the)f(cursor)f(to)h(the)f(start)h(of)g(the)f(next)h(screen)f(line.)
-3350 4502 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_show_char)c
-Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 4612 y Ft(Displa)m(y)g(c)m
+3350 5011 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_show_char)c
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 5121 y Ft(Displa)m(y)g(c)m
(haracter)g Fj(c)k Ft(on)32 b Fs(rl_outstream)p Ft(.)44
b(If)32 b(Readline)h(has)g(not)f(b)s(een)g(set)h(to)g(displa)m(y)g
-(meta)390 4721 y(c)m(haracters)27 b(directly)-8 b(,)29
+(meta)390 5230 y(c)m(haracters)27 b(directly)-8 b(,)29
b(this)c(will)i(con)m(v)m(ert)g(meta)g(c)m(haracters)h(to)e(a)h
-(meta-pre\014xed)f(k)m(ey)g(sequence.)390 4831 y(This)k(is)g(in)m
+(meta-pre\014xed)f(k)m(ey)g(sequence.)390 5340 y(This)k(is)g(in)m
(tended)g(for)g(use)g(b)m(y)h(applications)g(whic)m(h)f(wish)g(to)h(do)
-f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)3350 5011 y([F)g(unction])-3599
-b Fh(int)53 b(rl_message)c Fg(\()p Ff(const)34 b(c)m(har)g(*,)k(.)24
-b(.)g(.)12 b Fg(\))390 5121 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g
-(format)g(string)g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j
-Fs(printf)p Ft(,)f(p)s(ossibly)e(con)m(taining)390 5230
-y(con)m(v)m(ersion)45 b(sp)s(eci\014cations)g(suc)m(h)f(as)g(`)p
-Fs(\045d)p Ft(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g
-(necessary)f(to)390 5340 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s
-(eci\014cations.)74 b(The)41 b(resulting)h(string)f(is)g(displa)m(y)m
-(ed)h(in)f(the)h Fj(ec)m(ho)p eop end
+f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)p eop end
%%Page: 38 42
TeXDict begin 38 41 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(38)390
-299 y Fj(area)p Ft(.)63 b(The)37 b(ec)m(ho)i(area)f(is)g(also)g(used)f
-(to)h(displa)m(y)g(n)m(umeric)f(argumen)m(ts)h(and)f(searc)m(h)h
-(strings.)390 408 y(Y)-8 b(ou)34 b(should)e(call)j Fs(rl_save_prompt)29
-b Ft(to)34 b(sa)m(v)m(e)h(the)f(prompt)e(information)i(b)s(efore)f
-(calling)i(this)390 518 y(function.)3350 678 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_clear_message)e Fg(\()p
-Ff(v)m(oid)p Fg(\))390 788 y Ft(Clear)29 b(the)g(message)h(in)f(the)g
-(ec)m(ho)h(area.)41 b(If)29 b(the)g(prompt)f(w)m(as)h(sa)m(v)m(ed)h
-(with)f(a)g(call)i(to)e Fs(rl_save_)390 897 y(prompt)38
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(38)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_message)c
+Fg(\()p Ff(const)34 b(c)m(har)g(*,)k(.)24 b(.)g(.)12
+b Fg(\))390 408 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g(format)g(string)
+g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j Fs(printf)p
+Ft(,)f(p)s(ossibly)e(con)m(taining)390 518 y(con)m(v)m(ersion)45
+b(sp)s(eci\014cations)g(suc)m(h)f(as)g(`)p Fs(\045d)p
+Ft(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g(necessary)f(to)390
+628 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s(eci\014cations.)74
+b(The)41 b(resulting)h(string)f(is)g(displa)m(y)m(ed)h(in)f(the)h
+Fj(ec)m(ho)390 737 y(area)p Ft(.)63 b(The)37 b(ec)m(ho)i(area)f(is)g
+(also)g(used)f(to)h(displa)m(y)g(n)m(umeric)f(argumen)m(ts)h(and)f
+(searc)m(h)h(strings.)390 847 y(Y)-8 b(ou)34 b(should)e(call)j
+Fs(rl_save_prompt)29 b Ft(to)34 b(sa)m(v)m(e)h(the)f(prompt)e
+(information)i(b)s(efore)f(calling)i(this)390 956 y(function.)3350
+1136 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_clear_message)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1245 y Ft(Clear)29 b(the)g(message)h(in)
+f(the)g(ec)m(ho)h(area.)41 b(If)29 b(the)g(prompt)f(w)m(as)h(sa)m(v)m
+(ed)h(with)f(a)g(call)i(to)e Fs(rl_save_)390 1355 y(prompt)38
b Ft(b)s(efore)h(the)g(last)h(call)h(to)f Fs(rl_message)p
Ft(,)f(call)i Fs(rl_restore_prompt)34 b Ft(b)s(efore)39
-b(calling)390 1007 y(this)30 b(function.)3350 1167 y([F)-8
+b(calling)390 1464 y(this)30 b(function.)3350 1644 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_save_prompt)49 b Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1276 y Ft(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i
+Ff(v)m(oid)p Fg(\))390 1753 y Ft(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i
(Readline)e(prompt)f(displa)m(y)i(state)g(in)f(preparation)g(for)g
-(displa)m(ying)g(a)g(new)390 1386 y(message)31 b(in)g(the)f(message)i
-(area)f(with)f Fs(rl_message\(\))p Ft(.)3350 1546 y([F)-8
+(displa)m(ying)g(a)g(new)390 1863 y(message)31 b(in)g(the)f(message)i
+(area)f(with)f Fs(rl_message\(\))p Ft(.)3350 2042 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_restore_prompt)c Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1656 y Ft(Restore)44 b(the)e(lo)s(cal)i
+Ff(v)m(oid)p Fg(\))390 2152 y Ft(Restore)44 b(the)e(lo)s(cal)i
(Readline)g(prompt)d(displa)m(y)i(state)h(sa)m(v)m(ed)g(b)m(y)f(the)f
-(most)h(recen)m(t)h(call)g(to)390 1765 y Fs(rl_save_prompt)p
+(most)h(recen)m(t)h(call)g(to)390 2261 y Fs(rl_save_prompt)p
Ft(.)69 b(if)41 b Fs(rl_save_prompt)d Ft(w)m(as)j(called)i(to)f(sa)m(v)
-m(e)h(the)e(prompt)f(b)s(efore)h(a)h(call)390 1875 y(to)37
+m(e)h(the)e(prompt)f(b)s(efore)h(a)h(call)390 2371 y(to)37
b Fs(rl_message)p Ft(,)f(this)h(function)f(should)g(b)s(e)g(called)i(b)
s(efore)f(the)g(corresp)s(onding)e(call)j(to)g Fs(rl_)390
-1984 y(clear_message)p Ft(.)3350 2144 y([F)-8 b(unction])-3599
+2480 y(clear_message)p Ft(.)3350 2660 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_expand_prompt)e Fg(\()p Ff(c)m(har)34
-b(*prompt)p Fg(\))390 2254 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m
+b(*prompt)p Fg(\))390 2769 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m
(haracter)h(sequences)f(in)g Fj(prompt)g Ft(and)f(set)i(up)d(the)i(lo)s
-(cal)h(Readline)390 2364 y(prompt)35 b(redispla)m(y)h(v)-5
+(cal)h(Readline)390 2879 y(prompt)35 b(redispla)m(y)h(v)-5
b(ariables.)57 b(This)35 b(function)h(is)g(called)h(b)m(y)e
Fs(readline\(\))p Ft(.)55 b(It)35 b(ma)m(y)i(also)g(b)s(e)390
-2473 y(called)22 b(to)g(expand)f(the)g(primary)f(prompt)g(if)i(the)f
+2988 y(called)22 b(to)g(expand)f(the)g(primary)f(prompt)g(if)i(the)f
Fs(rl_on_new_line_with_prom)o(pt\()o(\))15 b Ft(function)390
-2583 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)26
+3098 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)26
b(is)f(used.)39 b(It)25 b(returns)f(the)i(n)m(um)m(b)s(er)e(of)i
-(visible)f(c)m(haracters)390 2692 y(on)34 b(the)g(last)g(line)g(of)g
+(visible)f(c)m(haracters)390 3208 y(on)34 b(the)g(last)g(line)g(of)g
(the)g(\(p)s(ossibly)f(m)m(ulti-line\))j(prompt.)50 b(Applications)34
-b(ma)m(y)h(indicate)f(that)390 2802 y(the)28 b(prompt)f(con)m(tains)i
+b(ma)m(y)h(indicate)f(that)390 3317 y(the)28 b(prompt)f(con)m(tains)i
(c)m(haracters)g(that)g(tak)m(e)g(up)e(no)h(ph)m(ysical)g(screen)g
-(space)g(when)f(displa)m(y)m(ed)390 2912 y(b)m(y)41 b(brac)m(k)m(eting)
+(space)g(when)f(displa)m(y)m(ed)390 3427 y(b)m(y)41 b(brac)m(k)m(eting)
i(a)e(sequence)g(of)g(suc)m(h)g(c)m(haracters)h(with)f(the)g(sp)s
-(ecial)h(mark)m(ers)f Fs(RL_PROMPT_)390 3021 y(START_IGNORE)29
+(ecial)h(mark)m(ers)f Fs(RL_PROMPT_)390 3536 y(START_IGNORE)29
b Ft(and)j Fs(RL_PROMPT_END_IGNORE)26 b Ft(\(declared)33
b(in)f Fs(readline.h)p Ft(\).)44 b(This)32 b(ma)m(y)h(b)s(e)390
-3131 y(used)d(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)f
-(sequences)h(in)f(prompts.)3350 3291 y([F)-8 b(unction])-3599
+3646 y(used)d(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)f
+(sequences)h(in)f(prompts.)3350 3825 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_set_prompt)d Fg(\()p Ff(const)34 b(c)m(har)g(*prompt)p
-Fg(\))390 3400 y Ft(Mak)m(e)28 b(Readline)g(use)f Fj(prompt)h
+Fg(\))390 3935 y Ft(Mak)m(e)28 b(Readline)g(use)f Fj(prompt)h
Ft(for)e(subsequen)m(t)h(redispla)m(y)-8 b(.)40 b(This)26
-b(calls)i Fs(rl_expand_prompt\(\))390 3510 y Ft(to)j(expand)f(the)g
+b(calls)i Fs(rl_expand_prompt\(\))390 4044 y Ft(to)j(expand)f(the)g
(prompt)g(and)g(sets)g Fs(rl_prompt)e Ft(to)j(the)g(result.)150
-3693 y Fi(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350
-3874 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_insert_text)d
-Fg(\()p Ff(const)34 b(c)m(har)g(*text)p Fg(\))390 3983
+4240 y Fi(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350
+4434 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_insert_text)d
+Fg(\()p Ff(const)34 b(c)m(har)g(*text)p Fg(\))390 4543
y Ft(Insert)d Fj(text)k Ft(in)m(to)d(the)g(line)g(at)g(the)g(curren)m
(t)f(cursor)g(p)s(osition.)45 b(Returns)30 b(the)i(n)m(um)m(b)s(er)f
-(of)g(c)m(har-)390 4093 y(acters)g(inserted.)3350 4253
+(of)g(c)m(har-)390 4653 y(acters)g(inserted.)3350 4832
y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_delete_text)d
Fg(\()p Ff(in)m(t)33 b(start,)g(in)m(t)g(end)p Fg(\))390
-4362 y Ft(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f
+4942 y Ft(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f
Fj(start)i Ft(and)d Fj(end)k Ft(in)c(the)h(curren)m(t)g(line.)63
-b(Returns)36 b(the)i(n)m(um)m(b)s(er)f(of)390 4472 y(c)m(haracters)32
-b(deleted.)3350 4632 y([F)-8 b(unction])-3599 b Fh(char)54
+b(Returns)36 b(the)i(n)m(um)m(b)s(er)f(of)390 5051 y(c)m(haracters)32
+b(deleted.)3350 5230 y([F)-8 b(unction])-3599 b Fh(char)54
b(*)e(rl_copy_text)d Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)h(end)p
-Fg(\))390 4742 y Ft(Return)d(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m
+Fg(\))390 5340 y Ft(Return)d(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m
(w)m(een)g Fj(start)i Ft(and)d Fj(end)j Ft(in)d(the)h(curren)m(t)f
-(line.)3350 4902 y([F)-8 b(unction])-3599 b Fh(int)53
-b(rl_kill_text)c Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p
-Fg(\))390 5011 y Ft(Cop)m(y)g(the)g(text)i(b)s(et)m(w)m(een)e
-Fj(start)j Ft(and)d Fj(end)j Ft(in)d(the)g(curren)m(t)g(line)g(to)h
-(the)f(kill)h(ring,)g(app)s(ending)390 5121 y(or)f(prep)s(ending)e(to)j
-(the)f(last)h(kill)f(if)g(the)g(last)h(command)f(w)m(as)g(a)h(kill)f
-(command.)51 b(The)34 b(text)h(is)390 5230 y(deleted.)51
-b(If)33 b Fj(start)j Ft(is)e(less)g(than)f Fj(end)p Ft(,)h(the)g(text)g
-(is)g(app)s(ended,)f(otherwise)h(prep)s(ended.)48 b(If)33
-b(the)390 5340 y(last)e(command)f(w)m(as)h(not)g(a)f(kill,)i(a)f(new)e
-(kill)i(ring)g(slot)g(is)f(used.)p eop end
+(line.)p eop end
%%Page: 39 43
TeXDict begin 39 42 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(39)3350
-299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_push_macro_input)e
-Fg(\()p Ff(c)m(har)35 b(*macro)p Fg(\))390 408 y Ft(Cause)28
-b Fj(macro)33 b Ft(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f
-(if)h(it)f(had)g(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s
-(ound)d(to)390 518 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h
-(useful;)e(use)g Fs(rl_insert_text\(\))c Ft(instead.)150
-710 y Fi(2.4.8)63 b(Character)39 b(Input)3350 899 y Ft([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_read_key)c Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1009 y Ft(Return)29 b(the)g(next)h(c)m(haracter)
-h(a)m(v)-5 b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g
-(stream.)41 b(This)28 b(han-)390 1118 y(dles)e(input)g(inserted)g(in)m
-(to)i(the)e(input)g(stream)h(via)g Fj(rl)p 2226 1118
-28 4 v 40 w(p)s(ending)p 2583 1118 V 38 w(input)h Ft(\(see)f(Section)h
-(2.3)f([Read-)390 1228 y(line)40 b(V)-8 b(ariables],)43
-b(page)d(27\))g(and)f Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m
-(haracters)h(read)f(from)390 1337 y(the)34 b(k)m(eyb)s(oard.)52
-b(While)35 b(w)m(aiting)g(for)f(input,)g(this)g(function)g(will)g(call)
-i(an)m(y)e(function)g(assigned)390 1447 y(to)d(the)g
-Fs(rl_event_hook)26 b Ft(v)-5 b(ariable.)3350 1620 y([F)d(unction])
--3599 b Fh(int)53 b(rl_getc)48 b Fg(\()p Ff(FILE)33 b(*stream)p
-Fg(\))390 1729 y Ft(Return)20 b(the)i(next)f(c)m(haracter)i(a)m(v)-5
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_kill_text)c
+Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p Fg(\))390
+408 y Ft(Cop)m(y)g(the)g(text)i(b)s(et)m(w)m(een)e Fj(start)j
+Ft(and)d Fj(end)j Ft(in)d(the)g(curren)m(t)g(line)g(to)h(the)f(kill)h
+(ring,)g(app)s(ending)390 518 y(or)f(prep)s(ending)e(to)j(the)f(last)h
+(kill)f(if)g(the)g(last)h(command)f(w)m(as)g(a)h(kill)f(command.)51
+b(The)34 b(text)h(is)390 628 y(deleted.)51 b(If)33 b
+Fj(start)j Ft(is)e(less)g(than)f Fj(end)p Ft(,)h(the)g(text)g(is)g(app)
+s(ended,)f(otherwise)h(prep)s(ended.)48 b(If)33 b(the)390
+737 y(last)e(command)f(w)m(as)h(not)g(a)f(kill,)i(a)f(new)e(kill)i
+(ring)g(slot)g(is)f(used.)3350 931 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_push_macro_input)e Fg(\()p Ff(c)m(har)35
+b(*macro)p Fg(\))390 1040 y Ft(Cause)28 b Fj(macro)33
+b Ft(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f(if)h(it)f
+(had)g(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s(ound)d(to)
+390 1150 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h(useful;)e(use)g
+Fs(rl_insert_text\(\))c Ft(instead.)150 1354 y Fi(2.4.8)63
+b(Character)39 b(Input)3350 1555 y Ft([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_read_key)c Fg(\()p Ff(v)m(oid)p Fg(\))390
+1665 y Ft(Return)29 b(the)g(next)h(c)m(haracter)h(a)m(v)-5
+b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g(stream.)41
+b(This)28 b(han-)390 1775 y(dles)e(input)g(inserted)g(in)m(to)i(the)e
+(input)g(stream)h(via)g Fj(rl)p 2226 1775 28 4 v 40 w(p)s(ending)p
+2583 1775 V 38 w(input)h Ft(\(see)f(Section)h(2.3)f([Read-)390
+1884 y(line)40 b(V)-8 b(ariables],)43 b(page)d(27\))g(and)f
+Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m(haracters)h(read)f
+(from)390 1994 y(the)34 b(k)m(eyb)s(oard.)52 b(While)35
+b(w)m(aiting)g(for)f(input,)g(this)g(function)g(will)g(call)i(an)m(y)e
+(function)g(assigned)390 2103 y(to)d(the)g Fs(rl_event_hook)26
+b Ft(v)-5 b(ariable.)3350 2297 y([F)d(unction])-3599
+b Fh(int)53 b(rl_getc)48 b Fg(\()p Ff(FILE)33 b(*stream)p
+Fg(\))390 2407 y Ft(Return)20 b(the)i(next)f(c)m(haracter)i(a)m(v)-5
b(ailable)24 b(from)c Fj(stream)p Ft(,)k(whic)m(h)d(is)g(assumed)g(to)h
-(b)s(e)e(the)i(k)m(eyb)s(oard.)3350 1902 y([F)-8 b(unction])-3599
+(b)s(e)e(the)i(k)m(eyb)s(oard.)3350 2600 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_stuff_char)d Fg(\()p Ff(in)m(t)33 b(c)p
-Fg(\))390 2012 y Ft(Insert)f Fj(c)39 b Ft(in)m(to)34
+Fg(\))390 2710 y Ft(Insert)f Fj(c)39 b Ft(in)m(to)34
b(the)f(Readline)g(input)f(stream.)49 b(It)33 b(will)g(b)s(e)f
Fs(")p Ft(read)p Fs(")g Ft(b)s(efore)h(Readline)g(attempts)390
-2122 y(to)27 b(read)g(c)m(haracters)h(from)f(the)g(terminal)g(with)f
+2819 y(to)27 b(read)g(c)m(haracters)h(from)f(the)g(terminal)g(with)f
Fs(rl_read_key\(\))p Ft(.)36 b(Up)27 b(to)g(512)h(c)m(haracters)g(ma)m
-(y)390 2231 y(b)s(e)i(pushed)f(bac)m(k.)42 b Fs(rl_stuff_char)27
+(y)390 2929 y(b)s(e)i(pushed)f(bac)m(k.)42 b Fs(rl_stuff_char)27
b Ft(returns)i(1)i(if)f(the)h(c)m(haracter)h(w)m(as)f(successfully)g
-(inserted;)390 2341 y(0)g(otherwise.)3350 2514 y([F)-8
+(inserted;)390 3039 y(0)g(otherwise.)3350 3232 y([F)-8
b(unction])-3599 b Fh(int)53 b(rl_execute_next)d Fg(\()p
-Ff(in)m(t)34 b(c)p Fg(\))390 2623 y Ft(Mak)m(e)j Fj(c)42
+Ff(in)m(t)34 b(c)p Fg(\))390 3342 y Ft(Mak)m(e)j Fj(c)42
b Ft(b)s(e)35 b(the)h(next)f(command)h(to)g(b)s(e)f(executed)i(when)d
-Fs(rl_read_key\(\))e Ft(is)k(called.)58 b(This)390 2733
-y(sets)31 b Fj(rl)p 635 2733 V 40 w(p)s(ending)p 992
-2733 V 38 w(input)p Ft(.)3350 2906 y([F)-8 b(unction])-3599
+Fs(rl_read_key\(\))e Ft(is)k(called.)58 b(This)390 3451
+y(sets)31 b Fj(rl)p 635 3451 V 40 w(p)s(ending)p 992
+3451 V 38 w(input)p Ft(.)3350 3645 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_clear_pending_inpu)q(t)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3016 y Ft(Unset)42 b Fj(rl)p 729 3016 V 40
-w(p)s(ending)p 1086 3016 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h
+Fg(\))390 3755 y Ft(Unset)42 b Fj(rl)p 729 3755 V 40
+w(p)s(ending)p 1086 3755 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h
(negating)e(the)f(e\013ect)h(of)f(an)m(y)g(previous)f(call)i(to)g
-Fs(rl_)390 3125 y(execute_next\(\))p Ft(.)59 b(This)36
+Fs(rl_)390 3864 y(execute_next\(\))p Ft(.)59 b(This)36
b(w)m(orks)i(only)g(if)f(the)h(p)s(ending)e(input)h(has)g(not)h
-(already)g(b)s(een)f(read)390 3235 y(with)30 b Fs(rl_read_key\(\))p
-Ft(.)3350 3408 y([F)-8 b(unction])-3599 b Fh(int)53 b
+(already)g(b)s(een)f(read)390 3974 y(with)30 b Fs(rl_read_key\(\))p
+Ft(.)3350 4167 y([F)-8 b(unction])-3599 b Fh(int)53 b
(rl_set_keyboard_input)q(_tim)q(eou)q(t)e Fg(\()p Ff(in)m(t)34
-b(u)p Fg(\))390 3517 y Ft(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard)
+b(u)p Fg(\))390 4277 y Ft(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard)
g(input)f(in)h Fs(rl_read_key\(\))p Ft(,)f(Readline)i(will)f(w)m(ait)h
-(for)f Fj(u)g Ft(mi-)390 3627 y(croseconds)31 b(for)g(input)f(b)s
+(for)f Fj(u)g Ft(mi-)390 4387 y(croseconds)31 b(for)g(input)f(b)s
(efore)g(calling)j(an)m(y)e(function)f(assigned)i(to)f
Fs(rl_event_hook)p Ft(.)39 b Fj(u)30 b Ft(m)m(ust)390
-3736 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h
+4496 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h
(zero-length)g(timeout)g(is)f(equiv)-5 b(alen)m(t)33
-b(to)g(a)f(p)s(oll\).)45 b(The)390 3846 y(default)31
+b(to)g(a)f(p)s(oll\).)45 b(The)390 4606 y(default)31
b(w)m(aiting)g(p)s(erio)s(d)e(is)i(one-ten)m(th)g(of)g(a)g(second.)40
b(Returns)30 b(the)g(old)h(timeout)g(v)-5 b(alue.)150
-4038 y Fi(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
-4227 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_prep_terminal)c
-Fg(\()p Ff(in)m(t)33 b(meta)p 1704 4227 30 5 v 44 w(\015ag)p
-Fg(\))390 4336 y Ft(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f
+4810 y Fi(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
+5011 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_prep_terminal)c
+Fg(\()p Ff(in)m(t)33 b(meta)p 1704 5011 30 5 v 44 w(\015ag)p
+Fg(\))390 5121 y Ft(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f
(Readline's)i(use,)h(so)e Fs(readline\(\))c Ft(can)k(read)f(a)h(single)
-390 4446 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s
-(oard.)43 b(The)30 b Fj(meta)p 2376 4446 28 4 v 41 w(\015ag)39
-b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 4556
-y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)3350
-4729 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_deprep_terminal)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4838 y Ft(Undo)31 b(the)h(e\013ects)h
-(of)f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)33
-b(the)f(terminal)g(in)f(the)h(state)h(in)e(whic)m(h)390
-4948 y(it)g(w)m(as)g(b)s(efore)f(the)g(most)h(recen)m(t)g(call)h(to)f
-Fs(rl_prep_terminal\(\))p Ft(.)3350 5121 y([F)-8 b(unction])-3599
-b Fh(void)54 b(rl_tty_set_default_bindi)q(ngs)e Fg(\()p
-Ff(Keymap)34 b(kmap)p Fg(\))390 5230 y Ft(Read)j(the)g(op)s(erating)h
-(system's)f(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s
-(e)h(displa)m(y)m(ed)g(b)m(y)390 5340 y Fs(stty)p Ft(\))30
-b(to)h(their)f(Readline)h(equiv)-5 b(alen)m(ts.)42 b(The)30
-b(bindings)f(are)i(p)s(erformed)e(in)h Fj(kmap)p Ft(.)p
+390 5230 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s
+(oard.)43 b(The)30 b Fj(meta)p 2376 5230 28 4 v 41 w(\015ag)39
+b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 5340
+y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)p
eop end
%%Page: 40 44
TeXDict begin 40 43 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(40)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_tty_unset_default_bin)q
-(din)q(gs)e Fg(\()p Ff(Keymap)34 b(kmap)p Fg(\))390 408
-y Ft(Reset)f(the)f(bindings)e(manipulated)i(b)m(y)g Fs
-(rl_tty_set_default_bind)o(ing)o(s)26 b Ft(so)32 b(that)g(the)g(ter-)
-390 518 y(minal)40 b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i
-Fs(rl_insert)p Ft(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in)
-390 628 y Fj(kmap)p Ft(.)3350 826 y([F)-8 b(unction])-3599
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_deprep_terminal)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Undo)31 b(the)h(e\013ects)h(of)
+f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)33 b(the)f(terminal)g
+(in)f(the)h(state)h(in)e(whic)m(h)390 518 y(it)g(w)m(as)g(b)s(efore)f
+(the)g(most)h(recen)m(t)g(call)h(to)f Fs(rl_prep_terminal\(\))p
+Ft(.)3350 694 y([F)-8 b(unction])-3599 b Fh(void)54 b
+(rl_tty_set_default_bindi)q(ngs)e Fg(\()p Ff(Keymap)34
+b(kmap)p Fg(\))390 804 y Ft(Read)j(the)g(op)s(erating)h(system's)f
+(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s(e)h(displa)
+m(y)m(ed)g(b)m(y)390 914 y Fs(stty)p Ft(\))30 b(to)h(their)f(Readline)h
+(equiv)-5 b(alen)m(ts.)42 b(The)30 b(bindings)f(are)i(p)s(erformed)e
+(in)h Fj(kmap)p Ft(.)3350 1090 y([F)-8 b(unction])-3599
+b Fh(void)54 b(rl_tty_unset_default_bin)q(din)q(gs)e
+Fg(\()p Ff(Keymap)34 b(kmap)p Fg(\))390 1200 y Ft(Reset)f(the)f
+(bindings)e(manipulated)i(b)m(y)g Fs(rl_tty_set_default_bind)o(ing)o(s)
+26 b Ft(so)32 b(that)g(the)g(ter-)390 1309 y(minal)40
+b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i Fs(rl_insert)p
+Ft(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in)390
+1419 y Fj(kmap)p Ft(.)3350 1595 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_tty_set_echoing)e Fg(\()p Ff(in)m(t)34
-b(v)-6 b(alue)p Fg(\))390 935 y Ft(Set)48 b(Readline's)g(idea)g(of)g
+b(v)-6 b(alue)p Fg(\))390 1705 y Ft(Set)48 b(Readline's)g(idea)g(of)g
(whether)f(or)g(not)h(it)g(is)f(ec)m(hoing)i(output)e(to)i(its)e
-(output)h(stream)390 1045 y(\()p Fj(rl)p 492 1045 28
+(output)h(stream)390 1814 y(\()p Fj(rl)p 492 1814 28
4 v 40 w(outstream)p Ft(\).)j(If)32 b Fj(v)-5 b(alue)39
b Ft(is)34 b(0,)g(Readline)g(do)s(es)f(not)h(displa)m(y)f(output)g(to)h
-Fj(rl)p 3115 1045 V 40 w(outstream)p Ft(;)i(an)m(y)390
-1154 y(other)43 b(v)-5 b(alue)43 b(enables)h(output.)77
+Fj(rl)p 3115 1814 V 40 w(outstream)p Ft(;)i(an)m(y)390
+1924 y(other)43 b(v)-5 b(alue)43 b(enables)h(output.)77
b(The)43 b(initial)h(v)-5 b(alue)43 b(is)g(set)g(when)f(Readline)i
-(initializes)h(the)390 1264 y(terminal)31 b(settings.)42
+(initializes)h(the)390 2033 y(terminal)31 b(settings.)42
b(This)29 b(function)h(returns)f(the)i(previous)f(v)-5
-b(alue.)3350 1462 y([F)d(unction])-3599 b Fh(int)53 b
+b(alue.)3350 2210 y([F)d(unction])-3599 b Fh(int)53 b
(rl_reset_terminal)e Fg(\()p Ff(const)34 b(c)m(har)g(*terminal)p
-2232 1462 30 5 v 43 w(name)p Fg(\))390 1572 y Ft(Reinitialize)26
+2232 2210 30 5 v 43 w(name)p Fg(\))390 2319 y Ft(Reinitialize)26
b(Readline's)f(idea)f(of)g(the)g(terminal)h(settings)f(using)g
-Fj(terminal)p 2977 1572 28 4 v 40 w(name)29 b Ft(as)24
-b(the)g(termi-)390 1681 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i
-Fs(vt100)p Ft(\).)44 b(If)31 b Fj(terminal)p 1753 1681
+Fj(terminal)p 2977 2319 28 4 v 40 w(name)29 b Ft(as)24
+b(the)g(termi-)390 2429 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i
+Fs(vt100)p Ft(\).)44 b(If)31 b Fj(terminal)p 1753 2429
V 41 w(name)37 b Ft(is)31 b Fs(NULL)p Ft(,)h(the)g(v)-5
b(alue)32 b(of)g(the)g Fs(TERM)e Ft(en)m(vironmen)m(t)390
-1791 y(v)-5 b(ariable)31 b(is)g(used.)150 1997 y Fi(2.4.10)63
-b(Utilit)m(y)40 b(F)-10 b(unctions)3350 2200 y Ft([F)i(unction])-3599
+2539 y(v)-5 b(ariable)31 b(is)g(used.)150 2732 y Fi(2.4.10)63
+b(Utilit)m(y)40 b(F)-10 b(unctions)3350 2924 y Ft([F)i(unction])-3599
b Fh(int)53 b(rl_save_state)d Fg(\()p Ff(struct)34 b(readline)p
-1759 2200 30 5 v 44 w(state)f(*sp)p Fg(\))390 2310 y
+1759 2924 30 5 v 44 w(state)f(*sp)p Fg(\))390 3034 y
Ft(Sa)m(v)m(e)d(a)f(snapshot)e(of)i(Readline's)g(in)m(ternal)g(state)h
(to)f Fj(sp)p Ft(.)40 b(The)28 b(con)m(ten)m(ts)i(of)e(the)h
-Fj(readline)p 3518 2310 28 4 v 40 w(state)390 2420 y
+Fj(readline)p 3518 3034 28 4 v 40 w(state)390 3143 y
Ft(structure)g(are)g(do)s(cumen)m(ted)g(in)g Fs(readline.h)p
Ft(.)38 b(The)28 b(caller)j(is)e(resp)s(onsible)f(for)h(allo)s(cating)j
-(the)390 2529 y(structure.)3350 2727 y([F)-8 b(unction])-3599
+(the)390 3253 y(structure.)3350 3429 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_restore_state)e Fg(\()p Ff(struct)34
-b(readline)p 1916 2727 30 5 v 44 w(state)f(*sp)p Fg(\))390
-2837 y Ft(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)g(that)g
+b(readline)p 1916 3429 30 5 v 44 w(state)f(*sp)p Fg(\))390
+3539 y Ft(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)g(that)g
(stored)f(in)g Fj(sp)p Ft(,)i(whic)m(h)d(m)m(ust)h(ha)m(v)m(e)i(b)s
-(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 2946 y(call)30 b(to)g
+(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 3648 y(call)30 b(to)g
Fs(rl_save_state)p Ft(.)37 b(The)28 b(con)m(ten)m(ts)j(of)e(the)g
-Fj(readline)p 2470 2946 28 4 v 41 w(state)35 b Ft(structure)29
-b(are)g(do)s(cumen)m(ted)390 3056 y(in)h Fs(readline.h)p
+Fj(readline)p 2470 3648 28 4 v 41 w(state)35 b Ft(structure)29
+b(are)g(do)s(cumen)m(ted)390 3758 y(in)h Fs(readline.h)p
Ft(.)38 b(The)30 b(caller)i(is)e(resp)s(onsible)f(for)i(freeing)f(the)h
-(structure.)3350 3254 y([F)-8 b(unction])-3599 b Fh(void)54
+(structure.)3350 3934 y([F)-8 b(unction])-3599 b Fh(void)54
b(rl_free)47 b Fg(\()p Ff(v)m(oid)33 b(*mem)p Fg(\))390
-3364 y Ft(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y)
+4044 y Ft(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y)
f Fj(mem)p Ft(.)38 b Fj(mem)21 b Ft(m)m(ust)g(ha)m(v)m(e)i(b)s(een)d
-(allo)s(cated)j(b)m(y)e Fs(malloc)p Ft(.)3350 3562 y([F)-8
+(allo)s(cated)j(b)m(y)e Fs(malloc)p Ft(.)3350 4220 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_replace_line)c Fg(\()p
Ff(const)34 b(c)m(har)f(*text,)g(in)m(t)g(clear)p 2406
-3562 30 5 v 44 w(undo)p Fg(\))390 3671 y Ft(Replace)41
+4220 30 5 v 44 w(undo)p Fg(\))390 4330 y Ft(Replace)41
b(the)e(con)m(ten)m(ts)i(of)f Fs(rl_line_buffer)35 b
Ft(with)k Fj(text)p Ft(.)69 b(The)39 b(p)s(oin)m(t)h(and)e(mark)h(are)h
-(pre-)390 3781 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39
-b(If)25 b Fj(clear)p 1422 3781 28 4 v 41 w(undo)k Ft(is)d(non-zero,)h
+(pre-)390 4439 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39
+b(If)25 b Fj(clear)p 1422 4439 28 4 v 41 w(undo)k Ft(is)d(non-zero,)h
(the)f(undo)e(list)i(asso)s(ciated)h(with)e(the)h(curren)m(t)390
-3890 y(line)31 b(is)f(cleared.)3350 4088 y([F)-8 b(unction])-3599
+4549 y(line)31 b(is)f(cleared.)3350 4725 y([F)-8 b(unction])-3599
b Fh(void)54 b(rl_extend_line_buffer)d Fg(\()p Ff(in)m(t)34
-b(len)p Fg(\))390 4198 y Ft(Ensure)29 b(that)h Fs(rl_line_buffer)d
+b(len)p Fg(\))390 4835 y Ft(Ensure)29 b(that)h Fs(rl_line_buffer)d
Ft(has)j(enough)f(space)i(to)g(hold)f Fj(len)g Ft(c)m(haracters,)i(p)s
-(ossibly)d(real-)390 4308 y(lo)s(cating)j(it)f(if)f(necessary)-8
-b(.)3350 4506 y([F)g(unction])-3599 b Fh(int)53 b(rl_initialize)d
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4615 y Ft(Initialize)39
+(ossibly)d(real-)390 4944 y(lo)s(cating)j(it)f(if)f(necessary)-8
+b(.)3350 5121 y([F)g(unction])-3599 b Fh(int)53 b(rl_initialize)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 5230 y Ft(Initialize)39
b(or)e(re-initialize)i(Readline's)f(in)m(ternal)f(state.)62
b(It's)37 b(not)g(strictly)h(necessary)f(to)h(call)390
-4725 y(this;)31 b Fs(readline\(\))c Ft(calls)32 b(it)f(b)s(efore)f
-(reading)g(an)m(y)h(input.)3350 4923 y([F)-8 b(unction])-3599
-b Fh(int)53 b(rl_ding)48 b Fg(\()p Ff(v)m(oid)p Fg(\))390
-5032 y Ft(Ring)30 b(the)h(terminal)g(b)s(ell,)f(ob)s(eying)h(the)f
-(setting)i(of)e Fs(bell-style)p Ft(.)3350 5230 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_alphabetic)d Fg(\()p
-Ff(in)m(t)33 b(c)p Fg(\))390 5340 y Ft(Return)d(1)g(if)h
-Fj(c)36 b Ft(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)p
-eop end
+5340 y(this;)31 b Fs(readline\(\))c Ft(calls)32 b(it)f(b)s(efore)f
+(reading)g(an)m(y)h(input.)p eop end
%%Page: 41 45
TeXDict begin 41 44 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(41)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_display_match_list)d
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_ding)48
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Ring)30 b(the)h(terminal)g(b)
+s(ell,)f(ob)s(eying)h(the)f(setting)i(of)e Fs(bell-style)p
+Ft(.)3350 598 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_alphabetic)d
+Fg(\()p Ff(in)m(t)33 b(c)p Fg(\))390 708 y Ft(Return)d(1)g(if)h
+Fj(c)36 b Ft(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)3350
+898 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_display_match_list)d
Fg(\()p Ff(c)m(har)35 b(**matc)m(hes,)e(in)m(t)g(len,)h(in)m(t)f(max)p
-Fg(\))390 408 y Ft(A)i(con)m(v)m(enience)h(function)e(for)g(displa)m
+Fg(\))390 1008 y Ft(A)i(con)m(v)m(enience)h(function)e(for)g(displa)m
(ying)h(a)g(list)g(of)g(strings)f(in)g(columnar)g(format)h(on)f(Read-)
-390 518 y(line's)g(output)f(stream.)51 b Fs(matches)31
+390 1117 y(line's)g(output)f(stream.)51 b Fs(matches)31
b Ft(is)j(the)f(list)i(of)e(strings,)i(in)e(argv)h(format,)h(suc)m(h)e
-(as)h(a)g(list)g(of)390 628 y(completion)26 b(matc)m(hes.)39
+(as)h(a)g(list)g(of)390 1227 y(completion)26 b(matc)m(hes.)39
b Fs(len)24 b Ft(is)g(the)g(n)m(um)m(b)s(er)f(of)i(strings)f(in)g
Fs(matches)p Ft(,)f(and)h Fs(max)f Ft(is)i(the)f(length)h(of)390
-737 y(the)h(longest)i(string)e(in)g Fs(matches)p Ft(.)37
+1336 y(the)h(longest)i(string)e(in)g Fs(matches)p Ft(.)37
b(This)25 b(function)h(uses)g(the)g(setting)i(of)e Fs
-(print-completions-)390 847 y(horizontally)33 b Ft(to)k(select)h(ho)m
+(print-completions-)390 1446 y(horizontally)33 b Ft(to)k(select)h(ho)m
(w)e(the)g(matc)m(hes)i(are)e(displa)m(y)m(ed)h(\(see)g(Section)g
-(1.3.1)h([Readline)390 956 y(Init)30 b(File)h(Syn)m(tax],)g(page)g
+(1.3.1)h([Readline)390 1556 y(Init)30 b(File)h(Syn)m(tax],)g(page)g
(4\).)42 b(When)29 b(displa)m(ying)i(completions,)h(this)e(function)g
-(sets)g(the)g(n)m(um-)390 1066 y(b)s(er)23 b(of)g(columns)g(used)g(for)
+(sets)g(the)g(n)m(um-)390 1665 y(b)s(er)23 b(of)g(columns)g(used)g(for)
h(displa)m(y)f(to)i(the)e(v)-5 b(alue)24 b(of)g Fs
(completion-display-width)p Ft(,)19 b(the)k(v)-5 b(alue)390
-1176 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31
+1775 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31
b Fs(COLUMNS)p Ft(,)e(or)h(the)h(screen)f(width,)g(in)g(that)h(order.)
-275 1374 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h
+275 1965 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h
(de\014ned)e(in)h Fs(chardefs.h)p Ft(.)43 b(Applications)33
-b(should)150 1483 y(refrain)d(from)g(using)g(them.)3350
-1681 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_uppercase_p)d
-Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 1791 y Ft(Return)c(1)g(if)h
+b(should)150 2074 y(refrain)d(from)g(using)g(them.)3350
+2264 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_uppercase_p)d
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2374 y Ft(Return)c(1)g(if)h
Fj(c)36 b Ft(is)30 b(an)h(upp)s(ercase)e(alphab)s(etic)i(c)m(haracter.)
-3350 1989 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_lowercase_p)d
-Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2098 y Ft(Return)c(1)g(if)h
+3350 2564 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_lowercase_p)d
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2673 y Ft(Return)c(1)g(if)h
Fj(c)36 b Ft(is)30 b(a)h(lo)m(w)m(ercase)i(alphab)s(etic)e(c)m
-(haracter.)3350 2296 y([F)-8 b(unction])-3599 b Fh(int)53
+(haracter.)3350 2863 y([F)-8 b(unction])-3599 b Fh(int)53
b(_rl_digit_p)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390
-2406 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(n)m(umeric)f(c)m
-(haracter.)3350 2604 y([F)-8 b(unction])-3599 b Fh(int)53
+2973 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(n)m(umeric)f(c)m
+(haracter.)3350 3163 y([F)-8 b(unction])-3599 b Fh(int)53
b(_rl_to_upper)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390
-2714 y Ft(If)23 b Fj(c)30 b Ft(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s
+3273 y Ft(If)23 b Fj(c)30 b Ft(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s
(etic)e(c)m(haracter,)j(return)c(the)h(corresp)s(onding)e(upp)s(ercase)
-h(c)m(haracter.)3350 2912 y([F)-8 b(unction])-3599 b
+h(c)m(haracter.)3350 3462 y([F)-8 b(unction])-3599 b
Fh(int)53 b(_rl_to_lower)c Fg(\()p Ff(in)m(t)34 b(c)p
-Fg(\))390 3021 y Ft(If)28 b Fj(c)35 b Ft(is)29 b(an)g(upp)s(ercase)f
+Fg(\))390 3572 y Ft(If)28 b Fj(c)35 b Ft(is)29 b(an)g(upp)s(ercase)f
(alphab)s(etic)h(c)m(haracter,)i(return)d(the)h(corresp)s(onding)f(lo)m
-(w)m(ercase)j(c)m(harac-)390 3131 y(ter.)3350 3329 y([F)-8
+(w)m(ercase)j(c)m(harac-)390 3682 y(ter.)3350 3872 y([F)-8
b(unction])-3599 b Fh(int)53 b(_rl_digit_value)d Fg(\()p
-Ff(in)m(t)34 b(c)p Fg(\))390 3438 y Ft(If)c Fj(c)36 b
+Ff(in)m(t)34 b(c)p Fg(\))390 3981 y Ft(If)c Fj(c)36 b
Ft(is)31 b(a)f(n)m(um)m(b)s(er,)g(return)f(the)h(v)-5
-b(alue)31 b(it)g(represen)m(ts.)150 3644 y Fi(2.4.11)63
-b(Miscellaneous)42 b(F)-10 b(unctions)3350 3848 y Ft([F)i(unction])
+b(alue)31 b(it)g(represen)m(ts.)150 4183 y Fi(2.4.11)63
+b(Miscellaneous)42 b(F)-10 b(unctions)3350 4383 y Ft([F)i(unction])
-3599 b Fh(int)53 b(rl_macro_bind)d Fg(\()p Ff(const)34
b(c)m(har)g(*k)m(eyseq,)e(const)i(c)m(har)g(*macro,)565
-3958 y(Keymap)g(map)p Fg(\))390 4067 y Ft(Bind)23 b(the)g(k)m(ey)h
+4492 y(Keymap)g(map)p Fg(\))390 4602 y Ft(Bind)23 b(the)g(k)m(ey)h
(sequence)g Fj(k)m(eyseq)i Ft(to)e(in)m(v)m(ok)m(e)h(the)f(macro)f
Fj(macro)p Ft(.)39 b(The)23 b(binding)f(is)i(p)s(erformed)d(in)390
-4177 y Fj(map)p Ft(.)39 b(When)28 b Fj(k)m(eyseq)i Ft(is)e(in)m(v)m(ok)
+4712 y Fj(map)p Ft(.)39 b(When)28 b Fj(k)m(eyseq)i Ft(is)e(in)m(v)m(ok)
m(ed,)i(the)d Fj(macro)33 b Ft(will)28 b(b)s(e)f(inserted)g(in)m(to)i
-(the)e(line.)41 b(This)26 b(function)390 4286 y(is)k(deprecated;)i(use)
-e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 4484 y([F)-8
+(the)e(line.)41 b(This)26 b(function)390 4821 y(is)k(deprecated;)i(use)
+e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 5011 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_macro_dumper)c Fg(\()p
-Ff(in)m(t)33 b(readable)p Fg(\))390 4594 y Ft(Prin)m(t)27
+Ff(in)m(t)33 b(readable)p Fg(\))390 5121 y Ft(Prin)m(t)27
b(the)g(k)m(ey)h(sequences)g(b)s(ound)d(to)j(macros)f(and)g(their)g(v)
-5 b(alues,)28 b(using)f(the)g(curren)m(t)g(k)m(eymap,)390
-4704 y(to)32 b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fj(readable)36
+5230 y(to)32 b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fj(readable)36
b Ft(is)c(non-zero,)g(the)f(list)h(is)f(formatted)h(in)f(suc)m(h)g(a)g
-(w)m(a)m(y)i(that)e(it)390 4813 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f
-Fs(inputrc)e Ft(\014le)j(and)e(re-read.)3350 5011 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_variable_bind)e Fg(\()p
-Ff(const)34 b(c)m(har)f(*v)-6 b(ariable,)33 b(const)h(c)m(har)f(*v)-6
-b(alue)p Fg(\))390 5121 y Ft(Mak)m(e)31 b(the)e(Readline)g(v)-5
+(w)m(a)m(y)i(that)e(it)390 5340 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f
+Fs(inputrc)e Ft(\014le)j(and)e(re-read.)p eop end
+%%Page: 42 46
+TeXDict begin 42 45 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_variable_bind)e
+Fg(\()p Ff(const)34 b(c)m(har)f(*v)-6 b(ariable,)33 b(const)h(c)m(har)f
+(*v)-6 b(alue)p Fg(\))390 408 y Ft(Mak)m(e)31 b(the)e(Readline)g(v)-5
b(ariable)30 b Fj(v)-5 b(ariable)35 b Ft(ha)m(v)m(e)30
b Fj(v)-5 b(alue)p Ft(.)41 b(This)28 b(b)s(eha)m(v)m(es)h(as)h(if)f
-(the)g(readline)g(com-)390 5230 y(mand)h(`)p Fs(set)g
+(the)g(readline)g(com-)390 518 y(mand)h(`)p Fs(set)g
Fl(variable)e(value)p Ft(')h(had)h(b)s(een)h(executed)g(in)g(an)f
Fs(inputrc)f Ft(\014le)i(\(see)h(Section)f(1.3.1)390
-5340 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)p
-eop end
-%%Page: 42 46
-TeXDict begin 42 45 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)3350
-299 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_variable_value)f
+628 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)3350
+813 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_variable_value)f
Fg(\()p Ff(const)34 b(c)m(har)g(*v)-6 b(ariable)p Fg(\))390
-408 y Ft(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5
+923 y Ft(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5
b(alue)30 b(of)f(the)h(Readline)g(v)-5 b(ariable)30 b
Fj(v)-5 b(ariable)p Ft(.)41 b(F)-8 b(or)30 b(b)s(o)s(olean)390
-518 y(v)-5 b(ariables,)31 b(this)g(string)f(is)g(either)h(`)p
-Fs(on)p Ft(')f(or)h(`)p Fs(off)p Ft('.)3350 698 y([F)-8
+1032 y(v)-5 b(ariables,)31 b(this)g(string)f(is)g(either)h(`)p
+Fs(on)p Ft(')f(or)h(`)p Fs(off)p Ft('.)3350 1217 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_variable_dumper)c
-Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 808 y Ft(Prin)m(t)29
+Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 1327 y Ft(Prin)m(t)29
b(the)f(readline)h(v)-5 b(ariable)30 b(names)e(and)g(their)h(curren)m
(t)f(v)-5 b(alues)29 b(to)h Fs(rl_outstream)p Ft(.)37
-b(If)28 b Fj(read-)390 917 y(able)40 b Ft(is)34 b(non-zero,)i(the)e
+b(If)28 b Fj(read-)390 1437 y(able)40 b Ft(is)34 b(non-zero,)i(the)e
(list)g(is)g(formatted)h(in)f(suc)m(h)g(a)g(w)m(a)m(y)h(that)g(it)f
-(can)g(b)s(e)g(made)g(part)g(of)g(an)390 1027 y Fs(inputrc)28
-b Ft(\014le)j(and)f(re-read.)3350 1207 y([F)-8 b(unction])-3599
+(can)g(b)s(e)g(made)g(part)g(of)g(an)390 1546 y Fs(inputrc)28
+b Ft(\014le)j(and)f(re-read.)3350 1732 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_set_paren_blink_ti)q(meou)q(t)f Fg(\()p
-Ff(in)m(t)33 b(u)p Fg(\))390 1317 y Ft(Set)25 b(the)h(time)f(in)m(terv)
+Ff(in)m(t)33 b(u)p Fg(\))390 1841 y Ft(Set)25 b(the)h(time)f(in)m(terv)
-5 b(al)27 b(\(in)e(microseconds\))h(that)g(Readline)f(w)m(aits)h(when)
-e(sho)m(wing)i(a)f(balancing)390 1426 y(c)m(haracter)32
+e(sho)m(wing)i(a)f(balancing)390 1951 y(c)m(haracter)32
b(when)d Fs(blink-matching-paren)c Ft(has)30 b(b)s(een)g(enabled.)3350
-1607 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_termcap)e
-Fg(\()p Ff(const)34 b(c)m(har)g(*cap)p Fg(\))390 1716
+2136 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_termcap)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*cap)p Fg(\))390 2246
y Ft(Retriev)m(e)29 b(the)e(string)g(v)-5 b(alue)27 b(of)g(the)h
(termcap)f(capabilit)m(y)i Fj(cap)p Ft(.)40 b(Readline)27
-b(fetc)m(hes)h(the)g(termcap)390 1826 y(en)m(try)34 b(for)f(the)h
+b(fetc)m(hes)h(the)g(termcap)390 2355 y(en)m(try)34 b(for)f(the)h
(curren)m(t)f(terminal)h(name)g(and)f(uses)g(those)h(capabilities)h(to)
-f(mo)m(v)m(e)h(around)e(the)390 1935 y(screen)21 b(line)h(and)e(p)s
+f(mo)m(v)m(e)h(around)e(the)390 2465 y(screen)21 b(line)h(and)e(p)s
(erform)g(other)h(terminal-sp)s(eci\014c)h(op)s(erations,)h(lik)m(e)f
-(erasing)g(a)f(line.)38 b(Readline)390 2045 y(do)s(es)d(not)g(use)g
+(erasing)g(a)f(line.)38 b(Readline)390 2574 y(do)s(es)d(not)g(use)g
(all)g(of)h(a)f(terminal's)g(capabilities,)k(and)34 b(this)h(function)g
-(will)g(return)f(v)-5 b(alues)35 b(for)390 2155 y(only)30
-b(those)h(capabilities)i(Readline)e(uses.)3350 2335 y([F)-8
+(will)g(return)f(v)-5 b(alues)35 b(for)390 2684 y(only)30
+b(those)h(capabilities)i(Readline)e(uses.)3350 2869 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_clear_history)c Fg(\()p
-Ff(v)m(oid)p Fg(\))390 2444 y Ft(Clear)27 b(the)h(history)f(list)h(b)m
+Ff(v)m(oid)p Fg(\))390 2979 y Ft(Clear)27 b(the)h(history)f(list)h(b)m
(y)f(deleting)h(all)g(of)f(the)h(en)m(tries,)h(in)d(the)i(same)f
-(manner)g(as)g(the)g(History)390 2554 y(library's)42
+(manner)g(as)g(the)g(History)390 3088 y(library's)42
b Fs(clear_history\(\))d Ft(function.)78 b(This)42 b(di\013ers)g(from)g
-Fs(clear_history)e Ft(b)s(ecause)i(it)390 2664 y(frees)30
+Fs(clear_history)e Ft(b)s(ecause)i(it)390 3198 y(frees)30
b(priv)-5 b(ate)31 b(data)g(Readline)g(sa)m(v)m(es)h(in)e(the)h
-(history)f(list.)150 2860 y Fi(2.4.12)63 b(Alternate)40
-b(In)m(terface)150 3007 y Ft(An)21 b(alternate)j(in)m(terface)f(is)f(a)
+(history)f(list.)150 3398 y Fi(2.4.12)63 b(Alternate)40
+b(In)m(terface)150 3545 y Ft(An)21 b(alternate)j(in)m(terface)f(is)f(a)
m(v)-5 b(ailable)24 b(to)e(plain)g Fs(readline\(\))p
Ft(.)35 b(Some)21 b(applications)i(need)f(to)g(in)m(terlea)m(v)m(e)150
-3117 y(k)m(eyb)s(oard)35 b(I/O)h(with)f(\014le,)i(device,)h(or)e(windo)
+3654 y(k)m(eyb)s(oard)35 b(I/O)h(with)f(\014le,)i(device,)h(or)e(windo)
m(w)f(system)g(I/O,)h(t)m(ypically)i(b)m(y)d(using)g(a)h(main)g(lo)s
-(op)f(to)150 3226 y Fs(select\(\))42 b Ft(on)i(v)-5 b(arious)45
+(op)f(to)150 3764 y Fs(select\(\))42 b Ft(on)i(v)-5 b(arious)45
b(\014le)f(descriptors.)83 b(T)-8 b(o)45 b(accommo)s(date)h(this)e
-(need,)k(readline)d(can)f(also)i(b)s(e)150 3336 y(in)m(v)m(ok)m(ed)33
+(need,)k(readline)d(can)f(also)i(b)s(e)150 3873 y(in)m(v)m(ok)m(ed)33
b(as)e(a)h(`callbac)m(k')h(function)e(from)g(an)g(ev)m(en)m(t)h(lo)s
(op.)44 b(There)30 b(are)i(functions)f(a)m(v)-5 b(ailable)33
-b(to)f(mak)m(e)150 3445 y(this)e(easy)-8 b(.)3350 3626
+b(to)f(mak)m(e)150 3983 y(this)e(easy)-8 b(.)3350 4168
y([F)g(unction])-3599 b Fh(void)54 b(rl_callback_handler_inst)q(all)e
-Fg(\()p Ff(const)34 b(c)m(har)g(*prompt,)565 3735 y(rl)p
-639 3735 30 5 v 44 w(v)m(cpfunc)p 1016 3735 V 45 w(t)f(*lhandler)p
-Fg(\))390 3845 y Ft(Set)25 b(up)f(the)h(terminal)g(for)f(readline)i
+Fg(\()p Ff(const)34 b(c)m(har)g(*prompt,)565 4278 y(rl)p
+639 4278 30 5 v 44 w(v)m(cpfunc)p 1016 4278 V 45 w(t)f(*lhandler)p
+Fg(\))390 4388 y Ft(Set)25 b(up)f(the)h(terminal)g(for)f(readline)i
(I/O)e(and)g(displa)m(y)h(the)g(initial)h(expanded)e(v)-5
-b(alue)26 b(of)f Fj(prompt)p Ft(.)390 3954 y(Sa)m(v)m(e)34
+b(alue)26 b(of)f Fj(prompt)p Ft(.)390 4497 y(Sa)m(v)m(e)34
b(the)f(v)-5 b(alue)33 b(of)g Fj(lhandler)39 b Ft(to)34
b(use)e(as)h(a)g(handler)f(function)h(to)g(call)h(when)e(a)h(complete)i
-(line)390 4064 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57
+(line)390 4607 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57
b(The)35 b(handler)g(function)g(receiv)m(es)j(the)e(text)g(of)g(the)g
-(line)g(as)g(an)390 4173 y(argumen)m(t.)k(As)29 b(with)f
+(line)g(as)g(an)390 4716 y(argumen)m(t.)k(As)29 b(with)f
Fs(readline\(\))p Ft(,)e(the)j(handler)e(function)h(should)g
-Fs(free)f Ft(the)h(line)h(when)e(it)i(it)390 4283 y(\014nished)g(with)h
-(it.)3350 4463 y([F)-8 b(unction])-3599 b Fh(void)54
+Fs(free)f Ft(the)h(line)h(when)e(it)i(it)390 4826 y(\014nished)g(with)h
+(it.)3350 5011 y([F)-8 b(unction])-3599 b Fh(void)54
b(rl_callback_read_char)d Fg(\()p Ff(v)m(oid)p Fg(\))390
-4573 y Ft(Whenev)m(er)34 b(an)g(application)h(determines)e(that)i(k)m
+5121 y Ft(Whenev)m(er)34 b(an)g(application)h(determines)e(that)i(k)m
(eyb)s(oard)e(input)g(is)h(a)m(v)-5 b(ailable,)37 b(it)d(should)f(call)
-390 4682 y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)22
+390 5230 y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)22
b(will)g(read)f(the)h(next)g(c)m(haracter)h(from)f(the)f(curren)m(t)h
-(input)390 4792 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes)
+(input)390 5340 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes)
h(the)e(line,)h Fs(rl_callback_read_char)22 b Ft(will)28
-b(in)m(v)m(ok)m(e)i(the)390 4902 y Fj(lhandler)47 b Ft(function)40
-b(installed)i(b)m(y)e Fs(rl_callback_handler_insta)o(ll)35
-b Ft(to)41 b(pro)s(cess)f(the)h(line.)390 5011 y(Before)j(calling)h
-(the)e Fj(lhandler)49 b Ft(function,)e(the)c(terminal)h(settings)g(are)
-g(reset)f(to)h(the)g(v)-5 b(alues)390 5121 y(they)44
-b(had)e(b)s(efore)h(calling)i Fs(rl_callback_handler_insta)o(ll)p
-Ft(.)73 b(If)43 b(the)h Fj(lhandler)49 b Ft(function)390
-5230 y(returns,)27 b(and)h(the)g(line)g(handler)f(remains)h(installed,)
-i(the)e(terminal)g(settings)h(are)f(mo)s(di\014ed)f(for)390
-5340 y(Readline's)k(use)f(again.)42 b Fs(EOF)29 b Ft(is)i(indicated)g
-(b)m(y)f(calling)i Fj(lhandler)k Ft(with)30 b(a)h Fs(NULL)e
-Ft(line.)p eop end
+b(in)m(v)m(ok)m(e)i(the)p eop end
%%Page: 43 47
TeXDict begin 43 46 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(43)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_callback_sigcleanup)e
-Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Clean)26 b(up)e(an)m(y)i(in)m
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(43)390
+299 y Fj(lhandler)47 b Ft(function)40 b(installed)i(b)m(y)e
+Fs(rl_callback_handler_insta)o(ll)35 b Ft(to)41 b(pro)s(cess)f(the)h
+(line.)390 408 y(Before)j(calling)h(the)e Fj(lhandler)49
+b Ft(function,)e(the)c(terminal)h(settings)g(are)g(reset)f(to)h(the)g
+(v)-5 b(alues)390 518 y(they)44 b(had)e(b)s(efore)h(calling)i
+Fs(rl_callback_handler_insta)o(ll)p Ft(.)73 b(If)43 b(the)h
+Fj(lhandler)49 b Ft(function)390 628 y(returns,)27 b(and)h(the)g(line)g
+(handler)f(remains)h(installed,)i(the)e(terminal)g(settings)h(are)f(mo)
+s(di\014ed)f(for)390 737 y(Readline's)k(use)f(again.)42
+b Fs(EOF)29 b Ft(is)i(indicated)g(b)m(y)f(calling)i Fj(lhandler)k
+Ft(with)30 b(a)h Fs(NULL)e Ft(line.)3350 931 y([F)-8
+b(unction])-3599 b Fh(void)54 b(rl_callback_sigcleanup)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1040 y Ft(Clean)26 b(up)e(an)m(y)i(in)m
(ternal)g(state)h(the)e(callbac)m(k)j(in)m(terface)f(uses)e(to)h(main)m
-(tain)g(state)h(b)s(et)m(w)m(een)f(calls)390 518 y(to)35
-b(rl)p 572 518 28 4 v 40 w(callbac)m(k)p 928 518 V 42
-w(read)p 1142 518 V 40 w(c)m(har)f(\(e.g.,)j(the)e(state)g(of)f(an)m(y)
-h(activ)m(e)h(incremen)m(tal)f(searc)m(hes\).)54 b(This)33
-b(is)390 628 y(in)m(tended)f(to)h(b)s(e)e(used)g(b)m(y)h(applications)h
-(that)g(wish)e(to)i(p)s(erform)d(their)j(o)m(wn)f(signal)g(handling;)
-390 737 y(Readline's)f(in)m(ternal)g(signal)g(handler)f(calls)h(this)g
-(when)e(appropriate.)3350 918 y([F)-8 b(unction])-3599
-b Fh(void)54 b(rl_callback_handler_remo)q(ve)e Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1027 y Ft(Restore)37 b(the)f(terminal)g(to)g
-(its)h(initial)g(state)g(and)e(remo)m(v)m(e)i(the)f(line)g(handler.)56
-b(Y)-8 b(ou)36 b(ma)m(y)h(call)390 1137 y(this)25 b(function)g(from)g
-(within)g(a)h(callbac)m(k)i(as)d(w)m(ell)i(as)f(indep)s(enden)m(tly)-8
-b(.)38 b(If)25 b(the)h Fj(lhandler)31 b Ft(installed)390
-1247 y(b)m(y)25 b Fs(rl_callback_handler_insta)o(ll)19
-b Ft(do)s(es)25 b(not)h(exit)g(the)g(program,)g(either)g(this)f
-(function)g(or)390 1356 y(the)32 b(function)f(referred)f(to)i(b)m(y)g
+(tain)g(state)h(b)s(et)m(w)m(een)f(calls)390 1150 y(to)35
+b(rl)p 572 1150 28 4 v 40 w(callbac)m(k)p 928 1150 V
+42 w(read)p 1142 1150 V 40 w(c)m(har)f(\(e.g.,)j(the)e(state)g(of)f(an)
+m(y)h(activ)m(e)h(incremen)m(tal)f(searc)m(hes\).)54
+b(This)33 b(is)390 1259 y(in)m(tended)f(to)h(b)s(e)e(used)g(b)m(y)h
+(applications)h(that)g(wish)e(to)i(p)s(erform)d(their)j(o)m(wn)f
+(signal)g(handling;)390 1369 y(Readline's)f(in)m(ternal)g(signal)g
+(handler)f(calls)h(this)g(when)e(appropriate.)3350 1562
+y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_callback_handler_remo)q(ve)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1672 y Ft(Restore)37 b(the)f(terminal)g
+(to)g(its)h(initial)g(state)g(and)e(remo)m(v)m(e)i(the)f(line)g
+(handler.)56 b(Y)-8 b(ou)36 b(ma)m(y)h(call)390 1782
+y(this)25 b(function)g(from)g(within)g(a)h(callbac)m(k)i(as)d(w)m(ell)i
+(as)f(indep)s(enden)m(tly)-8 b(.)38 b(If)25 b(the)h Fj(lhandler)31
+b Ft(installed)390 1891 y(b)m(y)25 b Fs(rl_callback_handler_insta)o(ll)
+19 b Ft(do)s(es)25 b(not)h(exit)g(the)g(program,)g(either)g(this)f
+(function)g(or)390 2001 y(the)32 b(function)f(referred)f(to)i(b)m(y)g
(the)f(v)-5 b(alue)32 b(of)g Fs(rl_deprep_term_function)25
-b Ft(should)30 b(b)s(e)h(called)390 1466 y(b)s(efore)f(the)h(program)f
+b Ft(should)30 b(b)s(e)h(called)390 2110 y(b)s(efore)f(the)h(program)f
(exits)h(to)g(reset)g(the)f(terminal)h(settings.)150
-1663 y Fi(2.4.13)63 b(A)41 b(Readline)f(Example)150 1809
+2314 y Fi(2.4.13)63 b(A)41 b(Readline)f(Example)150 2461
y Ft(Here)34 b(is)g(a)g(function)g(whic)m(h)g(c)m(hanges)g(lo)m(w)m
(ercase)j(c)m(haracters)e(to)f(their)g(upp)s(ercase)f(equiv)-5
-b(alen)m(ts,)37 b(and)150 1919 y(upp)s(ercase)d(c)m(haracters)j(to)f
+b(alen)m(ts,)37 b(and)150 2571 y(upp)s(ercase)d(c)m(haracters)j(to)f
(lo)m(w)m(ercase.)58 b(If)35 b(this)g(function)g(w)m(as)h(b)s(ound)d
(to)j(`)p Fs(M-c)p Ft(',)h(then)e(t)m(yping)g(`)p Fs(M-c)p
-Ft(')150 2029 y(w)m(ould)c(c)m(hange)i(the)f(case)g(of)g(the)g(c)m
+Ft(')150 2680 y(w)m(ould)c(c)m(hange)i(the)f(case)g(of)g(the)g(c)m
(haracter)h(under)d(p)s(oin)m(t.)44 b(T)m(yping)31 b(`)p
Fs(M-1)f(0)g(M-c)p Ft(')h(w)m(ould)g(c)m(hange)i(the)150
-2138 y(case)e(of)g(the)g(follo)m(wing)g(10)h(c)m(haracters,)g(lea)m
+2790 y(case)e(of)g(the)g(follo)m(wing)g(10)h(c)m(haracters,)g(lea)m
(ving)g(the)e(cursor)g(on)g(the)h(last)g(c)m(haracter)h(c)m(hanged.)390
-2271 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
-(characters.)e(*/)390 2381 y(int)390 2491 y(invert_case_line)f
-(\(count,)j(key\))629 2600 y(int)h(count,)f(key;)390
-2710 y({)485 2819 y(register)g(int)h(start,)f(end,)h(i;)485
-3039 y(start)g(=)g(rl_point;)485 3258 y(if)h(\(rl_point)d(>=)i
-(rl_end\))581 3367 y(return)f(\(0\);)485 3587 y(if)i(\(count)e(<)h(0\))
-581 3696 y({)676 3806 y(direction)f(=)h(-1;)676 3915
-y(count)g(=)g(-count;)581 4025 y(})485 4134 y(else)581
-4244 y(direction)e(=)j(1;)485 4463 y(/*)g(Find)e(the)h(end)g(of)g(the)g
-(range)g(to)g(modify.)f(*/)485 4573 y(end)h(=)h(start)e(+)i(\(count)e
-(*)h(direction\);)485 4792 y(/*)h(Force)e(it)h(to)g(be)h(within)e
-(range.)g(*/)485 4902 y(if)i(\(end)e(>)i(rl_end\))581
-5011 y(end)f(=)g(rl_end;)485 5121 y(else)g(if)g(\(end)g(<)g(0\))581
-5230 y(end)g(=)g(0;)p eop end
+2929 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
+(characters.)e(*/)390 3039 y(int)390 3148 y(invert_case_line)f
+(\(count,)j(key\))629 3258 y(int)h(count,)f(key;)390
+3367 y({)485 3477 y(register)g(int)h(start,)f(end,)h(i;)485
+3696 y(start)g(=)g(rl_point;)485 3915 y(if)h(\(rl_point)d(>=)i
+(rl_end\))581 4025 y(return)f(\(0\);)485 4244 y(if)i(\(count)e(<)h(0\))
+581 4354 y({)676 4463 y(direction)f(=)h(-1;)676 4573
+y(count)g(=)g(-count;)581 4682 y(})485 4792 y(else)581
+4902 y(direction)e(=)j(1;)485 5121 y(/*)g(Find)e(the)h(end)g(of)g(the)g
+(range)g(to)g(modify.)f(*/)485 5230 y(end)h(=)h(start)e(+)i(\(count)e
+(*)h(direction\);)p eop end
%%Page: 44 48
TeXDict begin 44 47 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(44)485
-299 y Fs(if)48 b(\(start)e(==)h(end\))581 408 y(return)f(\(0\);)485
-628 y(if)i(\(start)e(>)h(end\))581 737 y({)676 847 y(int)g(temp)g(=)g
-(start;)676 956 y(start)g(=)g(end;)676 1066 y(end)g(=)h(temp;)581
-1176 y(})485 1395 y(/*)g(Tell)e(readline)g(that)g(we)i(are)f(modifying)
-e(the)i(line,)629 1504 y(so)g(it)g(will)g(save)f(the)h(undo)g
-(information.)d(*/)485 1614 y(rl_modifying)h(\(start,)h(end\);)485
-1833 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f(i++\))581
-1943 y({)676 2052 y(if)i(\(_rl_uppercase_p)43 b
-(\(rl_line_buffer[i]\)\))772 2162 y(rl_line_buffer[i])g(=)k
-(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 2271 y(else)i(if)g
-(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 2381
+299 y Fs(/*)48 b(Force)e(it)h(to)g(be)h(within)e(range.)g(*/)485
+408 y(if)i(\(end)e(>)i(rl_end\))581 518 y(end)f(=)g(rl_end;)485
+628 y(else)g(if)g(\(end)g(<)g(0\))581 737 y(end)g(=)g(0;)485
+956 y(if)h(\(start)e(==)h(end\))581 1066 y(return)f(\(0\);)485
+1285 y(if)i(\(start)e(>)h(end\))581 1395 y({)676 1504
+y(int)g(temp)g(=)g(start;)676 1614 y(start)g(=)g(end;)676
+1724 y(end)g(=)h(temp;)581 1833 y(})485 2052 y(/*)g(Tell)e(readline)g
+(that)g(we)i(are)f(modifying)e(the)i(line,)629 2162 y(so)g(it)g(will)g
+(save)f(the)h(undo)g(information.)d(*/)485 2271 y(rl_modifying)h
+(\(start,)h(end\);)485 2491 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f
+(i++\))581 2600 y({)676 2710 y(if)i(\(_rl_uppercase_p)43
+b(\(rl_line_buffer[i]\)\))772 2819 y(rl_line_buffer[i])g(=)k
+(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 2929 y(else)i(if)g
+(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 3039
y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581
-2491 y(})485 2600 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
-(last)g(character)e(changed.)g(*/)485 2710 y(rl_point)h(=)h
+3148 y(})485 3258 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
+(last)g(character)e(changed.)g(*/)485 3367 y(rl_point)h(=)h
(\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f(:)h(start;)485
-2819 y(return)f(\(0\);)390 2929 y(})150 3162 y Fi(2.4.14)63
-b(Alternate)40 b(In)m(terface)g(Example)150 3309 y Ft(Here)f(is)g(a)g
+3477 y(return)f(\(0\);)390 3587 y(})150 3819 y Fi(2.4.14)63
+b(Alternate)40 b(In)m(terface)g(Example)150 3966 y Ft(Here)f(is)g(a)g
(complete)h(program)e(that)h(illustrates)h(Readline's)f(alternate)h(in)
-m(terface.)67 b(It)38 b(reads)h(lines)150 3418 y(from)30
+m(terface.)67 b(It)38 b(reads)h(lines)150 4076 y(from)30
b(the)i(terminal)f(and)f(displa)m(ys)h(them,)h(pro)m(viding)f(the)g
(standard)f(history)h(and)f(T)-8 b(AB)32 b(completion)150
-3528 y(functions.)40 b(It)31 b(understands)d(the)j(EOF)f(c)m(haracter)i
+4186 y(functions.)40 b(It)31 b(understands)d(the)j(EOF)f(c)m(haracter)i
(or)e Fs(")p Ft(exit)p Fs(")h Ft(to)g(exit)g(the)g(program.)390
-3696 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j
-(required.)d(*/)390 3806 y(#include)h(<stdlib.h>)390
-3915 y(#include)g(<string.h>)390 4025 y(#include)g(<unistd.h>)390
-4134 y(#include)g(<locale.h>)390 4354 y(/*)h(Used)g(for)g(select\(2\))e
-(*/)390 4463 y(#include)h(<sys/types.h>)390 4573 y(#include)g
-(<sys/select.h>)390 4792 y(#include)g(<signal.h>)390
-5011 y(#include)g(<stdio.h>)390 5230 y(/*)h(Standard)f(readline)f
-(include)h(files.)g(*/)390 5340 y(#include)g(<readline/readline.h>)p
-eop end
+4354 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j
+(required.)d(*/)390 4463 y(#include)h(<stdlib.h>)390
+4573 y(#include)g(<string.h>)390 4682 y(#include)g(<unistd.h>)390
+4792 y(#include)g(<locale.h>)390 5011 y(/*)h(Used)g(for)g(select\(2\))e
+(*/)390 5121 y(#include)h(<sys/types.h>)390 5230 y(#include)g
+(<sys/select.h>)p eop end
%%Page: 45 49
TeXDict begin 45 48 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(45)390
-299 y Fs(#include)46 b(<readline/history.h>)390 518 y(static)g(void)h
-(cb_linehandler)d(\(char)i(*\);)390 628 y(static)g(void)h(sighandler)e
-(\(int\);)390 847 y(int)i(running;)390 956 y(int)g(sigwinch_received;)
-390 1066 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390
-1285 y(/*)h(Handle)f(SIGWINCH)g(and)h(window)f(size)g(changes)g(when)h
-(readline)e(is)j(not)f(active)f(and)p 3922 1305 42 84
-v 533 1395 a(reading)g(a)h(character.)e(*/)390 1504 y(static)h(void)390
-1614 y(sighandler)f(\(int)i(sig\))390 1724 y({)485 1833
-y(sigwinch_received)d(=)j(1;)390 1943 y(})390 2162 y(/*)g(Callback)f
+299 y Fs(#include)46 b(<signal.h>)390 518 y(#include)g(<stdio.h>)390
+737 y(/*)h(Standard)f(readline)f(include)h(files.)g(*/)390
+847 y(#include)g(<readline/readline.h>)390 956 y(#include)g
+(<readline/history.h>)390 1176 y(static)g(void)h(cb_linehandler)d
+(\(char)i(*\);)390 1285 y(static)g(void)h(sighandler)e(\(int\);)390
+1504 y(int)i(running;)390 1614 y(int)g(sigwinch_received;)390
+1724 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390
+1943 y(/*)h(Handle)f(SIGWINCH)g(and)h(window)f(size)g(changes)g(when)h
+(readline)e(is)j(not)f(active)f(and)p 3922 1963 42 84
+v 533 2052 a(reading)g(a)h(character.)e(*/)390 2162 y(static)h(void)390
+2271 y(sighandler)f(\(int)i(sig\))390 2381 y({)485 2491
+y(sigwinch_received)d(=)j(1;)390 2600 y(})390 2819 y(/*)g(Callback)f
(function)f(called)h(for)h(each)g(line)g(when)f(accept-line)f
-(executed,)g(EOF)533 2271 y(seen,)i(or)g(EOF)g(character)e(read.)94
+(executed,)g(EOF)533 2929 y(seen,)i(or)g(EOF)g(character)e(read.)94
b(This)47 b(sets)f(a)i(flag)e(and)h(returns;)f(it)h(could)533
-2381 y(also)g(call)f(exit\(3\).)g(*/)390 2491 y(static)g(void)390
-2600 y(cb_linehandler)e(\(char)i(*line\))390 2710 y({)485
-2819 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.)
-f(*/)485 2929 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g
-("exit"\))g(==)h(0\))581 3039 y({)676 3148 y(if)h(\(line)e(==)h(0\))772
-3258 y(printf)f(\("\\n"\);)676 3367 y(printf)g(\("exit\\n"\);)676
-3477 y(/*)i(This)e(function)g(needs)g(to)h(be)g(called)g(to)g(reset)f
-(the)h(terminal)f(settings,)p 3874 3497 V 820 3587 a(and)g(calling)g
+3039 y(also)g(call)f(exit\(3\).)g(*/)390 3148 y(static)g(void)390
+3258 y(cb_linehandler)e(\(char)i(*line\))390 3367 y({)485
+3477 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.)
+f(*/)485 3587 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g
+("exit"\))g(==)h(0\))581 3696 y({)676 3806 y(if)h(\(line)e(==)h(0\))772
+3915 y(printf)f(\("\\n"\);)676 4025 y(printf)g(\("exit\\n"\);)676
+4134 y(/*)i(This)e(function)g(needs)g(to)h(be)g(called)g(to)g(reset)f
+(the)h(terminal)f(settings,)p 3874 4155 V 820 4244 a(and)g(calling)g
(it)h(from)g(the)g(line)g(handler)e(keeps)i(one)g(extra)f(prompt)g
-(from)p 3874 3607 42 76 v 820 3696 a(being)g(displayed.)f(*/)676
-3806 y(rl_callback_handler_remove)c(\(\);)676 4025 y(running)46
-b(=)i(0;)581 4134 y(})485 4244 y(else)581 4354 y({)676
-4463 y(if)g(\(*line\))772 4573 y(add_history)d(\(line\);)676
-4682 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)676
-4792 y(free)h(\(line\);)581 4902 y(})390 5011 y(})390
-5230 y(int)390 5340 y(main)g(\(int)f(c,)h(char)g(**v\))p
+(from)p 3874 4264 42 76 v 820 4354 a(being)g(displayed.)f(*/)676
+4463 y(rl_callback_handler_remove)c(\(\);)676 4682 y(running)46
+b(=)i(0;)581 4792 y(})485 4902 y(else)581 5011 y({)676
+5121 y(if)g(\(*line\))772 5230 y(add_history)d(\(line\);)676
+5340 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)p
eop end
%%Page: 46 50
TeXDict begin 46 49 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)390
-299 y Fs({)485 408 y(fd_set)47 b(fds;)485 518 y(int)g(r;)485
-737 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h
-(environment)e(variables.)g(*/)p 3874 757 42 84 v 485
-847 a(setlocale)h(\(LC_ALL,)f(""\);)485 1066 y(/*)j(Handle)e(window)g
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)676
+299 y Fs(free)47 b(\(line\);)581 408 y(})390 518 y(})390
+737 y(int)390 847 y(main)g(\(int)f(c,)h(char)g(**v\))390
+956 y({)485 1066 y(fd_set)g(fds;)485 1176 y(int)g(r;)485
+1395 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h
+(environment)e(variables.)g(*/)p 3874 1415 42 84 v 485
+1504 a(setlocale)h(\(LC_ALL,)f(""\);)485 1724 y(/*)j(Handle)e(window)g
(size)g(changes)g(when)h(readline)e(is)j(not)f(active)f(and)h(reading)
-629 1176 y(characters.)d(*/)485 1285 y(signal)j(\(SIGWINCH,)e
-(sighandler\);)485 1504 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485
-1614 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);)
-485 1833 y(/*)j(Enter)e(a)h(simple)g(event)f(loop.)94
+629 1833 y(characters.)d(*/)485 1943 y(signal)j(\(SIGWINCH,)e
+(sighandler\);)485 2162 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485
+2271 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);)
+485 2491 y(/*)j(Enter)e(a)h(simple)g(event)f(loop.)94
b(This)47 b(waits)f(until)g(something)g(is)h(available)629
-1943 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
-(standard)d(input\))h(and)629 2052 y(calls)g(the)h(builtin)f(character)
+2600 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
+(standard)d(input\))h(and)629 2710 y(calls)g(the)h(builtin)f(character)
f(read)i(callback)e(to)i(read)g(it.)95 b(It)47 b(does)f(not)629
-2162 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)
-485 2271 y(running)h(=)i(1;)485 2381 y(while)f(\(running\))581
-2491 y({)676 2600 y(FD_ZERO)f(\(&fds\);)676 2710 y(FD_SET)g(\(fileno)g
-(\(rl_instream\),)e(&fds\);)676 2929 y(r)k(=)f(select)f(\(FD_SETSIZE,)f
-(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 3039 y(if)i(\(r)f(<)g(0)h(&&)f
-(errno)f(!=)h(EINTR\))772 3148 y({)867 3258 y(perror)f(\("rltest:)g
-(select"\);)867 3367 y(rl_callback_handler_remov)o(e)c(\(\);)867
-3477 y(break;)772 3587 y(})676 3696 y(if)48 b(\(sigwinch_received\))390
-3806 y({)485 3915 y(rl_resize_terminal)43 b(\(\);)485
-4025 y(sigwinch_received)h(=)j(0;)390 4134 y(})676 4244
-y(if)h(\(r)f(<)g(0\))390 4354 y(continue;)676 4573 y(if)h(\(FD_ISSET)d
-(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 4682 y
-(rl_callback_read_char)e(\(\);)581 4792 y(})485 5011
-y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g(exited\\n"\);)485
-5121 y(return)g(0;)390 5230 y(})p eop end
+2819 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)
+485 2929 y(running)h(=)i(1;)485 3039 y(while)f(\(running\))581
+3148 y({)676 3258 y(FD_ZERO)f(\(&fds\);)676 3367 y(FD_SET)g(\(fileno)g
+(\(rl_instream\),)e(&fds\);)676 3587 y(r)k(=)f(select)f(\(FD_SETSIZE,)f
+(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 3696 y(if)i(\(r)f(<)g(0)h(&&)f
+(errno)f(!=)h(EINTR\))772 3806 y({)867 3915 y(perror)f(\("rltest:)g
+(select"\);)867 4025 y(rl_callback_handler_remov)o(e)c(\(\);)867
+4134 y(break;)772 4244 y(})676 4354 y(if)48 b(\(sigwinch_received\))390
+4463 y({)485 4573 y(rl_resize_terminal)43 b(\(\);)485
+4682 y(sigwinch_received)h(=)j(0;)390 4792 y(})676 4902
+y(if)h(\(r)f(<)g(0\))390 5011 y(continue;)676 5230 y(if)h(\(FD_ISSET)d
+(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 5340 y
+(rl_callback_read_char)e(\(\);)p eop end
%%Page: 47 51
TeXDict begin 47 50 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)150
-299 y Fr(2.5)68 b(Readline)47 b(Signal)e(Handling)150
-458 y Ft(Signals)31 b(are)f(async)m(hronous)g(ev)m(en)m(ts)i(sen)m(t)f
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)581
+299 y Fs(})485 518 y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g
+(exited\\n"\);)485 628 y(return)g(0;)390 737 y(})150
+1021 y Fr(2.5)68 b(Readline)47 b(Signal)e(Handling)150
+1180 y Ft(Signals)31 b(are)f(async)m(hronous)g(ev)m(en)m(ts)i(sen)m(t)f
(to)g(a)g(pro)s(cess)f(b)m(y)h(the)f(Unix)g(k)m(ernel,)i(sometimes)f
-(on)g(b)s(ehalf)150 568 y(of)k(another)g(pro)s(cess.)53
+(on)g(b)s(ehalf)150 1290 y(of)k(another)g(pro)s(cess.)53
b(They)34 b(are)h(in)m(tended)g(to)g(indicate)h(exceptional)g(ev)m(en)m
-(ts,)i(lik)m(e)e(a)f(user)f(pressing)150 677 y(the)g(in)m(terrupt)f(k)m
-(ey)h(on)g(his)f(terminal,)i(or)f(a)g(net)m(w)m(ork)g(connection)h(b)s
+(ts,)i(lik)m(e)e(a)f(user)f(pressing)150 1400 y(the)g(in)m(terrupt)f(k)
+m(ey)h(on)g(his)f(terminal,)i(or)f(a)g(net)m(w)m(ork)g(connection)h(b)s
(eing)e(brok)m(en.)50 b(There)34 b(is)f(a)h(class)150
-787 y(of)29 b(signals)g(that)h(can)f(b)s(e)f(sen)m(t)h(to)h(the)f(pro)s
-(cess)f(curren)m(tly)h(reading)g(input)f(from)g(the)h(k)m(eyb)s(oard.)
-40 b(Since)150 897 y(Readline)45 b(c)m(hanges)g(the)g(terminal)g
+1509 y(of)29 b(signals)g(that)h(can)f(b)s(e)f(sen)m(t)h(to)h(the)f(pro)
+s(cess)f(curren)m(tly)h(reading)g(input)f(from)g(the)h(k)m(eyb)s(oard.)
+40 b(Since)150 1619 y(Readline)45 b(c)m(hanges)g(the)g(terminal)g
(attributes)g(when)e(it)i(is)g(called,)k(it)c(needs)f(to)h(p)s(erform)e
-(sp)s(ecial)150 1006 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g
+(sp)s(ecial)150 1728 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g
(is)g(receiv)m(ed)h(in)e(order)g(to)h(restore)h(the)e(terminal)h(to)h
-(a)f(sane)f(state,)j(or)150 1116 y(pro)m(vide)g(application)i(writers)e
+(a)f(sane)f(state,)j(or)150 1838 y(pro)m(vide)g(application)i(writers)e
(with)g(functions)g(to)h(do)g(so)f(man)m(ually)-8 b(.)275
-1281 y(Readline)40 b(con)m(tains)i(an)e(in)m(ternal)h(signal)g(handler)
+2001 y(Readline)40 b(con)m(tains)i(an)e(in)m(ternal)h(signal)g(handler)
f(that)h(is)f(installed)h(for)f(a)h(n)m(um)m(b)s(er)e(of)h(signals)150
-1391 y(\()p Fs(SIGINT)p Ft(,)e Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p
+2111 y(\()p Fs(SIGINT)p Ft(,)e Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p
Ft(,)g Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)g Fs(SIGTSTP)p
Ft(,)g Fs(SIGTTIN)p Ft(,)g(and)g Fs(SIGTTOU)p Ft(\).)59
-b(When)150 1500 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i
+b(When)150 2220 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i
(the)e(signal)g(handler)f(will)h(reset)h(the)e(terminal)i(attributes)f
-(to)g(those)150 1610 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f
+(to)g(those)150 2330 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f
Fs(readline\(\))e Ft(w)m(as)i(called,)j(reset)d(the)h(signal)g
-(handling)f(to)h(what)f(it)h(w)m(as)150 1720 y(b)s(efore)26
+(handling)f(to)h(what)f(it)h(w)m(as)150 2439 y(b)s(efore)26
b Fs(readline\(\))e Ft(w)m(as)j(called,)i(and)d(resend)g(the)h(signal)g
(to)h(the)f(calling)h(application.)41 b(If)26 b(and)g(when)150
-1829 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h
+2549 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h
(Readline)g(will)h(reinitialize)h(the)e(terminal)h(and)150
-1939 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28
+2659 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28
b(a)h Fs(SIGINT)d Ft(is)j(receiv)m(ed,)h(the)e(Readline)h(signal)g
-(handler)f(p)s(erforms)150 2048 y(some)39 b(additional)h(w)m(ork,)h
+(handler)f(p)s(erforms)150 2768 y(some)39 b(additional)h(w)m(ork,)h
(whic)m(h)d(will)h(cause)g(an)m(y)h(partially-en)m(tered)g(line)f(to)h
-(b)s(e)e(ab)s(orted)g(\(see)i(the)150 2158 y(description)30
+(b)s(e)e(ab)s(orted)g(\(see)i(the)150 2878 y(description)30
b(of)h Fs(rl_free_line_state\(\))25 b Ft(b)s(elo)m(w\).)275
-2323 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g
+3041 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g
(for)f Fs(SIGWINCH)p Ft(,)g(whic)m(h)g(the)g(k)m(ernel)h(sends)e(to)j
-(a)150 2433 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m
+(a)150 3151 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m
(hanges)g(\(for)f(example,)h(if)f(a)g(user)f(resizes)i(an)e
-Fs(xterm)p Ft(\).)39 b(The)150 2542 y(Readline)d Fs(SIGWINCH)e
+Fs(xterm)p Ft(\).)39 b(The)150 3260 y(Readline)d Fs(SIGWINCH)e
Ft(handler)g(up)s(dates)h(Readline's)h(in)m(ternal)h(screen)e(size)i
-(information,)g(and)e(then)150 2652 y(calls)g(an)m(y)f
+(information,)g(and)e(then)150 3370 y(calls)g(an)m(y)f
Fs(SIGWINCH)e Ft(signal)i(handler)f(the)h(calling)h(application)g(has)f
-(installed.)51 b(Readline)35 b(calls)g(the)150 2762 y(application's)i
+(installed.)51 b(Readline)35 b(calls)g(the)150 3479 y(application's)i
Fs(SIGWINCH)c Ft(signal)i(handler)g(without)g(resetting)h(the)g
-(terminal)f(to)h(its)g(original)g(state.)150 2871 y(If)31
+(terminal)f(to)h(its)g(original)g(state.)150 3589 y(If)31
b(the)i(application's)g(signal)g(handler)e(do)s(es)g(more)h(than)g(up)s
(date)f(its)i(idea)f(of)g(the)g(terminal)h(size)g(and)150
-2981 y(return)28 b(\(for)i(example,)h(a)f Fs(longjmp)d
+3699 y(return)28 b(\(for)i(example,)h(a)f Fs(longjmp)d
Ft(bac)m(k)k(to)f(a)g(main)g(pro)s(cessing)f(lo)s(op\),)h(it)g
-Fk(must)39 b Ft(call)31 b Fs(rl_cleanup_)150 3090 y(after_signal\(\))26
+Fk(must)39 b Ft(call)31 b Fs(rl_cleanup_)150 3808 y(after_signal\(\))26
b Ft(\(describ)s(ed)k(b)s(elo)m(w\),)h(to)g(restore)g(the)g(terminal)g
-(state.)275 3256 y(When)38 b(an)h(application)h(is)f(using)g(the)g
+(state.)275 3971 y(When)38 b(an)h(application)h(is)f(using)g(the)g
(callbac)m(k)i(in)m(terface)f(\(see)g(Section)g(2.4.12)h([Alternate)f
-(In-)150 3365 y(terface],)48 b(page)c(42\),)j(Readline)c(installs)h
+(In-)150 4081 y(terface],)48 b(page)c(42\),)j(Readline)c(installs)h
(signal)g(handlers)e(only)h(for)f(the)h(duration)g(of)g(the)g(call)h
-(to)150 3475 y Fs(rl_callback_read_char)p Ft(.)c(Applications)33
+(to)150 4190 y Fs(rl_callback_read_char)p Ft(.)c(Applications)33
b(using)f(the)g(callbac)m(k)j(in)m(terface)e(should)f(b)s(e)f(prepared)
-g(to)150 3585 y(clean)d(up)d(Readline's)j(state)g(if)e(they)h(wish)f
+g(to)150 4300 y(clean)d(up)d(Readline's)j(state)g(if)e(they)h(wish)f
(to)h(handle)f(the)h(signal)h(b)s(efore)e(the)h(line)g(handler)f
-(completes)150 3694 y(and)k(restores)h(the)f(terminal)h(state.)275
-3860 y(If)k(an)g(application)i(using)f(the)g(callbac)m(k)h(in)m
+(completes)150 4410 y(and)k(restores)h(the)f(terminal)h(state.)275
+4573 y(If)k(an)g(application)i(using)f(the)g(callbac)m(k)h(in)m
(terface)h(wishes)d(to)h(ha)m(v)m(e)h(Readline)g(install)f(its)g
-(signal)150 3969 y(handlers)22 b(at)h(the)g(time)h(the)e(application)j
+(signal)150 4682 y(handlers)22 b(at)h(the)g(time)h(the)e(application)j
(calls)e Fs(rl_callback_handler_instal)o(l)17 b Ft(and)22
-b(remo)m(v)m(e)i(them)150 4079 y(only)f(when)g(a)g(complete)i(line)f
+b(remo)m(v)m(e)i(them)150 4792 y(only)f(when)g(a)g(complete)i(line)f
(of)f(input)f(has)h(b)s(een)g(read,)i(it)e(should)g(set)g(the)h
-Fs(rl_persistent_signal_)150 4188 y(handlers)c Ft(v)-5
+Fs(rl_persistent_signal_)150 4902 y(handlers)c Ft(v)-5
b(ariable)23 b(to)f(a)h(non-zero)f(v)-5 b(alue.)39 b(This)21
b(allo)m(ws)i(an)f(application)i(to)f(defer)e(all)i(of)f(the)h
-(handling)150 4298 y(of)j(the)h(signals)f(Readline)h(catc)m(hes)h(to)f
+(handling)150 5011 y(of)j(the)h(signals)f(Readline)h(catc)m(hes)h(to)f
(Readline.)39 b(Applications)27 b(should)f(use)f(this)h(v)-5
-b(ariable)27 b(with)f(care;)150 4407 y(it)d(can)g(result)g(in)f
+b(ariable)27 b(with)f(care;)150 5121 y(it)d(can)g(result)g(in)f
(Readline)h(catc)m(hing)i(signals)e(and)f(not)h(acting)h(on)f(them)f
-(\(or)h(allo)m(wing)i(the)e(application)150 4517 y(to)36
+(\(or)h(allo)m(wing)i(the)e(application)150 5230 y(to)36
b(react)g(to)g(them\))g(un)m(til)f(the)h(application)g(calls)h
Fs(rl_callback_read_char)p Ft(.)49 b(This)35 b(can)g(result)g(in)150
-4627 y(an)30 b(application)h(b)s(ecoming)f(less)g(resp)s(onsiv)m(e)f
+5340 y(an)30 b(application)h(b)s(ecoming)f(less)g(resp)s(onsiv)m(e)f
(to)i(k)m(eyb)s(oard)e(signals)h(lik)m(e)h(SIGINT.)f(If)f(an)h
-(application)150 4736 y(do)s(es)24 b(not)g(w)m(an)m(t)h(or)g(need)f(to)
-h(p)s(erform)d(an)m(y)j(signal)g(handling,)g(or)f(do)s(es)g(not)h(need)
-f(to)g(do)h(an)m(y)f(pro)s(cessing)150 4846 y(b)s(et)m(w)m(een)31
-b(calls)h(to)f Fs(rl_callback_read_char)p Ft(,)24 b(setting)32
-b(this)e(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(desirable.)275
-5011 y(Readline)f(pro)m(vides)f(t)m(w)m(o)i(v)-5 b(ariables)29
-b(that)h(allo)m(w)g(application)g(writers)e(to)h(con)m(trol)h(whether)e
-(or)h(not)150 5121 y(it)34 b(will)f(catc)m(h)i(certain)f(signals)f(and)
-g(act)h(on)f(them)g(when)f(they)i(are)f(receiv)m(ed.)51
-b(It)33 b(is)g(imp)s(ortan)m(t)g(that)150 5230 y(applications)38
-b(c)m(hange)g(the)e(v)-5 b(alues)37 b(of)g(these)g(v)-5
-b(ariables)37 b(only)g(when)f(calling)i Fs(readline\(\))p
-Ft(,)d(not)i(in)g(a)150 5340 y(signal)31 b(handler,)f(so)g(Readline's)i
-(in)m(ternal)f(signal)g(state)h(is)e(not)h(corrupted.)p
-eop end
+(application)p eop end
%%Page: 48 52
TeXDict begin 48 51 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)3371
-299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_signals)390
-408 y Ft(If)28 b(this)h(v)-5 b(ariable)30 b(is)f(non-zero,)h(Readline)f
-(will)g(install)h(signal)f(handlers)f(for)h Fs(SIGINT)p
-Ft(,)f Fs(SIGQUIT)p Ft(,)390 518 y Fs(SIGTERM)p Ft(,)h
-Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)f Fs(SIGTSTP)p Ft(,)h
-Fs(SIGTTIN)p Ft(,)f(and)i Fs(SIGTTOU)p Ft(.)390 645 y(The)g(default)g
-(v)-5 b(alue)31 b(of)g Fs(rl_catch_signals)26 b Ft(is)k(1.)3371
-808 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_sigwinch)390
-918 y Ft(If)37 b(this)h(v)-5 b(ariable)38 b(is)g(set)g(to)g(a)g
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)150
+299 y(do)s(es)24 b(not)g(w)m(an)m(t)h(or)g(need)f(to)h(p)s(erform)d(an)
+m(y)j(signal)g(handling,)g(or)f(do)s(es)g(not)h(need)f(to)g(do)h(an)m
+(y)f(pro)s(cessing)150 408 y(b)s(et)m(w)m(een)31 b(calls)h(to)f
+Fs(rl_callback_read_char)p Ft(,)24 b(setting)32 b(this)e(v)-5
+b(ariable)31 b(ma)m(y)g(b)s(e)f(desirable.)275 545 y(Readline)f(pro)m
+(vides)f(t)m(w)m(o)i(v)-5 b(ariables)29 b(that)h(allo)m(w)g
+(application)g(writers)e(to)h(con)m(trol)h(whether)e(or)h(not)150
+655 y(it)34 b(will)f(catc)m(h)i(certain)f(signals)f(and)g(act)h(on)f
+(them)g(when)f(they)i(are)f(receiv)m(ed.)51 b(It)33 b(is)g(imp)s(ortan)
+m(t)g(that)150 764 y(applications)38 b(c)m(hange)g(the)e(v)-5
+b(alues)37 b(of)g(these)g(v)-5 b(ariables)37 b(only)g(when)f(calling)i
+Fs(readline\(\))p Ft(,)d(not)i(in)g(a)150 874 y(signal)31
+b(handler,)f(so)g(Readline's)i(in)m(ternal)f(signal)g(state)h(is)e(not)
+h(corrupted.)3371 1062 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_catch_signals)390 1172 y Ft(If)28 b(this)h(v)-5
+b(ariable)30 b(is)f(non-zero,)h(Readline)f(will)g(install)h(signal)f
+(handlers)f(for)h Fs(SIGINT)p Ft(,)f Fs(SIGQUIT)p Ft(,)390
+1282 y Fs(SIGTERM)p Ft(,)h Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p
+Ft(,)f Fs(SIGTSTP)p Ft(,)h Fs(SIGTTIN)p Ft(,)f(and)i
+Fs(SIGTTOU)p Ft(.)390 1418 y(The)g(default)g(v)-5 b(alue)31
+b(of)g Fs(rl_catch_signals)26 b Ft(is)k(1.)3371 1607
+y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_sigwinch)390
+1716 y Ft(If)37 b(this)h(v)-5 b(ariable)38 b(is)g(set)g(to)g(a)g
(non-zero)g(v)-5 b(alue,)40 b(Readline)f(will)f(install)g(a)g(signal)g
-(handler)f(for)390 1027 y Fs(SIGWINCH)p Ft(.)390 1154
+(handler)f(for)390 1826 y Fs(SIGWINCH)p Ft(.)390 1963
y(The)30 b(default)g(v)-5 b(alue)31 b(of)g Fs(rl_catch_sigwinch)25
-b Ft(is)31 b(1.)3371 1317 y([V)-8 b(ariable])-3598 b
+b Ft(is)31 b(1.)3371 2151 y([V)-8 b(ariable])-3598 b
Fh(int)53 b(rl_persistent_signal_)q(hand)q(ler)q(s)390
-1427 y Ft(If)31 b(an)h(application)g(using)g(the)f(callbac)m(k)j(in)m
+2261 y Ft(If)31 b(an)h(application)g(using)g(the)f(callbac)m(k)j(in)m
(terface)f(wishes)e(Readline's)h(signal)h(handlers)d(to)j(b)s(e)390
-1536 y(installed)21 b(and)f(activ)m(e)j(during)d(the)h(set)g(of)f
+2370 y(installed)21 b(and)f(activ)m(e)j(during)d(the)h(set)g(of)f
(calls)i(to)g Fs(rl_callback_read_char)14 b Ft(that)22
-b(constitutes)390 1646 y(an)30 b(en)m(tire)i(single)f(line,)g(it)f
+b(constitutes)390 2480 y(an)30 b(en)m(tire)i(single)f(line,)g(it)f
(should)g(set)h(this)f(v)-5 b(ariable)31 b(to)g(a)g(non-zero)g(v)-5
-b(alue.)390 1773 y(The)30 b(default)g(v)-5 b(alue)31
+b(alue.)390 2617 y(The)30 b(default)g(v)-5 b(alue)31
b(of)g Fs(rl_persistent_signal_han)o(dle)o(rs)24 b Ft(is)31
-b(0.)3371 1936 y([V)-8 b(ariable])-3598 b Fh(int)53 b
-(rl_change_environment)390 2045 y Ft(If)31 b(this)g(v)-5
+b(0.)3371 2805 y([V)-8 b(ariable])-3598 b Fh(int)53 b
+(rl_change_environment)390 2915 y Ft(If)31 b(this)g(v)-5
b(ariable)32 b(is)f(set)h(to)g(a)g(non-zero)g(v)-5 b(alue,)32
b(and)f(Readline)h(is)f(handling)g Fs(SIGWINCH)p Ft(,)e(Read-)390
-2155 y(line)h(will)h(mo)s(dify)e(the)h Fj(LINES)35 b
+3024 y(line)h(will)h(mo)s(dify)e(the)h Fj(LINES)35 b
Ft(and)29 b Fj(COLUMNS)35 b Ft(en)m(vironmen)m(t)30 b(v)-5
-b(ariables)31 b(up)s(on)d(receipt)j(of)g(a)390 2264 y
-Fs(SIGWINCH)390 2392 y Ft(The)f(default)g(v)-5 b(alue)31
+b(ariables)31 b(up)s(on)d(receipt)j(of)g(a)390 3134 y
+Fs(SIGWINCH)390 3271 y Ft(The)f(default)g(v)-5 b(alue)31
b(of)g Fs(rl_change_environment)24 b Ft(is)31 b(1.)275
-2554 y(If)f(an)h(application)h(do)s(es)f(not)g(wish)f(to)i(ha)m(v)m(e)g
+3459 y(If)f(an)h(application)h(do)s(es)f(not)g(wish)f(to)i(ha)m(v)m(e)g
(Readline)g(catc)m(h)g(an)m(y)f(signals,)h(or)f(to)h(handle)e(signals)
-150 2664 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g(\()p
+150 3569 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g(\()p
Fs(SIGHUP)p Ft(,)g(for)e(example\),)k(Readline)d(pro)m(vides)g(con)m(v)
-m(enience)150 2773 y(functions)30 b(to)h(do)f(the)h(necessary)g
+m(enience)150 3678 y(functions)30 b(to)h(do)f(the)h(necessary)g
(terminal)g(and)e(in)m(ternal)i(state)h(clean)m(up)f(up)s(on)e(receipt)
-i(of)g(a)f(signal.)3350 2936 y([F)-8 b(unction])-3599
+i(of)g(a)f(signal.)3350 3867 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_pending_signal)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3046 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i
+Fg(\))390 3977 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i
(the)f(most)h(recen)m(t)h(signal)f(Readline)g(receiv)m(ed)g(but)f(has)g
-(not)h(y)m(et)390 3155 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
-(ending)f(signal.)3350 3318 y([F)-8 b(unction])-3599
+(not)h(y)m(et)390 4086 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
+(ending)f(signal.)3350 4275 y([F)-8 b(unction])-3599
b Fh(void)54 b(rl_cleanup_after_signal)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3427 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i
+Fg(\))390 4384 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i
(of)e(the)g(terminal)g(to)h(what)f(it)g(w)m(as)g(b)s(efore)g
-Fs(readline\(\))390 3537 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j
+Fs(readline\(\))390 4494 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j
(the)f(Readline)g(signal)g(handlers)e(for)h(all)h(signals,)h(dep)s
-(ending)d(on)h(the)390 3647 y(v)-5 b(alues)31 b(of)f
+(ending)d(on)h(the)390 4603 y(v)-5 b(alues)31 b(of)f
Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p
-Ft(.)3350 3809 y([F)-8 b(unction])-3599 b Fh(void)54
+Ft(.)3350 4792 y([F)-8 b(unction])-3599 b Fh(void)54
b(rl_free_line_state)c Fg(\()p Ff(v)m(oid)p Fg(\))390
-3919 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
+4902 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
(ciated)h(with)e(the)g(curren)m(t)g(input)f(line)i(\(undo)e(infor-)390
-4028 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
+5011 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
b(,)47 b(an)m(y)42 b(partially-en)m(tered)j(k)m(eyb)s(oard)d(macro,)47
-b(and)42 b(an)m(y)390 4138 y(partially-en)m(tered)50
+b(and)42 b(an)m(y)390 5121 y(partially-en)m(tered)50
b(n)m(umeric)d(argumen)m(t\).)94 b(This)47 b(should)g(b)s(e)g(called)i
-(b)s(efore)e Fs(rl_cleanup_)390 4248 y(after_signal\(\))p
+(b)s(efore)e Fs(rl_cleanup_)390 5230 y(after_signal\(\))p
Ft(.)74 b(The)42 b(Readline)h(signal)g(handler)f(for)h
Fs(SIGINT)e Ft(calls)i(this)g(to)g(ab)s(ort)g(the)390
-4357 y(curren)m(t)30 b(input)g(line.)3350 4520 y([F)-8
-b(unction])-3599 b Fh(void)54 b(rl_reset_after_signal)d
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4629 y Ft(This)28 b(will)g(reinitialize)
-j(the)e(terminal)g(and)f(reinstall)h(an)m(y)g(Readline)g(signal)g
-(handlers,)f(dep)s(end-)390 4739 y(ing)j(on)f(the)g(v)-5
+5340 y(curren)m(t)30 b(input)g(line.)p eop end
+%%Page: 49 53
+TeXDict begin 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3350
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_reset_after_signal)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(This)28 b(will)g(reinitialize)j
+(the)e(terminal)g(and)f(reinstall)h(an)m(y)g(Readline)g(signal)g
+(handlers,)f(dep)s(end-)390 518 y(ing)j(on)f(the)g(v)-5
b(alues)31 b(of)g Fs(rl_catch_signals)26 b Ft(and)j Fs
-(rl_catch_sigwinch)p Ft(.)275 4902 y(If)j(an)g(application)i(w)m(an)m
+(rl_catch_sigwinch)p Ft(.)275 699 y(If)j(an)g(application)i(w)m(an)m
(ts)g(to)f(force)g(Readline)h(to)f(handle)g(an)m(y)g(signals)g(that)g
-(ha)m(v)m(e)h(arriv)m(ed)f(while)150 5011 y(it)j(has)g(b)s(een)f
+(ha)m(v)m(e)h(arriv)m(ed)f(while)150 809 y(it)j(has)g(b)s(een)f
(executing,)j Fs(rl_check_signals\(\))31 b Ft(will)36
b(call)h(Readline's)g(in)m(ternal)g(signal)f(handler)f(if)150
-5121 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61
+918 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61
b(This)36 b(is)g(primarily)h(in)m(tended)f(for)h(those)g(applications)h
-(that)f(use)150 5230 y(a)h(custom)g Fs(rl_getc_function)33
+(that)f(use)150 1028 y(a)h(custom)g Fs(rl_getc_function)33
b Ft(\(see)39 b(Section)g(2.3)g([Readline)f(V)-8 b(ariables],)42
-b(page)c(27\))h(and)e(wish)g(to)150 5340 y(handle)30
-b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)p
-eop end
-%%Page: 49 53
-TeXDict begin 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(If)40 b(there)h(are)g(an)m(y)g
+b(page)c(27\))h(and)e(wish)g(to)150 1137 y(handle)30
+b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)3350
+1318 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1428 y Ft(If)40 b(there)h(are)g(an)m(y)g
(p)s(ending)e(signals,)44 b(call)e(Readline's)g(in)m(ternal)f(signal)g
-(handling)f(functions)390 518 y(to)j(pro)s(cess)g(them.)77
+(handling)f(functions)390 1538 y(to)j(pro)s(cess)g(them.)77
b Fs(rl_pending_signal\(\))38 b Ft(can)43 b(b)s(e)f(used)g(indep)s
-(enden)m(tly)f(to)j(determine)390 628 y(whether)30 b(or)g(not)h(there)f
-(are)h(an)m(y)g(p)s(ending)e(signals.)275 838 y(If)38
+(enden)m(tly)f(to)j(determine)390 1647 y(whether)30 b(or)g(not)h(there)
+f(are)h(an)m(y)g(p)s(ending)e(signals.)275 1828 y(If)38
b(an)i(application)g(do)s(es)f(not)h(wish)f(Readline)h(to)g(catc)m(h)h
Fs(SIGWINCH)p Ft(,)e(it)h(ma)m(y)g(call)h Fs(rl_resize_)150
-947 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22
+1938 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22
b Ft(to)28 b(force)g(Readline)f(to)h(up)s(date)f(its)g(idea)h(of)f(the)
-g(terminal)150 1057 y(size)k(when)f(a)g Fs(SIGWINCH)e
-Ft(is)j(receiv)m(ed.)3350 1267 y([F)-8 b(unction])-3599
+g(terminal)150 2047 y(size)k(when)f(a)g Fs(SIGWINCH)e
+Ft(is)j(receiv)m(ed.)3350 2228 y([F)-8 b(unction])-3599
b Fh(void)54 b(rl_echo_signal_char)d Fg(\()p Ff(in)m(t)33
-b(sig)p Fg(\))390 1377 y Ft(If)43 b(an)g(application)i(wishes)e(to)i
+b(sig)p Fg(\))390 2338 y Ft(If)43 b(an)g(application)i(wishes)e(to)i
(install)f(its)g(o)m(wn)f(signal)i(handlers,)h(but)c(still)j(ha)m(v)m
-(e)g(readline)390 1486 y(displa)m(y)31 b(c)m(haracters)h(that)f
+(e)g(readline)390 2447 y(displa)m(y)31 b(c)m(haracters)h(that)f
(generate)h(signals,)f(calling)h(this)e(function)g(with)g
-Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 1596
+Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 2557
y Fs(SIGQUIT)p Ft(,)e(or)h Fs(SIGTSTP)e Ft(will)j(displa)m(y)g(the)f(c)
-m(haracter)i(generating)g(that)f(signal.)3350 1806 y([F)-8
+m(haracter)i(generating)g(that)f(signal.)3350 2738 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_resize_terminal)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 1915 y Ft(Up)s(date)30
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2848 y Ft(Up)s(date)30
b(Readline's)h(in)m(ternal)g(screen)g(size)g(b)m(y)f(reading)h(v)-5
-b(alues)31 b(from)f(the)g(k)m(ernel.)3350 2126 y([F)-8
+b(alues)31 b(from)f(the)g(k)m(ernel.)3350 3029 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_set_screen_size)c
Fg(\()p Ff(in)m(t)34 b(ro)m(ws,)f(in)m(t)g(cols)p Fg(\))390
-2235 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)
+3138 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)
g Fj(ro)m(ws)i Ft(ro)m(ws)d(and)f Fj(cols)33 b Ft(columns.)40
-b(If)27 b(either)h Fj(ro)m(ws)390 2345 y Ft(or)35 b Fj(columns)k
+b(If)27 b(either)h Fj(ro)m(ws)390 3248 y Ft(or)35 b Fj(columns)k
Ft(is)c(less)g(than)g(or)g(equal)h(to)g(0,)h(Readline's)f(idea)g(of)f
-(that)h(terminal)f(dimension)g(is)390 2454 y(unc)m(hanged.)275
-2664 y(If)d(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g
+(that)h(terminal)f(dimension)g(is)390 3357 y(unc)m(hanged.)275
+3538 y(If)d(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g
(install)g(a)g Fs(SIGWINCH)d Ft(handler,)j(but)e(is)i(still)g(in)m
-(terested)g(in)150 2774 y(the)d(screen)f(dimensions,)g(Readline's)h
+(terested)g(in)150 3648 y(the)d(screen)f(dimensions,)g(Readline's)h
(idea)g(of)g(the)f(screen)h(size)g(ma)m(y)g(b)s(e)f(queried.)3350
-2984 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c
+3829 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c
Fg(\()p Ff(in)m(t)34 b(*ro)m(ws,)f(in)m(t)g(*cols)p Fg(\))390
-3094 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g
+3938 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g
(in)f(the)g(v)-5 b(ariables)31 b(p)s(oin)m(ted)f(to)g(b)m(y)g(the)h
-(argu-)390 3203 y(men)m(ts.)3350 3413 y([F)-8 b(unction])-3599
+(argu-)390 4048 y(men)m(ts.)3350 4229 y([F)-8 b(unction])-3599
b Fh(void)54 b(rl_reset_screen_size)d Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3523 y Ft(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen)
-f(size)h(and)f(recalculate)j(its)e(dimensions.)275 3733
+Fg(\))390 4339 y Ft(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen)
+f(size)h(and)f(recalculate)j(its)e(dimensions.)275 4519
y(The)e(follo)m(wing)j(functions)e(install)h(and)f(remo)m(v)m(e)i
-(Readline's)f(signal)g(handlers.)3350 3943 y([F)-8 b(unction])-3599
+(Readline's)f(signal)g(handlers.)3350 4700 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_set_signals)d Fg(\()p Ff(v)m(oid)p Fg(\))390
-4053 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h
+4810 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h
Fs(SIGINT)p Ft(,)h Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p Ft(,)h
-Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 4162 y Fs(SIGTSTP)p
+Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 4920 y Fs(SIGTSTP)p
Ft(,)35 b Fs(SIGTTIN)p Ft(,)f Fs(SIGTTOU)p Ft(,)h(and)g
Fs(SIGWINCH)p Ft(,)f(dep)s(ending)g(on)h(the)g(v)-5 b(alues)36
-b(of)f Fs(rl_catch_)390 4272 y(signals)28 b Ft(and)i
-Fs(rl_catch_sigwinch)p Ft(.)3350 4482 y([F)-8 b(unction])-3599
+b(of)f Fs(rl_catch_)390 5029 y(signals)28 b Ft(and)i
+Fs(rl_catch_sigwinch)p Ft(.)3350 5210 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_clear_signals)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 4592 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g
+Fg(\))390 5320 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g
(signal)g(handlers)e(installed)i(b)m(y)f Fs(rl_set_signals\(\))p
-Ft(.)150 4852 y Fr(2.6)68 b(Custom)45 b(Completers)150
-5011 y Ft(T)m(ypically)-8 b(,)47 b(a)c(program)g(that)g(reads)f
-(commands)h(from)f(the)g(user)g(has)h(a)g(w)m(a)m(y)g(of)g(disam)m
-(biguating)150 5121 y(commands)35 b(and)g(data.)56 b(If)35
-b(y)m(our)h(program)f(is)g(one)h(of)g(these,)h(then)e(it)h(can)g(pro)m
-(vide)f(completion)i(for)150 5230 y(commands,)29 b(data,)i(or)e(b)s
-(oth.)39 b(The)29 b(follo)m(wing)i(sections)f(describ)s(e)e(ho)m(w)i(y)
-m(our)f(program)g(and)f(Readline)150 5340 y(co)s(op)s(erate)j(to)h(pro)
-m(vide)e(this)g(service.)p eop end
+Ft(.)p eop end
%%Page: 50 54
TeXDict begin 50 53 bop 150 -116 a Ft(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(Readline)1683 b(50)150
-299 y Fi(2.6.1)63 b(Ho)m(w)40 b(Completing)i(W)-10 b(orks)150
-446 y Ft(In)26 b(order)f(to)i(complete)h(some)f(text,)h(the)f(full)f
-(list)h(of)f(p)s(ossible)g(completions)h(m)m(ust)g(b)s(e)e(a)m(v)-5
-b(ailable.)42 b(That)150 555 y(is,)28 b(it)f(is)g(not)g(p)s(ossible)g
-(to)g(accurately)i(expand)d(a)h(partial)h(w)m(ord)f(without)f(kno)m
-(wing)i(all)f(of)g(the)g(p)s(ossible)150 665 y(w)m(ords)33
+299 y Fr(2.6)68 b(Custom)45 b(Completers)150 458 y Ft(T)m(ypically)-8
+b(,)47 b(a)c(program)g(that)g(reads)f(commands)h(from)f(the)g(user)g
+(has)h(a)g(w)m(a)m(y)g(of)g(disam)m(biguating)150 568
+y(commands)35 b(and)g(data.)56 b(If)35 b(y)m(our)h(program)f(is)g(one)h
+(of)g(these,)h(then)e(it)h(can)g(pro)m(vide)f(completion)i(for)150
+677 y(commands,)29 b(data,)i(or)e(b)s(oth.)39 b(The)29
+b(follo)m(wing)i(sections)f(describ)s(e)e(ho)m(w)i(y)m(our)f(program)g
+(and)f(Readline)150 787 y(co)s(op)s(erate)j(to)h(pro)m(vide)e(this)g
+(service.)150 970 y Fi(2.6.1)63 b(Ho)m(w)40 b(Completing)i(W)-10
+b(orks)150 1117 y Ft(In)26 b(order)f(to)i(complete)h(some)f(text,)h
+(the)f(full)f(list)h(of)f(p)s(ossible)g(completions)h(m)m(ust)g(b)s(e)e
+(a)m(v)-5 b(ailable.)42 b(That)150 1227 y(is,)28 b(it)f(is)g(not)g(p)s
+(ossible)g(to)g(accurately)i(expand)d(a)h(partial)h(w)m(ord)f(without)f
+(kno)m(wing)i(all)f(of)g(the)g(p)s(ossible)150 1336 y(w)m(ords)33
b(whic)m(h)g(mak)m(e)h(sense)f(in)g(that)g(con)m(text.)51
b(The)33 b(Readline)h(library)e(pro)m(vides)i(the)f(user)f(in)m
-(terface)150 775 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h
+(terface)150 1446 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h
(most)f(common)h(completion)h(functions:)39 b(\014lename)29
-b(and)e(username.)150 884 y(F)-8 b(or)39 b(completing)g(other)f(t)m(yp)
-s(es)g(of)h(text,)i(y)m(ou)d(m)m(ust)g(write)g(y)m(our)g(o)m(wn)g
-(completion)h(function.)64 b(This)150 994 y(section)32
+b(and)e(username.)150 1555 y(F)-8 b(or)39 b(completing)g(other)f(t)m
+(yp)s(es)g(of)h(text,)i(y)m(ou)d(m)m(ust)g(write)g(y)m(our)g(o)m(wn)g
+(completion)h(function.)64 b(This)150 1665 y(section)32
b(describ)s(es)d(exactly)j(what)f(suc)m(h)f(functions)g(m)m(ust)g(do,)g
-(and)g(pro)m(vides)g(an)h(example.)275 1159 y(There)e(are)i(three)g(ma)
+(and)g(pro)m(vides)g(an)h(example.)275 1791 y(There)e(are)i(three)g(ma)
5 b(jor)30 b(functions)g(used)g(to)h(p)s(erform)e(completion:)199
-1324 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f
+1918 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f
Fs(rl_complete\(\))p Ft(.)76 b(This)43 b(function)g(is)g(called)i(with)
-e(the)h(same)330 1433 y(argumen)m(ts)36 b(as)g(other)g(bindable)f
+e(the)h(same)330 2027 y(argumen)m(ts)36 b(as)g(other)g(bindable)f
(Readline)h(functions:)51 b Fj(coun)m(t)38 b Ft(and)d
-Fj(in)m(v)m(oking)p 3107 1433 28 4 v 41 w(k)m(ey)p Ft(.)57
-b(It)36 b(isolates)330 1543 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i
+Fj(in)m(v)m(oking)p 3107 2027 28 4 v 41 w(k)m(ey)p Ft(.)57
+b(It)36 b(isolates)330 2137 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i
(and)d(calls)j Fs(rl_completion_matches\(\))31 b Ft(to)39
-b(generate)g(a)f(list)g(of)330 1653 y(p)s(ossible)31
+b(generate)g(a)f(list)g(of)330 2247 y(p)s(ossible)31
b(completions.)44 b(It)31 b(then)g(either)g(lists)h(the)f(p)s(ossible)g
-(completions,)h(inserts)f(the)g(p)s(ossible)330 1762
+(completions,)h(inserts)f(the)g(p)s(ossible)330 2356
y(completions,)50 b(or)45 b(actually)i(p)s(erforms)d(the)h(completion,)
50 b(dep)s(ending)44 b(on)h(whic)m(h)g(b)s(eha)m(vior)g(is)330
-1872 y(desired.)199 2021 y(2.)61 b(The)33 b(in)m(ternal)h(function)g
+2466 y(desired.)199 2592 y(2.)61 b(The)33 b(in)m(ternal)h(function)g
Fs(rl_completion_matches\(\))27 b Ft(uses)33 b(an)g
-(application-supplied)h Fj(gener-)330 2131 y(ator)44
+(application-supplied)h Fj(gener-)330 2702 y(ator)44
b Ft(function)37 b(to)h(generate)g(the)f(list)h(of)f(p)s(ossible)f
(matc)m(hes,)k(and)d(then)f(returns)g(the)h(arra)m(y)h(of)330
-2241 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
+2811 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
f(address)f(of)h(its)g(generator)i(function)d(in)h Fs(rl_)330
-2350 y(completion_entry_functio)o(n)p Ft(.)199 2500 y(3.)61
+2921 y(completion_entry_functio)o(n)p Ft(.)199 3047 y(3.)61
b(The)22 b(generator)i(function)f(is)g(called)h(rep)s(eatedly)f(from)g
-Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 2610
+Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 3157
y(a)33 b(string)g(eac)m(h)h(time.)48 b(The)32 b(argumen)m(ts)h(to)h
(the)f(generator)h(function)e(are)h Fj(text)j Ft(and)c
-Fj(state)p Ft(.)49 b Fj(text)330 2719 y Ft(is)32 b(the)g(partial)h(w)m
+Fj(state)p Ft(.)49 b Fj(text)330 3267 y Ft(is)32 b(the)g(partial)h(w)m
(ord)f(to)h(b)s(e)e(completed.)47 b Fj(state)38 b Ft(is)32
b(zero)h(the)f(\014rst)g(time)g(the)h(function)e(is)h(called,)330
-2829 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
+3376 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
(necessary)g(initialization,)51 b(and)43 b(a)h(p)s(ositiv)m(e)h(non-)
-330 2938 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d
+330 3486 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d
(call.)42 b(The)29 b(generator)h(function)f(returns)f
-Fs(\(char)h(*\)NULL)e Ft(to)330 3048 y(inform)37 b Fs
+Fs(\(char)h(*\)NULL)e Ft(to)330 3595 y(inform)37 b Fs
(rl_completion_matches\(\))32 b Ft(that)39 b(there)f(are)g(no)g(more)g
-(p)s(ossibilities)h(left.)65 b(Usually)330 3158 y(the)39
+(p)s(ossibilities)h(left.)65 b(Usually)330 3705 y(the)39
b(generator)h(function)e(computes)h(the)g(list)g(of)g(p)s(ossible)f
(completions)i(when)e Fj(state)45 b Ft(is)39 b(zero,)330
-3267 y(and)25 b(returns)f(them)i(one)f(at)i(a)f(time)g(on)f(subsequen)m
+3814 y(and)25 b(returns)f(them)i(one)f(at)i(a)f(time)g(on)f(subsequen)m
(t)g(calls.)40 b(Eac)m(h)26 b(string)g(the)g(generator)g(function)330
-3377 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m(ust)f(b)s(e)f(allo)s(cated)
+3924 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m(ust)f(b)s(e)f(allo)s(cated)
j(with)d Fs(malloc\(\))p Ft(;)g(Readline)h(frees)g(the)g(strings)g
-(when)330 3486 y(it)i(has)g(\014nished)e(with)i(them.)51
+(when)330 4034 y(it)i(has)g(\014nished)e(with)i(them.)51
b(Suc)m(h)33 b(a)h(generator)h(function)f(is)g(referred)f(to)h(as)h(an)
-e Fj(application-)330 3596 y(sp)s(eci\014c)d(completion)i(function)p
-Ft(.)3350 3841 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c
+e Fj(application-)330 4143 y(sp)s(eci\014c)d(completion)i(function)p
+Ft(.)3350 4303 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c
Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m(oking)p
-2020 3841 30 5 v 43 w(k)m(ey)p Fg(\))390 3951 y Ft(Complete)d(the)g(w)m
+2020 4303 30 5 v 43 w(k)m(ey)p Fg(\))390 4413 y Ft(Complete)d(the)g(w)m
(ord)g(at)g(or)g(b)s(efore)f(p)s(oin)m(t.)41 b(Y)-8 b(ou)32
b(ha)m(v)m(e)g(supplied)d(the)i(function)f(that)h(do)s(es)g(the)390
-4060 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
+4522 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
(\(see)f Fs(rl_completion_matches\(\))o Ft(\).)67 b(The)390
-4170 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
-4415 y([V)-8 b(ariable])-3598 b Fh(rl_compentry_func_t)58
-b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 4525
+4632 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
+4792 y([V)-8 b(ariable])-3598 b Fh(rl_compentry_func_t)58
+b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 4902
y Ft(This)39 b(is)h(a)g(p)s(oin)m(ter)g(to)h(the)f(generator)h
(function)f(for)f Fs(rl_completion_matches\(\))p Ft(.)63
-b(If)40 b(the)390 4634 y(v)-5 b(alue)24 b(of)g Fs
+b(If)40 b(the)390 5011 y(v)-5 b(alue)24 b(of)g Fs
(rl_completion_entry_funct)o(ion)17 b Ft(is)24 b Fs(NULL)f
Ft(then)g(the)h(default)g(\014lename)g(generator)390
-4744 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
+5121 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
Ft(,)42 b(is)j(used.)84 b(An)44 b Fj(application-sp)s(eci\014c)390
-4854 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h
+5230 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h
(address)f(is)h(assigned)h(to)f Fs(rl_completion_entry_)390
-4963 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31
-b(are)g(used)e(to)j(generate)f(p)s(ossible)f(completions.)150
-5193 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
-5340 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
-(completion)e(functions)f(presen)m(t)h(in)f(Readline.)p
+5340 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31
+b(are)g(used)e(to)j(generate)f(p)s(ossible)f(completions.)p
eop end
%%Page: 51 55
TeXDict begin 51 54 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)3350
-299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete_internal)f
-Fg(\()p Ff(in)m(t)33 b(what)p 1861 299 30 5 v 44 w(to)p
-1994 299 V 43 w(do)p Fg(\))390 408 y Ft(Complete)k(the)g(w)m(ord)f(at)i
-(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fj(what)p 2208 408
-28 4 v 40 w(to)p 2328 408 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
-(with)g(the)h(com-)390 518 y(pletion.)44 b(A)31 b(v)-5
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)150
+299 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
+446 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
+(completion)e(functions)f(presen)m(t)h(in)f(Readline.)3350
+640 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete_internal)f
+Fg(\()p Ff(in)m(t)33 b(what)p 1861 640 30 5 v 44 w(to)p
+1994 640 V 43 w(do)p Fg(\))390 749 y Ft(Complete)k(the)g(w)m(ord)f(at)i
+(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fj(what)p 2208 749
+28 4 v 40 w(to)p 2328 749 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
+(with)g(the)h(com-)390 859 y(pletion.)44 b(A)31 b(v)-5
b(alue)32 b(of)f(`)p Fs(?)p Ft(')g(means)h(list)f(the)h(p)s(ossible)e
(completions.)45 b(`)p Fs(TAB)p Ft(')31 b(means)g(do)g(standard)390
-628 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)f
+969 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)f
(the)g(p)s(ossible)g(completions.)44 b(`)p Fs(!)p Ft(')32
-b(means)f(to)h(displa)m(y)f(all)390 737 y(of)k(the)f(p)s(ossible)g
+b(means)f(to)h(displa)m(y)f(all)390 1078 y(of)k(the)f(p)s(ossible)g
(completions,)j(if)d(there)h(is)f(more)g(than)h(one,)g(as)g(w)m(ell)g
-(as)g(p)s(erforming)e(partial)390 847 y(completion.)41
+(as)g(p)s(erforming)e(partial)390 1188 y(completion.)41
b(`)p Fs(@)p Ft(')27 b(is)h(similar)f(to)h(`)p Fs(!)p
Ft(',)h(but)d(p)s(ossible)h(completions)i(are)e(not)h(listed)g(if)f
-(the)g(p)s(ossible)390 956 y(completions)32 b(share)e(a)g(common)h
-(pre\014x.)3350 1203 y([F)-8 b(unction])-3599 b Fh(int)53
+(the)g(p)s(ossible)390 1297 y(completions)32 b(share)e(a)g(common)h
+(pre\014x.)3350 1491 y([F)-8 b(unction])-3599 b Fh(int)53
b(rl_complete)c Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m
-(oking)p 2020 1203 30 5 v 43 w(k)m(ey)p Fg(\))390 1312
+(oking)p 2020 1491 30 5 v 43 w(k)m(ey)p Fg(\))390 1601
y Ft(Complete)42 b(the)f(w)m(ord)g(at)h(or)f(b)s(efore)g(p)s(oin)m(t.)
73 b(Y)-8 b(ou)41 b(ha)m(v)m(e)i(supplied)c(the)j(function)f(that)g(do)
-s(es)390 1422 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
+s(es)390 1710 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
(algorithm)f(\(see)g Fs(rl_completion_matches\(\))27
-b Ft(and)390 1532 y Fs(rl_completion_entry_func)o(tion)o
+b Ft(and)390 1820 y Fs(rl_completion_entry_func)o(tion)o
Ft(\).)52 b(The)35 b(default)h(is)g(to)h(do)e(\014lename)h(completion.)
-59 b(This)390 1641 y(calls)32 b Fs(rl_complete_internal\(\))24
+59 b(This)390 1930 y(calls)32 b Fs(rl_complete_internal\(\))24
b Ft(with)30 b(an)g(argumen)m(t)h(dep)s(ending)e(on)h
-Fj(in)m(v)m(oking)p 3314 1641 28 4 v 41 w(k)m(ey)p Ft(.)3350
-1888 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns)
+Fj(in)m(v)m(oking)p 3314 1930 28 4 v 41 w(k)m(ey)p Ft(.)3350
+2124 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns)
f Fg(\()p Ff(in)m(t)33 b(coun)m(t,)h(in)m(t)f(in)m(v)m(oking)p
-2622 1888 30 5 v 43 w(k)m(ey)p Fg(\))390 1997 y Ft(List)41
+2622 2124 30 5 v 43 w(k)m(ey)p Fg(\))390 2233 y Ft(List)41
b(the)f(p)s(ossible)g(completions.)73 b(See)40 b(description)h(of)g
Fs(rl_complete)27 b(\(\))p Ft(.)70 b(This)40 b(calls)i
-Fs(rl_)390 2107 y(complete_internal\(\))25 b Ft(with)30
-b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 2353
+Fs(rl_)390 2343 y(complete_internal\(\))25 b Ft(with)30
+b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 2537
y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_insert_completions)f
Fg(\()p Ff(in)m(t)34 b(coun)m(t,)f(in)m(t)g(in)m(v)m(oking)p
-2517 2353 V 44 w(k)m(ey)p Fg(\))390 2463 y Ft(Insert)g(the)h(list)g(of)
+2517 2537 V 44 w(k)m(ey)p Fg(\))390 2646 y Ft(Insert)g(the)h(list)g(of)
g(p)s(ossible)f(completions)i(in)m(to)f(the)g(line,)h(deleting)g(the)f
-(partially-completed)390 2572 y(w)m(ord.)44 b(See)32
+(partially-completed)390 2756 y(w)m(ord.)44 b(See)32
b(description)g(of)g Fs(rl_complete\(\))p Ft(.)41 b(This)31
b(calls)i Fs(rl_complete_internal\(\))25 b Ft(with)390
-2682 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
-2928 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
-Fg(\()p Ff(rl)p 1455 2928 V 44 w(command)p 1919 2928
-V 44 w(func)p 2147 2928 V 46 w(t)33 b(*cfunc)p Fg(\))390
-3038 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
+2865 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
+3059 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
+Fg(\()p Ff(rl)p 1455 3059 V 44 w(command)p 1919 3059
+V 44 w(func)p 2147 3059 V 46 w(t)33 b(*cfunc)p Fg(\))390
+3169 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
b(to)i(pass)e(to)h Fs(rl_complete_internal\(\))35 b Ft(dep)s(ending)40
-b(on)390 3147 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41
+b(on)390 3279 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41
b(called)h(t)m(wice)g(in)f(succession)g(and)f(the)h(v)-5
-b(alues)41 b(of)g(the)g Fs(show-all-if-)390 3257 y(ambiguous)25
+b(alues)41 b(of)g(the)g Fs(show-all-if-)390 3388 y(ambiguous)25
b Ft(and)i Fs(show-all-if-unmodified)21 b Ft(v)-5 b(ariables.)41
-b(Application-sp)s(eci\014c)29 b(completion)390 3367
+b(Application-sp)s(eci\014c)29 b(completion)390 3498
y(functions)h(ma)m(y)h(use)f(this)g(function)g(to)h(presen)m(t)g(the)f
(same)h(in)m(terface)h(as)f Fs(rl_complete\(\))p Ft(.)3350
-3613 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
+3692 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
(rl_completion_matches)g Fg(\()p Ff(const)34 b(c)m(har)g(*text,)565
-3723 y(rl)p 639 3723 V 44 w(comp)s(en)m(try)p 1145 3723
-V 44 w(func)p 1373 3723 V 45 w(t)f(*en)m(try)p 1767 3723
-V 44 w(func)p Fg(\))390 3832 y Ft(Returns)k(an)h(arra)m(y)g(of)g
+3801 y(rl)p 639 3801 V 44 w(comp)s(en)m(try)p 1145 3801
+V 44 w(func)p 1373 3801 V 45 w(t)f(*en)m(try)p 1767 3801
+V 44 w(func)p Fg(\))390 3911 y Ft(Returns)k(an)h(arra)m(y)g(of)g
(strings)g(whic)m(h)f(is)h(a)g(list)h(of)f(completions)h(for)e
-Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 3942
+Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 4020
y(completions,)f(returns)c Fs(NULL)p Ft(.)52 b(The)34
b(\014rst)f(en)m(try)i(in)f(the)h(returned)e(arra)m(y)i(is)g(the)f
-(substitution)390 4051 y(for)26 b Fj(text)p Ft(.)40 b(The)26
+(substitution)390 4130 y(for)26 b Fj(text)p Ft(.)40 b(The)26
b(remaining)h(en)m(tries)g(are)g(the)f(p)s(ossible)g(completions.)40
-b(The)26 b(arra)m(y)h(is)f(terminated)390 4161 y(with)k(a)h
-Fs(NULL)e Ft(p)s(oin)m(ter.)390 4326 y Fj(en)m(try)p
-603 4326 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g
+b(The)26 b(arra)m(y)h(is)f(terminated)390 4240 y(with)k(a)h
+Fs(NULL)e Ft(p)s(oin)m(ter.)390 4379 y Fj(en)m(try)p
+603 4379 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g
(args,)j(and)38 b(returns)h(a)g Fs(char)30 b(*)p Ft(.)67
-b(The)39 b(\014rst)g(argumen)m(t)h(is)390 4436 y Fj(text)p
+b(The)39 b(\014rst)g(argumen)m(t)h(is)390 4489 y Fj(text)p
Ft(.)66 b(The)39 b(second)f(is)h(a)g(state)h(argumen)m(t;)j(it)c(is)g
(zero)g(on)g(the)g(\014rst)f(call,)k(and)c(non-zero)h(on)390
-4546 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
-4546 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f Ft(p)s(oin)m(ter)g
-(to)i(the)f(caller)h(when)e(there)h(are)g(no)390 4655
+4598 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
+4598 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f Ft(p)s(oin)m(ter)g
+(to)i(the)f(caller)h(when)e(there)h(are)g(no)390 4708
y(more)d(matc)m(hes.)3350 4902 y([F)-8 b(unction])-3599
b Fh(char)54 b(*)e(rl_filename_completion)q(_fu)q(nct)q(ion)g
Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565 5011
(describing)e(the)g(t)m(yp)s(e)g(of)g(completion)i(Readline)e(is)g
(curren)m(tly)h(attempt-)390 3447 y(ing;)f(see)f(the)g(description)f
(of)g Fs(rl_complete_internal\(\))28 b Ft(\(see)34 b(Section)g(2.6.2)h
-([Completion)390 3557 y(F)-8 b(unctions],)39 b(page)f(50\))f(for)g(the)
+([Completion)390 3557 y(F)-8 b(unctions],)39 b(page)f(51\))f(for)g(the)
g(list)g(of)g(c)m(haracters.)61 b(This)36 b(is)g(set)i(to)f(the)g
(appropriate)f(v)-5 b(alue)390 3666 y(b)s(efore)31 b(an)m(y)h
(application-sp)s(eci\014c)h(completion)g(function)f(is)f(called,)j
TeXDict begin 73 76 bop 150 -116 a Ft(Concept)31 b(Index)2927
b(73)150 100 y Fp(Concept)52 b(Index)146 434 y Fr(A)150
550 y Fb(application-sp)r(eci\014c)27 b(completion)f(functions)e
-Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(49)146 796 y
+Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(50)146 796 y
Fr(C)150 913 y Fb(command)26 b(editing)6 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(1)146 1159
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(36)2025 1197 y
Fe(rl_alphabetic)g Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)37 b Fb(40)2025 1284 y Fe(rl_begin_undo_group)7
+(:)g(:)g(:)37 b Fb(41)2025 1284 y Fe(rl_begin_undo_group)7
b Fa(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(36)2025
1371 y Fe(rl_bind_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b Fb(38)2025 3730 y
Fe(rl_deprep_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
-b Fb(39)2025 3818 y Fe(rl_ding)e Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(40)2025 3818 y Fe(rl_ding)e Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
-b Fb(40)2025 3905 y Fe(rl_discard_keymap)12 b Fa(:)17
+b Fb(41)2025 3905 y Fe(rl_discard_keymap)12 b Fa(:)17
b(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(33)2025
3992 y Fe(rl_display_match_list)d Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
b Fb(48)2025 5128 y Fe(rl_free_undo_list)12 b Fa(:)17
b(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(36)p eop
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(37)p eop
end
%%Page: 76 80
TeXDict begin 76 79 bop 150 -116 a Ft(F)-8 b(unction)31
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24
b Fb(36)150 347 y Fe(rl_function_of_keyseq)g Fa(:)13
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)33 b Fb(35)150 434 y Fe(rl_funmap_names)17
+(:)g(:)g(:)h(:)f(:)33 b Fb(35)150 434 y Fe(rl_function_of_keyseq_len)9
+b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)23 b Fb(35)150 521 y Fe(rl_funmap_names)17
b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(36)150 522 y Fe(rl_generic_bind)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)
+b Fb(36)150 609 y Fe(rl_generic_bind)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(35)150 609 y Fe(rl_get_keymap)25
+(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(35)150 696 y Fe(rl_get_keymap)25
b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(33)150 696 y Fe(rl_get_keymap_by_name)24 b Fa(:)13
+b Fb(33)150 783 y Fe(rl_get_keymap_by_name)24 b Fa(:)13
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 783 y Fe(rl_get_keymap_name)10
+(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 870 y Fe(rl_get_keymap_name)10
b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(33)150
-871 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+957 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)24 b Fb(49)150 958 y Fe(rl_get_termcap)f Fa(:)13
+g(:)24 b Fb(49)150 1045 y Fe(rl_get_termcap)f Fa(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34
-b Fb(42)150 1045 y Fe(rl_getc)22 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)
+b Fb(42)150 1132 y Fe(rl_getc)22 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(39)150 1132 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+b Fb(39)150 1219 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 1220 y
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 1306 y
Fe(rl_insert_completions)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
-b Fb(51)150 1307 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(51)150 1393 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(38)150 1394 y Fe
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(38)150 1481 y Fe
(rl_invoking_keyseqs)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
-b Fb(35)150 1481 y Fe(rl_invoking_keyseqs_in_map)7 b
+b Fb(35)150 1568 y Fe(rl_invoking_keyseqs_in_map)7 b
Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)21 b Fb(35)150 1568 y Fe(rl_kill_text)8 b Fa(:)16
+g(:)g(:)21 b Fb(36)150 1655 y Fe(rl_kill_text)8 b Fa(:)16
b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(38)150 1656 y Fe(rl_list_funmap_names)k Fa(:)13
+b Fb(39)150 1742 y Fe(rl_list_funmap_names)k Fa(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1743 y Fe(rl_macro_bind)25
+(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1829 y Fe(rl_macro_bind)25
b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(41)150 1830 y Fe(rl_macro_dumper)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g
+b Fb(41)150 1917 y Fe(rl_macro_dumper)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(41)150 1917 y Fe(rl_make_bare_keymap)7
+g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(41)150 2004 y Fe(rl_make_bare_keymap)7
b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(33)150
-2005 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+2091 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)34 b Fb(33)150 2092 y Fe(rl_message)13
+(:)f(:)g(:)g(:)34 b Fb(33)150 2178 y Fe(rl_message)13
b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)27 b Fb(37)150 2179 y Fe(rl_modifying)8 b Fa(:)16
+(:)g(:)27 b Fb(38)150 2265 y Fe(rl_modifying)8 b Fa(:)16
b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(37)150 2266 y Fe(rl_named_function)12 b Fa(:)17
+b Fb(37)150 2353 y Fe(rl_named_function)12 b Fa(:)17
b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
-2354 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+2440 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)34 b Fb(37)150 2441 y Fe(rl_on_new_line_with_prompt)7
+(:)f(:)g(:)g(:)34 b Fb(37)150 2527 y Fe(rl_on_new_line_with_prompt)7
b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)21 b Fb(37)150 2528 y Fe(rl_parse_and_bind)12
+(:)g(:)g(:)21 b Fb(37)150 2614 y Fe(rl_parse_and_bind)12
b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
-2615 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g
+2701 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)26 b Fb(48)150 2703 y Fe(rl_possible_completions)14
+g(:)h(:)26 b Fb(48)150 2789 y Fe(rl_possible_completions)14
b Fa(:)k(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2790 y Fe(rl_prep_terminal)15
+(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2876 y Fe(rl_prep_terminal)15
b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b
-Fb(39)150 2877 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g
+Fb(39)150 2963 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)21 b Fb(39)150 2964 y Fe(rl_read_init_file)12
+g(:)h(:)f(:)21 b Fb(39)150 3050 y Fe(rl_read_init_file)12
b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
-3052 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+3137 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3139 y
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3225 y
Fe(rl_redisplay)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3226 y Fe(rl_replace_line)17
+g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3312 y Fe(rl_replace_line)17
b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(40)150 3313 y Fe(rl_reset_after_signal)24 b Fa(:)13
+b Fb(40)150 3399 y Fe(rl_reset_after_signal)24 b Fa(:)13
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)33 b Fb(48)150 3401 y Fe(rl_reset_line_state)7
+(:)g(:)g(:)h(:)f(:)33 b Fb(49)150 3486 y Fe(rl_reset_line_state)7
b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(37)150
-3488 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+3573 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(49)150 3575 y Fe(rl_reset_terminal)12 b Fa(:)17
+b Fb(49)150 3661 y Fe(rl_reset_terminal)12 b Fa(:)17
b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(40)150
-3662 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+3748 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)24 b Fb(49)150 3749 y Fe(rl_restore_prompt)12 b Fa(:)17
+g(:)24 b Fb(49)150 3835 y Fe(rl_restore_prompt)12 b Fa(:)17
b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(38)150
-3837 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+3922 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)29 b Fb(40)150 3924 y Fe(rl_save_prompt)23 b
+g(:)g(:)29 b Fb(40)150 4009 y Fe(rl_save_prompt)23 b
Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34
-b Fb(38)150 4011 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+b Fb(38)150 4097 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 4098 y
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 4184 y
Fe(rl_set_key)13 b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(35)150 4186 y Fe
+g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(35)150 4271 y Fe
(rl_set_keyboard_input_timeout)17 b Fa(:)h(:)c(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(39)150 4273 y Fe(rl_set_keymap)25
+(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(39)150 4358 y Fe(rl_set_keymap)25
b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(33)150 4360 y Fe(rl_set_paren_blink_timeout)7 b
+b Fb(33)150 4445 y Fe(rl_set_paren_blink_timeout)7 b
Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)21 b Fb(42)150 4447 y Fe(rl_set_prompt)k Fa(:)13
+g(:)g(:)21 b Fb(42)150 4533 y Fe(rl_set_prompt)k Fa(:)13
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(38)150 4535 y Fe(rl_set_screen_size)10 b Fa(:)17
+b Fb(38)150 4620 y Fe(rl_set_screen_size)10 b Fa(:)17
b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(49)150 4622
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(49)150 4707
y Fe(rl_set_signals)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)34 b Fb(49)150 4709 y Fe(rl_show_char)8 b Fa(:)16
+g(:)g(:)34 b Fb(49)150 4794 y Fe(rl_show_char)8 b Fa(:)16
b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(37)150 4796 y Fe(rl_stuff_char)j Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(37)150 4881 y Fe(rl_stuff_char)j Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(39)2025 260 y Fe
(rl_tty_set_default_bindings)27 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(39)2025 347 y
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(40)2025 348 y
Fe(rl_tty_set_echoing)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
-b Fb(40)2025 435 y Fe(rl_tty_unset_default_bindings)16
+b Fb(40)2025 436 y Fe(rl_tty_unset_default_bindings)16
b Fa(:)j(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)30
-b Fb(40)2025 523 y Fe(rl_unbind_command_in_map)11 b Fa(:)19
+b Fb(40)2025 524 y Fe(rl_unbind_command_in_map)11 b Fa(:)19
b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)26 b Fb(34)2025 610 y Fe(rl_unbind_function_in_map)9
+g(:)g(:)26 b Fb(34)2025 613 y Fe(rl_unbind_function_in_map)9
b Fa(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)23 b Fb(34)2025 698 y Fe(rl_unbind_key)i Fa(:)13
+(:)g(:)h(:)23 b Fb(34)2025 701 y Fe(rl_unbind_key)i Fa(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(34)2025 786 y Fe(rl_unbind_key_in_map)26 b Fa(:)13
+b Fb(34)2025 789 y Fe(rl_unbind_key_in_map)26 b Fa(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(34)2025 873 y Fe
+(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(34)2025 877 y Fe
(rl_username_completion_functio)q(n)11 b Fa(:)19 b(:)13
b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(52)2025
-961 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+965 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)29 b Fb(41)2025 1048 y Fe(rl_variable_dumper)10
+h(:)f(:)29 b Fb(42)2025 1054 y Fe(rl_variable_dumper)10
b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(42)2025
-1136 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g
+1141 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)27 b Fb(42)2021 1380 y Fr(S)2025 1497 y Fe(self-insert)h(\(a,)e
+g(:)g(:)27 b Fb(42)2021 1397 y Fr(S)2025 1516 y Fe(self-insert)h(\(a,)e
(b,)g(A,)g(1,)g(!,)g(...)q(\))15 b Fa(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1585 y Fe(set-mark)e(\(C-@\))10
+(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1605 y Fe(set-mark)e(\(C-@\))10
b Fa(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)24
-b Fb(22)2025 1672 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13
+b Fb(22)2025 1693 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13
b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1760
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1781
y(sho)n(w-all-if-unmo)r(di\014ed)11 b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)27 b Fb(9)2025 1848 y(sho)n(w-mo)r(de-in-prompt)15
+(:)g(:)27 b Fb(9)2025 1869 y(sho)n(w-mo)r(de-in-prompt)15
b Fa(:)d(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fb(9)2025
-1935 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g
+1957 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)32 b Fb(9)2025 2023 y Fe(skip-csi-sequence)d(\(\))11
+g(:)g(:)g(:)32 b Fb(9)2025 2046 y Fe(skip-csi-sequence)d(\(\))11
b Fa(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2110
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2133
y Fe(start-kbd-macro)j(\(C-x)d(\(\))10 b Fa(:)k(:)f(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25
-b Fb(21)2021 2353 y Fr(T)2025 2470 y Fe(tab-insert)j(\(M-TAB\))16
+b Fb(21)2021 2388 y Fr(T)2025 2507 y Fe(tab-insert)j(\(M-TAB\))16
b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)31 b Fb(19)2025
-2558 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)
+2596 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)31 b Fb(22)2025 2646 y Fe(transpose-chars)e(\(C-t\))9
+(:)g(:)31 b Fb(22)2025 2684 y Fe(transpose-chars)e(\(C-t\))9
b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 2733 y
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 2771 y
Fe(transpose-words)29 b(\(M-t\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
-b Fb(19)2021 2986 y Fr(U)2025 3104 y Fe(undo)j(\(C-_)h(or)f(C-x)g
+b Fb(19)2021 3037 y Fr(U)2025 3156 y Fe(undo)j(\(C-_)h(or)f(C-x)g
(C-u\))12 b Fa(:)i(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(22)2025
-3191 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
+3244 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-23 b Fb(21)2025 3279 y Fe(unix-filename-rubout)30 b(\(\))21
+23 b Fb(21)2025 3332 y Fe(unix-filename-rubout)30 b(\(\))21
b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3367 y Fe(unix-line-discard)29
+(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3421 y Fe(unix-line-discard)29
b(\(C-u\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3454
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3509
y Fe(unix-word-rubout)29 b(\(C-w\))6 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21
-b Fb(20)2025 3541 y Fe(upcase-word)28 b(\(M-u\))20 b
+b Fb(20)2025 3596 y Fe(upcase-word)28 b(\(M-u\))20 b
Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(19)2021
-3795 y Fr(V)2025 3912 y Fb(vi-cmd-mo)r(de-string)18 b
+3862 y Fr(V)2025 3981 y Fb(vi-cmd-mo)r(de-string)18 b
Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(10)2025
-4000 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)
+4069 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35
-b Fb(23)2025 4087 y(vi-ins-mo)r(de-string)8 b Fa(:)13
+b Fb(23)2025 4157 y(vi-ins-mo)r(de-string)8 b Fa(:)13
b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(10)2025
-4175 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+4244 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(10)2021 4417 y
-Fr(Y)2025 4534 y Fe(yank)g(\(C-y\))21 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(10)2021 4499 y
+Fr(Y)2025 4618 y Fe(yank)g(\(C-y\))21 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b
-Fb(20)2025 4622 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10
+Fb(20)2025 4706 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10
b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)24 b Fb(18)2025 4709 y Fe(yank-nth-arg)k(\(M-C-y\))11
+f(:)g(:)24 b Fb(18)2025 4794 y Fe(yank-nth-arg)k(\(M-C-y\))11
b Fa(:)k(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 4796
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 4881
y Fe(yank-pop)h(\(M-y\))10 b Fa(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)24 b Fb(20)p eop end
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
-%%CreationDate: Tue Jan 2 10:56:04 2018
+%%CreationDate: Mon May 21 10:32:52 2018
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
(command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562
E(mand is bound to)144 492 Q F1(M\255#)2.5 E F0(in emacs mode and to)2.5
E F1(#)2.5 E F0(in vi command mode.)2.5 E F1
-(completion\255display\255width \(-1\))108 504 Q F0 1.453(The number of\
- screen columns used to display possible matches when performing comple\
-tion.)144 516 R .194(The v)144 528 R .193(alue is ignored if it is less\
- than 0 or greater than the terminal screen width.)-.25 F 2.693(Av)5.193
-G .193(alue of 0 will)-2.943 F
+(completion\255display\255width \(\2551\))108 504 Q F0 1.453(The number\
+ of screen columns used to display possible matches when performing com\
+pletion.)144 516 R .194(The v)144 528 R .193(alue is ignored if it is l\
+ess than 0 or greater than the terminal screen width.)-.25 F 2.693(Av)
+5.193 G .193(alue of 0 will)-2.943 F
(cause matches to be displayed one per line.)144 540 Q(The def)5 E
-(ault v)-.1 E(alue is -1.)-.25 E F1(completion\255ignor)108 552 Q
+(ault v)-.1 E(alue is \2551.)-.25 E F1(completion\255ignor)108 552 Q
(e\255case \(Off\))-.18 E F0(If set to)144 564 Q F1(On)2.5 E F0 2.5(,r)C
(eadline performs \214lename matching and completion in a case\255insen\
siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
(call\255last\255kbd\255macr)108 585.6 Q 2.5(o\()-.18 G(C\255x e\))-2.5
E F0(Re-e)144 597.6 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F .662(typed at the k)144 609.6 R -.15(ey)-.1 G(board.).15
-E F1(print\255last\255kbd\255macr)5.663 E 3.163(o\()-.18 G(\))-3.163 E
-F0 .663(Print the last k)3.163 F -.15(ey)-.1 G .663
-(board macro de\214ned in a for).15 F(-)-.2 E(mat suitable for the)144
-621.6 Q F4(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87
-638.4 Q -.18(re)108 650.4 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
-(Read in the contents of the)144 662.4 R F4(inputr)4.277 E(c)-.37 E F0
-1.776(\214le, and incorporate an)4.276 F 4.276(yb)-.15 G 1.776
-(indings or v)-4.276 F 1.776(ariable assignments)-.25 F(found there.)144
-674.4 Q F1(abort \(C\255g\))108 686.4 Q F0 3.248
-(Abort the current editing command and ring the terminal')144 698.4 R
-5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
-(bell\255style)144 710.4 Q F0(\).)A(GNU Readline 7.0)72 768 Q
+ear as if).15 F(typed at the k)144 609.6 Q -.15(ey)-.1 G(board.).15 E F1
+(print\255last\255kbd\255macr)108 621.6 Q 2.5(o\()-.18 G(\))-2.5 E F0
+(Print the last k)144 633.6 Q -.15(ey)-.1 G
+(board macro de\214ned in a format suitable for the).15 E F4(inputr)2.5
+E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87 650.4 Q -.18(re)108
+662.4 S<ad72>.18 E(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0
+1.776(Read in the contents of the)144 674.4 R F4(inputr)4.276 E(c)-.37 E
+F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)-.15 G 1.777
+(indings or v)-4.277 F 1.777(ariable assignments)-.25 F(found there.)144
+686.4 Q F1(abort \(C\255g\))108 698.4 Q F0 3.249
+(Abort the current editing command and ring the terminal')144 710.4 R
+5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
+(bell\255style)144 722.4 Q F0(\).)A(GNU Readline 7.0)72 768 Q
(2017 December 28)121.245 E(11)185.955 E 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
(Functions Manual)2.5 E(READLINE\(3\))119.855 E/F1 10/Times-Bold@0 SF
(do\255lo)108 84 Q(wer)-.1 E(case\255v)-.18 E
(ersion \(M\255A, M\255B, M\255)-.1 E/F2 10/Times-Italic@0 SF(x)A F1 2.5
-(,.)C(..\))-2.5 E F0 1.739(If the meta\214ed character)144 96 R F2(x)
-4.239 E F0 1.739
-(is uppercase, run the command that is bound to the corresponding)4.239
+(,.)C(..\))-2.5 E F0 1.738(If the meta\214ed character)144 96 R F2(x)
+4.238 E F0 1.739
+(is uppercase, run the command that is bound to the corresponding)4.238
F(meta\214ed lo)144 108 Q(wercase character)-.25 E 5(.T)-.55 G(he beha)
-5 E(vior is unde\214ned if)-.2 E F2(x)2.5 E F0(is already lo)2.5 E
(wercase.)-.25 E F1(pr)108 120 Q(e\214x\255meta \(ESC\))-.18 E F0
(Set the mark to the point.)144 240 Q(If a numeric ar)5 E
(gument is supplied, the mark is set to that position.)-.18 E F1
(exchange\255point\255and\255mark \(C\255x C\255x\))108 252 Q F0(Sw)144
-264 Q .283(ap the point with the mark.)-.1 F .283
+264 Q .282(ap the point with the mark.)-.1 F .283
(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
+2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
144 276 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 288 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 300 S
-.535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G 3.035(dt)
+(character\255sear)108 288 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 300 S
+.536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt)
.15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
-(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05
-(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre)
+(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
+(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
144 312 Q(vious occurrences.)-.25 E F1(character\255sear)108 324 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 336 S 1.044
-(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 336 S 1.043
+(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E
+(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
(count searches for subsequent occurrences.)144 348 Q F1
-(skip\255csi\255sequence)108 360 Q F0 1.826
+(skip\255csi\255sequence)108 360 Q F0 1.827
(Read enough characters to consume a multi-k)144 372 R 2.126 -.15(ey s)
--.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
-4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 384 R .791
-(Such sequences be)5.791 F .791
+-.1 H 1.826(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
+4.326(sl).15 G(ik)-4.326 E(e)-.1 E .79(Home and End.)144 384 R .791
+(Such sequences be)5.79 F .791
(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
-.331(If this sequence is bound to "\\[", k)144 396 R -.15(ey)-.1 G 2.831
-(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15(ve n)
--.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F(xplic-)
+.332(If this sequence is bound to "\\[", k)144 396 R -.15(ey)-.1 G 2.831
+(sp).15 G .331(roducing such sequences will ha)-2.831 F .631 -.15(ve n)
+-.2 H 2.831(oe).15 G -.25(ff)-2.831 G .331(ect unless e).25 F(xplic-)
-.15 E .026(itly bound to a readline command, instead of inserting stra\
y characters into the editing b)144 408 R(uf)-.2 E(fer)-.25 E 5.026(.T)
-.55 G(his)-5.026 E(is unbound by def)144 420 Q(ault, b)-.1 E
(ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108
-432 Q F0 -.4(Wi)144 444 S .48(thout a numeric ar).4 F .48(gument, the v)
--.18 F .481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0
--.25(va)2.981 G .481(riable is inserted at the).25 F(be)144 456 Q .245
-(ginning of the current line.)-.15 F .245(If a numeric ar)5.245 F .244
-(gument is supplied, this command acts as a toggle: if)-.18 F .321
+432 Q F0 -.4(Wi)144 444 S .481(thout a numeric ar).4 F .481
+(gument, the v)-.18 F .481(alue of the readline)-.25 F F1
+(comment\255begin)2.981 E F0 -.25(va)2.981 G .48
+(riable is inserted at the).25 F(be)144 456 Q .244
+(ginning of the current line.)-.15 F .245(If a numeric ar)5.244 F .245
+(gument is supplied, this command acts as a toggle: if)-.18 F .322
(the characters at the be)144 468 R .321
(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
--.25 F 1.014(inserted, otherwise the characters in)144 480 R F1
-(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.013
-(ginning of the line.)-.15 F 1.468
+(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
+-.25 F 1.013(inserted, otherwise the characters in)144 480 R F1
+(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.014
+(ginning of the line.)-.15 F 1.469
(In either case, the line is accepted as if a ne)144 492 R 1.468
-(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F
-1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 504 Q F0(mak)
-2.983 E .483(es the current line a shell comment.)-.1 F .483
-(If a numeric ar)5.483 F .482(gument causes the comment)-.18 F
+(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F
+1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 504 Q F0(mak)
+2.982 E .483(es the current line a shell comment.)-.1 F .483
+(If a numeric ar)5.483 F .483(gument causes the comment)-.18 F
(character to be remo)144 516 Q -.15(ve)-.15 G(d, the line will be e).15
E -.15(xe)-.15 G(cuted by the shell.).15 E F1(dump\255functions)108 528
-Q F0 .626(Print all of the functions and their k)144 540 R .926 -.15
-(ey b)-.1 H .627(indings to the readline output stream.).15 F .627
-(If a numeric ar)5.627 F(gu-)-.18 E
+Q F0 .627(Print all of the functions and their k)144 540 R .927 -.15
+(ey b)-.1 H .626(indings to the readline output stream.).15 F .626
+(If a numeric ar)5.626 F(gu-)-.18 E
(ment is supplied, the output is formatted in such a w)144 552 Q
(ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
(\214le.)2.5 E F1(dump\255v)108 564 Q(ariables)-.1 E F0 .283
5.283 F(gu-)-.18 E
(ment is supplied, the output is formatted in such a w)144 588 Q
(ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
-(\214le.)2.5 E F1(dump\255macr)108 600 Q(os)-.18 E F0 .592
-(Print all of the readline k)144 612 R .892 -.15(ey s)-.1 H .592
-(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G
-3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 624 Q
+(\214le.)2.5 E F1(dump\255macr)108 600 Q(os)-.18 E F0 .593
+(Print all of the readline k)144 612 R .893 -.15(ey s)-.1 H .592
+(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G
+3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 624 Q
.528(gument is supplied, the output is formatted in such a w)-.18 F .528
-(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
+(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
(\214le.)144 636 Q F1(emacs\255editing\255mode \(C\255e\))108 648 Q F0
(When in)144 660 Q F1(vi)2.5 E F0(command mode, this causes a switch to)
2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1
(vi\255editing\255mode \(M\255C\255j\))108 672 Q F0(When in)144 684 Q F1
(emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E
F0(editing mode.)2.5 E/F4 10.95/Times-Bold@0 SF(DEF)72 700.8 Q -.548(AU)
--.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .064(The follo)
-108 712.8 R .064(wing is a list of the def)-.25 F .064
-(ault emacs and vi bindings.)-.1 F .065
-(Characters with the eighth bit set are written as)5.065 F .527
+-.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo)
+108 712.8 R .065(wing is a list of the def)-.25 F .065
+(ault emacs and vi bindings.)-.1 F .064
+(Characters with the eighth bit set are written as)5.064 F .527
(M\255<character>, and are referred to as)108 724.8 R F2(meta\214ed)
3.407 E F0 3.027(characters. The)3.797 F .527
(printable ASCII characters not mentioned)3.027 F(GNU Readline 7.0)72
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 117.355(READLINE\(3\) Library)72 48 R
-(Functions Manual)2.5 E(READLINE\(3\))119.855 E 1.115
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E 1.116
(in the list of emacs standard bindings are bound to the)108 84 R/F1 10
-/Times-Bold@0 SF(self\255insert)3.615 E F0 1.116
+/Times-Bold@0 SF(self\255insert)3.615 E F0 1.115
(function, which just inserts the gi)3.615 F -.15(ve)-.25 G(n).15 E .945
(character into the input line.)108 96 R .945(In vi insertion mode, all\
characters not speci\214cally mentioned are bound to)5.945 F F1
-(self\255insert)108 108 Q F0 5.358(.C)C .358
-(haracters assigned to signal generation by)-5.358 F/F2 10
+(self\255insert)108 108 Q F0 5.359(.C)C .359
+(haracters assigned to signal generation by)-5.359 F/F2 10
/Times-Italic@0 SF(stty)2.859 E F0 .359(\(1\) or the terminal dri).32 F
--.15(ve)-.25 G 1.159 -.4(r, s).15 H .359(uch as C-Z or C-C,).4 F .188
-(retain that function.)108 120 R .188(Upper and lo)5.188 F .188(wer cas\
+-.15(ve)-.25 G 1.159 -.4(r, s).15 H .358(uch as C-Z or C-C,).4 F .187
+(retain that function.)108 120 R .187(Upper and lo)5.187 F .188(wer cas\
e meta\214ed characters are bound to the same function in the emacs)-.25
-F .304(mode meta k)108 132 R -.15(ey)-.1 G 2.804(map. The).15 F .305(re\
+F .305(mode meta k)108 132 R -.15(ey)-.1 G 2.805(map. The).15 F .305(re\
maining characters are unbound, which causes readline to ring the bell \
-\(subject)2.804 F(to the setting of the)108 144 Q F1(bell\255style)2.5 E
+\(subject)2.805 F(to the setting of the)108 144 Q F1(bell\255style)2.5 E
F0 -.25(va)2.5 G(riable\).).25 E F1(Emacs Mode)87 160.8 Q F0
(Emacs Standard bindings)151.2 172.8 Q 2.5("C-@" set-mark)151.2 196.8 R
2.5("C-A" be)151.2 208.8 R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2
(bfox@gnu.or)108 602.4 Q(g)-.18 E(Chet Rame)108 619.2 Q 1.3 -.65(y, C)
-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)
-.25 G(rsity).15 E(chet.rame)108 631.2 Q(y@case.edu)-.15 E F1 -.11(BU)72
-648 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .691(If you \214nd a b)
-108 660 R .691(ug in)-.2 F F3 -.18(re)3.191 G(adline,).18 E F0 .691
-(you should report it.)3.191 F .69(But \214rst, you should mak)5.69 F
-3.19(es)-.1 G .69(ure that it really is a b)-3.19 F(ug,)-.2 E
+648 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .69(If you \214nd a b)
+108 660 R .69(ug in)-.2 F F3 -.18(re)3.19 G(adline,).18 E F0 .69
+(you should report it.)3.19 F .691(But \214rst, you should mak)5.69 F
+3.191(es)-.1 G .691(ure that it really is a b)-3.191 F(ug,)-.2 E
(and that it appears in the latest v)108 672 Q(ersion of the)-.15 E F3
-.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.)
-.15 E .704(Once you ha)108 688.8 R 1.004 -.15(ve d)-.2 H .704
+.15 E .705(Once you ha)108 688.8 R 1.005 -.15(ve d)-.2 H .705
(etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b)
--.15 F .705(ug report to)-.2 F F2 -.2(bu)3.205 G(g\255r).2 E(eadline)
--.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou)
--3.205 E(ha)108 700.8 Q 1.81 -.15(ve a \214)-.2 H 1.51
-(x, you are welcome to mail that as well!).15 F 1.509
-(Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F
+-.15 F .704(ug report to)-.2 F F2 -.2(bu)3.204 G(g\255r).2 E(eadline)
+-.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.704(.I)C 3.204(fy)-5.704 G(ou)
+-3.204 E(ha)108 700.8 Q 1.809 -.15(ve a \214)-.2 H 1.509
+(x, you are welcome to mail that as well!).15 F 1.51
+(Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F
(mailed to)108 712.8 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2
(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3
(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 729.6 Q
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}).
+It takes a "translated" key sequence and should not be used if the key sequence
+can include NUL.
@end deftypefun
-@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len Keymap map, int *type)
+@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len, Keymap map, int *type)
Return the function invoked by @var{keyseq} of length @var{len}
in keymap @var{map}. Equivalent to @code{rl_function_of_keyseq} with the
addition of the @var{len} parameter.
+It takes a "translated" key sequence and should be used if the key sequence
+can include NUL.
@end deftypefun
@deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
If set to @samp{on}, and @var{completion-ignore-case} is enabled, Readline
treats hyphens (@samp{-}) and underscores (@samp{_}) as equivalent when
performing case-insensitive filename matching and completion.
+The default value is @samp{off}.
@item completion-prefix-display-length
@vindex completion-prefix-display-length
Control-o: "> output"
@end example
-In the above example, @kbd{C-u} is bound to the function
+In the example above, @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
sequence sent by some terminals, and such a binding is assigned by default.
It allows Readline to insert the pasted text as a single unit without treating
each character as if it had been read from the keyboard. The characters
-are inserted as if each one was bound to @code{self-insert}) instead of
+are inserted as if each one was bound to @code{self-insert} instead of
executing any editing commands.
@item transpose-chars (C-t)
@item complete
@btindex complete
@example
-@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DE] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
-[-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
+@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DEI] [-A @var{action}] [-G @var{globpat}]
+[-W @var{wordlist}] [-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
[-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]}
-@code{complete -pr [-DE] [@var{name} @dots{}]}
+@code{complete -pr [-DEI] [@var{name} @dots{}]}
@end example
Specify how arguments to each @var{name} should be completed.
The @option{-r} option removes a completion specification for
each @var{name}, or, if no @var{name}s are supplied, all
completion specifications.
-The @option{-D} option indicates that the remaining options and actions should
+The @option{-D} option indicates that other supplied options and actions should
apply to the ``default'' command completion; that is, completion attempted
on a command for which no completion has previously been defined.
-The @option{-E} option indicates that the remaining options and actions should
+The @option{-E} option indicates that other supplied options and actions should
apply to ``empty'' command completion; that is, completion attempted on a
blank line.
+The @option{-I} option indicates that other supplied options and actions should
+apply to completion on the inital non-assignment word on the line, or after a
+command delimiter such as @samp{;} or @samp{|}, which is usually command
+name completion.
+If multiple options are supplied, the @option{-D} option takes precedence
+over @option{-E}, and both take precedence over @option{-I}.
+If any of @option{-D}, @option{-E}, or @option{-I} are supplied, any other
+@var{name} arguments are ignored; these completions only apply to the case
+specified by the option.
The process of applying these completion specifications when word completion
-is attempted is described above (@pxref{Programmable Completion}). The
-@option{-D} option takes precedence over @option{-E}.
+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
@item filenames
Tell Readline that the compspec generates filenames, so it can perform any
-filename-specific processing (like adding a slash to directory names
+filename-specific processing (like adding a slash to directory names,
quoting special characters, or suppressing trailing spaces).
This option is intended to be used with shell functions specified
with @option{-F}.
@item compopt
@btindex compopt
@example
-@code{compopt} [-o @var{option}] [-DE] [+o @var{option}] [@var{name}]
+@code{compopt} [-o @var{option}] [-DEI] [+o @var{option}] [@var{name}]
@end example
Modify completion options for each @var{name} according to the
@var{option}s, or for the currently-executing completion if no @var{name}s
@var{name} or the current completion.
The possible values of @var{option} are those valid for the @code{complete}
builtin described above.
-The @option{-D} option indicates that the remaining options should
+The @option{-D} option indicates that other supplied options should
apply to the ``default'' command completion; that is, completion attempted
on a command for which no completion has previously been defined.
-The @option{-E} option indicates that the remaining options should
+The @option{-E} option indicates that other supplied options should
apply to ``empty'' command completion; that is, completion attempted on a
blank line.
+The @option{-I} option indicates that other supplied options should
+apply to completion on the inital non-assignment word on the line, or after a
+command delimiter such as @samp{;} or @samp{|}, which is usually command
+name completion.
-The @option{-D} option takes precedence over @option{-E}.
+If multiple options are supplied, the @option{-D} option takes precedence
+over @option{-E}, and both take precedence over @option{-I}
The return value is true unless an invalid option is supplied, an attempt
is made to modify the options for a @var{name} for which no completion
local cur _skipdot _cdpath
local i j k
- # Tilde expansion, with side effect of expanding tilde to full pathname
+ # Tilde expansion, which also expands tilde to full pathname
case "$2" in
\~*) eval cur="$2" ;;
*) cur=$2 ;;
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on January, 2 2018 by texi2html 1.64 -->
+<!-- Created on May, 21 2018 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>January, 2 2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>May, 21 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>January, 2 2018</I>
+by <I>Chet Ramey</I> on <I>May, 21 2018</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
%%Title: rluserman.dvi
-%%CreationDate: Tue Jan 2 15:56:03 2018
+%%CreationDate: Mon May 21 14:32:51 2018
%%Pages: 34
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o rluserman.ps rluserman.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2018.01.02:1056
+%DVIPSSource: TeX output 2018.05.21:1032
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@ignore
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
@end ignore
-@set EDITION 7.0
-@set VERSION 7.0
-@set UPDATED 28 December 2017
-@set UPDATED-MONTH December 2017
+@set EDITION 8.0
+@set VERSION 8.0
+@set UPDATED 6 July 2018
+@set UPDATED-MONTH July 2018
-@set LASTCHANGE Thu Dec 28 14:44:16 EST 2017
+@set LASTCHANGE Fri Jul 6 16:25:22 MDT 2018
#define STREQN(a, b, n) ((n == 0) ? (1) \
: ((a)[0] == (b)[0] && strncmp(a, b, n) == 0))
+int hist_erasedups (void);
+
static void
usage()
{
#define PURGE_REGEXP 0x01
+int hist_purgecmd (char *, int);
+
static void
usage()
{
# include <readline/history.h>
#endif
+#include <unistd.h>
+#include <stdlib.h>
#include <string.h>
+int
main (argc, argv)
int argc;
char **argv;
# include <config.h>
#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#else
+extern int getopt();
+extern int sleep();
+#endif
+
#include <stdio.h>
#include <sys/types.h>
extern HIST_ENTRY **history_list ();
+int
main ()
{
char *temp, *prompt;
/* histexpand.c -- history expansion. */
-/* Copyright (C) 1989-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
#define slashify_in_quotes "\\`\"$"
+#define fielddelim(c) (whitespace(c) || (c) == '\n')
+
typedef int _hist_search_func_t PARAMS((const char *, int));
static char error_pointer;
particular history expansion should be performed. */
rl_linebuf_func_t *history_inhibit_expansion_function;
+int history_quoting_state = 0;
+
/* **************************************************************** */
/* */
/* History Expansion */
the last time. */
if (subst_bywords && si > we)
{
- for (; temp[si] && whitespace (temp[si]); si++)
+ for (; temp[si] && fielddelim (temp[si]); si++)
;
ws = si;
we = history_tokenize_word (temp, si);
/* `!' followed by one of the characters in history_no_expand_chars
is NOT an expansion. */
- for (i = dquote = squote = 0; string[i]; i++)
+ dquote = history_quoting_state == '"';
+ squote = history_quoting_state == '\'';
+
+ /* If the calling application tells us we are already reading a
+ single-quoted string, consume the rest of the string right now
+ and then go on. */
+ i = 0;
+ if (squote && history_quotes_inhibit_expansion)
+ {
+ hist_string_extract_single_quoted (string, &i, 0);
+ squote = 0;
+ if (string[i])
+ i++;
+ }
+
+ for ( ; string[i]; i++)
{
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
}
/* Extract and perform the substitution. */
- for (passc = dquote = squote = i = j = 0; i < l; i++)
+ dquote = history_quoting_state == '"';
+ squote = history_quoting_state == '\'';
+
+ /* If the calling application tells us we are already reading a
+ single-quoted string, consume the rest of the string right now
+ and then go on. */
+ i = j = 0;
+ if (squote && history_quotes_inhibit_expansion)
+ {
+ int c;
+
+ hist_string_extract_single_quoted (string, &i, 0);
+ squote = 0;
+ for (c = 0; c < i; c++)
+ ADD_CHAR (string[c]);
+ if (string[i])
+ {
+ ADD_CHAR (string[i]);
+ i++;
+ }
+ }
+
+ for (passc = 0; i < l; i++)
{
int qc, tchar = string[i];
i = ind;
delimiter = nestdelim = 0;
- if (member (string[i], "()\n"))
+ if (member (string[i], "()\n")) /* XXX - included \n, but why? been here forever */
{
i++;
return i;
}
}
- if (member (string[i], "<>;&|$"))
+ if (member (string[i], "<>;&|"))
{
int peek = string[i + 1];
- if (peek == string[i] && peek != '$')
+ if (peek == string[i])
{
if (peek == '<' && string[i + 2] == '-')
i++;
i += 2;
return i;
}
- /* XXX - separated out for later -- bash-4.2 */
- else if ((peek == '(' && (string[i] == '>' || string[i] == '<')) || /* ) */
- (peek == '(' && string[i] == '$')) /*)*/
+ /* XXX - process substitution -- separated out for later -- bash-4.2 */
+ else if (peek == '(' && (string[i] == '>' || string[i] == '<')) /*)*/
{
i += 2;
delimopen = '(';
nestdelim = 1;
goto get_word;
}
-#if 0
- else if (peek == '\'' && string[i] == '$')
- {
- i += 2; /* XXX */
- return i;
- }
-#endif
- if (string[i] != '$')
- {
- i++;
- return i;
- }
- }
-
- /* same code also used for $(...)/<(...)/>(...) above */
- if (member (string[i], "!@?+*"))
- {
- int peek = string[i + 1];
-
- if (peek == '(') /*)*/
- {
- /* Shell extended globbing patterns */
- i += 2;
- delimopen = '(';
- delimiter = ')'; /* XXX - not perfect */
- nestdelim = 1;
- }
+ i++;
+ return i;
}
get_word:
continue;
}
+ /* Command and process substitution; shell extended globbing patterns */
+ if (nestdelim == 0 && delimiter == 0 && member (string[i], "<>$!@?+*") && string[i+1] == '(') /*)*/
+ {
+ i += 2;
+ delimopen = '(';
+ delimiter = ')';
+ nestdelim = 1;
+ continue;
+ }
+
if (delimiter == 0 && (member (string[i], history_word_delimiters)))
break;
for (i = result_index = size = 0, result = (char **)NULL; string[i]; )
{
/* Skip leading whitespace. */
- for (; string[i] && whitespace (string[i]); i++)
+ for (; string[i] && fielddelim (string[i]); i++)
;
if (string[i] == 0 || string[i] == history_comment_char)
return (result);
/* histfile.c - functions to manipulate the history file. */
-/* Copyright (C) 1989-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
{
if (HIST_TIMESTAMP_START(line_start) == 0)
{
- if (last_ts == NULL && history_multiline_entries)
+ if (last_ts == NULL && history_length > 0 && history_multiline_entries)
_hs_append_history_line (history_length - 1, line_start);
else
add_history (line_start);
extern char history_comment_char;
extern char *history_no_expand_chars;
extern char *history_search_delimiter_chars;
+
extern int history_quotes_inhibit_expansion;
+extern int history_quoting_state;
extern int history_write_timestamps;
rl_point--;
while (rl_point && (whitespace (rl_line_buffer[rl_point - 1]) == 0))
- rl_point--;
+ rl_point--; /* XXX - multibyte? */
}
rl_kill_text (orig_point, rl_point);
while (rl_point && (whitespace (c) == 0) && c != '/')
{
- rl_point--;
+ rl_point--; /* XXX - multibyte? */
c = rl_line_buffer[rl_point - 1];
}
}
size_t len, cap;
char *buf;
- retval = 1;
+ retval = 0;
len = 0;
buf = xmalloc (cap = 64);
if (len == cap)
buf = xrealloc (buf, cap + 1);
buf[len] = '\0';
- retval = rl_insert_text (buf);
+ retval = rl_insert_text (buf) == len ? 0 : 1;
}
xfree (buf);
#if defined(HANDLE_MULTIBYTE)
+/* **************************************************************** */
+/* */
+/* UTF-8 specific Character Utility Functions */
+/* */
+/* **************************************************************** */
+
+/* Return the length in bytes of the possibly-multibyte character beginning
+ at S. Encoding is UTF-8. */
+static int
+_rl_utf8_mblen (const char *s, size_t n)
+{
+ unsigned char c, c1;
+
+ if (s == 0)
+ return (0); /* no shift states */
+ if (n <= 0)
+ return (-1);
+
+ c = (unsigned char)*s;
+ if (c < 0x80)
+ return (c != 0);
+ if (c >= 0xc2)
+ {
+ c1 = (unsigned char)s[1];
+ if (c < 0xe0)
+ {
+ if (n >= 2 && (s[1] ^ 0x80) < 0x40)
+ return 2;
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || c1 >= 0xa0)
+ && (c != 0xed || c1 < 0xa0))
+ return 3;
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4
+ && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || c1 >= 0x90)
+ && (c < 0xf4 || (c == 0xf4 && c1 < 0x90)))
+ return 4;
+ }
+ }
+ /* invalid or incomplete multibyte character */
+ return -1;
+}
+
static int
_rl_find_next_mbchar_internal (char *string, int seed, int count, int find_non_zero)
{
/* Look at no more than MB_CUR_MAX characters */
l = (size_t)strlen (src);
- mb_cur_max = MB_CUR_MAX;
- tmp = mbrlen((const char *)src, (l < mb_cur_max) ? l : mb_cur_max, ps);
+ if (_rl_utf8locale && l > 0 && UTF8_SINGLEBYTE(*src))
+ tmp = (*src != 0) ? 1 : 0;
+ else
+ {
+ mb_cur_max = MB_CUR_MAX;
+ tmp = mbrlen((const char *)src, (l < mb_cur_max) ? l : mb_cur_max, ps);
+ }
if (tmp == (size_t)(-2))
{
- /* shorted to compose multibyte char */
+ /* too short to compose multibyte char */
if (ps)
memset (ps, 0, sizeof(mbstate_t));
return -2;
/* Non-zero makes this the next keystroke to read. */
int rl_pending_input = 0;
+/* If non-zero when readline_internal returns, it means we found EOF */
+int _rl_eof_found = 0;
+
/* Pointer to a useful terminal name. */
const char *rl_terminal_name = (const char *)NULL;
/* Non-zero means to display an asterisk at the starts of history lines
which have been modified. */
-int _rl_mark_modified_lines = 0;
+int _rl_mark_modified_lines = 0;
/* The style of `bell' notification preferred. This can be set to NO_BELL,
AUDIBLE_BELL, or VISIBLE_BELL. */
static char *
readline_internal (void)
{
- int eof;
-
readline_internal_setup ();
- eof = readline_internal_charloop ();
- return (readline_internal_teardown (eof));
+ _rl_eof_found = readline_internal_charloop ();
+ return (readline_internal_teardown (_rl_eof_found));
}
void
/* We probably shadowed a keymap, so keep going. */
r = _rl_dispatch (ANYOTHERKEY, m);
}
- else if (r && map[ANYOTHERKEY].function)
+ else if (r < 0 && map[ANYOTHERKEY].function)
{
/* We didn't match (r is probably -1), so return something to
tell the caller that it should try ANYOTHERKEY for an
#endif
/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0700 /* Readline 7.0 */
-#define RL_VERSION_MAJOR 7
+#define RL_READLINE_VERSION 0x0800 /* Readline 8.0 */
+#define RL_VERSION_MAJOR 8
#define RL_VERSION_MINOR 0
/* Readline data structures. */
#endif
#define UTF8_SINGLEBYTE(c) (((c) & 0x80) == 0)
+#define UTF8_MBFIRSTCHAR(c) (((c) & 0xc0) == 0xc0)
+#define UTF8_MBCHAR(c) (((c) & 0xc0) == 0x80)
#else /* !HANDLE_MULTIBYTE */
extern void _rl_fix_point PARAMS((int));
extern int _rl_replace_text PARAMS((const char *, int, int));
extern int _rl_forward_char_internal PARAMS((int));
+extern int _rl_backward_char_internal PARAMS((int));
extern int _rl_insert_char PARAMS((int, int));
extern int _rl_overwrite_char PARAMS((int, int));
extern int _rl_overwrite_rubout PARAMS((int, int));
extern FILE *_rl_out_stream;
extern int _rl_last_command_was_kill;
extern int _rl_eof_char;
+extern int _rl_eof_found;
extern procenv_t _rl_top_level;
extern _rl_keyseq_cxt *_rl_kscxt;
extern int _rl_keyseq_timeout;
tty = rl_instream ? fileno (rl_instream) : fileno (stdin);
if (terminal_prepped & TPX_BRACKPASTE)
- fprintf (rl_outstream, BRACK_PASTE_FINI);
+ {
+ fprintf (rl_outstream, BRACK_PASTE_FINI);
+ if (_rl_eof_found)
+ fprintf (rl_outstream, "\n");
+ }
if (_rl_enable_keypad)
_rl_control_keypad (0);
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2017-12-17'
+timestamp='2018-05-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
+case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c" ;
for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
+ eval "$set_cc_for_build"
+ cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+ # If ldd exists, use it to detect musl libc.
+ if command -v ldd >/dev/null && \
+ ldd --version 2>&1 | grep -q ^musl
+ then
+ LIBC=musl
+ fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- /sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || \
+ "/sbin/$sysctl" 2>/dev/null || \
+ "/usr/sbin/$sysctl" 2>/dev/null || \
echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
- arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
- endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine=${arch}${endian}-unknown
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine="${arch}${endian}"-unknown
;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
;;
esac
# Determine ABI tags.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
+ case "$UNAME_VERSION" in
Debian*)
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}${abi}"
+ echo "$machine-${os}${release}${abi-}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
exit ;;
*:MidnightBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
exit ;;
*:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
exit ;;
*:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:Sortix:*:*)
- echo ${UNAME_MACHINE}-unknown-sortix
+ echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
*:Redox:*:*)
- echo ${UNAME_MACHINE}-unknown-redox
+ echo "$UNAME_MACHINE"-unknown-redox
exit ;;
mips:OSF1:*.*)
echo mips-dec-osf1
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
+ echo "$UNAME_MACHINE"-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
+ echo "$UNAME_MACHINE"-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
+ echo arm-acorn-riscix"$UNAME_RELEASE"
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
+ echo i386-pc-auroraux"$UNAME_RELEASE"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
SUN_ARCH=x86_64
fi
fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
exit ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
;;
sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
+ echo sparc-sun-sunos"$UNAME_RELEASE"
;;
esac
exit ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
+ echo sparc-auspex-sunos"$UNAME_RELEASE"
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
+ echo m68k-milan-mint"$UNAME_RELEASE"
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
+ echo m68k-hades-mint"$UNAME_RELEASE"
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
+ echo m68k-unknown-mint"$UNAME_RELEASE"
exit ;;
m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
+ echo m68k-apple-machten"$UNAME_RELEASE"
exit ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
+ echo powerpc-apple-machten"$UNAME_RELEASE"
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
+ echo mips-dec-ultrix"$UNAME_RELEASE"
exit ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
+ echo vax-dec-ultrix"$UNAME_RELEASE"
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
+ echo clipper-intergraph-clix"$UNAME_RELEASE"
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
+ echo mips-mips-riscos"$UNAME_RELEASE"
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
+ if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+ [ "$TARGET_BINARY_INTERFACE"x = x ]
then
- echo m88k-dg-dgux${UNAME_RELEASE}
+ echo m88k-dg-dgux"$UNAME_RELEASE"
else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ echo m88k-dg-dguxbcs"$UNAME_RELEASE"
fi
else
- echo i586-dg-dgux${UNAME_RELEASE}
+ echo i586-dg-dgux"$UNAME_RELEASE"
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
main()
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
echo "$SYSTEM_NAME"
else
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ case "$UNAME_MACHINE" in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
+ case "$sc_cpu_version" in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
+ case "$sc_kernel_bits" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ if [ "$HP_ARCH" = "" ]; then
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include <stdlib.h>
exit (0);
}
EOF
- (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = hppa2.0w ]
+ if [ "$HP_ARCH" = hppa2.0w ]
then
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
HP_ARCH=hppa64
fi
fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
exit ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
main ()
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
+ echo "$UNAME_MACHINE"-unknown-osf1mk
else
- echo ${UNAME_MACHINE}-unknown-osf1
+ echo "$UNAME_MACHINE"-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
exit ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
+ echo sparc-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
+ case "$UNAME_PROCESSOR" in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
+ echo "$UNAME_MACHINE"-pc-cygwin
exit ;;
*:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
+ echo "$UNAME_MACHINE"-pc-mingw64
exit ;;
*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
+ echo "$UNAME_MACHINE"-pc-mingw32
exit ;;
*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
+ echo "$UNAME_MACHINE"-pc-msys
exit ;;
i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
+ echo "$UNAME_MACHINE"-pc-pw32
exit ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case "$UNAME_MACHINE" in
x86)
- echo i586-pc-interix${UNAME_RELEASE}
+ echo i586-pc-interix"$UNAME_RELEASE"
exit ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
+ echo x86_64-unknown-interix"$UNAME_RELEASE"
exit ;;
IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
+ echo ia64-unknown-interix"$UNAME_RELEASE"
exit ;;
esac ;;
i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
+ echo "$UNAME_MACHINE"-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
exit ;;
i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
+ echo "$UNAME_MACHINE"-pc-minix
exit ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arm*:Linux:*:*)
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
e2k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
k1om:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ eval "$set_cc_for_build"
+ sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+ test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
;;
mips64el:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
+ echo or1k-unknown-linux-"$LIBC"
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
+ echo sparc-unknown-linux-"$LIBC"
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
+ echo hppa64-unknown-linux-"$LIBC"
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+ *) echo hppa-unknown-linux-"$LIBC" ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
+ echo powerpc64-unknown-linux-"$LIBC"
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
+ echo powerpc-unknown-linux-"$LIBC"
exit ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
+ echo powerpc64le-unknown-linux-"$LIBC"
exit ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
+ echo powerpcle-unknown-linux-"$LIBC"
exit ;;
riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
+ echo "$UNAME_MACHINE"-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
+ echo "$UNAME_MACHINE"-unknown-stop
exit ;;
i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
+ echo "$UNAME_MACHINE"-unknown-atheos
exit ;;
i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
+ echo "$UNAME_MACHINE"-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
+ echo i386-unknown-lynxos"$UNAME_RELEASE"
exit ;;
i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ echo "$UNAME_MACHINE"-pc-msdosdjgpp
exit ;;
i*86:*:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
fi
exit ;;
i*86:*:5:[678]*)
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv32
+ echo "$UNAME_MACHINE"-pc-sysv32
fi
exit ;;
pc:*:*:*)
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
+ echo m68k-unknown-lynxos"$UNAME_RELEASE"
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
+ echo sparc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ echo rs6000-unknown-lynxos"$UNAME_RELEASE"
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ echo powerpc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
+ echo mips-dde-sysv"$UNAME_RELEASE"
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
+ echo "$UNAME_MACHINE"-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
+ echo "$UNAME_MACHINE"-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
+ echo m68k-apple-aux"$UNAME_RELEASE"
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv"$UNAME_RELEASE"
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv"$UNAME_RELEASE"
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
+ echo sx4-nec-superux"$UNAME_RELEASE"
exit ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
+ echo sx5-nec-superux"$UNAME_RELEASE"
exit ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
+ echo sx6-nec-superux"$UNAME_RELEASE"
exit ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
+ echo sx7-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
+ echo sx8-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
+ echo sx8r-nec-superux"$UNAME_RELEASE"
exit ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux${UNAME_RELEASE}
+ echo sxace-nec-superux"$UNAME_RELEASE"
exit ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ echo powerpc-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
+ eval "$set_cc_for_build"
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
+ echo neo-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
+ echo nse-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
+ echo nsr-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ echo nsv-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk${UNAME_RELEASE}
+ echo nsx-tandem-nsk"$UNAME_RELEASE"
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
else
UNAME_MACHINE="$cputype"
fi
- echo ${UNAME_MACHINE}-unknown-plan9
+ echo "$UNAME_MACHINE"-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ echo mips-sei-seiux"$UNAME_RELEASE"
exit ;;
*:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
+ case "$UNAME_MACHINE" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+ echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
exit ;;
i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
+ echo "$UNAME_MACHINE"-pc-rdos
exit ;;
i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
+ echo "$UNAME_MACHINE"-pc-aros
exit ;;
x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
+ echo "$UNAME_MACHINE"-unknown-esx
exit ;;
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
echo "$0: unable to guess system type" >&2
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <<EOF
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
EOF
exit 1
# Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2003 Free Software Foundation, Inc.
+# Copyright 1996-2018 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 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/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
-# All known linkers require a `.a' archive for static linking (except M$VC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
shrext=.so
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
wl=
if test "$GCC" = yes; then
aix*)
wl='-Wl,'
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
irix5* | irix6* | nonstopux*)
wl='-Wl,'
;;
- newsos6)
- ;;
- linux*)
- case $CC in
- icc|ecc)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ ecc*)
+ wl='-Wl,'
+ ;;
+ icc* | ifort*)
+ wl='-Wl,'
+ ;;
+ lf95*)
+ wl='-Wl,'
+ ;;
+ nagfor*)
+ wl='-Wl,-Wl,,'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ wl='-Wl,'
+ ;;
+ ccc*)
wl='-Wl,'
;;
- ccc)
+ xl* | bgxl* | bgf* | mpixl*)
wl='-Wl,'
;;
+ como)
+ wl='-lopt='
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ wl=
+ ;;
+ *Sun\ C*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
esac
;;
+ newsos6)
+ ;;
+ *nto* | *qnx*)
+ ;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
- sco3.2v5*)
+ rdos*)
;;
solaris*)
- wl='-Wl,'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ wl='-Qoption ld '
+ ;;
+ *)
+ wl='-Wl,'
+ ;;
+ esac
;;
sunos4*)
wl='-Qoption ld '
;;
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ sysv4 | sysv4.2uw2* | sysv4.3*)
wl='-Wl,'
;;
sysv4*MP*)
;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ wl='-Wl,'
+ ;;
+ unicos*)
+ wl='-Wl,'
+ ;;
uts4*)
;;
esac
fi
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_minus_L=no
case "$host_os" in
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
with_gnu_ld=no
fi
;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
openbsd*)
with_gnu_ld=no
;;
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
case "$host_os" in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
fi
;;
amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can use
- # them.
- ld_shlibs=no
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
;;
beos*)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
ld_shlibs=no
fi
;;
+ haiku*)
+ ;;
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
netbsd*)
;;
- solaris* | sysv5*)
- if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
- elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
sunos4*)
hardcode_direct=yes
;;
*)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
esac
- if test "$ld_shlibs" = yes; then
- # Unlike libtool, we use -rpath here, not --rpath, since the documented
- # option of GNU ld is called -rpath, not --rpath.
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ if test "$ld_shlibs" = no; then
+ hardcode_libdir_flag_spec=
fi
else
case "$host_os" in
hardcode_direct=unsupported
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
break
fi
done
+ ;;
esac
fi
hardcode_direct=yes
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- hardcode_direct=yes
+ :
else
# We have old collect2
hardcode_direct=unsupported
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
+ ;;
esac
fi
# Begin _LT_AC_SYS_LIBPATH_AIX.
fi
;;
amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
;;
- bsdi4*)
+ bsdi[45]*)
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
libext=lib
;;
darwin* | rhapsody*)
- if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
- hardcode_direct=no
+ hardcode_direct=no
+ if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
+ :
+ else
+ ld_shlibs=no
fi
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
- freebsd1*)
- ld_shlibs=no
- ;;
- freebsd2.2*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- freebsd2*)
+ freebsd2.[01]*)
hardcode_direct=yes
hardcode_minus_L=yes
;;
- freebsd*)
+ freebsd* | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
# but as the default location of the library.
hardcode_minus_L=yes
;;
- hpux10* | hpux11*)
+ hpux10*)
if test "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=no
- ;;
- ia64*)
- hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+ hpux11*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ case $host_cpu in
+ hppa*64*|ia64*)
hardcode_direct=no
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
;;
*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
+ *nto* | *qnx*)
+ ;;
openbsd*)
- hardcode_direct=yes
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
else
- case "$host_os" in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
+ ld_shlibs=no
fi
;;
os2*)
fi
hardcode_libdir_separator=:
;;
- sco3.2v5*)
- ;;
solaris*)
hardcode_libdir_flag_spec='-R$libdir'
;;
ld_shlibs=yes
fi
;;
- sysv4.2uw2*)
- hardcode_direct=yes
- hardcode_minus_L=no
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
;;
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
- ;;
- sysv5*)
- hardcode_libdir_flag_spec=
+ sysv5* | sco3.2v5* | sco5v6*)
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator=':'
;;
uts4*)
hardcode_libdir_flag_spec='-L$libdir'
fi
# Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec= # the last element of library_names_spec in libtool.m4
libname_spec='lib$name'
case "$host_os" in
aix3*)
+ library_names_spec='$libname.a'
;;
- aix4* | aix5*)
+ aix[4-9]*)
+ library_names_spec='$libname$shrext'
;;
amigaos*)
+ case "$host_cpu" in
+ powerpc*)
+ library_names_spec='$libname$shrext' ;;
+ m68k)
+ library_names_spec='$libname.a' ;;
+ esac
;;
beos*)
+ library_names_spec='$libname$shrext'
;;
- bsdi4*)
+ bsdi[45]*)
+ library_names_spec='$libname$shrext'
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
shrext=.dll
+ library_names_spec='$libname.dll.a $libname.lib'
;;
darwin* | rhapsody*)
shrext=.dylib
+ library_names_spec='$libname$shrext'
;;
dgux*)
+ library_names_spec='$libname$shrext'
;;
- freebsd1*)
+ freebsd[23].*)
+ library_names_spec='$libname$shrext$versuffix'
;;
- freebsd*)
+ freebsd* | dragonfly*)
+ library_names_spec='$libname$shrext'
;;
gnu*)
+ library_names_spec='$libname$shrext'
+ ;;
+ haiku*)
+ library_names_spec='$libname$shrext'
;;
hpux9* | hpux10* | hpux11*)
- case "$host_cpu" in
+ case $host_cpu in
ia64*)
shrext=.so
;;
shrext=.sl
;;
esac
+ library_names_spec='$libname$shrext'
+ ;;
+ interix[3-9]*)
+ library_names_spec='$libname$shrext'
;;
irix5* | irix6* | nonstopux*)
+ library_names_spec='$libname$shrext'
case "$host_os" in
irix5* | nonstopux*)
libsuff= shlibsuff=
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
- linux*)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ knetbsd*-gnu)
+ library_names_spec='$libname$shrext'
;;
netbsd*)
+ library_names_spec='$libname$shrext'
;;
newsos6)
+ library_names_spec='$libname$shrext'
;;
- nto-qnx)
+ *nto* | *qnx*)
+ library_names_spec='$libname$shrext'
;;
openbsd*)
+ library_names_spec='$libname$shrext$versuffix'
;;
os2*)
libname_spec='$name'
shrext=.dll
+ library_names_spec='$libname.a'
;;
osf3* | osf4* | osf5*)
+ library_names_spec='$libname$shrext'
;;
- sco3.2v5*)
+ rdos*)
;;
solaris*)
+ library_names_spec='$libname$shrext'
;;
sunos4*)
+ library_names_spec='$libname$shrext$versuffix'
;;
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ sysv4 | sysv4.3*)
+ library_names_spec='$libname$shrext'
;;
sysv4*MP*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ library_names_spec='$libname$shrext'
+ ;;
+ tpf*)
+ library_names_spec='$libname$shrext'
;;
uts4*)
+ library_names_spec='$libname$shrext'
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
# How to pass a linker flag through the compiler.
wl="$escaped_wl"
# Shared library suffix (normally "so").
shlibext="$shlibext"
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2017-11-23'
+timestamp='2018-05-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
*local*)
# First pass through any local machine types.
- echo $1
+ echo "$1"
exit ;;
* )
exit 1;;
esac
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
- kopensolaris*-gnu* | cloudabi*-eabi* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
+# Split fields of configuration type
+IFS="-" read -r field1 field2 field3 field4 <<EOF
+$1
+EOF
+
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
+ ;;
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ os=$field3-$field4
+ ;;
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+ | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova*)
+ basic_machine=$field1
+ os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ os=$field3
+ ;;
+ esac
+ ;;
+ *-*)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=scout
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=sysv
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=cegcc
+ ;;
+ cray)
+ basic_machine=j90-cray
+ os=unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=unicosmp
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=sysv3
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=hpux
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=mach
+ ;;
+ vsta)
+ basic_machine=i386-unknown
+ os=vsta
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=linux
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=seiux
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=sysv2
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=sysv4
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=solaris2
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=vms
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ os=
+ ;;
+ esac
+ ;;
esac
### Let's recognize common machines as not being operating systems so
### recognize some manufacturers as not being operating systems, so we
### can provide default operating systems below.
case $os in
- -sun*os*)
+ sun*os*)
# Prevent following clause from handling this invalid input.
;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
+ dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* | \
+ att* | 7300* | 3300* | delta* | motorola* | sun[234]* | \
+ unicom* | ibm* | next | hp | isi* | apollo | altos* | \
+ convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* |\
+ c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* | \
+ harris | dolphin | highlevel | gould | cbm | ns | masscomp | \
+ apple | axis | knuth | cray | microblaze*)
os=
basic_machine=$1
;;
- -bluegene*)
- os=-cnk
+ bluegene*)
+ os=cnk
;;
- -sim | -cisco | -oki | -wec | -winbond)
+ sim | cisco | oki | wec | winbond)
os=
basic_machine=$1
;;
- -scout)
+ scout)
;;
- -wrs)
- os=-vxworks
+ wrs)
+ os=vxworks
basic_machine=$1
;;
- -chorusos*)
- os=-chorusos
+ chorusos*)
+ os=chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ chorusrdb)
+ os=chorusrdb
basic_machine=$1
;;
- -hiux*)
- os=-hiuxwe2
+ hiux*)
+ os=hiuxwe2
;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ sco6)
+ os=sco5v6
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ sco5)
+ os=sco3.2v5
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ sco4)
+ os=sco3.2v4
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -sco3.2.[4-9]*)
+ sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -sco3.2v[4-9]*)
+ sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -sco5v6*)
+ sco5v6*)
# Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ sco*)
+ os=sco3.2v2
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ udk*)
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ isc)
+ os=isc2.2
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -clix*)
+ clix*)
basic_machine=clipper-intergraph
;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ isc*)
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
;;
- -lynx*178)
- os=-lynxos178
+ lynx*178)
+ os=lynxos178
;;
- -lynx*5)
- os=-lynxos5
+ lynx*5)
+ os=lynxos5
;;
- -lynx*)
- os=-lynxos
+ lynx*)
+ os=lynxos
;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ptx*)
+ basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
;;
- -psos*)
- os=-psos
+ psos*)
+ os=psos
;;
- -mint | -mint[0-9]*)
+ mint | mint[0-9]*)
basic_machine=m68k-atari
- os=-mint
+ os=mint
;;
esac
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
| avr | avr32 \
| ba \
| be32 | be64 \
| bfin \
- | c4x | c8051 | clipper \
+ | c4x | c8051 | clipper | csky \
| d10v | d30v | dlx | dsp16xx \
| e2k | epiphany \
| fido | fr30 | frv | ft32 \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
+ | nfp \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
+ | pdp10 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pru \
| pyramid \
;;
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
- os=-none
+ os=${os:-none}
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ m9s12z | m68hcs12z | hcs12z | s12z)
+ basic_machine=s12z-unknown
+ os=${os:-none}
;;
ms1)
basic_machine=mt-unknown
;;
-
strongarm | thumb | xscale)
basic_machine=arm-unknown
;;
xgate)
basic_machine=$basic_machine-unknown
- os=-none
+ os=${os:-none}
;;
xscaleeb)
basic_machine=armeb-unknown
i*86 | x86_64)
basic_machine=$basic_machine-pc
;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | cydra-* \
+ | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| e2k-* | elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
+ | nfp-* \
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
abacus)
basic_machine=abacus-unknown
;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
alliant | fx80)
basic_machine=fx80-alliant
;;
altos | altos3068)
basic_machine=m68k-altos
;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
amd64)
basic_machine=x86_64-pc
;;
amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
+ basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
amiga | amiga-*)
basic_machine=m68k-unknown
;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
asmjs)
basic_machine=asmjs-unknown
;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ os=linux
;;
bluegene*)
basic_machine=powerpc-ibm
- os=-cnk
+ os=cnk
;;
c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
c90)
basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
+ os=${os:-unicos}
;;
convex-c1)
basic_machine=c1-convex
- os=-bsd
+ os=bsd
;;
convex-c2)
basic_machine=c2-convex
- os=-bsd
+ os=bsd
;;
convex-c32)
basic_machine=c32-convex
- os=-bsd
+ os=bsd
;;
convex-c34)
basic_machine=c34-convex
- os=-bsd
+ os=bsd
;;
convex-c38)
basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
+ os=bsd
;;
cr16 | cr16-*)
basic_machine=cr16-unknown
- os=-elf
+ os=${os:-elf}
;;
crds | unos)
basic_machine=m68k-crds
;;
crx)
basic_machine=crx-unknown
- os=-elf
+ os=${os:-elf}
;;
da30 | da30-*)
basic_machine=m68k-da30
;;
decsystem10* | dec10*)
basic_machine=pdp10-dec
- os=-tops10
+ os=tops10
;;
decsystem20* | dec20*)
basic_machine=pdp10-dec
- os=-tops20
+ os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
- os=-bosx
+ os=${os:-bosx}
;;
dpx2*)
basic_machine=m68k-bull
- os=-sysv3
+ os=sysv3
;;
e500v[12])
basic_machine=powerpc-unknown
os=$os"spe"
;;
e500v[12]-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
os=$os"spe"
;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
encore | umax | mmax)
basic_machine=ns32k-encore
;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=${os:-bsd}
;;
fx2800)
basic_machine=i860-alliant
genix)
basic_machine=ns32k-ns
;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
h3050r* | hiux*)
basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
+ os=hiuxwe2
;;
hp300-*)
basic_machine=m68k-hp
;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+ os=sysv32
;;
i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+ os=sysv4
;;
i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+ os=sysv
;;
i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
+ basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+ os=solaris2
;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
+ j90 | j90-cray)
+ basic_machine=j90-cray
+ os=${os:-unicos}
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
- -irix*)
+ irix*)
;;
*)
- os=-irix4
+ os=irix4
;;
esac
;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
+ basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
;;
m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
+ basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ os=linux
;;
microblaze*)
basic_machine=microblaze-xilinx
;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
miniframe)
basic_machine=m68000-convergent
;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
- os=-mint
+ os=mint
;;
mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
;;
mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
+ basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
;;
ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
+ basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
;;
news-3600 | risc-news)
basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
+ os=newsos
;;
next | m*-next)
basic_machine=m68k-next
case $os in
- -nextstep* )
+ nextstep* )
;;
- -ns2*)
- os=-nextstep2
+ ns2*)
+ os=nextstep2
;;
*)
- os=-nextstep3
+ os=nextstep3
;;
esac
;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
np1)
basic_machine=np1-gould
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
+ nsv-tandem)
+ basic_machine=nsv-tandem
+ ;;
nsx-tandem)
basic_machine=nsx-tandem
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
- os=-proelf
+ os=proelf
;;
openrisc | openrisc-*)
basic_machine=or32-unknown
;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
+ os=hiuxwe2
;;
parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ os=linux
;;
pbd)
basic_machine=sparc-tti
basic_machine=i386-pc
;;
pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
ppc | ppcbe) basic_machine=powerpc-unknown
;;
ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
rm[46]00)
basic_machine=mips-siemens
;;
s390x | s390x-*)
basic_machine=s390x-ibm
;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
sb1)
basic_machine=mipsisa64sb1-unknown
;;
;;
sde)
basic_machine=mipsisa32-sde
- os=-elf
- ;;
- sei)
- basic_machine=mips-sei
- os=-seiux
+ os=${os:-elf}
;;
sequent)
basic_machine=i386-sequent
;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
sh5el)
basic_machine=sh5le-unknown
;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparclite-wrs | simso-wrs)
+ simso-wrs)
basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
+ os=vxworks
;;
spur)
basic_machine=spur-unknown
st2000)
basic_machine=m68k-tandem
;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
;;
sun2)
basic_machine=m68000-sun
;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
sun3 | sun3-*)
basic_machine=m68k-sun
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
tile*)
basic_machine=$basic_machine-unknown
- os=-linux-gnu
+ os=linux-gnu
;;
tx39)
basic_machine=mipstx39-unknown
tx39el)
basic_machine=mipstx39el-unknown
;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
tower | tower-32)
basic_machine=m68k-ncr
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
vpp*|vx|vx-*)
basic_machine=f301-fujitsu
;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- wasm32)
- basic_machine=wasm32-unknown
- ;;
w65*)
basic_machine=w65-wdc
- os=-none
+ os=none
;;
w89k-*)
basic_machine=hppa1.1-winbond
- os=-proelf
+ os=proelf
;;
x64)
basic_machine=x86_64-pc
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
xps | xps100)
basic_machine=xps100-honeywell
;;
xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
+ basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
;;
none)
basic_machine=none-none
- os=-none
+ os=${os:-none}
;;
# Here we handle the default manufacturer of certain CPU types. It is in
vax)
basic_machine=vax-dec
;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
pdp11)
basic_machine=pdp11-dec
;;
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
- ;;
cydra)
basic_machine=cydra-cydrome
;;
# Make sure to match an already-canonicalized machine name.
;;
*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
;;
*-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
;;
*)
;;
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x"$os" != x"" ]
+if [ x$os != x ]
then
case $os in
# First match some system type aliases that might get confused
# with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
;;
- -solaris1 | -solaris1.*)
+ solaris1 | solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
+ solaris)
+ os=solaris2
;;
- -unixware*)
- os=-sysv4.2uw
+ unixware*)
+ os=sysv4.2uw
;;
- -gnu/linux*)
+ gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+ ;;
# Now accept the basic system types.
# The portable systems comes first.
# Each alternative MUST end in a * to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* | -cloudabi* | -sortix* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+ # sysv* is not here because it comes later, after sysvr4.
+ gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | sco* | esix* | isc* | aix* | cnk* | sunos | sunos[34]*\
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | kopensolaris* | plan9* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
+ | hiux* | knetbsd* | mirbsd* | netbsd* \
+ | bitrig* | openbsd* | solidbsd* | libertybsd* \
+ | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusos* | chorusrdb* | cegcc* | glidix* \
+ | cygwin* | msys* | pe* | psos* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+ | linux-newlib* | linux-musl* | linux-uclibc* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* \
+ | morphos* | superux* | rtmk* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
- -qnx*)
+ qnx*)
case $basic_machine in
x86-* | i*86-*)
;;
*)
- os=-nto$os
+ os=nto-$os
;;
esac
;;
- -nto-qnx*)
+ nto-qnx*)
;;
- -nto*)
+ nto*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ sim | xray | os68k* | v88r* \
+ | windows* | osx | abug | netware* | os9* \
+ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
+ mac*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
- -linux-dietlibc)
- os=-linux-dietlibc
+ linux-dietlibc)
+ os=linux-dietlibc
;;
- -linux*)
+ linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
- -opened*)
- os=-openedition
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
- -os400*)
- os=-os400
+ opened*)
+ os=openedition
;;
- -wince*)
- os=-wince
+ os400*)
+ os=os400
;;
- -osfrose*)
- os=-osfrose
+ wince*)
+ os=wince
;;
- -osf*)
- os=-osf
+ utek*)
+ os=bsd
;;
- -utek*)
- os=-bsd
+ dynix*)
+ os=bsd
;;
- -dynix*)
- os=-bsd
+ acis*)
+ os=aos
;;
- -acis*)
- os=-aos
+ atheos*)
+ os=atheos
;;
- -atheos*)
- os=-atheos
+ syllable*)
+ os=syllable
;;
- -syllable*)
- os=-syllable
- ;;
- -386bsd)
- os=-bsd
+ 386bsd)
+ os=bsd
;;
- -ctix* | -uts*)
- os=-sysv
+ ctix* | uts*)
+ os=sysv
;;
- -nova*)
- os=-rtmk-nova
+ nova*)
+ os=rtmk-nova
;;
- -ns2)
- os=-nextstep2
+ ns2)
+ os=nextstep2
;;
- -nsk*)
- os=-nsk
+ nsk*)
+ os=nsk
;;
# Preserve the version number of sinix5.
- -sinix5.*)
+ sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
- -sinix*)
- os=-sysv4
+ sinix*)
+ os=sysv4
;;
- -tpf*)
- os=-tpf
+ tpf*)
+ os=tpf
;;
- -triton*)
- os=-sysv3
+ triton*)
+ os=sysv3
;;
- -oss*)
- os=-sysv3
+ oss*)
+ os=sysv3
;;
- -svr4)
- os=-sysv4
+ svr4*)
+ os=sysv4
;;
- -svr3)
- os=-sysv3
+ svr3)
+ os=sysv3
;;
- -sysvr4)
- os=-sysv4
+ sysvr4)
+ os=sysv4
;;
- # This must come after -sysvr4.
- -sysv*)
+ # This must come after sysvr4.
+ sysv*)
;;
- -ose*)
- os=-ose
+ ose*)
+ os=ose
;;
- -es1800*)
- os=-ose
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
;;
- -xenix)
- os=-xenix
+ zvmoe)
+ os=zvmoe
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ dicos*)
+ os=dicos
;;
- -aros*)
- os=-aros
- ;;
- -zvmoe)
- os=-zvmoe
- ;;
- -dicos*)
- os=-dicos
- ;;
- -pikeos*)
+ pikeos*)
# Until real need of OS specific support for
# particular features comes up, bare metal
# configurations are quite functional.
case $basic_machine in
arm*)
- os=-eabi
+ os=eabi
;;
*)
- os=-elf
+ os=elf
;;
esac
;;
- -nacl*)
+ nacl*)
+ ;;
+ ios)
;;
- -ios)
+ none)
;;
- -none)
+ *-eabi)
;;
*)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
exit 1
;;
esac
case $basic_machine in
score-*)
- os=-elf
+ os=elf
;;
spu-*)
- os=-elf
+ os=elf
;;
*-acorn)
- os=-riscix1.2
+ os=riscix1.2
;;
arm*-rebel)
- os=-linux
+ os=linux
;;
arm*-semi)
- os=-aout
+ os=aout
;;
c4x-* | tic4x-*)
- os=-coff
+ os=coff
;;
c8051-*)
- os=-elf
+ os=elf
;;
hexagon-*)
- os=-elf
+ os=elf
;;
tic54x-*)
- os=-coff
+ os=coff
;;
tic55x-*)
- os=-coff
+ os=coff
;;
tic6x-*)
- os=-coff
+ os=coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=-tops20
+ os=tops20
;;
pdp11-*)
- os=-none
+ os=none
;;
*-dec | vax-*)
- os=-ultrix4.2
+ os=ultrix4.2
;;
m68*-apollo)
- os=-domain
+ os=domain
;;
i386-sun)
- os=-sunos4.0.2
+ os=sunos4.0.2
;;
m68000-sun)
- os=-sunos3
+ os=sunos3
;;
m68*-cisco)
- os=-aout
+ os=aout
;;
mep-*)
- os=-elf
+ os=elf
;;
mips*-cisco)
- os=-elf
+ os=elf
;;
mips*-*)
- os=-elf
+ os=elf
;;
or32-*)
- os=-coff
+ os=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
+ os=sysv3
;;
sparc-* | *-sun)
- os=-sunos4.1.1
+ os=sunos4.1.1
;;
pru-*)
- os=-elf
+ os=elf
;;
*-be)
- os=-beos
- ;;
- *-haiku)
- os=-haiku
+ os=beos
;;
*-ibm)
- os=-aix
+ os=aix
;;
*-knuth)
- os=-mmixware
+ os=mmixware
;;
*-wec)
- os=-proelf
+ os=proelf
;;
*-winbond)
- os=-proelf
+ os=proelf
;;
*-oki)
- os=-proelf
+ os=proelf
;;
*-hp)
- os=-hpux
+ os=hpux
;;
*-hitachi)
- os=-hiux
+ os=hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
+ os=sysv
;;
*-cbm)
- os=-amigaos
+ os=amigaos
;;
*-dg)
- os=-dgux
+ os=dgux
;;
*-dolphin)
- os=-sysv3
+ os=sysv3
;;
m68k-ccur)
- os=-rtu
+ os=rtu
;;
m88k-omron*)
- os=-luna
+ os=luna
;;
*-next)
- os=-nextstep
+ os=nextstep
;;
*-sequent)
- os=-ptx
+ os=ptx
;;
*-crds)
- os=-unos
+ os=unos
;;
*-ns)
- os=-genix
+ os=genix
;;
i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
+ os=mvs
;;
*-gould)
- os=-sysv
+ os=sysv
;;
*-highlevel)
- os=-bsd
+ os=bsd
;;
*-encore)
- os=-bsd
+ os=bsd
;;
*-sgi)
- os=-irix
+ os=irix
;;
*-siemens)
- os=-sysv4
+ os=sysv4
;;
*-masscomp)
- os=-rtu
+ os=rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
+ os=uxpv
;;
*-rom68k)
- os=-coff
+ os=coff
;;
*-*bug)
- os=-coff
+ os=coff
;;
*-apple)
- os=-macos
+ os=macos
;;
*-atari*)
- os=-mint
+ os=mint
;;
*)
- os=-none
+ os=none
;;
esac
fi
case $basic_machine in
*-unknown)
case $os in
- -riscix*)
+ riscix*)
vendor=acorn
;;
- -sunos*)
+ sunos*)
vendor=sun
;;
- -cnk*|-aix*)
+ cnk*|-aix*)
vendor=ibm
;;
- -beos*)
+ beos*)
vendor=be
;;
- -hpux*)
+ hpux*)
vendor=hp
;;
- -mpeix*)
+ mpeix*)
vendor=hp
;;
- -hiux*)
+ hiux*)
vendor=hitachi
;;
- -unos*)
+ unos*)
vendor=crds
;;
- -dgux*)
+ dgux*)
vendor=dg
;;
- -luna*)
+ luna*)
vendor=omron
;;
- -genix*)
+ genix*)
vendor=ns
;;
- -mvs* | -opened*)
+ mvs* | opened*)
vendor=ibm
;;
- -os400*)
+ os400*)
vendor=ibm
;;
- -ptx*)
+ ptx*)
vendor=sequent
;;
- -tpf*)
+ tpf*)
vendor=ibm
;;
- -vxsim* | -vxworks* | -windiss*)
+ vxsim* | vxworks* | windiss*)
vendor=wrs
;;
- -aux*)
+ aux*)
vendor=apple
;;
- -hms*)
+ hms*)
vendor=hitachi
;;
- -mpw* | -macos*)
+ mpw* | macos*)
vendor=apple
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
vendor=atari
;;
- -vos*)
+ vos*)
vendor=stratus
;;
esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
;;
esac
-echo $basic_machine$os
+echo "$basic_machine-$os"
exit
# Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
case "$host_os" in
hpux*|darwin*|macosx*|linux*|solaris2*)
if [ -z "$uninstall" ]; then
- chmod 555 ${INSTALLDIR}/${LIBNAME}
+ chmod 755 ${INSTALLDIR}/${LIBNAME}
fi ;;
cygwin*|mingw*)
IMPLIBNAME=`echo ${LIBNAME} \
#endif
if (rl_end < 0)
- rl_end = 0;
+ rl_end = 0;
#else
point = rl_point + count;
+#endif
+
if (point > rl_end)
point = rl_end;
+ return (point);
+}
+
+int
+_rl_backward_char_internal (int count)
+{
+ int point;
+
+ point = rl_point;
+#if defined (HANDLE_MULTIBYTE)
+ if (count > 0)
+ {
+ while (count > 0 && point > 0)
+ {
+ point = _rl_find_prev_mbchar (rl_line_buffer, point, MB_FIND_NONZERO);
+ count--;
+ }
+ if (count > 0)
+ return 0; /* XXX - rl_ding() here? */
+ }
+#else
+ if (count > 0)
+ point -= count;
#endif
+ if (point < 0)
+ point = 0;
return (point);
}
extern void _hs_replace_history_data PARAMS((int, histdata_t *, histdata_t *));
+extern HIST_ENTRY *_rl_saved_line_for_history;
+
/* Non-zero tells rl_delete_text and rl_insert_text to not add to
the undo list. */
int _rl_doing_an_undo = 0;
int
rl_do_undo (void)
{
- UNDO_LIST *release;
+ UNDO_LIST *release, *search;
int waiting_for_begin, start, end;
HIST_ENTRY *cur, *temp;
release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
+ release->next = 0; /* XXX */
/* If we are editing a history entry, make sure the change is replicated
in the history entry's line */
xfree (temp);
}
+ /* Make sure there aren't any history entries with that undo list */
_hs_replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
+ /* And make sure this list isn't anywhere in the saved line for history */
+ if (_rl_saved_line_for_history && _rl_saved_line_for_history->data)
+ {
+ /* Brute force; no finesse here */
+ search = (UNDO_LIST *)_rl_saved_line_for_history->data;
+ if (search == release)
+ _rl_saved_line_for_history->data = rl_undo_list;
+ else
+ {
+ while (search->next)
+ {
+ if (search->next == release)
+ {
+ search->next = rl_undo_list;
+ break;
+ }
+ search = search->next;
+ }
+ }
+ }
+
xfree (release);
}
while (waiting_for_begin);
/* vi_mode.c -- A vi emulation mode for Bash.
Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
#define member(c, s) ((c) ? (char *)strchr ((s), (c)) != (char *)NULL : 0)
#endif
+/* Increment START to the next character in RL_LINE_BUFFER, handling multibyte chars */
+#if defined (HANDLE_MULTIBYTE)
+#define INCREMENT_POS(start) \
+ do { \
+ if (MB_CUR_MAX == 1 || rl_byte_oriented) \
+ start++; \
+ else \
+ start = _rl_find_next_mbchar (rl_line_buffer, start, 1, MB_FIND_ANY); \
+ } while (0)
+#else /* !HANDLE_MULTIBYTE */
+#define INCREMENT_POS(start) (start)++
+#endif /* !HANDLE_MULTIBYTE */
+
/* This is global so other parts of the code can check whether the last
command was a text modification command. */
int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
static void vi_save_insert_buffer PARAMS ((int, int));
-static void _rl_vi_backup PARAMS((void));
+static inline void _rl_vi_backup PARAMS((void));
static int _rl_vi_arg_dispatch PARAMS((int));
static int rl_digit_loop1 PARAMS((void));
static int _rl_vi_set_mark PARAMS((void));
static int _rl_vi_goto_mark PARAMS((void));
+static inline int _rl_vi_advance_point PARAMS((void));
+static inline int _rl_vi_backup_point PARAMS((void));
+
static void _rl_vi_append_forward PARAMS((int));
static int _rl_vi_callback_getchar PARAMS((char *, int));
{
if (!whitespace (rl_line_buffer[rl_point + 1]))
rl_vi_end_word (1, 'E');
- rl_point++;
+ _rl_vi_advance_point ();
}
if (key == '*')
return (0);
}
+static inline int
+_rl_vi_advance_point (void)
+{
+ int point;
+
+ point = rl_point;
+ if (rl_point < rl_end)
+#if defined (HANDLE_MULTIBYTE)
+ {
+ if (MB_CUR_MAX == 1 || rl_byte_oriented)
+ rl_point++;
+ else
+ {
+ point = rl_point;
+ rl_point = _rl_forward_char_internal (1);
+ if (point == rl_point || rl_point > rl_end)
+ rl_point = rl_end;
+ }
+ }
+#else
+ rl_point++;
+#endif
+
+ return point;
+}
+
+/* Move the cursor back one character. */
+static inline void
+_rl_vi_backup (void)
+{
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
+ else
+ rl_point--;
+}
+
+/* Move the point back one character, returning the starting value and not
+ doing anything at the beginning of the line */
+static inline int
+_rl_vi_backup_point (void)
+{
+ int point;
+
+ point = rl_point;
+ if (rl_point > 0)
+#if defined (HANDLE_MULTIBYTE)
+ {
+ if (MB_CUR_MAX == 1 || rl_byte_oriented)
+ rl_point--;
+ else
+ {
+ point = rl_point;
+ rl_point = _rl_backward_char_internal (1);
+ if (rl_point < 0)
+ rl_point = 0; /* XXX - not really necessary */
+ }
+ }
+#else
+ rl_point--;
+#endif
+ return point;
+}
+
/* Move to the end of the ?next? word. */
int
rl_vi_end_word (int count, int key)
{
/* Skip until whitespace. */
while (!whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
+ _rl_vi_advance_point ();
/* Now skip whitespace. */
while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
+ _rl_vi_advance_point ();
}
return (0);
}
rl_point--;
while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
+ _rl_vi_backup_point ();
if (rl_point > 0)
{
- while (--rl_point >= 0 && !whitespace (rl_line_buffer[rl_point]));
- rl_point++;
+ do
+ _rl_vi_backup_point ();
+ while (rl_point > 0 && !whitespace (rl_line_buffer[rl_point]));
+ if (rl_point > 0) /* hit whitespace */
+ rl_point++;
+
+ if (rl_point < 0)
+ rl_point = 0;
}
}
return (0);
int
rl_vi_eWord (int count, int ignore)
{
+ int opoint;
+
while (count-- && rl_point < (rl_end - 1))
{
- if (!whitespace (rl_line_buffer[rl_point]))
- rl_point++;
+ if (whitespace (rl_line_buffer[rl_point]) == 0)
+ _rl_vi_advance_point ();
/* Move to the next non-whitespace character (to the start of the
next word). */
while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
+ _rl_vi_advance_point ();
if (rl_point && rl_point < rl_end)
{
+ opoint = rl_point;
+
/* Skip whitespace. */
while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
+ opoint = _rl_vi_advance_point (); /* XXX - why? */
/* Skip until whitespace. */
while (rl_point < rl_end && !whitespace (rl_line_buffer[rl_point]))
- rl_point++;
+ opoint = _rl_vi_advance_point ();
/* Move back to the last character of the word. */
- rl_point--;
+ rl_point = opoint;
}
}
return (0);
int
rl_vi_fword (int count, int ignore)
{
+ int opoint;
+
while (count-- && rl_point < (rl_end - 1))
{
/* Move to white space (really non-identifer). */
if (_rl_isident (rl_line_buffer[rl_point]))
{
while (_rl_isident (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
+ _rl_vi_advance_point ();
}
else /* if (!whitespace (rl_line_buffer[rl_point])) */
{
while (!_rl_isident (rl_line_buffer[rl_point]) &&
!whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
+ _rl_vi_advance_point ();
}
+ opoint = rl_point;
+
/* Move past whitespace. */
while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
+ opoint = _rl_vi_advance_point ();
}
return (0);
}
int
rl_vi_bword (int count, int ignore)
{
+ int opoint;
+
while (count-- && rl_point > 0)
{
- int last_is_ident;
+ int prev_is_ident, cur_is_ident;
/* If we are at the start of a word, move back to whitespace
so we will go back to the start of the previous word. */
back so we don't get messed up by the rl_point++ down there in
the while loop. Without this code, words like `l;' screw up the
function. */
- last_is_ident = _rl_isident (rl_line_buffer[rl_point - 1]);
- if ((_rl_isident (rl_line_buffer[rl_point]) && !last_is_ident) ||
- (!_rl_isident (rl_line_buffer[rl_point]) && last_is_ident))
- rl_point--;
+ cur_is_ident = _rl_isident (rl_line_buffer[rl_point]);
+ opoint = _rl_vi_backup_point ();
+ prev_is_ident = _rl_isident (rl_line_buffer[rl_point]);
+ if ((cur_is_ident && !prev_is_ident) || (!cur_is_ident && prev_is_ident))
+ ; /* leave point alone, we backed it up one character */
+ else
+ rl_point = opoint;
while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
+ _rl_vi_backup_point ();
if (rl_point > 0)
{
+ opoint = rl_point;
if (_rl_isident (rl_line_buffer[rl_point]))
- while (--rl_point >= 0 && _rl_isident (rl_line_buffer[rl_point]));
+ do
+ opoint = _rl_vi_backup_point ();
+ while (rl_point > 0 && _rl_isident (rl_line_buffer[rl_point]));
else
- while (--rl_point >= 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
+ do
+ opoint = _rl_vi_backup_point ();
+ while (rl_point > 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
!whitespace (rl_line_buffer[rl_point]));
- rl_point++;
+
+ if (rl_point > 0)
+ rl_point = opoint;
+
+ if (rl_point < 0)
+ rl_point = 0;
}
}
return (0);
int
rl_vi_eword (int count, int ignore)
{
- while (count-- && rl_point < rl_end - 1)
+ int opoint;
+
+ while (count-- && rl_point < (rl_end - 1))
{
- if (!whitespace (rl_line_buffer[rl_point]))
- rl_point++;
+ if (whitespace (rl_line_buffer[rl_point]) == 0)
+ _rl_vi_advance_point ();
while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
+ _rl_vi_advance_point ();
+ opoint = rl_point;
if (rl_point < rl_end)
{
if (_rl_isident (rl_line_buffer[rl_point]))
- while (++rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
+ do
+ {
+ opoint = _rl_vi_advance_point ();
+ }
+ while (rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
else
- while (++rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
+ do
+ {
+ opoint = _rl_vi_advance_point ();
+ }
+ while (rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
&& !whitespace (rl_line_buffer[rl_point]));
}
- rl_point--;
+ rl_point = opoint;
}
return (0);
}
static void
_rl_vi_append_forward (int key)
{
- int point;
-
- if (rl_point < rl_end)
- {
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- rl_point++;
- else
- {
- point = rl_point;
- rl_point = _rl_forward_char_internal (1);
- if (point == rl_point)
- rl_point = rl_end;
- }
- }
+ _rl_vi_advance_point ();
}
int
rl_begin_undo_group ();
rl_vi_delete (1, 0);
if (rl_point < p) /* Did we retreat at EOL? */
- rl_point++; /* XXX - should we advance more than 1 for mbchar? */
+ _rl_vi_advance_point ();
rl_insert_text (mb);
rl_end_undo_group ();
rl_vi_check ();
return (0);
}
-/* Move the cursor back one character. */
-static void
-_rl_vi_backup (void)
-{
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
- rl_point--;
-}
-
/* Move the cursor back one character if you're at the end of the line */
int
rl_vi_check (void)
{
if (rl_point && rl_point == rl_end)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
- rl_point--;
- }
+ _rl_vi_backup ();
return (0);
}
if (count > rl_end)
rl_end_of_line (1, key);
else
- rl_point = count - 1;
+ {
+ rl_point = 0;
+ rl_point = _rl_forward_char_internal (count - 1);
+ }
return (0);
}
non-whitespace character, move back one (presumably to whitespace). */
if ((_rl_to_upper (c) == 'W') && rl_point < rl_end && rl_point > rl_mark &&
!whitespace (rl_line_buffer[rl_point]))
- rl_point--;
+ rl_point--; /* XXX */
/* If cw or cW, back up to the end of a word, so the behaviour of ce
or cE is the actual result. Brute-force, no subtlety. */
/* Posix.2 says that if cw or cW moves the cursor towards the end of
the line, the character under the cursor should be deleted. */
if (rl_point == rl_mark)
- rl_point++;
+ _rl_vi_advance_point ();
else
{
/* Move past the end of the word so that the kill doesn't
remove the last letter of the previous word. Only do this
if we are not at the end of the line. */
if (rl_point >= 0 && rl_point < (rl_end - 1) && !whitespace (rl_line_buffer[rl_point]))
- rl_point++;
+ _rl_vi_advance_point ();
}
}
mark. */
if (((strchr (" l|h^0bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
(rl_mark < rl_end))
- rl_mark++;
+ INCREMENT_POS (rl_mark);
rl_kill_text (rl_point, rl_mark);
return (0);
and already leave the mark at the correct location. */
if (((strchr (" l|hwW^0bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
(rl_mark < rl_end))
- rl_mark++;
+ INCREMENT_POS (rl_mark);
/* The cursor never moves with c[wW]. */
if ((_rl_to_upper (m->motion) == 'W') && rl_point < m->start)
mark. */
if (((strchr (" l|h^0%bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
(rl_mark < rl_end))
- rl_mark++;
+ INCREMENT_POS (rl_mark);
rl_begin_undo_group ();
rl_kill_text (rl_point, rl_mark);
while (rl_point && vi_unix_word_boundary (rl_line_buffer[rl_point - 1]))
rl_point--;
else if (rl_point > 0 && vi_unix_word_boundary (rl_line_buffer[rl_point]) == 0)
- while (rl_point && (vi_unix_word_boundary (rl_line_buffer[rl_point - 1]) == 0))
- rl_point--;
+ while (rl_point > 0 && (vi_unix_word_boundary (rl_line_buffer[rl_point - 1]) == 0))
+ _rl_vi_backup_point ();
}
rl_kill_text (orig_point, rl_point);
{
while (rl_point < rl_end && rl_line_buffer[rl_point] != ' ' &&
rl_line_buffer[rl_point] != ';')
- rl_point++;
+ _rl_vi_advance_point ();
}
else if (rl_line_buffer[rl_point - 1] == ';')
{