Skip to content

Commit 690150f

Browse files
author
Chet Ramey
committed
bash-4.4 rc1 release
1 parent 54a5fbe commit 690150f

File tree

253 files changed

+41114
-38503
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

253 files changed

+41114
-38503
lines changed

CHANGES

Lines changed: 157 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,158 @@
1+
This document details the changes between this version, bash-4.4-rc1, and
2+
the previous version, bash-4.4-beta.
3+
4+
1. Changes to Bash
5+
6+
a. Fixed several problems with bash completion not special-casing bash syntax
7+
constructs.
8+
9+
b. Fixed a bug that caused the mapfile builtin to not create array variables
10+
when a variable of the same name appears in the temporary environment.
11+
12+
c. Fixed a bug that caused prompt expansion to loop when PS1 contained a
13+
syntax error.
14+
15+
d. Fixed a bug that caused the ${array[@]@A} expansion to split the results even
16+
when double-quoted.
17+
18+
e. There is a new implementation of the code that saves the last CHILD_MAX
19+
exited background pids so their status can be queried later.
20+
21+
f. Bash-4.4 can now be configured and built on very old versions of Solaris 2.
22+
23+
g. Fixed problems with --help support for several builtins.
24+
25+
h. Fixed values added to BASH_SOURCE and BASH_LINENO for functions inherited from
26+
the environment.
27+
28+
i. Fixed a bug that caused background processes run from non-interactive shells
29+
with job control enabled to place the terminal in the wrong process group
30+
under certain circumstances.
31+
32+
j. Fixed a bug that caused `fc' to return an incorrect exit status when
33+
executing commands from the history list.
34+
35+
k. Fixed a bug that caused the shell to exit when a process substitution received
36+
a SIGINT when run in certain terminal emulators.
37+
38+
l. EXECIGNORE now honors the setting of `extglob' when attempting to match
39+
executable names.
40+
41+
m. Fixed a bug where `return' used the wrong exit status when executed in a
42+
DEBUG trap.
43+
44+
n. Fixed a bug that caused a command containing a here-document and an escaped
45+
newline to be stored in the history list incorrectly.
46+
47+
o. Fixed a bug that caused set -e to be honored in cases of builtins invoking
48+
other builtins when it should be ignored.
49+
50+
p. Fixed a bug that caused `readonly' and `export' to create local array
51+
variables when used within shell functions.
52+
53+
q. Fixed a bug that allowed subshells begun to execute process substitutions to
54+
have access to the command's temporary environment.
55+
56+
r. Fixed a bug that could cause the shell to dump core when receiving a SIGCHLD
57+
for which a trap has been set while running in posix mode.
58+
59+
s. Fixed a bug that caused bash to not restore BASH_ARGC, BASH_ARGV, BASH_SOURCE,
60+
BASH_LINENO, and FUNCNAME if the shell received a SIGINT while reading
61+
commands from a file while executing `.'.
62+
63+
t. Fixed a bug that caused the `-o history' option to have no effect when
64+
supplied on the command line when starting a new shell.
65+
66+
u. Fixed a bug that caused history expansions occurring in command substitutions
67+
to not be performed.
68+
69+
v. Fixed a bug that caused `eval' run in a non-interactive shell to disable
70+
history expansion for the remainder of the shell script, even if the script
71+
had previously enabled it.
72+
73+
w. Fixed a bug that caused "$@" to not expand to multiple words when IFS is set
74+
to the empty string.
75+
76+
x. Fixed a bug that caused process and command substitution to inherit output
77+
buffered in the stdio library but not written.
78+
79+
y. Fixed a bug that caused a terminating signal received during `echo' to run
80+
an exit trap in a signal handler context.
81+
82+
z. Fixed a bug that caused a builtin command containing a process substitution to
83+
return the wrong exit status.
84+
85+
aa. Fixed a bug that caused `()' subshells with piped input to incorrectly redirect
86+
the standard input of some of the commands in the subshell from /dev/null.
87+
88+
bb. The history builtin now uses more descriptive error messages for missing or
89+
invalid timestamps.
90+
91+
2. Changes to Readline
92+
93+
a. The history file writing functions only attempt to create and use a backup
94+
history file if the history file exists and is a regular file.
95+
96+
b. Fixed an out-of-bounds read in readline's internal tilde expansion interface.
97+
98+
c. Fixed several redisplay bugs with prompt strings containing multibyte
99+
and non-visible characters whose physical length is longer than the screen
100+
width.
101+
102+
d. Fixed a redisplay bug with prompt strings containing invisible characters
103+
whose physical length exceeds the screen width and using incremental search.
104+
105+
e. Readline prints more descriptive error messages when it encounters errors
106+
while reading an inputrc file.
107+
108+
f. Fixed a bug in the character insertion code that attempts to optimize
109+
typeahead when it reads a character that is not bound to self-insert and
110+
resets the key sequence state.
111+
112+
3. New Features in Bash
113+
114+
a. BASH_COMPAT and FUNCNEST can be inherited and set from the shell's initial
115+
environment.
116+
117+
b. inherit_errexit: a new `shopt' option that, when set, causes command
118+
substitutions to inherit the -e option. By default, those subshells disable
119+
-e. It's enabled as part of turning on posix mode.
120+
121+
c. New prompt string: PS0. Expanded and displayed by interactive shells after
122+
reading a complete command but before executing it.
123+
124+
d. Interactive shells now behave as if SIGTSTP/SIGTTIN/SIGTTOU are set to SIG_DFL
125+
when the shell is started, so they are set to SIG_DFL in child processes.
126+
127+
e. Posix-mode shells now allow double quotes to quote the history expansion
128+
character.
129+
130+
f. OLDPWD can be inherited from the environment if it names a directory.
131+
132+
g. Shells running as root no longer inherit PS4 from the environment, closing a
133+
security hole involving PS4 expansion performing command substitution.
134+
135+
h. If executing an implicit `cd' when the `autocd' option is set, bash will now
136+
invoke a function named `cd' if one exists before executing the `cd' builtin.
137+
138+
4. New Features in Readline
139+
140+
a. If an incremental search string has its last character removed with DEL, the
141+
resulting empty search string no longer matches the previous line.
142+
143+
b. If readline reads a history file that begins with `#' (or the value of
144+
the history comment character) and has enabled history timestamps, the history
145+
entries are assumed to be delimited by timestamps. This allows multi-line
146+
history entries.
147+
148+
c. Readline now throws an error if it parses a key binding without a terminating
149+
`:' or whitespace.
150+
151+
------------------------------------------------------------------------------
1152
This document details the changes between this version, bash-4.4-beta, and
2153
the previous version, bash-4.4-alpha.
3154

4-
1. Change to Bash
155+
1. Changes to Bash
5156

6157
a. Fixed two bugs that caused out-of-bounds reads when skipping over assignment
7158
statements while finding the word on which to perform programmable
@@ -154,8 +305,11 @@ c. There is a new BASH_LOADABLES_PATH variable containing a list of directories
154305
where the `enable -f' command looks for shared objects containing loadable
155306
builtins.
156307

157-
d. The `kill' builtin now has a `-L' option, equivalent to `-l', for compatibility
158-
with Linux standalone versions of kill.
308+
d. The `complete_fullquote' option to `shopt' changes filename completion to
309+
quote all shell metacharacters in filenames and directory names.
310+
311+
e. The `kill' builtin now has a `-L' option, equivalent to `-l', for
312+
compatibility with Linux standalone versions of kill.
159313

160314
4. New Features in Readline
161315
------------------------------------------------------------------------------

0 commit comments

Comments
 (0)