allow FIGNORE suffixes to match entire pathnames; allow SIGINT received while a function is executing in a loop to break the loop

This commit is contained in:
Chet Ramey
2023-04-24 15:25:45 -04:00
parent d052bd6fd9
commit ec02facd13
16 changed files with 244 additions and 235 deletions
+26 -36
View File
@@ -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
+16
View 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>
+1 -1
View 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);
}
+1 -1
View 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))
+58 -65
View 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 Prompt298007
Node: The Restricted Shell300969
Node: Bash POSIX Mode303576
Node: Shell Compatibility Mode319366
Node: Job Control327930
Node: Job Control Basics328387
Node: Job Control Builtins333386
Node: Job Control Variables339178
Node: Command Line Editing340331
Node: Introduction and Notation341999
Node: Readline Interaction343619
Node: Readline Bare Essentials344807
Node: Readline Movement Commands346593
Node: Readline Killing Commands347550
Node: Readline Arguments349468
Node: Searching350509
Node: Readline Init File352692
Node: Readline Init File Syntax353950
Node: Conditional Init Constructs377738
Node: Sample Init File381931
Node: Bindable Readline Commands385052
Node: Commands For Moving386253
Node: Commands For History388301
Node: Commands For Text393292
Node: Commands For Killing396938
Node: Numeric Arguments399968
Node: Commands For Completion401104
Node: Keyboard Macros405292
Node: Miscellaneous Commands405977
Node: Readline vi Mode412012
Node: Programmable Completion412916
Node: Programmable Completion Builtins420693
Node: A Programmable Completion Example431678
Node: Using History Interactively436923
Node: Bash History Facilities437604
Node: Bash History Builtins440606
Node: History Interaction445627
Node: Event Designators449244
Node: Word Designators450595
Node: Modifiers452352
Node: Installing Bash454157
Node: Basic Installation455291
Node: Compilers and Options459010
Node: Compiling For Multiple Architectures459748
Node: Installation Names461437
Node: Specifying the System Type463543
Node: Sharing Defaults464257
Node: Operation Controls464927
Node: Optional Features465882
Node: Reporting Bugs477098
Node: Major Differences From The Bourne Shell478429
Node: GNU Free Documentation License495275
Node: Indexes520449
Node: Builtin Index520900
Node: Reserved Word Index527724
Node: Variable Index530169
Node: Function Index547154
Node: Concept Index560935
Node: Job Control327607
Node: Job Control Basics328064
Node: Job Control Builtins333063
Node: Job Control Variables338855
Node: Command Line Editing340008
Node: Introduction and Notation341676
Node: Readline Interaction343296
Node: Readline Bare Essentials344484
Node: Readline Movement Commands346270
Node: Readline Killing Commands347227
Node: Readline Arguments349145
Node: Searching350186
Node: Readline Init File352369
Node: Readline Init File Syntax353627
Node: Conditional Init Constructs377415
Node: Sample Init File381608
Node: Bindable Readline Commands384729
Node: Commands For Moving385930
Node: Commands For History387978
Node: Commands For Text392969
Node: Commands For Killing396615
Node: Numeric Arguments399645
Node: Commands For Completion400781
Node: Keyboard Macros404969
Node: Miscellaneous Commands405654
Node: Readline vi Mode411689
Node: Programmable Completion412593
Node: Programmable Completion Builtins420370
Node: A Programmable Completion Example431355
Node: Using History Interactively436600
Node: Bash History Facilities437281
Node: Bash History Builtins440283
Node: History Interaction445304
Node: Event Designators448921
Node: Word Designators450272
Node: Modifiers452029
Node: Installing Bash453834
Node: Basic Installation454968
Node: Compilers and Options458687
Node: Compiling For Multiple Architectures459425
Node: Installation Names461114
Node: Specifying the System Type463220
Node: Sharing Defaults463934
Node: Operation Controls464604
Node: Optional Features465559
Node: Reporting Bugs476775
Node: Major Differences From The Bourne Shell478106
Node: GNU Free Documentation License494952
Node: Indexes520126
Node: Builtin Index520577
Node: Reserved Word Index527401
Node: Variable Index529846
Node: Function Index546831
Node: Concept Index560612

