fix issue with read builtin delimiter in invaild mutibyte char; fix crash if caller passes negative count argument to one of the history file writing functions

This commit is contained in:
Chet Ramey
2024-08-09 10:01:38 -04:00
parent e45ec6f76b
commit 772e7e760e
19 changed files with 3135 additions and 2976 deletions
+182 -174
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 7.1 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 25 July 2024).
Bash shell (version 5.3, 7 August 2024).
This is Edition 5.3, last updated 25 July 2024, of The GNU Bash
This is Edition 5.3, last updated 7 August 2024, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2023 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.3, 25 July 2024). The Bash home page is
Bash shell (version 5.3, 7 August 2024). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 25 July 2024, of The GNU Bash
This is Edition 5.3, last updated 7 August 2024, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -4618,8 +4618,9 @@ parameters, or to display the names and values of shell variables.
immediately following a while or until keyword, part of
the test in an if statement, part of any command executed in
a && or || list except the command following the final
&& or ||, any command in a pipeline but the last, or if
the command's return status is being inverted with !. If a
&& or ||, any command in a pipeline but the last (subject
to the state of the pipefail shell option), or if the
command's return status is being inverted with !. If a
compound command other than a subshell returns a non-zero
status because a command failed while -e was being ignored,
the shell does not exit. A trap on ERR, if set, is executed
@@ -6045,8 +6046,9 @@ Variables::).
assigned, and the expanded value becomes the value assigned plus
the number of seconds since the assignment. The number of seconds
at shell invocation and the current time are always determined by
querying the system clock. If SECONDS is unset, it loses its
special properties, even if it is subsequently reset.
querying the system clock at one-second resolution. If SECONDS
is unset, it loses its special properties, even if it is
subsequently reset.
SHELL
This environment variable expands to the full pathname to the
@@ -7988,32 +7990,38 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
option is encountered.
wait
wait [-fn] [-p VARNAME] [JOBSPEC or PID ...]
wait [-fn] [-p VARNAME] [ID ...]
Wait until the child process specified by each ID exits and return
the exit status of the last ID. Each ID may be a PID or job
specification JOBSPEC; if a job spec is given, wait waits for all
processes in the job.
If no options or IDs are supplied, wait waits for all running
background jobs and the last-executed process substitution, if its
process id is the same as $!, and the return status is zero.
If the -n option is supplied, wait waits for any one of the IDs
or, if no IDs are supplied, any job or process substitution, to
complete and returns its exit status. If none of the supplied IDs
is a child of the shell, or if no arguments are supplied and the
shell has no unwaited-for children, the exit status is 127.
If the -p option is supplied, the process or job identifier of
the job for which the exit status is returned is assigned to the
variable VARNAME named by the option argument. The variable will
be unset initially, before any assignment. This is useful only
when the -n option is supplied.
Wait until the child process specified by each process ID PID or
job specification JOBSPEC exits and return the exit status of the
last command waited for. If a job spec is given, all processes in
the job are waited for. If no arguments are given, wait waits
for all running background jobs and the last-executed process
substitution, if its process id is the same as $!, and the return
status is zero. If the -n option is supplied, wait waits for a
single job from the list of PIDs or JOBSPECs or, if no arguments
are supplied, any job, to complete and returns its exit status. If
none of the supplied arguments is a child of the shell, or if no
arguments are supplied and the shell has no unwaited-for children,
the exit status is 127. If the -p option is supplied, the
process or job identifier of the job for which the exit status is
returned is assigned to the variable VARNAME named by the option
argument. The variable will be unset initially, before any
assignment. This is useful only when the -n option is supplied.
Supplying the -f option, when job control is enabled, forces
wait to wait for each PID or JOBSPEC to terminate before
returning its status, instead of returning when it changes status.
If neither JOBSPEC nor PID specifies an active child process of the
shell, the return status is 127. If wait is interrupted by a
signal, the return status will be greater than 128, as described
above (*note Signals::). Otherwise, the return status is the exit
status of the last process or job waited for.
wait to wait for each ID to terminate before returning its
status, instead of returning when it changes status.
If none of the IDs specify one of the shell's an active child
processes, the return status is 127. If wait is interrupted by a
signal, any VARNAME will remain unset, and the return status will
be greater than 128, as described above (*note Signals::).
Otherwise, the return status is the exit status of the last ID.
disown
disown [-ar] [-h] [JOBSPEC ... | PID ... ]
@@ -12256,7 +12264,7 @@ D.1 Index of Shell Builtin Commands
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
(line 104)
(line 110)
* echo: Bash Builtins. (line 273)
* enable: Bash Builtins. (line 322)
* eval: Bourne Shell Builtins.
@@ -12307,7 +12315,7 @@ D.1 Index of Shell Builtin Commands
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 639)
* suspend: Job Control Builtins.
(line 116)
(line 122)
* test: Bourne Shell Builtins.
(line 289)
* times: Bourne Shell Builtins.
@@ -12588,9 +12596,9 @@ D.3 Parameter and Variable Index
* search-ignore-case: Readline Init File Syntax.
(line 332)
* SECONDS: Bash Variables. (line 691)
* SHELL: Bash Variables. (line 700)
* SHELLOPTS: Bash Variables. (line 705)
* SHLVL: Bash Variables. (line 714)
* SHELL: Bash Variables. (line 701)
* SHELLOPTS: Bash Variables. (line 706)
* SHLVL: Bash Variables. (line 715)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 337)
* show-all-if-unmodified: Readline Init File Syntax.
@@ -12599,15 +12607,15 @@ D.3 Parameter and Variable Index
(line 352)
* skip-completed-text: Readline Init File Syntax.
(line 358)
* SRANDOM: Bash Variables. (line 719)
* SRANDOM: Bash Variables. (line 720)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
* TEXTDOMAINDIR: Creating Internationalized Scripts.
(line 51)
* TIMEFORMAT: Bash Variables. (line 728)
* TMOUT: Bash Variables. (line 766)
* TMPDIR: Bash Variables. (line 778)
* UID: Bash Variables. (line 782)
* TIMEFORMAT: Bash Variables. (line 729)
* TMOUT: Bash Variables. (line 767)
* TMPDIR: Bash Variables. (line 779)
* UID: Bash Variables. (line 783)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 371)
* vi-ins-mode-string: Readline Init File Syntax.
@@ -12999,138 +13007,138 @@ D.5 Concept Index

