]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
allow FIGNORE suffixes to match entire pathnames; allow SIGINT received while a funct...
authorChet Ramey <chet.ramey@case.edu>
Mon, 24 Apr 2023 19:25:45 +0000 (15:25 -0400)
committerChet Ramey <chet.ramey@case.edu>
Mon, 24 Apr 2023 19:25:45 +0000 (15:25 -0400)
16 files changed:
COMPAT
CWRU/CWRU.chlog
bashline.c
builtins/evalstring.c
doc/bash.info
doc/bashref.info
doc/bashref.log
doc/bashref.pdf
doc/bashref.texi
doc/version.texi
execute_cmd.c
execute_cmd.h
jobs.c
po/cs.gmo
po/cs.po
sig.c

diff --git a/COMPAT b/COMPAT
index 9fda7fb8fc06f0ab18e3c39fcdd1a0907ec6c6d9..3c05bee08b9e6ab61cbf3d7779b970af62115497 100644 (file)
--- a/COMPAT
+++ b/COMPAT
@@ -315,119 +315,113 @@ above.
     string if there is not enough input.  Previous versions discarded the
     characters read.
 
-41. Beginning with bash-4.0, when one of the commands in a pipeline is killed
-    by a SIGINT while executing a command list, the shell acts as if it
-    received the interrupt.  This can be disabled by setting the compat31 or
-    compat32 shell options.
-
-42. Bash-4.0 changes the handling of the set -e option so that the shell exits
+41. Bash-4.0 changes the handling of the set -e option so that the shell exits
     if a pipeline fails (and not just if the last command in the failing
     pipeline is a simple command).  This is not as Posix specifies.  There is
     work underway to update this portion of the standard; the bash-4.0
     behavior attempts to capture the consensus at the time of release.
 
-43. Bash-4.0 fixes a Posix mode bug that caused the . (source) builtin to
+42. Bash-4.0 fixes a Posix mode bug that caused the . (source) builtin to
     search the current directory for its filename argument, even if "." is
     not in $PATH.  Posix says that the shell shouldn't look in $PWD in this
     case.
 
-44. Bash-4.1 uses the current locale when comparing strings using the < and
+43. Bash-4.1 uses the current locale when comparing strings using the < and
     > operators to the `[[' command.  This can be reverted to the previous
     behavior (ASCII collating and strcmp(3)) by setting one of the
     `compatNN' shopt options, where NN is less than 41.
 
-45. Bash-4.1 conforms to the current Posix specification for `set -u':
+44. Bash-4.1 conforms to the current Posix specification for `set -u':
     expansions of $@ and $* when there are no positional parameters do not
     cause the shell to exit.
 
-46. Bash-4.1 implements the current Posix specification for `set -e' and
+45. Bash-4.1 implements the current Posix specification for `set -e' and
     exits when any command fails, not just a simple command or pipeline.
 
-47. Command substitutions now remove the caller's trap strings when trap is
+46. Command substitutions now remove the caller's trap strings when trap is
     run to set a new trap in the subshell.  Previous to bash-4.2, the old
     trap strings persisted even though the actual signal handlers were reset.
 
-48. When in Posix mode, a single quote is not treated specially in a
+47. When in Posix mode, a single quote is not treated specially in a
     double-quoted ${...} expansion, unless the expansion operator is
     # or % or the new `//', `^', or `,' expansions.  In particular, it
     does not define a new quoting context.  This is from Posix interpretation
     221.
 
-49. Posix mode shells no longer exit if a variable assignment error occurs
+48. Posix mode shells no longer exit if a variable assignment error occurs
     with an assignment preceding a command that is not a special builtin.
 
-50. Bash-4.2 attempts to preserve what the user typed when performing word
+49. Bash-4.2 attempts to preserve what the user typed when performing word
     completion, instead of, for instance, expanding shell variable
     references to their value.
 
-51. When in Posix mode, bash-4.2 exits if the filename supplied as an argument
+50. When in Posix mode, bash-4.2 exits if the filename supplied as an argument
     to `.' is not found and the shell is not interactive.
 
-52. When compiled for strict Posix compatibility, bash-4.3 does not enable
+51. When compiled for strict Posix compatibility, bash-4.3 does not enable
     history expansion by default in interactive shells, since it results in
     a non-conforming environment.
 
-53. Bash-4.3 runs the replacement string in the pattern substitution word
+52. Bash-4.3 runs the replacement string in the pattern substitution word
     expansion through quote removal.  The code already treats quote
     characters in the replacement string as special; if it treats them as
     special, then quote removal should remove them.
 
-54. Bash-4.4 no longer considers a reference to ${a[@]} or ${a[*]}, where `a'
+53. Bash-4.4 no longer considers a reference to ${a[@]} or ${a[*]}, where `a'
     is an array without any elements set, to be a reference to an unset
     variable.  This means that such a reference will not cause the shell to
     exit when the `-u' option is enabled.
 
-55. Bash-4.4 allows double quotes to quote the history expansion character (!)
+54. Bash-4.4 allows double quotes to quote the history expansion character (!)
     when in Posix mode, since Posix specifies the effects of double quotes.
 
