summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2011-11-23 19:16:49 -0500
committerChet Ramey <chet.ramey@case.edu>2011-11-23 19:16:49 -0500
commit603281bd9a333a5e8850ac78f00d2a964c3213de (patch)
treea914f2e89dcdc206c2e8c365c55daa72f229ff6c
parent0a140cd616652ab2b0c99bd1d134824e46862106 (diff)
downloadreadline-603281bd9a333a5e8850ac78f00d2a964c3213de.tar.gz
Readline-5.2 import
-rw-r--r--CHANGELOG40
-rw-r--r--CHANGES74
-rw-r--r--INSTALL2
-rw-r--r--NEWS35
-rw-r--r--README4
-rw-r--r--aclocal.m482
-rw-r--r--bind.c94
-rw-r--r--callback.c120
-rw-r--r--complete.c38
-rw-r--r--config.h.in36
-rwxr-xr-xconfigure600
-rw-r--r--configure.in7
-rw-r--r--display.c210
-rw-r--r--doc/history.dvibin79896 -> 79844 bytes
-rw-r--r--doc/history.html6
-rw-r--r--doc/history.info54
-rw-r--r--doc/history.ps47
-rw-r--r--doc/history.texi4
-rw-r--r--doc/hstech.texi2
-rw-r--r--doc/hsuser.texi2
-rw-r--r--doc/readline.021
-rw-r--r--doc/readline.38
-rw-r--r--doc/readline.dvibin277700 -> 278256 bytes
-rw-r--r--doc/readline.html29
-rw-r--r--doc/readline.info182
-rw-r--r--doc/readline.ps1541
-rw-r--r--doc/readline_3.ps397
-rw-r--r--doc/rlman.texi4
-rw-r--r--doc/rltech.texi11
-rw-r--r--doc/rluser.texi14
-rw-r--r--doc/rluserman.dvibin92872 -> 93076 bytes
-rw-r--r--doc/rluserman.html18
-rw-r--r--doc/rluserman.info70
-rw-r--r--doc/rluserman.ps1323
-rw-r--r--doc/rluserman.texi4
-rw-r--r--doc/version.texi12
-rw-r--r--examples/excallback.c3
-rw-r--r--examples/rlfe/Makefile.in2
-rw-r--r--histexpand.c12
-rw-r--r--histfile.c6
-rw-r--r--history.c87
-rw-r--r--input.c27
-rw-r--r--isearch.c4
-rw-r--r--kill.c1
-rw-r--r--macro.c2
-rw-r--r--misc.c2
-rw-r--r--readline.c19
-rw-r--r--readline.h8
-rw-r--r--rlconf.h5
-rw-r--r--rlmbutil.h13
-rw-r--r--rlprivate.h5
-rw-r--r--rltty.c1
-rw-r--r--search.c3
-rw-r--r--signals.c42
-rwxr-xr-xsupport/shlib-install3
-rwxr-xr-xsupport/shobj-conf17
-rw-r--r--terminal.c55
-rw-r--r--text.c30
-rw-r--r--tilde.c10
-rw-r--r--undo.c74
-rw-r--r--vi_mode.c61
61 files changed, 3323 insertions, 2260 deletions
diff --git a/CHANGELOG b/CHANGELOG
index b6499c3..c64d959 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -918,3 +918,43 @@ configure.in
- changed release status to `release'
[readline-5.1 frozen]
+
+ 12/9
+ ----
+[readline-5.1 released]
+
+ 12/14
+ -----
+examples/rlfe/Makefile.in
+ - add @LIBS@ to LIBS assignment to pick up extra libraries from
+ configure
+
+ 1/3/2006
+ --------
+support/shlib-install
+ - Install shared libraries with execute bit set on Linux
+
+ 6/9
+ ---
+[readline-5.2-alpha frozen]
+
+ 6/26
+ ----
+configure.in
+ - set CROSS_COMPILE to the empty string by default, so we don't inherit
+ a random value from the environment
+
+ 7/8
+ ---
+[readline-5.2-alpha released]
+
+
+[readline-5.2-beta released]
+
+ 9/12
+ ----
+config.h.in
+ - add defines for wcscoll, iswctype, iswupper, iswlower, towupper,
+ towlower functions
+ - replace define for wctomb with one for wcrtomb
+ - add defines for wchar_t, wint_t, wctype_t types
diff --git a/CHANGES b/CHANGES
index 1ba0c12..87e01e1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,77 @@
+This document details the changes between this version, readline-5.2,
+and the previous version, readline-5.1.
+
+1. Changes to Readline
+
+a. Fixed a problem that caused segmentation faults when using readline in
+ callback mode and typing consecutive DEL characters on an empty line.
+
+b. Fixed several redisplay problems with multibyte characters, all having to
+ do with the different code paths and variable meanings between single-byte
+ and multibyte character redisplay.
+
+c. Fixed a problem with key sequence translation when presented with the
+ sequence \M-\C-x.
+
+d. Fixed a problem that prevented the `a' command in vi mode from being
+ undone and redone properly.
+
+e. Fixed a problem that prevented empty inserts in vi mode from being undone
+ properly.
+
+f. Fixed a problem that caused readline to initialize with an incorrect idea
+ of whether or not the terminal can autowrap.
+
+g. Fixed output of key bindings (like bash `bind -p') to honor the setting of
+ convert-meta and use \e where appropriate.
+
+h. Changed the default filename completion function to call the filename
+ dequoting function if the directory completion hook isn't set. This means
+ that any directory completion hooks need to dequote the directory name,
+ since application-specific hooks need to know how the word was quoted,
+ even if no other changes are made.
+
+i. Fixed a bug with creating the prompt for a non-interactive search string
+ when there are non-printing characters in the primary prompt.
+
+j. Fixed a bug that caused prompts with invisible characters to be redrawn
+ multiple times in a multibyte locale.
+
+k. Fixed a bug that could cause the key sequence scanning code to return the
+ wrong function.
+
+l. Fixed a problem with the callback interface that caused it to fail when
+ using multi-character keyboard macros.
+
+m. Fixed a bug that could cause a core dump when an edited history entry was
+ re-executed under certain conditions.
+
+n. Fixed a bug that caused readline to reference freed memory when attmpting
+ to display a portion of the prompt.
+
+o. Fixed a bug with prompt redisplay in a multi-byte locale to avoid redrawing
+ the prompt and input line multiple times.
+
+p. Fixed history expansion to not be confused by here-string redirection.
+
+q. Readline no longer treats read errors by converting them to newlines, as
+ it does with EOF. This caused partial lines to be returned from readline().
+
+r. Fixed a redisplay bug that occurred in multibyte-capable locales when the
+ prompt was one character longer than the screen width.
+
+2. New Features in Readline
+
+a. Calling applications can now set the keyboard timeout to 0, allowing
+ poll-like behavior.
+
+b. The value of SYS_INPUTRC (configurable at compilation time) is now used as
+ the default last-ditch startup file.
+
+c. The history file reading functions now allow windows-like \r\n line
+ terminators.
+
+-------------------------------------------------------------------------------
This document details the changes between this version, readline-5.1,
and the previous version, readline-5.0.
diff --git a/INSTALL b/INSTALL
index 1a73c77..f360b9e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
Basic Installation
==================
-These are installation instructions for Readline-5.1.
+These are installation instructions for Readline-5.2.
The simplest way to compile readline is:
diff --git a/NEWS b/NEWS
index c5e67dc..96711a0 100644
--- a/NEWS
+++ b/NEWS
@@ -1,32 +1,13 @@
-This is a terse description of the new features added to readline-5.1 since
-the release of readline-5.0.
+This is a terse description of the new features added to readline-5.2 since
+the release of readline-5.1.
1. New Features in Readline
-a. The key sequence sent by the keypad `delete' key is now automatically
- bound to delete-char.
+a. Calling applications can now set the keyboard timeout to 0, allowing
+ poll-like behavior.
-b. A negative argument to menu-complete now cycles backward through the
- completion list.
+b. The value of SYS_INPUTRC (configurable at compilation time) is now used as
+ the default last-ditch startup file.
-c. A new bindable readline variable: bind-tty-special-chars. If non-zero,
- readline will bind the terminal special characters to their readline
- equivalents when it's called (on by default).
-
-d. New bindable command: vi-rubout. Saves deleted text for possible
- reinsertion, as with any vi-mode `text modification' command; `X' is bound
- to this in vi command mode.
-
-e. If the rl_completion_query_items is set to a value < 0, readline never
- asks the user whether or not to view the possible completions.
-
-f. New application-callable auxiliary function, rl_variable_value, returns
- a string corresponding to a readline variable's value.
-
-g. When parsing inputrc files and variable binding commands, the parser
- strips trailing whitespace from values assigned to boolean variables
- before checking them.
-
-h. A new external application-controllable variable that allows the LINES
- and COLUMNS environment variables to set the window size regardless of
- what the kernel returns.
+c. The history file reading functions now allow windows-like \r\n line
+ terminators.
diff --git a/README b/README
index 8dd09cc..8da9962 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
Introduction
============
-This is the Gnu Readline library, version 5.1.
+This is the Gnu Readline library, version 5.2.
The Readline library provides a set of functions for use by applications
that allow users to edit command lines as they are typed in. Both
@@ -183,4 +183,4 @@ list (mirrored to the Usenet newsgroup gnu.bash.bug) often contains
Readline bug reports and fixes.
Chet Ramey
-chet@po.cwru.edu
+chet.ramey@case.edu
diff --git a/aclocal.m4 b/aclocal.m4
index 8a70084..eda151c 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -933,7 +933,7 @@ AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
fi
])
-AC_DEFUN(BASH_CHECK_LIB_TERMCAP,
+AC_DEFUN([BASH_CHECK_LIB_TERMCAP],
[
if test "X$bash_cv_termcap_lib" = "X"; then
_bash_needmsg=yes
@@ -1540,20 +1540,24 @@ fi
AC_DEFUN(BASH_CHECK_DEV_FD,
[AC_MSG_CHECKING(whether /dev/fd is available)
AC_CACHE_VAL(bash_cv_dev_fd,
-[if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then
+[bash_cv_dev_fd=""
+if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then
# check for systems like FreeBSD 5 that only provide /dev/fd/[012]
- exec 3<&0
+ exec 3</dev/null
if test -r /dev/fd/3; then
bash_cv_dev_fd=standard
else
bash_cv_dev_fd=absent
fi
exec 3<&-
- elif test -d /proc/self/fd && test -r /proc/self/fd/0 < /dev/null; then
- bash_cv_dev_fd=whacky
- else
- bash_cv_dev_fd=absent
- fi
+fi
+if test -z "$bash_cv_dev_fd" ; then
+ if test -d /proc/self/fd && test -r /proc/self/fd/0 < /dev/null; then
+ bash_cv_dev_fd=whacky
+ else
+ bash_cv_dev_fd=absent
+ fi
+fi
])
AC_MSG_RESULT($bash_cv_dev_fd)
if test $bash_cv_dev_fd = "standard"; then
@@ -1667,6 +1671,8 @@ fi
dnl
dnl check for availability of multibyte characters and functions
dnl
+dnl geez, I wish I didn't have to check for all of this stuff separately
+dnl
AC_DEFUN(BASH_CHECK_MULTIBYTE,
[
AC_CHECK_HEADERS(wctype.h)
@@ -1674,23 +1680,22 @@ AC_CHECK_HEADERS(wchar.h)
AC_CHECK_HEADERS(langinfo.h)
AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
-AC_CHECK_FUNC(mbrtowc, AC_DEFINE(HAVE_MBRTOWC))
AC_CHECK_FUNC(mbrlen, AC_DEFINE(HAVE_MBRLEN))
-AC_CHECK_FUNC(wctomb, AC_DEFINE(HAVE_WCTOMB))
-AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
+
+AC_CHECK_FUNC(wcrtomb, AC_DEFINE(HAVE_WCRTOMB))
+AC_CHECK_FUNC(wcscoll, AC_DEFINE(HAVE_WCSCOLL))
AC_CHECK_FUNC(wcsdup, AC_DEFINE(HAVE_WCSDUP))
+AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
+AC_CHECK_FUNC(wctype, AC_DEFINE(HAVE_WCTYPE))
-AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
-[AC_TRY_COMPILE([
-#include <wchar.h>], [
- mbstate_t ps;
- mbstate_t *psp;
- psp = (mbstate_t *)0;
-], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
-if test $bash_cv_have_mbstate_t = yes; then
+dnl checks for both mbrtowc and mbstate_t
+AC_FUNC_MBRTOWC
+if test $ac_cv_func_mbrtowc = yes; then
AC_DEFINE(HAVE_MBSTATE_T)
fi
+AC_CHECK_FUNCS(iswlower iswupper towlower towupper iswctype)
+
AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
[AC_TRY_LINK(
[#include <langinfo.h>],
@@ -1700,6 +1705,43 @@ if test $bash_cv_langinfo_codeset = yes; then
AC_DEFINE(HAVE_LANGINFO_CODESET)
fi
+dnl check for wchar_t in <wchar.h>
+AC_CACHE_CHECK([for wchar_t in wchar.h], bash_cv_type_wchar_t,
+[AC_TRY_COMPILE(
+[#include <wchar.h>
+],
+[
+ wchar_t foo;
+ foo = 0;
+], bash_cv_type_wchar_t=yes, bash_cv_type_wchar_t=no)])
+if test $bash_cv_type_wchar_t = yes; then
+ AC_DEFINE(HAVE_WCHAR_T, 1, [systems should define this type here])
+fi
+
+dnl check for wctype_t in <wctype.h>
+AC_CACHE_CHECK([for wctype_t in wctype.h], bash_cv_type_wctype_t,
+[AC_TRY_COMPILE(
+[#include <wctype.h>],
+[
+ wctype_t foo;
+ foo = 0;
+], bash_cv_type_wctype_t=yes, bash_cv_type_wctype_t=no)])
+if test $bash_cv_type_wctype_t = yes; then
+ AC_DEFINE(HAVE_WCTYPE_T, 1, [systems should define this type here])
+fi
+
+dnl check for wint_t in <wctype.h>
+AC_CACHE_CHECK([for wint_t in wctype.h], bash_cv_type_wint_t,
+[AC_TRY_COMPILE(
+[#include <wctype.h>],
+[
+ wint_t foo;
+ foo = 0;
+], bash_cv_type_wint_t=yes, bash_cv_type_wint_t=no)])
+if test $bash_cv_type_wint_t = yes; then
+ AC_DEFINE(HAVE_WINT_T, 1, [systems should define this type here])
+fi
+
])
dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
@@ -1707,7 +1749,7 @@ dnl require:
dnl AC_PROG_CC
dnl BASH_CHECK_LIB_TERMCAP
-AC_DEFUN(RL_LIB_READLINE_VERSION,
+AC_DEFUN([RL_LIB_READLINE_VERSION],
[
AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
diff --git a/bind.c b/bind.c
index 7559d32..08c906b 100644
--- a/bind.c
+++ b/bind.c
@@ -1,6 +1,6 @@
/* bind.c -- key binding and startup file support for the readline library. */
-/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -370,7 +370,10 @@ rl_generic_bind (type, keyseq, data, map)
ic = uc;
if (ic < 0 || ic >= KEYMAP_SIZE)
- return -1;
+ {
+ free (keys);
+ return -1;
+ }
if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
{
@@ -462,12 +465,21 @@ rl_translate_keyseq (seq, array, len)
}
else if (c == 'M')
{
- i++;
- /* XXX - should obey convert-meta setting? */
+ i++; /* seq[i] == '-' */
+ /* XXX - obey convert-meta setting */
if (_rl_convert_meta_chars_to_ascii && _rl_keymap[ESC].type == ISKMAP)
array[l++] = ESC; /* ESC is meta-prefix */
+ else if (seq[i+1] == '\\' && seq[i+2] == 'C' && seq[i+3] == '-')
+ {
+ i += 4;
+ temp = (seq[i] == '?') ? RUBOUT : CTRL (_rl_to_upper (seq[i]));
+ array[l++] = META (temp);
+ }
else
{
+ /* This doesn't yet handle things like \M-\a, which may
+ or may not have any reasonable meaning. You're
+ probably better off using straight octal or hex. */
i++;
array[l++] = META (seq[i]);
}
@@ -565,6 +577,11 @@ rl_untranslate_keyseq (seq)
kseq[i++] = '-';
c = UNMETA (c);
}
+ else if (c == ESC)
+ {
+ kseq[i++] = '\\';
+ c = 'e';
+ }
else if (CTRL_CHAR (c))
{
kseq[i++] = '\\';
@@ -613,7 +630,12 @@ _rl_untranslate_macro_value (seq)
*r++ = '-';
c = UNMETA (c);
}
- else if (CTRL_CHAR (c) && c != ESC)
+ else if (c == ESC)
+ {
+ *r++ = '\\';
+ c = 'e';
+ }
+ else if (CTRL_CHAR (c))
{
*r++ = '\\';
*r++ = 'C';
@@ -672,7 +694,7 @@ rl_function_of_keyseq (keyseq, map, type)
{
register int i;
- if (!map)
+ if (map == 0)
map = _rl_keymap;
for (i = 0; keyseq && keyseq[i]; i++)
@@ -681,25 +703,27 @@ rl_function_of_keyseq (keyseq, map, type)
if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
{
- if (map[ESC].type != ISKMAP)
+ if (map[ESC].type == ISKMAP)
+ {
+ map = FUNCTION_TO_KEYMAP (map, ESC);
+ ic = UNMETA (ic);
+ }
+ /* XXX - should we just return NULL here, since this obviously
+ doesn't match? */
+ else
{
if (type)
*type = map[ESC].type;
return (map[ESC].function);
}
- else
- {
- map = FUNCTION_TO_KEYMAP (map, ESC);
- ic = UNMETA (ic);
- }
}
if (map[ic].type == ISKMAP)
{
/* If this is the last key in the key sequence, return the
map. */
- if (!keyseq[i + 1])
+ if (keyseq[i + 1] == '\0')
{
if (type)
*type = ISKMAP;
@@ -709,7 +733,12 @@ rl_function_of_keyseq (keyseq, map, type)
else
map = FUNCTION_TO_KEYMAP (map, ic);
}
- else
+ /* If we're not at the end of the key sequence, and the current key
+ is bound to something other than a keymap, then the entire key
+ sequence is not bound. */
+ else if (map[ic].type != ISKMAP && keyseq[i+1])
+ return ((rl_command_func_t *)NULL);
+ else /* map[ic].type != ISKMAP && keyseq[i+1] == 0 */
{
if (type)
*type = map[ic].type;
@@ -791,6 +820,7 @@ rl_re_read_init_file (count, ignore)
1. the filename used for the previous call
2. the value of the shell variable `INPUTRC'
3. ~/.inputrc
+ 4. /etc/inputrc
If the file existed and could be opened and read, 0 is returned,
otherwise errno is returned. */
int
@@ -799,17 +829,18 @@ rl_read_init_file (filename)
{
/* Default the filename. */
if (filename == 0)
+ filename = last_readline_init_file;
+ if (filename == 0)
+ filename = sh_get_env_value ("INPUTRC");
+ if (filename == 0 || *filename == 0)
{
- filename = last_readline_init_file;
- if (filename == 0)
- filename = sh_get_env_value ("INPUTRC");
- if (filename == 0)
- filename = DEFAULT_INPUTRC;
+ filename = DEFAULT_INPUTRC;
+ /* Try to read DEFAULT_INPUTRC; fall back to SYS_INPUTRC on failure */
+ if (_rl_read_init_file (filename, 0) == 0)
+ return 0;
+ filename = SYS_INPUTRC;
}
- if (*filename == 0)
- filename = DEFAULT_INPUTRC;
-
#if defined (__MSDOS__)
if (_rl_read_init_file (filename, 0) == 0)
return 0;
@@ -1506,8 +1537,6 @@ rl_variable_value (name)
const char *name;
{
register int i;
- int v;
- char *ret;
/* Check for simple variables first. */
i = find_boolean_var (name);
@@ -1948,12 +1977,16 @@ rl_invoking_keyseqs_in_map (function, map)
char *keyname = (char *)xmalloc (6 + strlen (seqs[i]));
if (key == ESC)
-#if 0
- sprintf (keyname, "\\e");
-#else
- /* XXX - experimental */
- sprintf (keyname, "\\M-");
-#endif
+ {
+ /* If ESC is the meta prefix and we're converting chars
+ with the eighth bit set to ESC-prefixed sequences, then
+ we can use \M-. Otherwise we need to use the sequence
+ for ESC. */
+ if (_rl_convert_meta_chars_to_ascii && map[ESC].type == ISKMAP)
+ sprintf (keyname, "\\M-");
+ else
+ sprintf (keyname, "\\e");
+ }
else if (CTRL_CHAR (key))
sprintf (keyname, "\\C-%c", _rl_to_lower (UNCTRL (key)));
else if (key == RUBOUT)
@@ -2170,7 +2203,6 @@ _rl_get_string_variable_value (name)
{
static char numbuf[32];
char *ret;
- int n;
if (_rl_stricmp (name, "bell-style") == 0)
{
diff --git a/callback.c b/callback.c
index 9120969..ada04d8 100644
--- a/callback.c
+++ b/callback.c
@@ -43,6 +43,7 @@
#include "rldefs.h"
#include "readline.h"
#include "rlprivate.h"
+#include "xmalloc.h"
/* Private data for callback registration functions. See comments in
rl_callback_read_char for more details. */
@@ -124,73 +125,73 @@ rl_callback_read_char ()
return;
}
- if (RL_ISSTATE (RL_STATE_ISEARCH))
+ do
{
- eof = _rl_isearch_callback (_rl_iscxt);
- if (eof == 0 && (RL_ISSTATE (RL_STATE_ISEARCH) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
- rl_callback_read_char ();
-
- return;
- }
- else if (RL_ISSTATE (RL_STATE_NSEARCH))
- {
- eof = _rl_nsearch_callback (_rl_nscxt);
- return;
- }
- else if (RL_ISSTATE (RL_STATE_NUMERICARG))
- {
- eof = _rl_arg_callback (_rl_argcxt);
- if (eof == 0 && (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
- rl_callback_read_char ();
- /* XXX - this should handle _rl_last_command_was_kill better */
- else if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
- _rl_internal_char_cleanup ();
+ if (RL_ISSTATE (RL_STATE_ISEARCH))
+ {
+ eof = _rl_isearch_callback (_rl_iscxt);
+ if (eof == 0 && (RL_ISSTATE (RL_STATE_ISEARCH) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
+ rl_callback_read_char ();
- return;
- }
- else if (RL_ISSTATE (RL_STATE_MULTIKEY))
- {
- eof = _rl_dispatch_callback (_rl_kscxt); /* For now */
- while ((eof == -1 || eof == -2) && RL_ISSTATE (RL_STATE_MULTIKEY) && _rl_kscxt && (_rl_kscxt->flags & KSEQ_DISPATCHED))
- eof = _rl_dispatch_callback (_rl_kscxt);
- if (RL_ISSTATE (RL_STATE_MULTIKEY) == 0)
+ return;
+ }
+ else if (RL_ISSTATE (RL_STATE_NSEARCH))
{
- _rl_internal_char_cleanup ();
- _rl_want_redisplay = 1;
+ eof = _rl_nsearch_callback (_rl_nscxt);
+ return;
}
- }
- else if (_rl_callback_func)
- {
- /* This allows functions that simply need to read an additional character
- (like quoted-insert) to register a function to be called when input is
- available. _rl_callback_data is simply a pointer to a struct that has
- the argument count originally passed to the registering function and
- space for any additional parameters. */
- eof = (*_rl_callback_func) (_rl_callback_data);
- /* If the function `deregisters' itself, make sure the data is cleaned
- up. */
- if (_rl_callback_func == 0)
+ else if (RL_ISSTATE (RL_STATE_NUMERICARG))
+ {
+ eof = _rl_arg_callback (_rl_argcxt);
+ if (eof == 0 && (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
+ rl_callback_read_char ();
+ /* XXX - this should handle _rl_last_command_was_kill better */
+ else if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
+ _rl_internal_char_cleanup ();
+
+ return;
+ }
+ else if (RL_ISSTATE (RL_STATE_MULTIKEY))
{
- if (_rl_callback_data)
+ eof = _rl_dispatch_callback (_rl_kscxt); /* For now */
+ while ((eof == -1 || eof == -2) && RL_ISSTATE (RL_STATE_MULTIKEY) && _rl_kscxt && (_rl_kscxt->flags & KSEQ_DISPATCHED))
+ eof = _rl_dispatch_callback (_rl_kscxt);
+ if (RL_ISSTATE (RL_STATE_MULTIKEY) == 0)
{
- _rl_callback_data_dispose (_rl_callback_data);
- _rl_callback_data = 0;
+ _rl_internal_char_cleanup ();
+ _rl_want_redisplay = 1;
}
- _rl_internal_char_cleanup ();
}
- }
- else
- eof = readline_internal_char ();
+ else if (_rl_callback_func)
+ {
+ /* This allows functions that simply need to read an additional
+ character (like quoted-insert) to register a function to be
+ called when input is available. _rl_callback_data is simply a
+ pointer to a struct that has the argument count originally
+ passed to the registering function and space for any additional
+ parameters. */
+ eof = (*_rl_callback_func) (_rl_callback_data);
+ /* If the function `deregisters' itself, make sure the data is
+ cleaned up. */
+ if (_rl_callback_func == 0)
+ {
+ if (_rl_callback_data)
+ {
+ _rl_callback_data_dispose (_rl_callback_data);
+ _rl_callback_data = 0;
+ }
+ _rl_internal_char_cleanup ();
+ }
+ }
+ else
+ eof = readline_internal_char ();
- if (rl_done == 0 && _rl_want_redisplay)
- {
- (*rl_redisplay_function) ();
- _rl_want_redisplay = 0;
- }
+ if (rl_done == 0 && _rl_want_redisplay)
+ {
+ (*rl_redisplay_function) ();
+ _rl_want_redisplay = 0;
+ }
- /* We loop in case some function has pushed input back with rl_execute_next. */
- for (;;)
- {
if (rl_done)
{
line = readline_internal_teardown (eof);
@@ -212,11 +213,8 @@ rl_callback_read_char ()
if (in_handler == 0 && rl_linefunc)
_rl_callback_newline ();
}
- if (rl_pending_input || _rl_pushed_input_available () || RL_ISSTATE (RL_STATE_MACROINPUT))
- eof = readline_internal_char ();
- else
- break;
}
+ while (rl_pending_input || _rl_pushed_input_available () || RL_ISSTATE (RL_STATE_MACROINPUT));
}
/* Remove the handler, and make sure the terminal is in its normal state. */
diff --git a/complete.c b/complete.c
index d93c15a..73f834a 100644
--- a/complete.c
+++ b/complete.c
@@ -950,7 +950,7 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
rl_compentry_func_t *our_func;
int found_quote, quote_char;
{
- char **matches, *temp;
+ char **matches;
rl_completion_found_quote = found_quote;
rl_completion_quote_character = quote_char;
@@ -969,21 +969,9 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
}
}
- /* Beware -- we're stripping the quotes here. Do this only if we know
- we are doing filename completion and the application has defined a
- filename dequoting function. */
- temp = (char *)NULL;
-
- if (found_quote && our_func == rl_filename_completion_function &&
- rl_filename_dequoting_function)
- {
- /* delete single and double quotes */
- temp = (*rl_filename_dequoting_function) (text, quote_char);
- text = temp; /* not freeing text is not a memory leak */
- }
+ /* XXX -- filename dequoting moved into rl_filename_completion_function */
matches = rl_completion_matches (text, our_func);
- FREE (temp);
return matches;
}
@@ -1116,7 +1104,8 @@ compute_lcd_of_matches (match_list, matches, text)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- mbstate_t ps_back = ps1;
+ mbstate_t ps_back;
+ ps_back = ps1;
if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
break;
else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
@@ -1974,13 +1963,30 @@ rl_filename_completion_function (text, state)
if (rl_directory_rewrite_hook)
(*rl_directory_rewrite_hook) (&dirname);
+ /* The directory completion hook should perform any necessary
+ dequoting. */
if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
{
free (users_dirname);
users_dirname = savestring (dirname);
}
-
+ else if (rl_completion_found_quote && rl_filename_dequoting_function)
+ {
+ /* delete single and double quotes */
+ temp = (*rl_filename_dequoting_function) (users_dirname, rl_completion_quote_character);
+ free (users_dirname);
+ users_dirname = temp;
+ }
directory = opendir (dirname);
+
+ /* Now dequote a non-null filename. */
+ if (filename && *filename && rl_completion_found_quote && rl_filename_dequoting_function)
+ {
+ /* delete single and double quotes */
+ temp = (*rl_filename_dequoting_function) (filename, rl_completion_quote_character);
+ free (filename);
+ filename = temp;
+ }
filename_len = strlen (filename);
rl_filename_completion_desired = 1;
diff --git a/config.h.in b/config.h.in
index b4aae98..03178a4 100644
--- a/config.h.in
+++ b/config.h.in
@@ -41,6 +41,15 @@
/* Define if you have the isascii function. */
#undef HAVE_ISASCII
+/* Define if you have the iswctype function. */
+#undef HAVE_ISWCTYPE
+
+/* Define if you have the iswlower function. */
+#undef HAVE_ISWLOWER
+
+/* Define if you have the iswupper function. */
+#undef HAVE_ISWUPPER
+
/* Define if you have the isxdigit function. */
#undef HAVE_ISXDIGIT
@@ -88,11 +97,23 @@
/* Define if you have the tcgetattr function. */
#undef HAVE_TCGETATTR
+/* Define if you have the towlower function. */
+#undef HAVE_TOWLOWER
+
+/* Define if you have the towupper function. */
+#undef HAVE_TOWUPPER
+
/* Define if you have the vsnprintf function. */
#undef HAVE_VSNPRINTF
-/* Define if you have the wctomb function. */
-#undef HAVE_WCTOMB
+/* Define if you have the wcrtomb function. */
+#undef HAVE_WCRTOMB
+
+/* Define if you have the wcscoll function. */
+#undef HAVE_WCSCOLL
+
+/* Define if you have the wctype function. */
+#undef HAVE_WCTYPE
/* Define if you have the wcwidth function. */
#undef HAVE_WCWIDTH
@@ -174,11 +195,20 @@
/* Define if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
-/* Define if you have the <varargs.h> header file. */
+/* Define if you have the <wctype.h> header file. */
#undef HAVE_WCTYPE_H
#undef HAVE_MBSTATE_T
+/* Define if you have wchar_t in <wctype.h>. */
+#undef HAVE_WCHAR_T
+
+/* Define if you have wctype_t in <wctype.h>. */
+#undef HAVE_WCTYPE_T
+
+/* Define if you have wint_t in <wctype.h>. */
+#undef HAVE_WINT_T
+
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET
diff --git a/configure b/configure
index 17a9eeb..5706839 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
#! /bin/sh
-# From configure.in for Readline 5.1, version 2.58.
+# From configure.in for Readline 5.2, version 2.61.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for readline 5.1-beta1.
+# Generated by GNU Autoconf 2.59 for readline 5.2.
#
# Report bugs to <bug-readline@gnu.org>.
#
@@ -270,8 +270,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='readline'
PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='5.1-beta1'
-PACKAGE_STRING='readline 5.1-beta1'
+PACKAGE_VERSION='5.2'
+PACKAGE_STRING='readline 5.2'
PACKAGE_BUGREPORT='bug-readline@gnu.org'
ac_unique_file="readline.h"
@@ -781,7 +781,7 @@ if test "$ac_init_help" = "long"; then
# 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 5.1-beta1 to adapt to many kinds of systems.
+\`configure' configures readline 5.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -842,7 +842,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of readline 5.1-beta1:";;
+ short | recursive ) echo "Configuration of readline 5.2:";;
esac
cat <<\_ACEOF
@@ -968,7 +968,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-readline configure 5.1-beta1
+readline configure 5.2
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -982,7 +982,7 @@ cat >&5 <<_ACEOF
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 5.1-beta1, which was
+It was created by readline $as_me 5.2, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1350,7 +1350,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
ac_config_headers="$ac_config_headers config.h"
-LIBVERSION=5.1
+LIBVERSION=5.2
# Make sure we can run config.sub.
$ac_config_sub sun4 >/dev/null 2>&1 ||
@@ -1462,6 +1462,7 @@ fi
+CROSS_COMPILE=
if test "x$cross_compiling" = "xyes"; then
case "${host}" in
*-cygwin*)
@@ -7403,9 +7404,9 @@ _ACEOF
fi
-echo "$as_me:$LINENO: checking for mbrtowc" >&5
-echo $ECHO_N "checking for mbrtowc... $ECHO_C" >&6
-if test "${ac_cv_func_mbrtowc+set}" = set; then
+echo "$as_me:$LINENO: checking for mbrlen" >&5
+echo $ECHO_N "checking for mbrlen... $ECHO_C" >&6
+if test "${ac_cv_func_mbrlen+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -7414,12 +7415,12 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define mbrtowc to an innocuous variant, in case <limits.h> declares mbrtowc.
+/* Define mbrlen to an innocuous variant, in case <limits.h> declares mbrlen.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mbrtowc innocuous_mbrtowc
+#define mbrlen innocuous_mbrlen
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbrtowc (); below.
+ which can conflict with char mbrlen (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
@@ -7429,7 +7430,7 @@ cat >>conftest.$ac_ext <<_ACEOF
# include <assert.h>
#endif
-#undef mbrtowc
+#undef mbrlen
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -7438,14 +7439,14 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char mbrtowc ();
+char mbrlen ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
-#if defined (__stub_mbrtowc) || defined (__stub___mbrtowc)
+#if defined (__stub_mbrlen) || defined (__stub___mbrlen)
choke me
#else
-char (*f) () = mbrtowc;
+char (*f) () = mbrlen;
#endif
#ifdef __cplusplus
}
@@ -7454,7 +7455,7 @@ char (*f) () = mbrtowc;
int
main ()
{
-return f != mbrtowc;
+return f != mbrlen;
;
return 0;
}
@@ -7481,28 +7482,29 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_func_mbrtowc=yes
+ ac_cv_func_mbrlen=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_func_mbrtowc=no
+ac_cv_func_mbrlen=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5
-echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6
-if test $ac_cv_func_mbrtowc = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5
+echo "${ECHO_T}$ac_cv_func_mbrlen" >&6
+if test $ac_cv_func_mbrlen = yes; then
cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBRTOWC 1
+#define HAVE_MBRLEN 1
_ACEOF
fi
-echo "$as_me:$LINENO: checking for mbrlen" >&5
-echo $ECHO_N "checking for mbrlen... $ECHO_C" >&6
-if test "${ac_cv_func_mbrlen+set}" = set; then
+
+echo "$as_me:$LINENO: checking for wcrtomb" >&5
+echo $ECHO_N "checking for wcrtomb... $ECHO_C" >&6
+if test "${ac_cv_func_wcrtomb+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -7511,12 +7513,12 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define mbrlen to an innocuous variant, in case <limits.h> declares mbrlen.
+/* Define wcrtomb to an innocuous variant, in case <limits.h> declares wcrtomb.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mbrlen innocuous_mbrlen
+#define wcrtomb innocuous_wcrtomb
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbrlen (); below.
+ which can conflict with char wcrtomb (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
@@ -7526,7 +7528,7 @@ cat >>conftest.$ac_ext <<_ACEOF
# include <assert.h>
#endif
-#undef mbrlen
+#undef wcrtomb
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -7535,14 +7537,14 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char mbrlen ();
+char wcrtomb ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
-#if defined (__stub_mbrlen) || defined (__stub___mbrlen)
+#if defined (__stub_wcrtomb) || defined (__stub___wcrtomb)
choke me
#else
-char (*f) () = mbrlen;
+char (*f) () = wcrtomb;
#endif
#ifdef __cplusplus
}
@@ -7551,7 +7553,7 @@ char (*f) () = mbrlen;
int
main ()
{
-return f != mbrlen;
+return f != wcrtomb;
;
return 0;
}
@@ -7578,28 +7580,125 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_func_mbrlen=yes
+ ac_cv_func_wcrtomb=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_func_mbrlen=no
+ac_cv_func_wcrtomb=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5
-echo "${ECHO_T}$ac_cv_func_mbrlen" >&6
-if test $ac_cv_func_mbrlen = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5
+echo "${ECHO_T}$ac_cv_func_wcrtomb" >&6
+if test $ac_cv_func_wcrtomb = yes; then
cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBRLEN 1
+#define HAVE_WCRTOMB 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for wcscoll" >&5
+echo $ECHO_N "checking for wcscoll... $ECHO_C" >&6
+if test "${ac_cv_func_wcscoll+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define wcscoll to an innocuous variant, in case <limits.h> declares wcscoll.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define wcscoll innocuous_wcscoll
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char wcscoll (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef wcscoll
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char wcscoll ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_wcscoll) || defined (__stub___wcscoll)
+choke me
+#else
+char (*f) () = wcscoll;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != wcscoll;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_wcscoll=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_wcscoll=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5
+echo "${ECHO_T}$ac_cv_func_wcscoll" >&6
+if test $ac_cv_func_wcscoll = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_WCSCOLL 1
_ACEOF
fi
-echo "$as_me:$LINENO: checking for wctomb" >&5
-echo $ECHO_N "checking for wctomb... $ECHO_C" >&6
-if test "${ac_cv_func_wctomb+set}" = set; then
+echo "$as_me:$LINENO: checking for wcsdup" >&5
+echo $ECHO_N "checking for wcsdup... $ECHO_C" >&6
+if test "${ac_cv_func_wcsdup+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -7608,12 +7707,12 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define wctomb to an innocuous variant, in case <limits.h> declares wctomb.
+/* Define wcsdup to an innocuous variant, in case <limits.h> declares wcsdup.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wctomb innocuous_wctomb
+#define wcsdup innocuous_wcsdup
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wctomb (); below.
+ which can conflict with char wcsdup (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
@@ -7623,7 +7722,7 @@ cat >>conftest.$ac_ext <<_ACEOF
# include <assert.h>
#endif
-#undef wctomb
+#undef wcsdup
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -7632,14 +7731,14 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char wctomb ();
+char wcsdup ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
-#if defined (__stub_wctomb) || defined (__stub___wctomb)
+#if defined (__stub_wcsdup) || defined (__stub___wcsdup)
choke me
#else
-char (*f) () = wctomb;
+char (*f) () = wcsdup;
#endif
#ifdef __cplusplus
}
@@ -7648,7 +7747,7 @@ char (*f) () = wctomb;
int
main ()
{
-return f != wctomb;
+return f != wcsdup;
;
return 0;
}
@@ -7675,21 +7774,21 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_func_wctomb=yes
+ ac_cv_func_wcsdup=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_func_wctomb=no
+ac_cv_func_wcsdup=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_wctomb" >&5
-echo "${ECHO_T}$ac_cv_func_wctomb" >&6
-if test $ac_cv_func_wctomb = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5
+echo "${ECHO_T}$ac_cv_func_wcsdup" >&6
+if test $ac_cv_func_wcsdup = yes; then
cat >>confdefs.h <<\_ACEOF
-#define HAVE_WCTOMB 1
+#define HAVE_WCSDUP 1
_ACEOF
fi
@@ -7791,9 +7890,9 @@ _ACEOF
fi
-echo "$as_me:$LINENO: checking for wcsdup" >&5
-echo $ECHO_N "checking for wcsdup... $ECHO_C" >&6
-if test "${ac_cv_func_wcsdup+set}" = set; then
+echo "$as_me:$LINENO: checking for wctype" >&5
+echo $ECHO_N "checking for wctype... $ECHO_C" >&6
+if test "${ac_cv_func_wctype+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -7802,12 +7901,12 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define wcsdup to an innocuous variant, in case <limits.h> declares wcsdup.
+/* Define wctype to an innocuous variant, in case <limits.h> declares wctype.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wcsdup innocuous_wcsdup
+#define wctype innocuous_wctype
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcsdup (); below.
+ which can conflict with char wctype (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
@@ -7817,7 +7916,7 @@ cat >>conftest.$ac_ext <<_ACEOF
# include <assert.h>
#endif
-#undef wcsdup
+#undef wctype
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -7826,14 +7925,14 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char wcsdup ();
+char wctype ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
-#if defined (__stub_wcsdup) || defined (__stub___wcsdup)
+#if defined (__stub_wctype) || defined (__stub___wctype)
choke me
#else
-char (*f) () = wcsdup;
+char (*f) () = wctype;
#endif
#ifdef __cplusplus
}
@@ -7842,7 +7941,7 @@ char (*f) () = wcsdup;
int
main ()
{
-return f != wcsdup;
+return f != wctype;
;
return 0;
}
@@ -7869,29 +7968,30 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_func_wcsdup=yes
+ ac_cv_func_wctype=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_func_wcsdup=no
+ac_cv_func_wctype=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5
-echo "${ECHO_T}$ac_cv_func_wcsdup" >&6
-if test $ac_cv_func_wcsdup = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_func_wctype" >&5
+echo "${ECHO_T}$ac_cv_func_wctype" >&6
+if test $ac_cv_func_wctype = yes; then
cat >>confdefs.h <<\_ACEOF
-#define HAVE_WCSDUP 1
+#define HAVE_WCTYPE 1
_ACEOF
fi
-echo "$as_me:$LINENO: checking for mbstate_t" >&5
-echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
-if test "${bash_cv_have_mbstate_t+set}" = set; then
+
+ echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5
+echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6
+if test "${ac_cv_func_mbrtowc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -7900,23 +8000,18 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-
#include <wchar.h>
int
main ()
{
-
- mbstate_t ps;
- mbstate_t *psp;
- psp = (mbstate_t *)0;
-
+mbstate_t state; return ! (sizeof state && mbrtowc);
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -7930,30 +8025,146 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- bash_cv_have_mbstate_t=yes
+ ac_cv_func_mbrtowc=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-bash_cv_have_mbstate_t=no
+ac_cv_func_mbrtowc=no
fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $bash_cv_have_mbstate_t" >&5
-echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6
-if test $bash_cv_have_mbstate_t = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5
+echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6
+ if test $ac_cv_func_mbrtowc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MBRTOWC 1
+_ACEOF
+
+ fi
+
+if test $ac_cv_func_mbrtowc = yes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_MBSTATE_T 1
_ACEOF
fi
+
+
+
+
+
+for ac_func in iswlower iswupper towlower towupper iswctype
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
if test "${bash_cv_langinfo_codeset+set}" = set; then
@@ -8015,6 +8226,199 @@ _ACEOF
fi
+echo "$as_me:$LINENO: checking for wchar_t in wchar.h" >&5
+echo $ECHO_N "checking for wchar_t in wchar.h... $ECHO_C" >&6
+if test "${bash_cv_type_wchar_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <wchar.h>
+
+int
+main ()
+{
+
+ wchar_t foo;
+ foo = 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ bash_cv_type_wchar_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+bash_cv_type_wchar_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $bash_cv_type_wchar_t" >&5
+echo "${ECHO_T}$bash_cv_type_wchar_t" >&6
+if test $bash_cv_type_wchar_t = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WCHAR_T 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for wctype_t in wctype.h" >&5
+echo $ECHO_N "checking for wctype_t in wctype.h... $ECHO_C" >&6
+if test "${bash_cv_type_wctype_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <wctype.h>
+int
+main ()
+{
+
+ wctype_t foo;
+ foo = 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ bash_cv_type_wctype_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+bash_cv_type_wctype_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $bash_cv_type_wctype_t" >&5
+echo "${ECHO_T}$bash_cv_type_wctype_t" >&6
+if test $bash_cv_type_wctype_t = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WCTYPE_T 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for wint_t in wctype.h" >&5
+echo $ECHO_N "checking for wint_t in wctype.h... $ECHO_C" >&6
+if test "${bash_cv_type_wint_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <wctype.h>
+int
+main ()
+{
+
+ wint_t foo;
+ foo = 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ bash_cv_type_wint_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+bash_cv_type_wint_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $bash_cv_type_wint_t" >&5
+echo "${ECHO_T}$bash_cv_type_wint_t" >&6
+if test $bash_cv_type_wint_t = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WINT_T 1
+_ACEOF
+
+fi
+
case "$host_cpu" in
@@ -8479,7 +8883,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by readline $as_me 5.1-beta1, which was
+This file was extended by readline $as_me 5.2, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8542,7 +8946,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-readline config.status 5.1-beta1
+readline config.status 5.2
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.in b/configure.in
index a786398..868773b 100644
--- a/configure.in
+++ b/configure.in
@@ -22,9 +22,9 @@ dnl Process this file with autoconf to produce a configure script.
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-AC_REVISION([for Readline 5.1, version 2.59])
+AC_REVISION([for Readline 5.2, version 2.61])
-AC_INIT(readline, 5.1-release, bug-readline@gnu.org)
+AC_INIT(readline, 5.2, bug-readline@gnu.org)
dnl make sure we are using a recent autoconf version
AC_PREREQ(2.50)
@@ -34,7 +34,7 @@ AC_CONFIG_AUX_DIR(./support)
AC_CONFIG_HEADERS(config.h)
dnl update the value of RL_READLINE_VERSION in readline.h when this changes
-LIBVERSION=5.1
+LIBVERSION=5.2
AC_CANONICAL_HOST
@@ -75,6 +75,7 @@ dnl files as necessary
dnl Note that host and target machine are the same, and different than the
dnl build machine.
+CROSS_COMPILE=
if test "x$cross_compiling" = "xyes"; then
case "${host}" in
*-cygwin*)
diff --git a/display.c b/display.c
index 0d3ae6e..47ff061 100644
--- a/display.c
+++ b/display.c
@@ -1,6 +1,6 @@
/* display.c -- readline redisplay facility. */
-/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -59,10 +59,6 @@
extern char *strchr (), *strrchr ();
#endif /* !strchr && !__STDC__ */
-#if defined (HACK_TERMCAP_MOTION)
-extern char *_rl_term_forward_char;
-#endif
-
static void update_line PARAMS((char *, char *, int, int, int, int));
static void space_to_eol PARAMS((int));
static void delete_chars PARAMS((int));
@@ -80,9 +76,18 @@ static int *inv_lbreaks, *vis_lbreaks;
static int inv_lbsize, vis_lbsize;
/* Heuristic used to decide whether it is faster to move from CUR to NEW
- by backing up or outputting a carriage return and moving forward. */
+ by backing up or outputting a carriage return and moving forward. CUR
+ and NEW are either both buffer positions or absolute screen positions. */
#define CR_FASTER(new, cur) (((new) + 1) < ((cur) - (new)))
+/* _rl_last_c_pos is an absolute cursor position in multibyte locales and a
+ buffer index in others. This macro is used when deciding whether the
+ current cursor position is in the middle of a prompt string containing
+ invisible characters. */
+#define PROMPT_ENDING_INDEX \
+ ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? prompt_physical_chars : prompt_last_invisible+1)
+
+
/* **************************************************************** */
/* */
/* Display stuff */
@@ -135,6 +140,7 @@ int _rl_last_c_pos = 0;
int _rl_last_v_pos = 0;
static int cpos_adjusted;
+static int cpos_buffer_position;
/* Number of lines currently on screen minus 1. */
int _rl_vis_botlin = 0;
@@ -162,6 +168,7 @@ static int line_size = 1024;
include invisible characters. */
static char *local_prompt, *local_prompt_prefix;
+static int local_prompt_len;
static int prompt_visible_length, prompt_prefix_length;
/* The number of invisible characters in the line currently being
@@ -197,6 +204,7 @@ static char *saved_local_prefix;
static int saved_last_invisible;
static int saved_visible_length;
static int saved_prefix_length;
+static int saved_local_length;
static int saved_invis_chars_first_line;
static int saved_physical_chars;
@@ -220,7 +228,7 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
char *pmt;
int *lp, *lip, *niflp, *vlp;
{
- char *r, *ret, *p;
+ char *r, *ret, *p, *igstart;
int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars;
/* Short-circuit if we can. */
@@ -244,19 +252,21 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
invfl = 0; /* invisible chars in first line of prompt */
invflset = 0; /* we only want to set invfl once */
+ igstart = 0;
for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++)
{
/* This code strips the invisible character string markers
RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */
- if (*p == RL_PROMPT_START_IGNORE)
+ if (ignoring == 0 && *p == RL_PROMPT_START_IGNORE) /* XXX - check ignoring? */
{
- ignoring++;
+ ignoring = 1;
+ igstart = p;
continue;
}
else if (ignoring && *p == RL_PROMPT_END_IGNORE)
{
ignoring = 0;
- if (p[-1] != RL_PROMPT_START_IGNORE)
+ if (p != (igstart + 1))
last = r - ret - 1;
continue;
}
@@ -356,6 +366,7 @@ rl_expand_prompt (prompt)
FREE (local_prompt_prefix);
local_prompt = local_prompt_prefix = (char *)0;
+ local_prompt_len = 0;
prompt_last_invisible = prompt_invis_chars_first_line = 0;
prompt_visible_length = prompt_physical_chars = 0;
@@ -371,6 +382,7 @@ rl_expand_prompt (prompt)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)0;
+ local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
return (prompt_visible_length);
}
else
@@ -389,6 +401,7 @@ rl_expand_prompt (prompt)
&prompt_invis_chars_first_line,
(int *)NULL);
*t = c;
+ local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
return (prompt_prefix_length);
}
}
@@ -445,7 +458,7 @@ rl_redisplay ()
{
register int in, out, c, linenum, cursor_linenum;
register char *line;
- int c_pos, inv_botlin, lb_botlin, lb_linenum, o_cpos;
+ int inv_botlin, lb_botlin, lb_linenum, o_cpos;
int newlines, lpos, temp, modmark, n0, num;
char *prompt_this_line;
#if defined (HANDLE_MULTIBYTE)
@@ -469,7 +482,7 @@ rl_redisplay ()
}
/* Draw the line into the buffer. */
- c_pos = -1;
+ cpos_buffer_position = -1;
line = invisible_line;
out = inv_botlin = 0;
@@ -496,24 +509,23 @@ rl_redisplay ()
number of non-visible characters in the prompt string. */
if (rl_display_prompt == rl_prompt || local_prompt)
{
- int local_len = local_prompt ? strlen (local_prompt) : 0;
if (local_prompt_prefix && forced_display)
_rl_output_some_chars (local_prompt_prefix, strlen (local_prompt_prefix));
- if (local_len > 0)
+ if (local_prompt_len > 0)
{
- temp = local_len + out + 2;
+ temp = local_prompt_len + out + 2;
if (temp >= line_size)
{
line_size = (temp + 1024) - (temp % 1024);
visible_line = (char *)xrealloc (visible_line, line_size);
line = invisible_line = (char *)xrealloc (invisible_line, line_size);
}
- strncpy (line + out, local_prompt, local_len);
- out += local_len;
+ strncpy (line + out, local_prompt, local_prompt_len);
+ out += local_prompt_len;
}
line[out] = '\0';
- wrap_offset = local_len - prompt_visible_length;
+ wrap_offset = local_prompt_len - prompt_visible_length;
}
else
{
@@ -614,6 +626,7 @@ rl_redisplay ()
contents of the command line? */
while (lpos >= _rl_screenwidth)
{
+ int z;
/* fix from Darin Johnson <darin@acuson.com> for prompt string with
invisible characters that is longer than the screen width. The
prompt_invis_chars_first_line variable could be made into an array
@@ -622,37 +635,46 @@ rl_redisplay ()
prompts that exceed two physical lines?
Additional logic fix from Edward Catmur <ed@catmur.co.uk> */
#if defined (HANDLE_MULTIBYTE)
- n0 = num;
- temp = local_prompt ? strlen (local_prompt) : 0;
- while (num < temp)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- if (_rl_col_width (local_prompt, n0, num) > _rl_screenwidth)
+ n0 = num;
+ temp = local_prompt_len;
+ while (num < temp)
{
- num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY);
- break;
+ z = _rl_col_width (local_prompt, n0, num);
+ if (z > _rl_screenwidth)
+ {
+ num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY);
+ break;
+ }
+ else if (z == _rl_screenwidth)
+ break;
+ num++;
}
- num++;
+ temp = num;
}
- temp = num +
-#else
- temp = ((newlines + 1) * _rl_screenwidth) +
+ else
#endif /* !HANDLE_MULTIBYTE */
- ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line
- : ((newlines == 1) ? wrap_offset : 0))
- : ((newlines == 0) ? wrap_offset :0));
+ temp = ((newlines + 1) * _rl_screenwidth);
+
+ /* Now account for invisible characters in the current line. */
+ temp += ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line
+ : ((newlines == 1) ? wrap_offset : 0))
+ : ((newlines == 0) ? wrap_offset :0));
inv_lbreaks[++newlines] = temp;
#if defined (HANDLE_MULTIBYTE)
- lpos -= _rl_col_width (local_prompt, n0, num);
-#else
- lpos -= _rl_screenwidth;
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ lpos -= _rl_col_width (local_prompt, n0, num);
+ else
#endif
+ lpos -= _rl_screenwidth;
}
prompt_last_screen_line = newlines;
/* Draw the rest of the line (after the prompt) into invisible_line, keeping
- track of where the cursor is (c_pos), the number of the line containing
+ track of where the cursor is (cpos_buffer_position), the number of the line containing
the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin).
It maintains an array of line breaks for display (inv_lbreaks).
This handles expanding tabs for display and displaying meta characters. */
@@ -705,7 +727,7 @@ rl_redisplay ()
if (in == rl_point)
{
- c_pos = out;
+ cpos_buffer_position = out;
lb_linenum = newlines;
}
@@ -799,7 +821,7 @@ rl_redisplay ()
}
if (in == rl_point)
{
- c_pos = out;
+ cpos_buffer_position = out;
lb_linenum = newlines;
}
for (i = in; i < in+wc_bytes; i++)
@@ -830,9 +852,9 @@ rl_redisplay ()
}
line[out] = '\0';
- if (c_pos < 0)
+ if (cpos_buffer_position < 0)
{
- c_pos = out;
+ cpos_buffer_position = out;
lb_linenum = newlines;
}
@@ -841,7 +863,7 @@ rl_redisplay ()
inv_lbreaks[newlines+1] = out;
cursor_linenum = lb_linenum;
- /* C_POS == position in buffer where cursor should be placed.
+ /* CPOS_BUFFER_POSITION == position in buffer where cursor should be placed.
CURSOR_LINENUM == line number where the cursor should be placed. */
/* PWP: now is when things get a bit hairy. The visible and invisible
@@ -886,6 +908,8 @@ rl_redisplay ()
/* For each line in the buffer, do the updating display. */
for (linenum = 0; linenum <= inv_botlin; linenum++)
{
+ /* This can lead us astray if we execute a program that changes
+ the locale from a non-multibyte to a multibyte one. */
o_cpos = _rl_last_c_pos;
cpos_adjusted = 0;
update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,
@@ -898,7 +922,11 @@ rl_redisplay ()
change update_line itself. There is one case in which
update_line adjusts _rl_last_c_pos itself (so it can pass
_rl_move_cursor_relative accurate values); it communicates
- this back by setting cpos_adjusted */
+ this back by setting cpos_adjusted. If we assume that
+ _rl_last_c_pos is correct (an absolute cursor position) each
+ time update_line is called, then we can assume in our
+ calculations that o_cpos does not need to be adjusted by
+ wrap_offset. */
if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
cpos_adjusted == 0 &&
_rl_last_c_pos != o_cpos &&
@@ -967,7 +995,11 @@ rl_redisplay ()
invisible character in the prompt string. */
nleft = prompt_visible_length + wrap_offset;
if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
- _rl_last_c_pos <= prompt_last_invisible && local_prompt)
+#if 0
+ _rl_last_c_pos <= PROMPT_ENDING_INDEX && local_prompt)
+#else
+ _rl_last_c_pos < PROMPT_ENDING_INDEX && local_prompt)
+#endif
{
#if defined (__MSDOS__)
putc ('\r', rl_outstream);
@@ -986,8 +1018,8 @@ rl_redisplay ()
in the buffer? */
pos = inv_lbreaks[cursor_linenum];
/* nleft == number of characters in the line buffer between the
- start of the line and the cursor position. */
- nleft = c_pos - pos;
+ start of the line and the desired cursor position. */
+ nleft = cpos_buffer_position - pos;
/* NLEFT is now a number of characters in a buffer. When in a
multibyte locale, however, _rl_last_c_pos is an absolute cursor
@@ -999,6 +1031,7 @@ rl_redisplay ()
those characters here and call _rl_backspace() directly. */
if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
{
+ /* TX == new physical cursor position in multibyte locale. */
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
tx = _rl_col_width (&visible_line[pos], 0, nleft) - visible_wrap_offset;
else
@@ -1032,11 +1065,11 @@ rl_redisplay ()
will be LMARGIN. */
/* The number of characters that will be displayed before the cursor. */
- ndisp = c_pos - wrap_offset;
+ ndisp = cpos_buffer_position - wrap_offset;
nleft = prompt_visible_length + wrap_offset;
/* Where the new cursor position will be on the screen. This can be
longer than SCREENWIDTH; if it is, lmargin will be adjusted. */
- phys_c_pos = c_pos - (last_lmargin ? last_lmargin : wrap_offset);
+ phys_c_pos = cpos_buffer_position - (last_lmargin ? last_lmargin : wrap_offset);
t = _rl_screenwidth / 3;
/* If the number of characters had already exceeded the screenwidth,
@@ -1047,7 +1080,7 @@ rl_redisplay ()
two-thirds of the way across the screen. */
if (phys_c_pos > _rl_screenwidth - 2)
{
- lmargin = c_pos - (2 * t);
+ lmargin = cpos_buffer_position - (2 * t);
if (lmargin < 0)
lmargin = 0;
/* If the left margin would be in the middle of a prompt with
@@ -1061,7 +1094,7 @@ rl_redisplay ()
{
/* If we are moving back towards the beginning of the line and
the last margin is no longer correct, compute a new one. */
- lmargin = ((c_pos - 1) / t) * t; /* XXX */
+ lmargin = ((cpos_buffer_position - 1) / t) * t; /* XXX */
if (wrap_offset && lmargin > 0 && lmargin < nleft)
lmargin = nleft;
}
@@ -1106,7 +1139,7 @@ rl_redisplay ()
if (visible_first_line_len > _rl_screenwidth)
visible_first_line_len = _rl_screenwidth;
- _rl_move_cursor_relative (c_pos - lmargin, &invisible_line[lmargin]);
+ _rl_move_cursor_relative (cpos_buffer_position - lmargin, &invisible_line[lmargin]);
last_lmargin = lmargin;
}
}
@@ -1164,7 +1197,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
int col_lendiff, col_temp;
#if defined (HANDLE_MULTIBYTE)
mbstate_t ps_new, ps_old;
- int new_offset, old_offset, tmp;
+ int new_offset, old_offset;
#endif
/* If we're at the right edge of a terminal that supports xn, we're
@@ -1397,11 +1430,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
sequences (like drawing the `unbold' sequence without a corresponding
`bold') that manifests itself on certain terminals. */
- lendiff = local_prompt ? strlen (local_prompt) : 0;
+ lendiff = local_prompt_len;
od = ofd - old; /* index of first difference in visible line */
if (current_line == 0 && !_rl_horizontal_scroll_mode &&
_rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 &&
- od >= lendiff && _rl_last_c_pos <= prompt_last_invisible)
+ od >= lendiff && _rl_last_c_pos < PROMPT_ENDING_INDEX)
{
#if defined (__MSDOS__)
putc ('\r', rl_outstream);
@@ -1420,7 +1453,19 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
_rl_last_c_pos = lendiff;
}
+ /* When this function returns, _rl_last_c_pos is correct, and an absolute
+ cursor postion in multibyte mode, but a buffer index when not in a
+ multibyte locale. */
_rl_move_cursor_relative (od, old);
+#if 1
+#if defined (HANDLE_MULTIBYTE)
+ /* We need to indicate that the cursor position is correct in the presence of
+ invisible characters in the prompt string. Let's see if setting this when
+ we make sure we're at the end of the drawn prompt string works. */
+ if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
+ cpos_adjusted = 1;
+#endif
+#endif
/* if (len (new) > len (old))
lendiff == difference in buffer
@@ -1648,10 +1693,11 @@ rl_on_new_line_with_prompt ()
int
rl_forced_update_display ()
{
+ register char *temp;
+
if (visible_line)
{
- register char *temp = visible_line;
-
+ temp = visible_line;
while (*temp)
*temp++ = '\0';
}
@@ -1686,8 +1732,14 @@ _rl_move_cursor_relative (new, data)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
dpos = _rl_col_width (data, 0, new);
- if (dpos > woff)
- dpos -= woff;
+ if (dpos > prompt_last_invisible) /* XXX - don't use woff here */
+ {
+ dpos -= woff;
+ /* Since this will be assigned to _rl_last_c_pos at the end (more
+ precisely, _rl_last_c_pos == dpos when this function returns),
+ let the caller know. */
+ cpos_adjusted = 1;
+ }
}
else
#endif
@@ -1706,7 +1758,7 @@ _rl_move_cursor_relative (new, data)
else
#endif
i = _rl_last_c_pos - woff;
- if (new == 0 || CR_FASTER (new, _rl_last_c_pos) ||
+ if (dpos == 0 || CR_FASTER (dpos, _rl_last_c_pos) ||
(_rl_term_autowrap && i == _rl_screenwidth))
{
#if defined (__MSDOS__)
@@ -1728,19 +1780,27 @@ _rl_move_cursor_relative (new, data)
sequence telling the terminal to move forward one character.
That kind of control is for people who don't know what the
data is underneath the cursor. */
-#if defined (HACK_TERMCAP_MOTION)
- if (_rl_term_forward_char)
- {
- for (i = cpos; i < dpos; i++)
- tputs (_rl_term_forward_char, 1, _rl_output_character_function);
- }
- else
-#endif /* HACK_TERMCAP_MOTION */
+
+ /* However, we need a handle on where the current display position is
+ in the buffer for the immediately preceding comment to be true.
+ In multibyte locales, we don't currently have that info available.
+ Without it, we don't know where the data we have to display begins
+ in the buffer and we have to go back to the beginning of the screen
+ line. In this case, we can use the terminal sequence to move forward
+ if it's available. */
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
+ if (_rl_term_forward_char)
+ {
+ for (i = cpos; i < dpos; i++)
+ tputs (_rl_term_forward_char, 1, _rl_output_character_function);
+ }
+ else
+ {
+ tputs (_rl_term_cr, 1, _rl_output_character_function);
+ for (i = 0; i < new; i++)
+ putc (data[i], rl_outstream);
+ }
}
else
for (i = cpos; i < new; i++)
@@ -1889,6 +1949,7 @@ rl_message (va_alist)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
+ local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
(*rl_redisplay_function) ();
return 0;
@@ -1912,6 +1973,7 @@ rl_message (format, arg1, arg2)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
+ local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
(*rl_redisplay_function) ();
return 0;
@@ -1948,12 +2010,14 @@ rl_save_prompt ()
saved_local_prompt = local_prompt;
saved_local_prefix = local_prompt_prefix;
saved_prefix_length = prompt_prefix_length;
+ saved_local_length = local_prompt_len;
saved_last_invisible = prompt_last_invisible;
saved_visible_length = prompt_visible_length;
saved_invis_chars_first_line = prompt_invis_chars_first_line;
saved_physical_chars = prompt_physical_chars;
local_prompt = local_prompt_prefix = (char *)0;
+ local_prompt_len = 0;
prompt_last_invisible = prompt_visible_length = prompt_prefix_length = 0;
prompt_invis_chars_first_line = prompt_physical_chars = 0;
}
@@ -1966,6 +2030,7 @@ rl_restore_prompt ()
local_prompt = saved_local_prompt;
local_prompt_prefix = saved_local_prefix;
+ local_prompt_len = saved_local_length;
prompt_prefix_length = saved_prefix_length;
prompt_last_invisible = saved_last_invisible;
prompt_visible_length = saved_visible_length;
@@ -1974,6 +2039,7 @@ rl_restore_prompt ()
/* can test saved_local_prompt to see if prompt info has been saved. */
saved_local_prompt = saved_local_prefix = (char *)0;
+ saved_local_length = 0;
saved_last_invisible = saved_visible_length = saved_prefix_length = 0;
saved_invis_chars_first_line = saved_physical_chars = 0;
}
@@ -2162,7 +2228,8 @@ _rl_update_final ()
char *last_line;
last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]];
- _rl_move_cursor_relative (_rl_screenwidth - 1, last_line);
+ cpos_buffer_position = -1; /* don't know where we are in buffer */
+ _rl_move_cursor_relative (_rl_screenwidth - 1, last_line); /* XXX */
_rl_clear_to_eol (0);
putc (last_line[_rl_screenwidth - 1], rl_outstream);
}
@@ -2205,6 +2272,7 @@ redraw_prompt (t)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
+ local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
rl_forced_update_display ();
@@ -2307,12 +2375,14 @@ _rl_col_width (str, start, end)
int start, end;
{
wchar_t wc;
- mbstate_t ps = {0};
+ mbstate_t ps;
int tmp, point, width, max;
if (end <= start)
return 0;
+ memset (&ps, 0, sizeof (mbstate_t));
+
point = 0;
max = end;
diff --git a/doc/history.dvi b/doc/history.dvi
index 6377d9d..19b3e5c 100644
--- a/doc/history.dvi
+++ b/doc/history.dvi
Binary files differ
diff --git a/doc/history.html b/doc/history.html
index 439426a..015a3e2 100644
--- a/doc/history.html
+++ b/doc/history.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on December, 6 2005 by texi2html 1.64 -->
+<!-- Created on July, 6 2006 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -2100,7 +2100,7 @@ to permit their use in free software.
<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>December, 6 2005</I>
+This document was generated by <I>Chet Ramey</I> on <I>July, 6 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2262,7 +2262,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>December, 6 2005</I>
+by <I>Chet Ramey</I> on <I>July, 6 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/history.info b/doc/history.info
index 1074c69..50c2598 100644
--- a/doc/history.info
+++ b/doc/history.info
@@ -1,11 +1,11 @@
This is history.info, produced by makeinfo version 4.7 from
/Users/chet/src/bash/readline-src/doc/history.texi.
- This document describes the GNU History library (version 5.1-beta1,
-11 November 2005), a programming tool that provides a consistent user
+ This document describes the GNU History library (version 5.2, 26
+April 2006), a programming tool that provides a consistent user
interface for recalling lines of previously typed input.
- Copyright (C) 1988-2004 Free Software Foundation, Inc.
+ Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -13,7 +13,7 @@ preserved on all copies.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
+ Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -1325,28 +1325,28 @@ Appendix C Function and Variable Index

Tag Table:
-Node: Top1323
-Node: Using History Interactively1948
-Node: History Interaction2456
-Node: Event Designators3880
-Node: Word Designators4815
-Node: Modifiers6454
-Node: Programming with GNU History7681
-Node: Introduction to History8413
-Node: History Storage10103
-Node: History Functions11238
-Node: Initializing History and State Management12227
-Node: History List Management13039
-Node: Information About the History List15071
-Node: Moving Around the History List16568
-Node: Searching the History List17569
-Node: Managing the History File19501
-Node: History Expansion21321
-Node: History Variables23229
-Node: History Programming Example26035
-Node: Copying This Manual28712
-Node: GNU Free Documentation License28972
-Node: Concept Index51378
-Node: Function and Variable Index52218
+Node: Top1314
+Node: Using History Interactively1939
+Node: History Interaction2447
+Node: Event Designators3871
+Node: Word Designators4806
+Node: Modifiers6445
+Node: Programming with GNU History7672
+Node: Introduction to History8404
+Node: History Storage10094
+Node: History Functions11229
+Node: Initializing History and State Management12218
+Node: History List Management13030
+Node: Information About the History List15062
+Node: Moving Around the History List16559
+Node: Searching the History List17560
+Node: Managing the History File19492
+Node: History Expansion21312
+Node: History Variables23220
+Node: History Programming Example26026
+Node: Copying This Manual28703
+Node: GNU Free Documentation License28963
+Node: Concept Index51369
+Node: Function and Variable Index52209

End Tag Table
diff --git a/doc/history.ps b/doc/history.ps
index e321526..b00ec89 100644
--- a/doc/history.ps
+++ b/doc/history.ps
@@ -10,7 +10,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o history.ps history.dvi
%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2005.12.06:1546
+%DVIPSSource: TeX output 2006.07.06:0935
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -3318,30 +3318,29 @@ letter
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fs(GNU)65 b(History)h(Library)p
-150 1418 3600 34 v 1420 1515 a Fr(Edition)31 b(5.1-b)s(eta1,)i(for)d
-Fq(History)e(Library)h Fr(V)-8 b(ersion)31 b(5.1-b)s(eta1.)3139
-1623 y(No)m(v)m(em)m(b)s(er)g(2005)150 4935 y Fp(Chet)45
-b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l
-(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11
-b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141
-3600 17 v eop end
+150 1418 3600 34 v 1920 1515 a Fr(Edition)31 b(5.2,)h(for)e
+Fq(History)e(Library)h Fr(V)-8 b(ersion)31 b(5.2.)3333
+1623 y(April)f(2006)150 4935 y Fp(Chet)45 b(Ramey)-11
+b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
+5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
+-11 b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 150 3024 a Fr(This)31 b(do)s(cumen)m(t)g(describ)
-s(es)g(the)g(GNU)h(History)g(library)f(\(v)m(ersion)i(5.1-b)s(eta1,)h
-(11)e(No)m(v)m(em)m(b)s(er)h(2005\),)150 3133 y(a)26
-b(programming)g(to)s(ol)h(that)g(pro)m(vides)f(a)g(consisten)m(t)i
-(user)d(in)m(terface)i(for)f(recalling)i(lines)e(of)g(previously)150
-3243 y(t)m(yp)s(ed)k(input.)150 3377 y(Cop)m(yrigh)m(t)602
-3374 y(c)577 3377 y Fo(\015)g Fr(1988-2004)k(F)-8 b(ree)32
-b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)150 3512
-y(P)m(ermission)g(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d(distribute)h
-(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m(vided)f(the)150
-3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s(ermission)g(notice)h
-(are)g(preserv)m(ed)f(on)h(all)g(copies.)390 3756 y(P)m(ermission)k(is)
-h(gran)m(ted)f(to)h(cop)m(y)-8 b(,)38 b(distribute)d(and/or)g(mo)s
-(dify)f(this)h(do)s(cumen)m(t)g(under)390 3866 y(the)j(terms)g(of)g
-(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8
-b(ersion)39 b(1.1)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
+TeXDict begin 2 1 bop 150 3024 a Fr(This)28 b(do)s(cumen)m(t)i(describ)
+s(es)e(the)i(GNU)g(History)f(library)g(\(v)m(ersion)h(5.2,)h(26)f
+(April)f(2006\),)j(a)e(program-)150 3133 y(ming)38 b(to)s(ol)h(that)f
+(pro)m(vides)g(a)g(consisten)m(t)i(user)d(in)m(terface)i(for)f
+(recalling)h(lines)g(of)f(previously)f(t)m(yp)s(ed)150
+3243 y(input.)150 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577
+3377 y Fo(\015)30 b Fr(1988-2006)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)
+-8 b(oundation,)32 b(Inc.)150 3512 y(P)m(ermission)g(is)h(gran)m(ted)g
+(to)f(mak)m(e)i(and)d(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g
+(man)m(ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f
+(and)f(this)g(p)s(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g
+(copies.)390 3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
+b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
+(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
+b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
+b(1.2)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28
b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33
diff --git a/doc/history.texi b/doc/history.texi
index f6a3d20..1af40c7 100644
--- a/doc/history.texi
+++ b/doc/history.texi
@@ -14,7 +14,7 @@ This document describes the GNU History library
a programming tool that provides a consistent user interface for
recalling lines of previously typed input.
-Copyright @copyright{} 1988-2004 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -22,7 +22,7 @@ are preserved on all copies.
@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license is
diff --git a/doc/hstech.texi b/doc/hstech.texi
index 4fdda5f..47ba8a5 100644
--- a/doc/hstech.texi
+++ b/doc/hstech.texi
@@ -1,7 +1,7 @@
@ignore
This file documents the user interface to the GNU History library.
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
+Copyright (C) 1988-2006 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
diff --git a/doc/hsuser.texi b/doc/hsuser.texi
index 6c89183..f98983b 100644
--- a/doc/hsuser.texi
+++ b/doc/hsuser.texi
@@ -1,7 +1,7 @@
@ignore
This file documents the user interface to the GNU History library.
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
+Copyright (C) 1988-2006 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
diff --git a/doc/readline.0 b/doc/readline.0
index 12d51fd..5d9f609 100644
--- a/doc/readline.0
+++ b/doc/readline.0
@@ -64,13 +64,14 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
Readline is customized by putting commands in an initialization file
(the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
the IINNPPUUTTRRCC environment variable. If that variable is unset, the
- default is _~_/_._i_n_p_u_t_r_c. When a program which uses the readline library
- starts up, the init file is read, and the key bindings and variables
- are set. There are only a few basic constructs allowed in the readline
- init file. Blank lines are ignored. Lines beginning with a ## are com-
- ments. Lines beginning with a $$ indicate conditional constructs.
- Other lines denote key bindings and variable settings. Each program
- using this library may add its own commands and bindings.
+ default is _~_/_._i_n_p_u_t_r_c. If that file does not exist or cannot be read,
+ the ultimate default is _/_e_t_c_/_i_n_p_u_t_r_c. When a program which uses the
+ readline library starts up, the init file is read, and the key bindings
+ and variables are set. There are only a few basic constructs allowed
+ in the readline init file. Blank lines are ignored. Lines beginning
+ with a ## are comments. Lines beginning with a $$ indicate conditional
+ constructs. Other lines denote key bindings and variable settings.
+ Each program using this library may add its own commands and bindings.
For example, placing
@@ -94,7 +95,9 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
All that is required is the name of the command or the text of a macro
and a key sequence to which it should be bound. The name may be speci-
fied in one of two ways: as a symbolic key name, possibly with _M_e_t_a_- or
- _C_o_n_t_r_o_l_- prefixes, or as a key sequence.
+ _C_o_n_t_r_o_l_- prefixes, or as a key sequence. The name and key sequence are
+ separated by a colon. There can be no whitespace between the name and
+ the colon.
When using the form kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, _k_e_y_n_a_m_e is the name
of a key spelled out in English. For example:
@@ -923,4 +926,4 @@ BBUUGGSS
-GNU Readline 5.1-beta1 2005 Sep 13 READLINE(3)
+GNU Readline 5.2 2006 Apr 26 READLINE(3)
diff --git a/doc/readline.3 b/doc/readline.3
index 90cd997..2c45ed2 100644
--- a/doc/readline.3
+++ b/doc/readline.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet@ins.CWRU.Edu
.\"
-.\" Last Change: Tue Sep 13 12:07:26 EDT 2005
+.\" Last Change: Thu Feb 9 09:49:51 EST 2006
.\"
-.TH READLINE 3 "2005 Sep 13" "GNU Readline 5.1-beta1"
+.TH READLINE 3 "2006 Apr 26" "GNU Readline 5.2"
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
@@ -116,6 +116,8 @@ The name of this file is taken from the value of the
.B INPUTRC
environment variable. If that variable is unset, the default is
.IR ~/.inputrc .
+If that file does not exist or cannot be read, the ultimate default is
+.IR /etc/inputrc .
When a program which uses the readline library starts up, the
init file is read, and the key bindings and variables are set.
There are only a few basic constructs allowed in the
@@ -168,6 +170,8 @@ command or the text of a macro and a key sequence to which
it should be bound. The name may be specified in one of two ways:
as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP
prefixes, or as a key sequence.
+The name and key sequence are separated by a colon. There can be no
+whitespace between the name and the colon.
.PP
When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP,
.I keyname
diff --git a/doc/readline.dvi b/doc/readline.dvi
index bea55e6..5b33fc6 100644
--- a/doc/readline.dvi
+++ b/doc/readline.dvi
Binary files differ
diff --git a/doc/readline.html b/doc/readline.html
index 11d496a..b09e42e 100644
--- a/doc/readline.html
+++ b/doc/readline.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on December, 6 2005 by texi2html 1.64 -->
+<!-- Created on July, 6 2006 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -491,7 +491,9 @@ Any user can customize programs that use Readline by putting
commands in an <EM>inputrc</EM> file, conventionally in his home directory.
The name of this
file is taken from the value of the environment variable <CODE>INPUTRC</CODE>. If
-that variable is unset, the default is <TT>`~/.inputrc'</TT>.
+that variable is unset, the default is <TT>`~/.inputrc'</TT>. If that
+file does not exist or cannot be read, the ultimate default is
+<TT>`/etc/inputrc'</TT>.
</P><P>
When a program which uses the Readline library starts up, the
@@ -798,9 +800,11 @@ the command does.
Once you know the name of the command, simply place on a line
in the init file the name of the key
you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
+command.
+There can be no space between the key name and the colon -- that will be
+interpreted as part of the key name.
+The name of the key can be expressed in different ways, depending on
+what you find most comfortable.
</P><P>
In addition to command names, readline allows keys to be bound
@@ -1976,7 +1980,7 @@ in the consistency of user interface across discrete programs that need
to provide a command line interface.
</P><P>
-Copyright (C) 1988-2005 Free Software Foundation, Inc.
+Copyright (C) 1988-2006 Free Software Foundation, Inc.
</P><P>
Permission is granted to make and distribute verbatim copies of
@@ -3558,8 +3562,10 @@ pending input has not already been read with <CODE>rl_read_key()</CODE>.
<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
wait for <VAR>u</VAR> microseconds for input before calling any function
-assigned to <CODE>rl_event_hook</CODE>. The default waiting period is
-one-tenth of a second. Returns the old timeout value.
+assigned to <CODE>rl_event_hook</CODE>. <VAR>u</VAR> must be greater than or equal
+to zero (a zero-length timeout is equivalent to a poll).
+The default waiting period is one-tenth of a second.
+Returns the old timeout value.
</DL>
</P><P>
@@ -4529,6 +4535,9 @@ the directory portion of the pathname the user typed.
It returns an integer that should be non-zero if the function modifies
its directory argument.
It could be used to expand symbolic links or shell variables in pathnames.
+At the least, even if no other expansion is performed, this function should
+remove any quote characters from the directory name, because its result will
+be passed directly to <CODE>opendir()</CODE>.
</DL>
</P><P>
@@ -6543,7 +6552,7 @@ to permit their use in free software.
<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>December, 6 2005</I>
+This document was generated by <I>Chet Ramey</I> on <I>July, 6 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -6705,7 +6714,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>December, 6 2005</I>
+by <I>Chet Ramey</I> on <I>July, 6 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/readline.info b/doc/readline.info
index 7f2d0f3..dc6ee90 100644
--- a/doc/readline.info
+++ b/doc/readline.info
@@ -1,12 +1,11 @@
This is readline.info, produced by makeinfo version 4.7 from
/Users/chet/src/bash/readline-src/doc/rlman.texi.
- This manual describes the GNU Readline Library (version 5.1-beta1,
-11 November 2005), a library which aids in the consistency of user
-interface across discrete programs which provide a command line
-interface.
+ This manual describes the GNU Readline Library (version 5.2, 26
+April 2006), a library which aids in the consistency of user interface
+across discrete programs which provide a command line interface.
- Copyright (C) 1988-2004 Free Software Foundation, Inc.
+ Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -14,7 +13,7 @@ preserved on all copies.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
+ Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -334,7 +333,8 @@ of keybindings. Any user can customize programs that use Readline by
putting commands in an "inputrc" file, conventionally in his home
directory. The name of this file is taken from the value of the
environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'.
+is `~/.inputrc'. If that file does not exist or cannot be read, the
+ultimate default is `/etc/inputrc'.
When a program which uses the Readline library starts up, the init
file is read, and the key bindings are set.
@@ -543,9 +543,10 @@ Key Bindings
Once you know the name of the command, simply place on a line in
the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. The name of the key
- can be expressed in different ways, depending on what you find most
- comfortable.
+ a colon, and then the name of the command. There can be no space
+ between the key name and the colon - that will be interpreted as
+ part of the key name. The name of the key can be expressed in
+ different ways, depending on what you find most comfortable.
In addition to command names, readline allows keys to be bound to
a string that is inserted when the key is pressed (a MACRO).
@@ -1280,7 +1281,7 @@ the standard `vi' movement keys, move to previous history lines with
aiding in the consistency of user interface across discrete programs
that need to provide a command line interface.
- Copyright (C) 1988-2005 Free Software Foundation, Inc.
+ Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice pare
@@ -2251,8 +2252,10 @@ File: readline.info, Node: Character Input, Next: Terminal Management, Prev:
-- Function: int rl_set_keyboard_input_timeout (int u)
While waiting for keyboard input in `rl_read_key()', Readline will
wait for U microseconds for input before calling any function
- assigned to `rl_event_hook'. The default waiting period is
- one-tenth of a second. Returns the old timeout value.
+ assigned to `rl_event_hook'. U must be greater than or equal to
+ zero (a zero-length timeout is equivalent to a poll). The default
+ waiting period is one-tenth of a second. Returns the old timeout
+ value.

File: readline.info, Node: Terminal Management, Next: Utility Functions, Prev: Character Input, Up: Readline Convenience Functions
@@ -2853,7 +2856,10 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
portion of the pathname the user typed. It returns an integer
that should be non-zero if the function modifies its directory
argument. It could be used to expand symbolic links or shell
- variables in pathnames.
+ variables in pathnames. At the least, even if no other expansion
+ is performed, this function should remove any quote characters
+ from the directory name, because its result will be passed
+ directly to `opendir()'.
-- Variable: rl_compdisp_func_t * rl_completion_display_matches_hook
If non-zero, then this is the address of a function to call when
@@ -4084,11 +4090,11 @@ Function and Variable Index
* rl_attempted_completion_function: Completion Variables.
(line 12)
* rl_attempted_completion_over: Completion Variables.
- (line 207)
+ (line 210)
* rl_basic_quote_characters: Completion Variables.
- (line 96)
+ (line 99)
* rl_basic_word_break_characters: Completion Variables.
- (line 90)
+ (line 93)
* rl_begin_undo_group: Allowing Undoing. (line 29)
* rl_bind_key: Binding Keys. (line 22)
* rl_bind_key_if_unbound: Binding Keys. (line 32)
@@ -4121,37 +4127,37 @@ Function and Variable Index
* rl_complete_internal: Completion Functions.
(line 10)
* rl_completer_quote_characters: Completion Variables.
- (line 113)
+ (line 116)
* rl_completer_word_break_characters: Completion Variables.
- (line 99)
+ (line 102)
* rl_completion_append_character: Completion Variables.
- (line 137)
+ (line 140)
* rl_completion_display_matches_hook: Completion Variables.
- (line 77)
+ (line 80)
* rl_completion_entry_function <1>: Completion Variables.
(line 7)
* rl_completion_entry_function: How Completing Works.
(line 55)
* rl_completion_found_quote: Completion Variables.
- (line 165)
+ (line 168)
* rl_completion_mark_symlink_dirs: Completion Variables.
- (line 172)
+ (line 175)
* rl_completion_matches: Completion Functions.
(line 45)
* rl_completion_mode: Completion Functions.
(line 37)
* rl_completion_query_items: Completion Variables.
- (line 131)
+ (line 134)
* rl_completion_quote_character: Completion Variables.
- (line 153)
+ (line 156)
* rl_completion_suppress_append: Completion Variables.
- (line 147)
+ (line 150)
* rl_completion_suppress_quote: Completion Variables.
- (line 159)
+ (line 162)
* rl_completion_type: Completion Variables.
- (line 214)
+ (line 217)
* rl_completion_word_break_hook: Completion Variables.
- (line 104)
+ (line 107)
* rl_copy_keymap: Keymaps. (line 17)
* rl_copy_text: Modifying Text. (line 15)
* rl_crlf: Redisplay. (line 30)
@@ -4178,15 +4184,15 @@ Function and Variable Index
* rl_explicit_arg: Readline Variables. (line 233)
* rl_extend_line_buffer: Utility Functions. (line 12)
* rl_filename_completion_desired: Completion Variables.
- (line 187)
+ (line 190)
* rl_filename_completion_function: Completion Functions.
(line 59)
* rl_filename_dequoting_function: Completion Variables.
(line 37)
* rl_filename_quote_characters: Completion Variables.
- (line 119)
+ (line 122)
* rl_filename_quoting_desired: Completion Variables.
- (line 197)
+ (line 200)
* rl_filename_quoting_function: Completion Variables.
(line 24)
* rl_forced_update_display: Redisplay. (line 11)
@@ -4211,11 +4217,11 @@ Function and Variable Index
* rl_getc_function: Readline Variables. (line 125)
* rl_gnu_readline_p: Readline Variables. (line 78)
* rl_ignore_completion_duplicates: Completion Variables.
- (line 183)
+ (line 186)
* rl_ignore_some_completions_function: Completion Variables.
(line 56)
* rl_inhibit_completion: Completion Variables.
- (line 222)
+ (line 225)
* rl_initialize: Utility Functions. (line 16)
* rl_insert_completions: Completion Functions.
(line 32)
@@ -4288,7 +4294,7 @@ Function and Variable Index
(line 113)
* rl_show_char: Redisplay. (line 33)
* rl_special_prefixes: Completion Variables.
- (line 124)
+ (line 127)
* rl_startup_hook: Readline Variables. (line 110)
* rl_stuff_char: Character Input. (line 19)
* rl_terminal_name: Readline Variables. (line 82)
@@ -4340,58 +4346,58 @@ Function and Variable Index

Tag Table:
-Node: Top1339
-Node: Command Line Editing1977
-Node: Introduction and Notation2629
-Node: Readline Interaction4252
-Node: Readline Bare Essentials5444
-Node: Readline Movement Commands7234
-Node: Readline Killing Commands8200
-Node: Readline Arguments10121
-Node: Searching11166
-Node: Readline Init File13318
-Node: Readline Init File Syntax14384
-Node: Conditional Init Constructs26319
-Node: Sample Init File28853
-Node: Bindable Readline Commands31971
-Node: Commands For Moving33029
-Node: Commands For History33891
-Node: Commands For Text37016
-Node: Commands For Killing39743
-Node: Numeric Arguments41886
-Node: Commands For Completion43026
-Node: Keyboard Macros44571
-Node: Miscellaneous Commands45143
-Node: Readline vi Mode48505
-Node: Programming with GNU Readline50329
-Node: Basic Behavior51304
-Node: Custom Functions54721
-Node: Readline Typedefs56205
-Node: Function Writing57844
-Node: Readline Variables59151
-Node: Readline Convenience Functions68853
-Node: Function Naming69843
-Node: Keymaps71105
-Node: Binding Keys72877
-Node: Associating Function Names and Bindings77424
-Node: Allowing Undoing79686
-Node: Redisplay82236
-Node: Modifying Text86136
-Node: Character Input87382
-Node: Terminal Management89180
-Node: Utility Functions90616
-Node: Miscellaneous Functions92981
-Node: Alternate Interface95278
-Node: A Readline Example97437
-Node: Readline Signal Handling99340
-Node: Custom Completers105208
-Node: How Completing Works105928
-Node: Completion Functions109242
-Node: Completion Variables112814
-Node: A Short Completion Example125004
-Node: Copying This Manual137177
-Node: GNU Free Documentation License137439
-Node: Concept Index159846
-Node: Function and Variable Index161502
+Node: Top1330
+Node: Command Line Editing1968
+Node: Introduction and Notation2620
+Node: Readline Interaction4243
+Node: Readline Bare Essentials5435
+Node: Readline Movement Commands7225
+Node: Readline Killing Commands8191
+Node: Readline Arguments10112
+Node: Searching11157
+Node: Readline Init File13309
+Node: Readline Init File Syntax14463
+Node: Conditional Init Constructs26513
+Node: Sample Init File29047
+Node: Bindable Readline Commands32165
+Node: Commands For Moving33223
+Node: Commands For History34085
+Node: Commands For Text37210
+Node: Commands For Killing39937
+Node: Numeric Arguments42080
+Node: Commands For Completion43220
+Node: Keyboard Macros44765
+Node: Miscellaneous Commands45337
+Node: Readline vi Mode48699
+Node: Programming with GNU Readline50523
+Node: Basic Behavior51498
+Node: Custom Functions54915
+Node: Readline Typedefs56399
+Node: Function Writing58038
+Node: Readline Variables59345
+Node: Readline Convenience Functions69047
+Node: Function Naming70037
+Node: Keymaps71299
+Node: Binding Keys73071
+Node: Associating Function Names and Bindings77618
+Node: Allowing Undoing79880
+Node: Redisplay82430
+Node: Modifying Text86330
+Node: Character Input87576
+Node: Terminal Management89474
+Node: Utility Functions90910
+Node: Miscellaneous Functions93275
+Node: Alternate Interface95572
+Node: A Readline Example97731
+Node: Readline Signal Handling99634
+Node: Custom Completers105502
+Node: How Completing Works106222
+Node: Completion Functions109536
+Node: Completion Variables113108
+Node: A Short Completion Example125502
+Node: Copying This Manual137675
+Node: GNU Free Documentation License137937
+Node: Concept Index160344
+Node: Function and Variable Index162000

End Tag Table
diff --git a/doc/readline.ps b/doc/readline.ps
index 4d8efc4..21b7f99 100644
--- a/doc/readline.ps
+++ b/doc/readline.ps
@@ -10,7 +10,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o readline.ps readline.dvi
%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2005.12.06:1546
+%DVIPSSource: TeX output 2006.07.06:0935
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -3622,419 +3622,420 @@ B00DEA3A9B747FEEBC4A11E5B9B8B05CA2709B8AA935A42159D3DE399544F5AF
AC1CC00F6CB94AB69856078C9A2EB2046BB9055CDD6A0622112F7D3710143F1C
20CD8DAB4109CD47BC00EBCB88314081C1D6C43132412F261CE0262FA28DB7A3
C7D8534BCBE1A60488EA230DC558B73C72AE87539A9D7E28C2BE05FC05F58DDD
-87117B7DEC7977BAB45D4A945708705F0172351337540995AE30014D72EC74BF
-9FE719C2DB7219EA5E6A3CA53D7C27EA091E4DE12F3F810F3EC4838B5B3A872A
-1B0DFE67C25B2ACABEF6D82C45EC9B15012FA9D0EF69265097E91F969C8E22E4
-825160B96EE9181005BCA35E04547BB8CBAB3B30F2528D7079582C527E1B8CA6
-C1529ED70029C8B457101889C37DE12541A2E6341F99E181DEAB84953F0733CC
-7173AF3A2D4999A6F798AB596B87D44F6B57672D6E475A1EFABD76698CDA887A
-86201143CB6EC8DD7A64AF229C605287F51AA88BA1C990396DFEFDD49DC6CA32
-C04D614930E769EAC512FF6641FBE41DC7A17B1D97B3FBD502CEEE62B4025AD4
-CDB70EAC958BF00377ED2DE47F196DA9DF0AA00C4E7D8A0578CDC6FEBD6C2DF7
-1D106B4F96B691EFC625F778172E9A9B2C9A584BE29A1A287FE111BBF534C83C
-B27B599AF047F721A0CCFA87D1C00B143C462875E23622D3A779FF507C99F3BC
-BB4CAF154F6778FC3FAD419FE52CBB00BC410138425272C2FAAD9DDC4F890C5C
-A31BD41CE648AB1F381FA44F06882480358894A6AAC407A6B70E571A0CF30B88
-9EF5E9A44738359B3E5A9704F8827ECDD5074ED2282366CE985AAFADA0E45B21
-26023C1971DE56B6FB238242559F7D045FF616ADF1944810ED556631057C7D7E
-105F841A51C6BB76AB499A1E36DEDBCA0E9AB0186F59603F20B56523B19E811B
-D8CFDF1025D599542B34AC0484E44656800FD656D07030C7FA5A6A2FD92E2E65
-D92F87A8B9FE63746372D2C48675C2E786BF8B83ABFAEE2B47F36C0D6F7C8C1E
-D13BDF31873139BBA84A9083D29C46AB1AB9DA0DFFA2616A4942B9590C690405
-811F77C3920FF661BA03A1A50BA1028E968FA65306A60A8E400A9414841167C0
-B486063FE9D4E76C5147485E05A5D9EF4809CA0C41DA2123458A39F503393ACC
-C9149FE8231D20E669D67F3D9C19547BAD194150C13C23FBF9244CD77F898337
-D48E576659113F5F5B9DFCE2AD35EA9CB8EB0FE36BF2761CE4130A74D320C419
-B33AEF7611D00554920D6484F1C2EB22F9037A9F7002BF270C104E2D7E46E651
-53EA393C90A7A70DC8F72C2733832758C18398AEB8807F392A12EC9468848E08
-3749E6477D7589D6CC7AD63ECD52397C33372AD8B13BA754BBDA5F8F92206235
-ACB6F489B306720C36F5A3F0902EA7B4C69968C4362C7CE69DF0A31F90287083
-C7C004934F23A70386C9F0DE0FF5684623F8F723A7B5DD5EA6981FA2130078B3
-7EA4E68FD012555D2A74BA5109F1D679834C1B4A8DD8F223C809699F68E9F452
-3E7FC7E7F9E30A19C5212A06A862FC4ABE835B0B17A9A7788C5EDC7B33DD4080
-F3EE40A8804B7AD8674BC414ECBEB5DE743BD7963254A3A1693F281FCC93C518
-E54550AE2F236B42B1AEDF3774E603ED850DDCF09A6EC4A92D31C29BA867B3E5
-CA7E7D37B9985C6887A1402C56F574D8EFBEC2353E4A37294401A267FB79FCFB
-49C5A6DA374E11EF1C2F015574B9A863DC7ADE154174789E5C0CAA8F0E648986
-16433040F58C804FD5A55450B9B11676D923C2B0C736CE71DE810FF93B29EB25
-B7F7FC77020345B09006F502D7F83B472B807424C4B02102B242C07AD309D63C
-24FDEAA9ED39D7D5A3B01ED5DF589703F10149EC39ED63A5C337F25C0BFC3621
-B119AA613027CB5069C5D6854BFE89BD19441E91A48DD928839CBFE3317AF4A1
-4FD6F452D9344801CBB3DE084DB20DDC7F5111CA90375543CB763F236B29949E
-ADDE2DC1223515BC76F812683604756A157173F8CE30F9FC794F8C7BB07C5252
-3185EDE84CE45E99681DD14A6BC9DE1E942FCBA2CD2B7A94AB7E5E451FA24CED
-6D008FEE900D5D8322154DE40D893A6BA762DEEE301DBC40099C2CC940098708
-8703C1455D53900E0CF9E84963A0B525919F0CC2B64B8C835DA217F7245432A9
-1DB5F10A9D4F5E63C28C40C4799D63B8167C8E655B0FD33487CDACE323F30452
-53856B3EA67DEAD78E79800F6C0BEEC94E9F1DEE63DDA1F873C72A3A7444E501
-B6B8FBC2661FDA22D4B4D1F6C62226899EF7A53F7DF6E9E0BE0F3E94715D786B
-D80ACCFE3CFCD44D2C448C9D6D6F653E4A2A67A3E7FA3BC5A96217224772AF14
-F6ED81F68D5057A80FF9AC1C486F38C7F1C77AC6405BDE96A836A0A44E7905AF
-2DF79F86D4BCCE65BFBC77F2D328D8807BDFE4558A3EF98BCE198C75DBA06144
-C62BE0EF71E2FB24F882A01770EDCB7E9E8E301284AD5CF2E0C52BC215FD6D30
-BD65A26C8ACDBBAE2CDA9A44F1DE42B87C1823280DAE64B66996048DE1967489
-7D2BEB683C93C909F1B09166075DF1720E8BAB3CEDAC1DA6C942D71F59D74D98
-D7D524CE9C5F30FABE9925BB30E2D35E274A052FF6324C767AC44EA28D091D8F
-57B6C156EA89C0889161EE4F8C7DA5F8337B3771C6E0E93ECD69E7DC5258A9F2
-289CC11FDAA6E3517B7375762E6FCBC1BBC88192AD19299FDAD5CD22E504209C
-1BE6CDC2EFEECB8860720189983485E10BEE73E6B4872C8B419F86E001925E28
-B483C99322E6DAA27C2937C8907E713C31DB7EB0BC8725AF870E3744168B97C6
-BCF3483EBA58CD5E9F9191C5DF2220E24B5A0739172E6D86EB41EB11276B0500
-69ED1186F05525572CDBDF3BAAFCC05E372D5C0CE4F8ECF7889C200E194A1FF3
-DFF0D042E7D3AC3A51A827A986E6A3DB8F8BCC5B66E509F9DCA18489A296A1C9
-C1F76BF8B6A79E72C1E0E9C0A9F49954092C414DFB77BE1D13214369E86D2608
-52E141A5722ACB31FFFD2CBBEB9CAEE98D09601D988E98FCD0835D574064CB29
-D192A8410690CEC6FED676E5292D87C8EE0354B5E1A2186BBE3D9BBFC1C0ADA9
-65A9B760BB36F52E3923624957D593F8FF6FC6B6BD6A9DAD2B511AC78FC52A64
-BB64B0BD0235689F014D92647BC1ACCDE52332FEC0A7428D7216FE2F841AA42E
-A2DE24564A6A693E0E3291075A1D18337DA5DEDAEA6FDAB77B3ABF2711E546EE
-616EEC27D4D0D8BD5FC8D2DA1DBFFECEF0640D7159DCBCEF0BF8DA0B6CAC1AEE
-BC67DD2482470346CF8EFDD8CFE22427E02669044C78EC9947204F9651AB39FE
-4B66AF0DA9A966FE5BA4360DB057F1F14D13B3DE6F94CC0BB83AA0F09671C0A5
-708A0B59172593C93D85F048704BA2579DC324B3AEF58089AAE163462C2E0332
-D4985B7B50B1F37048C0E79E7B85A8092B89E6077108FE644CFD0F58B43E9923
-8221503464DFF94AF49FC1121ABEDF250371C9349DCF779C3D488CC43A250C0C
-B47604660F86F93B3CC16044E230E48A97606857283DFE219220EB1CCA98377A
-B7C54440AFF35AAA326466485AFAA3F5AC8E3D9DBEAE6107AA9F8E97818C5BC8
-852B21ADDF3CAF7CA759CE1443474D76DCAC593A96D757AC642B6B8CBCF89ED3
-4FD40AB998FD245A5B4DF4D501132BAAD6AA70B272A3788E0AE7093B6A338199
-FF7CEFE7EF6AD49AFAF45AC84FF67F6C890B0274F75B65461A8685FA4407AC27
-17DD00EB2B7A5C0771FD25B8C41450E91D2EDBC708B8E07481183387BFD652FC
-BF1F05F160FBA53D33C11959F3F2299ED40A81392333E7D106EF5B40F0D38663
-DEE095DAF5B72D00BB4F9F8F26356B3A6456017B94946A3517CF712950E9FF4B
-EB8988AE17432EC9AA2048D7E2809DAF6BAD894DD2637923E3D75767988DE43D
-AB22D37C6C0420C658BEE5CA676128DBEE15CB2450DA40204279F061ACAFD15D
-94B65148434362381CD614900159F7AC2EE5EF7C0531C73E1571BA7689078727
-E865CD8563A36AACF35E6A1E162A9C98C99574E813B9100BCA53A8D71E697AC6
-615CF0A599238D369243C20D1B4E8BF02F727EA5A2FF673F0AC76C84B5D70847
-1DDE277EE5EF41C2083185C5E11C1A4CF77A8A2C3ADFC0FC8F2711AC9B38F92A
-B51AC94073673A67D1AB54B9356E108233B2E88AE004BE9B6254CE5198AF99E3
-7D4995BBAE32DEB738FEB65A13D3F22065F83E48A30F0BD948AAA1C93E7C0B84
-CF3398C2B86B33759F8018239FC2CE615DB3B37B2C35E446A6FC8C24B85FF6C6
-10742456817381CD070DB115E25F15D85BC8BB3EDEECA6F21B580913221EC80C
-64FEBEBF64A82046322F289D32FEDC03313407EB63FA4533705C01AA85D12836
-E190848B461390A60E4B0816C5090E8CBAF315BF4E267B0D3875C06818A9CEDA
-6A16BBDC9E0701276CF6E7B9CF6882FD5DFD28E9C3E3C2AC9036EA3F24A4EA71
-F65088DA619A62AD63433DF16A4DCD7084FA3B6D4C20A76B3A5B437437C02A20
-452A79B7A778C8A245D3B2386F8F80D6303C8297C9E49C71791B2A940B704044
-EC687C7F706479D3B02353BDA6E78870436FCBBF1E4BDD0CAD173A707AB15941
-D9532F8C552DAF7E3DA6B02498C9E13912F071E3F117085C4ECD21CB3F6E1CAC
-641ACE00E92693775C29AA496D85F21F9A7D0E3E96B957208CE8D1F7540C2B7F
-40A71255551234D917C23977B787D4B97D8CFA28D1B3C6B02793278B0ECC2F2C
-7E7DD001E1585A66B1A3019910C1669BE8AD6705571AF79E1A586B166E3315FD
-BA3CB4C426DE470C8FE28E303576F34394D531359284AA34963965804A90272E
-9896F666F2B0B1CA29E49800E19C5286FB5156525C955EE830E3E4888D07ACA8
-63102C9460695B44EF7D422EC1A819F1E80AE3A98342AB0E0B775547641250C5
-47F024223E37ED8970976022B478F9C5C3F8831FDB4DDCB2C81B6D1C2A7FE134
-D24384D9680372DA0B4CE881ED6D3C6C334A0F5DF3DEF9D262052B1047951FE4
-42DD5270F367E94D33A58E9CFA94CC736F9A5FAA47D905CD28AB4E42D34F4085
-8C04D8BC65BBF069FC0342492A6929A211B0347995B5386A05A63A78F6D1EAC5
-72D925336C862CC10A5EF3F3C726079EFE3DDEC28618380920C7D9F3C73FFCEB
-137BAF5DD9DEA609FA95AB7F1770A8A82F98627289565D87AEF6FDB0FFB364DD
-18203D138240BF6A02636FDEC85A5996695C6A6C8E2E41B295819A48BE7CF094
-8B127B26AFECAE31E10E659AFC05A015C2DBD2678717935705723EC91291983B
-FB48D71769AF5CC34CB3844B68827C2E817A8F93AF30A0670AA8E601F71443BC
-FA420735CC19C90299187EB1183B49641DBBD6F87F115EB90D2E504F297B04C0
-FB5CCFADFA826180F6D3814ADFC7902AACDD197F167520CC528C824E6471327C
-B50C4C1371635038FB331982C7DC2DF48FEC3F4048D11AF5BBA9158B0B86BA28
-4BC1AB2607A3ECC2C944CD3BCBE8C5479C4CCC4F15BAF0AD9AF9296C68778AC6
-ED52033F9B0425F21F83ED2A452E81994F36E293948DDB1F27554EE3D1922A5E
-1B9F13FFFE79EDF68CB418FC8F67A17856F8E442201AD68F45095306AB6E0391
-C32F98C7B460241253897B6453D9F17B92234643C800BE71544985AA22D23881
-7E7601C90E655D5C9DC4C70F55B8617ED78FAD85AAFA391FF751BF0C93F03F79
-BEA299271C7B6FED8BD42D345366FDC0D44E061FC516F3514837285B5DE60D8F
-EB1E6424D840F466A936C9FDAB88C342EB887152C5A0EB20749916800830D3F5
-21D29BD7D1147B0F99148E407BAE52F1E124977E8C05E46D54108065366DAAB2
-94278CC4BE910A68A0644DB6F88423F9233A203D89CC3DC88A0F84AFE4E998E4
-C4F082F51F8693F95A6F08A96B5627A8C10004CFF35E1127CC4299BC159B2711
-27B895371A65D8DA94BD9E1BB56C5AE84C8BBC23A526E6133E89BBEADD2E25F8
-318EF4BB5541DF68AEA712940A9B50C1AFAA09F19F57BA4E29986DBAC02368E0
-2415C7DF37150E196CDD74337CB26454EA6F0AC14F1F598810D431C075C8B939
-A205688E86987C8A9C6E56042D2627C5E6730445D8A394DC6CE6DC6F3056373F
-DD8CC18EA19EF4F3F4B5F2055AC85F241C9E9E970687FC6B22385AF3BDA70A6F
-A6FE8C36FAE02F38180DBFEE65C6737EA9738B49D774035CA60EB228D8CCA709
-30FBAF6BDB58802708071E543B6A565BB775F8ABF0BE3E13D4F7B97542DC4F46
-CF3AE241496A29A295B807D367D0237C1F397B942A65E60A1313F78210F7E082
-4D355195B993BEC149C905B8D1AFB89C37A377D08AB853C1A0E56B42423F5308
-6824021E43157F85E1A5DAB38E1147C9C4B50E3B765B410E56999B33D9D66488
-26E8780DB2A1B7A8936F67452935F271E262823441124657F6B283ADE79E05F4
-9FAA4D2734CB7B7B8EECD155C9FFED48A47BADE32D1CA56CA5801C6D4B5BC900
-C3779C078FCF5670F74DE65556E8A6545269D157D54EE8D555F0B4DE4315486C
-FBC6C534DF83E527082051128187115A68A8B2F2AD7224C0CF054C2A6FA7B7C3
-BAC811A5C717A33FA95F27E2EF005C07B62A810A4EF62C1DEB5BDC8117F395DA
-0D4EE7D555A2C9FBF0214600B6A6CC0129EDD4ED15269631AC66E133D42257A2
-8C7426DEA9D01118A93BB083849BB26AD61F0FC29BC233A09E7FAB87F1F70616
-3C23EB70ACE221E3BBD29370532EF0CC134984065EA1D8692BD8CC0858BD61FF
-96418CB9653EFC45730FB9B4463B2D63245E3720E95E7C1A000B903B102E7511
-418AC726633373A4F0BE6B3F37A197D0B75ACB722597FF179AB1AF95ADF841B9
-97B35A48FE7E3EC594B291A202B7855640E143309CCAB41F25C3C35EA6BB0F11
-9617F4DC575DE1553C432E2C48E1E77AB04D85A0BC185C88BAFD0E0D5D4E90BB
-89DFC7D18824ED125E195AF2341B3017E8282ACBDA90F96EF19B8FA223141F17
-CB38018CCA5D9BDDB5BC5BA2C6E848768331C9D73EBE7F176CE969E419A7B865
-A12E853F314E3071F58F0E8A07AEDADB951A7015FBA6F47B5981AA089035E349
-40406D0334BBB1F6F21C604269B207E8432B5C48D6089CBA115D05FCD30DF213
-CFDF4AC7A3351C5A89CED39F9267D4F6124B9350C9FFCE34E81219CC604E9F3B
-B4ED7426D57C8C688622CE186AEFA427880F22EB177395B0716D6D7367BEE76D
-899D640F017EEDE48D3C7E6B5CEB92E9C3FF6D708AA5A871B6B09922255ADDA1
-0F8CF7AAB52906D4F323FAB9C46D8F43961AEB6EC72C8EAA0B1FABD4D805C27F
-2D6C89B414D1AEFBB3176A67269FECB72B2F3AD803A75B8AD1590075B5B41253
-BC3118224B8CCAD3EC204C38BE7EAE07BB189398A31837E1D5FA81EE3F5A4D4D
-81455EF890151AC4318E6D3763ED40531CA75F7252267386BEC4DB8AC1A3D8CF
-7CBFFBDDDDE80A0728CB04FB05AF5A39AE08D95E0136E01AC4E6EFDE88471480
-018E63626C002620946876136C8F3CDAE4D1BD7DFF1F674FF2232E46D84FB20E
-7088FF5E3EC783155C6B8FA1E1DB66C83F37E94134E0729D20E74DA1A53F9F00
-13F42839774CE3E1BE225CF969286B0719CE0399A1D83D51278F7514B7F02A21
-351F006E7A15FDB650A5C9E3877D5490AACDB33541CC15ACE8E1C9E548303E90
-1D23A2FF71473CC83DBEC78A32E2D51F41535B776B42083CD02E4E18EE91B331
-347A7FB5D570252FA5107A5CB471D1F6FDB05951CCEFFD9FDB8129FBE475FFB0
-B01D91A8013852D554C47E48F4B9F8E966302E473379CC68E8A2E0CA17FEB016
-15FA71FFF852984B768CB67CEAD942C8DBA98C06EF114AE99274190873BA1ADC
-65181E9EA880959E4FE7DB97D799D4D87A3DFEE680FA2E430C66255B5AE986B5
-14631B2F10AC0C25E1AB148651EF26AC1665234C5046F065A71B95730A1736D2
-DB23390470100510483BDE1BA0855E1D77D9B2A0E0106A3212EEEA11CCB353C3
-2D1E8DE4704FCB5CAA22DCA5B195180CFAF9D1B9CA0ADE3877004035A82EFA7C
-2C37AC1B2A02447A7B7886BC31AABD4D9C6491E8EBAE284ED208BA821C01282B
-4BA140CBDD58DD9F50C90CAFA1A99C4F951F90734DADB2D5C0A59E0BEE4609CA
-D8210E3D55A985800EF05869A37C3F4BFE46CEB765673BF7D63E72CB03958025
-C5085D838EE5140DEF23735A94AADB59208CAF1A7D2529A8D6535EF38958B6B8
-C307C93E983087F3CD83274E102AA0F8842E63739AD08C55B89101A604A9F3C5
-14620B7F95078539B49EE523699A0494A091119D48E51FF3C0945909131C2756
-6A66DF6C5AEF12CFB63CB8C9AFC3BFA4CF89C92BD86285FA4EA6451FF2C85E24
-BF4C061D16928179EB26879F7A84514088421449A17123CA53976E0FCF10DDB7
-2212D5C4A1D7AD89B27FADB303E951C0CBBE84B5963CD116061FF2767A6176FC
-7405F6B56F9682E3458FEDBE301ABBCD2EA90C576F4459D56FED140634F32401
-80D33A4B1411691FCB2C03F43628E5972D53381C8B082EAFB42CB0A3C4F64633
-4453390B82C2C2E1C9EE6FFD39F82AE666BEE38CB68812BB08C2C7F8F22C5BAC
-0F900A03FEF6981278F32425B0B9C248B18D8E368F9932CD2BE59A3375932A97
-E3C73C024302DCE592EF84B141501F99D9CA0CFF8F256B168FADDD7093EF9132
-1275171A6C7154EA117E27791D155C4D8B0508A96EB8B5292F9081135BE0D59A
-5857AAC2484F4A7E7C8156C72BE7CB7B31A9B94C1DC1E36540A64B8EAB85698F
-A6F3A369ACD6EBA7D2FD86388B097595260A7F276A7C5EF5298F3B46448B36F3
-A304CBB6416096FAA45A1531C1DBC678C6143D0FEF494EB2D5ADDF28681C15EB
-8CAFCAAA4AD3B912683C52594477A8086270839BE2B7EF043B02068C0376F86A
-66E353DC4CD100DDC4BFEDAD47F656D2B4786F386F61A9157AF0F1A116C51474
-D07BB877FFA1BA04BE68D07C3D606CA4B22D24CF761F89DFD054B5711867441F
-4BA3D541B4205EDB2EBB7DA406A9D7D5F9EBDA1C5FC6B5E80C2FD61C128AB5CB
-1E76B896A76B3C0AF5D5EC0FC416FA9910193EE8C8DB3ED356ABD4FB38A5B20E
-971AA199BCB54B73B47361A0DC7A7617B2CC1248843743E95F71164A524277E2
-196546C146BA4F4EF03117C49AECBB48308F820A793549790A7233825505013A
-FFF9EB0BBBA29A54EB6637E11DF9F1704B0F2F115D7583A0C205AF7CE7ECA43F
-F273FF876977E0B5467781962F3126468E5F837BC92DB7EEFDFF17246C266AE2
-7BB3D2646D0DEA519EFFC60DB1267D6EE9435DFF69C1380BB98E47B491AFB12A
-5D6DA1EE989CBD084E38D2B15DBAB23B2C23389CE75219F295207B5C78C79E27
-2223621E0229C67A668C27427861A4E44461B55EE8F0F34C091669424140F0AA
-61EBFD9BFE5C40F5AB85ACC8AEACA6C19C98D28AEA2E7B727196316BB8B897E9
-6FA7D58EA4FFC9C9C48BE4D733376056AA5CA8CDFE34CB1B99AFD8E25FF19DCD
-2B58EEEE1A90BB33FB718ECFEB1957B500B618388A83B32FEC2FCF58C5A3B3C7
-68290CBFFA515C6B3BE8E249364CB1DF2583E0677E070A6A110334823860A266
-E6176464C675C657BC555910066F705860A7E982388E166D8D89B84E02FAEA52
-D7EAB66BD9E8B7ECC9FFCF2E60ABC1E94BB682E48F54F76119B5816ECFD499BA
-4CDA98409F99D0D705CE2209311E844A03A8E92C488529F5C8F67DD652103382
-176B20C5A29C1850BCEBE6398491B2EDB841DF4ECC30B7A7BF7D1127C3A41359
-2A0B3A6F078FAE1FEA13D12E120CFA72F400C83A85BED5D13934111E9753763F
-DACF0707DD8A796EC4B5989231AE7A6726220A2F6BCF601C9A83C19401C7881C
-7A94273C08F2AF3E7792D51C300FAF63F9BA92A15B4CF269B013BD5F52F0FC20
-1883318C46656E1D7A491BA564634AAA7CEFF389EDA4D52BC1C3A6D8652B4AC0
-0D7372316B23C6A7678D89B4B3F7DFDF9188894693CFEF7E4C9D9D62A5179449
-7257E4B7C3561FB6136B12FC7CE972A434CBBB9D8F59C832097EF8FD163E477C
-332977DA990F9D371FC0EE469B1C4A73D2CC107CFC46D3EC42BE05E46799A567
-DD33993EB2B31A19FD3463CD8A8B3C14DF6AA2E4DDC95B8F9068106C19408AD5
-CA4E09C975BB7A161F7A44D650FCF5FF096F399DC953987C2B96294E736802F2
-E443268A5A8367AC8DBDBE581D9A391FEFB114B96A5DD9A66E6CF0C52A46227F
-6D4DCE9165447C0DC2DF3BBDB206FBEA6AFD3A87C07345CED78843F60BB3A03A
-3481E4C90CACA5A68CA5ABB22D15282CB3B10492FE821ED1141DF6E7A8B36204
-788C853591C31BDBF86F1DBE08ABC1F44C394ABFEDFB23A99AB18DD9D6599606
-AFB2A9B3CE068D24D2154C2DEE7459395DCBDB8088975BC1D2339029C4F629C5
-C518CDB270A952763E7B13A93A89960332E7A9C64D0107099FAF59FCF9C2F6EB
-92810C690E04A6DBA109C8298E680D7955D7608611B0D145B48AD141A270A870
-7DC3F99EA89532269C21F2309E0D6A5F7F7A28D5CD27C1FF2A23E22C86A0CFC7
-20ED6B0BA44DC0D1528974C4BCF7C0169EFB17A69AE505F9448258463CFF8935
-CFBDF89B85E3E3A376FCB73B205A74DA37CCC0144343B25F1DD760DBD7F95FC2
-3F8E49F9FC4EEE1B6064598D3CE0A2B3CC9F87BBFC7CCA69A9C3350C02DAF480
-019EB4B31EFFE7BE576A5B2DE88737D59A8F62223E6F3CDE4737F13352C7399A
-A3D3A98134AA3FBDBF176B4A933E7B06FCADB941D8E96888D7F11E83EEDC54E2
-EB8E0C966254850B9DCE8C9849A9EACC704FC68C8DC330FE2B8BB23242C476D1
-C94913EA378341C8F03C94E0DC83F600F413A85C2C605F3E63DA3A082003AF79
-4B650A01B3138B493B614751C7A44708916D75E458997B5C1F8C2359DACC61F7
-C9D58A98898E8C37CEBE7475AF0C1FDDA0F30D1B27E4570AC0B74553D22D588D
-C32233F717EEC7BAEF56733D0616C44D966A4C96D7A37C3F511A1187399F6E09
-E9D28BBFFA9D627A288559710F9CA3109DDD920B89D66038090309FDD02546C1
-6F15AADCCB2C378C770FC33E48911F4EF573B4E6231AEABE1BF8411F81DC7F16
-036A2EE6A54A0CA35C21EE9526E38578D8B976EBBEB9EFD7FCBA630F8454BA7B
-33A10CF6234A10E962F1BE898AD3A7785E9F1470689726E03DFC9DF58E814DDA
-1E9F428037FCEFEA7E428622F0E9361A0F641CD89C974ACB3BF8DABBD2EF2669
-7C6D33499EF5539FB0B4B990C508957C56B6ECDE3692628F22B6A67D591B783C
-E6199B10F2460BC8CD8D08A31C848322BC5A66142263FDB95E0C3E1B3B009F47
-56D3C2DD344821AE1B375937AD71BA0B1BD8EEA6B423C6F0A3D065C0DE876EE5
-6E6F1EEE955A67E1C7A65213575BD53A3C32BAFEAA468F5B0B0D523A0ED45984
-CF8D8E9043AC0AB2CE3BE392A508FB092A855CF4E4D5BED3FBC27D6B1AC32FAA
-E905ADF483949123E98A6F2F65F561822837C57C6D5D5BAF860D935DB2A4CE75
-BFECC86F0210424F07FE5A8F318B1FF818B5F44247D6F0B975EC02145E47F1F9
-C579FC02511F9CF19D65B10338A100DEAC861D6569FAFE847CBF72531CD54864
-60A7368E8DDA70CC8332A85893E3E270FC7876DEE2E4205E592B8D431438B29D
-324136007F1BD802503B2259AC71DA890786B731E0C34A73179D8522DFBAC5AE
-CDC1FC0852A01EFDF6D50BBE47A4FF69936A8CDFE6102A5B25443F2B684E450E
-58C8CB9068EEB127634CC9AD740E01951F8EB724F2E42EC9DED4434629BEB810
-88D2C013ADE23A15D61087CC1DED68AB4924FDDEF0E30B2CE5C17DD4BAA88B77
-06837AE8245B88239B6AE7953DC1D95975356BEF1529DE7582455F43ED83A488
-01C1AE46834F1BDD9704E85A151CEEF4F0D9E08C85ADF68A497A81064C093007
-08F9DEC44AF753D586BC2D2F1D40ECE2B3B4E57A8F0404AA2955D6AC2DBB37EE
-074D03E51FB58FD573893B88E8ECC7E68198CD18F5DAEB0BC84915EEEC4BA918
-86F7E64A575AB09EC19BAE2C33D8EDAE05A9C90B90F0861410CC0FCCD6BBF11D
-78EC64F8C453ABC7FEABD5C49E70CCD23B7A4F435F09E0AB33DCD24A76D5112D
-BB0536872A2F39B0E540C8961FB71A2950FA5A3880216D296B9B764B7A955BD7
-38072CCBCDE6B5FC862FD23C95460BF14BB431A383BE8F6DCD902B4A808BC64C
-515E7BD3A8A90786B64149AC65059E5E6A86708D951054B488A1587CB1BC0000
-A80F17F4E72E2CB4F0D18DA55633CD9BD04490E3C04B11D2FA488A98F31E743D
-7AFAF0DF30ED6A371FEAC0C9DCF3342898DD8A3C4560AFD03D52282767C83467
-38C397D8732F17F6DE02A722F2C28461A129F427B4824C9E12D9A16480EB81D4
-BE4A062834149676D31821CD3B68905CF120C58013615D6B89665D05A72DD127
-78DEE15D9B612336BB81A6C13FCCC5299769D0CE6F1ABA7616953A72F80306B3
-95DD1F24AB2E5D75BCEAF1DF190A54BEF673280150990250232F1637CA7F5FB2
-736C3D71C1F93F12550AABD90B7CA0FAC0B8D4E99488E270CDDD675FA1C6AF1C
-F855309CB2417D4094F83F7F9D2DBF4CCD2CAF17926591DE077ADFE86FAA4452
-B1D613A54A1614D85FD6A1F9ADE41B04EE0FDCC96A5ED01611C16CCCCF983FEF
-E0576A8C5C60E05DFAB842B4C1A1E230F7FBE6591DD57C034326876E8FE75217
-B036F5E70D4487D8FCC1ACEC8709CB9AE028A735D82425035D5A27EC608F1EEC
-86E11A204B76BC2BC8D3FF9A192BF8E6F8FBE05A4E1876D77F89A02E098F3E52
-0EA2C6112AA71A624A8FC28261D74C78F0CC401B267092A5C6BCA5DAFF38B0B8
-FD59C53DC36B464CC7E22921EDEA286F3EC5D2D385FE91639DEBD92743E9516B
-ADF0845FEDB936EBA1005ED4B49983EFBED369535C10A9E8E446032A25167A81
-90DBD6C9FA1C1BAAB475B3F0E7CE0227033E013AC2E6193E5ACE6383C6EBD697
-029381EAEE77197BC1E986E303E7C60463B732311DE1193E4176F2C599542B4E
-3D188BCECF1AB6F2C5527D041BD5CFB6D46F19A08AC8B26268D81FA31E28D196
-AB251C9CAED22478A8A7441FCB4A9A9D91A88EC924FEE72F956F55880B0AD537
-97F14DF2973A7A6C3D66AA6EAEEC226913331AAEEC6402977B1C7DD2033F776B
-763D49079C83AD203E346377FF069FEA724CC3F73A114AE50990AA03009EC319
-EC7BB856368072DB00FE2EE872CA9D430DF33AA7FB95082BD33C0670E778D897
-E53935569FFC6F1BE605E8D8C1D4B92DA3A106E9D16E4E6B9FBAABCA917A0ED2
-C3B874B08E542C8851EE1F868C675A60D33B746053A419721C7BAD2EA12F27F1
-A58546B2C288C8C761F15258DEA75BC627A639FFDDE3A16DB0D9309DAEB869C1
-D1ABE233069A0912DDF81193605886E14282980C1F347902389BB9DB17580899
-88E4C5F502E16E3D1AE4881FD62797483BDA5AC3DE293AC29058D79673FCD6F2
-CA5A5854F0F951532F242B23CAD3AEEE9F4226B04DBBB087DA71D6A21D555847
-FF863004F08486A84EBFD234334E5FC241866E1803A0637DE492B4AE0F98D4BD
-AC0D2B92549D28715B9E7BA68D22A1FCEBEB77341361B541F9CC13421459AFA4
-B0FDA93D290E443FE70AB54A2AAE30AABA70F57BC0870ED87EA2EF54648FCDA9
-60D129F44C09AD4D9ADD8BEFC78F90E7DF3AE7A5D67747EC6FF6DF3C51CFC1E1
-A79CBBF74B50BE7C2868AC933A9A3003984081795D1E2CB5CD52573FA8B2C9E6
-579010E221DB06DDBDEA111AF0E72789A316F461B0FC5325BD6CDCCF9D872F8C
-157E22F2B16F7176A52AC31D05E2C49A661A278882768F100ADA658E3ADB514E
-71BAF05606F462A04652AF29105079D01DDD8B85AD86606D74BBFDC44157CC5B
-AA7F168D8FCD3F41B171A3A2B1B87B5DD3C36BAEA7D75DF35E258540360A3F94
-31DACF11C2168149649FE610396168291A229A18BFAD956F839AA7040660BD56
-DDF70CC06DA6021B95196EB700A84E1CA59A8F8065895C2D408700B613FCE6BB
-687B4654EAF8C7F8E1C2B0244D36A583675A93C70F941D80C1245E8352D0F3C5
-C1BE27C22D430BC68CB5A19D0C1AE9AAAFC03D65DC29BE3F5AB7155B0FEAAF46
-0DE7804B243D635B4CE91BBF0A9BCCFB7974C6A03A9F64C45AA993DB70374C91
-E37471193DC6334CB181CFE40A9BFEFF41DFDBF10477A2D1D82C33529225BD49
-F760032CF9BD374CC680EECE471CD73B1290D4CE657057DF4E23E3A52122BA6A
-E1727163933848E9AF7E290526A3DAF79DE65B7BFE6BC6E33288FB847ED9F9B3
-39E0132D14C244D1E7B830AB519E304C9ACDD4A12D85D4CFDE1A4FDCCB451D8A
-277ABA30BF92625B593C05B655276966239AE696C279A0789F9FC9A620FBC224
-886CDFE2D307D723DE22A0C0C50E9AFFA2D33E9AC198E9405A3B607CD5AE6EC6
-A616B21444D58029A44A9389ACFCCD497F4FE29CC4B181699534E1B83AD85F61
-8911499DA69867AA9B5255DFDB864FC37A6987E6CB661436CE3A9E01B8B5BF96
-73437C9366A8941B952C298FC4AB93EE364C54F119C5F2A60FD5BC933A44FF40
-D87D7842B1384B7F2D83875D57CC245F2D1C3B7BD0EE2E88D62693F2C8229ABE
-CDC5E438DB2CF70693AF163238E48FF87A47AD107ACEFF6BA319663DB8F8172C
-1CC91EB19063BB3B742E607EB7020C55345AC6CE9446CFCEEC3CACBE6FDB69FD
-BC13FF64457FF001ADACED90E0CF1C61FABE58B6720E0615456D4084D4981515
-63CBB7142D8973D481F0B3FE9B54A0F276668CEB1B1441F08E9B41B2754F8145
-0C7BF4734015B90E2D61AEDB7189DCC18E7C60519387B2E0BF177F497083E8A1
-052D1D494AB2528CDE37BFB459682066C49545EE2BC04C31D9FD70E092B4CFB7
-FC8FB9B6DE0EB48F24DAC9BB80D1DF95C4248D5C28CAEAFA0BE9C3445D8C9CE3
-ABE0FA0AF4AD425851E7588A9C4A9CDA54CA4A075ACFA5D88DA0F5176CED8527
-083B08C61DC18311668973AECD50DBA7E94625B36FA3B19EF34B1B4424CB404E
-DF52989F313676A19629C28FF62A15E10328D526AF0AB24E3D758F2C0F84F52E
-BFAD5F980D7498DF12D19CEA56177CE1424869CC9342126404AF9E56D0B56E5E
-4A9FC9DCB519B1255BE2B3656B25E6834839782987F2587B3B6BD92CF5B060A5
-46154B723629C6AF9F3F9D75AA8332AF64ADA632B6F038794BF9E2936DC9B4F5
-43C29B7EE4AE984154F6F4554706E72361CCB4512D8F3320DB1921CE7F7ACFE3
-1B7F0A72D20A2912540E17DEBBC8CC2B2E236DA28F308117B76D2550200A2B66
-94CA669A909B2AE2FABFE76B641BF3ED9F236E29722F74CFAC337C69B51B4458
-7EB870315A0A136B0D183B5C9E25D2FD57C75BCC0C7406AB30AE3E3FE1D60B2A
-C8050242C14A712EE6C867AAA701CAF8B33276150D90C60B5ED62958FFCF4E67
-558B518020959040A3B990B412F74987A94B09C4ACE894EC57E52F434DA49604
-F33262B59D73B7F70BF696D7BBD8F7F4AC8120B5949DED09D8993CEB6AA61E7E
-586D50B652A7B7D80BF1F19F84D092ED2D448A9BBADFCC8739CB6F6BD0B37297
-A3CF815325145E174D3BF6A07CDB2834943B02FC4FEDFF98618C8F7E81143F3D
-6BF377FF9B9193C2DD24F3A3FCECCC610C4D2159E16FC5131206F7A96D8E7FD8
-AB1B67684B14BACC5E760073BCE327AADEE16436D4304FF7E1D5E40B739015F3
-80DF204E2AD0EFACE7B11F87DB74DACDCB2FA973D9880426290FE865E9D214CB
-783B4CC2990E7C66759269C4829AF519FB6647166107B7FBF3EC1691BC75E78A
-78D9C13CCA8934E475DB1EAC5F638E8E348D5C3F0E78596AD150CD6CE07E687D
-5B19E531A6B2780FEC840C5F5AA34FB3D0F9F7D08032547882005A8B37B9E7C8
-9162664F84FDC45E488B379108DF22DFAE3C94FFF02DAB30943F4FAAADF13AA5
-85CA5937903E961990629D2B0B58C6BE3CB35F53338C53309E64ABA4B3E2C619
-E842F69D946C945359BEFBCBA43550B3BA9BA169833AC32B7C89EC9C0F7D5636
-89E310BD1FD121EA02B31E1A56C5738AE2EB4B27883766691AA61D4A5D03844E
-6D655C71E499AB9BEA78A4EE71D7725AD310B23BF925CEFC7E0C61D060027E10
-AF3F5A57CF69919E02794D159A206D331B62A2900699C8CB652052674F408E57
-8ED7F6A79718CFD58E39D990F11827746E8CC41191A4B214C0D582F72F8C9FF5
-11A9D1D35C7A669C63297D8BA473EAE51E08EF60004743878CBDB21562A7077B
-ED300666FECF938675907DA0C7ACC29C21046DD98E741D6AEF51120D975E1590
-E493CD5AD6739DA83900B109B1DB865812B3B821C4AEDC089719C81441C2C80D
-181B640E0C57C53BB1BE99594BFC6D5FEE646FE75E03B759A5AB12EC591E9A67
-1C1D04CC207C300F79D2ED9A05A1F285D87F903F80820B1E7847C61A04CC59C5
-1CF0845F401190139D51A04539498906B94F6169EC038849D6981CF3DB34000F
-10DEB817BB9FC3D94B7C1E0A96E4F8B3118E302CC7669012DD9C4EB9E1A13C67
-658F61688440A7A9F9E26BC63A87AC3ED2201B8CE895292728FBB1E6E4C3D185
-FF8C1B4D9C0574A868E81E273AC96838E37F7258D5FF5A39F90FC2F94156F71F
-F9C3E576B29EAB74A1375A3042B5D46FC4F839C26B3FB2EE5C67EA9E77DDECE7
-134A75420C99771B95F28D30B766CF4B553E90BD06DFD63B3924E9409D8841F8
-85024406E9F6E38F4476371F368ADCB44C0C6D7D576AA1ECA6A0C0AD1F4BA2A8
-674341670678014E974F12E5E64FE3AB80BFABF5C27E9B27B83A9AFB9D16629C
-A2DC2FDC7E2DF71818BA334F043733632A20AD495FF469F05ED88E9379378B3E
-1E8B75ADDC3E59A3D7B48F7FF8A61A85B96E87528D56A6950AF5960C36D231A9
-D83C9FE642EC5201BB798954A900B402070B524E29A5932304607159A4F494EC
-4CE0E1FDA8E49A34F33B2C96C9D463A66098BCB8833C5D7E1B368454E48CDB25
-4B3CFD7EBC09EE03BB95D48C40C7FEFB4F11A191032427962754916877D6E6B4
-C172A7D64FA392117ED53420C0CF60B5AABA717DB9CBAE089DCDAAB90FDFAB6A
-9F02058D98F2F1F82AEE7FF621A191DB861C95EE2615179716343CD44EEFAF1F
-831AE745FBF43A3878492C2606026ADA1B8E61F8AD0E8C8323888C91AC3AB359
-9F4F1B0ED460684C3BB8BFED81552376F76EE9B568DFB2519B032FF782F82EBD
-3EA52064AF6A0C04E2B9761167D1C8F93D8ABFAD75A1CFED2F5F4D1AFC17E9FC
-7B06752E17CCFB3EF0FC5EB1832F6C7DBA1D590A804DAC83FC9AF8C919014C32
-F1D0E9A667456A2364791405BA58C67A9AB002F4882DF6DD954486B1518A9C91
-1BBBBCFCD883714B0A888CACC8CDB3B8982FD8AB7D512A5BD7145C245FA6E3D4
-66C6E829A0A8640744F781EE6A59B490F783A251D223D9270C8BC5B04DC11D43
-404E161310290FE252A78D7A766FF0B767AAB702D3664F756F7E013BB84EAA32
-A9902F73F9EEA56C7D258068EADDCB9089DE2EDA54350AC7312D50AA877387A1
-4D338442564AED435127C83DA956BEC6A9F4F0C876D1507F5749A6D04AFFD17A
-E116A337C59AF9B8A550511F9811B75CD45E53984B26115B0859515654AE5749
-17A893DF4C3613103F2388AEB730A72C6F191188E1F456FAB502C01567AF75A6
-C74373BA2C33046A9821122514CA96C81EE22021BFE73625609252A4931ABFC3
-79A81D23143B3959AF5E546AB2ADF6CBD4EB78D8731B68315CBD5D95230C0BDB
-C4D743B2888F5C09A3C38F821614BF4C47AAEC9503D50B8B0AC60AA9C843DEFD
-6C60D331D947E2FE40366647D7944AC2C149A27E2C72AD4019B0492B8CCBF411
-74CA332569C815F53F237FCACB38C90748B688E1C3DD96A2173A747B1EC3D03F
-6BD8B4CCE08472BDBB40636484A4A80904522C774653F572FBC2E0C6CBA78809
-E53C64EB02223DE6324AFB142ACDBD29CA079A50107EAC129E7F7D6835E4E71F
-1237D94521FD4AD135DF6E03C6886E1B55F3E3E0F466AA0F36E69382A34FBF6B
-0963C27950969538A9829D199780C3676130F82B664054B306AA13FB36986CA5
-442E2FDBD946C13F82DA2C4369246A00168566CA66F869C6BADAEDA8291CEFEF
-B07BE181DF9566C981727AB62B5A8F2703B87217DE8E46F7B4B39FCCB4710F4F
-08C70F336AF7ED4DE8C6856614CA228681028847237FFA2D72BF167AF1BF99A9
-EAF4790537A4E51BB9E31E9D6D6142DAFCFAF0EFE31FA502F8F4540638FCA94B
-29ECE4CC50D1F0DB08CD6C39C8E87D65FBF696D0E9D85C97038E8A0D63DAD193
-2A702EFDE85FA1E41A97137EA457653BFC568E60DD6C1D19977FC852FE3E3287
-DD604314EB01C9746911E4DB1A1AC4E098238EAD17377AA14B2CC15B3369402F
-C4E0C331412B798A5F329C344E49EE944D1B01EA168BD0CBE4F5897C3AE5E8FA
-C6576353EFEE66393D34EDD3E6FF2DA38CD660366DC33DAAFA023A9DE3191397
-C0AFB7E5B5B163DE7500A7B43F322BA20B7D95C8E1BC5E8D1D77196D0AF27D89
-476E0F01E23EA043CCE711E3A8E27C0419F7DC320212F86A3D44E40FF184C7AB
-7DF013AF9DF45A5DA9285C549F6C132488BBD51B43576A92F8297FBADDD58FD8
-9C1CD7A4142BA668B5E01858D01C3456288B52B8CF8152C8A1C7855A777E5DCD
-31DCB340B297FEE2596DA1EC6A3A3A0907F38F620D4E0B54AB95E30FF3A4440D
-73C69635C398AA777CF973D7B355AE60BDD84B880AB3D732C63C64FDE3AFB4A6
-57E90F51438C39BA3948D2F66EA8D9089C02D58F0B83B33CF3C8630BE1F48257
-2B16C6FAB4BA84F306C89B6242A0E2EEE82AE157167E537363A83421D30E157B
-D6DAE4E95B43B3A90499FF48898D53D9FB6B33026878E5D5ECD26FFABD866AFD
-70FE30B4183C65871D4094E54EA693B397495F991F13653A15250C011AD816FC
-DE7D139637750461C7A6A60DAFA68B7F8C639FCF5504B68EFEDE8497C9DD8537
-F88EFDBEEAC0A20372EA1B154CB20C0B054A092E60397371F50169BC87863AC5
-C4974F2EE1E3746BB8
+87117C0B5235B1486088B8368C80ECE70DC07A0493C32B571F6D6E5F3C7556B8
+79DD18A0C09C644C1B0A57E09CBF8247A97FBDA9442DF87C99CB00F959FE4925
+8FE8B3EA62A6C99396CEECAFDB091CBFAA0EA6F25BE1F34B1B8EF507D2347A7B
+866CE28452F7ADBB56F4696567032BD289B3439D6CB90A602223E00B43CD2585
+4D598BE43C0161BEAD813870FCA3E377A588C3D24667846301D1BEB056315636
+1304E2CB595B5297018C0ECD1BA4F8F1EA81B4FF88126295CD676D96756FB9FA
+C97CD2A8574EAEBB0A869C527E0828940C613B9D45894E4667172D841C94410B
+FCC5083CF850AEB2EF92BDBA8DBA361AE95B267FB5F90D5EF8B16B2A83568D5F
+50BD20AC88DE25DDFDAAB7B2F7662DB99E20989C7D12DE04057FCD2DEEC770D6
+535680D13ACB557EE7AF8DEBABC3088908943E6E3655C3C00ED022B276FFA5FA
+E6E4ABB96A214908EA899EC925E67E86413840A67B3FF86957586B5E06909036
+B9987C5BA21E46DE7919B382CFC4740ECC794A6577BE33CCB94E2E4BB3F28BBF
+AAC6E68DD9B01A59A7F3B964F53F41CB9BE94CD44027868F079324B44C595200
+0E375B069FC085DAD5B678ACBBFCCE8916C4266B572D89C0A7B6A26F1D329EA7
+63CDD44F37932CDC9C89C724AD52BF91CA68209471F26C10AA18CBCD1288460F
+9EA9BA85084A5F34451044B81559DBA03F03292638C28A704C553CB25312C568
+A06C9F5A764BA025FD48883244E88F1A31ACAE83432C2B837D034CC960EDE3C4
+2234FFFB8132473C8A750A41770EC46F9B2CA7FDD937A2C8CBF5DDD6162EEE0B
+36C53BDC0D2D7F6D38DC2F502755B0D25B0BD1858A9B16BA69549B5CA4673F0C
+32C5F1BA97E1C124374037E0B8EE94706B3B2AEB9CEBFF69E4F107BABED996B2
+EA92B4D94AA267E626953550633A74099022786C172A323DF9D903A0DF6CE486
+38AB2B0CA07D5EEF34BDE2DB5F539BEDB569F60005A3317EA6B1560C22606B8E
+AED6F84526090E626FBF48846E49714EA80C90FF66F82F36F3151B580DAFFFA2
+668B4952CAA66C6F10A341118E0D58B8CE34367BDAEA79645E27059FF2A43D2A
+435ED248345B6305316D1DAC5F75787D8E72D0D8C3145C0A1E45B201382EB716
+D06C5E8BA78B6F32B13F80E7EB6909D2B7ECD1420BA2B2A88C0C3154F3091065
+16A79C898C1682A98FC2A11A2B8D4536D74E6E228E5474090D42CBFE3BAA8029
+4564F468EE59B2E2BF8B2429634898F21C31812394AE3EC0CA8CFD5D5E818F4F
+344FF40488F06A48E9879E42F131DE378A8A733C6016BBDCA24B10B385BA73D3
+DF4770685FC7B9720D196A9FFF978C10977D37D98F11A3255486C8F8C3F67225
+4AA8884C88A3194EC1AFD2DA57258E30B057490A10AEA001017F06C83255C0AB
+13AE04B86FEEECC7F04A593282501423D319CC3FFAC3691DE723F71A6138EDBA
+F1373C651464A05906A2F370B0862F5E5CAA5C9570B7D5F9DB24FFE4A6C6B98C
+539FFD61F24487B2AF446467B1A3CA16E9BB2384972372C90DD930B8DAEC0FEA
+7C2692F029EA687E29EADEA6AE95F030A8DC599C8727F5CC41FFF86EC7E2D04E
+E1498E0AB0D2719E08956A68FE7E92EBC6945771DDC13689CB68D39EAF73CB2B
+DC8BAECFD1F721BC66D89342D650699C3364A2D0B35F58E4CDF2209512224472
+8920B0079AA5355990733CBCB8A372E1EA02B9DA4107F619968075F33BD123CB
+870D0DF6B22E6DB70F1328532A05BD7A624CB7488034E94F3622F97636CB1330
+FE3336665F27AF77FBCF01A786143F0AA892E1B2CDDAEF2E0F33E56F179CBC8A
+72973C643CF217828D892C818CECE72D0E89329C6A9159BF17D10BD3BB4A1154
+997ABD8127118AA79BD792292B6B9689D989258CA9F57A75C4C9CEADC338DF07
+13081B667C8D86DEEE5BDCC47FF96E2AA5B37C365585747EB3B664F08CC7ADAD
+B42D1B54096C60AD15596D7DC585316A36598A349E89242274B5171A1DE841CC
+30A5BE43B0ADB71C3DDA25650BFF704B452831FB06A7DB0D60D24436BFE23CC5
+AA68BFEE0897140B248E4A9BE7AAE37B98A54CC1D3F81164943B66250D55E554
+55A688BB9E3077FF8D11D1BE1C3FF99DA01EB206AC5AB1D394854DF5CD417084
+82BF6D1DAF88698A69DC196FA9A3285AAFFC3441CB4297A48DFC86B29490F2F4
+B514AE8F3D4C0EF920791371BBDD1B6369C38A90A2D2AC06B25781630847D6D0
+87B469CAC111778CEF26FA3233A85044965F3862C83F63CA2565B9644EC15B77
+BD2BA08CD8AC3DF1E5CC53CCE496172A18627384CD54595E3BE1E7D1B9751C86
+D6AD3EDCC725EA4B09BF3B92ED658356A3424F1B0D07B6E11B8E1D4823F5B0C8
+F3EA4BFA3DF77AED89D464D29BB2326ED2DEB73E327AC8B2C99B73DB70ACEB0B
+D0FD854CEFBC72FB9C906B4DB9EA35BA8018C623987C834B63E8C800A30BD551
+011F6E05EE76C26ED2F335E32BD4C866A57BA7AE89ACEB1066E795F122E1BBCD
+5768F2DEC922EFF8B1778F4FFB7BF1B6253F632F8D98648B81018D2FD4876974
+8C818E01ABFB557C8553B98A512241000B9DF64C1F5784343314B7B3CA04E506
+BBC612628AEE13DA23B3242AAC3B05244D3711121D5C9AFA8EBABD2074DD3658
+0F46D501A2CB11A370EA7E38E3682A31F5C47836E9CECAFB1BEC80DE889E99BD
+8F4DB78DBA5AC5D764EA99237738FEAAF199DDA7236D22B07D22A8F6ED023E44
+1828588397D723FB557CD35C7C5C87BB64E4A7F88B03FAF135ED0F185F7AFA4A
+F498B226D6D843EFECFD9029122B15065A4D04B509A8B633E46AD3D15D4F9EB1
+AA41E4694AC4DE0613B027E35C32935B5F0A9C21F5F60B9DFB5FAD619A35AF19
+20C0A1B2490E8E3BDACF27F37680BB32489D21F91603D4BC5FE69862A1A05F10
+4C11FE5744676C4794CC0B7F1AC1DC9861A247234FB986A0A4BC5F8F6A3183FE
+3A6FF5ED1D32A711906031CFF6802B5455CF208787AE3A35B1D437C64E5A3283
+A1B87F31D6B6AC634579FC3145035BC5F0B454CD9280BA3509B890D45AC7EC54
+F8FCDA7E5F8AB9F8201621417E17FFD8CB7BF55A6D9B21F95C403AC0112A94D4
+B7BAD823A1E9A5FEA956B08ABF303A917B69C8BAD87E685DEBA72E62AB132F46
+521CBA0C7A96A833AFDB396E0FEB85D3EC605A4EF6026C0A6CCADA56A26A8FDE
+18C61D26C93DC6E15F1B5E789567E833E79CB85580CB50A68AC93D9C2454861B
+487A833774E205A73A2932D0043759D5978921BB5B499BBEC5AC6F505EDE86C2
+8B8DAB630F36128B53BDA72CD82A3810E94C6947C9FB148574FD25E8629CBEF1
+2AAA7DD33D1A83C0235AF9F8FA00822AEF0A6E9DC7FA79B3872CAC39957D746E
+3F05C8EA69F0BBD0D96DA2ACA93E73FDECCA8B35D6CD52C464C1A51EDFAA83A0
+54C236F0064B7268C7DF4BC1F97606D48D6C8739AA2CE28CFF1B4986B4CE8A60
+D8DA6C67A6887CCC3A0A2790FF5FA00120D15C26E8D938D524F355FF8212A689
+D34269669DF03F1BACCFE834425972EEAB399EE578407F9550B93D65E63E3707
+CDA159B5AF4B68ED52D389CC6915CF7B0C737514EAB05C947AF32D67CC36D782
+C9F73B32CDF11D2CE33E8C3DAC12AD070D0CE9EB3C209D0830C0665DB9F61C35
+FF976057485A32A5A41E7205BCED4E2B9D2011AE3FA90ADFF6E3C58144293A55
+E25C6A98BA2113DAFB861F0C3544A15F5CC20496FBC58F1FA2088BC67334006E
+2AE3755CF0791FE82E8620A5BF3B487F37DBA3ABE1709DF21745CA7D7CDC0AF4
+F33FCF3672EF5ACB540CD7931FD18F815422B2A193C9AE34E626020F9AC0C36D
+4D5AC1137C75F10B42E2499DE914703C682806C9E1D158217C68329CE401234B
+462F92A35F20858F5FAFAE3062C57ECEB930B762880A982A8DCB7D010383A156
+547310C8BDEEDF6313650A2FD71856131E24F1299C8033CF49DA9BFD013F64D7
+2B571F6C2E0A84FE62F060298C654E068F0B8BA453D5F94BC89D3B5053721731
+AF5CCFED84B7F6CEC60FA31F84644CEFA02DC2323CADB246E64DE08D9BE4FAEA
+59D1652DFE1A09C41479C3CDB577942334F8C57545BD883E0AD172CEFE546C21
+5B9F63E32980B1E57B0EDD66674C9D919F6E323DA0A0CB8788F031BD533615B1
+D27320ABD6A1147E3200322DB2D8700B3F1F8B19E3C5B67842E84469D997B702
+0D8DE8894F5422DF2B9244C20186597587D3852F34ECB21E5244EA9C8596F0D8
+6E4D7353C7F6ABCAC499D7E34CA7E7789A54D712AE69DE15F767F045E637DDDB
+CAEFE413AF652D849D58D52DE084956D177AB7E3A9146B8A56BA23CB3F734298
+88C66B7C2B084EF219FA08BC87443FD9D86BBA351427631D368F514C7DAD7329
+DDCDCE8311971D746FE79322097E7F676740389F17B11587086942024918CCBE
+80A60A78D96F3CBB59CB81BF5D8028475316D96E12248867A3F23A859F8AB547
+B1F06C1ACFED4AB83378932A253B8FF8AD5F44BB4EC7A7F025BBAA179C81DBA2
+049053EDA32AC126C4F222B5FBB1119C7BE3F4BE0E9A3161CBC5F4842E6BD743
+11903130004FF705BDDC0EE6C1D97396904B295596A226FECFD665AE0A6F7EE3
+FD51F370008D1697035CCE907243038E0B0487A6DD63F1ECDABCE1A71193FFBC
+6DFBF1726156A4E9710C0D272A7A351F8FA0C2785BCFD0BDCF1B4250675B512F
+997677E512B29D85313FAB6F7FD26B402E1C4B2E270E264422D1375B93EA138C
+171557C70A07C8B330E0C0602949C60B9D921B33E906ED3858966A640367C505
+2E3D254C1C0C63B3F831C9D2AF2B2FA6FE8B663F94B72A7FFD63712A2C4422B6
+6E3524B5AA8D2EB9C7733BBF2662B64B3428EBFE956CBD500DC71A4F4CDE8896
+2EAA65771273D823E8687E2FED6A26D7DB98DDBFB57670278897D2AD553D6AAF
+6F1117C4F894AAD44F53348A763289BFEB2E9DF66DB921E402279FE17634E0DA
+576F0323E1F849DBB1E7E56D0303DD2C81EBBC192B5F8C13A5F5028D64DF153D
+C7E4C2A59A3E369D44F346BBD79A4AE4930E3249C1FD5CC8B4FC6C753ECA9326
+797F25BEE6BC66E125AFD247A2CC2F61A47F03DB682F67382B2E83312D1D239F
+39D8BD6C3256FDD8D424046A289D17984ADAE316FA39B743B12419DCC3C8582C
+EF6BE8C6E7A091F1EF76C6090C15A7742C5F66F66A69DE863256574491B422DA
+93F4B0B13E69B03D1A92840D80B39C96A535C2AEAFB579B9051CCC67E32103F6
+21EADDFEF9CEE1980D3F86DB452B61200C9805EDBD219E812F22AD612B436E28
+D86956797AE0FBBE0A0DEDE4340B51D2CEB5127FF7C14C85AC55C55A1A9412B0
+1471CDF9FE7D52A5A069669A9C500FABD920863628E541893B2692B9D40CF391
+69C797742BEB239A6FF37CBEECF5ACC960011BE1CD35241BF35431F902EE41FB
+5E89FD3C7FD3E7CE970CEF9A3BA9DB4F10945568813D4566F5939A7CF94CF2B0
+97E9D335CAAB09BBDED1D462EA787E5FD11A63B17D75882E379B490C5B2B4440
+FCCE6CD6EC2F4C21D5443E6269734EAF0A61520285791FAB0B421D5CEB2CB165
+286278D3F21045ABFCA81CD9E50A733CE516E1F4C494FF072C50FFCE2D746CD0
+0D28F9EB6CB77425D0F4188760F61C46101F21215BB89FE5FB9684F2E9BADF1D
+8078D29B3160EF63A74A19E17202270928654B95413DA00FF89548F30C8A2146
+8082CFAF97B44733C420572188F01731535A0F5609CE44AB565563B15212E835
+10E5EBA20E3B1635B8E08D85E8D282D51AF0C5D8B4526EB0D43325370644445E
+087E067A1EBE6E9C5A69D8F2D32E2960FA2B26B582A4D2D9AA1CC49408E88CCC
+19C63FEC3256F43F55CE38B3F2D7902A4978918AA2D9D23EE839BF2A901F0649
+856041B1F62612DD6FBBFBD1D3645ECEBCA6587080C6DE11DA4CC9F8E08758B4
+37D559BA464A49A3AEA6373DAD44C615496C71C41080F4357FF2ED23608BB448
+FF983C196501096A58EC0C0FFC9BFE36C735118DFA981C69365EC6E543BABAEF
+0515AAA6E8E34711747D586A6CAAE1D3D0F2EE85DAE124D93A6EDB408D9FC825
+7943607554B3CBF71A9843A76A69D7533865BE78F7BA15316360CEC333F0326E
+EDF8B884A60A0E02401A2A1E3C18C89580C030AAB8B94438214A96EFBA9554F8
+2AAAA5C653E94FE70BC18F998BCD6713AE8A087E37097C36E06C1E929278F668
+4E6B169E30196E373D89CDB6BDA65989AC54ABA2678ECC7EDE24AD6263BB0301
+012E31B2361D62F8E08528558CBE40A37939F09069F82095379C56C31EF2984E
+78BBA233E706B9575A245E527CCD6EC11075A3FD2623B49E2A68EEB68030AE43
+1D7AE54192A39C52BBA92FAEC3899FF0ED859B0051537F998743B6C5F2DC99AD
+FDBC65E51D3E82B70CEC3EF1C3645ADF893C3C5F3D25D51CE54CEAA463F8BF8D
+EDC3CDD0422C12FB34C87305CD11F0005B4AEA3E9AAA000546E4383C7B8629A2
+3372E0E857C5A9F564E6FBCE49407740873A109A2B8FC581171B6965DD349786
+E547781395D8F3E42E99BC556A41773DB2BA8AA0918081E4983B9F8B43A15544
+8D15BCF336E93F8CFCE6E79940A52F9B7067C2C8688F20F842B2D0BC02DB70A5
+3074D0CA85BBD01D6D91B2722CC15C866448C91ADAF9EB2D2A52F08B39808E43
+2A492AEFD45480EBB07C4182CD6DAA9C26A561B83E381594A1AA0364C4464AA6
+20621994D2B64D09B7F460C2D6A7C264D89E4415A9E54A53CC8331A3D358BD14
+4894EBA4DD7AE1B836E2C9246DBB0800805683A11DBE420BA989837D86A1A600
+8B669C7A7283BB9313F045A08602B7F98F78A059CB086B5991F761CADE8AEB86
+5039C35C2FD564C0D8CF404A5F32D7C532716169EEB6D08C8CE5BB357E4CDCB1
+5FCEC35440433719FC19DEA55B1662309EC85EB47B323CE2EBA56D17E0A88175
+B2FD7B59B37F7D48FACD52A7DA80BC296E62D60D6C5F251554138DDC4975E308
+2F9673033F0A255FE037F16CE58A3EF652D3DDE2AE7FD39AA20E88FB0A7B4598
+02E993D6550EE854A5D9ABB3B15BE396E3FC2DEE919D354166BC1A2519E0F2C0
+228998A7243FFDAE507841771E4A88B610F1D390F7898CCAE418C8CC15A4B3A0
+9B74E01AC32BCBAA020C99B6856952158F866E0AC66F171C3A3265E713094F71
+BED491A2ABFA737A0EC17DB262A73EBAB9F8F9E96DC7C5764B92D15F5C967CB3
+C846C147DF1568A68BE099D8E38B5A9FEDFC66CE2AD3BBAAFD72AA51D6C08A32
+AD54AE75530267728A9EA3244E8C8CF67C5A28F67068CB4CF90FB76F280930F1
+893C952DC2A7ADE38C692BD19FFF63383308FC2873CF241C1C3D1ECEF6B98CC7
+287D9F5F0C61033CAFA9739D9941AC833A194E67CD1B9CA1FB4A02F0A53A814B
+565CFDD9CDA06303ADB599D6CE17A7F6A81C13040FB7D6E98AEC4BE9F88F3B29
+FFA880E8CF8CB6F4FA009C4354337A43DD077D40C993A9AF66D2B524CEE5FC0A
+BDF03740A45C0CAD814E869D435C61A964D0644E93C6F228B205ECDE4EE59D67
+C35647FAE9617877DB23272A9D777262A1DDCBB7CDCFD2D6136FF69C000F9B29
+DA30B2A654C27C564F113FFB52CE2F6618EA1C8102FF9D93B0AA2C936CAED8CB
+1A9F2FA71930351D74240F88DE47423EAD67D66C20C8DE2ED00C94642C25630D
+4A60B8DA5362D00F3399C6796EE25BB88325E11045FB6E00B72706257BDDA2E2
+76C77F6E0030906D646D759447343EE6CDCF9A61CF30C1392BE54A0F5951AA69
+461E856C4A2921C859E03E13AAA1D6F563D5F62A66065F36ADA9A08A697F53E0
+249DB7965E9312F46A18F6016684708F397989B1C291F63C491B48A8B1A51E8A
+2C1DB13DB081B75784ECFFA1735A0DA6D443D7BBBF38B16874B57891E3C28A04
+C21978532D806CAD99C9CB00777FC2B9582CA68D285D0488B5724B9EF603D4A5
+4DC01291C0AAE941219EB99398C6051357DF7138324625A4C244A3B127BA85E3
+08C8272EC75E848D984E38F151E9C0D46D1BAE4648F7391B59BA76038391F306
+3E8E72B0B557913A38CD6042D2ECFA192A5124B9F58C887726C72C5518D3CD90
+B24196C04E0D05A6B590E067B17103BB36AC830CA181BAA072B137A344B7570C
+7EAA3272A774A58E049F71DC9DF45CD22B1452A26BE34A5179221A01FC5536DF
+BBB94E93BA9EC169BE596336768AA8C9A72C258B8A8CE7C511DD923193D886E7
+F6C33E5FD68032A5A4459955FFE76A8D5726AFDECF42818BE43F03D2B4B8958A
+38D94568751E5468A1322EBF924C7B587D732486DF8E309CB7FE20F64C6A371D
+D62BF5A33B49DD267AE4C3F638A76BE6DF49B693D40D8AE1E9F0C0B0606C84E2
+A6868B4F700A6DA1ECD097C96704B17DB76621FF4876149E6B2FFA89D38D8F3C
+1026401F2CB949DE9313115E6626B26082B1AD94D0C1F8E7B907B3676FFEC9E2
+E31FAC5504207CA741486734336521C2F9BC91AF257472E4762966AC19A6E89A
+87644A22CBC9FECECD919E513209FF439E2E7F24AA80B4D3C940021C23D7A921
+1B6E544E43FA00C4540C73EB0F3B8F352BAAE6CAA924C1F09C6EF7DCBF4BB88D
+0BFEC67C79B6334A4A0E6099A460B57FBB845831ABD0E83BF0F92491ADDE5526
+E036C58BDF78FE25C55B9580F6D02F2C2F7D77399DB7CB4B8B8E037538D2BA64
+BE2BE4697B87366CFAB5A92932465689775FBD9F87AED9B53303DBC13C0C13CD
+B549FF2D8C8C6C9082CCBB9B6DABFEBE53A85297555389E5A08E47F27F62EA1F
+11915A06C9A1E82C37E4AC72B009B0CBEF25FE046FF9FF20D50DFFA97AD9856B
+B51EEFB3DE0472EAB91CB0B51ECF29EA2025422B31C811C3E449416B8916C2B8
+63E9E4A80F9EC738B81A2A32BF196875BF8F52010B1DEEA25BC2719EFFEEA0D3
+A3AB794058EE49333468A3CF5D13336431ED14CEFB1A2D067AB3D2DE942D9DC9
+C0B5CFCBE9D9A4B53D9B2B19E28F5416F5DE29E73156516683F169BEC75C5344
+D953C9640552267E6CE554C418773F06BC8CD88084C60F8D7F37523922B4D49B
+ADCC93A64D0C92973527A810F6B0239E5525A6BC6AEFABBC8FDF0B7E1B368A52
+3620DEEC31E00D6CD5F02E1625A571A6129DC18333B395D4680CF6F69CC6D359
+4C444307FB45B09509E36E0905C7B2CED23D9B48FF65F31EDFBD2073F718FC34
+99FB4A68B4225D12A42FBB14D7A3FE9D2CE7DC8925E6BBCC4EB53632EA3432D7
+BBB17498259DC19AF7E6CA3F124A7B39BE4C9768FB49748F5CCAA3D1940E0A49
+136B3F49025B2C3D09AC6598844D9D113297A68027AFBB1D8341FEC07FF6CE10
+28358FDBA753264E7865B5B311532DC8D16E6E1747E53D96E996B9F27D9CFE93
+460158DDB6708485029D6F31729805DA1F445C629D5A7048F06D8BBBC6BB69D6
+FB7BE6BF7FC02EC0B33462CF5C756F35AA56886688B05F6A417B8BCA35886256
+8EE314686DB5BD49E631AC220C299A8C5D6ABB974C45643CBC589EB2D0DF48D7
+F59EEF1FEC4CCBEBA797DF168D1D08EC7467E7C35F421BB6BEA0E9C4846A84C1
+70FEBABA787CC46391393A0B99EF0CFC33730140696B0DE9C57E90231310FAD9
+D67462F55A56D9666EC08AC424E940CAEAD58503911C4D80FD59CDD5182ED504
+656628B1851818197DEACC842E943D5A2B75B5934E8AED3E67529FB51E625A14
+4D91B077A53FD8C69C930C677497A36A6A578A639EFBDE481EBCB80536C9CB96
+0A2E54A15F6940F4FECC203A440AB47439C9FDA12A9D78B74325ADF44010BF40
+6A5FB9C012E07A557A60326983A0802424CEA244DDBF66CDDF918B30618F348A
+8C5086F7A7BB1A86C7B4826323802701A584D17C6E19AB720CD13D02E8EBCE16
+4A87BEA7C6B76D05D49CDBE8549640FFE6124D2852A00A46768FEFDD2DD5B60C
+3AA80C3839A86B4EFB035B65E1236F6DA58BBE2A9445311E8714C82310E6A0D2
+E926A3D18AC3E7A8F8A61AAE5ADE10E43116C105653E3A03E895BB2F7477A0AA
+F1E481B4F1B3BC9DB099E60681EF3B0476D6E84DF5ADDA588E8320B4899D2D40
+F8CEA36C2039AE832C87644E2A3EC19AC8FECDD575364238524BF5F76ACB02EF
+094278DAC561F700ACE728478FBB8E0C192795AF982216E2A4A3488D6A4BF06B
+AFB8F4EE78DA4FD96437A45C1E1F49E83D6E85390F8FF9B8E487AFA6184FA430
+2A3E13C59C88E3FC8ED9102D485FCCA463197A32821988D1C0A7A86620655DC3
+DFEEDD33B3A1F55CD5599A58D0F4A390B69137D947897DC448A8255A2521EFCE
+2CA896955E05BEA3480166F9FF82F1B145DCB56B6872449335275533C38336F5
+4C49F40D0FB04222D14E0AC8057580118B1EB1DD43A8BF334763BBA198D851AD
+47F4499A2922816D2F0AC1956B4410E617201C82FDD7761C1A0C8AD025FCB1DA
+9A0722266E22C438C10275CC2BFFDBE726084F9CBAD1CA9ECFA072EB5A317EA5
+2A8E39F8794209B978DDF404FAFD22831F3F53356401FFB85334D339426CCFFE
+0F869606955F20FA055EE560B4744730EEA18CBBDC134644F124B714FD43653B
+C0879B820871B8809020301A71D37A44252491555D9B6278A9070C088C0A80D2
+BC753160E83AF282F3DC077CDF610A18A1A83D4920EB6E2A2B73E40BA112F78C
+A18A26ACD11A5D4E12C67A631D4928EFB809640F64571E5605AD4BFD3D00FFCF
+FFE4FF9FFF1A63002175D401D4BBD218F40B4C56766A4FBB93741F9D2B746F78
+B062CF36E60973FD3D52810750C06C73CC376F5291442A4EEF4B2842B6317CB7
+E1AE735793AA5CD2F927E4DAD0470D0A6612E8C0557245213B0DC87DF4B9CD12
+60A6FB3955E007041838B667417524FED98D5EE035C212C8377A6E2393D86DCA
+BD5092520A83CBFB978D2EEC4847BE9D4365714A5F36B343F87F1DBB1E2759ED
+78EAA5491A4EEFB8FE1FBD10112294959C42FA664442335E521CA7D7E7BDA468
+AE36FFEDA896738CDB3054025485FA28A071C96A003DF5A940261ECCE471616C
+A5B0223E7F435A096B90FF8ED7D88FADF050BC4C4C1FA51D4D389BC36E9D5D70
+9C38800E0CA38D1A045586E46563D855E4E6A8482BDEC35617411F8E046FB838
+1F745325CEF7AF2EF0D7F912A34BA6CE8676944A3B12212CE7AD55539FD9179C
+D8BE8CA39C9EEC948BCCCF2ECCC8F10DD4C8E99A5922BD9A56191C4900063DCC
+C3BED41EF16BD2BC1891D87E5DD05AF7C25D7E92B1BB87D53817643B621BB21B
+EA839B295433042A7E0CE294C031A4C460F05D16B46430445717EAC72766909F
+9008EF1F3F8404DD56B1B1F90A06D99859A1C45F7510B9E7C6929BF9E54053BF
+95B4911454183A5F2734C2CC7622ECFD0664B77640C416A1DA10F13BA0238C25
+DF6752C9B793F8FFA012C6E8E2AC81DDD9E402F42DC4CD6F290BFF4B9C633E1E
+52397F385B895FA3DC7471F3EB97244EFEAFB11BA92C994CFB511D7532304836
+151A4087F1CEE38AB690E1DE2354FA2A7059F42982D0CFD01BE3A320FB078F2D
+7947E9A5C973DFE340D0A742170386831314BDE9D67134451FDE80E093C53F37
+F0FD8CEF42FA08555757888839D9DAF23A735243EBB372A5C3230B1CC2F3B5C1
+C8C19CB3C3E9B1A42D0B314E778F7B3F24C8D61375FA725B40F561C6619D025E
+899BAFD602833506BBC5B6EC86A932F46338E7E26EDA743CC51D8E4B3944D186
+7EFEF666F9AE87E395FB9DDE9A936AB87B90771BE94B784B7584D71827874DEE
+03B55096CDD953D93FC0FCD7E878A11EB46A10CCCE040A90B375995C5FCBBB27
+5D0745BF763C61DCBF193651A3E36A4112F823B5607F418AC8C41B51221F9E6F
+0E9DC72ABCAC248BD8D83949A24D33DFEAA363508C263FF9B222347DA08B99F0
+2173065BB9240A61135E38D461736B04BE918BA150DC90043306056B657D6CA7
+FC27151322B0F132D91C0BD0B9483A6A26D84882095E20127541BC1D93B72AE0
+8A68A5DEFB35E50B37ACB926DD8DB96B910BB6F315FDBAE48531574B9ACBB438
+D1ADA41812A752E9876AB76B31CDE8EFDDB0DE7AF97238A9DA0846EAD39DB2AB
+30EB7D7F61DB0876FD294E5E09916F0C79417108B30597932BF1C81DCF5CE0BD
+2D65C84441D6354A9C8647D740C1B450E5DD3237EF9BBC793F1148155C0F950A
+405BFE9BE30D9EF9F8812279F71B30949F8640E9D0E5B6CD133153B2866E7F35
+78795EDF42FAC47913A9083E7069C4D4E6B0642F55FB481E7004DEA3C3C86177
+A103AFC8FF966BB958BC5EAE139870EC202D1BAC713AF4E3F2FB9594D60E83F0
+8638980BDB2FD061C867E748420E45AFE685D27A2767D31E272B43EC2DDA5424
+AC17EB9D1C7CE94DA05F741F0F635361325F227EC2DEEB5A3EF3AF4FF03F5FFF
+349A9571CA07A944C3974706C1E1A2A433F76149A1E33322E05335787A99C9A3
+98EBC8894218611339E7F065F13C02CF110ECED530FF12350140A7BC7BC810C8
+F17E870225D6DA162362C5587A4A13F52E9F92E31D0DC959DA76A3095661D000
+25A9EB458084039E445529C5A08E3C66FE115D2FE1CAD9CF27315D440FD45C76
+464970D0438E3C1E5F9CE9A9ADA95C5584532C7998063FC7E4E4DD3248148EAC
+10DD976E786084D5CD51D263AA0B7B5F0C31C1A127E03CA8AAA424C6D31106D9
+5788B85D5B2D4557615AF4B1CE34CB66F61AB005C5968756539C44690C3B93E9
+0629165F9377A1B449E2D07356E10DA88338F5B16EC8DAEA544ADED4B3EDD716
+550D9103F3F97E86181B8379D37E53FDA0557BA5EA231B90655957080E0E6DC6
+114D07BA1C9D1BACD0EF6F7997BF73482B194824A1EE1A39A6050213FDB4C820
+FE4BDE84724041C6F51287B7AF2E7A19558AB32EE2DABA726577787D5A136434
+427EF025B3D99F7B916F17AC1382994BD9DF6FD023D2AA72437FD509F55D5EA9
+189108B7934E0B0CEA9E956A000C5E23732E45BD1762961EFF36F7389BA1BF85
+312959449D0751E198C9C34E1081CD049759573217FB73F6A7B0348533F2D942
+9CF18688587980A65F512906C42593767D8A08F81C62E42CF85B92366E0DDE12
+0B04CD253800423151CCF040354A70EBF850C23013A48ACAFC816C4C002D0BAA
+0BCD2869368C497129DFA21813D2689F3EDBDA0956F822751B125CA6ACED9525
+51F85272D896B6A12EB9FB8579DF5FCE686804E3D4BCE113B5FD83478861553D
+75E11E30471EC3A76C5DA24F5BDA4C5A8B72E93DFA470B7E49CE1F960FD3F10F
+3E0E32BEBBB09244F091ACFD721B806D00593A925F97DAFC22C86BB5B0D4648B
+1BD0C32F5EEB7A3CD106C00015CC89B0D2677C7B4F2D3D818B40336B24D3B7B6
+77D03EAE4775C93326F7EE747CBD71FB65A2A2EAC5F1D03A5999C5689B099127
+61A2F058BD984FA3D2785622909A03EDE1A209ED6BB56237887479A782C75A54
+BC20ED5EB4E2BEAD28641E95237D2FE51C70AC77BE31246C92D4A3175EE3FE6C
+02612C7134DA79EAC6522DC1B52AD97132FF53EAE224C2DE9BB37E79464F08E1
+7340C8A79B87B439A484AAC56037E30DD391961E99B1BD4034BF50D00C1657E9
+8FCF4C2DD03612021175360A582CEFC4A7D12642EB33567A389EFBE03712DEF1
+00E971320F62E803F0775767620F37B34692C313FB9C0958E00597E1953F79F0
+F32186D202AF03829D2062335B64DE098D4ECBDED19516A3F4DC88D1799D0FFD
+F24B2C0E899D45756733EE27A1FCC99BEF10C462E9F9B062E9BFC16E75459B76
+06D84FE9C552AF42B0B3EC237785B3CB5075ECB9DE28817B55C85AAEC0C94C4B
+DA282188747A4CF8D63A50B9923CD27DB14D3BC523F41728A2D90ACF46355944
+991DACE13425D8DC18BA74B9F61923E45C978DC8B2D50939947CB4B33596D6D8
+5AB3DD0BD8E4CC3CB8D14590F900354CC46858D09C4BFA8142CDE33F8B75F349
+F535CF80B6DB8E64E6DADDF520D9E29D957BF1E298027BD5D0C4171DB575EA96
+1AECF1C3DEA0950BE26E739FBFB2BE59B86E188816CD44B7ECA980C1E44AA079
+AC2E7BD3C6FF65D9779B60ED34BCB38CCF793BFCF59B84A89A8C719C40EB0A23
+A91CCF0C21CE3DF3985E13C2EB9F89D6B7CE6923077D5E27260B55BC9FAE73B7
+C7EDE7676F922A8366154FAC92C7455863A45C4F4BF140776935BA4583CB1EC7
+1486197EDDFA9E46DCE6A28C992B10DA89C4FB8CF80CD39AC536C1D41C6753E3
+692F8E76928B5D4F2E86D30F7B3954BD6301ABB58CED13884C284C53D7A734BC
+46A9502745970B12A16058695801EDDFF1E65F7242CC61F6C4163A67DB236F17
+704CF79727413904319002AA4D81BFDDF64EFAD2DC47FB896BCBC5FF19FCA3ED
+B2321FF9F8504241CC25C1922DBB23CD6AFA25DDCFD473AC617F1333CFB469F1
+A343455681B59829DFFBCE8406D374059A724C7124FEBEE05F9BF3206254A931
+0D276555A890E38C69BB578DC8D7511E5F82A15E8E4BECD06D47F6E3AFD854C0
+B968F0923B0D7A3672BF7CDA1DA9CD9FEE74D70A2CCAD4055062E3AD8685FFC0
+B5BDDB530C857C3C826981C0F2F91574DE71274A4E404A1D73020F4B50376EFC
+748EEA93D6E1E2DB1144347180ED372D2727E2DBB8E9334778AB1C4E67993D28
+5EA56E402DC2A8B87D017778ACB9585D9C73780CAD7CE94B6BB727BB93366612
+8DC1B3830E7E95EC7EC2D539FE7E73E55633CADBC630F6B7DC36D77ED47B2958
+0B263DB67F07E16A040DC602CA362233C947B95F63F16239F0CA977F1A99F9A6
+B36F831B7D8AA5BD29DC4E26DB4DDB04508C53EA8041AF99D33899327C353C96
+A765BBFE74CFDD198E2FD0D9B9F3F76F2A8178A530919CB701F51DE0BECF3BFA
+B6A10EA4DB04DA17C04B2A932E937CCB268F5F427485C217D284CF602C9091E3
+6977BB4ECD4CA46905E79C6E847C0B7FE0A84F0DD43F7EECD10CC502F95293FC
+078348DBDAC9DAF6338E1F9D7DD289F52E1021E27851CC45AA0047F2FE07B5C7
+A6F0F8BB5E26BA7FFFB21082351804662F9C476E9D721E8A5BC81F2E5CA81F45
+4FC091EC171438E64ECE1899865F483D6015792450AE1186640D1E3C328B915E
+2893621345A8EAEF8A017CCA2D2608C5823A23FC7575397C3646476E8D26BDD2
+8C51C4CEF109EDB677017739A53CFA6A509AC5152077EA5ECD7A176578B6BFC4
+ABABBD0C484F31B293EE6FE8E68A281EECA6198A8BC6CAD2EA4EE2C49390AF4C
+6A710275742AFCA4E2A1DBE04123C080FAC65EB8C6AC86388FBFFAC8EEC49BAC
+464C4E1AA0DCB37AA6503E364FC954BEC84C9552300DC9495DDDEC35795EF8AF
+50D2C0CA0F238B3FA1CBBA9F9CBE1F621C710F73B7D456073082BCB28170407C
+FC3007F52CB71E08A85621B22B4DF750D011175E0A29B4FEBC1D8625E713D050
+31325515679F4A0D6EF17529A37C0BBC3F8F2F7AA0A6F57977941AB4133DA64D
+1AEBE4C7FABCDC25854BA5583678FFB54956AAE6D94F3E06D5C0F27B1DCF2421
+1C74FD8D4F0A5824DABE0346804CDD2D96BED494EE8B9D99F133F325D8CDF0EF
+431AB25D5025BA7A7E8B329AD2F89A53C3855AF9CD54275E030C3051632E5CC0
+994AFBD2A15772BAAFAF46FA10543A2B0AAC06163802D7F748C0EA0DA9072E54
+19E4BE682E9CDBA0B0D7E9F60A90C6C8491A6F30A5D310050DBCF613CC297D4B
+66974DACBFAB4377A753A16FE6394542A275D14197D422CF91FF360E8A63E8B0
+2E746082582E2448F6CAD56E488DBC0F40FCBCBB993A787E70BC9D8E24176B61
+FF2984A3855F02787C6C3DB41752B63FE0B7B090FC6D21763E96F2AC80B8994C
+FC3DD8AD32562184A3FA34CB6C0C73CB587529E35E72337A1AD22970995051DE
+2D10E84A14340589B08FA907F5A3570F98713316F633228AC0BBEC6789BED276
+6E2E1597D0C8C22705A729622749A30BDD267F7BF3CC116F7F888A4F4AFCD688
+63AE5A71F1E2F5EEFA3B100B19D6A893BE519DC5DAA215B143F807296187E4A2
+F52FC1F4448B0F4529E2156CE980293422994E484EA3F21C9FF7A56BB005A4C2
+F073DF6552D40E5DCB7A419C620C9127C451EBC2E341CB0649A503FA0E1B38D6
+2BAD504BEEEC35C13F6CB0659E719FF18C523B882EBD74D43D769E1F8A30354F
+8B790EAA99668110FE86806BDB239796E9F55A75D110D000C72AB2A430241713
+FD770F84793CD7BC488B8BBD59DA1BE3AAABC83F5E699F2A9D4870C2130502A1
+7CC2368B92CF0D52CB70446A3F634582E2E3D320CFC4353A748C1F1D91C7E4B5
+5ACA209EA88800AB7293FD1E8064B10C1A5829535E26D3C55AF6AD9B4ACE497B
+FAB377677F34D002BCDF35C0BBB7DA7833638683788748A16D075E344CE8FF95
+C09C6DCFCCBDB48EC084126BCF94EBDB1856940C67BBB69B8825E91A98F699EF
+2E378557776C9788E2A80ABAFE3E7E3BB6C0F32FA770597E37F271C50C10A9B2
+F90C8D80F4BD9F4C1098A306CE886C127946D3DB39C82F31F1CB1B1451FF6D9D
+A519AA74E1C7C4797F5E3EB440105C51ACFF85734924C0576E826B210C501232
+456601B688A3EA9494A8F391E1A0BFB7668BF6D0E1B82A47E91BC893E13EA0BC
+F8B7BA17D586DEFE3F7C2C72909106A651908325E055DE4F4E5B266D71716474
+56D5010FDC4012A2D659234BA355366C4E737FDFC04B7BECE1C1E16A7158FB27
+21AB8752DBCF8EF4AD11D185D7CE3BD84CD520553F0EE3FFA0AB3D773978A425
+F6C1B4EEE27F127C469005AFE5E07ACF2E438CCA628A77D90C9EAF7072733357
+CCF508A46C831FB96D0033FECE34E85023015A3AAA5E373A790DEB5D743EADBD
+7D249F543389FB089F4ECCAEDC4B75034AAF5DF41AB2DB047BE7C9500D34C60D
+7F38EC93219FA9C8A96523B981103196DB4D45031BAA1CF5018F3ABA08A547AD
+02E77C769762C162C7931A91CED9B33EE6C3BF4E59FF8EFE17A952FF3EAD46A9
+FDB74FFB0FB988DCEFA31ADB3F2A78E7C51BB09504DBBF1D53D96676E5843D8E
+DB50E2C89E2FA58295694AC71D7DC610756278F387A7809C8CD27152672314BE
+E287E774C2949A13B03BCEBA7A9A1A0B927AC46D8FF136C5B305EC65609F6162
+39908934CA61A225513E658F6B42F15A3621A45191F5437EBECAC64914548C8A
+6750FA2C9CC0E3BC40E01A21E3C4BA1707915D34CB78C96F0BCB7E2B10892E71
+174268D0234CFFCD5E60BD7955A151226F4987B67A69D9313CDB1ED0F9F34958
+33F7D16834BB40A6EEC4A5E24F57067FB59FB8D8C9AADFDBD3A897D8C91770CD
+D4820C1AE39A2D1AEC8B457DD856F81B3E698CF1FC5191CF60B1A80CC3230B63
+59C1384BD01EA86208DE000C9D3857B3243C95D6B6BA5BC693C539F7F6423205
+1F0FC68EB360DA674569C20FB993449096394328BB9229F93F45ECF5E11371B9
+63C233E1661C8451A3D1E076D243F6E887C82E49E00E2847CC33858370D560A4
+6742B1F48C2EE6D561A6D43BE796A09976E0D69A4A6C346AB895264C96092511
+7527320E9EA8A73250607B09BBE48D3952998435F36FE4D1CF667BC28ABCCD69
+FEE40049B09F1F39B64F3BE92C1EAC9C4661EBC403A69A9180FA83D1D5E590E0
+647AD00FE509B0E9FEB752F85726783978CE98B4AFAD649D9623F41419F9923A
+A11729723270E0847AA464AEF74FBC743D8D805322360364E7751743552A0AFF
+CCEB847942D9689E9659D15A3D795AEC8782C6EBCE6760E687F87095FCDDEA8B
+C4D8FCE65634148638A8DE5797BF21266AD94E363F58DB84561B74CDD8D5FAB3
+59A521598B34720C54C0AFC5B1A415B7E929D6EDCEE9205DAAB716379C29289F
+2C1AA7EE0776B1C6B6AFCDED4C6ED7EDFF1AA20523EC52F8332C2C0ABBAC1A2B
+DE91AE501079F2A4ECAE93FB93082B1A241AA79C1F7907F8EB3BD528A2353FBE
+749B89A4FD00C8C9472446EE4B6F04F5073EA7C2854835FFBA548920108192AC
+8CC658B87F249321015CA481B2A5F19156F63C5F7C285E18456D0CF0E1ECABCA
+C9702A3DC3911A3B179C837D4849DFEF463B9648AA2CEE8C7B7304B551296AA5
+4E73AFFD0D86AFBBAAEB71082E250627D70CAF3D246867A3676ED1BBBE99F6FD
+32BCA350821E0925E99235BE60C72D8270769DBE50CA12BE348D5145598EB0F6
+2EFC2EAFB348EC74C1F9025DEF33772AB3A41D6F8DDE6CC6746701CF75C86B43
+3F9224B633E510BAB613F6EC46A685D32C1C474F3509FC63268C4DF841B9B38E
+9CB08A26518FFD1A402D43C079C5603589D578DE2E8225A160625B6A484460CE
+5C445FDC1D3A58A982D205C370D86195D988E277F92937BBC9FF72851B0694B4
+D484FE0755962D2C4D81DA0F1F36973CD69765482A7DF0F5E701A3C5045C97FC
+09B5DEC1E35BDF033C02B7155B72851ED7A6BFDE12196DB43AFEDADACD52B93D
+E6F247F438A11DBF4A6D6CD59834865EF349F87DBB7EBBC5503492F5BAEA9615
+32AB4D318C6D1BB372FB14CFCB4268EF69128DE3FA99379609DF7099E459B557
+E7CFA0A293121A700CCC679D815F0883CFAF64B603C9E588488904267AD3EE3B
+9A8F6BED8EF48582F4A420AAE9CC3E0A61EB8D10C816C3091074E3B6345FF4DC
+37E1C1597DA71581A9920E9858DAB295178521766178F2141851EF5E455CE390
+4CD16782A04606397A6B4D13303918255700FFC68D83420E3F37437C073DBE9F
+C80EC3F7D915376410FC4961F37D73D13268B7E93C8B4F29880B535D14DE1205
+615CCB9BCDB0164F2D9C3E9515BF00C5D4E164A6B495E6A80EA01D3D6226BABE
+762982E7B5B74799A15819EDEDFB01B444BA30899AF2498DF31B1198C9115C88
+720C6BFFE2E0F33944274AB36CDEC08D18D00AD8AAB0037680DA8525AD9EBA6D
+8847EEEF0F689C466DB5CA6382B52F56FCF8490F2A931B3A71
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -4106,12 +4107,12 @@ rf /Fs 129[48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 1[48 48 1[48 48 1[48 48 48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 33[{ TeX09fbbfacEncoding ReEncodeFont }89
-90.9091 /CMTT10 rf /Ft 131[91 1[40 48 48 66 48 51 35
+90.9091 /CMTT10 rf /Ft 131[91 45 40 48 48 66 48 51 35
36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51
45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71
68 83 57 71 47 33 68 71 59 62 69 66 64 68 5[25 25 45
45 45 45 45 45 45 45 45 45 45 25 30 25 2[35 35 25 2[45
-1[45 19[76 51 51 53 11[{ TeXf7b6d320Encoding ReEncodeFont }82
+1[45 19[76 51 51 53 11[{ TeXf7b6d320Encoding ReEncodeFont }83
90.9091 /CMR10 rf /Fu 134[102 6[79 3[108 1[54 2[54 3[88
108 1[108 94 11[149 2[144 3[151 1[116 4[152 71[{
TeXf7b6d320Encoding ReEncodeFont }14 172.154 /CMBX12
@@ -4127,30 +4128,29 @@ letter
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fu(GNU)65 b(Readline)g(Library)p
-150 1418 3600 34 v 1373 1515 a Ft(Edition)30 b(5.1-b)s(eta1,)j(for)d
-Fs(Readline)e(Library)h Ft(V)-8 b(ersion)31 b(5.1-b)s(eta1.)3139
-1623 y(No)m(v)m(em)m(b)s(er)g(2005)150 4935 y Fr(Chet)45
-b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l
-(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11
-b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141
-3600 17 v eop end
+150 1418 3600 34 v 1873 1515 a Ft(Edition)30 b(5.2,)i(for)e
+Fs(Readline)e(Library)h Ft(V)-8 b(ersion)31 b(5.2.)3333
+1623 y(April)f(2006)150 4935 y Fr(Chet)45 b(Ramey)-11
+b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
+5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
+-11 b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 150 3024 a Ft(This)32 b(man)m(ual)h(describ)s(es)
-f(the)h(GNU)h(Readline)f(Library)f(\(v)m(ersion)i(5.1-b)s(eta1,)i(11)e
-(No)m(v)m(em)m(b)s(er)g(2005\),)150 3133 y(a)42 b(library)f(whic)m(h)g
-(aids)g(in)g(the)g(consistency)i(of)e(user)g(in)m(terface)h(across)g
-(discrete)g(programs)f(whic)m(h)150 3243 y(pro)m(vide)30
-b(a)h(command)f(line)h(in)m(terface.)150 3377 y(Cop)m(yrigh)m(t)602
-3374 y(c)577 3377 y Fq(\015)f Ft(1988-2004)k(F)-8 b(ree)32
-b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)150 3512
-y(P)m(ermission)g(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d(distribute)h
-(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m(vided)f(the)150
-3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s(ermission)g(notice)h
-(are)g(preserv)m(ed)f(on)h(all)g(copies.)390 3756 y(P)m(ermission)k(is)
-h(gran)m(ted)f(to)h(cop)m(y)-8 b(,)38 b(distribute)d(and/or)g(mo)s
-(dify)f(this)h(do)s(cumen)m(t)g(under)390 3866 y(the)j(terms)g(of)g
-(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8
-b(ersion)39 b(1.1)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
+TeXDict begin 2 1 bop 150 3024 a Ft(This)37 b(man)m(ual)h(describ)s(es)
+f(the)h(GNU)h(Readline)f(Library)f(\(v)m(ersion)i(5.2,)i(26)e(April)e
+(2006\),)42 b(a)c(library)150 3133 y(whic)m(h)h(aids)g(in)g(the)g
+(consistency)h(of)g(user)e(in)m(terface)j(across)f(discrete)g(programs)
+e(whic)m(h)h(pro)m(vide)h(a)150 3243 y(command)30 b(line)h(in)m
+(terface.)150 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577
+3377 y Fq(\015)f Ft(1988-2006)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)32 b(Inc.)150 3512 y(P)m(ermission)g(is)h(gran)m(ted)g(to)
+f(mak)m(e)i(and)d(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m
+(ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f
+(this)g(p)s(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g
+(copies.)390 3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
+b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
+(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
+b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
+b(1.2)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28
b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33
@@ -4609,202 +4609,206 @@ Ft(and)d Fl(C-J)f Ft(c)m(haracters)k(will)150 408 y(terminate)j(an)g
518 y(original)30 b(line.)41 b(When)28 b(the)h(searc)m(h)h(is)f
(terminated,)h(the)f(history)g(en)m(try)g(con)m(taining)h(the)f(searc)m
(h)h(string)150 628 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275
-769 y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e
+771 y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e
(the)h(history)g(list,)h(t)m(yp)s(e)g Fl(C-r)e Ft(or)h
-Fl(C-s)f Ft(as)h(appropriate.)43 b(This)150 878 y(will)26
+Fl(C-s)f Ft(as)h(appropriate.)43 b(This)150 880 y(will)26
b(searc)m(h)h(bac)m(kw)m(ard)g(or)f(forw)m(ard)g(in)f(the)i(history)f
(for)g(the)g(next)g(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)
-150 988 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
+150 990 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
(sequence)f(b)s(ound)e(to)i(a)g(Readline)h(command)e(will)h(terminate)h
-(the)150 1098 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38
-b(F)-8 b(or)22 b(instance,)h(a)2127 1095 y Fk(h)p 2151
-1042 151 4 v 2151 1098 a Fj(RET)p 2151 1113 V 2298 1095
-a Fk(i)2349 1098 y Ft(will)e(terminate)h(the)f(searc)m(h)h(and)e
-(accept)150 1207 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e
+(the)150 1100 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38
+b(F)-8 b(or)22 b(instance,)h(a)2127 1097 y Fk(h)p 2151
+1044 151 4 v 2151 1100 a Fj(RET)p 2151 1115 V 2298 1097
+a Fk(i)2349 1100 y Ft(will)e(terminate)h(the)f(searc)m(h)h(and)e
+(accept)150 1209 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e
(command)g(from)g(the)h(history)f(list.)41 b(A)29 b(mo)m(v)m(emen)m(t)j
-(command)d(will)150 1317 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h
+(command)d(will)150 1319 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h
(the)e(last)h(line)g(found)e(the)i(curren)m(t)f(line,)h(and)f(b)s(egin)
-g(editing.)275 1458 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h
+g(editing.)275 1462 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h
(incremen)m(tal)g(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j
-Fl(C-r)p Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 1567
+Fl(C-r)p Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 1571
y(an)m(y)i(in)m(terv)m(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f
(searc)m(h)h(string,)h(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g
-(is)150 1677 y(used.)275 1818 y(Non-incremen)m(tal)48
+(is)150 1681 y(used.)275 1824 y(Non-incremen)m(tal)48
b(searc)m(hes)g(read)e(the)h(en)m(tire)h(searc)m(h)f(string)g(b)s
-(efore)f(starting)h(to)h(searc)m(h)f(for)150 1928 y(matc)m(hing)d
+(efore)f(starting)h(to)h(searc)m(h)f(for)150 1934 y(matc)m(hing)d
(history)e(lines.)78 b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f
(t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150
-2037 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
-2311 y Fr(1.3)68 b(Readline)47 b(Init)e(File)275 2562
+2043 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
+2322 y Fr(1.3)68 b(Readline)47 b(Init)e(File)275 2575
y Ft(Although)g(the)g(Readline)h(library)e(comes)i(with)f(a)h(set)f(of)
-g(Emacs-lik)m(e)i(k)m(eybindings)e(installed)150 2672
+g(Emacs-lik)m(e)i(k)m(eybindings)e(installed)150 2685
y(b)m(y)d(default,)i(it)f(is)e(p)s(ossible)g(to)i(use)e(a)h(di\013eren)
m(t)g(set)g(of)g(k)m(eybindings.)74 b(An)m(y)42 b(user)f(can)h
-(customize)150 2781 y(programs)32 b(that)h(use)f(Readline)h(b)m(y)g
+(customize)150 2794 y(programs)32 b(that)h(use)f(Readline)h(b)m(y)g
(putting)f(commands)g(in)g(an)g Fi(inputrc)37 b Ft(\014le,)d(con)m(v)m
-(en)m(tionally)h(in)d(his)150 2891 y(home)h(directory)-8
+(en)m(tionally)h(in)d(his)150 2904 y(home)h(directory)-8
b(.)50 b(The)33 b(name)g(of)g(this)g(\014le)h(is)f(tak)m(en)h(from)f
(the)g(v)-5 b(alue)34 b(of)f(the)g(en)m(vironmen)m(t)h(v)-5
-b(ariable)150 3000 y Fs(INPUTRC)p Ft(.)39 b(If)30 b(that)h(v)-5
-b(ariable)31 b(is)f(unset,)g(the)h(default)g(is)f(`)p
-Fs(~/.inputrc)p Ft('.)275 3142 y(When)f(a)h(program)f(whic)m(h)h(uses)f
-(the)h(Readline)g(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h
-(read,)g(and)f(the)150 3251 y(k)m(ey)i(bindings)e(are)i(set.)275
-3392 y(In)26 b(addition,)i(the)f Fs(C-x)i(C-r)d Ft(command)h(re-reads)g
-(this)f(init)h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m
-(hanges)150 3502 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
-(it.)150 3739 y Fh(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275
-3990 y Ft(There)33 b(are)h(only)g(a)g(few)f(basic)h(constructs)g(allo)m
+b(ariable)150 3014 y Fs(INPUTRC)p Ft(.)38 b(If)28 b(that)g(v)-5
+b(ariable)29 b(is)f(unset,)h(the)f(default)g(is)h(`)p
+Fs(~/.inputrc)p Ft('.)37 b(If)28 b(that)h(\014le)f(do)s(es)g(not)g
+(exist)h(or)150 3123 y(cannot)i(b)s(e)f(read,)g(the)h(ultimate)g
+(default)g(is)f(`)p Fs(/etc/inputrc)p Ft('.)275 3266
+y(When)f(a)h(program)f(whic)m(h)h(uses)f(the)h(Readline)g(library)f
+(starts)h(up,)f(the)h(init)g(\014le)f(is)h(read,)g(and)f(the)150
+3376 y(k)m(ey)i(bindings)e(are)i(set.)275 3519 y(In)26
+b(addition,)i(the)f Fs(C-x)i(C-r)d Ft(command)h(re-reads)g(this)f(init)
+h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m(hanges)150
+3629 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g(it.)150
+3870 y Fh(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275
+4123 y Ft(There)33 b(are)h(only)g(a)g(few)f(basic)h(constructs)g(allo)m
(w)m(ed)h(in)f(the)g(Readline)g(init)g(\014le.)51 b(Blank)34
-b(lines)g(are)150 4100 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
+b(lines)g(are)150 4232 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
(a)g(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)41
b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)150
-4209 y(conditional)29 b(constructs)f(\(see)g(Section)h(1.3.2)g
+4342 y(conditional)29 b(constructs)f(\(see)g(Section)h(1.3.2)g
([Conditional)g(Init)e(Constructs],)i(page)f(9\).)41
-b(Other)27 b(lines)150 4319 y(denote)k(v)-5 b(ariable)31
-b(settings)g(and)f(k)m(ey)h(bindings.)150 4488 y(V)-8
-b(ariable)32 b(Settings)630 4598 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
+b(Other)27 b(lines)150 4452 y(denote)k(v)-5 b(ariable)31
+b(settings)g(and)f(k)m(ey)h(bindings.)150 4624 y(V)-8
+b(ariable)32 b(Settings)630 4734 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g(b)m(y)f(altering)h
-(the)g(v)-5 b(alues)41 b(of)630 4707 y(v)-5 b(ariables)34
+(the)g(v)-5 b(alues)41 b(of)630 4843 y(v)-5 b(ariables)34
b(in)f(Readline)i(using)e(the)g Fs(set)g Ft(command)g(within)g(the)h
-(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 4817 y(is)d(simple:)870
-4955 y Fs(set)47 b Fl(variable)56 b(value)630 5093 y
+(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 4953 y(is)d(simple:)870
+5092 y Fs(set)47 b Fl(variable)56 b(value)630 5230 y
Ft(Here,)29 b(for)e(example,)h(is)g(ho)m(w)f(to)h(c)m(hange)g(from)f
(the)g(default)h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630
-5202 y(use)k Fs(vi)g Ft(line)h(editing)g(commands:)870
-5340 y Fs(set)47 b(editing-mode)d(vi)p eop end
+5340 y(use)k Fs(vi)g Ft(line)h(editing)g(commands:)p
+eop end
%%Page: 5 9
TeXDict begin 5 8 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(5)630 299 y(V)-8
-b(ariable)36 b(names)f(and)g(v)-5 b(alues,)36 b(where)f(appropriate,)h
-(are)g(recognized)g(without)f(regard)630 408 y(to)c(case.)42
-b(Unrecognized)31 b(v)-5 b(ariable)31 b(names)g(are)f(ignored.)630
-536 y(Bo)s(olean)c(v)-5 b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f
-(set)i(to)g(on)f(or)g(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)
-g(v)-5 b(alue)26 b(is)630 646 y(n)m(ull)e(or)g(empt)m(y)-8
-b(,)27 b Fi(on)d Ft(\(case-insensitiv)m(e\),)29 b(or)24
-b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
--5 b(ariable)630 756 y(b)s(eing)30 b(set)h(to)g(o\013.)630
-883 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
+b(Command)29 b(Line)i(Editing)2153 b(5)870 299 y Fs(set)47
+b(editing-mode)d(vi)630 432 y Ft(V)-8 b(ariable)36 b(names)f(and)g(v)-5
+b(alues,)36 b(where)f(appropriate,)h(are)g(recognized)g(without)f
+(regard)630 541 y(to)c(case.)42 b(Unrecognized)31 b(v)-5
+b(ariable)31 b(names)g(are)f(ignored.)630 674 y(Bo)s(olean)c(v)-5
+b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f(set)i(to)g(on)f(or)g
+(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)g(v)-5
+b(alue)26 b(is)630 783 y(n)m(ull)e(or)g(empt)m(y)-8 b(,)27
+b Fi(on)d Ft(\(case-insensitiv)m(e\),)29 b(or)24 b(1.)39
+b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)-5
+b(ariable)630 893 y(b)s(eing)30 b(set)h(to)g(o\013.)630
+1026 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 b(ariables.)630
-1029 y Fs(bell-style)1110 1139 y Ft(Con)m(trols)44 b(what)g(happ)s(ens)
+1181 y Fs(bell-style)1110 1291 y Ft(Con)m(trols)44 b(what)g(happ)s(ens)
e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h(termi-)1110
-1249 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
+1401 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
Fs(none)p Ft(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
-b(If)36 b(set)i(to)1110 1358 y(`)p Fs(visible)p Ft(',)32
+b(If)36 b(set)i(to)1110 1510 y(`)p Fs(visible)p Ft(',)32
b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g(one)g(is)g(a)m(v)-5
-b(ailable.)51 b(If)33 b(set)g(to)1110 1468 y(`)p Fs(audible)p
+b(ailable.)51 b(If)33 b(set)g(to)1110 1620 y(`)p Fs(audible)p
Ft(')j(\(the)i(default\),)i(Readline)e(attempts)g(to)h(ring)e(the)g
-(terminal's)1110 1577 y(b)s(ell.)630 1724 y Fs(bind-tty-special-chars)
-1110 1833 y Ft(If)45 b(set)h(to)f(`)p Fs(on)p Ft(',)50
+(terminal's)1110 1729 y(b)s(ell.)630 1885 y Fs(bind-tty-special-chars)
+1110 1995 y Ft(If)45 b(set)h(to)f(`)p Fs(on)p Ft(',)50
b(Readline)45 b(attempts)i(to)f(bind)d(the)j(con)m(trol)g(c)m
-(haracters)1110 1943 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m
+(haracters)1110 2104 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m
(ernel's)g(terminal)g(driv)m(er)f(to)h(their)f(Readline)1110
-2052 y(equiv)-5 b(alen)m(ts.)630 2198 y Fs(comment-begin)1110
-2308 y Ft(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of)
-g(the)h(line)f(when)f(the)i Fs(insert-)1110 2418 y(comment)e
+2214 y(equiv)-5 b(alen)m(ts.)630 2370 y Fs(comment-begin)1110
+2479 y Ft(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of)
+g(the)h(line)f(when)f(the)i Fs(insert-)1110 2589 y(comment)e
Ft(command)j(is)f(executed.)42 b(The)29 b(default)i(v)-5
-b(alue)31 b(is)f Fs("#")p Ft(.)630 2564 y Fs(completion-ignore-case)
-1110 2673 y Ft(If)d(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(p)s
+b(alue)31 b(is)f Fs("#")p Ft(.)630 2744 y Fs(completion-ignore-case)
+1110 2854 y Ft(If)d(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(p)s
(erforms)e(\014lename)h(matc)m(hing)i(and)e(completion)1110
-2783 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40 b(The)30
+2964 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40 b(The)30
b(default)h(v)-5 b(alue)30 b(is)h(`)p Fs(off)p Ft('.)630
-2929 y Fs(completion-query-items)1110 3039 y Ft(The)26
+3119 y Fs(completion-query-items)1110 3229 y Ft(The)26
b(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h(that)g(determines)
-f(when)f(the)i(user)1110 3148 y(is)i(ask)m(ed)h(whether)f(the)h(list)g
+f(when)f(the)i(user)1110 3339 y(is)i(ask)m(ed)h(whether)f(the)h(list)g
(of)f(p)s(ossibilities)h(should)e(b)s(e)h(displa)m(y)m(ed.)41
-b(If)29 b(the)1110 3258 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)f
+b(If)29 b(the)1110 3448 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)f
(completions)i(is)f(greater)h(than)e(this)h(v)-5 b(alue,)28
-b(Readline)1110 3367 y(will)f(ask)g(the)f(user)g(whether)g(or)g(not)h
-(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110 3477
+b(Readline)1110 3558 y(will)f(ask)g(the)f(user)g(whether)g(or)g(not)h
+(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110 3667
y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5 b(ariable)25
b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5
-b(alue)1110 3587 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
+b(alue)1110 3777 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
-3696 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Fs(100)p Ft(.)630 3842 y Fs(convert-meta)1110 3952 y
+3886 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
+Fs(100)p Ft(.)630 4042 y Fs(convert-meta)1110 4152 y
Ft(If)22 b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m(v)m
(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
-4061 y(to)g(an)f Fm(asci)r(i)g Ft(k)m(ey)h(sequence)g(b)m(y)f
+4261 y(to)g(an)f Fm(asci)r(i)g Ft(k)m(ey)h(sequence)g(b)m(y)f
(stripping)f(the)i(eigh)m(th)g(bit)f(and)g(pre\014xing)f(an)1110
-4168 y Fk(h)p 1134 4115 139 4 v 1134 4171 a Fj(ESC)p
-1134 4186 V 1268 4168 a Fk(i)1332 4171 y Ft(c)m(haracter,)36
+4368 y Fk(h)p 1134 4315 139 4 v 1134 4371 a Fj(ESC)p
+1134 4386 V 1268 4368 a Fk(i)1332 4371 y Ft(c)m(haracter,)36
b(con)m(v)m(erting)g(them)e(to)g(a)h(meta-pre\014xed)f(k)m(ey)g
-(sequence.)1110 4281 y(The)c(default)g(v)-5 b(alue)31
-b(is)g(`)p Fs(on)p Ft('.)630 4427 y Fs(disable-completion)1110
-4536 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g
+(sequence.)1110 4481 y(The)c(default)g(v)-5 b(alue)31
+b(is)g(`)p Fs(on)p Ft('.)630 4636 y Fs(disable-completion)1110
+4746 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g
(inhibit)f(w)m(ord)h(completion.)60 b(Completion)1110
-4646 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
+4855 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
-4755 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 4902 y Fs(editing-mode)1110 5011 y
+4965 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 5121 y Fs(editing-mode)1110 5230 y
Ft(The)d Fs(editing-mode)e Ft(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
-(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 5121 y(ings)25
+(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 5340 y(ings)25
b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
-(Emacs)g(editing)h(mo)s(de,)1110 5230 y(where)j(the)g(k)m(eystrok)m(es)
-i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
-b(ariable)30 b(can)1110 5340 y(b)s(e)g(set)h(to)g(either)g(`)p
-Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)p eop end
+(Emacs)g(editing)h(mo)s(de,)p eop end
%%Page: 6 10
TeXDict begin 6 9 bop 150 -116 a Ft(6)2645 b(GNU)31 b(Readline)g
-(Library)630 299 y Fs(enable-keypad)1110 408 y Ft(When)23
-b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(will)g(try)f(to)h(enable)g
-(the)f(application)i(k)m(eypad)1110 518 y(when)h(it)h(is)f(called.)41
-b(Some)27 b(systems)f(need)h(this)f(to)h(enable)g(the)g(arro)m(w)g(k)m
-(eys.)1110 628 y(The)j(default)g(is)h(`)p Fs(off)p Ft('.)630
-819 y Fs(expand-tilde)1110 929 y Ft(If)c(set)h(to)h(`)p
-Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
-(Readline)h(attempts)1110 1039 y(w)m(ord)i(completion.)42
-b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 1230
-y Fs(history-preserve-point)1110 1340 y Ft(If)e(set)i(to)f(`)p
-Fs(on)p Ft(',)g(the)g(history)g(co)s(de)g(attempts)g(to)h(place)f(p)s
-(oin)m(t)g(at)h(the)f(same)1110 1450 y(lo)s(cation)35
-b(on)e(eac)m(h)i(history)e(line)h(retriev)m(ed)g(with)f
-Fs(previous-history)c Ft(or)1110 1559 y Fs(next-history)p
+(Library)1110 299 y(where)e(the)g(k)m(eystrok)m(es)i(are)e(most)h
+(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5 b(ariable)30
+b(can)1110 408 y(b)s(e)g(set)h(to)g(either)g(`)p Fs(emacs)p
+Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 567 y Fs(enable-keypad)1110
+676 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(will)g
+(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
+786 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
+(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 896 y(The)j(default)g(is)
+h(`)p Fs(off)p Ft('.)630 1054 y Fs(expand-tilde)1110
+1163 y Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f
+(p)s(erformed)f(when)h(Readline)h(attempts)1110 1273
+y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 1431 y Fs(history-preserve-point)1110
+1541 y Ft(If)e(set)i(to)f(`)p Fs(on)p Ft(',)g(the)g(history)g(co)s(de)g
+(attempts)g(to)h(place)f(p)s(oin)m(t)g(at)h(the)f(same)1110
+1650 y(lo)s(cation)35 b(on)e(eac)m(h)i(history)e(line)h(retriev)m(ed)g
+(with)f Fs(previous-history)c Ft(or)1110 1760 y Fs(next-history)p
Ft(.)37 b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630
-1751 y Fs(horizontal-scroll-mode)1110 1861 y Ft(This)35
+1918 y Fs(horizontal-scroll-mode)1110 2028 y Ft(This)35
b(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
-b(it)g(to)h(`)p Fs(on)p Ft(')1110 1970 y(means)26 b(that)h(the)f(text)h
+b(it)g(to)h(`)p Fs(on)p Ft(')1110 2138 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 2080 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 2189
+(tally)1110 2247 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 2357
y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
-(line.)39 b(By)27 b(default,)g(this)1110 2299 y(v)-5
+(line.)39 b(By)27 b(default,)g(this)1110 2466 y(v)-5
b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
-2491 y Fs(input-meta)1110 2600 y Ft(If)f(set)g(to)h(`)p
+2625 y Fs(input-meta)1110 2734 y Ft(If)f(set)g(to)h(`)p
Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 2710 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+i(will)f(not)h(clear)1110 2844 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
-2819 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
+2953 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
b(The)39 b(default)h(v)-5 b(alue)40 b(is)g(`)p Fs(off)p
-Ft('.)69 b(The)1110 2929 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
-(ym)g(for)g(this)h(v)-5 b(ariable.)630 3121 y Fs(isearch-terminators)
-1110 3230 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
-(terminate)j(an)f(incremen)m(tal)1110 3340 y(searc)m(h)25
+Ft('.)69 b(The)1110 3063 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
+(ym)g(for)g(this)h(v)-5 b(ariable.)630 3221 y Fs(isearch-terminators)
+1110 3331 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
+(terminate)j(an)f(incremen)m(tal)1110 3440 y(searc)m(h)25
b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g
-(command)1110 3450 y(\(see)45 b(Section)h(1.2.5)g([Searc)m(hing],)j
+(command)1110 3550 y(\(see)45 b(Section)h(1.2.5)g([Searc)m(hing],)j
(page)d(3\).)84 b(If)44 b(this)g(v)-5 b(ariable)45 b(has)g(not)1110
-3559 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
-(haracters)2494 3556 y Fk(h)p 2518 3503 139 4 v 2518
-3559 a Fj(ESC)p 2518 3575 V 2652 3556 a Fk(i)2713 3559
-y Ft(and)f Fl(C-J)g Ft(will)h(terminate)g(an)1110 3669
-y(incremen)m(tal)g(searc)m(h.)630 3861 y Fs(keymap)192
+3660 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
+(haracters)2494 3657 y Fk(h)p 2518 3604 139 4 v 2518
+3660 a Fj(ESC)p 2518 3675 V 2652 3657 a Fk(i)2713 3660
+y Ft(and)f Fl(C-J)g Ft(will)h(terminate)g(an)1110 3769
+y(incremen)m(tal)g(searc)m(h.)630 3927 y Fs(keymap)192
b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
-(for)g(k)m(ey)g(binding)f(com-)1110 3970 y(mands.)81
+(for)g(k)m(ey)g(binding)f(com-)1110 4037 y(mands.)81
b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h Fs(emacs)p
-Ft(,)i Fs(emacs-standard)p Ft(,)1110 4080 y Fs(emacs-meta)p
+Ft(,)i Fs(emacs-standard)p Ft(,)1110 4147 y Fs(emacs-meta)p
Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p
-Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 4189 y Fs(vi-insert)p
+Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 4256 y Fs(vi-insert)p
Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e
Fs(vi-command)p Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110
-4299 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
+4366 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
b(alue)32 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)33
-b(of)f(the)1110 4408 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
-b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 4600
-y Fs(mark-directories)1110 4710 y Ft(If)38 b(set)g(to)h(`)p
+b(of)f(the)1110 4475 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
+b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 4634
+y Fs(mark-directories)1110 4743 y Ft(If)38 b(set)g(to)h(`)p
Fs(on)p Ft(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash)
-g(app)s(ended.)1110 4819 y(The)30 b(default)g(is)h(`)p
+g(app)s(ended.)1110 4853 y(The)30 b(default)g(is)h(`)p
Fs(on)p Ft('.)630 5011 y Fs(mark-modified-lines)1110
5121 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
Fs(on)p Ft(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110
@@ -4882,161 +4886,164 @@ b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g
eop end
%%Page: 8 12
TeXDict begin 8 11 bop 150 -116 a Ft(8)2645 b(GNU)31
-b(Readline)g(Library)630 299 y(the)h(name)g(of)g(the)g(command.)46
-b(The)31 b(name)h(of)g(the)g(k)m(ey)h(can)f(b)s(e)f(expressed)h(in)f
-(di\013eren)m(t)630 408 y(w)m(a)m(ys,)g(dep)s(ending)e(on)i(what)f(y)m
-(ou)h(\014nd)d(most)j(comfortable.)630 545 y(In)k(addition)h(to)h
-(command)f(names,)i(readline)e(allo)m(ws)h(k)m(eys)g(to)g(b)s(e)e(b)s
-(ound)f(to)j(a)f(string)630 655 y(that)31 b(is)f(inserted)h(when)e(the)
-i(k)m(ey)g(is)f(pressed)g(\(a)h Fi(macro)5 b Ft(\).)630
-819 y Fi(k)m(eyname)g Ft(:)42 b Fi(function-name)35 b
-Ft(or)c Fi(macro)1110 929 y(k)m(eyname)k Ft(is)29 b(the)f(name)h(of)g
-(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g(English.)39 b(F)-8
-b(or)30 b(example:)1350 1066 y Fs(Control-u:)45 b(universal-argument)
-1350 1176 y(Meta-Rubout:)f(backward-kill-word)1350 1285
-y(Control-o:)h(">)i(output")1110 1422 y Ft(In)38 b(the)h(ab)s(o)m(v)m
-(e)h(example,)h Fl(C-u)d Ft(is)h(b)s(ound)d(to)k(the)e(function)h
-Fs(universal-)1110 1532 y(argument)p Ft(,)f Fl(M-DEL)e
-Ft(is)i(b)s(ound)e(to)i(the)g(function)g Fs(backward-kill-word)p
-Ft(,)1110 1641 y(and)g Fl(C-o)g Ft(is)h(b)s(ound)e(to)j(run)d(the)j
-(macro)f(expressed)g(on)f(the)i(righ)m(t)f(hand)1110
-1751 y(side)30 b(\(that)i(is,)e(to)h(insert)g(the)f(text)i(`)p
-Fs(>)e(output)p Ft(')f(in)m(to)i(the)g(line\).)1110 1888
-y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i(names)e
-(are)g(recognized)h(while)f(pro-)1110 1998 y(cessing)24
+b(Readline)g(Library)630 299 y(the)h(name)h(of)f(the)g(command.)46
+b(There)32 b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m
+(ey)h(name)g(and)630 408 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g
+(in)m(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
+b(The)40 b(name)h(of)630 518 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
+(what)h(y)m(ou)g(\014nd)e(most)630 628 y(comfortable.)630
+763 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h(k)
+m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630 872
+y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g(\(a)h
+Fi(macro)5 b Ft(\).)630 1032 y Fi(k)m(eyname)g Ft(:)42
+b Fi(function-name)35 b Ft(or)c Fi(macro)1110 1142 y(k)m(eyname)k
+Ft(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g
+(English.)39 b(F)-8 b(or)30 b(example:)1350 1277 y Fs(Control-u:)45
+b(universal-argument)1350 1386 y(Meta-Rubout:)f(backward-kill-word)1350
+1496 y(Control-o:)h(">)i(output")1110 1631 y Ft(In)38
+b(the)h(ab)s(o)m(v)m(e)h(example,)h Fl(C-u)d Ft(is)h(b)s(ound)d(to)k
+(the)e(function)h Fs(universal-)1110 1740 y(argument)p
+Ft(,)f Fl(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g(function)g
+Fs(backward-kill-word)p Ft(,)1110 1850 y(and)g Fl(C-o)g
+Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f(the)i
+(righ)m(t)f(hand)1110 1960 y(side)30 b(\(that)i(is,)e(to)h(insert)g
+(the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g(line\).)1110
+2094 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
+(names)e(are)g(recognized)h(while)f(pro-)1110 2204 y(cessing)24
b(this)g(k)m(ey)g(binding)f(syn)m(tax:)37 b Fi(DEL)p
Ft(,)24 b Fi(ESC)p Ft(,)f Fi(ESCAPE)p Ft(,)g Fi(LFD)p
-Ft(,)h Fi(NEW-)1110 2107 y(LINE)p Ft(,)30 b Fi(RET)p
+Ft(,)h Fi(NEW-)1110 2314 y(LINE)p Ft(,)30 b Fi(RET)p
Ft(,)g Fi(RETURN)p Ft(,)h Fi(R)m(UBOUT)p Ft(,)g Fi(SP)-8
b(A)m(CE)p Ft(,)30 b Fi(SPC)p Ft(,)g(and)f Fi(T)-8 b(AB)p
-Ft(.)630 2271 y Fs(")p Fi(k)m(eyseq)r Fs(")p Ft(:)41
-b Fi(function-name)36 b Ft(or)30 b Fi(macro)1110 2381
+Ft(.)630 2474 y Fs(")p Fi(k)m(eyseq)r Fs(")p Ft(:)41
+b Fi(function-name)36 b Ft(or)30 b Fi(macro)1110 2583
y(k)m(eyseq)k Ft(di\013ers)d(from)f Fi(k)m(eyname)37
b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f(denoting)g(an)g(en-)1110
-2491 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
-(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 2600
+2693 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
+(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 2803
y(double)29 b(quotes.)41 b(Some)29 b Fm(gnu)h Ft(Emacs)f(st)m(yle)i(k)m
-(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 2710
+(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 2912
y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s(ecial)h(c)m
-(haracter)g(names)f(are)g(not)1110 2819 y(recognized.)1350
-2956 y Fs("\\C-u":)46 b(universal-argument)1350 3066
-y("\\C-x\\C-r":)f(re-read-init-file)1350 3176 y("\\e[11~":)g("Function)
-h(Key)g(1")1110 3313 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+(haracter)g(names)f(are)g(not)1110 3022 y(recognized.)1350
+3157 y Fs("\\C-u":)46 b(universal-argument)1350 3266
+y("\\C-x\\C-r":)f(re-read-init-file)1350 3376 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 3511 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
b Fl(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
-3422 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
-(the)f(\014rst)g(example\),)49 b(`)p Fl(C-x)1110 3532
+3620 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fl(C-x)1110 3730
y(C-r)p Ft(')41 b(is)g(b)s(ound)e(to)j(the)f(function)g
-Fs(re-read-init-file)p Ft(,)e(and)i(`)3462 3529 y Fk(h)p
-3486 3476 139 4 v 3486 3532 a Fj(ESC)p 3486 3547 V 3620
-3529 a Fk(i)31 b(h)p 3705 3476 20 4 v 3705 3532 a Fj([)p
-3705 3548 V 3720 3529 a Fk(i)1110 3638 y(h)p 1134 3585
-36 4 v 1134 3641 a Fj(1)p 1134 3657 V 1165 3638 a Fk(i)f(h)p
-1250 3585 V 1250 3641 a Fj(1)p 1250 3657 V 1281 3638
-a Fk(i)g(h)p 1365 3585 48 4 v 1365 3641 a Fs(~)p 1365
-3657 V 1409 3638 a Fk(i)1438 3641 y Ft(')h(is)f(b)s(ound)f(to)i(insert)
+Fs(re-read-init-file)p Ft(,)e(and)i(`)3462 3727 y Fk(h)p
+3486 3674 139 4 v 3486 3730 a Fj(ESC)p 3486 3745 V 3620
+3727 a Fk(i)31 b(h)p 3705 3674 20 4 v 3705 3730 a Fj([)p
+3705 3746 V 3720 3727 a Fk(i)1110 3836 y(h)p 1134 3783
+36 4 v 1134 3839 a Fj(1)p 1134 3855 V 1165 3836 a Fk(i)f(h)p
+1250 3783 V 1250 3839 a Fj(1)p 1250 3855 V 1281 3836
+a Fk(i)g(h)p 1365 3783 48 4 v 1365 3839 a Fs(~)p 1365
+3855 V 1409 3836 a Fk(i)1438 3839 y Ft(')h(is)f(b)s(ound)f(to)i(insert)
f(the)h(text)g(`)p Fs(Function)d(Key)i(1)p Ft('.)630
-3806 y(The)f(follo)m(wing)i Fm(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f
+4000 y(The)f(follo)m(wing)i Fm(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f
(sequences)g(are)g(a)m(v)-5 b(ailable)32 b(when)d(sp)s(ecifying)630
-3915 y(k)m(ey)i(sequences:)630 4080 y Fl(\\C-)336 b Ft(con)m(trol)32
-b(pre\014x)630 4244 y Fl(\\M-)336 b Ft(meta)31 b(pre\014x)630
-4408 y Fl(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
-4573 y Fl(\\\\)384 b Ft(bac)m(kslash)630 4737 y Fl(\\)p
-Fs(")1110 4734 y Fk(h)p 1134 4681 V 1134 4737 a Fs(")p
-1134 4753 V 1178 4734 a Fk(i)1208 4737 y Ft(,)30 b(a)h(double)f
-(quotation)h(mark)630 4902 y Fl(\\')1110 4899 y Fk(h)p
-1134 4846 20 4 v 1134 4902 a Fj(')p 1134 4917 V 1150
-4899 a Fk(i)1179 4902 y Ft(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
-630 5066 y(In)d(addition)h(to)g(the)g Fm(gnu)f Ft(Emacs)h(st)m(yle)h
+4109 y(k)m(ey)i(sequences:)630 4269 y Fl(\\C-)336 b Ft(con)m(trol)32
+b(pre\014x)630 4430 y Fl(\\M-)336 b Ft(meta)31 b(pre\014x)630
+4590 y Fl(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
+4750 y Fl(\\\\)384 b Ft(bac)m(kslash)630 4910 y Fl(\\)p
+Fs(")1110 4907 y Fk(h)p 1134 4854 V 1134 4910 a Fs(")p
+1134 4925 V 1178 4907 a Fk(i)1208 4910 y Ft(,)30 b(a)h(double)f
+(quotation)h(mark)630 5070 y Fl(\\')1110 5067 y Fk(h)p
+1134 5014 20 4 v 1134 5070 a Fj(')p 1134 5086 V 1150
+5067 a Fk(i)1179 5070 y Ft(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
+630 5230 y(In)d(addition)h(to)g(the)g Fm(gnu)f Ft(Emacs)h(st)m(yle)h
(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
-5176 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 5340
-y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))p eop end
+5340 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)p eop end
%%Page: 9 13
TeXDict begin 9 12 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(9)630 299 y Fs(\\b)384
-b Ft(bac)m(kspace)630 455 y Fs(\\d)g Ft(delete)630 612
-y Fs(\\f)g Ft(form)30 b(feed)630 768 y Fs(\\n)384 b Ft(newline)630
-925 y Fs(\\r)g Ft(carriage)32 b(return)630 1081 y Fs(\\t)384
-b Ft(horizon)m(tal)32 b(tab)630 1238 y Fs(\\v)384 b Ft(v)m(ertical)32
-b(tab)630 1394 y Fs(\\)p Fl(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m
-(haracter)g(whose)e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5
-b(alue)35 b Fi(nnn)e Ft(\(one)i(to)1110 1504 y(three)c(digits\))630
-1661 y Fs(\\x)p Fl(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
+b(Command)29 b(Line)i(Editing)2153 b(9)630 299 y Fs(\\a)384
+b Ft(alert)31 b(\(b)s(ell\))630 453 y Fs(\\b)384 b Ft(bac)m(kspace)630
+606 y Fs(\\d)g Ft(delete)630 760 y Fs(\\f)g Ft(form)30
+b(feed)630 914 y Fs(\\n)384 b Ft(newline)630 1067 y Fs(\\r)g
+Ft(carriage)32 b(return)630 1221 y Fs(\\t)384 b Ft(horizon)m(tal)32
+b(tab)630 1375 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
+1528 y Fs(\\)p Fl(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g
+(whose)e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5
+b(alue)35 b Fi(nnn)e Ft(\(one)i(to)1110 1638 y(three)c(digits\))630
+1791 y Fs(\\x)p Fl(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
-b(alue)40 b Fi(HH)1110 1770 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
-(digits\))630 1927 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
+b(alue)40 b Fi(HH)1110 1901 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 2055 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
(macro,)i(single)e(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)
-630 2036 y(indicate)23 b(a)e(macro)h(de\014nition.)38
+630 2164 y(indicate)23 b(a)e(macro)h(de\014nition.)38
b(Unquoted)21 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f
-(name.)38 b(In)630 2146 y(the)22 b(macro)f(b)s(o)s(dy)-8
+(name.)38 b(In)630 2274 y(the)22 b(macro)f(b)s(o)s(dy)-8
b(,)23 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m
-(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2255 y(will)j(quote)h(an)m
+(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2383 y(will)j(quote)h(an)m
(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69 b(F)-8
-b(or)630 2365 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
+b(or)630 2493 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
(mak)m(e)h(`)p Fl(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p
-Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 2498 y Fs("\\C-x\\\\":)45
-b("\\\\")150 2718 y Fh(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)
-275 2961 y Ft(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
+Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 2625 y Fs("\\C-x\\\\":)45
+b("\\\\")150 2840 y Fh(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+275 3081 y Ft(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
(in)g(spirit)g(to)h(the)g(conditional)h(compilation)g(features)150
-3070 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
+3191 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
(bindings)e(and)h(v)-5 b(ariable)35 b(settings)h(to)f(b)s(e)f(p)s
-(erformed)f(as)150 3180 y(the)e(result)f(of)g(tests.)42
+(erformed)f(as)150 3301 y(the)e(result)f(of)g(tests.)42
b(There)30 b(are)h(four)e(parser)h(directiv)m(es)i(used.)150
-3336 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
+3454 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
-(the)630 3446 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
+(the)630 3564 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
-630 3555 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
+630 3673 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
(haracters)i(are)f(required)e(to)i(isolate)i(it.)630
-3712 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g
+3827 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g
Fs($if)f Ft(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline)
-1110 3821 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
+1110 3937 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
-3931 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
-(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 4041 y(standard)23
+4046 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
+(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 4156 y(standard)23
b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)g(if)g(Readline)h(is)f
-(starting)h(out)1110 4150 y(in)k Fs(emacs)f Ft(mo)s(de.)630
-4307 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
+(starting)h(out)1110 4266 y(in)k Fs(emacs)f Ft(mo)s(de.)630
+4419 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
(used)g(to)i(include)f(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110
-4416 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
-(output)g(b)m(y)g(the)g(terminal's)1110 4526 y(function)24
+4529 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
+(output)g(b)m(y)g(the)g(terminal's)1110 4638 y(function)24
b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g
-(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 4636
+(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 4748
y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s
-(ortion)e(of)h(the)g(terminal)1110 4745 y(name)k(b)s(efore)f(the)g
+(ortion)e(of)h(the)g(terminal)1110 4858 y(name)k(b)s(efore)f(the)g
(\014rst)g(`)p Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i
Fs(sun)e Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110
-4855 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 5011 y
-Fs(application)1110 5121 y Ft(The)21 b Fi(application)j
+4967 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 5121 y
+Fs(application)1110 5230 y Ft(The)21 b Fi(application)j
Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 5230 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
-(Readline)g(library)g(sets)g(the)g Fi(application)1110
-5340 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
-(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)p
-eop end
+(set-)1110 5340 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(Readline)g(library)g(sets)g(the)g Fi(application)p eop
+end
%%Page: 10 14
TeXDict begin 10 13 bop 150 -116 a Ft(10)2600 b(GNU)31
-b(Readline)g(Library)1110 299 y(bind)h(k)m(ey)h(sequences)g(to)h
-(functions)e(useful)g(for)h(a)g(sp)s(eci\014c)f(program.)48
-b(F)-8 b(or)1110 408 y(instance,)35 b(the)e(follo)m(wing)h(command)f
-(adds)f(a)i(k)m(ey)f(sequence)h(that)f(quotes)1110 518
+b(Readline)g(Library)1110 299 y Fi(name)p Ft(,)25 b(and)e(y)m(ou)g(can)
+h(test)g(for)f(a)g(particular)h(v)-5 b(alue.)39 b(This)22
+b(could)h(b)s(e)g(used)f(to)1110 408 y(bind)32 b(k)m(ey)h(sequences)g
+(to)h(functions)e(useful)g(for)h(a)g(sp)s(eci\014c)f(program.)48
+b(F)-8 b(or)1110 518 y(instance,)35 b(the)e(follo)m(wing)h(command)f
+(adds)f(a)i(k)m(ey)f(sequence)h(that)f(quotes)1110 628
y(the)e(curren)m(t)f(or)g(previous)g(w)m(ord)g(in)g(Bash:)1350
-653 y Fs($if)47 b(Bash)1350 762 y(#)g(Quote)g(the)g(current)f(or)h
-(previous)e(word)1350 872 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350
-981 y($endif)150 1141 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)
-h(in)f(the)g(previous)g(example,)h(terminates)g(an)g
-Fs($if)e Ft(command.)150 1300 y Fs($else)240 b Ft(Commands)29
+762 y Fs($if)47 b(Bash)1350 872 y(#)g(Quote)g(the)g(current)f(or)h
+(previous)e(word)1350 981 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350
+1091 y($endif)150 1250 y($endif)192 b Ft(This)29 b(command,)i(as)f
+(seen)h(in)f(the)g(previous)g(example,)h(terminates)g(an)g
+Fs($if)e Ft(command.)150 1410 y Fs($else)240 b Ft(Commands)29
b(in)h(this)h(branc)m(h)e(of)i(the)f Fs($if)g Ft(directiv)m(e)i(are)f
-(executed)g(if)f(the)h(test)g(fails.)150 1460 y Fs($include)96
+(executed)g(if)f(the)h(test)g(fails.)150 1569 y Fs($include)96
b Ft(This)43 b(directiv)m(e)i(tak)m(es)g(a)e(single)i(\014lename)e(as)h
-(an)f(argumen)m(t)h(and)f(reads)g(commands)630 1569 y(and)38
+(an)f(argumen)m(t)h(and)f(reads)g(commands)630 1679 y(and)38
b(bindings)f(from)h(that)i(\014le.)65 b(F)-8 b(or)39
b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e(from)630
-1679 y(`)p Fs(/etc/inputrc)p Ft(':)870 1813 y Fs($include)46
-b(/etc/inputrc)150 2037 y Fh(1.3.3)63 b(Sample)41 b(Init)g(File)275
-2281 y Ft(Here)31 b(is)f(an)g(example)i(of)e(an)g Fi(inputrc)35
+1788 y(`)p Fs(/etc/inputrc)p Ft(':)870 1923 y Fs($include)46
+b(/etc/inputrc)150 2147 y Fh(1.3.3)63 b(Sample)41 b(Init)g(File)275
+2391 y Ft(Here)31 b(is)f(an)g(example)i(of)e(an)g Fi(inputrc)35
b Ft(\014le.)42 b(This)29 b(illustrates)j(k)m(ey)f(binding,)f(v)-5
-b(ariable)31 b(assignmen)m(t,)150 2391 y(and)f(conditional)h(syn)m
+b(ariable)31 b(assignmen)m(t,)150 2501 y(and)f(conditional)h(syn)m
(tax.)p eop end
%%Page: 11 15
TeXDict begin 11 14 bop 150 -116 a Ft(Chapter)30 b(1:)41
@@ -6608,65 +6615,68 @@ b(It)33 b(will)g(b)s(e)f Fs(")p Ft(read)p Fs(")g Ft(b)s(efore)h
b(Up)27 b(to)g(512)h(c)m(haracters)g(ma)m(y)390 628 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 737
-y(0)g(otherwise.)3350 985 y([F)-8 b(unction])-3599 b
-Fg(int)39 b Ff(rl)p 432 985 V 51 w(execute)p 862 985
-V 48 w(next)45 b Fe(\()p Fs(int)30 b(c)p Fe(\))390 1095
+y(0)g(otherwise.)3350 973 y([F)-8 b(unction])-3599 b
+Fg(int)39 b Ff(rl)p 432 973 V 51 w(execute)p 862 973
+V 48 w(next)45 b Fe(\()p Fs(int)30 b(c)p Fe(\))390 1082
y Ft(Mak)m(e)37 b Fi(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 1205 y(sets)31 b Fi(rl)p 635 1205 28 4 v 40
-w(p)s(ending)p 992 1205 V 38 w(input)p Ft(.)3350 1453
-y([F)-8 b(unction])-3599 b Fg(int)39 b Ff(rl)p 432 1453
-35 5 v 51 w(clear)p 722 1453 V 49 w(p)s(ending)p 1172
-1453 V 49 w(input)44 b Fe(\()p Fs(void)p Fe(\))390 1562
-y Ft(Unset)e Fi(rl)p 729 1562 28 4 v 40 w(p)s(ending)p
-1086 1562 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h(negating)e(the)f
+b(This)390 1192 y(sets)31 b Fi(rl)p 635 1192 28 4 v 40
+w(p)s(ending)p 992 1192 V 38 w(input)p Ft(.)3350 1427
+y([F)-8 b(unction])-3599 b Fg(int)39 b Ff(rl)p 432 1427
+35 5 v 51 w(clear)p 722 1427 V 49 w(p)s(ending)p 1172
+1427 V 49 w(input)44 b Fe(\()p Fs(void)p Fe(\))390 1537
+y Ft(Unset)e Fi(rl)p 729 1537 28 4 v 40 w(p)s(ending)p
+1086 1537 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
-1672 y(execute_next\(\))p Ft(.)59 b(This)36 b(w)m(orks)i(only)g(if)f
+1646 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
-1782 y(with)30 b Fs(rl_read_key\(\))p Ft(.)3350 2030
-y([F)-8 b(unction])-3599 b Fg(int)39 b Ff(rl)p 432 2030
-35 5 v 51 w(set)p 626 2030 V 49 w(k)m(eyb)s(oard)p 1136
-2030 V 51 w(input)p 1456 2030 V 48 w(timeout)45 b Fe(\()p
-Fs(int)29 b(u)p Fe(\))390 2139 y Ft(While)41 b(w)m(aiting)g(for)f(k)m
+1756 y(with)30 b Fs(rl_read_key\(\))p Ft(.)3350 1991
+y([F)-8 b(unction])-3599 b Fg(int)39 b Ff(rl)p 432 1991
+35 5 v 51 w(set)p 626 1991 V 49 w(k)m(eyb)s(oard)p 1136
+1991 V 51 w(input)p 1456 1991 V 48 w(timeout)45 b Fe(\()p
+Fs(int)29 b(u)p Fe(\))390 2101 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 Fi(u)g Ft(mi-)390 2249 y(croseconds)h(for)g(input)f
-(b)s(efore)g(calling)j(an)m(y)e(function)f(assigned)h(to)h
-Fs(rl_event_hook)p Ft(.)68 b(The)390 2359 y(default)31
+f(w)m(ait)h(for)f Fi(u)g Ft(mi-)390 2210 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 Fi(u)30 b Ft(m)m(ust)390
+2320 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 2429 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
-2647 y Fh(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
-2923 y Ft([F)-8 b(unction])-3599 b Fg(void)39 b Ff(rl)p
-484 2923 V 51 w(prep)p 763 2923 V 49 w(terminal)44 b
-Fe(\()p Fs(int)30 b(meta_flag)p Fe(\))390 3032 y Ft(Mo)s(dify)42
+2705 y Fh(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
+2974 y Ft([F)-8 b(unction])-3599 b Fg(void)39 b Ff(rl)p
+484 2974 V 51 w(prep)p 763 2974 V 49 w(terminal)44 b
+Fe(\()p Fs(int)30 b(meta_flag)p Fe(\))390 3084 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 3142
+Fs(readline\(\))c Ft(can)k(read)f(a)h(single)390 3193
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 Fi(meta)p 2376 3142 28 4 v 41 w(\015ag)39
-b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 3251
+b(The)30 b Fi(meta)p 2376 3193 28 4 v 41 w(\015ag)39
+b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 3303
y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)3350
-3500 y([F)-8 b(unction])-3599 b Fg(void)39 b Ff(rl)p
-484 3500 35 5 v 51 w(deprep)p 880 3500 V 48 w(terminal)45
-b Fe(\()p Fs(void)p Fe(\))390 3609 y Ft(Undo)31 b(the)h(e\013ects)h(of)
+3538 y([F)-8 b(unction])-3599 b Fg(void)39 b Ff(rl)p
+484 3538 35 5 v 51 w(deprep)p 880 3538 V 48 w(terminal)45
+b Fe(\()p Fs(void)p Fe(\))390 3648 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 3719 y(it)g(w)m(as)g(b)s(efore)f
+(in)f(the)h(state)h(in)e(whic)m(h)390 3757 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 3967 y([F)-8 b(unction])-3599 b Fg(void)39
-b Ff(rl)p 484 3967 V 51 w(tt)m(y)p 682 3967 V 50 w(set)p
-875 3967 V 49 w(default)p 1273 3967 V 49 w(bindings)44
-b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 4076 y Ft(Read)37
+Ft(.)3350 3993 y([F)-8 b(unction])-3599 b Fg(void)39
+b Ff(rl)p 484 3993 V 51 w(tt)m(y)p 682 3993 V 50 w(set)p
+875 3993 V 49 w(default)p 1273 3993 V 49 w(bindings)44
+b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 4102 y Ft(Read)37
b(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
-4186 y Fs(stty)p Ft(\))30 b(to)h(their)f(Readline)h(equiv)-5
+4212 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
-Fi(kmap)p Ft(.)3350 4434 y([F)-8 b(unction])-3599 b Fg(void)39
-b Ff(rl)p 484 4434 V 51 w(tt)m(y)p 682 4434 V 50 w(unset)p
-1003 4434 V 49 w(default)p 1401 4434 V 48 w(bindings)44
-b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 4544 y Ft(Reset)k(the)f
+Fi(kmap)p Ft(.)3350 4447 y([F)-8 b(unction])-3599 b Fg(void)39
+b Ff(rl)p 484 4447 V 51 w(tt)m(y)p 682 4447 V 50 w(unset)p
+1003 4447 V 49 w(default)p 1401 4447 V 48 w(bindings)44
+b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 4557 y Ft(Reset)k(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 4653 y(minal)40
+26 b Ft(so)32 b(that)g(the)g(ter-)390 4666 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
-4763 y Fi(kmap)p Ft(.)3350 5011 y([F)-8 b(unction])-3599
+4776 y Fi(kmap)p Ft(.)3350 5011 y([F)-8 b(unction])-3599
b Fg(int)39 b Ff(rl)p 432 5011 V 51 w(reset)p 726 5011
V 49 w(terminal)44 b Fe(\()p Fs(const)29 b(char)h(*terminal_name)p
Fe(\))390 5121 y Ft(Reinitialize)c(Readline's)f(idea)f(of)g(the)g
@@ -7403,78 +7413,83 @@ b(Programming)30 b(with)g(GNU)h(Readline)1683 b(45)390
(pathname)f(the)g(user)g(t)m(yp)s(ed.)39 b(It)28 b(returns)f(an)i(in)m
(teger)390 408 y(that)34 b(should)e(b)s(e)g(non-zero)i(if)e(the)i
(function)e(mo)s(di\014es)h(its)g(directory)g(argumen)m(t.)49
-b(It)34 b(could)f(b)s(e)390 518 y(used)d(to)h(expand)e(sym)m(b)s(olic)i
-(links)f(or)h(shell)f(v)-5 b(ariables)31 b(in)f(pathnames.)3371
-724 y([V)-8 b(ariable])-3598 b Fg(rl_compdisp_func_t)44
-b(*)38 b Ff(rl)p 1307 724 35 5 v 51 w(completion)p 1908
-724 V 49 w(displa)m(y)p 2307 724 V 49 w(matc)m(hes)p
-2762 724 V 50 w(ho)s(ok)390 833 y Ft(If)22 b(non-zero,)i(then)e(this)g
+b(It)34 b(could)f(b)s(e)390 518 y(used)g(to)h(expand)f(sym)m(b)s(olic)h
+(links)f(or)g(shell)h(v)-5 b(ariables)34 b(in)f(pathnames.)50
+b(A)m(t)34 b(the)g(least,)i(ev)m(en)e(if)390 628 y(no)i(other)h
+(expansion)f(is)g(p)s(erformed,)g(this)g(function)g(should)f(remo)m(v)m
+(e)j(an)m(y)f(quote)f(c)m(haracters)390 737 y(from)30
+b(the)g(directory)h(name,)g(b)s(ecause)f(its)h(result)f(will)h(b)s(e)f
+(passed)g(directly)h(to)g Fs(opendir\(\))p Ft(.)3371
+915 y([V)-8 b(ariable])-3598 b Fg(rl_compdisp_func_t)44
+b(*)38 b Ff(rl)p 1307 915 35 5 v 51 w(completion)p 1908
+915 V 49 w(displa)m(y)p 2307 915 V 49 w(matc)m(hes)p
+2762 915 V 50 w(ho)s(ok)390 1025 y Ft(If)22 b(non-zero,)i(then)e(this)g
(is)g(the)g(address)f(of)h(a)g(function)g(to)h(call)g(when)e
-(completing)i(a)g(w)m(ord)e(w)m(ould)390 943 y(normally)h(displa)m(y)h
+(completing)i(a)g(w)m(ord)e(w)m(ould)390 1134 y(normally)h(displa)m(y)h
(the)f(list)h(of)f(p)s(ossible)g(matc)m(hes.)39 b(This)21
b(function)h(is)g(called)i(in)e(lieu)g(of)g(Readline)390
-1052 y(displa)m(ying)37 b(the)h(list.)61 b(It)37 b(tak)m(es)i(three)e
+1244 y(displa)m(ying)37 b(the)h(list.)61 b(It)37 b(tak)m(es)i(three)e
(argumen)m(ts:)54 b(\()p Fs(char)30 b(**)p Fi(matc)m(hes)p
-Ft(,)39 b Fs(int)d Fi(n)m(um)p 3370 1052 28 4 v 40 w(matc)m(hes)p
-Ft(,)390 1162 y Fs(int)26 b Fi(max)p 735 1162 V 40 w(length)p
+Ft(,)39 b Fs(int)d Fi(n)m(um)p 3370 1244 28 4 v 40 w(matc)m(hes)p
+Ft(,)390 1354 y Fs(int)26 b Fi(max)p 735 1354 V 40 w(length)p
Ft(\))h(where)f Fi(matc)m(hes)31 b Ft(is)c(the)f(arra)m(y)h(of)g(matc)m
-(hing)g(strings,)h Fi(n)m(um)p 3152 1162 V 39 w(matc)m(hes)j
-Ft(is)c(the)390 1271 y(n)m(um)m(b)s(er)h(of)h(strings)g(in)g(that)g
-(arra)m(y)-8 b(,)31 b(and)d Fi(max)p 2020 1271 V 40 w(length)i
+(hing)g(strings,)h Fi(n)m(um)p 3152 1354 V 39 w(matc)m(hes)j
+Ft(is)c(the)390 1463 y(n)m(um)m(b)s(er)h(of)h(strings)g(in)g(that)g
+(arra)m(y)-8 b(,)31 b(and)d Fi(max)p 2020 1463 V 40 w(length)i
Ft(is)f(the)g(length)h(of)f(the)g(longest)h(string)f(in)390
-1381 y(that)g(arra)m(y)-8 b(.)41 b(Readline)28 b(pro)m(vides)g(a)h(con)
+1573 y(that)g(arra)m(y)-8 b(.)41 b(Readline)28 b(pro)m(vides)g(a)h(con)
m(v)m(enience)h(function,)e Fs(rl_display_match_list)p
-Ft(,)23 b(that)390 1491 y(tak)m(es)36 b(care)g(of)f(doing)g(the)g
+Ft(,)23 b(that)390 1682 y(tak)m(es)36 b(care)g(of)f(doing)g(the)g
(displa)m(y)f(to)i(Readline's)f(output)g(stream.)54 b(That)35
-b(function)f(ma)m(y)i(b)s(e)390 1600 y(called)c(from)d(this)i(ho)s(ok.)
-3371 1806 y([V)-8 b(ariable])-3598 b Fg(const)40 b(char)f(*)g
-Ff(rl)p 875 1806 35 5 v 50 w(basic)p 1173 1806 V 50 w(w)m(ord)p
-1471 1806 V 50 w(break)p 1801 1806 V 50 w(c)m(haracters)390
-1915 y Ft(The)44 b(basic)g(list)h(of)f(c)m(haracters)i(that)f(signal)g
+b(function)f(ma)m(y)i(b)s(e)390 1792 y(called)c(from)d(this)i(ho)s(ok.)
+3371 1970 y([V)-8 b(ariable])-3598 b Fg(const)40 b(char)f(*)g
+Ff(rl)p 875 1970 35 5 v 50 w(basic)p 1173 1970 V 50 w(w)m(ord)p
+1471 1970 V 50 w(break)p 1801 1970 V 50 w(c)m(haracters)390
+2080 y Ft(The)44 b(basic)g(list)h(of)f(c)m(haracters)i(that)f(signal)g
(a)f(break)g(b)s(et)m(w)m(een)h(w)m(ords)f(for)g(the)g(completer)390
-2025 y(routine.)61 b(The)37 b(default)g(v)-5 b(alue)37
+2189 y(routine.)61 b(The)37 b(default)g(v)-5 b(alue)37
b(of)h(this)f(v)-5 b(ariable)38 b(is)f(the)g(c)m(haracters)i(whic)m(h)e
-(break)g(w)m(ords)f(for)390 2134 y(completion)c(in)e(Bash:)41
-b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 2340
+(break)g(w)m(ords)f(for)390 2299 y(completion)c(in)e(Bash:)41
+b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 2477
y([V)-8 b(ariable])-3598 b Fg(const)40 b(char)f(*)g Ff(rl)p
-875 2340 V 50 w(basic)p 1173 2340 V 50 w(quote)p 1502
-2340 V 50 w(c)m(haracters)390 2450 y Ft(A)30 b(list)i(of)e(quote)h(c)m
+875 2477 V 50 w(basic)p 1173 2477 V 50 w(quote)p 1502
+2477 V 50 w(c)m(haracters)390 2587 y Ft(A)30 b(list)i(of)e(quote)h(c)m
(haracters)h(whic)m(h)e(can)h(cause)g(a)f(w)m(ord)g(break.)3371
-2655 y([V)-8 b(ariable])-3598 b Fg(const)40 b(char)f(*)g
-Ff(rl)p 875 2655 V 50 w(completer)p 1422 2655 V 49 w(w)m(ord)p
-1719 2655 V 50 w(break)p 2049 2655 V 50 w(c)m(haracters)390
-2765 y Ft(The)64 b(list)i(of)f(c)m(haracters)h(that)g(signal)g(a)f
+2765 y([V)-8 b(ariable])-3598 b Fg(const)40 b(char)f(*)g
+Ff(rl)p 875 2765 V 50 w(completer)p 1422 2765 V 49 w(w)m(ord)p
+1719 2765 V 50 w(break)p 2049 2765 V 50 w(c)m(haracters)390
+2874 y Ft(The)64 b(list)i(of)f(c)m(haracters)h(that)g(signal)g(a)f
(break)g(b)s(et)m(w)m(een)g(w)m(ords)g(for)f Fs(rl_complete_)390
-2874 y(internal\(\))p Ft(.)38 b(The)30 b(default)g(list)h(is)g(the)f(v)
+2984 y(internal\(\))p Ft(.)38 b(The)30 b(default)g(list)h(is)g(the)f(v)
-5 b(alue)31 b(of)g Fs(rl_basic_word_break_cha)o(ract)o(ers)p
-Ft(.)3371 3080 y([V)-8 b(ariable])-3598 b Fg(rl_cpvfunc_t)42
-b(*)c Ff(rl)p 993 3080 V 51 w(completion)p 1594 3080
-V 49 w(w)m(ord)p 1891 3080 V 50 w(break)p 2221 3080 V
-50 w(ho)s(ok)390 3189 y Ft(If)31 b(non-zero,)i(this)e(is)h(the)f
+Ft(.)3371 3162 y([V)-8 b(ariable])-3598 b Fg(rl_cpvfunc_t)42
+b(*)c Ff(rl)p 993 3162 V 51 w(completion)p 1594 3162
+V 49 w(w)m(ord)p 1891 3162 V 50 w(break)p 2221 3162 V
+50 w(ho)s(ok)390 3271 y Ft(If)31 b(non-zero,)i(this)e(is)h(the)f
(address)g(of)g(a)h(function)g(to)g(call)h(when)d(Readline)i(is)g
-(deciding)f(where)390 3299 y(to)k(separate)g(w)m(ords)f(for)g(w)m(ord)g
+(deciding)f(where)390 3381 y(to)k(separate)g(w)m(ords)f(for)g(w)m(ord)g
(completion.)54 b(It)34 b(should)f(return)g(a)i(c)m(haracter)h(string)e
-(lik)m(e)i Fs(rl_)390 3408 y(completer_word_break_cha)o(ract)o(ers)26
+(lik)m(e)i Fs(rl_)390 3491 y(completer_word_break_cha)o(ract)o(ers)26
b Ft(to)34 b(b)s(e)e(used)g(to)i(p)s(erform)e(the)h(curren)m(t)f
-(completion.)390 3518 y(The)24 b(function)h(ma)m(y)g(c)m(ho)s(ose)h(to)
+(completion.)390 3600 y(The)24 b(function)h(ma)m(y)g(c)m(ho)s(ose)h(to)
f(set)g Fs(rl_completer_word_break_ch)o(arac)o(ter)o(s)19
-b Ft(itself.)39 b(If)25 b(the)390 3628 y(function)30
+b Ft(itself.)39 b(If)25 b(the)390 3710 y(function)30
b(returns)f Fs(NULL)p Ft(,)h Fs(rl_completer_word_break)o(_cha)o(rac)o
-(ters)24 b Ft(is)30 b(used.)3371 3833 y([V)-8 b(ariable])-3598
-b Fg(const)40 b(char)f(*)g Ff(rl)p 875 3833 V 50 w(completer)p
-1422 3833 V 49 w(quote)p 1750 3833 V 50 w(c)m(haracters)390
-3943 y Ft(A)34 b(list)g(of)g(c)m(haracters)h(whic)m(h)e(can)h(b)s(e)g
+(ters)24 b Ft(is)30 b(used.)3371 3888 y([V)-8 b(ariable])-3598
+b Fg(const)40 b(char)f(*)g Ff(rl)p 875 3888 V 50 w(completer)p
+1422 3888 V 49 w(quote)p 1750 3888 V 50 w(c)m(haracters)390
+3998 y Ft(A)34 b(list)g(of)g(c)m(haracters)h(whic)m(h)e(can)h(b)s(e)g
(used)e(to)j(quote)f(a)g(substring)f(of)h(the)f(line.)51
-b(Completion)390 4052 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)i
+b(Completion)390 4107 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)i
(substring,)e(and)f(within)h(the)g(substring)g Fs
-(rl_completer_word_break)o(_)390 4162 y(characters)32
+(rl_completer_word_break)o(_)390 4217 y(characters)32
b Ft(are)k(treated)g(as)f(an)m(y)h(other)f(c)m(haracter,)j(unless)d
-(they)g(also)h(app)s(ear)e(within)h(this)390 4271 y(list.)3371
-4477 y([V)-8 b(ariable])-3598 b Fg(const)40 b(char)f(*)g
-Ff(rl)p 875 4477 V 50 w(\014lename)p 1342 4477 V 49 w(quote)p
-1670 4477 V 50 w(c)m(haracters)390 4587 y Ft(A)34 b(list)g(of)g(c)m
+(they)g(also)h(app)s(ear)e(within)h(this)390 4326 y(list.)3371
+4504 y([V)-8 b(ariable])-3598 b Fg(const)40 b(char)f(*)g
+Ff(rl)p 875 4504 V 50 w(\014lename)p 1342 4504 V 49 w(quote)p
+1670 4504 V 50 w(c)m(haracters)390 4614 y Ft(A)34 b(list)g(of)g(c)m
(haracters)h(that)f(cause)h(a)f(\014lename)g(to)g(b)s(e)f(quoted)h(b)m
-(y)f(the)h(completer)h(when)e(they)390 4696 y(app)s(ear)d(in)g(a)h
+(y)f(the)h(completer)h(when)e(they)390 4724 y(app)s(ear)d(in)g(a)h
(completed)g(\014lename.)41 b(The)30 b(default)g(is)h(the)f(n)m(ull)h
(string.)3371 4902 y([V)-8 b(ariable])-3598 b Fg(const)40
b(char)f(*)g Ff(rl)p 875 4902 V 50 w(sp)s(ecial)p 1261
diff --git a/doc/readline_3.ps b/doc/readline_3.ps
index b2106ac..70ce2a9 100644
--- a/doc/readline_3.ps
+++ b/doc/readline_3.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.1
-%%CreationDate: Tue Dec 6 15:46:41 2005
+%%CreationDate: Thu Jul 6 09:35:44 2006
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -318,24 +318,28 @@ G 3.311(df).15 G .812(or possible future retrie)-3.311 F -.25(va)-.25 G
592.8 R 1.443(en from the v)-.1 F 1.443(alue of the)-.25 F F2(INPUTRC)
3.943 E F0(en)3.943 E 1.443(vironment v)-.4 F 3.943(ariable. If)-.25 F
1.443(that v)3.943 F 1.443(ariable is unset, the def)-.25 F 1.443
-(ault is)-.1 F F3(~/.inputr)108 604.8 Q(c)-.37 E F0 5.359(.W).31 G .359
-(hen a program which uses the readline library starts up, the init \214\
-le is read, and the k)-5.359 F .658 -.15(ey b)-.1 H(ind-).15 E 1.083
-(ings and v)108 616.8 R 1.083(ariables are set.)-.25 F 1.083
-(There are only a fe)6.083 F 3.583(wb)-.25 G 1.083(asic constructs allo)
--3.583 F 1.084(wed in the readline init \214le.)-.25 F(Blank)6.084 E
-.737(lines are ignored.)108 628.8 R .737(Lines be)5.737 F .737
-(ginning with a)-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737
-(Lines be)5.737 F .737(ginning with a)-.15 F F2($)3.237 E F0 .736
-(indicate conditional)3.236 F 2.614(constructs. Other)108 640.8 R .114
-(lines denote k)2.614 F .414 -.15(ey b)-.1 H .115(indings and v).15 F
-.115(ariable settings.)-.25 F .115
-(Each program using this library may add)5.115 F(its o)108 652.8 Q
-(wn commands and bindings.)-.25 E -.15(Fo)108 669.6 S 2.5(re).15 G
-(xample, placing)-2.65 E(M\255Control\255u: uni)144 686.4 Q -.15(ve)-.25
-G(rsal\255ar).15 E(gument)-.18 E(or)108 698.4 Q(C\255Meta\255u: uni)144
-710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E
-(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)109.3 E(1)204 E 0 Cg EP
+(ault is)-.1 F F3(~/.inputr)108 604.8 Q(c)-.37 E F0 5.058(.I).31 G 2.558
+(ft)-5.058 G .058(hat \214le)-2.558 F .058(does not e)5.058 F .058
+(xist or cannot be read, the ultimate def)-.15 F .058(ault is)-.1 F F3
+(/etc/inputr)2.557 E(c)-.37 E F0 5.057(.W).31 G .057(hen a program)
+-5.057 F 1.158(which uses the readline library starts up, the init \214\
+le is read, and the k)108 616.8 R 1.459 -.15(ey b)-.1 H 1.159
+(indings and v).15 F 1.159(ariables are set.)-.25 F .029
+(There are only a fe)108 628.8 R 2.529(wb)-.25 G .029
+(asic constructs allo)-2.529 F .028(wed in the readline init \214le.)
+-.25 F .028(Blank lines are ignored.)5.028 F .028(Lines be)5.028 F(gin-)
+-.15 E .553(ning with a)108 640.8 R F2(#)3.053 E F0 .554(are comments.)
+3.053 F .554(Lines be)5.554 F .554(ginning with a)-.15 F F2($)3.054 E F0
+.554(indicate conditional constructs.)3.054 F .554(Other lines denote)
+5.554 F -.1(ke)108 652.8 S 2.987(yb)-.05 G .487(indings and v)-2.987 F
+.487(ariable settings.)-.25 F .487
+(Each program using this library may add its o)5.487 F .486
+(wn commands and bind-)-.25 F(ings.)108 664.8 Q -.15(Fo)108 681.6 S 2.5
+(re).15 G(xample, placing)-2.65 E(M\255Control\255u: uni)144 698.4 Q
+-.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(or)108 710.4 Q
+(C\255Meta\255u: uni)144 722.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)
+-.18 E(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(1)203.725 E 0 Cg
+EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -360,281 +364,282 @@ F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
.366(The syntax for controlling k)108 175.2 R .666 -.15(ey b)-.1 H .366
(indings in the).15 F F1(inputr)2.876 E(c)-.37 E F0 .366
(\214le is simple.)3.176 F .366(All that is required is the name of the)
-5.366 F .382(command or the te)108 187.2 R .383(xt of a macro and a k)
+5.366 F .383(command or the te)108 187.2 R .383(xt of a macro and a k)
-.15 F .683 -.15(ey s)-.1 H .383
(equence to which it should be bound. The name may be speci-).15 F .853
(\214ed in one of tw)108 199.2 R 3.353(ow)-.1 G .853
(ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr)
3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
-(ey)-.1 G(sequence.)108 211.2 Q 1.755(When using the form)108 228 R F2
--.1(ke)4.255 G(yname).1 E F0(:)A F1(function-name).833 E F0(or)4.255 E
-F1(macr)4.255 E(o)-.45 E F0(,)A F1 -.1(ke)4.255 G(yname)-.2 E F0 1.756
-(is the name of a k)4.435 F 2.056 -.15(ey s)-.1 H 1.756(pelled out in)
-.15 F 2.5(English. F)108 240 R(or e)-.15 E(xample:)-.15 E
-(Control\255u: uni)144 264 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18
-E(Meta\255Rubout: backw)144 276 Q(ard\255kill\255w)-.1 E(ord)-.1 E
-(Control\255o: "> output")144 288 Q .148(In the abo)108 304.8 R .448
--.15(ve ex)-.15 H(ample,).15 E F1(C\255u)2.488 E F0 .148
-(is bound to the function)2.898 F F2(uni)2.647 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)3.327 E F0 .147
-(is bound to the function)3.177 F F2(backward\255kill\255w)108 316.8 Q
-(ord)-.1 E F0 3.835(,a)C(nd)-3.835 E F1(C\255o)3.675 E F0 1.336
+(ey)-.1 G 2.919(sequence. The)108 211.2 R .419(name and k)2.919 F .719
+-.15(ey s)-.1 H .419(equence are separated by a colon.).15 F .419
+(There can be no whitespace between the)5.419 F(name and the colon.)108
+223.2 Q 1.755(When using the form)108 240 R F2 -.1(ke)4.255 G(yname).1 E
+F0(:)A F1(function-name).833 E F0(or)4.255 E F1(macr)4.255 E(o)-.45 E F0
+(,)A F1 -.1(ke)4.255 G(yname)-.2 E F0 1.756(is the name of a k)4.435 F
+2.056 -.15(ey s)-.1 H 1.756(pelled out in).15 F 2.5(English. F)108 252 R
+(or e)-.15 E(xample:)-.15 E(Control\255u: uni)144 276 Q -.15(ve)-.25 G
+(rsal\255ar).15 E(gument)-.18 E(Meta\255Rubout: backw)144 288 Q
+(ard\255kill\255w)-.1 E(ord)-.1 E(Control\255o: "> output")144 300 Q
+.148(In the abo)108 316.8 R .448 -.15(ve ex)-.15 H(ample,).15 E F1
+(C\255u)2.488 E F0 .148(is bound to the function)2.898 F F2(uni)2.647 E
+-.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)3.327 E F0
+.147(is bound to the function)3.177 F F2(backward\255kill\255w)108 328.8
+Q(ord)-.1 E F0 3.835(,a)C(nd)-3.835 E F1(C\255o)3.675 E F0 1.336
(is bound to run the macro e)4.016 F 1.336
(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-328.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
-(into the line\).)2.5 E .056(In the second form,)108 345.6 R F2("k)2.556
+340.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(into the line\).)2.5 E .056(In the second form,)108 357.6 R F2("k)2.556
E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
-(denoting an entire k)108 357.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+(denoting an entire k)108 369.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .386(GNU Emacs style k)108 369.6 R .686 -.15(ey e)-.1 H
+(Some)6.284 E .386(GNU Emacs style k)108 381.6 R .686 -.15(ey e)-.1 H
.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
-(are not recognized.)108 381.6 Q("\\C\255u": uni)144 405.6 Q -.15(ve)
+(are not recognized.)108 393.6 Q("\\C\255u": uni)144 417.6 Q -.15(ve)
-.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 417.6 Q
-("\\e[11~": "Function K)144 429.6 Q .3 -.15(ey 1)-.25 H(").15 E .198
-(In this e)108 446.4 R(xample,)-.15 E F1(C-u)2.538 E F0 .199(is ag)2.949
+("\\C\255x\\C\255r": re\255read\255init\255\214le)144 429.6 Q
+("\\e[11~": "Function K)144 441.6 Q .3 -.15(ey 1)-.25 H(").15 E .198
+(In this e)108 458.4 R(xample,)-.15 E F1(C-u)2.538 E F0 .199(is ag)2.949
F .199(ain bound to the function)-.05 F F2(uni)2.699 E -.1(ve)-.1 G
(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .199(C-x C-r)5.039 F F0 .199
-(is bound to the function)3.429 F F2 -.18(re)108 458.4 S<ad72>.18 E
+(is bound to the function)3.429 F F2 -.18(re)108 470.4 S<ad72>.18 E
(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)3.01
E F0(is bound to insert the te)3.94 E(xt)-.15 E F3(Function Key 1)2.5 E
-F0(.)A(The full set of GNU Emacs style escape sequences a)108 475.2 Q
+F0(.)A(The full set of GNU Emacs style escape sequences a)108 487.2 Q
-.25(va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H
-(equences is).15 E F2<5c43ad>144 487.2 Q F0(control pre\214x)20.3 E F2
-<5c4dad>144 499.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 511.2 Q F0
-(an escape character)28.78 E F2(\\\\)144 523.2 Q F0(backslash)30.44 E F2
-(\\")144 535.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 547.2 Q
+(equences is).15 E F2<5c43ad>144 499.2 Q F0(control pre\214x)20.3 E F2
+<5c4dad>144 511.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 523.2 Q F0
+(an escape character)28.78 E F2(\\\\)144 535.2 Q F0(backslash)30.44 E F2
+(\\")144 547.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 559.2 Q
F0(literal ', a single quote)29.89 E(In addition to the GNU Emacs style\
- escape sequences, a second set of backslash escapes is a)108 564 Q -.25
-(va)-.2 G(ilable:).25 E F2(\\a)144 576 Q F0(alert \(bell\))28.22 E F2
-(\\b)144 588 Q F0(backspace)27.66 E F2(\\d)144 600 Q F0(delete)27.66 E
-F2(\\f)144 612 Q F0(form feed)29.89 E F2(\\n)144 624 Q F0(ne)27.66 E
-(wline)-.25 E F2(\\r)144 636 Q F0(carriage return)28.78 E F2(\\t)144 648
-Q F0(horizontal tab)29.89 E F2(\\v)144 660 Q F0 -.15(ve)28.22 G
-(rtical tab).15 E F2(\\)144 672 Q F1(nnn)A F0
+ escape sequences, a second set of backslash escapes is a)108 576 Q -.25
+(va)-.2 G(ilable:).25 E F2(\\a)144 588 Q F0(alert \(bell\))28.22 E F2
+(\\b)144 600 Q F0(backspace)27.66 E F2(\\d)144 612 Q F0(delete)27.66 E
+F2(\\f)144 624 Q F0(form feed)29.89 E F2(\\n)144 636 Q F0(ne)27.66 E
+(wline)-.25 E F2(\\r)144 648 Q F0(carriage return)28.78 E F2(\\t)144 660
+Q F0(horizontal tab)29.89 E F2(\\v)144 672 Q F0 -.15(ve)28.22 G
+(rtical tab).15 E F2(\\)144 684 Q F1(nnn)A F0
(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)144
-684 Q F1(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
+696 Q F1(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
-.25 E(xadecimal v)-.15 E(alue)-.25 E F1(HH)2.5 E F0(\(one or tw)2.5 E
2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E .74(When entering the te)
-108 700.8 R .74(xt of a macro, single or double quotes should be used t\
-o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 712.8 R
+108 712.8 R .74(xt of a macro, single or double quotes should be used t\
+o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 724.8 R
.089(xt is assumed to be a function name.)-.15 F .09(In the macro body)
5.089 F 2.59(,t)-.65 G .09(he backslash escapes described abo)-2.59 F
--.15(ve)-.15 G(are e)108 724.8 Q 2.5(xpanded. Backslash)-.15 F
-(will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E
-(xt, including " and '.)-.15 E(GNU Readline 5.1-beta1)72 768 Q
-(2005 Sep 13)109.3 E(2)204 E 0 Cg EP
+-.15(ve)-.15 G(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(2)203.725
+E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(Bash)108 84 Q F0(allo)2.93 E .43
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R(are e)
+108 84 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
+(ther character in the macro te)-2.5 E(xt, including " and '.)-.15 E/F1
+10/Times-Bold@0 SF(Bash)108 100.8 Q F0(allo)2.93 E .43
(ws the current readline k)-.25 F .73 -.15(ey b)-.1 H .429
(indings to be displayed or modi\214ed with the).15 F F1(bind)2.929 E F0
-.2(bu)2.929 G .429(iltin command.).2 F 1.095
-(The editing mode may be switched during interacti)108 96 R 1.395 -.15
-(ve u)-.25 H 1.095(se by using the).15 F F1<ad6f>3.595 E F0 1.095
+(The editing mode may be switched during interacti)108 112.8 R 1.395
+-.15(ve u)-.25 H 1.095(se by using the).15 F F1<ad6f>3.595 E F0 1.095
(option to the)3.595 F F1(set)3.595 E F0 -.2(bu)3.595 G 1.095
-(iltin com-).2 F 3.076(mand. Other)108 108 R .576
+(iltin com-).2 F 3.076(mand. Other)108 124.8 R .576
(programs using this library pro)3.076 F .575(vide similar mechanisms.)
-.15 F(The)5.575 E/F2 10/Times-Italic@0 SF(inputr)3.085 E(c)-.37 E F0
.575(\214le may be edited and)3.385 F(re-read if a program does not pro)
-108 120 Q(vide an)-.15 E 2.5(yo)-.15 G(ther means to incorporate ne)-2.5
-E 2.5(wb)-.25 G(indings.)-2.5 E F1 -.92(Va)87 136.8 S(riables).92 E F0
-.043(Readline has v)108 148.8 R .043
+108 136.8 Q(vide an)-.15 E 2.5(yo)-.15 G(ther means to incorporate ne)
+-2.5 E 2.5(wb)-.25 G(indings.)-2.5 E F1 -.92(Va)87 153.6 S(riables).92 E
+F0 .043(Readline has v)108 165.6 R .043
(ariables that can be used to further customize its beha)-.25 F(vior)-.2
E 5.043(.A)-.55 G -.25(va)-2.5 G .043(riable may be set in the).25 F F2
-(inpu-)2.554 E(tr)108 160.8 Q(c)-.37 E F0
-(\214le with a statement of the form)2.81 E F1(set)144 177.6 Q F2
+(inpu-)2.554 E(tr)108 177.6 Q(c)-.37 E F0
+(\214le with a statement of the form)2.81 E F1(set)144 194.4 Q F2
(variable\255name value)2.5 E F0 .79(Except where noted, readline v)108
-194.4 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F
+211.2 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F
(alues)-.25 E F1(On)3.29 E F0(or)3.29 E F1(Off)3.29 E F0 .79
(\(without re)3.29 F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-)
-5.79 E .448(nized v)108 206.4 R .448(ariable names are ignored.)-.25 F
+5.79 E .448(nized v)108 223.2 R .448(ariable names are ignored.)-.25 F
.448(When a v)5.448 F .448(ariable v)-.25 F .448
(alue is read, empty or null v)-.25 F .449(alues, "on" \(case-insensi-)
--.25 F(ti)108 218.4 Q -.15(ve)-.25 G .468(\), and "1" are equi).15 F
+-.25 F(ti)108 235.2 Q -.15(ve)-.25 G .468(\), and "1" are equi).15 F
-.25(va)-.25 G .468(lent to).25 F F1(On)2.968 E F0 5.468(.A)C .468
(ll other v)-5.468 F .468(alues are equi)-.25 F -.25(va)-.25 G .468
(lent to).25 F F1(Off)2.968 E F0 5.468(.T)C .467(he v)-5.468 F .467
-(ariables and their def)-.25 F(ault)-.1 E -.25(va)108 230.4 S(lues are:)
-.25 E F1(bell\255style \(audible\))108 247.2 Q F0 .01
-(Controls what happens when readline w)144 259.2 R .011
+(ariables and their def)-.25 F(ault)-.1 E -.25(va)108 247.2 S(lues are:)
+.25 E F1(bell\255style \(audible\))108 264 Q F0 .01
+(Controls what happens when readline w)144 276 R .011
(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F1(none)
2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E
-.94(rings the bell.)144 271.2 R .94(If set to)5.94 F F1(visible)3.44 E
-F0 3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25
-(va)-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0
-(,)A(readline attempts to ring the terminal')144 283.2 Q 2.5(sb)-.55 G
-(ell.)-2.5 E F1(bind\255tty\255special\255chars \(On\))108 295.2 Q F0
-.055(If set to)144 307.2 R F1(On)2.555 E F0 2.555(,r)C .056(eadline att\
-empts to bind the control characters treated specially by the k)-2.555 F
-(ernel')-.1 E 2.556(st)-.55 G(ermi-)-2.556 E(nal dri)144 319.2 Q -.15
-(ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)
--.25 G(lents.).25 E F1(comment\255begin \(`)108 331.2 Q(`#')-.63 E('\))
--.63 E F0 .062(The string that is inserted in)144 343.2 R F1(vi)2.562 E
-F0 .062(mode when the)2.562 F F1(insert\255comment)2.562 E F0 .062
+.94(rings the bell.)144 288 R .94(If set to)5.94 F F1(visible)3.44 E F0
+3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va)
+-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0(,)A
+(readline attempts to ring the terminal')144 300 Q 2.5(sb)-.55 G(ell.)
+-2.5 E F1(bind\255tty\255special\255chars \(On\))108 312 Q F0 .055
+(If set to)144 324 R F1(On)2.555 E F0 2.555(,r)C .056(eadline attempts \
+to bind the control characters treated specially by the k)-2.555 F
+(ernel')-.1 E 2.556(st)-.55 G(ermi-)-2.556 E(nal dri)144 336 Q -.15(ve)
+-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)-.25
+G(lents.).25 E F1(comment\255begin \(`)108 348 Q(`#')-.63 E('\))-.63 E
+F0 .062(The string that is inserted in)144 360 R F1(vi)2.562 E F0 .062
+(mode when the)2.562 F F1(insert\255comment)2.562 E F0 .062
(command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562
-E(mand is bound to)144 355.2 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\255ignor)108
-367.2 Q(e\255case \(Off\))-.18 E F0(If set to)144 379.2 Q F1(On)2.5 E F0
-2.5(,r)C(eadline performs \214lename matching and completion in a case\
-\255insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
-(completion\255query\255items \(100\))108 391.2 Q F0 .529
-(This determines when the user is queried about vie)144 403.2 R .53
+E(mand is bound to)144 372 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\255ignor)108 384
+Q(e\255case \(Off\))-.18 E F0(If set to)144 396 Q F1(On)2.5 E F0 2.5(,r)
+C(eadline performs \214lename matching and completion in a case\255inse\
+nsiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
+(completion\255query\255items \(100\))108 408 Q F0 .529
+(This determines when the user is queried about vie)144 420 R .53
(wing the number of possible completions gen-)-.25 F .561(erated by the)
-144 415.2 R F1(possible\255completions)3.061 E F0 3.061(command. It)
-3.061 F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)-3.06 E .56
-(ger v)-.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144
-427.2 R .783(If the number of possible completions is greater than or e\
-qual to the v)5.782 F .783(alue of this)-.25 F -.25(va)144 439.2 S .237
+144 432 R F1(possible\255completions)3.061 E F0 3.061(command. It)3.061
+F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)-3.06 E .56(ger v)
+-.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144 444 R
+.783(If the number of possible completions is greater than or equal to \
+the v)5.782 F .783(alue of this)-.25 F -.25(va)144 456 S .237
(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
-.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
-.237(re simply listed)-2.737 F(on the terminal.)144 451.2 Q 2.5(An)5 G
+.237(re simply listed)-2.737 F(on the terminal.)144 468 Q 2.5(An)5 G
-2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve v)-.25 H
(alue causes readline to ne)-.1 E -.15(ve)-.25 G 2.5(ra).15 G(sk.)-2.5 E
-F1(con)108 463.2 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612
-(If set to)144 475.2 R F1(On)3.112 E F0 3.112(,r)C .613
-(eadline will con)-3.112 F -.15(ve)-.4 G .613
-(rt characters with the eighth bit set to an ASCII k).15 F .913 -.15
-(ey s)-.1 H .613(equence by).15 F 1.316(stripping the eighth bit and pr\
-e\214xing it with an escape character \(in ef)144 487.2 R 1.315
-(fect, using escape as the)-.25 F F2(meta pr)144 499.2 Q(e\214x)-.37 E
-F0(\).)A F1(disable\255completion \(Off\))108 511.2 Q F0 .038(If set to)
-144 523.2 R F1(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)
--2.538 F .038(ord completion.)-.1 F .038
+F1(con)108 480 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)
+144 492 R F1(On)3.112 E F0 3.112(,r)C .613(eadline will con)-3.112 F
+-.15(ve)-.4 G .613(rt characters with the eighth bit set to an ASCII k)
+.15 F .913 -.15(ey s)-.1 H .613(equence by).15 F 1.316(stripping the ei\
+ghth bit and pre\214xing it with an escape character \(in ef)144 504 R
+1.315(fect, using escape as the)-.25 F F2(meta pr)144 516 Q(e\214x)-.37
+E F0(\).)A F1(disable\255completion \(Off\))108 528 Q F0 .038(If set to)
+144 540 R F1(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538
+F .038(ord completion.)-.1 F .038
(Completion characters will be inserted into the)5.038 F(line as if the)
-144 535.2 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E
-F0(.)A F1(editing\255mode \(emacs\))108 547.2 Q F0 .216
-(Controls whether readline be)144 559.2 R .215(gins with a set of k)-.15
-F .515 -.15(ey b)-.1 H .215(indings similar to emacs or vi.).15 F F1
-(editing\255mode)5.215 E F0(can be set to either)144 571.2 Q F1(emacs)
-2.5 E F0(or)2.5 E F1(vi)2.5 E F0(.)A F1(enable\255k)108 583.2 Q
-(eypad \(Off\))-.1 E F0 .892(When set to)144 595.2 R F1(On)3.393 E F0
-3.393(,r)C .893(eadline will try to enable the application k)-3.393 F
--.15(ey)-.1 G .893(pad when it is called.).15 F .893(Some sys-)5.893 F
-(tems need this to enable the arro)144 607.2 Q 2.5(wk)-.25 G -.15(ey)
--2.6 G(s.).15 E F1(expand\255tilde \(Off\))108 619.2 Q F0(If set to)144
-631.2 Q F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
+144 552 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
+(.)A F1(editing\255mode \(emacs\))108 564 Q F0 .216
+(Controls whether readline be)144 576 R .215(gins with a set of k)-.15 F
+.515 -.15(ey b)-.1 H .215(indings similar to emacs or vi.).15 F F1
+(editing\255mode)5.215 E F0(can be set to either)144 588 Q F1(emacs)2.5
+E F0(or)2.5 E F1(vi)2.5 E F0(.)A F1(enable\255k)108 600 Q(eypad \(Off\))
+-.1 E F0 .892(When set to)144 612 R F1(On)3.393 E F0 3.393(,r)C .893
+(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G
+.893(pad when it is called.).15 F .893(Some sys-)5.893 F
+(tems need this to enable the arro)144 624 Q 2.5(wk)-.25 G -.15(ey)-2.6
+G(s.).15 E F1(expand\255tilde \(Off\))108 636 Q F0(If set to)144 648 Q
+F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
(xpansion is performed when readline attempts w)-.15 E(ord completion.)
--.1 E F1(history\255pr)108 643.2 Q(eser)-.18 E -.1(ve)-.1 G
-(\255point \(Off\)).1 E F0 1.493(If set to)144 655.2 R F1(on)3.993 E F0
+-.1 E F1(history\255pr)108 660 Q(eser)-.18 E -.1(ve)-.1 G
+(\255point \(Off\)).1 E F0 1.493(If set to)144 672 R F1(on)3.993 E F0
3.993(,t)C 1.493(he history code attempts to place point at the same lo\
-cation on each history line)-3.993 F(retrie)144 667.2 Q -.15(ve)-.25 G
-2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0
-(or)2.5 E F1(next-history)2.5 E F0(.)A F1(horizontal\255scr)108 679.2 Q
-(oll\255mode \(Off\))-.18 E F0 .448(When set to)144 691.2 R F1(On)2.948
-E F0 2.948(,m)C(ak)-2.948 E .448
+cation on each history line)-3.993 F(retrie)144 684 Q -.15(ve)-.25 G 2.5
+(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0
+(or)2.5 E F1(next-history)2.5 E F0(.)A F1(horizontal\255scr)108 696 Q
+(oll\255mode \(Off\))-.18 E F0 .448(When set to)144 708 R F1(On)2.948 E
+F0 2.948(,m)C(ak)-2.948 E .448
(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .449
(crolling the input horizontally on a)-2.948 F 1.194(single screen line\
when it becomes longer than the screen width rather than wrapping to a\
- ne)144 703.2 R(w)-.25 E(line.)144 715.2 Q(GNU Readline 5.1-beta1)72 768
-Q(2005 Sep 13)109.3 E(3)204 E 0 Cg EP
+ ne)144 720 R(w)-.25 E(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E
+(3)203.725 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(input\255meta \(Off\))108 84 Q F0 .367(If set to)144 96
-R F1(On)2.867 E F0 2.867(,r)C .367(eadline will enable eight-bit input \
-\(that is, it will not clear the eighth bit in the char)-2.867 F(-)-.2 E
-.957(acters it reads\), re)144 108 R -.05(ga)-.15 G .956
-(rdless of what the terminal claims it can support.).05 F .956(The name)
-5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F(synon)144 120 Q
-(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 132 Q
+/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R(line.)
+144 84 Q/F1 10/Times-Bold@0 SF(input\255meta \(Off\))108 96 Q F0 .367
+(If set to)144 108 R F1(On)2.867 E F0 2.867(,r)C .367(eadline will enab\
+le eight-bit input \(that is, it will not clear the eighth bit in the c\
+har)-2.867 F(-)-.2 E .957(acters it reads\), re)144 120 R -.05(ga)-.15 G
+.956(rdless of what the terminal claims it can support.).05 F .956
+(The name)5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F(synon)
+144 132 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 144 Q
(ch\255terminators \(`)-.18 E(`C\255[ C\255J')-.63 E('\))-.63 E F0 .439
(The string of characters that should terminate an incremental search w\
-ithout subsequently e)144 144 R -.15(xe)-.15 G(cut-).15 E .935
-(ing the character as a command.)144 156 R .935(If this v)5.935 F .935
+ithout subsequently e)144 156 R -.15(xe)-.15 G(cut-).15 E .935
+(ing the character as a command.)144 168 R .935(If this v)5.935 F .935
(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
(alue, the characters)-3.684 F/F2 10/Times-Italic@0 SF(ESC)3.434 E F0
-(and)144 168 Q F2(C\255J)2.5 E F0(will terminate an incremental search.)
-2.5 E F1 -.1(ke)108 180 S(ymap \(emacs\)).1 E F0 2.323
-(Set the current readline k)144 192 R -.15(ey)-.1 G 4.823(map. The).15 F
+(and)144 180 Q F2(C\255J)2.5 E F0(will terminate an incremental search.)
+2.5 E F1 -.1(ke)108 192 S(ymap \(emacs\)).1 E F0 2.323
+(Set the current readline k)144 204 R -.15(ey)-.1 G 4.823(map. The).15 F
2.323(set of le)4.823 F -.05(ga)-.15 G 4.823(lk).05 G -.15(ey)-4.923 G
2.323(map names is).15 F F2 2.324(emacs, emacs-standar)4.823 F(d,)-.37 E
-.809(emacs-meta, emacs-ctlx, vi, vi-mo)144 204 R(ve)-.1 E 3.308(,v)-.1 G
+.809(emacs-meta, emacs-ctlx, vi, vi-mo)144 216 R(ve)-.1 E 3.308(,v)-.1 G
(i-command)-3.308 E F0 3.308(,a)C(nd)-3.308 E F2(vi-insert)3.308 E F0(.)
.68 E F2(vi)5.808 E F0 .808(is equi)3.308 F -.25(va)-.25 G .808(lent to)
-.25 F F2(vi-command)3.308 E F0(;)A F2(emacs)144 216 Q F0 .697(is equi)
+.25 F F2(vi-command)3.308 E F0(;)A F2(emacs)144 228 Q F0 .697(is equi)
3.196 F -.25(va)-.25 G .697(lent to).25 F F2(emacs-standar)3.197 E(d)
-.37 E F0 5.697(.T)C .697(he def)-5.697 F .697(ault v)-.1 F .697
(alue is)-.25 F F2(emacs)3.197 E F0 5.697(.T).27 G .697(he v)-5.697 F
-.697(alue of)-.25 F F1(editing\255mode)3.197 E F0(also af)144 228 Q
+.697(alue of)-.25 F F1(editing\255mode)3.197 E F0(also af)144 240 Q
(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1
-(mark\255dir)108 240 Q(ectories \(On\))-.18 E F0(If set to)144 252 Q F1
+(mark\255dir)108 252 Q(ectories \(On\))-.18 E F0(If set to)144 264 Q F1
(On)2.5 E F0 2.5(,c)C(ompleted directory names ha)-2.5 E .3 -.15(ve a s)
-.2 H(lash appended.).15 E F1(mark\255modi\214ed\255lines \(Off\))108
-264 Q F0(If set to)144 276 Q F1(On)2.5 E F0 2.5(,h)C
+276 Q F0(If set to)144 288 Q F1(On)2.5 E F0 2.5(,h)C
(istory lines that ha)-2.5 E .3 -.15(ve b)-.2 H
(een modi\214ed are displayed with a preceding asterisk \().15 E F1(*)A
-F0(\).)A F1(mark\255symlink)108 288 Q(ed\255dir)-.1 E(ectories \(Off\))
--.18 E F0 .175(If set to)144 300 R F1(On)2.675 E F0 2.675(,c)C .175
+F0(\).)A F1(mark\255symlink)108 300 Q(ed\255dir)-.1 E(ectories \(Off\))
+-.18 E F0 .175(If set to)144 312 R F1(On)2.675 E F0 2.675(,c)C .175
(ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 312
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 324
Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
-(match\255hidden\255\214les \(On\))108 324 Q F0 .192(This v)144 336 R
+(match\255hidden\255\214les \(On\))108 336 Q F0 .192(This v)144 348 R
.192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692(,c)C .192
(auses readline to match \214les whose names be)-2.692 F .193
(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E 1.024
(\214les\) when performing \214lename completion, unless the leading `.)
-144 348 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.023
-(upplied by the user in the)-3.523 F(\214lename to be completed.)144 360
-Q F1(output\255meta \(Off\))108 372 Q F0 .506(If set to)144 384 R F1(On)
+144 360 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.023
+(upplied by the user in the)-3.523 F(\214lename to be completed.)144 372
+Q F1(output\255meta \(Off\))108 384 Q F0 .506(If set to)144 396 R F1(On)
3.006 E F0 3.006(,r)C .507(eadline will display characters with the eig\
-hth bit set directly rather than as a meta-)-3.006 F(pre\214x)144 396 Q
-(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 408 Q F0
-.809(If set to)144 420 R F1(On)3.308 E F0 3.308(,r)C .808
+hth bit set directly rather than as a meta-)-3.006 F(pre\214x)144 408 Q
+(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 420 Q F0
+.809(If set to)144 432 R F1(On)3.308 E F0 3.308(,r)C .808
(eadline uses an internal)-3.308 F F2(mor)3.308 E(e)-.37 E F0(-lik)A
3.308(ep)-.1 G .808(ager to display a screenful of possible comple-)
--3.308 F(tions at a time.)144 432 Q F1
-(print\255completions\255horizontally \(Off\))108 444 Q F0 1.318
-(If set to)144 456 R F1(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
+-3.308 F(tions at a time.)144 444 Q F1
+(print\255completions\255horizontally \(Off\))108 456 Q F0 1.318
+(If set to)144 468 R F1(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
play completions with matches sorted horizontally in alphabetical)-3.818
-F(order)144 468 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1(sho)108 480 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .478
-(This alters the def)144 492 R .478(ault beha)-.1 F .478
+F(order)144 480 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
+E F1(sho)108 492 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .478
+(This alters the def)144 504 R .478(ault beha)-.1 F .478
(vior of the completion functions.)-.2 F .477(If set to)5.477 F F1(on)
2.977 E F0 2.977(,w)C .477(ords which ha)-3.077 F .777 -.15(ve m)-.2 H
(ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 504 R(bell.)144 516 Q F1
-(sho)108 528 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
-(This alters the def)144 540 R 5.346(ault beha)-.1 F 5.345
+isted immediately instead of ringing the)144 516 R(bell.)144 528 Q F1
+(sho)108 540 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
+(This alters the def)144 552 R 5.346(ault beha)-.1 F 5.345
(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
--.1 F F1(sho)144 552 Q(w\255all\255if\255ambiguous)-.1 E F0 6.922(.I)C
+-.1 F F1(sho)144 564 Q(w\255all\255if\255ambiguous)-.1 E F0 6.922(.I)C
4.422(fs)-6.922 G 1.922(et to)-4.422 F F1(on)4.422 E F0 4.422(,w)C 1.922
(ords which ha)-4.522 F 2.223 -.15(ve m)-.2 H 1.923
-(ore than one possible completion).15 F 1.04(without an)144 564 R 3.54
+(ore than one possible completion).15 F 1.04(without an)144 576 R 3.54
(yp)-.15 G 1.039
(ossible partial completion \(the possible completions don')-3.54 F
3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
-es to be listed immediately instead of ringing the bell.)144 576 Q F1
-(visible\255stats \(Off\))108 588 Q F0 .846(If set to)144 600 R F1(On)
+es to be listed immediately instead of ringing the bell.)144 588 Q F1
+(visible\255stats \(Off\))108 600 Q F0 .846(If set to)144 612 R F1(On)
3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 612 Q F1(Conditional Constructs)
-87 628.8 Q F0 .05(Readline implements a f)108 640.8 R .05(acility simil\
+(when listing possible completions.)144 624 Q F1(Conditional Constructs)
+87 640.8 Q F0 .05(Readline implements a f)108 652.8 R .05(acility simil\
ar in spirit to the conditional compilation features of the C preproces\
-sor)-.1 F .096(which allo)108 652.8 R .096(ws k)-.25 F .396 -.15(ey b)
+sor)-.1 F .096(which allo)108 664.8 R .096(ws k)-.25 F .396 -.15(ey b)
-.1 H .096(indings and v).15 F .096
(ariable settings to be performed as the result of tests.)-.25 F .097
-(There are four parser)5.096 F(directi)108 664.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 681.6 Q F0(The)24.89 E F1($if)2.963 E
+(There are four parser)5.096 F(directi)108 676.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 693.6 Q F0(The)24.89 E F1($if)2.963 E
F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\
editing mode, the terminal being used,)-.25 F .477
-(or the application using readline.)144 693.6 R .477(The te)5.477 F .477
+(or the application using readline.)144 705.6 R .477(The te)5.477 F .477
(xt of the test e)-.15 F .477
(xtends to the end of the line; no characters)-.15 F
-(are required to isolate it.)144 705.6 Q(GNU Readline 5.1-beta1)72 768 Q
-(2005 Sep 13)109.3 E(4)204 E 0 Cg EP
+(are required to isolate it.)144 717.6 Q(GNU Readline 5.2)72 768 Q
+(2006 Apr 26)134.015 E(4)203.725 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
@@ -742,8 +747,8 @@ ntents of the current line.)108 655.2 Q F3(EDITING COMMANDS)72 672 Q F0
2.5(db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5
(command. The)2.5 F(te)2.5 E
(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)
-109.3 E(5)204 E 0 Cg EP
+2.5 G(gion)-.03 E F0(.)A(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E
+(5)203.725 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
@@ -823,7 +828,7 @@ etween the start of the current)-.1 F(line and the point.)144 688.8 Q
(th an ar).4 F(gument)-.18 E F2(n)3.294 E F0 3.294(,i).24 G .794
(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794(ord from the pre)
-.1 F .794(vious command \(the w)-.25 F .795(ords in the)-.1 F
-(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)109.3 E(6)204 E 0 Cg EP
+(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(6)203.725 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
@@ -924,7 +929,7 @@ F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F F1 -.37(re)
Q(By def)5 E(ault, this command is unbound.)-.1 E F2(Killing and Y)87
681.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 693.6 Q F0
(Kill the te)144 705.6 Q(xt from point to the end of the line.)-.15 E
-(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)109.3 E(7)204 E 0 Cg EP
+(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(7)203.725 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
@@ -1020,7 +1025,7 @@ F(application-speci\214c.)144 681.6 Q F1(Bash)5.517 E F0 3.017(,f)C .518
(nt)-3.773 G 1.273(he other hand, allo)-3.773 F 1.273
(ws completion of program functions and)-.25 F -.25(va)144 729.6 S(riab\
les, and only attempts \214lename completion under certain circumstance\
-s.).25 E(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)109.3 E(8)204 E 0
+s.).25 E(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(8)203.725 E 0
Cg EP
%%Page: 9 9
%%BeginPageSetup
@@ -1112,7 +1117,7 @@ F0 1.095(command enough times to)3.595 F
(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 717.6 Q
-(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)109.3 E(9)204 E 0 Cg EP
+(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(9)203.725 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
@@ -1193,8 +1198,8 @@ E 2.5("C-M" accept-line)151.2 645.6 R 2.5("C-N" ne)151.2 657.6 R
("C-Q" quoted-insert)151.2 681.6 R 2.5("C-R" re)151.2 693.6 R -.15(ve)
-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 705.6 R
(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 717.6 R 2.5
-("C-U" unix-line-discard)151.2 729.6 R(GNU Readline 5.1-beta1)72 768 Q
-(2005 Sep 13)109.3 E(10)199 E 0 Cg EP
+("C-U" unix-line-discard)151.2 729.6 R(GNU Readline 5.2)72 768 Q
+(2006 Apr 26)134.015 E(10)198.725 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
@@ -1236,7 +1241,7 @@ R(ord)-.1 E 2.5("M-F" forw)151.2 604.8 R(ard-w)-.1 E(ord)-.1 E 2.5
("M-U" upcase-w)151.2 676.8 R(ord)-.1 E 2.5("M-Y" yank-pop)151.2 688.8 R
2.5("M-\\" delete-horizontal-space)151.2 700.8 R 2.5("M-~" tilde-e)151.2
712.8 R(xpand)-.15 E 2.5("M-C-?" backw)151.2 724.8 R(ard-kill-w)-.1 E
-(ord)-.1 E(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)109.3 E(11)199 E
+(ord)-.1 E(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(11)198.725 E
0 Cg EP
%%Page: 12 12
%%BeginPageSetup
@@ -1274,8 +1279,8 @@ E 2.5("C-Q" quoted-insert)151.2 614.4 R 2.5("C-R" re)151.2 626.4 R -.15
("C-U" unix-line-discard)151.2 662.4 R 2.5("C-V" quoted-insert)151.2
674.4 R 2.5("C-W" unix-w)151.2 686.4 R(ord-rubout)-.1 E 2.5("C-Y" yank)
151.2 698.4 R 2.5("C-_" vi-undo)151.2 710.4 R -4.166 3.333("" f)151.2
-722.4 T(orw)-3.333 E(ard-char)-.1 E(GNU Readline 5.1-beta1)72 768 Q
-(2005 Sep 13)109.3 E(12)199 E 0 Cg EP
+722.4 T(orw)-3.333 E(ard-char)-.1 E(GNU Readline 5.2)72 768 Q
+(2006 Apr 26)134.015 E(12)198.725 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
@@ -1310,7 +1315,7 @@ R(ord)-.1 E 2.5("f" vi-char)151.2 576 R(-search)-.2 E 2.5("h" backw)
648 R 2.5("n" vi-search-ag)151.2 660 R(ain)-.05 E 2.5("p" vi-put)151.2
672 R 2.5("r" vi-change-char)151.2 684 R 2.5("s" vi-subst)151.2 696 R
2.5("t" vi-char)151.2 708 R(-search)-.2 E 2.5("u" vi-undo)151.2 720 R
-(GNU Readline 5.1-beta1)72 768 Q(2005 Sep 13)109.3 E(13)199 E 0 Cg EP
+(GNU Readline 5.2)72 768 Q(2006 Apr 26)134.015 E(13)198.725 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
@@ -1349,8 +1354,8 @@ F0(initialization \214le)2.5 E F1 -.548(AU)72 242.4 S(THORS).548 E F0
(ug reports concerning this manual page should be directed to)-.2 E F2
-.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E F1
-.11(BU)72 410.4 S(GS).11 E F0(It')108 422.4 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 5.1-beta1)72 768
-Q(2005 Sep 13)109.3 E(14)199 E 0 Cg EP
+(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 5.2)72 768 Q
+(2006 Apr 26)134.015 E(14)198.725 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/rlman.texi b/doc/rlman.texi
index f834b58..e14c655 100644
--- a/doc/rlman.texi
+++ b/doc/rlman.texi
@@ -14,7 +14,7 @@ This manual describes the GNU Readline Library
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988-2004 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -22,7 +22,7 @@ are preserved on all copies.
@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license is
diff --git a/doc/rltech.texi b/doc/rltech.texi
index 6f2e2ee..ecff106 100644
--- a/doc/rltech.texi
+++ b/doc/rltech.texi
@@ -8,7 +8,7 @@ This document describes the GNU Readline Library, a utility for aiding
in the consistency of user interface across discrete programs that need
to provide a command line interface.
-Copyright (C) 1988-2005 Free Software Foundation, Inc.
+Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -1033,8 +1033,10 @@ pending input has not already been read with @code{rl_read_key()}.
@deftypefun int rl_set_keyboard_input_timeout (int u)
While waiting for keyboard input in @code{rl_read_key()}, Readline will
wait for @var{u} microseconds for input before calling any function
-assigned to @code{rl_event_hook}. The default waiting period is
-one-tenth of a second. Returns the old timeout value.
+assigned to @code{rl_event_hook}. @var{u} must be greater than or equal
+to zero (a zero-length timeout is equivalent to a poll).
+The default waiting period is one-tenth of a second.
+Returns the old timeout value.
@end deftypefun
@node Terminal Management
@@ -1668,6 +1670,9 @@ the directory portion of the pathname the user typed.
It returns an integer that should be non-zero if the function modifies
its directory argument.
It could be used to expand symbolic links or shell variables in pathnames.
+At the least, even if no other expansion is performed, this function should
+remove any quote characters from the directory name, because its result will
+be passed directly to @code{opendir()}.
@end deftypevar
@deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook
diff --git a/doc/rluser.texi b/doc/rluser.texi
index 478b41f..5c6467a 100644
--- a/doc/rluser.texi
+++ b/doc/rluser.texi
@@ -10,7 +10,7 @@ use these features. There is a document entitled "readline.texinfo"
which contains both end-user and programmer documentation for the
GNU Readline Library.
-Copyright (C) 1988-2005 Free Software Foundation, Inc.
+Copyright (C) 1988-2006 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
@@ -336,7 +336,9 @@ file is taken from the value of the shell variable @env{INPUTRC}. If
@ifclear BashFeatures
file is taken from the value of the environment variable @env{INPUTRC}. If
@end ifclear
-that variable is unset, the default is @file{~/.inputrc}.
+that variable is unset, the default is @file{~/.inputrc}. If that
+file does not exist or cannot be read, the ultimate default is
+@file{/etc/inputrc}.
When a program which uses the Readline library starts up, the
init file is read, and the key bindings are set.
@@ -593,9 +595,11 @@ the command does.
Once you know the name of the command, simply place on a line
in the init file the name of the key
you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
+command.
+There can be no space between the key name and the colon -- that will be
+interpreted as part of the key name.
+The name of the key can be expressed in different ways, depending on
+what you find most comfortable.
In addition to command names, readline allows keys to be bound
to a string that is inserted when the key is pressed (a @var{macro}).
diff --git a/doc/rluserman.dvi b/doc/rluserman.dvi
index 7727865..bbac041 100644
--- a/doc/rluserman.dvi
+++ b/doc/rluserman.dvi
Binary files differ
diff --git a/doc/rluserman.html b/doc/rluserman.html
index 3d8595b..a102195 100644
--- a/doc/rluserman.html
+++ b/doc/rluserman.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on December, 6 2005 by texi2html 1.64 -->
+<!-- Created on July, 6 2006 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -487,7 +487,9 @@ Any user can customize programs that use Readline by putting
commands in an <EM>inputrc</EM> file, conventionally in his home directory.
The name of this
file is taken from the value of the environment variable <CODE>INPUTRC</CODE>. If
-that variable is unset, the default is <TT>`~/.inputrc'</TT>.
+that variable is unset, the default is <TT>`~/.inputrc'</TT>. If that
+file does not exist or cannot be read, the ultimate default is
+<TT>`/etc/inputrc'</TT>.
</P><P>
When a program which uses the Readline library starts up, the
@@ -794,9 +796,11 @@ the command does.
Once you know the name of the command, simply place on a line
in the init file the name of the key
you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
+command.
+There can be no space between the key name and the colon -- that will be
+interpreted as part of the key name.
+The name of the key can be expressed in different ways, depending on
+what you find most comfortable.
</P><P>
In addition to command names, readline allows keys to be bound
@@ -2626,7 +2630,7 @@ to permit their use in free software.
<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>December, 6 2005</I>
+This document was generated by <I>Chet Ramey</I> on <I>July, 6 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2788,7 +2792,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>December, 6 2005</I>
+by <I>Chet Ramey</I> on <I>July, 6 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/rluserman.info b/doc/rluserman.info
index a58234e..10bbc3d 100644
--- a/doc/rluserman.info
+++ b/doc/rluserman.info
@@ -2,11 +2,11 @@ This is rluserman.info, produced by makeinfo version 4.7 from
/Users/chet/src/bash/readline-src/doc/rluserman.texi.
This manual describes the end user interface of the GNU Readline
-Library (version 5.1-beta1, 11 November 2005), a library which aids in
-the consistency of user interface across discrete programs which provide
-a command line interface.
+Library (version 5.2, 26 April 2006), a library which aids in the
+consistency of user interface across discrete programs which provide a
+command line interface.
- Copyright (C) 1988-2005 Free Software Foundation, Inc.
+ Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -14,7 +14,7 @@ preserved on all copies.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
+ Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -330,7 +330,8 @@ of keybindings. Any user can customize programs that use Readline by
putting commands in an "inputrc" file, conventionally in his home
directory. The name of this file is taken from the value of the
environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'.
+is `~/.inputrc'. If that file does not exist or cannot be read, the
+ultimate default is `/etc/inputrc'.
When a program which uses the Readline library starts up, the init
file is read, and the key bindings are set.
@@ -539,9 +540,10 @@ Key Bindings
Once you know the name of the command, simply place on a line in
the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. The name of the key
- can be expressed in different ways, depending on what you find most
- comfortable.
+ a colon, and then the name of the command. There can be no space
+ between the key name and the colon - that will be interpreted as
+ part of the key name. The name of the key can be expressed in
+ different ways, depending on what you find most comfortable.
In addition to command names, readline allows keys to be bound to
a string that is inserted when the key is pressed (a MACRO).
@@ -1717,30 +1719,30 @@ permit their use in free software.

Tag Table:
-Node: Top1382
-Node: Command Line Editing1814
-Node: Introduction and Notation2457
-Node: Readline Interaction4081
-Node: Readline Bare Essentials5274
-Node: Readline Movement Commands7065
-Node: Readline Killing Commands8032
-Node: Readline Arguments9954
-Node: Searching11000
-Node: Readline Init File13153
-Node: Readline Init File Syntax14220
-Node: Conditional Init Constructs26156
-Node: Sample Init File28691
-Node: Bindable Readline Commands31810
-Node: Commands For Moving32869
-Node: Commands For History33732
-Node: Commands For Text36858
-Node: Commands For Killing39586
-Node: Numeric Arguments41730
-Node: Commands For Completion42871
-Node: Keyboard Macros44417
-Node: Miscellaneous Commands44990
-Node: Readline vi Mode48353
-Node: Copying This Manual49274
-Node: GNU Free Documentation License49506
+Node: Top1373
+Node: Command Line Editing1805
+Node: Introduction and Notation2448
+Node: Readline Interaction4072
+Node: Readline Bare Essentials5265
+Node: Readline Movement Commands7056
+Node: Readline Killing Commands8023
+Node: Readline Arguments9945
+Node: Searching10991
+Node: Readline Init File13144
+Node: Readline Init File Syntax14299
+Node: Conditional Init Constructs26350
+Node: Sample Init File28885
+Node: Bindable Readline Commands32004
+Node: Commands For Moving33063
+Node: Commands For History33926
+Node: Commands For Text37052
+Node: Commands For Killing39780
+Node: Numeric Arguments41924
+Node: Commands For Completion43065
+Node: Keyboard Macros44611
+Node: Miscellaneous Commands45184
+Node: Readline vi Mode48547
+Node: Copying This Manual49468
+Node: GNU Free Documentation License49700

End Tag Table
diff --git a/doc/rluserman.ps b/doc/rluserman.ps
index 932065e..74fe0df 100644
--- a/doc/rluserman.ps
+++ b/doc/rluserman.ps
@@ -10,7 +10,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o rluserman.ps rluserman.dvi
%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2005.12.06:1546
+%DVIPSSource: TeX output 2006.07.06:0935
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -2573,402 +2573,404 @@ DDE3DE50E1EC439204C7FE350C69494823725920719D613907163AD63FE83C6D
1CB6DA81A6C816C747542CA09493306B44A7DCE934B877DD356F38D07D3E0355
CB149BE6ED646E84DB9DB61859F6FC45BCE13EE42458D1991AC34AAE6EA72320
3EC6346C38CA87107618ED3C46C331623D8FAACC6CF9292B8F1B407806A0D480
-8F51A5BC97F6B26623BB96E862F0BD7A12B4A27290DCBD439BEF850C55DD9D2B
-611638328F5CD25DE5C89CAC116116D672D62ED0082789AF7683DCB07623752C
-A93640A3781219E10DA27B8787879A80F9E91AA3E1AEF94D219872981BC0508B
-E768152E8C39C99EBC4345BC6EA518F0F902B8F62BE49099EE93501FE6243D45
-951AB62A48FB07A5CCC372B2231D05BD7D07D998954A3EE34986143698A5FC94
-F92168811860C529974831AAA6466CC73E69025AA522454CB788A8DCEFE75071
-F6886C595593ED37ECEA5C3F395CB55D32C04159828F58D003427C382778987B
-35D8A4D2613C2FD1751CE461F181F60B3154EFDF2DDFC356B3897DD8D62075E2
-F2BC150C02B54FF74019C7654296A32DF5C14EB68513B73D2A1B014F8778635B
-6A0D9982C00D068F9DE5C83D261E0C36DFAA57EC691AE052C37C05803FBF1748
-07351396B9B8DFFBAE0AA5B38E9954B4558BF8928350BF4FED69118897768C54
-2B7E6651C1A8473E9DC2FECF584990F967CC8B396E70CB2323E78EA28FAF164C
-5B3E297034FADA9E0E0EE279CAE751FCCC300C8480FB228A480C612229FC54CD
-F7EF109D8433B21EF2909661F24AE7B863B5AD13CBE62A1566F936B2AF8887EA
-FCED2ABA9A561C49663A1E25BA427315299C68D08586CD27458E0BEA9DF1AB02
-A4163647D20399503BC1B62121FBF5D6A7DD66BC012ADAC610C6DA9BEC03FABA
-E7338A6730ABA07D6BBF208851B58A1E90A78D07E841F32F694DD61F7AC3F756
-4357E19B0C9AB1F5719CF3902C1A9CDA56626D116D8D79C37328292EA826420C
-46F6C2AB2287118101C955FECEF867532C76D99C7510BF15074B85D47FD79EBD
-DFFBBFB40249FDB3D967D824E94EDF93825F9305A5863810A5ABAC136CF6828C
-4E05579F341EA27AEC4F52B9124BBF8D83E9D2DCA1A3DB4BEA5F1837558C0585
-9561C081206101E6A226A09952C33648108EE10572BEA309ED0A3626028711D0
-E87AFC3BD3ECCA52D35EC502DEA9AF8724677A419918881C8CCE7A4D1FC16584
-A564470B0DB5490F6506BAF2C883ACF77436A4D48E27106BBE9E75B71400762F
-37B814A94A6A9923C62CB196CFC9BCC1090842A11AEC78CCBDAC7F83DF52F59F
-02977A96F045A92AC2E3A08DE307301A89D8046F0E46D483F59073B92F442571
-A14A536EA7675294562B550CD056C9D659D4AD0B451A6108C800758CF9ADC362
-58048D3AC7C82915A4DCBA00257695018828169099C58E212C8FD68750201EBE
-F2674832C450C18F0620C01965CB208ADCBF46AB35C2ADF383F9D51DED351375
-A1CEDACF8AB61A41252DE6704B222E2DE14452927631ED28A7F9DD2806CAAF28
-2E55CBF63BA707DABE48E3A180039014EF14B6DE8230AB2B85000B401AB04C80
-0D4D9A62C5B632A3BCD13A61B590374601A6A92529BCA946C031C3CB1E48D580
-5FF55170B88F57E175B42EBD02087828D586321B5AA7285F4CD091D823DE9EC1
-6D6119CB6E80A8004F7C91A70BE16001F0817F6017E1C3B4063A3CD11A153EF7
-4C60B1E2CBDF2C806FBE518D0FE1371B3C8F28AE4AC8C8F3F2280D451B36DA99
-351FADB8ADA025E02EDEC48858E3E0A9A6B7B89FC43A25E050D62C2E5AD318A2
-CB0068E95E2A8F360161B634200913DB5DF7153B2BE0A9DDAB90A5A8D8C01020
-DE20C1676BCAA8E8759204D63588B5E0E9A204C1BCDA3BACD8BB302743F8C79A
-B19E42ABF04CDC246847E6BEEB314A6C8B4E75DEFFF121F8D3E3D7FF779D5831
-3D20CEB655AB93E01F8A2C9F0E0B4177C7849B84239F8AD122D30A7F645DC621
-F4E629D80E04A035E235C61898A37B12F01DC6DDA64B42F5CB678E5177D65BD9
-7C6CE064A9D668D18EB475171EC2B9B7E521DFC2921E6EF1F9F16E7EA97E4FD6
-4E55038CAF07149CAC035790A4B5EB495E254091B11B7842E9A41B6CB190A9FB
-CE474841BD42E49429264E7CA131AFC7671C4BA08139D2DC3487C09AA8DD789D
-83C575FE71B12C22D8C8886F79FB423AA1ECDDDFE37AA3C8511E5A56A6932D53
-5D5A46119BA1E0D430716D82D804A6C84E0A57EC1EC700369DF57C53B1722C96
-787BE06E67A2074322A3B002572DF642C6663C2FB7197315670BEFD4306DF25B
-C318FDD843D81E02510768CD729D87E8D8C7DF4291E929D46C11CE1447F631CB
-D6933AC8CA5DB74921FFD5794FB1ED54650F5A257AD6E5ED58986AB161F9694D
-BAFF7F25E3D6B1F4B2E991DE634F1EB1AE609874C80F9A60D48AE0C3500A9A93
-13C50FF156C5EED1FD89AB4576483D78664517D3E93DA13B7E9B2227627338EE
-A25736B2B3D828DD349C1CC1A539BF64E3C687BB9CE19078C730E1B5A728FDD1
-1E965BAF73C66005F22DECD760D7881E195DF8F6CDD47444FA9C0BFAD7DA0B69
-01A75DCD0617411ED8E55F059A4B9C1445EDB2BD23663732A4690D5470A76DB6
-43313C91F86826692BB066148382E1BBA4B2304CDCB7CE89E9AC1474207AD74A
-6748AC5DF5511E97606CD2FFA73CA34FEEAC677D2367AE7674E3CE45C3F85B12
-0150C32858973B0D2910E809B1C604F7CF60C9E2CA7D8B51D6D1720EE7D8E284
-9E4B9B45D71CC19633063DA34DB83544E0AE7F96F122F9A43BEF88B5C385614F
-7C7F68236A69B2D50BAB3CF3D4330950CADBDE7EBC5CAE8A1846FFD70C97AB1A
-4DD634B830F4BDDE46541D4DFDAE4916F89DC7A377540898D35A2EA808DD8591
-CC88C2939FC879D30FAF0A81F3A1D0CF7B77FA2E09CB393B3AD4C0B01834133C
-0FB10F0D5C734A06DE16E61C05D61DE35CD19102358A4995AD59AC3F1C1F45D7
-9735C2DC9B6FEA6B7F797E96B1C49BF16A18323EAD042DC040C672FD36E98C0C
-1CD16C15BCE3E79B155DB1E4486F29652FB8731DCA35F4A3E724AE5E8DFC4DC4
-F5BCEC9E9E22BED23DEF93115C3185A96A8DFEBB98203DE7591E5111BC8F160D
-31770E04B71F20467F81F47B7547A97A05B19D2868DF5E9F69364C3629DDC77B
-E6AE409B4A3FCA29DF18C8F26400995D664BF1A39F61031B7F3BA92F017F40A0
-F542AD1CD9B9DF2782AA91D77CAE7992A45BC70D58882B64318B026D686BBF37
-1611483C5447B8268B47D8FECC3B6118AC480156B8A083A8C3B45534D6525524
-CB2F2A6ABF5252B2C5007A51B7E61B833CC4F76F3C9A61304347C30E4206EA8F
-D95BDB83125D04A4988A79680DAC28A7BABCE5BE7D449DB54EFB9482F5A5C562
-F2D23F8A759110E610AD18D8B55DE2F86E2ABCA985738F25892D6E40AA645C19
-16A308B8061BA570D9E2CD5EE7A65647BD6E384324D1FB94EB723E4D84300FA1
-F042C92D9FD1FDB36E5D5AE68BE5D135ABDED7AC0187B280418638B0608D243F
-33E44B3339B9A25420BD4F93394366259CF4629E52610BD350D1646399DDE7DC
-9E26F8813F1E7E517D298DD6C35014997DA7C726568D0214428D3E297C132E2E
-525CEFAE85ECF165530124C18AB61F5B6D3E5EA1909B4A4019180DBC1226CE73
-5C5716589EAE3349112B4517E72833771B31896ED628404307E642327B07E16B
-B46A3E58ED1C6260176E887DCC58426A9ABAA9F6BFFE8B15E4D1F706E924521E
-C83BE148DF4EC7AA155F48F5FED1E0088C9B859D36A3D14A8127DA2C6FDB1CCF
-BE5E5251EEBB1524210C506D369B8AEE6319FACDFBD50EDF42DD3A1146A98258
-37ED2DC1F34F564DEB7139260EDB0242D5D1F968AF4FAD42FCC51B0F7E7CE276
-AC47511BF6DE9E1DFD14D89113AF2FED93E0DEA66C8FA11E0AF8D7554E935550
-F90AB7C39FC72AE2B979E93366A4FA17EE7F6ADE1BEAF71D1BBE2A229802247A
-4109BADAAADC1F6C237BB934A886BE67BB9152551724D4266DBC0AE4E16AF900
-05D4C8C3F165E0AD9B57B7DC1CAC235CFFB47855432ABF70F7B0123CCA859C2A
-55DF06A88446C71ADA559540F0375D2295559BCA85EEA4A996C2E58DA9EDEA22
-FD3E893637927CD0D975E5056ADC519F591B3B766B6A74F325A93DA4A03BD01B
-FB614A0332C634AF3AE101226C2EEBDDE185FB1B211A134F049C4EA9C78066A6
-598AEE95EE2EAC2FAFFB7ABA657105854E8422F037C4C6EDDD954B13F378906B
-E34ED3D8FA6FC0715756217BFEC7B7A5F598720940DF9E0CEC10B7890AE01EB3
-B9C687ACE674043CBF779ABC5829DA7AD6D6E42AD5E5DE77F3EBE69C239C8CDF
-17EFA0A72D656BF886323CB93DD55FA1FFE7B15782BF7CCD8C393EA3670D3DCC
-ECE6B7BF47308FE26F23C9EE35CA2D06600E662B38A21B49FE6DDF55734183DD
-1EB1EEABABD705117C660E37F7C4B6D6FB34AD19C2855CEF032A83ACBB4B4051
-19247698CC98CB602E51D6C698F25F8C59F57F2F845DE327DFB89ABBBD962057
-84103467E0236BFC46E20B71F3A0B6E7E5C7EDE5096CCEC89614FEBBFFB6F3B3
-F2D8E3F9FEB96ABCB698B0E63AF2D18750DC6B9B73CA9AF04D591DCF873B65C1
-4273BE308E6D3B691EC68EBBFE20BF423D38C1E63C591A840114611A6C4C6044
-FD9B42A8B941C9619971A84164DCB6297A209392974E85045F55CE6AB2FE5905
-7CA258456D40CC53B53EF5B145BBF9202DD61E35026476F816297976CFDB917F
-A2ED96478EA7F251C06559A55428D8E5CB4ADBCD10B18A9B5C19F6A5B32E8216
-59096C655531F4EC1CF88897B3E73EEC721184F58D6922F9C2901B687A5F3EAD
-2A92D0506D00DAE17332014ABCC3F39C3A3590344762AFF7C83C096CC3C471BE
-30A0E03C368C52ACF36406045B52C15A9F924F981E1EF18E844AAB1DD8F14FCB
-33F3C820BA3D0C29403A480C33829E515B046AB571E1B1B69FD2D2C1617A9903
-B229963E2B2EDFEF0AC90018E750711AB6F30FFE728825F2F08274BAA144D5FB
-85BBBD814559DBA0F746125DE106363A4871BDBE36F75B89B6E51F7326EF4355
-DB7EC080F6A8FE54BA2A2BD1B2A733B46B704362D2FA362762D37E07A07C2D06
-9DD8C345108EA9293EA0B7D5AC073F739D081B3878BE2FD6EFC662111602CD8E
-9F936DA499E09AF169C1A6F8185DFDE4F812D4C2C5CCC308EEC87E0B782A29A2
-94690E173D7158AA622E84FD961DCEFAF3A1E605AE8BA8E499D605710DF1218D
-15A0D4FDB1BFC1DE0E7AACCBED8F69618158F5A55F74DD5BD0D46DD2FC969AA0
-11F42111FE7C1C45E10075CF04EC1B40A75487130BFFD663F12266581FE3B7B6
-97CD203CCA6601357A5CEDAD84A56C918561F7CFD21496A003D1C0CFA348CA68
-5E60F8EECBB1C0B28BE0777AE54F79124E2B45BCC0B457CA50D1BD542658C82D
-BB9BC364241F12DE80D9197016550F2E16E4D3CC7C136FB020C37763C8F45558
-E6E3E6C5F50B68035E9D7A8DBD1FA6C132DE6EED1EAC290DA84022D5CAF6F63C
-5B846156281F1274BA26A18A4364C9766425181EABCA1D1C30C44262C3E318FC
-CF982B209C3C8A2287F78E6C13126D15F6E01D713CBA0567987FE1E40C7AFA80
-26B0996CC8D3832E5F15136ED4F38A94B08533F77C639B1A6C36B044382E9318
-BE3EF27CBC4F3FF095ACF22EE237B1B1207427359FFC298CE8772B4F3C91DA75
-CF78FB0F32B9270379AC52546B4FD55D5F5534057FAD104C8D9086D732B102C2
-C760E67CC118174DC431140E72CBBCE806DADD62F32D9DC5B28656912AF6C421
-9914E7A55D2F9050EE3EF10F1DB19E6F9CBD686EEB7AA20BF5D805ED4CC2066C
-AB192013B1EC1455631A62B1BD379B923445FACDB242F238B55DC89C11FCE7A3
-F779C34D94262C6771702C32B030E5C27ADB2A137207A2744F03F1D431E5BB48
-C180DB065F94092EB9791F951AC802E4719723A51039B2C1187415BEB8CB6825
-E756CFC336527039C10DE521F097B8A116A760BB28498682049DB6A677F8F198
-AFA1AAAFE6297B03A290DC022D14363912918569F633F236A3395A13EA6F0C66
-7A5231FB79305DF854CFC01D870FAAFE6746D6CA8F3EEAE43C106196779C185A
-8EA75335ACD3E57B209B1222BEBEE5783C60594AFAD59009DF17A90A69F1C73C
-B6D28AF7F578B26D4528C503C3E0752BFB32A46CCF766C8AE94C53161ED6E80C
-7E11DBDBFC2E851B9A6C0FDBBF53BD86D81AC53CAC82E4BB2B0C3B0AB65F5045
-9D0FBC1393FAB38F4DDA130C7641CB78D4D7DF5C4752CB8385EFCA41D4279DB6
-5F107D970A6F0BF9E1199837B134848894314638080D2D9818E953ABF485AA4A
-9B168FFD567D4A3BB4D422232F7784E6654BB78105D3738E01D4DA5B3A8E5BEA
-65B6B9651E3DA567B898931A0B09B264CBB038A5FD5B258693E96102AA1CCE10
-2111FBD5BB6A6BDDFEE10618D8D0D69C37C764B9B8AB75B41469D39C66297E7E
-9437DDE52A15474015D19243209DEFDDE03294791ED5E93145AEE0AAA6A8D885
-F2DABFC697C22D1D95BB88CDEEC9BF45E9B72DF12A6556272A9ABAB51AFCF61C
-1B6D91C6301CDE51E8FA16F7C190455698001AB223DEAD7D2D0FB85B9851BFD7
-659F3FCEB58866048351345F58A100B00769E8C63728FA17E884C23166D9A449
-E28758E1C71D67F4FE8D16D4E6E745911D073ADF8E53E4225C1000F23294B89E
-1C10C6B5B83D221E513DFDA1B62979C77F04266B0119A63935E0F1F84BAF02CE
-67D3390043B43A56E608D4CC52C8B59D981311A6840D1F7020598EF125992915
-75747CD5454B529EA0BBB03A523D8F0D781D4E176F3964FB5D75F7A37CBCC7CE
-6BB8030D6B0C32CEC3F122344EC441C3EA0F6EEFF0D56326DBE6D01A34689AE1
-4CDBA14449571C2AF99A37C57E906652E715C45DE7A66D0A8FC229BFE907ADCF
-9CE416260E544E4D74E619BC2AD70FD57F7E68D493CE3A7E3BE440C393E8FF83
-8D3C1E25438AA078CCC9C96C27C63FE9BE72BD7975CBDD1EAFFE785B8A8BE742
-13DC52E10F7970E84FE8FB8FC41D8E39835E8634CC96648DD081F0DCA956DDFC
-D2C692F456CF629D1D44B58CEEA2293C36A34FBE15A5B7715F02442E071C5C4C
-EB125BB2AD24B8A7B250A90B67F5C067B0693EC61878E1F06AA60CEA3B4F473F
-359302F1F69CE358D820009C8F0791D2CB3D5052168528CC4F1B2F76C4ED9223
-67B7F56F90D8D3B0DF6F9C0F1E4D8BE26CC0313E64873FD3FC49916558321F0F
-B892C2E0209827211CF344CF5CB8D39B89EB70C2ACA9CCD0800A2197DAFC2BAE
-F298E0F5482734E1008C639234B1D596829A3CF328C64FDB960D2776DD3252B3
-973016E9CBE7472241901A120AC3C7B13D5D695F8C5373D38E7DFDCE2CBABCC2
-D41CAC8A5208BAD2802EF62ED68637B739F15B6E43A1C6F1C45C3D5334A48D9D
-BB0887EF702555CF915DCBFB723126DC8F6C6C594001D31DE3E01FDBE324D1D1
-828CB0176075842E32C10DADD3CDE2747F0E3844DFBCC1510E17C11F3EA8FB95
-B92683A989C56F69D8D5056FEB5A0B44EC349555AF9D998170A1F4AC71C2C088
-09050E56FC0DEED55FACF57B36DC4CC3D6C31BA9BB312E4E01C2D49A56CE033B
-4A2AB13A467C0C334345D236B477A5ED1A2CEE5E77C094F3D6A7944E0B3967EA
-5245F0841D5F3DC306BD19BFF5E8C05C2DDE274BF5CEED180B6005BD1E7F7D19
-953035883A4EB02AEBA5D668A7CB644190E90539DC5E988AD288E9987773DC33
-C259E1D1A911CC524B28488420C8468143F47257D8125DAC6AE0926CC781B80F
-40CB02D2251DC44984AEB09A31221E0A95E028204D63A7D3ADB63D2478AB86FD
-CE89910E0D82CE92EA4DBB0B45B6120A94A87DFB5928D0AEF0471F9F747A2FEE
-D3800AFD8DABEC814FC18579E6E91D0C8D55BDA07E717F2374931ECB563D275E
-170672538EE975F144F994FF1995F303B897167CA7941A8A4E464BF4115642B3
-BC5B8393A221D381E89E05499BE7B107CA4B067E0A3D1749BA3ECD2BDB4E7483
-AD1752117947400959C53074E2A09A4A614AD1038DFCB105A620E7B5473570DF
-E6A3F92C0425D4F484E2B4FA8A8228C8AA1E42369827DDFCB6C2978994153DE3
-5D8DC1F3B2B3633A02768433C2D414C2034E81A44ABC8F25C41DF741BF27F03D
-CE9C6FEB75CC041EC44E802514A81D9EB00C27878DFCD7B06CA5E4AC54E8BFCF
-DF88EE81E6461BB8686F667468FB76B2702ACC81BE90B2FCBB20C13740652954
-A89D08D96BB441C41D3ECD77A882DC44801E3393653DE8F957608BAB66A48DC1
-3CCA84A7DA212ED5C2D5BE701E53AD799F5D9181B345CC068FC56931CB6F5B59
-55837B8636486DACB5340EE5C1C1FF281C8282B4B395C6D6F962078AE6D1AAE8
-A42575A1AD2FE71F73F3DB3EF9404D1D279F2047306877A73FAD35B511C5B28F
-73824D32890E2FFD50AA238F7488E74D33891886A27719818EF42C2EA6CA1A2A
-394ABB47F6AFB8F9FD719F73C6EBFE66D69D3FB0205ED5C7855F0986A6ECCD41
-8E6B90B9D4613BD0D1086D8A3312240A33EB8F86BFF88CB88EE93BFB69FA0155
-FD8616B823E49A398EE3E8AD18349F09A19C79156A1E5AA2C11E979FB3C443D5
-AB4CE4E715567D8A08A89E42AA9D6766F2DF15C9945F4470197EC9C77A5CCC90
-51747E361C8F0A7E20E9CC6F55EA637D17F9B7F09C557B42A4062ECF9733D00B
-301491F04153520DEDD72BEB160AD01E42AF44906E560869CF32C34F5F2A00C9
-B11AEED61B96A4F6580169259A8C512F7BFF30B5326633CFAED5E57B04867BFB
-27CD5AC009D10F95EF86168A71F0ADDC893E56843B244C13E816383E8DAE3B33
-EEE7E2B57D4F4EF802FECA10B7868B5AE65BF86CC69B9184930753F93634A391
-BE366DEAD431CEDFE41490B848F9759ED9CA10A65922D7DBCA3156FEAFA799BD
-E5D7B2710F8656CDA4A6049FFA2FD625C6DFDE319C40D26A2276C9AB0319B708
-06B422A6BE6064CF28C53217EABB03D2E37B6187AC1B6E88BDE9AA09E4B83BC0
-D835920ECBEE1AAD0A1BE1C1DA7B8CE4C5DCF153637DF49F6CF0B89566137204
-E3EFFFCCF9F4F756C9A28E54A644624E61D10C666972ACDC1C1CC7E372C9FFB5
-7A094FB2E32976ADABB9927B844BD52F6AFF498C832F6A5A06265FBEDADAFAAA
-8559D8DBA1DA76422426E857CE8E77B3CAA6703345D834CE79B42BA8B0849AFA
-5E49F893CC90E9C376498A227F55CBC606F9F1E3A92F33CB623CC809F68BD4E0
-4F8C9FFF1EBC88513797125BC61F15D501B9F5D885B21375B822B0B9143E165C
-3CF5BF162B260BBBA8494503CECF8C1ECAE710D2443980C4FF4D25AB688DA89F
-918FD0F8739D6EA3CA9C33DCF26D7AC3ED84C9C349AFDB8074101135C4EE6B4C
-648DED37E3E001CBDAC5C235074F0BF7867A169B9EA7CDC8EF2F8B00E463DCDA
-DE329E8157AD7ABECB8495FC023BDC66251E03E0E17888C02296AADD9E7D5D17
-96BA18F80FA072A4217D8533FFAF50F03B8E6E0D78C8DE5F86C9A4A4055EE1A0
-8A2934205464CF4A2E5AFCB513C5497A2F4B28EC779E64625EBB3BF6F596DA3F
-5BFF2F58866BCC2D49C460AE1A6400D338136CAE856735CBA3FEB582B05C0A0A
-2244089C177551A292606BD0A40D894B493B184FC5DE2F94CC7DD7F7ED102220
-91FB35FECCF743E5F4CEC5B4A8C6725808D6326226D89EA69EA8F8DF80DAB46F
-89E628E54F3AED60AB497A43E39EA31A53BEA08B734F1476812522BD648AB450
-B519965DC8313C8BF6DF5662367838AB9D681C1EF07480DE14664B79A86D19CB
-46592158A7D186D5A545C78D1AEA8DC9925A92C03BEBB76963EADCEED1F9EB2F
-B6471580ABDA95ADA78B3A77E06741BA7CA079BA360F27C63A498F54434D39E2
-62DCF5A5577936440E6655FBF0E240A3FFF16551B61464C96297BF8DB4085C15
-F133AB85DE1605B32F9E61233CD4DEDC7274CD22634C7DF635D8E2BCB56F9D1F
-39CB2DC06B02D935CAE59E7F936896471FB206186038914BD15B113C6766D000
-D1BF9C2F111327E62D5B2134771047F9683C9FA991571E2CCFD007026649011C
-AC30D40C37B07889937FA1FC11C9E1127E2B30C5F0DD94475A02ABE8668C1076
-2B1C64365A34ED59A43A984780A2C9C2D5464526CD1D8359D711FABCBBC059E8
-CF0F79141CB8141371FE98B7E04E3C19570718F048DD75886133B5393C941391
-681F0866F5147442F1261881DEFDCA18F0BECBA95FE311FD78DD84FDB5013EC7
-2292B5D3F51B6C38A36ABAEF91B2D2B88AAA436FDEEF5C300D1E20C6A463901A
-F55C14E03DC51DFD340A5D462A8FBD6AC5214393AB6BD332CB5D2848C7FB9DF9
-B50531F8682F848A46C6B16AFA262E3D62C9651960234CB38240506B9C4BF374
-DD0F4039366C6F02BC18A067EBFFE26DEFA5C0E0929D1181ABD949071F42C58B
-7F97FF6BB7200BB66C37AEA46AC1B51D1F3A901502BD4BFB0B9FBF6B7C1E48F3
-9289B063250892AB9380C9743920318FE5634F5884F446BCCA6DA3687BD441BA
-FBDA49659DD23AB091371C73C2A8408EAB11EB1AE679ECAD9A98EB954A869E6A
-6947CDC66661EDDFFAFD810C67E2FD2B55A60F2E6BF128E162EEAB80F250C7E2
-D46C9F9EEDC79B54A831A16D46370FF8EABB4D40D7BAFC536D236B58D15AA860
-46190D58CD13F425F353CEF582E27842562DB76463E049C5371F68C86396A0EF
-2FC5A078EDB98362A49C9986C4E2D288ACD9EFFA5E16FFE88CF1258E3DED7F1D
-E0E1B510C316085AC417E15615E62780A2D149ADB2FDB97A6149D34451B405BE
-E52C772E343D697015274C68CDDAB2CDAF9D89858F74901BEE6C0ABEECE90C96
-C659CFA3E11642456F8053DBCB26BDD8963CFB995038F590468DFFD55C08D0E6
-A117AF9EC7121D14736739729C0A23C083BD202A09040544F3B9E52B2AB90749
-3C960D8873A9D5ED9F9309B5A2EBE756BA0E03EC82FF9EAE787C7F6D5B9077E0
-5F6F01CF12562C9DCEAEB087F7B1A1E0821C70A896EB5AE991B99BC4A9F5B1A3
-AB2607557956AD82A5FB20CACF7CBA9A7621596CDF3D2F61A3A989469E9DB780
-48EB4D1FDACC4C82634A1335411F635A3241555D7AE0B3C25FBA73718655CA66
-01CDFB963408B6346352C8C74DD649330D9DBE9CADDB8E4F68DFD62855868994
-2F3BE6477962C4CCBEEE8FC4108570115A4385AB7CF3DDF279CBB4235217AD2B
-055B6A1E070EE26989997D5197E5D354926A6EF093FE865CFA59EF8378165E9D
-CD501D2D3A386ED76D636C3446429D4E6FDB5776C80510C6AA4225D5FE97AE62
-7F9E968C64D2488FB051B698D0CC481A62E80EAC8208EDAD7CD5FEBA1FD61CE9
-C010032C96790CAC644CA51EA4EF1512C78B9D03504077BBCAF6BFBCE7255E38
-D7772273B9046FAC92779DD7928431CEB7B22B8D17763D01D241607F050060E8
-52ED05CE4F5D3EC57B349828B6FA8D7E3D765FD8036063EB0F2ADA54D064D03D
-0850E21A7EF5BF1A6FC538B44F6B9D7DCDE6EF84406987EC739803873BDF9539
-1D0E10735FD6F397223C62D9318E323B666063EFBDEF387B5886E7A72E5FD4AF
-2CF2626DE6BCBF60A66243D82D66BF22D4213DBA1421F2A69FD16BC560D498F2
-1326273B81B3ED0F8C3952BEAFD761C6F822FCFE5E37B5630639ACFA6ED6A82F
-0662A917F9163478D2DC81F55BBCB71E3273FE3131F3E1E8F50291D35DBEECE3
-1A2A2C675F0C14C11483590BD4C941021FA2B9E48771A92C46C22A4CDA623C54
-D89A1CB095A5DE8CC328DEE7110F7D123C3EB9CFEE757FEB5FC15B7186885EE2
-A939F6F02829CC672281D1CF097FCB730A550FEA4A915286B089E55303990A2B
-24132543E8463F1C0B13CFA8F94523262BEE756AE77BCF1E087ABAC3E8251271
-71CC1F617586E6EEE7EECE435F4F306106EBD2AA4017C888F498B49BB96E8DA3
-7BDF6A406053AFFF353311B840B8E2D91FBEC3A72761CB0BFCACB011C437E4AE
-4AC97B9286225B1151CD667F5260AB87C5A20DAA60410E9C232914FAA94CAAC3
-2229535D15A15C9D5BF6779CB21C36E045875C61B1B9246007338877C26119AA
-91559A898DAAA2804FF6FF24AFB4A60E2FB56B78968B2FD3E41BD7E6AFC2C89A
-4E4BB3631A02AD952EA1819D5AA6B315B87F76D0639F9D6451096DF4F13FE347
-24700BB56AA905E905D0690EA3BEF1E350403A48D2D5797C3037CE3EEEB7CBAC
-DEB18240EAF5FCD951F7960BDB06DA47E20E6012470909264CF2A2A5D88EF6FD
-40B72F03FB490D2D1949B87CD47F158CADD835ADC71584BB63469475204D0F39
-71AF1159BF4EC333E6768D58030F398AA252FC98D25FB7AA12D155A0788E7092
-9C1E7A6CC7DDCFF094C3F50FF2BCBA36FBBF315D5D29BC6E9E488D52998EF618
-2DFE63A1866457E0C843CF7FC16444B7320272AE039EB84B9CB50A7DC054A4AC
-EEACDEB069F26FD9317B8F2F912CD1F39E435F95A10547567F15147BC19480C5
-29EA0FE1C9966DE2A0CCEE612080801CC0AC5B2ECE3D101C9E64B62AD1E22514
-9D056D5A90ADD81C55001F1A219FD13CFF9963C234595FE69AF7935D50F033D4
-4F5E281E08EC69D22BD97A5F2E285305EDD2C7C44133176C1DA87BF869BEC6DA
-8D4E4157263E26325E2977F30523E83CFCBF915E6F6AB01A3B0B4DBE26E0CA9E
-033499BA92902A366E610EBFB9D1120F894A51528C27F00637B3598AC250CCDD
-26DA2821DADAF36C6F98C782DE3C5C7BF9017C08DBCBE29FED877C9B838DD137
-333B1B1E6DB341356458336012829D719BF9D59F8B377FD0A13894AB748F7757
-892B52EC667212233D781F47D177B85D32DCF0CE3AD0050E7CB6AD9C10686E98
-06CD5B51554EE0A1F2E6310CF8E68B1ECD9DEFE48914705420A464034C32EF98
-53573BE5F1FA4AECB4B8CA561E2838939D6A6CB1FCDAC1D2D1C9EA56656B9909
-0AE70C62CCFD0783D746E8DC997BBF8E48019FBB9EB27DDF432F9D49438B0CC5
-B88F8CFF72F71AF9A05F7A4C0565A1741E585DC4AC4EC8E7AF7EB29857BA860D
-A0D9CAF0C33A04DDE54C483F7B5A770FC69A83569E50C74C241B2EB36DD9F770
-2D7FF44B15BBDFC7E2E207D0BD87EDAD51B0FEC8B0001F6114ED0D535313831A
-0B5F9C69D34A30EFB806FE12CFD640339E8E6ED51BBEA6D315C4C0C2A2F804B4
-58AA3E778A729120F217F7877A2D9ED7CC9ACCDBA01134DBCA2B7E14B60D7763
-D7158417CB509DBAA3EA9504CCEAA03F75B359BEA4F295DA6C2890E635D9614D
-B3928B2E72AEA4402656A9164AFB23B59A7C027D5127CB8E2ABADD6298A4D665
-347E3E070645B2D7950697BFCE5703A3B41710FF1E0374DB6B155320E8812FB0
-9039B54EDC25B9BD9B7E25C1AF1DBEE11C6604EFF06F615281C96C26683867A1
-F925325BDA0200EB88AFB21DA6672E42DA5CAEFB0650F0D6D5B6BF82CB1ACD14
-E19A3BB995087ABC6170AFDA6EE1DDAA77ECB07A830CB2066501401BB3B82666
-FA5C812DF094B062DBAAF96453A1E0871DAC4F1E47B874DF4B849D123B2B0544
-274DBA2382C1238C5A8A5451F50AA0FC495E7E5D5C800A28AAF68F609DA2B987
-FA8A3CF6962C971098FBB45C505E6AFC52A2EBE5C20B82C81D143755BD95804D
-17ACC944DF0ED475003C1C067C1F6AF41D267F16F81AA26EBB16696D697CC282
-57123D8BE5637BFD6D15EAE454561F84A1E52DE03511169BB2065ACBA1A020BE
-C8DD66C8A63739758C9CFC445FDF16FC547B68DC847DAD6DC87DFE0A186E03E3
-8AD184A106639A3EECCD03C1035B853EDF36BE3B96E8853D173238AA9B47D517
-87BAC312A282B6A949CC81ADB1F84191371F0233C303D540685C3E9F94BB9297
-B7777BE483B6CD50C4FABE0BE92D4179FC32E2939C5C04D0550B46E3B2551EF2
-401B00213143F1DE18039B187F200A8BB564B83F006943481E141E63837EF0E8
-C1912CA347A01A2E151E3A6F114328A2AE542225A0120E26A925F176A6455D4E
-CCEE1D4D1D73F9DE93FBDDC5927A271963E5ED7F5D6640AFDCB996E6CAF74570
-046FCCA2EB03878B104076A44C8C479275656DABA64E9A5B169042247DDFE099
-14188A528DA964F44E9FCFE5A1B769D9FB6064BCA3C2916DBE10DE58AFC17BAA
-B21AD23A7C16F37669EC39DACC5AE5CB8EE825DB473150BDA27BD72E3FB25AAD
-EE1CDCA62DFC9BFA00E8574C5CFC6384E4348AA62C8D5009DF10AF7070671AB7
-ED425C3B9301A84804DCA3D8437ADA5A354CA577A0FF39E6C588383C58395790
-81AB85A5D90D3F09054826A43109C32C95604ED0ED4EE7CF68950F9C2F959231
-A05B21A89F41C1A496158FB2B33076618E363FC5A73CB44564922699EFD15678
-6DFA8503BB8F8E262AE6BF0ED7EAC85F0EB63F311A6E9F5C09F7399EF0804674
-471723CD1D3D84183B401F2037E36D4BC9D5BAD1A3270F07ED55A43924FD2F02
-DFDA236DFEC603AD7BBC88040E0BFEFFBA92DC3F724756CDC41D05B6CBB04E4B
-693383975A7636FC3269C5151B0085F4BC89886E5AFA3E1CECCF967AC0765D4C
-AD4F4FA8F3D2158F70EA44F0A78207DC2C5287F377182B7C0817243A76781B1B
-EFBBE2011ACD72CD1AD50A551D95654F9A67E2F9DC85BD05B104325DE38C7198
-E85D6DA068B4C772B6CCEACF68BD8B1D08721CECFE10D881AFE643EE5438B3C3
-5203EB8D3E004E4E18EB6C1E8A7BE94401180DD1343C46B1FE5872C039653E13
-882E66099ABE3AB5009A622C92DCA6972B8C05B133050D9612A9487D5BC6077B
-95248F11B54043912A542241ADB71E271A83ED36FF0CC44B6DE8DB095467289E
-49A4A97EA363FB0486C7567A8056F056904C5BCB2ADFE0CD469A937AEC90B119
-57EB911C0B88171766700C44BA8AC7C9D1C954010A5C594EB0DCAF6F528A6C1A
-E5AEDD88F890E94E3DD1EE2D088AE27C242D692E627BA00BE6723C54EC748865
-AD8FDB8D4DEFEF4EC67A89FDF87A6B7F8B49EAAB9664E105960E209C663D3105
-965BDB55C548FE1BA0FB610900E7DCADD084481295948C263046326DA0C8C513
-80FE1E956AF54C3D8CC5C53CE71BD8A646F9813FB8582CFF41E3837BBB8084D6
-30A00A36124C0E827E08D2674D81FD84300CE6971B0D711DF90BA72AA842B30F
-A99C230AA58492FA3443323458B9B7189514DB8439582926336EA42E2EA6C318
-CF198A7CE1350DB0F345DFB7425EC49ABDCEDB0786D29E6A791D573F4BD97BAB
-563C8BA40B4F1B97D30566E00D4504813AE704E0F8D0272913341C312C4825FC
-4999FF9AE415C2453A03F0624291C0D09081C2792FBA1D61FD36CF49681E3FA4
-64BB59959AEFC3037A41229B42FD7E531933143F026D53B5A29A780D899AD4A8
-58695F05DACD66FEFE0795F89A8B5D50E6BE223700D7A99059F30436C7DD7FB4
-B51DAC6A96C2DE44E3A52005EFEADDC2A3241AE5E654D202E5F7DB699550C15A
-63B72F971F8D27433A150559558D900875AAA739826B46B6DDDE79ACFA06B03A
-B0D724D8CEFDAF097F3DB44708328EE3A013E7B69EEB75E678785B4B18C19A64
-1780F930A57C9D354D0D357642BCC3D1E9769919675F956D64649AB0E702F4C1
-484B40933625D19098860D2BEE441F81175BC89B5E6FACEBE068283222591A32
-C276A7F799DFE539D9368F897B2CAA71138244A1233AD747F80AF7ADAC2C5D2D
-03257A9D3C61D1B50C6B78B859B6B06C39E0DB84EC08B14600E73CA9BEA23040
-766AD0A9E7E538069EF555FA11950E0F9B441CFD8A972DFCC674052D3E2D21A6
-A554010FA65520D22F15E30CFB87292AB254DB9F2536FBE8C15DF23C9E7AE638
-C71868E50DC447F952EE509D17FFD4B3F911C4DC42937889DD78EC13697494A6
-D2D809E113D1094462C71372437C53DBCBF8529212FA3F4AAEFDD5BD893C3F2E
-2CA9778D58B4F13093A581DC12D94A1A7D4A9C0FA544A40A5D783FF8CFA5505F
-456AF7F6754AD45E671A61EFCF329662FE117873741C6C1E838017B5DE1BE323
-6820548623452ECD301FA8D88BA0BF7478596CC082C314354BBAE9C8BBD3971F
-6A88297E46DDD4D20B4DC7CFD9BB555E900A76BD1B8847E72B8D1DA2D3FCA282
-1A3E905F9041B056B0ED0B1CB77C4E004794AA896D3AB654DECA7832CC19D3AD
-5E7FF8F07E3AE6607D6AE0A5A3B348A6C407D86338E23564C1398138758B293C
-0621C2CCE84D0932EB2208A91DB5875AC5D62061D90569222DF9FC13093E9DA1
-1B74BE5195D901FB002CF065442B8B8348F8B156CDBB437439614656D8A6833A
-CF3735B3935B5052D2A370820E1D528AF5151F24739B63B723026340C1F1AFEB
-2C03FC48FAB55307C0A23BCF4942A904AED27C76B77AFF3040A2178D273E2630
-A3E2BB41001638C4851DF7C0B1AF21374EE89DB807660297550147477589971A
-D9A473BA3FCD3D1674798A01F9A13521DFDE7B4034D626F72DD9BC980D6C120A
-09929148132E8321D9BC9F03C68630ED09587053A0FBC676BDA18662A17EDB53
-81D488487FC409367C5605CE746604959FDBFF5B1582CC3F3B196179C58525C3
-18C0D7E11ADB5C648FE97413D93E04B235B3BA867E8AD677307050266C631EC9
-F20C017979A821552E66E3A7C773BC08B163F5AF0D737D475BBF964722E23967
-E71C78FB525E8C4EBD2B625B46F253DE02BF051BA5231D26B8B611E5D2877C01
-092A277340C7D0E95BF9AE7D91D88B0E8124822028020B43DA5DE7B33AF27AE3
-54EFFEC24DDF6B4EE8C7C1D5F8DCC1CD039E0478DC3A01B0611F17CDCA82D006
-9A5D2CEC07F4A11175D35F56C352D0849E894A9FC2F9917847907578013C5A58
-84F9A619C890F57737D0A0D4DC86B75179333BD611B2CC4D6CDC6CAE5B828762
-1C9BAA95C907E43385200809B68942A51D5FE0FCCF4B995D0367114D29264B83
-FE796E3E84200C0D28704D76176E6451D8C670ECC490C79B4E64E54C7C59B33C
-B176B6EF9493CF52FF0BD30E7FE9CF302D92AE8296309D7C346ABC288859C426
-98CB7C7C58A749CDBE1FE05162F8F541A809B9E25EF88343C21863ECE4693159
-7588E877D3E894CE09D9C778826CCEB13BC0DAC6845A69BFC85A797ED310E38A
-72AB793F2A3D2659F9E59E0DCF22941C523395BE5BE1910ED21ECD41842474B2
-27CD8F75B96B7B7043A7C9211DDF93645DCB3407373834991D8965D1CDBB713A
-AC49F848F73983602751D26899A9BE1905FF301F9A6ED6B207CE20B7090117B6
-CA3FC46A68FA01650631C51BD8AF3B97139042F0CDCED3806EBF10D344B470FD
-9B35779428DA32F1A9F60CFBE25BA691BAD490037DFB2C5B956E062A6EB8C553
-9700EAE90B5BDA9253BE72BB533941EE87536A1B6A36702156C5E90AED008813
-9E79CB6E161213562F9EA3ACF12DFA21BF9336DAFB1E90FE081239FD7760F6D7
-A84F956804A5A5CAD5D501B97EE758B9EC165F05E0C36BF03552620624C9050C
-83AE829DA19BCB7FE78567AB3BBE4C770D01825B465D8342580F5EA809325734
-C533E0F2A99C696CD0CD84F2CA151548F3AABA509199B2106EBED08A2E79EBC1
-64F0A3D77BDC53C1040561D9F559F473496DE62B8D4063872D504C3837856FD4
-F451AF7F1EE600FD66C01C9CA63793EBC8FAD595AF1724CE7BD006A72B0CF192
-9A023CCA62CC519667F2E278442F4185E57580B761C8325FCCFB6E094F34F4DE
-1644B24B578771E37141A1598E63E9EBD0AF4CAD443AE2DCED1E564038FB6DC3
-57F71BC6EC0C092F0F91969572E80335A2D394727705AA951716CF3EBD26823A
-003A29935B93D170FEE1DDBBCC081A5E8090B0CC75D2AF60FD4E6EB63A153416
-B25142B594B7658EC4A1D0B61BA8022BE9E9E258E6EB8B83CBFF6BB502274749
-2815AADB342CFF901D0A2AE84BA1D23AF749C4DA07BFD6D8CD03C275F095251A
-81AB02B2C4AFFAAC3F2C03A2960B80F3346374DD2D2D2B21D13A7847D8BB1AFD
-8CC5AA5C1634FB8C705D42842E6BD7434CE6590748701A3AB9E17175C8EA34E6
-7CEA5181DB26BB36370BB7B1D4425DB57010BFBC92A50ABA6B151584DB25E49E
-3C6B12540062CE28488CEE407321EAE10C45F01DA476D28F18F70CD030FF3605
-8DCB10CD81E0D20F13EAC320F8B677A96A5A21965D1122E29795C983F2624D42
-52C6D1EC1A3D45A55FEAD0A8840FAEC2
+8F51A5BC97F6B15807F95CA9DC14C0F5FF3AF1881346AF82F65F0C9AC200DD03
+CD20E0C06E8AA4FA8B225DAA01BF6F07ED8B9C9577F5A565755A71A40D2A453B
+AEAAB4599F617CFEB0B809856CE021E25399D38570ACF8354798FDC2DA24F0A9
+3AE098F5EB8C400569A5D4178354CCE780B8CDCA570E6051F21ADDAFFE775A26
+F9222A6DEE1BB669795728FE4DC07114AB6A8067C56D909BAB80358F39B257C5
+779834A4261613C8F2EFD82F20C9AE15E072BD78D60D77EAB14430DC51BCAC86
+DD91D1654E340719EF37A8B7C6AC8471C16680FB0FB7ABCAA8555A292AEAD439
+4C6BA6BAFB0B19F9DE59745E45D0B67C1D4DE80CFEA538A2551037E0CE7E8D57
+C10AF598A2E9F8A5F67D793D2A228E7A1ACAFDC75420318FEA23286A45CE9C45
+EA34C3E15634BE1FAA50EABD04E94F6D47CA2B78F2B129C94579D24946A8BF07
+8E870456AD04FB3D0549B59D1CABEE60F9759BA2BC06E068D2DEDDEFD8B2788E
+92CBF4B44E04781BC17A58A0A3BA1CFC463145593170F06FB4DDB90460256DBE
+572A290F44973D09EABC8D7665E1D18E1B8F5EE44985B498B6E662B87DD610ED
+CBFDFFD33F0A0C95765E24A7D071269FF7FA2D47942FBAEAAE065B7DF4A9EAC1
+FD58D7C302F9D15A2ED0969168E2FC4A021C521FC7D9C53ED3DC1A0F9AC63862
+AB2396C14CF8552EB0A8C067AB163FE0DA20E3AE1C7881AD6DB0E1D615F7F2EC
+1184C69A430487B861F5CBC52F27C53E1588AAD6FD43CE2C0EA490B257C4A36E
+06E21AA6EAB94938E002FA80E1B1295C1322A207C5A87EC49669AA2FF054BB4B
+B64B622FEAEE05CC84835178C4DA9DAD113D5C6BA75830CFCAA2077A071069A5
+258AC7E801FEA6778FB7EA7507470AD0AB6BB49210858477F53A831F9CE5CEF8
+B519C07786D0551A22E3EEB5230098FB06B390FAB4C73F0D3D03EB4890C03329
+5A0B9C67F1E16B0E1A9D4389DE67F6A950F322ADA03433E71E1DD8D4E416D9E8
+CC55EFAAE6C94CCF24980BAE71CE23916DDB17DE1E412CA5CFED25AC13109246
+A26A8F568DDC73538ECDD2BB41B9B5B020F0F1D36C8F414C24566F8F9E1352F3
+38A5D47FF00D91F43069137BAA659301C2A1EBA1AC6623DA8773643A29E498E2
+33C33DA49C290B5719BAA7E9CD8D00C803624BE63EB0100D6D093E3A1A86D653
+A3CAE4459EC25EE9D59D4AFF27CD3FE4BE831C0C31EAF27F364247114E896CD1
+6395D9516ECF3DA7D9A6B4F36245021C9CD6C332182441B79365164B1E40C5DB
+9E4B5A69DB4AD7D79979E6013435C7D70BB7E910B75F28449CFAD0443645DF30
+5AE363FD581271F587E53FA6DB88B28FE6B80F8A5CD58BE57B6B386896BF7A4A
+D1A36057CB2CC346697B21A5CAAE37A68E62BA46568F0CEC8EABCA7D1A08E7FC
+72622305F10E7BECD696DB80A170CB09BC5E27BE68733943C72A163C88485457
+D47FEA6B5D20982E5713DB5C4E499DE5DE8C2090F3006242516349955D8D7857
+0DB51BFFF42BCB28DDBEA8C2AB5431DCD10DDF05F0B59D00F65BECAD61ACCE82
+1454C36AFF83685C530C8E3A5016665E2A50287558A44E43BE485C96E3DC24E1
+8B291399BD9C9D105377497D085FE5F9037B984104E915DB9E76DDA3BD5A83CC
+ECB3DB2A2E14B90760C207F2D53D9389EA03AC1F5A6AC61E1F538DAB42800822
+BBB425E322947A26F51B3E81D2B3D0CF214D2410BE2B0F12CD978C1943A025E9
+C9E5B403936A6B7928966EEE19504D9F7994861A4A73BB3A63719DE764BE9182
+494E70BFAAC3C26CF422727BA3A2660F1B2394CD361886FDB734AA49614F4C61
+565831EA21D56CCFF58F29F2EBDB513E9D3601F405B94FC7F5FCBA22CC3E47B6
+5F71C0768FA87DA0BA8F5390C0EBB0EF2242FC8FA3AC0C3108F6772237BFEFD8
+61F3DBAB78F70D8801A2F4C615D86D011537BCB2B5ADF4A13EDF0C8BFBBBCA0C
+2C0A139999ADE8FD695D2954C79A86D885E70CD72EAEF05430AEF1A15C9F1771
+F10BC3B8C9EF931147E5EDD3EB5C8F459077AA3407829FA8092F61A909A6B67F
+B6AFC3F35F065420DD6CE2E0FE0227B06A203F334EB8B7EE4C6F27C394B86EE5
+75D6200E98B1F37F1A977B8E92BDF6C4532879A6EC1D68BE998EF2B57C50F06E
+5F30DCFAB85B51ACD1B127161A73E0BD1DA354F3025B3F92C054031D03ACF16A
+158B45606BE9E306B633061654527B904E99D6D8FC61D7D1CC69D18D94D977D4
+402BAE1BC49DD45F8772709A4F148476F9302E38BBF6F6843FC56CDFCF7F74F9
+983100F8FF980CA805AC80511BDEDA1138F12733EF1FCB50D0F60EC06D6BE1B0
+9F908DDB1278340BC780A31752A809A0B6651C5B3E5E0F2017F092849B1162BF
+2188145EEDDCD96CDF5C00AC05385492038EB2F10358D853509706635412F19B
+DA6041053C8F41970BCEDF162C1347DEDE920819734B47FD99CD38E1BEF7A7E8
+8150B295BA78BB5EEB055571F49B848E5A85175DD39DDA6364B7BD0C9C3FC42D
+EFB45AC4E52351213740B3CE676A43DBFD4D04B1691D5EEAC147DA471A3D7A00
+93CC624819D3BE17DE9D8F07FAEE4F54EDCDEB4134D9F39C3BC33857BC8A08BD
+82E23B5564415A3410CDF25ED8C3D443A0F5A9CCE3D75C5AD55DD3DD28EEC633
+82882118F09251A0DCC8349AFCA61603ABC621894DA5C1BF308399A9CCB8283B
+6F54E096CE3F2D3C11373E5356570403B418B84B06FBEE27B63D8B678FA39186
+81605E6B09B02037FC124776DAD7AE3EDF993C064EAC0DD678E13D8D78F74DC5
+22BDD780DDE77AEF1C2E2CD2239EBA6A9E8E9AF9F4F4605ABDCF22902055AB90
+3C5CECEE9B92B52EDAD5D29C3FA6964A7A7A2EECD8F9EAE1CC81D9825E8411DF
+058A838F2C335860FB3B063C824FD45825ED5481B9320FF99B60F17ED8A1C1CB
+A7E12EEF35A40266C7DE2E1DEC31AADE7626C5FC57DF545933F602F283A27D9F
+0E2C77A1BD5394944566497E01CACAF62542EC93D16CD80D4647435B6C905A31
+B94C5CC9F43D6492BB70A5E8867C7B0F58D75240B496DEBFA6DB94D8CA775A7E
+53237BB081D1A189124E6880B6D964867804BA33E0BFA961A562836F7FA1E98F
+EE78ACCF16B330473D69D52D011AB174EB440746ABAC7DD7D9AABA70ED2891D2
+47E2AB24669280D11FD453BBE591642A3FCE09EBCAF62F8E27FF0782216E6E87
+AFC464F2316DDBFF0B6736D42577AD10754C6936B6EAFB18AB6AA3AFB316B179
+B19A0561A157E90035FD26B8FDC72C2892C94957D3257C38F8B1BF14CC7C6AEB
+6FA1C4AC6F22C627BDB1CE6AC63D656D5E7410F7E516813CA3BC9EF02EE8ED4F
+B02D57B303875A7F3E1B8176892C2149C39060E2AAB5C4DEEE429B7AE36CCF51
+997C547147B3CB8DAF1E8C8B160F00A869E5FE90F8302E081307F4C92EE0B374
+EFD848E3F943E04245B6393060B126C7E2A2728F9878D7CCE3DA74525AF11C66
+3BBA0749AEEFD5B190A4A0A729784D15665A8150FDE7A8EA5CC4CF0092B2AB09
+CF8659711E84D057DEFFF2696BBB20E16D9E4B1D4D4EAF69F3BF07644B90C94F
+D11E9CF3E66CD3368E808DF69DEB6C6A3233A88D558BE5037ED5B42EDA0070DA
+3D29F04CBFF58BE922CF4C8F9688A20EA7CB644B080D2C01A2715A69D3D8B7D9
+5C0914DD83C9490E465DF0EF013B6473BC28E937C6E13A2F08CCC8B6F35544F5
+9F79AA89481CD0AAD87C6CA2391BB69A39B090208EFE1A0FF5BEC74923193F6E
+B2AED1DCDF644351089CD7460AC4987789B2D92D851E3F58B41BFD281D717863
+5CEC8AEA5CB14F52F6EA6F5156F08A1CED2312CDBD2B18BF01FE503AB86DA440
+F892BAF54438A5FA847DC0FC7121F2EB829DD00D2DF2BE54EDCC42187840D8B4
+1CE8DF33B574EF36701E2873D5824C37C6BD7DA4AC7BE64D12A21FF2A23CB9B4
+1C6FFA7D8B927745000345B5AAC5825D89E617FFC97B6C7FDE0509DE3FC6F2E2
+1508278734B33F4550D4F565B0A23C2615B49BD17B6741E086DFD50E1E6CE979
+558741605E2A314C325BC4216C2F0F809F492B1898431AC7AB4579E76A3A0F63
+E8CADD4AED7CC6C56AA12867A43CB25187686ADBD4591DD35638F5C79C961085
+BBCF38D48E756C295A0FA4E59BC1CFAEE016686A8F91CC56E37E4A8312F39837
+09A926B3713EBCCD1D82DF9DFF36C0C024975F531B42E7F61D830E2FB51BAE2D
+9A05BE87E8F052E748F8B4201C8869A64BBBD42CA4974E230E59CE541EC0C743
+7292203798D2E11AEF67156FEA12C22964785FEB4CFF473A710A5D7F97A07A40
+D5E9A182D7A96A083823DBF8B1726E8B71F0D751D506DFBC20EDD53A0368D098
+59453D360568B76B5168254027AB71D2480C63D486E855050B1F480BEDE9B4E8
+3379C0B539E33AF2E286C2A02A5D73148114F88898D7C01F408844CA50574D1D
+2B513E63ED04011F179512384C647100C1870937BBA5F404E80B6C8BBA52F6FB
+DAD5343B530919E5AE54E0C859591769580B82911BDF290777B825E417D4EFB2
+FA60EED5786B27E3109CBCCE391B855ED46262FC16A663E63E9A19CAA6C6F58A
+72AECBF5234E25B5C49D143F1084F0B571BB424A1952AB4B26366ACF83A29BEF
+75D9307731FCD44EEF157A59117360402DC446F9B58388AD66AD88B8C82631FE
+31E99E3158C25D152EF626EE76B2AAFECA33CC0B9A571C7253D3AB32DCCC1A2C
+11DED910482250F8A84E0C55FB76264A1C4F434CDD85A347B1DF702C8347CF3C
+5461B2F76AE34887964985AEAC9B7ACF13700B60B7C1446ECA269B2E5146AA31
+0F0556C5435B68B92274A4E5B554B0B7A163E15F8D4A0391F1389C3D7BAC8EC7
+A1AEE0C8C79ECD8F6C2A6011BB0FB966134FD1F75C32F515F63F6A5C15323304
+EB0F0C267F5FA8FF55D2E4D64F5184320756B78F8C043B10D267A548EB1E0CD8
+04E106687542C3231D1E8C157A9BBBB053ACA2FC0DE6413D52360CFF6ADA686B
+F2676FCD629ADFFFFE6F818EF61E5E90B2A077790B2B06E0BC1E0B9163982691
+2EC03BC185E8114DBB76298230FE8B82BFB09FE562A0D96C696784D365CAECE3
+A89A1643257B0298449320C35F91980B364D7E589DD82D69C8379B33CEEF951E
+851250D66FFA0F664D6C2A8F61F2C97E925A46547FB698321FC84CD623CC7C94
+223D2B874D39A65264E9B45EE4646BB830F2F62F8B7F391BF70CC3A9C099B7C2
+559F46ADB70B967DBA1B74300C79738BCEE6FCB3C6D9BE839A22D8C7F4930376
+82D2CA6DA3AA63ADAE47FEF0F0812A6E8D6CE62C60181E71DDA511DF008C38B7
+6741FE1D1FDB1244D04809C4DAFACD75070C10CC0937B7FBA274F64252654907
+7BFCDCB0A8095D5BA8687C93BBD90B2AA3085C047DCB8A095640310E0ED49B31
+93DD65DB30F49E3CC07AF9FD1A6EFC7D5DEE306121CF7442C0ED5A1EB49DADBD
+5A0AE4F838C46C78DDE83BAD2AA31EE6E6DD7405970CF09FA9EB5DC00889EC81
+0E42612CD085D64C74C0784C04257F0E708DD74A8D8C06F8845C2B2966FA2358
+4D5DDD2157A00C184E11300D34097737B1CB714CC71070FB05F7385CCABFECDD
+A035DBF8F2FD9B67F7402BA8F589A5AD61A5476178B404188FB908D591E4948B
+FD39377D0AEF18B82D001514B03A123F7FDD63812FD45D62EC971E93EFE90BD3
+9496C49174F0EF0F513C2BA16F6A6507968C5199519BA9D713DEE4D0C2D427C4
+078F347B5120552E2556A42E0FC37BFC7FE8181F17A01B449CF71E093695BFA2
+D53857C0E3DB972244943B67A07D5AF4FE7F6E04C8033EBD20EB55C38AFF58B0
+D04FF4AC82937A650818A480F2A40ABC3F4A26B7F4C17CDF1A7B056EA67E0D29
+01BDBF1DE76DD59523DDFBF39774AD9E4A04CFF23CE673197C6A17015449D65C
+45C56079351A5A16ED030E96D24A755B2C14B6B925D8C30A16B77981B92D2171
+1E77C0C11DBF9ADEFFA03178411F841A109EC7DC45C4C8E133725B7ADF0DA136
+4A46840677A020BE6897A9FD9AB322F27AD0B55B5500D2B48B71D4AAEFB10774
+8553F99DFCB01FC07508200B9367E6C8145D7F1248335E90D32D9E528C4B955E
+B8DEA684A010BF454070B7DAA128C0BDF6AD29810C4CCE310A30080AD36E7799
+9FD52B074E044EE02FA248087EF3D690FD6DA1AB501CCA44D132049479919EC1
+9401487835D2CAF0A89FDFFF635EFA444E8098D4CE6E2C892482F45D002C28EA
+8879170E7A34FD6AEFF140B1EA77C009F30E60B2857609EF8345A0F20F8085AD
+5E78AF3F6EE20F363468B49FC735FF32AC6382F638006B83FC283AB7ECEB0DC7
+0B67505FD5F97105EA4BA11B18AECCA6E5D7EA36C538401F16832183A17BCAF6
+BFB047542E014E2941BE29F8747E6DD07AB13B374AFA63ECA73D4134FD950C03
+DA939E892C35543DB6AE960A18D57490686E0F758061AEE74D40BBEAC328A905
+7A29FEB1EB40ECF45593C6B2829445541DB58D0E8697CCA09C47D6C86B730015
+8E920228398E492FF70A3DB13248033A61DB5542B8327797951A89317C96E68A
+5EF8784D8848222DEF31FE30A9F9E4C12D42D0DE930898DC4446509988E39196
+792F97BFC9A60C717D78D8901C5190899165A1389835DE21EA49EE01B584787B
+8849FDF0146111811047FBC3ABFFE2307E16518093AADA08DF73FDE6227D2BE0
+5DF2071FAB4F7E825B563B3059F8615DA305F51AA2B9906F1516040BD883DEE3
+922D1D905EC34D3F0400CE2492E93BDFEDD8F3230838EB248C0CEFB5ECF929DF
+D707A953953722436BEA6F5DA51A56F7668CD083E9CD7FCC8B736EF8B08442C8
+AC1AFF6DA974FE5E50D1694B3D07B2E47C0238801E7528C04C967023698E5B1B
+23DB992777B22E7448697F2B78A20B98B78A79635104930A408C18C7E6B1577F
+425F2073EE5E17A8998A38DEA4BB12834B6E842835BC711BBBB04B371CC8E532
+2490A6431876346A3A263683C153D77A5BB9B32E3D91B952172DD05C38F72F3F
+A5140DF292545E31C25B27E2791205641375EC542589D61290504CD73B560B2B
+0C2A8AE31CAACCE8BAED61AC04652F2E0977BE269D860034C429B0164585B658
+29EB62078B9B802B4E214FBE0198A76F5C9CDF072D3C3675583E44130306B5D7
+7D2F147BA926C70749525B60374CF6763E273F30F2532469BF6A7A3965E26046
+EA9E93F7D393F8EC2C021987D33A9AB30930764D1534AF53E361EA65B2B64B9B
+4E93768EA25ABF534761CF567552B0B6D52C8C53BCF5E3414A0B653FF21C8F65
+2C6132916466A286C7E498A2897C237AD5568FEBA57B72C7A87A416035CC03BC
+D1EB9DACE25516AFB3A6B6CAE2C70665002FE2DF14C2850662E43C5F05252031
+BBD84960EE0A86C8410082F441B8B594E001133C4D9DFAD9B4F38BC878C29AEC
+5EDDAA290F7FD74C9228995E107A975C70A7A37EF8E01856E978F284F1BB1453
+A44320130DAF09D7064D9867D27A55E3425F5D25B99F553C9202EE42FE8D3AD2
+6C1D34416C520E0483CC2B87ED9D9F39E563A9A0DC421C04B3B9CA8582DADC5D
+323DBCAA108F28E8F11DDB3D0F0B10D4A62C93FF9E2CED79214641160DFE8447
+93ACC0D72E8D30DFA0E368DE8E56C566D7E15E559C409EA8D913BBB18E4BBA89
+3246FD9DAACAC4C5DA87EF5B9A91D10F10D7252F7531FCBC343ECD3D2B674982
+8F0BE87B3E1CA86112FF617A8E63BA92175913CC403038265C5E35621001B6AF
+EBA934372CB68E99920797A6B154557FAA7C3C696A15EC66348E209BDF87943C
+A9F4281847F5C3C8F340C80240F1A93916880670C350B3A9E651EBA7E62F5D50
+9BE78BCDE8E0599FCB7FD9874E87E957D1117CEEC67A63B8862278E015856F2C
+E31898E7FA1436AF76FF20AF5A7E5BBAB5C23E8C0E66C975A290AB6EECC07F04
+C8A37224EBA5D046C7746168EC081B93E0EED2DA80D9754050617DA4CBD3D5AB
+C9C57C0FA2767E7FD633288652C3C4A2C8095D9E8E2A18C887B4D765B2578215
+64EE4227B2A8B3990DE2E0A4361E0C05B145837D58C4BA15CBAB0E79221759F4
+F17BB5097988872A957479DE4734BE905DDE5B8DB9A31FB9C235114974520D2C
+CB6D6284C199A880217364EDEB160F5FB7FC762819E4509FD20E27A5F865EECD
+B893551A9ED16D5E809B49B9AC67763CB67F877EC21D8E2B8A0D06E9936E84B3
+A6181D5831D67A8F2A466A71F5A4DCEF0DD7387CD5B248F2D5981A9F63D8A260
+88B568E1773B13256E440FACF2DE1041CB99397F8B4CDC8CC87447FA6FA0D670
+5B99D0BC94ECB1AD7BAB0DCC66D278E256CC3689DD3B2F036A6A3DCC8FA77FCB
+0A88AB3A3D50C245AAE20ACCEE7ADCD9FC5C9FD53B405F0FAB220385F7D92011
+E527BC0789261AAE6197377DC5BBC9F5BAE3683700F85C63C0DC59B02BF8B65A
+800DE3BB27A3E75A87F6A550C787F67B1430369268BB61CF5FA66D8F5221543F
+2CEE65CAC0BC2996F73B71783E5BB43B030C90A5FB13CD66BC659A3AC2E897C4
+500CA657F16F70759F0DA8D712F4E94BAFD3DBA866DFA8D7310A44F240522200
+C8F14C7CBF9BBC33276B623C746F7D0A4D76AB13E39DA19E1308EED0A388A23F
+D9336D3532151A416C720052128793385DF6B68D3BDDAADF8F7FFB53260B81DB
+321B33EB566593E390158B80DC631545A66C3CC2BDDB61446A6298D884389303
+E2E55D64F430F35271060417EA4350B783041A7607D44DA3452D304797C03864
+DE4CA134F33471E959A74DE4A8403BD5A1A381BE22221ADF76F0B71F29C7DE1C
+9FD94E0F158182F6DE7689A96C555D2D9F1FF664111F56B147B650BCA6FA1FAD
+9ECA4488EA201C8BB72F63BDDFBE7239F13C46C492F320B4F06F34A668F657C5
+CDD4FC447C67E1BAC54C99666DAA9E96ABC836BDF0980239245D48227C14E811
+FEA8C345C2BEE84300C746016F98893E12D296C64C2119208E4C203A8EABDFB6
+699EC1F750DB57FCBC535E0929123F36A0113E6CDAC09149CE5865B9B1DAB041
+A74C6EB8EF0E8FDD6DED8C67B849324EAB11FA732BA2EF27E11190027F657912
+31A49FDF69D97032A07C66B79FE3F39594FD7DD3BB4570A90747E908D0121A05
+27D12831D23C466F31E31C5B3CC636880DEB158BB4A2AC34114299987E9F8F53
+B0A28EEFC3A259F49CBAD20BD7BB4ACB07726033CB8ADF88E7FE0A0DBFDB10B6
+21669AE4942A298072C72522D34E16987ABB7FF0236EF31B00EF6094024AED38
+CF83EA391CA265E5C6B8B63CE728CBF008756D4F1CF35E0E39B7B17A0608FC37
+78CB7864BA7EE90401AC2CDBFE9AAE8E3F726B41DA0BBFD7E503BC01ECDDE23D
+15A1954FCAE479BC85DF88D0044F2403A75F26276D16F8F125BBA3D166DAE700
+8F0C3A51CDB950B603FC44DCEE18028B36282DA5D7C4CC9C79EF2C879A86A1AF
+467CAA95AF247AC7EC18B7282E5A9863473871C679368C9438FE626962BA0D02
+AB329F7F03BA30FBC62A855DCEC3C4099A003F8D6F6FC94D5B7FF9DA05331BE9
+21B06F9CD00C1E2C5F694307ED8D81D474E70BDED837C8973AF6405115C85E57
+7D64640D85C0FA0FED12BDC55DCA2285DF9DA4F9E48361C00AF5F61C57E4E1C9
+60FC8DEA6C2EFF9654CD220D626CBE75E183368BB8B093FC64BF13B90F935756
+F87FC508F719472F96A7E9732C2B8100354A59C88BD82BD12E485EA7680EC9A7
+FFE0A6636C8D0A423D0432561649BA335E8BACBC5126BB4F796EFCE6DF8B00F7
+01DB1C7FB57D15AFC69470774A735CFD876711AE3AF1EF970A1FE154927A0A00
+A68D4CA6899CE12A1A26CF5393446B436F40D5A47238C053F3248C5929C2B5FA
+EA441400AD4B928537A636AB45FEE4F298DCEA28FD29641C41E51926C2FA4F12
+BB1187C4F050FCD171A9EF0954EEADFD2807956D09CD6EE2A4F4B88B54F3BF6E
+653A02FCC95A3BDCE0A0FD9F3F6E74222A52E2D424857E9A4973104842E1C308
+215467C9F5F9943126BA74589C900B74CD8FCBE53DD73FC9063A5B4BFB708DD5
+B8E30211679F57FBC99D651918A04071C6163EC8205AA0BF84BAF8CE8B05193E
+DC677B30A87722E97F961F3F7024FDD5E0A54A30855E8B7A27715DD055F396F4
+E3DA37B23D51C0430D159EAE4116ADEAE6CCC19669593DB3EAFA37E960D63B0D
+34E00C124CA2A621A4D13E2EECE188BD060714E0A5D38EDB57D0FE37E01A3166
+9DAE1B44103702832F003CDC90632C47720FB444223824A893172441238C11DA
+87D57D945EFE864C0FAF9DB4019041D5BCA4B7CABAEE9264F7D0664089252A10
+142B31D8ACEB1D9C8A46A1EAD878C189BC82179911717C4D6DE3A4DDDB117D94
+851A5F735F8F64F6343B92C0C697963DEDC4FECF1D6ABC5276D6156A40C4E53C
+93559EC3E3518A3CFAA0E4F1B296E9CDCCE30FF6D429A927F85980F3A424A719
+050EE1E6DDAA47E6705E996A65E1F805333B9728F4E9E7C8B3B3E29AA68D95C9
+124F5036334D202E1E4A520F47FAEA47FD2AA761E99029365E00447F13FAD190
+DEC04F8356327345FDEB37C79E467BFF87218A40217598D40965C5E06ED0F93D
+AA40CC9445A2649F9D6D8C90FAEA395733E71F8ADE555E2166892B3FCF84C749
+268430344C7E70ED90C9858A74428382BE6E04D39174C1A52FD6727CCEDF3FA4
+55083E08ACE62339128CB8687F00C8DEAD4B7C7F2176154C5A2D2A854B72E3FC
+9EA3320B701637A137EBC3C819CB06F372B543C0E929BFF3383DF0C4B093589A
+40417511C97C3CAB64C88C26743683534320F8CD312E9B48E5683E4E05FC1A22
+7CA3CF17F181D1B581FBAD827964CE1F911F6C48CD868A9F6F1250215C1BE545
+48F29F82CF164AC3376AC9CE8485D2DEE18D515F12726E501AB86E2A904AC445
+5B3859CE24028493A520F8118834427341C7167FDC4731449E9080400929C0E0
+97328ACBC1CAED6C5042AC37E84F5A122DBBF261049BE6D7AB0E688CFA9E457D
+DCB4004DE6E5EF19D57409062F918C6FB0F09B434F30C8E609A11071BCB2B5DA
+A22F9AEA81C48989A244E8BE97BA8CF9A09E9611D47A9F77948B3FF43CE6F378
+71BB181A69867B6E6E01725992C9DD2FA6EE02107375D0C5876FCE49A3E1F3B1
+6A15DFF1BF3DB92ED9162BD4A36AEB4F3FF40E7E71B2B81FC4E372C941243F90
+C959651A8F98C0441B854097EFA8D66FC76FFD29CE9E786AFA3AF08B5C83660D
+7FE132D95866BEEE0E475F04367343112880F80DF8532D14D8EE4991858B0CFC
+2974C53D70C60BA9C6707307699397C30EE5044208F391809C2B7884D74C77EE
+52A34E2D9EBED8C9AD77F8EAF56676AF405E9A162D5970AD68959AA0C01AFDB2
+AF2E7641A58B894E5EE279E723C7BEC3ABD82D5C1BA27F68394652E942E47061
+C2C8B460209A3D141F23E97AEB68872AA946B5D8C65FBB792A8F9A456B755A95
+18434B1A9CD425243A2056307B26386E64BDA30500018C74B38D9CC6BFC7D87E
+52BAEF36B97B8C41FA46F38B4D37813EE37584E5B36FE9DDBECC8C6BF6646194
+59BF4AB637100456713A84BD505FBE9833956C028AD7C521E8C5BDA9E7088760
+1DEB596FFB35100C01D7EB2660A048F2F6AF924CA0A7C1FEE2987A590D9D5C11
+B0F7B5DECD35F54B4CCFCC7BF8370B7A3184A91ED8B963CF9D180CBC7BD83339
+66866C3B335DFDAB771A7C476650F6AA7925E12B2223EA09E7D2BF80E584298E
+3B114466520D713D3D14D73CCE9BF05DB6870D48564C12CAED2A003BCD295E3B
+0872B5FF1896822188C70CD5D25A039C49D49453AD7D379EA749A3FD3B119D1C
+68E98559EEACF0E6BE1DA9D4BEA3A827BCD4BC75AE6013EF1402F744624FFC00
+C17DD16B4E1C44B8B0FA8791FBAA3C3B6E60561523BBF45357BE6A550302D720
+11DDC010C02178E35528C3D6A40078C6ED2E0AE8F1E9C14D9769C3BE991FBC2C
+3F615E83420B9CF206A6B3C9DC5415BDE571BC3B9444BFD5269092D0EC2791C1
+2FCFDE8CACBC5729582143F36DA9CE6D36C5C66854FCE9C29F3189AEB11694B8
+08873FE32E8292FD57B9CE6E4F6B1DC76FEA98EFEBFCED91001B7FC2A78211B1
+F30DD80DF6F6973211A5D76E000D4F73DD012C62E760732C8D2A94FE6404165A
+513EAAE7958D8E80D47F8E4CCAA1C8822944ED82CDDF945E3C990F075CD530D2
+45E0143743A9310C6E493C5E8D4C6D2672C1834AAF7D570C53347AAB358B217A
+65C336328D667D6CEA6BB97EE648EDD4AB856BF8736E036B559A2BB0D476CF60
+F559841C95C1D8DC962F85E63B2C19D55B106D93B896D87D10B1AA94E36433F7
+17EFB0655E5119BA27D08E75DB75DC2895E922EA7463EE9D5FD7E2DA9B0D10D1
+9F31FF30539C079965DA102B2B61E026BF4F425AF25203F62C6606C904C35A3A
+F766B098EED1991E893128512DF0F35E2C0C196601889B6380CAC542BDAFEC17
+11C265A9C773BD7AFF7483FFACDCEA528E66DEB207D5AD57DB3D2CB955A14B1C
+75190E70CE5B650B021757BC64C5D45FA12239041ED5374147540F7E1E06ACCA
+B06DE83B2FF3CAEA93CBC27D37AFDC748881BEDC30BE2118F542ABC14C6F58F0
+A9D6E9FE325657A14462B4D67BF2EB05E5458B120821A75EA86D102DDB92E9CC
+9DF84F5905A7A3A011C8A7A62F556BB2712AE28CE5AA49295717B08727FC6BA8
+E06C6ABAD51FA0AD08E1821C547C599B4134D6DA36E10A6679425C2E6C56BB5C
+CD56CF0CF5069400F9396411AE4F4BF55988646FDFF2290935252C290153044C
+E30C6FFE0A623A697A5EA25C34FBEE0A9D429B88D1512C21E55CFC5715F76027
+1F863D57EA37AD55F910E131A7A7F7C52F4CCAE4434F300461F77305EAEDE26E
+A782B9FE2D4DADF5044F4B912B09B0AF19EDD486C433D682914650AA408C965F
+2CE16EA10005C4F63E23C5E26939C04FBE91C6C021989AB11BC1E9BAEC5ED9A2
+43F8A29BEC53480EE5841392FC2A89CB596589BE8F2F63A56B17B053C2189EDB
+1372F17B54C2CED7D1701AB04395AF3B36DA19D6B2316ADC443E068CEF52477B
+369B931C69579CCF750BB165D6BEF4205CAA35014EA9A678E4891AC0B9B28110
+D9436F71FFD26EB44053A0DC8A846CC31F1B42096CFD3CD3EF42628517FCAFF7
+FC7B26526B9CADEB536A0B583988637177F5A38370643DC4902AD7C65389676B
+2AC2E025A6BDFE6728151DD4C639847C47F00281B382CFBB9FD0833315A7B381
+03327EE5C2E7B4E107EF3685481B63676B0081BE25A5366BD5BC5E06CAC15A60
+25A2EBBB8C9FF37B73E75253EE0CECDDB404779EA69D2332EBFEE235808DE06D
+66BFE466BC0306A120701FE469606DC96BBB1549AD053D06840D530DC1928FB0
+2D8AFA1129EB725B62982248437715E44ED3C0BE04951EC65ACF23F433AF7067
+60FF11CC949E4B5E1F5C8143B8DACEBB520A490AE110F2E0148D10F2B7B9D7D8
+9B445CDCE2A80240DD31A57FBCBB1C99652E4CEEEFC56ED9A4A02A87BAF808D2
+F2F3413A885F57548170B80E001BA0BDC645F3D55BF251EAEB93141359C10BBF
+69FA01583A539E5A76D55EF88B9249487EEED62396103F854F573F91C04FC363
+B3AF64C1244BB7563E4E4837AADFB652BF189D3AC0A8454FA57CE6FF252EAED5
+E3EE3714BB613DD8BDC6128C13A0E8E0CCF2AEEF10063E32FAB2E54918FBEF3E
+1986208B7986F4084768DE289A4AF319C863FD5CF564A72EB7F437DB8DA6DA80
+D33DA28F7987F9C86547904B0F49F351D18F705C4A178B468ED43E179C43C276
+26E5054AA42CC7B5B00FC14C61C25B11A9D5A5DB3B1806F60248CBAEC06C068C
+ECC0AA85F07856F5F73C0AD13308E6FF55C6C7649B96FD3E4B291B9188ABF764
+34610CE0A73EFC9E52357A2BECB4E6ABCC3C5EF8B1350CE3B1907A104690C865
+4D6FB2A1293B00533867EECBF8B1831B753DDE5C683153533A89FC6E3FC0700B
+61CB7C10C37800B8DF5A40732F17322F4464E7057166C966F1BFDA555129648F
+CFD85AD185410961C086CD5B6FA08619FC943100369C186BA5F3E5D2D4B00CF7
+CE3D23D6166F5F2AA31B0B4CFE98CF190841F69AEFF503E7E49838E4BEB81E0E
+9DC3104632B0FB4A6A04D87D02E9C15AA4F046D39B670F5E37827EF6DA926CA2
+3686FC4E27F14D5755B9312D947096C5EB2F1277DB6E843A168261C4E36F36ED
+98B4825791F6335BB8397DB9B5A3C0561621CA93B143AC978B6549AAC5AA047D
+63F39B84E353120DB184F52CAA1E2CCE76F15AFC6CB7F3C507B2944B354E182B
+225E43C25A92C6396C9CDBDDC93E8F5FA2ECB9B9399CA05CA7CCBEC2A9CE968A
+D089CD94001FBD5F8B1E4060B6B55A7DCCF5B1972E3B532C98C555B000CD28AD
+D93033AAA45346EAD38E49B3CD0F272B5CC2609A26677761131815F64753C5A9
+CC335864E866D94ACFB45EFB67692F31C126B256B4112ABCE4C6EC415AE492AF
+B68C14AF756ACA050F179E2DC1144A744C12121F92E3985962791540BD21B304
+864BEE24C5DF20BE89A70E0D4B797338364993D66A1FE2232ADB3D1374111A63
+DCA4B98912B7E3A6E35A457185418835A5B9675C53752B8D5F53E9C01E0F6E77
+51A6350D29C04E22BA5897CCCB579DD5F90FC8482307030DBB6E8561BADFD1F1
+5FC063DEFE5178BCC1A5F4DE534704AE0E43BD1535A12CCDB14AA1D0C74B641D
+658DAACF0059A434EE6282078C1E80F85A34C3228F5F7FF83F89603613B84478
+EE02C184414F84FE7970785ECC2EDDCAAD88FF94E70D3DA9D4747F95080A3C1A
+2EEDFAF5D4ADE27B99436F2E22E18EC8D061E3DD90EC70948BD50D1EE2C8C4E3
+A0D988D36146419C05EDBA0DA61FC95218CFEED1FCBCC91F419FAE7B43D4077B
+44C025532B9AEF5C2D00F08FD4B0CC118222EA16039E16B2B21674F66AB6CD6F
+6E1F1F54DACC75DD1734EF3318D1364F840E10B44842EA2D710D2A36F3528458
+2C68D67B737B90617D3598125CC89EEC39851131EDD077DDFA9CFCD9DD7FBBF9
+DB8470B9E0DCAB56428F1508E3BDE08CB9F91630BE44D6729AB44D3F9CC25BD0
+5358EA6386EF07D8FAA843A187A9FDE319AE69E85801E6901D6CA87D8CFB171B
+FB248FF2EEF1C6AC56D9A36D648348385ADB4B8A7D614794D8F422972A9D4C80
+3F8E33F1B2FC23C480B27E3388B19FE3544AC9461525199447BE809A04714F7C
+F3E80752A16AFEB451720ED3F5DBDAAB5E4B118ACCA148ACB99AE24DC09523E0
+BFA40A88965E69C047E7F00C8A01A0588EB3B47E99293C9284599DBDD099D52A
+A0C2033D88BAE5984261681C024174906F98B99466F38D0DC29337F69B14D3F3
+50843FCBEEFD2BDB556068FD7FC654F087886E1CB17FA2279C3986A3966611C7
+DE7EC1CB51937AF2501369166E96A4DD0B124BEC75588C348B22DADE47B6BAD7
+D1F7C5AC2122B02CFD2218D962C305B2953F7B6D36E4316450A8DCE29866EDB8
+5D3B93CF031A439C48BC55A217BD7A6617E09F5677DC5986AECE3EF80FD633BF
+56D49E21D1E672027461FAD4858BAEAF550D408E71FB357886DCA559931B5149
+8CFFA9C48713600FF392D880B1002C70EA2085E64E217453F873BCC05E5F7CEE
+E5DE1C0ACC95275D4DD32E55147E507150FB2607DDB5E6D3A54F89B3CFB40232
+0D6F40457D714A60AF7DE113F9A0A2DD661FB351B58DF3B626754DCF3D51701F
+BF8B731A4A8F3A143F6782C5F0ACEF6F0774A7C07BC4554C28F2F2D080EC9183
+CD210B3E29032E28F01FA1C16832671DD1699DF342EF00452C34B2779BEC9124
+3C64C978950398237F1AA8D66A3A39A0D7088B271C054A9143D65ACDC3E1F0C7
+7E9F868F07083F55A6386337793D9E8EF88E6CB1FE850F0116B2E1088E1DF2C7
+4AC396C84CF0F35E635140E7A6A19E5E39902A2B52499071247BC39266519B64
+52F027A9EF68DA6F805C47C5B6ECC0A9ED5DB79CB1901AF8CAD2F7B9CE609BD9
+3EC6057888FA4D0AAC5B0DEF146124789E8B6903BB4EF9C05A4EF964EDEB91C1
+4CC2614FCB772D3C72B6DC4D056F185FF3C9F7C96018FBFBD40A636C33810DB4
+47FC8CBDC9962A72404AF156B17D69CBAD1F07B4E75CF402F68097E7588D78BD
+3C9DD1122ED7916C4C56D908F84B2218450E35209DE1A30E71B416898AFB1F3F
+25242B70EE33FCDBD00C2A103A3590AE3B63C5900696365B0F018B80618D0F72
+EB994FD8DCFDDA7EA3CACCF393872EFF39BAEEC6BEDEA67D03AE98F2249E84F3
+6ED37EE5E993EB96F282D0270C794F2FE622434EE5C99C8677B572D1FCE4EC13
+A1B171193307A7C8A81DED947154D90E58E2BF5281C56892201F6C8D287DDCC0
+11AB85EC27554BE0040FD227E027F74847B16D6BA060F75208D12CCE7FA44044
+A08917508036BEAF1D9B9D940C1CDB2298793700F940333A98BCD90147DCF127
+C6B99F4BF49EE656CADA2F4C7EA905A755879E7F692F4F39ADF6EAB7AEABC171
+2A72D147F1CDC0C864B12EE0816399FA7D125CAF57AF89A440D25333D568845F
+B4D6B8EBC58A521073BFBB6D9F860980767343CADF8414D5EC167D9C7BC40B5C
+97FBDD69B3DAC25E87C4D167F376472AD826A4EA0511278C8D9DD9E47F687108
+7C53C4721AEA016627E47487C871A6A6B1FA52CA703169AD6C785415CF63E06F
+CCC95C2FC29097A3F114B5BFE53D0D0D15AAAE7A81211510A28B8DDD2E9D3F5F
+9585367A2FE0E43F1CAAC3BF4D89BF38CD362B57667F97E202289EE40ACD4E76
+247E1C2BB25F65F2BF20745FE3A19CD048228ACC97CB8F66EEDE564758535AF8
+3DECCA4F5251099F649C7F296C068A69EC6EC2ABB93876CF4DB6C9D1B924570A
+5124C65A88FEC62E1DAA87BF2F22F179033EFE247A114ED8753A12F642B32D96
+7EF019414141E494C1A98B7396EDF2427C235EBE37B47A8CB2D6A9F1947A52EB
+D437C9354185B43A4AC299C20AC267FA110508FA24DF66E2EF53A781B0000D06
+2B3589A4E8FC4277A956BC7EF8CAF57FE644C44198499F566DC3843EE31E17A1
+E63B14A615A3B89AD5F16B34EFE495493112F536ABA91750DDB8FD1F558BC74B
+199FF3A48D9BD0DE21B54E3387805AD1B9F105E511569AD44D1191207557AAE5
+CDD74D81C65FC06598248A72A91E9865E736FEB8526E1532620BFEFD7CDBA684
+70F0EAACDB044A1FC37BF155BC61500A207BA16200F7A7EF5C98F7C0BA0CE63D
+DAAF59F0FD04BE25E822AC796F52829BB0048393AADDD343D25734A256C6CA04
+F3F5F041264034247668EBF3C859103930B3B08C595BF890CA60C1E429233A39
+E996C06BE6EB32CD6A1560BB6378C435A1736AFDAE01C0A13F37B8E9C3334DC3
+C385AF8FE1AAE8ABB777EC8555DE3E74A433D47217F9D05CC291D9936CB04652
+9E3DC449849E4E8A012E8DF58F8DB4D3B042445DB2A5F3E98B2005746950F402
+A22085D5DDC5FEF15D8D38DDBC6E5F8261506E3C508EFF3B7C08C1EE8E4B1349
+A845343908E5B9F93CA25ECE6AF6F3AACF4BF3350C703C582842F59CEEE1025A
+406082C780B92205B359155B095CCE851DFE85D83D6842238E0E15DE2DA0BCC9
+F03921E124EE06E5A282DF6F82B2ADD92D0BA0ADB809BBEEAF5DDF399B26A608
+7E89D51E25EC5E70277FA6A96C4F786BA1BB8478A975989F4014887BC73F16E7
+335179472B4B623F160CE46ACFA8CC210652093E8361DE1735A2AD37D923A906
+838167A8060DC4B749F6B62381ADB5B8932502DC3FB47236FD7837172F22FFF1
+2C33897F244B9873F88A29F222299D7E08F79D07FEE3E4ED09F5F9DD29E9E7CE
+450FAC5DDFD241F896AF6680B45011D095CACD10C395966A9C6DA794EF0E81DE
+68298ED97FAFBE0ACE1430713BF604E55CBD770F5B120828AF486B25776581AF
+F6D733602666FEA868B6AE2818B77E7FD71F06A4EE3CB15D19DDF679DEAF17EF
+E0DF14CDDA21C09B4A6FB966CFF6F8B58C042A7F0BD75DBB6DB7EB81C1C134DE
+D84BCF8E507600DFA6D5AB32E9A27BF4DB8EDB419C4D94C6B934B1FD9462E7F9
+CFBAFEF8FCB7D86FFDED8A7470A0A4D8113FE70EA8DE74E19C5F5ADC4B01D4C1
+B27E1393D3449B1285D6F0F0A9041B936A41C3218941B33D3472F46DDA0DEC84
+A0339B5218CBE53DE3516774BA6DEA013C9FB3039BF4DA71BD5D6A5C5CA415C8
+
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -3021,12 +3023,12 @@ rf /Fh 135[56 2[56 54 42 2[51 58 56 68 47 1[39 27 56
48 48 48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48
48 1[48 1[48 48 1[48 3[48 48 48 48 48 48 1[48 48 48 48
2[48 48 48 48 33[{ TeX09fbbfacEncoding ReEncodeFont }77
-90.9091 /CMTT10 rf /Fo 131[91 1[40 48 48 66 48 51 35
+90.9091 /CMTT10 rf /Fo 131[91 45 40 48 48 66 48 51 35
36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51
45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71
68 83 57 71 47 33 68 71 59 62 69 66 64 68 5[25 25 45
45 45 45 45 45 45 45 45 45 45 25 30 25 2[35 35 25 4[45
-20[51 51 53 11[{ TeXf7b6d320Encoding ReEncodeFont }80
+20[51 51 53 11[{ TeXf7b6d320Encoding ReEncodeFont }81
90.9091 /CMR10 rf /Fp 134[102 4[75 76 79 3[108 1[54 2[54
2[59 88 108 86 108 94 11[149 2[144 3[151 1[116 2[72 1[152
71[{ TeXf7b6d320Encoding ReEncodeFont }19 172.154 /CMBX12
@@ -3042,31 +3044,31 @@ letter
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fp(GNU)65 b(Readline)g(Library)g(User)
-g(In)-5 b(terface)p 150 1418 3600 34 v 1373 1515 a Fo(Edition)30
-b(5.1-b)s(eta1,)j(for)d Fn(Readline)e(Library)h Fo(V)-8
-b(ersion)31 b(5.1-b)s(eta1.)3139 1623 y(No)m(v)m(em)m(b)s(er)g(2005)150
-4935 y Fm(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
-b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
-b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
-b(oundation)p 150 5141 3600 17 v eop end
+g(In)-5 b(terface)p 150 1418 3600 34 v 1873 1515 a Fo(Edition)30
+b(5.2,)i(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)31
+b(5.2.)3333 1623 y(April)f(2006)150 4935 y Fm(Chet)45
+b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l
+(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11
+b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141
+3600 17 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 150 3024 a Fo(This)37 b(man)m(ual)i(describ)s(es)
-f(the)g(end)g(user)f(in)m(terface)j(of)f(the)f(GNU)h(Readline)g
-(Library)e(\(v)m(ersion)j(5.1-)150 3133 y(b)s(eta1,)34
-b(11)g(No)m(v)m(em)m(b)s(er)g(2005\),)i(a)e(library)e(whic)m(h)h(aids)g
-(in)f(the)i(consistency)f(of)h(user)e(in)m(terface)i(across)150
-3243 y(discrete)d(programs)f(whic)m(h)g(pro)m(vide)h(a)f(command)h
-(line)f(in)m(terface.)150 3377 y(Cop)m(yrigh)m(t)602
-3374 y(c)577 3377 y Fl(\015)g Fo(1988-2005)k(F)-8 b(ree)32
-b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)150 3512
-y(P)m(ermission)g(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d(distribute)h
-(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m(vided)f(the)150
-3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s(ermission)g(notice)h
-(are)g(preserv)m(ed)f(on)h(all)g(copies.)390 3756 y(P)m(ermission)k(is)
-h(gran)m(ted)f(to)h(cop)m(y)-8 b(,)38 b(distribute)d(and/or)g(mo)s
-(dify)f(this)h(do)s(cumen)m(t)g(under)390 3866 y(the)j(terms)g(of)g
-(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8
-b(ersion)39 b(1.1)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
+TeXDict begin 2 1 bop 150 3024 a Fo(This)29 b(man)m(ual)g(describ)s(es)
+g(the)h(end)e(user)h(in)m(terface)i(of)f(the)f(GNU)h(Readline)g
+(Library)f(\(v)m(ersion)h(5.2,)h(26)150 3133 y(April)22
+b(2006\),)27 b(a)c(library)f(whic)m(h)h(aids)g(in)f(the)h(consistency)g
+(of)g(user)f(in)m(terface)j(across)e(discrete)g(programs)150
+3243 y(whic)m(h)30 b(pro)m(vide)h(a)f(command)g(line)h(in)m(terface.)
+150 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377 y Fl(\015)f
+Fo(1988-2006)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+b(oundation,)32 b(Inc.)150 3512 y(P)m(ermission)g(is)h(gran)m(ted)g(to)
+f(mak)m(e)i(and)d(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m
+(ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f
+(this)g(p)s(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g
+(copies.)390 3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
+b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
+(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
+b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
+b(1.2)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28
b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33
@@ -3446,202 +3448,206 @@ Fo(and)d Fg(C-J)f Fo(c)m(haracters)k(will)150 408 y(terminate)j(an)g
518 y(original)30 b(line.)41 b(When)28 b(the)h(searc)m(h)h(is)f
(terminated,)h(the)f(history)g(en)m(try)g(con)m(taining)h(the)f(searc)m
(h)h(string)150 628 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275
-769 y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e
+771 y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e
(the)h(history)g(list,)h(t)m(yp)s(e)g Fg(C-r)e Fo(or)h
-Fg(C-s)f Fo(as)h(appropriate.)43 b(This)150 878 y(will)26
+Fg(C-s)f Fo(as)h(appropriate.)43 b(This)150 880 y(will)26
b(searc)m(h)h(bac)m(kw)m(ard)g(or)f(forw)m(ard)g(in)f(the)i(history)f
(for)g(the)g(next)g(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)
-150 988 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
+150 990 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
(sequence)f(b)s(ound)e(to)i(a)g(Readline)h(command)e(will)h(terminate)h
-(the)150 1098 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38
-b(F)-8 b(or)22 b(instance,)h(a)2127 1095 y Ff(h)p 2151
-1042 151 4 v 2151 1098 a Fe(RET)p 2151 1113 V 2298 1095
-a Ff(i)2349 1098 y Fo(will)e(terminate)h(the)f(searc)m(h)h(and)e
-(accept)150 1207 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e
+(the)150 1100 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38
+b(F)-8 b(or)22 b(instance,)h(a)2127 1097 y Ff(h)p 2151
+1044 151 4 v 2151 1100 a Fe(RET)p 2151 1115 V 2298 1097
+a Ff(i)2349 1100 y Fo(will)e(terminate)h(the)f(searc)m(h)h(and)e
+(accept)150 1209 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e
(command)g(from)g(the)h(history)f(list.)41 b(A)29 b(mo)m(v)m(emen)m(t)j
-(command)d(will)150 1317 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h
+(command)d(will)150 1319 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h
(the)e(last)h(line)g(found)e(the)i(curren)m(t)f(line,)h(and)f(b)s(egin)
-g(editing.)275 1458 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h
+g(editing.)275 1462 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h
(incremen)m(tal)g(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j
-Fg(C-r)p Fo(s)c(are)i(t)m(yp)s(ed)g(without)150 1567
+Fg(C-r)p Fo(s)c(are)i(t)m(yp)s(ed)g(without)150 1571
y(an)m(y)i(in)m(terv)m(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f
(searc)m(h)h(string,)h(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g
-(is)150 1677 y(used.)275 1818 y(Non-incremen)m(tal)48
+(is)150 1681 y(used.)275 1824 y(Non-incremen)m(tal)48
b(searc)m(hes)g(read)e(the)h(en)m(tire)h(searc)m(h)f(string)g(b)s
-(efore)f(starting)h(to)h(searc)m(h)f(for)150 1928 y(matc)m(hing)d
+(efore)f(starting)h(to)h(searc)m(h)f(for)150 1934 y(matc)m(hing)d
(history)e(lines.)78 b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f
(t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150
-2037 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
-2311 y Fm(1.3)68 b(Readline)47 b(Init)e(File)275 2562
+2043 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
+2322 y Fm(1.3)68 b(Readline)47 b(Init)e(File)275 2575
y Fo(Although)g(the)g(Readline)h(library)e(comes)i(with)f(a)h(set)f(of)
-g(Emacs-lik)m(e)i(k)m(eybindings)e(installed)150 2672
+g(Emacs-lik)m(e)i(k)m(eybindings)e(installed)150 2685
y(b)m(y)d(default,)i(it)f(is)e(p)s(ossible)g(to)i(use)e(a)h(di\013eren)
m(t)g(set)g(of)g(k)m(eybindings.)74 b(An)m(y)42 b(user)f(can)h
-(customize)150 2781 y(programs)32 b(that)h(use)f(Readline)h(b)m(y)g
+(customize)150 2794 y(programs)32 b(that)h(use)f(Readline)h(b)m(y)g
(putting)f(commands)g(in)g(an)g Fd(inputrc)37 b Fo(\014le,)d(con)m(v)m
-(en)m(tionally)h(in)d(his)150 2891 y(home)h(directory)-8
+(en)m(tionally)h(in)d(his)150 2904 y(home)h(directory)-8
b(.)50 b(The)33 b(name)g(of)g(this)g(\014le)h(is)f(tak)m(en)h(from)f
(the)g(v)-5 b(alue)34 b(of)f(the)g(en)m(vironmen)m(t)h(v)-5
-b(ariable)150 3000 y Fn(INPUTRC)p Fo(.)39 b(If)30 b(that)h(v)-5
-b(ariable)31 b(is)f(unset,)g(the)h(default)g(is)f(`)p
-Fn(~/.inputrc)p Fo('.)275 3142 y(When)f(a)h(program)f(whic)m(h)h(uses)f
-(the)h(Readline)g(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h
-(read,)g(and)f(the)150 3251 y(k)m(ey)i(bindings)e(are)i(set.)275
-3392 y(In)26 b(addition,)i(the)f Fn(C-x)i(C-r)d Fo(command)h(re-reads)g
-(this)f(init)h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m
-(hanges)150 3502 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
-(it.)150 3739 y Fc(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275
-3990 y Fo(There)33 b(are)h(only)g(a)g(few)f(basic)h(constructs)g(allo)m
+b(ariable)150 3014 y Fn(INPUTRC)p Fo(.)38 b(If)28 b(that)g(v)-5
+b(ariable)29 b(is)f(unset,)h(the)f(default)g(is)h(`)p
+Fn(~/.inputrc)p Fo('.)37 b(If)28 b(that)h(\014le)f(do)s(es)g(not)g
+(exist)h(or)150 3123 y(cannot)i(b)s(e)f(read,)g(the)h(ultimate)g
+(default)g(is)f(`)p Fn(/etc/inputrc)p Fo('.)275 3266
+y(When)f(a)h(program)f(whic)m(h)h(uses)f(the)h(Readline)g(library)f
+(starts)h(up,)f(the)h(init)g(\014le)f(is)h(read,)g(and)f(the)150
+3376 y(k)m(ey)i(bindings)e(are)i(set.)275 3519 y(In)26
+b(addition,)i(the)f Fn(C-x)i(C-r)d Fo(command)h(re-reads)g(this)f(init)
+h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m(hanges)150
+3629 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g(it.)150
+3870 y Fc(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275
+4123 y Fo(There)33 b(are)h(only)g(a)g(few)f(basic)h(constructs)g(allo)m
(w)m(ed)h(in)f(the)g(Readline)g(init)g(\014le.)51 b(Blank)34
-b(lines)g(are)150 4100 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
+b(lines)g(are)150 4232 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
(a)g(`)p Fn(#)p Fo(')g(are)h(commen)m(ts.)73 b(Lines)41
b(b)s(eginning)f(with)g(a)i(`)p Fn($)p Fo(')f(indicate)150
-4209 y(conditional)29 b(constructs)f(\(see)g(Section)h(1.3.2)g
+4342 y(conditional)29 b(constructs)f(\(see)g(Section)h(1.3.2)g
([Conditional)g(Init)e(Constructs],)i(page)f(9\).)41
-b(Other)27 b(lines)150 4319 y(denote)k(v)-5 b(ariable)31
-b(settings)g(and)f(k)m(ey)h(bindings.)150 4488 y(V)-8
-b(ariable)32 b(Settings)630 4598 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
+b(Other)27 b(lines)150 4452 y(denote)k(v)-5 b(ariable)31
+b(settings)g(and)f(k)m(ey)h(bindings.)150 4624 y(V)-8
+b(ariable)32 b(Settings)630 4734 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g(b)m(y)f(altering)h
-(the)g(v)-5 b(alues)41 b(of)630 4707 y(v)-5 b(ariables)34
+(the)g(v)-5 b(alues)41 b(of)630 4843 y(v)-5 b(ariables)34
b(in)f(Readline)i(using)e(the)g Fn(set)g Fo(command)g(within)g(the)h
-(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 4817 y(is)d(simple:)870
-4955 y Fn(set)47 b Fg(variable)56 b(value)630 5093 y
+(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 4953 y(is)d(simple:)870
+5092 y Fn(set)47 b Fg(variable)56 b(value)630 5230 y
Fo(Here,)29 b(for)e(example,)h(is)g(ho)m(w)f(to)h(c)m(hange)g(from)f
(the)g(default)h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630
-5202 y(use)k Fn(vi)g Fo(line)h(editing)g(commands:)870
-5340 y Fn(set)47 b(editing-mode)d(vi)p eop end
+5340 y(use)k Fn(vi)g Fo(line)h(editing)g(commands:)p
+eop end
%%Page: 5 9
TeXDict begin 5 8 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(5)630 299 y(V)-8
-b(ariable)36 b(names)f(and)g(v)-5 b(alues,)36 b(where)f(appropriate,)h
-(are)g(recognized)g(without)f(regard)630 408 y(to)c(case.)42
-b(Unrecognized)31 b(v)-5 b(ariable)31 b(names)g(are)f(ignored.)630
-536 y(Bo)s(olean)c(v)-5 b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f
-(set)i(to)g(on)f(or)g(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)
-g(v)-5 b(alue)26 b(is)630 646 y(n)m(ull)e(or)g(empt)m(y)-8
-b(,)27 b Fd(on)d Fo(\(case-insensitiv)m(e\),)29 b(or)24
-b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
--5 b(ariable)630 756 y(b)s(eing)30 b(set)h(to)g(o\013.)630
-883 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
+b(Command)29 b(Line)i(Editing)2153 b(5)870 299 y Fn(set)47
+b(editing-mode)d(vi)630 432 y Fo(V)-8 b(ariable)36 b(names)f(and)g(v)-5
+b(alues,)36 b(where)f(appropriate,)h(are)g(recognized)g(without)f
+(regard)630 541 y(to)c(case.)42 b(Unrecognized)31 b(v)-5
+b(ariable)31 b(names)g(are)f(ignored.)630 674 y(Bo)s(olean)c(v)-5
+b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f(set)i(to)g(on)f(or)g
+(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)g(v)-5
+b(alue)26 b(is)630 783 y(n)m(ull)e(or)g(empt)m(y)-8 b(,)27
+b Fd(on)d Fo(\(case-insensitiv)m(e\),)29 b(or)24 b(1.)39
+b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)-5
+b(ariable)630 893 y(b)s(eing)30 b(set)h(to)g(o\013.)630
+1026 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 b(ariables.)630
-1029 y Fn(bell-style)1110 1139 y Fo(Con)m(trols)44 b(what)g(happ)s(ens)
+1181 y Fn(bell-style)1110 1291 y Fo(Con)m(trols)44 b(what)g(happ)s(ens)
e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h(termi-)1110
-1249 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
+1401 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
Fn(none)p Fo(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
-b(If)36 b(set)i(to)1110 1358 y(`)p Fn(visible)p Fo(',)32
+b(If)36 b(set)i(to)1110 1510 y(`)p Fn(visible)p Fo(',)32
b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g(one)g(is)g(a)m(v)-5
-b(ailable.)51 b(If)33 b(set)g(to)1110 1468 y(`)p Fn(audible)p
+b(ailable.)51 b(If)33 b(set)g(to)1110 1620 y(`)p Fn(audible)p
Fo(')j(\(the)i(default\),)i(Readline)e(attempts)g(to)h(ring)e(the)g
-(terminal's)1110 1577 y(b)s(ell.)630 1724 y Fn(bind-tty-special-chars)
-1110 1833 y Fo(If)45 b(set)h(to)f(`)p Fn(on)p Fo(',)50
+(terminal's)1110 1729 y(b)s(ell.)630 1885 y Fn(bind-tty-special-chars)
+1110 1995 y Fo(If)45 b(set)h(to)f(`)p Fn(on)p Fo(',)50
b(Readline)45 b(attempts)i(to)f(bind)d(the)j(con)m(trol)g(c)m
-(haracters)1110 1943 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m
+(haracters)1110 2104 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m
(ernel's)g(terminal)g(driv)m(er)f(to)h(their)f(Readline)1110
-2052 y(equiv)-5 b(alen)m(ts.)630 2198 y Fn(comment-begin)1110
-2308 y Fo(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of)
-g(the)h(line)f(when)f(the)i Fn(insert-)1110 2418 y(comment)e
+2214 y(equiv)-5 b(alen)m(ts.)630 2370 y Fn(comment-begin)1110
+2479 y Fo(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of)
+g(the)h(line)f(when)f(the)i Fn(insert-)1110 2589 y(comment)e
Fo(command)j(is)f(executed.)42 b(The)29 b(default)i(v)-5
-b(alue)31 b(is)f Fn("#")p Fo(.)630 2564 y Fn(completion-ignore-case)
-1110 2673 y Fo(If)d(set)h(to)g(`)p Fn(on)p Fo(',)g(Readline)g(p)s
+b(alue)31 b(is)f Fn("#")p Fo(.)630 2744 y Fn(completion-ignore-case)
+1110 2854 y Fo(If)d(set)h(to)g(`)p Fn(on)p Fo(',)g(Readline)g(p)s
(erforms)e(\014lename)h(matc)m(hing)i(and)e(completion)1110
-2783 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40 b(The)30
+2964 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40 b(The)30
b(default)h(v)-5 b(alue)30 b(is)h(`)p Fn(off)p Fo('.)630
-2929 y Fn(completion-query-items)1110 3039 y Fo(The)26
+3119 y Fn(completion-query-items)1110 3229 y Fo(The)26
b(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h(that)g(determines)
-f(when)f(the)i(user)1110 3148 y(is)i(ask)m(ed)h(whether)f(the)h(list)g
+f(when)f(the)i(user)1110 3339 y(is)i(ask)m(ed)h(whether)f(the)h(list)g
(of)f(p)s(ossibilities)h(should)e(b)s(e)h(displa)m(y)m(ed.)41
-b(If)29 b(the)1110 3258 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)f
+b(If)29 b(the)1110 3448 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)f
(completions)i(is)f(greater)h(than)e(this)h(v)-5 b(alue,)28
-b(Readline)1110 3367 y(will)f(ask)g(the)f(user)g(whether)g(or)g(not)h
-(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110 3477
+b(Readline)1110 3558 y(will)f(ask)g(the)f(user)g(whether)g(or)g(not)h
+(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110 3667
y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5 b(ariable)25
b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5
-b(alue)1110 3587 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
+b(alue)1110 3777 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
-3696 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Fn(100)p Fo(.)630 3842 y Fn(convert-meta)1110 3952 y
+3886 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
+Fn(100)p Fo(.)630 4042 y Fn(convert-meta)1110 4152 y
Fo(If)22 b(set)g(to)h(`)p Fn(on)p Fo(',)h(Readline)f(will)f(con)m(v)m
(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
-4061 y(to)g(an)f Fh(asci)r(i)g Fo(k)m(ey)h(sequence)g(b)m(y)f
+4261 y(to)g(an)f Fh(asci)r(i)g Fo(k)m(ey)h(sequence)g(b)m(y)f
(stripping)f(the)i(eigh)m(th)g(bit)f(and)g(pre\014xing)f(an)1110
-4168 y Ff(h)p 1134 4115 139 4 v 1134 4171 a Fe(ESC)p
-1134 4186 V 1268 4168 a Ff(i)1332 4171 y Fo(c)m(haracter,)36
+4368 y Ff(h)p 1134 4315 139 4 v 1134 4371 a Fe(ESC)p
+1134 4386 V 1268 4368 a Ff(i)1332 4371 y Fo(c)m(haracter,)36
b(con)m(v)m(erting)g(them)e(to)g(a)h(meta-pre\014xed)f(k)m(ey)g
-(sequence.)1110 4281 y(The)c(default)g(v)-5 b(alue)31
-b(is)g(`)p Fn(on)p Fo('.)630 4427 y Fn(disable-completion)1110
-4536 y Fo(If)36 b(set)h(to)h(`)p Fn(On)p Fo(',)g(Readline)f(will)g
+(sequence.)1110 4481 y(The)c(default)g(v)-5 b(alue)31
+b(is)g(`)p Fn(on)p Fo('.)630 4636 y Fn(disable-completion)1110
+4746 y Fo(If)36 b(set)h(to)h(`)p Fn(On)p Fo(',)g(Readline)f(will)g
(inhibit)f(w)m(ord)h(completion.)60 b(Completion)1110
-4646 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
+4855 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g
(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
-4755 y(to)31 b Fn(self-insert)p Fo(.)38 b(The)30 b(default)g(is)h(`)p
-Fn(off)p Fo('.)630 4902 y Fn(editing-mode)1110 5011 y
+4965 y(to)31 b Fn(self-insert)p Fo(.)38 b(The)30 b(default)g(is)h(`)p
+Fn(off)p Fo('.)630 5121 y Fn(editing-mode)1110 5230 y
Fo(The)d Fn(editing-mode)e Fo(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
-(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 5121 y(ings)25
+(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 5340 y(ings)25
b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
-(Emacs)g(editing)h(mo)s(de,)1110 5230 y(where)j(the)g(k)m(eystrok)m(es)
-i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
-b(ariable)30 b(can)1110 5340 y(b)s(e)g(set)h(to)g(either)g(`)p
-Fn(emacs)p Fo(')e(or)h(`)p Fn(vi)p Fo('.)p eop end
+(Emacs)g(editing)h(mo)s(de,)p eop end
%%Page: 6 10
TeXDict begin 6 9 bop 150 -116 a Fo(6)2645 b(GNU)31 b(Readline)g
-(Library)630 299 y Fn(enable-keypad)1110 408 y Fo(When)23
-b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)f(will)g(try)f(to)h(enable)g
-(the)f(application)i(k)m(eypad)1110 518 y(when)h(it)h(is)f(called.)41
-b(Some)27 b(systems)f(need)h(this)f(to)h(enable)g(the)g(arro)m(w)g(k)m
-(eys.)1110 628 y(The)j(default)g(is)h(`)p Fn(off)p Fo('.)630
-819 y Fn(expand-tilde)1110 929 y Fo(If)c(set)h(to)h(`)p
-Fn(on)p Fo(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
-(Readline)h(attempts)1110 1039 y(w)m(ord)i(completion.)42
-b(The)30 b(default)g(is)h(`)p Fn(off)p Fo('.)630 1230
-y Fn(history-preserve-point)1110 1340 y Fo(If)e(set)i(to)f(`)p
-Fn(on)p Fo(',)g(the)g(history)g(co)s(de)g(attempts)g(to)h(place)f(p)s
-(oin)m(t)g(at)h(the)f(same)1110 1450 y(lo)s(cation)35
-b(on)e(eac)m(h)i(history)e(line)h(retriev)m(ed)g(with)f
-Fn(previous-history)c Fo(or)1110 1559 y Fn(next-history)p
+(Library)1110 299 y(where)e(the)g(k)m(eystrok)m(es)i(are)e(most)h
+(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5 b(ariable)30
+b(can)1110 408 y(b)s(e)g(set)h(to)g(either)g(`)p Fn(emacs)p
+Fo(')e(or)h(`)p Fn(vi)p Fo('.)630 567 y Fn(enable-keypad)1110
+676 y Fo(When)23 b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)f(will)g
+(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
+786 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
+(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 896 y(The)j(default)g(is)
+h(`)p Fn(off)p Fo('.)630 1054 y Fn(expand-tilde)1110
+1163 y Fo(If)c(set)h(to)h(`)p Fn(on)p Fo(',)f(tilde)g(expansion)g(is)f
+(p)s(erformed)f(when)h(Readline)h(attempts)1110 1273
+y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p
+Fn(off)p Fo('.)630 1431 y Fn(history-preserve-point)1110
+1541 y Fo(If)e(set)i(to)f(`)p Fn(on)p Fo(',)g(the)g(history)g(co)s(de)g
+(attempts)g(to)h(place)f(p)s(oin)m(t)g(at)h(the)f(same)1110
+1650 y(lo)s(cation)35 b(on)e(eac)m(h)i(history)e(line)h(retriev)m(ed)g
+(with)f Fn(previous-history)c Fo(or)1110 1760 y Fn(next-history)p
Fo(.)37 b(The)30 b(default)h(is)f(`)p Fn(off)p Fo('.)630
-1751 y Fn(horizontal-scroll-mode)1110 1861 y Fo(This)35
+1918 y Fn(horizontal-scroll-mode)1110 2028 y Fo(This)35
b(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
Fn(on)p Fo(')g(or)g(`)p Fn(off)p Fo('.)57 b(Setting)36
-b(it)g(to)h(`)p Fn(on)p Fo(')1110 1970 y(means)26 b(that)h(the)f(text)h
+b(it)g(to)h(`)p Fn(on)p Fo(')1110 2138 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 2080 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 2189
+(tally)1110 2247 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 2357
y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
-(line.)39 b(By)27 b(default,)g(this)1110 2299 y(v)-5
+(line.)39 b(By)27 b(default,)g(this)1110 2466 y(v)-5
b(ariable)31 b(is)g(set)f(to)i(`)p Fn(off)p Fo('.)630
-2491 y Fn(input-meta)1110 2600 y Fo(If)f(set)g(to)h(`)p
+2625 y Fn(input-meta)1110 2734 y Fo(If)f(set)g(to)h(`)p
Fn(on)p Fo(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 2710 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+i(will)f(not)h(clear)1110 2844 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
-2819 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
+2953 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
b(The)39 b(default)h(v)-5 b(alue)40 b(is)g(`)p Fn(off)p
-Fo('.)69 b(The)1110 2929 y(name)30 b Fn(meta-flag)e Fo(is)j(a)f(synon)m
-(ym)g(for)g(this)h(v)-5 b(ariable.)630 3121 y Fn(isearch-terminators)
-1110 3230 y Fo(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
-(terminate)j(an)f(incremen)m(tal)1110 3340 y(searc)m(h)25
+Fo('.)69 b(The)1110 3063 y(name)30 b Fn(meta-flag)e Fo(is)j(a)f(synon)m
+(ym)g(for)g(this)h(v)-5 b(ariable.)630 3221 y Fn(isearch-terminators)
+1110 3331 y Fo(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
+(terminate)j(an)f(incremen)m(tal)1110 3440 y(searc)m(h)25
b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g
-(command)1110 3450 y(\(see)45 b(Section)h(1.2.5)g([Searc)m(hing],)j
+(command)1110 3550 y(\(see)45 b(Section)h(1.2.5)g([Searc)m(hing],)j
(page)d(3\).)84 b(If)44 b(this)g(v)-5 b(ariable)45 b(has)g(not)1110
-3559 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
-(haracters)2494 3556 y Ff(h)p 2518 3503 139 4 v 2518
-3559 a Fe(ESC)p 2518 3575 V 2652 3556 a Ff(i)2713 3559
-y Fo(and)f Fg(C-J)g Fo(will)h(terminate)g(an)1110 3669
-y(incremen)m(tal)g(searc)m(h.)630 3861 y Fn(keymap)192
+3660 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
+(haracters)2494 3657 y Ff(h)p 2518 3604 139 4 v 2518
+3660 a Fe(ESC)p 2518 3675 V 2652 3657 a Ff(i)2713 3660
+y Fo(and)f Fg(C-J)g Fo(will)h(terminate)g(an)1110 3769
+y(incremen)m(tal)g(searc)m(h.)630 3927 y Fn(keymap)192
b Fo(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
-(for)g(k)m(ey)g(binding)f(com-)1110 3970 y(mands.)81
+(for)g(k)m(ey)g(binding)f(com-)1110 4037 y(mands.)81
b(Acceptable)47 b Fn(keymap)42 b Fo(names)i(are)h Fn(emacs)p
-Fo(,)i Fn(emacs-standard)p Fo(,)1110 4080 y Fn(emacs-meta)p
+Fo(,)i Fn(emacs-standard)p Fo(,)1110 4147 y Fn(emacs-meta)p
Fo(,)99 b Fn(emacs-ctlx)p Fo(,)f Fn(vi)p Fo(,)j Fn(vi-move)p
-Fo(,)f Fn(vi-command)p Fo(,)f(and)1110 4189 y Fn(vi-insert)p
+Fo(,)f Fn(vi-command)p Fo(,)f(and)1110 4256 y Fn(vi-insert)p
Fo(.)64 b Fn(vi)38 b Fo(is)h(equiv)-5 b(alen)m(t)41 b(to)e
Fn(vi-command)p Fo(;)i Fn(emacs)c Fo(is)i(equiv)-5 b(alen)m(t)1110
-4299 y(to)33 b Fn(emacs-standard)p Fo(.)41 b(The)31 b(default)h(v)-5
+4366 y(to)33 b Fn(emacs-standard)p Fo(.)41 b(The)31 b(default)h(v)-5
b(alue)32 b(is)g Fn(emacs)p Fo(.)44 b(The)31 b(v)-5 b(alue)33
-b(of)f(the)1110 4408 y Fn(editing-mode)27 b Fo(v)-5 b(ariable)31
-b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 4600
-y Fn(mark-directories)1110 4710 y Fo(If)38 b(set)g(to)h(`)p
+b(of)f(the)1110 4475 y Fn(editing-mode)27 b Fo(v)-5 b(ariable)31
+b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 4634
+y Fn(mark-directories)1110 4743 y Fo(If)38 b(set)g(to)h(`)p
Fn(on)p Fo(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash)
-g(app)s(ended.)1110 4819 y(The)30 b(default)g(is)h(`)p
+g(app)s(ended.)1110 4853 y(The)30 b(default)g(is)h(`)p
Fn(on)p Fo('.)630 5011 y Fn(mark-modified-lines)1110
5121 y Fo(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
Fn(on)p Fo(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110
@@ -3719,161 +3725,164 @@ b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g
eop end
%%Page: 8 12
TeXDict begin 8 11 bop 150 -116 a Fo(8)2645 b(GNU)31
-b(Readline)g(Library)630 299 y(the)h(name)g(of)g(the)g(command.)46
-b(The)31 b(name)h(of)g(the)g(k)m(ey)h(can)f(b)s(e)f(expressed)h(in)f
-(di\013eren)m(t)630 408 y(w)m(a)m(ys,)g(dep)s(ending)e(on)i(what)f(y)m
-(ou)h(\014nd)d(most)j(comfortable.)630 545 y(In)k(addition)h(to)h
-(command)f(names,)i(readline)e(allo)m(ws)h(k)m(eys)g(to)g(b)s(e)e(b)s
-(ound)f(to)j(a)f(string)630 655 y(that)31 b(is)f(inserted)h(when)e(the)
-i(k)m(ey)g(is)f(pressed)g(\(a)h Fd(macro)5 b Fo(\).)630
-819 y Fd(k)m(eyname)g Fo(:)42 b Fd(function-name)35 b
-Fo(or)c Fd(macro)1110 929 y(k)m(eyname)k Fo(is)29 b(the)f(name)h(of)g
-(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g(English.)39 b(F)-8
-b(or)30 b(example:)1350 1066 y Fn(Control-u:)45 b(universal-argument)
-1350 1176 y(Meta-Rubout:)f(backward-kill-word)1350 1285
-y(Control-o:)h(">)i(output")1110 1422 y Fo(In)38 b(the)h(ab)s(o)m(v)m
-(e)h(example,)h Fg(C-u)d Fo(is)h(b)s(ound)d(to)k(the)e(function)h
-Fn(universal-)1110 1532 y(argument)p Fo(,)f Fg(M-DEL)e
-Fo(is)i(b)s(ound)e(to)i(the)g(function)g Fn(backward-kill-word)p
-Fo(,)1110 1641 y(and)g Fg(C-o)g Fo(is)h(b)s(ound)e(to)j(run)d(the)j
-(macro)f(expressed)g(on)f(the)i(righ)m(t)f(hand)1110
-1751 y(side)30 b(\(that)i(is,)e(to)h(insert)g(the)f(text)i(`)p
-Fn(>)e(output)p Fo(')f(in)m(to)i(the)g(line\).)1110 1888
-y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i(names)e
-(are)g(recognized)h(while)f(pro-)1110 1998 y(cessing)24
+b(Readline)g(Library)630 299 y(the)h(name)h(of)f(the)g(command.)46
+b(There)32 b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m
+(ey)h(name)g(and)630 408 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g
+(in)m(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
+b(The)40 b(name)h(of)630 518 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
+(what)h(y)m(ou)g(\014nd)e(most)630 628 y(comfortable.)630
+763 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h(k)
+m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630 872
+y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g(\(a)h
+Fd(macro)5 b Fo(\).)630 1032 y Fd(k)m(eyname)g Fo(:)42
+b Fd(function-name)35 b Fo(or)c Fd(macro)1110 1142 y(k)m(eyname)k
+Fo(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g
+(English.)39 b(F)-8 b(or)30 b(example:)1350 1277 y Fn(Control-u:)45
+b(universal-argument)1350 1386 y(Meta-Rubout:)f(backward-kill-word)1350
+1496 y(Control-o:)h(">)i(output")1110 1631 y Fo(In)38
+b(the)h(ab)s(o)m(v)m(e)h(example,)h Fg(C-u)d Fo(is)h(b)s(ound)d(to)k
+(the)e(function)h Fn(universal-)1110 1740 y(argument)p
+Fo(,)f Fg(M-DEL)e Fo(is)i(b)s(ound)e(to)i(the)g(function)g
+Fn(backward-kill-word)p Fo(,)1110 1850 y(and)g Fg(C-o)g
+Fo(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f(the)i
+(righ)m(t)f(hand)1110 1960 y(side)30 b(\(that)i(is,)e(to)h(insert)g
+(the)f(text)i(`)p Fn(>)e(output)p Fo(')f(in)m(to)i(the)g(line\).)1110
+2094 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
+(names)e(are)g(recognized)h(while)f(pro-)1110 2204 y(cessing)24
b(this)g(k)m(ey)g(binding)f(syn)m(tax:)37 b Fd(DEL)p
Fo(,)24 b Fd(ESC)p Fo(,)f Fd(ESCAPE)p Fo(,)g Fd(LFD)p
-Fo(,)h Fd(NEW-)1110 2107 y(LINE)p Fo(,)30 b Fd(RET)p
+Fo(,)h Fd(NEW-)1110 2314 y(LINE)p Fo(,)30 b Fd(RET)p
Fo(,)g Fd(RETURN)p Fo(,)h Fd(R)m(UBOUT)p Fo(,)g Fd(SP)-8
b(A)m(CE)p Fo(,)30 b Fd(SPC)p Fo(,)g(and)f Fd(T)-8 b(AB)p
-Fo(.)630 2271 y Fn(")p Fd(k)m(eyseq)r Fn(")p Fo(:)41
-b Fd(function-name)36 b Fo(or)30 b Fd(macro)1110 2381
+Fo(.)630 2474 y Fn(")p Fd(k)m(eyseq)r Fn(")p Fo(:)41
+b Fd(function-name)36 b Fo(or)30 b Fd(macro)1110 2583
y(k)m(eyseq)k Fo(di\013ers)d(from)f Fd(k)m(eyname)37
b Fo(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f(denoting)g(an)g(en-)1110
-2491 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
-(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 2600
+2693 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)f(sp)s(eci\014ed,)h(b)m
+(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110 2803
y(double)29 b(quotes.)41 b(Some)29 b Fh(gnu)h Fo(Emacs)f(st)m(yle)i(k)m
-(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 2710
+(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110 2912
y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s(ecial)h(c)m
-(haracter)g(names)f(are)g(not)1110 2819 y(recognized.)1350
-2956 y Fn("\\C-u":)46 b(universal-argument)1350 3066
-y("\\C-x\\C-r":)f(re-read-init-file)1350 3176 y("\\e[11~":)g("Function)
-h(Key)g(1")1110 3313 y Fo(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+(haracter)g(names)f(are)g(not)1110 3022 y(recognized.)1350
+3157 y Fn("\\C-u":)46 b(universal-argument)1350 3266
+y("\\C-x\\C-r":)f(re-read-init-file)1350 3376 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 3511 y Fo(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
b Fg(C-u)64 b Fo(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
-3422 y Fn(universal-argument)39 b Fo(\(just)k(as)h(it)g(w)m(as)g(in)g
-(the)f(\014rst)g(example\),)49 b(`)p Fg(C-x)1110 3532
+3620 y Fn(universal-argument)39 b Fo(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fg(C-x)1110 3730
y(C-r)p Fo(')41 b(is)g(b)s(ound)e(to)j(the)f(function)g
-Fn(re-read-init-file)p Fo(,)e(and)i(`)3462 3529 y Ff(h)p
-3486 3476 139 4 v 3486 3532 a Fe(ESC)p 3486 3547 V 3620
-3529 a Ff(i)31 b(h)p 3705 3476 20 4 v 3705 3532 a Fe([)p
-3705 3548 V 3720 3529 a Ff(i)1110 3638 y(h)p 1134 3585
-36 4 v 1134 3641 a Fe(1)p 1134 3657 V 1165 3638 a Ff(i)f(h)p
-1250 3585 V 1250 3641 a Fe(1)p 1250 3657 V 1281 3638
-a Ff(i)g(h)p 1365 3585 48 4 v 1365 3641 a Fn(~)p 1365
-3657 V 1409 3638 a Ff(i)1438 3641 y Fo(')h(is)f(b)s(ound)f(to)i(insert)
+Fn(re-read-init-file)p Fo(,)e(and)i(`)3462 3727 y Ff(h)p
+3486 3674 139 4 v 3486 3730 a Fe(ESC)p 3486 3745 V 3620
+3727 a Ff(i)31 b(h)p 3705 3674 20 4 v 3705 3730 a Fe([)p
+3705 3746 V 3720 3727 a Ff(i)1110 3836 y(h)p 1134 3783
+36 4 v 1134 3839 a Fe(1)p 1134 3855 V 1165 3836 a Ff(i)f(h)p
+1250 3783 V 1250 3839 a Fe(1)p 1250 3855 V 1281 3836
+a Ff(i)g(h)p 1365 3783 48 4 v 1365 3839 a Fn(~)p 1365
+3855 V 1409 3836 a Ff(i)1438 3839 y Fo(')h(is)f(b)s(ound)f(to)i(insert)
f(the)h(text)g(`)p Fn(Function)d(Key)i(1)p Fo('.)630
-3806 y(The)f(follo)m(wing)i Fh(gnu)f Fo(Emacs)g(st)m(yle)h(escap)s(e)f
+4000 y(The)f(follo)m(wing)i Fh(gnu)f Fo(Emacs)g(st)m(yle)h(escap)s(e)f
(sequences)g(are)g(a)m(v)-5 b(ailable)32 b(when)d(sp)s(ecifying)630
-3915 y(k)m(ey)i(sequences:)630 4080 y Fg(\\C-)336 b Fo(con)m(trol)32
-b(pre\014x)630 4244 y Fg(\\M-)336 b Fo(meta)31 b(pre\014x)630
-4408 y Fg(\\e)384 b Fo(an)30 b(escap)s(e)h(c)m(haracter)630
-4573 y Fg(\\\\)384 b Fo(bac)m(kslash)630 4737 y Fg(\\)p
-Fn(")1110 4734 y Ff(h)p 1134 4681 V 1134 4737 a Fn(")p
-1134 4753 V 1178 4734 a Ff(i)1208 4737 y Fo(,)30 b(a)h(double)f
-(quotation)h(mark)630 4902 y Fg(\\')1110 4899 y Ff(h)p
-1134 4846 20 4 v 1134 4902 a Fe(')p 1134 4917 V 1150
-4899 a Ff(i)1179 4902 y Fo(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
-630 5066 y(In)d(addition)h(to)g(the)g Fh(gnu)f Fo(Emacs)h(st)m(yle)h
+4109 y(k)m(ey)i(sequences:)630 4269 y Fg(\\C-)336 b Fo(con)m(trol)32
+b(pre\014x)630 4430 y Fg(\\M-)336 b Fo(meta)31 b(pre\014x)630
+4590 y Fg(\\e)384 b Fo(an)30 b(escap)s(e)h(c)m(haracter)630
+4750 y Fg(\\\\)384 b Fo(bac)m(kslash)630 4910 y Fg(\\)p
+Fn(")1110 4907 y Ff(h)p 1134 4854 V 1134 4910 a Fn(")p
+1134 4925 V 1178 4907 a Ff(i)1208 4910 y Fo(,)30 b(a)h(double)f
+(quotation)h(mark)630 5070 y Fg(\\')1110 5067 y Ff(h)p
+1134 5014 20 4 v 1134 5070 a Fe(')p 1134 5086 V 1150
+5067 a Ff(i)1179 5070 y Fo(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe)
+630 5230 y(In)d(addition)h(to)g(the)g Fh(gnu)f Fo(Emacs)h(st)m(yle)h
(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
-5176 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 5340
-y Fn(\\a)384 b Fo(alert)31 b(\(b)s(ell\))p eop end
+5340 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)p eop end
%%Page: 9 13
TeXDict begin 9 12 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(9)630 299 y Fn(\\b)384
-b Fo(bac)m(kspace)630 455 y Fn(\\d)g Fo(delete)630 612
-y Fn(\\f)g Fo(form)30 b(feed)630 768 y Fn(\\n)384 b Fo(newline)630
-925 y Fn(\\r)g Fo(carriage)32 b(return)630 1081 y Fn(\\t)384
-b Fo(horizon)m(tal)32 b(tab)630 1238 y Fn(\\v)384 b Fo(v)m(ertical)32
-b(tab)630 1394 y Fn(\\)p Fg(nnn)288 b Fo(the)35 b(eigh)m(t-bit)h(c)m
-(haracter)g(whose)e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5
-b(alue)35 b Fd(nnn)e Fo(\(one)i(to)1110 1504 y(three)c(digits\))630
-1661 y Fn(\\x)p Fg(HH)288 b Fo(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
+b(Command)29 b(Line)i(Editing)2153 b(9)630 299 y Fn(\\a)384
+b Fo(alert)31 b(\(b)s(ell\))630 453 y Fn(\\b)384 b Fo(bac)m(kspace)630
+606 y Fn(\\d)g Fo(delete)630 760 y Fn(\\f)g Fo(form)30
+b(feed)630 914 y Fn(\\n)384 b Fo(newline)630 1067 y Fn(\\r)g
+Fo(carriage)32 b(return)630 1221 y Fn(\\t)384 b Fo(horizon)m(tal)32
+b(tab)630 1375 y Fn(\\v)384 b Fo(v)m(ertical)32 b(tab)630
+1528 y Fn(\\)p Fg(nnn)288 b Fo(the)35 b(eigh)m(t-bit)h(c)m(haracter)g
+(whose)e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5
+b(alue)35 b Fd(nnn)e Fo(\(one)i(to)1110 1638 y(three)c(digits\))630
+1791 y Fn(\\x)p Fg(HH)288 b Fo(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
-b(alue)40 b Fd(HH)1110 1770 y Fo(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
-(digits\))630 1927 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
+b(alue)40 b Fd(HH)1110 1901 y Fo(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 2055 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
(macro,)i(single)e(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)
-630 2036 y(indicate)23 b(a)e(macro)h(de\014nition.)38
+630 2164 y(indicate)23 b(a)e(macro)h(de\014nition.)38
b(Unquoted)21 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f
-(name.)38 b(In)630 2146 y(the)22 b(macro)f(b)s(o)s(dy)-8
+(name.)38 b(In)630 2274 y(the)22 b(macro)f(b)s(o)s(dy)-8
b(,)23 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m
-(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2255 y(will)j(quote)h(an)m
+(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2383 y(will)j(quote)h(an)m
(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
b(`)p Fn(")p Fo(')h(and)g(`)p Fn(')p Fo('.)69 b(F)-8
-b(or)630 2365 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
+b(or)630 2493 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
(mak)m(e)h(`)p Fg(C-x)j Fn(\\)p Fo(')c(insert)f(a)h(single)h(`)p
-Fn(\\)p Fo(')f(in)m(to)g(the)g(line:)870 2498 y Fn("\\C-x\\\\":)45
-b("\\\\")150 2718 y Fc(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)
-275 2961 y Fo(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
+Fn(\\)p Fo(')f(in)m(to)g(the)g(line:)870 2625 y Fn("\\C-x\\\\":)45
+b("\\\\")150 2840 y Fc(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+275 3081 y Fo(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d
(in)g(spirit)g(to)h(the)g(conditional)h(compilation)g(features)150
-3070 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
+3191 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f
(bindings)e(and)h(v)-5 b(ariable)35 b(settings)h(to)f(b)s(e)f(p)s
-(erformed)f(as)150 3180 y(the)e(result)f(of)g(tests.)42
+(erformed)f(as)150 3301 y(the)e(result)f(of)g(tests.)42
b(There)30 b(are)h(four)e(parser)h(directiv)m(es)i(used.)150
-3336 y Fn($if)336 b Fo(The)31 b Fn($if)f Fo(construct)i(allo)m(ws)h
+3454 y Fn($if)336 b Fo(The)31 b Fn($if)f Fo(construct)i(allo)m(ws)h
(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
-(the)630 3446 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
+(the)630 3564 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
-630 3555 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
+630 3673 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
(haracters)i(are)f(required)e(to)i(isolate)i(it.)630
-3712 y Fn(mode)288 b Fo(The)20 b Fn(mode=)g Fo(form)g(of)h(the)g
+3827 y Fn(mode)288 b Fo(The)20 b Fn(mode=)g Fo(form)g(of)h(the)g
Fn($if)f Fo(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline)
-1110 3821 y(is)29 b(in)h Fn(emacs)e Fo(or)h Fn(vi)g Fo(mo)s(de.)40
+1110 3937 y(is)29 b(in)h Fn(emacs)e Fo(or)h Fn(vi)g Fo(mo)s(de.)40
b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
-3931 y(`)p Fn(set)h(keymap)p Fo(')c(command,)i(for)f(instance,)i(to)f
-(set)g(bindings)f(in)g(the)h Fn(emacs-)1110 4041 y(standard)23
+4046 y(`)p Fn(set)h(keymap)p Fo(')c(command,)i(for)f(instance,)i(to)f
+(set)g(bindings)f(in)g(the)h Fn(emacs-)1110 4156 y(standard)23
b Fo(and)h Fn(emacs-ctlx)f Fo(k)m(eymaps)i(only)g(if)g(Readline)h(is)f
-(starting)h(out)1110 4150 y(in)k Fn(emacs)f Fo(mo)s(de.)630
-4307 y Fn(term)288 b Fo(The)26 b Fn(term=)g Fo(form)g(ma)m(y)i(b)s(e)e
+(starting)h(out)1110 4266 y(in)k Fn(emacs)f Fo(mo)s(de.)630
+4419 y Fn(term)288 b Fo(The)26 b Fn(term=)g Fo(form)g(ma)m(y)i(b)s(e)e
(used)g(to)i(include)f(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110
-4416 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
-(output)g(b)m(y)g(the)g(terminal's)1110 4526 y(function)24
+4529 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
+(output)g(b)m(y)g(the)g(terminal's)1110 4638 y(function)24
b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g
-(the)g(`)p Fn(=)p Fo(')g(is)g(tested)h(against)1110 4636
+(the)g(`)p Fn(=)p Fo(')g(is)g(tested)h(against)1110 4748
y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s
-(ortion)e(of)h(the)g(terminal)1110 4745 y(name)k(b)s(efore)f(the)g
+(ortion)e(of)h(the)g(terminal)1110 4858 y(name)k(b)s(efore)f(the)g
(\014rst)g(`)p Fn(-)p Fo('.)50 b(This)33 b(allo)m(ws)i
Fn(sun)e Fo(to)h(matc)m(h)g(b)s(oth)f Fn(sun)g Fo(and)1110
-4855 y Fn(sun-cmd)p Fo(,)c(for)h(instance.)630 5011 y
-Fn(application)1110 5121 y Fo(The)21 b Fd(application)j
+4967 y Fn(sun-cmd)p Fo(,)c(for)h(instance.)630 5121 y
+Fn(application)1110 5230 y Fo(The)21 b Fd(application)j
Fo(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 5230 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
-(Readline)g(library)g(sets)g(the)g Fd(application)1110
-5340 y(name)p Fo(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
-(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)p
-eop end
+(set-)1110 5340 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(Readline)g(library)g(sets)g(the)g Fd(application)p eop
+end
%%Page: 10 14
TeXDict begin 10 13 bop 150 -116 a Fo(10)2600 b(GNU)31
-b(Readline)g(Library)1110 299 y(bind)h(k)m(ey)h(sequences)g(to)h
-(functions)e(useful)g(for)h(a)g(sp)s(eci\014c)f(program.)48
-b(F)-8 b(or)1110 408 y(instance,)35 b(the)e(follo)m(wing)h(command)f
-(adds)f(a)i(k)m(ey)f(sequence)h(that)f(quotes)1110 518
+b(Readline)g(Library)1110 299 y Fd(name)p Fo(,)25 b(and)e(y)m(ou)g(can)
+h(test)g(for)f(a)g(particular)h(v)-5 b(alue.)39 b(This)22
+b(could)h(b)s(e)g(used)f(to)1110 408 y(bind)32 b(k)m(ey)h(sequences)g
+(to)h(functions)e(useful)g(for)h(a)g(sp)s(eci\014c)f(program.)48
+b(F)-8 b(or)1110 518 y(instance,)35 b(the)e(follo)m(wing)h(command)f
+(adds)f(a)i(k)m(ey)f(sequence)h(that)f(quotes)1110 628
y(the)e(curren)m(t)f(or)g(previous)g(w)m(ord)g(in)g(Bash:)1350
-653 y Fn($if)47 b(Bash)1350 762 y(#)g(Quote)g(the)g(current)f(or)h
-(previous)e(word)1350 872 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350
-981 y($endif)150 1141 y($endif)192 b Fo(This)29 b(command,)i(as)f(seen)
-h(in)f(the)g(previous)g(example,)h(terminates)g(an)g
-Fn($if)e Fo(command.)150 1300 y Fn($else)240 b Fo(Commands)29
+762 y Fn($if)47 b(Bash)1350 872 y(#)g(Quote)g(the)g(current)f(or)h
+(previous)e(word)1350 981 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350
+1091 y($endif)150 1250 y($endif)192 b Fo(This)29 b(command,)i(as)f
+(seen)h(in)f(the)g(previous)g(example,)h(terminates)g(an)g
+Fn($if)e Fo(command.)150 1410 y Fn($else)240 b Fo(Commands)29
b(in)h(this)h(branc)m(h)e(of)i(the)f Fn($if)g Fo(directiv)m(e)i(are)f
-(executed)g(if)f(the)h(test)g(fails.)150 1460 y Fn($include)96
+(executed)g(if)f(the)h(test)g(fails.)150 1569 y Fn($include)96
b Fo(This)43 b(directiv)m(e)i(tak)m(es)g(a)e(single)i(\014lename)e(as)h
-(an)f(argumen)m(t)h(and)f(reads)g(commands)630 1569 y(and)38
+(an)f(argumen)m(t)h(and)f(reads)g(commands)630 1679 y(and)38
b(bindings)f(from)h(that)i(\014le.)65 b(F)-8 b(or)39
b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e(from)630
-1679 y(`)p Fn(/etc/inputrc)p Fo(':)870 1813 y Fn($include)46
-b(/etc/inputrc)150 2037 y Fc(1.3.3)63 b(Sample)41 b(Init)g(File)275
-2281 y Fo(Here)31 b(is)f(an)g(example)i(of)e(an)g Fd(inputrc)35
+1788 y(`)p Fn(/etc/inputrc)p Fo(':)870 1923 y Fn($include)46
+b(/etc/inputrc)150 2147 y Fc(1.3.3)63 b(Sample)41 b(Init)g(File)275
+2391 y Fo(Here)31 b(is)f(an)g(example)i(of)e(an)g Fd(inputrc)35
b Fo(\014le.)42 b(This)29 b(illustrates)j(k)m(ey)f(binding,)f(v)-5
-b(ariable)31 b(assignmen)m(t,)150 2391 y(and)f(conditional)h(syn)m
+b(ariable)31 b(assignmen)m(t,)150 2501 y(and)f(conditional)h(syn)m
(tax.)p eop end
%%Page: 11 15
TeXDict begin 11 14 bop 150 -116 a Fo(Chapter)30 b(1:)41
diff --git a/doc/rluserman.texi b/doc/rluserman.texi
index db80b31..086aa83 100644
--- a/doc/rluserman.texi
+++ b/doc/rluserman.texi
@@ -14,7 +14,7 @@ This manual describes the end user interface of the GNU Readline Library
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988-2005 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -22,7 +22,7 @@ are preserved on all copies.
@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license is
diff --git a/doc/version.texi b/doc/version.texi
index 99816bf..654e837 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,10 +1,10 @@
@ignore
-Copyright (C) 1988-2005 Free Software Foundation, Inc.
+Copyright (C) 1988-2006 Free Software Foundation, Inc.
@end ignore
-@set EDITION 5.1-beta1
-@set VERSION 5.1-beta1
-@set UPDATED 11 November 2005
-@set UPDATED-MONTH November 2005
+@set EDITION 5.2
+@set VERSION 5.2
+@set UPDATED 26 April 2006
+@set UPDATED-MONTH April 2006
-@set LASTCHANGE Fri Nov 11 19:50:51 EST 2005
+@set LASTCHANGE Wed Apr 26 09:22:57 EDT 2006
diff --git a/examples/excallback.c b/examples/excallback.c
index 3d4bb18..385492b 100644
--- a/examples/excallback.c
+++ b/examples/excallback.c
@@ -32,6 +32,9 @@ Let me know what you think.
Jeff
*/
+/*
+Copyright (C) 1999 Jeff Solomon
+*/
#if defined (HAVE_CONFIG_H)
#include <config.h>
diff --git a/examples/rlfe/Makefile.in b/examples/rlfe/Makefile.in
index 4653dec..70aa6b3 100644
--- a/examples/rlfe/Makefile.in
+++ b/examples/rlfe/Makefile.in
@@ -25,7 +25,7 @@ CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
#LDFLAGS = -L$(READLINE_DIR)
LDFLAGS = @LDFLAGS@
-LIBS = -lreadline -lhistory -lncurses
+LIBS = -lreadline -lhistory -lncurses @LIBS@
CPP=@CPP@
CPP_DEPEND=$(CC) -MM
diff --git a/histexpand.c b/histexpand.c
index 6847014..f46c0b2 100644
--- a/histexpand.c
+++ b/histexpand.c
@@ -56,8 +56,6 @@
typedef int _hist_search_func_t PARAMS((const char *, int));
-extern int rl_byte_oriented; /* declared in mbutil.c */
-
static char error_pointer;
static char *subst_lhs;
@@ -564,12 +562,12 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- int c, l;
+ int ch, l;
l = _rl_find_prev_mbchar (string, i, MB_FIND_ANY);
- c = string[l];
+ ch = string[l];
/* XXX - original patch had i - 1 ??? If i == 0 it would fail. */
- if (i && (c == '\'' || c == '"'))
- quoted_search_delimiter = c;
+ if (i && (ch == '\'' || ch == '"'))
+ quoted_search_delimiter = ch;
}
else
#endif /* HANDLE_MULTIBYTE */
@@ -1430,6 +1428,8 @@ history_tokenize_word (string, ind)
{
if (peek == '<' && string[i + 2] == '-')
i++;
+ else if (peek == '<' && string[i + 2] == '<')
+ i++;
i += 2;
return i;
}
diff --git a/histfile.c b/histfile.c
index 717bbee..2f051a3 100644
--- a/histfile.c
+++ b/histfile.c
@@ -256,7 +256,11 @@ read_history_range (filename, from, to)
for (line_end = line_start; line_end < bufend; line_end++)
if (*line_end == '\n')
{
- *line_end = '\0';
+ /* Change to allow Windows-like \r\n end of line delimiter. */
+ if (line_end > line_start && line_end[-1] == '\r')
+ line_end[-1] = '\0';
+ else
+ *line_end = '\0';
if (*line_start)
{
diff --git a/history.c b/history.c
index a538f91..1ccf4db 100644
--- a/history.c
+++ b/history.c
@@ -209,6 +209,22 @@ history_get (offset)
: the_history[local_index];
}
+HIST_ENTRY *
+alloc_history_entry (string, ts)
+ char *string;
+ char *ts;
+{
+ HIST_ENTRY *temp;
+
+ temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
+
+ temp->line = string ? savestring (string) : string;
+ temp->data = (char *)NULL;
+ temp->timestamp = ts;
+
+ return temp;
+}
+
time_t
history_get_time (hist)
HIST_ENTRY *hist;
@@ -290,11 +306,7 @@ add_history (string)
}
}
- temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
- temp->line = savestring (string);
- temp->data = (char *)NULL;
-
- temp->timestamp = hist_inittime ();
+ temp = alloc_history_entry (string, hist_inittime ());
the_history[history_length] = (HIST_ENTRY *)NULL;
the_history[history_length - 1] = temp;
@@ -328,6 +340,26 @@ free_history_entry (hist)
free (hist);
return (x);
}
+
+HIST_ENTRY *
+copy_history_entry (hist)
+ HIST_ENTRY *hist;
+{
+ HIST_ENTRY *ret;
+ char *ts;
+
+ if (hist == 0)
+ return hist;
+
+ ret = alloc_history_entry (hist->line, (char *)NULL);
+
+ ts = hist->timestamp ? savestring (hist->timestamp) : hist->timestamp;
+ ret->timestamp = ts;
+
+ ret->data = hist->data;
+
+ return ret;
+}
/* Make the history entry at WHICH have LINE and DATA. This returns
the old entry so you can dispose of the data. In the case of an
@@ -354,6 +386,51 @@ replace_history_entry (which, line, data)
return (old_value);
}
+/* Replace the DATA in the specified history entries, replacing OLD with
+ NEW. WHICH says which one(s) to replace: WHICH == -1 means to replace
+ all of the history entries where entry->data == OLD; WHICH == -2 means
+ to replace the `newest' history entry where entry->data == OLD; and
+ WHICH >= 0 means to replace that particular history entry's data, as
+ long as it matches OLD. */
+void
+replace_history_data (which,old, new)
+ int which;
+ histdata_t *old, *new;
+{
+ HIST_ENTRY *entry;
+ register int i, last;
+
+ if (which < -2 || which >= history_length || history_length == 0 || the_history == 0)
+ return;
+
+ if (which >= 0)
+ {
+ entry = the_history[which];
+ if (entry && entry->data == old)
+ entry->data = new;
+ return;
+ }
+
+ last = -1;
+ for (i = 0; i < history_length; i++)
+ {
+ entry = the_history[i];
+ if (entry == 0)
+ continue;
+ if (entry->data == old)
+ {
+ last = i;
+ if (which == -1)
+ entry->data = new;
+ }
+ }
+ if (which == -2 && last >= 0)
+ {
+ entry = the_history[last];
+ entry->data = new; /* XXX - we don't check entry->old */
+ }
+}
+
/* Remove history element WHICH from the history. The removed
element is returned to you so you can free the line, data,
and containing structure. */
diff --git a/input.c b/input.c
index 0ec507e..da5d771 100644
--- a/input.c
+++ b/input.c
@@ -179,6 +179,7 @@ rl_gather_tyi ()
struct timeval timeout;
#endif
+ chars_avail = 0;
tty = fileno (rl_instream);
#if defined (HAVE_SELECT)
@@ -220,6 +221,13 @@ rl_gather_tyi ()
}
#endif /* O_NDELAY */
+#if defined (__MINGW32__)
+ /* Use getch/_kbhit to check for available console input, in the same way
+ that we read it normally. */
+ chars_avail = isatty (tty) ? _kbhit () : 0;
+ result = 0;
+#endif
+
/* If there's nothing available, don't waste time trying to read
something. */
if (chars_avail <= 0)
@@ -263,7 +271,7 @@ rl_set_keyboard_input_timeout (u)
int o;
o = _keyboard_input_timeout;
- if (u > 0)
+ if (u >= 0)
_keyboard_input_timeout = u;
return (o);
}
@@ -305,6 +313,11 @@ _rl_input_available ()
#endif
+#if defined (__MINGW32__)
+ if (isatty (tty))
+ return (_kbhit ());
+#endif
+
return 0;
}
@@ -489,7 +502,7 @@ rl_getc (stream)
this is simply an interrupted system call to read ().
Otherwise, some error ocurred, also signifying EOF. */
if (errno != EINTR)
- return (EOF);
+ return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
}
}
@@ -537,21 +550,21 @@ _rl_read_mbchar (mbchar, size)
}
/* Read a multibyte-character string whose first character is FIRST into
- the buffer MB of length MBLEN. Returns the last character read, which
+ the buffer MB of length MLEN. Returns the last character read, which
may be FIRST. Used by the search functions, among others. Very similar
to _rl_read_mbchar. */
int
-_rl_read_mbstring (first, mb, mblen)
+_rl_read_mbstring (first, mb, mlen)
int first;
char *mb;
- int mblen;
+ int mlen;
{
int i, c;
mbstate_t ps;
c = first;
- memset (mb, 0, mblen);
- for (i = 0; i < mblen; i++)
+ memset (mb, 0, mlen);
+ for (i = 0; i < mlen; i++)
{
mb[i] = (char)c;
memset (&ps, 0, sizeof (mbstate_t));
diff --git a/isearch.c b/isearch.c
index d7d8520..9f67bfc 100644
--- a/isearch.c
+++ b/isearch.c
@@ -68,8 +68,8 @@ static void _rl_isearch_fini PARAMS((_rl_search_cxt *));
static int _rl_isearch_cleanup PARAMS((_rl_search_cxt *, int));
/* Last line found by the current incremental search, so we don't `find'
- identical lines many times in a row. */
-static char *prev_line_found;
+ identical lines many times in a row. Now part of isearch context. */
+/* static char *prev_line_found; */
/* Last search string and its length. */
static char *last_isearch_string;
diff --git a/kill.c b/kill.c
index 1d3254c..031ddf4 100644
--- a/kill.c
+++ b/kill.c
@@ -582,6 +582,7 @@ rl_yank_nth_arg_internal (count, ignore, history_skip)
if (!arg || !*arg)
{
rl_ding ();
+ FREE (arg);
return -1;
}
diff --git a/macro.c b/macro.c
index 2975bf1..00cd58d 100644
--- a/macro.c
+++ b/macro.c
@@ -113,7 +113,7 @@ _rl_next_macro_key ()
#if defined (READLINE_CALLBACKS)
c = rl_executing_macro[executing_macro_index++];
- if (RL_ISSTATE (RL_STATE_CALLBACK) && RL_ISSTATE (RL_STATE_READCMD) && rl_executing_macro[executing_macro_index] == 0)
+ if (RL_ISSTATE (RL_STATE_CALLBACK) && RL_ISSTATE (RL_STATE_READCMD|RL_STATE_MOREINPUT) && rl_executing_macro[executing_macro_index] == 0)
_rl_pop_executing_macro ();
return c;
#else
diff --git a/misc.c b/misc.c
index d455832..94ecb25 100644
--- a/misc.c
+++ b/misc.c
@@ -212,6 +212,8 @@ rl_digit_loop ()
if (r <= 0 || (RL_ISSTATE (RL_STATE_NUMERICARG) == 0))
break;
}
+
+ return r;
}
/* Create a default argument. */
diff --git a/readline.c b/readline.c
index 5eaaf47..c2b7400 100644
--- a/readline.c
+++ b/readline.c
@@ -49,6 +49,11 @@
#include <stdio.h>
#include "posixjmp.h"
+#include <errno.h>
+
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
/* System-specific feature definitions and include files. */
#include "rldefs.h"
@@ -479,6 +484,20 @@ readline_internal_charloop ()
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_READCMD);
+ /* look at input.c:rl_getc() for the circumstances under which this will
+ be returned; punt immediately on read error without converting it to
+ a newline. */
+ if (c == READERR)
+ {
+#if defined (READLINE_CALLBACKS)
+ RL_SETSTATE(RL_STATE_DONE);
+ return (rl_done = 1);
+#else
+ eof_found = 1;
+ break;
+#endif
+ }
+
/* EOF typed to a non-blank line is a <NL>. */
if (c == EOF && rl_end)
c = NEWLINE;
diff --git a/readline.h b/readline.h
index fade6d4..b71bf98 100644
--- a/readline.h
+++ b/readline.h
@@ -40,9 +40,9 @@ extern "C" {
#endif
/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0501 /* Readline 5.1 */
+#define RL_READLINE_VERSION 0x0502 /* Readline 5.2 */
#define RL_VERSION_MAJOR 5
-#define RL_VERSION_MINOR 1
+#define RL_VERSION_MINOR 2
/* Readline data structures. */
@@ -757,6 +757,10 @@ extern int rl_ignore_completion_duplicates;
completion character will be inserted as any other. */
extern int rl_inhibit_completion;
+/* Input error; can be returned by (*rl_getc_function) if readline is reading
+ a top-level command (RL_ISSTATE (RL_STATE_READCMD)). */
+#define READERR (-2)
+
/* Definitions available for use by readline clients. */
#define RL_PROMPT_START_IGNORE '\001'
#define RL_PROMPT_END_IGNORE '\002'
diff --git a/rlconf.h b/rlconf.h
index c651fd8..ff3929e 100644
--- a/rlconf.h
+++ b/rlconf.h
@@ -37,9 +37,12 @@
/* Ugly but working hack for binding prefix meta. */
#define PREFIX_META_HACK
-/* The final, last-ditch effort file name for an init file. */
+/* The next-to-last-ditch effort file name for a user-specific init file. */
#define DEFAULT_INPUTRC "~/.inputrc"
+/* The ultimate last-ditch filenname for an init file -- system-wide. */
+#define SYS_INPUTRC "/etc/inputrc"
+
/* If defined, expand tabs to spaces. */
#define DISPLAY_TABS
diff --git a/rlmbutil.h b/rlmbutil.h
index 11adacb..dd317e2 100644
--- a/rlmbutil.h
+++ b/rlmbutil.h
@@ -32,10 +32,19 @@
/* For platforms which support the ISO C amendement 1 functionality we
support user defined character classes. */
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
-#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H)
+#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H) && defined (HAVE_LOCALE_H)
# include <wchar.h>
# include <wctype.h>
-# if defined (HAVE_MBSRTOWCS) && defined (HAVE_MBRTOWC) && defined (HAVE_MBRLEN) && defined (HAVE_WCWIDTH)
+# if defined (HAVE_ISWCTYPE) && \
+ defined (HAVE_ISWLOWER) && \
+ defined (HAVE_ISWUPPER) && \
+ defined (HAVE_MBSRTOWCS) && \
+ defined (HAVE_MBRTOWC) && \
+ defined (HAVE_MBRLEN) && \
+ defined (HAVE_TOWLOWER) && \
+ defined (HAVE_TOWUPPER) && \
+ defined (HAVE_WCHAR_T) && \
+ defined (HAVE_WCWIDTH)
/* system is supposed to support XPG5 */
# define HANDLE_MULTIBYTE 1
# endif
diff --git a/rlprivate.h b/rlprivate.h
index 1c216ea..64aa7bd 100644
--- a/rlprivate.h
+++ b/rlprivate.h
@@ -309,6 +309,10 @@ extern int _rl_char_search_internal PARAMS((int, int, int));
#endif
extern int _rl_set_mark_at_pos PARAMS((int));
+/* undo.c */
+extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *));
+extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *));
+
/* util.c */
extern int _rl_abort_internal PARAMS((void));
extern char *_rl_strindex PARAMS((const char *, const char *));
@@ -404,6 +408,7 @@ extern char *_rl_term_up;
extern char *_rl_term_dc;
extern char *_rl_term_cr;
extern char *_rl_term_IC;
+extern char *_rl_term_forward_char;
extern int _rl_screenheight;
extern int _rl_screenwidth;
extern int _rl_screenchars;
diff --git a/rltty.c b/rltty.c
index 9a0326e..0a570f8 100644
--- a/rltty.c
+++ b/rltty.c
@@ -933,7 +933,6 @@ rltty_set_default_bindings (kmap)
#if !defined (NO_TTY_DRIVER)
TIOTYPE ttybuff;
int tty;
- static int called = 0;
tty = fileno (rl_instream);
diff --git a/search.c b/search.c
index 8013916..33cc4fc 100644
--- a/search.c
+++ b/search.c
@@ -70,7 +70,6 @@ static int rl_history_search_pos;
static char *history_search_string;
static int history_string_size;
-static UNDO_LIST *noninc_saved_undo_list;
static void make_history_line_current PARAMS((HIST_ENTRY *));
static int noninc_search_from_pos PARAMS((char *, int, int));
static int noninc_dosearch PARAMS((char *, int));
@@ -212,7 +211,7 @@ _rl_nsearch_init (dir, pchar)
rl_end = rl_point = 0;
p = _rl_make_prompt_for_search (pchar ? pchar : ':');
- rl_message (p, 0, 0);
+ rl_message ("%s", p, 0);
free (p);
RL_SETSTATE(RL_STATE_NSEARCH);
diff --git a/signals.c b/signals.c
index f344ed8..54f2a64 100644
--- a/signals.c
+++ b/signals.c
@@ -160,6 +160,7 @@ rl_signal_handler (sig)
rl_cleanup_after_signal ();
#if defined (HAVE_POSIX_SIGNALS)
+ sigemptyset (&set);
sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set);
sigdelset (&set, sig);
#else /* !HAVE_POSIX_SIGNALS */
@@ -288,9 +289,44 @@ rl_set_signals ()
{
sighandler_cxt dummy;
SigHandler *oh;
+#if defined (HAVE_POSIX_SIGNALS)
+ static int sigmask_set = 0;
+ static sigset_t bset, oset;
+#endif
+
+#if defined (HAVE_POSIX_SIGNALS)
+ if (rl_catch_signals && sigmask_set == 0)
+ {
+ sigemptyset (&bset);
+
+ sigaddset (&bset, SIGINT);
+ sigaddset (&bset, SIGINT);
+#if defined (SIGQUIT)
+ sigaddset (&bset, SIGQUIT);
+#endif
+#if defined (SIGALRM)
+ sigaddset (&bset, SIGALRM);
+#endif
+#if defined (SIGTSTP)
+ sigaddset (&bset, SIGTSTP);
+#endif
+#if defined (SIGTTIN)
+ sigaddset (&bset, SIGTTIN);
+#endif
+#if defined (SIGTTOU)
+ sigaddset (&bset, SIGTTOU);
+#endif
+ sigmask_set = 1;
+ }
+#endif /* HAVE_POSIX_SIGNALS */
if (rl_catch_signals && signals_set_flag == 0)
{
+#if defined (HAVE_POSIX_SIGNALS)
+ sigemptyset (&oset);
+ sigprocmask (SIG_BLOCK, &bset, &oset);
+#endif
+
rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
#if defined (SIGQUIT)
@@ -324,6 +360,10 @@ rl_set_signals ()
#endif /* SIGTTIN */
signals_set_flag = 1;
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
+#endif
}
#if defined (SIGWINCH)
@@ -390,8 +430,8 @@ rl_cleanup_after_signal ()
_rl_clean_up_for_exit ();
if (rl_deprep_term_function)
(*rl_deprep_term_function) ();
- rl_clear_signals ();
rl_clear_pending_input ();
+ rl_clear_signals ();
}
/* Reset the terminal and readline state after a signal handler returns. */
diff --git a/support/shlib-install b/support/shlib-install
index 2cd252a..790f53e 100755
--- a/support/shlib-install
+++ b/support/shlib-install
@@ -65,10 +65,11 @@ fi
# post-install/uninstall
# HP-UX and Darwin/MacOS X require that a shared library have execute permission
+# Linux does, too, and ldd warns about it
# Cygwin installs both a dll (which must go in $BINDIR) and an implicit
# link library (in $libdir)
case "$host_os" in
-hpux*|darwin*|macosx*)
+hpux*|darwin*|macosx*|linux*)
if [ -z "$uninstall" ]; then
chmod 555 ${INSTALLDIR}/${LIBNAME}
fi ;;
diff --git a/support/shobj-conf b/support/shobj-conf
index 0e306bc..ef7863a 100755
--- a/support/shobj-conf
+++ b/support/shobj-conf
@@ -142,6 +142,23 @@ freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
;;
# Darwin/MacOS X
+darwin8*)
+ SHOBJ_STATUS=supported
+ SHLIB_STATUS=supported
+
+ SHOBJ_CFLAGS='-fno-common'
+
+ SHOBJ_LD='MACOSX_DEPLOYMENT_TARGET=10.3 ${CC}'
+
+ SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
+ SHLIB_LIBSUFF='dylib'
+
+ SHOBJ_LDFLAGS='-undefined dynamic_lookup'
+ SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+
+ SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
+ ;;
+
darwin*|macosx*)
SHOBJ_STATUS=unsupported
SHLIB_STATUS=supported
diff --git a/terminal.c b/terminal.c
index cc61388..547f6f5 100644
--- a/terminal.c
+++ b/terminal.c
@@ -1,6 +1,6 @@
/* terminal.c -- controlling the terminal with termcap. */
-/* Copyright (C) 1996-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -66,10 +66,24 @@
#include "rlshell.h"
#include "xmalloc.h"
+#if defined (__MINGW32__)
+# include <windows.h>
+# include <wincon.h>
+
+static void _win_get_screensize PARAMS((int *, int *));
+#endif
+
+#if defined (__EMX__)
+static void _emx_get_screensize PARAMS((int *, int *));
+#endif
+
#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
-int rl_prefer_env_winsize;
+/* If the calling application sets this to a non-zero value, readline will
+ use the $LINES and $COLUMNS environment variables to set its idea of the
+ window size before interrogating the kernel. */
+int rl_prefer_env_winsize = 0;
/* **************************************************************** */
/* */
@@ -111,9 +125,7 @@ char *_rl_term_IC;
char *_rl_term_dc;
char *_rl_term_DC;
-#if defined (HACK_TERMCAP_MOTION)
char *_rl_term_forward_char;
-#endif /* HACK_TERMCAP_MOTION */
/* How to go up a line. */
char *_rl_term_up;
@@ -122,7 +134,7 @@ char *_rl_term_up;
static char *_rl_visible_bell;
/* Non-zero means the terminal can auto-wrap lines. */
-int _rl_term_autowrap;
+int _rl_term_autowrap = -1;
/* Non-zero means that this terminal has a meta key. */
static int term_has_meta;
@@ -184,6 +196,26 @@ _emx_get_screensize (swp, shp)
}
#endif
+#if defined (__MINGW32__)
+static void
+_win_get_screensize (swp, shp)
+ int *swp, *shp;
+{
+ HANDLE hConOut;
+ CONSOLE_SCREEN_BUFFER_INFO scr;
+
+ hConOut = GetStdHandle (STD_OUTPUT_HANDLE);
+ if (hConOut != INVALID_HANDLE_VALUE)
+ {
+ if (GetConsoleScreenBufferInfo (hConOut, &scr))
+ {
+ *swp = scr.dwSize.X;
+ *shp = scr.srWindow.Bottom - scr.srWindow.Top + 1;
+ }
+ }
+}
+#endif
+
/* Get readline's idea of the screen size. TTY is a file descriptor open
to the terminal. If IGNORE_ENV is true, we do not pay attention to the
values of $LINES and $COLUMNS. The tests for TERM_STRING_BUFFER being
@@ -208,7 +240,9 @@ _rl_get_screen_size (tty, ignore_env)
#endif /* TIOCGWINSZ */
#if defined (__EMX__)
- _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
+ _emx_get_screensize (&wc, &wr);
+#elif defined (__MINGW32__)
+ _win_get_screensize (&wc, &wr);
#endif
if (ignore_env || rl_prefer_env_winsize == 0)
@@ -274,6 +308,9 @@ void
_rl_set_screen_size (rows, cols)
int rows, cols;
{
+ if (_rl_term_autowrap == -1)
+ _rl_init_terminal_io (rl_terminal_name);
+
if (rows > 0)
_rl_screenheight = rows;
if (cols > 0)
@@ -355,9 +392,7 @@ static struct _tc_string tc_strings[] =
{ "le", &_rl_term_backspace },
{ "mm", &_rl_term_mm },
{ "mo", &_rl_term_mo },
-#if defined (HACK_TERMCAP_MOTION)
{ "nd", &_rl_term_forward_char },
-#endif
{ "pc", &_rl_term_pc },
{ "up", &_rl_term_up },
{ "vb", &_rl_visible_bell },
@@ -454,9 +489,7 @@ _rl_init_terminal_io (terminal_name)
_rl_term_ks = _rl_term_ke = _rl_term_at7 = (char *)NULL;
_rl_term_mm = _rl_term_mo = (char *)NULL;
_rl_term_ve = _rl_term_vs = (char *)NULL;
-#if defined (HACK_TERMCAP_MOTION)
- term_forward_char = (char *)NULL;
-#endif
+ _rl_term_forward_char = (char *)NULL;
_rl_terminal_can_insert = term_has_meta = 0;
/* Reasonable defaults for tgoto(). Readline currently only uses
diff --git a/text.c b/text.c
index bb87604..399a48c 100644
--- a/text.c
+++ b/text.c
@@ -1071,6 +1071,8 @@ int
rl_delete (count, key)
int count, key;
{
+ int xpoint;
+
if (count < 0)
return (_rl_rubout_char (-count, key));
@@ -1082,21 +1084,19 @@ rl_delete (count, key)
if (count > 1 || rl_explicit_arg)
{
- int orig_point = rl_point;
+ xpoint = rl_point;
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
rl_forward_char (count, key);
else
rl_forward_byte (count, key);
- rl_kill_text (orig_point, rl_point);
- rl_point = orig_point;
+ rl_kill_text (xpoint, rl_point);
+ rl_point = xpoint;
}
else
{
- int new_point;
-
- new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
- rl_delete_text (rl_point, new_point);
+ xpoint = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
+ rl_delete_text (rl_point, xpoint);
}
return 0;
}
@@ -1237,8 +1237,8 @@ rl_change_case (count, op)
#if defined (HANDLE_MULTIBYTE)
wchar_t wc, nwc;
char mb[MB_LEN_MAX+1];
- int mblen, p;
- mbstate_t ps;
+ int mlen;
+ mbstate_t mps;
#endif
start = rl_point;
@@ -1255,7 +1255,7 @@ rl_change_case (count, op)
SWAP (start, end);
#if defined (HANDLE_MULTIBYTE)
- memset (&ps, 0, sizeof (mbstate_t));
+ memset (&mps, 0, sizeof (mbstate_t));
#endif
/* We are going to modify some text, so let's prepare to undo it. */
@@ -1290,15 +1290,15 @@ rl_change_case (count, op)
#if defined (HANDLE_MULTIBYTE)
else
{
- mbrtowc (&wc, rl_line_buffer + start, end - start, &ps);
+ mbrtowc (&wc, rl_line_buffer + start, end - start, &mps);
nwc = (nop == UpCase) ? _rl_to_wupper (wc) : _rl_to_wlower (wc);
if (nwc != wc) /* just skip unchanged characters */
{
- mblen = wcrtomb (mb, nwc, &ps);
- if (mblen > 0)
- mb[mblen] = '\0';
+ mlen = wcrtomb (mb, nwc, &mps);
+ if (mlen > 0)
+ mb[mlen] = '\0';
/* Assume the same width */
- strncpy (rl_line_buffer + start, mb, mblen);
+ strncpy (rl_line_buffer + start, mb, mlen);
}
}
#endif
diff --git a/tilde.c b/tilde.c
index d757f7a..1b76c9f 100644
--- a/tilde.c
+++ b/tilde.c
@@ -404,17 +404,17 @@ tilde_expand_word (filename)
free (expansion);
}
}
- free (username);
/* If we don't have a failure hook, or if the failure hook did not
expand the tilde, return a copy of what we were passed. */
if (dirname == 0)
dirname = savestring (filename);
}
+#if defined (HAVE_GETPWENT)
else
- {
- free (username);
- dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
- }
+ dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
+#endif
+
+ free (username);
#if defined (HAVE_GETPWENT)
endpwent ();
#endif
diff --git a/undo.c b/undo.c
index fedfa12..9d9bd25 100644
--- a/undo.c
+++ b/undo.c
@@ -1,7 +1,7 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1987, 1989, 1992, 2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -50,6 +50,8 @@
#include "rlprivate.h"
#include "xmalloc.h"
+extern void replace_history_data PARAMS((int, histdata_t *, histdata_t *));
+
/* Non-zero tells rl_delete_text and rl_insert_text to not add to
the undo list. */
int _rl_doing_an_undo = 0;
@@ -66,19 +68,35 @@ UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL;
/* */
/* **************************************************************** */
-/* Remember how to undo something. Concatenate some undos if that
- seems right. */
-void
-rl_add_undo (what, start, end, text)
+static UNDO_LIST *
+alloc_undo_entry (what, start, end, text)
enum undo_code what;
int start, end;
char *text;
{
- UNDO_LIST *temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST));
+ UNDO_LIST *temp;
+
+ temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST));
temp->what = what;
temp->start = start;
temp->end = end;
temp->text = text;
+
+ temp->next = (UNDO_LIST *)NULL;
+ return temp;
+}
+
+/* Remember how to undo something. Concatenate some undos if that
+ seems right. */
+void
+rl_add_undo (what, start, end, text)
+ enum undo_code what;
+ int start, end;
+ char *text;
+{
+ UNDO_LIST *temp;
+
+ temp = alloc_undo_entry (what, start, end, text);
temp->next = rl_undo_list;
rl_undo_list = temp;
}
@@ -87,9 +105,12 @@ rl_add_undo (what, start, end, text)
void
rl_free_undo_list ()
{
+ UNDO_LIST *release, *orig_list;
+
+ orig_list = rl_undo_list;
while (rl_undo_list)
{
- UNDO_LIST *release = rl_undo_list;
+ release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
if (release->what == UNDO_DELETE)
@@ -98,6 +119,43 @@ rl_free_undo_list ()
free (release);
}
rl_undo_list = (UNDO_LIST *)NULL;
+ replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL);
+}
+
+UNDO_LIST *
+_rl_copy_undo_entry (entry)
+ UNDO_LIST *entry;
+{
+ UNDO_LIST *new;
+
+ new = alloc_undo_entry (entry->what, entry->start, entry->end, (char *)NULL);
+ new->text = entry->text ? savestring (entry->text) : 0;
+ return new;
+}
+
+UNDO_LIST *
+_rl_copy_undo_list (head)
+ UNDO_LIST *head;
+{
+ UNDO_LIST *list, *new, *roving, *c;
+
+ list = head;
+ new = 0;
+ while (list)
+ {
+ c = _rl_copy_undo_entry (list);
+ if (new == 0)
+ roving = new = c;
+ else
+ {
+ roving->next = c;
+ roving = roving->next;
+ }
+ list = list->next;
+ }
+
+ roving->next = 0;
+ return new;
}
/* Undo the next thing in the list. Return 0 if there
@@ -161,6 +219,8 @@ rl_do_undo ()
release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
+ replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
+
free (release);
}
while (waiting_for_begin);
diff --git a/vi_mode.c b/vi_mode.c
index ac5fd74..d0b7e33 100644
--- a/vi_mode.c
+++ b/vi_mode.c
@@ -109,12 +109,16 @@ static int vi_mark_chars['z' - 'a' + 1];
static void _rl_vi_stuff_insert PARAMS((int));
static void _rl_vi_save_insert PARAMS((UNDO_LIST *));
+static 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 void _rl_vi_append_forward PARAMS((int));
+
static int _rl_vi_callback_getchar PARAMS((char *, int));
#if defined (READLINE_CALLBACKS)
@@ -205,7 +209,16 @@ rl_vi_redo (count, c)
_rl_vi_stuff_insert (count);
/* And back up point over the last character inserted. */
if (rl_point > 0)
- rl_point--;
+ _rl_vi_backup ();
+ }
+ /* Ditto for redoing an insert with `a', but move forward a character first
+ like the `a' command does. */
+ else if (_rl_vi_last_command == 'a' && vi_insert_buffer && *vi_insert_buffer)
+ {
+ _rl_vi_append_forward ('a');
+ _rl_vi_stuff_insert (count);
+ if (rl_point > 0)
+ _rl_vi_backup ();
}
else
r = _rl_dispatch (_rl_vi_last_command, _rl_keymap);
@@ -575,23 +588,32 @@ rl_vi_insert_beg (count, key)
return (0);
}
-int
-rl_vi_append_mode (count, key)
- int count, key;
+static void
+_rl_vi_append_forward (key)
+ int key;
{
+ int point;
+
if (rl_point < rl_end)
{
if (MB_CUR_MAX == 1 || rl_byte_oriented)
rl_point++;
else
{
- int point = rl_point;
+ point = rl_point;
rl_forward_char (1, key);
if (point == rl_point)
rl_point = rl_end;
}
}
- rl_vi_insertion_mode (1, key);
+}
+
+int
+rl_vi_append_mode (count, key)
+ int count, key;
+{
+ _rl_vi_append_forward (key);
+ rl_vi_start_inserting (key, 1, rl_arg_sign);
return (0);
}
@@ -631,7 +653,7 @@ _rl_vi_save_insert (up)
{
int len, start, end;
- if (up == 0)
+ if (up == 0 || up->what != UNDO_INSERT)
{
if (vi_insert_buffer_size >= 1)
vi_insert_buffer[0] = '\0';
@@ -716,7 +738,7 @@ _rl_vi_change_mbchar_case (count)
{
wchar_t wc;
char mb[MB_LEN_MAX+1];
- int mblen, p;
+ int mlen, p;
mbstate_t ps;
memset (&ps, 0, sizeof (mbstate_t));
@@ -740,9 +762,9 @@ _rl_vi_change_mbchar_case (count)
if (wc)
{
p = rl_point;
- mblen = wcrtomb (mb, wc, &ps);
- if (mblen >= 0)
- mb[mblen] = '\0';
+ mlen = wcrtomb (mb, wc, &ps);
+ if (mlen >= 0)
+ mb[mlen] = '\0';
rl_begin_undo_group ();
rl_vi_delete (1, 0);
if (rl_point < p) /* Did we retreat at EOL? */
@@ -820,6 +842,15 @@ rl_vi_put (count, key)
return (0);
}
+static void
+_rl_vi_backup ()
+{
+ 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--;
+}
+
int
rl_vi_check ()
{
@@ -1111,7 +1142,7 @@ int
rl_vi_rubout (count, key)
int count, key;
{
- int p, opoint;
+ int opoint;
if (count < 0)
return (rl_vi_delete (-count, key));
@@ -1426,9 +1457,9 @@ _rl_vi_change_char (count, c, mb)
}
static int
-_rl_vi_callback_getchar (mb, mblen)
+_rl_vi_callback_getchar (mb, mlen)
char *mb;
- int mblen;
+ int mlen;
{
int c;
@@ -1438,7 +1469,7 @@ _rl_vi_callback_getchar (mb, mblen)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- c = _rl_read_mbstring (c, mb, mblen);
+ c = _rl_read_mbstring (c, mb, mlen);
#endif
return c;