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
@@ -1,9 +1,9 @@
This is bash.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.
@@ -26,10 +26,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
@@ -4617,8 +4617,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
@@ -6044,8 +6045,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
@@ -7987,32 +7989,38 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
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 ... ]
@@ -12255,7 +12263,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.
@@ -12306,7 +12314,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.
@@ -12587,9 +12595,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.
@@ -12598,15 +12606,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.
@@ -12998,138 +13006,138 @@ D.5 Concept Index

Tag Table:
Node: Top893
Node: Introduction2826
Node: What is Bash?3039
Node: What is a shell?4180
Node: Definitions6759
Node: Basic Shell Features9935
Node: Shell Syntax11155
Node: Shell Operation12182
Node: Quoting13480
Node: Escape Character14793
Node: Single Quotes15291
Node: Double Quotes15640
Node: ANSI-C Quoting16983
Node: Locale Translation18368
Node: Creating Internationalized Scripts19712
Node: Comments23910
Node: Shell Commands24545
Node: Reserved Words25484
Node: Simple Commands26349
Node: Pipelines27008
Node: Lists30071
Node: Compound Commands31943
Node: Looping Constructs32952
Node: Conditional Constructs35496
Node: Command Grouping50317
Node: Coprocesses51804
Node: GNU Parallel54500
Node: Shell Functions55418
Node: Shell Parameters63524
Node: Positional Parameters68057
Node: Special Parameters68992
Node: Shell Expansions72298
Node: Brace Expansion74487
Node: Tilde Expansion77150
Node: Shell Parameter Expansion79916
Node: Command Substitution99023
Node: Arithmetic Expansion102556
Node: Process Substitution103521
Node: Word Splitting104658
Node: Filename Expansion106799
Node: Pattern Matching109895
Node: Quote Removal115128
Node: Redirections115432
Node: Executing Commands125241
Node: Simple Command Expansion125908
Node: Command Search and Execution128019
Node: Command Execution Environment130427
Node: Environment133736
Node: Exit Status135440
Node: Signals137225
Node: Shell Scripts140839
Node: Shell Builtin Commands143931
Node: Bourne Shell Builtins146042
Node: Bash Builtins170812
Node: Modifying Shell Behavior205826
Node: The Set Builtin206168
Node: The Shopt Builtin217683
Node: Special Builtins234645
Node: Shell Variables235634
Node: Bourne Shell Variables236068
Node: Bash Variables238261
Node: Bash Features275426
Node: Invoking Bash276440
Node: Bash Startup Files282839
Node: Interactive Shells288142
Node: What is an Interactive Shell?288550
Node: Is this Shell Interactive?289216
Node: Interactive Shell Behavior290040
Node: Bash Conditional Expressions293794
Node: Shell Arithmetic298968
Node: Aliases302050
Node: Arrays305005
Node: The Directory Stack311804
Node: Directory Stack Builtins312601
Node: Controlling the Prompt317050
Node: The Restricted Shell320188
Node: Bash POSIX Mode322975
Node: Shell Compatibility Mode340486
Node: Job Control349253
Node: Job Control Basics349710
Node: Job Control Builtins354884
Node: Job Control Variables360844
Node: Command Line Editing362021
Node: Introduction and Notation363725
Node: Readline Interaction365369
Node: Readline Bare Essentials366557
Node: Readline Movement Commands368375
Node: Readline Killing Commands369372
Node: Readline Arguments371350
Node: Searching372407
Node: Readline Init File374636
Node: Readline Init File Syntax375918
Node: Conditional Init Constructs400856
Node: Sample Init File405221
Node: Bindable Readline Commands408342
Node: Commands For Moving409567
Node: Commands For History411794
Node: Commands For Text416999
Node: Commands For Killing421133
Node: Numeric Arguments423934
Node: Commands For Completion425086
Node: Keyboard Macros429402
Node: Miscellaneous Commands430103
Node: Readline vi Mode436757
Node: Programmable Completion437709
Node: Programmable Completion Builtins445666
Node: A Programmable Completion Example457232
Node: Using History Interactively462577
Node: Bash History Facilities463258
Node: Bash History Builtins466370
Node: History Interaction471613
Node: Event Designators475938
Node: Word Designators477521
Node: Modifiers479507
Node: Installing Bash481416
Node: Basic Installation482550
Node: Compilers and Options486429
Node: Compiling For Multiple Architectures487179
Node: Installation Names488928
Node: Specifying the System Type491162
Node: Sharing Defaults491908
Node: Operation Controls492622
Node: Optional Features493641
Node: Reporting Bugs505443
Node: Major Differences From The Bourne Shell506792
Node: GNU Free Documentation License526527
Node: Indexes551704
Node: Builtin Index552155
Node: Reserved Word Index559253
Node: Variable Index561698
Node: Function Index578829
Node: Concept Index592685
Node: Top895
Node: Introduction2830
Node: What is Bash?3043
Node: What is a shell?4184
Node: Definitions6763
Node: Basic Shell Features9939
Node: Shell Syntax11159
Node: Shell Operation12186
Node: Quoting13484
Node: Escape Character14797
Node: Single Quotes15295
Node: Double Quotes15644
Node: ANSI-C Quoting16987
Node: Locale Translation18372
Node: Creating Internationalized Scripts19716
Node: Comments23914
Node: Shell Commands24549
Node: Reserved Words25488
Node: Simple Commands26353
Node: Pipelines27012
Node: Lists30075
Node: Compound Commands31947
Node: Looping Constructs32956
Node: Conditional Constructs35500
Node: Command Grouping50321
Node: Coprocesses51808
Node: GNU Parallel54504
Node: Shell Functions55422
Node: Shell Parameters63528
Node: Positional Parameters68061
Node: Special Parameters68996
Node: Shell Expansions72302
Node: Brace Expansion74491
Node: Tilde Expansion77154
Node: Shell Parameter Expansion79920
Node: Command Substitution99027
Node: Arithmetic Expansion102560
Node: Process Substitution103525
Node: Word Splitting104662
Node: Filename Expansion106803
Node: Pattern Matching109899
Node: Quote Removal115132
Node: Redirections115436
Node: Executing Commands125245
Node: Simple Command Expansion125912
Node: Command Search and Execution128023
Node: Command Execution Environment130431
Node: Environment133740
Node: Exit Status135444
Node: Signals137229
Node: Shell Scripts140843
Node: Shell Builtin Commands143935
Node: Bourne Shell Builtins146046
Node: Bash Builtins170816
Node: Modifying Shell Behavior205830
Node: The Set Builtin206172
Node: The Shopt Builtin217755
Node: Special Builtins234717
Node: Shell Variables235706
Node: Bourne Shell Variables236140
Node: Bash Variables238333
Node: Bash Features275528
Node: Invoking Bash276542
Node: Bash Startup Files282941
Node: Interactive Shells288244
Node: What is an Interactive Shell?288652
Node: Is this Shell Interactive?289318
Node: Interactive Shell Behavior290142
Node: Bash Conditional Expressions293896
Node: Shell Arithmetic299070
Node: Aliases302152
Node: Arrays305107
Node: The Directory Stack311906
Node: Directory Stack Builtins312703
Node: Controlling the Prompt317152
Node: The Restricted Shell320290
Node: Bash POSIX Mode323077
Node: Shell Compatibility Mode340588
Node: Job Control349355
Node: Job Control Basics349812
Node: Job Control Builtins354986
Node: Job Control Variables360930
Node: Command Line Editing362107
Node: Introduction and Notation363811
Node: Readline Interaction365455
Node: Readline Bare Essentials366643
Node: Readline Movement Commands368461
Node: Readline Killing Commands369458
Node: Readline Arguments371436
Node: Searching372493
Node: Readline Init File374722
Node: Readline Init File Syntax376004
Node: Conditional Init Constructs400942
Node: Sample Init File405307
Node: Bindable Readline Commands408428
Node: Commands For Moving409653
Node: Commands For History411880
Node: Commands For Text417085
Node: Commands For Killing421219
Node: Numeric Arguments424020
Node: Commands For Completion425172
Node: Keyboard Macros429488
Node: Miscellaneous Commands430189
Node: Readline vi Mode436843
Node: Programmable Completion437795
Node: Programmable Completion Builtins445752
Node: A Programmable Completion Example457318
Node: Using History Interactively462663
Node: Bash History Facilities463344
Node: Bash History Builtins466456
Node: History Interaction471699
Node: Event Designators476024
Node: Word Designators477607
Node: Modifiers479593
Node: Installing Bash481502
Node: Basic Installation482636
Node: Compilers and Options486515
Node: Compiling For Multiple Architectures487265
Node: Installation Names489014
Node: Specifying the System Type491248
Node: Sharing Defaults491994
Node: Operation Controls492708
Node: Optional Features493727
Node: Reporting Bugs505529
Node: Major Differences From The Bourne Shell506878
Node: GNU Free Documentation License526613
Node: Indexes551790
Node: Builtin Index552241
Node: Reserved Word Index559339
Node: Variable Index561784
Node: Function Index578915
Node: Concept Index592771

End Tag Table