GNU Bash 2.03 as released on ftp.gnu.org.2_03
commit1b6fc19fc7f37e45d0d8ebaaac42293e44ec1b3b
authorChet Ramey <[email protected]>
Fri, 19 Feb 1999 21:13:00 +0000 (19 16:13 -0500)
committerBradley M. Kuhn <[email protected]>
Fri, 19 Feb 1999 21:13:00 +0000 (19 16:13 -0500)
treeb9899162338c2ff3fd83a8aef8831cb119e85cd7
parent7526e38ca1ad7714fa76dc26e0e50391f290cedb
GNU Bash 2.03 as released on ftp.gnu.org.

Chet's bug-bash mailing list posting announcing the release is below:

From: [email protected] (Chet Ramey)
Subject: Bash-2.03 available for FTP
Date: 1999/02/19
Message-ID: <990219180023.AA04206[email protected]>
X-Deja-AN: 446134145
Sender: [email protected]
Approved: [email protected]
Read-Receipt-To: [email protected]
x-uunet-gateway: relay5.UU.NET from bug-bash to gnu.bash.bug; Fri, 19 Feb 1999 13:01:37 EST
Content-Type: text/plain; charset=us-ascii
Reply-To: [email protected]
Newsgroups: gnu.bash.bug

The first public release of bash-2.03 is now available with the URLs

ftp://ftp.cwru.edu/pub/bash/bash-2.03.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash-2.03.tar.gz

and from the usual GNU mirror sites.

This tar file does not include the formatted documentation
(postscript, dvi, html, and nroffed versions of the manual pages);
that may be retrieved with the URLs

ftp://ftp.cwru.edu/pub/bash/bash-doc-2.03.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash-doc-2.03.tar.gz

When unpacking the documentation, make sure to extract the tar file
in the bash-2.03 source directory.

Diffs from bash-2.02.1 are available with the URLs

ftp://ftp.cwru.edu/pub/bash/bash-2.02.1-2.03.diff.gz
ftp://ftp.gnu.org/pub/gnu/bash-2.02.1-2.03.diff.gz

Make sure to apply the diffs using `patch -p1' from within the
bash-2.02.1 source directory.

Please use `bashbug' to report bugs with this version.  It is built
and installed at the same time as bash.

Installation
============

Please read the README file first.

Installation instructions are provided in the INSTALL file.

Fixes and New Features
======================

This release fixes the relatively few bugs found in bash-2.02.1.
There are a couple of new features in bash, and a large number of
new things in readline.

The changes of most interest in bash-2.03 are:

o All shells given the --login option at startup read the
  login shell startup files, even non-interactive shells
o There is a new configuration framework for shared objects,
  so the loadable builtins may be built more easily.  This
  is shared by readline, so building shared versions of the
  readline and history libraries (in the readline distribution)
  is easier.

Changed have been made to the readline library being released at
the same time as bash-2.03, readline-4.0, so that bash can be
linked against an already-installed readline library rather than
the private version in lib/readline.  Only readline-4.0 is able
to provide all of the symbols that bash-2.03 requires; earlier
versions of the readline library will not work correctly.

A complete list of changes between bash-2.02.1 and bash-2.03 is
available in the file CHANGES.

User-Visible Changes
====================

The aforementioned change to the shell's startup behavior when
the `--login' option is supplied is the most important
user-visible difference between bash-2.02.1 and bash-2.03.  There
is also a new `shopt' option, `restricted_shell', that allows
startup files to tell whether or not the shell was started in
restricted mode.

Some user-visible changes that have caused problems in the past
are listed in the file COMPAT.

A Peek at the Future
========================

Things under consideration for bash-2.04 (or whatever the next version
is named) are

o Allowing the shell to open and manipulate TCP and UDP sockets,
  via the redirection operators
o Associative arrays

Readline
========

Also available is a new release of the standalone readline library,
version 4.0, with its own configuration scripts and Makefiles.
It can be retrieved with the URLs

ftp://ftp.cwru.edu/pub/bash/readline-4.0.tar.gz
ftp://ftp.gnu.org/pub/gnu/readline-4.0.tar.gz

and from the usual GNU mirror sites.

Diffs from readline-2.2.1 are available with the URLs

ftp://ftp.cwru.edu/pub/bash/readline-2.2.1-4.0.diff
ftp://ftp.gnu.org/pub/gnu/readline-2.2.1-4.0.diff

