mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-04 10:50:50 +02:00
commit bash-20051123 snapshot
This commit is contained in:
@@ -1,3 +1,39 @@
|
||||
This document details the changes between this version, bash-3.1-rc2,
|
||||
and the previous version, bash-3.1-rc1.
|
||||
|
||||
1. Changes to Bash
|
||||
|
||||
a. Fixed a bug that caused a DEBUG trap to overwrite a command string that's
|
||||
eventually attached to a background job.
|
||||
|
||||
b. Changed some code so that filenames with leading tildes with spaces in the
|
||||
name aren't tilde-expanded by the bash completion code.
|
||||
|
||||
c. Fixed a bug that caused the pushd builtin to fail to change to
|
||||
directories with leading `-'.
|
||||
|
||||
d. Fixed a small memory leak in the programmable completion code.
|
||||
|
||||
2. Changes to Readline
|
||||
|
||||
a. Fixed a redisplay bug caused by moving the cursor vertically to a line
|
||||
with invisible characters in the prompt in a multibyte locale.
|
||||
|
||||
b. Fixed a bug that could cause the terminal special chars to be bound in the
|
||||
wrong keymap in vi mode.
|
||||
|
||||
3. New Features in Bash
|
||||
|
||||
a. If compiled for strict POSIX conformance, LINES and COLUMNS may now
|
||||
override the true terminal size.
|
||||
|
||||
4. New Features in Readline
|
||||
|
||||
a. A new external application-controllable variable that allows the LINES
|
||||
and COLUMNS environment variables to set the window size regardless of
|
||||
what the kernel returns.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
This document details the changes between this version, bash-3.1-rc1,
|
||||
and the previous version, bash-3.1-beta1.
|
||||
|
||||
|
||||
@@ -12430,3 +12430,27 @@ lib/readline/rltty.c
|
||||
special characters in the vi insertion keymap if in vi mode. This
|
||||
matters if we get accept-line for the previous line while in vi
|
||||
command mode
|
||||
|
||||
11/14
|
||||
-----
|
||||
builtins/pushd.def
|
||||
- make sure any call to cd_builtin includes a leading `--' from the
|
||||
argument list (or constructs one)
|
||||
|
||||
11/16
|
||||
-----
|
||||
pcomplete.c
|
||||
- fix small memory leak in gen_wordlist_matches
|
||||
|
||||
[bash-3.1-rc2 frozen]
|
||||
|
||||
11/23
|
||||
-----
|
||||
lib/readline/display.c
|
||||
- changes to rl_redisplay to compensate for update_line updating
|
||||
_rl_last_c_pos without taking invisible characters in the line into
|
||||
account. Important in multibyte locales where _rl_last_c_pos is an
|
||||
absolute cursor position
|
||||
- changes to _rl_move_cursor_relative to account for _rl_last_c_pos
|
||||
being an absolute cursor position in a multibyte character locale
|
||||
- rewrote _rl_move_cursor_relative to make it a little simpler
|
||||
|
||||
@@ -12422,3 +12422,24 @@ lib/readline/readline.h
|
||||
|
||||
lib/readline/doc/rltech.texi
|
||||
- document rl_prefer_env_winsize
|
||||
|
||||
11/13
|
||||
-----
|
||||
lib/readline/rltty.c
|
||||
- change rl_prep_terminal to make sure we set and reset the tty
|
||||
special characters in the vi insertion keymap if in vi mode. This
|
||||
matters if we get accept-line for the previous line while in vi
|
||||
command mode
|
||||
|
||||
11/14
|
||||
-----
|
||||
builtins/pushd.def
|
||||
- make sure any call to cd_builtin includes a leading `--' from the
|
||||
argument list (or constructs one)
|
||||
|
||||
11/16
|
||||
-----
|
||||
pcomplete.c
|
||||
- fix small memory leak in gen_wordlist_matches
|
||||
|
||||
[bash-3.1-rc2 frozen]
|
||||
|
||||
@@ -62,6 +62,9 @@ s. Bash now sets the extern variable `environ' to the export environment it
|
||||
t. A new configuration option, `--enable-strict-posix-default', which will
|
||||
build bash to be POSIX conforming by default.
|
||||
|
||||
u. If compiled for strict POSIX conformance, LINES and COLUMNS may now
|
||||
override the true terminal size.
|
||||
|
||||
2. New Features in Readline
|
||||
|
||||
a. The key sequence sent by the keypad `delete' key is now automatically
|
||||
@@ -78,6 +81,10 @@ d. New bindable command: vi-rubout. Saves deleted text for possible
|
||||
reinsertion, as with any vi-mode `text modification' command; `X' is bound
|
||||
to this in vi command mode.
|
||||
|
||||
e. A new external application-controllable variable that allows the LINES
|
||||
and COLUMNS environment variables to set the window size regardless of
|
||||
what the kernel returns: rl_prefer_env_winsize
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
This is a terse description of the new features added to bash-3.0 since
|
||||
the release of bash-2.05b. As always, the manual page (doc/bash.1) is
|
||||
|
||||
+11
-11
@@ -1,7 +1,7 @@
|
||||
@%:@! /bin/sh
|
||||
@%:@ From configure.in for Bash 3.1, version 3.180.
|
||||
@%:@ From configure.in for Bash 3.1, version 3.182.
|
||||
@%:@ Guess values for system-dependent variables and create Makefiles.
|
||||
@%:@ Generated by GNU Autoconf 2.59 for bash 3.1-rc1.
|
||||
@%:@ Generated by GNU Autoconf 2.59 for bash 3.1-rc2.
|
||||
@%:@
|
||||
@%:@ Report bugs to <bug-bash@gnu.org>.
|
||||
@%:@
|
||||
@@ -270,8 +270,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='bash'
|
||||
PACKAGE_TARNAME='bash'
|
||||
PACKAGE_VERSION='3.1-rc1'
|
||||
PACKAGE_STRING='bash 3.1-rc1'
|
||||
PACKAGE_VERSION='3.1-rc2'
|
||||
PACKAGE_STRING='bash 3.1-rc2'
|
||||
PACKAGE_BUGREPORT='bug-bash@gnu.org'
|
||||
|
||||
ac_unique_file="shell.h"
|
||||
@@ -785,7 +785,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 bash 3.1-rc1 to adapt to many kinds of systems.
|
||||
\`configure' configures bash 3.1-rc2 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -846,7 +846,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of bash 3.1-rc1:";;
|
||||
short | recursive ) echo "Configuration of bash 3.1-rc2:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1039,7 +1039,7 @@ fi
|
||||
test -n "$ac_init_help" && exit 0
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
bash configure 3.1-rc1
|
||||
bash configure 3.1-rc2
|
||||
generated by GNU Autoconf 2.59
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
@@ -1053,7 +1053,7 @@ cat >&5 <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by bash $as_me 3.1-rc1, which was
|
||||
It was created by bash $as_me 3.1-rc2, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -1422,7 +1422,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
|
||||
|
||||
|
||||
BASHVERS=3.1
|
||||
RELSTATUS=rc1
|
||||
RELSTATUS=rc2
|
||||
|
||||
case "$RELSTATUS" in
|
||||
alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
|
||||
@@ -27212,7 +27212,7 @@ _ASBOX
|
||||
} >&5
|
||||
cat >&5 <<_CSEOF
|
||||
|
||||
This file was extended by bash $as_me 3.1-rc1, which was
|
||||
This file was extended by bash $as_me 3.1-rc2, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -27275,7 +27275,7 @@ _ACEOF
|
||||
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
ac_cs_version="\\
|
||||
bash config.status 3.1-rc1
|
||||
bash config.status 3.1-rc2
|
||||
configured by $0, generated by GNU Autoconf 2.59,
|
||||
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
|
||||
+17
-17
@@ -17,19 +17,19 @@
|
||||
{
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_TYPE_OFF_T' => 1,
|
||||
'AC_C_VOLATILE' => 1,
|
||||
'AC_TYPE_OFF_T' => 1,
|
||||
'AC_FUNC_CLOSEDIR_VOID' => 1,
|
||||
'AC_REPLACE_FNMATCH' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_FUNC_STAT' => 1,
|
||||
'AC_FUNC_WAIT3' => 1,
|
||||
'AC_HEADER_TIME' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_STRUCT_TM' => 1,
|
||||
'AC_FUNC_WAIT3' => 1,
|
||||
'AC_FUNC_LSTAT' => 1,
|
||||
'AC_FUNC_GETMNTENT' => 1,
|
||||
'AC_STRUCT_TM' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_TYPE_MODE_T' => 1,
|
||||
'AC_FUNC_GETMNTENT' => 1,
|
||||
'AC_FUNC_STRTOD' => 1,
|
||||
'AC_CHECK_HEADERS' => 1,
|
||||
'AC_FUNC_STRNLEN' => 1,
|
||||
@@ -48,17 +48,17 @@
|
||||
'AC_STRUCT_ST_BLOCKS' => 1,
|
||||
'AC_TYPE_SIGNAL' => 1,
|
||||
'AC_TYPE_UID_T' => 1,
|
||||
'AC_PROG_MAKE_SET' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AC_PROG_MAKE_SET' => 1,
|
||||
'sinclude' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AC_FUNC_STRERROR_R' => 1,
|
||||
'AC_PROG_CC' => 1,
|
||||
'AC_DECL_SYS_SIGLIST' => 1,
|
||||
'AC_FUNC_FORK' => 1,
|
||||
'AC_FUNC_STRCOLL' => 1,
|
||||
'AC_DECL_SYS_SIGLIST' => 1,
|
||||
'AC_FUNC_VPRINTF' => 1,
|
||||
'AC_FUNC_STRCOLL' => 1,
|
||||
'AC_PROG_YACC' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_STRUCT_TIMEZONE' => 1,
|
||||
@@ -80,33 +80,33 @@
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_FUNC_UTIME_NULL' => 1,
|
||||
'AC_FUNC_SELECT_ARGTYPES' => 1,
|
||||
'AC_HEADER_STAT' => 1,
|
||||
'AC_FUNC_STRFTIME' => 1,
|
||||
'AC_C_INLINE' => 1,
|
||||
'AC_HEADER_STAT' => 1,
|
||||
'AC_PROG_CPP' => 1,
|
||||
'AC_C_CONST' => 1,
|
||||
'AC_PROG_LEX' => 1,
|
||||
'AC_C_INLINE' => 1,
|
||||
'AC_TYPE_PID_T' => 1,
|
||||
'AC_PROG_LEX' => 1,
|
||||
'AC_C_CONST' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'include' => 1,
|
||||
'AC_FUNC_SETVBUF_REVERSED' => 1,
|
||||
'AC_PROG_INSTALL' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_FUNC_OBSTACK' => 1,
|
||||
'AC_CHECK_LIB' => 1,
|
||||
'AC_FUNC_OBSTACK' => 1,
|
||||
'AC_FUNC_MALLOC' => 1,
|
||||
'AC_FUNC_GETGROUPS' => 1,
|
||||
'AC_FUNC_GETLOADAVG' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_FUNC_FSEEKO' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_FUNC_MKTIME' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_HEADER_SYS_WAIT' => 1,
|
||||
'AC_PROG_LN_S' => 1,
|
||||
'AC_FUNC_MEMCMP' => 1,
|
||||
'AC_PROG_LN_S' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_HEADER_DIRENT' => 1,
|
||||
'AC_CHECK_FUNCS' => 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
m4trace:configure.in:30: -1- AC_INIT([bash], [3.1-rc1], [bug-bash@gnu.org])
|
||||
m4trace:configure.in:30: -1- AC_INIT([bash], [3.1-rc2], [bug-bash@gnu.org])
|
||||
m4trace:configure.in:30: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.in:30: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.in:30: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
|
||||
+6
-2
@@ -151,11 +151,13 @@ int
|
||||
pushd_builtin (list)
|
||||
WORD_LIST *list;
|
||||
{
|
||||
WORD_LIST *orig_list;
|
||||
char *temp, *current_directory, *top;
|
||||
int j, flags, skipopt;
|
||||
intmax_t num;
|
||||
char direction;
|
||||
|
||||
orig_list = list;
|
||||
if (list && list->word && ISOPTION (list->word->word, '-'))
|
||||
{
|
||||
list = list->next;
|
||||
@@ -270,7 +272,7 @@ pushd_builtin (list)
|
||||
if (current_directory == 0)
|
||||
return (EXECUTION_FAILURE);
|
||||
|
||||
j = ((flags & NOCD) == 0) ? cd_builtin (list) : EXECUTION_SUCCESS;
|
||||
j = ((flags & NOCD) == 0) ? cd_builtin (skipopt ? orig_list : list) : EXECUTION_SUCCESS;
|
||||
if (j == EXECUTION_SUCCESS)
|
||||
{
|
||||
add_dirstack_element ((flags & NOCD) ? savestring (list->word->word) : current_directory);
|
||||
@@ -504,9 +506,11 @@ cd_to_string (name)
|
||||
char *name;
|
||||
{
|
||||
WORD_LIST *tlist;
|
||||
WORD_LIST *dir;
|
||||
int result;
|
||||
|
||||
tlist = make_word_list (make_word (name), NULL);
|
||||
dir = make_word_list (make_word (name), NULL);
|
||||
tlist = make_word_list (make_word ("--"), dir);
|
||||
result = cd_builtin (tlist);
|
||||
dispose_words (tlist);
|
||||
return (result);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#! /bin/sh
|
||||
# From configure.in for Bash 3.1, version 3.180.
|
||||
# From configure.in for Bash 3.1, version 3.182.
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.59 for bash 3.1-rc1.
|
||||
# Generated by GNU Autoconf 2.59 for bash 3.1-rc2.
|
||||
#
|
||||
# Report bugs to <bug-bash@gnu.org>.
|
||||
#
|
||||
@@ -270,8 +270,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='bash'
|
||||
PACKAGE_TARNAME='bash'
|
||||
PACKAGE_VERSION='3.1-rc1'
|
||||
PACKAGE_STRING='bash 3.1-rc1'
|
||||
PACKAGE_VERSION='3.1-rc2'
|
||||
PACKAGE_STRING='bash 3.1-rc2'
|
||||
PACKAGE_BUGREPORT='bug-bash@gnu.org'
|
||||
|
||||
ac_unique_file="shell.h"
|
||||
@@ -785,7 +785,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 bash 3.1-rc1 to adapt to many kinds of systems.
|
||||
\`configure' configures bash 3.1-rc2 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -846,7 +846,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of bash 3.1-rc1:";;
|
||||
short | recursive ) echo "Configuration of bash 3.1-rc2:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1039,7 +1039,7 @@ fi
|
||||
test -n "$ac_init_help" && exit 0
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
bash configure 3.1-rc1
|
||||
bash configure 3.1-rc2
|
||||
generated by GNU Autoconf 2.59
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
@@ -1053,7 +1053,7 @@ cat >&5 <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by bash $as_me 3.1-rc1, which was
|
||||
It was created by bash $as_me 3.1-rc2, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -1422,7 +1422,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
|
||||
|
||||
|
||||
BASHVERS=3.1
|
||||
RELSTATUS=rc1
|
||||
RELSTATUS=rc2
|
||||
|
||||
case "$RELSTATUS" in
|
||||
alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
|
||||
@@ -27212,7 +27212,7 @@ _ASBOX
|
||||
} >&5
|
||||
cat >&5 <<_CSEOF
|
||||
|
||||
This file was extended by bash $as_me 3.1-rc1, which was
|
||||
This file was extended by bash $as_me 3.1-rc2, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -27275,7 +27275,7 @@ _ACEOF
|
||||
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
ac_cs_version="\\
|
||||
bash config.status 3.1-rc1
|
||||
bash config.status 3.1-rc2
|
||||
configured by $0, generated by GNU Autoconf 2.59,
|
||||
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
|
||||
+2
-2
@@ -22,10 +22,10 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
AC_REVISION([for Bash 3.1, version 3.180])dnl
|
||||
AC_REVISION([for Bash 3.1, version 3.182])dnl
|
||||
|
||||
define(bashvers, 3.1)
|
||||
define(relstatus, rc1)
|
||||
define(relstatus, rc2)
|
||||
|
||||
AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org)
|
||||
|
||||
|
||||
+1797
File diff suppressed because it is too large
Load Diff
+1788
File diff suppressed because it is too large
Load Diff
+69
-62
@@ -443,7 +443,7 @@ rl_redisplay ()
|
||||
{
|
||||
register int in, out, c, linenum, cursor_linenum;
|
||||
register char *line;
|
||||
int c_pos, inv_botlin, lb_botlin, lb_linenum;
|
||||
int c_pos, inv_botlin, lb_botlin, lb_linenum, o_cpos;
|
||||
int newlines, lpos, temp, modmark, n0, num;
|
||||
char *prompt_this_line;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
@@ -853,7 +853,7 @@ rl_redisplay ()
|
||||
|
||||
if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
|
||||
{
|
||||
int nleft, pos, changed_screen_line, tx, fudge;
|
||||
int nleft, pos, changed_screen_line, tx;
|
||||
|
||||
if (!rl_display_fixed || forced_display)
|
||||
{
|
||||
@@ -884,9 +884,23 @@ rl_redisplay ()
|
||||
/* For each line in the buffer, do the updating display. */
|
||||
for (linenum = 0; linenum <= inv_botlin; linenum++)
|
||||
{
|
||||
o_cpos = _rl_last_c_pos;
|
||||
update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,
|
||||
VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin);
|
||||
|
||||
#if 1
|
||||
/* update_line potentially changes _rl_last_c_pos, but doesn't
|
||||
take invisible characters into account, since _rl_last_c_pos
|
||||
is an absolute cursor position in a multibyte locale. See
|
||||
if compensating here is the right thing, or if we have to
|
||||
change update_line itself. */
|
||||
if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
|
||||
_rl_last_c_pos != o_cpos &&
|
||||
_rl_last_c_pos > wrap_offset &&
|
||||
o_cpos < prompt_last_invisible)
|
||||
_rl_last_c_pos -= wrap_offset;
|
||||
#endif
|
||||
|
||||
/* If this is the line with the prompt, we might need to
|
||||
compensate for invisible characters in the new line. Do
|
||||
this only if there is not more than one new line (which
|
||||
@@ -958,7 +972,7 @@ rl_redisplay ()
|
||||
#endif
|
||||
_rl_output_some_chars (local_prompt, nleft);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft);
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft) - wrap_offset;
|
||||
else
|
||||
_rl_last_c_pos = nleft;
|
||||
}
|
||||
@@ -974,7 +988,6 @@ rl_redisplay ()
|
||||
multibyte locale, however, _rl_last_c_pos is an absolute cursor
|
||||
position that doesn't take invisible characters in the prompt
|
||||
into account. We use a fudge factor to compensate. */
|
||||
fudge = (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? wrap_offset : 0;
|
||||
|
||||
/* Since _rl_backspace() doesn't know about invisible characters in the
|
||||
prompt, and there's no good way to tell it, we compensate for
|
||||
@@ -982,16 +995,20 @@ rl_redisplay ()
|
||||
if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
|
||||
{
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
tx = _rl_col_width (&visible_line[pos], 0, nleft);
|
||||
tx = _rl_col_width (&visible_line[pos], 0, nleft) - visible_wrap_offset;
|
||||
else
|
||||
tx = nleft;
|
||||
if ((_rl_last_c_pos+fudge) != tx)
|
||||
if (_rl_last_c_pos > tx)
|
||||
{
|
||||
_rl_backspace (_rl_last_c_pos + fudge - tx); /* XXX */
|
||||
_rl_backspace (_rl_last_c_pos - tx); /* XXX */
|
||||
_rl_last_c_pos = tx;
|
||||
}
|
||||
}
|
||||
|
||||
/* We need to note that in a multibyte locale we are dealing with
|
||||
_rl_last_c_pos as an absolute cursor position, but moving to a
|
||||
point specified by a buffer position (NLEFT) that doesn't take
|
||||
invisible characters into account. */
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_move_cursor_relative (nleft, &invisible_line[pos]);
|
||||
else if (nleft != _rl_last_c_pos)
|
||||
@@ -1388,7 +1405,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
#endif
|
||||
_rl_output_some_chars (local_prompt, lendiff);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
#if 0
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset;
|
||||
#else
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff);
|
||||
#endif
|
||||
else
|
||||
_rl_last_c_pos = lendiff;
|
||||
}
|
||||
@@ -1465,7 +1486,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
the end. We have invisible characters in this line. This
|
||||
is a dumb update. */
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
_rl_last_c_pos += col_temp;
|
||||
_rl_last_c_pos += col_temp; /* XXX */
|
||||
return;
|
||||
}
|
||||
/* Copy (new) chars to screen from first diff to last match. */
|
||||
@@ -1489,6 +1510,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
/* cannot insert chars, write to EOL */
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
_rl_last_c_pos += col_temp;
|
||||
/* If we're in a multibyte locale and before the last invisible char
|
||||
in the current line (which assumes we just output some invisible
|
||||
characters) we need to adjust _rl_last_c_pos, since it represents
|
||||
a physical character position. */
|
||||
}
|
||||
}
|
||||
else /* Delete characters from line. */
|
||||
@@ -1520,7 +1545,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
if (temp > 0)
|
||||
{
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
_rl_last_c_pos += col_temp;
|
||||
_rl_last_c_pos += col_temp; /* XXX */
|
||||
}
|
||||
lendiff = (oe - old) - (ne - new);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
@@ -1582,7 +1607,7 @@ rl_on_new_line_with_prompt ()
|
||||
|
||||
l = strlen (prompt_last_line);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l);
|
||||
_rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l); /* XXX */
|
||||
else
|
||||
_rl_last_c_pos = l;
|
||||
|
||||
@@ -1631,6 +1656,8 @@ rl_forced_update_display ()
|
||||
}
|
||||
|
||||
/* Move the cursor from _rl_last_c_pos to NEW, which are buffer indices.
|
||||
(Well, when we don't have multibyte characters, _rl_last_c_pos is a
|
||||
buffer index.)
|
||||
DATA is the contents of the screen line of interest; i.e., where
|
||||
the movement is being done. */
|
||||
void
|
||||
@@ -1639,28 +1666,40 @@ _rl_move_cursor_relative (new, data)
|
||||
const char *data;
|
||||
{
|
||||
register int i;
|
||||
int woff; /* number of invisible chars on current line */
|
||||
int cpos, dpos; /* current and desired cursor positions */
|
||||
|
||||
/* If we don't have to do anything, then return. */
|
||||
woff = W_OFFSET (_rl_last_v_pos, wrap_offset);
|
||||
cpos = _rl_last_c_pos;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
/* If we have multibyte characters, NEW is indexed by the buffer point in
|
||||
a multibyte string, but _rl_last_c_pos is the display position. In
|
||||
this case, NEW's display position is not obvious and must be
|
||||
calculated. */
|
||||
if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
calculated. We need to account for invisible characters in this line,
|
||||
as long as we are past them and they are counted by _rl_col_width. */
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
if (_rl_last_c_pos == new)
|
||||
return;
|
||||
dpos = _rl_col_width (data, 0, new);
|
||||
if (dpos > woff)
|
||||
dpos -= woff;
|
||||
}
|
||||
else if (_rl_last_c_pos == _rl_col_width (data, 0, new))
|
||||
return;
|
||||
#else
|
||||
if (_rl_last_c_pos == new) return;
|
||||
else
|
||||
#endif
|
||||
dpos = new;
|
||||
|
||||
/* If we don't have to do anything, then return. */
|
||||
if (cpos == dpos)
|
||||
return;
|
||||
|
||||
/* It may be faster to output a CR, and then move forwards instead
|
||||
of moving backwards. */
|
||||
/* i == current physical cursor position. */
|
||||
i = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
i = _rl_last_c_pos;
|
||||
else
|
||||
#endif
|
||||
i = _rl_last_c_pos - woff;
|
||||
if (new == 0 || CR_FASTER (new, _rl_last_c_pos) ||
|
||||
(_rl_term_autowrap && i == _rl_screenwidth))
|
||||
{
|
||||
@@ -1669,10 +1708,10 @@ _rl_move_cursor_relative (new, data)
|
||||
#else
|
||||
tputs (_rl_term_cr, 1, _rl_output_character_function);
|
||||
#endif /* !__MSDOS__ */
|
||||
_rl_last_c_pos = 0;
|
||||
cpos = _rl_last_c_pos = 0;
|
||||
}
|
||||
|
||||
if (_rl_last_c_pos < new)
|
||||
if (cpos < dpos)
|
||||
{
|
||||
/* Move the cursor forward. We do it by printing the command
|
||||
to move the cursor forward if there is one, else print that
|
||||
@@ -1686,31 +1725,11 @@ _rl_move_cursor_relative (new, data)
|
||||
#if defined (HACK_TERMCAP_MOTION)
|
||||
if (_rl_term_forward_char)
|
||||
{
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
int width;
|
||||
width = _rl_col_width (data, _rl_last_c_pos, new);
|
||||
for (i = 0; i < width; i++)
|
||||
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = _rl_last_c_pos; i < new; i++)
|
||||
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
|
||||
}
|
||||
}
|
||||
else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
tputs (_rl_term_cr, 1, _rl_output_character_function);
|
||||
for (i = 0; i < new; i++)
|
||||
putc (data[i], rl_outstream);
|
||||
for (i = cpos; i < dpos; i++)
|
||||
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
|
||||
}
|
||||
else
|
||||
for (i = _rl_last_c_pos; i < new; i++)
|
||||
putc (data[i], rl_outstream);
|
||||
|
||||
#else /* !HACK_TERMCAP_MOTION */
|
||||
|
||||
#endif /* HACK_TERMCAP_MOTION */
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
tputs (_rl_term_cr, 1, _rl_output_character_function);
|
||||
@@ -1718,32 +1737,20 @@ _rl_move_cursor_relative (new, data)
|
||||
putc (data[i], rl_outstream);
|
||||
}
|
||||
else
|
||||
for (i = _rl_last_c_pos; i < new; i++)
|
||||
for (i = cpos; i < new; i++)
|
||||
putc (data[i], rl_outstream);
|
||||
|
||||
#endif /* !HACK_TERMCAP_MOTION */
|
||||
|
||||
}
|
||||
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
/* NEW points to the buffer point, but _rl_last_c_pos is the display point.
|
||||
The byte length of the string is probably bigger than the column width
|
||||
of the string, which means that if NEW == _rl_last_c_pos, then NEW's
|
||||
display point is less than _rl_last_c_pos. */
|
||||
else if (_rl_last_c_pos >= new)
|
||||
#else
|
||||
else if (_rl_last_c_pos > new)
|
||||
#endif
|
||||
{
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_backspace (_rl_last_c_pos - _rl_col_width (data, 0, new));
|
||||
else
|
||||
_rl_backspace (_rl_last_c_pos - new);
|
||||
}
|
||||
else if (cpos > dpos)
|
||||
_rl_backspace (cpos - dpos);
|
||||
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_last_c_pos = _rl_col_width (data, 0, new);
|
||||
else
|
||||
_rl_last_c_pos = new;
|
||||
_rl_last_c_pos = dpos;
|
||||
}
|
||||
|
||||
/* PWP: move the cursor up or down. */
|
||||
|
||||
+136
-52
@@ -1,6 +1,6 @@
|
||||
/* display.c -- readline redisplay facility. */
|
||||
|
||||
/* Copyright (C) 1987-2004 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU Readline Library, a library for
|
||||
reading lines of text with interactive input and history editing.
|
||||
@@ -118,13 +118,19 @@ rl_voidfunc_t *rl_redisplay_function = rl_redisplay;
|
||||
int rl_display_fixed = 0;
|
||||
|
||||
int _rl_suppress_redisplay = 0;
|
||||
int _rl_want_redisplay = 0;
|
||||
|
||||
/* The stuff that gets printed out before the actual text of the line.
|
||||
This is usually pointing to rl_prompt. */
|
||||
char *rl_display_prompt = (char *)NULL;
|
||||
|
||||
/* Pseudo-global variables declared here. */
|
||||
|
||||
/* The visible cursor position. If you print some text, adjust this. */
|
||||
/* NOTE: _rl_last_c_pos is used as a buffer index when not in a locale
|
||||
supporting multibyte characters, and an absolute cursor position when
|
||||
in such a locale. This is an artifact of the donated multibyte support.
|
||||
Care must be taken when modifying its value. */
|
||||
int _rl_last_c_pos = 0;
|
||||
int _rl_last_v_pos = 0;
|
||||
|
||||
@@ -180,6 +186,18 @@ static int prompt_last_screen_line;
|
||||
|
||||
static int prompt_physical_chars;
|
||||
|
||||
/* Variables to save and restore prompt and display information. */
|
||||
|
||||
/* These are getting numerous enough that it's time to create a struct. */
|
||||
|
||||
static char *saved_local_prompt;
|
||||
static char *saved_local_prefix;
|
||||
static int saved_last_invisible;
|
||||
static int saved_visible_length;
|
||||
static int saved_prefix_length;
|
||||
static int saved_invis_chars_first_line;
|
||||
static int saved_physical_chars;
|
||||
|
||||
/* Expand the prompt string S and return the number of visible
|
||||
characters in *LP, if LP is not null. This is currently more-or-less
|
||||
a placeholder for expansion. LIP, if non-null is a place to store the
|
||||
@@ -201,7 +219,7 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
|
||||
int *lp, *lip, *niflp, *vlp;
|
||||
{
|
||||
char *r, *ret, *p;
|
||||
int l, rl, last, ignoring, ninvis, invfl, ind, pind, physchars;
|
||||
int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars;
|
||||
|
||||
/* Short-circuit if we can. */
|
||||
if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
|
||||
@@ -222,6 +240,7 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
|
||||
r = ret = (char *)xmalloc (l + 1);
|
||||
|
||||
invfl = 0; /* invisible chars in first line of prompt */
|
||||
invflset = 0; /* we only want to set invfl once */
|
||||
|
||||
for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++)
|
||||
{
|
||||
@@ -235,7 +254,8 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
|
||||
else if (ignoring && *p == RL_PROMPT_END_IGNORE)
|
||||
{
|
||||
ignoring = 0;
|
||||
last = r - ret - 1;
|
||||
if (p[-1] != RL_PROMPT_START_IGNORE)
|
||||
last = r - ret - 1;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
@@ -249,7 +269,10 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
|
||||
while (l--)
|
||||
*r++ = *p++;
|
||||
if (!ignoring)
|
||||
rl += ind - pind;
|
||||
{
|
||||
rl += ind - pind;
|
||||
physchars += _rl_col_width (pmt, pind, ind);
|
||||
}
|
||||
else
|
||||
ninvis += ind - pind;
|
||||
p--; /* compensate for later increment */
|
||||
@@ -259,16 +282,19 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
|
||||
{
|
||||
*r++ = *p;
|
||||
if (!ignoring)
|
||||
rl++; /* visible length byte counter */
|
||||
{
|
||||
rl++; /* visible length byte counter */
|
||||
physchars++;
|
||||
}
|
||||
else
|
||||
ninvis++; /* invisible chars byte counter */
|
||||
}
|
||||
|
||||
if (rl >= _rl_screenwidth)
|
||||
invfl = ninvis;
|
||||
|
||||
if (ignoring == 0)
|
||||
physchars++;
|
||||
if (invflset == 0 && rl >= _rl_screenwidth)
|
||||
{
|
||||
invfl = ninvis;
|
||||
invflset = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -328,7 +354,8 @@ rl_expand_prompt (prompt)
|
||||
FREE (local_prompt_prefix);
|
||||
|
||||
local_prompt = local_prompt_prefix = (char *)0;
|
||||
prompt_last_invisible = prompt_visible_length = 0;
|
||||
prompt_last_invisible = prompt_invis_chars_first_line = 0;
|
||||
prompt_visible_length = prompt_physical_chars = 0;
|
||||
|
||||
if (prompt == 0 || *prompt == 0)
|
||||
return (0);
|
||||
@@ -351,14 +378,14 @@ rl_expand_prompt (prompt)
|
||||
local_prompt = expand_prompt (p, &prompt_visible_length,
|
||||
&prompt_last_invisible,
|
||||
(int *)NULL,
|
||||
(int *)NULL);
|
||||
&prompt_physical_chars);
|
||||
c = *t; *t = '\0';
|
||||
/* The portion of the prompt string up to and including the
|
||||
final newline is now null-terminated. */
|
||||
local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
|
||||
(int *)NULL,
|
||||
&prompt_invis_chars_first_line,
|
||||
&prompt_physical_chars);
|
||||
(int *)NULL);
|
||||
*t = c;
|
||||
return (prompt_prefix_length);
|
||||
}
|
||||
@@ -417,7 +444,7 @@ rl_redisplay ()
|
||||
register int in, out, c, linenum, cursor_linenum;
|
||||
register char *line;
|
||||
int c_pos, inv_botlin, lb_botlin, lb_linenum;
|
||||
int newlines, lpos, temp, modmark;
|
||||
int newlines, lpos, temp, modmark, n0, num;
|
||||
char *prompt_this_line;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
wchar_t wc;
|
||||
@@ -433,7 +460,7 @@ rl_redisplay ()
|
||||
if (!rl_display_prompt)
|
||||
rl_display_prompt = "";
|
||||
|
||||
if (invisible_line == 0)
|
||||
if (invisible_line == 0 || vis_lbreaks == 0)
|
||||
{
|
||||
init_line_structures (0);
|
||||
rl_on_new_line ();
|
||||
@@ -573,6 +600,7 @@ rl_redisplay ()
|
||||
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
memset (_rl_wrapped_line, 0, vis_lbsize);
|
||||
num = 0;
|
||||
#endif
|
||||
|
||||
/* prompt_invis_chars_first_line is the number of invisible characters in
|
||||
@@ -591,13 +619,32 @@ rl_redisplay ()
|
||||
probably too much work for the benefit gained. How many people have
|
||||
prompts that exceed two physical lines?
|
||||
Additional logic fix from Edward Catmur <ed@catmur.co.uk> */
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
n0 = num;
|
||||
temp = local_prompt ? strlen (local_prompt) : 0;
|
||||
while (num < temp)
|
||||
{
|
||||
if (_rl_col_width (local_prompt, n0, num) > _rl_screenwidth)
|
||||
{
|
||||
num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY);
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
temp = num +
|
||||
#else
|
||||
temp = ((newlines + 1) * _rl_screenwidth) +
|
||||
#endif /* !HANDLE_MULTIBYTE */
|
||||
((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line
|
||||
: ((newlines == 1) ? wrap_offset : 0))
|
||||
: ((newlines == 0) ? wrap_offset :0));
|
||||
|
||||
inv_lbreaks[++newlines] = temp;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
lpos -= _rl_col_width (local_prompt, n0, num);
|
||||
#else
|
||||
lpos -= _rl_screenwidth;
|
||||
#endif
|
||||
}
|
||||
|
||||
prompt_last_screen_line = newlines;
|
||||
@@ -806,7 +853,7 @@ rl_redisplay ()
|
||||
|
||||
if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
|
||||
{
|
||||
int nleft, pos, changed_screen_line;
|
||||
int nleft, pos, changed_screen_line, tx, fudge;
|
||||
|
||||
if (!rl_display_fixed || forced_display)
|
||||
{
|
||||
@@ -851,7 +898,10 @@ rl_redisplay ()
|
||||
(wrap_offset > visible_wrap_offset) &&
|
||||
(_rl_last_c_pos < visible_first_line_len))
|
||||
{
|
||||
nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos;
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
nleft = _rl_screenwidth - _rl_last_c_pos;
|
||||
else
|
||||
nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos;
|
||||
if (nleft)
|
||||
_rl_clear_to_eol (nleft);
|
||||
}
|
||||
@@ -887,7 +937,7 @@ rl_redisplay ()
|
||||
the physical cursor position on the screen stays the same,
|
||||
but the buffer position needs to be adjusted to account
|
||||
for invisible characters. */
|
||||
if (cursor_linenum == 0 && wrap_offset)
|
||||
if ((MB_CUR_MAX == 1 || rl_byte_oriented) && cursor_linenum == 0 && wrap_offset)
|
||||
_rl_last_c_pos += wrap_offset;
|
||||
}
|
||||
|
||||
@@ -920,16 +970,26 @@ rl_redisplay ()
|
||||
start of the line and the cursor position. */
|
||||
nleft = c_pos - pos;
|
||||
|
||||
/* NLEFT is now a number of characters in a buffer. When in a
|
||||
multibyte locale, however, _rl_last_c_pos is an absolute cursor
|
||||
position that doesn't take invisible characters in the prompt
|
||||
into account. We use a fudge factor to compensate. */
|
||||
fudge = (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? wrap_offset : 0;
|
||||
|
||||
/* Since _rl_backspace() doesn't know about invisible characters in the
|
||||
prompt, and there's no good way to tell it, we compensate for
|
||||
those characters here and call _rl_backspace() directly. */
|
||||
if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
|
||||
{
|
||||
_rl_backspace (_rl_last_c_pos - nleft);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_last_c_pos = _rl_col_width (&visible_line[pos], 0, nleft);
|
||||
tx = _rl_col_width (&visible_line[pos], 0, nleft);
|
||||
else
|
||||
_rl_last_c_pos = nleft;
|
||||
tx = nleft;
|
||||
if ((_rl_last_c_pos+fudge) != tx)
|
||||
{
|
||||
_rl_backspace (_rl_last_c_pos + fudge - tx); /* XXX */
|
||||
_rl_last_c_pos = tx;
|
||||
}
|
||||
}
|
||||
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
@@ -1090,7 +1150,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
the exact cursor position and cut-and-paste with certain terminal
|
||||
emulators. In this calculation, TEMP is the physical screen
|
||||
position of the cursor. */
|
||||
temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
temp = _rl_last_c_pos;
|
||||
else
|
||||
temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
|
||||
if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
|
||||
&& _rl_last_v_pos == current_line - 1)
|
||||
{
|
||||
@@ -1296,7 +1359,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
if (_rl_last_v_pos != current_line)
|
||||
{
|
||||
_rl_move_vert (current_line);
|
||||
if (current_line == 0 && visible_wrap_offset)
|
||||
if ((MB_CUR_MAX == 1 || rl_byte_oriented) && current_line == 0 && visible_wrap_offset)
|
||||
_rl_last_c_pos += visible_wrap_offset;
|
||||
}
|
||||
|
||||
@@ -1387,7 +1450,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
insert_some_chars (nfd, lendiff, col_lendiff);
|
||||
_rl_last_c_pos += col_lendiff;
|
||||
}
|
||||
else if (*ols == 0 && lendiff > 0)
|
||||
else if ((MB_CUR_MAX == 1 || rl_byte_oriented != 0) && *ols == 0 && lendiff > 0)
|
||||
{
|
||||
/* At the end of a line the characters do not have to
|
||||
be "inserted". They can just be placed on the screen. */
|
||||
@@ -1769,9 +1832,9 @@ rl_character_len (c, pos)
|
||||
|
||||
return ((ISPRINT (uc)) ? 1 : 2);
|
||||
}
|
||||
|
||||
/* How to print things in the "echo-area". The prompt is treated as a
|
||||
mini-modeline. */
|
||||
static int msg_saved_prompt = 0;
|
||||
|
||||
#if defined (USE_VARARGS)
|
||||
int
|
||||
@@ -1802,8 +1865,19 @@ rl_message (va_alist)
|
||||
#endif
|
||||
va_end (args);
|
||||
|
||||
if (saved_local_prompt == 0)
|
||||
{
|
||||
rl_save_prompt ();
|
||||
msg_saved_prompt = 1;
|
||||
}
|
||||
rl_display_prompt = msg_buf;
|
||||
local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
|
||||
&prompt_last_invisible,
|
||||
&prompt_invis_chars_first_line,
|
||||
&prompt_physical_chars);
|
||||
local_prompt_prefix = (char *)NULL;
|
||||
(*rl_redisplay_function) ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else /* !USE_VARARGS */
|
||||
@@ -1813,8 +1887,20 @@ rl_message (format, arg1, arg2)
|
||||
{
|
||||
sprintf (msg_buf, format, arg1, arg2);
|
||||
msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
|
||||
|
||||
rl_display_prompt = msg_buf;
|
||||
if (saved_local_prompt == 0)
|
||||
{
|
||||
rl_save_prompt ();
|
||||
msg_saved_prompt = 1;
|
||||
}
|
||||
local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
|
||||
&prompt_last_invisible,
|
||||
&prompt_invis_chars_first_line,
|
||||
&prompt_physical_chars);
|
||||
local_prompt_prefix = (char *)NULL;
|
||||
(*rl_redisplay_function) ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* !USE_VARARGS */
|
||||
@@ -1824,6 +1910,11 @@ int
|
||||
rl_clear_message ()
|
||||
{
|
||||
rl_display_prompt = rl_prompt;
|
||||
if (msg_saved_prompt)
|
||||
{
|
||||
rl_restore_prompt ();
|
||||
msg_saved_prompt = 0;
|
||||
}
|
||||
(*rl_redisplay_function) ();
|
||||
return 0;
|
||||
}
|
||||
@@ -1838,27 +1929,19 @@ rl_reset_line_state ()
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* These are getting numerous enough that it's time to create a struct. */
|
||||
|
||||
static char *saved_local_prompt;
|
||||
static char *saved_local_prefix;
|
||||
static int saved_last_invisible;
|
||||
static int saved_visible_length;
|
||||
static int saved_invis_chars_first_line;
|
||||
static int saved_physical_chars;
|
||||
|
||||
void
|
||||
rl_save_prompt ()
|
||||
{
|
||||
saved_local_prompt = local_prompt;
|
||||
saved_local_prefix = local_prompt_prefix;
|
||||
saved_prefix_length = prompt_prefix_length;
|
||||
saved_last_invisible = prompt_last_invisible;
|
||||
saved_visible_length = prompt_visible_length;
|
||||
saved_invis_chars_first_line = prompt_invis_chars_first_line;
|
||||
saved_physical_chars = prompt_physical_chars;
|
||||
|
||||
local_prompt = local_prompt_prefix = (char *)0;
|
||||
prompt_last_invisible = prompt_visible_length = 0;
|
||||
prompt_last_invisible = prompt_visible_length = prompt_prefix_length = 0;
|
||||
prompt_invis_chars_first_line = prompt_physical_chars = 0;
|
||||
}
|
||||
|
||||
@@ -1870,10 +1953,16 @@ rl_restore_prompt ()
|
||||
|
||||
local_prompt = saved_local_prompt;
|
||||
local_prompt_prefix = saved_local_prefix;
|
||||
prompt_prefix_length = saved_prefix_length;
|
||||
prompt_last_invisible = saved_last_invisible;
|
||||
prompt_visible_length = saved_visible_length;
|
||||
prompt_invis_chars_first_line = saved_invis_chars_first_line;
|
||||
prompt_physical_chars = saved_physical_chars;
|
||||
|
||||
/* can test saved_local_prompt to see if prompt info has been saved. */
|
||||
saved_local_prompt = saved_local_prefix = (char *)0;
|
||||
saved_last_invisible = saved_visible_length = saved_prefix_length = 0;
|
||||
saved_invis_chars_first_line = saved_physical_chars = 0;
|
||||
}
|
||||
|
||||
char *
|
||||
@@ -1907,6 +1996,8 @@ _rl_make_prompt_for_search (pchar)
|
||||
prompt_visible_length = saved_visible_length + 1;
|
||||
}
|
||||
|
||||
prompt_physical_chars = saved_physical_chars + 1;
|
||||
|
||||
return pmt;
|
||||
}
|
||||
|
||||
@@ -1967,6 +2058,9 @@ insert_some_chars (string, count, col)
|
||||
char *string;
|
||||
int count, col;
|
||||
{
|
||||
#if defined (__MSDOS__) || defined (__MINGW32__)
|
||||
_rl_output_some_chars (string, count);
|
||||
#else
|
||||
/* DEBUGGING */
|
||||
if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
if (count != col)
|
||||
@@ -2005,6 +2099,7 @@ insert_some_chars (string, count, col)
|
||||
if (_rl_term_ei && *_rl_term_ei)
|
||||
tputs (_rl_term_ei, 1, _rl_output_character_function);
|
||||
}
|
||||
#endif /* __MSDOS__ || __MINGW32__ */
|
||||
}
|
||||
|
||||
/* Delete COUNT characters from the display line. */
|
||||
@@ -2015,6 +2110,7 @@ delete_chars (count)
|
||||
if (count > _rl_screenwidth) /* XXX */
|
||||
return;
|
||||
|
||||
#if !defined (__MSDOS__) && !defined (__MINGW32__)
|
||||
if (_rl_term_DC && *_rl_term_DC)
|
||||
{
|
||||
char *buffer;
|
||||
@@ -2027,6 +2123,7 @@ delete_chars (count)
|
||||
while (count--)
|
||||
tputs (_rl_term_dc, 1, _rl_output_character_function);
|
||||
}
|
||||
#endif /* !__MSDOS__ && !__MINGW32__ */
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2082,18 +2179,10 @@ static void
|
||||
redraw_prompt (t)
|
||||
char *t;
|
||||
{
|
||||
char *oldp, *oldl, *oldlprefix;
|
||||
int oldlen, oldlast, oldplen, oldninvis, oldphyschars;
|
||||
char *oldp;
|
||||
|
||||
/* Geez, I should make this a struct. */
|
||||
oldp = rl_display_prompt;
|
||||
oldl = local_prompt;
|
||||
oldlprefix = local_prompt_prefix;
|
||||
oldlen = prompt_visible_length;
|
||||
oldplen = prompt_prefix_length;
|
||||
oldlast = prompt_last_invisible;
|
||||
oldninvis = prompt_invis_chars_first_line;
|
||||
oldphyschars = prompt_physical_chars;
|
||||
rl_save_prompt ();
|
||||
|
||||
rl_display_prompt = t;
|
||||
local_prompt = expand_prompt (t, &prompt_visible_length,
|
||||
@@ -2101,16 +2190,11 @@ redraw_prompt (t)
|
||||
&prompt_invis_chars_first_line,
|
||||
&prompt_physical_chars);
|
||||
local_prompt_prefix = (char *)NULL;
|
||||
|
||||
rl_forced_update_display ();
|
||||
|
||||
rl_display_prompt = oldp;
|
||||
local_prompt = oldl;
|
||||
local_prompt_prefix = oldlprefix;
|
||||
prompt_visible_length = oldlen;
|
||||
prompt_prefix_length = oldplen;
|
||||
prompt_last_invisible = oldlast;
|
||||
prompt_invis_chars_first_line = oldninvis;
|
||||
prompt_physical_chars = oldphyschars;
|
||||
rl_restore_prompt();
|
||||
}
|
||||
|
||||
/* Redisplay the current line after a SIGWINCH is received. */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+72
-62
@@ -443,8 +443,8 @@ rl_redisplay ()
|
||||
{
|
||||
register int in, out, c, linenum, cursor_linenum;
|
||||
register char *line;
|
||||
int c_pos, inv_botlin, lb_botlin, lb_linenum;
|
||||
int newlines, lpos, temp, modmark, n0, num, fudge;
|
||||
int c_pos, inv_botlin, lb_botlin, lb_linenum, o_cpos;
|
||||
int newlines, lpos, temp, modmark, n0, num;
|
||||
char *prompt_this_line;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
wchar_t wc;
|
||||
@@ -884,9 +884,23 @@ rl_redisplay ()
|
||||
/* For each line in the buffer, do the updating display. */
|
||||
for (linenum = 0; linenum <= inv_botlin; linenum++)
|
||||
{
|
||||
o_cpos = _rl_last_c_pos;
|
||||
update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,
|
||||
VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin);
|
||||
|
||||
#if 1
|
||||
/* update_line potentially changes _rl_last_c_pos, but doesn't
|
||||
take invisible characters into account, since _rl_last_c_pos
|
||||
is an absolute cursor position in a multibyte locale. See
|
||||
if compensating here is the right thing, or if we have to
|
||||
change update_line itself. */
|
||||
if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
|
||||
_rl_last_c_pos != o_cpos &&
|
||||
_rl_last_c_pos > wrap_offset &&
|
||||
o_cpos < prompt_last_invisible)
|
||||
_rl_last_c_pos -= wrap_offset;
|
||||
#endif
|
||||
|
||||
/* If this is the line with the prompt, we might need to
|
||||
compensate for invisible characters in the new line. Do
|
||||
this only if there is not more than one new line (which
|
||||
@@ -958,7 +972,7 @@ rl_redisplay ()
|
||||
#endif
|
||||
_rl_output_some_chars (local_prompt, nleft);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft);
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft) - wrap_offset;
|
||||
else
|
||||
_rl_last_c_pos = nleft;
|
||||
}
|
||||
@@ -974,7 +988,6 @@ rl_redisplay ()
|
||||
multibyte locale, however, _rl_last_c_pos is an absolute cursor
|
||||
position that doesn't take invisible characters in the prompt
|
||||
into account. We use a fudge factor to compensate. */
|
||||
fudge = (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? wrap_offset : 0;
|
||||
|
||||
/* Since _rl_backspace() doesn't know about invisible characters in the
|
||||
prompt, and there's no good way to tell it, we compensate for
|
||||
@@ -982,16 +995,20 @@ rl_redisplay ()
|
||||
if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
|
||||
{
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
tx = _rl_col_width (&visible_line[pos], 0, nleft);
|
||||
tx = _rl_col_width (&visible_line[pos], 0, nleft) - visible_wrap_offset;
|
||||
else
|
||||
tx = nleft;
|
||||
if ((_rl_last_c_pos+fudge) != tx)
|
||||
if (_rl_last_c_pos > tx)
|
||||
{
|
||||
_rl_backspace (_rl_last_c_pos + fudge - tx); /* XXX */
|
||||
_rl_backspace (_rl_last_c_pos - tx); /* XXX */
|
||||
_rl_last_c_pos = tx;
|
||||
}
|
||||
}
|
||||
|
||||
/* We need to note that in a multibyte locale we are dealing with
|
||||
_rl_last_c_pos as an absolute cursor position, but moving to a
|
||||
point specified by a buffer position (NLEFT) that doesn't take
|
||||
invisible characters into account. */
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_move_cursor_relative (nleft, &invisible_line[pos]);
|
||||
else if (nleft != _rl_last_c_pos)
|
||||
@@ -1388,7 +1405,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
#endif
|
||||
_rl_output_some_chars (local_prompt, lendiff);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
#if 0
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset;
|
||||
#else
|
||||
_rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff);
|
||||
#endif
|
||||
else
|
||||
_rl_last_c_pos = lendiff;
|
||||
}
|
||||
@@ -1465,7 +1486,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
the end. We have invisible characters in this line. This
|
||||
is a dumb update. */
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
_rl_last_c_pos += col_temp;
|
||||
_rl_last_c_pos += col_temp; /* XXX */
|
||||
return;
|
||||
}
|
||||
/* Copy (new) chars to screen from first diff to last match. */
|
||||
@@ -1489,6 +1510,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
/* cannot insert chars, write to EOL */
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
_rl_last_c_pos += col_temp;
|
||||
/* If we're in a multibyte locale and before the last invisible char
|
||||
in the current line (which assumes we just output some invisible
|
||||
characters) we need to adjust _rl_last_c_pos, since it represents
|
||||
a physical character position. */
|
||||
}
|
||||
}
|
||||
else /* Delete characters from line. */
|
||||
@@ -1520,7 +1545,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
|
||||
if (temp > 0)
|
||||
{
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
_rl_last_c_pos += col_temp;
|
||||
_rl_last_c_pos += col_temp; /* XXX */
|
||||
}
|
||||
lendiff = (oe - old) - (ne - new);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
@@ -1582,7 +1607,7 @@ rl_on_new_line_with_prompt ()
|
||||
|
||||
l = strlen (prompt_last_line);
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l);
|
||||
_rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l); /* XXX */
|
||||
else
|
||||
_rl_last_c_pos = l;
|
||||
|
||||
@@ -1631,6 +1656,8 @@ rl_forced_update_display ()
|
||||
}
|
||||
|
||||
/* Move the cursor from _rl_last_c_pos to NEW, which are buffer indices.
|
||||
(Well, when we don't have multibyte characters, _rl_last_c_pos is a
|
||||
buffer index.)
|
||||
DATA is the contents of the screen line of interest; i.e., where
|
||||
the movement is being done. */
|
||||
void
|
||||
@@ -1639,28 +1666,40 @@ _rl_move_cursor_relative (new, data)
|
||||
const char *data;
|
||||
{
|
||||
register int i;
|
||||
int woff; /* number of invisible chars on current line */
|
||||
int cpos, dpos; /* current and desired cursor positions */
|
||||
|
||||
/* If we don't have to do anything, then return. */
|
||||
woff = W_OFFSET (_rl_last_v_pos, wrap_offset);
|
||||
cpos = _rl_last_c_pos;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
/* If we have multibyte characters, NEW is indexed by the buffer point in
|
||||
a multibyte string, but _rl_last_c_pos is the display position. In
|
||||
this case, NEW's display position is not obvious and must be
|
||||
calculated. */
|
||||
if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
calculated. We need to account for invisible characters in this line,
|
||||
as long as we are past them and they are counted by _rl_col_width. */
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
if (_rl_last_c_pos == new)
|
||||
return;
|
||||
dpos = _rl_col_width (data, 0, new);
|
||||
if (dpos > woff)
|
||||
dpos -= woff;
|
||||
}
|
||||
else if (_rl_last_c_pos == _rl_col_width (data, 0, new))
|
||||
return;
|
||||
#else
|
||||
if (_rl_last_c_pos == new) return;
|
||||
else
|
||||
#endif
|
||||
dpos = new;
|
||||
|
||||
/* If we don't have to do anything, then return. */
|
||||
if (cpos == dpos)
|
||||
return;
|
||||
|
||||
/* It may be faster to output a CR, and then move forwards instead
|
||||
of moving backwards. */
|
||||
/* i == current physical cursor position. */
|
||||
i = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
i = _rl_last_c_pos;
|
||||
else
|
||||
#endif
|
||||
i = _rl_last_c_pos - woff;
|
||||
if (new == 0 || CR_FASTER (new, _rl_last_c_pos) ||
|
||||
(_rl_term_autowrap && i == _rl_screenwidth))
|
||||
{
|
||||
@@ -1669,10 +1708,13 @@ _rl_move_cursor_relative (new, data)
|
||||
#else
|
||||
tputs (_rl_term_cr, 1, _rl_output_character_function);
|
||||
#endif /* !__MSDOS__ */
|
||||
_rl_last_c_pos = 0;
|
||||
cpos = _rl_last_c_pos = 0;
|
||||
}
|
||||
|
||||
if (_rl_last_c_pos < new)
|
||||
if (cpos != _rl_last_c_pos)
|
||||
itrace("_rl_move_cursor_relative: cpos (%d) != _rl_last_c_pos (%d)", cpos, _rl_last_c_pos);
|
||||
|
||||
if (cpos < dpos)
|
||||
{
|
||||
/* Move the cursor forward. We do it by printing the command
|
||||
to move the cursor forward if there is one, else print that
|
||||
@@ -1686,31 +1728,11 @@ _rl_move_cursor_relative (new, data)
|
||||
#if defined (HACK_TERMCAP_MOTION)
|
||||
if (_rl_term_forward_char)
|
||||
{
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
int width;
|
||||
width = _rl_col_width (data, _rl_last_c_pos, new);
|
||||
for (i = 0; i < width; i++)
|
||||
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = _rl_last_c_pos; i < new; i++)
|
||||
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
|
||||
}
|
||||
}
|
||||
else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
tputs (_rl_term_cr, 1, _rl_output_character_function);
|
||||
for (i = 0; i < new; i++)
|
||||
putc (data[i], rl_outstream);
|
||||
for (i = cpos; i < dpos; i++)
|
||||
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
|
||||
}
|
||||
else
|
||||
for (i = _rl_last_c_pos; i < new; i++)
|
||||
putc (data[i], rl_outstream);
|
||||
|
||||
#else /* !HACK_TERMCAP_MOTION */
|
||||
|
||||
#endif /* HACK_TERMCAP_MOTION */
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
{
|
||||
tputs (_rl_term_cr, 1, _rl_output_character_function);
|
||||
@@ -1718,32 +1740,20 @@ _rl_move_cursor_relative (new, data)
|
||||
putc (data[i], rl_outstream);
|
||||
}
|
||||
else
|
||||
for (i = _rl_last_c_pos; i < new; i++)
|
||||
for (i = cpos; i < new; i++)
|
||||
putc (data[i], rl_outstream);
|
||||
|
||||
#endif /* !HACK_TERMCAP_MOTION */
|
||||
|
||||
}
|
||||
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
/* NEW points to the buffer point, but _rl_last_c_pos is the display point.
|
||||
The byte length of the string is probably bigger than the column width
|
||||
of the string, which means that if NEW == _rl_last_c_pos, then NEW's
|
||||
display point is less than _rl_last_c_pos. */
|
||||
else if (_rl_last_c_pos >= new)
|
||||
#else
|
||||
else if (_rl_last_c_pos > new)
|
||||
#endif
|
||||
{
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_backspace (_rl_last_c_pos - _rl_col_width (data, 0, new));
|
||||
else
|
||||
_rl_backspace (_rl_last_c_pos - new);
|
||||
}
|
||||
else if (cpos > dpos)
|
||||
_rl_backspace (cpos - dpos);
|
||||
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
_rl_last_c_pos = _rl_col_width (data, 0, new);
|
||||
else
|
||||
_rl_last_c_pos = new;
|
||||
_rl_last_c_pos = dpos;
|
||||
}
|
||||
|
||||
/* PWP: move the cursor up or down. */
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
<HTML>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!-- Created on October, 27 2005 by texi2html 1.64 -->
|
||||
<!-- Created on November, 17 2005 by texi2html 1.64 -->
|
||||
<!--
|
||||
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
||||
Karl Berry <karl@freefriends.org>
|
||||
@@ -2100,7 +2100,7 @@ to permit their use in free software.
|
||||
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
|
||||
</TR></TABLE>
|
||||
<H1>About this document</H1>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>October, 27 2005</I>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>November, 17 2005</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
<P></P>
|
||||
@@ -2262,7 +2262,7 @@ the following structure:
|
||||
<BR>
|
||||
<FONT SIZE="-1">
|
||||
This document was generated
|
||||
by <I>Chet Ramey</I> on <I>October, 27 2005</I>
|
||||
by <I>Chet Ramey</I> on <I>November, 17 2005</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ This is history.info, produced by makeinfo version 4.7 from
|
||||
./history.texi.
|
||||
|
||||
This document describes the GNU History library (version 5.1-beta1,
|
||||
7 October 2005), a programming tool that provides a consistent user
|
||||
11 November 2005), a programming tool that provides a consistent user
|
||||
interface for recalling lines of previously typed input.
|
||||
|
||||
Copyright (C) 1988-2004 Free Software Foundation, Inc.
|
||||
@@ -1325,28 +1325,28 @@ Appendix C Function and Variable Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top1285
|
||||
Node: Using History Interactively1910
|
||||
Node: History Interaction2418
|
||||
Node: Event Designators3842
|
||||
Node: Word Designators4777
|
||||
Node: Modifiers6416
|
||||
Node: Programming with GNU History7643
|
||||
Node: Introduction to History8375
|
||||
Node: History Storage10065
|
||||
Node: History Functions11200
|
||||
Node: Initializing History and State Management12189
|
||||
Node: History List Management13001
|
||||
Node: Information About the History List15033
|
||||
Node: Moving Around the History List16530
|
||||
Node: Searching the History List17531
|
||||
Node: Managing the History File19463
|
||||
Node: History Expansion21283
|
||||
Node: History Variables23191
|
||||
Node: History Programming Example25997
|
||||
Node: Copying This Manual28674
|
||||
Node: GNU Free Documentation License28934
|
||||
Node: Concept Index51340
|
||||
Node: Function and Variable Index52180
|
||||
Node: Top1287
|
||||
Node: Using History Interactively1912
|
||||
Node: History Interaction2420
|
||||
Node: Event Designators3844
|
||||
Node: Word Designators4779
|
||||
Node: Modifiers6418
|
||||
Node: Programming with GNU History7645
|
||||
Node: Introduction to History8377
|
||||
Node: History Storage10067
|
||||
Node: History Functions11202
|
||||
Node: Initializing History and State Management12191
|
||||
Node: History List Management13003
|
||||
Node: Information About the History List15035
|
||||
Node: Moving Around the History List16532
|
||||
Node: Searching the History List17533
|
||||
Node: Managing the History File19465
|
||||
Node: History Expansion21285
|
||||
Node: History Variables23193
|
||||
Node: History Programming Example25999
|
||||
Node: Copying This Manual28676
|
||||
Node: GNU Free Documentation License28936
|
||||
Node: Concept Index51342
|
||||
Node: Function and Variable Index52182
|
||||
|
||||
End Tag Table
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 27 OCT 2005 17:26
|
||||
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 17 NOV 2005 10:43
|
||||
**/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/history.texi (./texinfo.tex
|
||||
Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
@@ -160,10 +160,10 @@ Chapter 2 [3] [4] [5] [6] [7] [8] [9] [10] [11]) Appendix A [12] (./fdl.texi
|
||||
Here is how much of TeX's memory you used:
|
||||
1409 strings out of 98002
|
||||
16451 string characters out of 1221987
|
||||
45514 words of memory out of 1000001
|
||||
45518 words of memory out of 1000001
|
||||
2271 multiletter control sequences out of 10000+50000
|
||||
31953 words of font info for 111 fonts, out of 500000 for 1000
|
||||
19 hyphenation exceptions out of 1000
|
||||
15i,6n,17p,283b,649s stack positions out of 1500i,500n,5000p,200000b,5000s
|
||||
|
||||
Output written on history.dvi (28 pages, 79880 bytes).
|
||||
Output written on history.dvi (28 pages, 79896 bytes).
|
||||
|
||||
+15
-14
@@ -10,7 +10,7 @@
|
||||
%DVIPSWebPage: (www.radicaleye.com)
|
||||
%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
|
||||
%DVIPSParameters: dpi=300, compressed
|
||||
%DVIPSSource: TeX output 2005.10.27:1726
|
||||
%DVIPSSource: TeX output 2005.11.17:1043
|
||||
%%BeginProcSet: texc.pro
|
||||
%!
|
||||
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
|
||||
@@ -3316,20 +3316,21 @@ TeXDict begin
|
||||
%%Page: 1 1
|
||||
TeXDict begin 1 0 bop 75 659 a Fs(GNU)33 b(History)e(Library)p
|
||||
75 709 1800 17 v 710 757 a Fr(Edition)14 b(5.1-b)q(eta1,)g(for)h
|
||||
Fq(History)f(Library)g Fr(V)l(ersion)h(5.1-b)q(eta1.)1608
|
||||
811 y(Octob)q(er)h(2005)75 2467 y Fp(Chet)22 b(Ramey)-6
|
||||
b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)75
|
||||
2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6
|
||||
b(oundation)p 75 2570 1800 9 v eop end
|
||||
Fq(History)f(Library)g Fr(V)l(ersion)h(5.1-b)q(eta1.)1569
|
||||
811 y(No)o(v)o(em)o(b)q(er)g(2005)75 2467 y Fp(Chet)22
|
||||
b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n
|
||||
(ersit)n(y)75 2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6
|
||||
b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)p 75 2570
|
||||
1800 9 v eop end
|
||||
%%Page: 2 2
|
||||
TeXDict begin 2 1 bop 75 1512 a Fr(This)17 b(do)q(cumen)o(t)h(describ)q
|
||||
(es)g(the)g(GNU)f(History)g(library)f(\(v)o(ersion)h(5.1-b)q(eta1,)g(7)
|
||||
g(Octob)q(er)h(2005\),)e(a)75 1567 y(programming)e(to)q(ol)h(that)h
|
||||
(pro)o(vides)f(a)h(consisten)o(t)f(user)h(in)o(terface)f(for)h
|
||||
(recalling)e(lines)i(of)g(previously)75 1621 y(t)o(yp)q(ed)g(input.)75
|
||||
1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fo(\015)f
|
||||
Fr(1988-2004)e(F)l(ree)i(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)75
|
||||
1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f(mak)o(e)h(and)g
|
||||
TeXDict begin 2 1 bop 75 1512 a Fr(This)15 b(do)q(cumen)o(t)h(describ)q
|
||||
(es)h(the)f(GNU)f(History)g(library)f(\(v)o(ersion)h(5.1-b)q(eta1,)f
|
||||
(11)h(No)o(v)o(em)o(b)q(er)h(2005\),)75 1567 y(a)d(programming)e(to)q
|
||||
(ol)h(that)g(pro)o(vides)h(a)g(consisten)o(t)f(user)h(in)o(terface)f
|
||||
(for)h(recalling)e(lines)i(of)g(previously)75 1621 y(t)o(yp)q(ed)j
|
||||
(input.)75 1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689
|
||||
y Fo(\015)f Fr(1988-2004)e(F)l(ree)i(Soft)o(w)o(are)f(F)l(oundation,)g
|
||||
(Inc.)75 1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f(mak)o(e)h(and)g
|
||||
(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o(ual)f(pro)o
|
||||
(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g(this)g(p)q
|
||||
(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f(copies.)195
|
||||
|
||||
Binary file not shown.
+330
-311
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@ This is readline.info, produced by makeinfo version 4.7 from
|
||||
./rlman.texi.
|
||||
|
||||
This manual describes the GNU Readline Library (version 5.1-beta1,
|
||||
7 October 2005), a library which aids in the consistency of user
|
||||
11 November 2005), a library which aids in the consistency of user
|
||||
interface across discrete programs which provide a command line
|
||||
interface.
|
||||
|
||||
@@ -1640,6 +1640,11 @@ These variables are available to function writers.
|
||||
The stdio stream to which Readline performs output. If `NULL',
|
||||
Readline defaults to STDOUT.
|
||||
|
||||
-- Variable: int rl_prefer_env_winsize
|
||||
If non-zero, Readline gives values found in the `LINES' and
|
||||
`COLUMNS' environment variables greater precedence than values
|
||||
fetched from the kernel when computing the screen dimensions.
|
||||
|
||||
-- Variable: rl_command_func_t * rl_last_func
|
||||
The address of the last command function Readline executed. May
|
||||
be used to test whether or not a function is being executed twice
|
||||
@@ -2593,7 +2598,8 @@ to update its idea of the terminal size when a `SIGWINCH' is received.
|
||||
|
||||
-- Function: void rl_set_screen_size (int rows, int cols)
|
||||
Set Readline's idea of the terminal size to ROWS rows and COLS
|
||||
columns.
|
||||
columns. If either ROWS or COLUMNS is less than or equal to 0,
|
||||
Readline's idea of that terminal dimension is unchanged.
|
||||
|
||||
If an application does not want to install a `SIGWINCH' handler, but
|
||||
is still interested in the screen dimensions, Readline's idea of the
|
||||
@@ -2603,6 +2609,10 @@ screen size may be queried.
|
||||
Return Readline's idea of the terminal's size in the variables
|
||||
pointed to by the arguments.
|
||||
|
||||
-- Function: void rl_reset_screen_size (void)
|
||||
Cause Readline to reobtain the screen size and recalculate its
|
||||
dimensions.
|
||||
|
||||
The following functions install and remove Readline's signal
|
||||
handlers.
|
||||
|
||||
@@ -4088,7 +4098,7 @@ Function and Variable Index
|
||||
* rl_bind_keyseq_if_unbound: Binding Keys. (line 77)
|
||||
* rl_bind_keyseq_if_unbound_in_map: Binding Keys. (line 83)
|
||||
* rl_bind_keyseq_in_map: Binding Keys. (line 66)
|
||||
* rl_binding_keymap: Readline Variables. (line 149)
|
||||
* rl_binding_keymap: Readline Variables. (line 154)
|
||||
* rl_callback_handler_install: Alternate Interface. (line 15)
|
||||
* rl_callback_handler_remove: Alternate Interface. (line 33)
|
||||
* rl_callback_read_char: Alternate Interface. (line 21)
|
||||
@@ -4103,11 +4113,11 @@ Function and Variable Index
|
||||
* rl_clear_message: Redisplay. (line 48)
|
||||
* rl_clear_pending_input: Character Input. (line 30)
|
||||
* rl_clear_signals: Readline Signal Handling.
|
||||
(line 114)
|
||||
* rl_complete <1>: How Completing Works.
|
||||
(line 49)
|
||||
* rl_complete: Completion Functions.
|
||||
(line 119)
|
||||
* rl_complete <1>: Completion Functions.
|
||||
(line 20)
|
||||
* rl_complete: How Completing Works.
|
||||
(line 49)
|
||||
* rl_complete_internal: Completion Functions.
|
||||
(line 10)
|
||||
* rl_completer_quote_characters: Completion Variables.
|
||||
@@ -4146,7 +4156,7 @@ Function and Variable Index
|
||||
* rl_copy_text: Modifying Text. (line 15)
|
||||
* rl_crlf: Redisplay. (line 30)
|
||||
* rl_delete_text: Modifying Text. (line 11)
|
||||
* rl_deprep_term_function: Readline Variables. (line 139)
|
||||
* rl_deprep_term_function: Readline Variables. (line 144)
|
||||
* rl_deprep_terminal: Terminal Management. (line 13)
|
||||
* rl_ding: Utility Functions. (line 21)
|
||||
* rl_directory_completion_hook: Completion Variables.
|
||||
@@ -4156,16 +4166,16 @@ Function and Variable Index
|
||||
* rl_display_match_list: Utility Functions. (line 28)
|
||||
* rl_do_undo: Allowing Undoing. (line 48)
|
||||
* rl_done: Readline Variables. (line 28)
|
||||
* rl_editing_mode: Readline Variables. (line 237)
|
||||
* rl_editing_mode: Readline Variables. (line 242)
|
||||
* rl_end: Readline Variables. (line 19)
|
||||
* rl_end_undo_group: Allowing Undoing. (line 35)
|
||||
* rl_erase_empty_line: Readline Variables. (line 47)
|
||||
* rl_event_hook: Readline Variables. (line 114)
|
||||
* rl_event_hook: Readline Variables. (line 119)
|
||||
* rl_execute_next: Character Input. (line 26)
|
||||
* rl_executing_keymap: Readline Variables. (line 145)
|
||||
* rl_executing_macro: Readline Variables. (line 153)
|
||||
* rl_executing_keymap: Readline Variables. (line 150)
|
||||
* rl_executing_macro: Readline Variables. (line 158)
|
||||
* rl_expand_prompt: Redisplay. (line 64)
|
||||
* rl_explicit_arg: Readline Variables. (line 228)
|
||||
* rl_explicit_arg: Readline Variables. (line 233)
|
||||
* rl_extend_line_buffer: Utility Functions. (line 12)
|
||||
* rl_filename_completion_desired: Completion Variables.
|
||||
(line 187)
|
||||
@@ -4194,11 +4204,11 @@ Function and Variable Index
|
||||
* rl_get_keymap_by_name: Keymaps. (line 38)
|
||||
* rl_get_keymap_name: Keymaps. (line 43)
|
||||
* rl_get_screen_size: Readline Signal Handling.
|
||||
(line 101)
|
||||
(line 102)
|
||||
* rl_get_termcap: Miscellaneous Functions.
|
||||
(line 42)
|
||||
* rl_getc: Character Input. (line 15)
|
||||
* rl_getc_function: Readline Variables. (line 120)
|
||||
* rl_getc_function: Readline Variables. (line 125)
|
||||
* rl_gnu_readline_p: Readline Variables. (line 78)
|
||||
* rl_ignore_completion_duplicates: Completion Variables.
|
||||
(line 183)
|
||||
@@ -4216,7 +4226,7 @@ Function and Variable Index
|
||||
* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
|
||||
(line 26)
|
||||
* rl_kill_text: Modifying Text. (line 19)
|
||||
* rl_last_func: Readline Variables. (line 100)
|
||||
* rl_last_func: Readline Variables. (line 105)
|
||||
* rl_library_version: Readline Variables. (line 68)
|
||||
* rl_line_buffer: Readline Variables. (line 9)
|
||||
* rl_list_funmap_names: Associating Function Names and Bindings.
|
||||
@@ -4233,7 +4243,7 @@ Function and Variable Index
|
||||
* rl_named_function: Associating Function Names and Bindings.
|
||||
(line 11)
|
||||
* rl_num_chars_to_read: Readline Variables. (line 32)
|
||||
* rl_numeric_arg: Readline Variables. (line 232)
|
||||
* rl_numeric_arg: Readline Variables. (line 237)
|
||||
* rl_on_new_line: Redisplay. (line 15)
|
||||
* rl_on_new_line_with_prompt: Redisplay. (line 19)
|
||||
* rl_outstream: Readline Variables. (line 96)
|
||||
@@ -4242,22 +4252,25 @@ Function and Variable Index
|
||||
* rl_point: Readline Variables. (line 15)
|
||||
* rl_possible_completions: Completion Functions.
|
||||
(line 28)
|
||||
* rl_pre_input_hook: Readline Variables. (line 109)
|
||||
* rl_prep_term_function: Readline Variables. (line 132)
|
||||
* rl_pre_input_hook: Readline Variables. (line 114)
|
||||
* rl_prefer_env_winsize: Readline Variables. (line 100)
|
||||
* rl_prep_term_function: Readline Variables. (line 137)
|
||||
* rl_prep_terminal: Terminal Management. (line 7)
|
||||
* rl_prompt: Readline Variables. (line 53)
|
||||
* rl_push_macro_input: Modifying Text. (line 26)
|
||||
* rl_read_init_file: Binding Keys. (line 101)
|
||||
* rl_read_key: Character Input. (line 7)
|
||||
* rl_readline_name: Readline Variables. (line 87)
|
||||
* rl_readline_state: Readline Variables. (line 156)
|
||||
* rl_readline_state: Readline Variables. (line 161)
|
||||
* rl_readline_version: Readline Variables. (line 71)
|
||||
* rl_redisplay: Redisplay. (line 7)
|
||||
* rl_redisplay_function: Readline Variables. (line 126)
|
||||
* rl_redisplay_function: Readline Variables. (line 131)
|
||||
* rl_replace_line: Utility Functions. (line 7)
|
||||
* rl_reset_after_signal: Readline Signal Handling.
|
||||
(line 80)
|
||||
* rl_reset_line_state: Redisplay. (line 26)
|
||||
* rl_reset_screen_size: Readline Signal Handling.
|
||||
(line 106)
|
||||
* rl_reset_terminal: Terminal Management. (line 28)
|
||||
* rl_resize_terminal: Readline Signal Handling.
|
||||
(line 89)
|
||||
@@ -4272,11 +4285,11 @@ Function and Variable Index
|
||||
* rl_set_screen_size: Readline Signal Handling.
|
||||
(line 93)
|
||||
* rl_set_signals: Readline Signal Handling.
|
||||
(line 108)
|
||||
(line 113)
|
||||
* rl_show_char: Redisplay. (line 33)
|
||||
* rl_special_prefixes: Completion Variables.
|
||||
(line 124)
|
||||
* rl_startup_hook: Readline Variables. (line 105)
|
||||
* rl_startup_hook: Readline Variables. (line 110)
|
||||
* rl_stuff_char: Character Input. (line 19)
|
||||
* rl_terminal_name: Readline Variables. (line 82)
|
||||
* rl_tty_set_default_bindings: Terminal Management. (line 18)
|
||||
@@ -4327,58 +4340,58 @@ Function and Variable Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top1301
|
||||
Node: Command Line Editing1939
|
||||
Node: Introduction and Notation2591
|
||||
Node: Readline Interaction4214
|
||||
Node: Readline Bare Essentials5406
|
||||
Node: Readline Movement Commands7196
|
||||
Node: Readline Killing Commands8162
|
||||
Node: Readline Arguments10083
|
||||
Node: Searching11128
|
||||
Node: Readline Init File13280
|
||||
Node: Readline Init File Syntax14346
|
||||
Node: Conditional Init Constructs26281
|
||||
Node: Sample Init File28815
|
||||
Node: Bindable Readline Commands31933
|
||||
Node: Commands For Moving32991
|
||||
Node: Commands For History33853
|
||||
Node: Commands For Text36978
|
||||
Node: Commands For Killing39705
|
||||
Node: Numeric Arguments41848
|
||||
Node: Commands For Completion42988
|
||||
Node: Keyboard Macros44533
|
||||
Node: Miscellaneous Commands45105
|
||||
Node: Readline vi Mode48467
|
||||
Node: Programming with GNU Readline50291
|
||||
Node: Basic Behavior51266
|
||||
Node: Custom Functions54683
|
||||
Node: Readline Typedefs56167
|
||||
Node: Function Writing57806
|
||||
Node: Readline Variables59113
|
||||
Node: Readline Convenience Functions68574
|
||||
Node: Function Naming69564
|
||||
Node: Keymaps70826
|
||||
Node: Binding Keys72598
|
||||
Node: Associating Function Names and Bindings77145
|
||||
Node: Allowing Undoing79407
|
||||
Node: Redisplay81957
|
||||
Node: Modifying Text85857
|
||||
Node: Character Input87103
|
||||
Node: Terminal Management88901
|
||||
Node: Utility Functions90337
|
||||
Node: Miscellaneous Functions92702
|
||||
Node: Alternate Interface94999
|
||||
Node: A Readline Example97158
|
||||
Node: Readline Signal Handling99061
|
||||
Node: Custom Completers104679
|
||||
Node: How Completing Works105399
|
||||
Node: Completion Functions108713
|
||||
Node: Completion Variables112285
|
||||
Node: A Short Completion Example124475
|
||||
Node: Copying This Manual136648
|
||||
Node: GNU Free Documentation License136910
|
||||
Node: Concept Index159317
|
||||
Node: Function and Variable Index160973
|
||||
Node: Top1303
|
||||
Node: Command Line Editing1941
|
||||
Node: Introduction and Notation2593
|
||||
Node: Readline Interaction4216
|
||||
Node: Readline Bare Essentials5408
|
||||
Node: Readline Movement Commands7198
|
||||
Node: Readline Killing Commands8164
|
||||
Node: Readline Arguments10085
|
||||
Node: Searching11130
|
||||
Node: Readline Init File13282
|
||||
Node: Readline Init File Syntax14348
|
||||
Node: Conditional Init Constructs26283
|
||||
Node: Sample Init File28817
|
||||
Node: Bindable Readline Commands31935
|
||||
Node: Commands For Moving32993
|
||||
Node: Commands For History33855
|
||||
Node: Commands For Text36980
|
||||
Node: Commands For Killing39707
|
||||
Node: Numeric Arguments41850
|
||||
Node: Commands For Completion42990
|
||||
Node: Keyboard Macros44535
|
||||
Node: Miscellaneous Commands45107
|
||||
Node: Readline vi Mode48469
|
||||
Node: Programming with GNU Readline50293
|
||||
Node: Basic Behavior51268
|
||||
Node: Custom Functions54685
|
||||
Node: Readline Typedefs56169
|
||||
Node: Function Writing57808
|
||||
Node: Readline Variables59115
|
||||
Node: Readline Convenience Functions68817
|
||||
Node: Function Naming69807
|
||||
Node: Keymaps71069
|
||||
Node: Binding Keys72841
|
||||
Node: Associating Function Names and Bindings77388
|
||||
Node: Allowing Undoing79650
|
||||
Node: Redisplay82200
|
||||
Node: Modifying Text86100
|
||||
Node: Character Input87346
|
||||
Node: Terminal Management89144
|
||||
Node: Utility Functions90580
|
||||
Node: Miscellaneous Functions92945
|
||||
Node: Alternate Interface95242
|
||||
Node: A Readline Example97401
|
||||
Node: Readline Signal Handling99304
|
||||
Node: Custom Completers105172
|
||||
Node: How Completing Works105892
|
||||
Node: Completion Functions109206
|
||||
Node: Completion Variables112778
|
||||
Node: A Short Completion Example124968
|
||||
Node: Copying This Manual137141
|
||||
Node: GNU Free Documentation License137403
|
||||
Node: Concept Index159810
|
||||
Node: Function and Variable Index161466
|
||||
|
||||
End Tag Table
|
||||
|
||||
+602
-582
File diff suppressed because it is too large
Load Diff
@@ -115,9 +115,10 @@
|
||||
\entry{rl_readline_name}{25}{\code {rl_readline_name}}
|
||||
\entry{rl_instream}{25}{\code {rl_instream}}
|
||||
\entry{rl_outstream}{25}{\code {rl_outstream}}
|
||||
\entry{rl_prefer_env_winsize}{25}{\code {rl_prefer_env_winsize}}
|
||||
\entry{rl_last_func}{25}{\code {rl_last_func}}
|
||||
\entry{rl_startup_hook}{25}{\code {rl_startup_hook}}
|
||||
\entry{rl_pre_input_hook}{25}{\code {rl_pre_input_hook}}
|
||||
\entry{rl_startup_hook}{26}{\code {rl_startup_hook}}
|
||||
\entry{rl_pre_input_hook}{26}{\code {rl_pre_input_hook}}
|
||||
\entry{rl_event_hook}{26}{\code {rl_event_hook}}
|
||||
\entry{rl_getc_function}{26}{\code {rl_getc_function}}
|
||||
\entry{rl_redisplay_function}{26}{\code {rl_redisplay_function}}
|
||||
@@ -127,13 +128,13 @@
|
||||
\entry{rl_binding_keymap}{26}{\code {rl_binding_keymap}}
|
||||
\entry{rl_executing_macro}{26}{\code {rl_executing_macro}}
|
||||
\entry{rl_readline_state}{26}{\code {rl_readline_state}}
|
||||
\entry{rl_explicit_arg}{27}{\code {rl_explicit_arg}}
|
||||
\entry{rl_explicit_arg}{28}{\code {rl_explicit_arg}}
|
||||
\entry{rl_numeric_arg}{28}{\code {rl_numeric_arg}}
|
||||
\entry{rl_editing_mode}{28}{\code {rl_editing_mode}}
|
||||
\entry{rl_add_defun}{28}{\code {rl_add_defun}}
|
||||
\entry{rl_make_bare_keymap}{28}{\code {rl_make_bare_keymap}}
|
||||
\entry{rl_copy_keymap}{28}{\code {rl_copy_keymap}}
|
||||
\entry{rl_make_keymap}{28}{\code {rl_make_keymap}}
|
||||
\entry{rl_make_keymap}{29}{\code {rl_make_keymap}}
|
||||
\entry{rl_discard_keymap}{29}{\code {rl_discard_keymap}}
|
||||
\entry{rl_get_keymap}{29}{\code {rl_get_keymap}}
|
||||
\entry{rl_set_keymap}{29}{\code {rl_set_keymap}}
|
||||
@@ -142,7 +143,7 @@
|
||||
\entry{rl_bind_key}{29}{\code {rl_bind_key}}
|
||||
\entry{rl_bind_key_in_map}{29}{\code {rl_bind_key_in_map}}
|
||||
\entry{rl_bind_key_if_unbound}{29}{\code {rl_bind_key_if_unbound}}
|
||||
\entry{rl_bind_key_if_unbound_in_map}{29}{\code {rl_bind_key_if_unbound_in_map}}
|
||||
\entry{rl_bind_key_if_unbound_in_map}{30}{\code {rl_bind_key_if_unbound_in_map}}
|
||||
\entry{rl_unbind_key}{30}{\code {rl_unbind_key}}
|
||||
\entry{rl_unbind_key_in_map}{30}{\code {rl_unbind_key_in_map}}
|
||||
\entry{rl_unbind_function_in_map}{30}{\code {rl_unbind_function_in_map}}
|
||||
@@ -153,7 +154,7 @@
|
||||
\entry{rl_bind_keyseq_if_unbound}{30}{\code {rl_bind_keyseq_if_unbound}}
|
||||
\entry{rl_bind_keyseq_if_unbound_in_map}{30}{\code {rl_bind_keyseq_if_unbound_in_map}}
|
||||
\entry{rl_generic_bind}{30}{\code {rl_generic_bind}}
|
||||
\entry{rl_parse_and_bind}{30}{\code {rl_parse_and_bind}}
|
||||
\entry{rl_parse_and_bind}{31}{\code {rl_parse_and_bind}}
|
||||
\entry{rl_read_init_file}{31}{\code {rl_read_init_file}}
|
||||
\entry{rl_named_function}{31}{\code {rl_named_function}}
|
||||
\entry{rl_function_of_keyseq}{31}{\code {rl_function_of_keyseq}}
|
||||
@@ -228,12 +229,13 @@
|
||||
\entry{rl_resize_terminal}{41}{\code {rl_resize_terminal}}
|
||||
\entry{rl_set_screen_size}{41}{\code {rl_set_screen_size}}
|
||||
\entry{rl_get_screen_size}{41}{\code {rl_get_screen_size}}
|
||||
\entry{rl_reset_screen_size}{41}{\code {rl_reset_screen_size}}
|
||||
\entry{rl_set_signals}{41}{\code {rl_set_signals}}
|
||||
\entry{rl_clear_signals}{41}{\code {rl_clear_signals}}
|
||||
\entry{rl_complete}{42}{\code {rl_complete}}
|
||||
\entry{rl_completion_entry_function}{42}{\code {rl_completion_entry_function}}
|
||||
\entry{rl_complete_internal}{42}{\code {rl_complete_internal}}
|
||||
\entry{rl_complete}{42}{\code {rl_complete}}
|
||||
\entry{rl_complete}{43}{\code {rl_complete}}
|
||||
\entry{rl_possible_completions}{43}{\code {rl_possible_completions}}
|
||||
\entry{rl_insert_completions}{43}{\code {rl_insert_completions}}
|
||||
\entry{rl_completion_mode}{43}{\code {rl_completion_mode}}
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
\entry {\code {rl_begin_undo_group}}{32}
|
||||
\entry {\code {rl_bind_key}}{29}
|
||||
\entry {\code {rl_bind_key_if_unbound}}{29}
|
||||
\entry {\code {rl_bind_key_if_unbound_in_map}}{29}
|
||||
\entry {\code {rl_bind_key_if_unbound_in_map}}{30}
|
||||
\entry {\code {rl_bind_key_in_map}}{29}
|
||||
\entry {\code {rl_bind_keyseq}}{30}
|
||||
\entry {\code {rl_bind_keyseq_if_unbound}}{30}
|
||||
@@ -127,7 +127,7 @@
|
||||
\entry {\code {rl_clear_message}}{33}
|
||||
\entry {\code {rl_clear_pending_input}}{35}
|
||||
\entry {\code {rl_clear_signals}}{41}
|
||||
\entry {\code {rl_complete}}{42}
|
||||
\entry {\code {rl_complete}}{42, 43}
|
||||
\entry {\code {rl_complete_internal}}{42}
|
||||
\entry {\code {rl_completer_quote_characters}}{45}
|
||||
\entry {\code {rl_completer_word_break_characters}}{45}
|
||||
@@ -166,7 +166,7 @@
|
||||
\entry {\code {rl_executing_keymap}}{26}
|
||||
\entry {\code {rl_executing_macro}}{26}
|
||||
\entry {\code {rl_expand_prompt}}{34}
|
||||
\entry {\code {rl_explicit_arg}}{27}
|
||||
\entry {\code {rl_explicit_arg}}{28}
|
||||
\entry {\code {rl_extend_line_buffer}}{36}
|
||||
\entry {\code {rl_filename_completion_desired}}{46}
|
||||
\entry {\code {rl_filename_completion_function}}{43}
|
||||
@@ -206,7 +206,7 @@
|
||||
\entry {\code {rl_macro_bind}}{37}
|
||||
\entry {\code {rl_macro_dumper}}{37}
|
||||
\entry {\code {rl_make_bare_keymap}}{28}
|
||||
\entry {\code {rl_make_keymap}}{28}
|
||||
\entry {\code {rl_make_keymap}}{29}
|
||||
\entry {\code {rl_mark}}{24}
|
||||
\entry {\code {rl_message}}{33}
|
||||
\entry {\code {rl_modifying}}{32}
|
||||
@@ -216,11 +216,12 @@
|
||||
\entry {\code {rl_on_new_line}}{33}
|
||||
\entry {\code {rl_on_new_line_with_prompt}}{33}
|
||||
\entry {\code {rl_outstream}}{25}
|
||||
\entry {\code {rl_parse_and_bind}}{30}
|
||||
\entry {\code {rl_parse_and_bind}}{31}
|
||||
\entry {\code {rl_pending_input}}{24}
|
||||
\entry {\code {rl_point}}{24}
|
||||
\entry {\code {rl_possible_completions}}{43}
|
||||
\entry {\code {rl_pre_input_hook}}{25}
|
||||
\entry {\code {rl_pre_input_hook}}{26}
|
||||
\entry {\code {rl_prefer_env_winsize}}{25}
|
||||
\entry {\code {rl_prep_term_function}}{26}
|
||||
\entry {\code {rl_prep_terminal}}{35}
|
||||
\entry {\code {rl_prompt}}{25}
|
||||
@@ -235,6 +236,7 @@
|
||||
\entry {\code {rl_replace_line}}{36}
|
||||
\entry {\code {rl_reset_after_signal}}{41}
|
||||
\entry {\code {rl_reset_line_state}}{33}
|
||||
\entry {\code {rl_reset_screen_size}}{41}
|
||||
\entry {\code {rl_reset_terminal}}{35}
|
||||
\entry {\code {rl_resize_terminal}}{41}
|
||||
\entry {\code {rl_restore_prompt}}{33}
|
||||
@@ -248,7 +250,7 @@
|
||||
\entry {\code {rl_set_signals}}{41}
|
||||
\entry {\code {rl_show_char}}{33}
|
||||
\entry {\code {rl_special_prefixes}}{45}
|
||||
\entry {\code {rl_startup_hook}}{25}
|
||||
\entry {\code {rl_startup_hook}}{26}
|
||||
\entry {\code {rl_stuff_char}}{35}
|
||||
\entry {\code {rl_terminal_name}}{25}
|
||||
\entry {\code {rl_tty_set_default_bindings}}{35}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 27 OCT 2005 17:26
|
||||
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 17 NOV 2005 10:43
|
||||
**/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/rlman.texi (./texinfo.tex
|
||||
Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
@@ -183,7 +183,7 @@ gnored[] |
|
||||
[11] [12] [13] [14] [15] [16] [17] [18]) (./rltech.texi Chapter 2 [19] [20]
|
||||
[21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35]
|
||||
[36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46]
|
||||
Underfull \hbox (badness 7379) in paragraph at lines 1807--1812
|
||||
Underfull \hbox (badness 7379) in paragraph at lines 1818--1823
|
||||
[]@textrm If an application-specific com-ple-tion func-tion as-signed to @text
|
||||
tt rl_attempted_
|
||||
|
||||
@@ -201,10 +201,10 @@ tt rl_attempted_
|
||||
Here is how much of TeX's memory you used:
|
||||
1499 strings out of 98002
|
||||
18486 string characters out of 1221987
|
||||
58299 words of memory out of 1000001
|
||||
59444 words of memory out of 1000001
|
||||
2361 multiletter control sequences out of 10000+50000
|
||||
31953 words of font info for 111 fonts, out of 500000 for 1000
|
||||
19 hyphenation exceptions out of 1000
|
||||
15i,8n,17p,281b,695s stack positions out of 1500i,500n,5000p,200000b,5000s
|
||||
|
||||
Output written on rlman.dvi (74 pages, 276580 bytes).
|
||||
Output written on rlman.dvi (74 pages, 277700 bytes).
|
||||
|
||||
@@ -400,7 +400,7 @@ The stdio stream to which Readline performs output.
|
||||
If @code{NULL}, Readline defaults to @var{stdout}.
|
||||
@end deftypevar
|
||||
|
||||
@detypevar int rl_prefer_env_winsize
|
||||
@deftypevar int rl_prefer_env_winsize
|
||||
If non-zero, Readline gives values found in the @env{LINES} and
|
||||
@env{COLUMNS} environment variables greater precedence than values fetched
|
||||
from the kernel when computing the screen dimensions.
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
<HTML>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!-- Created on October, 27 2005 by texi2html 1.64 -->
|
||||
<!-- Created on November, 17 2005 by texi2html 1.64 -->
|
||||
<!--
|
||||
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
||||
Karl Berry <karl@freefriends.org>
|
||||
@@ -2626,7 +2626,7 @@ to permit their use in free software.
|
||||
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
|
||||
</TR></TABLE>
|
||||
<H1>About this document</H1>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>October, 27 2005</I>
|
||||
This document was generated by <I>Chet Ramey</I> on <I>November, 17 2005</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
<P></P>
|
||||
@@ -2788,7 +2788,7 @@ the following structure:
|
||||
<BR>
|
||||
<FONT SIZE="-1">
|
||||
This document was generated
|
||||
by <I>Chet Ramey</I> on <I>October, 27 2005</I>
|
||||
by <I>Chet Ramey</I> on <I>November, 17 2005</I>
|
||||
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
|
||||
"><I>texi2html</I></A>
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ This is rluserman.info, produced by makeinfo version 4.7 from
|
||||
./rluserman.texi.
|
||||
|
||||
This manual describes the end user interface of the GNU Readline
|
||||
Library (version 5.1-beta1, 7 October 2005), a library which aids in the
|
||||
consistency of user interface across discrete programs which provide a
|
||||
command line interface.
|
||||
Library (version 5.1-beta1, 11 November 2005), a library which aids in
|
||||
the consistency of user interface across discrete programs which provide
|
||||
a command line interface.
|
||||
|
||||
Copyright (C) 1988-2005 Free Software Foundation, Inc.
|
||||
|
||||
@@ -1717,30 +1717,30 @@ permit their use in free software.
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top1344
|
||||
Node: Command Line Editing1776
|
||||
Node: Introduction and Notation2419
|
||||
Node: Readline Interaction4043
|
||||
Node: Readline Bare Essentials5236
|
||||
Node: Readline Movement Commands7027
|
||||
Node: Readline Killing Commands7994
|
||||
Node: Readline Arguments9916
|
||||
Node: Searching10962
|
||||
Node: Readline Init File13115
|
||||
Node: Readline Init File Syntax14182
|
||||
Node: Conditional Init Constructs26118
|
||||
Node: Sample Init File28653
|
||||
Node: Bindable Readline Commands31772
|
||||
Node: Commands For Moving32831
|
||||
Node: Commands For History33694
|
||||
Node: Commands For Text36820
|
||||
Node: Commands For Killing39548
|
||||
Node: Numeric Arguments41692
|
||||
Node: Commands For Completion42833
|
||||
Node: Keyboard Macros44379
|
||||
Node: Miscellaneous Commands44952
|
||||
Node: Readline vi Mode48315
|
||||
Node: Copying This Manual49236
|
||||
Node: GNU Free Documentation License49468
|
||||
Node: Top1346
|
||||
Node: Command Line Editing1778
|
||||
Node: Introduction and Notation2421
|
||||
Node: Readline Interaction4045
|
||||
Node: Readline Bare Essentials5238
|
||||
Node: Readline Movement Commands7029
|
||||
Node: Readline Killing Commands7996
|
||||
Node: Readline Arguments9918
|
||||
Node: Searching10964
|
||||
Node: Readline Init File13117
|
||||
Node: Readline Init File Syntax14184
|
||||
Node: Conditional Init Constructs26120
|
||||
Node: Sample Init File28655
|
||||
Node: Bindable Readline Commands31774
|
||||
Node: Commands For Moving32833
|
||||
Node: Commands For History33696
|
||||
Node: Commands For Text36822
|
||||
Node: Commands For Killing39550
|
||||
Node: Numeric Arguments41694
|
||||
Node: Commands For Completion42835
|
||||
Node: Keyboard Macros44381
|
||||
Node: Miscellaneous Commands44954
|
||||
Node: Readline vi Mode48317
|
||||
Node: Copying This Manual49238
|
||||
Node: GNU Free Documentation License49470
|
||||
|
||||
End Tag Table
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 27 OCT 2005 17:26
|
||||
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 17 NOV 2005 10:43
|
||||
**/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi
|
||||
(/usr/homes/chet/src/bash/src/lib/readline/doc/rluserman.texi (./texinfo.tex
|
||||
Loading texinfo [version 2003-02-03.16]: Basics,
|
||||
@@ -186,10 +186,10 @@ gnored[] |
|
||||
Here is how much of TeX's memory you used:
|
||||
1405 strings out of 98002
|
||||
16392 string characters out of 1221987
|
||||
44924 words of memory out of 1000001
|
||||
44928 words of memory out of 1000001
|
||||
2276 multiletter control sequences out of 10000+50000
|
||||
31953 words of font info for 111 fonts, out of 500000 for 1000
|
||||
19 hyphenation exceptions out of 1000
|
||||
13i,8n,10p,285b,695s stack positions out of 1500i,500n,5000p,200000b,5000s
|
||||
|
||||
Output written on rluserman.dvi (32 pages, 92856 bytes).
|
||||
Output written on rluserman.dvi (32 pages, 92872 bytes).
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
%DVIPSWebPage: (www.radicaleye.com)
|
||||
%DVIPSCommandLine: dvips -D 300 -o rluserman.ps rluserman.dvi
|
||||
%DVIPSParameters: dpi=300, compressed
|
||||
%DVIPSSource: TeX output 2005.10.27:1726
|
||||
%DVIPSSource: TeX output 2005.11.17:1043
|
||||
%%BeginProcSet: texc.pro
|
||||
%!
|
||||
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
|
||||
@@ -3042,41 +3042,42 @@ TeXDict begin
|
||||
TeXDict begin 1 0 bop 75 659 a Fp(GNU)33 b(Readline)f(Library)f(User)i
|
||||
(In)m(terface)p 75 709 1800 17 v 686 757 a Fo(Edition)15
|
||||
b(5.1-b)q(eta1,)e(for)i Fn(Readline)f(Library)g Fo(V)l(ersion)h(5.1-b)q
|
||||
(eta1.)1608 811 y(Octob)q(er)h(2005)75 2467 y Fm(Chet)22
|
||||
b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 b(Reserv)n(e)f(Univ)n
|
||||
(ersit)n(y)75 2534 y(Brian)g(F)-6 b(o)n(x,)23 b(F)-6
|
||||
b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)p 75 2570
|
||||
1800 9 v eop end
|
||||
(eta1.)1569 811 y(No)o(v)o(em)o(b)q(er)g(2005)75 2467
|
||||
y Fm(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
|
||||
b(Reserv)n(e)f(Univ)n(ersit)n(y)75 2534 y(Brian)g(F)-6
|
||||
b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)p
|
||||
75 2570 1800 9 v eop end
|
||||
%%Page: 2 2
|
||||
TeXDict begin 2 1 bop 75 1512 a Fo(This)19 b(man)o(ual)f(describ)q(es)i
|
||||
(the)f(end)h(user)f(in)o(terface)g(of)f(the)i(GNU)f(Readline)g(Library)
|
||||
g(\(v)o(ersion)f(5.1-)75 1567 y(b)q(eta1,)k(7)e(Octob)q(er)h(2005\),)f
|
||||
(a)h(library)e(whic)o(h)i(aids)f(in)h(the)g(consistency)f(of)h(user)g
|
||||
(in)o(terface)f(across)75 1621 y(discrete)15 b(programs)f(whic)o(h)h
|
||||
(pro)o(vide)g(a)g(command)g(line)g(in)o(terface.)75 1689
|
||||
y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fl(\015)g Fo(1988-2005)e(F)l
|
||||
(ree)i(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)75 1756
|
||||
y(P)o(ermission)h(is)g(gran)o(ted)h(to)f(mak)o(e)h(and)g(distribute)g
|
||||
(v)o(erbatim)e(copies)i(of)g(this)g(man)o(ual)f(pro)o(vided)h(the)75
|
||||
1811 y(cop)o(yrigh)o(t)e(notice)h(and)g(this)g(p)q(ermission)f(notice)h
|
||||
(are)g(preserv)o(ed)h(on)f(all)f(copies.)195 1878 y(P)o(ermission)i(is)
|
||||
h(gran)o(ted)g(to)g(cop)o(y)l(,)h(distribute)f(and/or)g(mo)q(dify)g
|
||||
(this)g(do)q(cumen)o(t)h(under)195 1933 y(the)h(terms)f(of)h(the)g(GNU)
|
||||
g(F)l(ree)g(Do)q(cumen)o(tation)f(License,)i(V)l(ersion)f(1.1)f(or)g
|
||||
(an)o(y)h(later)195 1988 y(v)o(ersion)13 b(published)h(b)o(y)g(the)g(F)
|
||||
l(ree)f(Soft)o(w)o(are)g(F)l(oundation;)g(with)g(no)g(In)o(v)m(arian)o
|
||||
(t)h(Sections,)195 2042 y(with)h(the)g(F)l(ron)o(t-Co)o(v)o(er)e(texts)
|
||||
i(b)q(eing)h(\\A)f(GNU)g(Man)o(ual,")f(and)h(with)g(the)g(Bac)o(k-Co)o
|
||||
(v)o(er)195 2097 y(T)l(exts)h(as)g(in)g(\(a\))f(b)q(elo)o(w.)23
|
||||
b(A)16 b(cop)o(y)g(of)g(the)g(license)g(is)g(included)h(in)f(the)g
|
||||
(section)g(en)o(titled)195 2152 y(\\GNU)f(F)l(ree)g(Do)q(cumen)o
|
||||
(tation)f(License.")195 2219 y(\(a\))k(The)h(FSF's)f(Bac)o(k-Co)o(v)o
|
||||
(er)g(T)l(ext)h(is:)27 b(\\Y)l(ou)19 b(ha)o(v)o(e)g(freedom)g(to)f(cop)
|
||||
o(y)h(and)g(mo)q(dify)195 2274 y(this)d(GNU)g(Man)o(ual,)f(lik)o(e)g
|
||||
(GNU)h(soft)o(w)o(are.)22 b(Copies)16 b(published)g(b)o(y)h(the)f(F)l
|
||||
(ree)g(Soft)o(w)o(are)195 2329 y(F)l(oundation)f(raise)f(funds)i(for)e
|
||||
(GNU)h(dev)o(elopmen)o(t.")75 2451 y(Published)g(b)o(y)h(the)f(F)l(ree)
|
||||
g(Soft)o(w)o(are)f(F)l(oundation)75 2506 y(59)h(T)l(emple)g(Place,)f
|
||||
g(\(v)o(ersion)f(5.1-)75 1567 y(b)q(eta1,)e(11)g(No)o(v)o(em)o(b)q(er)g
|
||||
(2005\),)f(a)h(library)g(whic)o(h)g(aids)g(in)g(the)h(consistency)f(of)
|
||||
g(user)h(in)o(terface)f(across)75 1621 y(discrete)f(programs)f(whic)o
|
||||
(h)h(pro)o(vide)g(a)g(command)g(line)g(in)o(terface.)75
|
||||
1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289 1689 y Fl(\015)g
|
||||
Fo(1988-2005)e(F)l(ree)i(Soft)o(w)o(are)f(F)l(oundation,)g(Inc.)75
|
||||
1756 y(P)o(ermission)h(is)g(gran)o(ted)h(to)f(mak)o(e)h(and)g
|
||||
(distribute)g(v)o(erbatim)e(copies)i(of)g(this)g(man)o(ual)f(pro)o
|
||||
(vided)h(the)75 1811 y(cop)o(yrigh)o(t)e(notice)h(and)g(this)g(p)q
|
||||
(ermission)f(notice)h(are)g(preserv)o(ed)h(on)f(all)f(copies.)195
|
||||
1878 y(P)o(ermission)i(is)h(gran)o(ted)g(to)g(cop)o(y)l(,)h(distribute)
|
||||
f(and/or)g(mo)q(dify)g(this)g(do)q(cumen)o(t)h(under)195
|
||||
1933 y(the)h(terms)f(of)h(the)g(GNU)g(F)l(ree)g(Do)q(cumen)o(tation)f
|
||||
(License,)i(V)l(ersion)f(1.1)f(or)g(an)o(y)h(later)195
|
||||
1988 y(v)o(ersion)13 b(published)h(b)o(y)g(the)g(F)l(ree)f(Soft)o(w)o
|
||||
(are)g(F)l(oundation;)g(with)g(no)g(In)o(v)m(arian)o(t)h(Sections,)195
|
||||
2042 y(with)h(the)g(F)l(ron)o(t-Co)o(v)o(er)e(texts)i(b)q(eing)h(\\A)f
|
||||
(GNU)g(Man)o(ual,")f(and)h(with)g(the)g(Bac)o(k-Co)o(v)o(er)195
|
||||
2097 y(T)l(exts)h(as)g(in)g(\(a\))f(b)q(elo)o(w.)23 b(A)16
|
||||
b(cop)o(y)g(of)g(the)g(license)g(is)g(included)h(in)f(the)g(section)g
|
||||
(en)o(titled)195 2152 y(\\GNU)f(F)l(ree)g(Do)q(cumen)o(tation)f
|
||||
(License.")195 2219 y(\(a\))k(The)h(FSF's)f(Bac)o(k-Co)o(v)o(er)g(T)l
|
||||
(ext)h(is:)27 b(\\Y)l(ou)19 b(ha)o(v)o(e)g(freedom)g(to)f(cop)o(y)h
|
||||
(and)g(mo)q(dify)195 2274 y(this)d(GNU)g(Man)o(ual,)f(lik)o(e)g(GNU)h
|
||||
(soft)o(w)o(are.)22 b(Copies)16 b(published)g(b)o(y)h(the)f(F)l(ree)g
|
||||
(Soft)o(w)o(are)195 2329 y(F)l(oundation)f(raise)f(funds)i(for)e(GNU)h
|
||||
(dev)o(elopmen)o(t.")75 2451 y(Published)g(b)o(y)h(the)f(F)l(ree)g
|
||||
(Soft)o(w)o(are)f(F)l(oundation)75 2506 y(59)h(T)l(emple)g(Place,)f
|
||||
(Suite)i(330,)75 2560 y(Boston,)e(MA)h(02111-1307)75
|
||||
2615 y(USA)p eop end
|
||||
%%Page: -1 3
|
||||
|
||||
@@ -845,6 +845,7 @@ gen_wordlist_matches (cs, text)
|
||||
}
|
||||
sl->list[sl->list_len = nw] = (char *)NULL;
|
||||
|
||||
dispose_words (l2);
|
||||
FREE (ntxt);
|
||||
return sl;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user