Tag Table:
Node: Top896
Node: Introduction2832
Node: What is Bash?3048
Node: What is a shell?4192
Node: Definitions6774
Node: Basic Shell Features9953
Node: Shell Syntax11176
Node: Shell Operation12206
Node: Quoting13507
Node: Escape Character14823
Node: Single Quotes15324
Node: Double Quotes15676
Node: ANSI-C Quoting17022
Node: Locale Translation18410
Node: Creating Internationalized Scripts19757
Node: Comments23958
Node: Shell Commands24596
Node: Reserved Words25538
Node: Simple Commands26406
Node: Pipelines27068
Node: Lists30134
Node: Compound Commands32009
Node: Looping Constructs33021
Node: Conditional Constructs35568
Node: Command Grouping50392
Node: Coprocesses51882
Node: GNU Parallel54581
Node: Shell Functions55502
Node: Shell Parameters63611
Node: Positional Parameters68147
Node: Special Parameters69085
Node: Shell Expansions72394
Node: Brace Expansion74586
Node: Tilde Expansion77252
Node: Shell Parameter Expansion80021
Node: Command Substitution99131
Node: Arithmetic Expansion102667
Node: Process Substitution103635
Node: Word Splitting104775
Node: Filename Expansion106919
Node: Pattern Matching110018
Node: Quote Removal115254
Node: Redirections115561
Node: Executing Commands125373
Node: Simple Command Expansion126043
Node: Command Search and Execution128157
Node: Command Execution Environment130568
Node: Environment133880
Node: Exit Status135587
Node: Signals137375
Node: Shell Scripts140992
Node: Shell Builtin Commands144087
Node: Bourne Shell Builtins146201
Node: Bash Builtins170974
Node: Modifying Shell Behavior205991
Node: The Set Builtin206336
Node: The Shopt Builtin217854
Node: Special Builtins234819
Node: Shell Variables235811
Node: Bourne Shell Variables236248
Node: Bash Variables238444
Node: Bash Features275612
Node: Invoking Bash276629
Node: Bash Startup Files283031
Node: Interactive Shells288337
Node: What is an Interactive Shell?288748
Node: Is this Shell Interactive?289417
Node: Interactive Shell Behavior290244
Node: Bash Conditional Expressions294001
Node: Shell Arithmetic299178
Node: Aliases302263
Node: Arrays305221
Node: The Directory Stack312023
Node: Directory Stack Builtins312823
Node: Controlling the Prompt317275
Node: The Restricted Shell320416
Node: Bash POSIX Mode323206
Node: Shell Compatibility Mode340720
Node: Job Control349490
Node: Job Control Basics349950
Node: Job Control Builtins355127
Node: Job Control Variables361090
Node: Command Line Editing362270
Node: Introduction and Notation363977
Node: Readline Interaction365624
Node: Readline Bare Essentials366815
Node: Readline Movement Commands368636
Node: Readline Killing Commands369636
Node: Readline Arguments371617
Node: Searching372677
Node: Readline Init File374909
Node: Readline Init File Syntax376194
Node: Conditional Init Constructs401135
Node: Sample Init File405503
Node: Bindable Readline Commands408627
Node: Commands For Moving409855
Node: Commands For History412085
Node: Commands For Text417293
Node: Commands For Killing421430
Node: Numeric Arguments424234
Node: Commands For Completion425389
Node: Keyboard Macros429708
Node: Miscellaneous Commands430412
Node: Readline vi Mode437069
Node: Programmable Completion438024
Node: Programmable Completion Builtins445984
Node: A Programmable Completion Example457553
Node: Using History Interactively462901
Node: Bash History Facilities463585
Node: Bash History Builtins466700
Node: History Interaction471946
Node: Event Designators476274
Node: Word Designators477860
Node: Modifiers479849
Node: Installing Bash481761
Node: Basic Installation482898
Node: Compilers and Options486780
Node: Compiling For Multiple Architectures487533
Node: Installation Names489285
Node: Specifying the System Type491522
Node: Sharing Defaults492271
Node: Operation Controls492988
Node: Optional Features494010
Node: Reporting Bugs505815
Node: Major Differences From The Bourne Shell507167
Node: GNU Free Documentation License526905
Node: Indexes552085
Node: Builtin Index552539
Node: Reserved Word Index559640
Node: Variable Index562088
Node: Function Index579222
Node: Concept Index593081
Node: Top898
Node: Introduction2836
Node: What is Bash?3052
Node: What is a shell?4196
Node: Definitions6778
Node: Basic Shell Features9957
Node: Shell Syntax11180
Node: Shell Operation12210
Node: Quoting13511
Node: Escape Character14827
Node: Single Quotes15328
Node: Double Quotes15680
Node: ANSI-C Quoting17026
Node: Locale Translation18414
Node: Creating Internationalized Scripts19761
Node: Comments23962
Node: Shell Commands24600
Node: Reserved Words25542
Node: Simple Commands26410
Node: Pipelines27072
Node: Lists30138
Node: Compound Commands32013
Node: Looping Constructs33025
Node: Conditional Constructs35572
Node: Command Grouping50396
Node: Coprocesses51886
Node: GNU Parallel54585
Node: Shell Functions55506
Node: Shell Parameters63615
Node: Positional Parameters68151
Node: Special Parameters69089
Node: Shell Expansions72398
Node: Brace Expansion74590
Node: Tilde Expansion77256
Node: Shell Parameter Expansion80025
Node: Command Substitution99135
Node: Arithmetic Expansion102671
Node: Process Substitution103639
Node: Word Splitting104779
Node: Filename Expansion106923
Node: Pattern Matching110022
Node: Quote Removal115258
Node: Redirections115565
Node: Executing Commands125377
Node: Simple Command Expansion126047
Node: Command Search and Execution128161
Node: Command Execution Environment130572
Node: Environment133884
Node: Exit Status135591
Node: Signals137379
Node: Shell Scripts140996
Node: Shell Builtin Commands144091
Node: Bourne Shell Builtins146205
Node: Bash Builtins170978
Node: Modifying Shell Behavior205995
Node: The Set Builtin206340
Node: The Shopt Builtin217926
Node: Special Builtins234891
Node: Shell Variables235883
Node: Bourne Shell Variables236320
Node: Bash Variables238516
Node: Bash Features275714
Node: Invoking Bash276731
Node: Bash Startup Files283133
Node: Interactive Shells288439
Node: What is an Interactive Shell?288850
Node: Is this Shell Interactive?289519
Node: Interactive Shell Behavior290346
Node: Bash Conditional Expressions294103
Node: Shell Arithmetic299280
Node: Aliases302365
Node: Arrays305323
Node: The Directory Stack312125
Node: Directory Stack Builtins312925
Node: Controlling the Prompt317377
Node: The Restricted Shell320518
Node: Bash POSIX Mode323308
Node: Shell Compatibility Mode340822
Node: Job Control349592
Node: Job Control Basics350052
Node: Job Control Builtins355229
Node: Job Control Variables361176
Node: Command Line Editing362356
Node: Introduction and Notation364063
Node: Readline Interaction365710
Node: Readline Bare Essentials366901
Node: Readline Movement Commands368722
Node: Readline Killing Commands369722
Node: Readline Arguments371703
Node: Searching372763
Node: Readline Init File374995
Node: Readline Init File Syntax376280
Node: Conditional Init Constructs401221
Node: Sample Init File405589
Node: Bindable Readline Commands408713
Node: Commands For Moving409941
Node: Commands For History412171
Node: Commands For Text417379
Node: Commands For Killing421516
Node: Numeric Arguments424320
Node: Commands For Completion425475
Node: Keyboard Macros429794
Node: Miscellaneous Commands430498
Node: Readline vi Mode437155
Node: Programmable Completion438110
Node: Programmable Completion Builtins446070
Node: A Programmable Completion Example457639
Node: Using History Interactively462987
Node: Bash History Facilities463671
Node: Bash History Builtins466786
Node: History Interaction472032
Node: Event Designators476360
Node: Word Designators477946
Node: Modifiers479935
Node: Installing Bash481847
Node: Basic Installation482984
Node: Compilers and Options486866
Node: Compiling For Multiple Architectures487619
Node: Installation Names489371
Node: Specifying the System Type491608
Node: Sharing Defaults492357
Node: Operation Controls493074
Node: Optional Features494096
Node: Reporting Bugs505901
Node: Major Differences From The Bourne Shell507253
Node: GNU Free Documentation License526991
Node: Indexes552171
Node: Builtin Index552625
Node: Reserved Word Index559726
Node: Variable Index562174
Node: Function Index579308
Node: Concept Index593167

End Tag Table