PROMPT_ENDING_INDEX (worth checking) to compensate. Bug reported
by Egmont Koblinger <egmont@uhulinux.hu>
+ 2/8
+ ---
+lib/readline/terminal.c
+ - call _emx_get_screensize with wr, wc like ioctl code for consistency
+ - new function, _win_get_screensize, gets screen dimensions using
+ standard Windows API for mingw32 (code from Denis Pilat)
+ - call _win_get_screensize from _rl_get_screen_size on mingw32
+
+lib/readline/rlconf.h
+ - define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc
+ filename
+
+support/shobj-conf
+ - changes to make loadable builtins work on MacOS X 10.[34]
+
+builtins/pushd.def
+ - changes to make it work as a loadable builtin compiled with gcc4
+
+ 2/9
+ ---
+lib/readline/bind.c
+ - add SYS_INPUTRC as last-ditch default (if DEFAULT_INPUTRC does not
+ exist or can't be read) in rl_read_init_file
+
+lib/readline/doc/rluser.texi
+ - add description of /etc/inputrc as ultimate default startup file
+
+ 2/10
+ ----
+lib/readline/bind.c
+ - fix problem with rl_function_of_keyseq that returns a non-keymap
+ bound to a portion of the passed key sequence without processing
+ the entire thing. We can bind maps with existing non-map
+ functions using the ANYOTHERKEY binding code.
+
+variables.c
+ - shells running in posix mode do not set $HOME, as POSIX requires
which caused a prompt with invisible characters to be redrawn one
extra time in a multibyte locale. Change from <= to < fixes
multibyte locale, but I added 1 to single-byte definition of
- PROMPT_ENDING_INDEX (worth checking) to compensate
+ PROMPT_ENDING_INDEX (worth checking) to compensate. Bug reported
+ by Egmont Koblinger <egmont@uhulinux.hu>
+
+ 2/8
+ ---
+lib/readline/terminal.c
+ - call _emx_get_screensize with wr, wc like ioctl code for consistency
+ - new function, _win_get_screensize, gets screen dimensions using
+ standard Windows API for mingw32 (code from Denis Pilat)
+ - call _win_get_screensize from _rl_get_screen_size on mingw32
+
+lib/readline/rlconf.h
+ - define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc
+ filename
+
+support/shobj-conf
+ - changes to make loadable builtins work on MacOS X 10.[34]
+
+builtins/pushd.def
+ - changes to make it work as a loadable builtin compiled with gcc4
+
+ 2/9
+ ---
+lib/readline/bind.c
+ - add SYS_INPUTRC as last-ditch default (if DEFAULT_INPUTRC does not
+ exist or can't be read) in rl_read_init_file
+
+lib/readline/doc/rluser.texi
+ - add description of /etc/inputrc as ultimate default startup file
+
+ 2/10
+ ----
+lib/readline/bind.c
+ - fix problem with rl_function_of_keyseq that returns a non-keymap
+ bound to a portion of the passed key sequence without processing
+ the entire thing. We can bind maps with existing non-map
+ functions using the ANYOTHERKEY binding code.
}
#ifdef LOADABLE_BUILTIN
-static char * const dirs_doc[] = {
+char * const dirs_doc[] = {
N_("Display the list of currently remembered directories. Directories"),
N_("find their way onto the list with the `pushd' command; you can get"),
N_("back up through the list with the `popd' command."),
(char *)NULL
};
-static char * const pushd_doc[] = {
+char * const pushd_doc[] = {
N_("Adds a directory to the top of the directory stack, or rotates"),
N_("the stack, making the new top of the stack the current working"),
N_("directory. With no arguments, exchanges the top two directories."),
(char *)NULL
};
-static char * const popd_doc[] = {
+char * const popd_doc[] = {
N_("Removes entries from the directory stack. With no arguments,"),
N_("removes the top directory from the stack, and cd's to the new"),
N_("top directory."),
{
register int i;
- if (!map)
+ if (map == 0)
map = _rl_keymap;
for (i = 0; keyseq && keyseq[i]; i++)
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;
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;
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
{
/* 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;
/* 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.
kseq[i++] = '-';
c = UNMETA (c);
}
+ else if (c == ESC)
+ {
+ kseq[i++] = '\\';
+ c = 'e';
+ }
else if (CTRL_CHAR (c))
{
kseq[i++] = '\\';
*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';
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);
+ }
+ else if (map[ESC].type != ISKMAP && keyseq[i+1])
+ return ((rl_command_func_t *)NULL);
+ else /* map[ESC].type != ISKMAP && keyseq[i+1] == 0 */
{
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;
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;
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
{
/* 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;
if (key == ESC)
{
+ /* 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
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)
+ ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? prompt_physical_chars : prompt_last_invisible+1)
/* **************************************************************** */
invisible character in the prompt string. */
nleft = prompt_visible_length + wrap_offset;
if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
+#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);
}
}
+if (*old == 0 && *new != 0)
+ {
+ fprintf (stderr, "old == 0x%x new = 0x%x\r\n", old, new);
+ fprintf (stderr, "omax == %d nmax = %d\r\n", omax, nmax);
+ fprintf (stderr, "ne == 0x%x nfd = 0x%x\r\n", ne, nfd);
+ fprintf (stderr, "oe == 0x%x ofd = 0x%x\r\n", oe, ofd);
+ fprintf (stderr, "ols == 0x%x nls = 0x%x\r\n", ols, nls);
+ }
+
/* count of invisible characters in the current invisible line. */
current_invis_chars = W_OFFSET (current_line, wrap_offset);
if (_rl_last_v_pos != current_line)
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on November, 17 2005 by texi2html 1.64 -->
+<!-- Created on February, 9 2006 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>November, 17 2005</I>
+This document was generated by <I>Chet Ramey</I> on <I>February, 9 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>November, 17 2005</I>
+by <I>Chet Ramey</I> on <I>February, 9 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
This is history.info, produced by makeinfo version 4.7 from
./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, 9
+February 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.
\1f
Tag Table:
-Node: Top\7f1287
-Node: Using History Interactively\7f1912
-Node: History Interaction\7f2420
-Node: Event Designators\7f3844
-Node: Word Designators\7f4779
-Node: Modifiers\7f6418
-Node: Programming with GNU History\7f7645
-Node: Introduction to History\7f8377
-Node: History Storage\7f10067
-Node: History Functions\7f11202
-Node: Initializing History and State Management\7f12191
-Node: History List Management\7f13003
-Node: Information About the History List\7f15035
-Node: Moving Around the History List\7f16532
-Node: Searching the History List\7f17533
-Node: Managing the History File\7f19465
-Node: History Expansion\7f21285
-Node: History Variables\7f23193
-Node: History Programming Example\7f25999
-Node: Copying This Manual\7f28676
-Node: GNU Free Documentation License\7f28936
-Node: Concept Index\7f51342
-Node: Function and Variable Index\7f52182
+Node: Top\7f1280
+Node: Using History Interactively\7f1905
+Node: History Interaction\7f2413
+Node: Event Designators\7f3837
+Node: Word Designators\7f4772
+Node: Modifiers\7f6411
+Node: Programming with GNU History\7f7638
+Node: Introduction to History\7f8370
+Node: History Storage\7f10060
+Node: History Functions\7f11195
+Node: Initializing History and State Management\7f12184
+Node: History List Management\7f12996
+Node: Information About the History List\7f15028
+Node: Moving Around the History List\7f16525
+Node: Searching the History List\7f17526
+Node: Managing the History File\7f19458
+Node: History Expansion\7f21278
+Node: History Variables\7f23186
+Node: History Programming Example\7f25992
+Node: Copying This Manual\7f28669
+Node: GNU Free Documentation License\7f28929
+Node: Concept Index\7f51335
+Node: Function and Variable Index\7f52175
\1f
End Tag Table
-This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 17 NOV 2005 10:43
+This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 9 FEB 2006 09:50
**/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi
(/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi (./texinfo.tex
Loading texinfo [version 2003-02-03.16]: Basics,
Here is how much of TeX's memory you used:
1409 strings out of 98002
16451 string characters out of 1221987
- 45518 words of memory out of 1000001
+ 45504 words of memory out of 1000001
2271 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
19 hyphenation exceptions out of 1000
15i,6n,17p,283b,649s stack positions out of 1500i,500n,5000p,200000b,5000s
-Output written on history.dvi (28 pages, 79896 bytes).
+Output written on history.dvi (28 pages, 79860 bytes).
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2005.11.17:1043
+%DVIPSSource: TeX output 2006.02.09:0950
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 75 659 a Fs(GNU)33 b(History)e(Library)p
-75 709 1800 17 v 710 757 a Fr(Edition)14 b(5.1-b)q(eta1,)g(for)h
-Fq(History)f(Library)g Fr(V)l(ersion)h(5.1-b)q(eta1.)1569
-811 y(No)o(v)o(em)o(b)q(er)g(2005)75 2467 y Fp(Chet)22
-b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n
-(ersit)n(y)75 2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6
-b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)p 75 2570
-1800 9 v eop end
+75 709 1800 17 v 960 757 a Fr(Edition)14 b(5.2,)g(for)h
+Fq(History)f(Library)g Fr(V)l(ersion)h(5.2.)1590 811
+y(F)l(ebruary)g(2006)75 2467 y Fp(Chet)22 b(Ramey)-6
+b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
+2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
+b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 75 1512 a Fr(This)15 b(do)q(cumen)o(t)h(describ)q
-(es)h(the)f(GNU)f(History)g(library)f(\(v)o(ersion)h(5.1-b)q(eta1,)f
-(11)h(No)o(v)o(em)o(b)q(er)h(2005\),)75 1567 y(a)d(programming)e(to)q
-(ol)h(that)g(pro)o(vides)h(a)g(consisten)o(t)f(user)h(in)o(terface)f
-(for)h(recalling)e(lines)i(of)g(previously)75 1621 y(t)o(yp)q(ed)j
-(input.)75 1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689
-y Fo(\015)f Fr(1988-2004)e(F)l(ree)i(Soft)o(w)o(are)f(F)l(oundation,)g
-(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f(mak)o(e)h(and)g
-(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o(ual)f(pro)o
-(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g(this)g(p)q
-(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f(copies.)195
-1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,)h(distribute)
-f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195
+TeXDict begin 2 1 bop 75 1512 a Fr(This)18 b(do)q(cumen)o(t)g(describ)q
+(es)h(the)f(GNU)g(History)f(library)g(\(v)o(ersion)h(5.2,)f(9)h(F)l
+(ebruary)g(2006\),)f(a)h(pro-)75 1567 y(gramming)10 b(to)q(ol)g(that)g
+(pro)o(vides)h(a)g(consisten)o(t)f(user)i(in)o(terface)e(for)h
+(recalling)f(lines)g(of)h(previously)g(t)o(yp)q(ed)75
+1621 y(input.)75 1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289
+1689 y Fo(\015)k Fr(1988-2004)e(F)l(ree)i(Soft)o(w)o(are)f(F)l
+(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f
+(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o
+(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g
+(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f
+(copies.)195 1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,)
+h(distribute)f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195
1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)f
(License,)i(V)l(ersion)f(1.1)f(or)g(an)o(y)h(later)195
1988 y(v)o(ersion)13 b(published)h(b)o(y)g(the)g(F)l(ree)f(Soft)o(w)o
.\" 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 Feb 9" "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.
.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
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on November, 17 2005 by texi2html 1.64 -->
+<!-- Created on February, 9 2006 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
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
<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>
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>
<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>November, 17 2005</I>
+This document was generated by <I>Chet Ramey</I> on <I>February, 9 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>November, 17 2005</I>
+by <I>Chet Ramey</I> on <I>February, 9 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
This is readline.info, produced by makeinfo version 4.7 from
./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
+ This manual describes the GNU Readline Library (version 5.2, 9
+February 2006), a library which aids in the consistency of user
interface across discrete programs which provide a command line
interface.
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.
-- 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.
\1f
File: readline.info, Node: Terminal Management, Next: Utility Functions, Prev: Character Input, Up: Readline Convenience Functions
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
* 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)
* 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)
* 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)
* 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)
(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)
\1f
Tag Table:
-Node: Top\7f1303
-Node: Command Line Editing\7f1941
-Node: Introduction and Notation\7f2593
-Node: Readline Interaction\7f4216
-Node: Readline Bare Essentials\7f5408
-Node: Readline Movement Commands\7f7198
-Node: Readline Killing Commands\7f8164
-Node: Readline Arguments\7f10085
-Node: Searching\7f11130
-Node: Readline Init File\7f13282
-Node: Readline Init File Syntax\7f14348
-Node: Conditional Init Constructs\7f26283
-Node: Sample Init File\7f28817
-Node: Bindable Readline Commands\7f31935
-Node: Commands For Moving\7f32993
-Node: Commands For History\7f33855
-Node: Commands For Text\7f36980
-Node: Commands For Killing\7f39707
-Node: Numeric Arguments\7f41850
-Node: Commands For Completion\7f42990
-Node: Keyboard Macros\7f44535
-Node: Miscellaneous Commands\7f45107
-Node: Readline vi Mode\7f48469
-Node: Programming with GNU Readline\7f50293
-Node: Basic Behavior\7f51268
-Node: Custom Functions\7f54685
-Node: Readline Typedefs\7f56169
-Node: Function Writing\7f57808
-Node: Readline Variables\7f59115
-Node: Readline Convenience Functions\7f68817
-Node: Function Naming\7f69807
-Node: Keymaps\7f71069
-Node: Binding Keys\7f72841
-Node: Associating Function Names and Bindings\7f77388
-Node: Allowing Undoing\7f79650
-Node: Redisplay\7f82200
-Node: Modifying Text\7f86100
-Node: Character Input\7f87346
-Node: Terminal Management\7f89144
-Node: Utility Functions\7f90580
-Node: Miscellaneous Functions\7f92945
-Node: Alternate Interface\7f95242
-Node: A Readline Example\7f97401
-Node: Readline Signal Handling\7f99304
-Node: Custom Completers\7f105172
-Node: How Completing Works\7f105892
-Node: Completion Functions\7f109206
-Node: Completion Variables\7f112778
-Node: A Short Completion Example\7f124968
-Node: Copying This Manual\7f137141
-Node: GNU Free Documentation License\7f137403
-Node: Concept Index\7f159810
-Node: Function and Variable Index\7f161466
+Node: Top\7f1296
+Node: Command Line Editing\7f1934
+Node: Introduction and Notation\7f2586
+Node: Readline Interaction\7f4209
+Node: Readline Bare Essentials\7f5401
+Node: Readline Movement Commands\7f7191
+Node: Readline Killing Commands\7f8157
+Node: Readline Arguments\7f10078
+Node: Searching\7f11123
+Node: Readline Init File\7f13275
+Node: Readline Init File Syntax\7f14429
+Node: Conditional Init Constructs\7f26364
+Node: Sample Init File\7f28898
+Node: Bindable Readline Commands\7f32016
+Node: Commands For Moving\7f33074
+Node: Commands For History\7f33936
+Node: Commands For Text\7f37061
+Node: Commands For Killing\7f39788
+Node: Numeric Arguments\7f41931
+Node: Commands For Completion\7f43071
+Node: Keyboard Macros\7f44616
+Node: Miscellaneous Commands\7f45188
+Node: Readline vi Mode\7f48550
+Node: Programming with GNU Readline\7f50374
+Node: Basic Behavior\7f51349
+Node: Custom Functions\7f54766
+Node: Readline Typedefs\7f56250
+Node: Function Writing\7f57889
+Node: Readline Variables\7f59196
+Node: Readline Convenience Functions\7f68898
+Node: Function Naming\7f69888
+Node: Keymaps\7f71150
+Node: Binding Keys\7f72922
+Node: Associating Function Names and Bindings\7f77469
+Node: Allowing Undoing\7f79731
+Node: Redisplay\7f82281
+Node: Modifying Text\7f86181
+Node: Character Input\7f87427
+Node: Terminal Management\7f89325
+Node: Utility Functions\7f90761
+Node: Miscellaneous Functions\7f93126
+Node: Alternate Interface\7f95423
+Node: A Readline Example\7f97582
+Node: Readline Signal Handling\7f99485
+Node: Custom Completers\7f105353
+Node: How Completing Works\7f106073
+Node: Completion Functions\7f109387
+Node: Completion Variables\7f112959
+Node: A Short Completion Example\7f125353
+Node: Copying This Manual\7f137526
+Node: GNU Free Documentation License\7f137788
+Node: Concept Index\7f160195
+Node: Function and Variable Index\7f161851
\1f
End Tag Table
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o readline.ps readline.dvi
%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2005.11.17:1043
+%DVIPSSource: TeX output 2006.02.09:0950
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 75 659 a Fu(GNU)33 b(Readline)f(Library)p
-75 709 1800 17 v 686 757 a Ft(Edition)15 b(5.1-b)q(eta1,)e(for)i
-Fs(Readline)f(Library)g Ft(V)l(ersion)h(5.1-b)q(eta1.)1569
-811 y(No)o(v)o(em)o(b)q(er)g(2005)75 2467 y Fr(Chet)22
-b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n
-(ersit)n(y)75 2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6
-b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)p 75 2570
-1800 9 v eop end
+75 709 1800 17 v 936 757 a Ft(Edition)15 b(5.2,)e(for)i
+Fs(Readline)f(Library)g Ft(V)l(ersion)h(5.2.)1590 811
+y(F)l(ebruary)g(2006)75 2467 y Fr(Chet)22 b(Ramey)-6
+b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
+2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
+b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 75 1512 a Ft(This)16 b(man)o(ual)g(describ)q(es)h
-(the)f(GNU)g(Readline)h(Library)f(\(v)o(ersion)g(5.1-b)q(eta1,)f(11)h
-(No)o(v)o(em)o(b)q(er)g(2005\),)75 1567 y(a)k(library)g(whic)o(h)g
-(aids)g(in)h(the)g(consistency)f(of)g(user)h(in)o(terface)f(across)g
-(discrete)h(programs)e(whic)o(h)75 1621 y(pro)o(vide)c(a)g(command)g
-(line)g(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)301 1688
-y(c)289 1689 y Fq(\015)g Ft(1988-2004)e(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f
+TeXDict begin 2 1 bop 75 1512 a Ft(This)15 b(man)o(ual)f(describ)q(es)h
+(the)g(GNU)g(Readline)g(Library)g(\(v)o(ersion)e(5.2,)h(9)h(F)l
+(ebruary)f(2006\),)g(a)g(library)75 1567 y(whic)o(h)19
+b(aids)h(in)f(the)h(consistency)f(of)g(user)h(in)o(terface)f(across)g
+(discrete)g(programs)g(whic)o(h)g(pro)o(vide)g(a)75 1621
+y(command)c(line)g(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)301
+1688 y(c)289 1689 y Fq(\015)g Ft(1988-2004)e(F)l(ree)i(Soft)o(w)o(are)f
+(F)l(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f
(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o
(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g
(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f
(and)g(restore)g(the)75 259 y(original)13 b(line.)19
b(When)c(the)f(searc)o(h)g(is)g(terminated,)g(the)g(history)g(en)o(try)
g(con)o(taining)f(the)i(searc)o(h)f(string)75 314 y(b)q(ecomes)i(the)f
-(curren)o(t)g(line.)137 384 y(T)l(o)g(\014nd)i(other)e(matc)o(hing)f
+(curren)o(t)g(line.)137 385 y(T)l(o)g(\014nd)i(other)e(matc)o(hing)f
(en)o(tries)h(in)h(the)f(history)g(list,)f(t)o(yp)q(e)h
Fl(C-r)g Ft(or)g Fl(C-s)g Ft(as)h(appropriate.)j(This)75
-439 y(will)12 b(searc)o(h)h(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)h
+440 y(will)12 b(searc)o(h)h(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)h
(the)g(history)f(for)h(the)g(next)g(en)o(try)g(matc)o(hing)f(the)h
-(searc)o(h)g(string)75 494 y(t)o(yp)q(ed)19 b(so)g(far.)30
+(searc)o(h)g(string)75 495 y(t)o(yp)q(ed)19 b(so)g(far.)30
b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-g(command)f(will)g(terminate)g(the)75 549 y(searc)o(h)10
+g(command)f(will)g(terminate)g(the)75 550 y(searc)o(h)10
b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)h(a)1063
-547 y Fk(h)p 1076 521 76 2 v 1076 549 a Fj(RET)p 1076
-556 V 1149 547 a Fk(i)1174 549 y Ft(will)e(terminate)h(the)h(searc)o(h)
-f(and)h(accept)75 604 y(the)k(line,)f(thereb)o(y)h(executing)f(the)h
+548 y Fk(h)p 1076 522 76 2 v 1076 550 a Fj(RET)p 1076
+557 V 1149 548 a Fk(i)1174 550 y Ft(will)e(terminate)h(the)h(searc)o(h)
+f(and)h(accept)75 605 y(the)k(line,)f(thereb)o(y)h(executing)f(the)h
(command)g(from)f(the)g(history)g(list.)k(A)d(mo)o(v)o(emen)o(t)f
-(command)g(will)75 658 y(terminate)g(the)h(searc)o(h,)g(mak)o(e)g(the)g
+(command)g(will)75 659 y(terminate)g(the)h(searc)o(h,)g(mak)o(e)g(the)g
(last)f(line)h(found)h(the)f(curren)o(t)g(line,)f(and)i(b)q(egin)f
-(editing.)137 729 y(Readline)j(remem)o(b)q(ers)f(the)h(last)e(incremen)
+(editing.)137 731 y(Readline)j(remem)o(b)q(ers)f(the)h(last)e(incremen)
o(tal)h(searc)o(h)g(string.)26 b(If)17 b(t)o(w)o(o)f
-Fl(C-r)p Ft(s)h(are)g(t)o(yp)q(ed)h(without)75 784 y(an)o(y)g(in)o
+Fl(C-r)p Ft(s)h(are)g(t)o(yp)q(ed)h(without)75 786 y(an)o(y)g(in)o
(terv)o(ening)f(c)o(haracters)h(de\014ning)g(a)g(new)h(searc)o(h)f
(string,)f(an)o(y)h(remem)o(b)q(ered)h(searc)o(h)f(string)f(is)75
-839 y(used.)137 909 y(Non-incremen)o(tal)23 b(searc)o(hes)g(read)h(the)
+841 y(used.)137 912 y(Non-incremen)o(tal)23 b(searc)o(hes)g(read)h(the)
f(en)o(tire)g(searc)o(h)g(string)f(b)q(efore)i(starting)e(to)g(searc)o
-(h)i(for)75 964 y(matc)o(hing)c(history)h(lines.)37 b(The)22
+(h)i(for)75 967 y(matc)o(hing)c(history)h(lines.)37 b(The)22
b(searc)o(h)f(string)f(ma)o(y)h(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 1019 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1156 y Fr(1.3)33 b(Readline)21
-b(Init)i(File)137 1281 y Ft(Although)f(the)h(Readline)g(library)e
+(user)h(or)e(b)q(e)i(part)f(of)g(the)75 1022 y(con)o(ten)o(ts)15
+b(of)f(the)i(curren)o(t)f(line.)75 1161 y Fr(1.3)33 b(Readline)21
+b(Init)i(File)137 1288 y Ft(Although)f(the)h(Readline)g(library)e
(comes)i(with)f(a)g(set)g(of)g(Emacs-lik)o(e)g(k)o(eybindings)g
-(installed)75 1336 y(b)o(y)f(default,)g(it)f(is)h(p)q(ossible)f(to)g
+(installed)75 1342 y(b)o(y)f(default,)g(it)f(is)h(p)q(ossible)f(to)g
(use)i(a)e(di\013eren)o(t)g(set)h(of)f(k)o(eybindings.)37
-b(An)o(y)20 b(user)h(can)g(customize)75 1391 y(programs)15
+b(An)o(y)20 b(user)h(can)g(customize)75 1397 y(programs)15
b(that)h(use)g(Readline)h(b)o(y)f(putting)f(commands)h(in)h(an)f
Fi(inputrc)j Ft(\014le,)d(con)o(v)o(en)o(tionally)e(in)i(his)75
-1445 y(home)h(directory)l(.)23 b(The)17 b(name)g(of)f(this)g(\014le)g
+1452 y(home)h(directory)l(.)23 b(The)17 b(name)g(of)f(this)g(\014le)g
(is)g(tak)o(en)h(from)e(the)i(v)m(alue)g(of)f(the)h(en)o(vironmen)o(t)f
-(v)m(ariable)75 1500 y Fs(INPUTRC)p Ft(.)j(If)c(that)g(v)m(ariable)f
-(is)h(unset,)g(the)g(default)g(is)g(`)p Fs(~/.inputrc)p
-Ft('.)137 1571 y(When)g(a)g(program)f(whic)o(h)g(uses)h(the)g(Readline)
-g(library)f(starts)f(up,)i(the)g(init)f(\014le)h(is)f(read,)h(and)g
-(the)75 1626 y(k)o(ey)g(bindings)g(are)g(set.)137 1696
-y(In)f(addition,)f(the)g Fs(C-x)i(C-r)e Ft(command)g(re-reads)h(this)f
-(init)f(\014le,)i(th)o(us)f(incorp)q(orating)f(an)o(y)h(c)o(hanges)75
-1751 y(that)h(y)o(ou)h(migh)o(t)f(ha)o(v)o(e)h(made)g(to)g(it.)75
-1870 y Fh(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1995 y Ft(There)c(are)g(only)f(a)h(few)f(basic)h(constructs)f(allo)o(w)
+(v)m(ariable)75 1507 y Fs(INPUTRC)p Ft(.)i(If)d(that)e(v)m(ariable)h
+(is)f(unset,)h(the)h(default)e(is)h(`)p Fs(~/.inputrc)p
+Ft('.)j(If)d(that)g(\014le)g(do)q(es)g(not)g(exist)f(or)75
+1562 y(cannot)i(b)q(e)h(read,)f(the)g(ultimate)f(default)h(is)f(`)p
+Fs(/etc/inputrc)p Ft('.)137 1633 y(When)h(a)g(program)f(whic)o(h)g
+(uses)h(the)g(Readline)g(library)f(starts)f(up,)i(the)g(init)f(\014le)h
+(is)f(read,)h(and)g(the)75 1688 y(k)o(ey)g(bindings)g(are)g(set.)137
+1760 y(In)f(addition,)f(the)g Fs(C-x)i(C-r)e Ft(command)g(re-reads)h
+(this)f(init)f(\014le,)i(th)o(us)f(incorp)q(orating)f(an)o(y)h(c)o
+(hanges)75 1814 y(that)h(y)o(ou)h(migh)o(t)f(ha)o(v)o(e)h(made)g(to)g
+(it.)75 1935 y Fh(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
+2061 y Ft(There)c(are)g(only)f(a)h(few)f(basic)h(constructs)f(allo)o(w)
o(ed)g(in)g(the)h(Readline)g(init)f(\014le.)25 b(Blank)17
-b(lines)f(are)75 2050 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e
+b(lines)f(are)75 2116 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e
(a)i(`)p Fs(#)p Ft(')e(are)h(commen)o(ts.)35 b(Lines)21
b(b)q(eginning)g(with)f(a)g(`)p Fs($)p Ft(')f(indicate)75
-2105 y(conditional)12 b(constructs)i(\(see)g(Section)f(1.3.2)g
+2171 y(conditional)12 b(constructs)i(\(see)g(Section)f(1.3.2)g
([Conditional)e(Init)j(Constructs],)f(page)h(9\).)k(Other)c(lines)75
-2159 y(denote)h(v)m(ariable)g(settings)f(and)i(k)o(ey)f(bindings.)75
-2244 y(V)l(ariable)f(Settings)315 2299 y(Y)l(ou)20 b(can)h(mo)q(dify)f
+2226 y(denote)h(v)m(ariable)g(settings)f(and)i(k)o(ey)f(bindings.)75
+2312 y(V)l(ariable)f(Settings)315 2367 y(Y)l(ou)20 b(can)h(mo)q(dify)f
(the)g(run-time)g(b)q(eha)o(vior)g(of)f(Readline)i(b)o(y)f(altering)f
-(the)h(v)m(alues)g(of)315 2354 y(v)m(ariables)c(in)h(Readline)g(using)f
+(the)h(v)m(alues)g(of)315 2422 y(v)m(ariables)c(in)h(Readline)g(using)f
(the)h Fs(set)g Ft(command)f(within)g(the)h(init)f(\014le.)25
-b(The)17 b(syn)o(tax)315 2408 y(is)e(simple:)435 2477
-y Fs(set)23 b Fl(variable)28 b(value)315 2546 y Ft(Here,)14
+b(The)17 b(syn)o(tax)315 2476 y(is)e(simple:)435 2546
+y Fs(set)23 b Fl(variable)28 b(value)315 2615 y Ft(Here,)14
b(for)f(example,)g(is)g(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)
-f(Emacs-lik)o(e)g(k)o(ey)g(binding)h(to)315 2601 y(use)i
-Fs(vi)e Ft(line)h(editing)g(commands:)435 2670 y Fs(set)23
-b(editing-mode)g(vi)p eop end
+f(Emacs-lik)o(e)g(k)o(ey)g(binding)h(to)315 2670 y(use)i
+Fs(vi)e Ft(line)h(editing)g(commands:)p eop end
%%Page: 5 9
TeXDict begin 5 8 bop 75 -58 a Ft(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(5)315 149 y(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g
-(where)f(appropriate,)g(are)g(recognized)h(without)e(regard)315
-204 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g(ignored.)
-315 268 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g(b)q(e)i
+(Editing)1075 b(5)435 149 y Fs(set)23 b(editing-mode)g(vi)315
+216 y Ft(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g(where)f
+(appropriate,)g(are)g(recognized)h(without)e(regard)315
+271 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g(ignored.)
+315 337 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g(b)q(e)i
(set)e(to)g(on)g(or)g(o\013)t(\))f(are)h(set)h(to)f(on)g(if)g(the)h(v)m
-(alue)f(is)315 323 y(n)o(ull)g(or)f(empt)o(y)l(,)h Fi(on)h
+(alue)f(is)315 392 y(n)o(ull)g(or)f(empt)o(y)l(,)h Fi(on)h
Ft(\(case-insensitiv)o(e\),)d(or)i(1.)19 b(An)o(y)12
b(other)g(v)m(alue)g(results)f(in)h(the)h(v)m(ariable)315
-378 y(b)q(eing)i(set)g(to)g(o\013.)315 442 y(A)g(great)g(deal)f(of)h
+446 y(b)q(eing)i(set)g(to)g(o\013.)315 513 y(A)g(great)g(deal)f(of)h
(run-time)g(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)i(follo)o
-(wing)c(v)m(ariables.)315 515 y Fs(bell-style)555 570
+(wing)c(v)m(ariables.)315 591 y Fs(bell-style)555 645
y Ft(Con)o(trols)20 b(what)i(happ)q(ens)h(when)f(Readline)g(w)o(an)o
-(ts)f(to)g(ring)h(the)g(termi-)555 624 y(nal)c(b)q(ell.)30
+(ts)f(to)g(ring)h(the)g(termi-)555 700 y(nal)c(b)q(ell.)30
b(If)19 b(set)f(to)g(`)p Fs(none)p Ft(',)g(Readline)h(nev)o(er)g(rings)
-f(the)g(b)q(ell.)30 b(If)19 b(set)g(to)555 679 y(`)p
+f(the)g(b)q(ell.)30 b(If)19 b(set)g(to)555 755 y(`)p
Fs(visible)p Ft(',)c(Readline)h(uses)h(a)f(visible)g(b)q(ell)h(if)f
(one)g(is)g(a)o(v)m(ailable.)23 b(If)16 b(set)h(to)555
-734 y(`)p Fs(audible)p Ft(')g(\(the)h(default\),)h(Readline)g(attempts)
-f(to)g(ring)g(the)h(terminal's)555 789 y(b)q(ell.)315
-862 y Fs(bind-tty-special-chars)555 917 y Ft(If)k(set)f(to)g(`)p
+810 y(`)p Fs(audible)p Ft(')g(\(the)h(default\),)h(Readline)g(attempts)
+f(to)g(ring)g(the)h(terminal's)555 865 y(b)q(ell.)315
+943 y Fs(bind-tty-special-chars)555 997 y Ft(If)k(set)f(to)g(`)p
Fs(on)p Ft(',)h(Readline)g(attempts)f(to)g(bind)h(the)f(con)o(trol)g(c)
-o(haracters)555 971 y(treated)17 b(sp)q(ecially)g(b)o(y)h(the)g(k)o
+o(haracters)555 1052 y(treated)17 b(sp)q(ecially)g(b)o(y)h(the)g(k)o
(ernel's)f(terminal)f(driv)o(er)h(to)g(their)h(Readline)555
-1026 y(equiv)m(alen)o(ts.)315 1099 y Fs(comment-begin)555
-1154 y Ft(The)d(string)e(to)h(insert)h(at)e(the)i(b)q(eginning)g(of)f
-(the)h(line)f(when)h(the)g Fs(insert-)555 1209 y(comment)f
+1107 y(equiv)m(alen)o(ts.)315 1185 y Fs(comment-begin)555
+1240 y Ft(The)d(string)e(to)h(insert)h(at)e(the)i(b)q(eginning)g(of)f
+(the)h(line)f(when)h(the)g Fs(insert-)555 1294 y(comment)f
Ft(command)h(is)g(executed.)21 b(The)15 b(default)g(v)m(alue)g(is)g
-Fs("#")p Ft(.)315 1282 y Fs(completion-ignore-case)555
-1337 y Ft(If)f(set)f(to)g(`)p Fs(on)p Ft(',)g(Readline)h(p)q(erforms)f
-(\014lename)h(matc)o(hing)f(and)h(completion)555 1391
+Fs("#")p Ft(.)315 1372 y Fs(completion-ignore-case)555
+1427 y Ft(If)f(set)f(to)g(`)p Fs(on)p Ft(',)g(Readline)h(p)q(erforms)f
+(\014lename)h(matc)o(hing)f(and)h(completion)555 1482
y(in)h(a)g(case-insensitiv)o(e)f(fashion.)20 b(The)15
-b(default)g(v)m(alue)g(is)g(`)p Fs(off)p Ft('.)315 1465
-y Fs(completion-query-items)555 1519 y Ft(The)e(n)o(um)o(b)q(er)h(of)e
+b(default)g(v)m(alue)g(is)g(`)p Fs(off)p Ft('.)315 1560
+y Fs(completion-query-items)555 1614 y Ft(The)e(n)o(um)o(b)q(er)h(of)e
(p)q(ossible)h(completions)g(that)f(determines)h(when)h(the)f(user)555
-1574 y(is)h(ask)o(ed)h(whether)g(the)f(list)g(of)g(p)q(ossibilities)f
-(should)i(b)q(e)g(displa)o(y)o(ed.)k(If)c(the)555 1629
+1669 y(is)h(ask)o(ed)h(whether)g(the)f(list)g(of)g(p)q(ossibilities)f
+(should)i(b)q(e)g(displa)o(y)o(ed.)k(If)c(the)555 1724
y(n)o(um)o(b)q(er)f(of)f(p)q(ossible)g(completions)f(is)h(greater)g
-(than)g(this)g(v)m(alue,)h(Readline)555 1684 y(will)e(ask)h(the)g(user)
+(than)g(this)g(v)m(alue,)h(Readline)555 1779 y(will)e(ask)h(the)g(user)
h(whether)f(or)g(not)g(he)g(wishes)g(to)g(view)g(them;)g(otherwise,)555
-1738 y(they)f(are)g(simply)g(listed.)18 b(This)12 b(v)m(ariable)f(m)o
+1834 y(they)f(are)g(simply)g(listed.)18 b(This)12 b(v)m(ariable)f(m)o
(ust)h(b)q(e)h(set)f(to)f(an)h(in)o(teger)g(v)m(alue)555
-1793 y(greater)g(than)g(or)g(equal)g(to)g(0.)18 b(A)13
+1888 y(greater)g(than)g(or)g(equal)g(to)g(0.)18 b(A)13
b(negativ)o(e)e(v)m(alue)i(means)f(Readline)h(should)555
-1848 y(nev)o(er)i(ask.)20 b(The)15 b(default)g(limit)f(is)g
-Fs(100)p Ft(.)315 1921 y Fs(convert-meta)555 1976 y Ft(If)d(set)g(to)g
+1943 y(nev)o(er)i(ask.)20 b(The)15 b(default)g(limit)f(is)g
+Fs(100)p Ft(.)315 2021 y Fs(convert-meta)555 2076 y Ft(If)d(set)g(to)g
(`)p Fs(on)p Ft(',)f(Readline)h(will)f(con)o(v)o(ert)g(c)o(haracters)h
-(with)f(the)h(eigh)o(th)g(bit)f(set)555 2031 y(to)g(an)h
+(with)f(the)h(eigh)o(th)g(bit)f(set)555 2131 y(to)g(an)h
Fm(asci)q(i)e Ft(k)o(ey)i(sequence)g(b)o(y)g(stripping)f(the)g(eigh)o
-(th)g(bit)h(and)f(pre\014xing)h(an)555 2084 y Fk(h)p
-567 2057 70 2 v 567 2086 a Fj(ESC)p 567 2093 V 634 2084
-a Fk(i)666 2086 y Ft(c)o(haracter,)16 b(con)o(v)o(erting)g(them)h(to)f
-(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555 2140 y(The)e(default)g(v)
-m(alue)h(is)e(`)p Fs(on)p Ft('.)315 2213 y Fs(disable-completion)555
-2268 y Ft(If)19 b(set)f(to)f(`)p Fs(On)p Ft(',)h(Readline)h(will)e
+(th)g(bit)h(and)f(pre\014xing)h(an)555 2183 y Fk(h)p
+567 2157 70 2 v 567 2185 a Fj(ESC)p 567 2193 V 634 2183
+a Fk(i)666 2185 y Ft(c)o(haracter,)16 b(con)o(v)o(erting)g(them)h(to)f
+(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555 2240 y(The)e(default)g(v)
+m(alue)h(is)e(`)p Fs(on)p Ft('.)315 2318 y Fs(disable-completion)555
+2373 y Ft(If)19 b(set)f(to)f(`)p Fs(On)p Ft(',)h(Readline)h(will)e
(inhibit)g(w)o(ord)h(completion.)28 b(Completion)555
-2323 y(c)o(haracters)12 b(will)g(b)q(e)i(inserted)f(in)o(to)f(the)h
+2428 y(c)o(haracters)12 b(will)g(b)q(e)i(inserted)f(in)o(to)f(the)h
(line)f(as)h(if)g(they)g(had)g(b)q(een)h(mapp)q(ed)555
-2378 y(to)h Fs(self-insert)p Ft(.)j(The)d(default)g(is)g(`)p
-Fs(off)p Ft('.)315 2451 y Fs(editing-mode)555 2506 y
+2483 y(to)h Fs(self-insert)p Ft(.)j(The)d(default)g(is)g(`)p
+Fs(off)p Ft('.)315 2560 y Fs(editing-mode)555 2615 y
Ft(The)g Fs(editing-mode)d Ft(v)m(ariable)i(con)o(trols)f(whic)o(h)h
-(default)g(set)g(of)g(k)o(ey)g(bind-)555 2560 y(ings)e(is)g(used.)20
+(default)g(set)g(of)g(k)o(ey)g(bind-)555 2670 y(ings)e(is)g(used.)20
b(By)12 b(default,)h(Readline)f(starts)g(up)h(in)f(Emacs)g(editing)g
-(mo)q(de,)555 2615 y(where)j(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)f(to)g(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555
-2670 y(b)q(e)i(set)f(to)f(either)h(`)p Fs(emacs)p Ft(')f(or)h(`)p
-Fs(vi)p Ft('.)p eop end
+(mo)q(de,)p eop end
%%Page: 6 10
TeXDict begin 6 9 bop 75 -58 a Ft(6)1322 b(GNU)15 b(Readline)g(Library)
-315 149 y Fs(enable-keypad)555 204 y Ft(When)d(set)f(to)h(`)p
+555 149 y(where)g(the)f(k)o(eystrok)o(es)g(are)g(most)g(similar)f(to)g
+(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555 204 y(b)q(e)i(set)f(to)f
+(either)h(`)p Fs(emacs)p Ft(')f(or)h(`)p Fs(vi)p Ft('.)315
+283 y Fs(enable-keypad)555 338 y Ft(When)d(set)f(to)h(`)p
Fs(on)p Ft(',)e(Readline)i(will)f(try)g(to)g(enable)h(the)g
-(application)e(k)o(eypad)555 259 y(when)k(it)e(is)h(called.)19
+(application)e(k)o(eypad)555 393 y(when)k(it)e(is)h(called.)19
b(Some)13 b(systems)g(need)h(this)f(to)g(enable)g(the)h(arro)o(w)e(k)o
-(eys.)555 314 y(The)j(default)g(is)g(`)p Fs(off)p Ft('.)315
-410 y Fs(expand-tilde)555 465 y Ft(If)f(set)g(to)f(`)p
+(eys.)555 448 y(The)j(default)g(is)g(`)p Fs(off)p Ft('.)315
+527 y Fs(expand-tilde)555 582 y Ft(If)f(set)g(to)f(`)p
Fs(on)p Ft(',)f(tilde)i(expansion)f(is)h(p)q(erformed)g(when)g
-(Readline)g(attempts)555 519 y(w)o(ord)h(completion.)k(The)c(default)g
-(is)f(`)p Fs(off)p Ft('.)315 615 y Fs(history-preserve-point)555
-670 y Ft(If)h(set)g(to)f(`)p Fs(on)p Ft(',)g(the)g(history)g(co)q(de)i
+(Readline)g(attempts)555 637 y(w)o(ord)h(completion.)k(The)c(default)g
+(is)f(`)p Fs(off)p Ft('.)315 716 y Fs(history-preserve-point)555
+770 y Ft(If)h(set)g(to)f(`)p Fs(on)p Ft(',)g(the)g(history)g(co)q(de)i
(attempts)e(to)g(place)h(p)q(oin)o(t)f(at)g(the)h(same)555
-725 y(lo)q(cation)g(on)i(eac)o(h)g(history)f(line)g(retriev)o(ed)g
-(with)g Fs(previous-history)e Ft(or)555 780 y Fs(next-history)p
-Ft(.)k(The)e(default)e(is)h(`)p Fs(off)p Ft('.)315 875
-y Fs(horizontal-scroll-mode)555 930 y Ft(This)j(v)m(ariable)f(can)h(b)q
-(e)g(set)g(to)f(either)h(`)p Fs(on)p Ft(')f(or)g(`)p
+825 y(lo)q(cation)g(on)i(eac)o(h)g(history)f(line)g(retriev)o(ed)g
+(with)g Fs(previous-history)e Ft(or)555 880 y Fs(next-history)p
+Ft(.)k(The)e(default)e(is)h(`)p Fs(off)p Ft('.)315 959
+y Fs(horizontal-scroll-mode)555 1014 y Ft(This)j(v)m(ariable)f(can)h(b)
+q(e)g(set)g(to)f(either)h(`)p Fs(on)p Ft(')f(or)g(`)p
Fs(off)p Ft('.)27 b(Setting)18 b(it)f(to)g(`)p Fs(on)p
-Ft(')555 985 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)g(b)q(eing)
-g(edited)g(will)f(scroll)g(horizon)o(tally)555 1040 y(on)k(a)f(single)g
-(screen)i(line)e(when)i(they)f(are)f(longer)g(than)h(the)g(width)f(of)h
-(the)555 1095 y(screen,)e(instead)e(of)h(wrapping)f(on)o(to)g(a)h(new)g
-(screen)h(line.)19 b(By)13 b(default,)g(this)555 1149
-y(v)m(ariable)i(is)f(set)h(to)g(`)p Fs(off)p Ft('.)315
-1245 y Fs(input-meta)555 1300 y Ft(If)h(set)f(to)g(`)p
-Fs(on)p Ft(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g(\(it)
-g(will)f(not)h(clear)555 1355 y(the)20 b(eigh)o(th)f(bit)g(in)h(the)g
-(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555
-1410 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
+Ft(')555 1069 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)g(b)q
+(eing)g(edited)g(will)f(scroll)g(horizon)o(tally)555
+1124 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g
+(than)h(the)g(width)f(of)h(the)555 1178 y(screen,)e(instead)e(of)h
+(wrapping)f(on)o(to)g(a)h(new)g(screen)h(line.)19 b(By)13
+b(default,)g(this)555 1233 y(v)m(ariable)i(is)f(set)h(to)g(`)p
+Fs(off)p Ft('.)315 1312 y Fs(input-meta)555 1367 y Ft(If)h(set)f(to)g
+(`)p Fs(on)p Ft(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g
+(\(it)g(will)f(not)h(clear)555 1422 y(the)20 b(eigh)o(th)f(bit)g(in)h
+(the)g(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555
+1477 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
b(The)20 b(default)g(v)m(alue)g(is)g(`)p Fs(off)p Ft('.)33
-b(The)555 1465 y(name)15 b Fs(meta-flag)f Ft(is)h(a)g(synon)o(ym)g(for)
-f(this)h(v)m(ariable.)315 1560 y Fs(isearch-terminators)555
-1615 y Ft(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
-(terminate)f(an)h(incremen)o(tal)555 1670 y(searc)o(h)12
+b(The)555 1531 y(name)15 b Fs(meta-flag)f Ft(is)h(a)g(synon)o(ym)g(for)
+f(this)h(v)m(ariable.)315 1611 y Fs(isearch-terminators)555
+1665 y Ft(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
+(terminate)f(an)h(incremen)o(tal)555 1720 y(searc)o(h)12
b(without)g(subsequen)o(tly)g(executing)h(the)f(c)o(haracter)g(as)g(a)g
-(command)555 1725 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
+(command)555 1775 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
(page)f(3\).)40 b(If)23 b(this)f(v)m(ariable)f(has)h(not)555
-1780 y(b)q(een)17 b(giv)o(en)e(a)h(v)m(alue,)f(the)h(c)o(haracters)1247
-1778 y Fk(h)p 1259 1752 70 2 v 1259 1780 a Fj(ESC)p 1259
-1787 V 1326 1778 a Fk(i)1357 1780 y Ft(and)g Fl(C-J)f
-Ft(will)f(terminate)h(an)555 1834 y(incremen)o(tal)f(searc)o(h.)315
-1930 y Fs(keymap)96 b Ft(Sets)19 b(Readline's)h(idea)f(of)g(the)g
+1830 y(b)q(een)17 b(giv)o(en)e(a)h(v)m(alue,)f(the)h(c)o(haracters)1247
+1828 y Fk(h)p 1259 1802 70 2 v 1259 1830 a Fj(ESC)p 1259
+1837 V 1326 1828 a Fk(i)1357 1830 y Ft(and)g Fl(C-J)f
+Ft(will)f(terminate)h(an)555 1885 y(incremen)o(tal)f(searc)o(h.)315
+1964 y Fs(keymap)96 b Ft(Sets)19 b(Readline's)h(idea)f(of)g(the)g
(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)f(com-)555
-1985 y(mands.)41 b(Acceptable)22 b Fs(keymap)g Ft(names)g(are)f
-Fs(emacs)p Ft(,)i Fs(emacs-standard)p Ft(,)555 2040 y
+2019 y(mands.)41 b(Acceptable)22 b Fs(keymap)g Ft(names)g(are)f
+Fs(emacs)p Ft(,)i Fs(emacs-standard)p Ft(,)555 2073 y
Fs(emacs-meta)p Ft(,)49 b Fs(emacs-ctlx)p Ft(,)g Fs(vi)p
Ft(,)h Fs(vi-move)p Ft(,)f Fs(vi-command)p Ft(,)g(and)555
-2095 y Fs(vi-insert)p Ft(.)31 b Fs(vi)20 b Ft(is)f(equiv)m(alen)o(t)g
+2128 y Fs(vi-insert)p Ft(.)31 b Fs(vi)20 b Ft(is)f(equiv)m(alen)o(t)g
(to)g Fs(vi-command)p Ft(;)g Fs(emacs)g Ft(is)g(equiv)m(alen)o(t)555
-2149 y(to)c Fs(emacs-standard)p Ft(.)20 b(The)d(default)e(v)m(alue)h
+2183 y(to)c Fs(emacs-standard)p Ft(.)20 b(The)d(default)e(v)m(alue)h
(is)g Fs(emacs)p Ft(.)21 b(The)16 b(v)m(alue)g(of)g(the)555
-2204 y Fs(editing-mode)e Ft(v)m(ariable)g(also)g(a\013ects)h(the)g
-(default)g(k)o(eymap.)315 2300 y Fs(mark-directories)555
-2355 y Ft(If)k(set)g(to)g(`)p Fs(on)p Ft(',)f(completed)h(directory)g
-(names)g(ha)o(v)o(e)f(a)h(slash)g(app)q(ended.)555 2410
+2238 y Fs(editing-mode)e Ft(v)m(ariable)g(also)g(a\013ects)h(the)g
+(default)g(k)o(eymap.)315 2317 y Fs(mark-directories)555
+2372 y Ft(If)k(set)g(to)g(`)p Fs(on)p Ft(',)f(completed)h(directory)g
+(names)g(ha)o(v)o(e)f(a)h(slash)g(app)q(ended.)555 2426
y(The)c(default)g(is)g(`)p Fs(on)p Ft('.)315 2506 y Fs
(mark-modified-lines)555 2560 y Ft(This)j(v)m(ariable,)f(when)i(set)e
(to)h(`)p Fs(on)p Ft(',)f(causes)h(Readline)g(to)f(displa)o(y)g(an)h
(haracters)h(ma)o(y)195 314 y(b)q(e)j(pushed)g(bac)o(k.)k
Fs(rl_stuff_char)14 b Ft(returns)h(1)g(if)g(the)g(c)o(haracter)g(w)o
(as)f(successfully)h(inserted;)195 369 y(0)g(otherwise.)1675
-493 y([F)l(unction])-1801 b Fg(int)20 b Ff(rl)p 217 493
-V 24 w(execute)p 428 493 V 27 w(next)j Fe(\()p Fs(int)15
-b(c)p Fe(\))195 548 y Ft(Mak)o(e)i Fi(c)k Ft(b)q(e)d(the)g(next)g
+486 y([F)l(unction])-1801 b Fg(int)20 b Ff(rl)p 217 486
+V 24 w(execute)p 428 486 V 27 w(next)j Fe(\()p Fs(int)15
+b(c)p Fe(\))195 541 y Ft(Mak)o(e)i Fi(c)k Ft(b)q(e)d(the)g(next)g
(command)g(to)f(b)q(e)i(executed)f(when)h Fs(rl_read_key\(\))d
-Ft(is)h(called.)27 b(This)195 602 y(sets)15 b Fi(rl)p
-318 602 14 2 v 19 w(p)q(ending)p 494 602 V 21 w(input)p
-Ft(.)1675 726 y([F)l(unction])-1801 b Fg(int)20 b Ff(rl)p
-217 726 18 3 v 24 w(clear)p 360 726 V 26 w(p)r(ending)p
-587 726 V 23 w(input)j Fe(\()p Fs(void)p Fe(\))195 781
-y Ft(Unset)e Fi(rl)p 365 781 14 2 v 19 w(p)q(ending)p
-541 781 V 21 w(input)p Ft(,)h(e\013ectiv)o(ely)e(negating)g(the)h
+Ft(is)h(called.)27 b(This)195 596 y(sets)15 b Fi(rl)p
+318 596 14 2 v 19 w(p)q(ending)p 494 596 V 21 w(input)p
+Ft(.)1675 714 y([F)l(unction])-1801 b Fg(int)20 b Ff(rl)p
+217 714 18 3 v 24 w(clear)p 360 714 V 26 w(p)r(ending)p
+587 714 V 23 w(input)j Fe(\()p Fs(void)p Fe(\))195 768
+y Ft(Unset)e Fi(rl)p 365 768 14 2 v 19 w(p)q(ending)p
+541 768 V 21 w(input)p Ft(,)h(e\013ectiv)o(ely)e(negating)g(the)h
(e\013ect)g(of)f(an)o(y)h(previous)f(call)g(to)g Fs(rl_)195
-836 y(execute_next\(\))p Ft(.)29 b(This)18 b(w)o(orks)g(only)g(if)h
+823 y(execute_next\(\))p Ft(.)29 b(This)18 b(w)o(orks)g(only)g(if)h
(the)f(p)q(ending)i(input)f(has)g(not)f(already)g(b)q(een)i(read)195
-891 y(with)15 b Fs(rl_read_key\(\))p Ft(.)1675 1015 y([F)l(unction])
--1801 b Fg(int)20 b Ff(rl)p 217 1015 18 3 v 24 w(set)p
-312 1015 V 26 w(k)n(eyb)r(oard)p 569 1015 V 24 w(input)p
-727 1015 V 25 w(timeout)j Fe(\()p Fs(int)14 b(u)p Fe(\))195
-1070 y Ft(While)19 b(w)o(aiting)g(for)g(k)o(eyb)q(oard)h(input)g(in)g
+878 y(with)15 b Fs(rl_read_key\(\))p Ft(.)1675 996 y([F)l(unction])
+-1801 b Fg(int)20 b Ff(rl)p 217 996 18 3 v 24 w(set)p
+312 996 V 26 w(k)n(eyb)r(oard)p 569 996 V 24 w(input)p
+727 996 V 25 w(timeout)j Fe(\()p Fs(int)14 b(u)p Fe(\))195
+1050 y Ft(While)19 b(w)o(aiting)g(for)g(k)o(eyb)q(oard)h(input)g(in)g
Fs(rl_read_key\(\))p Ft(,)f(Readline)h(will)f(w)o(ait)g(for)g
-Fi(u)h Ft(mi-)195 1124 y(croseconds)h(for)e(input)i(b)q(efore)g
+Fi(u)h Ft(mi-)195 1105 y(croseconds)c(for)e(input)i(b)q(efore)g
(calling)e(an)o(y)h(function)g(assigned)g(to)g Fs(rl_event_hook)p
-Ft(.)34 b(The)195 1179 y(default)15 b(w)o(aiting)e(p)q(erio)q(d)j(is)e
-(one-ten)o(th)i(of)e(a)h(second.)21 b(Returns)15 b(the)h(old)e(timeout)
-h(v)m(alue.)75 1323 y Fh(2.4.9)30 b(T)-5 b(erminal)20
-b(Managemen)n(t)1675 1461 y Ft([F)l(unction])-1801 b
-Fg(void)20 b Ff(rl)p 243 1461 V 24 w(prep)p 381 1461
-V 25 w(terminal)i Fe(\()p Fs(int)15 b(meta_flag)p Fe(\))195
-1516 y Ft(Mo)q(dify)21 b(the)g(terminal)f(settings)g(for)h(Readline's)g
-(use,)i(so)d Fs(readline\(\))g Ft(can)i(read)f(a)g(single)195
-1571 y(c)o(haracter)15 b(at)g(a)g(time)f(from)h(the)h(k)o(eyb)q(oard.)k
-(The)c Fi(meta)p 1189 1571 14 2 v 19 w(\015ag)j Ft(argumen)o(t)c
-(should)h(b)q(e)g(non-zero)195 1626 y(if)f(Readline)g(should)g(read)g
-(eigh)o(t-bit)g(input.)1675 1750 y([F)l(unction])-1801
-b Fg(void)20 b Ff(rl)p 243 1750 18 3 v 24 w(deprep)p
-439 1750 V 25 w(terminal)i Fe(\()p Fs(void)p Fe(\))195
-1805 y Ft(Undo)16 b(the)g(e\013ects)f(of)h Fs(rl_prep_terminal\(\))p
-Ft(,)d(lea)o(ving)i(the)g(terminal)g(in)h(the)f(state)g(in)h(whic)o(h)
-195 1859 y(it)e(w)o(as)h(b)q(efore)g(the)h(most)e(recen)o(t)h(call)g
-(to)f Fs(rl_prep_terminal\(\))p Ft(.)1675 1983 y([F)l(unction])-1801
-b Fg(void)20 b Ff(rl)p 243 1983 V 24 w(tt)n(y)p 339 1983
-V 27 w(set)p 437 1983 V 25 w(default)p 636 1983 V 25
+Ft(.)k Fi(u)d Ft(m)o(ust)195 1160 y(b)q(e)h(greater)e(than)g(or)h
+(equal)g(to)f(zero)h(\(a)f(zero-length)h(timeout)f(is)g(equiv)m(alen)o
+(t)h(to)f(a)h(p)q(oll\).)21 b(The)195 1215 y(default)15
+b(w)o(aiting)e(p)q(erio)q(d)j(is)e(one-ten)o(th)i(of)e(a)h(second.)21
+b(Returns)15 b(the)h(old)e(timeout)h(v)m(alue.)75 1352
+y Fh(2.4.9)30 b(T)-5 b(erminal)20 b(Managemen)n(t)1675
+1487 y Ft([F)l(unction])-1801 b Fg(void)20 b Ff(rl)p
+243 1487 V 24 w(prep)p 381 1487 V 25 w(terminal)i Fe(\()p
+Fs(int)15 b(meta_flag)p Fe(\))195 1542 y Ft(Mo)q(dify)21
+b(the)g(terminal)f(settings)g(for)h(Readline's)g(use,)i(so)d
+Fs(readline\(\))g Ft(can)i(read)f(a)g(single)195 1597
+y(c)o(haracter)15 b(at)g(a)g(time)f(from)h(the)h(k)o(eyb)q(oard.)k(The)
+c Fi(meta)p 1189 1597 14 2 v 19 w(\015ag)j Ft(argumen)o(t)c(should)h(b)
+q(e)g(non-zero)195 1651 y(if)f(Readline)g(should)g(read)g(eigh)o(t-bit)
+g(input.)1675 1769 y([F)l(unction])-1801 b Fg(void)20
+b Ff(rl)p 243 1769 18 3 v 24 w(deprep)p 439 1769 V 25
+w(terminal)i Fe(\()p Fs(void)p Fe(\))195 1824 y Ft(Undo)16
+b(the)g(e\013ects)f(of)h Fs(rl_prep_terminal\(\))p Ft(,)d(lea)o(ving)i
+(the)g(terminal)g(in)h(the)f(state)g(in)h(whic)o(h)195
+1879 y(it)e(w)o(as)h(b)q(efore)g(the)h(most)e(recen)o(t)h(call)g(to)f
+Fs(rl_prep_terminal\(\))p Ft(.)1675 1996 y([F)l(unction])-1801
+b Fg(void)20 b Ff(rl)p 243 1996 V 24 w(tt)n(y)p 339 1996
+V 27 w(set)p 437 1996 V 25 w(default)p 636 1996 V 25
w(bindings)h Fe(\()p Fs(Keymap)14 b(kmap)p Fe(\))195
-2038 y Ft(Read)19 b(the)g(op)q(erating)e(system's)h(terminal)f(editing)
+2051 y Ft(Read)19 b(the)g(op)q(erating)e(system's)h(terminal)f(editing)
h(c)o(haracters)g(\(as)f(w)o(ould)h(b)q(e)h(displa)o(y)o(ed)f(b)o(y)195
-2093 y Fs(stty)p Ft(\))c(to)h(their)g(Readline)g(equiv)m(alen)o(ts.)20
+2106 y Fs(stty)p Ft(\))c(to)h(their)g(Readline)g(equiv)m(alen)o(ts.)20
b(The)15 b(bindings)g(are)g(p)q(erformed)g(in)g Fi(kmap)p
-Ft(.)1675 2217 y([F)l(unction])-1801 b Fg(void)20 b Ff(rl)p
-243 2217 V 24 w(tt)n(y)p 339 2217 V 27 w(unset)p 501
-2217 V 25 w(default)p 700 2217 V 24 w(bindings)i Fe(\()p
-Fs(Keymap)14 b(kmap)p Fe(\))195 2272 y Ft(Reset)i(the)g(bindings)g
+Ft(.)1675 2224 y([F)l(unction])-1801 b Fg(void)20 b Ff(rl)p
+243 2224 V 24 w(tt)n(y)p 339 2224 V 27 w(unset)p 501
+2224 V 25 w(default)p 700 2224 V 24 w(bindings)i Fe(\()p
+Fs(Keymap)14 b(kmap)p Fe(\))195 2278 y Ft(Reset)i(the)g(bindings)g
(manipulated)f(b)o(y)h Fs(rl_tty_set_default_bindings)c
-Ft(so)k(that)f(the)h(ter-)195 2327 y(minal)j(editing)g(c)o(haracters)g
+Ft(so)k(that)f(the)h(ter-)195 2333 y(minal)j(editing)g(c)o(haracters)g
(are)h(b)q(ound)g(to)f Fs(rl_insert)p Ft(.)33 b(The)20
-b(bindings)g(are)f(p)q(erformed)h(in)195 2382 y Fi(kmap)p
+b(bindings)g(are)f(p)q(erformed)h(in)195 2388 y Fi(kmap)p
Ft(.)1675 2506 y([F)l(unction])-1801 b Fg(int)20 b Ff(rl)p
217 2506 V 24 w(reset)p 362 2506 V 25 w(terminal)j Fe(\()p
Fs(const)14 b(char)g(*terminal_name)p Fe(\))195 2560
(yp)q(ed.)20 b(It)14 b(returns)g(an)g(in)o(teger)195
204 y(that)i(should)g(b)q(e)h(non-zero)g(if)f(the)h(function)f(mo)q
(di\014es)h(its)e(directory)h(argumen)o(t.)23 b(It)17
-b(could)f(b)q(e)195 259 y(used)g(to)e(expand)i(sym)o(b)q(olic)f(links)f
-(or)h(shell)g(v)m(ariables)f(in)h(pathnames.)1685 362
-y([V)l(ariable])-1801 b Fg(rl_compdisp_func_t)22 b(*)d
-Ff(rl)p 654 362 18 3 v 25 w(completion)p 954 362 V 24
-w(displa)n(y)p 1153 362 V 25 w(matc)n(hes)p 1380 362
-V 26 w(ho)r(ok)195 417 y Ft(If)11 b(non-zero,)h(then)f(this)g(is)f(the)
-h(address)g(of)g(a)g(function)f(to)h(call)f(when)h(completing)g(a)f(w)o
-(ord)h(w)o(ould)195 471 y(normally)f(displa)o(y)g(the)h(list)f(of)h(p)q
-(ossible)f(matc)o(hes.)18 b(This)11 b(function)g(is)g(called)f(in)h
-(lieu)g(of)g(Readline)195 526 y(displa)o(ying)17 b(the)i(list.)28
+b(could)f(b)q(e)195 259 y(used)h(to)f(expand)i(sym)o(b)q(olic)e(links)g
+(or)g(shell)g(v)m(ariables)h(in)f(pathnames.)24 b(A)o(t)17
+b(the)g(least,)e(ev)o(en)i(if)195 314 y(no)h(other)g(expansion)g(is)f
+(p)q(erformed,)i(this)f(function)g(should)g(remo)o(v)o(e)f(an)o(y)h
+(quote)g(c)o(haracters)195 369 y(from)c(the)i(directory)e(name,)h(b)q
+(ecause)h(its)f(result)f(will)g(b)q(e)i(passed)f(directly)g(to)f
+Fs(opendir\(\))p Ft(.)1685 458 y([V)l(ariable])-1801
+b Fg(rl_compdisp_func_t)22 b(*)d Ff(rl)p 654 458 18 3
+v 25 w(completion)p 954 458 V 24 w(displa)n(y)p 1153
+458 V 25 w(matc)n(hes)p 1380 458 V 26 w(ho)r(ok)195 512
+y Ft(If)11 b(non-zero,)h(then)f(this)g(is)f(the)h(address)g(of)g(a)g
+(function)f(to)h(call)f(when)h(completing)g(a)f(w)o(ord)h(w)o(ould)195
+567 y(normally)f(displa)o(y)g(the)h(list)f(of)h(p)q(ossible)f(matc)o
+(hes.)18 b(This)11 b(function)g(is)g(called)f(in)h(lieu)g(of)g
+(Readline)195 622 y(displa)o(ying)17 b(the)i(list.)28
b(It)19 b(tak)o(es)f(three)g(argumen)o(ts:)26 b(\()p
Fs(char)14 b(**)p Fi(matc)o(hes)p Ft(,)19 b Fs(int)f
-Fi(n)o(um)p 1685 526 14 2 v 20 w(matc)o(hes)p Ft(,)195
-581 y Fs(int)13 b Fi(max)p 368 581 V 19 w(length)p Ft(\))g(where)g
+Fi(n)o(um)p 1685 622 14 2 v 20 w(matc)o(hes)p Ft(,)195
+677 y Fs(int)13 b Fi(max)p 368 677 V 19 w(length)p Ft(\))g(where)g
Fi(matc)o(hes)i Ft(is)e(the)g(arra)o(y)f(of)h(matc)o(hing)f(strings,)g
-Fi(n)o(um)p 1575 581 V 20 w(matc)o(hes)j Ft(is)e(the)195
-636 y(n)o(um)o(b)q(er)i(of)f(strings)f(in)i(that)f(arra)o(y)l(,)f(and)i
-Fi(max)p 1011 636 V 19 w(length)f Ft(is)g(the)h(length)f(of)g(the)h
-(longest)f(string)f(in)195 691 y(that)g(arra)o(y)l(.)19
+Fi(n)o(um)p 1575 677 V 20 w(matc)o(hes)j Ft(is)e(the)195
+732 y(n)o(um)o(b)q(er)i(of)f(strings)f(in)i(that)f(arra)o(y)l(,)f(and)i
+Fi(max)p 1011 732 V 19 w(length)f Ft(is)g(the)h(length)f(of)g(the)h
+(longest)f(string)f(in)195 786 y(that)g(arra)o(y)l(.)19
b(Readline)14 b(pro)o(vides)g(a)f(con)o(v)o(enience)i(function,)f
-Fs(rl_display_match_list)p Ft(,)d(that)195 745 y(tak)o(es)17
+Fs(rl_display_match_list)p Ft(,)d(that)195 841 y(tak)o(es)17
b(care)g(of)g(doing)g(the)g(displa)o(y)g(to)f(Readline's)i(output)f
(stream.)26 b(That)16 b(function)i(ma)o(y)e(b)q(e)195
-800 y(called)f(from)f(this)h(ho)q(ok.)1685 903 y([V)l(ariable])-1801
-b Fg(const)20 b(char)g(*)f Ff(rl)p 438 903 18 3 v 25
-w(basic)p 587 903 V 24 w(w)n(ord)p 735 903 V 25 w(break)p
-900 903 V 25 w(c)n(haracters)195 958 y Ft(The)j(basic)g(list)f(of)h(c)o
-(haracters)f(that)g(signal)g(a)h(break)g(b)q(et)o(w)o(een)g(w)o(ords)g
-(for)f(the)h(completer)195 1012 y(routine.)29 b(The)19
+896 y(called)f(from)f(this)h(ho)q(ok.)1685 985 y([V)l(ariable])-1801
+b Fg(const)20 b(char)g(*)f Ff(rl)p 438 985 18 3 v 25
+w(basic)p 587 985 V 24 w(w)n(ord)p 735 985 V 25 w(break)p
+900 985 V 25 w(c)n(haracters)195 1040 y Ft(The)j(basic)g(list)f(of)h(c)
+o(haracters)f(that)g(signal)g(a)h(break)g(b)q(et)o(w)o(een)g(w)o(ords)g
+(for)f(the)h(completer)195 1095 y(routine.)29 b(The)19
b(default)f(v)m(alue)h(of)f(this)g(v)m(ariable)g(is)g(the)h(c)o
-(haracters)f(whic)o(h)g(break)h(w)o(ords)f(for)195 1067
+(haracters)f(whic)o(h)g(break)h(w)o(ords)f(for)195 1149
y(completion)c(in)h(Bash:)20 b Fs(")15 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p
-Ft(.)1685 1170 y([V)l(ariable])-1801 b Fg(const)20 b(char)g(*)f
-Ff(rl)p 438 1170 V 25 w(basic)p 587 1170 V 24 w(quote)p
-750 1170 V 26 w(c)n(haracters)195 1225 y Ft(A)c(list)f(of)h(quote)g(c)o
+Ft(.)1685 1238 y([V)l(ariable])-1801 b Fg(const)20 b(char)g(*)f
+Ff(rl)p 438 1238 V 25 w(basic)p 587 1238 V 24 w(quote)p
+750 1238 V 26 w(c)n(haracters)195 1293 y Ft(A)c(list)f(of)h(quote)g(c)o
(haracters)f(whic)o(h)h(can)h(cause)f(a)g(w)o(ord)g(break.)1685
-1328 y([V)l(ariable])-1801 b Fg(const)20 b(char)g(*)f
-Ff(rl)p 438 1328 V 25 w(completer)p 711 1328 V 25 w(w)n(ord)p
-860 1328 V 25 w(break)p 1025 1328 V 25 w(c)n(haracters)195
-1382 y Ft(The)33 b(list)e(of)h(c)o(haracters)g(that)f(signal)h(a)g
+1382 y([V)l(ariable])-1801 b Fg(const)20 b(char)g(*)f
+Ff(rl)p 438 1382 V 25 w(completer)p 711 1382 V 25 w(w)n(ord)p
+860 1382 V 25 w(break)p 1025 1382 V 25 w(c)n(haracters)195
+1437 y Ft(The)33 b(list)e(of)h(c)o(haracters)g(that)f(signal)h(a)g
(break)g(b)q(et)o(w)o(een)h(w)o(ords)f(for)g Fs(rl_complete_)195
-1437 y(internal\(\))p Ft(.)18 b(The)e(default)f(list)f(is)g(the)i(v)m
+1492 y(internal\(\))p Ft(.)18 b(The)e(default)f(list)f(is)g(the)i(v)m
(alue)f(of)g Fs(rl_basic_word_break_chara)o(cters)p Ft(.)1685
-1540 y([V)l(ariable])-1801 b Fg(rl_cpvfunc_t)21 b(*)e
-Ff(rl)p 497 1540 V 25 w(completion)p 797 1540 V 25 w(w)n(ord)p
-946 1540 V 25 w(break)p 1111 1540 V 25 w(ho)r(ok)195
-1595 y Ft(If)d(non-zero,)g(this)f(is)g(the)h(address)g(of)f(a)h
+1581 y([V)l(ariable])-1801 b Fg(rl_cpvfunc_t)21 b(*)e
+Ff(rl)p 497 1581 V 25 w(completion)p 797 1581 V 25 w(w)n(ord)p
+946 1581 V 25 w(break)p 1111 1581 V 25 w(ho)r(ok)195
+1636 y Ft(If)d(non-zero,)g(this)f(is)g(the)h(address)g(of)f(a)h
(function)f(to)g(call)g(when)i(Readline)f(is)f(deciding)h(where)195
-1649 y(to)h(separate)f(w)o(ords)h(for)f(w)o(ord)g(completion.)25
+1691 y(to)h(separate)f(w)o(ords)h(for)f(w)o(ord)g(completion.)25
b(It)18 b(should)f(return)g(a)g(c)o(haracter)f(string)g(lik)o(e)g
-Fs(rl_)195 1704 y(completer_word_break_chara)o(cters)d
+Fs(rl_)195 1745 y(completer_word_break_chara)o(cters)d
Ft(to)j(b)q(e)h(used)g(to)f(p)q(erform)g(the)h(curren)o(t)f
-(completion.)195 1759 y(The)d(function)f(ma)o(y)f(c)o(ho)q(ose)i(to)f
+(completion.)195 1800 y(The)d(function)f(ma)o(y)f(c)o(ho)q(ose)i(to)f
(set)g Fs(rl_completer_word_break_)o(charact)o(ers)d
-Ft(itself.)18 b(If)13 b(the)195 1814 y(function)i(returns)g
+Ft(itself.)18 b(If)13 b(the)195 1855 y(function)i(returns)g
Fs(NULL)p Ft(,)f Fs(rl_completer_word_break_chara)o(cters)e
-Ft(is)j(used.)1685 1917 y([V)l(ariable])-1801 b Fg(const)20
-b(char)g(*)f Ff(rl)p 438 1917 V 25 w(completer)p 711
-1917 V 25 w(quote)p 875 1917 V 25 w(c)n(haracters)195
-1971 y Ft(A)e(list)f(of)g(c)o(haracters)g(whic)o(h)h(can)g(b)q(e)g
+Ft(is)j(used.)1685 1944 y([V)l(ariable])-1801 b Fg(const)20
+b(char)g(*)f Ff(rl)p 438 1944 V 25 w(completer)p 711
+1944 V 25 w(quote)p 875 1944 V 25 w(c)n(haracters)195
+1999 y Ft(A)e(list)f(of)g(c)o(haracters)g(whic)o(h)h(can)g(b)q(e)g
(used)h(to)e(quote)h(a)f(substring)g(of)h(the)g(line.)24
-b(Completion)195 2026 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)f
+b(Completion)195 2054 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)f
(substring,)h(and)g(within)g(the)g(substring)f Fs
-(rl_completer_word_break_)195 2081 y(characters)k Ft(are)h(treated)g
+(rl_completer_word_break_)195 2108 y(characters)k Ft(are)h(treated)g
(as)h(an)o(y)f(other)g(c)o(haracter,)g(unless)h(they)f(also)g(app)q
-(ear)h(within)f(this)195 2136 y(list.)1685 2238 y([V)l(ariable])-1801
-b Fg(const)20 b(char)g(*)f Ff(rl)p 438 2238 V 25 w(\014lename)p
-671 2238 V 24 w(quote)p 834 2238 V 26 w(c)n(haracters)195
-2293 y Ft(A)e(list)f(of)g(c)o(haracters)g(that)g(cause)h(a)g
+(ear)h(within)f(this)195 2163 y(list.)1685 2252 y([V)l(ariable])-1801
+b Fg(const)20 b(char)g(*)f Ff(rl)p 438 2252 V 25 w(\014lename)p
+671 2252 V 24 w(quote)p 834 2252 V 26 w(c)n(haracters)195
+2307 y Ft(A)e(list)f(of)g(c)o(haracters)g(that)g(cause)h(a)g
(\014lename)g(to)f(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)g(when)g
-(they)195 2348 y(app)q(ear)e(in)g(a)g(completed)g(\014lename.)20
+(they)195 2362 y(app)q(ear)e(in)g(a)g(completed)g(\014lename.)20
b(The)c(default)f(is)f(the)i(n)o(ull)e(string.)1685 2451
y([V)l(ariable])-1801 b Fg(const)20 b(char)g(*)f Ff(rl)p
438 2451 V 25 w(sp)r(ecial)p 631 2451 V 24 w(pre\014xes)195
-This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 17 NOV 2005 10:43
+This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 9 FEB 2006 09:50
**/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi
(/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi (./texinfo.tex
Loading texinfo [version 2003-02-03.16]: Basics,
\openout9 = `rlman.bt'.
] [2] [3] [4] [5]
-Underfull \hbox (badness 5231) in paragraph at lines 500--516
+Underfull \hbox (badness 5231) in paragraph at lines 502--518
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[6] [7] [8] [9] [10]
-Overfull \hbox (26.43913pt too wide) in paragraph at lines 813--813
+Overfull \hbox (26.43913pt too wide) in paragraph at lines 815--815
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
[11] [12] [13] [14] [15] [16] [17] [18]) (./rltech.texi Chapter 2 [19] [20]
[21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35]
[36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46]
-Underfull \hbox (badness 7379) in paragraph at lines 1818--1823
+Underfull \hbox (badness 7379) in paragraph at lines 1823--1828
[]@textrm If an application-specific com-ple-tion func-tion as-signed to @text
tt rl_attempted_
Here is how much of TeX's memory you used:
1499 strings out of 98002
18486 string characters out of 1221987
- 59444 words of memory out of 1000001
+ 59430 words of memory out of 1000001
2361 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
19 hyphenation exceptions out of 1000
15i,8n,17p,281b,695s stack positions out of 1500i,500n,5000p,200000b,5000s
-Output written on rlman.dvi (74 pages, 277700 bytes).
+Output written on rlman.dvi (74 pages, 278124 bytes).
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.
@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.
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on November, 17 2005 by texi2html 1.64 -->
+<!-- Created on February, 9 2006 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
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
<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>November, 17 2005</I>
+This document was generated by <I>Chet Ramey</I> on <I>February, 9 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>November, 17 2005</I>
+by <I>Chet Ramey</I> on <I>February, 9 2006</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
./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, 9 February 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.
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.
\1f
Tag Table:
-Node: Top\7f1346
-Node: Command Line Editing\7f1778
-Node: Introduction and Notation\7f2421
-Node: Readline Interaction\7f4045
-Node: Readline Bare Essentials\7f5238
-Node: Readline Movement Commands\7f7029
-Node: Readline Killing Commands\7f7996
-Node: Readline Arguments\7f9918
-Node: Searching\7f10964
-Node: Readline Init File\7f13117
-Node: Readline Init File Syntax\7f14184
-Node: Conditional Init Constructs\7f26120
-Node: Sample Init File\7f28655
-Node: Bindable Readline Commands\7f31774
-Node: Commands For Moving\7f32833
-Node: Commands For History\7f33696
-Node: Commands For Text\7f36822
-Node: Commands For Killing\7f39550
-Node: Numeric Arguments\7f41694
-Node: Commands For Completion\7f42835
-Node: Keyboard Macros\7f44381
-Node: Miscellaneous Commands\7f44954
-Node: Readline vi Mode\7f48317
-Node: Copying This Manual\7f49238
-Node: GNU Free Documentation License\7f49470
+Node: Top\7f1339
+Node: Command Line Editing\7f1771
+Node: Introduction and Notation\7f2414
+Node: Readline Interaction\7f4038
+Node: Readline Bare Essentials\7f5231
+Node: Readline Movement Commands\7f7022
+Node: Readline Killing Commands\7f7989
+Node: Readline Arguments\7f9911
+Node: Searching\7f10957
+Node: Readline Init File\7f13110
+Node: Readline Init File Syntax\7f14265
+Node: Conditional Init Constructs\7f26201
+Node: Sample Init File\7f28736
+Node: Bindable Readline Commands\7f31855
+Node: Commands For Moving\7f32914
+Node: Commands For History\7f33777
+Node: Commands For Text\7f36903
+Node: Commands For Killing\7f39631
+Node: Numeric Arguments\7f41775
+Node: Commands For Completion\7f42916
+Node: Keyboard Macros\7f44462
+Node: Miscellaneous Commands\7f45035
+Node: Readline vi Mode\7f48398
+Node: Copying This Manual\7f49319
+Node: GNU Free Documentation License\7f49551
\1f
End Tag Table
-This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 17 NOV 2005 10:43
+This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 9 FEB 2006 09:50
**/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi (./texinfo.tex
Loading texinfo [version 2003-02-03.16]: Basics,
] [2] [3]
[4] [5]
-Underfull \hbox (badness 5231) in paragraph at lines 500--516
+Underfull \hbox (badness 5231) in paragraph at lines 502--518
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[6] [7] [8] [9] [10]
-Overfull \hbox (26.43913pt too wide) in paragraph at lines 813--813
+Overfull \hbox (26.43913pt too wide) in paragraph at lines 815--815
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
Here is how much of TeX's memory you used:
1405 strings out of 98002
16392 string characters out of 1221987
- 44928 words of memory out of 1000001
+ 44914 words of memory out of 1000001
2276 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
19 hyphenation exceptions out of 1000
13i,8n,10p,285b,695s stack positions out of 1500i,500n,5000p,200000b,5000s
-Output written on rluserman.dvi (32 pages, 92872 bytes).
+Output written on rluserman.dvi (32 pages, 92940 bytes).
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o rluserman.ps rluserman.dvi
%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2005.11.17:1043
+%DVIPSSource: TeX output 2006.02.09:0950
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 75 659 a Fp(GNU)33 b(Readline)f(Library)f(User)i
-(In)m(terface)p 75 709 1800 17 v 686 757 a Fo(Edition)15
-b(5.1-b)q(eta1,)e(for)i Fn(Readline)f(Library)g Fo(V)l(ersion)h(5.1-b)q
-(eta1.)1569 811 y(No)o(v)o(em)o(b)q(er)g(2005)75 2467
-y Fm(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
-b(Reserv)n(e)f(Univ)n(ersit)n(y)75 2534 y(Brian)g(F)-6
-b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)p
-75 2570 1800 9 v eop end
+(In)m(terface)p 75 709 1800 17 v 936 757 a Fo(Edition)15
+b(5.2,)e(for)i Fn(Readline)f(Library)g Fo(V)l(ersion)h(5.2.)1590
+811 y(F)l(ebruary)g(2006)75 2467 y Fm(Chet)22 b(Ramey)-6
+b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
+2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
+b(oundation)p 75 2570 1800 9 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 75 1512 a Fo(This)19 b(man)o(ual)f(describ)q(es)i
-(the)f(end)h(user)f(in)o(terface)g(of)f(the)i(GNU)f(Readline)g(Library)
-g(\(v)o(ersion)f(5.1-)75 1567 y(b)q(eta1,)e(11)g(No)o(v)o(em)o(b)q(er)g
-(2005\),)f(a)h(library)g(whic)o(h)g(aids)g(in)g(the)h(consistency)f(of)
-g(user)h(in)o(terface)f(across)75 1621 y(discrete)f(programs)f(whic)o
-(h)h(pro)o(vide)g(a)g(command)g(line)g(in)o(terface.)75
-1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fl(\015)g
-Fo(1988-2005)e(F)l(ree)i(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)75
-1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f(mak)o(e)h(and)g
-(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o(ual)f(pro)o
-(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g(this)g(p)q
-(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f(copies.)195
-1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,)h(distribute)
-f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195
+(the)g(end)g(user)f(in)o(terface)g(of)g(the)g(GNU)g(Readline)h(Library)
+f(\(v)o(ersion)f(5.2,)75 1567 y(9)f(F)l(ebruary)h(2006\),)e(a)h
+(library)f(whic)o(h)i(aids)f(in)g(the)g(consistency)h(of)f(user)h(in)o
+(terface)e(across)h(discrete)75 1621 y(programs)d(whic)o(h)h(pro)o
+(vide)g(a)g(command)g(line)g(in)o(terface.)75 1689 y(Cop)o(yrigh)o(t)
+301 1688 y(c)289 1689 y Fl(\015)g Fo(1988-2005)e(F)l(ree)i(Soft)o(w)o
+(are)f(F)l(oundation,)g(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)
+h(to)f(mak)o(e)h(and)g(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g
+(man)o(ual)f(pro)o(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h
+(and)g(this)g(p)q(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f
+(copies.)195 1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,)
+h(distribute)f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195
1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)f
(License,)i(V)l(ersion)f(1.1)f(or)g(an)o(y)h(later)195
1988 y(v)o(ersion)13 b(published)h(b)o(y)g(the)g(F)l(ree)f(Soft)o(w)o
(and)g(restore)g(the)75 259 y(original)13 b(line.)19
b(When)c(the)f(searc)o(h)g(is)g(terminated,)g(the)g(history)g(en)o(try)
g(con)o(taining)f(the)i(searc)o(h)f(string)75 314 y(b)q(ecomes)i(the)f
-(curren)o(t)g(line.)137 384 y(T)l(o)g(\014nd)i(other)e(matc)o(hing)f
+(curren)o(t)g(line.)137 385 y(T)l(o)g(\014nd)i(other)e(matc)o(hing)f
(en)o(tries)h(in)h(the)f(history)g(list,)f(t)o(yp)q(e)h
Fg(C-r)g Fo(or)g Fg(C-s)g Fo(as)h(appropriate.)j(This)75
-439 y(will)12 b(searc)o(h)h(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)h
+440 y(will)12 b(searc)o(h)h(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)h
(the)g(history)f(for)h(the)g(next)g(en)o(try)g(matc)o(hing)f(the)h
-(searc)o(h)g(string)75 494 y(t)o(yp)q(ed)19 b(so)g(far.)30
+(searc)o(h)g(string)75 495 y(t)o(yp)q(ed)19 b(so)g(far.)30
b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-g(command)f(will)g(terminate)g(the)75 549 y(searc)o(h)10
+g(command)f(will)g(terminate)g(the)75 550 y(searc)o(h)10
b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)h(a)1063
-547 y Ff(h)p 1076 521 76 2 v 1076 549 a Fe(RET)p 1076
-556 V 1149 547 a Ff(i)1174 549 y Fo(will)e(terminate)h(the)h(searc)o(h)
-f(and)h(accept)75 604 y(the)k(line,)f(thereb)o(y)h(executing)f(the)h
+548 y Ff(h)p 1076 522 76 2 v 1076 550 a Fe(RET)p 1076
+557 V 1149 548 a Ff(i)1174 550 y Fo(will)e(terminate)h(the)h(searc)o(h)
+f(and)h(accept)75 605 y(the)k(line,)f(thereb)o(y)h(executing)f(the)h
(command)g(from)f(the)g(history)g(list.)k(A)d(mo)o(v)o(emen)o(t)f
-(command)g(will)75 658 y(terminate)g(the)h(searc)o(h,)g(mak)o(e)g(the)g
+(command)g(will)75 659 y(terminate)g(the)h(searc)o(h,)g(mak)o(e)g(the)g
(last)f(line)h(found)h(the)f(curren)o(t)g(line,)f(and)i(b)q(egin)f
-(editing.)137 729 y(Readline)j(remem)o(b)q(ers)f(the)h(last)e(incremen)
+(editing.)137 731 y(Readline)j(remem)o(b)q(ers)f(the)h(last)e(incremen)
o(tal)h(searc)o(h)g(string.)26 b(If)17 b(t)o(w)o(o)f
-Fg(C-r)p Fo(s)h(are)g(t)o(yp)q(ed)h(without)75 784 y(an)o(y)g(in)o
+Fg(C-r)p Fo(s)h(are)g(t)o(yp)q(ed)h(without)75 786 y(an)o(y)g(in)o
(terv)o(ening)f(c)o(haracters)h(de\014ning)g(a)g(new)h(searc)o(h)f
(string,)f(an)o(y)h(remem)o(b)q(ered)h(searc)o(h)f(string)f(is)75
-839 y(used.)137 909 y(Non-incremen)o(tal)23 b(searc)o(hes)g(read)h(the)
+841 y(used.)137 912 y(Non-incremen)o(tal)23 b(searc)o(hes)g(read)h(the)
f(en)o(tire)g(searc)o(h)g(string)f(b)q(efore)i(starting)e(to)g(searc)o
-(h)i(for)75 964 y(matc)o(hing)c(history)h(lines.)37 b(The)22
+(h)i(for)75 967 y(matc)o(hing)c(history)h(lines.)37 b(The)22
b(searc)o(h)f(string)f(ma)o(y)h(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 1019 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1156 y Fm(1.3)33 b(Readline)21
-b(Init)i(File)137 1281 y Fo(Although)f(the)h(Readline)g(library)e
+(user)h(or)e(b)q(e)i(part)f(of)g(the)75 1022 y(con)o(ten)o(ts)15
+b(of)f(the)i(curren)o(t)f(line.)75 1161 y Fm(1.3)33 b(Readline)21
+b(Init)i(File)137 1288 y Fo(Although)f(the)h(Readline)g(library)e
(comes)i(with)f(a)g(set)g(of)g(Emacs-lik)o(e)g(k)o(eybindings)g
-(installed)75 1336 y(b)o(y)f(default,)g(it)f(is)h(p)q(ossible)f(to)g
+(installed)75 1342 y(b)o(y)f(default,)g(it)f(is)h(p)q(ossible)f(to)g
(use)i(a)e(di\013eren)o(t)g(set)h(of)f(k)o(eybindings.)37
-b(An)o(y)20 b(user)h(can)g(customize)75 1391 y(programs)15
+b(An)o(y)20 b(user)h(can)g(customize)75 1397 y(programs)15
b(that)h(use)g(Readline)h(b)o(y)f(putting)f(commands)h(in)h(an)f
Fd(inputrc)j Fo(\014le,)d(con)o(v)o(en)o(tionally)e(in)i(his)75
-1445 y(home)h(directory)l(.)23 b(The)17 b(name)g(of)f(this)g(\014le)g
+1452 y(home)h(directory)l(.)23 b(The)17 b(name)g(of)f(this)g(\014le)g
(is)g(tak)o(en)h(from)e(the)i(v)m(alue)g(of)f(the)h(en)o(vironmen)o(t)f
-(v)m(ariable)75 1500 y Fn(INPUTRC)p Fo(.)j(If)c(that)g(v)m(ariable)f
-(is)h(unset,)g(the)g(default)g(is)g(`)p Fn(~/.inputrc)p
-Fo('.)137 1571 y(When)g(a)g(program)f(whic)o(h)g(uses)h(the)g(Readline)
-g(library)f(starts)f(up,)i(the)g(init)f(\014le)h(is)f(read,)h(and)g
-(the)75 1626 y(k)o(ey)g(bindings)g(are)g(set.)137 1696
-y(In)f(addition,)f(the)g Fn(C-x)i(C-r)e Fo(command)g(re-reads)h(this)f
-(init)f(\014le,)i(th)o(us)f(incorp)q(orating)f(an)o(y)h(c)o(hanges)75
-1751 y(that)h(y)o(ou)h(migh)o(t)f(ha)o(v)o(e)h(made)g(to)g(it.)75
-1870 y Fc(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1995 y Fo(There)c(are)g(only)f(a)h(few)f(basic)h(constructs)f(allo)o(w)
+(v)m(ariable)75 1507 y Fn(INPUTRC)p Fo(.)i(If)d(that)e(v)m(ariable)h
+(is)f(unset,)h(the)h(default)e(is)h(`)p Fn(~/.inputrc)p
+Fo('.)j(If)d(that)g(\014le)g(do)q(es)g(not)g(exist)f(or)75
+1562 y(cannot)i(b)q(e)h(read,)f(the)g(ultimate)f(default)h(is)f(`)p
+Fn(/etc/inputrc)p Fo('.)137 1633 y(When)h(a)g(program)f(whic)o(h)g
+(uses)h(the)g(Readline)g(library)f(starts)f(up,)i(the)g(init)f(\014le)h
+(is)f(read,)h(and)g(the)75 1688 y(k)o(ey)g(bindings)g(are)g(set.)137
+1760 y(In)f(addition,)f(the)g Fn(C-x)i(C-r)e Fo(command)g(re-reads)h
+(this)f(init)f(\014le,)i(th)o(us)f(incorp)q(orating)f(an)o(y)h(c)o
+(hanges)75 1814 y(that)h(y)o(ou)h(migh)o(t)f(ha)o(v)o(e)h(made)g(to)g
+(it.)75 1935 y Fc(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
+2061 y Fo(There)c(are)g(only)f(a)h(few)f(basic)h(constructs)f(allo)o(w)
o(ed)g(in)g(the)h(Readline)g(init)f(\014le.)25 b(Blank)17
-b(lines)f(are)75 2050 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e
+b(lines)f(are)75 2116 y(ignored.)35 b(Lines)21 b(b)q(eginning)g(with)e
(a)i(`)p Fn(#)p Fo(')e(are)h(commen)o(ts.)35 b(Lines)21
b(b)q(eginning)g(with)f(a)g(`)p Fn($)p Fo(')f(indicate)75
-2105 y(conditional)12 b(constructs)i(\(see)g(Section)f(1.3.2)g
+2171 y(conditional)12 b(constructs)i(\(see)g(Section)f(1.3.2)g
([Conditional)e(Init)j(Constructs],)f(page)h(9\).)k(Other)c(lines)75
-2159 y(denote)h(v)m(ariable)g(settings)f(and)i(k)o(ey)f(bindings.)75
-2244 y(V)l(ariable)f(Settings)315 2299 y(Y)l(ou)20 b(can)h(mo)q(dify)f
+2226 y(denote)h(v)m(ariable)g(settings)f(and)i(k)o(ey)f(bindings.)75
+2312 y(V)l(ariable)f(Settings)315 2367 y(Y)l(ou)20 b(can)h(mo)q(dify)f
(the)g(run-time)g(b)q(eha)o(vior)g(of)f(Readline)i(b)o(y)f(altering)f
-(the)h(v)m(alues)g(of)315 2354 y(v)m(ariables)c(in)h(Readline)g(using)f
+(the)h(v)m(alues)g(of)315 2422 y(v)m(ariables)c(in)h(Readline)g(using)f
(the)h Fn(set)g Fo(command)f(within)g(the)h(init)f(\014le.)25
-b(The)17 b(syn)o(tax)315 2408 y(is)e(simple:)435 2477
-y Fn(set)23 b Fg(variable)28 b(value)315 2546 y Fo(Here,)14
+b(The)17 b(syn)o(tax)315 2476 y(is)e(simple:)435 2546
+y Fn(set)23 b Fg(variable)28 b(value)315 2615 y Fo(Here,)14
b(for)f(example,)g(is)g(ho)o(w)g(to)g(c)o(hange)h(from)f(the)h(default)
-f(Emacs-lik)o(e)g(k)o(ey)g(binding)h(to)315 2601 y(use)i
-Fn(vi)e Fo(line)h(editing)g(commands:)435 2670 y Fn(set)23
-b(editing-mode)g(vi)p eop end
+f(Emacs-lik)o(e)g(k)o(ey)g(binding)h(to)315 2670 y(use)i
+Fn(vi)e Fo(line)h(editing)g(commands:)p eop end
%%Page: 5 9
TeXDict begin 5 8 bop 75 -58 a Fo(Chapter)15 b(1:)k(Command)c(Line)h
-(Editing)1075 b(5)315 149 y(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g
-(where)f(appropriate,)g(are)g(recognized)h(without)e(regard)315
-204 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g(ignored.)
-315 268 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g(b)q(e)i
+(Editing)1075 b(5)435 149 y Fn(set)23 b(editing-mode)g(vi)315
+216 y Fo(V)l(ariable)17 b(names)g(and)h(v)m(alues,)g(where)f
+(appropriate,)g(are)g(recognized)h(without)e(regard)315
+271 y(to)f(case.)k(Unrecognized)d(v)m(ariable)f(names)g(are)g(ignored.)
+315 337 y(Bo)q(olean)d(v)m(ariables)g(\(those)g(that)g(can)g(b)q(e)i
(set)e(to)g(on)g(or)g(o\013)t(\))f(are)h(set)h(to)f(on)g(if)g(the)h(v)m
-(alue)f(is)315 323 y(n)o(ull)g(or)f(empt)o(y)l(,)h Fd(on)h
+(alue)f(is)315 392 y(n)o(ull)g(or)f(empt)o(y)l(,)h Fd(on)h
Fo(\(case-insensitiv)o(e\),)d(or)i(1.)19 b(An)o(y)12
b(other)g(v)m(alue)g(results)f(in)h(the)h(v)m(ariable)315
-378 y(b)q(eing)i(set)g(to)g(o\013.)315 442 y(A)g(great)g(deal)f(of)h
+446 y(b)q(eing)i(set)g(to)g(o\013.)315 513 y(A)g(great)g(deal)f(of)h
(run-time)g(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)i(follo)o
-(wing)c(v)m(ariables.)315 515 y Fn(bell-style)555 570
+(wing)c(v)m(ariables.)315 591 y Fn(bell-style)555 645
y Fo(Con)o(trols)20 b(what)i(happ)q(ens)h(when)f(Readline)g(w)o(an)o
-(ts)f(to)g(ring)h(the)g(termi-)555 624 y(nal)c(b)q(ell.)30
+(ts)f(to)g(ring)h(the)g(termi-)555 700 y(nal)c(b)q(ell.)30
b(If)19 b(set)f(to)g(`)p Fn(none)p Fo(',)g(Readline)h(nev)o(er)g(rings)
-f(the)g(b)q(ell.)30 b(If)19 b(set)g(to)555 679 y(`)p
+f(the)g(b)q(ell.)30 b(If)19 b(set)g(to)555 755 y(`)p
Fn(visible)p Fo(',)c(Readline)h(uses)h(a)f(visible)g(b)q(ell)h(if)f
(one)g(is)g(a)o(v)m(ailable.)23 b(If)16 b(set)h(to)555
-734 y(`)p Fn(audible)p Fo(')g(\(the)h(default\),)h(Readline)g(attempts)
-f(to)g(ring)g(the)h(terminal's)555 789 y(b)q(ell.)315
-862 y Fn(bind-tty-special-chars)555 917 y Fo(If)k(set)f(to)g(`)p
+810 y(`)p Fn(audible)p Fo(')g(\(the)h(default\),)h(Readline)g(attempts)
+f(to)g(ring)g(the)h(terminal's)555 865 y(b)q(ell.)315
+943 y Fn(bind-tty-special-chars)555 997 y Fo(If)k(set)f(to)g(`)p
Fn(on)p Fo(',)h(Readline)g(attempts)f(to)g(bind)h(the)f(con)o(trol)g(c)
-o(haracters)555 971 y(treated)17 b(sp)q(ecially)g(b)o(y)h(the)g(k)o
+o(haracters)555 1052 y(treated)17 b(sp)q(ecially)g(b)o(y)h(the)g(k)o
(ernel's)f(terminal)f(driv)o(er)h(to)g(their)h(Readline)555
-1026 y(equiv)m(alen)o(ts.)315 1099 y Fn(comment-begin)555
-1154 y Fo(The)d(string)e(to)h(insert)h(at)e(the)i(b)q(eginning)g(of)f
-(the)h(line)f(when)h(the)g Fn(insert-)555 1209 y(comment)f
+1107 y(equiv)m(alen)o(ts.)315 1185 y Fn(comment-begin)555
+1240 y Fo(The)d(string)e(to)h(insert)h(at)e(the)i(b)q(eginning)g(of)f
+(the)h(line)f(when)h(the)g Fn(insert-)555 1294 y(comment)f
Fo(command)h(is)g(executed.)21 b(The)15 b(default)g(v)m(alue)g(is)g
-Fn("#")p Fo(.)315 1282 y Fn(completion-ignore-case)555
-1337 y Fo(If)f(set)f(to)g(`)p Fn(on)p Fo(',)g(Readline)h(p)q(erforms)f
-(\014lename)h(matc)o(hing)f(and)h(completion)555 1391
+Fn("#")p Fo(.)315 1372 y Fn(completion-ignore-case)555
+1427 y Fo(If)f(set)f(to)g(`)p Fn(on)p Fo(',)g(Readline)h(p)q(erforms)f
+(\014lename)h(matc)o(hing)f(and)h(completion)555 1482
y(in)h(a)g(case-insensitiv)o(e)f(fashion.)20 b(The)15
-b(default)g(v)m(alue)g(is)g(`)p Fn(off)p Fo('.)315 1465
-y Fn(completion-query-items)555 1519 y Fo(The)e(n)o(um)o(b)q(er)h(of)e
+b(default)g(v)m(alue)g(is)g(`)p Fn(off)p Fo('.)315 1560
+y Fn(completion-query-items)555 1614 y Fo(The)e(n)o(um)o(b)q(er)h(of)e
(p)q(ossible)h(completions)g(that)f(determines)h(when)h(the)f(user)555
-1574 y(is)h(ask)o(ed)h(whether)g(the)f(list)g(of)g(p)q(ossibilities)f
-(should)i(b)q(e)g(displa)o(y)o(ed.)k(If)c(the)555 1629
+1669 y(is)h(ask)o(ed)h(whether)g(the)f(list)g(of)g(p)q(ossibilities)f
+(should)i(b)q(e)g(displa)o(y)o(ed.)k(If)c(the)555 1724
y(n)o(um)o(b)q(er)f(of)f(p)q(ossible)g(completions)f(is)h(greater)g
-(than)g(this)g(v)m(alue,)h(Readline)555 1684 y(will)e(ask)h(the)g(user)
+(than)g(this)g(v)m(alue,)h(Readline)555 1779 y(will)e(ask)h(the)g(user)
h(whether)f(or)g(not)g(he)g(wishes)g(to)g(view)g(them;)g(otherwise,)555
-1738 y(they)f(are)g(simply)g(listed.)18 b(This)12 b(v)m(ariable)f(m)o
+1834 y(they)f(are)g(simply)g(listed.)18 b(This)12 b(v)m(ariable)f(m)o
(ust)h(b)q(e)h(set)f(to)f(an)h(in)o(teger)g(v)m(alue)555
-1793 y(greater)g(than)g(or)g(equal)g(to)g(0.)18 b(A)13
+1888 y(greater)g(than)g(or)g(equal)g(to)g(0.)18 b(A)13
b(negativ)o(e)e(v)m(alue)i(means)f(Readline)h(should)555
-1848 y(nev)o(er)i(ask.)20 b(The)15 b(default)g(limit)f(is)g
-Fn(100)p Fo(.)315 1921 y Fn(convert-meta)555 1976 y Fo(If)d(set)g(to)g
+1943 y(nev)o(er)i(ask.)20 b(The)15 b(default)g(limit)f(is)g
+Fn(100)p Fo(.)315 2021 y Fn(convert-meta)555 2076 y Fo(If)d(set)g(to)g
(`)p Fn(on)p Fo(',)f(Readline)h(will)f(con)o(v)o(ert)g(c)o(haracters)h
-(with)f(the)h(eigh)o(th)g(bit)f(set)555 2031 y(to)g(an)h
+(with)f(the)h(eigh)o(th)g(bit)f(set)555 2131 y(to)g(an)h
Fh(asci)q(i)e Fo(k)o(ey)i(sequence)g(b)o(y)g(stripping)f(the)g(eigh)o
-(th)g(bit)h(and)f(pre\014xing)h(an)555 2084 y Ff(h)p
-567 2057 70 2 v 567 2086 a Fe(ESC)p 567 2093 V 634 2084
-a Ff(i)666 2086 y Fo(c)o(haracter,)16 b(con)o(v)o(erting)g(them)h(to)f
-(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555 2140 y(The)e(default)g(v)
-m(alue)h(is)e(`)p Fn(on)p Fo('.)315 2213 y Fn(disable-completion)555
-2268 y Fo(If)19 b(set)f(to)f(`)p Fn(On)p Fo(',)h(Readline)h(will)e
+(th)g(bit)h(and)f(pre\014xing)h(an)555 2183 y Ff(h)p
+567 2157 70 2 v 567 2185 a Fe(ESC)p 567 2193 V 634 2183
+a Ff(i)666 2185 y Fo(c)o(haracter,)16 b(con)o(v)o(erting)g(them)h(to)f
+(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555 2240 y(The)e(default)g(v)
+m(alue)h(is)e(`)p Fn(on)p Fo('.)315 2318 y Fn(disable-completion)555
+2373 y Fo(If)19 b(set)f(to)f(`)p Fn(On)p Fo(',)h(Readline)h(will)e
(inhibit)g(w)o(ord)h(completion.)28 b(Completion)555
-2323 y(c)o(haracters)12 b(will)g(b)q(e)i(inserted)f(in)o(to)f(the)h
+2428 y(c)o(haracters)12 b(will)g(b)q(e)i(inserted)f(in)o(to)f(the)h
(line)f(as)h(if)g(they)g(had)g(b)q(een)h(mapp)q(ed)555
-2378 y(to)h Fn(self-insert)p Fo(.)j(The)d(default)g(is)g(`)p
-Fn(off)p Fo('.)315 2451 y Fn(editing-mode)555 2506 y
+2483 y(to)h Fn(self-insert)p Fo(.)j(The)d(default)g(is)g(`)p
+Fn(off)p Fo('.)315 2560 y Fn(editing-mode)555 2615 y
Fo(The)g Fn(editing-mode)d Fo(v)m(ariable)i(con)o(trols)f(whic)o(h)h
-(default)g(set)g(of)g(k)o(ey)g(bind-)555 2560 y(ings)e(is)g(used.)20
+(default)g(set)g(of)g(k)o(ey)g(bind-)555 2670 y(ings)e(is)g(used.)20
b(By)12 b(default,)h(Readline)f(starts)g(up)h(in)f(Emacs)g(editing)g
-(mo)q(de,)555 2615 y(where)j(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)f(to)g(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555
-2670 y(b)q(e)i(set)f(to)f(either)h(`)p Fn(emacs)p Fo(')f(or)h(`)p
-Fn(vi)p Fo('.)p eop end
+(mo)q(de,)p eop end
%%Page: 6 10
TeXDict begin 6 9 bop 75 -58 a Fo(6)1322 b(GNU)15 b(Readline)g(Library)
-315 149 y Fn(enable-keypad)555 204 y Fo(When)d(set)f(to)h(`)p
+555 149 y(where)g(the)f(k)o(eystrok)o(es)g(are)g(most)g(similar)f(to)g
+(Emacs.)20 b(This)14 b(v)m(ariable)g(can)555 204 y(b)q(e)i(set)f(to)f
+(either)h(`)p Fn(emacs)p Fo(')f(or)h(`)p Fn(vi)p Fo('.)315
+283 y Fn(enable-keypad)555 338 y Fo(When)d(set)f(to)h(`)p
Fn(on)p Fo(',)e(Readline)i(will)f(try)g(to)g(enable)h(the)g
-(application)e(k)o(eypad)555 259 y(when)k(it)e(is)h(called.)19
+(application)e(k)o(eypad)555 393 y(when)k(it)e(is)h(called.)19
b(Some)13 b(systems)g(need)h(this)f(to)g(enable)g(the)h(arro)o(w)e(k)o
-(eys.)555 314 y(The)j(default)g(is)g(`)p Fn(off)p Fo('.)315
-410 y Fn(expand-tilde)555 465 y Fo(If)f(set)g(to)f(`)p
+(eys.)555 448 y(The)j(default)g(is)g(`)p Fn(off)p Fo('.)315
+527 y Fn(expand-tilde)555 582 y Fo(If)f(set)g(to)f(`)p
Fn(on)p Fo(',)f(tilde)i(expansion)f(is)h(p)q(erformed)g(when)g
-(Readline)g(attempts)555 519 y(w)o(ord)h(completion.)k(The)c(default)g
-(is)f(`)p Fn(off)p Fo('.)315 615 y Fn(history-preserve-point)555
-670 y Fo(If)h(set)g(to)f(`)p Fn(on)p Fo(',)g(the)g(history)g(co)q(de)i
+(Readline)g(attempts)555 637 y(w)o(ord)h(completion.)k(The)c(default)g
+(is)f(`)p Fn(off)p Fo('.)315 716 y Fn(history-preserve-point)555
+770 y Fo(If)h(set)g(to)f(`)p Fn(on)p Fo(',)g(the)g(history)g(co)q(de)i
(attempts)e(to)g(place)h(p)q(oin)o(t)f(at)g(the)h(same)555
-725 y(lo)q(cation)g(on)i(eac)o(h)g(history)f(line)g(retriev)o(ed)g
-(with)g Fn(previous-history)e Fo(or)555 780 y Fn(next-history)p
-Fo(.)k(The)e(default)e(is)h(`)p Fn(off)p Fo('.)315 875
-y Fn(horizontal-scroll-mode)555 930 y Fo(This)j(v)m(ariable)f(can)h(b)q
-(e)g(set)g(to)f(either)h(`)p Fn(on)p Fo(')f(or)g(`)p
+825 y(lo)q(cation)g(on)i(eac)o(h)g(history)f(line)g(retriev)o(ed)g
+(with)g Fn(previous-history)e Fo(or)555 880 y Fn(next-history)p
+Fo(.)k(The)e(default)e(is)h(`)p Fn(off)p Fo('.)315 959
+y Fn(horizontal-scroll-mode)555 1014 y Fo(This)j(v)m(ariable)f(can)h(b)
+q(e)g(set)g(to)f(either)h(`)p Fn(on)p Fo(')f(or)g(`)p
Fn(off)p Fo('.)27 b(Setting)18 b(it)f(to)g(`)p Fn(on)p
-Fo(')555 985 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)g(b)q(eing)
-g(edited)g(will)f(scroll)g(horizon)o(tally)555 1040 y(on)k(a)f(single)g
-(screen)i(line)e(when)i(they)f(are)f(longer)g(than)h(the)g(width)f(of)h
-(the)555 1095 y(screen,)e(instead)e(of)h(wrapping)f(on)o(to)g(a)h(new)g
-(screen)h(line.)19 b(By)13 b(default,)g(this)555 1149
-y(v)m(ariable)i(is)f(set)h(to)g(`)p Fn(off)p Fo('.)315
-1245 y Fn(input-meta)555 1300 y Fo(If)h(set)f(to)g(`)p
-Fn(on)p Fo(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g(\(it)
-g(will)f(not)h(clear)555 1355 y(the)20 b(eigh)o(th)f(bit)g(in)h(the)g
-(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555
-1410 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
+Fo(')555 1069 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)g(b)q
+(eing)g(edited)g(will)f(scroll)g(horizon)o(tally)555
+1124 y(on)k(a)f(single)g(screen)i(line)e(when)i(they)f(are)f(longer)g
+(than)h(the)g(width)f(of)h(the)555 1178 y(screen,)e(instead)e(of)h
+(wrapping)f(on)o(to)g(a)h(new)g(screen)h(line.)19 b(By)13
+b(default,)g(this)555 1233 y(v)m(ariable)i(is)f(set)h(to)g(`)p
+Fn(off)p Fo('.)315 1312 y Fn(input-meta)555 1367 y Fo(If)h(set)f(to)g
+(`)p Fn(on)p Fo(',)f(Readline)i(will)f(enable)g(eigh)o(t-bit)g(input)g
+(\(it)g(will)f(not)h(clear)555 1422 y(the)20 b(eigh)o(th)f(bit)g(in)h
+(the)g(c)o(haracters)f(it)g(reads\),)h(regardless)f(of)h(what)f(the)555
+1477 y(terminal)g(claims)g(it)g(can)h(supp)q(ort.)34
b(The)20 b(default)g(v)m(alue)g(is)g(`)p Fn(off)p Fo('.)33
-b(The)555 1465 y(name)15 b Fn(meta-flag)f Fo(is)h(a)g(synon)o(ym)g(for)
-f(this)h(v)m(ariable.)315 1560 y Fn(isearch-terminators)555
-1615 y Fo(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
-(terminate)f(an)h(incremen)o(tal)555 1670 y(searc)o(h)12
+b(The)555 1531 y(name)15 b Fn(meta-flag)f Fo(is)h(a)g(synon)o(ym)g(for)
+f(this)h(v)m(ariable.)315 1611 y Fn(isearch-terminators)555
+1665 y Fo(The)26 b(string)f(of)g(c)o(haracters)g(that)g(should)h
+(terminate)f(an)h(incremen)o(tal)555 1720 y(searc)o(h)12
b(without)g(subsequen)o(tly)g(executing)h(the)f(c)o(haracter)g(as)g(a)g
-(command)555 1725 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
+(command)555 1775 y(\(see)22 b(Section)g(1.2.5)f([Searc)o(hing],)i
(page)f(3\).)40 b(If)23 b(this)f(v)m(ariable)f(has)h(not)555
-1780 y(b)q(een)17 b(giv)o(en)e(a)h(v)m(alue,)f(the)h(c)o(haracters)1247
-1778 y Ff(h)p 1259 1752 70 2 v 1259 1780 a Fe(ESC)p 1259
-1787 V 1326 1778 a Ff(i)1357 1780 y Fo(and)g Fg(C-J)f
-Fo(will)f(terminate)h(an)555 1834 y(incremen)o(tal)f(searc)o(h.)315
-1930 y Fn(keymap)96 b Fo(Sets)19 b(Readline's)h(idea)f(of)g(the)g
+1830 y(b)q(een)17 b(giv)o(en)e(a)h(v)m(alue,)f(the)h(c)o(haracters)1247
+1828 y Ff(h)p 1259 1802 70 2 v 1259 1830 a Fe(ESC)p 1259
+1837 V 1326 1828 a Ff(i)1357 1830 y Fo(and)g Fg(C-J)f
+Fo(will)f(terminate)h(an)555 1885 y(incremen)o(tal)f(searc)o(h.)315
+1964 y Fn(keymap)96 b Fo(Sets)19 b(Readline's)h(idea)f(of)g(the)g
(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)f(com-)555
-1985 y(mands.)41 b(Acceptable)22 b Fn(keymap)g Fo(names)g(are)f
-Fn(emacs)p Fo(,)i Fn(emacs-standard)p Fo(,)555 2040 y
+2019 y(mands.)41 b(Acceptable)22 b Fn(keymap)g Fo(names)g(are)f
+Fn(emacs)p Fo(,)i Fn(emacs-standard)p Fo(,)555 2073 y
Fn(emacs-meta)p Fo(,)49 b Fn(emacs-ctlx)p Fo(,)g Fn(vi)p
Fo(,)h Fn(vi-move)p Fo(,)f Fn(vi-command)p Fo(,)g(and)555
-2095 y Fn(vi-insert)p Fo(.)31 b Fn(vi)20 b Fo(is)f(equiv)m(alen)o(t)g
+2128 y Fn(vi-insert)p Fo(.)31 b Fn(vi)20 b Fo(is)f(equiv)m(alen)o(t)g
(to)g Fn(vi-command)p Fo(;)g Fn(emacs)g Fo(is)g(equiv)m(alen)o(t)555
-2149 y(to)c Fn(emacs-standard)p Fo(.)20 b(The)d(default)e(v)m(alue)h
+2183 y(to)c Fn(emacs-standard)p Fo(.)20 b(The)d(default)e(v)m(alue)h
(is)g Fn(emacs)p Fo(.)21 b(The)16 b(v)m(alue)g(of)g(the)555
-2204 y Fn(editing-mode)e Fo(v)m(ariable)g(also)g(a\013ects)h(the)g
-(default)g(k)o(eymap.)315 2300 y Fn(mark-directories)555
-2355 y Fo(If)k(set)g(to)g(`)p Fn(on)p Fo(',)f(completed)h(directory)g
-(names)g(ha)o(v)o(e)f(a)h(slash)g(app)q(ended.)555 2410
+2238 y Fn(editing-mode)e Fo(v)m(ariable)g(also)g(a\013ects)h(the)g
+(default)g(k)o(eymap.)315 2317 y Fn(mark-directories)555
+2372 y Fo(If)k(set)g(to)g(`)p Fn(on)p Fo(',)f(completed)h(directory)g
+(names)g(ha)o(v)o(e)f(a)h(slash)g(app)q(ended.)555 2426
y(The)c(default)g(is)g(`)p Fn(on)p Fo('.)315 2506 y Fn
(mark-modified-lines)555 2560 y Fo(This)j(v)m(ariable,)f(when)i(set)e
(to)h(`)p Fn(on)p Fo(',)f(causes)h(Readline)g(to)f(displa)o(y)g(an)h
Copyright (C) 1988-2006 Free Software Foundation, Inc.
@end ignore
-@set EDITION 5.1
-@set VERSION 5.1
-@set UPDATED 14 January 2006
-@set UPDATED-MONTH January 2006
+@set EDITION 5.2
+@set VERSION 5.2
+@set UPDATED 9 February 2006
+@set UPDATED-MONTH February 2006
-@set LASTCHANGE Sat Jan 14 21:10:59 EST 2006
+@set LASTCHANGE Thu Feb 9 09:46:31 EST 2006
--- /dev/null
+/* readline.c -- a general facility for reading lines of input
+ with emacs style editing and completion. */
+
+/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+
+ This file is part of the GNU Readline Library, a library for
+ reading lines of text with interactive input and history editing.
+
+ The GNU Readline Library is free software; you can redistribute it
+ and/or modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2, or
+ (at your option) any later version.
+
+ The GNU Readline Library is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ The GNU General Public License is often shipped with GNU software, and
+ is generally kept in a file called COPYING or LICENSE. If you do not
+ have a copy of the license, write to the Free Software Foundation,
+ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include "posixstat.h"
+#include <fcntl.h>
+#if defined (HAVE_SYS_FILE_H)
+# include <sys/file.h>
+#endif /* HAVE_SYS_FILE_H */
+
+#if defined (HAVE_UNISTD_H)
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#if defined (HAVE_STDLIB_H)
+# include <stdlib.h>
+#else
+# include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#if defined (HAVE_LOCALE_H)
+# include <locale.h>
+#endif
+
+#include <stdio.h>
+#include "posixjmp.h"
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+#include "rlmbutil.h"
+
+#if defined (__EMX__)
+# define INCL_DOSPROCESS
+# include <os2.h>
+#endif /* __EMX__ */
+
+/* Some standard library routines. */
+#include "readline.h"
+#include "history.h"
+
+#include "rlprivate.h"
+#include "rlshell.h"
+#include "xmalloc.h"
+
+#ifndef RL_LIBRARY_VERSION
+# define RL_LIBRARY_VERSION "5.1"
+#endif
+
+#ifndef RL_READLINE_VERSION
+# define RL_READLINE_VERSION 0x0501
+#endif
+
+extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
+
+/* Forward declarations used in this file. */
+static char *readline_internal PARAMS((void));
+static void readline_initialize_everything PARAMS((void));
+
+static void bind_arrow_keys_internal PARAMS((Keymap));
+static void bind_arrow_keys PARAMS((void));
+
+static void readline_default_bindings PARAMS((void));
+static void reset_default_bindings PARAMS((void));
+
+static int _rl_subseq_result PARAMS((int, Keymap, int, int));
+static int _rl_subseq_getchar PARAMS((int));
+
+/* **************************************************************** */
+/* */
+/* Line editing input utility */
+/* */
+/* **************************************************************** */
+
+const char *rl_library_version = RL_LIBRARY_VERSION;
+
+int rl_readline_version = RL_READLINE_VERSION;
+
+/* True if this is `real' readline as opposed to some stub substitute. */
+int rl_gnu_readline_p = 1;
+
+/* A pointer to the keymap that is currently in use.
+ By default, it is the standard emacs keymap. */
+Keymap _rl_keymap = emacs_standard_keymap;
+
+
+/* The current style of editing. */
+int rl_editing_mode = emacs_mode;
+
+/* The current insert mode: input (the default) or overwrite */
+int rl_insert_mode = RL_IM_DEFAULT;
+
+/* Non-zero if we called this function from _rl_dispatch(). It's present
+ so functions can find out whether they were called from a key binding
+ or directly from an application. */
+int rl_dispatching;
+
+/* Non-zero if the previous command was a kill command. */
+int _rl_last_command_was_kill = 0;
+
+/* The current value of the numeric argument specified by the user. */
+int rl_numeric_arg = 1;
+
+/* Non-zero if an argument was typed. */
+int rl_explicit_arg = 0;
+
+/* Temporary value used while generating the argument. */
+int rl_arg_sign = 1;
+
+/* Non-zero means we have been called at least once before. */
+static int rl_initialized;
+
+#if 0
+/* If non-zero, this program is running in an EMACS buffer. */
+static int running_in_emacs;
+#endif
+
+/* Flags word encapsulating the current readline state. */
+int rl_readline_state = RL_STATE_NONE;
+
+/* The current offset in the current input line. */
+int rl_point;
+
+/* Mark in the current input line. */
+int rl_mark;
+
+/* Length of the current input line. */
+int rl_end;
+
+/* Make this non-zero to return the current input_line. */
+int rl_done;
+
+/* The last function executed by readline. */
+rl_command_func_t *rl_last_func = (rl_command_func_t *)NULL;
+
+/* Top level environment for readline_internal (). */
+procenv_t readline_top_level;
+
+/* The streams we interact with. */
+FILE *_rl_in_stream, *_rl_out_stream;
+
+/* The names of the streams that we do input and output to. */
+FILE *rl_instream = (FILE *)NULL;
+FILE *rl_outstream = (FILE *)NULL;
+
+/* Non-zero means echo characters as they are read. Defaults to no echo;
+ set to 1 if there is a controlling terminal, we can get its attributes,
+ and the attributes include `echo'. Look at rltty.c:prepare_terminal_settings
+ for the code that sets it. */
+int readline_echoing_p = 0;
+
+/* Current prompt. */
+char *rl_prompt = (char *)NULL;
+int rl_visible_prompt_length = 0;
+
+/* Set to non-zero by calling application if it has already printed rl_prompt
+ and does not want readline to do it the first time. */
+int rl_already_prompted = 0;
+
+/* The number of characters read in order to type this complete command. */
+int rl_key_sequence_length = 0;
+
+/* If non-zero, then this is the address of a function to call just
+ before readline_internal_setup () prints the first prompt. */
+rl_hook_func_t *rl_startup_hook = (rl_hook_func_t *)NULL;
+
+/* If non-zero, this is the address of a function to call just before
+ readline_internal_setup () returns and readline_internal starts
+ reading input characters. */
+rl_hook_func_t *rl_pre_input_hook = (rl_hook_func_t *)NULL;
+
+/* What we use internally. You should always refer to RL_LINE_BUFFER. */
+static char *the_line;
+
+/* The character that can generate an EOF. Really read from
+ the terminal driver... just defaulted here. */
+int _rl_eof_char = CTRL ('D');
+
+/* Non-zero makes this the next keystroke to read. */
+int rl_pending_input = 0;
+
+/* Pointer to a useful terminal name. */
+const char *rl_terminal_name = (const char *)NULL;
+
+/* Non-zero means to always use horizontal scrolling in line display. */
+int _rl_horizontal_scroll_mode = 0;
+
+/* Non-zero means to display an asterisk at the starts of history lines
+ which have been modified. */
+int _rl_mark_modified_lines = 0;
+
+/* The style of `bell' notification preferred. This can be set to NO_BELL,
+ AUDIBLE_BELL, or VISIBLE_BELL. */
+int _rl_bell_preference = AUDIBLE_BELL;
+
+/* String inserted into the line by rl_insert_comment (). */
+char *_rl_comment_begin;
+
+/* Keymap holding the function currently being executed. */
+Keymap rl_executing_keymap;
+
+/* Keymap we're currently using to dispatch. */
+Keymap _rl_dispatching_keymap;
+
+/* Non-zero means to erase entire line, including prompt, on empty input lines. */
+int rl_erase_empty_line = 0;
+
+/* Non-zero means to read only this many characters rather than up to a
+ character bound to accept-line. */
+int rl_num_chars_to_read;
+
+/* Line buffer and maintenence. */
+char *rl_line_buffer = (char *)NULL;
+int rl_line_buffer_len = 0;
+
+/* Key sequence `contexts' */
+_rl_keyseq_cxt *_rl_kscxt = 0;
+
+/* Forward declarations used by the display, termcap, and history code. */
+
+/* **************************************************************** */
+/* */
+/* `Forward' declarations */
+/* */
+/* **************************************************************** */
+
+/* Non-zero means do not parse any lines other than comments and
+ parser directives. */
+unsigned char _rl_parsing_conditionalized_out = 0;
+
+/* Non-zero means to convert characters with the meta bit set to
+ escape-prefixed characters so we can indirect through
+ emacs_meta_keymap or vi_escape_keymap. */
+int _rl_convert_meta_chars_to_ascii = 1;
+
+/* Non-zero means to output characters with the meta bit set directly
+ rather than as a meta-prefixed escape sequence. */
+int _rl_output_meta_chars = 0;
+
+/* Non-zero means to look at the termios special characters and bind
+ them to equivalent readline functions at startup. */
+int _rl_bind_stty_chars = 1;
+
+/* **************************************************************** */
+/* */
+/* Top Level Functions */
+/* */
+/* **************************************************************** */
+
+/* Non-zero means treat 0200 bit in terminal input as Meta bit. */
+int _rl_meta_flag = 0; /* Forward declaration */
+
+/* Set up the prompt and expand it. Called from readline() and
+ rl_callback_handler_install (). */
+int
+rl_set_prompt (prompt)
+ const char *prompt;
+{
+ FREE (rl_prompt);
+ rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
+
+ rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
+ return 0;
+}
+
+/* Read a line of input. Prompt with PROMPT. An empty PROMPT means
+ none. A return value of NULL means that EOF was encountered. */
+char *
+readline (prompt)
+ const char *prompt;
+{
+ char *value;
+
+ /* If we are at EOF return a NULL string. */
+ if (rl_pending_input == EOF)
+ {
+ rl_clear_pending_input ();
+ return ((char *)NULL);
+ }
+
+ rl_set_prompt (prompt);
+
+ rl_initialize ();
+ if (rl_prep_term_function)
+ (*rl_prep_term_function) (_rl_meta_flag);
+
+#if defined (HANDLE_SIGNALS)
+ rl_set_signals ();
+#endif
+
+ value = readline_internal ();
+ if (rl_deprep_term_function)
+ (*rl_deprep_term_function) ();
+
+#if defined (HANDLE_SIGNALS)
+ rl_clear_signals ();
+#endif
+
+ return (value);
+}
+
+#if defined (READLINE_CALLBACKS)
+# define STATIC_CALLBACK
+#else
+# define STATIC_CALLBACK static
+#endif
+
+STATIC_CALLBACK void
+readline_internal_setup ()
+{
+ char *nprompt;
+
+ _rl_in_stream = rl_instream;
+ _rl_out_stream = rl_outstream;
+
+ if (rl_startup_hook)
+ (*rl_startup_hook) ();
+
+ /* If we're not echoing, we still want to at least print a prompt, because
+ rl_redisplay will not do it for us. If the calling application has a
+ custom redisplay function, though, let that function handle it. */
+ if (readline_echoing_p == 0 && rl_redisplay_function == rl_redisplay)
+ {
+ if (rl_prompt && rl_already_prompted == 0)
+ {
+ nprompt = _rl_strip_prompt (rl_prompt);
+ fprintf (_rl_out_stream, "%s", nprompt);
+ fflush (_rl_out_stream);
+ free (nprompt);
+ }
+ }
+ else
+ {
+ if (rl_prompt && rl_already_prompted)
+ rl_on_new_line_with_prompt ();
+ else
+ rl_on_new_line ();
+ (*rl_redisplay_function) ();
+ }
+
+#if defined (VI_MODE)
+ if (rl_editing_mode == vi_mode)
+ rl_vi_insertion_mode (1, 'i');
+#endif /* VI_MODE */
+
+ if (rl_pre_input_hook)
+ (*rl_pre_input_hook) ();
+}
+
+STATIC_CALLBACK char *
+readline_internal_teardown (eof)
+ int eof;
+{
+ char *temp;
+ HIST_ENTRY *entry;
+
+ /* Restore the original of this history line, iff the line that we
+ are editing was originally in the history, AND the line has changed. */
+ entry = current_history ();
+
+ if (entry && rl_undo_list)
+ {
+ temp = savestring (the_line);
+ rl_revert_line (1, 0);
+ entry = replace_history_entry (where_history (), the_line, (histdata_t)NULL);
+ _rl_free_history_entry (entry);
+
+ strcpy (the_line, temp);
+ free (temp);
+ }
+
+ /* At any rate, it is highly likely that this line has an undo list. Get
+ rid of it now. */
+ if (rl_undo_list)
+ rl_free_undo_list ();
+
+ /* Restore normal cursor, if available. */
+ _rl_set_insert_mode (RL_IM_INSERT, 0);
+
+ return (eof ? (char *)NULL : savestring (the_line));
+}
+
+void
+_rl_internal_char_cleanup ()
+{
+#if defined (VI_MODE)
+ /* In vi mode, when you exit insert mode, the cursor moves back
+ over the previous character. We explicitly check for that here. */
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
+ rl_vi_check ();
+#endif /* VI_MODE */
+
+ if (rl_num_chars_to_read && rl_end >= rl_num_chars_to_read)
+ {
+ (*rl_redisplay_function) ();
+ _rl_want_redisplay = 0;
+ rl_newline (1, '\n');
+ }
+
+ if (rl_done == 0)
+ {
+ (*rl_redisplay_function) ();
+ _rl_want_redisplay = 0;
+ }
+
+ /* If the application writer has told us to erase the entire line if
+ the only character typed was something bound to rl_newline, do so. */
+ if (rl_erase_empty_line && rl_done && rl_last_func == rl_newline &&
+ rl_point == 0 && rl_end == 0)
+ _rl_erase_entire_line ();
+}
+
+STATIC_CALLBACK int
+#if defined (READLINE_CALLBACKS)
+readline_internal_char ()
+#else
+readline_internal_charloop ()
+#endif
+{
+ static int lastc, eof_found;
+ int c, code, lk;
+
+ lastc = -1;
+ eof_found = 0;
+
+#if !defined (READLINE_CALLBACKS)
+ while (rl_done == 0)
+ {
+#endif
+ lk = _rl_last_command_was_kill;
+
+ code = setjmp (readline_top_level);
+
+ if (code)
+ {
+ (*rl_redisplay_function) ();
+ _rl_want_redisplay = 0;
+ /* If we get here, we're not being called from something dispatched
+ from _rl_callback_read_char(), which sets up its own value of
+ readline_top_level (saving and restoring the old, of course), so
+ we can just return here. */
+ if (RL_ISSTATE (RL_STATE_CALLBACK))
+ return (0);
+ }
+
+ if (rl_pending_input == 0)
+ {
+ /* Then initialize the argument and number of keys read. */
+ _rl_reset_argument ();
+ rl_key_sequence_length = 0;
+ }
+
+ RL_SETSTATE(RL_STATE_READCMD);
+ c = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_READCMD);
+
+ /* EOF typed to a non-blank line is a <NL>. */
+ if (c == EOF && rl_end)
+ c = NEWLINE;
+
+ /* The character _rl_eof_char typed to blank line, and not as the
+ previous character is interpreted as EOF. */
+ if (((c == _rl_eof_char && lastc != c) || c == EOF) && !rl_end)
+ {
+#if defined (READLINE_CALLBACKS)
+ RL_SETSTATE(RL_STATE_DONE);
+ return (rl_done = 1);
+#else
+ eof_found = 1;
+ break;
+#endif
+ }
+
+ lastc = c;
+ _rl_dispatch ((unsigned char)c, _rl_keymap);
+
+ /* If there was no change in _rl_last_command_was_kill, then no kill
+ has taken place. Note that if input is pending we are reading
+ a prefix command, so nothing has changed yet. */
+ if (rl_pending_input == 0 && lk == _rl_last_command_was_kill)
+ _rl_last_command_was_kill = 0;
+
+ _rl_internal_char_cleanup ();
+
+#if defined (READLINE_CALLBACKS)
+ return 0;
+#else
+ }
+
+ return (eof_found);
+#endif
+}
+
+#if defined (READLINE_CALLBACKS)
+static int
+readline_internal_charloop ()
+{
+ int eof = 1;
+
+ while (rl_done == 0)
+ eof = readline_internal_char ();
+ return (eof);
+}
+#endif /* READLINE_CALLBACKS */
+
+/* Read a line of input from the global rl_instream, doing output on
+ the global rl_outstream.
+ If rl_prompt is non-null, then that is our prompt. */
+static char *
+readline_internal ()
+{
+ int eof;
+
+ readline_internal_setup ();
+ eof = readline_internal_charloop ();
+ return (readline_internal_teardown (eof));
+}
+
+void
+_rl_init_line_state ()
+{
+ rl_point = rl_end = rl_mark = 0;
+ the_line = rl_line_buffer;
+ the_line[0] = 0;
+}
+
+void
+_rl_set_the_line ()
+{
+ the_line = rl_line_buffer;
+}
+
+#if defined (READLINE_CALLBACKS)
+_rl_keyseq_cxt *
+_rl_keyseq_cxt_alloc ()
+{
+ _rl_keyseq_cxt *cxt;
+
+ cxt = (_rl_keyseq_cxt *)xmalloc (sizeof (_rl_keyseq_cxt));
+
+ cxt->flags = cxt->subseq_arg = cxt->subseq_retval = 0;
+
+ cxt->okey = 0;
+ cxt->ocxt = _rl_kscxt;
+ cxt->childval = 42; /* sentinel value */
+
+ return cxt;
+}
+
+void
+_rl_keyseq_cxt_dispose (cxt)
+ _rl_keyseq_cxt *cxt;
+{
+ free (cxt);
+}
+
+void
+_rl_keyseq_chain_dispose ()
+{
+ _rl_keyseq_cxt *cxt;
+
+ while (_rl_kscxt)
+ {
+ cxt = _rl_kscxt;
+ _rl_kscxt = _rl_kscxt->ocxt;
+ _rl_keyseq_cxt_dispose (cxt);
+ }
+}
+#endif
+
+static int
+_rl_subseq_getchar (key)
+ int key;
+{
+ int k;
+
+ if (key == ESC)
+ RL_SETSTATE(RL_STATE_METANEXT);
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+ k = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+ if (key == ESC)
+ RL_UNSETSTATE(RL_STATE_METANEXT);
+
+ return k;
+}
+
+#if defined (READLINE_CALLBACKS)
+int
+_rl_dispatch_callback (cxt)
+ _rl_keyseq_cxt *cxt;
+{
+ int nkey, r;
+
+ /* For now */
+#if 1
+ /* The first time this context is used, we want to read input and dispatch
+ on it. When traversing the chain of contexts back `up', we want to use
+ the value from the next context down. We're simulating recursion using
+ a chain of contexts. */
+ if ((cxt->flags & KSEQ_DISPATCHED) == 0)
+ {
+ nkey = _rl_subseq_getchar (cxt->okey);
+ r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
+ cxt->flags |= KSEQ_DISPATCHED;
+ }
+ else
+ r = cxt->childval;
+#else
+ r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
+#endif
+
+ /* For now */
+ r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ));
+
+ if (r == 0) /* success! */
+ {
+ _rl_keyseq_chain_dispose ();
+ RL_UNSETSTATE (RL_STATE_MULTIKEY);
+ return r;
+ }
+
+ if (r != -3) /* magic value that says we added to the chain */
+ _rl_kscxt = cxt->ocxt;
+ if (_rl_kscxt)
+ _rl_kscxt->childval = r;
+ if (r != -3)
+ _rl_keyseq_cxt_dispose (cxt);
+
+ return r;
+}
+#endif /* READLINE_CALLBACKS */
+
+/* Do the command associated with KEY in MAP.
+ If the associated command is really a keymap, then read
+ another key, and dispatch into that map. */
+int
+_rl_dispatch (key, map)
+ register int key;
+ Keymap map;
+{
+ _rl_dispatching_keymap = map;
+ return _rl_dispatch_subseq (key, map, 0);
+}
+
+int
+_rl_dispatch_subseq (key, map, got_subseq)
+ register int key;
+ Keymap map;
+ int got_subseq;
+{
+ int r, newkey;
+ char *macro;
+ rl_command_func_t *func;
+#if defined (READLINE_CALLBACKS)
+ _rl_keyseq_cxt *cxt;
+#endif
+
+ if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
+ {
+ if (map[ESC].type == ISKMAP)
+ {
+ if (RL_ISSTATE (RL_STATE_MACRODEF))
+ _rl_add_macro_char (ESC);
+ map = FUNCTION_TO_KEYMAP (map, ESC);
+ key = UNMETA (key);
+ rl_key_sequence_length += 2;
+ return (_rl_dispatch (key, map));
+ }
+ else
+ rl_ding ();
+ return 0;
+ }
+
+ if (RL_ISSTATE (RL_STATE_MACRODEF))
+ _rl_add_macro_char (key);
+
+ r = 0;
+ switch (map[key].type)
+ {
+ case ISFUNC:
+ func = map[key].function;
+ if (func)
+ {
+ /* Special case rl_do_lowercase_version (). */
+ if (func == rl_do_lowercase_version)
+ return (_rl_dispatch (_rl_to_lower (key), map));
+
+ rl_executing_keymap = map;
+
+ rl_dispatching = 1;
+ RL_SETSTATE(RL_STATE_DISPATCHING);
+ (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
+ RL_UNSETSTATE(RL_STATE_DISPATCHING);
+ rl_dispatching = 0;
+
+ /* If we have input pending, then the last command was a prefix
+ command. Don't change the state of rl_last_func. Otherwise,
+ remember the last command executed in this variable. */
+ if (rl_pending_input == 0 && map[key].function != rl_digit_argument)
+ rl_last_func = map[key].function;
+ }
+ else if (map[ANYOTHERKEY].function)
+ {
+ /* OK, there's no function bound in this map, but there is a
+ shadow function that was overridden when the current keymap
+ was created. Return -2 to note that. */
+ _rl_unget_char (key);
+ return -2;
+ }
+ else if (got_subseq)
+ {
+ /* Return -1 to note that we're in a subsequence, but we don't
+ have a matching key, nor was one overridden. This means
+ we need to back up the recursion chain and find the last
+ subsequence that is bound to a function. */
+ _rl_unget_char (key);
+ return -1;
+ }
+ else
+ {
+#if defined (READLINE_CALLBACKS)
+ RL_UNSETSTATE (RL_STATE_MULTIKEY);
+ _rl_keyseq_chain_dispose ();
+#endif
+ _rl_abort_internal ();
+ return -1;
+ }
+ break;
+
+ case ISKMAP:
+ if (map[key].function != 0)
+ {
+#if defined (VI_MODE)
+ /* The only way this test will be true is if a subsequence has been
+ bound starting with ESC, generally the arrow keys. What we do is
+ check whether there's input in the queue, which there generally
+ will be if an arrow key has been pressed, and, if there's not,
+ just dispatch to (what we assume is) rl_vi_movement_mode right
+ away. This is essentially an input test with a zero timeout. */
+ if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap
+ && _rl_input_queued (0) == 0)
+ return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)));
+#endif
+
+ rl_key_sequence_length++;
+ _rl_dispatching_keymap = FUNCTION_TO_KEYMAP (map, key);
+
+ /* Allocate new context here. Use linked contexts (linked through
+ cxt->ocxt) to simulate recursion */
+#if defined (READLINE_CALLBACKS)
+ if (RL_ISSTATE (RL_STATE_CALLBACK))
+ {
+ /* Return 0 only the first time, to indicate success to
+ _rl_callback_read_char. The rest of the time, we're called
+ from _rl_dispatch_callback, so we return 3 to indicate
+ special handling is necessary. */
+ r = RL_ISSTATE (RL_STATE_MULTIKEY) ? -3 : 0;
+ cxt = _rl_keyseq_cxt_alloc ();
+
+ if (got_subseq)
+ cxt->flags |= KSEQ_SUBSEQ;
+ cxt->okey = key;
+ cxt->oldmap = map;
+ cxt->dmap = _rl_dispatching_keymap;
+ cxt->subseq_arg = got_subseq || cxt->dmap[ANYOTHERKEY].function;
+
+ RL_SETSTATE (RL_STATE_MULTIKEY);
+ _rl_kscxt = cxt;
+
+ return r; /* don't indicate immediate success */
+ }
+#endif
+
+ newkey = _rl_subseq_getchar (key);
+ if (newkey < 0)
+ {
+ _rl_abort_internal ();
+ return -1;
+ }
+
+ r = _rl_dispatch_subseq (newkey, _rl_dispatching_keymap, got_subseq || map[ANYOTHERKEY].function);
+ return _rl_subseq_result (r, map, key, got_subseq);
+ }
+ else
+ {
+ _rl_abort_internal ();
+ return -1;
+ }
+ break;
+
+ case ISMACR:
+ if (map[key].function != 0)
+ {
+ macro = savestring ((char *)map[key].function);
+ _rl_with_macro_input (macro);
+ return 0;
+ }
+ break;
+ }
+#if defined (VI_MODE)
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
+ _rl_vi_textmod_command (key))
+ _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+#endif
+
+ return (r);
+}
+
+static int
+_rl_subseq_result (r, map, key, got_subseq)
+ int r;
+ Keymap map;
+ int key, got_subseq;
+{
+ Keymap m;
+ int type, nt;
+ rl_command_func_t *func, *nf;
+
+ if (r == -2)
+ /* We didn't match anything, and the keymap we're indexed into
+ shadowed a function previously bound to that prefix. Call
+ the function. The recursive call to _rl_dispatch_subseq has
+ already taken care of pushing any necessary input back onto
+ the input queue with _rl_unget_char. */
+ {
+ m = _rl_dispatching_keymap;
+ type = m[ANYOTHERKEY].type;
+ func = m[ANYOTHERKEY].function;
+ if (type == ISFUNC && func == rl_do_lowercase_version)
+ r = _rl_dispatch (_rl_to_lower (key), map);
+ else if (type == ISFUNC && func == rl_insert)
+ {
+ /* If the function that was shadowed was self-insert, we
+ somehow need a keymap with map[key].func == self-insert.
+ Let's use this one. */
+ nt = m[key].type;
+ nf = m[key].function;
+
+ m[key].type = type;
+ m[key].function = func;
+ r = _rl_dispatch (key, m);
+ m[key].type = nt;
+ m[key].function = nf;
+ }
+ else
+ r = _rl_dispatch (ANYOTHERKEY, m);
+ }
+ else if (r && map[ANYOTHERKEY].function)
+ {
+ /* We didn't match (r is probably -1), so return something to
+ tell the caller that it should try ANYOTHERKEY for an
+ overridden function. */
+ _rl_unget_char (key);
+ _rl_dispatching_keymap = map;
+ return -2;
+ }
+ else if (r && got_subseq)
+ {
+ /* OK, back up the chain. */
+ _rl_unget_char (key);
+ _rl_dispatching_keymap = map;
+ return -1;
+ }
+
+ return r;
+}
+
+/* **************************************************************** */
+/* */
+/* Initializations */
+/* */
+/* **************************************************************** */
+
+/* Initialize readline (and terminal if not already). */
+int
+rl_initialize ()
+{
+ /* If we have never been called before, initialize the
+ terminal and data structures. */
+ if (!rl_initialized)
+ {
+ RL_SETSTATE(RL_STATE_INITIALIZING);
+ readline_initialize_everything ();
+ RL_UNSETSTATE(RL_STATE_INITIALIZING);
+ rl_initialized++;
+ RL_SETSTATE(RL_STATE_INITIALIZED);
+ }
+
+ /* Initalize the current line information. */
+ _rl_init_line_state ();
+
+ /* We aren't done yet. We haven't even gotten started yet! */
+ rl_done = 0;
+ RL_UNSETSTATE(RL_STATE_DONE);
+
+ /* Tell the history routines what is going on. */
+ _rl_start_using_history ();
+
+ /* Make the display buffer match the state of the line. */
+ rl_reset_line_state ();
+
+ /* No such function typed yet. */
+ rl_last_func = (rl_command_func_t *)NULL;
+
+ /* Parsing of key-bindings begins in an enabled state. */
+ _rl_parsing_conditionalized_out = 0;
+
+#if defined (VI_MODE)
+ if (rl_editing_mode == vi_mode)
+ _rl_vi_initialize_line ();
+#endif
+
+ /* Each line starts in insert mode (the default). */
+ _rl_set_insert_mode (RL_IM_DEFAULT, 1);
+
+ return 0;
+}
+
+#if 0
+#if defined (__EMX__)
+static void
+_emx_build_environ ()
+{
+ TIB *tibp;
+ PIB *pibp;
+ char *t, **tp;
+ int c;
+
+ DosGetInfoBlocks (&tibp, &pibp);
+ t = pibp->pib_pchenv;
+ for (c = 1; *t; c++)
+ t += strlen (t) + 1;
+ tp = environ = (char **)xmalloc ((c + 1) * sizeof (char *));
+ t = pibp->pib_pchenv;
+ while (*t)
+ {
+ *tp++ = t;
+ t += strlen (t) + 1;
+ }
+ *tp = 0;
+}
+#endif /* __EMX__ */
+#endif
+
+/* Initialize the entire state of the world. */
+static void
+readline_initialize_everything ()
+{
+#if 0
+#if defined (__EMX__)
+ if (environ == 0)
+ _emx_build_environ ();
+#endif
+#endif
+
+#if 0
+ /* Find out if we are running in Emacs -- UNUSED. */
+ running_in_emacs = sh_get_env_value ("EMACS") != (char *)0;
+#endif
+
+ /* Set up input and output if they are not already set up. */
+ if (!rl_instream)
+ rl_instream = stdin;
+
+ if (!rl_outstream)
+ rl_outstream = stdout;
+
+ /* Bind _rl_in_stream and _rl_out_stream immediately. These values
+ may change, but they may also be used before readline_internal ()
+ is called. */
+ _rl_in_stream = rl_instream;
+ _rl_out_stream = rl_outstream;
+
+ /* Allocate data structures. */
+ if (rl_line_buffer == 0)
+ rl_line_buffer = (char *)xmalloc (rl_line_buffer_len = DEFAULT_BUFFER_SIZE);
+
+ /* Initialize the terminal interface. */
+ if (rl_terminal_name == 0)
+ rl_terminal_name = sh_get_env_value ("TERM");
+ _rl_init_terminal_io (rl_terminal_name);
+
+ /* Bind tty characters to readline functions. */
+ readline_default_bindings ();
+
+ /* Initialize the function names. */
+ rl_initialize_funmap ();
+
+ /* Decide whether we should automatically go into eight-bit mode. */
+ _rl_init_eightbit ();
+
+ /* Read in the init file. */
+ rl_read_init_file ((char *)NULL);
+
+ /* XXX */
+ if (_rl_horizontal_scroll_mode && _rl_term_autowrap)
+ {
+ _rl_screenwidth--;
+ _rl_screenchars -= _rl_screenheight;
+ }
+
+ /* Override the effect of any `set keymap' assignments in the
+ inputrc file. */
+ rl_set_keymap_from_edit_mode ();
+
+ /* Try to bind a common arrow key prefix, if not already bound. */
+ bind_arrow_keys ();
+
+ /* Enable the meta key, if this terminal has one. */
+ if (_rl_enable_meta)
+ _rl_enable_meta_key ();
+
+ /* If the completion parser's default word break characters haven't
+ been set yet, then do so now. */
+ if (rl_completer_word_break_characters == (char *)NULL)
+ rl_completer_word_break_characters = (char *)rl_basic_word_break_characters;
+}
+
+/* If this system allows us to look at the values of the regular
+ input editing characters, then bind them to their readline
+ equivalents, iff the characters are not bound to keymaps. */
+static void
+readline_default_bindings ()
+{
+ if (_rl_bind_stty_chars)
+ rl_tty_set_default_bindings (_rl_keymap);
+}
+
+/* Reset the default bindings for the terminal special characters we're
+ interested in back to rl_insert and read the new ones. */
+static void
+reset_default_bindings ()
+{
+ if (_rl_bind_stty_chars)
+ {
+ rl_tty_unset_default_bindings (_rl_keymap);
+ rl_tty_set_default_bindings (_rl_keymap);
+ }
+}
+
+/* Bind some common arrow key sequences in MAP. */
+static void
+bind_arrow_keys_internal (map)
+ Keymap map;
+{
+ Keymap xkeymap;
+
+ xkeymap = _rl_keymap;
+ _rl_keymap = map;
+
+#if defined (__MSDOS__)
+ rl_bind_keyseq_if_unbound ("\033[0A", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\033[0B", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\033[0C", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\033[0D", rl_get_next_history);
+#endif
+
+ rl_bind_keyseq_if_unbound ("\033[A", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\033[B", rl_get_next_history);
+ rl_bind_keyseq_if_unbound ("\033[C", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\033[D", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\033[H", rl_beg_of_line);
+ rl_bind_keyseq_if_unbound ("\033[F", rl_end_of_line);
+
+ rl_bind_keyseq_if_unbound ("\033OA", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\033OB", rl_get_next_history);
+ rl_bind_keyseq_if_unbound ("\033OC", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\033OD", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\033OH", rl_beg_of_line);
+ rl_bind_keyseq_if_unbound ("\033OF", rl_end_of_line);
+
+#if 1 /* was defined (__MINGW32__)*/
+ rl_bind_keyseq_if_unbound ("\340H", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\340P", rl_get_next_history);
+ rl_bind_keyseq_if_unbound ("\340M", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\340K", rl_backward_char);
+#endif
+
+ _rl_keymap = xkeymap;
+}
+
+/* Try and bind the common arrow key prefixes after giving termcap and
+ the inputrc file a chance to bind them and create `real' keymaps
+ for the arrow key prefix. */
+static void
+bind_arrow_keys ()
+{
+ bind_arrow_keys_internal (emacs_standard_keymap);
+
+#if defined (VI_MODE)
+ bind_arrow_keys_internal (vi_movement_keymap);
+ bind_arrow_keys_internal (vi_insertion_keymap);
+#endif
+}
+
+/* **************************************************************** */
+/* */
+/* Saving and Restoring Readline's state */
+/* */
+/* **************************************************************** */
+
+int
+rl_save_state (sp)
+ struct readline_state *sp;
+{
+ if (sp == 0)
+ return -1;
+
+ sp->point = rl_point;
+ sp->end = rl_end;
+ sp->mark = rl_mark;
+ sp->buffer = rl_line_buffer;
+ sp->buflen = rl_line_buffer_len;
+ sp->ul = rl_undo_list;
+ sp->prompt = rl_prompt;
+
+ sp->rlstate = rl_readline_state;
+ sp->done = rl_done;
+ sp->kmap = _rl_keymap;
+
+ sp->lastfunc = rl_last_func;
+ sp->insmode = rl_insert_mode;
+ sp->edmode = rl_editing_mode;
+ sp->kseqlen = rl_key_sequence_length;
+ sp->inf = rl_instream;
+ sp->outf = rl_outstream;
+ sp->pendingin = rl_pending_input;
+ sp->macro = rl_executing_macro;
+
+ sp->catchsigs = rl_catch_signals;
+ sp->catchsigwinch = rl_catch_sigwinch;
+
+ return (0);
+}
+
+int
+rl_restore_state (sp)
+ struct readline_state *sp;
+{
+ if (sp == 0)
+ return -1;
+
+ rl_point = sp->point;
+ rl_end = sp->end;
+ rl_mark = sp->mark;
+ the_line = rl_line_buffer = sp->buffer;
+ rl_line_buffer_len = sp->buflen;
+ rl_undo_list = sp->ul;
+ rl_prompt = sp->prompt;
+
+ rl_readline_state = sp->rlstate;
+ rl_done = sp->done;
+ _rl_keymap = sp->kmap;
+
+ rl_last_func = sp->lastfunc;
+ rl_insert_mode = sp->insmode;
+ rl_editing_mode = sp->edmode;
+ rl_key_sequence_length = sp->kseqlen;
+ rl_instream = sp->inf;
+ rl_outstream = sp->outf;
+ rl_pending_input = sp->pendingin;
+ rl_executing_macro = sp->macro;
+
+ rl_catch_signals = sp->catchsigs;
+ rl_catch_sigwinch = sp->catchsigwinch;
+
+ return (0);
+}
/* 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
/* 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.
#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)
}
#endif
+#if defined (__MINGW32__)
+_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)
+ {
+ 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
#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)
;;
# 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='-bundle -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
bind_variable ("OPTERR", "1", 0);
sh_opterr = 1;
- if (login_shell == 1)
+ if (login_shell == 1 && posixly_correct == 0)
set_home_var ();
/* Get the full pathname to THIS shell, and set the BASH variable
set_if_not ("HISTFILE", name);
free (name);
+#if 0
set_if_not ("HISTSIZE", "500");
sv_histsize ("HISTSIZE");
+#endif
}
#endif /* HISTORY */