Make sure to install the patches using `patch -p1 < patch-file' from
within the readline-2.2.1 source directory.

The formatted readline documentation is included in the readline
distribution tar file.

A separate announcement listing the changes in readline is being
distributed.

As always, thanks for your help.

Chet

+========== CHANGES ==========+
This document details the changes between this version, bash-2.03-release,
and the previous version, bash-2.03-beta2.

1.  Changes to Bash

a.  A file descriptor leak in the `fc' builtin was fixed.

b.  A bug was fixed in the `read' builtin that caused occasional spurious
    failures when using `read -e'.

c.  The version code needed to use the value of the cpp variable
    CONF_MACHTYPE rather than MACHTYPE.

d.  A new test was added to exercise the command printing and copying code.

e.  A bug was fixed that caused `time' to be recognized as a reserved word
    if it was the first pattern in a `case' statement pattern list.

------------------------------------------------------------------------------
This document details the changes between this version, bash-2.03-beta2,
and the previous version, bash-2.03-beta1.

1.  Changes to Bash

a.  Slight additions to support/shobj-conf, mostly for the benefit of AIX 4.2.

b.  config.{guess,sub} support added for the NEC SX4.

c.  Changed some of the cross-compiling sections of the configure macros in
    aclocal.m4 so that configure won't abort.

d.  Slight changes to how the HTML versions of the bash and readline manuals
    are generated.

e.  Fixed conditional command printing to avoid interpreting printf `%'-escapes
    in arguments to [[.

f.  Don't include the bash malloc on all variants of the alpha processor.

g.  Changes to configure to make --enable-profiling work on Solaris 2.x.

h.  Fixed a bug that manifested itself when shell functions were called
    between calls to `getopts'.

i.  Fixed pattern substitution so that a bare `#'as a pattern causes the
    replacement string to be prefixed to the search string, and a bare
    `%' causes the replacement string to be appended to the search string.

j.  Fixed a bug in the command execution code that caused child processes
    to occasionally have the wrong value for $!.

2.  Changes to Readline

a.  Added code to the history library to catch history substitutions using
    `&' without a previous history substitution or search having been
    performed.

3.  New Features in Bash

4.  New Features in Readline

a.  New bindable variable: `isearch-terminators'.

b.  New bindable function: `forward-backward-delete-char' (unbound by default).

------------------------------------------------------------------------------
This document details the changes between this version, bash-2.03-beta1,
and the previous version, bash-2.03-alpha.

1.  Changes to Bash

a.  A change was made to the help text for `{...}' to make it clear that a
    semicolon is required before the closing brace.

b.  A fix was made to the `test' builtin so that syntax errors cause test
    to return an exit status > 1.

c.  Globbing is no longer performed on assignment statements that appear as
    arguments to `assignment builtins' such as `export'.

d.  System-specific configuration changes were made for:  Rhapsody,
    AIX 4.2/gcc, BSD/OS 4.0.

e.  New loadable builtins: ln, unlink.

f.  Some fixes were made to the globbing code to handle extended glob patterns
    which immediately follow a `*'.

g.  A fix was made to the command printing code to ensure that redirections
    following compound commands have a space separating them from the rest
    of the command.

h.  The pathname canonicalization code was changed to produce fewer leading
    `//' sequences, since those are interpreted as network file system
    pathnames on some systems.

i.  A fix was made so that loops containing `eval' commands in commands passed
    to `bash -c' would not exit prematurely.

j.  Some changes were made to the job reaping code when the shell is not
    interactive, so the shell will retain exit statuses longer for examination
    by `wait'.

k.  A fix was made so that `jobs | command' works again.

l.  The erroneous compound array assignment var=((...)) is now a syntax error.

m.  A change was made to the dynamic loading code in `enable' to support
    Tenon's MachTen.

n.  A fix was made to the globbing code so that extended globbing patterns
    will correctly match `.' in a bracket expression.

2.  Changes to Readline

a.  A fix was made to the completion code in which a typo caused the wrong
    value to be passed to the function that computed the longest common
    prefix of the list of matches.

b.  The completion code now checks the value of rl_filename_completion_desired,
    which is set by application-supplied completion functions to indicate
    that filename completion is being performed, to decide whether or not to
    call an application-supplied `ignore completions' function.

3.  New Features in Bash

a.  A change was made to the startup file code so that any shell begun with
    the `--login' option, even non-interactive shells, will source the login
    shell startup files.

