changes to documentation to reduce gender-specific language; fix a seg fault in `fc'

This commit is contained in:
Chet Ramey
2021-06-17 17:10:49 -04:00
parent da43077c47
commit 8d3cecab33
17 changed files with 1631 additions and 1574 deletions
+23
View File
@@ -10536,3 +10536,26 @@ lib/glob/sm_loop.c
lib/glob/smatch.c
- ISDIRSEP,PATHSEP,SDOT_OR_DOTDOT,PDOT_OR_DOTDOT: provide definitions
for single-byte or wide character strings for sm_loop.c to use
6/16
----
doc/{bash.1,bashref.texi},lib/readline/doc/{rluser,rltech}.texi
- slight wording changes to rewrite gender-specific language. From a
report by Vipul Kumar <kumar+bug-bash@onenetbeyond.org>, suggested
language from G. Branden Robinson <g.branden.robinson@gmail.com>,
Lawrence Velázquez <vq@larryv.me>,
and Andrew Church <achurch+bash@achurch.org>
builtins/fc.def
- fc_builtin: make sure an entry in the history list is non-null
before trying to write it to stdout or the temporary file. From a
report from Sibo Dong <sibo.dong@outlook.com>
builtins/common.[ch]
- builtin_arrayref_flags: given a WORD_DESC * (which includes flags)
and a base set of flags, return a set of flags to pass to
valid_array_reference and similar functions
builtins/set.def
- unset_builtin: call builtin_arrayref_flags to set vflags
+26
View File
@@ -1041,6 +1041,32 @@ builtin_unbind_variable (vname)
return (unbind_variable (vname));
}
int
builtin_arrayref_flags (w, baseflags)
WORD_DESC *w;
int baseflags;
{
char *t;
int vflags;
vflags = baseflags;
/* Don't require assoc_expand_once if we have an argument that's already
passed through valid_array_reference and been expanded once. That
doesn't protect it from normal expansions like word splitting, so
proper quoting is still required. */
if (w->flags & W_ARRAYREF)
vflags |= VA_ONEWORD|VA_NOEXPAND;
# if 0
/* This is a little sketchier but handles quoted arguments. */
if (assoc_expand_once && (t = strchr (w->word, '[')) && t[strlen(t) - 1] == ']')
vflags |= VA_ONEWORD|VA_NOEXPAND;
# endif
return vflags;
}
/* **************************************************************** */
/* */
/* External interface to manipulate shell options */
+2
View File
@@ -233,6 +233,8 @@ extern SHELL_VAR *builtin_bind_variable PARAMS((char *, char *, int));
extern SHELL_VAR *builtin_bind_var_to_int PARAMS((char *, intmax_t));
extern int builtin_unbind_variable PARAMS((const char *));
extern int builtin_arrayref_flags PARAMS((WORD_DESC *, int));
/* variables from evalfile.c */
extern int sourcelevel;
+5 -2
View File
@@ -1,7 +1,7 @@
This file is fc.def, from which is created fc.c.
It implements the builtin "fc" in Bash.
Copyright (C) 1987-2020 Free Software Foundation, Inc.
Copyright (C) 1987-2021 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -450,6 +450,8 @@ fc_builtin (list)
for (i = reverse ? histend : histbeg; reverse ? i >= histbeg : i <= histend; reverse ? i-- : i++)
{
QUIT;
if (hlist[i] == 0)
continue;
if (numbering)
fprintf (stream, "%d", i + history_base);
if (listing)
@@ -459,7 +461,8 @@ fc_builtin (list)
else
fprintf (stream, "\t%c", histdata (i) ? '*' : ' ');
}
fprintf (stream, "%s\n", histline (i));
if (histline (i))
fprintf (stream, "%s\n", histline (i));
}
if (listing)
+1 -7
View File
@@ -888,13 +888,7 @@ unset_builtin (list)
unset_variable = global_unset_var;
#if defined (ARRAY_VARS)
vflags = base_vflags;
/* Don't require assoc_expand_once if we have an argument that's already
passed through valid_array_reference and been expanded once. That
doesn't protect it from normal expansions like word splitting, so
proper quoting is still required. */
if (list->word->flags & W_ARRAYREF)
vflags |= VA_ONEWORD|VA_NOEXPAND;
vflags = builtin_arrayref_flags (list->word, base_vflags);
#endif
#if defined (ARRAY_VARS)
+1445 -1444
View File
File diff suppressed because it is too large Load Diff
+5 -3
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Tue Jun 15 09:39:48 EDT 2021
.\" Last Change: Wed Jun 16 09:50:34 EDT 2021
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2021 June 15" "GNU Bash 5.1"
.TH BASH 1 "2021 June 16" "GNU Bash 5.1"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -3897,7 +3897,7 @@ Matches one or more occurrences of the given patterns
Matches one of the given patterns
.TP
\fB!(\fP\^\fIpattern-list\^\fP\fB)\fP
Matches anything except one of the given patterns.
Matches anything except one of the given patterns
.RE
.PD
.PP
@@ -5847,6 +5847,8 @@ If the number of possible completions is greater than
or equal to the value of this variable,
readline will ask whether or not the user wishes to view them;
otherwise they are simply listed on the terminal.
A zero value means readline should never ask; negative values are
treated as zero.
.TP
.B convert\-meta (On)
If set to \fBOn\fP, readline will convert characters with the
+99 -98
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.7 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.1, 15 June 2021).
Bash shell (version 5.1, 16 June 2021).
This is Edition 5.1, last updated 15 June 2021, of 'The GNU Bash
This is Edition 5.1, last updated 16 June 2021, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.1.
Copyright (C) 1988-2021 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.1, 15 June 2021). The Bash home page is
Bash shell (version 5.1, 16 June 2021). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.1, last updated 15 June 2021, of 'The GNU Bash
This is Edition 5.1, last updated 16 June 2021, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.1.
Bash contains features that appear in other popular shells, and some
@@ -6806,11 +6806,11 @@ spawned to execute the script.
The restricted shell mode is only one component of a useful
restricted environment. It should be accompanied by setting 'PATH' to a
value that allows execution of only a few verified commands (commands
that allow shell escapes are particularly vulnerable), leaving the user
in a non-writable directory other than his home directory after login,
not allowing the restricted shell to execute shell scripts, and cleaning
the environment of variables that cause some commands to modify their
behavior (e.g., 'VISUAL' or 'PAGER').
that allow shell escapes are particularly vulnerable), changing the
current directory to a non-writable directory other than '$HOME' after
login, not allowing the restricted shell to execute shell scripts, and
cleaning the environment of variables that cause some commands to modify
their behavior (e.g., 'VISUAL' or 'PAGER').
Modern systems provide more secure ways to implement a restricted
environment, such as 'jails', 'zones', or 'containers'.
@@ -7743,7 +7743,7 @@ File: bashref.info, Node: Readline Init File, Next: Bindable Readline Commands
Although the Readline library comes with a set of Emacs-like keybindings
installed by default, it is possible to use a different set of
keybindings. Any user can customize programs that use Readline by
putting commands in an "inputrc" file, conventionally in his home
putting commands in an "inputrc" file, conventionally in their home
directory. The name of this file is taken from the value of the shell
variable 'INPUTRC'. If that variable is unset, the default is
'~/.inputrc'. If that file does not exist or cannot be read, the
@@ -7869,8 +7869,9 @@ Variable Settings
than or equal to this value, Readline will ask whether or not
the user wishes to view them; otherwise, they are simply
listed. This variable must be set to an integer value greater
than or equal to 0. A negative value means Readline should
never ask. The default limit is '100'.
than or equal to zero. A zero value means Readline should
never ask; negative values are treated as zero. The default
limit is '100'.
'convert-meta'
If set to 'on', Readline will convert characters with the
@@ -11664,31 +11665,31 @@ D.3 Parameter and Variable Index
* COMP_WORDBREAKS: Bash Variables. (line 241)
* COMP_WORDS: Bash Variables. (line 247)
* convert-meta: Readline Init File Syntax.
(line 108)
(line 109)
* COPROC: Bash Variables. (line 260)
* DIRSTACK: Bash Variables. (line 264)
* disable-completion: Readline Init File Syntax.
(line 116)
(line 117)
* echo-control-characters: Readline Init File Syntax.
(line 121)
(line 122)
* editing-mode: Readline Init File Syntax.
(line 126)
(line 127)
* EMACS: Bash Variables. (line 274)
* emacs-mode-string: Readline Init File Syntax.
(line 132)
(line 133)
* enable-active-region: Readline Init File Syntax.
(line 142)
(line 143)
* enable-bracketed-paste: Readline Init File Syntax.
(line 154)
(line 155)
* enable-keypad: Readline Init File Syntax.
(line 162)
(line 163)
* ENV: Bash Variables. (line 279)
* EPOCHREALTIME: Bash Variables. (line 284)
* EPOCHSECONDS: Bash Variables. (line 292)
* EUID: Bash Variables. (line 299)
* EXECIGNORE: Bash Variables. (line 303)
* expand-tilde: Readline Init File Syntax.
(line 173)
(line 174)
* FCEDIT: Bash Variables. (line 316)
* FIGNORE: Bash Variables. (line 320)
* FUNCNAME: Bash Variables. (line 326)
@@ -11702,15 +11703,15 @@ D.3 Parameter and Variable Index
* HISTFILESIZE: Bash Variables. (line 402)
* HISTIGNORE: Bash Variables. (line 413)
* history-preserve-point: Readline Init File Syntax.
(line 177)
(line 178)
* history-size: Readline Init File Syntax.
(line 183)
(line 184)
* HISTSIZE: Bash Variables. (line 433)
* HISTTIMEFORMAT: Bash Variables. (line 440)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 192)
(line 193)
* HOSTFILE: Bash Variables. (line 448)
* HOSTNAME: Bash Variables. (line 459)
* HOSTTYPE: Bash Variables. (line 462)
@@ -11718,13 +11719,13 @@ D.3 Parameter and Variable Index
(line 18)
* IGNOREEOF: Bash Variables. (line 465)
* input-meta: Readline Init File Syntax.
(line 201)
(line 202)
* INPUTRC: Bash Variables. (line 475)
* INSIDE_EMACS: Bash Variables. (line 479)
* isearch-terminators: Readline Init File Syntax.
(line 209)
(line 210)
* keymap: Readline Init File Syntax.
(line 216)
(line 217)
* LANG: Creating Internationalized Scripts.
(line 51)
* LANG <1>: Bash Variables. (line 485)
@@ -11746,15 +11747,15 @@ D.3 Parameter and Variable Index
(line 27)
* MAPFILE: Bash Variables. (line 540)
* mark-modified-lines: Readline Init File Syntax.
(line 246)
(line 247)
* mark-symlinked-directories: Readline Init File Syntax.
(line 251)
(line 252)
* match-hidden-files: Readline Init File Syntax.
(line 256)
(line 257)
* menu-complete-display-prefix: Readline Init File Syntax.
(line 263)
(line 264)
* meta-flag: Readline Init File Syntax.
(line 201)
(line 202)
* OLDPWD: Bash Variables. (line 544)
* OPTARG: Bourne Shell Variables.
(line 34)
@@ -11763,9 +11764,9 @@ D.3 Parameter and Variable Index
(line 38)
* OSTYPE: Bash Variables. (line 551)
* output-meta: Readline Init File Syntax.
(line 268)
(line 269)
* page-completions: Readline Init File Syntax.
(line 274)
(line 275)
* PATH: Bourne Shell Variables.
(line 42)
* PIPESTATUS: Bash Variables. (line 554)
@@ -11788,19 +11789,19 @@ D.3 Parameter and Variable Index
* READLINE_POINT: Bash Variables. (line 626)
* REPLY: Bash Variables. (line 630)
* revert-all-at-newline: Readline Init File Syntax.
(line 284)
(line 285)
* SECONDS: Bash Variables. (line 633)
* SHELL: Bash Variables. (line 642)
* SHELLOPTS: Bash Variables. (line 647)
* SHLVL: Bash Variables. (line 656)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 290)
(line 291)
* show-all-if-unmodified: Readline Init File Syntax.
(line 296)
(line 297)
* show-mode-in-prompt: Readline Init File Syntax.
(line 305)
(line 306)
* skip-completed-text: Readline Init File Syntax.
(line 311)
(line 312)
* SRANDOM: Bash Variables. (line 661)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
@@ -11811,11 +11812,11 @@ D.3 Parameter and Variable Index
* TMPDIR: Bash Variables. (line 720)
* UID: Bash Variables. (line 724)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 324)
(line 325)
* vi-ins-mode-string: Readline Init File Syntax.
(line 335)
(line 336)
* visible-stats: Readline Init File Syntax.
(line 346)
(line 347)

File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
@@ -12270,62 +12271,62 @@ Node: The Directory Stack280276
Node: Directory Stack Builtins281060
Node: Controlling the Prompt285320
Node: The Restricted Shell288285
Node: Bash POSIX Mode290879
Node: Shell Compatibility Mode302152
Node: Job Control308808
Node: Job Control Basics309268
Node: Job Control Builtins314270
Node: Job Control Variables319670
Node: Command Line Editing320826
Node: Introduction and Notation322497
Node: Readline Interaction324120
Node: Readline Bare Essentials325311
Node: Readline Movement Commands327094
Node: Readline Killing Commands328054
Node: Readline Arguments329972
Node: Searching331016
Node: Readline Init File333202
Node: Readline Init File Syntax334461
Node: Conditional Init Constructs355695
Node: Sample Init File359891
Node: Bindable Readline Commands363015
Node: Commands For Moving364219
Node: Commands For History366270
Node: Commands For Text371264
Node: Commands For Killing374913
Node: Numeric Arguments377946
Node: Commands For Completion379085
Node: Keyboard Macros383276
Node: Miscellaneous Commands383963
Node: Readline vi Mode389902
Node: Programmable Completion390809
Node: Programmable Completion Builtins398589
Node: A Programmable Completion Example409284
Node: Using History Interactively414531
Node: Bash History Facilities415215
Node: Bash History Builtins418220
Node: History Interaction423228
Node: Event Designators426848
Node: Word Designators428202
Node: Modifiers429962
Node: Installing Bash431773
Node: Basic Installation432910
Node: Compilers and Options436168
Node: Compiling For Multiple Architectures436909
Node: Installation Names438602
Node: Specifying the System Type439420
Node: Sharing Defaults440136
Node: Operation Controls440809
Node: Optional Features441767
Node: Reporting Bugs452567
Node: Major Differences From The Bourne Shell453842
Node: GNU Free Documentation License470692
Node: Indexes495869
Node: Builtin Index496323
Node: Reserved Word Index503150
Node: Variable Index505598
Node: Function Index522090
Node: Concept Index535874
Node: Bash POSIX Mode290882
Node: Shell Compatibility Mode302155
Node: Job Control308811
Node: Job Control Basics309271
Node: Job Control Builtins314273
Node: Job Control Variables319673
Node: Command Line Editing320829
Node: Introduction and Notation322500
Node: Readline Interaction324123
Node: Readline Bare Essentials325314
Node: Readline Movement Commands327097
Node: Readline Killing Commands328057
Node: Readline Arguments329975
Node: Searching331019
Node: Readline Init File333205
Node: Readline Init File Syntax334466
Node: Conditional Init Constructs355746
Node: Sample Init File359942
Node: Bindable Readline Commands363066
Node: Commands For Moving364270
Node: Commands For History366321
Node: Commands For Text371315
Node: Commands For Killing374964
Node: Numeric Arguments377997
Node: Commands For Completion379136
Node: Keyboard Macros383327
Node: Miscellaneous Commands384014
Node: Readline vi Mode389953
Node: Programmable Completion390860
Node: Programmable Completion Builtins398640
Node: A Programmable Completion Example409335
Node: Using History Interactively414582
Node: Bash History Facilities415266
Node: Bash History Builtins418271
Node: History Interaction423279
Node: Event Designators426899
Node: Word Designators428253
Node: Modifiers430013
Node: Installing Bash431824
Node: Basic Installation432961
Node: Compilers and Options436219
Node: Compiling For Multiple Architectures436960
Node: Installation Names438653
Node: Specifying the System Type439471
Node: Sharing Defaults440187
Node: Operation Controls440860
Node: Optional Features441818
Node: Reporting Bugs452618
Node: Major Differences From The Bourne Shell453893
Node: GNU Free Documentation License470743
Node: Indexes495920
Node: Builtin Index496374
Node: Reserved Word Index503201
Node: Variable Index505649
Node: Function Index522141
Node: Concept Index535925

End Tag Table
+2 -2
View File
@@ -7843,8 +7843,8 @@ the shell spawned to execute the script.
The restricted shell mode is only one component of a useful restricted
environment. It should be accompanied by setting @env{PATH} to a value
that allows execution of only a few verified commands (commands that
allow shell escapes are particularly vulnerable), leaving the user
in a non-writable directory other than his home directory after login,
allow shell escapes are particularly vulnerable), changing the current
directory to a non-writable directory other than @env{$HOME} after login,
not allowing the restricted shell to execute shell scripts, and cleaning
the environment of variables that cause some commands to modify their
behavior (e.g., @env{VISUAL} or @env{PAGER}).
+2 -2
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2021 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Tue Jun 15 09:40:11 EDT 2021
@set LASTCHANGE Wed Jun 16 09:50:57 EDT 2021
@set EDITION 5.1
@set VERSION 5.1
@set UPDATED 15 June 2021
@set UPDATED 16 June 2021
@set UPDATED-MONTH June 2021
-1
View File
@@ -83,7 +83,6 @@ fprintf(stderr, "gmatch: pattern = %s; pe = %s\n", pattern, pe);
#ifdef EXTENDED_GLOB
/* EXTMATCH () will handle recursively calling GMATCH, so we can
just return what EXTMATCH() returns. */
if ((flags & FNM_EXTMATCH) && *p == L('(') &&
(c == L('+') || c == L('*') || c == L('?') || c == L('@') || c == L('!'))) /* ) */
+4 -3
View File
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Wed Apr 28 14:31:09 EDT 2021
.\" Last Change: Wed Jun 16 09:49:37 EDT 2021
.\"
.TH READLINE 3 "2021 April 28" "GNU Readline 8.1"
.TH READLINE 3 "2021 June 16" "GNU Readline 8.1"
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
@@ -408,7 +408,8 @@ If the number of possible completions is greater than
or equal to the value of this variable,
readline will ask whether or not the user wishes to view them;
otherwise they are simply listed
on the terminal. A negative value causes readline to never ask.
on the terminal.
A negative value causes readline to never ask.
.TP
.B convert\-meta (On)
If set to \fBOn\fP, readline will convert characters with the
+5 -4
View File
@@ -1651,7 +1651,7 @@ main (int c, char **v)
Signals are asynchronous events sent to a process by the Unix kernel,
sometimes on behalf of another process. They are intended to indicate
exceptional events, like a user pressing the interrupt key on his terminal,
exceptional events, like a user pressing the terminal's interrupt key,
or a network connection being broken. There is a class of signals that can
be sent to the process currently reading input from the keyboard. Since
Readline changes the terminal attributes when it is called, it needs to
@@ -2199,9 +2199,10 @@ shell variables and hostnames.
@deftypevar int rl_completion_query_items
Up to this many items will be displayed in response to a
possible-completions call. After that, readline asks the user if she is sure
she wants to see them all. The default value is 100. A negative value
indicates that Readline should never ask the user.
possible-completions call. After that, readline asks the user for
confirmation before displaying them.
The default value is 100. A negative value
indicates that Readline should never ask for confirmation.
@end deftypevar
@deftypevar {int} rl_completion_append_character
+5 -3
View File
@@ -339,7 +339,8 @@ Although the Readline library comes with a set of Emacs-like
keybindings installed by default, it is possible to use a different set
of keybindings.
Any user can customize programs that use Readline by putting
commands in an @dfn{inputrc} file, conventionally in his home directory.
commands in an @dfn{inputrc} file,
conventionally in their home directory.
The name of this
@ifset BashFeatures
file is taken from the value of the shell variable @env{INPUTRC}. If
@@ -496,8 +497,9 @@ asked whether the list of possibilities should be displayed.
If the number of possible completions is greater than or equal to this value,
Readline will ask whether or not the user wishes to view them;
otherwise, they are simply listed.
This variable must be set to an integer value greater than or equal to 0.
A negative value means Readline should never ask.
This variable must be set to an integer value greater than or equal to zero.
A zero value means Readline should never ask; negative values are
treated as zero.
The default limit is @code{100}.
@item convert-meta
+3 -3
View File
@@ -4,7 +4,7 @@ Copyright (C) 1988-2021 Free Software Foundation, Inc.
@set EDITION 8.1
@set VERSION 8.1
@set UPDATED 18 May 2021
@set UPDATED-MONTH May 2021
@set UPDATED 16 June 2021
@set UPDATED-MONTH June 2021
@set LASTCHANGE Tue May 18 11:44:17 EDT 2021
@set LASTCHANGE Wed Jun 16 09:50:11 EDT 2021
+1 -2
View File
@@ -144,7 +144,6 @@ static int yy_readline_unget PARAMS((int));
static int yy_string_get PARAMS((void));
static int yy_string_unget PARAMS((int));
static void rewind_input_string PARAMS((void));
static int yy_stream_get PARAMS((void));
static int yy_stream_unget PARAMS((int));
@@ -1611,7 +1610,7 @@ with_input_from_string (string, name)
That is the true input location. Rewind bash_input.location.string by
that number of characters, so it points to the last character actually
consumed by the parser. */
static void
void
rewind_input_string ()
{
int xchars;
+3
View File
@@ -227,6 +227,9 @@ typedef struct _sh_input_line_state_t
} sh_input_line_state_t;
/* Let's try declaring these here. */
extern void shell_ungets PARAMS((char *));
extern void rewind_input_string PARAMS((void));
extern char *parser_remaining_input PARAMS((void));
extern sh_parser_state_t *save_parser_state PARAMS((sh_parser_state_t *));