|
| 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 | +------------------------------------------------------------------------------ |
1 | 152 | This document details the changes between this version, bash-4.4-beta, and
|
2 | 153 | the previous version, bash-4.4-alpha.
|
3 | 154 |
|
4 |
| -1. Change to Bash |
| 155 | +1. Changes to Bash |
5 | 156 |
|
6 | 157 | a. Fixed two bugs that caused out-of-bounds reads when skipping over assignment
|
7 | 158 | 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
|
154 | 305 | where the `enable -f' command looks for shared objects containing loadable
|
155 | 306 | builtins.
|
156 | 307 |
|
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. |
159 | 313 |
|
160 | 314 | 4. New Features in Readline
|
161 | 315 | ------------------------------------------------------------------------------
|
|
0 commit comments