+++ /dev/null
-This document details the changes between this version, bash-4.3-release, and
-the previous version, bash-4.3-rc2.
-
-1. Changes to Bash
-
-a. Only Posix-mode shells should exit on an assignment failure in the
- temporary environment preceding a special builtin. This is how it's been
- documented.
-
-b. Fixed a bug that caused a failed special builtin to not exit a posix-mode
- shell if the failing builtin was on the LHS of a && or ||.
-
-c. Changed the handling of unquoted backslashes in regular expressions to be
- closer to bash-4.2.
-
-d. globstar (**) no longer traverses symbolic links that resolve to
- directories. This eliminates some duplicate entries.
-
-e. Fixed a bug that caused a SIGCHLD trap handler to not be able to change the
- SIGCHLD disposition.
-
-f. Fixed a bug that caused a crash when -x was enabled and a command
- contained a printable multibyte (wide) character.
-
-g. Fixed a bug that caused an interactive shell without line editing enabled
- to read invalid data after receiving a SIGINT.
-
-h. Fixed a bug that caused command word completion to fail if the directory in
- $PATH where the completion would be found contained single or double quotes.
-
-i. Fixed a bug that caused a shell with -v enabled to print commands in $()
- multiple times.
-
-2. Changes to Readline
-
-a. Fixed a bug that caused `undo' to reference freed memory or null pointers.
-
-3. New Features in Bash
-
-a. The [[ -v ]] option now understands array references (foo[1]) and returns
- success if the referenced element has a value.
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-rc2, and the
-previous version, bash-4.3-rc1.
-
-1. Changes to Bash
-
-a. Fixed a bug that left variables set by printf -v marked as invisible.
-
-b. Fixed an off-by-one error in a job control warning message.
-
-c. Fixed a bug that caused the shell to crash after declaring a nameref variable
- without a value.
-
-d. Fixed a bug that caused asynchronous commands to not set $? correctly.
-
-e. Fixed a bug that caused out-of-order execution when executing aliases with
- embedded newlines containing `.' commands.
-
-f. Fixed a bug that caused error messages generated by expansion errors in
- `for' commands to have the wrong line number.
-
-g. Fixed a bug that caused the `wait' builtin to not be interruptible in an
- interactive shell with job control enabled.
-
-h. Fixed a bug that caused SIGINT and SIGQUIT to not be trappable in
- asynchronous subshell commands.
-
-i. Bash now requires that the value assigned to a nameref variable be a valid
- shell identifier (variable name or array reference).
-
-j. Converting an existing variable to a nameref variable now turns off the
- -i/-l/-u/-c attributes.
-
-k. Displaying a nameref variable with `declare -p' now displays the nameref
- variable and its value rather than following the nameref chain.
-
-l. Fixed a problem with interrupt handling that caused a second and subsequent
- SIGINT to be ignored by interactive shells.
-
-m. Fixed a bug that caused certain positional parameter and array expansions
- to mishandle (discard) null positional parameters and array elements.
-
-n. The shell no longer blocks receipt of signals while running trap handlers
- for those signals, and allows most trap handlers to be run recursively
- (running trap handlers while a trap handler is executing).
-
-o. The shell now handles backslashes in regular expression arguments to the
- [[ command's =~ operator slightly differently, resulting in more
- consistent behavior.
-
-2. Changes to Readline
-
-a. Fixed a bug that could cause readline to crash and seg fault attempting to
- expand an empty history entry.
-
-b. Fixed a bug that caused a bad entry in the $LS_COLORS variable to abort all
- color processing but leave color enabled.
-
-c. Fixed a bug that caused display problems with multi-line prompts containing
- invisible characters on multiple lines.
-
-d. Fixed a bug that caused effects made by undoing changes to a history line to
- be discarded.
-
-3. New Features in Bash
-
-4. New Features in Readline
-
-a. When creating shared libraries on Mac OS X, the pathname written into the
- library (install_name) no longer includes the minor version number.
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-rc1, and the
-previous version, bash-4.3-beta2.
-
-1. Changes to Bash
-
-a. Fixed a bug in bash completion that caused a tilde to be expanded even if
- the `direxpand' option was not enabled.
-
-b. Fixed a potential bug that could cause corrupted input in interactive shells
- running without line editing and with `ignoreeof' enabled.
-
-c. Fixed a bug that could cause failures when opening pipes back to shells
- created to run process substitutions.
-
-d. Fixed a bug that caused an assignment to TEXTDOMAIN to require TEXTDOMAINDIR
- to be set in order to actually change the current text domain.
-
-e. Changed the way redirections are printed to avoid confusion when the target
- of an output redirection is a process substitution beginning with `>'.
-
-2. Changes to Readline
-
-a. Shared library building is now supported on Mac OS X 10.9 (Darwin 13).
-
-3. New Features in Bash
-
-a. `cd' has a new `-@' option to browse a file's extended attributes on
- systems that support O_XATTR.
-
-4. New Features in Readline
-
-a. There are additional default key bindings for MinGW32
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-beta2, and the
-previous version, bash-4.3-beta.
-
-1. Changes to Bash
-
-a. Fixed a bug that caused assignment to an unset variable using a negative
- subscript to result in a segmentation fault.
-
-b. Fixed a bug that caused assignment to a string variable using a negative
- subscript to use the incorrect index.
-
-c. Fixed a bug that caused some strings to be interpreted as invalid
- extended globbing expressions when used with the help builtin.
-
-d. Fixed a bug that caused an attempt to trap a signal whose disposition
- cannot be changed to reference uninitialized memory.
-
-e. Command completion now skips assignment statements preceding a command
- name and completes the command.
-
-f. Fixed a bug that caused `compgen -f' in a non-interactive shell to dump
- core under certain circumstances.
-
-g. Fixed a bug that caused the `read -N' to misbehave when the input stream
- contains 0xff.
-
-2. Changes to Readline
-
-a. Changed message when an incremental search fails to include "failed" in
- the prompt and display the entire search string instead of just the last
- matching portion.
-
-b. Fixed a bug that caused an arrow key typed to an incremental search prompt
- to process the key sequence incorrectly.
-
-c. Additional key bindings for arrow keys on MinGW.
-
-3. New Features in Bash
-
-a. The help builtin now attempts substring matching (as it did through
- bash-4.2) if exact string matching fails.
-
-b. The fc builtin now interprets -0 as the current command line.
-
-c. Completing directory names containing shell variables now adds a trailing
- slash if the expanded result is a directory.
-
-4. New Features in Readline
-
-a. rl_change_environment: new application-settable variable that controls
- whether or not Readline modifies the environment (currently readline
- modifies only LINES and COLUMNS).
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-beta, and the
-previous version, bash-4.3-alpha.
-
-1. Changes to Bash
-
-a. Fixed a bug in the prompt directory name "trimming" code that caused
- memory corruption and garbled the results.
-
-b. Fixed a bug that caused single quotes that resulted from $'...' quoting
- in the replacement portion of a double-quoted ${word/pat/rep} expansion
- to be treated as quote characters.
-
-c. Fixed a bug that caused assignment statements preceding a command word to
- result in assignment statements following a declaration command to not be
- expanded like assignment statements.
-
-d. Fixed a bug with variable search order in the presence of local variables
- with the same name as variables in the temporary environment supplied to
- a shell function.
-
-e. Fixed a bug that caused constructs like 1<(2) to be interpreted as process
- substitutions even in an arithmetic context.
-
-f. Fixed several cases where `invisible' variables (variables with attributes
- but no values, which are technically unset) were treated incorrectly.
-
-g. Fixed a bug that caused group commands in pipelines that were not the
- last element to not run the EXIT trap.
-
-h. Fixed a bug that caused `unset -n' to not unset a nameref variable in
- certain cases.
-
-i. Fixed the nameref circular reference checking to be less strict and only
- disallow a nameref variable with the same value as its name at the global
- scope.
-
-j. Fixed a bug that caused trap handlers to be executed recursively,
- corrupting internal data structures.
-
-k. Fixed a bug that could result in bash not compiling if certain options were
- not enabled.
-
-l. Fixed a bug that caused the arithmetic expansion code to attempt variable
- assignments when operator precedence prohibited them.
-
-m. Word expansions like ${foo##bar} now understand indirect variable references.
-
-n. Fixed a bug that caused `declare -fp name' to not display a function
- definition.
-
-o. Fixed a bug that caused asynchronous child processes to modify the stdin
- file pointer when bash was using it to read a script, which modified the
- parent's value as well.
-
-2. Changes to Readline
-
-a. Fixed a bug in vi mode that caused the arrow keys to set the saved last
- vi-mode command to the wrong value.
-
-b. Fixed a bug that caused double-quoted strings to be scanned incorrectly
- when being used as the value of a readline variable assignment.
-
-c. Fixed a bug with vi mode that prevented `.' from repeating a command
- entered on a previous line (command).
-
-d. Fixed a bug that could cause completion to core dump if it was interrupted
- by a signal.
-
-e. Readline now sends the meta-key enable string to the terminal if the
- terminal has been successfully initialized.
-
-f. Readline now calls the signal hook after resizing the terminal when it
- receives a SIGWINCH.
-
-g. Fixed a bug that could cause the history list code to perform an out-of-
- bounds array reference if the history list is empty.
-
-3. New Features in Bash
-
-a. Shells started to run process substitutions now run any trap set on EXIT.
-
-b. There is now a configure-time option to enable the globasciiranges option
- by default.
-
-c. The read builtin now checks its first variable argument for validity before
- trying to read any input.
-
-------------------------------------------------------------------------------
-This document details the changes between this version, bash-4.3-alpha,
-and the previous version, bash-4.2-release.
-
-1. Changes to Bash
-
-a. Fixed several bugs concerning incomplete bracket expressions in filename
- generation (globbing) patterns.
-
-b. Fixed a bug with single quotes and WORD in ${param op WORD} when running
- in Posix mode.
-
-c. Fixed a bug that caused the pattern removal and pattern substitution word
- expansions and case statement word expansion to not match the empty string.
-
-d. Fixed a bug that caused the tzset() function to not work after changing
- the TZ enviroment variable.
-
-e. Fixed a bug that caused the RHS of an assignment statement to undergo
- word splitting when it contained an unquoted $@.
-
-f. Fixed bugs that caused the shell to not react to a SIGINT sent while
- waiting for a child process to exit.
-
-g. Bash doesn't try to run things in a signal handler context when it gets a
- signal (SIGINT/SIGHUP/etc) while reading input using readline but still
- be responsive to terminating signals.
-
-h. Fixed a bug that caused bash to go into an infinite loop if a filename
- to be matched contained an invalid multibyte character.
-
-i. Fixed a bug that caused PS4 to end up being truncated if it is longer
- than 128 bytes.
-
-j. Fixed a bug that caused brace expansion to not skip over double-quoted
- command substitution.
-
-k. System-specific updates for: DJGPP, HP/UX, Mac OS X
-
-l. Fixed a bug in displaying commands that caused redirections to be associated
- with the wrong part of the command.
-
-m. Fixed the coproc cleanup to unset the appropriate shell variables when a
- coproc terminates.
-
-n. Fixed a bug that caused `fc' to dump core due to incorrect calculation of
- the last history entry.
-
-o. Added workarounds for FreeBSD's implementation of faccessat/eaccess and
- `test -x'.
-
-p. Fixed a bug that caused the shell to not match patterns containing
- control-A.
-
-q. Fixed a bug that could result in doubled error messages when the `printf'
- builtin got a write error.
-
-r. Fixed a bug that caused the shell to not correctly expand words containing
- multiple consecutive quoted empty strings (""""""aa).
-
-s. Fixed a bug that caused the shell to not correctly parse multi-line
- process substitutions containing comments and quoted strings.
-
-t. Fixed a problem with the bash malloc's internal idea of the top of the
- memory heap that resulted in incorrect decisions to try to reduce the
- break and give memory back to the kernel.
-
-u. There are changes to the expansions peformed on compound array assignments,
- in an effort to make foo=( [ind1]=bar [ind2]=baz ) identical to
- foo[ind1]=bar foo[ind2]=baz.
-
-v. Bash now reports an error if `read -a name' is used when `name' is an
- existing associative array.
-
-w. Fixed a bug that allowed an attempted assignment to a readonly variable
- in an arithmetic expression to not return failure.
-
-x. Fixed several bugs that caused completion functions to be invoked even when
- the cursor was before the first word in the command.
-
-y. Fixed a bug that caused parsing a command substitution to overwrite the
- parsing state associated with the complete input line.
-
-z. Fixed several bugs with the built-in snprintf replacement and field widths
- and floating point.
-
-aa. Fixed a bug that caused incorrect offset calculations and input buffer
- corruption when reading files longer than 2^31 bytes.
-
-bb. Fixed several bugs where bash performed arithmetic evaluation in contexts
- where evaluation is suppressed.
-
-cc. Fixed a bug that caused bash to close FIFOs used for process substitution
- too early when a shell function was executing, but protect against using
- all file descriptors when the shell functions are invoked inside loops.
-
-dd. Added checks for printable (and non-printable) multibyte characters for
- use in error messages.
-
-ee. Fixed a bug that caused ^O (operate-and-get-next) to not work correctly
- at the end of the history list.
-
-ff. Fixed a bug that caused command-oriented history to incorrectly combine
- here documents into one line.
-
-gg. Fixed a bug that caused importing SHELLOPTS from the environment into a
- Posix-mode shell to print an error message and refuse to parse it.
-
-hh. Fixed a bug that caused the shell to delete an extra history entry when
- using `history -s'.
-
-ii. Fixed a bug that caused floating-point exceptions and overflow errors
- for the / and % arithmetic operators when using INTMAX_MIN and -1.
-
-jj. Fixed a bug that caused parsing errors when reading an arithmetic for
- loop inside a command substitution.
-
-kk. Fixed a bug that caused a readonly function to be unset when unset was
- called without the -f or -v option.
-
-ll. Fixed several bugs in the code that quotes characters special to regular
- expressions when used in a quoted string on the RHS of the =~ operator
- to the [[ command.
-
-mm. Fixed a bug that caused redirections to fail because the file descriptor
- limit was set to a value less than 10.
-
-nn. Fixed a bug that caused the `read' builtin to execute code in a signal
- handler context if read timed out.
-
-oo. Fixed a bug that caused extended globbing patterns to not match files
- beginning with `.' correctly when a `.' was explicitly supplied in the
- pattern.
-
-pp. Fixed a bug that caused key sequences longer than two characters to not
- work when used with `bind -x'.
-
-qq. Fixed a bug that resulted in redefined functions having the wrong source
- file names in BASH_SOURCE.
-
-rr. Fixed a bug that caused the read builtin to assign null strings to variables
- when using `read -N', which caused core dumps when referenced
-
-ss. Fixed a bug that caused `bash -m script' to not enable job control while
- running the script.
-
-tt. Fixed a bug that caused `printf -v var' to dump core when used with the
- %b format code.
-
-uu. Fixed a bug that caused the shell to exit with the wrong status if -e was
- active and the shell exited on a substitution error.
-
-vv. Fixed a bug that caused the shell to seg fault if an array variable with
- the same name as an existing associative array was implicitly created by
- an assignment (declare a[n]=b).
-
-ww. Fixed a bug that caused a redirection to misbehave if the number specified
- for a file descriptor overflows an intmax_t.
-
-xx. Fixed several bugs with the handling of valid and invalid unicode character
- values when used with the \u and \U escape sequences to printf and $'...'.
-
-yy. Fixed a bug that caused tildes to not be escaped in expanded filenames,
- making them subject to later expansion.
-
-zz. When using the pattern substitution word expansion, bash now runs the
- replacement string through quote removal, since it allows quotes in that
- string to act as escape characters. This is not backwards compatible, so
- it can be disabled by setting the bash compatibility mode to 4.2.
-
-aaa. Fixed the rest of the cases where the shell runs non-allowed code in a
- signal handler context.
-
-bbb. Fixed a bug that caused spurious DEL characters (\177) to appear in
- double-quoted expansion where the RHS is evaluated to the empty string.
-
-ccc. Fixed a bug that caused the use of the shell's internal random number
- generator for temporary file names to perturb the random number
- sequence.
-
-ddd. Fixed several bugs that caused `declare -g' to not set the right global
- variables or to misbehave when declaring global indexed arrays.
-
-eee. Fixed a logic bug that caused extended globbing in a multibyte locale to
- cause failures when using the pattern substititution word expansions.
-
-fff. Fixed a bug that caused the `lastpipe' option to corrupt the file
- descriptor used to read the script.
-
-ggg. Fixed a bug that causes the shell to delete DEL characters in the
- expanded value of variables used in the same quoted string as variables
- that expand to nothing.
-
-hhh. Fixed a bug that caused the shell to assign the wrong value from an
- assignment like (( x=7 )) when `x' was an existing array variable.
-
-iii. Fixed a bug that caused the shell to misbehave when generating sequences
- and the boundary values overflow an intmax_t.
-
-jjj. Fixed a bug caused expansion errors if an expansion of "$@" appeared
- next to another expansion (e.g.. "${@}${x}").
-
-kkk. Fixed a potential buffer overflow bug when performing /dev/fd expansion.
-
-lll. Fixed a bug that resulted in an extra semicolon being added to compound
- assignments when they were added to the history list.
-
-mmm. Fixed a bug that caused mapfile to read one extra line from the input.
-
-nnn. Fixed a bug that caused the mail checking code to use uninitialized
- values.
-
-ooo. Fixed a bug that prevented history timestamps from being saved if the
- history comment character is unset.
-
-ppp. Fixed a bug that caused the case-modifying expansions to not work with
- multibyte characters.
-
-qqq. Fixed a bug that caused the edit-and-execute bindable readline command
- to see the wrong data if invoked in the middle of a multi-line quoted
- string.
-
-rrr. Fixed a bug that resulted in the shell returning the wrong exit status
- for a background command on systems that recycle PIDs very quickly.
-
-sss. Fixed a bug that caused asynchronous group commands to not run any EXIT
- trap defined in the body of the command.
-
-ttt. Fixed a bug that caused `eval "... ; return"' to not clean up properly.
-
-uuu. Fixed a bug that caused the shell to dump core if `read' reads an escaped
- IFS whitespace character.
-
-vvv. Fixed a bug that caused BASH_COMMAND to be set to an incorrect value when
- executing a (...) subshell.
-
-www. Fixed a couple of pointer aliasing bugs with the token string in arithmetic
- evaluation.
-
-xxx. Fixed a bug with parsing multi-line command substitutions when reading
- the `do' keyword followed by whitespace.
-
-yyy. Fixed a bug that caused the shell to seg fault if the time given to the
- printf %(...)T format overflowed the value accepted by localtime(3).
-
-zzz. Fixed a problem with displaying help topics in two columns when the
- translated text contained multibyte characters.
-
-aaaa. Fixed a bug with the extended globbing pattern matcher where a `*' was
- followed by a negated extended glob pattern.
-
-bbbb. Fixed a race condition with short-lived coproc creation and reaping that
- caused the child process to be reaped before the various coproc shell
- variables were initialized.
-
-cccc. Fixed a bug where turning off `errexit' in command substitution subshells
- was not reflected in $SHELLOPTS.
-
-dddd. Partially fixed an inconsistency in how the shell treated shell
- functions run from an EXIT trap.
-
-eeee. Fixed a bug in how the shell invalidated FIFOs used for process
- substitution when executing a pipeline (once rather than in every child).
-
-ffff. Fixed a bug that occurred when expanding a special variable ($@, $*)
- within double quotes and the expansion resulted in an empty string.
-
-gggg. Fixed bugs with executing a SIGCHLD trap handler to make sure that it's
- executed once per exited child.
-
-hhhh. Fixed a bug that caused `declare' and `test' to find variables that
- had been given attributes but not assigned values. Such variables are
- not set.
-
-iiii. Fixed a bug that caused commands in process substitutions to not look in
- the local temporary environment when performing word expansions.
-
-jjjj. Fixed several problems with globstar expansions (**/**) returning null
- filenames and multiple instances of the same pathname.
-
-kkkk. Fixed an oversight that did not allow the exit status of `coproc' to
- be inverted using `!'.
-
-llll. Fixed a bug that caused the -e option to be re-enabled using `set -e'
- even when executing in a context where -e is ignored.
-
-mmmm. Fixed a (mostly theoretical) bug with input lines longer than SIZE_MAX.
-
-nnnn. Fixed a bug that could result in double evaluation of command
- substitutions when they appear in failed redirections.
-
-oooo. Fixed a bug that could cause seg faults during `mapfile' callbacks if
- the callback unsets the array variable mapfile is using.
-
-pppp. Fixed several problems with variable assignments using ${var:=value}
- when the variable assignment is supposed to have side effects.
-
-qqqq. Fixed a bug that caused a failure of an assignment statement preceding a
- builtin caused the next invocation of a special builtin to exit the shell.
-
-rrrr. Fixed several problems with IFS when it appears in the temporary environment
- and is used in redirections.
-
-ssss. Fixed a problem that caused IFS changes using ${IFS:=value} to modify
- how preceding expansions were split.
-
-tttt. Fixed a problem that caused subshells to not run an EXIT trap they set.
-
-uuuu. Fixed a problem that caused shells started in posix mode to attempt to
- import shell functions with invalid names from the environment. We now
- print a warning.
-
-vvvv. Worked around a kernel problem that caused SIGCHLD to interrupt open(2)
- on a FIFO used for process substitution, even if the SIGCHLD handler was
- installed with the SA_RESTART flag.
-
-wwww. Fixed a problem that resulted in inconsistent expansion of $* and ${a[*]}.
-
-xxxx. Fixed a problem that caused `read -t' to crash when interrupted by
- SIGINT.
-
-yyyy. Fixed a problem that caused pattern removal to fail randomly because the
- pattern matcher read beyond the end of a string.
-
-zzzz. Fixed a bug that caused core dumps when shell functions tried to create
- local shadow copies of special variables like GROUPS.
-
-aaaaa. Fixed a bug that caused SIGTERM to be occasionally lost by children of
- interactive shells when it arrived before the child process reset the
- handler from SIG_DFL.
-
-bbbbb. Fixed a bug that caused redirections like <&n- to leave file descriptor
- n closed if executed with a builtin command.
-
-ccccc. Fixed a bug that caused incorrect completion quoting when completing a
- word containing a globbing character with `show-all-if-ambiguous' set.
-
-ddddd. Fixed a bug that caused printf's %q format specifier not to quote a
- tilde even if it appeared in a location where it would be subject to
- tilde expansion.
-
-2. Changes to Readline
-
-a. Fixed a bug that did not allow the `dd', `cc', or `yy' vi editing mode
- commands to work on the entire line.
-
-b. Fixed a bug that caused redisplay problems with prompts longer than 128
- characters and history searches.
-
-c. Fixed a bug that caused readline to try and run code to modify its idea
- of the screen size in a signal handler context upon receiving a SIGWINCH.
-
-d. Fixed a bug that caused the `meta' key to be enabled beyond the duration
- of an individual call top readline().
-
-e. Added a workaround for a wcwidth bug in Mac OS X that caused readline's
- redisplay to mishandle zero-width combining characters.
-
-f. Fixed a bug that caused readline to `forget' part of a key sequence when
- a multiple-key sequence caused it to break out of an incremental search.
-
-g. Fixed bugs that caused readline to execute code in a signal handler
- context if interrupted while reading from the file system during completion.
-
-h. Fixed a bug that caused readline to `forget' part of a key sequence when
- reading an unbound multi-character key sequence.
-
-i. Fixed a bug that caused Readline's signal handlers to be installed beyond
- the bounds of a single call to readline().
-
-j. Fixed a bug that caused the `.' command to not redo the most recent `R'
- command in vi mode.
-
-k. Fixed a bug that caused ignoring case in completion matches to result in
- readline using the wrong match.
-
-l. Paren matching now works in vi insert mode.
-
-m. Fix menu-completion to make show-all-if-ambiguous and menu-complete-display-prefix
- work together.
-
-n. Fixed a bug that didn't allow the `cc', `dd', or `yy' commands to be redone
- in vi editing mode.
-
-o. Fixed a bug that caused the filename comparison code to not compare
- multibyte characters correctly when using case-sensitive or case-mapping
- comparisons.
-
-p. Fixed the input reading loop to call the input hook function only when there
- is no terminal input available.
-
-q. Fixed a bug that caused binding a macro to a multi-character key sequence
- where the sequence and macro value share a common prefix to not perform
- the macro replacement.
-
-r. Fixed several redisplay errors with multibyte characters and prompts
- containing invisible characters when using horizontal scrolling.
-
-s. Fixed a bug that caused redisplay errors when trying to overwrite
- existing characters using multibyte characters.
-
-3. New Features in Bash
-
-a. The `helptopic' completion action now maps to all the help topics, not just
- the shell builtins.
-
-b. The `help' builtin no longer does prefix substring matching, so `help read'
- does not match `readonly'.
-
-c. The shell can be compiled to not display a message about processes that
- terminate due to SIGTERM.
-
-d. Non-interactive shells now react to the setting of checkwinsize and set
- LINES and COLUMNS after a foreground job exits.
-
-e. 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.
-
-f. There is a new shell option, `direxpand', which makes filename completion
- expand variables in directory names in the way bash-4.1 did.
-
-g. In Posix mode, the `command' builtin does not change whether or not a
- builtin it shadows is treated as an assignment builtin.
-
-h. The `return' and `exit' builtins accept negative exit status arguments.
-
-i. 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.
-
-j. In Posix mode, it is now an error to attempt to define a shell function
- with the same name as a Posix special builtin.
-
-k. When compiled for strict Posix conformance, history expansion is disabled
- by default.
-
-l. The history expansion character (!) does not cause history expansion when
- followed by the closing quote in a double-quoted string.
-
-m. `complete' and its siblings compgen/compopt now takes a new `-o noquote'
- option to inhibit quoting of the completions.
-
-n. 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).
-
-p. The `read' builtin now skips NUL bytes in the input.
-
-q. There is a new `bind -X' option to print all key sequences bound to Unix
- commands.
-
-r. 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.
-
-s. The command completion code skips whitespace and assignment statements
- before looking for the command name word to be completed.
-
-t. The build process has a new mechanism for constructing separate help files
- that better reflects the current set of compilation options.
-
-u. The -nt and -ot options to test now work with files with nanosecond
- timestamp resolution.
-
-v. The shell saves the command history in any shell for which history is
- enabled and HISTFILE is set, not just interactive shells.
-
-w. 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.
-
-x. 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.
-
-y. 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).
-
-z. There is a new CHILD_MAX special shell variable; its value controls the
- number of exited child statues the shell remembers.
-
-aa. There is a new configuration option (--enable-direxpand-default) that
- causes the `direxpand' shell option to be enabled by default.
-
-bb. 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.
-
-cc. The `wait' builtin has a new `-n' option to wait for the next child to
- change status.
-
-dd. The `printf' %(...)T format specifier now uses the current time if no
- argument is supplied.
-
-ee. There is a new variable, BASH_COMPAT, that controls the current shell
- compatibility level.
-
-ff. The `popd' builtin now treats additional arguments as errors.
-
-gg. 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.
-
-4. New Features in Readline
-
-a. Readline is now more responsive to SIGHUP and other fatal signals when
- reading input from the terminal or performing word completion but no
- longer attempts to run any not-allowable functions from a signal handler
- context.
-
-b. There are new bindable commands to search the history for the string of
- characters between the beginning of the line and the point
- (history-substring-search-forward, history-substring-search-backward)
-
-c. Readline allows quoted strings as the values of variables when setting
- them with `set'. As a side effect, trailing spaces and tabs are ignored
- when setting a string variable's value.
-
-d. The history library creates a backup of the history file when writing it
- and restores the backup on a write error.
-
-e. New application-settable variable: rl_filename_stat_hook: a function called
- with a filename before using it in a call to stat(2). Bash uses it to
- expand shell variables so things like $HOME/Downloads have a slash
- appended.
-
-f. New bindable function `print-last-kbd-macro', prints the most-recently-
- defined keyboard macro in a reusable format.
-
-g. New user-settable variable `colored-stats', enables use of colored text
- to denote file types when displaying possible completions (colored analog
- of visible-stats).
-
-h. New user-settable variable `keyseq-timout', acts as an inter-character
- timeout when reading input or incremental search strings.
-
-i. New application-callable function: rl_clear_history. Clears the history list
- and frees all readline-associated private data.
-
-j. New user-settable variable, show-mode-in-prompt, adds a characters to the
- beginning of the prompt indicating the current editing mode.
-
-k. New application-settable variable: rl_input_available_hook; function to be
- called when readline needs to check whether there is data available on its
- input source. The default hook checks rl_instream.
-
-l. Readline calls an application-set event hook (rl_signal_event_hook) after
- it gets a signal while reading input (read returns -1/EINTR but readline
- does not handle the signal immediately) to allow the application to handle
- or otherwise note it. Not currently called for SIGHUP or SIGTERM.
-
-m. If the user-settable variable `history-size' is set to a value less than
- 0, the history list size is unlimited.
+++ /dev/null
-This is a terse description of the new features added to bash-4.3 since
-the release of bash-4.2. As always, the manual page (doc/bash.1) is
-the place to look for complete descriptions.
-
-1. New Features in Bash
-
-a. The `helptopic' completion action now maps to all the help topics, not just
- the shell builtins.
-
-b. 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.
-
-c. The shell can be compiled to not display a message about processes that
- terminate due to SIGTERM.
-
-d. Non-interactive shells now react to the setting of checkwinsize and set
- LINES and COLUMNS after a foreground job exits.
-
-e. 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.
-
-f. There is a new shell option, `direxpand', which makes filename completion
- expand variables in directory names in the way bash-4.1 did.
-
-g. In Posix mode, the `command' builtin does not change whether or not a
- builtin it shadows is treated as an assignment builtin.
-
-h. The `return' and `exit' builtins accept negative exit status arguments.
-
-i. 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.
-
-j. In Posix mode, it is now an error to attempt to define a shell function
- with the same name as a Posix special builtin.
-
-k. When compiled for strict Posix conformance, history expansion is disabled
- by default.
-
-l. The history expansion character (!) does not cause history expansion when
- followed by the closing quote in a double-quoted string.
-
-m. `complete' and its siblings compgen/compopt now takes a new `-o noquote'
- option to inhibit quoting of the completions.
-
-n. 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).
-
-p. The `read' builtin now skips NUL bytes in the input.
-
-q. There is a new `bind -X' option to print all key sequences bound to Unix
- commands.
-
-r. 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.
-
-s. The command completion code skips whitespace and assignment statements
- before looking for the command name word to be completed.
-
-t. The build process has a new mechanism for constructing separate help files
- that better reflects the current set of compilation options.
-
-u. The -nt and -ot options to test now work with files with nanosecond
- timestamp resolution.
-
-v. The shell saves the command history in any shell for which history is
- enabled and HISTFILE is set, not just interactive shells.
-
-w. 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.
-
-x. 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.
-
-y. 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).
-
-z. There is a new CHILD_MAX special shell variable; its value controls the
- number of exited child statues the shell remembers.
-
-aa. There is a new configuration option (--enable-direxpand-default) that
- causes the `direxpand' shell option to be enabled by default.
-
-bb. 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.
-
-cc. The `wait' builtin has a new `-n' option to wait for the next child to
- change status.
-
-dd. The `printf' %(...)T format specifier now uses the current time if no
- argument is supplied.
-
-ee. There is a new variable, BASH_COMPAT, that controls the current shell
- compatibility level.
-
-ff. The `popd' builtin now treats additional arguments as errors.
-
-gg. 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.
-
-hh. Shells started to run process substitutions now run any trap set on EXIT.
-
-ii. The fc builtin now interprets -0 as the current command line.
-
-jj. Completing directory names containing shell variables now adds a trailing
- slash if the expanded result is a directory.
-
-kk. `cd' has a new `-@' option to browse a file's extended attributes on
- systems that support O_XATTR.
-
-ll. The test/[/[[ `-v variable' binary operator now understands array
- references.
-
-2. New Features in Readline
-
-a. Readline is now more responsive to SIGHUP and other fatal signals when
- reading input from the terminal or performing word completion but no
- longer attempts to run any not-allowable functions from a signal handler
- context.
-
-b. There are new bindable commands to search the history for the string of
- characters between the beginning of the line and the point
- (history-substring-search-forward, history-substring-search-backward)
-
-c. Readline allows quoted strings as the values of variables when setting
- them with `set'. As a side effect, trailing spaces and tabs are ignored
- when setting a string variable's value.
-
-d. The history library creates a backup of the history file when writing it
- and restores the backup on a write error.
-
-e. New application-settable variable: rl_filename_stat_hook: a function called
- with a filename before using it in a call to stat(2). Bash uses it to
- expand shell variables so things like $HOME/Downloads have a slash
- appended.
-
-f. New bindable function `print-last-kbd-macro', prints the most-recently-
- defined keyboard macro in a reusable format.
-
-g. New user-settable variable `colored-stats', enables use of colored text
- to denote file types when displaying possible completions (colored analog
- of visible-stats).
-
-h. New user-settable variable `keyseq-timout', acts as an inter-character
- timeout when reading input or incremental search strings.
-
-i. New application-callable function: rl_clear_history. Clears the history list
- and frees all readline-associated private data.
-
-j. New user-settable variable, show-mode-in-prompt, adds a characters to the
- beginning of the prompt indicating the current editing mode.
-
-k. New application-settable variable: rl_input_available_hook; function to be
- called when readline detects there is data available on its input file
- descriptor.
-
-l. Readline calls an application-set event hook (rl_event_hook) after it gets
- a signal while reading input (read returns -1/EINTR but readline does not
- handle the signal immediately) to allow the application to handle or
- otherwise note it.
-
-m. If the user-settable variable `history-size' is set to a value less than
- 0, the history list size is unlimited.
-
-n. New application-settable variable: rl_signal_event_hook; function that is
- called when readline is reading terminal input and read(2) is interrupted
- by a signal. Currently not called for SIGHUP or SIGTERM.
-
-o. rl_change_environment: new application-settable variable that controls
- whether or not Readline modifies the environment (currently readline
- modifies only LINES and COLUMNS).