From: Chet Ramey Date: Fri, 6 Jun 2025 16:16:11 +0000 (-0400) Subject: addition to POSIX mode documentation; new translations; update copyrights on some... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=727b8d366390fea446f7a566c4be1be6c0e2a765;p=thirdparty%2Fbash.git addition to POSIX mode documentation; new translations; update copyrights on some files; update formatted documentation; changes to cut/lcut loadable builtins when supplied -a ARRAY --- diff --git a/MANIFEST b/MANIFEST index 5a09c72e..985d1793 100644 --- a/MANIFEST +++ b/MANIFEST @@ -792,6 +792,7 @@ examples/loadables/csv.c f examples/loadables/dsv.c f examples/loadables/kv.c f examples/loadables/cut.c f +examples/loadables/ocut.c f examples/loadables/logname.c f examples/loadables/basename.c f examples/loadables/dirname.c f diff --git a/POSIX b/POSIX index 20130133..a34084cf 100644 --- a/POSIX +++ b/POSIX @@ -362,14 +362,23 @@ The following list is what's changed when POSIX mode is in effect: 75. Bash removes an exited background process's status from the list of such statuses after the ‘wait’ builtin returns it. -There is other POSIX behavior that Bash does not implement by default -even when in POSIX mode. Specifically: - - 1. The ‘fc’ builtin checks ‘$EDITOR’ as a program to edit history +There is additional POSIX behavior that Bash does not implement by +default even when in POSIX mode. Specifically: + + 1. POSIX requires that word splitting be byte-oriented. That is, each + _byte_ in the value of ‘IFS’ potentially splits a word, even if + that byte is part of a multibyte character in ‘IFS’ or part of + multibyte character in the word. Bash allows multibyte characters + in the value of ‘IFS’, treating a valid multibyte character as a + single delimiter, and will not split a valid multibyte character + even if one of the bytes composing that character appears in ‘IFS’. + This is POSIX interpretation 1560, further modified by issue 1924. + + 2. The ‘fc’ builtin checks ‘$EDITOR’ as a program to edit history entries if ‘FCEDIT’ is unset, rather than defaulting directly to ‘ed’. ‘fc’ uses ‘ed’ if ‘EDITOR’ is unset. - 2. As noted above, Bash requires the ‘xpg_echo’ option to be enabled + 3. As noted above, Bash requires the ‘xpg_echo’ option to be enabled for the ‘echo’ builtin to be fully conformant. Bash can be configured to be POSIX-conformant by default, by specifying diff --git a/doc/bash.info b/doc/bash.info index c95e7dc5..48df32fc 100644 --- a/doc/bash.info +++ b/doc/bash.info @@ -1,9 +1,9 @@ -This is bash.info, produced by makeinfo version 7.1 from bashref.texi. +This is bash.info, produced by makeinfo version 7.2 from bashref.texi. This text is a brief description of the features that are present in the -Bash shell (version 5.3, 7 April 2025). +Bash shell (version 5.3, 18 May 2025). - This is Edition 5.3, last updated 7 April 2025, of ‘The GNU Bash + This is Edition 5.3, last updated 18 May 2025, of ‘The GNU Bash Reference Manual’, for ‘Bash’, Version 5.3. Copyright © 1988-2025 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, 7 April 2025). The Bash home page is +Bash shell (version 5.3, 18 May 2025). The Bash home page is . - This is Edition 5.3, last updated 7 April 2025, of ‘The GNU Bash + This is Edition 5.3, last updated 18 May 2025, of ‘The GNU Bash Reference Manual’, for ‘Bash’, Version 5.3. Bash contains features that appear in other popular shells, and some @@ -7990,14 +7990,23 @@ startup files. 75. Bash removes an exited background process's status from the list of such statuses after the ‘wait’ builtin returns it. - There is other POSIX behavior that Bash does not implement by default -even when in POSIX mode. Specifically: + There is additional POSIX behavior that Bash does not implement by +default even when in POSIX mode. Specifically: - 1. The ‘fc’ builtin checks ‘$EDITOR’ as a program to edit history + 1. POSIX requires that word splitting be byte-oriented. That is, each + _byte_ in the value of ‘IFS’ potentially splits a word, even if + that byte is part of a multibyte character in ‘IFS’ or part of + multibyte character in the word. Bash allows multibyte characters + in the value of ‘IFS’, treating a valid multibyte character as a + single delimiter, and will not split a valid multibyte character + even if one of the bytes composing that character appears in ‘IFS’. + This is POSIX interpretation 1560, further modified by issue 1924. + + 2. The ‘fc’ builtin checks ‘$EDITOR’ as a program to edit history entries if ‘FCEDIT’ is unset, rather than defaulting directly to ‘ed’. ‘fc’ uses ‘ed’ if ‘EDITOR’ is unset. - 2. As noted above, Bash requires the ‘xpg_echo’ option to be enabled + 3. As noted above, Bash requires the ‘xpg_echo’ option to be enabled for the ‘echo’ builtin to be fully conformant. Bash can be configured to be POSIX-conformant by default, by @@ -13600,141 +13609,140 @@ D.5 Concept Index * yanking text: Readline Killing Commands. (line 6) -  Tag Table: -Node: Top893 -Node: Introduction2826 -Node: What is Bash?3039 -Node: What is a shell?4172 -Node: Definitions6782 -Node: Basic Shell Features10109 -Node: Shell Syntax11333 -Node: Shell Operation12360 -Node: Quoting13651 -Node: Escape Character14989 -Node: Single Quotes15524 -Node: Double Quotes15873 -Node: ANSI-C Quoting17218 -Node: Locale Translation18612 -Node: Creating Internationalized Scripts20015 -Node: Comments24213 -Node: Shell Commands24980 -Node: Reserved Words25919 -Node: Simple Commands26784 -Node: Pipelines27446 -Node: Lists30702 -Node: Compound Commands32574 -Node: Looping Constructs33583 -Node: Conditional Constructs36132 -Node: Command Grouping51202 -Node: Coprocesses52694 -Node: GNU Parallel55380 -Node: Shell Functions56298 -Node: Shell Parameters64746 -Node: Positional Parameters69647 -Node: Special Parameters70737 -Node: Shell Expansions74198 -Node: Brace Expansion76387 -Node: Tilde Expansion79723 -Node: Shell Parameter Expansion82678 -Node: Command Substitution103321 -Node: Arithmetic Expansion106850 -Node: Process Substitution108026 -Node: Word Splitting109134 -Node: Filename Expansion111578 -Node: Pattern Matching114802 -Node: Quote Removal120525 -Node: Redirections120829 -Node: Executing Commands131092 -Node: Simple Command Expansion131759 -Node: Command Search and Execution133867 -Node: Command Execution Environment136311 -Node: Environment139759 -Node: Exit Status141662 -Node: Signals143720 -Node: Shell Scripts148649 -Node: Shell Builtin Commands151947 -Node: Bourne Shell Builtins154058 -Node: Bash Builtins180705 -Node: Modifying Shell Behavior217629 -Node: The Set Builtin217971 -Node: The Shopt Builtin229965 -Node: Special Builtins247017 -Node: Shell Variables248006 -Node: Bourne Shell Variables248440 -Node: Bash Variables250948 -Node: Bash Features290072 -Node: Invoking Bash291086 -Node: Bash Startup Files297670 -Node: Interactive Shells302912 -Node: What is an Interactive Shell?303320 -Node: Is this Shell Interactive?303982 -Node: Interactive Shell Behavior304806 -Node: Bash Conditional Expressions308567 -Node: Shell Arithmetic313984 -Node: Aliases317313 -Node: Arrays320447 -Node: The Directory Stack328035 -Node: Directory Stack Builtins328832 -Node: Controlling the Prompt333277 -Node: The Restricted Shell336162 -Node: Bash POSIX Mode339044 -Node: Shell Compatibility Mode357401 -Node: Job Control366408 -Node: Job Control Basics366865 -Node: Job Control Builtins373233 -Node: Job Control Variables379915 -Node: Command Line Editing381146 -Node: Introduction and Notation382849 -Node: Readline Interaction385201 -Node: Readline Bare Essentials386389 -Node: Readline Movement Commands388197 -Node: Readline Killing Commands389193 -Node: Readline Arguments391216 -Node: Searching392273 -Node: Readline Init File394516 -Node: Readline Init File Syntax395819 -Node: Conditional Init Constructs422644 -Node: Sample Init File427029 -Node: Bindable Readline Commands430149 -Node: Commands For Moving431687 -Node: Commands For History434151 -Node: Commands For Text439541 -Node: Commands For Killing443666 -Node: Numeric Arguments446454 -Node: Commands For Completion447606 -Node: Keyboard Macros453302 -Node: Miscellaneous Commands454003 -Node: Readline vi Mode460570 -Node: Programmable Completion461547 -Node: Programmable Completion Builtins470284 -Node: A Programmable Completion Example482021 -Node: Using History Interactively487366 -Node: Bash History Facilities488047 -Node: Bash History Builtins491782 -Node: History Interaction498253 -Node: Event Designators503203 -Node: Word Designators504781 -Node: Modifiers507173 -Node: Installing Bash509110 -Node: Basic Installation510226 -Node: Compilers and Options514102 -Node: Compiling For Multiple Architectures514852 -Node: Installation Names516605 -Node: Specifying the System Type518839 -Node: Sharing Defaults519585 -Node: Operation Controls520299 -Node: Optional Features521318 -Node: Reporting Bugs533698 -Node: Major Differences From The Bourne Shell535055 -Node: GNU Free Documentation License556481 -Node: Indexes581658 -Node: Builtin Index582109 -Node: Reserved Word Index589207 -Node: Variable Index591652 -Node: Function Index609065 -Node: Concept Index623060 +Node: Top891 +Node: Introduction2822 +Node: What is Bash?3035 +Node: What is a shell?4168 +Node: Definitions6778 +Node: Basic Shell Features10105 +Node: Shell Syntax11329 +Node: Shell Operation12356 +Node: Quoting13647 +Node: Escape Character14985 +Node: Single Quotes15520 +Node: Double Quotes15869 +Node: ANSI-C Quoting17214 +Node: Locale Translation18608 +Node: Creating Internationalized Scripts20011 +Node: Comments24209 +Node: Shell Commands24976 +Node: Reserved Words25915 +Node: Simple Commands26780 +Node: Pipelines27442 +Node: Lists30698 +Node: Compound Commands32570 +Node: Looping Constructs33579 +Node: Conditional Constructs36128 +Node: Command Grouping51198 +Node: Coprocesses52690 +Node: GNU Parallel55376 +Node: Shell Functions56294 +Node: Shell Parameters64742 +Node: Positional Parameters69643 +Node: Special Parameters70733 +Node: Shell Expansions74194 +Node: Brace Expansion76383 +Node: Tilde Expansion79719 +Node: Shell Parameter Expansion82674 +Node: Command Substitution103317 +Node: Arithmetic Expansion106846 +Node: Process Substitution108022 +Node: Word Splitting109130 +Node: Filename Expansion111574 +Node: Pattern Matching114798 +Node: Quote Removal120521 +Node: Redirections120825 +Node: Executing Commands131088 +Node: Simple Command Expansion131755 +Node: Command Search and Execution133863 +Node: Command Execution Environment136307 +Node: Environment139755 +Node: Exit Status141658 +Node: Signals143716 +Node: Shell Scripts148645 +Node: Shell Builtin Commands151943 +Node: Bourne Shell Builtins154054 +Node: Bash Builtins180701 +Node: Modifying Shell Behavior217625 +Node: The Set Builtin217967 +Node: The Shopt Builtin229961 +Node: Special Builtins247013 +Node: Shell Variables248002 +Node: Bourne Shell Variables248436 +Node: Bash Variables250944 +Node: Bash Features290068 +Node: Invoking Bash291082 +Node: Bash Startup Files297666 +Node: Interactive Shells302908 +Node: What is an Interactive Shell?303316 +Node: Is this Shell Interactive?303978 +Node: Interactive Shell Behavior304802 +Node: Bash Conditional Expressions308563 +Node: Shell Arithmetic313980 +Node: Aliases317309 +Node: Arrays320443 +Node: The Directory Stack328031 +Node: Directory Stack Builtins328828 +Node: Controlling the Prompt333273 +Node: The Restricted Shell336158 +Node: Bash POSIX Mode339040 +Node: Shell Compatibility Mode357986 +Node: Job Control366993 +Node: Job Control Basics367450 +Node: Job Control Builtins373818 +Node: Job Control Variables380500 +Node: Command Line Editing381731 +Node: Introduction and Notation383434 +Node: Readline Interaction385786 +Node: Readline Bare Essentials386974 +Node: Readline Movement Commands388782 +Node: Readline Killing Commands389778 +Node: Readline Arguments391801 +Node: Searching392858 +Node: Readline Init File395101 +Node: Readline Init File Syntax396404 +Node: Conditional Init Constructs423229 +Node: Sample Init File427614 +Node: Bindable Readline Commands430734 +Node: Commands For Moving432272 +Node: Commands For History434736 +Node: Commands For Text440126 +Node: Commands For Killing444251 +Node: Numeric Arguments447039 +Node: Commands For Completion448191 +Node: Keyboard Macros453887 +Node: Miscellaneous Commands454588 +Node: Readline vi Mode461155 +Node: Programmable Completion462132 +Node: Programmable Completion Builtins470869 +Node: A Programmable Completion Example482606 +Node: Using History Interactively487951 +Node: Bash History Facilities488632 +Node: Bash History Builtins492367 +Node: History Interaction498838 +Node: Event Designators503788 +Node: Word Designators505366 +Node: Modifiers507758 +Node: Installing Bash509695 +Node: Basic Installation510811 +Node: Compilers and Options514687 +Node: Compiling For Multiple Architectures515437 +Node: Installation Names517190 +Node: Specifying the System Type519424 +Node: Sharing Defaults520170 +Node: Operation Controls520884 +Node: Optional Features521903 +Node: Reporting Bugs534283 +Node: Major Differences From The Bourne Shell535640 +Node: GNU Free Documentation License557066 +Node: Indexes582243 +Node: Builtin Index582694 +Node: Reserved Word Index589792 +Node: Variable Index592237 +Node: Function Index609650 +Node: Concept Index623645  End Tag Table diff --git a/doc/bash.pdf b/doc/bash.pdf index d9c80d93..215fb4a8 100644 Binary files a/doc/bash.pdf and b/doc/bash.pdf differ diff --git a/doc/bash.ps b/doc/bash.ps index bc281c88..4f5e8e5d 100644 --- a/doc/bash.ps +++ b/doc/bash.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.23.0 -%%CreationDate: Tue Apr 22 10:00:28 2025 +%%CreationDate: Fri May 30 08:52:48 2025 %%DocumentNeededResources: font Times-Italic %%+ font Times-Roman %%+ font Times-Bold @@ -1469,18 +1469,18 @@ F1 .523(are each e)3.023 F -.25(va)-.25 G .523(luated as arith-).25 F F .55(alue is usu-)-.25 F .595(ally an inte)108 424.8 R .595 (ger constant, b)-.15 F .595(ut may be an e)-.2 F 3.096(xpression. When) -.15 F .596(\231+=\232 is applied to an array v)3.096 F .596 -(ariable using com-)-.25 F .262(pound assignment \(see)108 436.8 R F2 -(Arrays)2.761 E F1(belo)2.761 E .261(w\), the v)-.25 F(ariable')-.25 E -2.761(sv)-.55 G .261(alue is not unset \(as it is when using and ne) --3.011 F 2.761(wv)-.25 G(alues)-3.011 E .437 -(are appended to the array be)108 448.8 R .438 -(ginning at one greater than the array')-.15 F 2.938(sm)-.55 G .438 -(aximum inde)-2.938 F 2.938(x\()-.15 G .438(for inde)-2.938 F -.15(xe) --.15 G 2.938(da).15 G .438(rrays\) or)-2.938 F .123 -(added as additional k)108 460.8 R -.15(ey)-.1 G.15 E .123 -(alue pairs in an associati)-.25 F .423 -.15(ve a)-.25 H(rray).15 E -5.123(.W)-.65 G .122(hen applied to a string-v)-5.123 F .122(alued v) --.25 F(ariable,)-.25 E F0(value)2.622 E F1(is e)108 472.8 Q +(ariable using com-)-.25 F .537(pound assignment \(see)108 436.8 R F2 +(Arrays)3.036 E F1(belo)3.036 E .536(w\), the v)-.25 F(ariable')-.25 E +3.036(sv)-.55 G .536 +(alue is not unset \(as it is when using \231=\232\), and ne)-3.286 F(w) +-.25 E -.25(va)108 448.8 S .431(lues are appended to the array be).25 F +.431(ginning at one greater than the array')-.15 F 2.931(sm)-.55 G .431 +(aximum inde)-2.931 F 2.932(x\()-.15 G .432(for inde)-2.932 F -.15(xe) +-.15 G 2.932(da).15 G -.2(r-)-2.932 G .532 +(rays\) or added as additional k)108 460.8 R -.15(ey)-.1 G.15 E +.532(alue pairs in an associati)-.25 F .832 -.15(ve a)-.25 H(rray).15 E +5.532(.W)-.65 G .532(hen applied to a string-v)-5.532 F .531(alued v) +-.25 F(ari-)-.25 E(able,)108 472.8 Q F0(value)2.5 E F1(is e)2.5 E (xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G (alue.)-2.75 E 3.382(Av)108 489.6 S .882(ariable can be assigned the) -3.632 F F0(namer)3.382 E(ef)-.37 E F1(attrib)3.382 E .882 diff --git a/doc/bashref.dvi b/doc/bashref.dvi index bc0a1fba..b810243e 100644 Binary files a/doc/bashref.dvi and b/doc/bashref.dvi differ diff --git a/doc/bashref.html b/doc/bashref.html index 2cc31506..2d8f30b8 100644 --- a/doc/bashref.html +++ b/doc/bashref.html @@ -1,12 +1,12 @@ - +