576 lines
22 KiB
Text
576 lines
22 KiB
Text
|
|
This document details the changes between this version, bash-2.0-release,
|
||
|
|
and the previous version, bash-2.0-beta3.
|
||
|
|
|
||
|
|
1. Changes to Bash
|
||
|
|
|
||
|
|
a. Fix to the `getopts' builtin so that it does the right thing when a
|
||
|
|
required option argument is not present.
|
||
|
|
|
||
|
|
b. The completion code now updates the common prefix of matched names
|
||
|
|
after FIGNORE processing is done, since any names that were removed
|
||
|
|
may have changed the common prefix.
|
||
|
|
|
||
|
|
c. Fixed a bug that made messages in MAILPATH entries not work correctly.
|
||
|
|
|
||
|
|
d. Fixed a serious documentation error in the description of the new
|
||
|
|
${parameter:offset[:length]} expansion.
|
||
|
|
|
||
|
|
e. Fixes to make parameter substring expansion ({$param:offset[:length]})
|
||
|
|
work when within double quotes.
|
||
|
|
|
||
|
|
f. Fixes to make ^A (CTLESC) survive an unquoted expansion of positional
|
||
|
|
parameters.
|
||
|
|
|
||
|
|
g. Corrected a misspelling of `unlimited' in the output of `ulimit'.
|
||
|
|
|
||
|
|
h. Fixed a bug that caused executable scripts without a leading `#!' to
|
||
|
|
occasionally pick up the wrong set of positional parameters.
|
||
|
|
|
||
|
|
i. Linux systems now have a working `ulimit -v', using RLIMIT_AS.
|
||
|
|
|
||
|
|
j. Updated config.guess so that many more machine types are recognized.
|
||
|
|
|
||
|
|
k. Fixed a bug with backslash-quoted slashes in the ${param/pat[/sub]}
|
||
|
|
expansion.
|
||
|
|
|
||
|
|
l. If the shell is named `-su', and `-c command' is supplied, read and
|
||
|
|
execute the login shell startup files even though the shell is not
|
||
|
|
interactive. This is to support the `-' option to `su'.
|
||
|
|
|
||
|
|
m. Fixed a bug that caused core dumps when the DEBUG trap was ignored
|
||
|
|
with `trap "" DEBUG' and a shell function was subsequently executed.
|
||
|
|
|
||
|
|
n. Fixed a bug that caused core dumps in the read builtin when IFS was
|
||
|
|
set to the null string and the input had leading whitespace.
|
||
|
|
|
||
|
|
2. Changes to Readline
|
||
|
|
|
||
|
|
a. Fixed a bug that caused a numeric argument of 1024 to be ignored when
|
||
|
|
inserting text.
|
||
|
|
|
||
|
|
b. Fixed the display code so that the numeric argument is displayed as it's
|
||
|
|
being entered.
|
||
|
|
|
||
|
|
c. Fixed the numeric argument reading code so that `M-- command' is
|
||
|
|
equivalent to `M--1 command', as the prompt implies.
|
||
|
|
|
||
|
|
3. New Features in Bash
|
||
|
|
|
||
|
|
a. `ulimit' now sets both hard and soft limits and reports the soft limit
|
||
|
|
by default (when neither -H nor -S is specified). This is compatible
|
||
|
|
with versions of sh and ksh that implement `ulimit'.
|
||
|
|
|
||
|
|
b. Integer constants have been extended to base 64.
|
||
|
|
|
||
|
|
4. New Features in Readline
|
||
|
|
|
||
|
|
a. The `home' and `end' keys are now bound to beginning-of-line and
|
||
|
|
end-of-line, respectively, if the corresponding termcap capabilities
|
||
|
|
are present.
|
||
|
|
|
||
|
|
------------------------------------------------------------------------------
|
||
|
|
This document details the changes between this version, bash-2.0-beta3,
|
||
|
|
and the previous version, bash-2.0-beta2.
|
||
|
|
|
||
|
|
1. Changes to Bash
|
||
|
|
|
||
|
|
a. System-specific changes for: AIX 4.2, SCO 3.2v[45], HP-UX.
|
||
|
|
|
||
|
|
b. When in POSIX mode, variable assignments preceding a special builtin
|
||
|
|
persist in the shell environment after the builtin completes.
|
||
|
|
|
||
|
|
c. Changed all calls to getwd() to getcwd(). Improved check for systems
|
||
|
|
where the libc getcwd() calls popen(), since that breaks on some
|
||
|
|
systems when job control is being used.
|
||
|
|
|
||
|
|
d. Fixed a bug that caused seg faults when executing scripts with the
|
||
|
|
execute bit set but without a leading `#!'.
|
||
|
|
|
||
|
|
e. The environment passed to executed commands is never sorted.
|
||
|
|
|
||
|
|
f. A bug was fixed in the code that expands ${name[@]} to the number of
|
||
|
|
elements in an array variable.
|
||
|
|
|
||
|
|
g. A bug was fixed in the array compound assignment code ( A=( ... ) ).
|
||
|
|
|
||
|
|
h. Window size changes now correctly propagate down to readline if
|
||
|
|
the shopt `checkwinsize' option is enabled.
|
||
|
|
|
||
|
|
i. A fix was made in the code that expands to the length of a variable
|
||
|
|
value (${#var}).
|
||
|
|
|
||
|
|
j. A fix was made to the command builtin so that it did not turn on the
|
||
|
|
`no fork' flag inappropriately.
|
||
|
|
|
||
|
|
k. A fix was made to make `set -n' work more reliably.
|
||
|
|
|
||
|
|
l. A fix was made to the job control initialization code so that the
|
||
|
|
terminal process group is set to the shell's process group if the
|
||
|
|
shell changes its own process group.
|
||
|
|
|
||
|
|
2. Changes to Readline
|
||
|
|
|
||
|
|
a. System-specific changes for: SCO 3.2v[45].
|
||
|
|
|
||
|
|
b. The behavior of the vi-mode `.' when redoing an `i' command was changed
|
||
|
|
to insert the text previously inserted by the `i' command rather than
|
||
|
|
simply entering insert mode.
|
||
|
|
|
||
|
|
3. New features in Bash
|
||
|
|
|
||
|
|
a. There is a new version of the autoload function package, in
|
||
|
|
examples/functions/autoload.v2, that uses arrays and provides more
|
||
|
|
functionality.
|
||
|
|
|
||
|
|
b. Support for LC_COLLATE and locale-specific sorting of the results of
|
||
|
|
pathname expansion if strcoll() is available.
|
||
|
|
|
||
|
|
4. New Features in Readline
|
||
|
|
|
||
|
|
a. Support for locale-specific sorting of completion possibilities if
|
||
|
|
strcoll() is available.
|
||
|
|
|
||
|
|
------------------------------------------------------------------------------
|
||
|
|
This document details the changes between this version, bash-2.0-beta2,
|
||
|
|
and the previous version, bash-2.0-beta1.
|
||
|
|
|
||
|
|
1. Changes to Bash
|
||
|
|
|
||
|
|
a. `pushd -' is once again equivalent to `pushd $OLDPWD'.
|
||
|
|
|
||
|
|
b. OS-specific changes for: SCO 3.2v[45].
|
||
|
|
|
||
|
|
c. A change was made to the fix for the recently-reported security hole
|
||
|
|
when reading characters with octal value 255 to make it work better on
|
||
|
|
systems with restartable system calls when not using readline.
|
||
|
|
|
||
|
|
d. Some changes were made to the test suite so that it works if you
|
||
|
|
configure bash with --enable-usg-echo-default.
|
||
|
|
|
||
|
|
e. A fix was made to the parsing of conditional arithmetic expressions.
|
||
|
|
|
||
|
|
f. Illegal arithmetic bases now cause an arithmetic evaluation error rather
|
||
|
|
than being silently reset.
|
||
|
|
|
||
|
|
g. Multiple arithmetic bases now cause an arithmetic evaluation error
|
||
|
|
instead of being ignored.
|
||
|
|
|
||
|
|
h. A fix was made to the evaluation of ${param?word} to conform to POSIX.2.
|
||
|
|
|
||
|
|
i. A bug that sometimes caused array indices to be evaluated twice (which
|
||
|
|
would cause errors when they contained assignment statements) was fixed.
|
||
|
|
|
||
|
|
j. `ulimit' was rewritten to avoid problems with getrlimit(2) returning
|
||
|
|
unsigned values and to simplify the code.
|
||
|
|
|
||
|
|
k. A bug in the command-oriented-history code that caused it to sometimes
|
||
|
|
put semicolons after right parens inappropriately was fixed.
|
||
|
|
|
||
|
|
l. The values inserted into the prompt by the \w and \W escape sequences
|
||
|
|
are now quoted to prevent further expansion.
|
||
|
|
|
||
|
|
m. An interactive shell invoked as `sh' now reads and executes commands
|
||
|
|
from the file named by $ENV when it starts up. If it's a login shell,
|
||
|
|
it does this after reading /etc/profile and ~/.profile.
|
||
|
|
|
||
|
|
n. The file named by $ENV is never read by non-interactive shells.
|
||
|
|
|
||
|
|
2. Changes to Readline
|
||
|
|
|
||
|
|
a. A few changes were made to hide some macros and functions that should not
|
||
|
|
be public.
|
||
|
|
|
||
|
|
b. An off-by-one error that caused seg faults in the history expansion code
|
||
|
|
was fixed.
|
||
|
|
|
||
|
|
3. New Features in Bash
|
||
|
|
|
||
|
|
a. The ksh-style ((...)) arithmetic command was implemented. It is exactly
|
||
|
|
identical to let "...". This is controlled by a new option to configure,
|
||
|
|
`--enable-dparen-arithmetic', which is on by default.
|
||
|
|
|
||
|
|
b. There is a new #define available in config.h.top: SYS_BASH_LOGOUT. If
|
||
|
|
defined to a filename, bash reads and executes commands from that file
|
||
|
|
when a login shell exits. It's commented out by default.
|
||
|
|
|
||
|
|
c. `ulimit' has a `-l' option that reports the maximum amount of data that
|
||
|
|
may be locked into memory on 4.4BSD-based systems.
|
||
|
|
|
||
|
|
------------------------------------------------------------------------------
|
||
|
|
This document details the changes between this version, bash-2.0-beta1,
|
||
|
|
and the previous version, bash-2.0-alpha4.
|
||
|
|
|
||
|
|
1. Changes to Bash
|
||
|
|
|
||
|
|
a. A bug that sometimes caused traps to be ignored on signals the
|
||
|
|
shell treats specially was fixed.
|
||
|
|
|
||
|
|
b. The internationalization code was changed to track the values of
|
||
|
|
LC_* variables and call setlocale() as appropriate. The TEXTDOMAIN
|
||
|
|
and TEXTDOMAINDIR variables are also tracked; changes cause calls
|
||
|
|
to textdomain() and bindtextdomain(), if available.
|
||
|
|
|
||
|
|
c. A bug was fixed that sometimes caused double-quoted strings to be
|
||
|
|
parsed incorrectly.
|
||
|
|
|
||
|
|
d. Changes were made so that the siglist code compiles correctly on
|
||
|
|
Solaris 2.5.
|
||
|
|
|
||
|
|
e. Added `:' to the set of characters that cause word breaks for the
|
||
|
|
completion code so that pathnames in assignments to $PATH can be
|
||
|
|
completed.
|
||
|
|
|
||
|
|
f. The `select' command was fixed to print $PS3 to stderr.
|
||
|
|
|
||
|
|
g. Fixed an error in the manual page section describing the effect that
|
||
|
|
setting and unsetting GLOBIGNORE has on the setting of the `dotglob'
|
||
|
|
option.
|
||
|
|
|
||
|
|
h. The time conversion code now uses CLK_TCK rather than CLOCKS_PER_SEC
|
||
|
|
on systems without gettimeofday() and resources.
|
||
|
|
|
||
|
|
i. The getopt static variables are now initialized each time a subshell
|
||
|
|
is started, so subshells using `getopts' work right.
|
||
|
|
|
||
|
|
j. A sign-extension bug that caused a possible security hole was fixed.
|
||
|
|
|
||
|
|
k. The parser now reads characters between backquotes within a double-
|
||
|
|
quoted string as a single word, so double quotes in the backquoted
|
||
|
|
string don't terminate the enclosing double-quoted string.
|
||
|
|
|
||
|
|
l. A bug that caused `^O' to work incorrectly when typed as the first
|
||
|
|
thing to an interactive shell was fixed.
|
||
|
|
|
||
|
|
m. A rarely-exercised off-by-one error in the code that quotes variable
|
||
|
|
values was fixed.
|
||
|
|
|
||
|
|
n. Some memory and file descriptor leaks encountered when running a
|
||
|
|
shell script that is executable but does not have a leading `#!'
|
||
|
|
were plugged.
|
||
|
|
|
||
|
|
2. Changes to Readline
|
||
|
|
|
||
|
|
a. A bug that sometimes caused incorrect results when trying to read
|
||
|
|
typeahead on systems without FIONREAD was fixed.
|
||
|
|
|
||
|
|
3. New Features in Bash
|
||
|
|
|
||
|
|
a. The command timing code now uses the value of the TIMEFORMAT variable
|
||
|
|
to format and display timing statistics.
|
||
|
|
|
||
|
|
b. The `time' reserved word now accepts a `-p' option to force the
|
||
|
|
POSIX.2 output format.
|
||
|
|
|
||
|
|
c. There are a couple of new and updated scripts to convert csh startup
|
||
|
|
files to bash format.
|
||
|
|
|
||
|
|
d. There is a new builtin array variable: BASH_VERSINFO. The various
|
||
|
|
members hold the parts of the version information in BASH_VERSION,
|
||
|
|
plus the value of MACHTYPE.
|
||
|
|
|
||
|
|
4. New Features in Readline
|
||
|
|
|
||
|
|
a. Setting LANG to `en_US.ISO8859-1' now causes readline to enter
|
||
|
|
eight-bit mode.
|
||
|
|
|
||
|
|
------------------------------------------------------------------------------
|
||
|
|
This document details the changes between this version, bash-2.0-alpha4,
|
||
|
|
and the previous version, bash-2.0-alpha3.
|
||
|
|
|
||
|
|
1. Changes to Bash
|
||
|
|
|
||
|
|
a. There is better detection of rsh connections on Solaris 2.
|
||
|
|
|
||
|
|
b. Assignments to read-only variables preceding a command name are now
|
||
|
|
variable assignment errors. Variable assignment errors cause
|
||
|
|
non-interactive shells running in posix mode to exit.
|
||
|
|
|
||
|
|
c. The word tokenizer was rewritten to handle nested quotes and pairs
|
||
|
|
('', "", ``, ${...}, $(...), $[...], $'...', $"...", <(...), >(...))
|
||
|
|
correctly. Some of the parameter expansion code was updated as a
|
||
|
|
consequence.
|
||
|
|
|
||
|
|
d. A fix was made to `test' when given three arguments so that a binary
|
||
|
|
operator is checked for first, before checking that the first argument
|
||
|
|
is `!'.
|
||
|
|
|
||
|
|
e. 2''>/dev/null is no longer equivalent to 2>/dev/null.
|
||
|
|
|
||
|
|
f. Parser error messages were regularized, and in most cases the name of
|
||
|
|
the shell script being read by a non-interactive shell is not printed
|
||
|
|
twice.
|
||
|
|
|
||
|
|
g. A fix was made to the completion code so that it no longer removes the
|
||
|
|
text the user typed in some cases.
|
||
|
|
|
||
|
|
h. The special glibc `getopt' environment variable is no longer put into
|
||
|
|
the environment on machines with small values of ARG_MAX.
|
||
|
|
|
||
|
|
i. The expansion of ${...} now follows the POSIX.2 rules for finding the
|
||
|
|
closing `}'.
|
||
|
|
|
||
|
|
j. The shell no longer displays spurious status messages for background
|
||
|
|
jobs in shell scripts that complete successfully when the script is
|
||
|
|
run from a terminal.
|
||
|
|
|
||
|
|
k. `shopt -o' now correctly updates $SHELLOPTS.
|
||
|
|
|
||
|
|
l. A bug that caused the $PATH searching code to return a non-executable
|
||
|
|
file even when an executable file with the same name appeared later in
|
||
|
|
$PATH was fixed.
|
||
|
|
|
||
|
|
m. The shell now does tilde expansions on unquoted `:~' in assignment
|
||
|
|
statements when not in posix mode.
|
||
|
|
|
||
|
|
n. Variable assignment errors when a command consists only of assignments
|
||
|
|
now cause non-interactive shells to exit when in posix mode.
|
||
|
|
|
||
|
|
o. If the variable in a `for' or `select' command is read-only, or not a
|
||
|
|
legal shell identifier, a variable assignment error occurs.
|
||
|
|
|
||
|
|
p. `test' now handles `-a' and `-o' as binary operators when three arguments
|
||
|
|
are supplied, and correctly parses `( word )' as equivalent to `word'.
|
||
|
|
|
||
|
|
q. `test' was fixed so that file names of the form /dev/fd/NN mean the same
|
||
|
|
thing on all systems, even Linux.
|
||
|
|
|
||
|
|
r. Fixed a bug in the globbing code that caused patterns with multiple
|
||
|
|
consecutive `*'s to not be matched correctly.
|
||
|
|
|
||
|
|
s. Fixed a bug that caused $PS2 to not be printed when an interactive shell
|
||
|
|
not using readline is reading a here document.
|
||
|
|
|
||
|
|
t. Fixed a bug that caused history expansion to be performed inappropriately
|
||
|
|
when a single-quoted string spanned more than one line.
|
||
|
|
|
||
|
|
u. `getopts' now checks that the variable name passed by the user as the
|
||
|
|
second argument is a legal shell identifier and that the variable is
|
||
|
|
not read-only.
|
||
|
|
|
||
|
|
v. Fixed `getopts' to obey POSIX.2 rules for setting $OPTIND when it
|
||
|
|
encounters an error.
|
||
|
|
|
||
|
|
w. Fixed `set' to display variable values in a form that can be re-read.
|
||
|
|
|
||
|
|
x. Fixed a bug in the code that keeps track of whether or not local variables
|
||
|
|
have been declared at the current level of function nesting.
|
||
|
|
|
||
|
|
y. Non-interactive shells in posix mode now exit if the name in a function
|
||
|
|
declaration is not a legal identifier.
|
||
|
|
|
||
|
|
z. The job control code now ignores stopped children when the shell is not
|
||
|
|
interactive.
|
||
|
|
|
||
|
|
aa. The `cd' builtin no longer attempts spelling correction on the directory
|
||
|
|
name if the shell is not interactive, regardless of the setting of the
|
||
|
|
`cdspell' option.
|
||
|
|
|
||
|
|
bb. Some OS-specific changes were made for SCO 3.2v[45] and AIX 4.2.
|
||
|
|
|
||
|
|
cc. `time' now prints its output to stderr, as POSIX.2 specifies.
|
||
|
|
|
||
|
|
2. Fixes to Readline
|
||
|
|
|
||
|
|
a. After printing possible completions, all lines of a multi-line prompt
|
||
|
|
are redisplayed.
|
||
|
|
|
||
|
|
b. Some changes were made to the terminal handling code in rltty.c to
|
||
|
|
work around AIX 4.2 bugs.
|
||
|
|
|
||
|
|
3. New Features in Bash
|
||
|
|
|
||
|
|
a. There is a new loadable builtin: sprintf, with calling syntax
|
||
|
|
sprintf var format [args]
|
||
|
|
This provides an easy way to simulate ksh left- and right-justified
|
||
|
|
variable values.
|
||
|
|
|
||
|
|
b. The expansions of \h and \H in prompt strings were swapped. \h now
|
||
|
|
expands to the hostname up to the first `.', as in bash-1.14.
|
||
|
|
|
||
|
|
4. New Features in Readline
|
||
|
|
|
||
|
|
a. The bash-1.14 behavior when ^M is typed while doing an incremental
|
||
|
|
search was restored. ^J may now be used to terminate the search without
|
||
|
|
accepting the line.
|
||
|
|
|
||
|
|
b. There is a new bindable variable: disable-completion. This inhibits
|
||
|
|
word completion and causes the completion character to be inserted as
|
||
|
|
if it had been bound to self-insert.
|
||
|
|
|
||
|
|
------------------------------------------------------------------------------
|
||
|
|
This document details the changes between this version, bash-2.0-alpha3,
|
||
|
|
and the previous version, bash-2.0-alpha2.
|
||
|
|
|
||
|
|
There is now a file `COMPAT' included in the distribution that lists the
|
||
|
|
user-visible incompatibilities between 1.14 and 2.0.
|
||
|
|
|
||
|
|
1. Changes to Bash
|
||
|
|
|
||
|
|
a. Some work was done so that word splitting of the rhs of assignment
|
||
|
|
statements conforms more closely to historical practice.
|
||
|
|
|
||
|
|
b. A couple of errant memory frees were fixed.
|
||
|
|
|
||
|
|
c. A fix was made to the test builtin so it recognizes `<' and `>' as
|
||
|
|
binary operators.
|
||
|
|
|
||
|
|
d. The GNU malloc in lib/malloc/malloc.c now scrambles memory as it's
|
||
|
|
allocated and freed. This is to catch callers that refer to freed
|
||
|
|
memory or assume something about newly-allocated memory.
|
||
|
|
|
||
|
|
e. Fixed a problem with conversion to 12-hour time in the prompt
|
||
|
|
expansion code.
|
||
|
|
|
||
|
|
f. Fixed a problem with configure's argument parsing order. Now you can
|
||
|
|
correctly turn on specific options after using --enable-minimal-config.
|
||
|
|
|
||
|
|
g. The configure script now automatically disables the use of GNU malloc
|
||
|
|
on systems where it's appropriate (better than having people read the
|
||
|
|
NOTES file and do it manually).
|
||
|
|
|
||
|
|
h. There are new prompt expansions (\v and \V) to insert version information
|
||
|
|
into the prompt strings.
|
||
|
|
|
||
|
|
i. The default prompt string now includes the version number.
|
||
|
|
|
||
|
|
j. Most of the builtins that take no options were changed to use the
|
||
|
|
internal getopt so they can produce proper error messages for -?
|
||
|
|
and incorrect options.
|
||
|
|
|
||
|
|
k. Some system-specific changes were made for SVR4.2 and Solaris 2.5.
|
||
|
|
|
||
|
|
l. Bash now uses PATH_MAX instead of MAXPATHLEN and NAME_MAX instead of
|
||
|
|
MAXNAMLEN.
|
||
|
|
|
||
|
|
m. A couple of problems caused by uninitialized variables were fixed.
|
||
|
|
|
||
|
|
n. There are a number of new loadable builtin examples: logname, basename,
|
||
|
|
dirname, tty, pathchk, tee, head, and rmdir. All of these conform to
|
||
|
|
POSIX.2.
|
||
|
|
|
||
|
|
o. Bash now notices changes in TZ and calls tzset() if present, so
|
||
|
|
changing TZ will alter the time printed by prompt expansions.
|
||
|
|
|
||
|
|
p. The source was reorganized a bit so I don't have to wait so long for
|
||
|
|
some files to compile, and to facilitate the creation of a `shell
|
||
|
|
library' at some future point.
|
||
|
|
|
||
|
|
q. Bash no longer turns off job control if called as `sh', since the
|
||
|
|
POSIX.2 spec includes job control as a standard feature.
|
||
|
|
|
||
|
|
r. `bash -o posix' now works as intended.
|
||
|
|
|
||
|
|
s. Fixed a problem with the completion code: when completing a filename
|
||
|
|
that contained globbing characters, if show-all-if-ambiguous was set,
|
||
|
|
the completion code would remove the user's text.
|
||
|
|
|
||
|
|
t. Fixed ulimit so that (hopefully) the full range of limits is available
|
||
|
|
on HPUX systems.
|
||
|
|
|
||
|
|
u. A new `shopt' option (`hostcomplete') enables and disables hostname
|
||
|
|
completion.
|
||
|
|
|
||
|
|
v. The shell no longer attempts to save the history on an abort(),
|
||
|
|
which is usually called by programming_error().
|
||
|
|
|
||
|
|
w. The `-s' option to `fc' was changed to echo the command to be executed
|
||
|
|
to stderr instead of stdout.
|
||
|
|
|
||
|
|
x. If the editor invoked by `fc -e' exits with a non-zero status, no
|
||
|
|
commands are executed.
|
||
|
|
|
||
|
|
y. Fixed a bug that made the shopt `histverify' option work incorrectly.
|
||
|
|
|
||
|
|
z. There is a new variable `MACHTYPE' whose value is the GNU-style
|
||
|
|
`cpu-company-system' system description as set by configure. (The
|
||
|
|
values of MACHTYPE and HOSTTYPE should really be swapped.)
|
||
|
|
|
||
|
|
aa. The `ulimit' builtin now allows the maximum virtual memory size to be
|
||
|
|
set via setrlimit(2) if RLIMIT_VMEM is defined.
|
||
|
|
|
||
|
|
bb. `bash -nc 'command'' no longer runs `command'.
|
||
|
|
|
||
|
|
2. Changes to Readline
|
||
|
|
|
||
|
|
a. Fixed a typo in the code that checked for FIONREAD in input.c.
|
||
|
|
|
||
|
|
b. Fixed a bug in the code that outputs keybindings, so things like C-\
|
||
|
|
are quoted properly.
|
||
|
|
|
||
|
|
c. Fixed a bug in the inputrc file parsing code to handle the problems
|
||
|
|
caused by inputrc files created from the output of `bind -p' in
|
||
|
|
previous versions of bash. The problem was due to the bug fixed
|
||
|
|
in item b above.
|
||
|
|
|
||
|
|
d. Readline no longer turns off the terminal's meta key, and turns it on
|
||
|
|
once the first time it's called.
|
||
|
|
|
||
|
|
------------------------------------------------------------------------------
|
||
|
|
This file documents the changes between this version, bash-2.0-alpha2,
|
||
|
|
and the previous version, bash-2.0-alpha.
|
||
|
|
|
||
|
|
1. Changes to Bash
|
||
|
|
|
||
|
|
a. The shell no longer thinks directories are executable.
|
||
|
|
|
||
|
|
b. `disown' has a new option, `h', which inhibits the resending of SIGHUP
|
||
|
|
but does not remove the job from the jobs table.
|
||
|
|
|
||
|
|
c. The varargs functions in error.c now use ANSI-C `stdarg' if available.
|
||
|
|
|
||
|
|
d. The build process now treats the `build version' in .build as local to
|
||
|
|
the build directory, so different versions built from the same source
|
||
|
|
tree have different `build versions'.
|
||
|
|
|
||
|
|
e. Some problems with the grammar have been fixed. (It used `list' in a few
|
||
|
|
productions where `compound_list' was needed. A `list' must be terminated
|
||
|
|
with a newline or semicolon; a `compound_list' need not be.)
|
||
|
|
|
||
|
|
f. A fix was made to keep `wait' from hanging when waiting for all background
|
||
|
|
jobs.
|
||
|
|
|
||
|
|
g. `bash --help' now writes its output to stdout, like the GNU Coding Standards
|
||
|
|
specify, and includes the machine type (the value of MACHTYPE).
|
||
|
|
|
||
|
|
h. `bash --version' now prints more information and exits successfully, like
|
||
|
|
the GNU Coding Standards specify.
|
||
|
|
|
||
|
|
i. The output of `time' and `times' now prints fractional seconds with three
|
||
|
|
places after the decimal point.
|
||
|
|
|
||
|
|
j. A bug that caused process substitutions to screw up the pipeline printed
|
||
|
|
by `jobs' was fixed.
|
||
|
|
|
||
|
|
k. Fixes were made to the code that implements $'...' and $"..." so they
|
||
|
|
work as documented.
|
||
|
|
|
||
|
|
l. The process substitution code now opens named pipes for reading with
|
||
|
|
O_NONBLOCK to avoid hanging.
|
||
|
|
|
||
|
|
m. Fixes were made to the trap code so the shell cleans up correctly if the
|
||
|
|
trap command contains a `return' and we're executing a function or
|
||
|
|
sourcing a script with `.'.
|
||
|
|
|
||
|
|
n. Fixes to doc/Makefile.in so that it doesn't try to remake all of the
|
||
|
|
documentation (ps, dvi, etc.) on a `make install'.
|
||
|
|
|
||
|
|
o. Fixed an auto-increment error that caused bash -c args to sometimes dump
|
||
|
|
core.
|
||
|
|
|
||
|
|
p. Fixed a bug that caused $HISTIGNORE to fail when the history line
|
||
|
|
contained globbing characters.
|
||
|
|
|
||
|
|
2. Changes to Readline
|
||
|
|
|
||
|
|
a. There is a new string variable, rl_library_version, available for use by
|
||
|
|
applications. The current value is "2.1".
|
||
|
|
|
||
|
|
b. A bug encountered when expand-tilde was enabled and file completion was
|
||
|
|
attempted on a word beginning with `~/' was fixed.
|
||
|
|
|
||
|
|
c. A slight change was made to the incremental search termination behavior.
|
||
|
|
ESC still terminates the search, but if input is pending or arrives
|
||
|
|
within 0.1 seconds (on systems with select(2)), it is used as a prefix
|
||
|
|
character. This is intented to allow users to terminate searches with
|
||
|
|
the arrow keys and get the behavior they expect.
|