From: Chet Ramey Date: Mon, 17 Sep 2018 20:29:10 +0000 (-0400) Subject: commit readline-20180917 snapshot X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a41da406f85d07fee4d75029d83a42692f0bc091;p=thirdparty%2Freadline.git commit readline-20180917 snapshot --- diff --git a/CHANGELOG b/CHANGELOG index f006fd1..18265ab 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1327,3 +1327,27 @@ readline.pc.in - change Requires.private to use TERMCAP_PKG_CONFIG_LIB instead of hardcoded `tinfo'. Report and fix from Thomas Petazzoni + + 5/4 + --- +Makefile.in + - new targets to install and uninstall the `readline.pc' pkgconfig + file + - install-{static,shared}: add install-pc to the list of prereqs + - uninstall{,-shared}: add uninstall-pc to list of prereqs. Change + from Thomas Petazzoni + +configure.ac,Makefile.in + - add new configure option to optionally disable installing the + source code examples. From Thomas Petazzoni + + 5/23 + ---- +Makefile.in + - install-pc: make sure we install readline.pc into an existing + pkgconfig directory. Report from ilove zfs + + 5/24 + ---- +Makefile.in + - installdirs: create $(pkgconfigdir) if it doesn't exist diff --git a/CHANGES b/CHANGES index b5e16b7..3d0e987 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,127 @@ +This document details the changes between this version, readline-8.0, and the +previous version, readline-7.0. + +1. Changes to Readline + +a. Added a guard to prevent nested macros from causing an infinite expansion + loop. + +b. Instead of allocating enough history list entries to hold the maximum list + size, cap the number allocated initially. + +c. Added a strategy to avoid allocating huge amounts of memory if a block of + history entries without timestamps occurs after a block with timestamps. + +d. Added support for keyboard timeouts when an ESC character is the last + character in a macro. + +e. There are several performance improvements when in a UTF-8 locale. + +f. Readline does a better job of preserving the original set of blocked + signals when using pselect() to wait for input. + +g. Fixed a bug that caused multibyte characters in macros to be mishandled. + +h. Fixed several bugs in the code that calculates line breaks when expanding + prompts that span several lines, contain multibyte characters, and contain + invisible character seqeuences. + +i. Fixed several bugs in cursor positioning when displaying lines with prompts + containing invisible characters and multibyte characters. + +j. When performing case-insensitive completion, Readline no longer sorts the + list of matches unless directed to do so. + +k. Fixed a problem with key sequences ending with a backslash. + +l. Fixed out-of-bounds and free memory read errors found via fuzzing. + +m. Fixed several cases where the mark was set to an invalid value. + +n. Fixed a problem with the case-changing operators in the case where the + lower and upper case versions of a character do not have the same number + of bytes. + +o. Handle incremental and non-incremental search character reads returning EOF. + +p. Handle the case where a failing readline command at the end of a multi-key + sequence could be misinterpreted. + +q. The history library now prints a meaningful error message if the history + file isn't a regular file. + +r. Fixed a problem with vi-mode redo (`.') on a command when trying to replace + a multibyte character. + +s. The key binding code now attempts to remove a keymap if a key unbinding + leaves it empty. + +t. Fixed a line-wrapping issue that caused problems for some terminal + emulators. + +u. If there is a key bound to the tty's VDISCARD special character, readline + disables VDISCARD while it is active. + +v. Fixed a problem with exiting bracketed paste mode on terminals that assume + the bracketed paste mode character sequence contains visible characters. + +w. Fixed a bug that could cause a key binding command to refer to an + uninitialized variable. + +x. Added more UTF-8-specific versions of multibyte functions, and optimized + existing functions if the current locale uses UTF-8 encoding. + +y. Fixed a problem with bracketed-paste inserting more than one character and + interacting with other readline functions. + +z. Fixed a bug that caused the history library to attempt to append a history + line to a non-existent history entry. + +aa. If using bracketed paste mode, output a newline after the \r that is the + last character of the mode disable string to avoid overwriting output. + +bb. Fixes to the vi-mode `b', `B', `w', `W', `e', and `E' commands to better + handle multibyte characters. + +cc. Fixed a redisplay problem that caused an extra newline to be generated on + accept-line when the line length is exactly the screenwidth. + +2. New Features in Readline + +a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as + Posix specifies (uses fnmatch(3) if available). + +b. There are new `next-screen-line' and `previous-screen-line' bindable + commands, which move the cursor to the same column in the next, or previous, + physical line, respectively. + +c. There are default key bindings for control-arrow-key key combinations. + +d. A negative argument (-N) to `quoted-insert' means to insert the next N + characters using quoted-insert. + +e. New public function: rl_check_signals(), which allows applications to + respond to signals that readline catches while waiting for input using + a custom read function. + +f. There is new support for conditionally testing the readline version in an + inputrc file, with a full set of arithmetic comparison operators available. + +g. There is a simple variable comparison facility available for use within an + inputrc file. Allowable operators are equality and inequality; string + variables may be compared to a value; boolean variables must be compared to + either `on' or `off'; variable names are separated from the operator by + whitespace. + +h. The history expansion library now understands command and process + substitution and extended globbing and allows them to appear anywhere in a + word. + +i. The history library has a new variable that allows applications to set the + initial quoting state, so quoting state can be inherited from a previous + line. + +------------------------------------------------------------------------------- This document details the changes between this version, readline-7.0, and the previous version, readline-6.3. diff --git a/INSTALL b/INSTALL index e1a92d3..afb4d53 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ Basic Installation ================== -These are installation instructions for Readline-7.0. +These are installation instructions for Readline-8.0. The simplest way to compile readline is: diff --git a/Makefile.in b/Makefile.in index 51f2ae3..8dd5ca5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,6 +1,6 @@ ## -*- text -*- ## # Master Makefile for the GNU readline library. -# Copyright (C) 1994-2009 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -59,6 +59,7 @@ mandir = @mandir@ includedir = @includedir@ datadir = @datadir@ localedir = @localedir@ +pkgconfigdir = ${libdir}/pkgconfig infodir = @infodir@ @@ -97,6 +98,8 @@ GCC_LINT_CFLAGS = $(XCCFLAGS) $(GCC_LINT_FLAGS) @CFLAGS@ @LOCAL_CFLAGS@ ASAN_XCFLAGS = -fsanitize=address -fno-omit-frame-pointer ASAN_XLDFLAGS = -fsanitize=address +install_examples = @EXAMPLES_INSTALL_TARGET@ + .c.o: ${RM} $@ $(CC) -c $(CCFLAGS) $< @@ -238,7 +241,16 @@ uninstall-headers: maybe-uninstall-headers: uninstall-headers -install-static: installdirs $(STATIC_LIBS) install-headers install-doc install-examples +install-pc: installdirs + -$(INSTALL_DATA) $(BUILD_DIR)/readline.pc $(DESTDIR)$(pkgconfigdir)/readline.pc + +uninstall-pc: + -test -n "$(pkgconfigdir)" && cd $(DESTDIR)$(pkgconfigdir) && \ + ${RM} readline.pc + +maybe-uninstall-pc: uninstall-pc + +install-static: installdirs $(STATIC_LIBS) install-headers install-doc ${install_examples} install-pc -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a @@ -249,17 +261,18 @@ install-static: installdirs $(STATIC_LIBS) install-headers install-doc install-e installdirs: $(srcdir)/support/mkinstalldirs -$(SHELL) $(srcdir)/support/mkinstalldirs $(DESTDIR)$(includedir) \ $(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \ - $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) $(DESTDIR)$(docdir) + $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) $(DESTDIR)$(docdir) \ + $(DESTDIR)$(pkgconfigdir) -uninstall: uninstall-headers uninstall-doc uninstall-examples +uninstall: uninstall-headers uninstall-doc uninstall-examples uninstall-pc -test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \ ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS) -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall ) -install-shared: installdirs install-headers shared install-doc +install-shared: installdirs install-headers shared install-doc install-pc ( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install ) -uninstall-shared: maybe-uninstall-headers +uninstall-shared: maybe-uninstall-headers maybe-uninstall-pc -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall ) install-examples: installdirs install-headers diff --git a/NEWS b/NEWS index 4ff0330..1919a48 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,42 @@ +This is a terse description of the new features added to readline-8.0 since +the release of readline-7.0. + +New Features in Readline + +a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as + Posix specifies (uses fnmatch(3) if available). + +b. There are new `next-screen-line' and `previous-screen-line' bindable + commands, which move the cursor to the same column in the next, or previous, + physical line, respectively. + +c. There are default key bindings for control-arrow-key key combinations. + +d. A negative argument (-N) to `quoted-insert' means to insert the next N + characters using quoted-insert. + +e. New public function: rl_check_signals(), which allows applications to + respond to signals that readline catches while waiting for input using + a custom read function. + +f. There is new support for conditionally testing the readline version in an + inputrc file, with a full set of arithmetic comparison operators available. + +g. There is a simple variable comparison facility available for use within an + inputrc file. Allowable operators are equality and inequality; string + variables may be compared to a value; boolean variables must be compared to + either `on' or `off'; variable names are separated from the operator by + whitespace. + +h. The history expansion library now understands command and process + substitution and extended globbing and allows them to appear anywhere in a + word. + +i. The history library has a new variable that allows applications to set the + initial quoting state, so quoting state can be inherited from a previous + line. + +------------------------------------------------------------------------------- This is a terse description of the new features added to readline-7.0 since the release of readline-6.3. diff --git a/README b/README index 6a9c2b9..4fb0804 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ Introduction ============ -This is the Gnu Readline library, version 7.0. +This is the Gnu Readline library, version 8.0. The Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both diff --git a/aclocal.m4 b/aclocal.m4 index 6ea6f40..6ed03e1 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1307,7 +1307,7 @@ AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers, typedef RETSIGTYPE sigfunc(); -int nsigint; +volatile int nsigint; #ifdef HAVE_POSIX_SIGNALS sigfunc * diff --git a/configure b/configure index e304679..ddc51a9 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac for Readline 7.0, version 2.83. +# From configure.ac for Readline 8.0, version 2.85. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for readline 7.0. +# Generated by GNU Autoconf 2.69 for readline 8.0. # # Report bugs to . # @@ -581,8 +581,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='readline' PACKAGE_TARNAME='readline' -PACKAGE_VERSION='7.0' -PACKAGE_STRING='readline 7.0' +PACKAGE_VERSION='8.0' +PACKAGE_STRING='readline 8.0' PACKAGE_BUGREPORT='bug-readline@gnu.org' PACKAGE_URL='' @@ -632,6 +632,7 @@ LOCAL_DEFS LOCAL_LDFLAGS LOCAL_CFLAGS BUILD_DIR +EXAMPLES_INSTALL_TARGET SHARED_INSTALL_TARGET STATIC_INSTALL_TARGET SHARED_TARGET @@ -725,6 +726,7 @@ with_curses enable_multibyte enable_shared enable_static +enable_install_examples enable_largefile ' ac_precious_vars='build_alias @@ -1276,7 +1278,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures readline 7.0 to adapt to many kinds of systems. +\`configure' configures readline 8.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1341,7 +1343,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of readline 7.0:";; + short | recursive ) echo "Configuration of readline 8.0:";; esac cat <<\_ACEOF @@ -1352,6 +1354,8 @@ Optional Features: --enable-multibyte enable multibyte characters if OS supports them --enable-shared build shared libraries [[default=YES]] --enable-static build static libraries [[default=YES]] + --disable-install-examples + don't install examples [[default=install]] --disable-largefile omit support for large files Optional Packages: @@ -1436,7 +1440,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -readline configure 7.0 +readline configure 8.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2088,7 +2092,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by readline $as_me 7.0, which was +It was created by readline $as_me 8.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2472,7 +2476,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" -LIBVERSION=7.0 +LIBVERSION=8.0 # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || @@ -2563,6 +2567,7 @@ fi opt_multibyte=yes opt_static_libs=yes opt_shared_libs=yes +opt_install_examples=yes # Check whether --enable-multibyte was given. if test "${enable_multibyte+set}" = set; then : @@ -2579,6 +2584,11 @@ if test "${enable_static+set}" = set; then : enableval=$enable_static; opt_static_libs=$enableval fi +# Check whether --enable-install-examples was given. +if test "${enable_install_examples+set}" = set; then : + enableval=$enable_install_examples; opt_install_examples=$enableval +fi + if test $opt_multibyte = no; then $as_echo "#define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h @@ -6819,6 +6829,11 @@ fi +if test "$opt_install_examples" = "yes"; then + EXAMPLES_INSTALL_TARGET=install-examples +fi + + case "$build_os" in msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file *) BUILD_DIR=`pwd` ;; @@ -7357,7 +7372,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by readline $as_me 7.0, which was +This file was extended by readline $as_me 8.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7423,7 +7438,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -readline config.status 7.0 +readline config.status 8.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 64ed9cc..b73e37b 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl report bugs to chet@po.cwru.edu dnl dnl Process this file with autoconf to produce a configure script. -# Copyright (C) 1987-2016 Free Software Foundation, Inc. +# Copyright (C) 1987-2018 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,9 +20,9 @@ dnl Process this file with autoconf to produce a configure script. # You should have received a copy of the GNU General Public License # along with this program. If not, see . -AC_REVISION([for Readline 7.0, version 2.83]) +AC_REVISION([for Readline 8.0, version 2.85]) -AC_INIT(readline, 7.0, bug-readline@gnu.org) +AC_INIT(readline, 8.0, bug-readline@gnu.org) dnl make sure we are using a recent autoconf version AC_PREREQ(2.50) @@ -32,7 +32,7 @@ AC_CONFIG_AUX_DIR(./support) AC_CONFIG_HEADERS(config.h) dnl update the value of RL_READLINE_VERSION in readline.h when this changes -LIBVERSION=7.0 +LIBVERSION=8.0 AC_CANONICAL_HOST AC_CANONICAL_BUILD @@ -51,10 +51,12 @@ dnl option parsing for optional features opt_multibyte=yes opt_static_libs=yes opt_shared_libs=yes +opt_install_examples=yes AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval) AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval) AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval) +AC_ARG_ENABLE(install-examples, AC_HELP_STRING([--disable-install-examples], [don't install examples [[default=install]]]), opt_install_examples=$enableval) if test $opt_multibyte = no; then AC_DEFINE(NO_MULTIBYTE_SUPPORT) @@ -274,6 +276,11 @@ AC_SUBST(SHARED_TARGET) AC_SUBST(STATIC_INSTALL_TARGET) AC_SUBST(SHARED_INSTALL_TARGET) +if test "$opt_install_examples" = "yes"; then + EXAMPLES_INSTALL_TARGET=install-examples +fi +AC_SUBST(EXAMPLES_INSTALL_TARGET) + case "$build_os" in msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file *) BUILD_DIR=`pwd` ;; diff --git a/display.c b/display.c index 75019ef..b2ed115 100644 --- a/display.c +++ b/display.c @@ -2987,7 +2987,8 @@ _rl_update_final (void) putc (last_line[_rl_screenwidth - 1 + woff], rl_outstream); } _rl_vis_botlin = 0; - rl_crlf (); + if (botline_length > 0 || _rl_last_c_pos > 0) + rl_crlf (); fflush (rl_outstream); rl_display_fixed++; } diff --git a/doc/._rluserman.pdf b/doc/._rluserman.pdf index 2bbb1ac..2d28677 100644 Binary files a/doc/._rluserman.pdf and b/doc/._rluserman.pdf differ diff --git a/doc/history.dvi b/doc/history.dvi index 022ba25..f7efa74 100644 Binary files a/doc/history.dvi and b/doc/history.dvi differ diff --git a/doc/history.html b/doc/history.html index ffa16a1..5ddf9f0 100644 --- a/doc/history.html +++ b/doc/history.html @@ -1,6 +1,6 @@ - + +

- +

Function: void rl_redisplay (void)
Change what's displayed on the screen to reflect the current contents @@ -3739,7 +3748,7 @@ of rl_line_buffer.

- +

Function: int rl_forced_update_display (void)
Force the line to be updated and redisplayed, whether or not @@ -3747,7 +3756,7 @@ Readline thinks the screen display is correct.

- +

Function: int rl_on_new_line (void)
Tell the update functions that we have moved onto a new (empty) line, @@ -3755,7 +3764,7 @@ usually after outputting a newline.

- +

Function: int rl_on_new_line_with_prompt (void)
Tell the update functions that we have moved onto a new line, with @@ -3767,14 +3776,14 @@ It should be used after setting rl_already_prompted.

- +

Function: int rl_clear_visible_line (void)
Clear the screen lines corresponding to the current line's contents.

- +

Function: int rl_reset_line_state (void)
Reset the display state to a clean state and redisplay the current line @@ -3782,14 +3791,14 @@ starting on a new line.

- +

Function: int rl_crlf (void)
Move the cursor to the start of the next screen line.

- +

Function: int rl_show_char (int c)
Display character c on rl_outstream. @@ -3800,7 +3809,7 @@ redisplay.

- +

Function: int rl_message (const char *, ...)
The arguments are a format string as would be supplied to printf, @@ -3813,7 +3822,7 @@ before calling this function.

- +

Function: int rl_clear_message (void)
Clear the message in the echo area. If the prompt was saved with a call to @@ -3822,7 +3831,7 @@ call rl_restore_prompt before calling this function.

- +

Function: void rl_save_prompt (void)
Save the local Readline prompt display state in preparation for @@ -3830,7 +3839,7 @@ displaying a new message in the message area with rl_message().

- +

Function: void rl_restore_prompt (void)
Restore the local Readline prompt display state saved by the most @@ -3841,7 +3850,7 @@ corresponding call to rl_clear_message.

- +

Function: int rl_expand_prompt (char *prompt)
Expand any special character sequences in prompt and set up the @@ -3859,7 +3868,7 @@ be used to embed terminal-specific escape sequences in prompts.

- +

Function: int rl_set_prompt (const char *prompt)
Make Readline use prompt for subsequent redisplay. This calls @@ -3886,7 +3895,7 @@ to the result.

- +

Function: int rl_insert_text (const char *text)
Insert text into the line at the current cursor position. @@ -3894,7 +3903,7 @@ Returns the number of characters inserted.

- +

Function: int rl_delete_text (int start, int end)
Delete the text between start and end in the current line. @@ -3902,7 +3911,7 @@ Returns the number of characters deleted.

- +

Function: char * rl_copy_text (int start, int end)
Return a copy of the text between start and end in @@ -3910,7 +3919,7 @@ the current line.

- +

Function: int rl_kill_text (int start, int end)
Copy the text between start and end in the current line @@ -3922,7 +3931,7 @@ not a kill, a new kill ring slot is used.

- +

Function: int rl_push_macro_input (char *macro)
Cause macro to be inserted into the line, as if it had been invoked @@ -3949,7 +3958,7 @@ by a key bound to a macro. Not especially useful; use

- +

Function: int rl_read_key (void)
Return the next character available from Readline's current input stream. @@ -3961,7 +3970,7 @@ the rl_event_hook variable.

- +

Function: int rl_getc (FILE *stream)
Return the next character available from stream, which is assumed to @@ -3969,7 +3978,7 @@ be the keyboard.

- +

Function: int rl_stuff_char (int c)
Insert c into the Readline input stream. It will be "read" @@ -3980,7 +3989,7 @@ before Readline attempts to read characters from the terminal with

- +

Function: int rl_execute_next (int c)
Make c be the next command to be executed when rl_read_key() @@ -3988,7 +3997,7 @@ is called. This sets rl_pending_input.

- +

Function: int rl_clear_pending_input (void)
Unset rl_pending_input, effectively negating the effect of any @@ -3997,7 +4006,7 @@ pending input has not already been read with rl_read_key().

- +

Function: int rl_set_keyboard_input_timeout (int u)
While waiting for keyboard input in rl_read_key(), Readline will @@ -4027,7 +4036,7 @@ Returns the old timeout value.

- +

Function: void rl_prep_terminal (int meta_flag)
Modify the terminal settings for Readline's use, so readline() @@ -4037,7 +4046,7 @@ read eight-bit input.

- +

Function: void rl_deprep_terminal (void)
Undo the effects of rl_prep_terminal(), leaving the terminal in @@ -4046,7 +4055,7 @@ the state in which it was before the most recent call to

- +

Function: void rl_tty_set_default_bindings (Keymap kmap)
Read the operating system's terminal editing characters (as would be @@ -4055,7 +4064,7 @@ The bindings are performed in kmap.

- +

Function: void rl_tty_unset_default_bindings (Keymap kmap)
Reset the bindings manipulated by rl_tty_set_default_bindings so @@ -4064,7 +4073,7 @@ The bindings are performed in kmap.

- +

Function: int rl_tty_set_echoing (int value)
Set Readline's idea of whether or not it is echoing output to its output @@ -4075,7 +4084,7 @@ This function returns the previous value.

- +

Function: int rl_reset_terminal (const char *terminal_name)
Reinitialize Readline's idea of the terminal settings using @@ -4103,7 +4112,7 @@ environment variable is used.

- +

Function: int rl_save_state (struct readline_state *sp)
Save a snapshot of Readline's internal state to sp. @@ -4113,7 +4122,7 @@ The caller is responsible for allocating the structure.

- +

Function: int rl_restore_state (struct readline_state *sp)
Restore Readline's internal state to that stored in sp, which must @@ -4124,7 +4133,7 @@ The caller is responsible for freeing the structure.

- +

Function: void rl_free (void *mem)
Deallocate the memory pointed to by mem. mem must have been @@ -4132,7 +4141,7 @@ allocated by malloc.

- +

Function: void rl_replace_line (const char *text, int clear_undo)
Replace the contents of rl_line_buffer with text. @@ -4142,7 +4151,7 @@ current line is cleared.

- +

Function: void rl_extend_line_buffer (int len)
Ensure that rl_line_buffer has enough space to hold len @@ -4150,7 +4159,7 @@ characters, possibly reallocating it if necessary.

- +

Function: int rl_initialize (void)
Initialize or re-initialize Readline's internal state. @@ -4159,21 +4168,21 @@ reading any input.

- +

Function: int rl_ding (void)
Ring the terminal bell, obeying the setting of bell-style.

- +

Function: int rl_alphabetic (int c)
Return 1 if c is an alphabetic character.

- +

Function: void rl_display_match_list (char **matches, int len, int max)
A convenience function for displaying a list of strings in @@ -4193,28 +4202,28 @@ The following are implemented as macros, defined in chardefs.h. Applications should refrain from using them.

- +

Function: int _rl_uppercase_p (int c)
Return 1 if c is an uppercase alphabetic character.

- +

Function: int _rl_lowercase_p (int c)
Return 1 if c is a lowercase alphabetic character.

- +

Function: int _rl_digit_p (int c)
Return 1 if c is a numeric character.

- +

Function: int _rl_to_upper (int c)
If c is a lowercase alphabetic character, return the corresponding @@ -4222,7 +4231,7 @@ uppercase character.

- +

Function: int _rl_to_lower (int c)
If c is an uppercase alphabetic character, return the corresponding @@ -4230,7 +4239,7 @@ lowercase character.

- +

Function: int _rl_digit_value (int c)
If c is a number, return the value it represents. @@ -4255,7 +4264,7 @@ lowercase character.

- +

Function: int rl_macro_bind (const char *keyseq, const char *macro, Keymap map)
Bind the key sequence keyseq to invoke the macro macro. @@ -4265,7 +4274,7 @@ use rl_generic_bind() instead.

- +

Function: void rl_macro_dumper (int readable)
Print the key sequences bound to macros and their values, using @@ -4275,7 +4284,7 @@ that it can be made part of an inputrc file and re-read.

- +

Function: int rl_variable_bind (const char *variable, const char *value)
Make the Readline variable variable have value. @@ -4285,7 +4294,7 @@ file (see section 1.3.1 Readline Init File Syntax<

- +

Function: char * rl_variable_value (const char *variable)
Return a string representing the value of the Readline variable variable. @@ -4293,7 +4302,7 @@ For boolean variables, this string is either `on' or `off'

- +

Function: void rl_variable_dumper (int readable)
Print the readline variable names and their current values @@ -4303,7 +4312,7 @@ that it can be made part of an inputrc file and re-read.

- +

Function: int rl_set_paren_blink_timeout (int u)
Set the time interval (in microseconds) that Readline waits when showing @@ -4311,7 +4320,7 @@ a balancing character when blink-matching-paren has been enabled.

- +

Function: char * rl_get_termcap (const char *cap)
Retrieve the string value of the termcap capability cap. @@ -4323,7 +4332,7 @@ values for only those capabilities Readline uses.

- +

Function: void rl_clear_history (void)
Clear the history list by deleting all of the entries, in the same manner @@ -4359,7 +4368,7 @@ also be invoked as a `callback' function from an event loop. There are functions available to make this easy.

- +

Function: void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
Set up the terminal for readline I/O and display the initial @@ -4372,7 +4381,7 @@ line when it it finished with it.

- +

Function: void rl_callback_read_char (void)
Whenever an application determines that keyboard input is available, it @@ -4392,7 +4401,7 @@ the terminal settings are modified for Readline's use again.

- +

Function: void rl_callback_sigcleanup (void)
Clean up any internal state the callback interface uses to maintain state @@ -4403,7 +4412,7 @@ calls this when appropriate.

- +

Function: void rl_callback_handler_remove (void)
Restore the terminal to its initial state and remove the line handler. @@ -4722,7 +4731,7 @@ values of these variables only when calling readline(), not in a signal handler, so Readline's internal signal state is not corrupted.

- +

Variable: int rl_catch_signals
If this variable is non-zero, Readline will install signal handlers for @@ -4734,7 +4743,7 @@ The default value of rl_catch_signals is 1.

- +

Variable: int rl_catch_sigwinch
If this variable is set to a non-zero value, @@ -4745,7 +4754,7 @@ The default value of rl_catch_sigwinch is 1.

- +

Variable: int rl_persistent_signal_handlers
If an application using the callback interface wishes Readline's signal @@ -4758,7 +4767,7 @@ The default value of rl_persistent_signal_handlers is 0.

- +

Variable: int rl_change_environment
If this variable is set to a non-zero value, @@ -4778,7 +4787,7 @@ Readline provides convenience functions to do the necessary terminal and internal state cleanup upon receipt of a signal.

- +

Function: int rl_pending_signal (void)
Return the signal number of the most recent signal Readline received but @@ -4786,7 +4795,7 @@ has not yet handled, or 0 if there is no pending signal.

- +

Function: void rl_cleanup_after_signal (void)
This function will reset the state of the terminal to what it was before @@ -4796,7 +4805,7 @@ all signals, depending on the values of rl_catch_signals and

- +

Function: void rl_free_line_state (void)
This will free any partial state associated with the current input line @@ -4808,7 +4817,7 @@ current input line.

- +

Function: void rl_reset_after_signal (void)
This will reinitialize the terminal and reinstall any Readline signal @@ -4825,7 +4834,7 @@ a custom rl_getc_function (see section +
Function: void rl_check_signals (void)
If there are any pending signals, call Readline's internal signal handling @@ -4840,7 +4849,7 @@ Readline to update its idea of the terminal size when a SIGWINCH is received.

- +

Function: void rl_echo_signal_char (int sig)
If an application wishes to install its own signal handlers, but still @@ -4850,14 +4859,14 @@ function with sig set to SIGINT, SIGQUIT, o

- +

Function: void rl_resize_terminal (void)
Update Readline's internal screen size by reading values from the kernel.

- +

Function: void rl_set_screen_size (int rows, int cols)
Set Readline's idea of the terminal size to rows rows and @@ -4871,7 +4880,7 @@ is still interested in the screen dimensions, Readline's idea of the screen size may be queried.

- +

Function: void rl_get_screen_size (int *rows, int *cols)
Return Readline's idea of the terminal's size in the @@ -4879,7 +4888,7 @@ variables pointed to by the arguments.

- +

Function: void rl_reset_screen_size (void)
Cause Readline to reobtain the screen size and recalculate its dimensions. @@ -4889,7 +4898,7 @@ variables pointed to by the arguments. The following functions install and remove Readline's signal handlers.

- +

Function: int rl_set_signals (void)
Install Readline's signal handler for SIGINT, SIGQUIT, @@ -4899,7 +4908,7 @@ The following functions install and remove Readline's signal handlers.

- +

Function: int rl_clear_signals (void)
Remove all of the Readline signal handlers installed by @@ -5012,7 +5021,7 @@ Such a generator function is referred to as an

- +

Function: int rl_complete (int ignore, int invoking_key)
Complete the word at or before point. You have supplied the function @@ -5021,7 +5030,7 @@ that does the initial simple matching selection algorithm (see

- +

Variable: rl_compentry_func_t * rl_completion_entry_function
This is a pointer to the generator function for @@ -5057,7 +5066,7 @@ Here is the complete list of callable completion functions present in Readline.

- +

Function: int rl_complete_internal (int what_to_do)
Complete the word at or before point. what_to_do says what to do @@ -5071,7 +5080,7 @@ a common prefix.

- +

Function: int rl_complete (int ignore, int invoking_key)
Complete the word at or before point. You have supplied the function @@ -5083,7 +5092,7 @@ argument depending on invoking_key.

- +

Function: int rl_possible_completions (int count, int invoking_key)
List the possible completions. See description of rl_complete @@ -5092,7 +5101,7 @@ argument depending on invoking_key.

- +

Function: int rl_insert_completions (int count, int invoking_key)
Insert the list of possible completions into the line, deleting the @@ -5101,7 +5110,7 @@ This calls rl_complete_internal() with an argument of `*'

- +

Function: int rl_completion_mode (rl_command_func_t *cfunc)
Returns the appropriate value to pass to rl_complete_internal() @@ -5113,7 +5122,7 @@ the same interface as rl_complete().

- +

Function: char ** rl_completion_matches (const char *text, rl_compentry_func_t *entry_func)
Returns an array of strings which is a list of completions for @@ -5131,7 +5140,7 @@ when there are no more matches.

- +

Function: char * rl_filename_completion_function (const char *text, int state)
A generator function for filename completion in the general case. @@ -5142,7 +5151,7 @@ Readline functions).

- +

Function: char * rl_username_completion_function (const char *text, int state)
A completion generator for usernames. text contains a partial @@ -5170,7 +5179,7 @@ for subsequent calls.

- +

Variable: rl_compentry_func_t * rl_completion_entry_function
A pointer to the generator function for rl_completion_matches(). @@ -5179,7 +5188,7 @@ the default filename completer.

- +

Variable: rl_completion_func_t * rl_attempted_completion_function
A pointer to an alternative function to create matches. @@ -5196,7 +5205,7 @@ completion even if this function returns no matches.

- +

Variable: rl_quote_func_t * rl_filename_quoting_function
A pointer to a function that will quote a filename in an @@ -5213,7 +5222,7 @@ to reset this character.

- +

