commit bash-20050908 snapshot

This commit is contained in:
Chet Ramey
2011-12-03 13:50:52 -05:00
parent 7790f917d0
commit a2e7f35864
17 changed files with 1192 additions and 2703 deletions
+90
View File
@@ -1,3 +1,93 @@
This document details the changes between this version, bash-3.1-beta1,
and the previous version, bash-3.1-alpha1.
1. Changes to Bash
a. Added some system-specific signal names.
b. Fixed a typo in the ulimit builtin to make `x' the right option to
maniuplate the limit on file locks.
c. Fixed a problem with using += to append to index 0 of an array variable
when not using subscript syntax.
d. A few changes to configure.in to remove calls to obsolete or outdated
macros.
e. Make sure changes to variables bash handles specially (e.g., LC_ALL) are
made when the variable is set in the temporary environment to a command.
f. Make sure changes to variables bash handles specially (e.g., LC_ALL) are
made when the variable is modified using `printf -v'.
g. The export environment is now remade on cygwin when HOME is changed, so
DLLs bash is linked against pick up the new value. This fixes problems
with tilde expansion when linking against and already-installed readline.
h. Small fix to the logic for performing tilde expansion in posix mode, so
expansion on the right-hand side of an assignment statement takes place.
i. Fixed a bug that prevented redirections associated with a shell function
from being executed when in a subshell.
j. Fixed `source' and `.' builtins to not require an executable file when
searching $PATH for a file to source.
k. Fixed a bug that caused incorrect word splitting in a function when IFS
was declared local, then unset.
l. Fixed a problem with the `kill' builtin that prevented sending signals
to a process group under certain circumstances when providing a pid < 0.
m. When in POSIX mode, `pwd' now checks that the value it prints is the same
directory as `.', even when displaying $PWD.
n. Fixed a problem with the `read' builtin when reading a script from standard
input and reading data from the same file.
o. Fixed a problem with the `type' and `command' builtins that caused absolute
pathnames to be displayed incorrectly.
p. Some changes to the `bg' builtin for POSIX conformance.
q. The `fc' builtin now removes the `fc' command that caused it to invoke an
editor on specified history entries from the history entirely, rather than
simply ignoring it.
r. When in POSIX mode, the `v' command in vi editing mode simply invokes vi
on the current command, rather than checking $FCEDIT and $EDITOR.
s. Fixed a small memory leak in the pathname canonicalization code.
t. Fixed a bug that caused the expanded value of a $'...' string to be
incorrectly re-quoted if it occurred within a double-quoted ${...}
parameter expansion.
2. Changes to Readline
a. The `change-case' command now correctly changes the case of multibyte
characters.
b. Changes to the shared library construction scripts to deal with Windows
DLL naming conventions for Cygwin.
c. Fixed the redisplay code to avoid core dumps resulting from a poorly-timed
SIGWINCH.
d. Fixed the non-incremental search code in vi mode to dispose of any current
undo list when copying a line from the history into the current editing
buffer.
e. The variable assignment code now ignores whitespace at the end of lines.
3. New Features in Bash
a. A new configuration option, `--enable-strict-posix-default', which will
build bash to be POSIX conforming by default.
4. New Features in Readline
------------------------------------------------------------------------------
This document details the changes between this version, bash-3.1-alpha1,
and the previous version, bash-3.0-release.
+6
View File
@@ -12081,3 +12081,9 @@ builtins/echo.def
doc/bashref.texi
- describe the --enable-strict-posix-default option to configure
9/10
----
builtins/mkbuiltins.c
- change to not generate N_(""), because the translated empty string is
special to GNU gettext
+6
View File
@@ -12075,3 +12075,9 @@ configure.in
- add new option argument, --enable-strict-posix-default, configures
bash to be posix-conformant (including defaulting echo to posix
conformance) by default
builtins/echo.def
- if STRICT_POSIX is defined, default echo to xpg-style
doc/bashref.texi
- describe the --enable-strict-posix-default option to configure
+3
View File
@@ -59,6 +59,9 @@ s. Bash now sets the extern variable `environ' to the export environment it
creates, so C library functions that call getenv() (and can't use the
shell-provided replacement) get current values of environment variables.
t. A new configuration option, `--enable-strict-posix-default', which will
build bash to be POSIX conforming by default.
2. New Features in Readline
a. The key sequence sent by the keypad `delete' key is now automatically
+10 -10
View File
@@ -1,7 +1,7 @@
@%:@! /bin/sh
@%:@ From configure.in for Bash 3.1, version 3.180.
@%:@ Guess values for system-dependent variables and create Makefiles.
@%:@ Generated by GNU Autoconf 2.59 for bash 3.1-alpha1.
@%:@ Generated by GNU Autoconf 2.59 for bash 3.1-beta1.
@%:@
@%:@ Report bugs to <bug-bash@gnu.org>.
@%:@
@@ -270,8 +270,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='bash'
PACKAGE_TARNAME='bash'
PACKAGE_VERSION='3.1-alpha1'
PACKAGE_STRING='bash 3.1-alpha1'
PACKAGE_VERSION='3.1-beta1'
PACKAGE_STRING='bash 3.1-beta1'
PACKAGE_BUGREPORT='bug-bash@gnu.org'
ac_unique_file="shell.h"
@@ -785,7 +785,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 3.1-alpha1 to adapt to many kinds of systems.
\`configure' configures bash 3.1-beta1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -846,7 +846,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bash 3.1-alpha1:";;
short | recursive ) echo "Configuration of bash 3.1-beta1:";;
esac
cat <<\_ACEOF
@@ -1039,7 +1039,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
bash configure 3.1-alpha1
bash configure 3.1-beta1
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1053,7 +1053,7 @@ cat >&5 <<_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 3.1-alpha1, which was
It was created by bash $as_me 3.1-beta1, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1422,7 +1422,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
BASHVERS=3.1
RELSTATUS=alpha1
RELSTATUS=beta1
case "$RELSTATUS" in
alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -27212,7 +27212,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
This file was extended by bash $as_me 3.1-alpha1, which was
This file was extended by bash $as_me 3.1-beta1, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -27275,7 +27275,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
bash config.status 3.1-alpha1
bash config.status 3.1-beta1
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+1 -1
View File
@@ -1,4 +1,4 @@
m4trace:configure.in:30: -1- AC_INIT([bash], [3.1-alpha1], [bug-bash@gnu.org])
m4trace:configure.in:30: -1- AC_INIT([bash], [3.1-beta1], [bug-bash@gnu.org])
m4trace:configure.in:30: -1- m4_pattern_forbid([^_?A[CHUM]_])
m4trace:configure.in:30: -1- m4_pattern_forbid([_AC_])
m4trace:configure.in:30: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+2 -2
View File
@@ -130,11 +130,11 @@ caller_builtin (list)
#ifdef LOADABLE_BUILTIN
static char *caller_doc[] = {
N_("Returns the context of the current subroutine call."),
N_(""),
N_(" "),
N_("Without EXPR, returns returns \"$line $filename\". With EXPR,"),
N_("returns \"$line $subroutine $filename\"; this extra information"),
N_("can be used used to provide a stack trace."),
N_(""),
N_(" "),
N_("The value of EXPR indicates how many call frames to go back before the"),
N_("current one; the top frame is frame 0."),
(char *)NULL
+5
View File
@@ -55,6 +55,7 @@ $END
#include "../shell.h"
#include "common.h"
#include "builtext.h"
#include "bashgetopt.h"
#ifdef LOADABLE_BUILTIN
# include "builtins.h"
@@ -88,6 +89,10 @@ caller_builtin (list)
if (bash_source_a == 0 || array_empty (bash_source_a))
return (EXECUTION_FAILURE);
if (no_options (list))
return (EX_USAGE);
list = loptend; /* skip over possible `--' */
/* If there is no argument list, then give short form: line filename. */
if (list == 0)
{
+2 -2
View File
@@ -1372,7 +1372,7 @@ write_documentation (stream, documentation, indentation, flags)
if (single_longdoc_strings)
{
if (filename_p == 0)
fprintf (stream, "N_(\"");
fprintf (stream, "N_(\" "); /* the empty string translates specially. */
else
fprintf (stream, "\"");
}
@@ -1398,7 +1398,7 @@ write_documentation (stream, documentation, indentation, flags)
if (string_array && single_longdoc_strings == 0)
{
if (filename_p == 0)
fprintf (stream, " N_(\"");
fprintf (stream, " N_(\" "); /* the empty string translates specially. */
else
fprintf (stream, " \"");
}
-6
View File
@@ -381,14 +381,8 @@ array_add (element, array)
array->array = (char **)xrealloc
(array->array, (array->size += array->growth_rate) * array->width);
#if defined (HAVE_BCOPY)
bcopy (&element, (char *) &(array->array[array->sindex]), array->width);
array->sindex++;
bzero ((char *) &(array->array[array->sindex]), array->width);
#else
array->array[array->sindex++] = element;
array->array[array->sindex] = (char *)NULL;
#endif /* !HAVE_BCOPY */
}
/* Free an allocated array and data pointer. */
+12 -12
View File
@@ -657,7 +657,7 @@ static char * const dirs_doc[] = {
N_("Display the list of currently remembered directories. Directories"),
N_("find their way onto the list with the `pushd' command; you can get"),
N_("back up through the list with the `popd' command."),
N_(""),
N_(" "),
N_("The -l flag specifies that `dirs' should not print shorthand versions"),
N_("of directories which are relative to your home directory. This means"),
N_("that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag"),
@@ -665,10 +665,10 @@ static char * const dirs_doc[] = {
N_("prepending the directory name with its position in the stack. The -p"),
N_("flag does the same thing, but the stack position is not prepended."),
N_("The -c flag clears the directory stack by deleting all of the elements."),
N_(""),
N_(" "),
N_("+N displays the Nth entry counting from the left of the list shown by"),
N_(" dirs when invoked without options, starting with zero."),
N_(""),
N_(" "),
N_("-N displays the Nth entry counting from the right of the list shown by"),
N_(" dirs when invoked without options, starting with zero."),
(char *)NULL
@@ -678,21 +678,21 @@ static char * const pushd_doc[] = {
N_("Adds a directory to the top of the directory stack, or rotates"),
N_("the stack, making the new top of the stack the current working"),
N_("directory. With no arguments, exchanges the top two directories."),
N_(""),
N_(" "),
N_("+N Rotates the stack so that the Nth directory (counting"),
N_(" from the left of the list shown by `dirs', starting with"),
N_(" zero) is at the top."),
N_(""),
N_(" "),
N_("-N Rotates the stack so that the Nth directory (counting"),
N_(" from the right of the list shown by `dirs', starting with"),
N_(" zero) is at the top."),
N_(""),
N_(" "),
N_("-n suppress the normal change of directory when adding directories"),
N_(" to the stack, so only the stack is manipulated."),
N_(""),
N_(" "),
N_("dir adds DIR to the directory stack at the top, making it the"),
N_(" new current working directory."),
N_(""),
N_(" "),
N_("You can see the directory stack with the `dirs' command."),
(char *)NULL
};
@@ -701,18 +701,18 @@ static char * const popd_doc[] = {
N_("Removes entries from the directory stack. With no arguments,"),
N_("removes the top directory from the stack, and cd's to the new"),
N_("top directory."),
N_(""),
N_(" "),
N_("+N removes the Nth entry counting from the left of the list"),
N_(" shown by `dirs', starting with zero. For example: `popd +0'"),
N_(" removes the first directory, `popd +1' the second."),
N_(""),
N_(" "),
N_("-N removes the Nth entry counting from the right of the list"),
N_(" shown by `dirs', starting with zero. For example: `popd -0'"),
N_(" removes the last directory, `popd -1' the next to last."),
N_(""),
N_(" "),
N_("-n suppress the normal change of directory when removing directories"),
N_(" from the stack, so only the stack is manipulated."),
N_(""),
N_(" "),
N_("You can see the directory stack with the `dirs' command."),
(char *)NULL
};
+4 -4
View File
@@ -1,7 +1,7 @@
This file is pushd.def, from which is created pushd.c. It implements the
builtins "pushd", "popd", and "dirs" in Bash.
Copyright (C) 1987-2003 Free Software Foundation, Inc.
Copyright (C) 1987-2004 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -653,7 +653,7 @@ get_directory_stack ()
}
#ifdef LOADABLE_BUILTIN
static char *dirs_doc[] = {
static char * const dirs_doc[] = {
N_("Display the list of currently remembered directories. Directories"),
N_("find their way onto the list with the `pushd' command; you can get"),
N_("back up through the list with the `popd' command."),
@@ -674,7 +674,7 @@ static char *dirs_doc[] = {
(char *)NULL
};
static char *pushd_doc[] = {
static char * const pushd_doc[] = {
N_("Adds a directory to the top of the directory stack, or rotates"),
N_("the stack, making the new top of the stack the current working"),
N_("directory. With no arguments, exchanges the top two directories."),
@@ -697,7 +697,7 @@ static char *pushd_doc[] = {
(char *)NULL
};
static char *popd_doc[] = {
static char * const popd_doc[] = {
N_("Removes entries from the directory stack. With no arguments,"),
N_("removes the top directory from the stack, and cd's to the new"),
N_("top directory."),
Vendored
+10 -10
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# From configure.in for Bash 3.1, version 3.180.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for bash 3.1-alpha1.
# Generated by GNU Autoconf 2.59 for bash 3.1-beta1.
#
# Report bugs to <bug-bash@gnu.org>.
#
@@ -270,8 +270,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='bash'
PACKAGE_TARNAME='bash'
PACKAGE_VERSION='3.1-alpha1'
PACKAGE_STRING='bash 3.1-alpha1'
PACKAGE_VERSION='3.1-beta1'
PACKAGE_STRING='bash 3.1-beta1'
PACKAGE_BUGREPORT='bug-bash@gnu.org'
ac_unique_file="shell.h"
@@ -785,7 +785,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 3.1-alpha1 to adapt to many kinds of systems.
\`configure' configures bash 3.1-beta1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -846,7 +846,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bash 3.1-alpha1:";;
short | recursive ) echo "Configuration of bash 3.1-beta1:";;
esac
cat <<\_ACEOF
@@ -1039,7 +1039,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
bash configure 3.1-alpha1
bash configure 3.1-beta1
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1053,7 +1053,7 @@ cat >&5 <<_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 3.1-alpha1, which was
It was created by bash $as_me 3.1-beta1, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1422,7 +1422,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
BASHVERS=3.1
RELSTATUS=alpha1
RELSTATUS=beta1
case "$RELSTATUS" in
alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -27212,7 +27212,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
This file was extended by bash $as_me 3.1-alpha1, which was
This file was extended by bash $as_me 3.1-beta1, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -27275,7 +27275,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
bash config.status 3.1-alpha1
bash config.status 3.1-beta1
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+1 -1
View File
@@ -25,7 +25,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_REVISION([for Bash 3.1, version 3.180])dnl
define(bashvers, 3.1)
define(relstatus, alpha1)
define(relstatus, beta1)
AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org)
+2 -1
View File
@@ -466,10 +466,11 @@ arrow keys. The default is @samp{off}.
If set to @samp{on}, tilde expansion is performed when Readline
attempts word completion. The default is @samp{off}.
@item history-preserve-point
@vindex history-preserve-point
If set to @samp{on}, the history code attempts to place point at the
same location on each history line retrieved with @code{previous-history}
or @code{next-history}.
or @code{next-history}. The default is @samp{off}.
@item horizontal-scroll-mode
@vindex horizontal-scroll-mode
+7 -2
View File
@@ -383,7 +383,11 @@ set editing-mode vi
@end example
Variable names and values, where appropriate, are recognized without regard
to case.
to case. Unrecognized variable names are ignored.
Boolean variables (those that can be set to on or off) are set to on if
the value is null or empty, @var{on} (case-insensitive), or 1. Any other
value results in the variable being set to off.
@ifset BashFeatures
The @w{@code{bind -V}} command lists the current Readline variable names
@@ -462,10 +466,11 @@ arrow keys. The default is @samp{off}.
If set to @samp{on}, tilde expansion is performed when Readline
attempts word completion. The default is @samp{off}.
@item history-preserve-point
@vindex history-preserve-point
If set to @samp{on}, the history code attempts to place point at the
same location on each history line retrieved with @code{previous-history}
or @code{next-history}.
or @code{next-history}. The default is @samp{off}
@item horizontal-scroll-mode
@vindex horizontal-scroll-mode
+1031 -2652
View File
File diff suppressed because it is too large Load Diff