+o The `helptopic' completion action now maps to all the help topics, not just
+ the shell builtins.
+
+o The `help' builtin no longer does prefix substring matching first, so
+ `help read' does not match `readonly', but will do it if exact string
+ matching fails.
+
+o The shell can be compiled to not display a message about processes that
+ terminate due to SIGTERM.
+
+o Non-interactive shells now react to the setting of checkwinsize and set
+ LINES and COLUMNS after a foreground job exits.
+
+o There is a new shell option, `globasciiranges', which, when set to on,
+ forces globbing range comparisons to use character ordering as if they
+ were run in the C locale.
+
+o There is a new shell option, `direxpand', which makes filename completion
+ expand variables in directory names in the way bash-4.1 did.
+
+o In Posix mode, the `command' builtin does not change whether or not a
+ builtin it shadows is treated as an assignment builtin.
+
+o The `return' and `exit' builtins accept negative exit status arguments.
+
+o The word completion code checks whether or not a filename containing a
+ shell variable expands to a directory name and appends `/' to the word
+ as appropriate. The same code expands shell variables in command names
+ when performing command completion.
+
+o In Posix mode, it is now an error to attempt to define a shell function
+ with the same name as a Posix special builtin.
+
+o When compiled for strict Posix conformance, history expansion is disabled
+ by default.
+
+o The history expansion character (!) does not cause history expansion when
+ followed by the closing quote in a double-quoted string.
+
+o `complete' and its siblings compgen/compopt now takes a new `-o noquote'
+ option to inhibit quoting of the completions.
+
+o Setting HISTSIZE to a value less than zero causes the history list to be
+ unlimited (setting it 0 zero disables the history list).
+
+o Setting HISTFILESIZE to a value less than zero causes the history file size
+ to be unlimited (setting it to 0 causes the history file to be truncated
+ to zero size).
+
+o The `read' builtin now skips NUL bytes in the input.
+
+o There is a new `bind -X' option to print all key sequences bound to Unix
+ commands.
+
+o When in Posix mode, `read' is interruptible by a trapped signal. After
+ running the trap handler, read returns 128+signal and throws away any
+ partially-read input.
+
+o The command completion code skips whitespace and assignment statements
+ before looking for the command name word to be completed.
+
+o The build process has a new mechanism for constructing separate help files
+ that better reflects the current set of compilation options.
+
+o The -nt and -ot options to test now work with files with nanosecond
+ timestamp resolution.
+
+o The shell saves the command history in any shell for which history is
+ enabled and HISTFILE is set, not just interactive shells.
+
+o The shell has `nameref' variables and new -n(/+n) options to declare and
+ unset to use them, and a `test -R' option to test for them.
+
+o The shell now allows assigning, referencing, and unsetting elements of
+ indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which
+ count back from the last element of the array.
+
+o The {x}<word redirection feature now allows words like {array[ind]} and
+ can use variables with special meanings to the shell (e.g., BASH_XTRACEFD).
+
+o There is a new CHILD_MAX special shell variable; its value controls the
+ number of exited child statues the shell remembers.
+
+o There is a new configuration option (--enable-direxpand-default) that
+ causes the `direxpand' shell option to be enabled by default.
+
+o Bash does not do anything special to ensure that the file descriptor
+ assigned to X in {x}<foo remains open after the block containing it
+ completes.
+
+o The `wait' builtin has a new `-n' option to wait for the next child to
+ change status.
+
+o The `printf' %(...)T format specifier now uses the current time if no
+ argument is supplied.
+
+o There is a new variable, BASH_COMPAT, that controls the current shell
+ compatibility level.
+
+o The `popd' builtin now treats additional arguments as errors.
+
+o The brace expansion code now treats a failed sequence expansion as a
+ simple string and will continue to expand brace terms in the remainder
+ of the word.
+
+o Shells started to run process substitutions now run any trap set on EXIT.
+
+o The fc builtin now interprets -0 as the current command line.
+
+o Completing directory names containing shell variables now adds a trailing
+ slash if the expanded result is a directory.
+
+A short feature history dating back to Bash-2.0:
+
+Bash-4.2 contained the following new features:
+