4.  New Features in Readline

a.  A new variable, rl_erase_empty_line, which, if set by an application using
    readline, will cause readline to erase, prompt and all, lines on which the
    only thing typed was a newline.

------------------------------------------------------------------------------
This document details the changes between this version, bash-2.03-alpha,
and the previous version, bash-2.02.1-release.

1.  Changes to Bash

a.  System-specific configuration changes were made for: Irix 6.x, Unixware 7.

b.  The texi2dvi and texi2html scripts were updated to the latest versions
    from the net.

c.  The configure tests that determine which native type is 32 bits were
    changed to not require a compiled program.

d.  Fixed a bug in shell_execve that could cause memory to be freed twice
    after a failed exec.

e.  The `printf' test uses `diff -a' if it's available to prevent confusion
    due to the non-ascii output.

f.  Shared object configuration is now performed by a shell script,
    support/shobj-conf, which generates values to be substituted into
    makefiles by configure.

g.  Some changes were made to `ulimit' to avoid the use of RLIM_INVALID as a
    return value.

h.  Changes were made to `ulimit' to work around HPUX 9.x's peculiar
    handling of RLIMIT_FILESIZE.

i.  Some new loadable builtins were added: id, printenv, sync, whoami, push,
    mkdir.  `pushd', `popd', and `dirs' can now be built as regular or
    loadable builtins from the same source file.

j.  Changes were made to `printf' to handle NUL bytes in the expanded format
    string.

k.  The various `make clean' Makefile targets now descend into lib/sh.

l.  The `type' builtin was changed to use the internal `getopt' so that things
    like `type -ap' work as expected.

m.  There is a new configuration option, --with-installed-readline, to link
    bash with a locally-installed version of readline.  Only readline version
    4.0 and later releases can support this.  Shared and static libraries
    are supported.  The installed include files are used.

n.  There is a new autoconf macro used to find which basic type is 64 bits.

o.  Dynamic linking and loadable builtins should now work on SCO 3.2v5*,
    AIX 4.2 with gcc, Unixware 7, and many other systems using gcc, where
    the `-shared' options works correctly.

p.  A bug was fixed in the bash filename completion code that caused memory to
    be freed twice if a directory name containing an unset variable was
    completed and the -u option was set.

q.  The prompt expansion code now quotes the `$' in the `\$' expansion so it
    is not processed by subsequent parameter expansion.

