commit bash-20070329 snapshot

This commit is contained in:
Chet Ramey
2011-12-07 09:05:53 -05:00
parent 28157acd2d
commit d3ad40dee6
265 changed files with 56692 additions and 40436 deletions
+1 -1
View File
@@ -184,7 +184,7 @@ mbskipname (pat, dname)
{
int ret;
wchar_t *pat_wc, *dn_wc;
size_t pat_n, dn_n, n;
size_t pat_n, dn_n;
pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
dn_n = xdupmbstowcs (&dn_wc, NULL, dname);
+5 -3
View File
@@ -20,9 +20,11 @@
#include "stdc.h"
#define GX_MARKDIRS 0x01 /* mark directory names with trailing `/' */
#define GX_NOCASE 0x02 /* ignore case */
#define GX_MATCHDOT 0x04 /* match `.' literally */
#define GX_MARKDIRS 0x001 /* mark directory names with trailing `/' */
#define GX_NOCASE 0x002 /* ignore case */
#define GX_MATCHDOT 0x004 /* match `.' literally */
#define GX_ALLDIRS 0x008 /* match all directories */
#define GX_MATCHDIRS 0x010 /* return only matching directory names */
extern int glob_pattern_p __P((const char *));
extern char **glob_vector __P((char *, char *, int));
-1
View File
@@ -247,7 +247,6 @@ rangecmp_wc (c1, c2)
{
static wchar_t s1[2] = { L' ', L'\0' };
static wchar_t s2[2] = { L' ', L'\0' };
int ret;
if (c1 == c2)
return 0;
+2 -1
View File
@@ -145,7 +145,8 @@ xdupmbstowcs (destp, indicesp, src)
/* In case SRC or DESP is NULL, conversion doesn't take place. */
if (src == NULL || destp == NULL)
{
*destp = NULL;
if (destp)
*destp = NULL;
return (size_t)-1;
}
+7 -3
View File
@@ -29,10 +29,14 @@ VPATH = $(srcdir)
prefix = @prefix@
exec_prefix = @exec_prefix@
transform = @program_transform_name@
datarootdir = @datarootdir@
libdir = @libdir@
includedir = @includedir@
datadir = @datadir@
localedir = $(datadir)/locale
localedir = @localedir@
gettextsrcdir = $(datadir)/gettext/intl
aliaspath = $(localedir)
subdir = intl
@@ -58,7 +62,7 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
-Dset_relocation_prefix=libintl_set_relocation_prefix \
-Drelocate=libintl_relocate \
-DDEPENDS_ON_LIBICONV=1 @DEFS@ @LOCAL_DEFS@
-DDEPENDS_ON_LIBICONV=1 @DEFS@ ${LOCAL_DEFS}
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
@@ -229,7 +233,7 @@ libgnuintl.h: $(srcdir)/libgnuintl.h.in
cp $(srcdir)/libgnuintl.h.in libgnuintl.h
libintl.h: libgnuintl.h
cp libgnuintl.h libintl.h
cmp libgnuintl.h libintl.h || cp libgnuintl.h libintl.h
charset.alias: $(srcdir)/config.charset
$(SHELL) $(srcdir)/config.charset '@host@' > t-$@
+2 -2
View File
@@ -231,7 +231,7 @@ static int maxbuck; /* highest bucket receiving allocation request. */
static char *memtop; /* top of heap */
static unsigned long binsizes[NBUCKETS] = {
static const unsigned long binsizes[NBUCKETS] = {
8UL, 16UL, 32UL, 64UL, 128UL, 256UL, 512UL, 1024UL, 2048UL, 4096UL,
8192UL, 16384UL, 32768UL, 65536UL, 131072UL, 262144UL, 524288UL,
1048576UL, 2097152UL, 4194304UL, 8388608UL, 16777216UL, 33554432UL,
@@ -312,7 +312,7 @@ xbotch (mem, e, s, file, line)
int line;
{
fprintf (stderr, _("\r\nmalloc: %s:%d: assertion botched\r\n"),
file ? file : "unknown", line);
file ? file : _("unknown"), line);
#ifdef MALLOC_REGISTER
if (mem != NULL && malloc_register)
mregister_describe_mem (mem, stderr);
+1
View File
@@ -28,6 +28,7 @@
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <string.h>
#include "mstats.h"
+1
View File
@@ -22,6 +22,7 @@
#endif
#include <stdio.h>
#include <string.h>
#include "imalloc.h"
#include "table.h"
+6 -6
View File
@@ -43,17 +43,17 @@ watch_warn (addr, file, line, type, data)
char *tag;
if (type == W_ALLOC)
tag = _("allocated");
tag = "allocated";
else if (type == W_FREE)
tag = _("freed");
tag = "freed";
else if (type == W_REALLOC)
tag = _("requesting resize");
tag = "requesting resize";
else if (type == W_RESIZED)
tag = _("just resized");
tag = "just resized";
else
tag = _("bug: unknown operation");
tag = "bug: unknown operation";
fprintf (stderr, _("malloc: watch alert: %p %s "), addr, tag);
fprintf (stderr, "malloc: watch alert: %p %s ", addr, tag);
if (data != (unsigned long)-1)
fprintf (stderr, "(size %lu) ", data);
fprintf (stderr, "from '%s:%d'\n", file ? file : "unknown", line);
+4
View File
@@ -5,6 +5,10 @@
#
# NOTE: we ignore `realloc' tags because they're just extra information
#
# Copyright (c) 2001 Chester Ramey
# Permission is hereby granted to deal in this Software without restriction.
# THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
#
# Chet Ramey
# chet@po.cwru.edu
#
+2
View File
@@ -33,6 +33,8 @@ VPATH = .:@srcdir@
topdir = @top_srcdir@
BUILD_DIR = @BUILD_DIR@
datarootdir = @datarootdir@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
+21 -19
View File
@@ -80,7 +80,7 @@ static int glean_key_from_name PARAMS((char *));
static int find_boolean_var PARAMS((const char *));
static char *_rl_get_string_variable_value PARAMS((const char *));
static int substring_member_of_array PARAMS((char *, const char **));
static int substring_member_of_array PARAMS((const char *, const char * const *));
static int currently_reading_init_file;
@@ -370,7 +370,10 @@ rl_generic_bind (type, keyseq, data, map)
ic = uc;
if (ic < 0 || ic >= KEYMAP_SIZE)
return -1;
{
free (keys);
return -1;
}
if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
{
@@ -918,10 +921,10 @@ _rl_init_file_error (msg)
const char *msg;
{
if (currently_reading_init_file)
fprintf (stderr, "readline: %s: line %d: %s\n", current_readline_init_file,
_rl_errmsg ("%s: line %d: %s\n", current_readline_init_file,
current_readline_init_lineno, msg);
else
fprintf (stderr, "readline: %s\n", msg);
_rl_errmsg ("%s", msg);
}
/* **************************************************************** */
@@ -933,11 +936,11 @@ _rl_init_file_error (msg)
typedef int _rl_parser_func_t PARAMS((char *));
/* Things that mean `Control'. */
const char *_rl_possible_control_prefixes[] = {
const char * const _rl_possible_control_prefixes[] = {
"Control-", "C-", "CTRL-", (const char *)NULL
};
const char *_rl_possible_meta_prefixes[] = {
const char * const _rl_possible_meta_prefixes[] = {
"Meta", "M-", (const char *)NULL
};
@@ -1096,8 +1099,8 @@ parser_include (args)
}
/* Associate textual names with actual functions. */
static struct {
const char *name;
static const struct {
const char * const name;
_rl_parser_func_t *function;
} parser_directives [] = {
{ "if", parser_if },
@@ -1403,8 +1406,8 @@ rl_parse_and_bind (string)
#define V_SPECIAL 0x1
static struct {
const char *name;
static const struct {
const char * const name;
int *value;
int flags;
} boolean_varlist [] = {
@@ -1491,8 +1494,8 @@ static int sv_editmode PARAMS((const char *));
static int sv_isrchterm PARAMS((const char *));
static int sv_keymap PARAMS((const char *));
static struct {
const char *name;
static const struct {
const char * const name;
int flags;
_rl_sv_func_t *set_func;
} string_varlist[] = {
@@ -1534,7 +1537,6 @@ rl_variable_value (name)
const char *name;
{
register int i;
int v;
/* Check for simple variables first. */
i = find_boolean_var (name);
@@ -1699,11 +1701,11 @@ sv_isrchterm (value)
For example, `Space' returns ' '. */
typedef struct {
const char *name;
const char * const name;
int value;
} assoc_list;
static assoc_list name_key_alist[] = {
static const assoc_list name_key_alist[] = {
{ "DEL", 0x7f },
{ "ESC", '\033' },
{ "Escape", '\033' },
@@ -1732,8 +1734,8 @@ glean_key_from_name (name)
}
/* Auxiliary functions to manage keymaps. */
static struct {
const char *name;
static const struct {
const char * const name;
Keymap map;
} keymap_names[] = {
{ "emacs", emacs_standard_keymap },
@@ -2296,8 +2298,8 @@ rl_dump_variables (count, key)
/* Return non-zero if any members of ARRAY are a substring in STRING. */
static int
substring_member_of_array (string, array)
char *string;
const char **array;
const char *string;
const char * const *array;
{
while (*array)
{
+61 -65
View File
@@ -111,7 +111,7 @@ rl_callback_read_char ()
if (rl_linefunc == NULL)
{
fprintf (stderr, "readline: readline_callback_read_char() called with no handler!\r\n");
_rl_errmsg ("readline_callback_read_char() called with no handler!");
abort ();
}
@@ -125,73 +125,73 @@ rl_callback_read_char ()
return;
}
if (RL_ISSTATE (RL_STATE_ISEARCH))
do
{
eof = _rl_isearch_callback (_rl_iscxt);
if (eof == 0 && (RL_ISSTATE (RL_STATE_ISEARCH) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
rl_callback_read_char ();
return;
}
else if (RL_ISSTATE (RL_STATE_NSEARCH))
{
eof = _rl_nsearch_callback (_rl_nscxt);
return;
}
else if (RL_ISSTATE (RL_STATE_NUMERICARG))
{
eof = _rl_arg_callback (_rl_argcxt);
if (eof == 0 && (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
rl_callback_read_char ();
/* XXX - this should handle _rl_last_command_was_kill better */
else if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
_rl_internal_char_cleanup ();
return;
}
else if (RL_ISSTATE (RL_STATE_MULTIKEY))
{
eof = _rl_dispatch_callback (_rl_kscxt); /* For now */
while ((eof == -1 || eof == -2) && RL_ISSTATE (RL_STATE_MULTIKEY) && _rl_kscxt && (_rl_kscxt->flags & KSEQ_DISPATCHED))
eof = _rl_dispatch_callback (_rl_kscxt);
if (RL_ISSTATE (RL_STATE_MULTIKEY) == 0)
if (RL_ISSTATE (RL_STATE_ISEARCH))
{
_rl_internal_char_cleanup ();
_rl_want_redisplay = 1;
eof = _rl_isearch_callback (_rl_iscxt);
if (eof == 0 && (RL_ISSTATE (RL_STATE_ISEARCH) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
rl_callback_read_char ();
return;
}
}
else if (_rl_callback_func)
{
/* This allows functions that simply need to read an additional character
(like quoted-insert) to register a function to be called when input is
available. _rl_callback_data is simply a pointer to a struct that has
the argument count originally passed to the registering function and
space for any additional parameters. */
eof = (*_rl_callback_func) (_rl_callback_data);
/* If the function `deregisters' itself, make sure the data is cleaned
up. */
if (_rl_callback_func == 0)
else if (RL_ISSTATE (RL_STATE_NSEARCH))
{
if (_rl_callback_data)
eof = _rl_nsearch_callback (_rl_nscxt);
return;
}
else if (RL_ISSTATE (RL_STATE_NUMERICARG))
{
eof = _rl_arg_callback (_rl_argcxt);
if (eof == 0 && (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
rl_callback_read_char ();
/* XXX - this should handle _rl_last_command_was_kill better */
else if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
_rl_internal_char_cleanup ();
return;
}
else if (RL_ISSTATE (RL_STATE_MULTIKEY))
{
eof = _rl_dispatch_callback (_rl_kscxt); /* For now */
while ((eof == -1 || eof == -2) && RL_ISSTATE (RL_STATE_MULTIKEY) && _rl_kscxt && (_rl_kscxt->flags & KSEQ_DISPATCHED))
eof = _rl_dispatch_callback (_rl_kscxt);
if (RL_ISSTATE (RL_STATE_MULTIKEY) == 0)
{
_rl_callback_data_dispose (_rl_callback_data);
_rl_callback_data = 0;
_rl_internal_char_cleanup ();
_rl_want_redisplay = 1;
}
_rl_internal_char_cleanup ();
}
}
else
eof = readline_internal_char ();
else if (_rl_callback_func)
{
/* This allows functions that simply need to read an additional
character (like quoted-insert) to register a function to be
called when input is available. _rl_callback_data is simply a
pointer to a struct that has the argument count originally
passed to the registering function and space for any additional
parameters. */
eof = (*_rl_callback_func) (_rl_callback_data);
/* If the function `deregisters' itself, make sure the data is
cleaned up. */
if (_rl_callback_func == 0)
{
if (_rl_callback_data)
{
_rl_callback_data_dispose (_rl_callback_data);
_rl_callback_data = 0;
}
_rl_internal_char_cleanup ();
}
}
else
eof = readline_internal_char ();
if (rl_done == 0 && _rl_want_redisplay)
{
(*rl_redisplay_function) ();
_rl_want_redisplay = 0;
}
if (rl_done == 0 && _rl_want_redisplay)
{
(*rl_redisplay_function) ();
_rl_want_redisplay = 0;
}
/* We loop in case some function has pushed input back with rl_execute_next. */
for (;;)
{
if (rl_done)
{
line = readline_internal_teardown (eof);
@@ -213,11 +213,8 @@ rl_callback_read_char ()
if (in_handler == 0 && rl_linefunc)
_rl_callback_newline ();
}
if (rl_pending_input || _rl_pushed_input_available () || RL_ISSTATE (RL_STATE_MACROINPUT))
eof = readline_internal_char ();
else
break;
}
while (rl_pending_input || _rl_pushed_input_available () || RL_ISSTATE (RL_STATE_MACROINPUT));
}
/* Remove the handler, and make sure the terminal is in its normal state. */
@@ -254,8 +251,7 @@ _rl_callback_data_alloc (count)
void _rl_callback_data_dispose (arg)
_rl_callback_generic_arg *arg;
{
if (arg)
free (arg);
xfree (arg);
}
#endif
+31 -10
View File
@@ -1,6 +1,6 @@
/* complete.c -- filename completion for readline. */
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -325,6 +325,12 @@ int rl_completion_mark_symlink_dirs;
/* If non-zero, inhibit completion (temporarily). */
int rl_inhibit_completion;
/* Set to the last key used to invoke one of the completion functions */
int rl_completion_invoking_key;
/* If non-zero, sort the completion matches. On by default. */
int rl_sort_completion_matches = 1;
/* Variables local to this file. */
/* Local variable states what happened during the last completion attempt. */
@@ -343,6 +349,8 @@ int
rl_complete (ignore, invoking_key)
int ignore, invoking_key;
{
rl_completion_invoking_key = invoking_key;
if (rl_inhibit_completion)
return (_rl_insert_char (ignore, invoking_key));
else if (rl_last_func == rl_complete && !completion_changed_buffer)
@@ -360,6 +368,7 @@ int
rl_possible_completions (ignore, invoking_key)
int ignore, invoking_key;
{
rl_completion_invoking_key = invoking_key;
return (rl_complete_internal ('?'));
}
@@ -367,6 +376,7 @@ int
rl_insert_completions (ignore, invoking_key)
int ignore, invoking_key;
{
rl_completion_invoking_key = invoking_key;
return (rl_complete_internal ('*'));
}
@@ -406,6 +416,7 @@ set_completion_defaults (what_to_do)
rl_filename_quoting_desired = 1;
rl_completion_type = what_to_do;
rl_completion_suppress_append = rl_completion_suppress_quote = 0;
rl_completion_append_character = ' ';
/* The completion entry function may optionally change this. */
rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
@@ -428,7 +439,7 @@ get_y_or_n (for_pager)
return (1);
if (c == 'n' || c == 'N' || c == RUBOUT)
return (0);
if (c == ABORT_CHAR)
if (c == ABORT_CHAR || c < 0)
_rl_abort_internal ();
if (for_pager && (c == NEWLINE || c == RETURN))
return (2);
@@ -481,6 +492,13 @@ stat_char (filename)
struct stat finfo;
int character, r;
/* Short-circuit a //server on cygwin, since that will always behave as
a directory. */
#if __CYGWIN__
if (filename[0] == '/' && filename[1] == '/' && strchr (filename+2, '/') == 0)
return '/';
#endif
#if defined (HAVE_LSTAT) && defined (S_ISLNK)
r = lstat (filename, &finfo);
#else
@@ -992,7 +1010,7 @@ remove_duplicate_matches (matches)
/* Sort the array without matches[0], since we need it to
stay in place no matter what. */
if (i)
if (i && rl_sort_completion_matches)
qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
/* Remember the lowest common denominator for it may be unique. */
@@ -1104,7 +1122,8 @@ compute_lcd_of_matches (match_list, matches, text)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
mbstate_t ps_back = ps1;
mbstate_t ps_back;
ps_back = ps1;
if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
break;
else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
@@ -1159,7 +1178,8 @@ compute_lcd_of_matches (match_list, matches, text)
}
/* sort the list to get consistent answers. */
qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
if (rl_sort_completion_matches)
qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
si = strlen (text);
if (si <= low)
@@ -1277,7 +1297,7 @@ rl_display_match_list (matches, len, max)
0 < len <= limit implies count = 1. */
/* Sort the items if they are not already sorted. */
if (rl_ignore_completion_duplicates == 0)
if (rl_ignore_completion_duplicates == 0 && rl_sort_completion_matches)
qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
rl_crlf ();
@@ -1741,7 +1761,7 @@ rl_complete_internal (what_to_do)
break;
default:
fprintf (stderr, "\r\nreadline: bad value %d for what_to_do in rl_complete\n", what_to_do);
_rl_ttymsg ("bad value %d for what_to_do in rl_complete", what_to_do);
rl_ding ();
FREE (saved_line_buffer);
RL_UNSETSTATE(RL_STATE_COMPLETING);
@@ -1896,7 +1916,6 @@ rl_filename_completion_function (text, state)
static char *filename = (char *)NULL;
static char *dirname = (char *)NULL;
static char *users_dirname = (char *)NULL;
static char *orig_filename = (char *)NULL;
static int filename_len;
char *temp;
int dirlen;
@@ -2109,8 +2128,8 @@ rl_filename_completion_function (text, state)
hit the end of the match list, we restore the original unmatched text,
ring the bell, and reset the counter to zero. */
int
rl_menu_complete (count, ignore)
int count, ignore;
rl_menu_complete (count, invoking_key)
int count, invoking_key;
{
rl_compentry_func_t *our_func;
int matching_filenames, found_quote;
@@ -2135,6 +2154,8 @@ rl_menu_complete (count, ignore)
match_list_index = match_list_size = 0;
matches = (char **)NULL;
rl_completion_invoking_key = invoking_key;
/* Only the completion entry function can change these. */
set_completion_defaults ('%');
+235 -104
View File
@@ -1,6 +1,6 @@
/* display.c -- readline redisplay facility. */
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
/* Copyright (C) 1987-2007 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -59,34 +59,54 @@
extern char *strchr (), *strrchr ();
#endif /* !strchr && !__STDC__ */
#if defined (HACK_TERMCAP_MOTION)
extern char *_rl_term_forward_char;
#endif
static void update_line PARAMS((char *, char *, int, int, int, int));
static void space_to_eol PARAMS((int));
static void delete_chars PARAMS((int));
static void insert_some_chars PARAMS((char *, int, int));
static void cr PARAMS((void));
/* State of visible and invisible lines. */
struct line_state
{
char *line;
int *lbreaks;
int lbsize;
#if defined (HANDLE_MULTIBYTE)
int *wrapped_line;
int wbsize;
#endif
};
/* The line display buffers. One is the line currently displayed on
the screen. The other is the line about to be displayed. */
static struct line_state line_state_array[2];
static struct line_state *line_state_visible = &line_state_array[0];
static struct line_state *line_state_invisible = &line_state_array[1];
/* Backwards-compatible names. */
#define inv_lbreaks (line_state_invisible->lbreaks)
#define inv_lbsize (line_state_invisible->lbsize)
#define vis_lbreaks (line_state_visible->lbreaks)
#define vis_lbsize (line_state_visible->lbsize)
#define visible_line (line_state_visible->line)
#define invisible_line (line_state_invisible->line)
#if defined (HANDLE_MULTIBYTE)
static int _rl_col_width PARAMS((const char *, int, int));
static int *_rl_wrapped_line;
#else
# define _rl_col_width(l, s, e) (((e) <= (s)) ? 0 : (e) - (s))
#endif
static int *inv_lbreaks, *vis_lbreaks;
static int inv_lbsize, vis_lbsize;
/* Heuristic used to decide whether it is faster to move from CUR to NEW
by backing up or outputting a carriage return and moving forward. */
by backing up or outputting a carriage return and moving forward. CUR
and NEW are either both buffer positions or absolute screen positions. */
#define CR_FASTER(new, cur) (((new) + 1) < ((cur) - (new)))
/* _rl_last_c_pos is an absolute cursor position in multibyte locales and a
buffer index in others. This macro is used when deciding whether the
current cursor position is in the middle of a prompt string containing
invisible characters. */
invisible characters. XXX - might need to take `modmark' into account. */
#define PROMPT_ENDING_INDEX \
((MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? prompt_physical_chars : prompt_last_invisible+1)
@@ -143,6 +163,8 @@ int _rl_last_c_pos = 0;
int _rl_last_v_pos = 0;
static int cpos_adjusted;
static int cpos_buffer_position;
static int prompt_multibyte_chars;
/* Number of lines currently on screen minus 1. */
int _rl_vis_botlin = 0;
@@ -152,11 +174,6 @@ int _rl_vis_botlin = 0;
doing horizontal scrolling. It shifts in thirds of a screenwidth. */
static int last_lmargin;
/* The line display buffers. One is the line currently displayed on
the screen. The other is the line about to be displayed. */
static char *visible_line = (char *)NULL;
static char *invisible_line = (char *)NULL;
/* A buffer for `modeline' messages. */
static char msg_buf[128];
@@ -170,6 +187,7 @@ static int line_size = 1024;
include invisible characters. */
static char *local_prompt, *local_prompt_prefix;
static int local_prompt_len;
static int prompt_visible_length, prompt_prefix_length;
/* The number of invisible characters in the line currently being
@@ -196,6 +214,10 @@ static int prompt_last_screen_line;
static int prompt_physical_chars;
/* set to a non-zero value by rl_redisplay if we are marking modified history
lines and the current line is so marked. */
static int modmark;
/* Variables to save and restore prompt and display information. */
/* These are getting numerous enough that it's time to create a struct. */
@@ -205,6 +227,7 @@ static char *saved_local_prefix;
static int saved_last_invisible;
static int saved_visible_length;
static int saved_prefix_length;
static int saved_local_length;
static int saved_invis_chars_first_line;
static int saved_physical_chars;
@@ -282,6 +305,11 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
*r++ = *p++;
if (!ignoring)
{
/* rl ends up being assigned to prompt_visible_length,
which is the number of characters in the buffer that
contribute to characters on the screen, which might
not be the same as the number of physical characters
on the screen in the presence of multibyte characters */
rl += ind - pind;
physchars += _rl_col_width (pmt, pind, ind);
}
@@ -366,6 +394,7 @@ rl_expand_prompt (prompt)
FREE (local_prompt_prefix);
local_prompt = local_prompt_prefix = (char *)0;
local_prompt_len = 0;
prompt_last_invisible = prompt_invis_chars_first_line = 0;
prompt_visible_length = prompt_physical_chars = 0;
@@ -381,6 +410,7 @@ rl_expand_prompt (prompt)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)0;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
return (prompt_visible_length);
}
else
@@ -399,6 +429,7 @@ rl_expand_prompt (prompt)
&prompt_invis_chars_first_line,
(int *)NULL);
*t = c;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
return (prompt_prefix_length);
}
}
@@ -443,7 +474,11 @@ init_line_structures (minsize)
inv_lbreaks = (int *)xmalloc (inv_lbsize * sizeof (int));
vis_lbreaks = (int *)xmalloc (vis_lbsize * sizeof (int));
#if defined (HANDLE_MULTIBYTE)
_rl_wrapped_line = (int *)xmalloc (vis_lbsize * sizeof (int));
line_state_visible->wbsize = vis_lbsize;
line_state_visible->wrapped_line = (int *)xmalloc (line_state_visible->wbsize * sizeof (int));
line_state_invisible->wbsize = inv_lbsize;
line_state_invisible->wrapped_line = (int *)xmalloc (line_state_invisible->wbsize * sizeof (int));
#endif
inv_lbreaks[0] = vis_lbreaks[0] = 0;
}
@@ -455,8 +490,8 @@ rl_redisplay ()
{
register int in, out, c, linenum, cursor_linenum;
register char *line;
int c_pos, inv_botlin, lb_botlin, lb_linenum, o_cpos;
int newlines, lpos, temp, modmark, n0, num;
int inv_botlin, lb_botlin, lb_linenum, o_cpos;
int newlines, lpos, temp, n0, num;
char *prompt_this_line;
#if defined (HANDLE_MULTIBYTE)
wchar_t wc;
@@ -479,7 +514,9 @@ rl_redisplay ()
}
/* Draw the line into the buffer. */
c_pos = -1;
cpos_buffer_position = -1;
prompt_multibyte_chars = prompt_visible_length - prompt_physical_chars;
line = invisible_line;
out = inv_botlin = 0;
@@ -506,24 +543,23 @@ rl_redisplay ()
number of non-visible characters in the prompt string. */
if (rl_display_prompt == rl_prompt || local_prompt)
{
int local_len = local_prompt ? strlen (local_prompt) : 0;
if (local_prompt_prefix && forced_display)
_rl_output_some_chars (local_prompt_prefix, strlen (local_prompt_prefix));
if (local_len > 0)
if (local_prompt_len > 0)
{
temp = local_len + out + 2;
temp = local_prompt_len + out + 2;
if (temp >= line_size)
{
line_size = (temp + 1024) - (temp % 1024);
visible_line = (char *)xrealloc (visible_line, line_size);
line = invisible_line = (char *)xrealloc (invisible_line, line_size);
}
strncpy (line + out, local_prompt, local_len);
out += local_len;
strncpy (line + out, local_prompt, local_prompt_len);
out += local_prompt_len;
}
line[out] = '\0';
wrap_offset = local_len - prompt_visible_length;
wrap_offset = local_prompt_len - prompt_visible_length;
}
else
{
@@ -578,10 +614,14 @@ rl_redisplay ()
{ \
inv_lbsize *= 2; \
inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
_rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
} \
inv_lbreaks[++newlines] = out; \
_rl_wrapped_line[newlines] = _rl_wrapped_multicolumn; \
if (newlines >= (line_state_invisible->wbsize - 1)) \
{ \
line_state_invisible->wbsize *= 2; \
line_state_invisible->wrapped_line = (int *)xrealloc (line_state_invisible->wrapped_line, line_state_invisible->wbsize * sizeof(int)); \
} \
line_state_invisible->wrapped_line[newlines] = _rl_wrapped_multicolumn; \
lpos = 0; \
} \
} while (0)
@@ -611,7 +651,7 @@ rl_redisplay ()
#endif
#if defined (HANDLE_MULTIBYTE)
memset (_rl_wrapped_line, 0, vis_lbsize);
memset (line_state_invisible->wrapped_line, 0, line_state_invisible->wbsize * sizeof (int));
num = 0;
#endif
@@ -624,6 +664,7 @@ rl_redisplay ()
contents of the command line? */
while (lpos >= _rl_screenwidth)
{
int z;
/* fix from Darin Johnson <darin@acuson.com> for prompt string with
invisible characters that is longer than the screen width. The
prompt_invis_chars_first_line variable could be made into an array
@@ -632,37 +673,48 @@ rl_redisplay ()
prompts that exceed two physical lines?
Additional logic fix from Edward Catmur <ed@catmur.co.uk> */
#if defined (HANDLE_MULTIBYTE)
n0 = num;
temp = local_prompt ? strlen (local_prompt) : 0;
while (num < temp)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
if (_rl_col_width (local_prompt, n0, num) > _rl_screenwidth)
n0 = num;
temp = local_prompt_len;
while (num < temp)
{
num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY);
break;
z = _rl_col_width (local_prompt, n0, num);
if (z > _rl_screenwidth)
{
num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY);
break;
}
else if (z == _rl_screenwidth)
break;
num++;
}
num++;
temp = num;
}
temp = num +
#else
temp = ((newlines + 1) * _rl_screenwidth) +
else
#endif /* !HANDLE_MULTIBYTE */
((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line
: ((newlines == 1) ? wrap_offset : 0))
: ((newlines == 0) ? wrap_offset :0));
temp = ((newlines + 1) * _rl_screenwidth);
/* Now account for invisible characters in the current line. */
/* XXX - this assumes that all of the invisible characters are before
the line wrap. */
temp += ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line
: ((newlines == 1) ? wrap_offset : 0))
: ((newlines == 0) ? wrap_offset :0));
inv_lbreaks[++newlines] = temp;
#if defined (HANDLE_MULTIBYTE)
lpos -= _rl_col_width (local_prompt, n0, num);
#else
lpos -= _rl_screenwidth;
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
lpos -= _rl_col_width (local_prompt, n0, num);
else
#endif
lpos -= _rl_screenwidth;
}
prompt_last_screen_line = newlines;
/* Draw the rest of the line (after the prompt) into invisible_line, keeping
track of where the cursor is (c_pos), the number of the line containing
track of where the cursor is (cpos_buffer_position), the number of the line containing
the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin).
It maintains an array of line breaks for display (inv_lbreaks).
This handles expanding tabs for display and displaying meta characters. */
@@ -715,7 +767,7 @@ rl_redisplay ()
if (in == rl_point)
{
c_pos = out;
cpos_buffer_position = out;
lb_linenum = newlines;
}
@@ -809,7 +861,7 @@ rl_redisplay ()
}
if (in == rl_point)
{
c_pos = out;
cpos_buffer_position = out;
lb_linenum = newlines;
}
for (i = in; i < in+wc_bytes; i++)
@@ -840,9 +892,9 @@ rl_redisplay ()
}
line[out] = '\0';
if (c_pos < 0)
if (cpos_buffer_position < 0)
{
c_pos = out;
cpos_buffer_position = out;
lb_linenum = newlines;
}
@@ -851,7 +903,7 @@ rl_redisplay ()
inv_lbreaks[newlines+1] = out;
cursor_linenum = lb_linenum;
/* C_POS == position in buffer where cursor should be placed.
/* CPOS_BUFFER_POSITION == position in buffer where cursor should be placed.
CURSOR_LINENUM == line number where the cursor should be placed. */
/* PWP: now is when things get a bit hairy. The visible and invisible
@@ -896,6 +948,8 @@ rl_redisplay ()
/* For each line in the buffer, do the updating display. */
for (linenum = 0; linenum <= inv_botlin; linenum++)
{
/* This can lead us astray if we execute a program that changes
the locale from a non-multibyte to a multibyte one. */
o_cpos = _rl_last_c_pos;
cpos_adjusted = 0;
update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,
@@ -908,7 +962,11 @@ rl_redisplay ()
change update_line itself. There is one case in which
update_line adjusts _rl_last_c_pos itself (so it can pass
_rl_move_cursor_relative accurate values); it communicates
this back by setting cpos_adjusted */
this back by setting cpos_adjusted. If we assume that
_rl_last_c_pos is correct (an absolute cursor position) each
time update_line is called, then we can assume in our
calculations that o_cpos does not need to be adjusted by
wrap_offset. */
if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
cpos_adjusted == 0 &&
_rl_last_c_pos != o_cpos &&
@@ -989,19 +1047,22 @@ rl_redisplay ()
if (_rl_term_cr)
tputs (_rl_term_cr, 1, _rl_output_character_function);
#endif
if (modmark)
_rl_output_some_chars ("*", 1);
_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) - wrap_offset;
_rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft) - wrap_offset + modmark;
else
_rl_last_c_pos = nleft;
_rl_last_c_pos = nleft + modmark;
}
/* Where on that line? And where does that line start
in the buffer? */
pos = inv_lbreaks[cursor_linenum];
/* nleft == number of characters in the line buffer between the
start of the line and the cursor position. */
nleft = c_pos - pos;
start of the line and the desired cursor position. */
nleft = cpos_buffer_position - pos;
/* NLEFT is now a number of characters in a buffer. When in a
multibyte locale, however, _rl_last_c_pos is an absolute cursor
@@ -1013,6 +1074,7 @@ rl_redisplay ()
those characters here and call _rl_backspace() directly. */
if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
{
/* TX == new physical cursor position in multibyte locale. */
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
tx = _rl_col_width (&visible_line[pos], 0, nleft) - visible_wrap_offset;
else
@@ -1046,11 +1108,11 @@ rl_redisplay ()
will be LMARGIN. */
/* The number of characters that will be displayed before the cursor. */
ndisp = c_pos - wrap_offset;
ndisp = cpos_buffer_position - wrap_offset;
nleft = prompt_visible_length + wrap_offset;
/* Where the new cursor position will be on the screen. This can be
longer than SCREENWIDTH; if it is, lmargin will be adjusted. */
phys_c_pos = c_pos - (last_lmargin ? last_lmargin : wrap_offset);
phys_c_pos = cpos_buffer_position - (last_lmargin ? last_lmargin : wrap_offset);
t = _rl_screenwidth / 3;
/* If the number of characters had already exceeded the screenwidth,
@@ -1061,7 +1123,7 @@ rl_redisplay ()
two-thirds of the way across the screen. */
if (phys_c_pos > _rl_screenwidth - 2)
{
lmargin = c_pos - (2 * t);
lmargin = cpos_buffer_position - (2 * t);
if (lmargin < 0)
lmargin = 0;
/* If the left margin would be in the middle of a prompt with
@@ -1075,7 +1137,7 @@ rl_redisplay ()
{
/* If we are moving back towards the beginning of the line and
the last margin is no longer correct, compute a new one. */
lmargin = ((c_pos - 1) / t) * t; /* XXX */
lmargin = ((cpos_buffer_position - 1) / t) * t; /* XXX */
if (wrap_offset && lmargin > 0 && lmargin < nleft)
lmargin = nleft;
}
@@ -1120,7 +1182,7 @@ rl_redisplay ()
if (visible_first_line_len > _rl_screenwidth)
visible_first_line_len = _rl_screenwidth;
_rl_move_cursor_relative (c_pos - lmargin, &invisible_line[lmargin]);
_rl_move_cursor_relative (cpos_buffer_position - lmargin, &invisible_line[lmargin]);
last_lmargin = lmargin;
}
}
@@ -1128,17 +1190,10 @@ rl_redisplay ()
/* Swap visible and non-visible lines. */
{
char *vtemp = visible_line;
int *itemp = vis_lbreaks, ntemp = vis_lbsize;
struct line_state *vtemp = line_state_visible;
visible_line = invisible_line;
invisible_line = vtemp;
vis_lbreaks = inv_lbreaks;
inv_lbreaks = itemp;
vis_lbsize = inv_lbsize;
inv_lbsize = ntemp;
line_state_visible = line_state_invisible;
line_state_invisible = vtemp;
rl_display_fixed = 0;
/* If we are displaying on a single line, and last_lmargin is > 0, we
@@ -1173,7 +1228,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
int current_line, omax, nmax, inv_botlin;
{
register char *ofd, *ols, *oe, *nfd, *nls, *ne;
int temp, lendiff, wsatend, od, nd;
int temp, lendiff, wsatend, od, nd, twidth;
int current_invis_chars;
int col_lendiff, col_temp;
#if defined (HANDLE_MULTIBYTE)
@@ -1204,8 +1259,8 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
/* This fixes only double-column characters, but if the wrapped
character comsumes more than three columns, spaces will be
inserted in the string buffer. */
if (_rl_wrapped_line[current_line] > 0)
_rl_clear_to_eol (_rl_wrapped_line[current_line]);
if (current_line < line_state_visible->wbsize && line_state_visible->wrapped_line[current_line] > 0)
_rl_clear_to_eol (line_state_visible->wrapped_line[current_line]);
memset (&ps, 0, sizeof (mbstate_t));
ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps);
@@ -1269,7 +1324,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
/* See if the old line is a subset of the new line, so that the
only change is adding characters. */
temp = (omax < nmax) ? omax : nmax;
if (memcmp (old, new, temp) == 0)
if (memcmp (old, new, temp) == 0) /* adding at the end */
{
ofd = old + temp;
nfd = new + temp;
@@ -1411,30 +1466,44 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
sequences (like drawing the `unbold' sequence without a corresponding
`bold') that manifests itself on certain terminals. */
lendiff = local_prompt ? strlen (local_prompt) : 0;
lendiff = local_prompt_len;
od = ofd - old; /* index of first difference in visible line */
if (current_line == 0 && !_rl_horizontal_scroll_mode &&
_rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 &&
od >= lendiff && _rl_last_c_pos <= PROMPT_ENDING_INDEX)
od >= lendiff && _rl_last_c_pos < PROMPT_ENDING_INDEX)
{
#if defined (__MSDOS__)
putc ('\r', rl_outstream);
#else
tputs (_rl_term_cr, 1, _rl_output_character_function);
#endif
if (modmark)
_rl_output_some_chars ("*", 1);
_rl_output_some_chars (local_prompt, lendiff);
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
/* We take wrap_offset into account here so we can pass correct
information to _rl_move_cursor_relative. */
_rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset;
_rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset + modmark;
cpos_adjusted = 1;
}
else
_rl_last_c_pos = lendiff;
_rl_last_c_pos = lendiff + modmark;
}
/* When this function returns, _rl_last_c_pos is correct, and an absolute
cursor postion in multibyte mode, but a buffer index when not in a
multibyte locale. */
_rl_move_cursor_relative (od, old);
#if 1
#if defined (HANDLE_MULTIBYTE)
/* We need to indicate that the cursor position is correct in the presence of
invisible characters in the prompt string. Let's see if setting this when
we make sure we're at the end of the drawn prompt string works. */
if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
cpos_adjusted = 1;
#endif
#endif
/* if (len (new) > len (old))
lendiff == difference in buffer
@@ -1514,15 +1583,15 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if ((temp - lendiff) > 0)
{
_rl_output_some_chars (nfd + lendiff, temp - lendiff);
#if 1
/* XXX -- this bears closer inspection. Fixes a redisplay bug
reported against bash-3.0-alpha by Andreas Schwab involving
multibyte characters and prompt strings with invisible
characters, but was previously disabled. */
_rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
#else
_rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff);
#endif
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
else
twidth = temp - lendiff;
_rl_last_c_pos += twidth;
}
}
else
@@ -1555,8 +1624,22 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
temp = nls - nfd;
if (temp > 0)
{
/* If nfd begins at the prompt, or before the invisible
characters in the prompt, we need to adjust _rl_last_c_pos
in a multibyte locale to account for the wrap offset and
set cpos_adjusted accordingly. */
_rl_output_some_chars (nfd, temp);
_rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
_rl_last_c_pos += _rl_col_width (nfd, 0, temp);
if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
{
_rl_last_c_pos -= wrap_offset;
cpos_adjusted = 1;
}
}
else
_rl_last_c_pos += temp;
}
}
/* Otherwise, print over the existing material. */
@@ -1564,8 +1647,20 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
{
if (temp > 0)
{
/* If nfd begins at the prompt, or before the invisible
characters in the prompt, we need to adjust _rl_last_c_pos
in a multibyte locale to account for the wrap offset and
set cpos_adjusted accordingly. */
_rl_output_some_chars (nfd, temp);
_rl_last_c_pos += col_temp; /* XXX */
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
{
_rl_last_c_pos -= wrap_offset;
cpos_adjusted = 1;
}
}
}
lendiff = (oe - old) - (ne - new);
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -1701,8 +1796,17 @@ _rl_move_cursor_relative (new, data)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
dpos = _rl_col_width (data, 0, new);
if (dpos > woff)
dpos -= woff;
/* Use NEW when comparing against the last invisible character in the
prompt string, since they're both buffer indices and DPOS is a
desired display position. */
if (new > prompt_last_invisible) /* XXX - don't use woff here */
{
dpos -= woff;
/* Since this will be assigned to _rl_last_c_pos at the end (more
precisely, _rl_last_c_pos == dpos when this function returns),
let the caller know. */
cpos_adjusted = 1;
}
}
else
#endif
@@ -1721,7 +1825,7 @@ _rl_move_cursor_relative (new, data)
else
#endif
i = _rl_last_c_pos - woff;
if (new == 0 || CR_FASTER (new, _rl_last_c_pos) ||
if (dpos == 0 || CR_FASTER (dpos, _rl_last_c_pos) ||
(_rl_term_autowrap && i == _rl_screenwidth))
{
#if defined (__MSDOS__)
@@ -1743,19 +1847,27 @@ _rl_move_cursor_relative (new, data)
sequence telling the terminal to move forward one character.
That kind of control is for people who don't know what the
data is underneath the cursor. */
#if defined (HACK_TERMCAP_MOTION)
if (_rl_term_forward_char)
{
for (i = cpos; i < dpos; i++)
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
}
else
#endif /* HACK_TERMCAP_MOTION */
/* However, we need a handle on where the current display position is
in the buffer for the immediately preceding comment to be true.
In multibyte locales, we don't currently have that info available.
Without it, we don't know where the data we have to display begins
in the buffer and we have to go back to the beginning of the screen
line. In this case, we can use the terminal sequence to move forward
if it's available. */
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
tputs (_rl_term_cr, 1, _rl_output_character_function);
for (i = 0; i < new; i++)
putc (data[i], rl_outstream);
if (_rl_term_forward_char)
{
for (i = cpos; i < dpos; i++)
tputs (_rl_term_forward_char, 1, _rl_output_character_function);
}
else
{
tputs (_rl_term_cr, 1, _rl_output_character_function);
for (i = 0; i < new; i++)
putc (data[i], rl_outstream);
}
}
else
for (i = cpos; i < new; i++)
@@ -1904,6 +2016,7 @@ rl_message (va_alist)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
(*rl_redisplay_function) ();
return 0;
@@ -1927,6 +2040,7 @@ rl_message (format, arg1, arg2)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
(*rl_redisplay_function) ();
return 0;
@@ -1963,12 +2077,14 @@ rl_save_prompt ()
saved_local_prompt = local_prompt;
saved_local_prefix = local_prompt_prefix;
saved_prefix_length = prompt_prefix_length;
saved_local_length = local_prompt_len;
saved_last_invisible = prompt_last_invisible;
saved_visible_length = prompt_visible_length;
saved_invis_chars_first_line = prompt_invis_chars_first_line;
saved_physical_chars = prompt_physical_chars;
local_prompt = local_prompt_prefix = (char *)0;
local_prompt_len = 0;
prompt_last_invisible = prompt_visible_length = prompt_prefix_length = 0;
prompt_invis_chars_first_line = prompt_physical_chars = 0;
}
@@ -1981,6 +2097,7 @@ rl_restore_prompt ()
local_prompt = saved_local_prompt;
local_prompt_prefix = saved_local_prefix;
local_prompt_len = saved_local_length;
prompt_prefix_length = saved_prefix_length;
prompt_last_invisible = saved_last_invisible;
prompt_visible_length = saved_visible_length;
@@ -1989,6 +2106,7 @@ rl_restore_prompt ()
/* can test saved_local_prompt to see if prompt info has been saved. */
saved_local_prompt = saved_local_prefix = (char *)0;
saved_local_length = 0;
saved_last_invisible = saved_visible_length = saved_prefix_length = 0;
saved_invis_chars_first_line = saved_physical_chars = 0;
}
@@ -2094,7 +2212,7 @@ insert_some_chars (string, count, col)
/* DEBUGGING */
if (MB_CUR_MAX == 1 || rl_byte_oriented)
if (count != col)
fprintf(stderr, "readline: debug: insert_some_chars: count (%d) != col (%d)\n", count, col);
_rl_ttymsg ("debug: insert_some_chars: count (%d) != col (%d)", count, col);
/* If IC is defined, then we do not have to "enter" insert mode. */
if (_rl_term_IC)
@@ -2177,7 +2295,8 @@ _rl_update_final ()
char *last_line;
last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]];
_rl_move_cursor_relative (_rl_screenwidth - 1, last_line);
cpos_buffer_position = -1; /* don't know where we are in buffer */
_rl_move_cursor_relative (_rl_screenwidth - 1, last_line); /* XXX */
_rl_clear_to_eol (0);
putc (last_line[_rl_screenwidth - 1], rl_outstream);
}
@@ -2220,6 +2339,7 @@ redraw_prompt (t)
&prompt_invis_chars_first_line,
&prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
rl_forced_update_display ();
@@ -2233,10 +2353,14 @@ _rl_redisplay_after_sigwinch ()
{
char *t;
/* Clear the current line and put the cursor at column 0. Make sure
the right thing happens if we have wrapped to a new screen line. */
/* Clear the last line (assuming that the screen size change will result in
either more or fewer characters on that line only) and put the cursor at
column 0. Make sure the right thing happens if we have wrapped to a new
screen line. */
if (_rl_term_cr)
{
_rl_move_vert (_rl_vis_botlin);
#if defined (__MSDOS__)
putc ('\r', rl_outstream);
#else
@@ -2322,11 +2446,18 @@ _rl_col_width (str, start, end)
int start, end;
{
wchar_t wc;
mbstate_t ps = {0};
mbstate_t ps;
int tmp, point, width, max;
if (end <= start)
return 0;
if (MB_CUR_MAX == 1 || rl_byte_oriented)
{
_rl_ttymsg ("_rl_col_width: called with MB_CUR_MAX == 1");
return (end - start);
}
memset (&ps, 0, sizeof (mbstate_t));
point = 0;
max = end;
Binary file not shown.
+4 -4
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on February, 9 2006 by texi2html 1.64 -->
<!-- Created on February, 27 2007 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -314,7 +314,7 @@ of the following modifiers, each preceded by a <SAMP>`:'</SAMP>.
<P>
<DT><CODE>t</CODE>
<DD>Remove all leading pathname components, leaving the tail.
<DD>Remove all leading pathname components, leaving the tail.
<P>
<DT><CODE>r</CODE>
@@ -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>February, 9 2006</I>
This document was generated by <I>Chet Ramey</I> on <I>February, 27 2007</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>February, 9 2006</I>
by <I>Chet Ramey</I> on <I>February, 27 2007</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+29 -29
View File
@@ -1,11 +1,11 @@
This is history.info, produced by makeinfo version 4.7 from
This is history.info, produced by makeinfo version 4.8 from
./history.texi.
This document describes the GNU History library (version 5.2, 9
February 2006), a programming tool that provides a consistent user
This document describes the GNU History library (version 5.2, 27
February 2007), a programming tool that provides a consistent user
interface for recalling lines of previously typed input.
Copyright (C) 1988-2004 Free Software Foundation, Inc.
Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -13,7 +13,7 @@ preserved on all copies.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -207,7 +207,7 @@ more of the following modifiers, each preceded by a `:'.
Remove a trailing pathname component, leaving only the head.
`t'
Remove all leading pathname components, leaving the tail.
Remove all leading pathname components, leaving the tail.
`r'
Remove a trailing suffix of the form `.SUFFIX', leaving the
@@ -1325,28 +1325,28 @@ Appendix C Function and Variable Index

Tag Table:
Node: Top1280
Node: Using History Interactively1905
Node: History Interaction2413
Node: Event Designators3837
Node: Word Designators4772
Node: Modifiers6411
Node: Programming with GNU History7638
Node: Introduction to History8370
Node: History Storage10060
Node: History Functions11195
Node: Initializing History and State Management12184
Node: History List Management12996
Node: Information About the History List15028
Node: Moving Around the History List16525
Node: Searching the History List17526
Node: Managing the History File19458
Node: History Expansion21278
Node: History Variables23186
Node: History Programming Example25992
Node: Copying This Manual28669
Node: GNU Free Documentation License28929
Node: Concept Index51335
Node: Function and Variable Index52175
Node: Top1281
Node: Using History Interactively1906
Node: History Interaction2414
Node: Event Designators3838
Node: Word Designators4773
Node: Modifiers6412
Node: Programming with GNU History7637
Node: Introduction to History8369
Node: History Storage10059
Node: History Functions11194
Node: Initializing History and State Management12183
Node: History List Management12995
Node: Information About the History List15027
Node: Moving Around the History List16524
Node: Searching the History List17525
Node: Managing the History File19457
Node: History Expansion21277
Node: History Variables23185
Node: History Programming Example25991
Node: Copying This Manual28668
Node: GNU Free Documentation License28928
Node: Concept Index51334
Node: Function and Variable Index52174

End Tag Table
+18 -18
View File
@@ -1,4 +1,4 @@
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 9 FEB 2006 09:50
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2006.11.28) 27 FEB 2007 09:16
**/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,
@@ -106,7 +106,7 @@ cross references,
\auxfile=\write2
\savesfregister=\count46
\footnoteno=\count47
(/sw/share/texmf/tex/generic/misc/epsf.tex
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
\epsffilein=\read0
\epsfframemargin=\dimen39
\epsfframethickness=\dimen40
@@ -119,18 +119,19 @@ cross references,
\epsfnoopenhelp=\toks24
)
\noepsfhelp=\toks25
localization,
localization,
\nolanghelp=\toks26
\defaultparindent=\dimen47
and turning on texinfo input format.) (./history.aux)
and turning on texinfo input format.) (./history.aux)
@cpindfile=@write3
@fnindfile=@write4
@vrindfile=@write5
@tpindfile=@write6
@kyindfile=@write7
@pgindfile=@write8
(./version.texi) [1
(./version.texi) [1
\openout2 = `history.aux'.
\openout3 = `history.cp'.
@@ -145,25 +146,24 @@ and turning on texinfo input format.) (./history.aux)
\openout8 = `history.pg'.
]
[2] (./history.toc) [-1] [-2] (./hsuser.texi Chapter 1
] [2] (./history.toc) [-1] [-2] (./hsuser.texi Chapter 1
\openout0 = `history.toc'.
@btindfile=@write9
[1
[1
\openout9 = `history.bt'.
] [2]) (./hstech.texi
Chapter 2 [3] [4] [5] [6] [7] [8] [9] [10] [11]) Appendix A [12] (./fdl.texi
[13] [14] [15] [16] [17] [18]) Appendix B [19] [20] (./history.cps) Appendix C
[21] [22] (./history.vrs) [23] [24] )
] [2]) (./hstech.texi Chapter 2 [3] [4] [5] [6] [7] [8] [9] [10] [11])
Appendix A [12] (./fdl.texi [13] [14] [15] [16] [17] [18]) Appendix B [19]
[20] (./history.cps) Appendix C [21] [22] (./history.vrs) [23] [24] )
Here is how much of TeX's memory you used:
1409 strings out of 98002
16451 string characters out of 1221987
45504 words of memory out of 1000001
1409 strings out of 97980
16466 string characters out of 1221004
45506 words of memory out of 1000000
2271 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
31953 words of font info for 111 fonts, out of 500000 for 2000
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, 79860 bytes).
Output written on history.dvi (28 pages, 81828 bytes).
+479 -310
View File
@@ -1,17 +1,18 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
%%Title: history.dvi
%%Pages: 28
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%BoundingBox: 0 0 595 842
%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMBXTI10 CMTI10 CMCSC10
%%+ CMSL10 CMSLTT10 CMBX10 CMSS10 CMTT9 CMR9 CMTI9
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 300 -o history.ps history.dvi
%DVIPSParameters: dpi=300, compressed
%DVIPSSource: TeX output 2006.02.09:0950
%%BeginProcSet: texc.pro
%DVIPSParameters: dpi=300
%DVIPSSource: TeX output 2007.02.27:0916
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
@@ -30,22 +31,10 @@ df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
@@ -69,202 +58,7 @@ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: f7b6d320.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
%
/TeXf7b6d320Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
/period /slash /zero /one /two /three /four /five /six /seven /eight
/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: 09fbbfac.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
/TeX09fbbfacEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: bbad153f.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
%
/TeXbbad153fEncoding [
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /circlemultiply
/circledivide /circledot /circlecopyrt /openbullet /bullet
/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
/greaterequal /precedesequal /followsequal /similar /approxequal
/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
/prime /infinity /element /owner /triangle /triangleinv /negationslash
/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
/backslash /wreathproduct /radical /coproduct /nabla /integral
/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
/lessequal /greaterequal /precedesequal /followsequal /similar
/approxequal /propersubset /propersuperset /lessmuch /greatermuch
/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: 74afc74c.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
%
/TeX74afc74cEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /sterling /percent
/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
/hyphen /period /slash /zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: 0ef0afca.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmr5
%
/TeX0ef0afcaEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi
/dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls
/ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright
/numbersign /dollar /percent /ampersand /quoteright /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon
/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft
/bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h
/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash
/hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda
/Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup
/arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj
/grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe
/oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%%BeginProcSet: texps.pro 0 0
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
@@ -301,10 +95,9 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 46 /period put
readonly def
/FontBBox{-35 -250 1148 750}readonly def
/UniqueID 5000827 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
@@ -368,10 +161,42 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 44 /comma put
dup 48 /zero put
dup 49 /one put
dup 51 /three put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 68 /D put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 76 /L put
dup 78 /N put
dup 83 /S put
dup 85 /U put
dup 97 /a put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
/UniqueID 5000792 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -608,10 +433,28 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 49 /one put
dup 50 /two put
dup 97 /a put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-20 -233 617 696}readonly def
/UniqueID 5000800 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8
@@ -772,10 +615,84 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 52 /four put
dup 54 /six put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 78 /N put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 89 /Y put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 95 /underscore put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /braceleft put
dup 124 /bar put
dup 125 /braceright put
readonly def
/FontBBox{-6 -233 542 698}readonly def
/UniqueID 5000831 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -1165,10 +1082,10 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 40 /parenleft put
dup 41 /parenright put
readonly def
/FontBBox{-61 -250 999 759}readonly def
/UniqueID 5000803 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -1238,10 +1155,35 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 12 /fi put
dup 13 /fl put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
/UniqueID 5000768 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -1470,10 +1412,81 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 65 /A put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 89 /Y put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 95 /underscore put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /braceleft put
dup 124 /bar put
dup 125 /braceright put
dup 126 /asciitilde put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueID 5000832 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -1878,10 +1891,61 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 12 /fi put
dup 44 /comma put
dup 46 /period put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
/UniqueID 5000769 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -2191,10 +2255,37 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 11 /ff put
dup 12 /fi put
dup 42 /asterisk put
dup 49 /one put
dup 50 /two put
dup 91 /bracketleft put
dup 93 /bracketright put
dup 97 /a put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-62 -250 1123 750}readonly def
/UniqueID 5000798 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
@@ -2426,10 +2517,24 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 97 /a put
dup 99 /c put
dup 100 /d put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 112 /p put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 120 /x put
readonly def
/FontBBox{14 -250 1077 750}readonly def
/UniqueID 5000772 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
@@ -2570,10 +2675,9 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 46 /period put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
/UniqueID 5000828 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
@@ -2637,10 +2741,9 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 46 /period put
readonly def
/FontBBox{-29 -250 1274 754}readonly def
/UniqueID 5000771 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
@@ -2704,10 +2807,9 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 13 /circlecopyrt put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueID 5000820 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
@@ -2761,10 +2863,89 @@ end readonly def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 34 /quotedblright put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 92 /quotedblleft put
dup 93 /bracketright put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 124 /emdash put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueID 5000793 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -3246,66 +3427,54 @@ E332FCFDCE37333888533833BFEE6525BB9BEE05
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 39158280 55380996 1000 300 300 (history.dvi)
@start /Fa 209[12 46[{ TeX74afc74cEncoding ReEncodeFont }1
37.3599 /CMTI9 rf /Fb 134[20 20 1[20 21 15 15 15 1[21
19 21 32 3[11 21 19 1[17 21 17 1[19 11[29 1[21 4[29 1[24
3[29 30 25 1[29 10[19 19 19 19 2[19 1[19 19 3[11 44[{
TeXf7b6d320Encoding ReEncodeFont }34 37.3599 /CMR9 rf
/Fc 134[20 3[20 20 20 20 2[20 20 20 20 2[20 20 2[20 3[20
97[{ TeX09fbbfacEncoding ReEncodeFont }13 37.3599 /CMSLTT10
rf /Fd 130[20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 1[20 20 20 20 20 20 20 20 20 20 20 1[20
20 20 1[20 2[20 20 20 20 20 1[20 1[20 1[20 2[20 20 20
20 20 20 20 20 20 2[20 20 20 20 20 3[20 1[20 1[20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33[{
TeX09fbbfacEncoding ReEncodeFont }76 37.3599 /CMTT9
rf /Fe 214[18 18 40[{ TeXf7b6d320Encoding ReEncodeFont }2
45.4545 /CMSS10 rf /Ff 133[25 30 30 41 30 32 22 23 24
30 32 29 32 48 16 30 1[16 32 29 18 26 32 25 32 28 83[32
32 12[{ TeXf7b6d320Encoding ReEncodeFont }27 49.8132
/CMBX10 rf /Fg 137[26 26 26 26 26 2[26 26 26 26 2[26
26 1[26 26 26 26 26 26 1[26 5[26 4[26 26 26 2[26 26 4[26
26 2[26 3[26 22[26 42[{ TeX09fbbfacEncoding ReEncodeFont }29
49.8132 /CMTT10 rf /Fh 134[24 24 24 1[24 24 24 24 2[24
24 1[24 2[24 1[24 24 24 24 49[24 24 49[{
TeX09fbbfacEncoding ReEncodeFont }17 45.4545 /CMSLTT10
rf /Fi 133[27 32 32 44 32 34 24 24 25 1[34 31 34 51 17
2[17 34 31 19 28 34 27 34 30 9[63 1[47 1[34 4[48 58 37
2[23 48 1[39 40 47 2[46 6[17 2[31 31 31 31 31 31 31 2[17
33[34 12[{ TeXf7b6d320Encoding ReEncodeFont }45 54.5455
/CMBX12 rf /Fj 134[24 24 33 24 25 18 18 18 24 25 23 25
38 13 2[13 25 23 14 20 25 20 1[23 3[13 1[13 40[23 23
6[23 29[25 27 11[{ TeXf7b6d320Encoding ReEncodeFont }29
TeXDict begin 39139632 55387786 1000 300 300 (history.dvi)
@start /Fa 209[12 46[{}1 37.3599 /CMTI9 rf /Fb 134[20
20 1[20 21 15 15 15 1[21 19 21 32 3[11 21 19 1[17 21
17 1[19 11[29 1[21 4[29 1[24 3[29 30 25 1[29 10[19 19
19 19 2[19 1[19 19 3[11 44[{}34 37.3599 /CMR9 rf /Fc
134[20 3[20 20 20 20 2[20 20 20 20 2[20 20 2[20 3[20
97[{}13 37.3599 /CMSLTT10 rf /Fd 130[20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 1[20 20 20 20
20 20 20 20 20 20 20 1[20 20 20 1[20 2[20 20 20 20 20
1[20 1[20 1[20 2[20 20 20 20 20 20 20 20 20 2[20 20 20
20 20 3[20 1[20 1[20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 33[{}76 37.3599 /CMTT9 rf /Fe 214[18
18 40[{}2 45.4545 /CMSS10 rf /Ff 133[25 30 30 41 30 32
22 23 24 30 32 29 32 48 16 30 1[16 32 29 18 26 32 25
32 28 83[32 32 12[{}27 49.8132 /CMBX10 rf /Fg 137[26
26 26 26 26 2[26 26 26 26 2[26 26 1[26 26 26 26 26 26
1[26 5[26 4[26 26 26 2[26 26 4[26 26 2[26 3[26 22[26
42[{}29 49.8132 /CMTT10 rf /Fh 134[24 24 24 1[24 24 24
24 2[24 24 1[24 2[24 1[24 24 24 24 49[24 24 49[{}17 45.4545
/CMSLTT10 rf /Fi 133[27 32 32 44 32 34 24 24 25 1[34
31 34 51 17 2[17 34 31 19 28 34 27 34 30 9[63 1[47 1[34
4[48 58 37 2[23 48 1[39 40 47 2[46 6[17 2[31 31 31 31
31 31 31 2[17 33[34 12[{}45 54.5455 /CMBX12 rf /Fj 134[24
24 33 24 25 18 18 18 24 25 23 25 38 13 2[13 25 23 14
20 25 20 1[23 3[13 1[13 40[23 23 6[23 29[25 27 11[{}29
45.4545 /CMSL10 rf /Fk 135[28 2[28 27 21 2[25 1[28 34
23 1[19 14 28 29 24 1[28 27 1[28 97[{ TeX0ef0afcaEncoding ReEncodeFont }
16 45.4545 /CMCSC10 rf /Fl 209[14 46[{
TeX74afc74cEncoding ReEncodeFont }1 45.4545 /CMTI10
rf /Fm 209[21 46[{ TeX74afc74cEncoding ReEncodeFont }1
23 1[19 14 28 29 24 1[28 27 1[28 97[{}16 45.4545 /CMCSC10
rf /Fl 209[14 46[{}1 45.4545 /CMTI10 rf /Fm 209[21 46[{}1
59.7758 /CMBXTI10 rf /Fn 134[43 43 58 43 45 31 32 33
1[45 40 45 67 22 2[22 45 40 25 37 45 36 45 39 10[61 62
56 3[55 1[63 77 3[30 63 63 51 2[58 57 61 14[40 40 49[{
TeXf7b6d320Encoding ReEncodeFont }37 71.731 /CMBX12
rf /Fo 242[45 13[{ TeXbbad153fEncoding ReEncodeFont }1
45.4545 /CMSY10 rf /Fp 134[35 35 49 35 37 26 27 27 1[37
34 37 56 19 2[19 37 34 21 31 37 30 37 33 9[69 51 52 47
37 50 1[46 1[53 64 40 2[25 53 53 42 44 52 49 48 51 11[34
34 34 34 34 2[19 1[19 44[{ TeXf7b6d320Encoding ReEncodeFont }48
59.7758 /CMBX12 rf /Fq 129[24 24 24 24 24 24 24 24 24
24 24 24 24 24 24 24 24 24 24 24 1[24 24 24 24 24 24
24 24 24 1[24 24 24 24 24 1[24 3[24 24 24 24 1[24 24
24 1[24 2[24 24 24 24 24 24 2[24 1[24 24 24 24 24 24
7[24 24 24 24 24 24 24 24 24 24 24 1[24 24 24 24 24 24
33[{ TeX09fbbfacEncoding ReEncodeFont }73 45.4545 /CMTT10
rf /Fr 131[45 1[20 24 24 33 24 25 18 18 18 24 25 23 25
38 13 24 14 13 25 23 14 20 25 20 25 23 13 2[13 23 13
28 34 34 47 34 34 33 25 33 35 31 35 34 42 28 35 23 16
34 36 30 31 35 33 32 34 5[13 13 23 23 23 23 23 23 23
23 23 23 23 13 15 13 2[18 18 13 4[23 19[38 25 25 27 11[{
TeXf7b6d320Encoding ReEncodeFont }81 45.4545 /CMR10
56 3[55 1[63 77 3[30 63 63 51 2[58 57 61 14[40 40 49[{}37
71.731 /CMBX12 rf /Fo 242[45 13[{}1 45.4545 /CMSY10 rf
/Fp 134[35 35 49 35 37 26 27 27 1[37 34 37 56 19 2[19
37 34 21 31 37 30 37 33 9[69 51 52 47 37 50 1[46 1[53
64 40 2[25 53 53 42 44 52 49 48 51 11[34 34 34 34 34
2[19 1[19 44[{}48 59.7758 /CMBX12 rf /Fq 129[24 24 24
24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 1[24
24 24 24 24 24 24 24 24 1[24 24 24 24 24 1[24 3[24 24
24 24 1[24 24 24 1[24 2[24 24 24 24 24 24 2[24 1[24 24
24 24 24 24 7[24 24 24 24 24 24 24 24 24 24 24 1[24 24
24 24 24 24 33[{}73 45.4545 /CMTT10 rf /Fr 131[45 1[20
24 24 33 24 25 18 18 18 24 25 23 25 38 13 24 14 13 25
23 14 20 25 20 25 23 13 2[13 23 13 28 34 34 47 34 34
33 25 33 35 31 35 34 42 28 35 23 16 34 36 30 31 35 33
32 34 5[13 13 23 23 23 23 23 23 23 23 23 23 23 13 15
13 2[18 18 13 4[23 19[38 25 25 27 11[{}81 45.4545 /CMR10
rf /Fs 134[51 4[38 38 40 2[48 5[27 6[54 47 11[74 6[76
1[58 3[76 76 71[{ TeXf7b6d320Encoding ReEncodeFont }13
86.0772 /CMBX12 rf end
1[58 3[76 76 71[{}13 86.0772 /CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
@@ -3317,18 +3486,18 @@ TeXDict begin
TeXDict begin 1 0 bop 75 659 a Fs(GNU)33 b(History)e(Library)p
75 709 1800 17 v 960 757 a Fr(Edition)14 b(5.2,)g(for)h
Fq(History)f(Library)g Fr(V)l(ersion)h(5.2.)1590 811
y(F)l(ebruary)g(2006)75 2467 y Fp(Chet)22 b(Ramey)-6
y(F)l(ebruary)g(2007)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)18 b(do)q(cumen)o(t)g(describ)q
(es)h(the)f(GNU)g(History)f(library)g(\(v)o(ersion)h(5.2,)f(9)h(F)l
(ebruary)g(2006\),)f(a)h(pro-)75 1567 y(gramming)10 b(to)q(ol)g(that)g
TeXDict begin 2 1 bop 75 1512 a Fr(This)16 b(do)q(cumen)o(t)h(describ)q
(es)g(the)g(GNU)f(History)f(library)h(\(v)o(ersion)f(5.2,)h(27)f(F)l
(ebruary)i(2007\),)e(a)h(pro-)75 1567 y(gramming)10 b(to)q(ol)g(that)g
(pro)o(vides)h(a)g(consisten)o(t)f(user)i(in)o(terface)e(for)h
(recalling)f(lines)g(of)h(previously)g(t)o(yp)q(ed)75
1621 y(input.)75 1689 y(Cop)o(yrigh)o(t)301 1688 y(c)289
1689 y Fo(\015)k Fr(1988-2004)e(F)l(ree)i(Soft)o(w)o(are)f(F)l
1689 y Fo(\015)k Fr(1988-2006)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
@@ -3336,7 +3505,7 @@ TeXDict begin 2 1 bop 75 1512 a Fr(This)18 b(do)q(cumen)o(t)g(describ)q
(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
(License,)i(V)l(ersion)f(1.2)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
@@ -4451,8 +4620,8 @@ y(publisher)d(of)f(that)g(section)g(if)g(kno)o(wn,)g(or)g(else)g(a)h
(v)m(arian)o(t)f(Sections)h(in)g(the)h(license)f(notice)g(of)g(the)g
(com)o(bined)165 1859 y(w)o(ork.)165 1925 y(In)21 b(the)g(com)o
(bination,)f(y)o(ou)h(m)o(ust)f(com)o(bine)g(an)o(y)g(sections)h(En)o
(titled)e(\\History")g(in)h(the)h(v)m(ari-)165 1980 y(ous)16
b(original)e(do)q(cumen)o(ts,)i(forming)f(one)i(section)e(En)o(titled)g
(titled)e(\\History")g(in)i(the)f(v)m(ari-)165 1980 y(ous)c(original)e
(do)q(cumen)o(ts,)i(forming)f(one)i(section)e(En)o(titled)g
(\\History";)g(lik)o(ewise)f(com)o(bine)i(an)o(y)165
2034 y(sections)f(En)o(titled)g(\\Ac)o(kno)o(wledgemen)o(ts",)g(and)h
(an)o(y)f(sections)h(En)o(titled)e(\\Dedications".)21
@@ -4543,7 +4712,7 @@ b(Ho)o(w)o(ev)o(er,)12 b(parties)h(who)h(ha)o(v)o(e)g(receiv)o(ed)g
b(License)i(from)e(time)g(to)h(time.)21 b(Suc)o(h)c(new)f(v)o(ersions)g
(will)e(b)q(e)j(similar)d(in)i(spirit)165 2212 y(to)h(the)g(presen)o(t)
g(v)o(ersion,)g(but)g(ma)o(y)f(di\013er)h(in)g(detail)f(to)h(address)g
(new)g(problems)g(or)g(concerns.)165 2266 y(See)f Fq
(new)g(problems)g(or)g(concerns.)165 2267 y(See)f Fq
(http://www.gnu.org/copyle)o(ft/)p Fr(.)165 2331 y(Eac)o(h)f(v)o
(ersion)e(of)i(the)g(License)g(is)f(giv)o(en)g(a)h(distinguishing)e(v)o
(ersion)h(n)o(um)o(b)q(er.)20 b(If)15 b(the)g(Do)q(cumen)o(t)165
+2 -2
View File
@@ -14,7 +14,7 @@ This document describes the GNU History library
a programming tool that provides a consistent user interface for
recalling lines of previously typed input.
Copyright @copyright{} 1988-2004 Free Software Foundation, Inc.
Copyright @copyright{} 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -22,7 +22,7 @@ are preserved on all copies.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license is
+1 -1
View File
@@ -1,7 +1,7 @@
@ignore
This file documents the user interface to the GNU History library.
Copyright (C) 1988-2002 Free Software Foundation, Inc.
Copyright (C) 1988-2006 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
+12 -5
View File
@@ -1,7 +1,7 @@
@ignore
This file documents the user interface to the GNU History library.
Copyright (C) 1988-2002 Free Software Foundation, Inc.
Copyright (C) 1988-2007 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -97,7 +97,11 @@ to contain no more than @env{$HISTFILESIZE}
lines. If @env{HISTFILESIZE} is not set, no truncation is performed.
If the @env{HISTTIMEFORMAT} is set, the time stamp information
associated with each history entry is written to the history file.
associated with each history entry is written to the history file,
marked with the history comment character.
When the history file is read, lines beginning with the history
comment character followed immediately by a digit are interpreted
as timestamps for the previous history line.
The builtin command @code{fc} may be used to list or edit and re-execute
a portion of the history list.
@@ -133,7 +137,7 @@ history list and history file.
@item fc
@btindex fc
@example
@code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]}
@code{fc [-e @var{ename}] [-lnr] [@var{first}] [@var{last}]}
@code{fc -s [@var{pat}=@var{rep}] [@var{command}]}
@end example
@@ -277,7 +281,10 @@ them, so that they are available for subsequent recall.
This is most useful in conjunction with Readline.
The shell allows control of the various characters used by the
history expansion mechanism with the @code{histchars} variable.
history expansion mechanism with the @code{histchars} variable,
as explained above (@pxref{Bash Variables}). The shell uses
the history comment character to mark history timestamps when
writing the history file.
@end ifset
@menu
@@ -412,7 +419,7 @@ of the following modifiers, each preceded by a @samp{:}.
Remove a trailing pathname component, leaving only the head.
@item t
Remove all leading pathname components, leaving the tail.
Remove all leading pathname components, leaving the tail.
@item r
Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving
+3 -1
View File
@@ -8,7 +8,7 @@
.\"
.\" Last Change: Thu Feb 9 09:49:51 EST 2006
.\"
.TH READLINE 3 "2006 Feb 9" "GNU Readline 5.2"
.TH READLINE 3 "2006 Apr 26" "GNU Readline 5.2"
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
@@ -170,6 +170,8 @@ command or the text of a macro and a key sequence to which
it should be bound. The name may be specified in one of two ways:
as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP
prefixes, or as a key sequence.
The name and key sequence are separated by a colon. There can be no
whitespace between the name and the colon.
.PP
When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP,
.I keyname
Binary file not shown.
File diff suppressed because it is too large Load Diff
+149 -118
View File
@@ -1,12 +1,12 @@
This is readline.info, produced by makeinfo version 4.7 from
This is readline.info, produced by makeinfo version 4.8 from
./rlman.texi.
This manual describes the GNU Readline Library (version 5.2, 9
February 2006), a library which aids in the consistency of user
This manual describes the GNU Readline Library (version 5.2, 27
February 2007), a library which aids in the consistency of user
interface across discrete programs which provide a command line
interface.
Copyright (C) 1988-2004 Free Software Foundation, Inc.
Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -14,7 +14,7 @@ preserved on all copies.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -444,9 +444,10 @@ Variable Settings
attempts word completion. The default is `off'.
`history-preserve-point'
If set to `on', the history code attempts to place point at
the same location on each history line retrieved with
`previous-history' or `next-history'. The default is `off'.
If set to `on', the history code attempts to place the point
(the current cursor position) at the same location on each
history line retrieved with `previous-history' or
`next-history'. The default is `off'.
`horizontal-scroll-mode'
This variable can be set to either `on' or `off'. Setting it
@@ -544,9 +545,10 @@ Key Bindings
Once you know the name of the command, simply place on a line in
the init file the name of the key you wish to bind the command to,
a colon, and then the name of the command. The name of the key
can be expressed in different ways, depending on what you find most
comfortable.
a colon, and then the name of the command. There can be no space
between the key name and the colon - that will be interpreted as
part of the key name. The name of the key can be expressed in
different ways, depending on what you find most comfortable.
In addition to command names, readline allows keys to be bound to
a string that is inserted when the key is pressed (a MACRO).
@@ -1281,7 +1283,7 @@ the standard `vi' movement keys, move to previous history lines with
aiding in the consistency of user interface across discrete programs
that need to provide a command line interface.
Copyright (C) 1988-2005 Free Software Foundation, Inc.
Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice pare
@@ -1600,6 +1602,11 @@ These variables are available to function writers.
`rl_set_prompt()' function (*note Redisplay::) may be used to
modify the prompt string after calling `readline()'.
-- Variable: char * rl_display_prompt
The string displayed as the prompt. This is usually identical to
RL_PROMPT, but may be changed temporarily by functions that use
the prompt string as a message area, such as incremental search.
-- Variable: int rl_already_prompted
If an application wishes to display the prompt itself, rather than
have Readline do it the first time `readline()' is called, it
@@ -2034,8 +2041,8 @@ associate a new function name with an arbitrary function.
-- Function: const char ** rl_funmap_names (void)
Return a NULL terminated array of known function names. The array
is sorted. The array itself is allocated, but not the strings
inside. You should `free()' the array when you are done, but not
the pointers.
inside. You should free the array, but not the pointers, using
`free' or `rl_free' when you are done.
-- Function: int rl_add_funmap_entry (const char *name,
rl_command_func_t *function)
@@ -2296,6 +2303,10 @@ File: readline.info, Node: Utility Functions, Next: Miscellaneous Functions,
2.4.10 Utility Functions
------------------------
-- Function: void rl_free (void *mem)
Deallocate the memory pointed to by MEM. MEM must have been
allocated by `malloc'.
-- Function: void rl_replace_line (const char *text, int clear_undo)
Replace the contents of `rl_line_buffer' with TEXT. The point and
mark are preserved, if possible. If CLEAR_UNDO is non-zero, the
@@ -2998,6 +3009,14 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
even if the application's completion function returns no matches.
It should be set only by an application's completion function.
-- Variable: int rl_sort_completion_matches
If an application sets this variable to 0, Readline will not sort
the list of completions (which implies that it cannot remove any
duplicate completions). The default value is 1, which means that
Readline will sort the completions and, depending on the value of
`rl_ignore_completion_duplicates', will attempt to remove duplicate
matches.
-- Variable: int rl_completion_type
Set to a character describing the type of completion Readline is
currently attempting; see the description of
@@ -3006,6 +3025,12 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
any application-specific completion function is called, allowing
such functions to present the same interface as `rl_complete()'.
-- Variable: int rl_completion_invoking_key
Set to the final character in the key sequence that invoked one of
the completion functions that call `rl_complete_internal()'. This
is set to the appropriate value before any application-specific
completion function is called.
-- Variable: int rl_inhibit_completion
If this variable is non-zero, completion is inhibited. The
completion character will be inserted as any other bound to
@@ -3940,12 +3965,12 @@ Function and Variable Index
[index]
* Menu:
* _rl_digit_p: Utility Functions. (line 46)
* _rl_digit_value: Utility Functions. (line 57)
* _rl_lowercase_p: Utility Functions. (line 43)
* _rl_to_lower: Utility Functions. (line 53)
* _rl_to_upper: Utility Functions. (line 49)
* _rl_uppercase_p: Utility Functions. (line 40)
* _rl_digit_p: Utility Functions. (line 50)
* _rl_digit_value: Utility Functions. (line 61)
* _rl_lowercase_p: Utility Functions. (line 47)
* _rl_to_lower: Utility Functions. (line 57)
* _rl_to_upper: Utility Functions. (line 53)
* _rl_uppercase_p: Utility Functions. (line 44)
* abort (C-g): Miscellaneous Commands.
(line 10)
* accept-line (Newline or Return): Commands For History.
@@ -4026,17 +4051,17 @@ Function and Variable Index
* history-search-forward (): Commands For History.
(line 45)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 98)
(line 99)
* input-meta: Readline Init File Syntax.
(line 105)
(line 106)
* insert-comment (M-#): Miscellaneous Commands.
(line 51)
* insert-completions (M-*): Commands For Completion.
(line 14)
* isearch-terminators: Readline Init File Syntax.
(line 112)
(line 113)
* keymap: Readline Init File Syntax.
(line 119)
(line 120)
* kill-line (C-k): Commands For Killing.
(line 6)
* kill-region (): Commands For Killing.
@@ -4046,15 +4071,15 @@ Function and Variable Index
* kill-word (M-d): Commands For Killing.
(line 19)
* mark-modified-lines: Readline Init File Syntax.
(line 132)
(line 133)
* mark-symlinked-directories: Readline Init File Syntax.
(line 137)
(line 138)
* match-hidden-files: Readline Init File Syntax.
(line 142)
(line 143)
* menu-complete (): Commands For Completion.
(line 18)
* meta-flag: Readline Init File Syntax.
(line 105)
(line 106)
* next-history (C-n): Commands For History.
(line 16)
* non-incremental-forward-search-history (M-n): Commands For History.
@@ -4062,10 +4087,10 @@ Function and Variable Index
* non-incremental-reverse-search-history (M-p): Commands For History.
(line 35)
* output-meta: Readline Init File Syntax.
(line 149)
(line 150)
* overwrite-mode (): Commands For Text. (line 53)
* page-completions: Readline Init File Syntax.
(line 154)
(line 155)
* possible-completions (M-?): Commands For Completion.
(line 11)
* prefix-meta (<ESC>): Miscellaneous Commands.
@@ -4085,8 +4110,8 @@ Function and Variable Index
* rl_add_funmap_entry: Associating Function Names and Bindings.
(line 47)
* rl_add_undo: Allowing Undoing. (line 41)
* rl_alphabetic: Utility Functions. (line 24)
* rl_already_prompted: Readline Variables. (line 59)
* rl_alphabetic: Utility Functions. (line 28)
* rl_already_prompted: Readline Variables. (line 64)
* rl_attempted_completion_function: Completion Variables.
(line 12)
* rl_attempted_completion_over: Completion Variables.
@@ -4104,7 +4129,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 154)
* rl_binding_keymap: Readline Variables. (line 159)
* rl_callback_handler_install: Alternate Interface. (line 15)
* rl_callback_handler_remove: Alternate Interface. (line 33)
* rl_callback_read_char: Alternate Interface. (line 21)
@@ -4140,6 +4165,8 @@ Function and Variable Index
(line 55)
* rl_completion_found_quote: Completion Variables.
(line 168)
* rl_completion_invoking_key: Completion Variables.
(line 233)
* rl_completion_mark_symlink_dirs: Completion Variables.
(line 175)
* rl_completion_matches: Completion Functions.
@@ -4155,34 +4182,35 @@ Function and Variable Index
* rl_completion_suppress_quote: Completion Variables.
(line 162)
* rl_completion_type: Completion Variables.
(line 217)
(line 225)
* rl_completion_word_break_hook: Completion Variables.
(line 107)
* rl_copy_keymap: Keymaps. (line 17)
* 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 144)
* rl_deprep_term_function: Readline Variables. (line 149)
* rl_deprep_terminal: Terminal Management. (line 13)
* rl_ding: Utility Functions. (line 21)
* rl_ding: Utility Functions. (line 25)
* rl_directory_completion_hook: Completion Variables.
(line 64)
* rl_discard_keymap: Keymaps. (line 26)
* rl_dispatching: Readline Variables. (line 41)
* rl_display_match_list: Utility Functions. (line 28)
* rl_display_match_list: Utility Functions. (line 32)
* rl_display_prompt: Readline Variables. (line 59)
* rl_do_undo: Allowing Undoing. (line 48)
* rl_done: Readline Variables. (line 28)
* rl_editing_mode: Readline Variables. (line 242)
* rl_editing_mode: Readline Variables. (line 247)
* 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 119)
* rl_event_hook: Readline Variables. (line 124)
* rl_execute_next: Character Input. (line 26)
* rl_executing_keymap: Readline Variables. (line 150)
* rl_executing_macro: Readline Variables. (line 158)
* rl_executing_keymap: Readline Variables. (line 155)
* rl_executing_macro: Readline Variables. (line 163)
* rl_expand_prompt: Redisplay. (line 64)
* rl_explicit_arg: Readline Variables. (line 233)
* rl_extend_line_buffer: Utility Functions. (line 12)
* rl_explicit_arg: Readline Variables. (line 238)
* rl_extend_line_buffer: Utility Functions. (line 16)
* rl_filename_completion_desired: Completion Variables.
(line 190)
* rl_filename_completion_function: Completion Functions.
@@ -4196,6 +4224,7 @@ Function and Variable Index
* rl_filename_quoting_function: Completion Variables.
(line 24)
* rl_forced_update_display: Redisplay. (line 11)
* rl_free: Utility Functions. (line 7)
* rl_free_line_state: Readline Signal Handling.
(line 72)
* rl_free_undo_list: Allowing Undoing. (line 45)
@@ -4214,26 +4243,26 @@ Function and Variable Index
* rl_get_termcap: Miscellaneous Functions.
(line 42)
* rl_getc: Character Input. (line 15)
* rl_getc_function: Readline Variables. (line 125)
* rl_gnu_readline_p: Readline Variables. (line 78)
* rl_getc_function: Readline Variables. (line 130)
* rl_gnu_readline_p: Readline Variables. (line 83)
* rl_ignore_completion_duplicates: Completion Variables.
(line 186)
* rl_ignore_some_completions_function: Completion Variables.
(line 56)
* rl_inhibit_completion: Completion Variables.
(line 225)
* rl_initialize: Utility Functions. (line 16)
(line 239)
* rl_initialize: Utility Functions. (line 20)
* rl_insert_completions: Completion Functions.
(line 32)
* rl_insert_text: Modifying Text. (line 7)
* rl_instream: Readline Variables. (line 92)
* rl_instream: Readline Variables. (line 97)
* rl_invoking_keyseqs: Associating Function Names and Bindings.
(line 21)
* 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 105)
* rl_library_version: Readline Variables. (line 68)
* rl_last_func: Readline Variables. (line 110)
* rl_library_version: Readline Variables. (line 73)
* rl_line_buffer: Readline Variables. (line 9)
* rl_list_funmap_names: Associating Function Names and Bindings.
(line 36)
@@ -4249,29 +4278,29 @@ 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 237)
* rl_numeric_arg: Readline Variables. (line 242)
* rl_on_new_line: Redisplay. (line 15)
* rl_on_new_line_with_prompt: Redisplay. (line 19)
* rl_outstream: Readline Variables. (line 96)
* rl_outstream: Readline Variables. (line 101)
* rl_parse_and_bind: Binding Keys. (line 96)
* rl_pending_input: Readline Variables. (line 37)
* rl_point: Readline Variables. (line 15)
* rl_possible_completions: Completion Functions.
(line 28)
* 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_pre_input_hook: Readline Variables. (line 119)
* rl_prefer_env_winsize: Readline Variables. (line 105)
* rl_prep_term_function: Readline Variables. (line 142)
* 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 161)
* rl_readline_version: Readline Variables. (line 71)
* rl_readline_name: Readline Variables. (line 92)
* rl_readline_state: Readline Variables. (line 166)
* rl_readline_version: Readline Variables. (line 76)
* rl_redisplay: Redisplay. (line 7)
* rl_redisplay_function: Readline Variables. (line 131)
* rl_replace_line: Utility Functions. (line 7)
* rl_redisplay_function: Readline Variables. (line 136)
* rl_replace_line: Utility Functions. (line 11)
* rl_reset_after_signal: Readline Signal Handling.
(line 80)
* rl_reset_line_state: Redisplay. (line 26)
@@ -4293,11 +4322,13 @@ Function and Variable Index
* rl_set_signals: Readline Signal Handling.
(line 113)
* rl_show_char: Redisplay. (line 33)
* rl_sort_completion_matches: Completion Variables.
(line 217)
* rl_special_prefixes: Completion Variables.
(line 127)
* rl_startup_hook: Readline Variables. (line 110)
* rl_startup_hook: Readline Variables. (line 115)
* rl_stuff_char: Character Input. (line 19)
* rl_terminal_name: Readline Variables. (line 82)
* rl_terminal_name: Readline Variables. (line 87)
* rl_tty_set_default_bindings: Terminal Management. (line 18)
* rl_tty_unset_default_bindings: Terminal Management. (line 23)
* rl_unbind_command_in_map: Binding Keys. (line 55)
@@ -4316,9 +4347,9 @@ Function and Variable Index
* set-mark (C-@): Miscellaneous Commands.
(line 32)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 164)
(line 165)
* show-all-if-unmodified: Readline Init File Syntax.
(line 170)
(line 171)
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
* transpose-chars (C-t): Commands For Text. (line 30)
* transpose-words (M-t): Commands For Text. (line 36)
@@ -4333,7 +4364,7 @@ Function and Variable Index
(line 28)
* upcase-word (M-u): Commands For Text. (line 41)
* visible-stats: Readline Init File Syntax.
(line 179)
(line 180)
* yank (C-y): Commands For Killing.
(line 59)
* yank-last-arg (M-. or M-_): Commands For History.
@@ -4346,58 +4377,58 @@ Function and Variable Index

Tag Table:
Node: Top1296
Node: Command Line Editing1934
Node: Introduction and Notation2586
Node: Readline Interaction4209
Node: Readline Bare Essentials5401
Node: Readline Movement Commands7191
Node: Readline Killing Commands8157
Node: Readline Arguments10078
Node: Searching11123
Node: Readline Init File13275
Node: Readline Init File Syntax14429
Node: Conditional Init Constructs26364
Node: Sample Init File28898
Node: Bindable Readline Commands32016
Node: Commands For Moving33074
Node: Commands For History33936
Node: Commands For Text37061
Node: Commands For Killing39788
Node: Numeric Arguments41931
Node: Commands For Completion43071
Node: Keyboard Macros44616
Node: Miscellaneous Commands45188
Node: Readline vi Mode48550
Node: Programming with GNU Readline50374
Node: Basic Behavior51349
Node: Custom Functions54766
Node: Readline Typedefs56250
Node: Function Writing57889
Node: Readline Variables59196
Node: Readline Convenience Functions68898
Node: Function Naming69888
Node: Keymaps71150
Node: Binding Keys72922
Node: Associating Function Names and Bindings77469
Node: Allowing Undoing79731
Node: Redisplay82281
Node: Modifying Text86181
Node: Character Input87427
Node: Terminal Management89325
Node: Utility Functions90761
Node: Miscellaneous Functions93126
Node: Alternate Interface95423
Node: A Readline Example97582
Node: Readline Signal Handling99485
Node: Custom Completers105353
Node: How Completing Works106073
Node: Completion Functions109387
Node: Completion Variables112959
Node: A Short Completion Example125353
Node: Copying This Manual137526
Node: GNU Free Documentation License137788
Node: Concept Index160195
Node: Function and Variable Index161851
Node: Top1297
Node: Command Line Editing1935
Node: Introduction and Notation2587
Node: Readline Interaction4210
Node: Readline Bare Essentials5402
Node: Readline Movement Commands7192
Node: Readline Killing Commands8158
Node: Readline Arguments10079
Node: Searching11124
Node: Readline Init File13276
Node: Readline Init File Syntax14430
Node: Conditional Init Constructs26524
Node: Sample Init File29058
Node: Bindable Readline Commands32176
Node: Commands For Moving33234
Node: Commands For History34096
Node: Commands For Text37221
Node: Commands For Killing39948
Node: Numeric Arguments42091
Node: Commands For Completion43231
Node: Keyboard Macros44776
Node: Miscellaneous Commands45348
Node: Readline vi Mode48710
Node: Programming with GNU Readline50534
Node: Basic Behavior51509
Node: Custom Functions54926
Node: Readline Typedefs56410
Node: Function Writing58049
Node: Readline Variables59356
Node: Readline Convenience Functions69308
Node: Function Naming70298
Node: Keymaps71560
Node: Binding Keys73332
Node: Associating Function Names and Bindings77879
Node: Allowing Undoing80164
Node: Redisplay82714
Node: Modifying Text86614
Node: Character Input87860
Node: Terminal Management89758
Node: Utility Functions91194
Node: Miscellaneous Functions93693
Node: Alternate Interface95990
Node: A Readline Example98149
Node: Readline Signal Handling100052
Node: Custom Completers105920
Node: How Completing Works106640
Node: Completion Functions109954
Node: Completion Variables113526
Node: A Short Completion Example126631
Node: Copying This Manual138804
Node: GNU Free Documentation License139066
Node: Concept Index161473
Node: Function and Variable Index163129

End Tag Table
+2999 -2653
View File
File diff suppressed because it is too large Load Diff
+10 -10
View File
@@ -89,7 +89,7 @@
@xrdef{Function Naming-pg}{28}
@xrdef{Function Naming-snt}{Section@tie 2.4.1}
@xrdef{Keymaps-title}{Selecting a Keymap}
@xrdef{Keymaps-pg}{28}
@xrdef{Keymaps-pg}{29}
@xrdef{Keymaps-snt}{Section@tie 2.4.2}
@xrdef{Binding Keys-title}{Binding Keys}
@xrdef{Binding Keys-pg}{29}
@@ -101,13 +101,13 @@
@xrdef{Allowing Undoing-pg}{32}
@xrdef{Allowing Undoing-snt}{Section@tie 2.4.5}
@xrdef{Redisplay-title}{Redisplay}
@xrdef{Redisplay-pg}{32}
@xrdef{Redisplay-pg}{33}
@xrdef{Redisplay-snt}{Section@tie 2.4.6}
@xrdef{Modifying Text-title}{Modifying Text}
@xrdef{Modifying Text-pg}{34}
@xrdef{Modifying Text-snt}{Section@tie 2.4.7}
@xrdef{Character Input-title}{Character Input}
@xrdef{Character Input-pg}{34}
@xrdef{Character Input-pg}{35}
@xrdef{Character Input-snt}{Section@tie 2.4.8}
@xrdef{Terminal Management-title}{Terminal Management}
@xrdef{Terminal Management-pg}{35}
@@ -119,28 +119,28 @@
@xrdef{Miscellaneous Functions-pg}{37}
@xrdef{Miscellaneous Functions-snt}{Section@tie 2.4.11}
@xrdef{Alternate Interface-title}{Alternate Interface}
@xrdef{Alternate Interface-pg}{37}
@xrdef{Alternate Interface-pg}{38}
@xrdef{Alternate Interface-snt}{Section@tie 2.4.12}
@xrdef{A Readline Example-title}{A Readline Example}
@xrdef{A Readline Example-pg}{38}
@xrdef{A Readline Example-snt}{Section@tie 2.4.13}
@xrdef{Readline Signal Handling-title}{Readline Signal Handling}
@xrdef{Readline Signal Handling-pg}{39}
@xrdef{Readline Signal Handling-pg}{40}
@xrdef{Readline Signal Handling-snt}{Section@tie 2.5}
@xrdef{Custom Completers-title}{Custom Completers}
@xrdef{Custom Completers-pg}{41}
@xrdef{Custom Completers-pg}{42}
@xrdef{Custom Completers-snt}{Section@tie 2.6}
@xrdef{How Completing Works-title}{How Completing Works}
@xrdef{How Completing Works-pg}{41}
@xrdef{How Completing Works-pg}{42}
@xrdef{How Completing Works-snt}{Section@tie 2.6.1}
@xrdef{Completion Functions-title}{Completion Functions}
@xrdef{Completion Functions-pg}{42}
@xrdef{Completion Functions-pg}{43}
@xrdef{Completion Functions-snt}{Section@tie 2.6.2}
@xrdef{Completion Variables-title}{Completion Variables}
@xrdef{Completion Variables-pg}{43}
@xrdef{Completion Variables-pg}{44}
@xrdef{Completion Variables-snt}{Section@tie 2.6.3}
@xrdef{A Short Completion Example-title}{A Short Completion Example}
@xrdef{A Short Completion Example-pg}{47}
@xrdef{A Short Completion Example-pg}{48}
@xrdef{A Short Completion Example-snt}{Section@tie 2.6.4}
@xrdef{Copying This Manual-title}{Copying This Manual}
@xrdef{Copying This Manual-pg}{57}
+1 -1
View File
@@ -8,5 +8,5 @@
\entry{initialization file, readline}{4}{initialization file, readline}
\entry{variables, readline}{5}{variables, readline}
\entry{readline, function}{21}{readline, function}
\entry{application-specific completion functions}{41}{application-specific completion functions}
\entry{application-specific completion functions}{42}{application-specific completion functions}
\entry{FDL, GNU Free Documentation License}{57}{FDL, GNU Free Documentation License}
+1 -1
View File
@@ -1,5 +1,5 @@
\initial {A}
\entry {application-specific completion functions}{41}
\entry {application-specific completion functions}{42}
\initial {C}
\entry {command editing}{1}
\initial {E}
+51 -47
View File
@@ -107,6 +107,7 @@
\entry{rl_dispatching}{24}{\code {rl_dispatching}}
\entry{rl_erase_empty_line}{24}{\code {rl_erase_empty_line}}
\entry{rl_prompt}{25}{\code {rl_prompt}}
\entry{rl_display_prompt}{25}{\code {rl_display_prompt}}
\entry{rl_already_prompted}{25}{\code {rl_already_prompted}}
\entry{rl_library_version}{25}{\code {rl_library_version}}
\entry{rl_readline_version}{25}{\code {rl_readline_version}}
@@ -116,7 +117,7 @@
\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_last_func}{26}{\code {rl_last_func}}
\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}}
@@ -127,22 +128,22 @@
\entry{rl_executing_keymap}{26}{\code {rl_executing_keymap}}
\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_readline_state}{27}{\code {rl_readline_state}}
\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_bare_keymap}{29}{\code {rl_make_bare_keymap}}
\entry{rl_copy_keymap}{29}{\code {rl_copy_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}}
\entry{rl_get_keymap_by_name}{29}{\code {rl_get_keymap_by_name}}
\entry{rl_get_keymap_name}{29}{\code {rl_get_keymap_name}}
\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}{30}{\code {rl_bind_key}}
\entry{rl_bind_key_in_map}{30}{\code {rl_bind_key_in_map}}
\entry{rl_bind_key_if_unbound}{30}{\code {rl_bind_key_if_unbound}}
\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}}
@@ -151,26 +152,26 @@
\entry{rl_bind_keyseq}{30}{\code {rl_bind_keyseq}}
\entry{rl_bind_keyseq_in_map}{30}{\code {rl_bind_keyseq_in_map}}
\entry{rl_set_key}{30}{\code {rl_set_key}}
\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_bind_keyseq_if_unbound}{31}{\code {rl_bind_keyseq_if_unbound}}
\entry{rl_bind_keyseq_if_unbound_in_map}{31}{\code {rl_bind_keyseq_if_unbound_in_map}}
\entry{rl_generic_bind}{31}{\code {rl_generic_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}}
\entry{rl_invoking_keyseqs}{31}{\code {rl_invoking_keyseqs}}
\entry{rl_invoking_keyseqs_in_map}{31}{\code {rl_invoking_keyseqs_in_map}}
\entry{rl_function_dumper}{31}{\code {rl_function_dumper}}
\entry{rl_list_funmap_names}{31}{\code {rl_list_funmap_names}}
\entry{rl_funmap_names}{31}{\code {rl_funmap_names}}
\entry{rl_add_funmap_entry}{31}{\code {rl_add_funmap_entry}}
\entry{rl_function_dumper}{32}{\code {rl_function_dumper}}
\entry{rl_list_funmap_names}{32}{\code {rl_list_funmap_names}}
\entry{rl_funmap_names}{32}{\code {rl_funmap_names}}
\entry{rl_add_funmap_entry}{32}{\code {rl_add_funmap_entry}}
\entry{rl_begin_undo_group}{32}{\code {rl_begin_undo_group}}
\entry{rl_end_undo_group}{32}{\code {rl_end_undo_group}}
\entry{rl_add_undo}{32}{\code {rl_add_undo}}
\entry{rl_free_undo_list}{32}{\code {rl_free_undo_list}}
\entry{rl_do_undo}{32}{\code {rl_do_undo}}
\entry{rl_modifying}{32}{\code {rl_modifying}}
\entry{rl_redisplay}{32}{\code {rl_redisplay}}
\entry{rl_do_undo}{33}{\code {rl_do_undo}}
\entry{rl_modifying}{33}{\code {rl_modifying}}
\entry{rl_redisplay}{33}{\code {rl_redisplay}}
\entry{rl_forced_update_display}{33}{\code {rl_forced_update_display}}
\entry{rl_on_new_line}{33}{\code {rl_on_new_line}}
\entry{rl_on_new_line_with_prompt}{33}{\code {rl_on_new_line_with_prompt}}
@@ -178,27 +179,28 @@
\entry{rl_crlf}{33}{\code {rl_crlf}}
\entry{rl_show_char}{33}{\code {rl_show_char}}
\entry{rl_message}{33}{\code {rl_message}}
\entry{rl_clear_message}{33}{\code {rl_clear_message}}
\entry{rl_save_prompt}{33}{\code {rl_save_prompt}}
\entry{rl_restore_prompt}{33}{\code {rl_restore_prompt}}
\entry{rl_clear_message}{34}{\code {rl_clear_message}}
\entry{rl_save_prompt}{34}{\code {rl_save_prompt}}
\entry{rl_restore_prompt}{34}{\code {rl_restore_prompt}}
\entry{rl_expand_prompt}{34}{\code {rl_expand_prompt}}
\entry{rl_set_prompt}{34}{\code {rl_set_prompt}}
\entry{rl_insert_text}{34}{\code {rl_insert_text}}
\entry{rl_delete_text}{34}{\code {rl_delete_text}}
\entry{rl_copy_text}{34}{\code {rl_copy_text}}
\entry{rl_kill_text}{34}{\code {rl_kill_text}}
\entry{rl_push_macro_input}{34}{\code {rl_push_macro_input}}
\entry{rl_read_key}{34}{\code {rl_read_key}}
\entry{rl_getc}{34}{\code {rl_getc}}
\entry{rl_push_macro_input}{35}{\code {rl_push_macro_input}}
\entry{rl_read_key}{35}{\code {rl_read_key}}
\entry{rl_getc}{35}{\code {rl_getc}}
\entry{rl_stuff_char}{35}{\code {rl_stuff_char}}
\entry{rl_execute_next}{35}{\code {rl_execute_next}}
\entry{rl_clear_pending_input}{35}{\code {rl_clear_pending_input}}
\entry{rl_set_keyboard_input_timeout}{35}{\code {rl_set_keyboard_input_timeout}}
\entry{rl_prep_terminal}{35}{\code {rl_prep_terminal}}
\entry{rl_deprep_terminal}{35}{\code {rl_deprep_terminal}}
\entry{rl_tty_set_default_bindings}{35}{\code {rl_tty_set_default_bindings}}
\entry{rl_tty_unset_default_bindings}{35}{\code {rl_tty_unset_default_bindings}}
\entry{rl_reset_terminal}{35}{\code {rl_reset_terminal}}
\entry{rl_tty_set_default_bindings}{36}{\code {rl_tty_set_default_bindings}}
\entry{rl_tty_unset_default_bindings}{36}{\code {rl_tty_unset_default_bindings}}
\entry{rl_reset_terminal}{36}{\code {rl_reset_terminal}}
\entry{rl_free}{36}{\code {rl_free}}
\entry{rl_replace_line}{36}{\code {rl_replace_line}}
\entry{rl_extend_line_buffer}{36}{\code {rl_extend_line_buffer}}
\entry{rl_initialize}{36}{\code {rl_initialize}}
@@ -206,11 +208,11 @@
\entry{rl_alphabetic}{36}{\code {rl_alphabetic}}
\entry{rl_display_match_list}{36}{\code {rl_display_match_list}}
\entry{_rl_uppercase_p}{36}{\code {_rl_uppercase_p}}
\entry{_rl_lowercase_p}{36}{\code {_rl_lowercase_p}}
\entry{_rl_digit_p}{36}{\code {_rl_digit_p}}
\entry{_rl_to_upper}{36}{\code {_rl_to_upper}}
\entry{_rl_to_lower}{36}{\code {_rl_to_lower}}
\entry{_rl_digit_value}{36}{\code {_rl_digit_value}}
\entry{_rl_lowercase_p}{37}{\code {_rl_lowercase_p}}
\entry{_rl_digit_p}{37}{\code {_rl_digit_p}}
\entry{_rl_to_upper}{37}{\code {_rl_to_upper}}
\entry{_rl_to_lower}{37}{\code {_rl_to_lower}}
\entry{_rl_digit_value}{37}{\code {_rl_digit_value}}
\entry{rl_macro_bind}{37}{\code {rl_macro_bind}}
\entry{rl_macro_dumper}{37}{\code {rl_macro_dumper}}
\entry{rl_variable_bind}{37}{\code {rl_variable_bind}}
@@ -218,13 +220,13 @@
\entry{rl_variable_dumper}{37}{\code {rl_variable_dumper}}
\entry{rl_set_paren_blink_timeout}{37}{\code {rl_set_paren_blink_timeout}}
\entry{rl_get_termcap}{37}{\code {rl_get_termcap}}
\entry{rl_callback_handler_install}{37}{\code {rl_callback_handler_install}}
\entry{rl_callback_handler_install}{38}{\code {rl_callback_handler_install}}
\entry{rl_callback_read_char}{38}{\code {rl_callback_read_char}}
\entry{rl_callback_handler_remove}{38}{\code {rl_callback_handler_remove}}
\entry{rl_catch_signals}{40}{\code {rl_catch_signals}}
\entry{rl_catch_sigwinch}{40}{\code {rl_catch_sigwinch}}
\entry{rl_cleanup_after_signal}{40}{\code {rl_cleanup_after_signal}}
\entry{rl_free_line_state}{40}{\code {rl_free_line_state}}
\entry{rl_cleanup_after_signal}{41}{\code {rl_cleanup_after_signal}}
\entry{rl_free_line_state}{41}{\code {rl_free_line_state}}
\entry{rl_reset_after_signal}{41}{\code {rl_reset_after_signal}}
\entry{rl_resize_terminal}{41}{\code {rl_resize_terminal}}
\entry{rl_set_screen_size}{41}{\code {rl_set_screen_size}}
@@ -234,39 +236,41 @@
\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_internal}{43}{\code {rl_complete_internal}}
\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}}
\entry{rl_completion_matches}{43}{\code {rl_completion_matches}}
\entry{rl_filename_completion_function}{43}{\code {rl_filename_completion_function}}
\entry{rl_username_completion_function}{43}{\code {rl_username_completion_function}}
\entry{rl_completion_entry_function}{43}{\code {rl_completion_entry_function}}
\entry{rl_filename_completion_function}{44}{\code {rl_filename_completion_function}}
\entry{rl_username_completion_function}{44}{\code {rl_username_completion_function}}
\entry{rl_completion_entry_function}{44}{\code {rl_completion_entry_function}}
\entry{rl_attempted_completion_function}{44}{\code {rl_attempted_completion_function}}
\entry{rl_filename_quoting_function}{44}{\code {rl_filename_quoting_function}}
\entry{rl_filename_dequoting_function}{44}{\code {rl_filename_dequoting_function}}
\entry{rl_char_is_quoted_p}{44}{\code {rl_char_is_quoted_p}}
\entry{rl_ignore_some_completions_function}{44}{\code {rl_ignore_some_completions_function}}
\entry{rl_directory_completion_hook}{44}{\code {rl_directory_completion_hook}}
\entry{rl_ignore_some_completions_function}{45}{\code {rl_ignore_some_completions_function}}
\entry{rl_directory_completion_hook}{45}{\code {rl_directory_completion_hook}}
\entry{rl_completion_display_matches_hook}{45}{\code {rl_completion_display_matches_hook}}
\entry{rl_basic_word_break_characters}{45}{\code {rl_basic_word_break_characters}}
\entry{rl_basic_quote_characters}{45}{\code {rl_basic_quote_characters}}
\entry{rl_completer_word_break_characters}{45}{\code {rl_completer_word_break_characters}}
\entry{rl_completion_word_break_hook}{45}{\code {rl_completion_word_break_hook}}
\entry{rl_completer_quote_characters}{45}{\code {rl_completer_quote_characters}}
\entry{rl_filename_quote_characters}{45}{\code {rl_filename_quote_characters}}
\entry{rl_special_prefixes}{45}{\code {rl_special_prefixes}}
\entry{rl_completer_quote_characters}{46}{\code {rl_completer_quote_characters}}
\entry{rl_filename_quote_characters}{46}{\code {rl_filename_quote_characters}}
\entry{rl_special_prefixes}{46}{\code {rl_special_prefixes}}
\entry{rl_completion_query_items}{46}{\code {rl_completion_query_items}}
\entry{rl_completion_append_character}{46}{\code {rl_completion_append_character}}
\entry{rl_completion_suppress_append}{46}{\code {rl_completion_suppress_append}}
\entry{rl_completion_quote_character}{46}{\code {rl_completion_quote_character}}
\entry{rl_completion_suppress_quote}{46}{\code {rl_completion_suppress_quote}}
\entry{rl_completion_found_quote}{46}{\code {rl_completion_found_quote}}
\entry{rl_completion_mark_symlink_dirs}{46}{\code {rl_completion_mark_symlink_dirs}}
\entry{rl_ignore_completion_duplicates}{46}{\code {rl_ignore_completion_duplicates}}
\entry{rl_filename_completion_desired}{46}{\code {rl_filename_completion_desired}}
\entry{rl_completion_mark_symlink_dirs}{47}{\code {rl_completion_mark_symlink_dirs}}
\entry{rl_ignore_completion_duplicates}{47}{\code {rl_ignore_completion_duplicates}}
\entry{rl_filename_completion_desired}{47}{\code {rl_filename_completion_desired}}
\entry{rl_filename_quoting_desired}{47}{\code {rl_filename_quoting_desired}}
\entry{rl_attempted_completion_over}{47}{\code {rl_attempted_completion_over}}
\entry{rl_sort_completion_matches}{47}{\code {rl_sort_completion_matches}}
\entry{rl_completion_type}{47}{\code {rl_completion_type}}
\entry{rl_inhibit_completion}{47}{\code {rl_inhibit_completion}}
\entry{rl_completion_invoking_key}{47}{\code {rl_completion_invoking_key}}
\entry{rl_inhibit_completion}{48}{\code {rl_inhibit_completion}}
+51 -47
View File
@@ -1,9 +1,9 @@
\initial {_}
\entry {\code {_rl_digit_p}}{36}
\entry {\code {_rl_digit_value}}{36}
\entry {\code {_rl_lowercase_p}}{36}
\entry {\code {_rl_to_lower}}{36}
\entry {\code {_rl_to_upper}}{36}
\entry {\code {_rl_digit_p}}{37}
\entry {\code {_rl_digit_value}}{37}
\entry {\code {_rl_lowercase_p}}{37}
\entry {\code {_rl_to_lower}}{37}
\entry {\code {_rl_to_upper}}{37}
\entry {\code {_rl_uppercase_p}}{36}
\initial {A}
\entry {\code {abort (C-g)}}{18}
@@ -99,7 +99,7 @@
\entry {\code {reverse-search-history (C-r)}}{14}
\entry {\code {revert-line (M-r)}}{18}
\entry {\code {rl_add_defun}}{28}
\entry {\code {rl_add_funmap_entry}}{31}
\entry {\code {rl_add_funmap_entry}}{32}
\entry {\code {rl_add_undo}}{32}
\entry {\code {rl_alphabetic}}{36}
\entry {\code {rl_already_prompted}}{25}
@@ -108,34 +108,35 @@
\entry {\code {rl_basic_quote_characters}}{45}
\entry {\code {rl_basic_word_break_characters}}{45}
\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}}{30}
\entry {\code {rl_bind_key_if_unbound}}{30}
\entry {\code {rl_bind_key_if_unbound_in_map}}{30}
\entry {\code {rl_bind_key_in_map}}{29}
\entry {\code {rl_bind_key_in_map}}{30}
\entry {\code {rl_bind_keyseq}}{30}
\entry {\code {rl_bind_keyseq_if_unbound}}{30}
\entry {\code {rl_bind_keyseq_if_unbound_in_map}}{30}
\entry {\code {rl_bind_keyseq_if_unbound}}{31}
\entry {\code {rl_bind_keyseq_if_unbound_in_map}}{31}
\entry {\code {rl_bind_keyseq_in_map}}{30}
\entry {\code {rl_binding_keymap}}{26}
\entry {\code {rl_callback_handler_install}}{37}
\entry {\code {rl_callback_handler_install}}{38}
\entry {\code {rl_callback_handler_remove}}{38}
\entry {\code {rl_callback_read_char}}{38}
\entry {\code {rl_catch_signals}}{40}
\entry {\code {rl_catch_sigwinch}}{40}
\entry {\code {rl_char_is_quoted_p}}{44}
\entry {\code {rl_cleanup_after_signal}}{40}
\entry {\code {rl_clear_message}}{33}
\entry {\code {rl_cleanup_after_signal}}{41}
\entry {\code {rl_clear_message}}{34}
\entry {\code {rl_clear_pending_input}}{35}
\entry {\code {rl_clear_signals}}{41}
\entry {\code {rl_complete}}{42, 43}
\entry {\code {rl_complete_internal}}{42}
\entry {\code {rl_completer_quote_characters}}{45}
\entry {\code {rl_complete_internal}}{43}
\entry {\code {rl_completer_quote_characters}}{46}
\entry {\code {rl_completer_word_break_characters}}{45}
\entry {\code {rl_completion_append_character}}{46}
\entry {\code {rl_completion_display_matches_hook}}{45}
\entry {\code {rl_completion_entry_function}}{42, 43}
\entry {\code {rl_completion_entry_function}}{42, 44}
\entry {\code {rl_completion_found_quote}}{46}
\entry {\code {rl_completion_mark_symlink_dirs}}{46}
\entry {\code {rl_completion_invoking_key}}{47}
\entry {\code {rl_completion_mark_symlink_dirs}}{47}
\entry {\code {rl_completion_matches}}{43}
\entry {\code {rl_completion_mode}}{43}
\entry {\code {rl_completion_query_items}}{46}
@@ -144,18 +145,19 @@
\entry {\code {rl_completion_suppress_quote}}{46}
\entry {\code {rl_completion_type}}{47}
\entry {\code {rl_completion_word_break_hook}}{45}
\entry {\code {rl_copy_keymap}}{28}
\entry {\code {rl_copy_keymap}}{29}
\entry {\code {rl_copy_text}}{34}
\entry {\code {rl_crlf}}{33}
\entry {\code {rl_delete_text}}{34}
\entry {\code {rl_deprep_term_function}}{26}
\entry {\code {rl_deprep_terminal}}{35}
\entry {\code {rl_ding}}{36}
\entry {\code {rl_directory_completion_hook}}{44}
\entry {\code {rl_directory_completion_hook}}{45}
\entry {\code {rl_discard_keymap}}{29}
\entry {\code {rl_dispatching}}{24}
\entry {\code {rl_display_match_list}}{36}
\entry {\code {rl_do_undo}}{32}
\entry {\code {rl_display_prompt}}{25}
\entry {\code {rl_do_undo}}{33}
\entry {\code {rl_done}}{24}
\entry {\code {rl_editing_mode}}{28}
\entry {\code {rl_end}}{24}
@@ -168,30 +170,31 @@
\entry {\code {rl_expand_prompt}}{34}
\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}
\entry {\code {rl_filename_completion_desired}}{47}
\entry {\code {rl_filename_completion_function}}{44}
\entry {\code {rl_filename_dequoting_function}}{44}
\entry {\code {rl_filename_quote_characters}}{45}
\entry {\code {rl_filename_quote_characters}}{46}
\entry {\code {rl_filename_quoting_desired}}{47}
\entry {\code {rl_filename_quoting_function}}{44}
\entry {\code {rl_forced_update_display}}{33}
\entry {\code {rl_free_line_state}}{40}
\entry {\code {rl_free}}{36}
\entry {\code {rl_free_line_state}}{41}
\entry {\code {rl_free_undo_list}}{32}
\entry {\code {rl_function_dumper}}{31}
\entry {\code {rl_function_dumper}}{32}
\entry {\code {rl_function_of_keyseq}}{31}
\entry {\code {rl_funmap_names}}{31}
\entry {\code {rl_generic_bind}}{30}
\entry {\code {rl_funmap_names}}{32}
\entry {\code {rl_generic_bind}}{31}
\entry {\code {rl_get_keymap}}{29}
\entry {\code {rl_get_keymap_by_name}}{29}
\entry {\code {rl_get_keymap_name}}{29}
\entry {\code {rl_get_screen_size}}{41}
\entry {\code {rl_get_termcap}}{37}
\entry {\code {rl_getc}}{34}
\entry {\code {rl_getc}}{35}
\entry {\code {rl_getc_function}}{26}
\entry {\code {rl_gnu_readline_p}}{25}
\entry {\code {rl_ignore_completion_duplicates}}{46}
\entry {\code {rl_ignore_some_completions_function}}{44}
\entry {\code {rl_inhibit_completion}}{47}
\entry {\code {rl_ignore_completion_duplicates}}{47}
\entry {\code {rl_ignore_some_completions_function}}{45}
\entry {\code {rl_inhibit_completion}}{48}
\entry {\code {rl_initialize}}{36}
\entry {\code {rl_insert_completions}}{43}
\entry {\code {rl_insert_text}}{34}
@@ -199,17 +202,17 @@
\entry {\code {rl_invoking_keyseqs}}{31}
\entry {\code {rl_invoking_keyseqs_in_map}}{31}
\entry {\code {rl_kill_text}}{34}
\entry {\code {rl_last_func}}{25}
\entry {\code {rl_last_func}}{26}
\entry {\code {rl_library_version}}{25}
\entry {\code {rl_line_buffer}}{24}
\entry {\code {rl_list_funmap_names}}{31}
\entry {\code {rl_list_funmap_names}}{32}
\entry {\code {rl_macro_bind}}{37}
\entry {\code {rl_macro_dumper}}{37}
\entry {\code {rl_make_bare_keymap}}{28}
\entry {\code {rl_make_bare_keymap}}{29}
\entry {\code {rl_make_keymap}}{29}
\entry {\code {rl_mark}}{24}
\entry {\code {rl_message}}{33}
\entry {\code {rl_modifying}}{32}
\entry {\code {rl_modifying}}{33}
\entry {\code {rl_named_function}}{31}
\entry {\code {rl_num_chars_to_read}}{24}
\entry {\code {rl_numeric_arg}}{28}
@@ -225,22 +228,22 @@
\entry {\code {rl_prep_term_function}}{26}
\entry {\code {rl_prep_terminal}}{35}
\entry {\code {rl_prompt}}{25}
\entry {\code {rl_push_macro_input}}{34}
\entry {\code {rl_push_macro_input}}{35}
\entry {\code {rl_read_init_file}}{31}
\entry {\code {rl_read_key}}{34}
\entry {\code {rl_read_key}}{35}
\entry {\code {rl_readline_name}}{25}
\entry {\code {rl_readline_state}}{26}
\entry {\code {rl_readline_state}}{27}
\entry {\code {rl_readline_version}}{25}
\entry {\code {rl_redisplay}}{32}
\entry {\code {rl_redisplay}}{33}
\entry {\code {rl_redisplay_function}}{26}
\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_reset_terminal}}{36}
\entry {\code {rl_resize_terminal}}{41}
\entry {\code {rl_restore_prompt}}{33}
\entry {\code {rl_save_prompt}}{33}
\entry {\code {rl_restore_prompt}}{34}
\entry {\code {rl_save_prompt}}{34}
\entry {\code {rl_set_key}}{30}
\entry {\code {rl_set_keyboard_input_timeout}}{35}
\entry {\code {rl_set_keymap}}{29}
@@ -249,17 +252,18 @@
\entry {\code {rl_set_screen_size}}{41}
\entry {\code {rl_set_signals}}{41}
\entry {\code {rl_show_char}}{33}
\entry {\code {rl_special_prefixes}}{45}
\entry {\code {rl_sort_completion_matches}}{47}
\entry {\code {rl_special_prefixes}}{46}
\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}
\entry {\code {rl_tty_unset_default_bindings}}{35}
\entry {\code {rl_tty_set_default_bindings}}{36}
\entry {\code {rl_tty_unset_default_bindings}}{36}
\entry {\code {rl_unbind_command_in_map}}{30}
\entry {\code {rl_unbind_function_in_map}}{30}
\entry {\code {rl_unbind_key}}{30}
\entry {\code {rl_unbind_key_in_map}}{30}
\entry {\code {rl_username_completion_function}}{43}
\entry {\code {rl_username_completion_function}}{44}
\entry {\code {rl_variable_bind}}{37}
\entry {\code {rl_variable_dumper}}{37}
\entry {\code {rl_variable_value}}{37}
+19 -18
View File
@@ -1,4 +1,4 @@
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 9 FEB 2006 09:50
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2006.11.28) 27 FEB 2007 09:16
**/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,
@@ -106,7 +106,7 @@ cross references,
\auxfile=\write2
\savesfregister=\count46
\footnoteno=\count47
(/sw/share/texmf/tex/generic/misc/epsf.tex
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
\epsffilein=\read0
\epsfframemargin=\dimen39
\epsfframethickness=\dimen40
@@ -119,18 +119,19 @@ cross references,
\epsfnoopenhelp=\toks24
)
\noepsfhelp=\toks25
localization,
localization,
\nolanghelp=\toks26
\defaultparindent=\dimen47
and turning on texinfo input format.) (./rlman.aux)
and turning on texinfo input format.) (./rlman.aux)
@cpindfile=@write3
@fnindfile=@write4
@vrindfile=@write5
@tpindfile=@write6
@kyindfile=@write7
@pgindfile=@write8
(./version.texi) [1
(./version.texi) [1
\openout2 = `rlman.aux'.
\openout3 = `rlman.cp'.
@@ -145,17 +146,17 @@ and turning on texinfo input format.) (./rlman.aux)
\openout8 = `rlman.pg'.
]
[2] (./rlman.toc [-1]) [-2] (./rluser.texi
] [2] (./rlman.toc [-1]) [-2] (./rluser.texi
@btindfile=@write9
Chapter 1
\openout0 = `rlman.toc'.
[1
[1
\openout9 = `rlman.bt'.
] [2] [3] [4] [5]
Underfull \hbox (badness 5231) in paragraph at lines 502--518
Underfull \hbox (badness 5231) in paragraph at lines 503--519
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -168,7 +169,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[6] [7] [8] [9] [10]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 815--815
Overfull \hbox (26.43913pt too wide) in paragraph at lines 818--818
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
@@ -183,7 +184,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 1823--1828
Underfull \hbox (badness 7379) in paragraph at lines 1835--1840
[]@textrm If an application-specific com-ple-tion func-tion as-signed to @text
tt rl_attempted_
@@ -195,16 +196,16 @@ tt rl_attempted_
.@glue 3.65 plus 1.825 minus 1.21666
.etc.
[47] [48] [49] [50] [51] [52] [53] [54]) Appendix A [55] [56] (./fdl.texi
[47] [48] [49] [50] [51] [52] [53] [54] [55]) Appendix A [56] (./fdl.texi
[57] [58] [59] [60] [61] [62]) (Concept Index) [63] [64] (./rlman.cps)
(Function and Variable Index) [65] [66] (./rlman.fns [67] [68]) [69] [70] )
Here is how much of TeX's memory you used:
1499 strings out of 98002
18486 string characters out of 1221987
59430 words of memory out of 1000001
1499 strings out of 97980
18501 string characters out of 1221004
60795 words of memory out of 1000000
2361 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
31953 words of font info for 111 fonts, out of 500000 for 2000
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, 278124 bytes).
Output written on rlman.dvi (74 pages, 286376 bytes).
+2 -2
View File
@@ -14,7 +14,7 @@ This manual describes the GNU Readline Library
consistency of user interface across discrete programs which provide
a command line interface.
Copyright @copyright{} 1988-2004 Free Software Foundation, Inc.
Copyright @copyright{} 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -22,7 +22,7 @@ are preserved on all copies.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license is
+11 -11
View File
@@ -31,21 +31,21 @@
\subsecentry{Selecting a Keymap}{2}{4}{2}{28}
\subsecentry{Binding Keys}{2}{4}{3}{29}
\subsecentry{Associating Function Names and Bindings}{2}{4}{4}{31}
\subsecentry{Allowing Undoing}{2}{4}{5}{31}
\subsecentry{Redisplay}{2}{4}{6}{32}
\subsecentry{Allowing Undoing}{2}{4}{5}{32}
\subsecentry{Redisplay}{2}{4}{6}{33}
\subsecentry{Modifying Text}{2}{4}{7}{34}
\subsecentry{Character Input}{2}{4}{8}{34}
\subsecentry{Character Input}{2}{4}{8}{35}
\subsecentry{Terminal Management}{2}{4}{9}{35}
\subsecentry{Utility Functions}{2}{4}{10}{35}
\subsecentry{Miscellaneous Functions}{2}{4}{11}{36}
\subsecentry{Alternate Interface}{2}{4}{12}{37}
\subsecentry{Utility Functions}{2}{4}{10}{36}
\subsecentry{Miscellaneous Functions}{2}{4}{11}{37}
\subsecentry{Alternate Interface}{2}{4}{12}{38}
\subsecentry{A Readline Example}{2}{4}{13}{38}
\secentry{Readline Signal Handling}{2}{5}{39}
\secentry{Readline Signal Handling}{2}{5}{40}
\secentry{Custom Completers}{2}{6}{41}
\subsecentry{How Completing Works}{2}{6}{1}{41}
\subsecentry{Completion Functions}{2}{6}{2}{42}
\subsecentry{Completion Variables}{2}{6}{3}{43}
\subsecentry{A Short Completion Example}{2}{6}{4}{47}
\subsecentry{How Completing Works}{2}{6}{1}{42}
\subsecentry{Completion Functions}{2}{6}{2}{43}
\subsecentry{Completion Variables}{2}{6}{3}{44}
\subsecentry{A Short Completion Example}{2}{6}{4}{48}
\appendixentry{Copying This Manual}{A}{57}
\secentry{GNU Free Documentation License}{A}{1}{57}
\subsecentry{ADDENDUM: How to use this License for your documents}{A}{1}{1}{63}
+30 -2
View File
@@ -8,7 +8,7 @@ This document describes the GNU Readline Library, a utility for aiding
in the consistency of user interface across discrete programs that need
to provide a command line interface.
Copyright (C) 1988-2005 Free Software Foundation, Inc.
Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -351,6 +351,12 @@ The @code{rl_set_prompt()} function (@pxref{Redisplay}) may
be used to modify the prompt string after calling @code{readline()}.
@end deftypevar
@deftypevar {char *} rl_display_prompt
The string displayed as the prompt. This is usually identical to
@var{rl_prompt}, but may be changed temporarily by functions that
use the prompt string as a message area, such as incremental search.
@end deftypevar
@deftypevar int rl_already_prompted
If an application wishes to display the prompt itself, rather than have
Readline do it the first time @code{readline()} is called, it should set
@@ -793,7 +799,8 @@ Print the names of all bindable Readline functions to @code{rl_outstream}.
@deftypefun {const char **} rl_funmap_names (void)
Return a NULL terminated array of known function names. The array is
sorted. The array itself is allocated, but not the strings inside. You
should @code{free()} the array when you are done, but not the pointers.
should free the array, but not the pointers, using @code{free} or
@code{rl_free} when you are done.
@end deftypefun
@deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function)
@@ -1077,6 +1084,11 @@ environment variable is used.
@node Utility Functions
@subsection Utility Functions
@deftypefun void rl_free (void *mem)
Deallocate the memory pointed to by @var{mem}. @var{mem} must have been
allocated by @code{malloc}.
@end deftypefun
@deftypefun void rl_replace_line (const char *text, int clear_undo)
Replace the contents of @code{rl_line_buffer} with @var{text}.
The point and mark are preserved, if possible.
@@ -1827,6 +1839,15 @@ if the application's completion function returns no matches.
It should be set only by an application's completion function.
@end deftypevar
@deftypevar int rl_sort_completion_matches
If an application sets this variable to 0, Readline will not sort the
list of completions (which implies that it cannot remove any duplicate
completions). The default value is 1, which means that Readline will
sort the completions and, depending on the value of
@code{rl_ignore_completion_duplicates}, will attempt to remove duplicate
matches.
@end deftypevar
@deftypevar int rl_completion_type
Set to a character describing the type of completion Readline is currently
attempting; see the description of @code{rl_complete_internal()}
@@ -1836,6 +1857,13 @@ completion function is called, allowing such functions to present
the same interface as @code{rl_complete()}.
@end deftypevar
@deftypevar int rl_completion_invoking_key
Set to the final character in the key sequence that invoked one of the
completion functions that call @code{rl_complete_internal()}. This is
set to the appropriate value before any application-specific completion
function is called.
@end deftypevar
@deftypevar int rl_inhibit_completion
If this variable is non-zero, completion is inhibited. The completion
character will be inserted as any other bound to @code{self-insert}.
+12 -9
View File
@@ -471,7 +471,8 @@ attempts word completion. The default is @samp{off}.
@item history-preserve-point
@vindex history-preserve-point
If set to @samp{on}, the history code attempts to place point at the
If set to @samp{on}, the history code attempts to place the point (the
current cursor position) at the
same location on each history line retrieved with @code{previous-history}
or @code{next-history}. The default is @samp{off}.
@@ -595,9 +596,11 @@ the command does.
Once you know the name of the command, simply place on a line
in the init file the name of the key
you wish to bind the command to, a colon, and then the name of the
command. The name of the key
can be expressed in different ways, depending on what you find most
comfortable.
command.
There can be no space between the key name and the colon -- that will be
interpreted as part of the key name.
The name of the key can be expressed in different ways, depending on
what you find most comfortable.
In addition to command names, readline allows keys to be bound
to a string that is inserted when the key is pressed (a @var{macro}).
@@ -1557,9 +1560,9 @@ completed, and the matching words become the possible completions.
After these matches have been generated, any shell function or command
specified with the @option{-F} and @option{-C} options is invoked.
When the command or function is invoked, the @env{COMP_LINE} and
@env{COMP_POINT} variables are assigned values as described above
(@pxref{Bash Variables}).
When the command or function is invoked, the @env{COMP_LINE},
@env{COMP_POINT}, @env{COMP_KEY}, and @env{COMP_TYPE} variables are
assigned values as described above (@pxref{Bash Variables}).
If a shell function is being invoked, the @env{COMP_WORDS} and
@env{COMP_CWORD} variables are also set.
When the function or command is invoked, the first argument is the
@@ -1660,8 +1663,8 @@ matches were generated.
@btindex complete
@example
@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}]
[-C @var{command}] @var{name} [@var{name} @dots{}]}
[-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
[-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]}
@code{complete -pr [@var{name} @dots{}]}
@end example
Binary file not shown.
+10 -7
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on February, 9 2006 by texi2html 1.64 -->
<!-- Created on February, 27 2007 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -655,7 +655,8 @@ attempts word completion. The default is <SAMP>`off'</SAMP>.
<DT><CODE>history-preserve-point</CODE>
<DD><A NAME="IDX14"></A>
If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
If set to <SAMP>`on'</SAMP>, the history code attempts to place the point (the
current cursor position) at the
same location on each history line retrieved with <CODE>previous-history</CODE>
or <CODE>next-history</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
@@ -796,9 +797,11 @@ the command does.
Once you know the name of the command, simply place on a line
in the init file the name of the key
you wish to bind the command to, a colon, and then the name of the
command. The name of the key
can be expressed in different ways, depending on what you find most
comfortable.
command.
There can be no space between the key name and the colon -- that will be
interpreted as part of the key name.
The name of the key can be expressed in different ways, depending on
what you find most comfortable.
</P><P>
In addition to command names, readline allows keys to be bound
@@ -2628,7 +2631,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>February, 9 2006</I>
This document was generated by <I>Chet Ramey</I> on <I>February, 27 2007</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2790,7 +2793,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>February, 9 2006</I>
by <I>Chet Ramey</I> on <I>February, 27 2007</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+37 -35
View File
@@ -1,12 +1,12 @@
This is rluserman.info, produced by makeinfo version 4.7 from
This is rluserman.info, produced by makeinfo version 4.8 from
./rluserman.texi.
This manual describes the end user interface of the GNU Readline
Library (version 5.2, 9 February 2006), a library which aids in the
Library (version 5.2, 27 February 2007), a library which aids in the
consistency of user interface across discrete programs which provide a
command line interface.
Copyright (C) 1988-2005 Free Software Foundation, Inc.
Copyright (C) 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -14,7 +14,7 @@ preserved on all copies.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -440,9 +440,10 @@ Variable Settings
attempts word completion. The default is `off'.
`history-preserve-point'
If set to `on', the history code attempts to place point at
the same location on each history line retrieved with
`previous-history' or `next-history'. The default is `off'.
If set to `on', the history code attempts to place the point
(the current cursor position) at the same location on each
history line retrieved with `previous-history' or
`next-history'. The default is `off'.
`horizontal-scroll-mode'
This variable can be set to either `on' or `off'. Setting it
@@ -540,9 +541,10 @@ Key Bindings
Once you know the name of the command, simply place on a line in
the init file the name of the key you wish to bind the command to,
a colon, and then the name of the command. The name of the key
can be expressed in different ways, depending on what you find most
comfortable.
a colon, and then the name of the command. There can be no space
between the key name and the colon - that will be interpreted as
part of the key name. The name of the key can be expressed in
different ways, depending on what you find most comfortable.
In addition to command names, readline allows keys to be bound to
a string that is inserted when the key is pressed (a MACRO).
@@ -1718,30 +1720,30 @@ permit their use in free software.

Tag Table:
Node: Top1339
Node: Command Line Editing1771
Node: Introduction and Notation2414
Node: Readline Interaction4038
Node: Readline Bare Essentials5231
Node: Readline Movement Commands7022
Node: Readline Killing Commands7989
Node: Readline Arguments9911
Node: Searching10957
Node: Readline Init File13110
Node: Readline Init File Syntax14265
Node: Conditional Init Constructs26201
Node: Sample Init File28736
Node: Bindable Readline Commands31855
Node: Commands For Moving32914
Node: Commands For History33777
Node: Commands For Text36903
Node: Commands For Killing39631
Node: Numeric Arguments41775
Node: Commands For Completion42916
Node: Keyboard Macros44462
Node: Miscellaneous Commands45035
Node: Readline vi Mode48398
Node: Copying This Manual49319
Node: GNU Free Documentation License49551
Node: Top1340
Node: Command Line Editing1772
Node: Introduction and Notation2415
Node: Readline Interaction4039
Node: Readline Bare Essentials5232
Node: Readline Movement Commands7023
Node: Readline Killing Commands7990
Node: Readline Arguments9912
Node: Searching10958
Node: Readline Init File13111
Node: Readline Init File Syntax14266
Node: Conditional Init Constructs26361
Node: Sample Init File28896
Node: Bindable Readline Commands32015
Node: Commands For Moving33074
Node: Commands For History33937
Node: Commands For Text37063
Node: Commands For Killing39791
Node: Numeric Arguments41935
Node: Commands For Completion43076
Node: Keyboard Macros44622
Node: Miscellaneous Commands45195
Node: Readline vi Mode48558
Node: Copying This Manual49479
Node: GNU Free Documentation License49711

End Tag Table
+17 -17
View File
@@ -1,4 +1,4 @@
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22) 9 FEB 2006 09:50
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2006.11.28) 27 FEB 2007 09:16
**/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,
@@ -106,7 +106,7 @@ cross references,
\auxfile=\write2
\savesfregister=\count46
\footnoteno=\count47
(/sw/share/texmf/tex/generic/misc/epsf.tex
(/sw/share/texmf-dist/tex/generic/epsf/epsf.tex
\epsffilein=\read0
\epsfframemargin=\dimen39
\epsfframethickness=\dimen40
@@ -119,19 +119,19 @@ cross references,
\epsfnoopenhelp=\toks24
)
\noepsfhelp=\toks25
localization,
localization,
\nolanghelp=\toks26
\defaultparindent=\dimen47
and turning on texinfo input format.) (./rluserman.aux)
and turning on texinfo input format.) (./rluserman.aux)
@cpindfile=@write3
@fnindfile=@write4
@vrindfile=@write5
@tpindfile=@write6
@kyindfile=@write7
@pgindfile=@write8
(./version.texi)
[1
(./version.texi) [1
\openout2 = `rluserman.aux'.
\openout3 = `rluserman.cp'.
@@ -151,12 +151,12 @@ and turning on texinfo input format.) (./rluserman.aux)
Chapter 1
\openout0 = `rluserman.toc'.
[1
[1
\openout9 = `rluserman.bt'.
] [2] [3]
[4] [5]
Underfull \hbox (badness 5231) in paragraph at lines 502--518
] [2] [3] [4] [5]
Underfull \hbox (badness 5231) in paragraph at lines 503--519
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -169,7 +169,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[6] [7] [8] [9] [10]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 815--815
Overfull \hbox (26.43913pt too wide) in paragraph at lines 818--818
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[] |
@@ -184,12 +184,12 @@ gnored[] |
[11] [12] [13] [14] [15] [16] [17] [18]) Appendix A [19] [20] (./fdl.texi
[21] [22] [23] [24] [25] [26]) [27] [28] )
Here is how much of TeX's memory you used:
1405 strings out of 98002
16392 string characters out of 1221987
44914 words of memory out of 1000001
1405 strings out of 97980
16407 string characters out of 1221004
44916 words of memory out of 1000000
2276 multiletter control sequences out of 10000+50000
31953 words of font info for 111 fonts, out of 500000 for 1000
31953 words of font info for 111 fonts, out of 500000 for 2000
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, 92940 bytes).
Output written on rluserman.dvi (32 pages, 96244 bytes).
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -14,7 +14,7 @@ This manual describes the end user interface of the GNU Readline Library
consistency of user interface across discrete programs which provide
a command line interface.
Copyright @copyright{} 1988-2005 Free Software Foundation, Inc.
Copyright @copyright{} 1988-2006 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -22,7 +22,7 @@ are preserved on all copies.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license is
+4 -4
View File
@@ -1,10 +1,10 @@
@ignore
Copyright (C) 1988-2006 Free Software Foundation, Inc.
Copyright (C) 1988-2007 Free Software Foundation, Inc.
@end ignore
@set EDITION 5.2
@set VERSION 5.2
@set UPDATED 9 February 2006
@set UPDATED-MONTH February 2006
@set UPDATED 27 February 2007
@set UPDATED-MONTH February 2007
@set LASTCHANGE Thu Feb 9 09:46:31 EST 2006
@set LASTCHANGE Tue Feb 27 09:04:57 EST 2007
+3
View File
@@ -32,6 +32,9 @@ Let me know what you think.
Jeff
*/
/*
Copyright (C) 1999 Jeff Solomon
*/
#if defined (HAVE_CONFIG_H)
#include <config.h>
+1 -1
View File
@@ -56,7 +56,7 @@ static int funmap_entry;
program specific function. */
int funmap_program_specific_entry_start;
static FUNMAP default_funmap[] = {
static const FUNMAP default_funmap[] = {
{ "abort", rl_abort },
{ "accept-line", rl_newline },
{ "arrow-key-prefix", rl_arrow_keys },
+6 -6
View File
@@ -56,8 +56,6 @@
typedef int _hist_search_func_t PARAMS((const char *, int));
extern int rl_byte_oriented; /* declared in mbutil.c */
static char error_pointer;
static char *subst_lhs;
@@ -564,12 +562,12 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
int c, l;
int ch, l;
l = _rl_find_prev_mbchar (string, i, MB_FIND_ANY);
c = string[l];
ch = string[l];
/* XXX - original patch had i - 1 ??? If i == 0 it would fail. */
if (i && (c == '\'' || c == '"'))
quoted_search_delimiter = c;
if (i && (ch == '\'' || ch == '"'))
quoted_search_delimiter = ch;
}
else
#endif /* HANDLE_MULTIBYTE */
@@ -1430,6 +1428,8 @@ history_tokenize_word (string, ind)
{
if (peek == '<' && string[i + 2] == '-')
i++;
else if (peek == '<' && string[i + 2] == '<')
i++;
i += 2;
return i;
}
+9 -3
View File
@@ -53,7 +53,9 @@
# include <unistd.h>
#endif
#if defined (__EMX__) || defined (__CYGWIN__)
#include <ctype.h>
#if defined (__EMX__)
# undef HAVE_MMAP
#endif
@@ -103,7 +105,7 @@ int history_write_timestamps = 0;
/* Does S look like the beginning of a history timestamp entry? Placeholder
for more extensive tests. */
#define HIST_TIMESTAMP_START(s) (*(s) == history_comment_char)
#define HIST_TIMESTAMP_START(s) (*(s) == history_comment_char && isdigit ((s)[1]) )
/* Return the string that should be used in the place of this
filename. This only matters when you don't specify the
@@ -256,7 +258,11 @@ read_history_range (filename, from, to)
for (line_end = line_start; line_end < bufend; line_end++)
if (*line_end == '\n')
{
*line_end = '\0';
/* Change to allow Windows-like \r\n end of line delimiter. */
if (line_end > line_start && line_end[-1] == '\r')
line_end[-1] = '\0';
else
*line_end = '\0';
if (*line_start)
{
+83 -6
View File
@@ -158,7 +158,7 @@ history_set_pos (pos)
return (1);
}
/* Return the current history array. The caller has to be carefull, since this
/* Return the current history array. The caller has to be careful, since this
is the actual array of data, and could be bashed or made corrupt easily.
The array is terminated with a NULL pointer. */
HIST_ENTRY **
@@ -209,6 +209,22 @@ history_get (offset)
: the_history[local_index];
}
HIST_ENTRY *
alloc_history_entry (string, ts)
char *string;
char *ts;
{
HIST_ENTRY *temp;
temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
temp->line = string ? savestring (string) : string;
temp->data = (char *)NULL;
temp->timestamp = ts;
return temp;
}
time_t
history_get_time (hist)
HIST_ENTRY *hist;
@@ -290,11 +306,7 @@ add_history (string)
}
}
temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
temp->line = savestring (string);
temp->data = (char *)NULL;
temp->timestamp = hist_inittime ();
temp = alloc_history_entry (string, hist_inittime ());
the_history[history_length] = (HIST_ENTRY *)NULL;
the_history[history_length - 1] = temp;
@@ -328,6 +340,26 @@ free_history_entry (hist)
free (hist);
return (x);
}
HIST_ENTRY *
copy_history_entry (hist)
HIST_ENTRY *hist;
{
HIST_ENTRY *ret;
char *ts;
if (hist == 0)
return hist;
ret = alloc_history_entry (hist->line, (char *)NULL);
ts = hist->timestamp ? savestring (hist->timestamp) : hist->timestamp;
ret->timestamp = ts;
ret->data = hist->data;
return ret;
}
/* Make the history entry at WHICH have LINE and DATA. This returns
the old entry so you can dispose of the data. In the case of an
@@ -354,6 +386,51 @@ replace_history_entry (which, line, data)
return (old_value);
}
/* Replace the DATA in the specified history entries, replacing OLD with
NEW. WHICH says which one(s) to replace: WHICH == -1 means to replace
all of the history entries where entry->data == OLD; WHICH == -2 means
to replace the `newest' history entry where entry->data == OLD; and
WHICH >= 0 means to replace that particular history entry's data, as
long as it matches OLD. */
void
replace_history_data (which,old, new)
int which;
histdata_t *old, *new;
{
HIST_ENTRY *entry;
register int i, last;
if (which < -2 || which >= history_length || history_length == 0 || the_history == 0)
return;
if (which >= 0)
{
entry = the_history[which];
if (entry && entry->data == old)
entry->data = new;
return;
}
last = -1;
for (i = 0; i < history_length; i++)
{
entry = the_history[i];
if (entry == 0)
continue;
if (entry->data == old)
{
last = i;
if (which == -1)
entry->data = new;
}
}
if (which == -2 && last >= 0)
{
entry = the_history[last];
entry->data = new; /* XXX - we don't check entry->old */
}
}
/* Remove history element WHICH from the history. The removed
element is returned to you so you can free the line, data,
and containing structure. */
+29 -10
View File
@@ -179,6 +179,7 @@ rl_gather_tyi ()
struct timeval timeout;
#endif
chars_avail = 0;
tty = fileno (rl_instream);
#if defined (HAVE_SELECT)
@@ -220,6 +221,13 @@ rl_gather_tyi ()
}
#endif /* O_NDELAY */
#if defined (__MINGW32__)
/* Use getch/_kbhit to check for available console input, in the same way
that we read it normally. */
chars_avail = isatty (tty) ? _kbhit () : 0;
result = 0;
#endif
/* If there's nothing available, don't waste time trying to read
something. */
if (chars_avail <= 0)
@@ -303,6 +311,11 @@ _rl_input_available ()
return (chars_avail);
#endif
#endif
#if defined (__MINGW32__)
if (isatty (tty))
return (_kbhit ());
#endif
return 0;
@@ -341,7 +354,7 @@ _rl_insert_typein (c)
string[i] = '\0';
rl_insert_text (string);
free (string);
xfree (string);
}
/* Add KEY to the buffer of characters to be read. Returns 1 if the
@@ -489,7 +502,7 @@ rl_getc (stream)
this is simply an interrupted system call to read ().
Otherwise, some error ocurred, also signifying EOF. */
if (errno != EINTR)
return (EOF);
return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
}
}
@@ -500,20 +513,26 @@ _rl_read_mbchar (mbchar, size)
char *mbchar;
int size;
{
int mb_len = 0;
int mb_len, c;
size_t mbchar_bytes_length;
wchar_t wc;
mbstate_t ps, ps_back;
memset(&ps, 0, sizeof (mbstate_t));
memset(&ps_back, 0, sizeof (mbstate_t));
mb_len = 0;
while (mb_len < size)
{
RL_SETSTATE(RL_STATE_MOREINPUT);
mbchar[mb_len++] = rl_read_key ();
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
break;
mbchar[mb_len++] = c;
mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
if (mbchar_bytes_length == (size_t)(-1))
break; /* invalid byte sequence for the current locale */
@@ -537,21 +556,21 @@ _rl_read_mbchar (mbchar, size)
}
/* Read a multibyte-character string whose first character is FIRST into
the buffer MB of length MBLEN. Returns the last character read, which
the buffer MB of length MLEN. Returns the last character read, which
may be FIRST. Used by the search functions, among others. Very similar
to _rl_read_mbchar. */
int
_rl_read_mbstring (first, mb, mblen)
_rl_read_mbstring (first, mb, mlen)
int first;
char *mb;
int mblen;
int mlen;
{
int i, c;
mbstate_t ps;
c = first;
memset (mb, 0, mblen);
for (i = 0; i < mblen; i++)
memset (mb, 0, mlen);
for (i = 0; c > 0 && i < mlen; i++)
{
mb[i] = (char)c;
memset (&ps, 0, sizeof (mbstate_t));
+12 -5
View File
@@ -75,7 +75,7 @@ static int _rl_isearch_cleanup PARAMS((_rl_search_cxt *, int));
static char *last_isearch_string;
static int last_isearch_string_len;
static char *default_isearch_terminators = "\033\012";
static char * const default_isearch_terminators = "\033\012";
_rl_search_cxt *
_rl_scxt_alloc (type, flags)
@@ -125,7 +125,7 @@ _rl_scxt_dispose (cxt, flags)
FREE (cxt->allocated_line);
FREE (cxt->lines);
free (cxt);
xfree (cxt);
}
/* Search backwards through the history looking for a string which is typed
@@ -192,7 +192,7 @@ rl_display_search (search_string, reverse_p, where)
strcpy (message + msglen, "': ");
rl_message ("%s", message);
free (message);
xfree (message);
(*rl_redisplay_function) ();
}
@@ -327,8 +327,15 @@ _rl_isearch_dispatch (cxt, c)
rl_command_func_t *f;
f = (rl_command_func_t *)NULL;
/* Translate the keys we do something with to opcodes. */
if (c < 0)
{
cxt->sflags |= SF_FAILED;
cxt->history_pos = cxt->last_found_line;
return -1;
}
/* Translate the keys we do something with to opcodes. */
if (c >= 0 && _rl_keymap[c].type == ISFUNC)
{
f = _rl_keymap[c].function;
+4 -3
View File
@@ -115,7 +115,7 @@ _rl_copy_to_kill_ring (text, append)
if (slot == rl_max_kills)
{
register int i;
free (rl_kill_ring[0]);
xfree (rl_kill_ring[0]);
for (i = 0; i < slot; i++)
rl_kill_ring[i] = rl_kill_ring[i + 1];
}
@@ -146,7 +146,7 @@ _rl_copy_to_kill_ring (text, append)
strcpy (new, text);
strcat (new, old);
}
free (old);
xfree (old);
free (text);
rl_kill_ring[slot] = new;
}
@@ -582,6 +582,7 @@ rl_yank_nth_arg_internal (count, ignore, history_skip)
if (!arg || !*arg)
{
rl_ding ();
FREE (arg);
return -1;
}
@@ -685,7 +686,7 @@ rl_paste_from_clipboard (count, key)
_rl_set_mark_at_pos (rl_point);
rl_insert_text (ptr);
if (ptr != data)
free (ptr);
xfree (ptr);
CloseClipboard ();
}
return (0);
+3 -3
View File
@@ -113,7 +113,7 @@ _rl_next_macro_key ()
#if defined (READLINE_CALLBACKS)
c = rl_executing_macro[executing_macro_index++];
if (RL_ISSTATE (RL_STATE_CALLBACK) && RL_ISSTATE (RL_STATE_READCMD) && rl_executing_macro[executing_macro_index] == 0)
if (RL_ISSTATE (RL_STATE_CALLBACK) && RL_ISSTATE (RL_STATE_READCMD|RL_STATE_MOREINPUT) && rl_executing_macro[executing_macro_index] == 0)
_rl_pop_executing_macro ();
return c;
#else
@@ -152,7 +152,7 @@ _rl_pop_executing_macro ()
rl_executing_macro = macro_list->string;
executing_macro_index = macro_list->sindex;
macro_list = macro_list->next;
free (macro);
xfree (macro);
}
if (rl_executing_macro == 0)
@@ -181,7 +181,7 @@ _rl_kill_kbd_macro ()
{
if (current_macro)
{
free (current_macro);
xfree (current_macro);
current_macro = (char *) NULL;
}
current_macro_size = current_macro_index = 0;
+4 -3
View File
@@ -91,8 +91,9 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
return seed;
point = seed + _rl_adjust_point (string, seed, &ps);
/* if this is true, means that seed was not pointed character
started byte. So correct the point and consume count */
/* if this is true, means that seed was not pointing to a byte indicating
the beginning of a multibyte character. Correct the point and consume
one char. */
if (seed < point)
count--;
@@ -101,7 +102,7 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps);
if (MB_INVALIDCH ((size_t)tmp))
{
/* invalid bytes. asume a byte represents a character */
/* invalid bytes. assume a byte represents a character */
point++;
count--;
/* reset states. */
+53 -1
View File
@@ -1,6 +1,6 @@
/* misc.c -- miscellaneous bindable readline functions. */
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -146,6 +146,8 @@ _rl_arg_dispatch (cxt, c)
rl_restore_prompt ();
rl_clear_message ();
RL_UNSETSTATE(RL_STATE_NUMERICARG);
if (key < 0)
return -1;
return (_rl_dispatch (key, _rl_keymap));
}
}
@@ -429,6 +431,56 @@ rl_replace_from_history (entry, flags)
rl_mark = rl_end;
}
#endif
}
/* Process and free undo lists attached to each history entry prior to the
current entry, inclusive, reverting each line to its saved state. This
is destructive, and state about the current line is lost. This is not
intended to be called while actively editing, and the current line is
not assumed to have been added to the history list. */
void
_rl_revert_all_lines ()
{
int hpos;
HIST_ENTRY *entry, *cur;
UNDO_LIST *ul, *saved_undo_list;
char *lbuf;
lbuf = savestring (rl_line_buffer);
saved_undo_list = rl_undo_list;
hpos = where_history ();
entry = (hpos == history_length) ? previous_history () : current_history ();
while (entry)
{
if (ul = (UNDO_LIST *)entry->data)
{
if (ul == saved_undo_list)
saved_undo_list = 0;
/* Set up rl_line_buffer and other variables from history entry */
rl_replace_from_history (entry, 0); /* entry->line is now current */
/* Undo all changes to this history entry */
while (rl_undo_list)
rl_do_undo ();
/* And copy the reverted line back to the history entry, preserving
the timestamp. */
FREE (entry->line);
entry->line = savestring (rl_line_buffer);
entry->data = 0;
}
entry = previous_history ();
}
/* Restore history state */
rl_undo_list = saved_undo_list; /* may have been set to null */
history_set_pos (hpos);
/* reset the line buffer */
rl_replace_line (lbuf, 0);
_rl_set_the_line ();
/* and clean up */
free (lbuf);
}
/* **************************************************************** */
+48 -1
View File
@@ -1,7 +1,7 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -49,6 +49,11 @@
#include <stdio.h>
#include "posixjmp.h"
#include <errno.h>
#if !defined (errno)
extern int errno;
#endif /* !errno */
/* System-specific feature definitions and include files. */
#include "rldefs.h"
@@ -265,6 +270,11 @@ int _rl_output_meta_chars = 0;
them to equivalent readline functions at startup. */
int _rl_bind_stty_chars = 1;
/* Non-zero means to go through the history list at every newline (or
whenever rl_done is set and readline returns) and revert each line to
its initial state. */
int _rl_revert_all_at_newline = 0;
/* **************************************************************** */
/* */
/* Top Level Functions */
@@ -295,6 +305,7 @@ readline (prompt)
const char *prompt;
{
char *value;
int in_callback;
/* If we are at EOF return a NULL string. */
if (rl_pending_input == EOF)
@@ -303,6 +314,15 @@ readline (prompt)
return ((char *)NULL);
}
#if 0
/* If readline() is called after installing a callback handler, temporarily
turn off the callback state to avoid ensuing messiness. Patch supplied
by the gdb folks. XXX -- disabled. This can be fooled and readline
left in a strange state by a poorly-timed longjmp. */
if (in_callback = RL_ISSTATE (RL_STATE_CALLBACK))
RL_UNSETSTATE (RL_STATE_CALLBACK);
#endif
rl_set_prompt (prompt);
rl_initialize ();
@@ -321,6 +341,11 @@ readline (prompt)
rl_clear_signals ();
#endif
#if 0
if (in_callback)
RL_SETSTATE (RL_STATE_CALLBACK);
#endif
return (value);
}
@@ -394,6 +419,9 @@ readline_internal_teardown (eof)
free (temp);
}
if (_rl_revert_all_at_newline)
_rl_revert_all_lines ();
/* At any rate, it is highly likely that this line has an undo list. Get
rid of it now. */
if (rl_undo_list)
@@ -479,6 +507,20 @@ readline_internal_charloop ()
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_READCMD);
/* look at input.c:rl_getc() for the circumstances under which this will
be returned; punt immediately on read error without converting it to
a newline. */
if (c == READERR)
{
#if defined (READLINE_CALLBACKS)
RL_SETSTATE(RL_STATE_DONE);
return (rl_done = 1);
#else
eof_found = 1;
break;
#endif
}
/* EOF typed to a non-blank line is a <NL>. */
if (c == EOF && rl_end)
c = NEWLINE;
@@ -626,6 +668,11 @@ _rl_dispatch_callback (cxt)
if ((cxt->flags & KSEQ_DISPATCHED) == 0)
{
nkey = _rl_subseq_getchar (cxt->okey);
if (nkey < 0)
{
_rl_abort_internal ();
return -1;
}
r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
cxt->flags |= KSEQ_DISPATCHED;
}
+17 -2
View File
@@ -40,9 +40,9 @@ extern "C" {
#endif
/* Hex-encoded Readline version number. */
#define RL_READLINE_VERSION 0x0501 /* Readline 5.1 */
#define RL_READLINE_VERSION 0x0502 /* Readline 5.2 */
#define RL_VERSION_MAJOR 5
#define RL_VERSION_MINOR 1
#define RL_VERSION_MINOR 2
/* Readline data structures. */
@@ -420,6 +420,7 @@ extern int rl_set_keyboard_input_timeout PARAMS((int));
extern void rl_extend_line_buffer PARAMS((int));
extern int rl_ding PARAMS((void));
extern int rl_alphabetic PARAMS((int));
extern void rl_free PARAMS((void *));
/* Readline signal handling, from signals.c */
extern int rl_set_signals PARAMS((void));
@@ -493,6 +494,10 @@ extern const char *rl_readline_name;
readline (), and should not be assigned to directly. */
extern char *rl_prompt;
/* The prompt string that is actually displayed by rl_redisplay. Public so
applications can more easily supply their own redisplay functions. */
extern char *rl_display_prompt;
/* The line buffer that is in use. */
extern char *rl_line_buffer;
@@ -713,6 +718,9 @@ extern int rl_attempted_completion_over;
functions. */
extern int rl_completion_type;
/* Set to the last key used to invoke one of the completion functions */
extern int rl_completion_invoking_key;
/* Up to this many items will be displayed in response to a
possible-completions call. After that, we ask the user if she
is sure she wants to see them all. The default value is 100. */
@@ -739,6 +747,9 @@ extern int rl_completion_found_quote;
application-specific completion function. */
extern int rl_completion_suppress_quote;
/* If non-zero, readline will sort the completion matches. On by default. */
extern int rl_sort_completion_matches;
/* If non-zero, a slash will be appended to completed filenames that are
symbolic links to directory names, subject to the value of the
mark-directories variable (which is user-settable). This exists so
@@ -757,6 +768,10 @@ extern int rl_ignore_completion_duplicates;
completion character will be inserted as any other. */
extern int rl_inhibit_completion;
/* Input error; can be returned by (*rl_getc_function) if readline is reading
a top-level command (RL_ISSTATE (RL_STATE_READCMD)). */
#define READERR (-2)
/* Definitions available for use by readline clients. */
#define RL_PROMPT_START_IGNORE '\001'
#define RL_PROMPT_END_IGNORE '\002'
+4
View File
@@ -32,6 +32,10 @@
#include "rlstdc.h"
#if defined (STRCOLL_BROKEN)
# undef HAVE_STRCOLL
#endif
#if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
# define TERMIOS_TTY_DRIVER
#else
+11 -2
View File
@@ -32,10 +32,19 @@
/* For platforms which support the ISO C amendement 1 functionality we
support user defined character classes. */
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H)
#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H) && defined (HAVE_LOCALE_H)
# include <wchar.h>
# include <wctype.h>
# if defined (HAVE_MBSRTOWCS) && defined (HAVE_MBRTOWC) && defined (HAVE_MBRLEN) && defined (HAVE_WCWIDTH)
# if defined (HAVE_ISWCTYPE) && \
defined (HAVE_ISWLOWER) && \
defined (HAVE_ISWUPPER) && \
defined (HAVE_MBSRTOWCS) && \
defined (HAVE_MBRTOWC) && \
defined (HAVE_MBRLEN) && \
defined (HAVE_TOWLOWER) && \
defined (HAVE_TOWUPPER) && \
defined (HAVE_WCHAR_T) && \
defined (HAVE_WCWIDTH)
/* system is supposed to support XPG5 */
# define HANDLE_MULTIBYTE 1
# endif
+29 -4
View File
@@ -1,7 +1,7 @@
/* rlprivate.h -- functions and variables global to the readline library,
but not intended for use by applications. */
/* Copyright (C) 1999-2005 Free Software Foundation, Inc.
/* Copyright (C) 1999-2007 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.
@@ -28,6 +28,16 @@
#include "rlstdc.h"
#include "posixjmp.h" /* defines procenv_t */
/*************************************************************************
* *
* Convenience definitions *
* *
*************************************************************************/
#define EMACS_MODE() (rl_editing_mode == emacs_mode)
#define VI_COMMAND_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
#define VI_INSERT_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_insertion_keymap)
/*************************************************************************
* *
* Global structs undocumented in texinfo manual and not in readline.h *
@@ -261,6 +271,8 @@ extern void _rl_start_using_history PARAMS((void));
extern int _rl_free_saved_history_line PARAMS((void));
extern void _rl_set_insert_mode PARAMS((int, int));
extern void _rl_revert_all_lines PARAMS((void));
/* nls.c */
extern int _rl_init_eightbit PARAMS((void));
@@ -309,7 +321,19 @@ extern int _rl_char_search_internal PARAMS((int, int, int));
#endif
extern int _rl_set_mark_at_pos PARAMS((int));
/* undo.c */
extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *));
extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *));
/* util.c */
#if defined (USE_VARARGS) && defined (PREFER_STDARG)
extern void _rl_ttymsg (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
extern void _rl_errmsg (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
#else
extern void _rl_ttymsg ();
extern void _rl_errmsg ();
#endif
extern int _rl_abort_internal PARAMS((void));
extern char *_rl_strindex PARAMS((const char *, const char *));
extern int _rl_qsort_string_compare PARAMS((char **, char **));
@@ -333,8 +357,8 @@ extern void _rl_vi_done_inserting PARAMS((void));
*************************************************************************/
/* bind.c */
extern const char *_rl_possible_control_prefixes[];
extern const char *_rl_possible_meta_prefixes[];
extern const char * const _rl_possible_control_prefixes[];
extern const char * const _rl_possible_meta_prefixes[];
/* callback.c */
extern _rl_callback_func_t *_rl_callback_func;
@@ -355,7 +379,6 @@ extern int _rl_vis_botlin;
extern int _rl_last_c_pos;
extern int _rl_suppress_redisplay;
extern int _rl_want_redisplay;
extern char *rl_display_prompt;
/* isearch.c */
extern char *_rl_isearch_terminators;
@@ -379,6 +402,7 @@ extern int _rl_meta_flag;
extern int _rl_convert_meta_chars_to_ascii;
extern int _rl_output_meta_chars;
extern int _rl_bind_stty_chars;
extern int _rl_revert_all_at_newline;
extern char *_rl_comment_begin;
extern unsigned char _rl_parsing_conditionalized_out;
extern Keymap _rl_keymap;
@@ -404,6 +428,7 @@ extern char *_rl_term_up;
extern char *_rl_term_dc;
extern char *_rl_term_cr;
extern char *_rl_term_IC;
extern char *_rl_term_forward_char;
extern int _rl_screenheight;
extern int _rl_screenwidth;
extern int _rl_screenchars;
+4 -4
View File
@@ -464,7 +464,7 @@ static void
rltty_warning (msg)
char *msg;
{
fprintf (stderr, "readline: warning: %s\n", msg);
_rl_errmsg ("warning: %s", msg);
}
#endif
@@ -475,7 +475,7 @@ TIOTYPE *tp;
{
if ((tp->c_oflag & OPOST) == 0)
{
rltty_warning ("turning on OPOST for terminal\r");
_rl_errmsg ("warning: turning on OPOST for terminal\r");
tp->c_oflag |= OPOST|ONLCR;
}
}
@@ -501,7 +501,7 @@ _get_tty_settings (tty, tiop)
if (OUTPUT_BEING_FLUSHED (tiop))
{
#if defined (FLUSHO) && defined (_AIX41)
rltty_warning ("turning off output flushing");
_rl_errmsg ("warning: turning off output flushing");
tiop->c_lflag &= ~FLUSHO;
break;
#else
@@ -862,7 +862,7 @@ set_special_char (kmap, tiop, sc, func)
}
#define RESET_SPECIAL(c) \
if (c != -1 && kmap[(unsigned char)c].type == ISFUNC)
if (c != -1 && kmap[(unsigned char)c].type == ISFUNC) \
kmap[(unsigned char)c].function = rl_insert;
static void
+4 -1
View File
@@ -53,5 +53,8 @@
# endif /* HAVE_SYS_PTE_H */
#endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
#endif /* _RL_WINSIZE_H */
#if defined (M_UNIX) && !defined (_SCO_DS) && !defined (tcflow)
# define tcflow(fd, action) ioctl(fd, TCXONC, action)
#endif
#endif /* _RL_WINSIZE_H */
+9 -12
View File
@@ -125,9 +125,7 @@ char *_rl_term_IC;
char *_rl_term_dc;
char *_rl_term_DC;
#if defined (HACK_TERMCAP_MOTION)
char *_rl_term_forward_char;
#endif /* HACK_TERMCAP_MOTION */
/* How to go up a line. */
char *_rl_term_up;
@@ -199,6 +197,7 @@ _emx_get_screensize (swp, shp)
#endif
#if defined (__MINGW32__)
static void
_win_get_screensize (swp, shp)
int *swp, *shp;
{
@@ -208,9 +207,11 @@ _win_get_screensize (swp, shp)
hConOut = GetStdHandle (STD_OUTPUT_HANDLE);
if (hConOut != INVALID_HANDLE_VALUE)
{
GetConsoleScreenBufferInfo (hConOut, &scr);
*swp = scr.dwSize.X;
*shp = scr.srWindow.Bottom - scr.srWindow.Top + 1;
if (GetConsoleScreenBufferInfo (hConOut, &scr))
{
*swp = scr.dwSize.X;
*shp = scr.srWindow.Bottom - scr.srWindow.Top + 1;
}
}
}
#endif
@@ -360,13 +361,13 @@ rl_resize_terminal ()
}
struct _tc_string {
const char *tc_var;
const char * const tc_var;
char **tc_value;
};
/* This should be kept sorted, just in case we decide to change the
search algorithm to something smarter. */
static struct _tc_string tc_strings[] =
static const struct _tc_string tc_strings[] =
{
{ "@7", &_rl_term_at7 },
{ "DC", &_rl_term_DC },
@@ -391,9 +392,7 @@ static struct _tc_string tc_strings[] =
{ "le", &_rl_term_backspace },
{ "mm", &_rl_term_mm },
{ "mo", &_rl_term_mo },
#if defined (HACK_TERMCAP_MOTION)
{ "nd", &_rl_term_forward_char },
#endif
{ "pc", &_rl_term_pc },
{ "up", &_rl_term_up },
{ "vb", &_rl_visible_bell },
@@ -490,9 +489,7 @@ _rl_init_terminal_io (terminal_name)
_rl_term_ks = _rl_term_ke = _rl_term_at7 = (char *)NULL;
_rl_term_mm = _rl_term_mo = (char *)NULL;
_rl_term_ve = _rl_term_vs = (char *)NULL;
#if defined (HACK_TERMCAP_MOTION)
term_forward_char = (char *)NULL;
#endif
_rl_term_forward_char = (char *)NULL;
_rl_terminal_can_insert = term_has_meta = 0;
/* Reasonable defaults for tgoto(). Readline currently only uses
+25 -10
View File
@@ -260,7 +260,7 @@ rl_forward_byte (count, key)
{
int end = rl_point + count;
#if defined (VI_MODE)
int lend = rl_end > 0 ? rl_end - (rl_editing_mode == vi_mode) : rl_end;
int lend = rl_end > 0 ? rl_end - (VI_COMMAND_MODE()) : rl_end;
#else
int lend = rl_end;
#endif
@@ -296,10 +296,16 @@ rl_forward_char (count, key)
if (count > 0)
{
if (rl_point == rl_end && EMACS_MODE())
{
rl_ding ();
return 0;
}
point = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
#if defined (VI_MODE)
if (rl_end <= point && rl_editing_mode == vi_mode)
if (point >= rl_end && VI_COMMAND_MODE())
point = _rl_find_prev_mbchar (rl_line_buffer, rl_end, MB_FIND_NONZERO);
#endif
@@ -857,6 +863,9 @@ _rl_insert_next (count)
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
return -1;
#if defined (HANDLE_SIGNALS)
if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
_rl_restore_tty_signals ();
@@ -1237,8 +1246,8 @@ rl_change_case (count, op)
#if defined (HANDLE_MULTIBYTE)
wchar_t wc, nwc;
char mb[MB_LEN_MAX+1];
int mblen;
mbstate_t ps;
int mlen;
mbstate_t mps;
#endif
start = rl_point;
@@ -1255,7 +1264,7 @@ rl_change_case (count, op)
SWAP (start, end);
#if defined (HANDLE_MULTIBYTE)
memset (&ps, 0, sizeof (mbstate_t));
memset (&mps, 0, sizeof (mbstate_t));
#endif
/* We are going to modify some text, so let's prepare to undo it. */
@@ -1290,15 +1299,15 @@ rl_change_case (count, op)
#if defined (HANDLE_MULTIBYTE)
else
{
mbrtowc (&wc, rl_line_buffer + start, end - start, &ps);
mbrtowc (&wc, rl_line_buffer + start, end - start, &mps);
nwc = (nop == UpCase) ? _rl_to_wupper (wc) : _rl_to_wlower (wc);
if (nwc != wc) /* just skip unchanged characters */
{
mblen = wcrtomb (mb, nwc, &ps);
if (mblen > 0)
mb[mblen] = '\0';
mlen = wcrtomb (mb, nwc, &mps);
if (mlen > 0)
mb[mlen] = '\0';
/* Assume the same width */
strncpy (rl_line_buffer + start, mb, mblen);
strncpy (rl_line_buffer + start, mb, mlen);
}
}
#endif
@@ -1520,6 +1529,9 @@ _rl_char_search (count, fdir, bdir)
mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
if (mb_len <= 0)
return -1;
if (count < 0)
return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
else
@@ -1536,6 +1548,9 @@ _rl_char_search (count, fdir, bdir)
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
return -1;
if (count < 0)
return (_rl_char_search_internal (-count, bdir, c));
else
+71 -11
View File
@@ -1,7 +1,7 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
/* Copyright (C) 1987, 1989, 1992, 2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -50,6 +50,8 @@
#include "rlprivate.h"
#include "xmalloc.h"
extern void replace_history_data PARAMS((int, histdata_t *, histdata_t *));
/* Non-zero tells rl_delete_text and rl_insert_text to not add to
the undo list. */
int _rl_doing_an_undo = 0;
@@ -66,6 +68,24 @@ UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL;
/* */
/* **************************************************************** */
static UNDO_LIST *
alloc_undo_entry (what, start, end, text)
enum undo_code what;
int start, end;
char *text;
{
UNDO_LIST *temp;
temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST));
temp->what = what;
temp->start = start;
temp->end = end;
temp->text = text;
temp->next = (UNDO_LIST *)NULL;
return temp;
}
/* Remember how to undo something. Concatenate some undos if that
seems right. */
void
@@ -74,11 +94,9 @@ rl_add_undo (what, start, end, text)
int start, end;
char *text;
{
UNDO_LIST *temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST));
temp->what = what;
temp->start = start;
temp->end = end;
temp->text = text;
UNDO_LIST *temp;
temp = alloc_undo_entry (what, start, end, text);
temp->next = rl_undo_list;
rl_undo_list = temp;
}
@@ -87,17 +105,57 @@ rl_add_undo (what, start, end, text)
void
rl_free_undo_list ()
{
UNDO_LIST *release, *orig_list;
orig_list = rl_undo_list;
while (rl_undo_list)
{
UNDO_LIST *release = rl_undo_list;
release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
if (release->what == UNDO_DELETE)
free (release->text);
free (release);
xfree (release);
}
rl_undo_list = (UNDO_LIST *)NULL;
replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL);
}
UNDO_LIST *
_rl_copy_undo_entry (entry)
UNDO_LIST *entry;
{
UNDO_LIST *new;
new = alloc_undo_entry (entry->what, entry->start, entry->end, (char *)NULL);
new->text = entry->text ? savestring (entry->text) : 0;
return new;
}
UNDO_LIST *
_rl_copy_undo_list (head)
UNDO_LIST *head;
{
UNDO_LIST *list, *new, *roving, *c;
list = head;
new = 0;
while (list)
{
c = _rl_copy_undo_entry (list);
if (new == 0)
roving = new = c;
else
{
roving->next = c;
roving = roving->next;
}
list = list->next;
}
roving->next = 0;
return new;
}
/* Undo the next thing in the list. Return 0 if there
@@ -113,7 +171,7 @@ rl_do_undo ()
start = end = waiting_for_begin = 0;
do
{
if (!rl_undo_list)
if (rl_undo_list == 0)
return (0);
_rl_doing_an_undo = 1;
@@ -161,7 +219,9 @@ rl_do_undo ()
release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
free (release);
replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
xfree (release);
}
while (waiting_for_begin);
@@ -231,7 +291,7 @@ int
rl_revert_line (count, key)
int count, key;
{
if (!rl_undo_list)
if (rl_undo_list == 0)
rl_ding ();
else
{
+150 -2
View File
@@ -66,7 +66,7 @@
in words, or 1 if it is. */
int _rl_allow_pathname_alphabetic_chars = 0;
static const char *pathname_alphabetic_chars = "/-_=~.#$";
static const char * const pathname_alphabetic_chars = "/-_=~.#$";
int
rl_alphabetic (c)
@@ -212,7 +212,7 @@ rl_tilde_expand (ignore, key)
strncpy (temp, rl_line_buffer + start, len);
temp[len] = '\0';
homedir = tilde_expand (temp);
free (temp);
xfree (temp);
_rl_replace_text (homedir, start, end);
}
@@ -220,6 +220,87 @@ rl_tilde_expand (ignore, key)
return (0);
}
#if defined (USE_VARARGS)
void
#if defined (PREFER_STDARG)
_rl_ttymsg (const char *format, ...)
#else
_rl_ttymsg (va_alist)
va_dcl
#endif
{
va_list args;
#if defined (PREFER_VARARGS)
char *format;
#endif
#if defined (PREFER_STDARG)
va_start (args, format);
#else
va_start (args);
format = va_arg (args, char *);
#endif
fprintf (stderr, "readline: ");
vfprintf (stderr, format, args);
fprintf (stderr, "\n");
fflush (stderr);
va_end (args);
rl_forced_update_display ();
}
void
#if defined (PREFER_STDARG)
_rl_errmsg (const char *format, ...)
#else
_rl_errmsg (va_alist)
va_dcl
#endif
{
va_list args;
#if defined (PREFER_VARARGS)
char *format;
#endif
#if defined (PREFER_STDARG)
va_start (args, format);
#else
va_start (args);
format = va_arg (args, char *);
#endif
fprintf (stderr, "readline: ");
vfprintf (stderr, format, args);
fprintf (stderr, "\n");
fflush (stderr);
va_end (args);
}
#else /* !USE_VARARGS */
void
_rl_ttymsg (format, arg1, arg2)
char *format;
{
fprintf (stderr, "readline: ");
fprintf (stderr, format, arg1, arg2);
fprintf (stderr, "\n");
rl_forced_update_display ();
}
void
_rl_errmsg (format, arg1, arg2)
char *format;
{
fprintf (stderr, "readline: ");
fprintf (stderr, format, arg1, arg2);
fprintf (stderr, "\n");
}
#endif /* !USE_VARARGS */
/* **************************************************************** */
/* */
/* String Utility Functions */
@@ -344,6 +425,16 @@ FUNCTION_FOR_MACRO (_rl_to_lower)
FUNCTION_FOR_MACRO (_rl_to_upper)
FUNCTION_FOR_MACRO (_rl_uppercase_p)
/* A convenience function, to force memory deallocation to be performed
by readline. DLLs on Windows apparently require this. */
void
rl_free (mem)
void *mem;
{
if (mem)
free (mem);
}
/* Backwards compatibility, now that savestring has been removed from
all `public' readline header files. */
#undef _rl_savestring
@@ -353,3 +444,60 @@ _rl_savestring (s)
{
return (strcpy ((char *)xmalloc (1 + (int)strlen (s)), (s)));
}
#if defined (USE_VARARGS)
static FILE *_rl_tracefp;
void
#if defined (PREFER_STDARG)
_rl_trace (const char *format, ...)
#else
_rl_trace (va_alist)
va_dcl
#endif
{
va_list args;
#if defined (PREFER_VARARGS)
char *format;
#endif
#if defined (PREFER_STDARG)
va_start (args, format);
#else
va_start (args);
format = va_arg (args, char *);
#endif
if (_rl_tracefp == 0)
_rl_tropen ();
vfprintf (_rl_tracefp, format, args);
fprintf (_rl_tracefp, "\n");
fflush (_rl_tracefp);
va_end (args);
}
int
_rl_tropen ()
{
char fnbuf[128];
if (_rl_tracefp)
fclose (_rl_tracefp);
sprintf (fnbuf, "/var/tmp/rltrace.%ld", getpid());
unlink(fnbuf);
_rl_tracefp = fopen (fnbuf, "w+");
return _rl_tracefp != 0;
}
int
_rl_trclose ()
{
int r;
r = fclose (_rl_tracefp);
_rl_tracefp = 0;
return r;
}
#endif
+65 -23
View File
@@ -1,7 +1,7 @@
/* vi_mode.c -- A vi emulation mode for Bash.
Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */
/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
This file is part of the GNU Readline Library, a library for
reading lines of text with interactive input and history editing.
@@ -69,7 +69,7 @@ int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
static int _rl_vi_doing_insert;
/* Command keys which do movement for xxx_to commands. */
static const char *vi_motion = " hl^$0ftFT;,%wbeWBE|";
static const char * const vi_motion = " hl^$0ftFT;,%wbeWBE|`";
/* Keymap used for vi replace characters. Created dynamically since
rarely used. */
@@ -101,7 +101,7 @@ static int _rl_vi_last_key_before_insert;
static int vi_redoing;
/* Text modification commands. These are the `redoable' commands. */
static const char *vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
static const char * const vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
/* Arrays for the saved marks. */
static int vi_mark_chars['z' - 'a' + 1];
@@ -738,7 +738,7 @@ _rl_vi_change_mbchar_case (count)
{
wchar_t wc;
char mb[MB_LEN_MAX+1];
int mblen, p;
int mlen, p;
mbstate_t ps;
memset (&ps, 0, sizeof (mbstate_t));
@@ -762,9 +762,9 @@ _rl_vi_change_mbchar_case (count)
if (wc)
{
p = rl_point;
mblen = wcrtomb (mb, wc, &ps);
if (mblen >= 0)
mb[mblen] = '\0';
mlen = wcrtomb (mb, wc, &ps);
if (mlen >= 0)
mb[mlen] = '\0';
rl_begin_undo_group ();
rl_vi_delete (1, 0);
if (rl_point < p) /* Did we retreat at EOL? */
@@ -886,6 +886,13 @@ rl_vi_domove (key, nextkey)
RL_SETSTATE(RL_STATE_MOREINPUT);
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
{
*nextkey = 0;
return -1;
}
*nextkey = c;
if (!member (c, vi_motion))
@@ -902,6 +909,11 @@ rl_vi_domove (key, nextkey)
RL_SETSTATE(RL_STATE_MOREINPUT);
c = rl_read_key (); /* real command */
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
{
*nextkey = 0;
return -1;
}
*nextkey = c;
}
else if (key == c && (key == 'd' || key == 'y' || key == 'c'))
@@ -1033,13 +1045,15 @@ int
rl_vi_delete_to (count, key)
int count, key;
{
int c;
int c, start_pos;
if (_rl_uppercase_p (key))
rl_stuff_char ('$');
else if (vi_redoing)
rl_stuff_char (_rl_vi_last_motion);
start_pos = rl_point;
if (rl_vi_domove (key, &c))
{
rl_ding ();
@@ -1048,7 +1062,8 @@ rl_vi_delete_to (count, key)
/* These are the motion commands that do not require adjusting the
mark. */
if ((strchr (" l|h^0bB", c) == 0) && (rl_mark < rl_end))
if (((strchr (" l|h^0bBFT`", c) == 0) && (rl_point >= start_pos)) &&
(rl_mark < rl_end))
rl_mark++;
rl_kill_text (rl_point, rl_mark);
@@ -1077,7 +1092,8 @@ rl_vi_change_to (count, key)
/* These are the motion commands that do not require adjusting the
mark. c[wW] are handled by special-case code in rl_vi_domove(),
and already leave the mark at the correct location. */
if ((strchr (" l|hwW^0bB", c) == 0) && (rl_mark < rl_end))
if (((strchr (" l|hwW^0bBFT`", c) == 0) && (rl_point >= start_pos)) &&
(rl_mark < rl_end))
rl_mark++;
/* The cursor never moves with c[wW]. */
@@ -1112,12 +1128,13 @@ int
rl_vi_yank_to (count, key)
int count, key;
{
int c, save;
int c, start_pos;
save = rl_point;
if (_rl_uppercase_p (key))
rl_stuff_char ('$');
start_pos = rl_point;
if (rl_vi_domove (key, &c))
{
rl_ding ();
@@ -1126,14 +1143,15 @@ rl_vi_yank_to (count, key)
/* These are the motion commands that do not require adjusting the
mark. */
if ((strchr (" l|h^0%bB", c) == 0) && (rl_mark < rl_end))
if (((strchr (" l|h^0%bBFT`", c) == 0) && (rl_point >= start_pos)) &&
(rl_mark < rl_end))
rl_mark++;
rl_begin_undo_group ();
rl_kill_text (rl_point, rl_mark);
rl_end_undo_group ();
rl_do_undo ();
rl_point = save;
rl_point = start_pos;
return (0);
}
@@ -1224,14 +1242,22 @@ static int
_rl_vi_callback_char_search (data)
_rl_callback_generic_arg *data;
{
int c;
#if defined (HANDLE_MULTIBYTE)
_rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
#else
RL_SETSTATE(RL_STATE_MOREINPUT);
_rl_vi_last_search_char = rl_read_key ();
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
#endif
if (c <= 0)
return -1;
#if !defined (HANDLE_MULTIBYTE)
_rl_vi_last_search_char = c;
#endif
_rl_callback_func = 0;
_rl_want_redisplay = 1;
@@ -1247,6 +1273,7 @@ int
rl_vi_char_search (count, key)
int count, key;
{
int c;
#if defined (HANDLE_MULTIBYTE)
static char *target;
static int tlen;
@@ -1293,11 +1320,17 @@ rl_vi_char_search (count, key)
else
{
#if defined (HANDLE_MULTIBYTE)
_rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
if (c <= 0)
return -1;
_rl_vi_last_search_mblen = c;
#else
RL_SETSTATE(RL_STATE_MOREINPUT);
_rl_vi_last_search_char = rl_read_key ();
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
return -1;
_rl_vi_last_search_char = c;
#endif
}
}
@@ -1457,9 +1490,9 @@ _rl_vi_change_char (count, c, mb)
}
static int
_rl_vi_callback_getchar (mb, mblen)
_rl_vi_callback_getchar (mb, mlen)
char *mb;
int mblen;
int mlen;
{
int c;
@@ -1467,9 +1500,12 @@ _rl_vi_callback_getchar (mb, mblen)
c = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
return -1;
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
c = _rl_read_mbstring (c, mb, mblen);
c = _rl_read_mbstring (c, mb, mlen);
#endif
return c;
@@ -1485,6 +1521,9 @@ _rl_vi_callback_change_char (data)
_rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
if (c < 0)
return -1;
_rl_callback_func = 0;
_rl_want_redisplay = 1;
@@ -1516,6 +1555,9 @@ rl_vi_change_char (count, key)
else
_rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
if (c < 0)
return -1;
return (_rl_vi_change_char (count, c, mb));
}
@@ -1650,7 +1692,7 @@ _rl_vi_set_mark ()
ch = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (ch < 'a' || ch > 'z')
if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
{
rl_ding ();
return -1;
@@ -1702,7 +1744,7 @@ _rl_vi_goto_mark ()
rl_point = rl_mark;
return 0;
}
else if (ch < 'a' || ch > 'z')
else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
{
rl_ding ();
return -1;
+14 -2
View File
@@ -40,6 +40,8 @@ INTL_BUILDDIR = ${LIBBUILD}/intl
INTL_INC = @INTL_INC@
LIBINTL_H = @LIBINTL_H@
datarootdir = @datarootdir@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
@@ -88,7 +90,8 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \
shquote.c strtrans.c strindex.c snprintf.c mailstat.c \
fmtulong.c fmtullong.c fmtumax.c shmatch.c strnlen.c \
strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \
mktime.c strftime.c xstrchr.c zcatfd.c winsize.c eaccess.c
mktime.c strftime.c xstrchr.c zcatfd.c zmapfd.c winsize.c eaccess.c \
wcsdup.c
# The header files for this library.
HSOURCES =
@@ -100,7 +103,8 @@ OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \
netconn.o netopen.o timeval.o makepath.o pathcanon.o \
pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \
strtrans.o strindex.o snprintf.o mailstat.o fmtulong.o \
fmtullong.o fmtumax.o xstrchr.o zcatfd.o winsize.o ${LIBOBJS}
fmtullong.o fmtumax.o xstrchr.o zcatfd.o zmapfd.o winsize.o wcsdup.o \
${LIBOBJS}
SUPPORT = Makefile
@@ -177,8 +181,10 @@ times.o: times.c
timeval.o: timeval.c
tmpfile.o: tmpfile.c
vprint.o: vprint.c
wcsdup.o: wcsdup.c
xstrchr.o: xstrchr.c
zcatfd.o: zcatfd.c
zmapfd.o: zmapfd.c
zread.o: zread.c
zwrite.o: zwrite.c
@@ -235,8 +241,10 @@ times.o: ${BUILD_DIR}/config.h
timeval.o: ${BUILD_DIR}/config.h
tmpfile.o: ${BUILD_DIR}/config.h
vprint.o: ${BUILD_DIR}/config.h
wcsdup.o: ${BUILD_DIR}/config.h
xstrchr.o: ${BUILD_DIR}/config.h
zcatfd.o: ${BUILD_DIR}/config.h
zmapfd.o: ${BUILD_DIR}/config.h
zread.o: ${BUILD_DIR}/config.h
zwrite.o: ${BUILD_DIR}/config.h
@@ -465,6 +473,10 @@ fmtumax.o: ${BASHINCDIR}/stdc.h
fmtumax.o: ${BASHINCDIR}/typemax.h
fmtumax.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
wcsdup.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
wcsdup.o: ${BASHINCDIR}/stdc.h
wcsdup.o: ${topdir}/xmalloc.h
xstrchr.o: ${topdir}/bashansi.h
xstrchr.o: ${BASHINCDIR}/ansi_stdlib.h
xstrchr.o: ${BASHINCDIR}/shmbutil.h
+10
View File
@@ -66,6 +66,16 @@ extern int errno;
extern int inet_aton __P((const char *, struct in_addr *));
#endif
#ifndef HAVE_GETADDRINFO
static int _getaddr __P((char *, struct in_addr *));
static int _getserv __P((char *, int, unsigned short *));
static int _netopen4 __P((char *, char *, int));
#else /* HAVE_GETADDRINFO */
static int _netopen6 __P((char *, char *, int));
#endif
static int _netopen __P((char *, char *, int));
#ifndef HAVE_GETADDRINFO
/* Stuff the internet address corresponding to HOST into AP, in network
byte order. Return 1 on success, 0 on failure. */
+1 -2
View File
@@ -57,8 +57,7 @@ sh_regmatch (string, pattern, flags)
char *subexp_str;
int subexp_len;
#endif
int result;
int result;
#if defined (ARRAY_VARS)
rematch = (SHELL_VAR *)NULL;
+69 -17
View File
@@ -7,7 +7,7 @@
Unix snprintf implementation.
derived from inetutils/libinetutils/snprintf.c Version 1.1
Copyright (C) 2001 Free Software Foundation, Inc.
Copyright (C) 2001,2006 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General License as published by
@@ -58,6 +58,11 @@
# include <config.h>
#endif
#if defined(DEBUG)
# undef HAVE_SNPRINTF
# undef HAVE_ASPRINTF
#endif
#if defined(DRIVER) && !defined(HAVE_CONFIG_H)
#define HAVE_LONG_LONG
#define HAVE_LONG_DOUBLE
@@ -65,6 +70,7 @@
#define HAVE_PRINTF_A_FORMAT
#endif
#define HAVE_ISINF_IN_LIBC
#define HAVE_ISNAN_IN_LIBC
#define PREFER_STDARG
#define HAVE_STRINGIZE
#define HAVE_LIMITS_H
@@ -370,6 +376,12 @@ static void xfree __P((void *));
for (; (p)->width > 0; (p)->width--) \
PUT_CHAR((p)->pad, p)
/* pad with zeros from decimal precision */
#define PAD_ZERO(p) \
if ((p)->precision > 0) \
for (; (p)->precision > 0; (p)->precision--) \
PUT_CHAR('0', p)
/* if width and prec. in the args */
#define STAR_ARGS(p) \
do { \
@@ -394,7 +406,7 @@ static void xfree __P((void *));
} \
} while (0)
#if defined (HAVE_LOCALE_H)
#if defined (HAVE_LOCALE_H) && defined (HAVE_LOCALECONV)
# define GETLOCALEDATA(d, t, g) \
do \
{ \
@@ -464,6 +476,8 @@ pow_10(n)
10^x ~= r
* log_10(200) = 2;
* log_10(250) = 2;
*
* NOTE: do not call this with r == 0 -- an infinite loop results.
*/
static int
log_10(r)
@@ -569,8 +583,11 @@ numtoa(number, base, precision, fract)
{
integral_part[0] = '0';
integral_part[1] = '\0';
fraction_part[0] = '0';
fraction_part[1] = '\0';
/* The fractional part has to take the precision into account */
for (ch = 0; ch < precision-1; ch++)
fraction_part[ch] = '0';
fraction_part[ch] = '0';
fraction_part[ch+1] = '\0';
if (fract)
*fract = fraction_part;
return integral_part;
@@ -651,8 +668,13 @@ number(p, d, base)
long sd;
int flags;
/* An explicit precision turns off the zero-padding flag. */
if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT))
p->flags &= ~PF_ZEROPAD;
sd = d; /* signed for ' ' padding in base 10 */
flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
flags = 0;
flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
if (*p->pf == 'X')
flags |= FL_HEXUPPER;
@@ -668,6 +690,12 @@ number(p, d, base)
p->width -= strlen(tmp);
PAD_RIGHT(p);
if ((p->flags & PF_DOT) && p->precision > 0)
{
p->precision -= strlen(tmp);
PAD_ZERO(p);
}
switch (base)
{
case 10:
@@ -711,8 +739,12 @@ lnumber(p, d, base)
long long sd;
int flags;
/* An explicit precision turns off the zero-padding flag. */
if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT))
p->flags &= ~PF_ZEROPAD;
sd = d; /* signed for ' ' padding in base 10 */
flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
if (*p->pf == 'X')
flags |= FL_HEXUPPER;
@@ -728,6 +760,12 @@ lnumber(p, d, base)
p->width -= strlen(tmp);
PAD_RIGHT(p);
if ((p->flags & PF_DOT) && p->precision > 0)
{
p->precision -= strlen(tmp);
PAD_ZERO(p);
}
switch (base)
{
case 10:
@@ -778,6 +816,7 @@ pointer(p, d)
PUT_CHAR(*tmp, p);
tmp++;
}
PAD_LEFT(p);
}
@@ -881,7 +920,9 @@ isinf(d)
#endif
return 0;
}
#endif
#ifndef HAVE_ISNAN_IN_LIBC
static int
isnan(d)
double d;
@@ -943,11 +984,21 @@ floating(p, d)
if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
tmp = t;
if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
{
/* smash the trailing zeros unless altform */
for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
tmp2[i] = '\0';
if (tmp2[0] == '\0')
p->precision = 0;
}
/* calculate the padding. 1 for the dot */
p->width = p->width -
((d > 0. && p->justify == RIGHT) ? 1:0) -
((p->flags & PF_SPACE) ? 1:0) -
strlen(tmp) - p->precision - 1;
strlen(tmp) - p->precision -
((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */
PAD_RIGHT(p);
PUT_PLUS(d, p, 0.);
PUT_SPACE(d, p, 0.);
@@ -962,11 +1013,6 @@ floating(p, d)
if (p->precision != 0 || (p->flags & PF_ALTFORM))
PUT_CHAR(decpoint, p); /* put the '.' */
if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
/* smash the trailing zeros unless altform */
for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
tmp2[i] = '\0';
for (; *tmp2; tmp2++)
PUT_CHAR(*tmp2, p); /* the fraction */
@@ -982,14 +1028,19 @@ exponent(p, d)
char *tmp, *tmp2;
int j, i;
if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
return; /* already printed nan or inf */
GETLOCALEDATA(decpoint, thoussep, grouping);
DEF_PREC(p);
j = log_10(d);
d = d / pow_10(j); /* get the Mantissa */
d = ROUND(d, p);
if (d == 0.)
j = 0;
else
{
j = log_10(d);
d = d / pow_10(j); /* get the Mantissa */
d = ROUND(d, p);
}
tmp = dtoa(d, p->precision, &tmp2);
/* 1 for unit, 1 for the '.', 1 for 'e|E',
@@ -1047,6 +1098,7 @@ exponent(p, d)
PUT_CHAR(*tmp, p);
tmp++;
}
PAD_LEFT(p);
}
#endif
@@ -1329,7 +1381,7 @@ conv_break:
STAR_ARGS(data);
DEF_PREC(data);
d = GETDOUBLE(data);
i = log_10(d);
i = (d != 0.) ? log_10(d) : -1;
/*
* for '%g|%G' ANSI: use f if exponent
* is in the range or [-4,p] exclusively
+13 -3
View File
@@ -81,8 +81,18 @@ ansicstr (string, len, flags, sawc, rlen)
case 'n': c = '\n'; break;
case 'r': c = '\r'; break;
case 't': c = '\t'; break;
case '0': case '1': case '2': case '3':
case '4': case '5': case '6': case '7':
case '1': case '2': case '3':
case '4': case '5': case '6':
case '7':
#if 1
if (flags & 1)
{
*r++ = '\\';
break;
}
/*FALLTHROUGH*/
#endif
case '0':
/* If (FLAGS & 1), we're translating a string for echo -e (or
the equivalent xpg_echo option), so we obey the SUSv3/
POSIX-2001 requirement and accept 0-3 octal digits after
@@ -166,7 +176,7 @@ ansic_quote (str, flags, rlen)
int flags, *rlen;
{
char *r, *ret, *s;
int l, rsize, t;
int l, rsize;
unsigned char c;
if (str == 0 || *str == 0)
+6 -2
View File
@@ -47,6 +47,9 @@ extern int errno;
extern pid_t dollar_dollar_pid;
static char *get_sys_tmpdir __P((void));
static char *get_tmpdir __P((int));
static char *sys_tmpdir = (char *)NULL;
static int ntmpfiles;
static int tmpnamelen = -1;
@@ -55,8 +58,6 @@ static unsigned long filenum = 1L;
static char *
get_sys_tmpdir ()
{
struct stat sb;
if (sys_tmpdir)
return sys_tmpdir;
@@ -90,6 +91,9 @@ get_tmpdir (flags)
char *tdir;
tdir = (flags & MT_USETMPDIR) ? get_string_value ("TMPDIR") : (char *)NULL;
if (tdir && (file_iswdir (tdir) == 0 || strlen (tdir) > PATH_MAX))
tdir = 0;
if (tdir == 0)
tdir = get_sys_tmpdir ();
+1
View File
@@ -55,6 +55,7 @@ extern int shell_tty;
#if defined (READLINE)
extern void rl_set_screen_size __P((int, int));
#endif
extern void sh_set_lines_and_columns __P((int, int));
void
get_new_window_size (from_sig, rp, cp)
+12
View File
@@ -27,6 +27,10 @@ Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
#include <fcntl.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#else
@@ -35,6 +39,14 @@ extern char *malloc ();
extern char *realloc ();
#endif
#if defined (HAVE_STRING_H)
#include <string.h>
#endif
#if !defined (HAVE_BCOPY) && (defined (HAVE_STRING_H) || defined (STDC_HEADERS))
# define bcopy(s, d, n) memcpy ((d), (s), (n))
#endif
#else /* not HAVE_CONFIG_H */
#ifdef STDC_HEADERS
+8
View File
@@ -27,6 +27,14 @@ extern char *malloc ();
extern char *realloc ();
#endif
#if defined (HAVE_STRING_H)
#include <string.h>
#endif
#if !defined (HAVE_BCOPY) && (defined (HAVE_STRING_H) || defined (STDC_HEADERS))
# define bcopy(s, d, n) memcpy ((d), (s), (n))
#endif
#else /* not HAVE_CONFIG_H */
#if defined(HAVE_STRING_H) || defined(STDC_HEADERS)
+9 -9
View File
@@ -1,6 +1,6 @@
/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */
/* Copyright (C) 1988,1989 Free Software Foundation, Inc.
/* Copyright (C) 1988-2006 Free Software Foundation, Inc.
This file is part of GNU Readline, a library for reading lines
of text with interactive input and history editing.
@@ -236,7 +236,7 @@ tilde_expand (string)
string += end;
expansion = tilde_expand_word (tilde_word);
free (tilde_word);
xfree (tilde_word);
len = strlen (expansion);
#ifdef __CYGWIN__
@@ -251,7 +251,7 @@ tilde_expand (string)
strcpy (result + result_index, expansion);
result_index += len;
}
free (expansion);
xfree (expansion);
}
result[result_index] = '\0';
@@ -377,7 +377,7 @@ tilde_expand_word (filename)
if (expansion)
{
dirname = glue_prefix_and_suffix (expansion, filename, user_len);
free (username);
xfree (username);
free (expansion);
return (dirname);
}
@@ -404,17 +404,17 @@ tilde_expand_word (filename)
free (expansion);
}
}
free (username);
/* If we don't have a failure hook, or if the failure hook did not
expand the tilde, return a copy of what we were passed. */
if (dirname == 0)
dirname = savestring (filename);
}
#if defined (HAVE_GETPWENT)
else
{
free (username);
dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
}
dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
#endif
xfree (username);
#if defined (HAVE_GETPWENT)
endpwent ();
#endif