*.dylib
readline.pc
+history.pc
stamp-h
--- /dev/null
+Makefile
+
+*.o
+*.a
+*.so
+*.sl
+*.dll
+
+config.cache
+config.h
+config.log
+config.status
+
+doc/Makefile
+examples/Makefile
+shlib/Makefile
+
+examples/fileman
+examples/hist_erasedups
+examples/hist_purgecmd
+examples/histexamp
+examples/rl
+examples/rl-callbacktest
+examples/rlbasic
+examples/rlcat
+examples/rlevent
+examples/rltest
+examples/rlversion
+
+libhistory.so.*
+libreadline.so.*
+
+*.dylib
+
+readline.pc
+
+stamp-h
/* bind.c -- key binding and startup file support for the readline library. */
-/* Copyright (C) 1987-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2022 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
#define V_INT 2
/* Forward declarations */
+static int sv_region_start_color (const char *);
+static int sv_region_end_color (const char *);
static int sv_bell_style (const char *);
static int sv_combegin (const char *);
static int sv_dispprefix (const char *);
int flags;
_rl_sv_func_t *set_func;
} string_varlist[] = {
+ { "active-region-end-color", V_STRING, sv_region_end_color },
+ { "active-region-start-color", V_STRING, sv_region_start_color },
{ "bell-style", V_STRING, sv_bell_style },
{ "comment-begin", V_STRING, sv_combegin },
{ "completion-display-width", V_INT, sv_compwidth },
return 0;
}
+static int
+sv_region_start_color (const char *value)
+{
+ return (_rl_reset_region_color (0, value));
+}
+
+static int
+sv_region_end_color (const char *value)
+{
+ return (_rl_reset_region_color (1, value));
+}
+
static int
sv_bell_style (const char *value)
{
/* display.c -- readline redisplay facility. */
-/* Copyright (C) 1987-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2022 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
if (face != FACE_NORMAL && face != FACE_STANDOUT)
return;
if (face == FACE_STANDOUT && cf == FACE_NORMAL)
- _rl_standout_on ();
+ _rl_region_color_on ();
if (face == FACE_NORMAL && cf == FACE_STANDOUT)
- _rl_standout_off ();
+ _rl_region_color_off ();
*cur_face = face;
}
if (c != EOF)
a programming tool that provides a consistent user interface for
recalling lines of previously typed input.
-Copyright @copyright{} 1988--2020 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2022 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@ignore
This file documents the user interface to the GNU History library.
-Copyright (C) 1988-2020 Free Software Foundation, Inc.
+Copyright (C) 1988-2022 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@ignore
This file documents the user interface to the GNU History library.
-Copyright (C) 1988--2020 Free Software Foundation, Inc.
+Copyright (C) 1988--2022 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Mon Nov 15 17:06:54 EST 2021
+.\" Last Change: Thu Feb 10 10:58:32 EST 2022
.\"
-.TH READLINE 3 "2021 November 15" "GNU Readline 8.1"
+.TH READLINE 3 "2022 February 10" "GNU Readline 8.2"
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
.PP
.PD 0
.TP
+.B active\-region\-start\-color
+A string variable that controls the text color and background when displaying
+the text in the active region (see the description of
+\fBenable\-active\-region\fP below).
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal before displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that puts the terminal in standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be \f(CW"\ee[01;33m"\fP.
+.TP
+.B active\-region\-end\-color
+A string variable that "undoes" the effects of \fBactive\-region\-start\-color\fP
+and restores "normal" terminal display appearance after displaying text
+in the active region.
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal after displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that restores the terminal from standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be \f(CW"\ee[0m\fP".
+.TP
.B bell\-style (audible)
Controls what happens when readline wants to ring the terminal bell.
If set to \fBnone\fP, readline never rings the bell. If set to
When this variable is set to \fIOn\fP, readline allows certain commands
to designate the region as \fIactive\fP.
When the region is active, readline highlights the text in the region using
+the value of the \fBactive\-region\-start\-color\fP, which defaults to the
+string that enables
the terminal's standout mode.
The active region shows the text inserted by bracketed-paste and any
matching text found by incremental and non-incremental history searches.
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988--2020 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2022 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
in the consistency of user interface across discrete programs that need
to provide a command line interface.
-Copyright (C) 1988--2020 Free Software Foundation, Inc.
+Copyright (C) 1988--2022 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@deftypefun int rl_timeout_remaining (unsigned int *secs, unsigned int *usecs)
Return the number of seconds and microseconds remaining in the current
-timeout duration in @code{*secs} and @code{*usecs}, respectively.
-Returns -1 on error or when there is no timeout set, 0 when the timeout has
-expired (leaving @code{*secs} and @code{*usecs} unchanged), and 1 if the
-timeout has not expired. If @code{secs} and @code{usecs} are @code{NULL},
+timeout duration in @var{*secs} and @var{*usecs}, respectively.
+Both @var{*secs} and @var{*usecs} must be non-NULL to return any values.
+The return value is -1 on error or when there is no timeout set,
+0 when the timeout has expired (leaving @var{*secs} and @var{*usecs}
+unchanged),
+and 1 if the timeout has not expired.
+If either of @var{secs} and @var{usecs} is @code{NULL},
the return value indicates whether the timeout has expired.
@end deftypefun
which contains both end-user and programmer documentation for the
GNU Readline Library.
-Copyright (C) 1988--2020 Free Software Foundation, Inc.
+Copyright (C) 1988--2022 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
@cindex variables, readline
@table @code
+@item active-region-start-color
+@vindex active-region-start-color
+A string variable that controls the text color and background when displaying
+the text in the active region (see the description of
+@code{enable-active-region} below).
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal before displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that puts the terminal in standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be @samp{\e[01;33m}.
+
+@item active-region-end-color
+@vindex active-region-end-color
+A string variable that "undoes" the effects of @code{active-region-start-color}
+and restores "normal" terminal display appearance after displaying text
+in the active region.
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal after displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that restores the terminal from standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be @samp{\e[0m}.
+
@item bell-style
@vindex bell-style
Controls what happens when Readline wants to ring the terminal bell.
When this variable is set to @samp{On}, Readline allows certain commands
to designate the region as @dfn{active}.
When the region is active, Readline highlights the text in the region using
+the value of the @code{active-region-start-color}, which defaults to the
+string that enables
the terminal's standout mode.
The active region shows the text inserted by bracketed-paste and any
matching text found by incremental and non-incremental history searches.
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988--2020 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2022 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@ignore
-Copyright (C) 1988-2021 Free Software Foundation, Inc.
+Copyright (C) 1988-2022 Free Software Foundation, Inc.
@end ignore
-@set EDITION 8.1
-@set VERSION 8.1
-@set UPDATED 15 November 2021
-@set UPDATED-MONTH November 2021
+@set EDITION 8.2
+@set VERSION 8.2
-@set LASTCHANGE Mon Nov 15 17:05:28 EST 2021
+@set UPDATED Thu Feb 10 10:56:04 EST 2022
+@set UPDATED-MONTH February 2022
+
+@set LASTCHANGE Thu Feb 10 10:56:20 EST 2022
/* Let's not step on anyone else's define for now, since we don't use this yet. */
#ifndef HS_HISTORY_VERSION
-# define HS_HISTORY_VERSION 0x0801 /* History 8.1 */
+# define HS_HISTORY_VERSION 0x0802 /* History 8.2 */
#endif
/* The structure used to store a history entry. */
#endif
/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0801 /* Readline 8.1 */
+#define RL_READLINE_VERSION 0x0802 /* Readline 8.2 */
#define RL_VERSION_MAJOR 8
-#define RL_VERSION_MINOR 1
+#define RL_VERSION_MINOR 2
/* Readline data structures. */
/* rlprivate.h -- functions and variables global to the readline library,
but not intended for use by applications. */
-/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2022 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
extern void _rl_set_cursor (int, int);
extern void _rl_standout_on (void);
extern void _rl_standout_off (void);
+extern int _rl_reset_region_color (int, const char *);
+extern void _rl_region_color_on (void);
+extern void _rl_region_color_off (void);
/* text.c */
extern void _rl_fix_point (int);
extern int _rl_show_mode_in_prompt;
extern int _rl_enable_bracketed_paste;
extern int _rl_enable_active_region;
+extern char *_rl_active_region_start_color;
+extern char *_rl_active_region_end_color;
extern char *_rl_comment_begin;
extern unsigned char _rl_parsing_conditionalized_out;
extern Keymap _rl_keymap;
if (terminal_prepped & TPX_BRACKPASTE)
{
fprintf (rl_outstream, BRACK_PASTE_FINI);
+ /* Since the last character in BRACK_PASTE_FINI is \r */
+ _rl_last_c_pos = 0;
if (_rl_eof_found && (RL_ISSTATE (RL_STATE_TIMEOUT) == 0))
fprintf (rl_outstream, "\n");
else if (_rl_echoing_p == 0)
/* terminal.c -- controlling the terminal with termcap. */
-/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2022 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
static char *_rl_term_vs; /* very visible */
static char *_rl_term_ve; /* normal */
+/* User-settable color sequences to begin and end the active region. Defaults
+ are rl_term_so and rl_term_se on non-dumb terminals. */
+char *_rl_active_region_start_color = NULL;
+char *_rl_active_region_end_color = NULL;
+
/* It's not clear how HPUX is so broken here. */
#ifdef TGETENT_BROKEN
# define TGETENT_SUCCESS 0
{
const char *term;
char *buffer;
- int tty, tgetent_ret, dumbterm;
+ int tty, tgetent_ret, dumbterm, reset_region_colors;
term = terminal_name ? terminal_name : sh_get_env_value ("TERM");
_rl_term_clrpag = _rl_term_cr = _rl_term_clreol = _rl_term_clrscroll = (char *)NULL;
dumbterm = STREQ (term, "dumb");
+ reset_region_colors = 1;
+
#ifdef __MSDOS__
_rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
_rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
escape sequences */
_rl_enable_bracketed_paste = 0;
+ /* No terminal so/se capabilities. */
+ _rl_enable_active_region = 0;
+ _rl_reset_region_color (0, NULL);
+ _rl_reset_region_color (1, NULL);
+
/* Reasonable defaults for tgoto(). Readline currently only uses
tgoto if _rl_term_IC or _rl_term_DC is defined, but just in case we
change that later... */
/* There's no way to determine whether or not a given terminal supports
bracketed paste mode, so we assume a terminal named "dumb" does not. */
if (dumbterm)
- _rl_enable_bracketed_paste = 0;
-
+ _rl_enable_bracketed_paste = _rl_enable_active_region = 0;
+
+ if (reset_region_colors)
+ {
+ _rl_reset_region_color (0, _rl_term_so);
+ _rl_reset_region_color (1, _rl_term_se);
+ }
+
return 0;
}
#endif
}
+/* **************************************************************** */
+/* */
+/* Controlling color for a portion of the line */
+/* */
+/* **************************************************************** */
+
+/* Reset the region color variables to VALUE depending on WHICH (0 == start,
+ 1 == end). This is where all the memory allocation for the color variable
+ strings is performed. We might want to pass a flag saying whether or not
+ to translate VALUE like a key sequence, but it doesn't really matter. */
+int
+_rl_reset_region_color (int which, const char *value)
+{
+ int len;
+
+ if (which == 0)
+ {
+ free (_rl_active_region_start_color);
+ if (value && *value)
+ {
+ _rl_active_region_start_color = (char *)xmalloc (2 * strlen (value) + 1);
+ rl_translate_keyseq (value, _rl_active_region_start_color, &len);
+ _rl_active_region_start_color[len] = '\0';
+ }
+ else
+ _rl_active_region_start_color = NULL;
+ }
+ else
+ {
+ free (_rl_active_region_end_color);
+ if (value && *value)
+ {
+ _rl_active_region_end_color = (char *)xmalloc (2 * strlen (value) + 1);
+ rl_translate_keyseq (value, _rl_active_region_end_color, &len);
+ _rl_active_region_end_color[len] = '\0';
+ }
+ else
+ _rl_active_region_end_color = NULL;
+ }
+
+ return 0;
+}
+
+void
+_rl_region_color_on (void)
+{
+#ifndef __MSDOS__
+ if (_rl_active_region_start_color && _rl_active_region_end_color)
+ tputs (_rl_active_region_start_color, 1, _rl_output_character_function);
+#endif
+}
+
+void
+_rl_region_color_off (void)
+{
+#ifndef __MSDOS__
+ if (_rl_active_region_start_color && _rl_active_region_end_color)
+ tputs (_rl_active_region_end_color, 1, _rl_output_character_function);
+#endif
+}
+
/* **************************************************************** */
/* */
/* Controlling the Meta Key and Keypad */