r.  Fixed a parsing bug that caused a single or double quote after a `$$' to
    trigger ANSI C expansion or locale translation.

s.  Fixed a bug in the globbing code that caused quoted filenames containing
    no globbing characters to sometimes be incorrectly expanded.

t.  Changes to the default prompt strings if prompt string decoding is not
    compiled into the shell.

u.  Added `do', `then', `else', `{', and `(' to the list of keywords that may
    precede the `time' reserved word.

v.  The shell may now be cross-built for BeOS as well as cygwin32.

w.  The conditional command execution code now treats `=' the same as `=='
    for deciding when to perform pattern matching.

x.  The `-e' option no longer causes the shell to exit if a command exits
    with a non-zero status while running the startup files.

y.  The `printf' builtin no longer dumps core if a modifier is supplied in
    the format string without a conversion character (e.g. `%h').

z.  Array assignments of the form a=(...) no longer show up in the history
    list.

aa. The parser was fixed to obey the POSIX.2 rules for finding the closing
    `}' in a ${...} expression.

bb. The history file is now opened with mode 0600 rather than 0666, so bash
    no longer relies on the user's umask being set appropriately.

cc. Setting LANG no longer causes LC_ALL to be assigned a value; bash now
    relies on proper behavior from the C library.

dd. Minor changes were made to allow quoted variable expansions using
    ${...} to be completed correctly if there is no closing `"'.

ee. Changes were made to builtins/Makefile.in so that configuring the shell
    with `--enable-profiling' works right and builtins/mkbuiltins is
    generated.

2.  Changes to Readline

a.  The version number is now 4.0.

b.  There is no longer any #ifdef SHELL code in the source files.

c.  Some changes were made to the key binding code to fix memory leaks and
    better support Win32 systems.

d.  Fixed a silly typo in the paren matching code -- it's microseconds, not
    milliseconds.

e.  The readline library should be compilable by C++ compilers.

f.  The readline.h public header file now includes function prototypes for
    all readline functions, and some changes were made to fix errors in the
    source files uncovered by the use of prototypes.

g.  The maximum numeric argument is now clamped at 1000000.

h.  Fixes to rl_yank_last_arg to make it behave better.

i.  Fixed a bug in the display code that caused core dumps if the prompt
    string length exceeded 1024 characters.

j.  The menu completion code was fixed to properly insert a single completion
    if there is only one match.

k.  A bug was fixed that caused the display code to improperly display tabs
    after newlines.

3.  New Features in Bash

a.  New `shopt' option, `restricted_shell', indicating whether or not the
    shell was started in restricted mode, for use in startup files.

b.  Filename generation is now performed on the words between ( and ) in
    array assignments (which it probably should have done all along).

c.  OLDPWD is now auto-exported, as POSIX.2 seems to require.

d.  ENV and BASH_ENV are read-only variables in a restricted shell.

4.  New Features in Readline

a.  Many changes to the signal handling:
o Readline now catches SIGQUIT and cleans up the tty before returning;
o A new variable, rl_catch_signals, is available to application writers
  to indicate to readline whether or not it should install its own
  signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP,
  SIGTTIN, and SIGTTOU;
o A new variable, rl_catch_sigwinch, is available to application
  writers to indicate to readline whether or not it should install its
  own signal handler for SIGWINCH, which will chain to the calling
  applications's SIGWINCH handler, if one is installed;
o There is a new function, rl_free_line_state, for application signal
  handlers to call to free up the state associated with the current
  line after receiving a signal;
o There is a new function, rl_cleanup_after_signal, to clean up the
  display and terminal state after receiving a signal;
o There is a new function, rl_reset_after_signal, to reinitialize the
  terminal and display state after an application signal handler
  returns and readline continues

b.  There is a new function, rl_resize_terminal, to reset readline's idea of
    the screen size after a SIGWINCH.

c.  New public functions: rl_save_prompt and rl_restore_prompt.  These were
    previously private functions with a `_' prefix.

d.  New function hook: rl_pre_input_hook, called just before readline starts
    reading input, after initialization.

e.  New function hook: rl_display_matches_hook, called when readline would
    display the list of completion matches.  The new function
    rl_display_match_list is what readline uses internally, and is available
    for use by application functions called via this hook.

f.  New bindable function, delete-char-or-list, like tcsh.

--
``The lyf so short, the craft so long to lerne.'' - Chaucer
( ``Discere est Dolere'' -- chet)

Chet Ramey, Case Western Reserve University Internet: [email protected]
191 files changed:
CHANGES
COMPAT
CWRU/POSIX.NOTES
CWRU/README
CWRU/changelog
CWRU/empty-for-wordlist [new file with mode: 0644]
CWRU/misc/errlist.c [new file with mode: 0644]
CWRU/misc/hpux10-dlfcn.h [new file with mode: 0644]
INSTALL
MANIFEST
Makefile.in
NEWS
NOTES
README
Y2K [new file with mode: 0644]
aclocal.m4
bashhist.c
bashline.c
builtins/Makefile.in
builtins/cd.def
builtins/enable.def
builtins/evalstring.c
builtins/fc.def
builtins/getopt.c
builtins/getopts.def
builtins/mkbuiltins.c
builtins/printf.def
builtins/pushd.def
builtins/read.def
builtins/reserved.def
builtins/set.def
builtins/shopt.def
builtins/test.def
builtins/type.def
builtins/ulimit.def
builtins/umask.def
command.h
config-bot.h [moved from config.h.bot with 96% similarity]
config-top.h [moved from config.h.top with 100% similarity]
config.h.in
configure
configure.in
cross-build/beos-sig.h [new file with mode: 0644]
cross-build/cygwin32.cache
cross-build/opennt.cache [new file with mode: 0644]
cross-build/x86-beos.cache [copied from cross-build/cygwin32.cache with 75% similarity]
dispose_cmd.c
doc/FAQ
doc/INTRO
doc/Makefile.in
doc/README
doc/bash.1
doc/bashbug.1
doc/bashref.info
doc/bashref.texi
doc/readline.3
error.c
error.h
eval.c
examples/functions/autoload.v3 [new file with mode: 0644]
examples/functions/inetaddr
examples/functions/lowercase
examples/functions/repeat3 [new file with mode: 0644]
examples/functions/seq2 [new file with mode: 0644]
examples/functions/which [new file with mode: 0644]
examples/loadables/Makefile.in
examples/loadables/README
examples/loadables/dirname.c
examples/loadables/finfo.c
examples/loadables/hello.c
examples/loadables/id.c [new file with mode: 0644]
examples/loadables/ln.c [new file with mode: 0644]
examples/loadables/mkdir.c [new file with mode: 0644]
examples/loadables/necho.c
examples/loadables/pathchk.c
examples/loadables/printenv.c [new file with mode: 0644]
examples/loadables/pushd.c [deleted file]
examples/loadables/sleep.c
examples/loadables/sync.c [new file with mode: 0644]
examples/loadables/template.c [new file with mode: 0644]
examples/loadables/uname.c [new file with mode: 0644]
examples/loadables/unlink.c [new file with mode: 0644]
examples/loadables/whoami.c [new file with mode: 0644]
examples/misc/aliasconv.bash
examples/misc/aliasconv.sh
examples/scripts/adventure.sh
execute_cmd.c
externs.h
flags.c
flags.h
general.c
general.h
hashlib.c
jobs.c
lib/glob/Makefile.in
lib/glob/fnmatch.c
lib/glob/fnmatch.h
lib/glob/glob.c
lib/malloc/Makefile.in
lib/malloc/malloc.c
lib/posixheaders/memalloc.h
lib/posixheaders/posixjmp.h [copied from posixjmp.h with 64% similarity]
lib/readline/Makefile.in
lib/readline/STANDALONE
lib/readline/bind.c
lib/readline/callback.c
lib/readline/complete.c
lib/readline/display.c
lib/readline/doc/Makefile
lib/readline/doc/hist.texinfo
lib/readline/doc/manvers.texinfo [new file with mode: 0644]
lib/readline/doc/rlman.texinfo
lib/readline/doc/rltech.texinfo
lib/readline/doc/rluser.texinfo
lib/readline/examples/rl.c
lib/readline/funmap.c
lib/readline/histexpand.c
lib/readline/histfile.c
lib/readline/histlib.h
lib/readline/history.c
lib/readline/history.h
lib/readline/input.c
lib/readline/isearch.c
lib/readline/keymaps.c
lib/readline/keymaps.h
lib/readline/kill.c
lib/readline/parens.c
lib/readline/posixjmp.h [copied from posixjmp.h with 64% similarity]
lib/readline/readline.c
lib/readline/readline.h
lib/readline/rlconf.h
lib/readline/rlstdc.h [new file with mode: 0644]
lib/readline/rltty.c
lib/readline/savestring.c [new file with mode: 0644]
lib/readline/search.c
lib/readline/shell.c
lib/readline/signals.c
lib/readline/terminal.c
lib/readline/tilde.c
lib/readline/util.c
lib/readline/vi_mode.c
lib/sh/Makefile.in
lib/sh/itos.c
lib/sh/oslib.c
lib/sh/rename.c [new file with mode: 0644]
lib/sh/strtol.c
lib/termcap/Makefile.in
lib/tilde/Makefile.in
lib/tilde/README [new file with mode: 0644]
lib/tilde/shell.c [new file with mode: 0644]
lib/tilde/tilde.c
locale.c
make_cmd.c
memalloc.h
nojobs.c
parse.y
pathexp.c
posixjmp.h
print_cmd.c
shell.c
subst.c
support/Makefile.in
support/SYMLINKS
support/config.guess
support/config.sub
support/missing [new file with mode: 0755]
support/mksignames.c
support/rlvers.sh [new file with mode: 0755]
support/shobj-conf [new file with mode: 0755]
support/texi2dvi
support/texi2html
test.c
tests/cprint.right [new file with mode: 0644]
tests/cprint.tests [new file with mode: 0644]
tests/extglob.right
tests/extglob.tests
tests/more-exp.right
tests/more-exp.tests
tests/printf.right
tests/printf.tests
tests/run-cprint [new file with mode: 0644]
tests/run-printf
tests/shopt.right
tests/test.right
tests/type.right
trap.c
variables.c
variables.h
version.c
xmalloc.c
y.tab.c