-56. Bash-4.4 does not inherit $PS4 from the environment if running as root.
+55. Bash-4.4 does not inherit $PS4 from the environment if running as root.
 
-57. Bash-4.4 doesn't allow a `break' or `continue' in a function to affect
+56. Bash-4.4 doesn't allow a `break' or `continue' in a function to affect
     loop execution in the calling context.
 
-58. Bash-4.4 no longer expands tildes in $PATH elements when in Posix mode.
+57. Bash-4.4 no longer expands tildes in $PATH elements when in Posix mode.
 
-59. Bash-4.4 does not attempt to perform a compound array assignment if an
+58. Bash-4.4 does not attempt to perform a compound array assignment if an
     argument to `declare' or a similar builtin expands to a word that looks
     like a compound array assignment (e.g. declare w=$x where x='(foo)').
 
-60. Bash-5.0 only sets up BASH_ARGV and BASH_ARGC at startup if extended
+59. Bash-5.0 only sets up BASH_ARGV and BASH_ARGC at startup if extended
     debugging mode is active. The old behavior of unconditionally setting
     BASH_ARGC and BASH_ARGV is available at compatibility levels less than
     or equal to 44.
 
-61. Bash-5.0 doesn't allow a `break' or `continue' in a subshell to attempt
+60. Bash-5.0 doesn't allow a `break' or `continue' in a subshell to attempt
     to break or continue loop execution inherited from the calling context.
 
-62. Bash-5.0 doesn't allow variable assignments preceding builtins like
+61. Bash-5.0 doesn't allow variable assignments preceding builtins like
     export and readonly to modify variables with the same name in preceding
     contexts (including the global context) unless the shell is in posix
     mode, since export and readonly are special builtins.
 
-63. Bash-5.1 changes the way posix-mode shells handle assignment statements
+62. Bash-5.1 changes the way posix-mode shells handle assignment statements
     preceding shell function calls. Previous versions of POSIX specified that
     such assignments would persist after the function returned; subsequent
     versions of the standard removed that requirement (interpretation #654).
     Bash-5.1 posix mode assignment statements preceding shell function calls
     do not persist after the function returns.
 
-64. Bash-5.1 reverts to the bash-4.4 treatment of pathname expansion of words
+63. Bash-5.1 reverts to the bash-4.4 treatment of pathname expansion of words
     containing backslashes but no other special globbing characters. This comes
     after a protracted discussion and a POSIX interpretation (#1234).
 
-65. In bash-5.1, disabling posix mode attempts to restore the state of several
+64. In bash-5.1, disabling posix mode attempts to restore the state of several
     options that posix mode modifies to the state they had before enabling
     posix mode. Previous versions restored these options to default values.
 
-66. Bash-5.2 attempts to prevent double-expansion of array subscripts under
+65. Bash-5.2 attempts to prevent double-expansion of array subscripts under
     certain circumstances, especially arithmetic evaluation, by acting as if
     the `assoc_expand_once' shell option were set.
 
-67. The `unset' builtin in bash-5.2 treats array subscripts `@' and `*'
+66. The `unset' builtin in bash-5.2 treats array subscripts `@' and `*'
     differently than previous versions, and differently depending on whether
     the array is indexed or associative.
 
-
 Shell Compatibility Level
 =========================
 
