commit bash-20081218 snapshot

This commit is contained in:
Chet Ramey
2011-12-07 09:34:07 -05:00
parent c92a890b21
commit 626d069458
15 changed files with 852 additions and 1457 deletions
+33 -1
View File
@@ -1,8 +1,40 @@
This document details the changes between this version, bash-4.0-beta,
This document details the changes between this version, bash-4.0-beta2,
and the previous version, bash-4.0-alpha.
1. Changes to Bash
a. Fixed a bug that caused failed word expansions to set $? but not
PIPESTATUS.
b. Changed filename completion to quote the tilde in a filename with a
leading tilde that exists in the current directory.
c. Fixed a bug that caused a file descriptor leak when performing
redirections attached to a compound command.
d. Fixed a bug that caused expansions of $@ and $* to not exit the shell if
the -u option was enabled and there were no posititional parameters.
e. Fixed a bug that resulted in bash not terminating immediately if a
terminating signal was received while performing output.
f. Fixed a bug that caused the shell to crash after creating 256 process
substitutions during word completion.
2. Changes to Readline
a. Fixed a bug that caused redisplay errors when using prompts with invisible
characters and numeric arguments to a command in a multibyte locale.
b. Fixed a bug that caused redisplay errors when using prompts with invisible
characters spanning more than two physical screen lines.
------------------------------------------------------------------------------
This document details the changes between this version, bash-4.0-beta,
and the previous version, bash-4.0-beta.
1. Changes to Bash
a. Fixed a typo that caused a variable to be used before initialization
while parsing Posix-style command substitutions.
+6
View File
@@ -43,6 +43,12 @@ l. Fixed a bug that caused stray control characters when evaluating compound
m. Fixed a bug that caused redirections involving file descriptor 10 as the
target to behave incorrectly.
n. Fixed a bug that could cause memory to be freed multiple times when
assigning to COMP_WORDBREAKS.
o. Fixed a bug that could cause NULL pointer dereferences when COMP_WORDBREAKS
was unset.
2. Changes to Readline
3. New Features in Bash
+6 -1
View File
@@ -282,7 +282,8 @@ bash-2.0 were significant.)
35. Bash-3.2 (patched) and Bash-4.0 fix a bug that leaves the shell in an
inconsistent internal state following an assignment error. One of the
changes means that compound commands or { ... } grouping commands are
aborted. This is what Posix specifies.
aborted under some circumstances in which they previously were not.
This is what Posix specifies.
36. Bash-4.0 now allows process substitution constructs to pass unchanged
through brace expansion, so any expansion of the contents will have to be
@@ -307,3 +308,7 @@ bash-2.0 were significant.)
specified variables, which also causes variables to be set to the empty
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.
+33 -1
View File
@@ -1,5 +1,5 @@
This document details the incompatibilities between this version of bash,
bash-3.2, and the previous widely-available versions, bash-1.14 (which is
bash-4.0, and the previous widely-available versions, bash-1.14 (which is
still the `standard' version for a few Linux distributions) and bash-2.x.
These were discovered by users of bash-2.x and 3.x, so this list is not
comprehensive. Some of these incompatibilities occur between the current
@@ -275,3 +275,35 @@ bash-2.0 were significant.)
operators for the `[[' compound command, and matches any quoted portion
of the right-hand-side argument to the =~ operator as a string rather
than a regular expression.
34. Bash-4.0 allows the behavior in the previous item to be modified using
the notion of a shell `compatibility level'.
35. Bash-3.2 (patched) and Bash-4.0 fix a bug that leaves the shell in an
inconsistent internal state following an assignment error. One of the
changes means that compound commands or { ... } grouping commands are
aborted. This is what Posix specifies.
36. Bash-4.0 now allows process substitution constructs to pass unchanged
through brace expansion, so any expansion of the contents will have to be
separately specified, and each process subsitution will have to be
separately entered.
37. Bash-4.0 now allows SIGCHLD to interrupt the wait builtin, as Posix
specifies, so the SIGCHLD trap is no longer always invoked once per
exiting child if you are using `wait' to wait for all children.
38. Since bash-4.0 now follows Posix rules for finding the closing delimiter
of a $() command substitution, it will not behave as previous versions
did, but will catch more syntax and parsing errors before spawning a
subshell to evaluate the command substitution.
39. The programmable completion code uses the same set of delimiting characters
as readline when breaking the command line into words, rather than the
set of shell metacharacters, so programmable completion and readline
should be more consistent.
40. When the read builtin times out, it attempts to assign any input read to
specified variables, which also causes variables to be set to the empty
string if there is not enough input. Previous versions discarded the
characters read.
+9
View File
@@ -7239,3 +7239,12 @@ lib/readline/display.c
builtins/{echo,printf}.def
- increment terminate_immediately at entry; decrement before returning.
Fix for bug reported by Ralf.Wildenhues@gmx.de
12/16
-----
subst.c
- fix off-by-one error in /dev/fd version of add_fifo_list; make
sure we add to totfds when it is == fd, not just when fd > totfds.
Fixes bug reported by marciso@gmail.com
[bash-4.0-beta2 frozen]
+11 -4
View File
@@ -7223,10 +7223,6 @@ sig.c
- reset the execution context before running the exit trap in
termsig_handler
execute_cmd.c
- increment terminate_immediately at entry to execute_builtin; decrement
it before returning [TENTATIVE]
general.c
- set and unset terminate_immediately like interrupt_immediately in
bash_tilde_expand
@@ -7239,3 +7235,14 @@ lib/readline/display.c
- slight change to fix from 11/27 to deal with prompts longer than a
screen line where the invisible characters all appear after the
line wrap. Fixes bug reported by Andreas Schwab <schwab@suse.de>
builtins/{echo,printf}.def
- increment terminate_immediately at entry; decrement before returning.
Fix for bug reported by Ralf.Wildenhues@gmx.de
12/16
-----
subst.c
- fix off-by-one error in /dev/fd version of add_fifo_list; make
sure we add to totfds when it is == fd, not just when fd > totfds.
Fixes bug reported by marciso@gmail.com
+11 -11
View File
@@ -1,7 +1,7 @@
@%:@! /bin/sh
@%:@ From configure.in for Bash 4.0, version 4.007.
@%:@ From configure.in for Bash 4.0, version 4.008.
@%:@ Guess values for system-dependent variables and create Makefiles.
@%:@ Generated by GNU Autoconf 2.62 for bash 4.0-beta.
@%:@ Generated by GNU Autoconf 2.62 for bash 4.0-beta2.
@%:@
@%:@ Report bugs to <bug-bash@gnu.org>.
@%:@
@@ -597,8 +597,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='bash'
PACKAGE_TARNAME='bash'
PACKAGE_VERSION='4.0-beta'
PACKAGE_STRING='bash 4.0-beta'
PACKAGE_VERSION='4.0-beta2'
PACKAGE_STRING='bash 4.0-beta2'
PACKAGE_BUGREPORT='bug-bash@gnu.org'
ac_unique_file="shell.h"
@@ -1410,7 +1410,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures bash 4.0-beta to adapt to many kinds of systems.
\`configure' configures bash 4.0-beta2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1475,7 +1475,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bash 4.0-beta:";;
short | recursive ) echo "Configuration of bash 4.0-beta2:";;
esac
cat <<\_ACEOF
@@ -1648,7 +1648,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
bash configure 4.0-beta
bash configure 4.0-beta2
generated by GNU Autoconf 2.62
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1662,7 +1662,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by bash $as_me 4.0-beta, which was
It was created by bash $as_me 4.0-beta2, which was
generated by GNU Autoconf 2.62. Invocation command line was
$ $0 $@
@@ -2072,7 +2072,7 @@ ac_config_headers="$ac_config_headers config.h"
BASHVERS=4.0
RELSTATUS=beta
RELSTATUS=beta2
case "$RELSTATUS" in
alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -30127,7 +30127,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by bash $as_me 4.0-beta, which was
This file was extended by bash $as_me 4.0-beta2, which was
generated by GNU Autoconf 2.62. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -30180,7 +30180,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
bash config.status 4.0-beta
bash config.status 4.0-beta2
configured by $0, generated by GNU Autoconf 2.62,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+11 -11
View File
@@ -15,25 +15,25 @@
'configure.in'
],
{
'_LT_AC_TAGCONFIG' => 1,
'AM_PROG_F77_C_O' => 1,
'AC_INIT' => 1,
'_LT_AC_TAGCONFIG' => 1,
'm4_pattern_forbid' => 1,
'_AM_COND_IF' => 1,
'AC_INIT' => 1,
'AC_CANONICAL_TARGET' => 1,
'AC_SUBST' => 1,
'_AM_COND_IF' => 1,
'AC_CONFIG_LIBOBJ_DIR' => 1,
'AC_FC_SRCEXT' => 1,
'AC_SUBST' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_FC_SRCEXT' => 1,
'AC_PROG_LIBTOOL' => 1,
'AM_INIT_AUTOMAKE' => 1,
'AC_CONFIG_SUBDIRS' => 1,
'AM_AUTOMAKE_VERSION' => 1,
'LT_CONFIG_LTDL_DIR' => 1,
'AC_REQUIRE_AUX_FILE' => 1,
'AC_CONFIG_LINKS' => 1,
'm4_sinclude' => 1,
'AC_REQUIRE_AUX_FILE' => 1,
'LT_SUPPORTED_TAG' => 1,
'm4_sinclude' => 1,
'AM_MAINTAINER_MODE' => 1,
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
'_m4_warn' => 1,
@@ -49,13 +49,13 @@
'AC_CANONICAL_BUILD' => 1,
'AC_FC_FREEFORM' => 1,
'AH_OUTPUT' => 1,
'_AM_SUBST_NOTMAKE' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'sinclude' => 1,
'm4_pattern_allow' => 1,
'_AM_SUBST_NOTMAKE' => 1,
'AM_PROG_CC_C_O' => 1,
'AC_CANONICAL_SYSTEM' => 1,
'm4_pattern_allow' => 1,
'sinclude' => 1,
'AM_CONDITIONAL' => 1,
'AC_CANONICAL_SYSTEM' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'm4_include' => 1,
+1 -1
View File
@@ -1,4 +1,4 @@
m4trace:configure.in:29: -1- AC_INIT([bash], [4.0-beta], [bug-bash@gnu.org])
m4trace:configure.in:29: -1- AC_INIT([bash], [4.0-beta2], [bug-bash@gnu.org])
m4trace:configure.in:29: -1- m4_pattern_forbid([^_?A[CHUM]_])
m4trace:configure.in:29: -1- m4_pattern_forbid([_AC_])
m4trace:configure.in:29: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
Vendored
+11 -11
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# From configure.in for Bash 4.0, version 4.007.
# From configure.in for Bash 4.0, version 4.008.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.62 for bash 4.0-beta.
# Generated by GNU Autoconf 2.62 for bash 4.0-beta2.
#
# Report bugs to <bug-bash@gnu.org>.
#
@@ -597,8 +597,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='bash'
PACKAGE_TARNAME='bash'
PACKAGE_VERSION='4.0-beta'
PACKAGE_STRING='bash 4.0-beta'
PACKAGE_VERSION='4.0-beta2'
PACKAGE_STRING='bash 4.0-beta2'
PACKAGE_BUGREPORT='bug-bash@gnu.org'
ac_unique_file="shell.h"
@@ -1410,7 +1410,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures bash 4.0-beta to adapt to many kinds of systems.
\`configure' configures bash 4.0-beta2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1475,7 +1475,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bash 4.0-beta:";;
short | recursive ) echo "Configuration of bash 4.0-beta2:";;
esac
cat <<\_ACEOF
@@ -1648,7 +1648,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
bash configure 4.0-beta
bash configure 4.0-beta2
generated by GNU Autoconf 2.62
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1662,7 +1662,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by bash $as_me 4.0-beta, which was
It was created by bash $as_me 4.0-beta2, which was
generated by GNU Autoconf 2.62. Invocation command line was
$ $0 $@
@@ -2072,7 +2072,7 @@ ac_config_headers="$ac_config_headers config.h"
BASHVERS=4.0
RELSTATUS=beta
RELSTATUS=beta2
case "$RELSTATUS" in
alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -30127,7 +30127,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by bash $as_me 4.0-beta, which was
This file was extended by bash $as_me 4.0-beta2, which was
generated by GNU Autoconf 2.62. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -30180,7 +30180,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
bash config.status 4.0-beta
bash config.status 4.0-beta2
configured by $0, generated by GNU Autoconf 2.62,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+2 -2
View File
@@ -21,10 +21,10 @@ dnl Process this file with autoconf to produce a configure script.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_REVISION([for Bash 4.0, version 4.007])dnl
AC_REVISION([for Bash 4.0, version 4.008])dnl
define(bashvers, 4.0)
define(relstatus, beta)
define(relstatus, beta2)
AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
+2 -2
View File
@@ -21,10 +21,10 @@ dnl Process this file with autoconf to produce a configure script.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_REVISION([for Bash 4.0, version 4.006])dnl
AC_REVISION([for Bash 4.0, version 4.007])dnl
define(bashvers, 4.0)
define(relstatus, alpha)
define(relstatus, beta)
AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
+2 -2
View File
@@ -3334,7 +3334,7 @@ This is semantically equivalent to
.PP
This type of redirection instructs the shell to read input from the
current source until a line containing only
.I word
.I delimiter
(with no trailing blanks)
is seen. All of
the lines read up to that point are then used as the standard
@@ -7997,7 +7997,7 @@ Read-only variables cannot be reset.
In \fIposix mode\fP, only shell variables are listed.
The output is sorted according to the current locale.
When options are specified, they set or unset shell attributes.
Any arguments remaining after the options are processed are treated
Any arguments remaining after option processing are treated
as values for the positional parameters and are assigned, in order, to
.BR $1 ,
.BR $2 ,
+713 -1409
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -4346,7 +4346,7 @@ add_fifo_list (fd)
totfds = getdtablesize ();
if (totfds < 0 || totfds > 256)
totfds = 256;
if (fd > totfds)
if (fd >= totfds)
totfds = fd + 2;
dev_fd_list = (char *)xrealloc (dev_fd_list, totfds);