Variable: rl_dequote_func_t * rl_filename_dequoting_function
A pointer to a function that will remove application-specific quoting @@ -5226,7 +5235,7 @@ that delimits the filename (usually `'' or `"'). If

- +

Variable: rl_linebuf_func_t * rl_char_is_quoted_p
A pointer to a function to call that determines whether or not a specific @@ -5239,7 +5248,7 @@ used to break words for the completer.

- +

Variable: rl_compignore_func_t * rl_ignore_some_completions_function
This function, if defined, is called by the completer when real filename @@ -5252,7 +5261,7 @@ from the array must be freed.

- +

Variable: rl_icppfunc_t * rl_directory_completion_hook
This function, if defined, is allowed to modify the directory portion @@ -5275,7 +5284,7 @@ The function should not modify the directory argument if it returns 0.

- +

Variable: rl_icppfunc_t * rl_directory_rewrite_hook;
If non-zero, this is the address of a function to call when completing @@ -5295,7 +5304,7 @@ The function should not modify the directory argument if it returns 0.

- +

Variable: rl_icppfunc_t * rl_filename_stat_hook
If non-zero, this is the address of a function for the completer to @@ -5311,7 +5320,7 @@ The function should not modify the directory argument if it returns 0.

- +

Variable: rl_dequote_func_t * rl_filename_rewrite_hook
If non-zero, this is the address of a function called when reading @@ -5330,7 +5339,7 @@ allocated string.

- +

Variable: rl_compdisp_func_t * rl_completion_display_matches_hook
If non-zero, then this is the address of a function to call when @@ -5347,7 +5356,7 @@ You may call that function from this hook.

- +

Variable: const char * rl_basic_word_break_characters
The basic list of characters that signal a break between words for the @@ -5357,14 +5366,14 @@ which break words for completion in Bash:

- +

Variable: const char * rl_basic_quote_characters
A list of quote characters which can cause a word break.

- +

Variable: const char * rl_completer_word_break_characters
The list of characters that signal a break between words for @@ -5373,7 +5382,7 @@ which break words for completion in Bash:

- +

Variable: rl_cpvfunc_t * rl_completion_word_break_hook
If non-zero, this is the address of a function to call when Readline is @@ -5385,7 +5394,7 @@ returns NULL, rl_completer_word_break_characters is us

- +

Variable: const char * rl_completer_quote_characters
A list of characters which can be used to quote a substring of the line. @@ -5395,7 +5404,7 @@ unless they also appear within this list.

- +

Variable: const char * rl_filename_quote_characters
A list of characters that cause a filename to be quoted by the completer @@ -5403,7 +5412,7 @@ when they appear in a completed filename. The default is the null string.

- +

Variable: const char * rl_special_prefixes
The list of characters that are word break characters, but should be @@ -5414,7 +5423,7 @@ shell variables and hostnames.

- +

Variable: int rl_completion_query_items
Up to this many items will be displayed in response to a @@ -5424,7 +5433,7 @@ indicates that Readline should never ask the user.

- +

Variable: int rl_completion_append_character
When a single completion alternative matches at the end of the command @@ -5437,7 +5446,7 @@ an application-specific command line syntax specification.

- +

Variable: int rl_completion_suppress_append
If non-zero, rl_completion_append_character is not appended to @@ -5447,7 +5456,7 @@ is called, and may only be changed within such a function.

- +

Variable: int rl_completion_quote_character
When Readline is completing quoted text, as delimited by one of the @@ -5457,7 +5466,7 @@ This is set before any application-specific completion function is called.

- +

Variable: int rl_completion_suppress_quote
If non-zero, Readline does not append a matching quote character when @@ -5467,7 +5476,7 @@ is called, and may only be changed within such a function.

- +

Variable: int rl_completion_found_quote
When Readline is completing quoted text, it sets this variable @@ -5477,7 +5486,7 @@ This is set before any application-specific completion function is called.

- +

Variable: int rl_completion_mark_symlink_dirs
If non-zero, a slash will be appended to completed filenames that are @@ -5492,7 +5501,7 @@ function modifies the value, the user's preferences are honored.

- +

Variable: int rl_ignore_completion_duplicates
If non-zero, then duplicates in the matches are removed. @@ -5500,7 +5509,7 @@ The default is 1.

- +

Variable: int rl_filename_completion_desired
Non-zero means that the results of the matches are to be treated as @@ -5514,7 +5523,7 @@ characters in rl_filename_quote_characters and

- +

Variable: int rl_filename_quoting_desired
Non-zero means that the results of the matches are to be quoted using @@ -5528,7 +5537,7 @@ by rl_filename_quoting_function.

- +

Variable: int rl_attempted_completion_over
If an application-specific completion function assigned to @@ -5539,7 +5548,7 @@ It should be set only by an application's completion function.

- +

Variable: int rl_sort_completion_matches
If an application sets this variable to 0, Readline will not sort the @@ -5551,7 +5560,7 @@ matches.

- +

Variable: int rl_completion_type
Set to a character describing the type of completion Readline is currently @@ -5563,7 +5572,7 @@ the same interface as rl_complete().

- +

Variable: int rl_completion_invoking_key
Set to the final character in the key sequence that invoked one of the @@ -5573,7 +5582,7 @@ function is called.

- +

Variable: int rl_inhibit_completion
If this variable is non-zero, completion is inhibited. The completion @@ -6812,12 +6821,12 @@ to permit their use in free software. Index Entry Section
_ -_rl_digit_p2.4.10 Utility Functions -_rl_digit_value2.4.10 Utility Functions -_rl_lowercase_p2.4.10 Utility Functions -_rl_to_lower2.4.10 Utility Functions -_rl_to_upper2.4.10 Utility Functions -_rl_uppercase_p2.4.10 Utility Functions +_rl_digit_p2.4.10 Utility Functions +_rl_digit_value2.4.10 Utility Functions +_rl_lowercase_p2.4.10 Utility Functions +_rl_to_lower2.4.10 Utility Functions +_rl_to_upper2.4.10 Utility Functions +_rl_uppercase_p2.4.10 Utility Functions
A abort (C-g)1.4.8 Some Miscellaneous Commands @@ -7013,15 +7022,15 @@ to permit their use in free software. revert-line (M-r)1.4.8 Some Miscellaneous Commands revert-line (M-r)1.4.8 Some Miscellaneous Commands rl_add_defun2.4.1 Naming a Function -rl_add_funmap_entry2.4.4 Associating Function Names and Bindings -rl_add_undo2.4.5 Allowing Undoing -rl_alphabetic2.4.10 Utility Functions +rl_add_funmap_entry2.4.4 Associating Function Names and Bindings +rl_add_undo2.4.5 Allowing Undoing +rl_alphabetic2.4.10 Utility Functions rl_already_prompted2.3 Readline Variables -rl_attempted_completion_function2.6.3 Completion Variables -rl_attempted_completion_over2.6.3 Completion Variables -rl_basic_quote_characters2.6.3 Completion Variables -rl_basic_word_break_characters2.6.3 Completion Variables -rl_begin_undo_group2.4.5 Allowing Undoing +rl_attempted_completion_function2.6.3 Completion Variables +rl_attempted_completion_over2.6.3 Completion Variables +rl_basic_quote_characters2.6.3 Completion Variables +rl_basic_word_break_characters2.6.3 Completion Variables +rl_begin_undo_group2.4.5 Allowing Undoing rl_bind_key2.4.3 Binding Keys rl_bind_key_if_unbound2.4.3 Binding Keys rl_bind_key_if_unbound_in_map2.4.3 Binding Keys @@ -7031,179 +7040,180 @@ to permit their use in free software. rl_bind_keyseq_if_unbound_in_map2.4.3 Binding Keys rl_bind_keyseq_in_map2.4.3 Binding Keys rl_binding_keymap2.3 Readline Variables -rl_callback_handler_install2.4.12 Alternate Interface -rl_callback_handler_remove2.4.12 Alternate Interface -rl_callback_read_char2.4.12 Alternate Interface -rl_callback_sigcleanup2.4.12 Alternate Interface -rl_catch_signals2.5 Readline Signal Handling -rl_catch_sigwinch2.5 Readline Signal Handling -rl_change_environment2.5 Readline Signal Handling -rl_char_is_quoted_p2.6.3 Completion Variables -rl_check_signals2.5 Readline Signal Handling -rl_cleanup_after_signal2.5 Readline Signal Handling -rl_clear_history2.4.11 Miscellaneous Functions -rl_clear_message2.4.6 Redisplay -rl_clear_pending_input2.4.8 Character Input -rl_clear_signals2.5 Readline Signal Handling -rl_clear_visible_line2.4.6 Redisplay -rl_complete2.6.1 How Completing Works -rl_complete2.6.2 Completion Functions -rl_complete_internal2.6.2 Completion Functions -rl_completer_quote_characters2.6.3 Completion Variables -rl_completer_word_break_characters2.6.3 Completion Variables -rl_completion_append_character2.6.3 Completion Variables -rl_completion_display_matches_hook2.6.3 Completion Variables -rl_completion_entry_function2.6.1 How Completing Works -rl_completion_entry_function2.6.3 Completion Variables -rl_completion_found_quote2.6.3 Completion Variables -rl_completion_invoking_key2.6.3 Completion Variables -rl_completion_mark_symlink_dirs2.6.3 Completion Variables -rl_completion_matches2.6.2 Completion Functions -rl_completion_mode2.6.2 Completion Functions -rl_completion_query_items2.6.3 Completion Variables -rl_completion_quote_character2.6.3 Completion Variables -rl_completion_suppress_append2.6.3 Completion Variables -rl_completion_suppress_quote2.6.3 Completion Variables -rl_completion_type2.6.3 Completion Variables -rl_completion_word_break_hook2.6.3 Completion Variables +rl_callback_handler_install2.4.12 Alternate Interface +rl_callback_handler_remove2.4.12 Alternate Interface +rl_callback_read_char2.4.12 Alternate Interface +rl_callback_sigcleanup2.4.12 Alternate Interface +rl_catch_signals2.5 Readline Signal Handling +rl_catch_sigwinch2.5 Readline Signal Handling +rl_change_environment2.5 Readline Signal Handling +rl_char_is_quoted_p2.6.3 Completion Variables +rl_check_signals2.5 Readline Signal Handling +rl_cleanup_after_signal2.5 Readline Signal Handling +rl_clear_history2.4.11 Miscellaneous Functions +rl_clear_message2.4.6 Redisplay +rl_clear_pending_input2.4.8 Character Input +rl_clear_signals2.5 Readline Signal Handling +rl_clear_visible_line2.4.6 Redisplay +rl_complete2.6.1 How Completing Works +rl_complete2.6.2 Completion Functions +rl_complete_internal2.6.2 Completion Functions +rl_completer_quote_characters2.6.3 Completion Variables +rl_completer_word_break_characters2.6.3 Completion Variables +rl_completion_append_character2.6.3 Completion Variables +rl_completion_display_matches_hook2.6.3 Completion Variables +rl_completion_entry_function2.6.1 How Completing Works +rl_completion_entry_function2.6.3 Completion Variables +rl_completion_found_quote2.6.3 Completion Variables +rl_completion_invoking_key2.6.3 Completion Variables +rl_completion_mark_symlink_dirs2.6.3 Completion Variables +rl_completion_matches2.6.2 Completion Functions +rl_completion_mode2.6.2 Completion Functions +rl_completion_query_items2.6.3 Completion Variables +rl_completion_quote_character2.6.3 Completion Variables +rl_completion_suppress_append2.6.3 Completion Variables +rl_completion_suppress_quote2.6.3 Completion Variables +rl_completion_type2.6.3 Completion Variables +rl_completion_word_break_hook2.6.3 Completion Variables rl_copy_keymap2.4.2 Selecting a Keymap -rl_copy_text2.4.7 Modifying Text -rl_crlf2.4.6 Redisplay -rl_delete_text2.4.7 Modifying Text +rl_copy_text2.4.7 Modifying Text +rl_crlf2.4.6 Redisplay +rl_delete_text2.4.7 Modifying Text rl_deprep_term_function2.3 Readline Variables -rl_deprep_terminal2.4.9 Terminal Management -rl_ding2.4.10 Utility Functions -rl_directory_completion_hook2.6.3 Completion Variables -rl_directory_rewrite_hook;2.6.3 Completion Variables +rl_deprep_terminal2.4.9 Terminal Management +rl_ding2.4.10 Utility Functions +rl_directory_completion_hook2.6.3 Completion Variables +rl_directory_rewrite_hook;2.6.3 Completion Variables rl_discard_keymap2.4.2 Selecting a Keymap rl_dispatching2.3 Readline Variables -rl_display_match_list2.4.10 Utility Functions +rl_display_match_list2.4.10 Utility Functions rl_display_prompt2.3 Readline Variables -rl_do_undo2.4.5 Allowing Undoing +rl_do_undo2.4.5 Allowing Undoing rl_done2.3 Readline Variables -rl_echo_signal_char2.5 Readline Signal Handling +rl_echo_signal_char2.5 Readline Signal Handling rl_editing_mode2.3 Readline Variables rl_empty_keymap2.4.2 Selecting a Keymap rl_end2.3 Readline Variables -rl_end_undo_group2.4.5 Allowing Undoing +rl_end_undo_group2.4.5 Allowing Undoing rl_erase_empty_line2.3 Readline Variables rl_event_hook2.3 Readline Variables -rl_execute_next2.4.8 Character Input +rl_execute_next2.4.8 Character Input rl_executing_key2.3 Readline Variables rl_executing_keymap2.3 Readline Variables rl_executing_keyseq2.3 Readline Variables rl_executing_macro2.3 Readline Variables -rl_expand_prompt2.4.6 Redisplay +rl_expand_prompt2.4.6 Redisplay rl_explicit_arg2.3 Readline Variables -rl_extend_line_buffer2.4.10 Utility Functions -rl_filename_completion_desired2.6.3 Completion Variables -rl_filename_completion_function2.6.2 Completion Functions -rl_filename_dequoting_function2.6.3 Completion Variables -rl_filename_quote_characters2.6.3 Completion Variables -rl_filename_quoting_desired2.6.3 Completion Variables -rl_filename_quoting_function2.6.3 Completion Variables -rl_filename_rewrite_hook2.6.3 Completion Variables -rl_filename_stat_hook2.6.3 Completion Variables -rl_forced_update_display2.4.6 Redisplay -rl_free2.4.10 Utility Functions +rl_extend_line_buffer2.4.10 Utility Functions +rl_filename_completion_desired2.6.3 Completion Variables +rl_filename_completion_function2.6.2 Completion Functions +rl_filename_dequoting_function2.6.3 Completion Variables +rl_filename_quote_characters2.6.3 Completion Variables +rl_filename_quoting_desired2.6.3 Completion Variables +rl_filename_quoting_function2.6.3 Completion Variables +rl_filename_rewrite_hook2.6.3 Completion Variables +rl_filename_stat_hook2.6.3 Completion Variables +rl_forced_update_display2.4.6 Redisplay +rl_free2.4.10 Utility Functions rl_free_keymap2.4.2 Selecting a Keymap -rl_free_line_state2.5 Readline Signal Handling -rl_free_undo_list2.4.5 Allowing Undoing -rl_function_dumper2.4.4 Associating Function Names and Bindings +rl_free_line_state2.5 Readline Signal Handling +rl_free_undo_list2.4.5 Allowing Undoing +rl_function_dumper2.4.4 Associating Function Names and Bindings rl_function_of_keyseq2.4.4 Associating Function Names and Bindings -rl_funmap_names2.4.4 Associating Function Names and Bindings +rl_function_of_keyseq_len2.4.4 Associating Function Names and Bindings +rl_funmap_names2.4.4 Associating Function Names and Bindings rl_generic_bind2.4.3 Binding Keys rl_get_keymap2.4.2 Selecting a Keymap rl_get_keymap_by_name2.4.2 Selecting a Keymap rl_get_keymap_name2.4.2 Selecting a Keymap -rl_get_screen_size2.5 Readline Signal Handling -rl_get_termcap2.4.11 Miscellaneous Functions -rl_getc2.4.8 Character Input +rl_get_screen_size2.5 Readline Signal Handling +rl_get_termcap2.4.11 Miscellaneous Functions +rl_getc2.4.8 Character Input rl_getc_function2.3 Readline Variables rl_gnu_readline_p2.3 Readline Variables -rl_ignore_completion_duplicates2.6.3 Completion Variables -rl_ignore_some_completions_function2.6.3 Completion Variables -rl_inhibit_completion2.6.3 Completion Variables -rl_initialize2.4.10 Utility Functions +rl_ignore_completion_duplicates2.6.3 Completion Variables +rl_ignore_some_completions_function2.6.3 Completion Variables +rl_inhibit_completion2.6.3 Completion Variables +rl_initialize2.4.10 Utility Functions rl_input_available_hook2.3 Readline Variables -rl_insert_completions2.6.2 Completion Functions -rl_insert_text2.4.7 Modifying Text +rl_insert_completions2.6.2 Completion Functions +rl_insert_text2.4.7 Modifying Text rl_instream2.3 Readline Variables -rl_invoking_keyseqs2.4.4 Associating Function Names and Bindings -rl_invoking_keyseqs_in_map2.4.4 Associating Function Names and Bindings +rl_invoking_keyseqs2.4.4 Associating Function Names and Bindings +rl_invoking_keyseqs_in_map2.4.4 Associating Function Names and Bindings rl_key_sequence_length2.3 Readline Variables -rl_kill_text2.4.7 Modifying Text +rl_kill_text2.4.7 Modifying Text rl_last_func2.3 Readline Variables rl_library_version2.3 Readline Variables rl_line_buffer2.3 Readline Variables -rl_list_funmap_names2.4.4 Associating Function Names and Bindings -rl_macro_bind2.4.11 Miscellaneous Functions -rl_macro_dumper2.4.11 Miscellaneous Functions +rl_list_funmap_names2.4.4 Associating Function Names and Bindings +rl_macro_bind2.4.11 Miscellaneous Functions +rl_macro_dumper2.4.11 Miscellaneous Functions rl_make_bare_keymap2.4.2 Selecting a Keymap rl_make_keymap2.4.2 Selecting a Keymap rl_mark2.3 Readline Variables -rl_message2.4.6 Redisplay -rl_modifying2.4.5 Allowing Undoing +rl_message2.4.6 Redisplay +rl_modifying2.4.5 Allowing Undoing rl_named_function2.4.4 Associating Function Names and Bindings rl_num_chars_to_read2.3 Readline Variables rl_numeric_arg2.3 Readline Variables -rl_on_new_line2.4.6 Redisplay -rl_on_new_line_with_prompt2.4.6 Redisplay +rl_on_new_line2.4.6 Redisplay +rl_on_new_line_with_prompt2.4.6 Redisplay rl_outstream2.3 Readline Variables rl_parse_and_bind2.4.3 Binding Keys rl_pending_input2.3 Readline Variables -rl_pending_signal2.5 Readline Signal Handling -rl_persistent_signal_handlers2.5 Readline Signal Handling +rl_pending_signal2.5 Readline Signal Handling +rl_persistent_signal_handlers2.5 Readline Signal Handling rl_point2.3 Readline Variables -rl_possible_completions2.6.2 Completion Functions +rl_possible_completions2.6.2 Completion Functions rl_pre_input_hook2.3 Readline Variables rl_prefer_env_winsize2.3 Readline Variables rl_prep_term_function2.3 Readline Variables -rl_prep_terminal2.4.9 Terminal Management +rl_prep_terminal2.4.9 Terminal Management rl_prompt2.3 Readline Variables -rl_push_macro_input2.4.7 Modifying Text +rl_push_macro_input2.4.7 Modifying Text rl_read_init_file2.4.3 Binding Keys -rl_read_key2.4.8 Character Input +rl_read_key2.4.8 Character Input rl_readline_name2.3 Readline Variables rl_readline_state2.3 Readline Variables rl_readline_version2.3 Readline Variables -rl_redisplay2.4.6 Redisplay +rl_redisplay2.4.6 Redisplay rl_redisplay_function2.3 Readline Variables -rl_replace_line2.4.10 Utility Functions -rl_reset_after_signal2.5 Readline Signal Handling -rl_reset_line_state2.4.6 Redisplay -rl_reset_screen_size2.5 Readline Signal Handling -rl_reset_terminal2.4.9 Terminal Management -rl_resize_terminal2.5 Readline Signal Handling -rl_restore_prompt2.4.6 Redisplay -rl_restore_state2.4.10 Utility Functions -rl_save_prompt2.4.6 Redisplay -rl_save_state2.4.10 Utility Functions +rl_replace_line2.4.10 Utility Functions +rl_reset_after_signal2.5 Readline Signal Handling +rl_reset_line_state2.4.6 Redisplay +rl_reset_screen_size2.5 Readline Signal Handling +rl_reset_terminal2.4.9 Terminal Management +rl_resize_terminal2.5 Readline Signal Handling +rl_restore_prompt2.4.6 Redisplay +rl_restore_state2.4.10 Utility Functions +rl_save_prompt2.4.6 Redisplay +rl_save_state2.4.10 Utility Functions rl_set_key2.4.3 Binding Keys -rl_set_keyboard_input_timeout2.4.8 Character Input +rl_set_keyboard_input_timeout2.4.8 Character Input rl_set_keymap2.4.2 Selecting a Keymap -rl_set_paren_blink_timeout2.4.11 Miscellaneous Functions -rl_set_prompt2.4.6 Redisplay -rl_set_screen_size2.5 Readline Signal Handling -rl_set_signals2.5 Readline Signal Handling -rl_show_char2.4.6 Redisplay +rl_set_paren_blink_timeout2.4.11 Miscellaneous Functions +rl_set_prompt2.4.6 Redisplay +rl_set_screen_size2.5 Readline Signal Handling +rl_set_signals2.5 Readline Signal Handling +rl_show_char2.4.6 Redisplay rl_signal_event_hook2.3 Readline Variables -rl_sort_completion_matches2.6.3 Completion Variables -rl_special_prefixes2.6.3 Completion Variables +rl_sort_completion_matches2.6.3 Completion Variables +rl_special_prefixes2.6.3 Completion Variables rl_startup_hook2.3 Readline Variables -rl_stuff_char2.4.8 Character Input +rl_stuff_char2.4.8 Character Input rl_terminal_name2.3 Readline Variables -rl_tty_set_default_bindings2.4.9 Terminal Management -rl_tty_set_echoing2.4.9 Terminal Management -rl_tty_unset_default_bindings2.4.9 Terminal Management +rl_tty_set_default_bindings2.4.9 Terminal Management +rl_tty_set_echoing2.4.9 Terminal Management +rl_tty_unset_default_bindings2.4.9 Terminal Management rl_unbind_command_in_map2.4.3 Binding Keys rl_unbind_function_in_map2.4.3 Binding Keys rl_unbind_key2.4.3 Binding Keys rl_unbind_key_in_map2.4.3 Binding Keys -rl_username_completion_function2.6.2 Completion Functions -rl_variable_bind2.4.11 Miscellaneous Functions -rl_variable_dumper2.4.11 Miscellaneous Functions -rl_variable_value2.4.11 Miscellaneous Functions +rl_username_completion_function2.6.2 Completion Functions +rl_variable_bind2.4.11 Miscellaneous Functions +rl_variable_dumper2.4.11 Miscellaneous Functions +rl_variable_value2.4.11 Miscellaneous Functions
S self-insert (a, b, A, 1, !, <small>...</small>)1.4.3 Commands For Changing Text @@ -7467,7 +7477,7 @@ to permit their use in free software. [ ? ]

About this document

-This document was generated by Chet Ramey on January, 2 2018 +This document was generated by Chet Ramey on May, 21 2018 using texi2html

@@ -7629,7 +7639,7 @@ the following structure:
This document was generated -by Chet Ramey on January, 2 2018 +by Chet Ramey on May, 21 2018 using texi2html diff --git a/doc/readline.info b/doc/readline.info index 3b5a5c7..5cbd709 100644 --- a/doc/readline.info +++ b/doc/readline.info @@ -2264,6 +2264,12 @@ associate a new function name with an arbitrary function. type of the object is returned in the 'int' variable it points to (one of 'ISFUNC', 'ISKMAP', or 'ISMACR'). + -- Function: rl_command_func_t * rl_function_of_keyseq_len (const char + *keyseq, size_t len Keymap map, int *type) + Return the function invoked by KEYSEQ of length LEN in keymap MAP. + Equivalent to 'rl_function_of_keyseq' with the addition of the LEN + parameter. + -- Function: char ** rl_invoking_keyseqs (rl_command_func_t *function) Return an array of strings representing the key sequences used to invoke FUNCTION in the current keymap. @@ -4722,7 +4728,7 @@ Function and Variable Index (line 26) * rl_add_defun: Function Naming. (line 18) * rl_add_funmap_entry: Associating Function Names and Bindings. - (line 45) + (line 51) * rl_add_undo: Allowing Undoing. (line 39) * rl_alphabetic: Utility Functions. (line 38) * rl_already_prompted: Readline Variables. (line 63) @@ -4863,11 +4869,13 @@ Function and Variable Index (line 113) * rl_free_undo_list: Allowing Undoing. (line 44) * rl_function_dumper: Associating Function Names and Bindings. - (line 29) + (line 35) * rl_function_of_keyseq: Associating Function Names and Bindings. (line 13) +* rl_function_of_keyseq_len: Associating Function Names and Bindings. + (line 20) * rl_funmap_names: Associating Function Names and Bindings. - (line 39) + (line 45) * rl_generic_bind: Binding Keys. (line 87) * rl_getc: Character Input. (line 14) * rl_getc_function: Readline Variables. (line 128) @@ -4892,16 +4900,16 @@ Function and Variable Index * rl_insert_text: Modifying Text. (line 6) * rl_instream: Readline Variables. (line 96) * rl_invoking_keyseqs: Associating Function Names and Bindings. - (line 20) + (line 26) * rl_invoking_keyseqs_in_map: Associating Function Names and Bindings. - (line 24) + (line 30) * rl_key_sequence_length: Readline Variables. (line 199) * rl_kill_text: Modifying Text. (line 18) * rl_last_func: Readline Variables. (line 109) * rl_library_version: Readline Variables. (line 72) * rl_line_buffer: Readline Variables. (line 8) * rl_list_funmap_names: Associating Function Names and Bindings. - (line 35) + (line 41) * rl_macro_bind: Miscellaneous Functions. (line 6) * rl_macro_dumper: Miscellaneous Functions. @@ -5070,24 +5078,24 @@ Node: Function Naming86357 Node: Keymaps87619 Node: Binding Keys89774 Node: Associating Function Names and Bindings94322 -Node: Allowing Undoing96607 -Node: Redisplay99157 -Node: Modifying Text103181 -Node: Character Input104428 -Node: Terminal Management106326 -Node: Utility Functions108149 -Node: Miscellaneous Functions111477 -Node: Alternate Interface114066 -Node: A Readline Example116808 -Node: Alternate Interface Example118747 -Node: Readline Signal Handling122279 -Node: Custom Completers131328 -Node: How Completing Works132048 -Node: Completion Functions135355 -Node: Completion Variables138929 -Node: A Short Completion Example154573 -Node: GNU Free Documentation License167352 -Node: Concept Index192526 -Node: Function and Variable Index194047 +Node: Allowing Undoing96893 +Node: Redisplay99443 +Node: Modifying Text103467 +Node: Character Input104714 +Node: Terminal Management106612 +Node: Utility Functions108435 +Node: Miscellaneous Functions111763 +Node: Alternate Interface114352 +Node: A Readline Example117094 +Node: Alternate Interface Example119033 +Node: Readline Signal Handling122565 +Node: Custom Completers131614 +Node: How Completing Works132334 +Node: Completion Functions135641 +Node: Completion Variables139215 +Node: A Short Completion Example154859 +Node: GNU Free Documentation License167638 +Node: Concept Index192812 +Node: Function and Variable Index194333  End Tag Table diff --git a/doc/readline.pdf b/doc/readline.pdf index a28906f..f40a2ff 100644 Binary files a/doc/readline.pdf and b/doc/readline.pdf differ diff --git a/doc/readline.ps b/doc/readline.ps index 0be3272..8ec3b04 100644 --- a/doc/readline.ps +++ b/doc/readline.ps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 %%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software %%Title: readline.dvi -%%CreationDate: Tue Jan 2 15:56:03 2018 +%%CreationDate: Mon May 21 14:32:51 2018 %%Pages: 80 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 @@ -12,7 +12,7 @@ %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -D 600 -t letter -o readline.ps readline.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2018.01.02:1055 +%DVIPSSource: TeX output 2018.05.21:1032 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -6615,12 +6615,12 @@ TeXDict begin 40258431 52099146 1000 600 600 (readline.dvi) 39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 3[39 1[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 1[39 39 39 33[{}86 74.7198 /CMTT9 -rf /Ff 134[53 53 72 53 55 39 39 39 53 55 50 55 83 28 -53 1[28 55 50 30 44 55 44 55 50 20[62 77 1[36 2[65 68 -22[28 1[28 1[50 28[55 55 12[{}34 99.6264 /CMSL10 rf /Fg -214[35 35 40[{}2 90.9091 /CMSS10 rf /Fh 133[52 52 52 -52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52 52 52 -52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52 16[52 +rf /Ff 133[44 53 53 72 53 55 39 39 39 53 55 50 55 83 +28 53 1[28 55 50 30 44 55 44 55 50 20[62 77 1[36 2[65 +68 22[28 1[28 1[50 28[55 55 12[{}35 99.6264 /CMSL10 rf +/Fg 214[35 35 40[{}2 90.9091 /CMSS10 rf /Fh 133[52 52 +52 52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52 52 +52 52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52 16[52 42[{}33 99.6264 /CMTT10 rf /Fi 134[65 65 89 65 68 48 48 50 1[68 61 68 102 34 65 1[34 68 61 37 56 68 55 68 60 7[93 1[127 93 94 85 68 92 3[96 116 74 96 1[46 96 1[77 @@ -6853,13 +6853,13 @@ f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)31 b Ft(47)275 302 y(2.6)92 b(Custom)29 b(Completers)e Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)40 b Ft(49)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8 +(:)40 b Ft(50)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8 b(orks)11 b Fn(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)24 b Ft(50)399 521 y(2.6.2)93 b(Completion)31 b(F)-8 b(unctions)28 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f -(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(50)399 631 y(2.6.3)93 +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(51)399 631 y(2.6.3)93 b(Completion)31 b(V)-8 b(ariables)18 b Fn(:)e(:)g(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)31 b @@ -8476,7 +8476,7 @@ g(func-)150 3663 y(tion)33 b(called)h Fs(initialize_readline\(\))27 b Ft(whic)m(h)33 b(p)s(erforms)e(this)h(and)h(other)g(desired)f (initializations,)150 3773 y(suc)m(h)e(as)h(installing)g(custom)g (completers)g(\(see)g(Section)h(2.6)f([Custom)f(Completers],)h(page)g -(49\).)150 4023 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150 +(50\).)150 4023 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150 4182 y Ft(Readline)28 b(pro)m(vides)f(man)m(y)g(functions)g(for)g (manipulating)h(the)f(text)h(of)g(the)f(line,)i(but)d(it)i(isn't)f(p)s (ossible)150 4292 y(to)37 b(an)m(ticipate)i(the)e(needs)f(of)h(all)g @@ -9184,1140 +9184,1145 @@ Ft(,)h(the)f(t)m(yp)s(e)g(of)g(the)g(ob)5 b(ject)38 b(is)f(returned)f (in)h(the)g Fs(int)390 4453 y Ft(v)-5 b(ariable)31 b(it)g(p)s(oin)m(ts) f(to)h(\(one)g(of)g Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)h Fs(ISMACR)p Ft(\).)3350 4622 y([F)-8 b(unction])-3599 +b Fh(rl_command_func_t)57 b(*)c(rl_function_of_keyseq_)q(len)f +Fg(\()p Ff(const)34 b(c)m(har)565 4732 y(*k)m(eyseq,)f(size)p +1121 4732 V 44 w(t)g(len)g(Keymap)h(map,)f(in)m(t)g(*t)m(yp)s(e)p +Fg(\))390 4842 y Ft(Return)g(the)h(function)f(in)m(v)m(ok)m(ed)i(b)m(y) +f Fj(k)m(eyseq)i Ft(of)e(length)g Fj(len)g Ft(in)f(k)m(eymap)h +Fj(map)p Ft(.)51 b(Equiv)-5 b(alen)m(t)34 b(to)390 4951 +y Fs(rl_function_of_keyseq)25 b Ft(with)30 b(the)g(addition)h(of)f(the) +h Fj(len)f Ft(parameter.)3350 5121 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e(rl_invoking_keyseqs)g Fg(\()p Ff(rl)p -1717 4622 V 44 w(command)p 2181 4622 V 44 w(func)p 2409 -4622 V 45 w(t)33 b(*function)p Fg(\))390 4732 y Ft(Return)d(an)i(arra)m +1717 5121 V 44 w(command)p 2181 5121 V 44 w(func)p 2409 +5121 V 45 w(t)33 b(*function)p Fg(\))390 5230 y Ft(Return)d(an)i(arra)m (y)f(of)h(strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e -(to)i(in)m(v)m(ok)m(e)h Fj(function)e Ft(in)390 4842 -y(the)g(curren)m(t)f(k)m(eymap.)3350 5011 y([F)-8 b(unction])-3599 -b Fh(char)54 b(**)e(rl_invoking_keyseqs_i)q(n_m)q(ap)g -Fg(\()p Ff(rl)p 2083 5011 V 44 w(command)p 2547 5011 -V 44 w(func)p 2775 5011 V 45 w(t)565 5121 y(*function,)34 -b(Keymap)g(map)p Fg(\))390 5230 y Ft(Return)c(an)i(arra)m(y)f(of)h -(strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e(to)i(in) -m(v)m(ok)m(e)h Fj(function)e Ft(in)390 5340 y(the)g(k)m(eymap)f -Fj(map)p Ft(.)p eop end +(to)i(in)m(v)m(ok)m(e)h Fj(function)e Ft(in)390 5340 +y(the)g(curren)m(t)f(k)m(eymap.)p eop end %%Page: 36 40 TeXDict begin 36 39 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(36)3350 -299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_function_dumper)c -Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 408 y Ft(Prin)m(t)29 -b(the)h(readline)f(function)g(names)g(and)g(the)g(k)m(ey)h(sequences)g -(curren)m(tly)f(b)s(ound)e(to)j(them)f(to)390 518 y Fs(rl_outstream)p -Ft(.)36 b(If)27 b Fj(readable)33 b Ft(is)28 b(non-zero,)h(the)e(list)i -(is)e(formatted)h(in)f(suc)m(h)g(a)h(w)m(a)m(y)h(that)f(it)g(can)390 -628 y(b)s(e)i(made)g(part)g(of)h(an)f Fs(inputrc)f Ft(\014le)h(and)g -(re-read.)3350 813 y([F)-8 b(unction])-3599 b Fh(void)54 -b(rl_list_funmap_names)d Fg(\()p Ff(v)m(oid)p Fg(\))390 -923 y Ft(Prin)m(t)30 b(the)h(names)f(of)h(all)g(bindable)f(Readline)h -(functions)f(to)h Fs(rl_outstream)p Ft(.)3350 1109 y([F)-8 -b(unction])-3599 b Fh(const)54 b(char)f(**)g(rl_funmap_names)d -Fg(\()p Ff(v)m(oid)p Fg(\))390 1218 y Ft(Return)25 b(a)i(NULL)f -(terminated)g(arra)m(y)h(of)f(kno)m(wn)f(function)h(names.)39 -b(The)26 b(arra)m(y)g(is)g(sorted.)39 b(The)390 1328 -y(arra)m(y)28 b(itself)h(is)f(allo)s(cated,)j(but)c(not)h(the)h -(strings)e(inside.)40 b(Y)-8 b(ou)29 b(should)e(free)h(the)g(arra)m(y) --8 b(,)29 b(but)f(not)390 1438 y(the)j(p)s(oin)m(ters,)f(using)g +299 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e(rl_invoking_keyseqs_i) +q(n_m)q(ap)g Fg(\()p Ff(rl)p 2083 299 30 5 v 44 w(command)p +2547 299 V 44 w(func)p 2775 299 V 45 w(t)565 408 y(*function,)34 +b(Keymap)g(map)p Fg(\))390 518 y Ft(Return)c(an)i(arra)m(y)f(of)h +(strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e(to)i(in) +m(v)m(ok)m(e)h Fj(function)e Ft(in)390 628 y(the)g(k)m(eymap)f +Fj(map)p Ft(.)3350 790 y([F)-8 b(unction])-3599 b Fh(void)54 +b(rl_function_dumper)c Fg(\()p Ff(in)m(t)34 b(readable)p +Fg(\))390 900 y Ft(Prin)m(t)29 b(the)h(readline)f(function)g(names)g +(and)g(the)g(k)m(ey)h(sequences)g(curren)m(tly)f(b)s(ound)e(to)j(them)f +(to)390 1009 y Fs(rl_outstream)p Ft(.)36 b(If)27 b Fj(readable)33 +b Ft(is)28 b(non-zero,)h(the)e(list)i(is)e(formatted)h(in)f(suc)m(h)g +(a)h(w)m(a)m(y)h(that)f(it)g(can)390 1119 y(b)s(e)i(made)g(part)g(of)h +(an)f Fs(inputrc)f Ft(\014le)h(and)g(re-read.)3350 1281 +y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_list_funmap_names)d +Fg(\()p Ff(v)m(oid)p Fg(\))390 1391 y Ft(Prin)m(t)30 +b(the)h(names)f(of)h(all)g(bindable)f(Readline)h(functions)f(to)h +Fs(rl_outstream)p Ft(.)3350 1553 y([F)-8 b(unction])-3599 +b Fh(const)54 b(char)f(**)g(rl_funmap_names)d Fg(\()p +Ff(v)m(oid)p Fg(\))390 1663 y Ft(Return)25 b(a)i(NULL)f(terminated)g +(arra)m(y)h(of)f(kno)m(wn)f(function)h(names.)39 b(The)26 +b(arra)m(y)g(is)g(sorted.)39 b(The)390 1772 y(arra)m(y)28 +b(itself)h(is)f(allo)s(cated,)j(but)c(not)h(the)h(strings)e(inside.)40 +b(Y)-8 b(ou)29 b(should)e(free)h(the)g(arra)m(y)-8 b(,)29 +b(but)f(not)390 1882 y(the)j(p)s(oin)m(ters,)f(using)g Fs(free)f Ft(or)i Fs(rl_free)d Ft(when)h(y)m(ou)i(are)g(done.)3350 -1623 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_add_funmap_entry)e -Fg(\()p Ff(const)34 b(c)m(har)g(*name,)g(rl)p 2331 1623 -30 5 v 43 w(command)p 2794 1623 V 45 w(func)p 3023 1623 -V 45 w(t)565 1733 y(*function)p Fg(\))390 1843 y Ft(Add)e +2044 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_add_funmap_entry)e +Fg(\()p Ff(const)34 b(c)m(har)g(*name,)g(rl)p 2331 2044 +V 43 w(command)p 2794 2044 V 45 w(func)p 3023 2044 V +45 w(t)565 2154 y(*function)p Fg(\))390 2264 y Ft(Add)e Fj(name)38 b Ft(to)33 b(the)g(list)h(of)f(bindable)f(Readline)h (command)g(names,)g(and)f(mak)m(e)i Fj(function)f Ft(the)390 -1952 y(function)d(to)h(b)s(e)f(called)h(when)f Fj(name)35 -b Ft(is)c(in)m(v)m(ok)m(ed.)150 2152 y Fi(2.4.5)63 b(Allo)m(wing)41 -b(Undoing)150 2299 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g +2373 y(function)d(to)h(b)s(e)f(called)h(when)f Fj(name)35 +b Ft(is)c(in)m(v)m(ok)m(ed.)150 2558 y Fi(2.4.5)63 b(Allo)m(wing)41 +b(Undoing)150 2705 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g (a)g(painless)g(thing,)h(and)e(mak)m(es)i(y)m(our)f(functions)f(m)m(uc) -m(h)h(more)150 2409 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g +m(h)h(more)150 2814 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g (try)g(something)g(if)f(y)m(ou)h(kno)m(w)f(y)m(ou)h(can)f(undo)g(it.) -275 2544 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h +275 2942 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h (once,)i(or)d(deletes)h(text)g(once,)i(and)c(uses)h Fs(rl_insert_)150 -2654 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23 +3051 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23 b Ft(to)29 b(do)f(it,)h(then)f(undoing)f(is)g(already)i(done)f(for)f(y) -m(ou)h(automatically)-8 b(.)275 2789 y(If)20 b(y)m(ou)g(do)h(m)m +m(ou)h(automatically)-8 b(.)275 3178 y(If)20 b(y)m(ou)g(do)h(m)m (ultiple)g(insertions)f(or)h(m)m(ultiple)g(deletions,)j(or)c(an)m(y)h -(com)m(bination)h(of)e(these)h(op)s(erations,)150 2898 +(com)m(bination)h(of)e(these)h(op)s(erations,)150 3288 y(y)m(ou)38 b(should)f(group)h(them)g(together)h(in)m(to)g(one)f(op)s (eration.)64 b(This)37 b(is)h(done)g(with)g Fs(rl_begin_undo_)150 -3008 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p -Ft(.)275 3143 y(The)f(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b) -s(e)e(undone)h(are:)390 3256 y Fe(enum)40 b(undo_code)h({)f +3398 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p +Ft(.)275 3525 y(The)f(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b) +s(e)e(undone)h(are:)390 3630 y Fe(enum)40 b(undo_code)h({)f (UNDO_DELETE,)i(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)f(};)275 -3391 y Ft(Notice)32 b(that)f Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f +3757 y Ft(Notice)32 b(that)f Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f (some)h(text,)h(and)d Fs(UNDO_INSERT)e Ft(means)k(to)g(delete)150 -3501 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g +3866 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g (what)g(to)g(undo,)f(not)h(ho)m(w)g(to)g(undo)e(it.)41 -b Fs(UNDO_BEGIN)25 b Ft(and)150 3610 y Fs(UNDO_END)j +b Fs(UNDO_BEGIN)25 b Ft(and)150 3976 y Fs(UNDO_END)j Ft(are)j(tags)g(added)f(b)m(y)g Fs(rl_begin_undo_group\(\))25 -b Ft(and)30 b Fs(rl_end_undo_group\(\))p Ft(.)3350 3796 +b Ft(and)30 b Fs(rl_end_undo_group\(\))p Ft(.)3350 4138 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_begin_undo_group)e -Fg(\()p Ff(v)m(oid)p Fg(\))390 3906 y Ft(Begins)32 b(sa)m(ving)g(undo)d +Fg(\()p Ff(v)m(oid)p Fg(\))390 4248 y Ft(Begins)32 b(sa)m(ving)g(undo)d (information)j(in)e(a)i(group)e(construct.)43 b(The)30 -b(undo)g(information)h(usually)390 4015 y(comes)42 b(from)f(calls)i(to) +b(undo)g(information)h(usually)390 4358 y(comes)42 b(from)f(calls)i(to) f Fs(rl_insert_text\(\))37 b Ft(and)k Fs(rl_delete_text\(\))p -Ft(,)f(but)h(could)h(b)s(e)f(the)390 4125 y(result)30 -b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p Ft(.)3350 4311 +Ft(,)f(but)h(could)h(b)s(e)f(the)390 4467 y(result)30 +b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p Ft(.)3350 4630 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_end_undo_group)e -Fg(\()p Ff(v)m(oid)p Fg(\))390 4420 y Ft(Closes)29 b(the)h(curren)m(t)e +Fg(\()p Ff(v)m(oid)p Fg(\))390 4739 y Ft(Closes)29 b(the)h(curren)m(t)e (undo)g(group)h(started)g(with)g Fs(rl_begin_undo_group)c(\(\))p -Ft(.)39 b(There)29 b(should)390 4530 y(b)s(e)h(one)g(call)i(to)f +Ft(.)39 b(There)29 b(should)390 4849 y(b)s(e)h(one)g(call)i(to)f Fs(rl_end_undo_group\(\))25 b Ft(for)30 b(eac)m(h)i(call)g(to)f -Fs(rl_begin_undo_group\(\))p Ft(.)3350 4716 y([F)-8 b(unction])-3599 +Fs(rl_begin_undo_group\(\))p Ft(.)3350 5011 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_add_undo)48 b Fg(\()p Ff(en)m(um)35 -b(undo)p 1558 4716 V 45 w(co)s(de)e(what,)g(in)m(t)g(start,)g(in)m(t)g -(end,)h(c)m(har)565 4825 y(*text)p Fg(\))390 4935 y Ft(Remem)m(b)s(er)g +b(undo)p 1558 5011 V 45 w(co)s(de)e(what,)g(in)m(t)g(start,)g(in)m(t)g +(end,)h(c)m(har)565 5121 y(*text)p Fg(\))390 5230 y Ft(Remem)m(b)s(er)g (ho)m(w)g(to)h(undo)d(an)i(ev)m(en)m(t)i(\(according)f(to)g Fj(what)r Ft(\).)52 b(The)33 b(a\013ected)j(text)f(runs)d(from)390 -5045 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h -Fj(text)p Ft(.)3350 5230 y([F)-8 b(unction])-3599 b Fh(void)54 -b(rl_free_undo_list)c Fg(\()p Ff(v)m(oid)p Fg(\))390 -5340 y Ft(F)-8 b(ree)31 b(the)g(existing)g(undo)f(list.)p -eop end +5340 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h +Fj(text)p Ft(.)p eop end %%Page: 37 41 TeXDict begin 37 40 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(37)3350 -299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_do_undo)c -Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Undo)22 b(the)h(\014rst)g -(thing)f(on)h(the)g(undo)f(list.)39 b(Returns)22 b Fs(0)g -Ft(if)h(there)g(w)m(as)g(nothing)g(to)h(undo,)f(non-zero)390 -518 y(if)30 b(something)h(w)m(as)g(undone.)275 698 y(Finally)-8 -b(,)32 b(if)f(y)m(ou)h(neither)f(insert)g(nor)f(delete)j(text,)f(but)f -(directly)g(mo)s(dify)g(the)g(existing)h(text)g(\(e.g.,)150 -808 y(c)m(hange)40 b(its)f(case\),)j(call)e Fs(rl_modifying\(\))35 -b Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s(dify)f(the)h(text.)67 -b(Y)-8 b(ou)39 b(m)m(ust)150 917 y(supply)29 b(the)h(indices)h(of)f -(the)h(text)g(range)g(that)g(y)m(ou)g(are)g(going)g(to)g(mo)s(dify)-8 -b(.)3350 1098 y([F)g(unction])-3599 b Fh(int)53 b(rl_modifying)c -Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p Fg(\))390 -1207 y Ft(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g(the)g(text)g(b)s -(et)m(w)m(een)g Fj(start)i Ft(and)c Fj(end)k Ft(as)e(a)f(single)h(undo) -e(unit.)70 b(It)40 b(is)390 1317 y(assumed)30 b(that)h(y)m(ou)f(will)h -(subsequen)m(tly)f(mo)s(dify)f(that)i(text.)150 1513 -y Fi(2.4.6)63 b(Redispla)m(y)3350 1707 y Ft([F)-8 b(unction])-3599 -b Fh(void)54 b(rl_redisplay)49 b Fg(\()p Ff(v)m(oid)p -Fg(\))390 1817 y Ft(Change)38 b(what's)f(displa)m(y)m(ed)i(on)e(the)h -(screen)g(to)h(re\015ect)f(the)g(curren)m(t)g(con)m(ten)m(ts)h(of)f -Fs(rl_line_)390 1926 y(buffer)p Ft(.)3350 2106 y([F)-8 -b(unction])-3599 b Fh(int)53 b(rl_forced_update_disp)q(lay)f -Fg(\()p Ff(v)m(oid)p Fg(\))390 2216 y Ft(F)-8 b(orce)41 -b(the)f(line)g(to)h(b)s(e)e(up)s(dated)f(and)h(redispla)m(y)m(ed,)k -(whether)c(or)g(not)h(Readline)h(thinks)e(the)390 2326 -y(screen)30 b(displa)m(y)h(is)f(correct.)3350 2506 y([F)-8 -b(unction])-3599 b Fh(int)53 b(rl_on_new_line)d Fg(\()p -Ff(v)m(oid)p Fg(\))390 2615 y Ft(T)-8 b(ell)31 b(the)f(up)s(date)f -(functions)g(that)i(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)g(a)f -(new)f(\(empt)m(y\))i(line,)g(usually)e(after)390 2725 -y(outputting)i(a)f(newline.)3350 2905 y([F)-8 b(unction])-3599 +299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_free_undo_list)c +Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(F)-8 b(ree)31 +b(the)g(existing)g(undo)f(list.)3350 608 y([F)-8 b(unction])-3599 +b Fh(int)53 b(rl_do_undo)c Fg(\()p Ff(v)m(oid)p Fg(\))390 +718 y Ft(Undo)22 b(the)h(\014rst)g(thing)f(on)h(the)g(undo)f(list.)39 +b(Returns)22 b Fs(0)g Ft(if)h(there)g(w)m(as)g(nothing)g(to)h(undo,)f +(non-zero)390 828 y(if)30 b(something)h(w)m(as)g(undone.)275 +1028 y(Finally)-8 b(,)32 b(if)f(y)m(ou)h(neither)f(insert)g(nor)f +(delete)j(text,)f(but)f(directly)g(mo)s(dify)g(the)g(existing)h(text)g +(\(e.g.,)150 1137 y(c)m(hange)40 b(its)f(case\),)j(call)e +Fs(rl_modifying\(\))35 b Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s +(dify)f(the)h(text.)67 b(Y)-8 b(ou)39 b(m)m(ust)150 1247 +y(supply)29 b(the)h(indices)h(of)f(the)h(text)g(range)g(that)g(y)m(ou)g +(are)g(going)g(to)g(mo)s(dify)-8 b(.)3350 1447 y([F)g(unction])-3599 +b Fh(int)53 b(rl_modifying)c Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i +(end)p Fg(\))390 1556 y Ft(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g +(the)g(text)g(b)s(et)m(w)m(een)g Fj(start)i Ft(and)c +Fj(end)k Ft(as)e(a)f(single)h(undo)e(unit.)70 b(It)40 +b(is)390 1666 y(assumed)30 b(that)h(y)m(ou)f(will)h(subsequen)m(tly)f +(mo)s(dify)f(that)i(text.)150 1873 y Fi(2.4.6)63 b(Redispla)m(y)3350 +2077 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_redisplay)49 +b Fg(\()p Ff(v)m(oid)p Fg(\))390 2187 y Ft(Change)38 +b(what's)f(displa)m(y)m(ed)i(on)e(the)h(screen)g(to)h(re\015ect)f(the)g +(curren)m(t)g(con)m(ten)m(ts)h(of)f Fs(rl_line_)390 2297 +y(buffer)p Ft(.)3350 2497 y([F)-8 b(unction])-3599 b +Fh(int)53 b(rl_forced_update_disp)q(lay)f Fg(\()p Ff(v)m(oid)p +Fg(\))390 2606 y Ft(F)-8 b(orce)41 b(the)f(line)g(to)h(b)s(e)e(up)s +(dated)f(and)h(redispla)m(y)m(ed,)k(whether)c(or)g(not)h(Readline)h +(thinks)e(the)390 2716 y(screen)30 b(displa)m(y)h(is)f(correct.)3350 +2916 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_on_new_line)d +Fg(\()p Ff(v)m(oid)p Fg(\))390 3025 y Ft(T)-8 b(ell)31 +b(the)f(up)s(date)f(functions)g(that)i(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m +(ed)g(on)m(to)g(a)f(new)f(\(empt)m(y\))i(line,)g(usually)e(after)390 +3135 y(outputting)i(a)f(newline.)3350 3335 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_on_new_line_with_p)q(romp)q(t)f Fg(\()p -Ff(v)m(oid)p Fg(\))390 3015 y Ft(T)-8 b(ell)25 b(the)f(up)s(date)f +Ff(v)m(oid)p Fg(\))390 3444 y Ft(T)-8 b(ell)25 b(the)f(up)s(date)f (functions)h(that)h(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)h(a)e -(new)g(line,)i(with)d Fj(rl)p 3106 3015 28 4 v 40 w(prompt)i -Ft(already)390 3124 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g +(new)g(line,)i(with)d Fj(rl)p 3106 3444 28 4 v 40 w(prompt)i +Ft(already)390 3554 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g (used)g(b)m(y)g(applications)i(that)f(w)m(an)m(t)h(to)f(output)f(the)h -(prompt)f(string)390 3234 y(themselv)m(es,)h(but)e(still)h(need)g +(prompt)f(string)390 3664 y(themselv)m(es,)h(but)e(still)h(need)g (Readline)g(to)g(kno)m(w)f(the)h(prompt)e(string)h(length)h(for)f -(redispla)m(y)-8 b(.)41 b(It)390 3343 y(should)29 b(b)s(e)h(used)g -(after)h(setting)g Fj(rl)p 1590 3343 V 40 w(already)p -1920 3343 V 41 w(prompted)p Ft(.)3350 3524 y([F)-8 b(unction])-3599 +(redispla)m(y)-8 b(.)41 b(It)390 3773 y(should)29 b(b)s(e)h(used)g +(after)h(setting)g Fj(rl)p 1590 3773 V 40 w(already)p +1920 3773 V 41 w(prompted)p Ft(.)3350 3973 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_clear_visible_line)f Fg(\()p Ff(v)m(oid)p -Fg(\))390 3633 y Ft(Clear)31 b(the)f(screen)h(lines)f(corresp)s(onding) +Fg(\))390 4083 y Ft(Clear)31 b(the)f(screen)h(lines)f(corresp)s(onding) g(to)h(the)f(curren)m(t)g(line's)h(con)m(ten)m(ts.)3350 -3813 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_line_state)e -Fg(\()p Ff(v)m(oid)p Fg(\))390 3923 y Ft(Reset)36 b(the)e(displa)m(y)h +4283 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_line_state)e +Fg(\()p Ff(v)m(oid)p Fg(\))390 4392 y Ft(Reset)36 b(the)e(displa)m(y)h (state)h(to)g(a)f(clean)g(state)h(and)e(redispla)m(y)h(the)g(curren)m -(t)g(line)g(starting)g(on)g(a)390 4032 y(new)30 b(line.)3350 -4213 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_crlf)48 -b Fg(\()p Ff(v)m(oid)p Fg(\))390 4322 y Ft(Mo)m(v)m(e)32 +(t)g(line)g(starting)g(on)g(a)390 4502 y(new)30 b(line.)3350 +4702 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_crlf)48 +b Fg(\()p Ff(v)m(oid)p Fg(\))390 4811 y Ft(Mo)m(v)m(e)32 b(the)f(cursor)f(to)h(the)f(start)h(of)g(the)f(next)h(screen)f(line.) -3350 4502 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_show_char)c -Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 4612 y Ft(Displa)m(y)g(c)m +3350 5011 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_show_char)c +Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 5121 y Ft(Displa)m(y)g(c)m (haracter)g Fj(c)k Ft(on)32 b Fs(rl_outstream)p Ft(.)44 b(If)32 b(Readline)h(has)g(not)f(b)s(een)g(set)h(to)g(displa)m(y)g -(meta)390 4721 y(c)m(haracters)27 b(directly)-8 b(,)29 +(meta)390 5230 y(c)m(haracters)27 b(directly)-8 b(,)29 b(this)c(will)i(con)m(v)m(ert)g(meta)g(c)m(haracters)h(to)e(a)h -(meta-pre\014xed)f(k)m(ey)g(sequence.)390 4831 y(This)k(is)g(in)m +(meta-pre\014xed)f(k)m(ey)g(sequence.)390 5340 y(This)k(is)g(in)m (tended)g(for)g(use)g(b)m(y)h(applications)g(whic)m(h)f(wish)g(to)h(do) -f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)3350 5011 y([F)g(unction])-3599 -b Fh(int)53 b(rl_message)c Fg(\()p Ff(const)34 b(c)m(har)g(*,)k(.)24 -b(.)g(.)12 b Fg(\))390 5121 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g -(format)g(string)g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j -Fs(printf)p Ft(,)f(p)s(ossibly)e(con)m(taining)390 5230 -y(con)m(v)m(ersion)45 b(sp)s(eci\014cations)g(suc)m(h)f(as)g(`)p -Fs(\045d)p Ft(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g -(necessary)f(to)390 5340 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s -(eci\014cations.)74 b(The)41 b(resulting)h(string)f(is)g(displa)m(y)m -(ed)h(in)f(the)h Fj(ec)m(ho)p eop end +f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)p eop end %%Page: 38 42 TeXDict begin 38 41 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(38)390 -299 y Fj(area)p Ft(.)63 b(The)37 b(ec)m(ho)i(area)f(is)g(also)g(used)f -(to)h(displa)m(y)g(n)m(umeric)f(argumen)m(ts)h(and)f(searc)m(h)h -(strings.)390 408 y(Y)-8 b(ou)34 b(should)e(call)j Fs(rl_save_prompt)29 -b Ft(to)34 b(sa)m(v)m(e)h(the)f(prompt)e(information)i(b)s(efore)f -(calling)i(this)390 518 y(function.)3350 678 y([F)-8 -b(unction])-3599 b Fh(int)53 b(rl_clear_message)e Fg(\()p -Ff(v)m(oid)p Fg(\))390 788 y Ft(Clear)29 b(the)g(message)h(in)f(the)g -(ec)m(ho)h(area.)41 b(If)29 b(the)g(prompt)f(w)m(as)h(sa)m(v)m(ed)h -(with)f(a)g(call)i(to)e Fs(rl_save_)390 897 y(prompt)38 +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(38)3350 +299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_message)c +Fg(\()p Ff(const)34 b(c)m(har)g(*,)k(.)24 b(.)g(.)12 +b Fg(\))390 408 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g(format)g(string) +g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j Fs(printf)p +Ft(,)f(p)s(ossibly)e(con)m(taining)390 518 y(con)m(v)m(ersion)45 +b(sp)s(eci\014cations)g(suc)m(h)f(as)g(`)p Fs(\045d)p +Ft(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g(necessary)f(to)390 +628 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s(eci\014cations.)74 +b(The)41 b(resulting)h(string)f(is)g(displa)m(y)m(ed)h(in)f(the)h +Fj(ec)m(ho)390 737 y(area)p Ft(.)63 b(The)37 b(ec)m(ho)i(area)f(is)g +(also)g(used)f(to)h(displa)m(y)g(n)m(umeric)f(argumen)m(ts)h(and)f +(searc)m(h)h(strings.)390 847 y(Y)-8 b(ou)34 b(should)e(call)j +Fs(rl_save_prompt)29 b Ft(to)34 b(sa)m(v)m(e)h(the)f(prompt)e +(information)i(b)s(efore)f(calling)i(this)390 956 y(function.)3350 +1136 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_clear_message)e +Fg(\()p Ff(v)m(oid)p Fg(\))390 1245 y Ft(Clear)29 b(the)g(message)h(in) +f(the)g(ec)m(ho)h(area.)41 b(If)29 b(the)g(prompt)f(w)m(as)h(sa)m(v)m +(ed)h(with)f(a)g(call)i(to)e Fs(rl_save_)390 1355 y(prompt)38 b Ft(b)s(efore)h(the)g(last)h(call)h(to)f Fs(rl_message)p Ft(,)f(call)i Fs(rl_restore_prompt)34 b Ft(b)s(efore)39 -b(calling)390 1007 y(this)30 b(function.)3350 1167 y([F)-8 +b(calling)390 1464 y(this)30 b(function.)3350 1644 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_save_prompt)49 b Fg(\()p -Ff(v)m(oid)p Fg(\))390 1276 y Ft(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i +Ff(v)m(oid)p Fg(\))390 1753 y Ft(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i (Readline)e(prompt)f(displa)m(y)i(state)g(in)f(preparation)g(for)g -(displa)m(ying)g(a)g(new)390 1386 y(message)31 b(in)g(the)f(message)i -(area)f(with)f Fs(rl_message\(\))p Ft(.)3350 1546 y([F)-8 +(displa)m(ying)g(a)g(new)390 1863 y(message)31 b(in)g(the)f(message)i +(area)f(with)f Fs(rl_message\(\))p Ft(.)3350 2042 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_restore_prompt)c Fg(\()p -Ff(v)m(oid)p Fg(\))390 1656 y Ft(Restore)44 b(the)e(lo)s(cal)i +Ff(v)m(oid)p Fg(\))390 2152 y Ft(Restore)44 b(the)e(lo)s(cal)i (Readline)g(prompt)d(displa)m(y)i(state)h(sa)m(v)m(ed)g(b)m(y)f(the)f -(most)h(recen)m(t)h(call)g(to)390 1765 y Fs(rl_save_prompt)p +(most)h(recen)m(t)h(call)g(to)390 2261 y Fs(rl_save_prompt)p Ft(.)69 b(if)41 b Fs(rl_save_prompt)d Ft(w)m(as)j(called)i(to)f(sa)m(v) -m(e)h(the)e(prompt)f(b)s(efore)h(a)h(call)390 1875 y(to)37 +m(e)h(the)e(prompt)f(b)s(efore)h(a)h(call)390 2371 y(to)37 b Fs(rl_message)p Ft(,)f(this)h(function)f(should)g(b)s(e)g(called)i(b) s(efore)f(the)g(corresp)s(onding)e(call)j(to)g Fs(rl_)390 -1984 y(clear_message)p Ft(.)3350 2144 y([F)-8 b(unction])-3599 +2480 y(clear_message)p Ft(.)3350 2660 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_expand_prompt)e Fg(\()p Ff(c)m(har)34 -b(*prompt)p Fg(\))390 2254 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m +b(*prompt)p Fg(\))390 2769 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m (haracter)h(sequences)f(in)g Fj(prompt)g Ft(and)f(set)i(up)d(the)i(lo)s -(cal)h(Readline)390 2364 y(prompt)35 b(redispla)m(y)h(v)-5 +(cal)h(Readline)390 2879 y(prompt)35 b(redispla)m(y)h(v)-5 b(ariables.)57 b(This)35 b(function)h(is)g(called)h(b)m(y)e Fs(readline\(\))p Ft(.)55 b(It)35 b(ma)m(y)i(also)g(b)s(e)390 -2473 y(called)22 b(to)g(expand)f(the)g(primary)f(prompt)g(if)i(the)f +2988 y(called)22 b(to)g(expand)f(the)g(primary)f(prompt)g(if)i(the)f Fs(rl_on_new_line_with_prom)o(pt\()o(\))15 b Ft(function)390 -2583 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)26 +3098 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)26 b(is)f(used.)39 b(It)25 b(returns)f(the)i(n)m(um)m(b)s(er)e(of)i -(visible)f(c)m(haracters)390 2692 y(on)34 b(the)g(last)g(line)g(of)g +(visible)f(c)m(haracters)390 3208 y(on)34 b(the)g(last)g(line)g(of)g (the)g(\(p)s(ossibly)f(m)m(ulti-line\))j(prompt.)50 b(Applications)34 -b(ma)m(y)h(indicate)f(that)390 2802 y(the)28 b(prompt)f(con)m(tains)i +b(ma)m(y)h(indicate)f(that)390 3317 y(the)28 b(prompt)f(con)m(tains)i (c)m(haracters)g(that)g(tak)m(e)g(up)e(no)h(ph)m(ysical)g(screen)g -(space)g(when)f(displa)m(y)m(ed)390 2912 y(b)m(y)41 b(brac)m(k)m(eting) +(space)g(when)f(displa)m(y)m(ed)390 3427 y(b)m(y)41 b(brac)m(k)m(eting) i(a)e(sequence)g(of)g(suc)m(h)g(c)m(haracters)h(with)f(the)g(sp)s -(ecial)h(mark)m(ers)f Fs(RL_PROMPT_)390 3021 y(START_IGNORE)29 +(ecial)h(mark)m(ers)f Fs(RL_PROMPT_)390 3536 y(START_IGNORE)29 b Ft(and)j Fs(RL_PROMPT_END_IGNORE)26 b Ft(\(declared)33 b(in)f Fs(readline.h)p Ft(\).)44 b(This)32 b(ma)m(y)h(b)s(e)390 -3131 y(used)d(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)f -(sequences)h(in)f(prompts.)3350 3291 y([F)-8 b(unction])-3599 +3646 y(used)d(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)f +(sequences)h(in)f(prompts.)3350 3825 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_set_prompt)d Fg(\()p Ff(const)34 b(c)m(har)g(*prompt)p -Fg(\))390 3400 y Ft(Mak)m(e)28 b(Readline)g(use)f Fj(prompt)h +Fg(\))390 3935 y Ft(Mak)m(e)28 b(Readline)g(use)f Fj(prompt)h Ft(for)e(subsequen)m(t)h(redispla)m(y)-8 b(.)40 b(This)26 -b(calls)i Fs(rl_expand_prompt\(\))390 3510 y Ft(to)j(expand)f(the)g +b(calls)i Fs(rl_expand_prompt\(\))390 4044 y Ft(to)j(expand)f(the)g (prompt)g(and)g(sets)g Fs(rl_prompt)e Ft(to)j(the)g(result.)150 -3693 y Fi(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350 -3874 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_insert_text)d -Fg(\()p Ff(const)34 b(c)m(har)g(*text)p Fg(\))390 3983 +4240 y Fi(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350 +4434 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_insert_text)d +Fg(\()p Ff(const)34 b(c)m(har)g(*text)p Fg(\))390 4543 y Ft(Insert)d Fj(text)k Ft(in)m(to)d(the)g(line)g(at)g(the)g(curren)m (t)f(cursor)g(p)s(osition.)45 b(Returns)30 b(the)i(n)m(um)m(b)s(er)f -(of)g(c)m(har-)390 4093 y(acters)g(inserted.)3350 4253 +(of)g(c)m(har-)390 4653 y(acters)g(inserted.)3350 4832 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_delete_text)d Fg(\()p Ff(in)m(t)33 b(start,)g(in)m(t)g(end)p Fg(\))390 -4362 y Ft(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f +4942 y Ft(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f Fj(start)i Ft(and)d Fj(end)k Ft(in)c(the)h(curren)m(t)g(line.)63 -b(Returns)36 b(the)i(n)m(um)m(b)s(er)f(of)390 4472 y(c)m(haracters)32 -b(deleted.)3350 4632 y([F)-8 b(unction])-3599 b Fh(char)54 +b(Returns)36 b(the)i(n)m(um)m(b)s(er)f(of)390 5051 y(c)m(haracters)32 +b(deleted.)3350 5230 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_copy_text)d Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)h(end)p -Fg(\))390 4742 y Ft(Return)d(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m +Fg(\))390 5340 y Ft(Return)d(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m (w)m(een)g Fj(start)i Ft(and)d Fj(end)j Ft(in)d(the)h(curren)m(t)f -(line.)3350 4902 y([F)-8 b(unction])-3599 b Fh(int)53 -b(rl_kill_text)c Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p -Fg(\))390 5011 y Ft(Cop)m(y)g(the)g(text)i(b)s(et)m(w)m(een)e -Fj(start)j Ft(and)d Fj(end)j Ft(in)d(the)g(curren)m(t)g(line)g(to)h -(the)f(kill)h(ring,)g(app)s(ending)390 5121 y(or)f(prep)s(ending)e(to)j -(the)f(last)h(kill)f(if)g(the)g(last)h(command)f(w)m(as)g(a)h(kill)f -(command.)51 b(The)34 b(text)h(is)390 5230 y(deleted.)51 -b(If)33 b Fj(start)j Ft(is)e(less)g(than)f Fj(end)p Ft(,)h(the)g(text)g -(is)g(app)s(ended,)f(otherwise)h(prep)s(ended.)48 b(If)33 -b(the)390 5340 y(last)e(command)f(w)m(as)h(not)g(a)f(kill,)i(a)f(new)e -(kill)i(ring)g(slot)g(is)f(used.)p eop end +(line.)p eop end %%Page: 39 43 TeXDict begin 39 42 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(39)3350 -299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_push_macro_input)e -Fg(\()p Ff(c)m(har)35 b(*macro)p Fg(\))390 408 y Ft(Cause)28 -b Fj(macro)33 b Ft(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f -(if)h(it)f(had)g(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s -(ound)d(to)390 518 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h -(useful;)e(use)g Fs(rl_insert_text\(\))c Ft(instead.)150 -710 y Fi(2.4.8)63 b(Character)39 b(Input)3350 899 y Ft([F)-8 -b(unction])-3599 b Fh(int)53 b(rl_read_key)c Fg(\()p -Ff(v)m(oid)p Fg(\))390 1009 y Ft(Return)29 b(the)g(next)h(c)m(haracter) -h(a)m(v)-5 b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g -(stream.)41 b(This)28 b(han-)390 1118 y(dles)e(input)g(inserted)g(in)m -(to)i(the)e(input)g(stream)h(via)g Fj(rl)p 2226 1118 -28 4 v 40 w(p)s(ending)p 2583 1118 V 38 w(input)h Ft(\(see)f(Section)h -(2.3)f([Read-)390 1228 y(line)40 b(V)-8 b(ariables],)43 -b(page)d(27\))g(and)f Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m -(haracters)h(read)f(from)390 1337 y(the)34 b(k)m(eyb)s(oard.)52 -b(While)35 b(w)m(aiting)g(for)f(input,)g(this)g(function)g(will)g(call) -i(an)m(y)e(function)g(assigned)390 1447 y(to)d(the)g -Fs(rl_event_hook)26 b Ft(v)-5 b(ariable.)3350 1620 y([F)d(unction]) --3599 b Fh(int)53 b(rl_getc)48 b Fg(\()p Ff(FILE)33 b(*stream)p -Fg(\))390 1729 y Ft(Return)20 b(the)i(next)f(c)m(haracter)i(a)m(v)-5 +299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_kill_text)c +Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p Fg(\))390 +408 y Ft(Cop)m(y)g(the)g(text)i(b)s(et)m(w)m(een)e Fj(start)j +Ft(and)d Fj(end)j Ft(in)d(the)g(curren)m(t)g(line)g(to)h(the)f(kill)h +(ring,)g(app)s(ending)390 518 y(or)f(prep)s(ending)e(to)j(the)f(last)h +(kill)f(if)g(the)g(last)h(command)f(w)m(as)g(a)h(kill)f(command.)51 +b(The)34 b(text)h(is)390 628 y(deleted.)51 b(If)33 b +Fj(start)j Ft(is)e(less)g(than)f Fj(end)p Ft(,)h(the)g(text)g(is)g(app) +s(ended,)f(otherwise)h(prep)s(ended.)48 b(If)33 b(the)390 +737 y(last)e(command)f(w)m(as)h(not)g(a)f(kill,)i(a)f(new)e(kill)i +(ring)g(slot)g(is)f(used.)3350 931 y([F)-8 b(unction])-3599 +b Fh(int)53 b(rl_push_macro_input)e Fg(\()p Ff(c)m(har)35 +b(*macro)p Fg(\))390 1040 y Ft(Cause)28 b Fj(macro)33 +b Ft(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f(if)h(it)f +(had)g(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s(ound)d(to) +390 1150 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h(useful;)e(use)g +Fs(rl_insert_text\(\))c Ft(instead.)150 1354 y Fi(2.4.8)63 +b(Character)39 b(Input)3350 1555 y Ft([F)-8 b(unction])-3599 +b Fh(int)53 b(rl_read_key)c Fg(\()p Ff(v)m(oid)p Fg(\))390 +1665 y Ft(Return)29 b(the)g(next)h(c)m(haracter)h(a)m(v)-5 +b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g(stream.)41 +b(This)28 b(han-)390 1775 y(dles)e(input)g(inserted)g(in)m(to)i(the)e +(input)g(stream)h(via)g Fj(rl)p 2226 1775 28 4 v 40 w(p)s(ending)p +2583 1775 V 38 w(input)h Ft(\(see)f(Section)h(2.3)f([Read-)390 +1884 y(line)40 b(V)-8 b(ariables],)43 b(page)d(27\))g(and)f +Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m(haracters)h(read)f +(from)390 1994 y(the)34 b(k)m(eyb)s(oard.)52 b(While)35 +b(w)m(aiting)g(for)f(input,)g(this)g(function)g(will)g(call)i(an)m(y)e +(function)g(assigned)390 2103 y(to)d(the)g Fs(rl_event_hook)26 +b Ft(v)-5 b(ariable.)3350 2297 y([F)d(unction])-3599 +b Fh(int)53 b(rl_getc)48 b Fg(\()p Ff(FILE)33 b(*stream)p +Fg(\))390 2407 y Ft(Return)20 b(the)i(next)f(c)m(haracter)i(a)m(v)-5 b(ailable)24 b(from)c Fj(stream)p Ft(,)k(whic)m(h)d(is)g(assumed)g(to)h -(b)s(e)e(the)i(k)m(eyb)s(oard.)3350 1902 y([F)-8 b(unction])-3599 +(b)s(e)e(the)i(k)m(eyb)s(oard.)3350 2600 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_stuff_char)d Fg(\()p Ff(in)m(t)33 b(c)p -Fg(\))390 2012 y Ft(Insert)f Fj(c)39 b Ft(in)m(to)34 +Fg(\))390 2710 y Ft(Insert)f Fj(c)39 b Ft(in)m(to)34 b(the)f(Readline)g(input)f(stream.)49 b(It)33 b(will)g(b)s(e)f Fs(")p Ft(read)p Fs(")g Ft(b)s(efore)h(Readline)g(attempts)390 -2122 y(to)27 b(read)g(c)m(haracters)h(from)f(the)g(terminal)g(with)f +2819 y(to)27 b(read)g(c)m(haracters)h(from)f(the)g(terminal)g(with)f Fs(rl_read_key\(\))p Ft(.)36 b(Up)27 b(to)g(512)h(c)m(haracters)g(ma)m -(y)390 2231 y(b)s(e)i(pushed)f(bac)m(k.)42 b Fs(rl_stuff_char)27 +(y)390 2929 y(b)s(e)i(pushed)f(bac)m(k.)42 b Fs(rl_stuff_char)27 b Ft(returns)i(1)i(if)f(the)h(c)m(haracter)h(w)m(as)f(successfully)g -(inserted;)390 2341 y(0)g(otherwise.)3350 2514 y([F)-8 +(inserted;)390 3039 y(0)g(otherwise.)3350 3232 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_execute_next)d Fg(\()p -Ff(in)m(t)34 b(c)p Fg(\))390 2623 y Ft(Mak)m(e)j Fj(c)42 +Ff(in)m(t)34 b(c)p Fg(\))390 3342 y Ft(Mak)m(e)j Fj(c)42 b Ft(b)s(e)35 b(the)h(next)f(command)h(to)g(b)s(e)f(executed)i(when)d -Fs(rl_read_key\(\))e Ft(is)k(called.)58 b(This)390 2733 -y(sets)31 b Fj(rl)p 635 2733 V 40 w(p)s(ending)p 992 -2733 V 38 w(input)p Ft(.)3350 2906 y([F)-8 b(unction])-3599 +Fs(rl_read_key\(\))e Ft(is)k(called.)58 b(This)390 3451 +y(sets)31 b Fj(rl)p 635 3451 V 40 w(p)s(ending)p 992 +3451 V 38 w(input)p Ft(.)3350 3645 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_clear_pending_inpu)q(t)e Fg(\()p Ff(v)m(oid)p -Fg(\))390 3016 y Ft(Unset)42 b Fj(rl)p 729 3016 V 40 -w(p)s(ending)p 1086 3016 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h +Fg(\))390 3755 y Ft(Unset)42 b Fj(rl)p 729 3755 V 40 +w(p)s(ending)p 1086 3755 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h (negating)e(the)f(e\013ect)h(of)f(an)m(y)g(previous)f(call)i(to)g -Fs(rl_)390 3125 y(execute_next\(\))p Ft(.)59 b(This)36 +Fs(rl_)390 3864 y(execute_next\(\))p Ft(.)59 b(This)36 b(w)m(orks)i(only)g(if)f(the)h(p)s(ending)e(input)h(has)g(not)h -(already)g(b)s(een)f(read)390 3235 y(with)30 b Fs(rl_read_key\(\))p -Ft(.)3350 3408 y([F)-8 b(unction])-3599 b Fh(int)53 b +(already)g(b)s(een)f(read)390 3974 y(with)30 b Fs(rl_read_key\(\))p +Ft(.)3350 4167 y([F)-8 b(unction])-3599 b Fh(int)53 b (rl_set_keyboard_input)q(_tim)q(eou)q(t)e Fg(\()p Ff(in)m(t)34 -b(u)p Fg(\))390 3517 y Ft(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard) +b(u)p Fg(\))390 4277 y Ft(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard) g(input)f(in)h Fs(rl_read_key\(\))p Ft(,)f(Readline)i(will)f(w)m(ait)h -(for)f Fj(u)g Ft(mi-)390 3627 y(croseconds)31 b(for)g(input)f(b)s +(for)f Fj(u)g Ft(mi-)390 4387 y(croseconds)31 b(for)g(input)f(b)s (efore)g(calling)j(an)m(y)e(function)f(assigned)i(to)f Fs(rl_event_hook)p Ft(.)39 b Fj(u)30 b Ft(m)m(ust)390 -3736 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h +4496 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h (zero-length)g(timeout)g(is)f(equiv)-5 b(alen)m(t)33 -b(to)g(a)f(p)s(oll\).)45 b(The)390 3846 y(default)31 +b(to)g(a)f(p)s(oll\).)45 b(The)390 4606 y(default)31 b(w)m(aiting)g(p)s(erio)s(d)e(is)i(one-ten)m(th)g(of)g(a)g(second.)40 b(Returns)30 b(the)g(old)h(timeout)g(v)-5 b(alue.)150 -4038 y Fi(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350 -4227 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_prep_terminal)c -Fg(\()p Ff(in)m(t)33 b(meta)p 1704 4227 30 5 v 44 w(\015ag)p -Fg(\))390 4336 y Ft(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f +4810 y Fi(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350 +5011 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_prep_terminal)c +Fg(\()p Ff(in)m(t)33 b(meta)p 1704 5011 30 5 v 44 w(\015ag)p +Fg(\))390 5121 y Ft(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f (Readline's)i(use,)h(so)e Fs(readline\(\))c Ft(can)k(read)f(a)h(single) -390 4446 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s -(oard.)43 b(The)30 b Fj(meta)p 2376 4446 28 4 v 41 w(\015ag)39 -b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 4556 -y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)3350 -4729 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_deprep_terminal)c -Fg(\()p Ff(v)m(oid)p Fg(\))390 4838 y Ft(Undo)31 b(the)h(e\013ects)h -(of)f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)33 -b(the)f(terminal)g(in)f(the)h(state)h(in)e(whic)m(h)390 -4948 y(it)g(w)m(as)g(b)s(efore)f(the)g(most)h(recen)m(t)g(call)h(to)f -Fs(rl_prep_terminal\(\))p Ft(.)3350 5121 y([F)-8 b(unction])-3599 -b Fh(void)54 b(rl_tty_set_default_bindi)q(ngs)e Fg(\()p -Ff(Keymap)34 b(kmap)p Fg(\))390 5230 y Ft(Read)j(the)g(op)s(erating)h -(system's)f(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s -(e)h(displa)m(y)m(ed)g(b)m(y)390 5340 y Fs(stty)p Ft(\))30 -b(to)h(their)f(Readline)h(equiv)-5 b(alen)m(ts.)42 b(The)30 -b(bindings)f(are)i(p)s(erformed)e(in)h Fj(kmap)p Ft(.)p +390 5230 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s +(oard.)43 b(The)30 b Fj(meta)p 2376 5230 28 4 v 41 w(\015ag)39 +b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 5340 +y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)p eop end %%Page: 40 44 TeXDict begin 40 43 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(40)3350 -299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_tty_unset_default_bin)q -(din)q(gs)e Fg(\()p Ff(Keymap)34 b(kmap)p Fg(\))390 408 -y Ft(Reset)f(the)f(bindings)e(manipulated)i(b)m(y)g Fs -(rl_tty_set_default_bind)o(ing)o(s)26 b Ft(so)32 b(that)g(the)g(ter-) -390 518 y(minal)40 b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i -Fs(rl_insert)p Ft(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in) -390 628 y Fj(kmap)p Ft(.)3350 826 y([F)-8 b(unction])-3599 +299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_deprep_terminal)c +Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Undo)31 b(the)h(e\013ects)h(of) +f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)33 b(the)f(terminal)g +(in)f(the)h(state)h(in)e(whic)m(h)390 518 y(it)g(w)m(as)g(b)s(efore)f +(the)g(most)h(recen)m(t)g(call)h(to)f Fs(rl_prep_terminal\(\))p +Ft(.)3350 694 y([F)-8 b(unction])-3599 b Fh(void)54 b +(rl_tty_set_default_bindi)q(ngs)e Fg(\()p Ff(Keymap)34 +b(kmap)p Fg(\))390 804 y Ft(Read)j(the)g(op)s(erating)h(system's)f +(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s(e)h(displa) +m(y)m(ed)g(b)m(y)390 914 y Fs(stty)p Ft(\))30 b(to)h(their)f(Readline)h +(equiv)-5 b(alen)m(ts.)42 b(The)30 b(bindings)f(are)i(p)s(erformed)e +(in)h Fj(kmap)p Ft(.)3350 1090 y([F)-8 b(unction])-3599 +b Fh(void)54 b(rl_tty_unset_default_bin)q(din)q(gs)e +Fg(\()p Ff(Keymap)34 b(kmap)p Fg(\))390 1200 y Ft(Reset)f(the)f +(bindings)e(manipulated)i(b)m(y)g Fs(rl_tty_set_default_bind)o(ing)o(s) +26 b Ft(so)32 b(that)g(the)g(ter-)390 1309 y(minal)40 +b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i Fs(rl_insert)p +Ft(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in)390 +1419 y Fj(kmap)p Ft(.)3350 1595 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_tty_set_echoing)e Fg(\()p Ff(in)m(t)34 -b(v)-6 b(alue)p Fg(\))390 935 y Ft(Set)48 b(Readline's)g(idea)g(of)g +b(v)-6 b(alue)p Fg(\))390 1705 y Ft(Set)48 b(Readline's)g(idea)g(of)g (whether)f(or)g(not)h(it)g(is)f(ec)m(hoing)i(output)e(to)i(its)e -(output)h(stream)390 1045 y(\()p Fj(rl)p 492 1045 28 +(output)h(stream)390 1814 y(\()p Fj(rl)p 492 1814 28 4 v 40 w(outstream)p Ft(\).)j(If)32 b Fj(v)-5 b(alue)39 b Ft(is)34 b(0,)g(Readline)g(do)s(es)f(not)h(displa)m(y)f(output)g(to)h -Fj(rl)p 3115 1045 V 40 w(outstream)p Ft(;)i(an)m(y)390 -1154 y(other)43 b(v)-5 b(alue)43 b(enables)h(output.)77 +Fj(rl)p 3115 1814 V 40 w(outstream)p Ft(;)i(an)m(y)390 +1924 y(other)43 b(v)-5 b(alue)43 b(enables)h(output.)77 b(The)43 b(initial)h(v)-5 b(alue)43 b(is)g(set)g(when)f(Readline)i -(initializes)h(the)390 1264 y(terminal)31 b(settings.)42 +(initializes)h(the)390 2033 y(terminal)31 b(settings.)42 b(This)29 b(function)h(returns)f(the)i(previous)f(v)-5 -b(alue.)3350 1462 y([F)d(unction])-3599 b Fh(int)53 b +b(alue.)3350 2210 y([F)d(unction])-3599 b Fh(int)53 b (rl_reset_terminal)e Fg(\()p Ff(const)34 b(c)m(har)g(*terminal)p -2232 1462 30 5 v 43 w(name)p Fg(\))390 1572 y Ft(Reinitialize)26 +2232 2210 30 5 v 43 w(name)p Fg(\))390 2319 y Ft(Reinitialize)26 b(Readline's)f(idea)f(of)g(the)g(terminal)h(settings)f(using)g -Fj(terminal)p 2977 1572 28 4 v 40 w(name)29 b Ft(as)24 -b(the)g(termi-)390 1681 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i -Fs(vt100)p Ft(\).)44 b(If)31 b Fj(terminal)p 1753 1681 +Fj(terminal)p 2977 2319 28 4 v 40 w(name)29 b Ft(as)24 +b(the)g(termi-)390 2429 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i +Fs(vt100)p Ft(\).)44 b(If)31 b Fj(terminal)p 1753 2429 V 41 w(name)37 b Ft(is)31 b Fs(NULL)p Ft(,)h(the)g(v)-5 b(alue)32 b(of)g(the)g Fs(TERM)e Ft(en)m(vironmen)m(t)390 -1791 y(v)-5 b(ariable)31 b(is)g(used.)150 1997 y Fi(2.4.10)63 -b(Utilit)m(y)40 b(F)-10 b(unctions)3350 2200 y Ft([F)i(unction])-3599 +2539 y(v)-5 b(ariable)31 b(is)g(used.)150 2732 y Fi(2.4.10)63 +b(Utilit)m(y)40 b(F)-10 b(unctions)3350 2924 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_save_state)d Fg(\()p Ff(struct)34 b(readline)p -1759 2200 30 5 v 44 w(state)f(*sp)p Fg(\))390 2310 y +1759 2924 30 5 v 44 w(state)f(*sp)p Fg(\))390 3034 y Ft(Sa)m(v)m(e)d(a)f(snapshot)e(of)i(Readline's)g(in)m(ternal)g(state)h (to)f Fj(sp)p Ft(.)40 b(The)28 b(con)m(ten)m(ts)i(of)e(the)h -Fj(readline)p 3518 2310 28 4 v 40 w(state)390 2420 y +Fj(readline)p 3518 3034 28 4 v 40 w(state)390 3143 y Ft(structure)g(are)g(do)s(cumen)m(ted)g(in)g Fs(readline.h)p Ft(.)38 b(The)28 b(caller)j(is)e(resp)s(onsible)f(for)h(allo)s(cating)j -(the)390 2529 y(structure.)3350 2727 y([F)-8 b(unction])-3599 +(the)390 3253 y(structure.)3350 3429 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_restore_state)e Fg(\()p Ff(struct)34 -b(readline)p 1916 2727 30 5 v 44 w(state)f(*sp)p Fg(\))390 -2837 y Ft(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)g(that)g +b(readline)p 1916 3429 30 5 v 44 w(state)f(*sp)p Fg(\))390 +3539 y Ft(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)g(that)g (stored)f(in)g Fj(sp)p Ft(,)i(whic)m(h)d(m)m(ust)h(ha)m(v)m(e)i(b)s -(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 2946 y(call)30 b(to)g +(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 3648 y(call)30 b(to)g Fs(rl_save_state)p Ft(.)37 b(The)28 b(con)m(ten)m(ts)j(of)e(the)g -Fj(readline)p 2470 2946 28 4 v 41 w(state)35 b Ft(structure)29 -b(are)g(do)s(cumen)m(ted)390 3056 y(in)h Fs(readline.h)p +Fj(readline)p 2470 3648 28 4 v 41 w(state)35 b Ft(structure)29 +b(are)g(do)s(cumen)m(ted)390 3758 y(in)h Fs(readline.h)p Ft(.)38 b(The)30 b(caller)i(is)e(resp)s(onsible)f(for)i(freeing)f(the)h -(structure.)3350 3254 y([F)-8 b(unction])-3599 b Fh(void)54 +(structure.)3350 3934 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_free)47 b Fg(\()p Ff(v)m(oid)33 b(*mem)p Fg(\))390 -3364 y Ft(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y) +4044 y Ft(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y) f Fj(mem)p Ft(.)38 b Fj(mem)21 b Ft(m)m(ust)g(ha)m(v)m(e)i(b)s(een)d -(allo)s(cated)j(b)m(y)e Fs(malloc)p Ft(.)3350 3562 y([F)-8 +(allo)s(cated)j(b)m(y)e Fs(malloc)p Ft(.)3350 4220 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_replace_line)c Fg(\()p Ff(const)34 b(c)m(har)f(*text,)g(in)m(t)g(clear)p 2406 -3562 30 5 v 44 w(undo)p Fg(\))390 3671 y Ft(Replace)41 +4220 30 5 v 44 w(undo)p Fg(\))390 4330 y Ft(Replace)41 b(the)e(con)m(ten)m(ts)i(of)f Fs(rl_line_buffer)35 b Ft(with)k Fj(text)p Ft(.)69 b(The)39 b(p)s(oin)m(t)h(and)e(mark)h(are)h -(pre-)390 3781 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39 -b(If)25 b Fj(clear)p 1422 3781 28 4 v 41 w(undo)k Ft(is)d(non-zero,)h +(pre-)390 4439 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39 +b(If)25 b Fj(clear)p 1422 4439 28 4 v 41 w(undo)k Ft(is)d(non-zero,)h (the)f(undo)e(list)i(asso)s(ciated)h(with)e(the)h(curren)m(t)390 -3890 y(line)31 b(is)f(cleared.)3350 4088 y([F)-8 b(unction])-3599 +4549 y(line)31 b(is)f(cleared.)3350 4725 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_extend_line_buffer)d Fg(\()p Ff(in)m(t)34 -b(len)p Fg(\))390 4198 y Ft(Ensure)29 b(that)h Fs(rl_line_buffer)d +b(len)p Fg(\))390 4835 y Ft(Ensure)29 b(that)h Fs(rl_line_buffer)d Ft(has)j(enough)f(space)i(to)g(hold)f Fj(len)g Ft(c)m(haracters,)i(p)s -(ossibly)d(real-)390 4308 y(lo)s(cating)j(it)f(if)f(necessary)-8 -b(.)3350 4506 y([F)g(unction])-3599 b Fh(int)53 b(rl_initialize)d -Fg(\()p Ff(v)m(oid)p Fg(\))390 4615 y Ft(Initialize)39 +(ossibly)d(real-)390 4944 y(lo)s(cating)j(it)f(if)f(necessary)-8 +b(.)3350 5121 y([F)g(unction])-3599 b Fh(int)53 b(rl_initialize)d +Fg(\()p Ff(v)m(oid)p Fg(\))390 5230 y Ft(Initialize)39 b(or)e(re-initialize)i(Readline's)f(in)m(ternal)f(state.)62 b(It's)37 b(not)g(strictly)h(necessary)f(to)h(call)390 -4725 y(this;)31 b Fs(readline\(\))c Ft(calls)32 b(it)f(b)s(efore)f -(reading)g(an)m(y)h(input.)3350 4923 y([F)-8 b(unction])-3599 -b Fh(int)53 b(rl_ding)48 b Fg(\()p Ff(v)m(oid)p Fg(\))390 -5032 y Ft(Ring)30 b(the)h(terminal)g(b)s(ell,)f(ob)s(eying)h(the)f -(setting)i(of)e Fs(bell-style)p Ft(.)3350 5230 y([F)-8 -b(unction])-3599 b Fh(int)53 b(rl_alphabetic)d Fg(\()p -Ff(in)m(t)33 b(c)p Fg(\))390 5340 y Ft(Return)d(1)g(if)h -Fj(c)36 b Ft(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)p -eop end +5340 y(this;)31 b Fs(readline\(\))c Ft(calls)32 b(it)f(b)s(efore)f +(reading)g(an)m(y)h(input.)p eop end %%Page: 41 45 TeXDict begin 41 44 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(41)3350 -299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_display_match_list)d +299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_ding)48 +b Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Ring)30 b(the)h(terminal)g(b) +s(ell,)f(ob)s(eying)h(the)f(setting)i(of)e Fs(bell-style)p +Ft(.)3350 598 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_alphabetic)d +Fg(\()p Ff(in)m(t)33 b(c)p Fg(\))390 708 y Ft(Return)d(1)g(if)h +Fj(c)36 b Ft(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)3350 +898 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_display_match_list)d Fg(\()p Ff(c)m(har)35 b(**matc)m(hes,)e(in)m(t)g(len,)h(in)m(t)f(max)p -Fg(\))390 408 y Ft(A)i(con)m(v)m(enience)h(function)e(for)g(displa)m +Fg(\))390 1008 y Ft(A)i(con)m(v)m(enience)h(function)e(for)g(displa)m (ying)h(a)g(list)g(of)g(strings)f(in)g(columnar)g(format)h(on)f(Read-) -390 518 y(line's)g(output)f(stream.)51 b Fs(matches)31 +390 1117 y(line's)g(output)f(stream.)51 b Fs(matches)31 b Ft(is)j(the)f(list)i(of)e(strings,)i(in)e(argv)h(format,)h(suc)m(h)e -(as)h(a)g(list)g(of)390 628 y(completion)26 b(matc)m(hes.)39 +(as)h(a)g(list)g(of)390 1227 y(completion)26 b(matc)m(hes.)39 b Fs(len)24 b Ft(is)g(the)g(n)m(um)m(b)s(er)f(of)i(strings)f(in)g Fs(matches)p Ft(,)f(and)h Fs(max)f Ft(is)i(the)f(length)h(of)390 -737 y(the)h(longest)i(string)e(in)g Fs(matches)p Ft(.)37 +1336 y(the)h(longest)i(string)e(in)g Fs(matches)p Ft(.)37 b(This)25 b(function)h(uses)g(the)g(setting)i(of)e Fs -(print-completions-)390 847 y(horizontally)33 b Ft(to)k(select)h(ho)m +(print-completions-)390 1446 y(horizontally)33 b Ft(to)k(select)h(ho)m (w)e(the)g(matc)m(hes)i(are)e(displa)m(y)m(ed)h(\(see)g(Section)g -(1.3.1)h([Readline)390 956 y(Init)30 b(File)h(Syn)m(tax],)g(page)g +(1.3.1)h([Readline)390 1556 y(Init)30 b(File)h(Syn)m(tax],)g(page)g (4\).)42 b(When)29 b(displa)m(ying)i(completions,)h(this)e(function)g -(sets)g(the)g(n)m(um-)390 1066 y(b)s(er)23 b(of)g(columns)g(used)g(for) +(sets)g(the)g(n)m(um-)390 1665 y(b)s(er)23 b(of)g(columns)g(used)g(for) h(displa)m(y)f(to)i(the)e(v)-5 b(alue)24 b(of)g Fs (completion-display-width)p Ft(,)19 b(the)k(v)-5 b(alue)390 -1176 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31 +1775 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31 b Fs(COLUMNS)p Ft(,)e(or)h(the)h(screen)f(width,)g(in)g(that)h(order.) -275 1374 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h +275 1965 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h (de\014ned)e(in)h Fs(chardefs.h)p Ft(.)43 b(Applications)33 -b(should)150 1483 y(refrain)d(from)g(using)g(them.)3350 -1681 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_uppercase_p)d -Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 1791 y Ft(Return)c(1)g(if)h +b(should)150 2074 y(refrain)d(from)g(using)g(them.)3350 +2264 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_uppercase_p)d +Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2374 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(an)h(upp)s(ercase)e(alphab)s(etic)i(c)m(haracter.) -3350 1989 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_lowercase_p)d -Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2098 y Ft(Return)c(1)g(if)h +3350 2564 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_lowercase_p)d +Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2673 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(lo)m(w)m(ercase)i(alphab)s(etic)e(c)m -(haracter.)3350 2296 y([F)-8 b(unction])-3599 b Fh(int)53 +(haracter.)3350 2863 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_digit_p)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 -2406 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(n)m(umeric)f(c)m -(haracter.)3350 2604 y([F)-8 b(unction])-3599 b Fh(int)53 +2973 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(n)m(umeric)f(c)m +(haracter.)3350 3163 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_to_upper)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 -2714 y Ft(If)23 b Fj(c)30 b Ft(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s +3273 y Ft(If)23 b Fj(c)30 b Ft(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s (etic)e(c)m(haracter,)j(return)c(the)h(corresp)s(onding)e(upp)s(ercase) -h(c)m(haracter.)3350 2912 y([F)-8 b(unction])-3599 b +h(c)m(haracter.)3350 3462 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_to_lower)c Fg(\()p Ff(in)m(t)34 b(c)p -Fg(\))390 3021 y Ft(If)28 b Fj(c)35 b Ft(is)29 b(an)g(upp)s(ercase)f +Fg(\))390 3572 y Ft(If)28 b Fj(c)35 b Ft(is)29 b(an)g(upp)s(ercase)f (alphab)s(etic)h(c)m(haracter,)i(return)d(the)h(corresp)s(onding)f(lo)m -(w)m(ercase)j(c)m(harac-)390 3131 y(ter.)3350 3329 y([F)-8 +(w)m(ercase)j(c)m(harac-)390 3682 y(ter.)3350 3872 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_digit_value)d Fg(\()p -Ff(in)m(t)34 b(c)p Fg(\))390 3438 y Ft(If)c Fj(c)36 b +Ff(in)m(t)34 b(c)p Fg(\))390 3981 y Ft(If)c Fj(c)36 b Ft(is)31 b(a)f(n)m(um)m(b)s(er,)g(return)f(the)h(v)-5 -b(alue)31 b(it)g(represen)m(ts.)150 3644 y Fi(2.4.11)63 -b(Miscellaneous)42 b(F)-10 b(unctions)3350 3848 y Ft([F)i(unction]) +b(alue)31 b(it)g(represen)m(ts.)150 4183 y Fi(2.4.11)63 +b(Miscellaneous)42 b(F)-10 b(unctions)3350 4383 y Ft([F)i(unction]) -3599 b Fh(int)53 b(rl_macro_bind)d Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)e(const)i(c)m(har)g(*macro,)565 -3958 y(Keymap)g(map)p Fg(\))390 4067 y Ft(Bind)23 b(the)g(k)m(ey)h +4492 y(Keymap)g(map)p Fg(\))390 4602 y Ft(Bind)23 b(the)g(k)m(ey)h (sequence)g Fj(k)m(eyseq)i Ft(to)e(in)m(v)m(ok)m(e)h(the)f(macro)f Fj(macro)p Ft(.)39 b(The)23 b(binding)f(is)i(p)s(erformed)d(in)390 -4177 y Fj(map)p Ft(.)39 b(When)28 b Fj(k)m(eyseq)i Ft(is)e(in)m(v)m(ok) +4712 y Fj(map)p Ft(.)39 b(When)28 b Fj(k)m(eyseq)i Ft(is)e(in)m(v)m(ok) m(ed,)i(the)d Fj(macro)33 b Ft(will)28 b(b)s(e)f(inserted)g(in)m(to)i -(the)e(line.)41 b(This)26 b(function)390 4286 y(is)k(deprecated;)i(use) -e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 4484 y([F)-8 +(the)e(line.)41 b(This)26 b(function)390 4821 y(is)k(deprecated;)i(use) +e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 5011 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_macro_dumper)c Fg(\()p -Ff(in)m(t)33 b(readable)p Fg(\))390 4594 y Ft(Prin)m(t)27 +Ff(in)m(t)33 b(readable)p Fg(\))390 5121 y Ft(Prin)m(t)27 b(the)g(k)m(ey)h(sequences)g(b)s(ound)d(to)j(macros)f(and)g(their)g(v) -5 b(alues,)28 b(using)f(the)g(curren)m(t)g(k)m(eymap,)390 -4704 y(to)32 b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fj(readable)36 +5230 y(to)32 b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fj(readable)36 b Ft(is)c(non-zero,)g(the)f(list)h(is)f(formatted)h(in)f(suc)m(h)g(a)g -(w)m(a)m(y)i(that)e(it)390 4813 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f -Fs(inputrc)e Ft(\014le)j(and)e(re-read.)3350 5011 y([F)-8 -b(unction])-3599 b Fh(int)53 b(rl_variable_bind)e Fg(\()p -Ff(const)34 b(c)m(har)f(*v)-6 b(ariable,)33 b(const)h(c)m(har)f(*v)-6 -b(alue)p Fg(\))390 5121 y Ft(Mak)m(e)31 b(the)e(Readline)g(v)-5 +(w)m(a)m(y)i(that)e(it)390 5340 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f +Fs(inputrc)e Ft(\014le)j(and)e(re-read.)p eop end +%%Page: 42 46 +TeXDict begin 42 45 bop 150 -116 a Ft(Chapter)30 b(2:)41 +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)3350 +299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_variable_bind)e +Fg(\()p Ff(const)34 b(c)m(har)f(*v)-6 b(ariable,)33 b(const)h(c)m(har)f +(*v)-6 b(alue)p Fg(\))390 408 y Ft(Mak)m(e)31 b(the)e(Readline)g(v)-5 b(ariable)30 b Fj(v)-5 b(ariable)35 b Ft(ha)m(v)m(e)30 b Fj(v)-5 b(alue)p Ft(.)41 b(This)28 b(b)s(eha)m(v)m(es)h(as)h(if)f -(the)g(readline)g(com-)390 5230 y(mand)h(`)p Fs(set)g +(the)g(readline)g(com-)390 518 y(mand)h(`)p Fs(set)g Fl(variable)e(value)p Ft(')h(had)h(b)s(een)h(executed)g(in)g(an)f Fs(inputrc)f Ft(\014le)i(\(see)h(Section)f(1.3.1)390 -5340 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)p -eop end -%%Page: 42 46 -TeXDict begin 42 45 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)3350 -299 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_variable_value)f +628 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)3350 +813 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_variable_value)f Fg(\()p Ff(const)34 b(c)m(har)g(*v)-6 b(ariable)p Fg(\))390 -408 y Ft(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5 +923 y Ft(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5 b(alue)30 b(of)f(the)h(Readline)g(v)-5 b(ariable)30 b Fj(v)-5 b(ariable)p Ft(.)41 b(F)-8 b(or)30 b(b)s(o)s(olean)390 -518 y(v)-5 b(ariables,)31 b(this)g(string)f(is)g(either)h(`)p -Fs(on)p Ft(')f(or)h(`)p Fs(off)p Ft('.)3350 698 y([F)-8 +1032 y(v)-5 b(ariables,)31 b(this)g(string)f(is)g(either)h(`)p +Fs(on)p Ft(')f(or)h(`)p Fs(off)p Ft('.)3350 1217 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_variable_dumper)c -Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 808 y Ft(Prin)m(t)29 +Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 1327 y Ft(Prin)m(t)29 b(the)f(readline)h(v)-5 b(ariable)30 b(names)e(and)g(their)h(curren)m (t)f(v)-5 b(alues)29 b(to)h Fs(rl_outstream)p Ft(.)37 -b(If)28 b Fj(read-)390 917 y(able)40 b Ft(is)34 b(non-zero,)i(the)e +b(If)28 b Fj(read-)390 1437 y(able)40 b Ft(is)34 b(non-zero,)i(the)e (list)g(is)g(formatted)h(in)f(suc)m(h)g(a)g(w)m(a)m(y)h(that)g(it)f -(can)g(b)s(e)g(made)g(part)g(of)g(an)390 1027 y Fs(inputrc)28 -b Ft(\014le)j(and)f(re-read.)3350 1207 y([F)-8 b(unction])-3599 +(can)g(b)s(e)g(made)g(part)g(of)g(an)390 1546 y Fs(inputrc)28 +b Ft(\014le)j(and)f(re-read.)3350 1732 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_set_paren_blink_ti)q(meou)q(t)f Fg(\()p -Ff(in)m(t)33 b(u)p Fg(\))390 1317 y Ft(Set)25 b(the)h(time)f(in)m(terv) +Ff(in)m(t)33 b(u)p Fg(\))390 1841 y Ft(Set)25 b(the)h(time)f(in)m(terv) -5 b(al)27 b(\(in)e(microseconds\))h(that)g(Readline)f(w)m(aits)h(when) -e(sho)m(wing)i(a)f(balancing)390 1426 y(c)m(haracter)32 +e(sho)m(wing)i(a)f(balancing)390 1951 y(c)m(haracter)32 b(when)d Fs(blink-matching-paren)c Ft(has)30 b(b)s(een)g(enabled.)3350 -1607 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_termcap)e -Fg(\()p Ff(const)34 b(c)m(har)g(*cap)p Fg(\))390 1716 +2136 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_termcap)e +Fg(\()p Ff(const)34 b(c)m(har)g(*cap)p Fg(\))390 2246 y Ft(Retriev)m(e)29 b(the)e(string)g(v)-5 b(alue)27 b(of)g(the)h (termcap)f(capabilit)m(y)i Fj(cap)p Ft(.)40 b(Readline)27 -b(fetc)m(hes)h(the)g(termcap)390 1826 y(en)m(try)34 b(for)f(the)h +b(fetc)m(hes)h(the)g(termcap)390 2355 y(en)m(try)34 b(for)f(the)h (curren)m(t)f(terminal)h(name)g(and)f(uses)g(those)h(capabilities)h(to) -f(mo)m(v)m(e)h(around)e(the)390 1935 y(screen)21 b(line)h(and)e(p)s +f(mo)m(v)m(e)h(around)e(the)390 2465 y(screen)21 b(line)h(and)e(p)s (erform)g(other)h(terminal-sp)s(eci\014c)h(op)s(erations,)h(lik)m(e)f -(erasing)g(a)f(line.)38 b(Readline)390 2045 y(do)s(es)d(not)g(use)g +(erasing)g(a)f(line.)38 b(Readline)390 2574 y(do)s(es)d(not)g(use)g (all)g(of)h(a)f(terminal's)g(capabilities,)k(and)34 b(this)h(function)g -(will)g(return)f(v)-5 b(alues)35 b(for)390 2155 y(only)30 -b(those)h(capabilities)i(Readline)e(uses.)3350 2335 y([F)-8 +(will)g(return)f(v)-5 b(alues)35 b(for)390 2684 y(only)30 +b(those)h(capabilities)i(Readline)e(uses.)3350 2869 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_clear_history)c Fg(\()p -Ff(v)m(oid)p Fg(\))390 2444 y Ft(Clear)27 b(the)h(history)f(list)h(b)m +Ff(v)m(oid)p Fg(\))390 2979 y Ft(Clear)27 b(the)h(history)f(list)h(b)m (y)f(deleting)h(all)g(of)f(the)h(en)m(tries,)h(in)d(the)i(same)f -(manner)g(as)g(the)g(History)390 2554 y(library's)42 +(manner)g(as)g(the)g(History)390 3088 y(library's)42 b Fs(clear_history\(\))d Ft(function.)78 b(This)42 b(di\013ers)g(from)g -Fs(clear_history)e Ft(b)s(ecause)i(it)390 2664 y(frees)30 +Fs(clear_history)e Ft(b)s(ecause)i(it)390 3198 y(frees)30 b(priv)-5 b(ate)31 b(data)g(Readline)g(sa)m(v)m(es)h(in)e(the)h -(history)f(list.)150 2860 y Fi(2.4.12)63 b(Alternate)40 -b(In)m(terface)150 3007 y Ft(An)21 b(alternate)j(in)m(terface)f(is)f(a) +(history)f(list.)150 3398 y Fi(2.4.12)63 b(Alternate)40 +b(In)m(terface)150 3545 y Ft(An)21 b(alternate)j(in)m(terface)f(is)f(a) m(v)-5 b(ailable)24 b(to)e(plain)g Fs(readline\(\))p Ft(.)35 b(Some)21 b(applications)i(need)f(to)g(in)m(terlea)m(v)m(e)150 -3117 y(k)m(eyb)s(oard)35 b(I/O)h(with)f(\014le,)i(device,)h(or)e(windo) +3654 y(k)m(eyb)s(oard)35 b(I/O)h(with)f(\014le,)i(device,)h(or)e(windo) m(w)f(system)g(I/O,)h(t)m(ypically)i(b)m(y)d(using)g(a)h(main)g(lo)s -(op)f(to)150 3226 y Fs(select\(\))42 b Ft(on)i(v)-5 b(arious)45 +(op)f(to)150 3764 y Fs(select\(\))42 b Ft(on)i(v)-5 b(arious)45 b(\014le)f(descriptors.)83 b(T)-8 b(o)45 b(accommo)s(date)h(this)e -(need,)k(readline)d(can)f(also)i(b)s(e)150 3336 y(in)m(v)m(ok)m(ed)33 +(need,)k(readline)d(can)f(also)i(b)s(e)150 3873 y(in)m(v)m(ok)m(ed)33 b(as)e(a)h(`callbac)m(k')h(function)e(from)g(an)g(ev)m(en)m(t)h(lo)s (op.)44 b(There)30 b(are)i(functions)f(a)m(v)-5 b(ailable)33 -b(to)f(mak)m(e)150 3445 y(this)e(easy)-8 b(.)3350 3626 +b(to)f(mak)m(e)150 3983 y(this)e(easy)-8 b(.)3350 4168 y([F)g(unction])-3599 b Fh(void)54 b(rl_callback_handler_inst)q(all)e -Fg(\()p Ff(const)34 b(c)m(har)g(*prompt,)565 3735 y(rl)p -639 3735 30 5 v 44 w(v)m(cpfunc)p 1016 3735 V 45 w(t)f(*lhandler)p -Fg(\))390 3845 y Ft(Set)25 b(up)f(the)h(terminal)g(for)f(readline)i +Fg(\()p Ff(const)34 b(c)m(har)g(*prompt,)565 4278 y(rl)p +639 4278 30 5 v 44 w(v)m(cpfunc)p 1016 4278 V 45 w(t)f(*lhandler)p +Fg(\))390 4388 y Ft(Set)25 b(up)f(the)h(terminal)g(for)f(readline)i (I/O)e(and)g(displa)m(y)h(the)g(initial)h(expanded)e(v)-5 -b(alue)26 b(of)f Fj(prompt)p Ft(.)390 3954 y(Sa)m(v)m(e)34 +b(alue)26 b(of)f Fj(prompt)p Ft(.)390 4497 y(Sa)m(v)m(e)34 b(the)f(v)-5 b(alue)33 b(of)g Fj(lhandler)39 b Ft(to)34 b(use)e(as)h(a)g(handler)f(function)h(to)g(call)h(when)e(a)h(complete)i -(line)390 4064 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57 +(line)390 4607 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57 b(The)35 b(handler)g(function)g(receiv)m(es)j(the)e(text)g(of)g(the)g -(line)g(as)g(an)390 4173 y(argumen)m(t.)k(As)29 b(with)f +(line)g(as)g(an)390 4716 y(argumen)m(t.)k(As)29 b(with)f Fs(readline\(\))p Ft(,)e(the)j(handler)e(function)h(should)g -Fs(free)f Ft(the)h(line)h(when)e(it)i(it)390 4283 y(\014nished)g(with)h -(it.)3350 4463 y([F)-8 b(unction])-3599 b Fh(void)54 +Fs(free)f Ft(the)h(line)h(when)e(it)i(it)390 4826 y(\014nished)g(with)h +(it.)3350 5011 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_callback_read_char)d Fg(\()p Ff(v)m(oid)p Fg(\))390 -4573 y Ft(Whenev)m(er)34 b(an)g(application)h(determines)e(that)i(k)m +5121 y Ft(Whenev)m(er)34 b(an)g(application)h(determines)e(that)i(k)m (eyb)s(oard)e(input)g(is)h(a)m(v)-5 b(ailable,)37 b(it)d(should)f(call) -390 4682 y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)22 +390 5230 y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)22 b(will)g(read)f(the)h(next)g(c)m(haracter)h(from)f(the)f(curren)m(t)h -(input)390 4792 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes) +(input)390 5340 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes) h(the)e(line,)h Fs(rl_callback_read_char)22 b Ft(will)28 -b(in)m(v)m(ok)m(e)i(the)390 4902 y Fj(lhandler)47 b Ft(function)40 -b(installed)i(b)m(y)e Fs(rl_callback_handler_insta)o(ll)35 -b Ft(to)41 b(pro)s(cess)f(the)h(line.)390 5011 y(Before)j(calling)h -(the)e Fj(lhandler)49 b Ft(function,)e(the)c(terminal)h(settings)g(are) -g(reset)f(to)h(the)g(v)-5 b(alues)390 5121 y(they)44 -b(had)e(b)s(efore)h(calling)i Fs(rl_callback_handler_insta)o(ll)p -Ft(.)73 b(If)43 b(the)h Fj(lhandler)49 b Ft(function)390 -5230 y(returns,)27 b(and)h(the)g(line)g(handler)f(remains)h(installed,) -i(the)e(terminal)g(settings)h(are)f(mo)s(di\014ed)f(for)390 -5340 y(Readline's)k(use)f(again.)42 b Fs(EOF)29 b Ft(is)i(indicated)g -(b)m(y)f(calling)i Fj(lhandler)k Ft(with)30 b(a)h Fs(NULL)e -Ft(line.)p eop end +b(in)m(v)m(ok)m(e)i(the)p eop end %%Page: 43 47 TeXDict begin 43 46 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(43)3350 -299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_callback_sigcleanup)e -Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Clean)26 b(up)e(an)m(y)i(in)m +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(43)390 +299 y Fj(lhandler)47 b Ft(function)40 b(installed)i(b)m(y)e +Fs(rl_callback_handler_insta)o(ll)35 b Ft(to)41 b(pro)s(cess)f(the)h +(line.)390 408 y(Before)j(calling)h(the)e Fj(lhandler)49 +b Ft(function,)e(the)c(terminal)h(settings)g(are)g(reset)f(to)h(the)g +(v)-5 b(alues)390 518 y(they)44 b(had)e(b)s(efore)h(calling)i +Fs(rl_callback_handler_insta)o(ll)p Ft(.)73 b(If)43 b(the)h +Fj(lhandler)49 b Ft(function)390 628 y(returns,)27 b(and)h(the)g(line)g +(handler)f(remains)h(installed,)i(the)e(terminal)g(settings)h(are)f(mo) +s(di\014ed)f(for)390 737 y(Readline's)k(use)f(again.)42 +b Fs(EOF)29 b Ft(is)i(indicated)g(b)m(y)f(calling)i Fj(lhandler)k +Ft(with)30 b(a)h Fs(NULL)e Ft(line.)3350 931 y([F)-8 +b(unction])-3599 b Fh(void)54 b(rl_callback_sigcleanup)e +Fg(\()p Ff(v)m(oid)p Fg(\))390 1040 y Ft(Clean)26 b(up)e(an)m(y)i(in)m (ternal)g(state)h(the)e(callbac)m(k)j(in)m(terface)f(uses)e(to)h(main)m -(tain)g(state)h(b)s(et)m(w)m(een)f(calls)390 518 y(to)35 -b(rl)p 572 518 28 4 v 40 w(callbac)m(k)p 928 518 V 42 -w(read)p 1142 518 V 40 w(c)m(har)f(\(e.g.,)j(the)e(state)g(of)f(an)m(y) -h(activ)m(e)h(incremen)m(tal)f(searc)m(hes\).)54 b(This)33 -b(is)390 628 y(in)m(tended)f(to)h(b)s(e)e(used)g(b)m(y)h(applications)h -(that)g(wish)e(to)i(p)s(erform)d(their)j(o)m(wn)f(signal)g(handling;) -390 737 y(Readline's)f(in)m(ternal)g(signal)g(handler)f(calls)h(this)g -(when)e(appropriate.)3350 918 y([F)-8 b(unction])-3599 -b Fh(void)54 b(rl_callback_handler_remo)q(ve)e Fg(\()p -Ff(v)m(oid)p Fg(\))390 1027 y Ft(Restore)37 b(the)f(terminal)g(to)g -(its)h(initial)g(state)g(and)e(remo)m(v)m(e)i(the)f(line)g(handler.)56 -b(Y)-8 b(ou)36 b(ma)m(y)h(call)390 1137 y(this)25 b(function)g(from)g -(within)g(a)h(callbac)m(k)i(as)d(w)m(ell)i(as)f(indep)s(enden)m(tly)-8 -b(.)38 b(If)25 b(the)h Fj(lhandler)31 b Ft(installed)390 -1247 y(b)m(y)25 b Fs(rl_callback_handler_insta)o(ll)19 -b Ft(do)s(es)25 b(not)h(exit)g(the)g(program,)g(either)g(this)f -(function)g(or)390 1356 y(the)32 b(function)f(referred)f(to)i(b)m(y)g +(tain)g(state)h(b)s(et)m(w)m(een)f(calls)390 1150 y(to)35 +b(rl)p 572 1150 28 4 v 40 w(callbac)m(k)p 928 1150 V +42 w(read)p 1142 1150 V 40 w(c)m(har)f(\(e.g.,)j(the)e(state)g(of)f(an) +m(y)h(activ)m(e)h(incremen)m(tal)f(searc)m(hes\).)54 +b(This)33 b(is)390 1259 y(in)m(tended)f(to)h(b)s(e)e(used)g(b)m(y)h +(applications)h(that)g(wish)e(to)i(p)s(erform)d(their)j(o)m(wn)f +(signal)g(handling;)390 1369 y(Readline's)f(in)m(ternal)g(signal)g +(handler)f(calls)h(this)g(when)e(appropriate.)3350 1562 +y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_callback_handler_remo)q(ve)e +Fg(\()p Ff(v)m(oid)p Fg(\))390 1672 y Ft(Restore)37 b(the)f(terminal)g +(to)g(its)h(initial)g(state)g(and)e(remo)m(v)m(e)i(the)f(line)g +(handler.)56 b(Y)-8 b(ou)36 b(ma)m(y)h(call)390 1782 +y(this)25 b(function)g(from)g(within)g(a)h(callbac)m(k)i(as)d(w)m(ell)i +(as)f(indep)s(enden)m(tly)-8 b(.)38 b(If)25 b(the)h Fj(lhandler)31 +b Ft(installed)390 1891 y(b)m(y)25 b Fs(rl_callback_handler_insta)o(ll) +19 b Ft(do)s(es)25 b(not)h(exit)g(the)g(program,)g(either)g(this)f +(function)g(or)390 2001 y(the)32 b(function)f(referred)f(to)i(b)m(y)g (the)f(v)-5 b(alue)32 b(of)g Fs(rl_deprep_term_function)25 -b Ft(should)30 b(b)s(e)h(called)390 1466 y(b)s(efore)f(the)h(program)f +b Ft(should)30 b(b)s(e)h(called)390 2110 y(b)s(efore)f(the)h(program)f (exits)h(to)g(reset)g(the)f(terminal)h(settings.)150 -1663 y Fi(2.4.13)63 b(A)41 b(Readline)f(Example)150 1809 +2314 y Fi(2.4.13)63 b(A)41 b(Readline)f(Example)150 2461 y Ft(Here)34 b(is)g(a)g(function)g(whic)m(h)g(c)m(hanges)g(lo)m(w)m (ercase)j(c)m(haracters)e(to)f(their)g(upp)s(ercase)f(equiv)-5 -b(alen)m(ts,)37 b(and)150 1919 y(upp)s(ercase)d(c)m(haracters)j(to)f +b(alen)m(ts,)37 b(and)150 2571 y(upp)s(ercase)d(c)m(haracters)j(to)f (lo)m(w)m(ercase.)58 b(If)35 b(this)g(function)g(w)m(as)h(b)s(ound)d (to)j(`)p Fs(M-c)p Ft(',)h(then)e(t)m(yping)g(`)p Fs(M-c)p -Ft(')150 2029 y(w)m(ould)c(c)m(hange)i(the)f(case)g(of)g(the)g(c)m +Ft(')150 2680 y(w)m(ould)c(c)m(hange)i(the)f(case)g(of)g(the)g(c)m (haracter)h(under)d(p)s(oin)m(t.)44 b(T)m(yping)31 b(`)p Fs(M-1)f(0)g(M-c)p Ft(')h(w)m(ould)g(c)m(hange)i(the)150 -2138 y(case)e(of)g(the)g(follo)m(wing)g(10)h(c)m(haracters,)g(lea)m +2790 y(case)e(of)g(the)g(follo)m(wing)g(10)h(c)m(haracters,)g(lea)m (ving)g(the)e(cursor)g(on)g(the)h(last)g(c)m(haracter)h(c)m(hanged.)390 -2271 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g -(characters.)e(*/)390 2381 y(int)390 2491 y(invert_case_line)f -(\(count,)j(key\))629 2600 y(int)h(count,)f(key;)390 -2710 y({)485 2819 y(register)g(int)h(start,)f(end,)h(i;)485 -3039 y(start)g(=)g(rl_point;)485 3258 y(if)h(\(rl_point)d(>=)i -(rl_end\))581 3367 y(return)f(\(0\);)485 3587 y(if)i(\(count)e(<)h(0\)) -581 3696 y({)676 3806 y(direction)f(=)h(-1;)676 3915 -y(count)g(=)g(-count;)581 4025 y(})485 4134 y(else)581 -4244 y(direction)e(=)j(1;)485 4463 y(/*)g(Find)e(the)h(end)g(of)g(the)g -(range)g(to)g(modify.)f(*/)485 4573 y(end)h(=)h(start)e(+)i(\(count)e -(*)h(direction\);)485 4792 y(/*)h(Force)e(it)h(to)g(be)h(within)e -(range.)g(*/)485 4902 y(if)i(\(end)e(>)i(rl_end\))581 -5011 y(end)f(=)g(rl_end;)485 5121 y(else)g(if)g(\(end)g(<)g(0\))581 -5230 y(end)g(=)g(0;)p eop end +2929 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g +(characters.)e(*/)390 3039 y(int)390 3148 y(invert_case_line)f +(\(count,)j(key\))629 3258 y(int)h(count,)f(key;)390 +3367 y({)485 3477 y(register)g(int)h(start,)f(end,)h(i;)485 +3696 y(start)g(=)g(rl_point;)485 3915 y(if)h(\(rl_point)d(>=)i +(rl_end\))581 4025 y(return)f(\(0\);)485 4244 y(if)i(\(count)e(<)h(0\)) +581 4354 y({)676 4463 y(direction)f(=)h(-1;)676 4573 +y(count)g(=)g(-count;)581 4682 y(})485 4792 y(else)581 +4902 y(direction)e(=)j(1;)485 5121 y(/*)g(Find)e(the)h(end)g(of)g(the)g +(range)g(to)g(modify.)f(*/)485 5230 y(end)h(=)h(start)e(+)i(\(count)e +(*)h(direction\);)p eop end %%Page: 44 48 TeXDict begin 44 47 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(44)485 -299 y Fs(if)48 b(\(start)e(==)h(end\))581 408 y(return)f(\(0\);)485 -628 y(if)i(\(start)e(>)h(end\))581 737 y({)676 847 y(int)g(temp)g(=)g -(start;)676 956 y(start)g(=)g(end;)676 1066 y(end)g(=)h(temp;)581 -1176 y(})485 1395 y(/*)g(Tell)e(readline)g(that)g(we)i(are)f(modifying) -e(the)i(line,)629 1504 y(so)g(it)g(will)g(save)f(the)h(undo)g -(information.)d(*/)485 1614 y(rl_modifying)h(\(start,)h(end\);)485 -1833 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f(i++\))581 -1943 y({)676 2052 y(if)i(\(_rl_uppercase_p)43 b -(\(rl_line_buffer[i]\)\))772 2162 y(rl_line_buffer[i])g(=)k -(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 2271 y(else)i(if)g -(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 2381 +299 y Fs(/*)48 b(Force)e(it)h(to)g(be)h(within)e(range.)g(*/)485 +408 y(if)i(\(end)e(>)i(rl_end\))581 518 y(end)f(=)g(rl_end;)485 +628 y(else)g(if)g(\(end)g(<)g(0\))581 737 y(end)g(=)g(0;)485 +956 y(if)h(\(start)e(==)h(end\))581 1066 y(return)f(\(0\);)485 +1285 y(if)i(\(start)e(>)h(end\))581 1395 y({)676 1504 +y(int)g(temp)g(=)g(start;)676 1614 y(start)g(=)g(end;)676 +1724 y(end)g(=)h(temp;)581 1833 y(})485 2052 y(/*)g(Tell)e(readline)g +(that)g(we)i(are)f(modifying)e(the)i(line,)629 2162 y(so)g(it)g(will)g +(save)f(the)h(undo)g(information.)d(*/)485 2271 y(rl_modifying)h +(\(start,)h(end\);)485 2491 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f +(i++\))581 2600 y({)676 2710 y(if)i(\(_rl_uppercase_p)43 +b(\(rl_line_buffer[i]\)\))772 2819 y(rl_line_buffer[i])g(=)k +(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 2929 y(else)i(if)g +(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 3039 y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581 -2491 y(})485 2600 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g -(last)g(character)e(changed.)g(*/)485 2710 y(rl_point)h(=)h +3148 y(})485 3258 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g +(last)g(character)e(changed.)g(*/)485 3367 y(rl_point)h(=)h (\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f(:)h(start;)485 -2819 y(return)f(\(0\);)390 2929 y(})150 3162 y Fi(2.4.14)63 -b(Alternate)40 b(In)m(terface)g(Example)150 3309 y Ft(Here)f(is)g(a)g +3477 y(return)f(\(0\);)390 3587 y(})150 3819 y Fi(2.4.14)63 +b(Alternate)40 b(In)m(terface)g(Example)150 3966 y Ft(Here)f(is)g(a)g (complete)h(program)e(that)h(illustrates)h(Readline's)f(alternate)h(in) -m(terface.)67 b(It)38 b(reads)h(lines)150 3418 y(from)30 +m(terface.)67 b(It)38 b(reads)h(lines)150 4076 y(from)30 b(the)i(terminal)f(and)f(displa)m(ys)h(them,)h(pro)m(viding)f(the)g (standard)f(history)h(and)f(T)-8 b(AB)32 b(completion)150 -3528 y(functions.)40 b(It)31 b(understands)d(the)j(EOF)f(c)m(haracter)i +4186 y(functions.)40 b(It)31 b(understands)d(the)j(EOF)f(c)m(haracter)i (or)e Fs(")p Ft(exit)p Fs(")h Ft(to)g(exit)g(the)g(program.)390 -3696 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j -(required.)d(*/)390 3806 y(#include)h()390 -3915 y(#include)g()390 4025 y(#include)g()390 -4134 y(#include)g()390 4354 y(/*)h(Used)g(for)g(select\(2\))e -(*/)390 4463 y(#include)h()390 4573 y(#include)g -()390 4792 y(#include)g()390 -5011 y(#include)g()390 5230 y(/*)h(Standard)f(readline)f -(include)h(files.)g(*/)390 5340 y(#include)g()p -eop end +4354 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j +(required.)d(*/)390 4463 y(#include)h()390 +4573 y(#include)g()390 4682 y(#include)g()390 +4792 y(#include)g()390 5011 y(/*)h(Used)g(for)g(select\(2\))e +(*/)390 5121 y(#include)h()390 5230 y(#include)g +()p eop end %%Page: 45 49 TeXDict begin 45 48 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(45)390 -299 y Fs(#include)46 b()390 518 y(static)g(void)h -(cb_linehandler)d(\(char)i(*\);)390 628 y(static)g(void)h(sighandler)e -(\(int\);)390 847 y(int)i(running;)390 956 y(int)g(sigwinch_received;) -390 1066 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390 -1285 y(/*)h(Handle)f(SIGWINCH)g(and)h(window)f(size)g(changes)g(when)h -(readline)e(is)j(not)f(active)f(and)p 3922 1305 42 84 -v 533 1395 a(reading)g(a)h(character.)e(*/)390 1504 y(static)h(void)390 -1614 y(sighandler)f(\(int)i(sig\))390 1724 y({)485 1833 -y(sigwinch_received)d(=)j(1;)390 1943 y(})390 2162 y(/*)g(Callback)f +299 y Fs(#include)46 b()390 518 y(#include)g()390 +737 y(/*)h(Standard)f(readline)f(include)h(files.)g(*/)390 +847 y(#include)g()390 956 y(#include)g +()390 1176 y(static)g(void)h(cb_linehandler)d +(\(char)i(*\);)390 1285 y(static)g(void)h(sighandler)e(\(int\);)390 +1504 y(int)i(running;)390 1614 y(int)g(sigwinch_received;)390 +1724 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390 +1943 y(/*)h(Handle)f(SIGWINCH)g(and)h(window)f(size)g(changes)g(when)h +(readline)e(is)j(not)f(active)f(and)p 3922 1963 42 84 +v 533 2052 a(reading)g(a)h(character.)e(*/)390 2162 y(static)h(void)390 +2271 y(sighandler)f(\(int)i(sig\))390 2381 y({)485 2491 +y(sigwinch_received)d(=)j(1;)390 2600 y(})390 2819 y(/*)g(Callback)f (function)f(called)h(for)h(each)g(line)g(when)f(accept-line)f -(executed,)g(EOF)533 2271 y(seen,)i(or)g(EOF)g(character)e(read.)94 +(executed,)g(EOF)533 2929 y(seen,)i(or)g(EOF)g(character)e(read.)94 b(This)47 b(sets)f(a)i(flag)e(and)h(returns;)f(it)h(could)533 -2381 y(also)g(call)f(exit\(3\).)g(*/)390 2491 y(static)g(void)390 -2600 y(cb_linehandler)e(\(char)i(*line\))390 2710 y({)485 -2819 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.) -f(*/)485 2929 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g -("exit"\))g(==)h(0\))581 3039 y({)676 3148 y(if)h(\(line)e(==)h(0\))772 -3258 y(printf)f(\("\\n"\);)676 3367 y(printf)g(\("exit\\n"\);)676 -3477 y(/*)i(This)e(function)g(needs)g(to)h(be)g(called)g(to)g(reset)f -(the)h(terminal)f(settings,)p 3874 3497 V 820 3587 a(and)g(calling)g +3039 y(also)g(call)f(exit\(3\).)g(*/)390 3148 y(static)g(void)390 +3258 y(cb_linehandler)e(\(char)i(*line\))390 3367 y({)485 +3477 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.) +f(*/)485 3587 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g +("exit"\))g(==)h(0\))581 3696 y({)676 3806 y(if)h(\(line)e(==)h(0\))772 +3915 y(printf)f(\("\\n"\);)676 4025 y(printf)g(\("exit\\n"\);)676 +4134 y(/*)i(This)e(function)g(needs)g(to)h(be)g(called)g(to)g(reset)f +(the)h(terminal)f(settings,)p 3874 4155 V 820 4244 a(and)g(calling)g (it)h(from)g(the)g(line)g(handler)e(keeps)i(one)g(extra)f(prompt)g -(from)p 3874 3607 42 76 v 820 3696 a(being)g(displayed.)f(*/)676 -3806 y(rl_callback_handler_remove)c(\(\);)676 4025 y(running)46 -b(=)i(0;)581 4134 y(})485 4244 y(else)581 4354 y({)676 -4463 y(if)g(\(*line\))772 4573 y(add_history)d(\(line\);)676 -4682 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)676 -4792 y(free)h(\(line\);)581 4902 y(})390 5011 y(})390 -5230 y(int)390 5340 y(main)g(\(int)f(c,)h(char)g(**v\))p +(from)p 3874 4264 42 76 v 820 4354 a(being)g(displayed.)f(*/)676 +4463 y(rl_callback_handler_remove)c(\(\);)676 4682 y(running)46 +b(=)i(0;)581 4792 y(})485 4902 y(else)581 5011 y({)676 +5121 y(if)g(\(*line\))772 5230 y(add_history)d(\(line\);)676 +5340 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)p eop end %%Page: 46 50 TeXDict begin 46 49 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)390 -299 y Fs({)485 408 y(fd_set)47 b(fds;)485 518 y(int)g(r;)485 -737 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h -(environment)e(variables.)g(*/)p 3874 757 42 84 v 485 -847 a(setlocale)h(\(LC_ALL,)f(""\);)485 1066 y(/*)j(Handle)e(window)g +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)676 +299 y Fs(free)47 b(\(line\);)581 408 y(})390 518 y(})390 +737 y(int)390 847 y(main)g(\(int)f(c,)h(char)g(**v\))390 +956 y({)485 1066 y(fd_set)g(fds;)485 1176 y(int)g(r;)485 +1395 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h +(environment)e(variables.)g(*/)p 3874 1415 42 84 v 485 +1504 a(setlocale)h(\(LC_ALL,)f(""\);)485 1724 y(/*)j(Handle)e(window)g (size)g(changes)g(when)h(readline)e(is)j(not)f(active)f(and)h(reading) -629 1176 y(characters.)d(*/)485 1285 y(signal)j(\(SIGWINCH,)e -(sighandler\);)485 1504 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485 -1614 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);) -485 1833 y(/*)j(Enter)e(a)h(simple)g(event)f(loop.)94 +629 1833 y(characters.)d(*/)485 1943 y(signal)j(\(SIGWINCH,)e +(sighandler\);)485 2162 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485 +2271 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);) +485 2491 y(/*)j(Enter)e(a)h(simple)g(event)f(loop.)94 b(This)47 b(waits)f(until)g(something)g(is)h(available)629 -1943 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j -(standard)d(input\))h(and)629 2052 y(calls)g(the)h(builtin)f(character) +2600 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j +(standard)d(input\))h(and)629 2710 y(calls)g(the)h(builtin)f(character) f(read)i(callback)e(to)i(read)g(it.)95 b(It)47 b(does)f(not)629 -2162 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/) -485 2271 y(running)h(=)i(1;)485 2381 y(while)f(\(running\))581 -2491 y({)676 2600 y(FD_ZERO)f(\(&fds\);)676 2710 y(FD_SET)g(\(fileno)g -(\(rl_instream\),)e(&fds\);)676 2929 y(r)k(=)f(select)f(\(FD_SETSIZE,)f -(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 3039 y(if)i(\(r)f(<)g(0)h(&&)f -(errno)f(!=)h(EINTR\))772 3148 y({)867 3258 y(perror)f(\("rltest:)g -(select"\);)867 3367 y(rl_callback_handler_remov)o(e)c(\(\);)867 -3477 y(break;)772 3587 y(})676 3696 y(if)48 b(\(sigwinch_received\))390 -3806 y({)485 3915 y(rl_resize_terminal)43 b(\(\);)485 -4025 y(sigwinch_received)h(=)j(0;)390 4134 y(})676 4244 -y(if)h(\(r)f(<)g(0\))390 4354 y(continue;)676 4573 y(if)h(\(FD_ISSET)d -(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 4682 y -(rl_callback_read_char)e(\(\);)581 4792 y(})485 5011 -y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g(exited\\n"\);)485 -5121 y(return)g(0;)390 5230 y(})p eop end +2819 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/) +485 2929 y(running)h(=)i(1;)485 3039 y(while)f(\(running\))581 +3148 y({)676 3258 y(FD_ZERO)f(\(&fds\);)676 3367 y(FD_SET)g(\(fileno)g +(\(rl_instream\),)e(&fds\);)676 3587 y(r)k(=)f(select)f(\(FD_SETSIZE,)f +(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 3696 y(if)i(\(r)f(<)g(0)h(&&)f +(errno)f(!=)h(EINTR\))772 3806 y({)867 3915 y(perror)f(\("rltest:)g +(select"\);)867 4025 y(rl_callback_handler_remov)o(e)c(\(\);)867 +4134 y(break;)772 4244 y(})676 4354 y(if)48 b(\(sigwinch_received\))390 +4463 y({)485 4573 y(rl_resize_terminal)43 b(\(\);)485 +4682 y(sigwinch_received)h(=)j(0;)390 4792 y(})676 4902 +y(if)h(\(r)f(<)g(0\))390 5011 y(continue;)676 5230 y(if)h(\(FD_ISSET)d +(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 5340 y +(rl_callback_read_char)e(\(\);)p eop end %%Page: 47 51 TeXDict begin 47 50 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)150 -299 y Fr(2.5)68 b(Readline)47 b(Signal)e(Handling)150 -458 y Ft(Signals)31 b(are)f(async)m(hronous)g(ev)m(en)m(ts)i(sen)m(t)f +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)581 +299 y Fs(})485 518 y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g +(exited\\n"\);)485 628 y(return)g(0;)390 737 y(})150 +1021 y Fr(2.5)68 b(Readline)47 b(Signal)e(Handling)150 +1180 y Ft(Signals)31 b(are)f(async)m(hronous)g(ev)m(en)m(ts)i(sen)m(t)f (to)g(a)g(pro)s(cess)f(b)m(y)h(the)f(Unix)g(k)m(ernel,)i(sometimes)f -(on)g(b)s(ehalf)150 568 y(of)k(another)g(pro)s(cess.)53 +(on)g(b)s(ehalf)150 1290 y(of)k(another)g(pro)s(cess.)53 b(They)34 b(are)h(in)m(tended)g(to)g(indicate)h(exceptional)g(ev)m(en)m -(ts,)i(lik)m(e)e(a)f(user)f(pressing)150 677 y(the)g(in)m(terrupt)f(k)m -(ey)h(on)g(his)f(terminal,)i(or)f(a)g(net)m(w)m(ork)g(connection)h(b)s +(ts,)i(lik)m(e)e(a)f(user)f(pressing)150 1400 y(the)g(in)m(terrupt)f(k) +m(ey)h(on)g(his)f(terminal,)i(or)f(a)g(net)m(w)m(ork)g(connection)h(b)s (eing)e(brok)m(en.)50 b(There)34 b(is)f(a)h(class)150 -787 y(of)29 b(signals)g(that)h(can)f(b)s(e)f(sen)m(t)h(to)h(the)f(pro)s -(cess)f(curren)m(tly)h(reading)g(input)f(from)g(the)h(k)m(eyb)s(oard.) -40 b(Since)150 897 y(Readline)45 b(c)m(hanges)g(the)g(terminal)g +1509 y(of)29 b(signals)g(that)h(can)f(b)s(e)f(sen)m(t)h(to)h(the)f(pro) +s(cess)f(curren)m(tly)h(reading)g(input)f(from)g(the)h(k)m(eyb)s(oard.) +40 b(Since)150 1619 y(Readline)45 b(c)m(hanges)g(the)g(terminal)g (attributes)g(when)e(it)i(is)g(called,)k(it)c(needs)f(to)h(p)s(erform)e -(sp)s(ecial)150 1006 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g +(sp)s(ecial)150 1728 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g (is)g(receiv)m(ed)h(in)e(order)g(to)h(restore)h(the)e(terminal)h(to)h -(a)f(sane)f(state,)j(or)150 1116 y(pro)m(vide)g(application)i(writers)e +(a)f(sane)f(state,)j(or)150 1838 y(pro)m(vide)g(application)i(writers)e (with)g(functions)g(to)h(do)g(so)f(man)m(ually)-8 b(.)275 -1281 y(Readline)40 b(con)m(tains)i(an)e(in)m(ternal)h(signal)g(handler) +2001 y(Readline)40 b(con)m(tains)i(an)e(in)m(ternal)h(signal)g(handler) f(that)h(is)f(installed)h(for)f(a)h(n)m(um)m(b)s(er)e(of)h(signals)150 -1391 y(\()p Fs(SIGINT)p Ft(,)e Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p +2111 y(\()p Fs(SIGINT)p Ft(,)e Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p Ft(,)g Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)g Fs(SIGTSTP)p Ft(,)g Fs(SIGTTIN)p Ft(,)g(and)g Fs(SIGTTOU)p Ft(\).)59 -b(When)150 1500 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i +b(When)150 2220 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i (the)e(signal)g(handler)f(will)h(reset)h(the)e(terminal)i(attributes)f -(to)g(those)150 1610 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f +(to)g(those)150 2330 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f Fs(readline\(\))e Ft(w)m(as)i(called,)j(reset)d(the)h(signal)g -(handling)f(to)h(what)f(it)h(w)m(as)150 1720 y(b)s(efore)26 +(handling)f(to)h(what)f(it)h(w)m(as)150 2439 y(b)s(efore)26 b Fs(readline\(\))e Ft(w)m(as)j(called,)i(and)d(resend)g(the)h(signal)g (to)h(the)f(calling)h(application.)41 b(If)26 b(and)g(when)150 -1829 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h +2549 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h (Readline)g(will)h(reinitialize)h(the)e(terminal)h(and)150 -1939 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28 +2659 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28 b(a)h Fs(SIGINT)d Ft(is)j(receiv)m(ed,)h(the)e(Readline)h(signal)g -(handler)f(p)s(erforms)150 2048 y(some)39 b(additional)h(w)m(ork,)h +(handler)f(p)s(erforms)150 2768 y(some)39 b(additional)h(w)m(ork,)h (whic)m(h)d(will)h(cause)g(an)m(y)h(partially-en)m(tered)g(line)f(to)h -(b)s(e)e(ab)s(orted)g(\(see)i(the)150 2158 y(description)30 +(b)s(e)e(ab)s(orted)g(\(see)i(the)150 2878 y(description)30 b(of)h Fs(rl_free_line_state\(\))25 b Ft(b)s(elo)m(w\).)275 -2323 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g +3041 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g (for)f Fs(SIGWINCH)p Ft(,)g(whic)m(h)g(the)g(k)m(ernel)h(sends)e(to)j -(a)150 2433 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m +(a)150 3151 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m (hanges)g(\(for)f(example,)h(if)f(a)g(user)f(resizes)i(an)e -Fs(xterm)p Ft(\).)39 b(The)150 2542 y(Readline)d Fs(SIGWINCH)e +Fs(xterm)p Ft(\).)39 b(The)150 3260 y(Readline)d Fs(SIGWINCH)e Ft(handler)g(up)s(dates)h(Readline's)h(in)m(ternal)h(screen)e(size)i -(information,)g(and)e(then)150 2652 y(calls)g(an)m(y)f +(information,)g(and)e(then)150 3370 y(calls)g(an)m(y)f Fs(SIGWINCH)e Ft(signal)i(handler)f(the)h(calling)h(application)g(has)f -(installed.)51 b(Readline)35 b(calls)g(the)150 2762 y(application's)i +(installed.)51 b(Readline)35 b(calls)g(the)150 3479 y(application's)i Fs(SIGWINCH)c Ft(signal)i(handler)g(without)g(resetting)h(the)g -(terminal)f(to)h(its)g(original)g(state.)150 2871 y(If)31 +(terminal)f(to)h(its)g(original)g(state.)150 3589 y(If)31 b(the)i(application's)g(signal)g(handler)e(do)s(es)g(more)h(than)g(up)s (date)f(its)i(idea)f(of)g(the)g(terminal)h(size)g(and)150 -2981 y(return)28 b(\(for)i(example,)h(a)f Fs(longjmp)d +3699 y(return)28 b(\(for)i(example,)h(a)f Fs(longjmp)d Ft(bac)m(k)k(to)f(a)g(main)g(pro)s(cessing)f(lo)s(op\),)h(it)g -Fk(must)39 b Ft(call)31 b Fs(rl_cleanup_)150 3090 y(after_signal\(\))26 +Fk(must)39 b Ft(call)31 b Fs(rl_cleanup_)150 3808 y(after_signal\(\))26 b Ft(\(describ)s(ed)k(b)s(elo)m(w\),)h(to)g(restore)g(the)g(terminal)g -(state.)275 3256 y(When)38 b(an)h(application)h(is)f(using)g(the)g +(state.)275 3971 y(When)38 b(an)h(application)h(is)f(using)g(the)g (callbac)m(k)i(in)m(terface)f(\(see)g(Section)g(2.4.12)h([Alternate)f -(In-)150 3365 y(terface],)48 b(page)c(42\),)j(Readline)c(installs)h +(In-)150 4081 y(terface],)48 b(page)c(42\),)j(Readline)c(installs)h (signal)g(handlers)e(only)h(for)f(the)h(duration)g(of)g(the)g(call)h -(to)150 3475 y Fs(rl_callback_read_char)p Ft(.)c(Applications)33 +(to)150 4190 y Fs(rl_callback_read_char)p Ft(.)c(Applications)33 b(using)f(the)g(callbac)m(k)j(in)m(terface)e(should)f(b)s(e)f(prepared) -g(to)150 3585 y(clean)d(up)d(Readline's)j(state)g(if)e(they)h(wish)f +g(to)150 4300 y(clean)d(up)d(Readline's)j(state)g(if)e(they)h(wish)f (to)h(handle)f(the)h(signal)h(b)s(efore)e(the)h(line)g(handler)f -(completes)150 3694 y(and)k(restores)h(the)f(terminal)h(state.)275 -3860 y(If)k(an)g(application)i(using)f(the)g(callbac)m(k)h(in)m +(completes)150 4410 y(and)k(restores)h(the)f(terminal)h(state.)275 +4573 y(If)k(an)g(application)i(using)f(the)g(callbac)m(k)h(in)m (terface)h(wishes)d(to)h(ha)m(v)m(e)h(Readline)g(install)f(its)g -(signal)150 3969 y(handlers)22 b(at)h(the)g(time)h(the)e(application)j +(signal)150 4682 y(handlers)22 b(at)h(the)g(time)h(the)e(application)j (calls)e Fs(rl_callback_handler_instal)o(l)17 b Ft(and)22 -b(remo)m(v)m(e)i(them)150 4079 y(only)f(when)g(a)g(complete)i(line)f +b(remo)m(v)m(e)i(them)150 4792 y(only)f(when)g(a)g(complete)i(line)f (of)f(input)f(has)h(b)s(een)g(read,)i(it)e(should)g(set)g(the)h -Fs(rl_persistent_signal_)150 4188 y(handlers)c Ft(v)-5 +Fs(rl_persistent_signal_)150 4902 y(handlers)c Ft(v)-5 b(ariable)23 b(to)f(a)h(non-zero)f(v)-5 b(alue.)39 b(This)21 b(allo)m(ws)i(an)f(application)i(to)f(defer)e(all)i(of)f(the)h -(handling)150 4298 y(of)j(the)h(signals)f(Readline)h(catc)m(hes)h(to)f +(handling)150 5011 y(of)j(the)h(signals)f(Readline)h(catc)m(hes)h(to)f (Readline.)39 b(Applications)27 b(should)f(use)f(this)h(v)-5 -b(ariable)27 b(with)f(care;)150 4407 y(it)d(can)g(result)g(in)f +b(ariable)27 b(with)f(care;)150 5121 y(it)d(can)g(result)g(in)f (Readline)h(catc)m(hing)i(signals)e(and)f(not)h(acting)h(on)f(them)f -(\(or)h(allo)m(wing)i(the)e(application)150 4517 y(to)36 +(\(or)h(allo)m(wing)i(the)e(application)150 5230 y(to)36 b(react)g(to)g(them\))g(un)m(til)f(the)h(application)g(calls)h Fs(rl_callback_read_char)p Ft(.)49 b(This)35 b(can)g(result)g(in)150 -4627 y(an)30 b(application)h(b)s(ecoming)f(less)g(resp)s(onsiv)m(e)f +5340 y(an)30 b(application)h(b)s(ecoming)f(less)g(resp)s(onsiv)m(e)f (to)i(k)m(eyb)s(oard)e(signals)h(lik)m(e)h(SIGINT.)f(If)f(an)h -(application)150 4736 y(do)s(es)24 b(not)g(w)m(an)m(t)h(or)g(need)f(to) -h(p)s(erform)d(an)m(y)j(signal)g(handling,)g(or)f(do)s(es)g(not)h(need) -f(to)g(do)h(an)m(y)f(pro)s(cessing)150 4846 y(b)s(et)m(w)m(een)31 -b(calls)h(to)f Fs(rl_callback_read_char)p Ft(,)24 b(setting)32 -b(this)e(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(desirable.)275 -5011 y(Readline)f(pro)m(vides)f(t)m(w)m(o)i(v)-5 b(ariables)29 -b(that)h(allo)m(w)g(application)g(writers)e(to)h(con)m(trol)h(whether)e -(or)h(not)150 5121 y(it)34 b(will)f(catc)m(h)i(certain)f(signals)f(and) -g(act)h(on)f(them)g(when)f(they)i(are)f(receiv)m(ed.)51 -b(It)33 b(is)g(imp)s(ortan)m(t)g(that)150 5230 y(applications)38 -b(c)m(hange)g(the)e(v)-5 b(alues)37 b(of)g(these)g(v)-5 -b(ariables)37 b(only)g(when)f(calling)i Fs(readline\(\))p -Ft(,)d(not)i(in)g(a)150 5340 y(signal)31 b(handler,)f(so)g(Readline's)i -(in)m(ternal)f(signal)g(state)h(is)e(not)h(corrupted.)p -eop end +(application)p eop end %%Page: 48 52 TeXDict begin 48 51 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)3371 -299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_signals)390 -408 y Ft(If)28 b(this)h(v)-5 b(ariable)30 b(is)f(non-zero,)h(Readline)f -(will)g(install)h(signal)f(handlers)f(for)h Fs(SIGINT)p -Ft(,)f Fs(SIGQUIT)p Ft(,)390 518 y Fs(SIGTERM)p Ft(,)h -Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)f Fs(SIGTSTP)p Ft(,)h -Fs(SIGTTIN)p Ft(,)f(and)i Fs(SIGTTOU)p Ft(.)390 645 y(The)g(default)g -(v)-5 b(alue)31 b(of)g Fs(rl_catch_signals)26 b Ft(is)k(1.)3371 -808 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_sigwinch)390 -918 y Ft(If)37 b(this)h(v)-5 b(ariable)38 b(is)g(set)g(to)g(a)g +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)150 +299 y(do)s(es)24 b(not)g(w)m(an)m(t)h(or)g(need)f(to)h(p)s(erform)d(an) +m(y)j(signal)g(handling,)g(or)f(do)s(es)g(not)h(need)f(to)g(do)h(an)m +(y)f(pro)s(cessing)150 408 y(b)s(et)m(w)m(een)31 b(calls)h(to)f +Fs(rl_callback_read_char)p Ft(,)24 b(setting)32 b(this)e(v)-5 +b(ariable)31 b(ma)m(y)g(b)s(e)f(desirable.)275 545 y(Readline)f(pro)m +(vides)f(t)m(w)m(o)i(v)-5 b(ariables)29 b(that)h(allo)m(w)g +(application)g(writers)e(to)h(con)m(trol)h(whether)e(or)h(not)150 +655 y(it)34 b(will)f(catc)m(h)i(certain)f(signals)f(and)g(act)h(on)f +(them)g(when)f(they)i(are)f(receiv)m(ed.)51 b(It)33 b(is)g(imp)s(ortan) +m(t)g(that)150 764 y(applications)38 b(c)m(hange)g(the)e(v)-5 +b(alues)37 b(of)g(these)g(v)-5 b(ariables)37 b(only)g(when)f(calling)i +Fs(readline\(\))p Ft(,)d(not)i(in)g(a)150 874 y(signal)31 +b(handler,)f(so)g(Readline's)i(in)m(ternal)f(signal)g(state)h(is)e(not) +h(corrupted.)3371 1062 y([V)-8 b(ariable])-3598 b Fh(int)53 +b(rl_catch_signals)390 1172 y Ft(If)28 b(this)h(v)-5 +b(ariable)30 b(is)f(non-zero,)h(Readline)f(will)g(install)h(signal)f +(handlers)f(for)h Fs(SIGINT)p Ft(,)f Fs(SIGQUIT)p Ft(,)390 +1282 y Fs(SIGTERM)p Ft(,)h Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p +Ft(,)f Fs(SIGTSTP)p Ft(,)h Fs(SIGTTIN)p Ft(,)f(and)i +Fs(SIGTTOU)p Ft(.)390 1418 y(The)g(default)g(v)-5 b(alue)31 +b(of)g Fs(rl_catch_signals)26 b Ft(is)k(1.)3371 1607 +y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_sigwinch)390 +1716 y Ft(If)37 b(this)h(v)-5 b(ariable)38 b(is)g(set)g(to)g(a)g (non-zero)g(v)-5 b(alue,)40 b(Readline)f(will)f(install)g(a)g(signal)g -(handler)f(for)390 1027 y Fs(SIGWINCH)p Ft(.)390 1154 +(handler)f(for)390 1826 y Fs(SIGWINCH)p Ft(.)390 1963 y(The)30 b(default)g(v)-5 b(alue)31 b(of)g Fs(rl_catch_sigwinch)25 -b Ft(is)31 b(1.)3371 1317 y([V)-8 b(ariable])-3598 b +b Ft(is)31 b(1.)3371 2151 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_persistent_signal_)q(hand)q(ler)q(s)390 -1427 y Ft(If)31 b(an)h(application)g(using)g(the)f(callbac)m(k)j(in)m +2261 y Ft(If)31 b(an)h(application)g(using)g(the)f(callbac)m(k)j(in)m (terface)f(wishes)e(Readline's)h(signal)h(handlers)d(to)j(b)s(e)390 -1536 y(installed)21 b(and)f(activ)m(e)j(during)d(the)h(set)g(of)f +2370 y(installed)21 b(and)f(activ)m(e)j(during)d(the)h(set)g(of)f (calls)i(to)g Fs(rl_callback_read_char)14 b Ft(that)22 -b(constitutes)390 1646 y(an)30 b(en)m(tire)i(single)f(line,)g(it)f +b(constitutes)390 2480 y(an)30 b(en)m(tire)i(single)f(line,)g(it)f (should)g(set)h(this)f(v)-5 b(ariable)31 b(to)g(a)g(non-zero)g(v)-5 -b(alue.)390 1773 y(The)30 b(default)g(v)-5 b(alue)31 +b(alue.)390 2617 y(The)30 b(default)g(v)-5 b(alue)31 b(of)g Fs(rl_persistent_signal_han)o(dle)o(rs)24 b Ft(is)31 -b(0.)3371 1936 y([V)-8 b(ariable])-3598 b Fh(int)53 b -(rl_change_environment)390 2045 y Ft(If)31 b(this)g(v)-5 +b(0.)3371 2805 y([V)-8 b(ariable])-3598 b Fh(int)53 b +(rl_change_environment)390 2915 y Ft(If)31 b(this)g(v)-5 b(ariable)32 b(is)f(set)h(to)g(a)g(non-zero)g(v)-5 b(alue,)32 b(and)f(Readline)h(is)f(handling)g Fs(SIGWINCH)p Ft(,)e(Read-)390 -2155 y(line)h(will)h(mo)s(dify)e(the)h Fj(LINES)35 b +3024 y(line)h(will)h(mo)s(dify)e(the)h Fj(LINES)35 b Ft(and)29 b Fj(COLUMNS)35 b Ft(en)m(vironmen)m(t)30 b(v)-5 -b(ariables)31 b(up)s(on)d(receipt)j(of)g(a)390 2264 y -Fs(SIGWINCH)390 2392 y Ft(The)f(default)g(v)-5 b(alue)31 +b(ariables)31 b(up)s(on)d(receipt)j(of)g(a)390 3134 y +Fs(SIGWINCH)390 3271 y Ft(The)f(default)g(v)-5 b(alue)31 b(of)g Fs(rl_change_environment)24 b Ft(is)31 b(1.)275 -2554 y(If)f(an)h(application)h(do)s(es)f(not)g(wish)f(to)i(ha)m(v)m(e)g +3459 y(If)f(an)h(application)h(do)s(es)f(not)g(wish)f(to)i(ha)m(v)m(e)g (Readline)g(catc)m(h)g(an)m(y)f(signals,)h(or)f(to)h(handle)e(signals) -150 2664 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g(\()p +150 3569 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g(\()p Fs(SIGHUP)p Ft(,)g(for)e(example\),)k(Readline)d(pro)m(vides)g(con)m(v) -m(enience)150 2773 y(functions)30 b(to)h(do)f(the)h(necessary)g +m(enience)150 3678 y(functions)30 b(to)h(do)f(the)h(necessary)g (terminal)g(and)e(in)m(ternal)i(state)h(clean)m(up)f(up)s(on)e(receipt) -i(of)g(a)f(signal.)3350 2936 y([F)-8 b(unction])-3599 +i(of)g(a)f(signal.)3350 3867 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_pending_signal)e Fg(\()p Ff(v)m(oid)p -Fg(\))390 3046 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i +Fg(\))390 3977 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i (the)f(most)h(recen)m(t)h(signal)f(Readline)g(receiv)m(ed)g(but)f(has)g -(not)h(y)m(et)390 3155 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s -(ending)f(signal.)3350 3318 y([F)-8 b(unction])-3599 +(not)h(y)m(et)390 4086 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s +(ending)f(signal.)3350 4275 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_cleanup_after_signal)e Fg(\()p Ff(v)m(oid)p -Fg(\))390 3427 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i +Fg(\))390 4384 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i (of)e(the)g(terminal)g(to)h(what)f(it)g(w)m(as)g(b)s(efore)g -Fs(readline\(\))390 3537 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j +Fs(readline\(\))390 4494 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j (the)f(Readline)g(signal)g(handlers)e(for)h(all)h(signals,)h(dep)s -(ending)d(on)h(the)390 3647 y(v)-5 b(alues)31 b(of)f +(ending)d(on)h(the)390 4603 y(v)-5 b(alues)31 b(of)f Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p -Ft(.)3350 3809 y([F)-8 b(unction])-3599 b Fh(void)54 +Ft(.)3350 4792 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_free_line_state)c Fg(\()p Ff(v)m(oid)p Fg(\))390 -3919 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s +4902 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s (ciated)h(with)e(the)g(curren)m(t)g(input)f(line)i(\(undo)e(infor-)390 -4028 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8 +5011 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8 b(,)47 b(an)m(y)42 b(partially-en)m(tered)j(k)m(eyb)s(oard)d(macro,)47 -b(and)42 b(an)m(y)390 4138 y(partially-en)m(tered)50 +b(and)42 b(an)m(y)390 5121 y(partially-en)m(tered)50 b(n)m(umeric)d(argumen)m(t\).)94 b(This)47 b(should)g(b)s(e)g(called)i -(b)s(efore)e Fs(rl_cleanup_)390 4248 y(after_signal\(\))p +(b)s(efore)e Fs(rl_cleanup_)390 5230 y(after_signal\(\))p Ft(.)74 b(The)42 b(Readline)h(signal)g(handler)f(for)h Fs(SIGINT)e Ft(calls)i(this)g(to)g(ab)s(ort)g(the)390 -4357 y(curren)m(t)30 b(input)g(line.)3350 4520 y([F)-8 -b(unction])-3599 b Fh(void)54 b(rl_reset_after_signal)d -Fg(\()p Ff(v)m(oid)p Fg(\))390 4629 y Ft(This)28 b(will)g(reinitialize) -j(the)e(terminal)g(and)f(reinstall)h(an)m(y)g(Readline)g(signal)g -(handlers,)f(dep)s(end-)390 4739 y(ing)j(on)f(the)g(v)-5 +5340 y(curren)m(t)30 b(input)g(line.)p eop end +%%Page: 49 53 +TeXDict begin 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41 +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3350 +299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_reset_after_signal)d +Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(This)28 b(will)g(reinitialize)j +(the)e(terminal)g(and)f(reinstall)h(an)m(y)g(Readline)g(signal)g +(handlers,)f(dep)s(end-)390 518 y(ing)j(on)f(the)g(v)-5 b(alues)31 b(of)g Fs(rl_catch_signals)26 b Ft(and)j Fs -(rl_catch_sigwinch)p Ft(.)275 4902 y(If)j(an)g(application)i(w)m(an)m +(rl_catch_sigwinch)p Ft(.)275 699 y(If)j(an)g(application)i(w)m(an)m (ts)g(to)f(force)g(Readline)h(to)f(handle)g(an)m(y)g(signals)g(that)g -(ha)m(v)m(e)h(arriv)m(ed)f(while)150 5011 y(it)j(has)g(b)s(een)f +(ha)m(v)m(e)h(arriv)m(ed)f(while)150 809 y(it)j(has)g(b)s(een)f (executing,)j Fs(rl_check_signals\(\))31 b Ft(will)36 b(call)h(Readline's)g(in)m(ternal)g(signal)f(handler)f(if)150 -5121 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61 +918 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61 b(This)36 b(is)g(primarily)h(in)m(tended)f(for)h(those)g(applications)h -(that)f(use)150 5230 y(a)h(custom)g Fs(rl_getc_function)33 +(that)f(use)150 1028 y(a)h(custom)g Fs(rl_getc_function)33 b Ft(\(see)39 b(Section)g(2.3)g([Readline)f(V)-8 b(ariables],)42 -b(page)c(27\))h(and)e(wish)g(to)150 5340 y(handle)30 -b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)p -eop end -%%Page: 49 53 -TeXDict begin 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3350 -299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c -Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(If)40 b(there)h(are)g(an)m(y)g +b(page)c(27\))h(and)e(wish)g(to)150 1137 y(handle)30 +b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)3350 +1318 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c +Fg(\()p Ff(v)m(oid)p Fg(\))390 1428 y Ft(If)40 b(there)h(are)g(an)m(y)g (p)s(ending)e(signals,)44 b(call)e(Readline's)g(in)m(ternal)f(signal)g -(handling)f(functions)390 518 y(to)j(pro)s(cess)g(them.)77 +(handling)f(functions)390 1538 y(to)j(pro)s(cess)g(them.)77 b Fs(rl_pending_signal\(\))38 b Ft(can)43 b(b)s(e)f(used)g(indep)s -(enden)m(tly)f(to)j(determine)390 628 y(whether)30 b(or)g(not)h(there)f -(are)h(an)m(y)g(p)s(ending)e(signals.)275 838 y(If)38 +(enden)m(tly)f(to)j(determine)390 1647 y(whether)30 b(or)g(not)h(there) +f(are)h(an)m(y)g(p)s(ending)e(signals.)275 1828 y(If)38 b(an)i(application)g(do)s(es)f(not)h(wish)f(Readline)h(to)g(catc)m(h)h Fs(SIGWINCH)p Ft(,)e(it)h(ma)m(y)g(call)h Fs(rl_resize_)150 -947 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22 +1938 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22 b Ft(to)28 b(force)g(Readline)f(to)h(up)s(date)f(its)g(idea)h(of)f(the) -g(terminal)150 1057 y(size)k(when)f(a)g Fs(SIGWINCH)e -Ft(is)j(receiv)m(ed.)3350 1267 y([F)-8 b(unction])-3599 +g(terminal)150 2047 y(size)k(when)f(a)g Fs(SIGWINCH)e +Ft(is)j(receiv)m(ed.)3350 2228 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_echo_signal_char)d Fg(\()p Ff(in)m(t)33 -b(sig)p Fg(\))390 1377 y Ft(If)43 b(an)g(application)i(wishes)e(to)i +b(sig)p Fg(\))390 2338 y Ft(If)43 b(an)g(application)i(wishes)e(to)i (install)f(its)g(o)m(wn)f(signal)i(handlers,)h(but)c(still)j(ha)m(v)m -(e)g(readline)390 1486 y(displa)m(y)31 b(c)m(haracters)h(that)f +(e)g(readline)390 2447 y(displa)m(y)31 b(c)m(haracters)h(that)f (generate)h(signals,)f(calling)h(this)e(function)g(with)g -Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 1596 +Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 2557 y Fs(SIGQUIT)p Ft(,)e(or)h Fs(SIGTSTP)e Ft(will)j(displa)m(y)g(the)f(c) -m(haracter)i(generating)g(that)f(signal.)3350 1806 y([F)-8 +m(haracter)i(generating)g(that)f(signal.)3350 2738 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_resize_terminal)c -Fg(\()p Ff(v)m(oid)p Fg(\))390 1915 y Ft(Up)s(date)30 +Fg(\()p Ff(v)m(oid)p Fg(\))390 2848 y Ft(Up)s(date)30 b(Readline's)h(in)m(ternal)g(screen)g(size)g(b)m(y)f(reading)h(v)-5 -b(alues)31 b(from)f(the)g(k)m(ernel.)3350 2126 y([F)-8 +b(alues)31 b(from)f(the)g(k)m(ernel.)3350 3029 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_set_screen_size)c Fg(\()p Ff(in)m(t)34 b(ro)m(ws,)f(in)m(t)g(cols)p Fg(\))390 -2235 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to) +3138 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to) g Fj(ro)m(ws)i Ft(ro)m(ws)d(and)f Fj(cols)33 b Ft(columns.)40 -b(If)27 b(either)h Fj(ro)m(ws)390 2345 y Ft(or)35 b Fj(columns)k +b(If)27 b(either)h Fj(ro)m(ws)390 3248 y Ft(or)35 b Fj(columns)k Ft(is)c(less)g(than)g(or)g(equal)h(to)g(0,)h(Readline's)f(idea)g(of)f -(that)h(terminal)f(dimension)g(is)390 2454 y(unc)m(hanged.)275 -2664 y(If)d(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g +(that)h(terminal)f(dimension)g(is)390 3357 y(unc)m(hanged.)275 +3538 y(If)d(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g (install)g(a)g Fs(SIGWINCH)d Ft(handler,)j(but)e(is)i(still)g(in)m -(terested)g(in)150 2774 y(the)d(screen)f(dimensions,)g(Readline's)h +(terested)g(in)150 3648 y(the)d(screen)f(dimensions,)g(Readline's)h (idea)g(of)g(the)f(screen)h(size)g(ma)m(y)g(b)s(e)f(queried.)3350 -2984 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c +3829 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c Fg(\()p Ff(in)m(t)34 b(*ro)m(ws,)f(in)m(t)g(*cols)p Fg(\))390 -3094 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g +3938 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g (in)f(the)g(v)-5 b(ariables)31 b(p)s(oin)m(ted)f(to)g(b)m(y)g(the)h -(argu-)390 3203 y(men)m(ts.)3350 3413 y([F)-8 b(unction])-3599 +(argu-)390 4048 y(men)m(ts.)3350 4229 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_reset_screen_size)d Fg(\()p Ff(v)m(oid)p -Fg(\))390 3523 y Ft(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen) -f(size)h(and)f(recalculate)j(its)e(dimensions.)275 3733 +Fg(\))390 4339 y Ft(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen) +f(size)h(and)f(recalculate)j(its)e(dimensions.)275 4519 y(The)e(follo)m(wing)j(functions)e(install)h(and)f(remo)m(v)m(e)i -(Readline's)f(signal)g(handlers.)3350 3943 y([F)-8 b(unction])-3599 +(Readline's)f(signal)g(handlers.)3350 4700 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_set_signals)d Fg(\()p Ff(v)m(oid)p Fg(\))390 -4053 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h +4810 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h Fs(SIGINT)p Ft(,)h Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p Ft(,)h -Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 4162 y Fs(SIGTSTP)p +Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 4920 y Fs(SIGTSTP)p Ft(,)35 b Fs(SIGTTIN)p Ft(,)f Fs(SIGTTOU)p Ft(,)h(and)g Fs(SIGWINCH)p Ft(,)f(dep)s(ending)g(on)h(the)g(v)-5 b(alues)36 -b(of)f Fs(rl_catch_)390 4272 y(signals)28 b Ft(and)i -Fs(rl_catch_sigwinch)p Ft(.)3350 4482 y([F)-8 b(unction])-3599 +b(of)f Fs(rl_catch_)390 5029 y(signals)28 b Ft(and)i +Fs(rl_catch_sigwinch)p Ft(.)3350 5210 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_clear_signals)e Fg(\()p Ff(v)m(oid)p -Fg(\))390 4592 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g +Fg(\))390 5320 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g (signal)g(handlers)e(installed)i(b)m(y)f Fs(rl_set_signals\(\))p -Ft(.)150 4852 y Fr(2.6)68 b(Custom)45 b(Completers)150 -5011 y Ft(T)m(ypically)-8 b(,)47 b(a)c(program)g(that)g(reads)f -(commands)h(from)f(the)g(user)g(has)h(a)g(w)m(a)m(y)g(of)g(disam)m -(biguating)150 5121 y(commands)35 b(and)g(data.)56 b(If)35 -b(y)m(our)h(program)f(is)g(one)h(of)g(these,)h(then)e(it)h(can)g(pro)m -(vide)f(completion)i(for)150 5230 y(commands,)29 b(data,)i(or)e(b)s -(oth.)39 b(The)29 b(follo)m(wing)i(sections)f(describ)s(e)e(ho)m(w)i(y) -m(our)f(program)g(and)f(Readline)150 5340 y(co)s(op)s(erate)j(to)h(pro) -m(vide)e(this)g(service.)p eop end +Ft(.)p eop end %%Page: 50 54 TeXDict begin 50 53 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(50)150 -299 y Fi(2.6.1)63 b(Ho)m(w)40 b(Completing)i(W)-10 b(orks)150 -446 y Ft(In)26 b(order)f(to)i(complete)h(some)f(text,)h(the)f(full)f -(list)h(of)f(p)s(ossible)g(completions)h(m)m(ust)g(b)s(e)e(a)m(v)-5 -b(ailable.)42 b(That)150 555 y(is,)28 b(it)f(is)g(not)g(p)s(ossible)g -(to)g(accurately)i(expand)d(a)h(partial)h(w)m(ord)f(without)f(kno)m -(wing)i(all)f(of)g(the)g(p)s(ossible)150 665 y(w)m(ords)33 +299 y Fr(2.6)68 b(Custom)45 b(Completers)150 458 y Ft(T)m(ypically)-8 +b(,)47 b(a)c(program)g(that)g(reads)f(commands)h(from)f(the)g(user)g +(has)h(a)g(w)m(a)m(y)g(of)g(disam)m(biguating)150 568 +y(commands)35 b(and)g(data.)56 b(If)35 b(y)m(our)h(program)f(is)g(one)h +(of)g(these,)h(then)e(it)h(can)g(pro)m(vide)f(completion)i(for)150 +677 y(commands,)29 b(data,)i(or)e(b)s(oth.)39 b(The)29 +b(follo)m(wing)i(sections)f(describ)s(e)e(ho)m(w)i(y)m(our)f(program)g +(and)f(Readline)150 787 y(co)s(op)s(erate)j(to)h(pro)m(vide)e(this)g +(service.)150 970 y Fi(2.6.1)63 b(Ho)m(w)40 b(Completing)i(W)-10 +b(orks)150 1117 y Ft(In)26 b(order)f(to)i(complete)h(some)f(text,)h +(the)f(full)f(list)h(of)f(p)s(ossible)g(completions)h(m)m(ust)g(b)s(e)e +(a)m(v)-5 b(ailable.)42 b(That)150 1227 y(is,)28 b(it)f(is)g(not)g(p)s +(ossible)g(to)g(accurately)i(expand)d(a)h(partial)h(w)m(ord)f(without)f +(kno)m(wing)i(all)f(of)g(the)g(p)s(ossible)150 1336 y(w)m(ords)33 b(whic)m(h)g(mak)m(e)h(sense)f(in)g(that)g(con)m(text.)51 b(The)33 b(Readline)h(library)e(pro)m(vides)i(the)f(user)f(in)m -(terface)150 775 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h +(terface)150 1446 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h (most)f(common)h(completion)h(functions:)39 b(\014lename)29 -b(and)e(username.)150 884 y(F)-8 b(or)39 b(completing)g(other)f(t)m(yp) -s(es)g(of)h(text,)i(y)m(ou)d(m)m(ust)g(write)g(y)m(our)g(o)m(wn)g -(completion)h(function.)64 b(This)150 994 y(section)32 +b(and)e(username.)150 1555 y(F)-8 b(or)39 b(completing)g(other)f(t)m +(yp)s(es)g(of)h(text,)i(y)m(ou)d(m)m(ust)g(write)g(y)m(our)g(o)m(wn)g +(completion)h(function.)64 b(This)150 1665 y(section)32 b(describ)s(es)d(exactly)j(what)f(suc)m(h)f(functions)g(m)m(ust)g(do,)g -(and)g(pro)m(vides)g(an)h(example.)275 1159 y(There)e(are)i(three)g(ma) +(and)g(pro)m(vides)g(an)h(example.)275 1791 y(There)e(are)i(three)g(ma) 5 b(jor)30 b(functions)g(used)g(to)h(p)s(erform)e(completion:)199 -1324 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f +1918 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f Fs(rl_complete\(\))p Ft(.)76 b(This)43 b(function)g(is)g(called)i(with) -e(the)h(same)330 1433 y(argumen)m(ts)36 b(as)g(other)g(bindable)f +e(the)h(same)330 2027 y(argumen)m(ts)36 b(as)g(other)g(bindable)f (Readline)h(functions:)51 b Fj(coun)m(t)38 b Ft(and)d -Fj(in)m(v)m(oking)p 3107 1433 28 4 v 41 w(k)m(ey)p Ft(.)57 -b(It)36 b(isolates)330 1543 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i +Fj(in)m(v)m(oking)p 3107 2027 28 4 v 41 w(k)m(ey)p Ft(.)57 +b(It)36 b(isolates)330 2137 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i (and)d(calls)j Fs(rl_completion_matches\(\))31 b Ft(to)39 -b(generate)g(a)f(list)g(of)330 1653 y(p)s(ossible)31 +b(generate)g(a)f(list)g(of)330 2247 y(p)s(ossible)31 b(completions.)44 b(It)31 b(then)g(either)g(lists)h(the)f(p)s(ossible)g -(completions,)h(inserts)f(the)g(p)s(ossible)330 1762 +(completions,)h(inserts)f(the)g(p)s(ossible)330 2356 y(completions,)50 b(or)45 b(actually)i(p)s(erforms)d(the)h(completion,) 50 b(dep)s(ending)44 b(on)h(whic)m(h)g(b)s(eha)m(vior)g(is)330 -1872 y(desired.)199 2021 y(2.)61 b(The)33 b(in)m(ternal)h(function)g +2466 y(desired.)199 2592 y(2.)61 b(The)33 b(in)m(ternal)h(function)g Fs(rl_completion_matches\(\))27 b Ft(uses)33 b(an)g -(application-supplied)h Fj(gener-)330 2131 y(ator)44 +(application-supplied)h Fj(gener-)330 2702 y(ator)44 b Ft(function)37 b(to)h(generate)g(the)f(list)h(of)f(p)s(ossible)f (matc)m(hes,)k(and)d(then)f(returns)g(the)h(arra)m(y)h(of)330 -2241 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the) +2811 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the) f(address)f(of)h(its)g(generator)i(function)d(in)h Fs(rl_)330 -2350 y(completion_entry_functio)o(n)p Ft(.)199 2500 y(3.)61 +2921 y(completion_entry_functio)o(n)p Ft(.)199 3047 y(3.)61 b(The)22 b(generator)i(function)f(is)g(called)h(rep)s(eatedly)f(from)g -Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 2610 +Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 3157 y(a)33 b(string)g(eac)m(h)h(time.)48 b(The)32 b(argumen)m(ts)h(to)h (the)f(generator)h(function)e(are)h Fj(text)j Ft(and)c -Fj(state)p Ft(.)49 b Fj(text)330 2719 y Ft(is)32 b(the)g(partial)h(w)m +Fj(state)p Ft(.)49 b Fj(text)330 3267 y Ft(is)32 b(the)g(partial)h(w)m (ord)f(to)h(b)s(e)e(completed.)47 b Fj(state)38 b Ft(is)32 b(zero)h(the)f(\014rst)g(time)g(the)h(function)e(is)h(called,)330 -2829 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h +3376 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h (necessary)g(initialization,)51 b(and)43 b(a)h(p)s(ositiv)m(e)h(non-) -330 2938 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d +330 3486 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d (call.)42 b(The)29 b(generator)h(function)f(returns)f -Fs(\(char)h(*\)NULL)e Ft(to)330 3048 y(inform)37 b Fs +Fs(\(char)h(*\)NULL)e Ft(to)330 3595 y(inform)37 b Fs (rl_completion_matches\(\))32 b Ft(that)39 b(there)f(are)g(no)g(more)g -(p)s(ossibilities)h(left.)65 b(Usually)330 3158 y(the)39 +(p)s(ossibilities)h(left.)65 b(Usually)330 3705 y(the)39 b(generator)h(function)e(computes)h(the)g(list)g(of)g(p)s(ossible)f (completions)i(when)e Fj(state)45 b Ft(is)39 b(zero,)330 -3267 y(and)25 b(returns)f(them)i(one)f(at)i(a)f(time)g(on)f(subsequen)m +3814 y(and)25 b(returns)f(them)i(one)f(at)i(a)f(time)g(on)f(subsequen)m (t)g(calls.)40 b(Eac)m(h)26 b(string)g(the)g(generator)g(function)330 -3377 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m(ust)f(b)s(e)f(allo)s(cated) +3924 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m(ust)f(b)s(e)f(allo)s(cated) j(with)d Fs(malloc\(\))p Ft(;)g(Readline)h(frees)g(the)g(strings)g -(when)330 3486 y(it)i(has)g(\014nished)e(with)i(them.)51 +(when)330 4034 y(it)i(has)g(\014nished)e(with)i(them.)51 b(Suc)m(h)33 b(a)h(generator)h(function)f(is)g(referred)f(to)h(as)h(an) -e Fj(application-)330 3596 y(sp)s(eci\014c)d(completion)i(function)p -Ft(.)3350 3841 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c +e Fj(application-)330 4143 y(sp)s(eci\014c)d(completion)i(function)p +Ft(.)3350 4303 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m(oking)p -2020 3841 30 5 v 43 w(k)m(ey)p Fg(\))390 3951 y Ft(Complete)d(the)g(w)m +2020 4303 30 5 v 43 w(k)m(ey)p Fg(\))390 4413 y Ft(Complete)d(the)g(w)m (ord)g(at)g(or)g(b)s(efore)f(p)s(oin)m(t.)41 b(Y)-8 b(ou)32 b(ha)m(v)m(e)g(supplied)d(the)i(function)f(that)h(do)s(es)g(the)390 -4060 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h +4522 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h (\(see)f Fs(rl_completion_matches\(\))o Ft(\).)67 b(The)390 -4170 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371 -4415 y([V)-8 b(ariable])-3598 b Fh(rl_compentry_func_t)58 -b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 4525 +4632 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371 +4792 y([V)-8 b(ariable])-3598 b Fh(rl_compentry_func_t)58 +b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 4902 y Ft(This)39 b(is)h(a)g(p)s(oin)m(ter)g(to)h(the)f(generator)h (function)f(for)f Fs(rl_completion_matches\(\))p Ft(.)63 -b(If)40 b(the)390 4634 y(v)-5 b(alue)24 b(of)g Fs +b(If)40 b(the)390 5011 y(v)-5 b(alue)24 b(of)g Fs (rl_completion_entry_funct)o(ion)17 b Ft(is)24 b Fs(NULL)f Ft(then)g(the)h(default)g(\014lename)g(generator)390 -4744 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p +5121 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p Ft(,)42 b(is)j(used.)84 b(An)44 b Fj(application-sp)s(eci\014c)390 -4854 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h +5230 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h (address)f(is)h(assigned)h(to)f Fs(rl_completion_entry_)390 -4963 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31 -b(are)g(used)e(to)j(generate)f(p)s(ossible)f(completions.)150 -5193 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150 -5340 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j -(completion)e(functions)f(presen)m(t)h(in)f(Readline.)p +5340 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31 +b(are)g(used)e(to)j(generate)f(p)s(ossible)f(completions.)p eop end %%Page: 51 55 TeXDict begin 51 54 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)3350 -299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete_internal)f -Fg(\()p Ff(in)m(t)33 b(what)p 1861 299 30 5 v 44 w(to)p -1994 299 V 43 w(do)p Fg(\))390 408 y Ft(Complete)k(the)g(w)m(ord)f(at)i -(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fj(what)p 2208 408 -28 4 v 40 w(to)p 2328 408 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e -(with)g(the)h(com-)390 518 y(pletion.)44 b(A)31 b(v)-5 +b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)150 +299 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150 +446 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j +(completion)e(functions)f(presen)m(t)h(in)f(Readline.)3350 +640 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete_internal)f +Fg(\()p Ff(in)m(t)33 b(what)p 1861 640 30 5 v 44 w(to)p +1994 640 V 43 w(do)p Fg(\))390 749 y Ft(Complete)k(the)g(w)m(ord)f(at)i +(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fj(what)p 2208 749 +28 4 v 40 w(to)p 2328 749 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e +(with)g(the)h(com-)390 859 y(pletion.)44 b(A)31 b(v)-5 b(alue)32 b(of)f(`)p Fs(?)p Ft(')g(means)h(list)f(the)h(p)s(ossible)e (completions.)45 b(`)p Fs(TAB)p Ft(')31 b(means)g(do)g(standard)390 -628 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)f +969 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)f (the)g(p)s(ossible)g(completions.)44 b(`)p Fs(!)p Ft(')32 -b(means)f(to)h(displa)m(y)f(all)390 737 y(of)k(the)f(p)s(ossible)g +b(means)f(to)h(displa)m(y)f(all)390 1078 y(of)k(the)f(p)s(ossible)g (completions,)j(if)d(there)h(is)f(more)g(than)h(one,)g(as)g(w)m(ell)g -(as)g(p)s(erforming)e(partial)390 847 y(completion.)41 +(as)g(p)s(erforming)e(partial)390 1188 y(completion.)41 b(`)p Fs(@)p Ft(')27 b(is)h(similar)f(to)h(`)p Fs(!)p Ft(',)h(but)d(p)s(ossible)h(completions)i(are)e(not)h(listed)g(if)f -(the)g(p)s(ossible)390 956 y(completions)32 b(share)e(a)g(common)h -(pre\014x.)3350 1203 y([F)-8 b(unction])-3599 b Fh(int)53 +(the)g(p)s(ossible)390 1297 y(completions)32 b(share)e(a)g(common)h +(pre\014x.)3350 1491 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m -(oking)p 2020 1203 30 5 v 43 w(k)m(ey)p Fg(\))390 1312 +(oking)p 2020 1491 30 5 v 43 w(k)m(ey)p Fg(\))390 1601 y Ft(Complete)42 b(the)f(w)m(ord)g(at)h(or)f(b)s(efore)g(p)s(oin)m(t.) 73 b(Y)-8 b(ou)41 b(ha)m(v)m(e)i(supplied)c(the)j(function)f(that)g(do) -s(es)390 1422 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h +s(es)390 1710 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h (algorithm)f(\(see)g Fs(rl_completion_matches\(\))27 -b Ft(and)390 1532 y Fs(rl_completion_entry_func)o(tion)o +b Ft(and)390 1820 y Fs(rl_completion_entry_func)o(tion)o Ft(\).)52 b(The)35 b(default)h(is)g(to)h(do)e(\014lename)h(completion.) -59 b(This)390 1641 y(calls)32 b Fs(rl_complete_internal\(\))24 +59 b(This)390 1930 y(calls)32 b Fs(rl_complete_internal\(\))24 b Ft(with)30 b(an)g(argumen)m(t)h(dep)s(ending)e(on)h -Fj(in)m(v)m(oking)p 3314 1641 28 4 v 41 w(k)m(ey)p Ft(.)3350 -1888 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns) +Fj(in)m(v)m(oking)p 3314 1930 28 4 v 41 w(k)m(ey)p Ft(.)3350 +2124 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns) f Fg(\()p Ff(in)m(t)33 b(coun)m(t,)h(in)m(t)f(in)m(v)m(oking)p -2622 1888 30 5 v 43 w(k)m(ey)p Fg(\))390 1997 y Ft(List)41 +2622 2124 30 5 v 43 w(k)m(ey)p Fg(\))390 2233 y Ft(List)41 b(the)f(p)s(ossible)g(completions.)73 b(See)40 b(description)h(of)g Fs(rl_complete)27 b(\(\))p Ft(.)70 b(This)40 b(calls)i -Fs(rl_)390 2107 y(complete_internal\(\))25 b Ft(with)30 -b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 2353 +Fs(rl_)390 2343 y(complete_internal\(\))25 b Ft(with)30 +b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 2537 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_insert_completions)f Fg(\()p Ff(in)m(t)34 b(coun)m(t,)f(in)m(t)g(in)m(v)m(oking)p -2517 2353 V 44 w(k)m(ey)p Fg(\))390 2463 y Ft(Insert)g(the)h(list)g(of) +2517 2537 V 44 w(k)m(ey)p Fg(\))390 2646 y Ft(Insert)g(the)h(list)g(of) g(p)s(ossible)f(completions)i(in)m(to)f(the)g(line,)h(deleting)g(the)f -(partially-completed)390 2572 y(w)m(ord.)44 b(See)32 +(partially-completed)390 2756 y(w)m(ord.)44 b(See)32 b(description)g(of)g Fs(rl_complete\(\))p Ft(.)41 b(This)31 b(calls)i Fs(rl_complete_internal\(\))25 b Ft(with)390 -2682 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350 -2928 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e -Fg(\()p Ff(rl)p 1455 2928 V 44 w(command)p 1919 2928 -V 44 w(func)p 2147 2928 V 46 w(t)33 b(*cfunc)p Fg(\))390 -3038 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41 +2865 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350 +3059 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e +Fg(\()p Ff(rl)p 1455 3059 V 44 w(command)p 1919 3059 +V 44 w(func)p 2147 3059 V 46 w(t)33 b(*cfunc)p Fg(\))390 +3169 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41 b(to)i(pass)e(to)h Fs(rl_complete_internal\(\))35 b Ft(dep)s(ending)40 -b(on)390 3147 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41 +b(on)390 3279 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41 b(called)h(t)m(wice)g(in)f(succession)g(and)f(the)h(v)-5 -b(alues)41 b(of)g(the)g Fs(show-all-if-)390 3257 y(ambiguous)25 +b(alues)41 b(of)g(the)g Fs(show-all-if-)390 3388 y(ambiguous)25 b Ft(and)i Fs(show-all-if-unmodified)21 b Ft(v)-5 b(ariables.)41 -b(Application-sp)s(eci\014c)29 b(completion)390 3367 +b(Application-sp)s(eci\014c)29 b(completion)390 3498 y(functions)h(ma)m(y)h(use)f(this)g(function)g(to)h(presen)m(t)g(the)f (same)h(in)m(terface)h(as)f Fs(rl_complete\(\))p Ft(.)3350 -3613 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e +3692 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e (rl_completion_matches)g Fg(\()p Ff(const)34 b(c)m(har)g(*text,)565 -3723 y(rl)p 639 3723 V 44 w(comp)s(en)m(try)p 1145 3723 -V 44 w(func)p 1373 3723 V 45 w(t)f(*en)m(try)p 1767 3723 -V 44 w(func)p Fg(\))390 3832 y Ft(Returns)k(an)h(arra)m(y)g(of)g +3801 y(rl)p 639 3801 V 44 w(comp)s(en)m(try)p 1145 3801 +V 44 w(func)p 1373 3801 V 45 w(t)f(*en)m(try)p 1767 3801 +V 44 w(func)p Fg(\))390 3911 y Ft(Returns)k(an)h(arra)m(y)g(of)g (strings)g(whic)m(h)f(is)h(a)g(list)h(of)f(completions)h(for)e -Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 3942 +Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 4020 y(completions,)f(returns)c Fs(NULL)p Ft(.)52 b(The)34 b(\014rst)f(en)m(try)i(in)f(the)h(returned)e(arra)m(y)i(is)g(the)f -(substitution)390 4051 y(for)26 b Fj(text)p Ft(.)40 b(The)26 +(substitution)390 4130 y(for)26 b Fj(text)p Ft(.)40 b(The)26 b(remaining)h(en)m(tries)g(are)g(the)f(p)s(ossible)g(completions.)40 -b(The)26 b(arra)m(y)h(is)f(terminated)390 4161 y(with)k(a)h -Fs(NULL)e Ft(p)s(oin)m(ter.)390 4326 y Fj(en)m(try)p -603 4326 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g +b(The)26 b(arra)m(y)h(is)f(terminated)390 4240 y(with)k(a)h +Fs(NULL)e Ft(p)s(oin)m(ter.)390 4379 y Fj(en)m(try)p +603 4379 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g (args,)j(and)38 b(returns)h(a)g Fs(char)30 b(*)p Ft(.)67 -b(The)39 b(\014rst)g(argumen)m(t)h(is)390 4436 y Fj(text)p +b(The)39 b(\014rst)g(argumen)m(t)h(is)390 4489 y Fj(text)p Ft(.)66 b(The)39 b(second)f(is)h(a)g(state)h(argumen)m(t;)j(it)c(is)g (zero)g(on)g(the)g(\014rst)f(call,)k(and)c(non-zero)h(on)390 -4546 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320 -4546 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f Ft(p)s(oin)m(ter)g -(to)i(the)f(caller)h(when)e(there)h(are)g(no)390 4655 +4598 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320 +4598 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f Ft(p)s(oin)m(ter)g +(to)i(the)f(caller)h(when)e(there)h(are)g(no)390 4708 y(more)d(matc)m(hes.)3350 4902 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_filename_completion)q(_fu)q(nct)q(ion)g Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565 5011 @@ -10725,7 +10730,7 @@ b(rl_completion_type)390 3337 y Ft(Set)35 b(to)h(a)f(c)m(haracter)i (describing)e(the)g(t)m(yp)s(e)g(of)g(completion)i(Readline)e(is)g (curren)m(tly)h(attempt-)390 3447 y(ing;)f(see)f(the)g(description)f (of)g Fs(rl_complete_internal\(\))28 b Ft(\(see)34 b(Section)g(2.6.2)h -([Completion)390 3557 y(F)-8 b(unctions],)39 b(page)f(50\))f(for)g(the) +([Completion)390 3557 y(F)-8 b(unctions],)39 b(page)f(51\))f(for)g(the) g(list)g(of)g(c)m(haracters.)61 b(This)36 b(is)g(set)i(to)f(the)g (appropriate)f(v)-5 b(alue)390 3666 y(b)s(efore)31 b(an)m(y)h (application-sp)s(eci\014c)h(completion)g(function)f(is)f(called,)j @@ -11668,7 +11673,7 @@ eop end TeXDict begin 73 76 bop 150 -116 a Ft(Concept)31 b(Index)2927 b(73)150 100 y Fp(Concept)52 b(Index)146 434 y Fr(A)150 550 y Fb(application-sp)r(eci\014c)27 b(completion)f(functions)e -Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(49)146 796 y +Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(50)146 796 y Fr(C)150 913 y Fb(command)26 b(editing)6 b Fa(:)14 b(:)f(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(1)146 1159 @@ -11979,7 +11984,7 @@ g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(36)2025 1197 y Fe(rl_alphabetic)g Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)37 b Fb(40)2025 1284 y Fe(rl_begin_undo_group)7 +(:)g(:)g(:)37 b Fb(41)2025 1284 y Fe(rl_begin_undo_group)7 b Fa(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(36)2025 1371 y Fe(rl_bind_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) @@ -12049,10 +12054,10 @@ h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b Fb(38)2025 3730 y Fe(rl_deprep_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 -b Fb(39)2025 3818 y Fe(rl_ding)e Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g +b Fb(40)2025 3818 y Fe(rl_ding)e Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 -b Fb(40)2025 3905 y Fe(rl_discard_keymap)12 b Fa(:)17 +b Fb(41)2025 3905 y Fe(rl_discard_keymap)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(33)2025 3992 y Fe(rl_display_match_list)d Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h @@ -12089,7 +12094,7 @@ Fe(rl_free_line_state)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(48)2025 5128 y Fe(rl_free_undo_list)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(36)p eop +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(37)p eop end %%Page: 76 80 TeXDict begin 76 79 bop 150 -116 a Ft(F)-8 b(unction)31 @@ -12098,225 +12103,227 @@ Fe(rl_function_dumper)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(36)150 347 y Fe(rl_function_of_keyseq)g Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)33 b Fb(35)150 434 y Fe(rl_funmap_names)17 +(:)g(:)g(:)h(:)f(:)33 b Fb(35)150 434 y Fe(rl_function_of_keyseq_len)9 +b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)23 b Fb(35)150 521 y Fe(rl_funmap_names)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 -b Fb(36)150 522 y Fe(rl_generic_bind)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:) +b Fb(36)150 609 y Fe(rl_generic_bind)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(35)150 609 y Fe(rl_get_keymap)25 +(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(35)150 696 y Fe(rl_get_keymap)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 -b Fb(33)150 696 y Fe(rl_get_keymap_by_name)24 b Fa(:)13 +b Fb(33)150 783 y Fe(rl_get_keymap_by_name)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 783 y Fe(rl_get_keymap_name)10 +(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 870 y Fe(rl_get_keymap_name)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(33)150 -871 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f +957 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)24 b Fb(49)150 958 y Fe(rl_get_termcap)f Fa(:)13 +g(:)24 b Fb(49)150 1045 y Fe(rl_get_termcap)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 -b Fb(42)150 1045 y Fe(rl_getc)22 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:) +b Fb(42)150 1132 y Fe(rl_getc)22 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 -b Fb(39)150 1132 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g +b Fb(39)150 1219 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 1220 y +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 1306 y Fe(rl_insert_completions)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 -b Fb(51)150 1307 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f +b Fb(51)150 1393 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(38)150 1394 y Fe +g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(38)150 1481 y Fe (rl_invoking_keyseqs)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 -b Fb(35)150 1481 y Fe(rl_invoking_keyseqs_in_map)7 b +b Fb(35)150 1568 y Fe(rl_invoking_keyseqs_in_map)7 b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)21 b Fb(35)150 1568 y Fe(rl_kill_text)8 b Fa(:)16 +g(:)g(:)21 b Fb(36)150 1655 y Fe(rl_kill_text)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 -b Fb(38)150 1656 y Fe(rl_list_funmap_names)k Fa(:)13 +b Fb(39)150 1742 y Fe(rl_list_funmap_names)k Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1743 y Fe(rl_macro_bind)25 +(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1829 y Fe(rl_macro_bind)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 -b Fb(41)150 1830 y Fe(rl_macro_dumper)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g +b Fb(41)150 1917 y Fe(rl_macro_dumper)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(41)150 1917 y Fe(rl_make_bare_keymap)7 +g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(41)150 2004 y Fe(rl_make_bare_keymap)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(33)150 -2005 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +2091 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)34 b Fb(33)150 2092 y Fe(rl_message)13 +(:)f(:)g(:)g(:)34 b Fb(33)150 2178 y Fe(rl_message)13 b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)27 b Fb(37)150 2179 y Fe(rl_modifying)8 b Fa(:)16 +(:)g(:)27 b Fb(38)150 2265 y Fe(rl_modifying)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 -b Fb(37)150 2266 y Fe(rl_named_function)12 b Fa(:)17 +b Fb(37)150 2353 y Fe(rl_named_function)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150 -2354 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +2440 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)34 b Fb(37)150 2441 y Fe(rl_on_new_line_with_prompt)7 +(:)f(:)g(:)g(:)34 b Fb(37)150 2527 y Fe(rl_on_new_line_with_prompt)7 b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)21 b Fb(37)150 2528 y Fe(rl_parse_and_bind)12 +(:)g(:)g(:)21 b Fb(37)150 2614 y Fe(rl_parse_and_bind)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150 -2615 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g +2701 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)26 b Fb(48)150 2703 y Fe(rl_possible_completions)14 +g(:)h(:)26 b Fb(48)150 2789 y Fe(rl_possible_completions)14 b Fa(:)k(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2790 y Fe(rl_prep_terminal)15 +(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2876 y Fe(rl_prep_terminal)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b -Fb(39)150 2877 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g +Fb(39)150 2963 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)21 b Fb(39)150 2964 y Fe(rl_read_init_file)12 +g(:)h(:)f(:)21 b Fb(39)150 3050 y Fe(rl_read_init_file)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150 -3052 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +3137 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3139 y +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3225 y Fe(rl_redisplay)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3226 y Fe(rl_replace_line)17 +g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3312 y Fe(rl_replace_line)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 -b Fb(40)150 3313 y Fe(rl_reset_after_signal)24 b Fa(:)13 +b Fb(40)150 3399 y Fe(rl_reset_after_signal)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)33 b Fb(48)150 3401 y Fe(rl_reset_line_state)7 +(:)g(:)g(:)h(:)f(:)33 b Fb(49)150 3486 y Fe(rl_reset_line_state)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(37)150 -3488 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g +3573 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 -b Fb(49)150 3575 y Fe(rl_reset_terminal)12 b Fa(:)17 +b Fb(49)150 3661 y Fe(rl_reset_terminal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(40)150 -3662 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f +3748 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)24 b Fb(49)150 3749 y Fe(rl_restore_prompt)12 b Fa(:)17 +g(:)24 b Fb(49)150 3835 y Fe(rl_restore_prompt)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(38)150 -3837 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h +3922 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)29 b Fb(40)150 3924 y Fe(rl_save_prompt)23 b +g(:)g(:)29 b Fb(40)150 4009 y Fe(rl_save_prompt)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 -b Fb(38)150 4011 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g +b Fb(38)150 4097 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 4098 y +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 4184 y Fe(rl_set_key)13 b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(35)150 4186 y Fe +g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(35)150 4271 y Fe (rl_set_keyboard_input_timeout)17 b Fa(:)h(:)c(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(39)150 4273 y Fe(rl_set_keymap)25 +(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(39)150 4358 y Fe(rl_set_keymap)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 -b Fb(33)150 4360 y Fe(rl_set_paren_blink_timeout)7 b +b Fb(33)150 4445 y Fe(rl_set_paren_blink_timeout)7 b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)21 b Fb(42)150 4447 y Fe(rl_set_prompt)k Fa(:)13 +g(:)g(:)21 b Fb(42)150 4533 y Fe(rl_set_prompt)k Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 -b Fb(38)150 4535 y Fe(rl_set_screen_size)10 b Fa(:)17 +b Fb(38)150 4620 y Fe(rl_set_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(49)150 4622 +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(49)150 4707 y Fe(rl_set_signals)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)34 b Fb(49)150 4709 y Fe(rl_show_char)8 b Fa(:)16 +g(:)g(:)34 b Fb(49)150 4794 y Fe(rl_show_char)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 -b Fb(37)150 4796 y Fe(rl_stuff_char)j Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g +b Fb(37)150 4881 y Fe(rl_stuff_char)j Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(39)2025 260 y Fe (rl_tty_set_default_bindings)27 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(39)2025 347 y +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(40)2025 348 y Fe(rl_tty_set_echoing)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 -b Fb(40)2025 435 y Fe(rl_tty_unset_default_bindings)16 +b Fb(40)2025 436 y Fe(rl_tty_unset_default_bindings)16 b Fa(:)j(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)30 -b Fb(40)2025 523 y Fe(rl_unbind_command_in_map)11 b Fa(:)19 +b Fb(40)2025 524 y Fe(rl_unbind_command_in_map)11 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)26 b Fb(34)2025 610 y Fe(rl_unbind_function_in_map)9 +g(:)g(:)26 b Fb(34)2025 613 y Fe(rl_unbind_function_in_map)9 b Fa(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)g(:)h(:)23 b Fb(34)2025 698 y Fe(rl_unbind_key)i Fa(:)13 +(:)g(:)h(:)23 b Fb(34)2025 701 y Fe(rl_unbind_key)i Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 -b Fb(34)2025 786 y Fe(rl_unbind_key_in_map)26 b Fa(:)13 +b Fb(34)2025 789 y Fe(rl_unbind_key_in_map)26 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(34)2025 873 y Fe +(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(34)2025 877 y Fe (rl_username_completion_functio)q(n)11 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(52)2025 -961 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g +965 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -h(:)f(:)29 b Fb(41)2025 1048 y Fe(rl_variable_dumper)10 +h(:)f(:)29 b Fb(42)2025 1054 y Fe(rl_variable_dumper)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(42)2025 -1136 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g +1141 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)27 b Fb(42)2021 1380 y Fr(S)2025 1497 y Fe(self-insert)h(\(a,)e +g(:)g(:)27 b Fb(42)2021 1397 y Fr(S)2025 1516 y Fe(self-insert)h(\(a,)e (b,)g(A,)g(1,)g(!,)g(...)q(\))15 b Fa(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1585 y Fe(set-mark)e(\(C-@\))10 +(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1605 y Fe(set-mark)e(\(C-@\))10 b Fa(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)24 -b Fb(22)2025 1672 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13 +b Fb(22)2025 1693 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1760 +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1781 y(sho)n(w-all-if-unmo)r(di\014ed)11 b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)27 b Fb(9)2025 1848 y(sho)n(w-mo)r(de-in-prompt)15 +(:)g(:)27 b Fb(9)2025 1869 y(sho)n(w-mo)r(de-in-prompt)15 b Fa(:)d(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fb(9)2025 -1935 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g +1957 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)32 b Fb(9)2025 2023 y Fe(skip-csi-sequence)d(\(\))11 +g(:)g(:)g(:)32 b Fb(9)2025 2046 y Fe(skip-csi-sequence)d(\(\))11 b Fa(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2110 +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2133 y Fe(start-kbd-macro)j(\(C-x)d(\(\))10 b Fa(:)k(:)f(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 -b Fb(21)2021 2353 y Fr(T)2025 2470 y Fe(tab-insert)j(\(M-TAB\))16 +b Fb(21)2021 2388 y Fr(T)2025 2507 y Fe(tab-insert)j(\(M-TAB\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)31 b Fb(19)2025 -2558 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:) +2596 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)31 b Fb(22)2025 2646 y Fe(transpose-chars)e(\(C-t\))9 +(:)g(:)31 b Fb(22)2025 2684 y Fe(transpose-chars)e(\(C-t\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 2733 y +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 2771 y Fe(transpose-words)29 b(\(M-t\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 -b Fb(19)2021 2986 y Fr(U)2025 3104 y Fe(undo)j(\(C-_)h(or)f(C-x)g +b Fb(19)2021 3037 y Fr(U)2025 3156 y Fe(undo)j(\(C-_)h(or)f(C-x)g (C-u\))12 b Fa(:)i(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(22)2025 -3191 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g +3244 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -23 b Fb(21)2025 3279 y Fe(unix-filename-rubout)30 b(\(\))21 +23 b Fb(21)2025 3332 y Fe(unix-filename-rubout)30 b(\(\))21 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3367 y Fe(unix-line-discard)29 +(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3421 y Fe(unix-line-discard)29 b(\(C-u\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3454 +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3509 y Fe(unix-word-rubout)29 b(\(C-w\))6 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 -b Fb(20)2025 3541 y Fe(upcase-word)28 b(\(M-u\))20 b +b Fb(20)2025 3596 y Fe(upcase-word)28 b(\(M-u\))20 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(19)2021 -3795 y Fr(V)2025 3912 y Fb(vi-cmd-mo)r(de-string)18 b +3862 y Fr(V)2025 3981 y Fb(vi-cmd-mo)r(de-string)18 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(10)2025 -4000 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:) +4069 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 -b Fb(23)2025 4087 y(vi-ins-mo)r(de-string)8 b Fa(:)13 +b Fb(23)2025 4157 y(vi-ins-mo)r(de-string)8 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(10)2025 -4175 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +4244 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(10)2021 4417 y -Fr(Y)2025 4534 y Fe(yank)g(\(C-y\))21 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(10)2021 4499 y +Fr(Y)2025 4618 y Fe(yank)g(\(C-y\))21 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b -Fb(20)2025 4622 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10 +Fb(20)2025 4706 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10 b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)24 b Fb(18)2025 4709 y Fe(yank-nth-arg)k(\(M-C-y\))11 +f(:)g(:)24 b Fb(18)2025 4794 y Fe(yank-nth-arg)k(\(M-C-y\))11 b Fa(:)k(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 4796 +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 4881 y Fe(yank-pop)h(\(M-y\))10 b Fa(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)24 b Fb(20)p eop end diff --git a/doc/readline_3.ps b/doc/readline_3.ps index 6d9aad4..c7b925e 100644 --- a/doc/readline_3.ps +++ b/doc/readline_3.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.3 -%%CreationDate: Tue Jan 2 10:56:04 2018 +%%CreationDate: Mon May 21 10:32:52 2018 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic @@ -518,13 +518,13 @@ F0 .062(The string that is inserted in)144 480 R F1(vi)2.562 E F0 .062 (command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562 E(mand is bound to)144 492 Q F1(M\255#)2.5 E F0(in emacs mode and to)2.5 E F1(#)2.5 E F0(in vi command mode.)2.5 E F1 -(completion\255display\255width \(-1\))108 504 Q F0 1.453(The number of\ - screen columns used to display possible matches when performing comple\ -tion.)144 516 R .194(The v)144 528 R .193(alue is ignored if it is less\ - than 0 or greater than the terminal screen width.)-.25 F 2.693(Av)5.193 -G .193(alue of 0 will)-2.943 F +(completion\255display\255width \(\2551\))108 504 Q F0 1.453(The number\ + of screen columns used to display possible matches when performing com\ +pletion.)144 516 R .194(The v)144 528 R .193(alue is ignored if it is l\ +ess than 0 or greater than the terminal screen width.)-.25 F 2.693(Av) +5.193 G .193(alue of 0 will)-2.943 F (cause matches to be displayed one per line.)144 540 Q(The def)5 E -(ault v)-.1 E(alue is -1.)-.25 E F1(completion\255ignor)108 552 Q +(ault v)-.1 E(alue is \2551.)-.25 E F1(completion\255ignor)108 552 Q (e\255case \(Off\))-.18 E F0(If set to)144 564 Q F1(On)2.5 E F0 2.5(,r)C (eadline performs \214lename matching and completion in a case\255insen\ siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1 @@ -1364,20 +1364,19 @@ F1 -.25(Ke)87 525.6 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr) (call\255last\255kbd\255macr)108 585.6 Q 2.5(o\()-.18 G(C\255x e\))-2.5 E F0(Re-e)144 597.6 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1 G .999(board macro de\214ned, by making the characters in the macro app\ -ear as if).15 F .662(typed at the k)144 609.6 R -.15(ey)-.1 G(board.).15 -E F1(print\255last\255kbd\255macr)5.663 E 3.163(o\()-.18 G(\))-3.163 E -F0 .663(Print the last k)3.163 F -.15(ey)-.1 G .663 -(board macro de\214ned in a for).15 F(-)-.2 E(mat suitable for the)144 -621.6 Q F4(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87 -638.4 Q -.18(re)108 650.4 S.18 E -(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777 -(Read in the contents of the)144 662.4 R F4(inputr)4.277 E(c)-.37 E F0 -1.776(\214le, and incorporate an)4.276 F 4.276(yb)-.15 G 1.776 -(indings or v)-4.276 F 1.776(ariable assignments)-.25 F(found there.)144 -674.4 Q F1(abort \(C\255g\))108 686.4 Q F0 3.248 -(Abort the current editing command and ring the terminal')144 698.4 R -5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1 -(bell\255style)144 710.4 Q F0(\).)A(GNU Readline 7.0)72 768 Q +ear as if).15 F(typed at the k)144 609.6 Q -.15(ey)-.1 G(board.).15 E F1 +(print\255last\255kbd\255macr)108 621.6 Q 2.5(o\()-.18 G(\))-2.5 E F0 +(Print the last k)144 633.6 Q -.15(ey)-.1 G +(board macro de\214ned in a format suitable for the).15 E F4(inputr)2.5 +E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87 650.4 Q -.18(re)108 +662.4 S.18 E(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 +1.776(Read in the contents of the)144 674.4 R F4(inputr)4.276 E(c)-.37 E +F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)-.15 G 1.777 +(indings or v)-4.277 F 1.777(ariable assignments)-.25 F(found there.)144 +686.4 Q F1(abort \(C\255g\))108 698.4 Q F0 3.249 +(Abort the current editing command and ring the terminal')144 710.4 R +5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1 +(bell\255style)144 722.4 Q F0(\).)A(GNU Readline 7.0)72 768 Q (2017 December 28)121.245 E(11)185.955 E 0 Cg EP %%Page: 12 12 %%BeginPageSetup @@ -1387,9 +1386,9 @@ BP (Functions Manual)2.5 E(READLINE\(3\))119.855 E/F1 10/Times-Bold@0 SF (do\255lo)108 84 Q(wer)-.1 E(case\255v)-.18 E (ersion \(M\255A, M\255B, M\255)-.1 E/F2 10/Times-Italic@0 SF(x)A F1 2.5 -(,.)C(..\))-2.5 E F0 1.739(If the meta\214ed character)144 96 R F2(x) -4.239 E F0 1.739 -(is uppercase, run the command that is bound to the corresponding)4.239 +(,.)C(..\))-2.5 E F0 1.738(If the meta\214ed character)144 96 R F2(x) +4.238 E F0 1.739 +(is uppercase, run the command that is bound to the corresponding)4.238 F(meta\214ed lo)144 108 Q(wercase character)-.25 E 5(.T)-.55 G(he beha) -5 E(vior is unde\214ned if)-.2 E F2(x)2.5 E F0(is already lo)2.5 E (wercase.)-.25 E F1(pr)108 120 Q(e\214x\255meta \(ESC\))-.18 E F0 @@ -1408,56 +1407,57 @@ F0 1.095(command enough times to)3.595 F (Set the mark to the point.)144 240 Q(If a numeric ar)5 E (gument is supplied, the mark is set to that position.)-.18 E F1 (exchange\255point\255and\255mark \(C\255x C\255x\))108 252 Q F0(Sw)144 -264 Q .283(ap the point with the mark.)-.1 F .283 +264 Q .282(ap the point with the mark.)-.1 F .283 (The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G -2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa) +2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa) 144 276 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1 -(character\255sear)108 288 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 300 S -.535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G 3.035(dt) +(character\255sear)108 288 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 300 S +.536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt) .15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535 -(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05 -(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre) +(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05 +(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre) 144 312 Q(vious occurrences.)-.25 E F1(character\255sear)108 324 Q -(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 336 S 1.044 -(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G +(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 336 S 1.043 +(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G 3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044 -(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E +(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G (count searches for subsequent occurrences.)144 348 Q F1 -(skip\255csi\255sequence)108 360 Q F0 1.826 +(skip\255csi\255sequence)108 360 Q F0 1.827 (Read enough characters to consume a multi-k)144 372 R 2.126 -.15(ey s) --.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey)-.1 G -4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 384 R .791 -(Such sequences be)5.791 F .791 +-.1 H 1.826(equence such as those de\214ned for k).15 F -.15(ey)-.1 G +4.326(sl).15 G(ik)-4.326 E(e)-.1 E .79(Home and End.)144 384 R .791 +(Such sequences be)5.79 F .791 (gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F -.331(If this sequence is bound to "\\[", k)144 396 R -.15(ey)-.1 G 2.831 -(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15(ve n) --.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F(xplic-) +.332(If this sequence is bound to "\\[", k)144 396 R -.15(ey)-.1 G 2.831 +(sp).15 G .331(roducing such sequences will ha)-2.831 F .631 -.15(ve n) +-.2 H 2.831(oe).15 G -.25(ff)-2.831 G .331(ect unless e).25 F(xplic-) -.15 E .026(itly bound to a readline command, instead of inserting stra\ y characters into the editing b)144 408 R(uf)-.2 E(fer)-.25 E 5.026(.T) -.55 G(his)-5.026 E(is unbound by def)144 420 Q(ault, b)-.1 E (ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108 -432 Q F0 -.4(Wi)144 444 S .48(thout a numeric ar).4 F .48(gument, the v) --.18 F .481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 --.25(va)2.981 G .481(riable is inserted at the).25 F(be)144 456 Q .245 -(ginning of the current line.)-.15 F .245(If a numeric ar)5.245 F .244 -(gument is supplied, this command acts as a toggle: if)-.18 F .321 +432 Q F0 -.4(Wi)144 444 S .481(thout a numeric ar).4 F .481 +(gument, the v)-.18 F .481(alue of the readline)-.25 F F1 +(comment\255begin)2.981 E F0 -.25(va)2.981 G .48 +(riable is inserted at the).25 F(be)144 456 Q .244 +(ginning of the current line.)-.15 F .245(If a numeric ar)5.244 F .245 +(gument is supplied, this command acts as a toggle: if)-.18 F .322 (the characters at the be)144 468 R .321 (ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1 -(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is) --.25 F 1.014(inserted, otherwise the characters in)144 480 R F1 -(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.013 -(ginning of the line.)-.15 F 1.468 +(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is) +-.25 F 1.013(inserted, otherwise the characters in)144 480 R F1 +(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.014 +(ginning of the line.)-.15 F 1.469 (In either case, the line is accepted as if a ne)144 492 R 1.468 -(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F -1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 504 Q F0(mak) -2.983 E .483(es the current line a shell comment.)-.1 F .483 -(If a numeric ar)5.483 F .482(gument causes the comment)-.18 F +(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F +1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 504 Q F0(mak) +2.982 E .483(es the current line a shell comment.)-.1 F .483 +(If a numeric ar)5.483 F .483(gument causes the comment)-.18 F (character to be remo)144 516 Q -.15(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G(cuted by the shell.).15 E F1(dump\255functions)108 528 -Q F0 .626(Print all of the functions and their k)144 540 R .926 -.15 -(ey b)-.1 H .627(indings to the readline output stream.).15 F .627 -(If a numeric ar)5.627 F(gu-)-.18 E +Q F0 .627(Print all of the functions and their k)144 540 R .927 -.15 +(ey b)-.1 H .626(indings to the readline output stream.).15 F .626 +(If a numeric ar)5.626 F(gu-)-.18 E (ment is supplied, the output is formatted in such a w)144 552 Q (ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0 (\214le.)2.5 E F1(dump\255v)108 564 Q(ariables)-.1 E F0 .283 @@ -1466,22 +1466,22 @@ Q F0 .626(Print all of the functions and their k)144 540 R .926 -.15 5.283 F(gu-)-.18 E (ment is supplied, the output is formatted in such a w)144 588 Q (ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0 -(\214le.)2.5 E F1(dump\255macr)108 600 Q(os)-.18 E F0 .592 -(Print all of the readline k)144 612 R .892 -.15(ey s)-.1 H .592 -(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G -3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 624 Q +(\214le.)2.5 E F1(dump\255macr)108 600 Q(os)-.18 E F0 .593 +(Print all of the readline k)144 612 R .893 -.15(ey s)-.1 H .592 +(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G +3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 624 Q .528(gument is supplied, the output is formatted in such a w)-.18 F .528 -(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0 +(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0 (\214le.)144 636 Q F1(emacs\255editing\255mode \(C\255e\))108 648 Q F0 (When in)144 660 Q F1(vi)2.5 E F0(command mode, this causes a switch to) 2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1 (vi\255editing\255mode \(M\255C\255j\))108 672 Q F0(When in)144 684 Q F1 (emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E F0(editing mode.)2.5 E/F4 10.95/Times-Bold@0 SF(DEF)72 700.8 Q -.548(AU) --.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .064(The follo) -108 712.8 R .064(wing is a list of the def)-.25 F .064 -(ault emacs and vi bindings.)-.1 F .065 -(Characters with the eighth bit set are written as)5.065 F .527 +-.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo) +108 712.8 R .065(wing is a list of the def)-.25 F .065 +(ault emacs and vi bindings.)-.1 F .064 +(Characters with the eighth bit set are written as)5.064 F .527 (M\255, and are referred to as)108 724.8 R F2(meta\214ed) 3.407 E F0 3.027(characters. The)3.797 F .527 (printable ASCII characters not mentioned)3.027 F(GNU Readline 7.0)72 @@ -1491,21 +1491,21 @@ F0(editing mode.)2.5 E/F4 10.95/Times-Bold@0 SF(DEF)72 700.8 Q -.548(AU) BP %%EndPageSetup /F0 10/Times-Roman@0 SF 117.355(READLINE\(3\) Library)72 48 R -(Functions Manual)2.5 E(READLINE\(3\))119.855 E 1.115 +(Functions Manual)2.5 E(READLINE\(3\))119.855 E 1.116 (in the list of emacs standard bindings are bound to the)108 84 R/F1 10 -/Times-Bold@0 SF(self\255insert)3.615 E F0 1.116 +/Times-Bold@0 SF(self\255insert)3.615 E F0 1.115 (function, which just inserts the gi)3.615 F -.15(ve)-.25 G(n).15 E .945 (character into the input line.)108 96 R .945(In vi insertion mode, all\ characters not speci\214cally mentioned are bound to)5.945 F F1 -(self\255insert)108 108 Q F0 5.358(.C)C .358 -(haracters assigned to signal generation by)-5.358 F/F2 10 +(self\255insert)108 108 Q F0 5.359(.C)C .359 +(haracters assigned to signal generation by)-5.359 F/F2 10 /Times-Italic@0 SF(stty)2.859 E F0 .359(\(1\) or the terminal dri).32 F --.15(ve)-.25 G 1.159 -.4(r, s).15 H .359(uch as C-Z or C-C,).4 F .188 -(retain that function.)108 120 R .188(Upper and lo)5.188 F .188(wer cas\ +-.15(ve)-.25 G 1.159 -.4(r, s).15 H .358(uch as C-Z or C-C,).4 F .187 +(retain that function.)108 120 R .187(Upper and lo)5.187 F .188(wer cas\ e meta\214ed characters are bound to the same function in the emacs)-.25 -F .304(mode meta k)108 132 R -.15(ey)-.1 G 2.804(map. The).15 F .305(re\ +F .305(mode meta k)108 132 R -.15(ey)-.1 G 2.805(map. The).15 F .305(re\ maining characters are unbound, which causes readline to ring the bell \ -\(subject)2.804 F(to the setting of the)108 144 Q F1(bell\255style)2.5 E +\(subject)2.805 F(to the setting of the)108 144 Q F1(bell\255style)2.5 E F0 -.25(va)2.5 G(riable\).).25 E F1(Emacs Mode)87 160.8 Q F0 (Emacs Standard bindings)151.2 172.8 Q 2.5("C-@" set-mark)151.2 196.8 R 2.5("C-A" be)151.2 208.8 R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 @@ -1653,19 +1653,19 @@ F0(initialization \214le)2.5 E F1 -.548(AU)72 578.4 S(THORS).548 E F0 (bfox@gnu.or)108 602.4 Q(g)-.18 E(Chet Rame)108 619.2 Q 1.3 -.65(y, C) -.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve) -.25 G(rsity).15 E(chet.rame)108 631.2 Q(y@case.edu)-.15 E F1 -.11(BU)72 -648 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .691(If you \214nd a b) -108 660 R .691(ug in)-.2 F F3 -.18(re)3.191 G(adline,).18 E F0 .691 -(you should report it.)3.191 F .69(But \214rst, you should mak)5.69 F -3.19(es)-.1 G .69(ure that it really is a b)-3.19 F(ug,)-.2 E +648 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .69(If you \214nd a b) +108 660 R .69(ug in)-.2 F F3 -.18(re)3.19 G(adline,).18 E F0 .69 +(you should report it.)3.19 F .691(But \214rst, you should mak)5.69 F +3.191(es)-.1 G .691(ure that it really is a b)-3.191 F(ug,)-.2 E (and that it appears in the latest v)108 672 Q(ersion of the)-.15 E F3 -.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.) -.15 E .704(Once you ha)108 688.8 R 1.004 -.15(ve d)-.2 H .704 +.15 E .705(Once you ha)108 688.8 R 1.005 -.15(ve d)-.2 H .705 (etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b) --.15 F .705(ug report to)-.2 F F2 -.2(bu)3.205 G(g\255r).2 E(eadline) --.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou) --3.205 E(ha)108 700.8 Q 1.81 -.15(ve a \214)-.2 H 1.51 -(x, you are welcome to mail that as well!).15 F 1.509 -(Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F +-.15 F .704(ug report to)-.2 F F2 -.2(bu)3.204 G(g\255r).2 E(eadline) +-.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.704(.I)C 3.204(fy)-5.704 G(ou) +-3.204 E(ha)108 700.8 Q 1.809 -.15(ve a \214)-.2 H 1.509 +(x, you are welcome to mail that as well!).15 F 1.51 +(Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F (mailed to)108 712.8 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2 (gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3 (gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 729.6 Q diff --git a/doc/rltech.texi b/doc/rltech.texi index 7d22b2c..baf036d 100644 --- a/doc/rltech.texi +++ b/doc/rltech.texi @@ -846,12 +846,16 @@ Return the function invoked by @var{keyseq} in keymap @var{map}. If @var{map} is @code{NULL}, the current keymap is used. If @var{type} is not @code{NULL}, the type of the object is returned in the @code{int} variable it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}). +It takes a "translated" key sequence and should not be used if the key sequence +can include NUL. @end deftypefun -@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len Keymap map, int *type) +@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len, Keymap map, int *type) Return the function invoked by @var{keyseq} of length @var{len} in keymap @var{map}. Equivalent to @code{rl_function_of_keyseq} with the addition of the @var{len} parameter. +It takes a "translated" key sequence and should be used if the key sequence +can include NUL. @end deftypefun @deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function) diff --git a/doc/rluser.texi b/doc/rluser.texi index 1c9acdc..1acc8cd 100644 --- a/doc/rluser.texi +++ b/doc/rluser.texi @@ -475,6 +475,7 @@ The default value is @samp{off}. If set to @samp{on}, and @var{completion-ignore-case} is enabled, Readline treats hyphens (@samp{-}) and underscores (@samp{_}) as equivalent when performing case-insensitive filename matching and completion. +The default value is @samp{off}. @item completion-prefix-display-length @vindex completion-prefix-display-length @@ -802,7 +803,7 @@ Meta-Rubout: backward-kill-word Control-o: "> output" @end example -In the above example, @kbd{C-u} is bound to the function +In the example above, @kbd{C-u} is bound to the function @code{universal-argument}, @kbd{M-DEL} is bound to the function @code{backward-kill-word}, and @kbd{C-o} is bound to run the macro @@ -1352,7 +1353,7 @@ This function is intended to be bound to the "bracketed paste" escape sequence sent by some terminals, and such a binding is assigned by default. It allows Readline to insert the pasted text as a single unit without treating each character as if it had been read from the keyboard. The characters -are inserted as if each one was bound to @code{self-insert}) instead of +are inserted as if each one was bound to @code{self-insert} instead of executing any editing commands. @item transpose-chars (C-t) @@ -2019,10 +2020,10 @@ matches were generated. @item complete @btindex complete @example -@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DE] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] -[-F @var{function}] [-C @var{command}] [-X @var{filterpat}] +@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DEI] [-A @var{action}] [-G @var{globpat}] +[-W @var{wordlist}] [-F @var{function}] [-C @var{command}] [-X @var{filterpat}] [-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]} -@code{complete -pr [-DE] [@var{name} @dots{}]} +@code{complete -pr [-DEI] [@var{name} @dots{}]} @end example Specify how arguments to each @var{name} should be completed. @@ -2032,16 +2033,24 @@ reused as input. The @option{-r} option removes a completion specification for each @var{name}, or, if no @var{name}s are supplied, all completion specifications. -The @option{-D} option indicates that the remaining options and actions should +The @option{-D} option indicates that other supplied options and actions should apply to the ``default'' command completion; that is, completion attempted on a command for which no completion has previously been defined. -The @option{-E} option indicates that the remaining options and actions should +The @option{-E} option indicates that other supplied options and actions should apply to ``empty'' command completion; that is, completion attempted on a blank line. +The @option{-I} option indicates that other supplied options and actions should +apply to completion on the inital non-assignment word on the line, or after a +command delimiter such as @samp{;} or @samp{|}, which is usually command +name completion. +If multiple options are supplied, the @option{-D} option takes precedence +over @option{-E}, and both take precedence over @option{-I}. +If any of @option{-D}, @option{-E}, or @option{-I} are supplied, any other +@var{name} arguments are ignored; these completions only apply to the case +specified by the option. The process of applying these completion specifications when word completion -is attempted is described above (@pxref{Programmable Completion}). The -@option{-D} option takes precedence over @option{-E}. +is attempted is described above (@pxref{Programmable Completion}). Other options, if specified, have the following meanings. The arguments to the @option{-G}, @option{-W}, and @option{-X} options @@ -2071,7 +2080,7 @@ Perform directory name completion if the compspec generates no matches. @item filenames Tell Readline that the compspec generates filenames, so it can perform any -filename-specific processing (like adding a slash to directory names +filename-specific processing (like adding a slash to directory names, quoting special characters, or suppressing trailing spaces). This option is intended to be used with shell functions specified with @option{-F}. @@ -2226,7 +2235,7 @@ an error occurs adding a completion specification. @item compopt @btindex compopt @example -@code{compopt} [-o @var{option}] [-DE] [+o @var{option}] [@var{name}] +@code{compopt} [-o @var{option}] [-DEI] [+o @var{option}] [@var{name}] @end example Modify completion options for each @var{name} according to the @var{option}s, or for the currently-executing completion if no @var{name}s @@ -2235,14 +2244,19 @@ If no @var{option}s are given, display the completion options for each @var{name} or the current completion. The possible values of @var{option} are those valid for the @code{complete} builtin described above. -The @option{-D} option indicates that the remaining options should +The @option{-D} option indicates that other supplied options should apply to the ``default'' command completion; that is, completion attempted on a command for which no completion has previously been defined. -The @option{-E} option indicates that the remaining options should +The @option{-E} option indicates that other supplied options should apply to ``empty'' command completion; that is, completion attempted on a blank line. +The @option{-I} option indicates that other supplied options should +apply to completion on the inital non-assignment word on the line, or after a +command delimiter such as @samp{;} or @samp{|}, which is usually command +name completion. -The @option{-D} option takes precedence over @option{-E}. +If multiple options are supplied, the @option{-D} option takes precedence +over @option{-E}, and both take precedence over @option{-I} The return value is true unless an invalid option is supplied, an attempt is made to modify the options for a @var{name} for which no completion @@ -2289,7 +2303,7 @@ _comp_cd() local cur _skipdot _cdpath local i j k - # Tilde expansion, with side effect of expanding tilde to full pathname + # Tilde expansion, which also expands tilde to full pathname case "$2" in \~*) eval cur="$2" ;; *) cur=$2 ;; diff --git a/doc/rluserman.dvi b/doc/rluserman.dvi index 09e7fc6..dbd7f7e 100644 Binary files a/doc/rluserman.dvi and b/doc/rluserman.dvi differ diff --git a/doc/rluserman.html b/doc/rluserman.html index 730f0d5..e8cfe97 100644 --- a/doc/rluserman.html +++ b/doc/rluserman.html @@ -1,6 +1,6 @@ - +