@@ -485,10 +479,6 @@ compat31
 compat32
        - the < and > operators to the [[ command do not consider the current
          locale when comparing strings; they use ASCII ordering
-       - interrupting a command list such as "a ; b ; c" causes the execution
-         of the next command in the list (in bash-4.0 and later versions,
-         the shell acts as if it received the interrupt, so interrupting
-         one command in a list aborts the execution of the entire list)
 
 compat40
        - the < and > operators to the [[ command do not consider the current
index 4fb61ceb511bf3972d10042fe8c78f21cbb40d6f..f051ce31abdfcd3a64de89b0ba3254ac56995de0 100644 (file)
@@ -6087,3 +6087,19 @@ lib/readline/text.c
          unlikely event that a character in a non-multibyte locale is
          displayed using an octal representation.
          From a report by Grisha Levit <grishalevit@gmail.com>
+
+execute_cmd.c,execute_cmd.h,builtins/evalstring.c
+       - interrupt_execution: replaces `executing_list'
+       - interrupt_execution: set while executing while, for, until, select,
+         and arithmetic for loops
+
+jobs.c
+       - wait_for: if a process dies due to a SIGINT while the shell is
+         executing a loop or a list, act as if the shell got SIGINT. This
+         is no longer dependent on the compatibility level
+         From a report by Grisha Levit <grishalevit@gmail.com>
+
+bashline.c
+       - name_is_acceptable: allow FIGNORE suffixes to match the entire
+         pathname like tcsh does instead of requiring a non-empty prefix.
+         From Emanuele Torre <torreemanuele6@gmail.com>
index a17f7a15fa501c1ea3b369f6fc7340cf33970a53..d0d5bd487dcbd7ef6f2c4287ad6edbd03fdba8d8 100644 (file)
@@ -3074,7 +3074,7 @@ name_is_acceptable (const char *name)
 
   for (nlen = strlen (name), p = fignore.ignores; p->val; p++)
     {
-      if (nlen > p->len && p->len > 0 && STREQ (p->val, &name[nlen - p->len]))
+      if (nlen >= p->len && p->len > 0 && STREQ (p->val, &name[nlen - p->len]))
        return (0);
     }
 
index b78b53e95b37f1890969c08af8d7d627bec9e882..d5c13a51ad7f712378613ceef9a8b55acdc32177 100644 (file)
@@ -238,7 +238,7 @@ parse_prologue (char *string, int flags, char *tag)
   unwind_protect_int (line_number);
   unwind_protect_int (line_number_for_err_trap);
   unwind_protect_int (loop_level);
-  unwind_protect_int (executing_list);
+  unwind_protect_int (interrupt_execution);
   unwind_protect_int (comsub_ignore_return);
   unwind_protect_int (builtin_ignoring_errexit);
   if (flags & (SEVAL_NONINT|SEVAL_INTERACT))
index 32f6846df8da50c6fcdb31244bc2e40be373e9d0..0893ebbb21b387b28f6d86bc8a18f85dbc8fca06 100644 (file)
@@ -1,9 +1,9 @@
 This is bash.info, produced by makeinfo version 6.8 from bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.2, 17 April 2023).
+Bash shell (version 5.2, 20 April 2023).
 
-   This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
+   This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Copyright (C) 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.2, 17 April 2023).  The Bash home page is
+Bash shell (version 5.2, 20 April 2023).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
+   This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -7493,13 +7493,6 @@ required for bash-5.1 and later versions.
         * quoting the rhs of the '[[' command's regexp matching operator
           (=~) has no special effect
 
-'compat32'
-        * interrupting a command list such as "a ; b ; c" causes the
-          execution of the next command in the list (in bash-4.0 and
-          later versions, the shell acts as if it received the
-          interrupt, so interrupting one command in a list aborts the
-          execution of the entire list)
-
 'compat40'
         * the '<' and '>' operators to the '[[' command do not consider
           the current locale when comparing strings; they use ASCII
@@ -12787,60 +12780,60 @@ Node: Controlling the Prompt\7f298007
 Node: The Restricted Shell\7f300969
 Node: Bash POSIX Mode\7f303576
 Node: Shell Compatibility Mode\7f319366
-Node: Job Control\7f327930
-Node: Job Control Basics\7f328387
-Node: Job Control Builtins\7f333386
-Node: Job Control Variables\7f339178
-Node: Command Line Editing\7f340331
-Node: Introduction and Notation\7f341999
-Node: Readline Interaction\7f343619
-Node: Readline Bare Essentials\7f344807
-Node: Readline Movement Commands\7f346593
-Node: Readline Killing Commands\7f347550
-Node: Readline Arguments\7f349468
-Node: Searching\7f350509
-Node: Readline Init File\7f352692
-Node: Readline Init File Syntax\7f353950
-Node: Conditional Init Constructs\7f377738
-Node: Sample Init File\7f381931
-Node: Bindable Readline Commands\7f385052
-Node: Commands For Moving\7f386253
-Node: Commands For History\7f388301
-Node: Commands For Text\7f393292
-Node: Commands For Killing\7f396938
-Node: Numeric Arguments\7f399968
-Node: Commands For Completion\7f401104
-Node: Keyboard Macros\7f405292
-Node: Miscellaneous Commands\7f405977
-Node: Readline vi Mode\7f412012
-Node: Programmable Completion\7f412916
-Node: Programmable Completion Builtins\7f420693
-Node: A Programmable Completion Example\7f431678
-Node: Using History Interactively\7f436923
-Node: Bash History Facilities\7f437604
-Node: Bash History Builtins\7f440606
-Node: History Interaction\7f445627
-Node: Event Designators\7f449244
-Node: Word Designators\7f450595
-Node: Modifiers\7f452352
-Node: Installing Bash\7f454157
-Node: Basic Installation\7f455291
-Node: Compilers and Options\7f459010
-Node: Compiling For Multiple Architectures\7f459748
-Node: Installation Names\7f461437
-Node: Specifying the System Type\7f463543
-Node: Sharing Defaults\7f464257
-Node: Operation Controls\7f464927
-Node: Optional Features\7f465882
-Node: Reporting Bugs\7f477098
-Node: Major Differences From The Bourne Shell\7f478429
-Node: GNU Free Documentation License\7f495275
-Node: Indexes\7f520449
-Node: Builtin Index\7f520900
-Node: Reserved Word Index\7f527724
-Node: Variable Index\7f530169
-Node: Function Index\7f547154
-Node: Concept Index\7f560935
+Node: Job Control\7f327607
+Node: Job Control Basics\7f328064
+Node: Job Control Builtins\7f333063
+Node: Job Control Variables\7f338855
+Node: Command Line Editing\7f340008
+Node: Introduction and Notation\7f341676
+Node: Readline Interaction\7f343296
+Node: Readline Bare Essentials\7f344484
+Node: Readline Movement Commands\7f346270
+Node: Readline Killing Commands\7f347227
+Node: Readline Arguments\7f349145
+Node: Searching\7f350186
+Node: Readline Init File\7f352369
+Node: Readline Init File Syntax\7f353627
+Node: Conditional Init Constructs\7f377415
+Node: Sample Init File\7f381608
+Node: Bindable Readline Commands\7f384729
+Node: Commands For Moving\7f385930
+Node: Commands For History\7f387978
+Node: Commands For Text\7f392969
+Node: Commands For Killing\7f396615
+Node: Numeric Arguments\7f399645
+Node: Commands For Completion\7f400781
+Node: Keyboard Macros\7f404969
+Node: Miscellaneous Commands\7f405654
+Node: Readline vi Mode\7f411689
+Node: Programmable Completion\7f412593
+Node: Programmable Completion Builtins\7f420370
+Node: A Programmable Completion Example\7f431355
+Node: Using History Interactively\7f436600
+Node: Bash History Facilities\7f437281
+Node: Bash History Builtins\7f440283
+Node: History Interaction\7f445304
+Node: Event Designators\7f448921
+Node: Word Designators\7f450272
+Node: Modifiers\7f452029
+Node: Installing Bash\7f453834
+Node: Basic Installation\7f454968
+Node: Compilers and Options\7f458687
+Node: Compiling For Multiple Architectures\7f459425
+Node: Installation Names\7f461114
+Node: Specifying the System Type\7f463220
+Node: Sharing Defaults\7f463934
+Node: Operation Controls\7f464604
+Node: Optional Features\7f465559
+Node: Reporting Bugs\7f476775
+Node: Major Differences From The Bourne Shell\7f478106
+Node: GNU Free Documentation License\7f494952
+Node: Indexes\7f520126
+Node: Builtin Index\7f520577
+Node: Reserved Word Index\7f527401
+Node: Variable Index\7f529846
+Node: Function Index\7f546831
+Node: Concept Index\7f560612
 \1f
 End Tag Table
 
index 01300f2f9b0e02bd571b77074df4a99e88feb5d9..eb05765fe17813d1c06df6c43a5b82d3ab8e755f 100644 (file)
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.2, 17 April 2023).
+Bash shell (version 5.2, 20 April 2023).
 
-   This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
+   This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Copyright (C) 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.2, 17 April 2023).  The Bash home page is
+Bash shell (version 5.2, 20 April 2023).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
+   This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.2.
 
    Bash contains features that appear in other popular shells, and some
@@ -7494,13 +7494,6 @@ required for bash-5.1 and later versions.
         * quoting the rhs of the '[[' command's regexp matching operator
           (=~) has no special effect
 
-'compat32'
-        * interrupting a command list such as "a ; b ; c" causes the
-          execution of the next command in the list (in bash-4.0 and
-          later versions, the shell acts as if it received the
-          interrupt, so interrupting one command in a list aborts the
-          execution of the entire list)
-
 'compat40'
         * the '<' and '>' operators to the '[[' command do not consider
           the current locale when comparing strings; they use ASCII
@@ -12788,60 +12781,60 @@ Node: Controlling the Prompt\7f298232
 Node: The Restricted Shell\7f301197
 Node: Bash POSIX Mode\7f303807
 Node: Shell Compatibility Mode\7f319600
-Node: Job Control\7f328167
-Node: Job Control Basics\7f328627
-Node: Job Control Builtins\7f333629
-Node: Job Control Variables\7f339424
-Node: Command Line Editing\7f340580
-Node: Introduction and Notation\7f342251
-Node: Readline Interaction\7f343874
-Node: Readline Bare Essentials\7f345065
-Node: Readline Movement Commands\7f346854
-Node: Readline Killing Commands\7f347814
-Node: Readline Arguments\7f349735
-Node: Searching\7f350779
-Node: Readline Init File\7f352965
-Node: Readline Init File Syntax\7f354226
-Node: Conditional Init Constructs\7f378017
-Node: Sample Init File\7f382213
-Node: Bindable Readline Commands\7f385337
-Node: Commands For Moving\7f386541
-Node: Commands For History\7f388592
-Node: Commands For Text\7f393586
-Node: Commands For Killing\7f397235
-Node: Numeric Arguments\7f400268
-Node: Commands For Completion\7f401407
-Node: Keyboard Macros\7f405598
-Node: Miscellaneous Commands\7f406286
-Node: Readline vi Mode\7f412324
-Node: Programmable Completion\7f413231
-Node: Programmable Completion Builtins\7f421011
-Node: A Programmable Completion Example\7f431999
-Node: Using History Interactively\7f437247
-Node: Bash History Facilities\7f437931
-Node: Bash History Builtins\7f440936
-Node: History Interaction\7f445960
-Node: Event Designators\7f449580
-Node: Word Designators\7f450934
-Node: Modifiers\7f452694
-Node: Installing Bash\7f454502
-Node: Basic Installation\7f455639
-Node: Compilers and Options\7f459361
-Node: Compiling For Multiple Architectures\7f460102
-Node: Installation Names\7f461794
-Node: Specifying the System Type\7f463903
-Node: Sharing Defaults\7f464620
-Node: Operation Controls\7f465293
-Node: Optional Features\7f466251
-Node: Reporting Bugs\7f477470
-Node: Major Differences From The Bourne Shell\7f478804
-Node: GNU Free Documentation License\7f495653
-Node: Indexes\7f520830
-Node: Builtin Index\7f521284
-Node: Reserved Word Index\7f528111
-Node: Variable Index\7f530559
-Node: Function Index\7f547547
-Node: Concept Index\7f561331
+Node: Job Control\7f327844
+Node: Job Control Basics\7f328304
+Node: Job Control Builtins\7f333306
+Node: Job Control Variables\7f339101
+Node: Command Line Editing\7f340257
+Node: Introduction and Notation\7f341928
+Node: Readline Interaction\7f343551
+Node: Readline Bare Essentials\7f344742
+Node: Readline Movement Commands\7f346531
+Node: Readline Killing Commands\7f347491
+Node: Readline Arguments\7f349412
+Node: Searching\7f350456
+Node: Readline Init File\7f352642
+Node: Readline Init File Syntax\7f353903
+Node: Conditional Init Constructs\7f377694
+Node: Sample Init File\7f381890
+Node: Bindable Readline Commands\7f385014
+Node: Commands For Moving\7f386218
+Node: Commands For History\7f388269
+Node: Commands For Text\7f393263
+Node: Commands For Killing\7f396912
+Node: Numeric Arguments\7f399945
+Node: Commands For Completion\7f401084
+Node: Keyboard Macros\7f405275
+Node: Miscellaneous Commands\7f405963
+Node: Readline vi Mode\7f412001
+Node: Programmable Completion\7f412908
+Node: Programmable Completion Builtins\7f420688
+Node: A Programmable Completion Example\7f431676
+Node: Using History Interactively\7f436924
+Node: Bash History Facilities\7f437608
+Node: Bash History Builtins\7f440613
+Node: History Interaction\7f445637
+Node: Event Designators\7f449257
+Node: Word Designators\7f450611
+Node: Modifiers\7f452371
+Node: Installing Bash\7f454179
+Node: Basic Installation\7f455316
+Node: Compilers and Options\7f459038
+Node: Compiling For Multiple Architectures\7f459779
+Node: Installation Names\7f461471
+Node: Specifying the System Type\7f463580
+Node: Sharing Defaults\7f464297
+Node: Operation Controls\7f464970
+Node: Optional Features\7f465928
+Node: Reporting Bugs\7f477147
+Node: Major Differences From The Bourne Shell\7f478481
+Node: GNU Free Documentation License\7f495330
+Node: Indexes\7f520507
+Node: Builtin Index\7f520961
+Node: Reserved Word Index\7f527788
+Node: Variable Index\7f530236
+Node: Function Index\7f547224
+Node: Concept Index\7f561008
 \1f
 End Tag Table
 
index d22ffebc73e07f31215dc129b00150f1cb30af98..0b860317c752e2030e0c85d213da99a90ce80f79 100644 (file)
@@ -1,11 +1,12 @@
-This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/MacPorts 2022.62882_0) (preloaded format=etex 2022.5.4)  18 APR 2023 10:26
+This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30)  20 APR 2023 15:09
 entering extended mode
  restricted \write18 enabled.
  file:line:error style messages enabled.
  %&-line parsing enabled.
-**\nonstopmode \input /usr/local/src/chet/src/bash/src/doc/bashref.texi
-(/usr/local/src/chet/src/bash/src/doc/bashref.texi
-(/usr/local/src/chet/src/bash/src/doc/texinfo.tex
+**\input /usr/local/src/bash/bash-20230420/doc/bashref.texi \input /usr/local/s
+rc/bash/bash-20230420/doc/bashref.texi
+(/usr/local/src/bash/bash-20230420/doc/bashref.texi
+(/usr/local/src/bash/bash-20230420/doc/texinfo.tex
 Loading texinfo [version 2015-11-22.14]:
 \outerhsize=\dimen16
 \outervsize=\dimen17
@@ -161,20 +162,23 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
 texinfo.tex: doing @include of version.texi
 
 
-(/usr/local/src/chet/src/bash/src/doc/version.texi) [1] [2]
-(/usr/local/src/chet/src/bash/src/doc/bashref.toc [-1] [-2] [-3]) [-4]
-Chapter 1
+(/usr/local/src/bash/bash-20230420/doc/version.texi) [1{/opt/local/var/db/texmf
+/fonts/map/pdftex/updmap/pdftex.map}] [2]
+(/usr/local/build/bash/bash-20230420/doc/bashref.toc [-1] [-2] [-3]) [-4]
+(/usr/local/build/bash/bash-20230420/doc/bashref.toc)
+(/usr/local/build/bash/bash-20230420/doc/bashref.toc) Chapter 1
 \openout0 = `bashref.toc'.
 
- (/usr/local/src/chet/src/bash/src/doc/bashref.aux)
+
+(/usr/local/build/bash/bash-20230420/doc/bashref.aux)
 \openout1 = `bashref.aux'.
 
- Chapter 2 [1]
-[2]
+ Chapter 2 [1] [2]
 @cpindfile=@write2
 \openout2 = `bashref.cp'.
 
- [3] Chapter 3 [4] [5] [6] [7]
+
+[3] Chapter 3 [4] [5] [6] [7]
 @vrindfile=@write3
 \openout3 = `bashref.vr'.
 
@@ -257,8 +261,9 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5280--5280
 [118]
 texinfo.tex: doing @include of rluser.texi
 
- (/usr/local/src/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8
-[119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130]
+ (/usr/local/src/bash/bash-20230420/lib/readline/doc/rluser.texi
+Chapter 8 [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129]
+[130]
 Underfull \hbox (badness 7540) in paragraph at lines 874--880
  []@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
 -tion
@@ -306,10 +311,10 @@ gnored[]
 texinfo.tex: doing @include of hsuser.texi
 
 
-(/usr/local/src/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
+(/usr/local/src/bash/bash-20230420/lib/readline/doc/hsuser.texi Chapter 9
 [154] [155] [156] [157] [158] [159]) Chapter 10 [160] [161] [162] [163]
 [164]
-Underfull \hbox (badness 10000) in paragraph at lines 9566--9575
+Underfull \hbox (badness 10000) in paragraph at lines 9556--9565
 []@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
 entation[]@textrm '[],
 
@@ -322,7 +327,7 @@ entation[]@textrm '[],
 .etc.
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 9566--9575
+Underfull \hbox (badness 10000) in paragraph at lines 9556--9565
 @textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
 extrm '[], `@texttt strict-posix-default[]@textrm '[], and
 
@@ -338,16 +343,38 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
 [174] [175] Appendix C [176]
 texinfo.tex: doing @include of fdl.texi
 
- (/usr/local/src/chet/src/bash/src/doc/fdl.texi
+ (/usr/local/src/bash/bash-20230420/doc/fdl.texi
 [177] [178] [179] [180] [181] [182] [183]) Appendix D [184] [185] [186]
 [187] [188] [189] [190] [191] [192] [193] ) 
 Here is how much of TeX's memory you used:
- 3530 strings out of 497084
- 40207 string characters out of 6206695
87715 words of memory out of 5000000
- 4703 multiletter control sequences out of 15000+600000
+ 4100 strings out of 497086
+ 47602 string characters out of 6206517
142025 words of memory out of 5000000
+ 4869 multiletter control sequences out of 15000+600000
  34315 words of font info for 116 fonts, out of 8000000 for 9000
  51 hyphenation exceptions out of 8191
- 16i,6n,16p,343b,942s stack positions out of 10000i,1000n,20000p,200000b,200000s
+ 16i,6n,16p,389b,983s stack positions out of 5000i,500n,10000p,200000b,80000s
+{/opt/local/share/texmf-texlive/font
+s/enc/dvips/cm-super/cm-super-t1.enc}</opt/local/share/texmf-texlive/fonts/type
+1/public/amsfonts/cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
+lic/amsfonts/cm/cmcsc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/
+amsfonts/cm/cmmi10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfo
+nts/cm/cmmi12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/c
+m/cmmi9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr1
+0.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb><
+/opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/
+local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/loc
+al/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/sh
+are/texmf-texlive/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/t
+exmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-
+texlive/fonts/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texli
+ve/fonts/type1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fon
+ts/type1/public/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/typ
+e1/public/cm-super/sfrm1440.pfb>
+Output written on bashref.pdf (199 pages, 804832 bytes).
+PDF statistics:
+ 2794 PDF objects out of 2984 (max. 8388607)
+ 2548 compressed objects within 26 object streams
+ 327 named destinations out of 1000 (max. 500000)
+ 1157 words of extra memory for PDF output out of 10000 (max. 10000000)
 
-Output written on bashref.dvi (199 pages, 836976 bytes).
index 36631b9638afa09d9d6d5ec41305481cd76879fb..378f4ff3edadd3d86bff2d7203317413d6f9bb96 100644 (file)
Binary files a/doc/bashref.pdf and b/doc/bashref.pdf differ
index 7ed8ec86eba93b4d4764bc5b23a2a391e470146f..d56eb55a4a9eb8e8acef669b195f69aa8093ea57 100644 (file)
@@ -8697,16 +8697,6 @@ quoting the rhs of the @code{[[} command's regexp matching operator (=~)
 has no special effect
 @end itemize
 
-@item compat32
-@itemize @bullet
-@item
-interrupting a command list such as "a ; b ; c" causes the execution
-of the next command in the list (in bash-4.0 and later versions,
-the shell acts as if it received the interrupt, so
-interrupting one command in a list aborts the execution of the
-entire list)
-@end itemize
-
 @item compat40
 @itemize @bullet
 @item
index a252d9b4ee9a0051312c651a051f1cada9055e7b..33383910c8fcc8fa88a2c9f70e0b73f694a2538d 100644 (file)
@@ -2,10 +2,10 @@
 Copyright (C) 1988-2023 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Mon Apr 17 10:35:15 EDT 2023
+@set LASTCHANGE Thu Apr 20 15:08:33 EDT 2023
 
 @set EDITION 5.2
 @set VERSION 5.2
 
-@set UPDATED 17 April 2023
+@set UPDATED 20 April 2023
 @set UPDATED-MONTH April 2023
index 2a81a037c848408f28beacc7318c14a56b58ac9d..210b976c353b1bfd7b16f973cd1039d4935dfabb 100644 (file)
@@ -236,10 +236,9 @@ REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL;
    currently executing (e.g. `eval echo a' would have it set to 2). */
 int executing_builtin = 0;
 
-/* Non-zero if we are executing a command list (a;b;c, etc.) */
-int executing_list = 0;
-
-int executing_loop = 0;
+/* Non-zero if we are executing a command list (a;b;c, etc.) or a loop and we
+   should break out of it on a SIGINT. */
+int interrupt_execution = 0;
 
 /* Non-zero if we should defer closing process substitution FDs. */
 int retain_fifos = 0;
@@ -2740,7 +2739,7 @@ execute_connection (COMMAND *command, int asynchronous, int pipe_in, int pipe_ou
          if (command->value.Connection->second)
            command->value.Connection->second->flags |= CMD_IGNORE_RETURN;
        }
-      executing_list++; retain_fifos++;
+      interrupt_execution++; retain_fifos++;
       QUIT;
 
 #if 1
@@ -2756,7 +2755,7 @@ execute_connection (COMMAND *command, int asynchronous, int pipe_in, int pipe_ou
       exec_result = execute_command_internal (command->value.Connection->second,
                                      asynchronous, pipe_in, pipe_out,
                                      fds_to_close);
-      executing_list--; retain_fifos--;
+      interrupt_execution--; retain_fifos--;
       break;
 
     case '|':
@@ -2810,7 +2809,7 @@ execute_connection (COMMAND *command, int asynchronous, int pipe_in, int pipe_ou
         and the connector is OR_OR, then execute the second command,
         otherwise return. */
 
-      executing_list++; retain_fifos++;
+      interrupt_execution++; retain_fifos++;
       if (command->value.Connection->first)
        command->value.Connection->first->flags |= CMD_IGNORE_RETURN;
 
@@ -2833,7 +2832,7 @@ execute_connection (COMMAND *command, int asynchronous, int pipe_in, int pipe_ou
 
          exec_result = execute_command (second);
        }
-      executing_list--; retain_fifos--;
+      interrupt_execution--; retain_fifos--;
       break;
 
     default:
@@ -2880,7 +2879,7 @@ execute_for_command (FOR_COM *for_command)
       return (EXECUTION_FAILURE);
     }
 
-  loop_level++; retain_fifos++;
+  loop_level++; interrupt_execution++; retain_fifos++;
   identifier = for_command->name->word;
 
   line_number = for_command->line;     /* for expansion error messages */
@@ -2960,7 +2959,7 @@ execute_for_command (FOR_COM *for_command)
            {
              dispose_words (releaser);
              discard_unwind_frame ("for");
-             loop_level--; retain_fifos--;
+             loop_level--; interrupt_execution--; retain_fifos--;
              return (EXECUTION_FAILURE);
            }
        }
@@ -2988,7 +2987,7 @@ execute_for_command (FOR_COM *for_command)
        }
     }
 
-  loop_level--; retain_fifos--;
+  loop_level--; interrupt_execution--; retain_fifos--;
   line_number = save_line_number;
 
 #if 0
@@ -3092,7 +3091,7 @@ execute_arith_for_command (ARITH_FOR_COM *arith_for_command)
   int expok, body_status, arith_lineno, save_lineno;
 
   body_status = EXECUTION_SUCCESS;
-  loop_level++;
+  loop_level++; interrupt_execution++;
   save_lineno = line_number;
 
   if (arith_for_command->flags & CMD_IGNORE_RETURN)
@@ -3167,7 +3166,7 @@ execute_arith_for_command (ARITH_FOR_COM *arith_for_command)
        }
     }
 
-  loop_level--;
+  loop_level--; interrupt_execution--;
   line_number = save_lineno;
 
   return (body_status);
@@ -3405,7 +3404,7 @@ execute_select_command (SELECT_COM *select_command)
 
   this_command_name = (char *)0;
 
-  loop_level++;
+  loop_level++; interrupt_execution++;
   identifier = select_command->name->word;
 
   /* command and arithmetic substitution, parameter and variable expansion,
@@ -3459,7 +3458,7 @@ execute_select_command (SELECT_COM *select_command)
            {
              dispose_words (releaser);
              discard_unwind_frame ("select");
-             loop_level--;
+             loop_level--; interrupt_execution--;
              line_number = save_line_number;
              return (EXECUTION_FAILURE);
            }
@@ -3493,7 +3492,7 @@ execute_select_command (SELECT_COM *select_command)
 #endif
     }
 
-  loop_level--;
+  loop_level--; interrupt_execution--;
   line_number = save_line_number;
 
   dispose_words (releaser);
@@ -3663,7 +3662,7 @@ execute_while_or_until (WHILE_COM *while_command, int type)
   int return_value, body_status;
 
   body_status = EXECUTION_SUCCESS;
-  loop_level++;
+  loop_level++; interrupt_execution++;
 
   while_command->test->flags |= CMD_IGNORE_RETURN;
   if (while_command->flags & CMD_IGNORE_RETURN)
@@ -3714,7 +3713,7 @@ execute_while_or_until (WHILE_COM *while_command, int type)
            break;
        }
     }
-  loop_level--;
+  loop_level--; interrupt_execution--;
 
   return (body_status);
 }
@@ -5871,7 +5870,7 @@ initialize_subshell (void)
   /* We're no longer inside a shell function. */
   variable_context = return_catch_flag = funcnest = evalnest = sourcenest = 0;
 
-  executing_list = retain_fifos = 0;           /* XXX */
+  interrupt_execution = retain_fifos = 0;              /* XXX */
 
   /* If we're not interactive, close the file descriptor from which we're
      reading the current shell script. */
index 3bd3af445b626b53fcf08110b84b5badd0f11247..518222a3bb64ff56e606c327477f20348db03dbf 100644 (file)
@@ -50,7 +50,7 @@ extern volatile int last_command_exit_value;
 extern int last_command_exit_signal;
 extern int builtin_ignoring_errexit;
 extern int executing_builtin;
-extern int executing_list;
+extern int interrupt_execution;
 extern int retain_fifos;
 extern int comsub_ignore_return;
 extern int subshell_level;
diff --git a/jobs.c b/jobs.c
index 1e8955bd025ca64b382d4126f3ba7ab326f3fddd..a34fe2dda388c4fca4ad311108f197d112446e4a 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -3089,10 +3089,11 @@ if (job == NO_JOB)
                WIFSIGNALED (s) && WTERMSIG (s) == SIGINT)
            {
              /* If SIGINT is not trapped and the shell is in a for, while,
-                or until loop, act as if the shell received SIGINT as
-                well, so the loop can be broken.  This doesn't call the
-                SIGINT signal handler; maybe it should. */
-             if (signal_is_trapped (SIGINT) == 0 && (loop_level || (shell_compatibility_level > 32 && executing_list)))
+                until, or arithmetic for loop, or is executing a compound list,
+                act as if the shell received SIGINT as well, so the loop or
+                list can be broken.  This doesn't call the SIGINT signal
+                handler; maybe it should. */
+             if (signal_is_trapped (SIGINT) == 0 && interrupt_execution)
                ADDINTERRUPT;
              /* Call any SIGINT trap handler if the shell is running a loop, so
                 the loop can be broken.  This seems more useful and matches the
index 39e0b6c70435f9b50ad42d31a54a148c27d42322..ff6a876a75ce394784e2cce9120d5baf120f380f 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index d2df43b127bebc9bf406b7039204be50bf72a4d8..81e87a6bab8c052c859f8e07de0cbe575f546e4e 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -2,7 +2,7 @@
 # Copyright (C) 2008 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
 # Petr Pisar <petr.pisar@atlas.cz>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
-# Petr Pisar <petr.pisar@atlas.cz>, 2015, 2016, 2018, 2019, 2020, 2022.
+# Petr Pisar <petr.pisar@atlas.cz>, 2015, 2016, 2018, 2019, 2020, 2022, 2023.
 #
 # alias → alias
 # subscript → podskript
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: bash 5.2-rc1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2022-01-11 14:50-0500\n"
-"PO-Revision-Date: 2022-06-21 20:10+02:00\n"
+"PO-Revision-Date: 2023-04-20 19:31+02:00\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
@@ -38,7 +38,7 @@ msgstr "%s: odstraňuje se atribut odkazu na název"
 #: arrayfunc.c:496 builtins/declare.def:868
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr "%s: číslované pole nezle převést na pole asociativní"
+msgstr "%s: číslované pole nelze převést na pole asociativní"
 
 #: arrayfunc.c:777
 #, c-format
@@ -365,7 +365,7 @@ msgstr "může být použito jen ve funkci"
 
 #: builtins/declare.def:437
 msgid "cannot use `-f' to make functions"
-msgstr "„-f“ nezle použít na výrobu funkce"
+msgstr "„-f“ nelze použít na výrobu funkce"
 
 #: builtins/declare.def:464 execute_cmd.c:6132
 #, c-format
@@ -2233,7 +2233,7 @@ msgstr "%s: nelze alokovat %'lu bajtů (alokováno %'lu bajtů)"
 #: xmalloc.c:95
 #, c-format
 msgid "%s: cannot allocate %lu bytes"
-msgstr "%s: nezle alokovat %'lu bajtů"
+msgstr "%s: nelze alokovat %'lu bajtů"
 
 #: xmalloc.c:165
 #, c-format
diff --git a/sig.c b/sig.c
index fc0ae878f45978bd1212e8b274b507745c2d88ed..31b95adb7b92fd8ff018b935fc3b77ff82b940c3 100644 (file)
--- a/sig.c
+++ b/sig.c
@@ -396,7 +396,7 @@ top_level_cleanup (void)
 
   run_unwind_protects ();
   loop_level = continuing = breaking = funcnest = 0;
-  executing_list = retain_fifos = 0;
+  interrupt_execution = retain_fifos = 0;
   comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
 }
 
@@ -463,7 +463,7 @@ throw_to_top_level (void)
 
   run_unwind_protects ();
   loop_level = continuing = breaking = funcnest = 0;
-  executing_list = retain_fifos = 0;
+  interrupt_execution = retain_fifos = 0;
   comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
 
   if (interactive && print_newline)
@@ -630,7 +630,7 @@ termsig_handler (int sig)
 
   /* Reset execution context */
   loop_level = continuing = breaking = funcnest = 0;
-  executing_list = retain_fifos = 0;
+  interrupt_execution = retain_fifos = 0;
   comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
 
   run_exit_trap ();    /* XXX - run exit trap possibly in signal context? */