mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-07 12:20:50 +02:00
document new readline variables "active-region-start-color" and "active-region-end-color"
This commit is contained in:
+3
-25
@@ -1,6 +1,6 @@
|
||||
/* 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.
|
||||
@@ -2227,35 +2227,13 @@ sv_seqtimeout (const char *value)
|
||||
static int
|
||||
sv_region_start_color (const char *value)
|
||||
{
|
||||
int len;
|
||||
|
||||
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;
|
||||
return 0;
|
||||
return (_rl_reset_region_color (0, value));
|
||||
}
|
||||
|
||||
static int
|
||||
sv_region_end_color (const char *value)
|
||||
{
|
||||
int len;
|
||||
|
||||
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;
|
||||
return (_rl_reset_region_color (1, value));
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
+3
-13
@@ -1,6 +1,6 @@
|
||||
/* 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.
|
||||
@@ -1595,19 +1595,9 @@ putc_face (int c, int face, char *cur_face)
|
||||
if (face != FACE_NORMAL && face != FACE_STANDOUT)
|
||||
return;
|
||||
if (face == FACE_STANDOUT && cf == FACE_NORMAL)
|
||||
{
|
||||
if (_rl_active_region_start_color && _rl_active_region_end_color)
|
||||
tputs (_rl_active_region_start_color, 1, _rl_output_character_function);
|
||||
else
|
||||
_rl_standout_on ();
|
||||
}
|
||||
_rl_region_color_on ();
|
||||
if (face == FACE_NORMAL && cf == FACE_STANDOUT)
|
||||
{
|
||||
if (_rl_active_region_start_color && _rl_active_region_end_color)
|
||||
tputs (_rl_active_region_end_color, 1, _rl_output_character_function);
|
||||
else
|
||||
_rl_standout_off ();
|
||||
}
|
||||
_rl_region_color_off ();
|
||||
*cur_face = face;
|
||||
}
|
||||
if (c != EOF)
|
||||
|
||||
@@ -12,7 +12,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--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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@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
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
.\" 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.
|
||||
@@ -339,6 +339,30 @@ The variables and their default values are:
|
||||
.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
|
||||
@@ -458,6 +482,8 @@ The text between the point and mark is referred to as the \fIregion\fP.
|
||||
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.
|
||||
|
||||
@@ -13,7 +13,7 @@ This manual describes the GNU Readline Library
|
||||
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
|
||||
|
||||
@@ -7,7 +7,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--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
|
||||
|
||||
@@ -9,7 +9,7 @@ use these features. There is a document entitled "readline.texinfo"
|
||||
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.
|
||||
|
||||
@@ -419,6 +419,32 @@ variables.
|
||||
@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.
|
||||
@@ -553,6 +579,8 @@ The text between the point and mark is referred to as the @dfn{region}.
|
||||
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.
|
||||
|
||||
@@ -12,7 +12,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--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
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
@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
|
||||
|
||||
@@ -323,9 +323,6 @@ int _rl_show_mode_in_prompt = 0;
|
||||
int _rl_enable_bracketed_paste = BRACKETED_PASTE_DEFAULT;
|
||||
int _rl_enable_active_region = BRACKETED_PASTE_DEFAULT;
|
||||
|
||||
char *_rl_active_region_start_color = NULL;
|
||||
char *_rl_active_region_end_color = NULL;
|
||||
|
||||
/* **************************************************************** */
|
||||
/* */
|
||||
/* Top Level Functions */
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* 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.
|
||||
@@ -415,6 +415,9 @@ extern void _rl_control_keypad (int);
|
||||
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);
|
||||
|
||||
+83
-4
@@ -1,6 +1,6 @@
|
||||
/* 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.
|
||||
@@ -185,6 +185,11 @@ static char *_rl_term_kN;
|
||||
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
|
||||
@@ -466,7 +471,7 @@ _rl_init_terminal_io (const char *terminal_name)
|
||||
{
|
||||
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;
|
||||
@@ -477,6 +482,8 @@ _rl_init_terminal_io (const char *terminal_name)
|
||||
|
||||
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;
|
||||
@@ -562,6 +569,11 @@ _rl_init_terminal_io (const char *terminal_name)
|
||||
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... */
|
||||
@@ -616,8 +628,14 @@ _rl_init_terminal_io (const char *terminal_name)
|
||||
/* 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;
|
||||
}
|
||||
|
||||
@@ -789,6 +807,67 @@ _rl_standout_off (void)
|
||||
#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 */
|
||||
|
||||
Reference in New Issue
Block a user