End Tag Table
+58 -65
View 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 Prompt298232
Node: The Restricted Shell301197
Node: Bash POSIX Mode303807
Node: Shell Compatibility Mode319600
Node: Job Control328167
Node: Job Control Basics328627
Node: Job Control Builtins333629
Node: Job Control Variables339424
Node: Command Line Editing340580
Node: Introduction and Notation342251
Node: Readline Interaction343874
Node: Readline Bare Essentials345065
Node: Readline Movement Commands346854
Node: Readline Killing Commands347814
Node: Readline Arguments349735
Node: Searching350779
Node: Readline Init File352965
Node: Readline Init File Syntax354226
Node: Conditional Init Constructs378017
Node: Sample Init File382213
Node: Bindable Readline Commands385337
Node: Commands For Moving386541
Node: Commands For History388592
Node: Commands For Text393586
Node: Commands For Killing397235
Node: Numeric Arguments400268
Node: Commands For Completion401407
Node: Keyboard Macros405598
Node: Miscellaneous Commands406286
Node: Readline vi Mode412324
Node: Programmable Completion413231
Node: Programmable Completion Builtins421011
Node: A Programmable Completion Example431999
Node: Using History Interactively437247
Node: Bash History Facilities437931
Node: Bash History Builtins440936
Node: History Interaction445960
Node: Event Designators449580
Node: Word Designators450934
Node: Modifiers452694
Node: Installing Bash454502
Node: Basic Installation455639
Node: Compilers and Options459361
Node: Compiling For Multiple Architectures460102
Node: Installation Names461794
Node: Specifying the System Type463903
Node: Sharing Defaults464620
Node: Operation Controls465293
Node: Optional Features466251
Node: Reporting Bugs477470
Node: Major Differences From The Bourne Shell478804
Node: GNU Free Documentation License495653
Node: Indexes520830
Node: Builtin Index521284
Node: Reserved Word Index528111
Node: Variable Index530559
Node: Function Index547547
Node: Concept Index561331
Node: Job Control327844
Node: Job Control Basics328304
Node: Job Control Builtins333306
Node: Job Control Variables339101
Node: Command Line Editing340257
Node: Introduction and Notation341928
Node: Readline Interaction343551
Node: Readline Bare Essentials344742
Node: Readline Movement Commands346531
Node: Readline Killing Commands347491
Node: Readline Arguments349412
Node: Searching350456
Node: Readline Init File352642
Node: Readline Init File Syntax353903
Node: Conditional Init Constructs377694
Node: Sample Init File381890
Node: Bindable Readline Commands385014
Node: Commands For Moving386218
Node: Commands For History388269
Node: Commands For Text393263
Node: Commands For Killing396912
Node: Numeric Arguments399945
Node: Commands For Completion401084
Node: Keyboard Macros405275
Node: Miscellaneous Commands405963
Node: Readline vi Mode412001
Node: Programmable Completion412908
Node: Programmable Completion Builtins420688
Node: A Programmable Completion Example431676
Node: Using History Interactively436924
Node: Bash History Facilities437608
Node: Bash History Builtins440613
Node: History Interaction445637
Node: Event Designators449257
Node: Word Designators450611
Node: Modifiers452371
Node: Installing Bash454179
Node: Basic Installation455316
Node: Compilers and Options459038
Node: Compiling For Multiple Architectures459779
Node: Installation Names461471
Node: Specifying the System Type463580
Node: Sharing Defaults464297
Node: Operation Controls464970
Node: Optional Features465928
Node: Reporting Bugs477147
Node: Major Differences From The Bourne Shell478481
Node: GNU Free Documentation License495330
Node: Indexes520507
Node: Builtin Index520961
Node: Reserved Word Index527788
Node: Variable Index530236
Node: Function Index547224
Node: Concept Index561008

End Tag Table
+50 -23
View 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).
BIN
View File
Binary file not shown.
-10
View 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
+2 -2
View 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
+18 -19
View 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. */
+1 -1
View 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;
+5 -4
View File
@@ -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
BIN
View File
Binary file not shown.
+5 -5
View File
@@ -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
+3 -3
View File
@@ -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? */