]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - CWRU/changelog
Imported from ../bash-2.05.tar.gz.
[thirdparty/bash.git] / CWRU / changelog
index 331c9e603af32559abf3d52f17c7b727dc39cc44..9126b6b941d950d1951a4e3b70221fbcc240881f 100644 (file)
@@ -48,8 +48,8 @@ lib/readline/display.c
          the code that decides whether the cursor is at the beginning of
          an otherwise-empty line
 
-                                   1/2
-                                   ---
+                                1/2/1997
+                                --------
 support/bashbug.sh
        - fixed a typo, thanks to eggert@twinsun.com
 
@@ -1717,3 +1717,8325 @@ builtins/type.def
        - free the value returned by find_hashed_filename
 
 [bash-2.01-release frozen]
+
+                                   6/6
+                                   ---
+configure.in
+       - force shlicc2 and libc malloc for BSD/OS 3.0
+
+                                   6/9
+                                   ---
+doc/Makefile.in
+       - don't create ${man3dir}, since we're not installing the readline
+         manual page
+
+lib/readline/readline.h
+       - rl_dispatching should be declared `extern'
+         [in bash-2.01.1]
+
+                                  6/10
+                                  ----
+lib/malloc/Makefile.in
+       - make sure ${ALLOCA_SOURCE} is preceded by ${srcdir} so that things
+         work when building in a directory other than the source directory
+         [in bash-2.01.1]
+
+                                  6/30
+                                  ----
+lib/readline/examples/rltest.c
+       - don't free the value returned by history_list()
+
+lib/readline/histfile.c
+       - open the history file for writing with mode 0600 for better
+         security
+         [in bash-2.01.1]
+
+execute_cmd.c
+       - select_query now uses legal_number to decide whether the user's
+         selection is a valid number, and just executes the loop again if
+         invalid input is entered
+         [in bash-2.01.1]
+
+                                   7/1
+                                   ---
+builtins/evalstring.c
+       - fix to parse_and_execute so `bash -c 'time [-p] zzz'' works right
+         [in bash-2.01.1]
+
+execute_cmd.c
+       - fix to execute_command_internal so that `bash -c time [-p] (zzz)''
+         works right
+         [in bash-2.01.1]
+       - print_formatted_time should pass a long as the fourth parameter
+         to mkfmt 
+         [in bash-2.01.1]
+
+externs.h, shell.c
+       - `exit_shell' is now a void function
+
+hashlib.c
+       - print_table_stats is now a void function
+
+mailcheck.c
+       - made add_mail_file check for the filename in the mail file list
+         using the expanded filename, since that is what it puts into
+         the list
+         [in bash-2.01.1]
+
+variables.c
+       - for the time being, PWD will be auto-exported, since some systems
+         seem to expect it
+
+doc/bashref.texi, lib/readline/doc/{hist,rlman}.texinfo
+       - added necessary `dircategory' and `direntry' commands to make
+         `install-info' work correctly
+
+Makefile.in
+       - move $(LDFLAGS) after $(BUILTINS_LDFLAGS) and $(LIBRARY_LDFLAGS) on
+         the line that links bash
+
+doc/texinfo.tex
+       - upgraded to version 2.185 from the texinfo-3.9 distribution
+
+lib/tilde/tilde.c
+       - fixed a bug in tilde_expand so that enough space is allocated for
+         the string and terminating null byte if a `~' does not appear.
+         This was masked before by the bash malloc()
+         [in bash-2.01.1]
+
+                                   7/3
+                                   ---
+aclocal.m4
+       - new test, BASH_TYPE_INT32_T, to check which builtin C type is
+         32 bits wide
+       - new test, BASH_TYPE_PTRDIFF_T, to check which builtin C type is
+         appropriate for pointer arithmetic
+
+configure.in
+       - check sizes of int and long, and for the existence of an int32_t
+         basic system type.  Call BASH_TYPE_INT32_T if int32_t is not
+         defined anywhere in the system header files
+       - check size of (char *), and for the existence of a ptrdiff_t
+         basic system type.  Call BASH_TYPE_PTRDIFF_T if ptrdiff_t is not
+         defined anywhere in the system header files
+       - added a check for <stddef.h>
+
+config.h.in
+       - add lines for SIZEOF_INT, SIZEOF_LONG, SIZEOF_CHAR_P, int32_t,
+         u_int32_t, and ptrdiff_t
+       - added line for HAVE_STDDEF_H
+
+lib/malloc/malloc.c
+       - new version, with many changes and much better memory usage; old
+         (bash-2.01) version is lib/malloc/omalloc.c
+
+lib/malloc/gmalloc.c
+       - new version, with a number of changes and range checking included
+         by default; old (bash-2.01) version is lib/malloc/ogmalloc.c
+
+execute_cmd.c
+       - applied patch from 5/27 to make execute_simple_command fork early
+         if it's part of a pipeline.  This keeps assignment statements or
+         other commands that don't require a builtin, function, or disk
+         command to be executed from modifying the shell's environment
+
+tests/exec?.sub
+       - renamed from tests/execscript.sub? because those filenames are
+         too long for System V 14-char filename systems
+
+tests/source?.sub
+       - renamed from tests/source.sub? because those filenames are bad
+         for DOS/Windows
+
+tests/getopts?.sub
+       - renamed from tests/getopts.sub? because those filenames are bad
+         for DOS/Windows
+
+tests/histexp.{tests,right}
+       - renamed from histexpand.{tests,right} because those filenames are
+         too long for System V 14-char filename systems
+
+tests/trap1.sub
+       - renamed from trap.sub1 because that filename was bad for DOS/Windows
+
+tests/ifs-[123].right
+       - renamed from ifs.[123].right because those filenames were bad for
+         DOS/Windows
+
+tests/ifs-[123].test
+       - renamed from ifs-test-[123].sh because those filenames were bad
+         for DOS/Windows
+
+examples/startup-files/Bashrc.bfox
+       - renamed from examples/startup-files/Bashrc because that filename
+         conflicts with examples/startup-files/bashrc on case-insensitive
+         file systems
+
+tests/exec.right
+       - renamed from execscript.right because that filename is too long
+         for System V 14-char filename systems
+
+tests/run-set-e
+       - renamed from run-set-e-test
+
+tests/misc/perftest
+       - renamed from tests/misc/haertel.perftest because that filename is
+         too long for System V 14-char filename systems
+
+lib/glob/fnmatch.c
+       - new version with full POSIX.2 BRE matching (character classes,
+         collating symbols, equivalence classes), full support for
+         strcoll(3), and case-insensitive pattern matching
+
+lib/glob/fnmatch.h
+       - new version, with necessary symbols for the new fnmatch.c
+
+tests/posixpat.{tests,right}, tests/run-posixpat
+       - test suite for the POSIX.2 BRE pattern matching code
+
+variables.c
+       - make sure that array assignment using the compound syntax empties
+         the array before doing the assignment
+         [in bash-2.01.1]
+
+trap.c
+       - new function, trap_to_sighandler(sig), which returns the correct
+         trap handler for SIG depending on the information in sigmodes[sig]
+         [in bash-2.01.1]
+
+sig.h
+       - extern declarations for trap_handler and trap_to_sighandler
+         [in bash-2.01.1]
+
+jobs.c
+       - if we get an interrupt while waiting for a command to complete,
+         and there was a trap set on SIGINT that resets the handler to
+         SIG_DFL, the value that waitchld uses for old_trap_handler will
+         be wrong (it will be trap_handler, but trap_handler no longer
+         knows anything about SIGINT).  If old_signal_handler is trap_handler,
+         but signal_is_trapped(SIGINT) returns 0, we need to call
+         trap_to_sighandler to decide what to do
+         [in bash-2.01.1]
+
+                                   7/7
+                                   ---
+locale.c
+       - fix to set_locale_var to handle an assignment to LC_ALL (e.g., as
+         the result of `unset LANG') when default_locale is null
+         [in bash-2.01.1]
+
+                                   7/8
+                                   ---
+builtins/umask.def, doc/{bash.{1,html},bashref.texi}
+       - added `-p' option for umask to print output in a reusable form
+
+                                   7/9
+                                   ---
+doc/{bash.{1,html},bashref.texi}
+       - removed descriptions of `-type', `-path', and `-all' options to
+         the `type' builtin in preparation for removing them in the next
+         release
+
+builtins/type.def
+       - removed mention of `-type', `-path', and `-all' options from the
+         long help description
+
+error.c, error.h
+       - new function: internal_warning, for warning messages
+
+variables.c
+       - changed a call to internal_error to use internal_warning
+       - modified change of 7/3 so that arrays are not emptied until
+         just before the shell is about to assign the new values, so
+         the old value can be used to generate the rhs of the assignment,
+         if necessary.  This is how `normal' shell variables work
+         [in bash-2.01.1]
+
+jobs.c, jobs.h
+       - delete_job now takes a second int argument and prints a warning
+         message when deleting a stopped job if the second argument is
+         non-zero
+
+jobs.c, builtins/jobs.def
+       - changed all calls to delete_job to provide a proper second arg
+
+lib/readline/bind.c
+       - broke rl_read_init_file into an `upper' and `lower' half in
+         preparation for adding file inclusion capability to inputrc
+         parsing
+       - handle_parser_directive now displays an error message if an
+         unknown directive is encountered
+       - parser_endif now prints an error message if an $endif without
+         a matching $if is found
+       - added `$include' parser directive to read bindings and commands
+         from another file at that point
+
+lib/readline/doc/rluser.texinfo, doc/{bash.{1,html},readline.3}
+       - documented new readline `$include' parser directive
+
+shell.c, parse.y
+       - added a new invocation option, --dump-po-strings, and code to
+         make it dump translatable strings ($"...") in GNU gettext
+         `po' format
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new `--dump-po-strings' invocation option
+
+lib/readline/{{kill,funmap}.c,readline.h}
+       - added `rl_paste_from_clipboard()', bound to `paste-from-clipboard'
+         for CYGWIN32 users
+
+lib/readline/kill.c
+       - incorporated bfox's patches for `iterative' yank-last-arg handling.
+         This means that one can keep pressing M-. and move backwards in
+         the history, yanking the last argument of successive history lines
+
+lib/readline/rlwinsize.h
+       - new file, encapsulates various locations of the definition for
+         `struct winsize'
+
+aclocal.m4
+       - augmented BASH_STRUCT_WINSIZE to look in termios.h as well as
+         sys/ioctl.h for definition of `struct winsize'
+
+lib/readline/rltty.h
+       - include "rlwinsize.h" after including tty-driver-specific header
+         file
+
+                                  7/10
+                                  ----
+support/config.guess
+       - add better support for SunOS on M68K (old Sun3 machines)
+
+parse.y
+       - check for compound array assignment in read_token_word only if
+         there are characters before the `=' (which would make it a legal
+         assignment statement).  This fixes the problem with defining a
+         function named `=' with `=() { echo foo; }'
+         [in bash-2.01.1]
+
+jobs.c, jobs.h
+       - nohup_all_jobs and delete_all_jobs now take a parameter which
+         says whether or not to restrict their operation to only running
+         jobs
+
+jobs.c
+       - changed all calls to delete_all_jobs
+
+builtins/jobs.def
+       - added `-a' (all jobs) and `-r' (running jobs only) options to
+         `disown'
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new `-a' and `-r' options to `disown'
+
+findcmd.c, findcmd.h
+       - new files with command searching code from execute_cmd.c and
+         function declarations from execute_cmd.h
+
+Makefile.in, builtins/Makefile.in
+       - updated dependencies to account for new findcmd.[ch]
+       - updated dependencies to account for new redir.[ch]
+
+redir.c, redir.h
+       - new files with code that sets up lists and performs redirections
+         from execute_cmd.c and execute_cmd.h
+
+execute_cmd.c
+       - include new findcmd.h, redir.h
+
+                                  7/11
+                                  ----
+Makefile.in, configure.in
+       - PROFILE_FLAGS is now substituted into the Makefile by configure
+
+                                  7/14
+                                  ----
+print_cmd.c
+       - make sure single_quote is called from xtrace_print_word_list
+         to correctly quote each word of trace output, especially those
+         with embedded quotes
+         [in bash-2.01.1]
+
+aclocal.m4
+       - extended BASH_CHECK_GETPW_FUNCS so that it checks that getpwuid
+         and getpwnam can also be declared, as well as getpwent
+         [in bash-2.01.1]
+       - in BASH_FUNC_PRINTF, cast printf to type `_bashfunc' before trying
+         to assign it to `pf' to avoid any prototype problems in the
+         declaration
+         [in bash-2.01.1]
+
+trap.c
+       - include <unistd.h> before any of the bash-specific header files,
+         but after config.h
+         [in bash-2.01.1]
+
+test.c
+       - include <errno.h> and declare `extern int errno' before including
+         any of the bash-specific include files, but after <unistd.h>
+         [in bash-2.01.1]
+
+builtins/Makefile.in
+       - PROFILE_FLAGS is now substituted into the Makefile by configure
+
+configure.in
+       - new options, --enable-profiling and --enable-static-link, to turn
+         on profiling with gprof and link bash statically (if using gcc)
+         for use as a root shell.  The former implies the latter.  If
+         we're linking statically, dynamic loading of new builtins is not
+         available
+
+doc/bashref.texi
+       - documented new --enable-profiling and --enable-static-link
+         options in installation section; regenerated INSTALL
+
+lib/glob/glob.[ch]
+       - new global variable, glob_ignore_case, turns on case-insensitive
+         filename matching in fnmatch() using the FNM_CASEFOLD flag
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new shopt `nocaseglob' option
+
+                                  7/15
+                                  ----
+bashline.c
+       - when glob_complete_word is called with state == 0, make sure we
+         set rl_filename_completion_desired so that proper quoting of
+         the resultant filenames is performed
+         [in bash-2.01.1]
+
+                                  7/16
+                                  ----
+externs.h, oslib.c
+       - strcasecmp and strncasecmp replacements should have `const char *'
+         as the first two arguments, to match OS definitions
+         [in bash-2.01.1]
+
+                                  7/17
+                                  ----
+(many files)
+       - changes for minix-2.0, mostly just adding #ifndef _MINIX around
+         include files that minix doesn't provide, like <sys/param.h> and
+         <sys/file.h>
+
+lib/readline/terminal.c
+       - removed `outchar' function; use _rl_output_character_function in
+         its place
+
+support/config.guess
+       - changes to recognize HP_ARCH of `hppa2.0'
+
+test.c
+       - new `-N' option: `test -N file' returns true if FILE exists and
+         has been modified since it was last accessed
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new `test -N' option
+
+                                  7/22
+                                  ----
+aclocal.m4
+       - prefer /var/spool/mail to /usr/spool/mail in BASH_DEFAULT_MAIL_DIR
+         [in bash-2.01.1]
+
+lib/readline/{complete,bind}.c
+       - new readline variable, print-completions-horizontally, which causes
+         matches to be printed across the screen (like `ls -x') rather than
+         up-and-down (like `ls')
+       - new readline variable, completion-ignore-case, which causes filename
+         completion and matching to be performed case-insensitively
+
+doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
+       - documented new print-completions-horizontally variable
+       - documented new completion-ignore-case variable
+
+_distribution, Makefile.in
+       - bumped the version number up to 2.02-alpha1
+
+bracecomp.c
+       - fixes so that the braces are not quoted by the filename quoting
+         function when complete-into-braces is executed with M-{.  The
+         brace completion functions do filename quoting themselves
+         [in bash-2.01.1]
+
+pathexp.c
+       - changed quote_string_for_globbing so that it takes a flags word
+         as its second argument
+
+pathexp.h
+       - defines for flags passed to quote_string_for_globbing
+
+subst.c,execute_cmd.c
+       - changed calls to quote_string_for_globbing to pass the correct
+         flag arguments
+
+expr.c
+       - added a `**' binary operator to do exponentiation (2**16 == 65536).
+         precedence is lower than arithmetic operators, higher than unary
+         operators (2**16-1 == 65535)
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new `**' arithmetic binary operator
+
+                                  7/24
+                                  ----
+shell.c
+       - added new (currently undocumented) `--wordexp' option to do the
+         job required by POSIX.2 wordexp().  If -n is supplied along with
+         --wordexp, command substitution is disallowed and the shell
+         exits with a status of 125 if one is attempted.  If there is an
+         expansion error, the shell exits with a status of 127.  If there
+         is a shell parsing error, the shell exits with a status of 126.
+         Otherwise, the exit status is 0.  The current output is
+
+               number of words\n
+               number of bytes\n
+               expanded words, one per line, separated by newlines
+
+         This will have to be changed when an interface to glibc is coded
+
+                                  7/28
+                                  ----
+hashcmd.h
+       - reduced the default size of the filename hash table from 631
+         to 107
+
+sig.c
+       - don't call initialize_siglist if HAVE_UNDER_SYS_SIGLIST is defined
+         [in bash-2.01.1]
+
+siglist.c
+       - don't compile this file if HAVE_UNDER_SYS_SIGLIST is defined
+         [in bash-2.01.1]
+
+variables.c
+       - fix to make $RANDOM work better in subshells
+         [in bash-2.01.1]
+
+aclocal.m4
+       - new macro, BASH_DECL_UNDER_SYS_SIGLIST, looks for _sys_siglist in
+         <signal.h> and <unistd.h>, defines UNDER_SYS_SIGLIST_DECLARED if
+         found
+         [in bash-2.01.1]
+       - change BASH_UNDER_SYS_SIGLIST to require BASH_DECL_UNDER_SYS_SIGLIST,
+         like BASH_SYS_SIGLIST requires AC_DECL_SYS_SIGLIST
+         [in bash-2.01.1]
+
+config.h.in
+       - add a line for UNDER_SYS_SIGLIST_DECLARED
+         [in bash-2.01.1]
+
+configure.in
+       - make sure that SVR4_2 is defined for machines that have $host_os
+         sysv4.2* (e.g., sysv4.2MP) as well as $host == sysv4.2
+         [in bash-2.01.1]
+
+                                  7/29
+                                  ----
+command.h
+       - new command type, ARITH_COM, used to create and execute a ((...))
+         command without translating it into let "..."
+
+parse.y
+       - changes to the grammar and lexer so that ((...)) is parsed as a
+         command of type ARITH_CMD.  An ARITH_CMD is a WORD_LIST, for
+         future expansion, even though only the first word is used
+
+make_cmd.c, make_cmd.h
+       - definition and declaration of a function to build an arithmetic
+         command
+
+dispose_cmd.c
+       - added code to dispose of arithmetic commands
+
+print_cmd.c
+       - added code to print arithmetic commands, both `regularly' and
+         when they're being traced with `set -x'
+
+externs.h
+       - extern declaration for xtrace_print_arith_cmd
+
+copy_cmd.c
+       - added code to copy arithmetic commands
+
+execute_cmd.c
+       - added code to directly execute arithmetic commands -- they are
+         a shell_control_structure, so just about everything like
+         redirections and piping is taken care of by the boilerplate code.
+         All that's needed is to expand the expression (which is within
+         double quotes -- added by parse.y:parse_arith_cmd()), print it
+         if tracing is enabled, call the expression evaluator, and return
+         an appropriate result
+
+                                  7/30
+                                  ----
+input.c
+       - new function, set_buffered_stream(fd, bp), sets the buffered stream
+         associated with FD to BP and returns the old buffered stream
+
+input.h
+       - extern declaration for set_buffered_stream
+
+parse.y
+       - call set_buffered_stream rather than manipulating the BUFFERS array
+         directly
+
+shell.c
+       - unset_bash_input now takes an argument, CHECK_ZERO.  This tells it
+         whether to check whether default_buffered_input is >= 0 or just > 0
+
+externs.h
+       - changed extern declaration for unset_bash_input
+
+execute_cmd.c, jobs.c, nojobs.c
+       - changed calls to unset_bash_input to add appropriate argument
+
+input.h
+       - #undef B_* before defining them as flag values for b_flags.  Some
+         systems, like SVR4, have a B_ERROR define in a file included by
+         jobs.c and nojobs.c, and it causes a warning
+
+                                  7/31
+                                  ----
+fnmatch.c
+       - rewrote most of fnmatch(), so that it now implements ksh-88 style
+         pattern matching (`[@+*?!](patlist)') if the FNM_EXTMATCH flag
+         is set
+
+fnmatch.h
+       - added a define for FNM_EXTMATCH
+
+                                   8/4
+                                   ---
+lib/readline/display.c
+       - fixed _rl_redisplay_after_sigwinch () so that it really redisplays
+         only the portion after the final newline of a multi-line prompt
+         [in bash-2.01.1]
+
+bashline.c
+       - attempt_shell_completion no longer returns matches if a glob pattern
+         matches more than one filename -- it caused too many problems
+         [in bash-2.01.1]
+
+                                   8/5
+                                   ---
+lib/glob/glob.c
+       - updated glob_pattern_p so that the extended matching operators
+         are recognized
+
+pathexp.c
+       - udpated unquoted_glob_pattern_p so that the extended matching
+         operators are recognized
+       - udpated quote_globbing_chars so that the extended matching
+         operators are recognized and quoted appropriately
+
+subst.c
+       - updated match_pattern_char so that the extended matching operators
+         are recognized
+
+parse.y
+       - updated read_token_word so that it parses an extended matching
+         pattern as a single word
+
+jobs.c
+       - if a job is suspended with SIGTSTP, and the user has set
+         checkwinsize with `shopt', update the window size
+         [in bash-2.01.1]
+
+pathexp.c, pathexp.h
+       - new global variable, extended_glob, controls whether the extended
+         pattern matching features are enabled
+
+pathexp.h
+       - new define, FNMATCH_EXTFLAG, to be OR'd with other values for
+         flags argument to fnmatch to enable the extended pattern matching
+         features if extended_glob is set
+
+{pathexp,execute_cmd,bashhist,subst,test}.c, builtins/help.def
+       - changed calls to fnmatch to add FNMATCH_EXTFLAG to the flags arg if
+         extended_glob is non-zero
+
+lib/glob/glob.c
+       - changed flags arg passed to fnmatch to include FNM_EXTMATCH if
+         extended_glob is non-zero (#ifdef SHELL)
+
+                                   8/6
+                                   ---
+builtins/shopt.def
+       - added a new `extglob' shell option, controls the value of
+         extended_glob
+
+                                   8/7
+                                   ---
+doc/{bash.{1,html},bashref.texi}
+       - documented new extended pattern matching operators and the `extglob'
+         shell option
+
+tests/{extglob.{tests,right},run-extglob}
+       - test suite for the new extended globbing features
+
+                                   8/8
+                                   ---
+parse.y, pathexp.h, lib/glob/fnmatch.c
+       - made the extended globbing code #ifdef EXTENDED_GLOB
+
+config.h.in
+       - added a line for EXTENDED_GLOB, controlled by configure
+
+configure.in
+       - new option, --enable-extended-glob, controls defining of
+         EXTENDED_GLOB (on by default)
+
+doc/bashref.texi
+       - documented new `configure' `--enable-extended-glob' option
+
+                                  8/11
+                                  ----
+builtins/printf.def
+       - new `printf' builtin, implemented according to POSIX.2 spec
+         for printf(1)
+
+Makefile.in,builtins/Makefile.in
+       - added necessary stuff for new printf builtin
+
+                                  8/12
+                                  ----
+lib/readline/isearch.c
+       - change to make ^G interrupt the incremental search correctly
+         [in bash-2.01.1]
+
+configure.in, config.h.in
+       - configure now checks for the availability of strtoul(3)
+
+builtins/printf.def
+       - use strtoul for the `%o', `%u', `%x', and `%X' formats if it
+         is available
+
+                                  8/13
+                                  ----
+tests/{printf.{right,tests},run-printf}
+       - extensive test suite for the new `printf' builtin
+
+builtins/Makefile.in
+       - change so that `builtext.h' is not recreated every time the source
+         file for a builtin is changed if the contents are the same.  This
+         keeps many files from being recompiled
+
+                                  8/14
+                                  ----
+subst.c
+       - changed verify_substring_values so that it returns -1 for substring
+         range errors, 0 for expression errors, and 1 for success
+         [in bash-2.01.1]
+       - changed parameter_brace_substring to return an error if
+         verify_substring_values returns 0, and a null string if it returns
+         -1.  This matches the ksh93 behavior
+         [in bash-2.01.1]
+
+trap.c
+       - changed decode_signal so that it makes sure the first three
+         characters of a signal name are `SIG' before allowing the `SIG'
+         prefix to be omitted.  This is so a signal spec of `T' does not
+         match `EXIT', for instance
+         [in bash-2.01.1]
+
+builtins/trap.def
+       - make sure that showtrap() displays traps for signals with unknown
+         names using the signal number
+         [in bash-2.01.1]
+shell.c
+       - make sure that `bash -r' doesn't turn on the restricted mode until
+         after the startup files are executed
+         [in bash-2.01.1]
+
+doc/{bash.{1,html},bashref.texi}
+       - documented printf builtin
+
+                                  8/15
+                                  ----
+general.c
+       - added \xNNN escape to ansicstr -- NNN are up to three hex digits.
+         This affects $'...', `echo -e', and printf
+
+builtins/printf.def
+       - added \xNNN escape to bexpand -- NNN are up to three hex digits.
+         This affects printf's `%b' conversion specifier
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new \xNNN escape sequence for echo, $'...', and printf
+
+builtins/setattr.def
+       - make sure that a variable found in the temp environment does not
+         cause a null string to be assigned by bind_variable (e.g.,
+               foo="" export foo
+         )
+         [in bash-2.01.1]
+
+                                  8/18
+                                  ----
+subst.c
+       - fixed a bug that sometimes caused bad memory (pointer into an
+         allocated block) to be passed to free when doing arithmetic
+         substitution.  Bug report from stevet@myofb.org
+         [in bash-2.01.1]
+
+                                  8/19
+                                  ----
+subst.c
+       - considerable changes:  moved the code that expands a single
+         $... parameter expansion into a separate function: param_expand()
+         This function returns a string, which may contain characters
+         quoted with CTLESC or CTLNUL without doing word splitting
+       - changed expand_word_internal to not remove the expansion of "$*"
+         if the number of positional parameters is > 0
+       - changed the '"' case of expand_word_internal to remove quoted
+         nulls from the resultant word if the expansion was not "$@", and
+         the word is not a quoted null string ([] == CTLNUL, [1] == '\0')
+
+subst.c, variables.c
+       - moved the code that handles special variables from subst.c to
+         variables.c
+
+                                  8/20
+                                  ----
+subst.c
+       - rearranged the source a bit to group functions with similar
+         operation together
+       - fixed parameter_brace_expand so that it no longer allows
+         indirect expansion of `special' variables
+       - fixed parameter_brace_expand so taking the length of some of
+         the shell's special parameters works again
+       - moved all of the code that computes the length of a shell
+         parameter (the ${#xxx} expansion) into parameter_brace_expand_length.
+         Previously, the code that handled the lengths of the shell's
+         special parameters was in parameter_brace_expand_word
+       - valid indirect expansions are now only variable names or positional
+         parameters
+
+                                  8/21
+                                  ----
+subst.c
+       - fixed param_expand to raise an expansion error if $! is being
+         expanded and no asynchronous processes have been created
+       - an expression error in a $((...)) arithmetic expansion now causes
+         a non-interactive shell running in POSIX mode to exit
+       - relaxed change of 8/20 to allow indirect references to $#, $@, $*
+
+builtins/bashref.texi
+       - documented new posix-mode exit on invalid expressions in $((...))
+
+lib/readline/complete.c
+       - don't call rl_strpbrk unless rl_filename_quote_characters is not
+         NULL -- strpbrk requires non-NULL arguments
+         [in bash-2.01.1]
+
+                                  8/22
+                                  ----
+bashline.c
+       - don't make `history-expand-line' a bindable command unless
+         BANG_HISTORY is defined, and don't compile the code for that
+         command in unless BANG_HISTORY is defined
+       - make history_expand_line(), tcsh_magic_space(), alias_expand_line(),
+         and history_and_alias_expand_line() int-returning functions that
+         return 0 for success and non-zero on error.  This allows
+         tcsh_magic_space() to just call history_expand_line() and insert
+         a space if that returns successfully
+       - `magic-space' is now a bindable readline command
+
+doc/bash.{1,html}, lib/readline/doc/rluser.texinfo
+       - documented new `magic-space' bindable readline command
+
+                                  8/25
+                                  ----
+parse.y
+       - fixed decode_prompt_string so that values of $PWD longer than
+         PATH_MAX don't cause buffer overruns (char t_string[PATH_MAX])
+         [in bash-2.01.1]
+
+general.c
+       - fixed polite_directory_format so that values of $HOME longer
+         than PATH_MAX don't cause buffer overruns (char tdir[PATH_MAX])
+         [in bash-2.01.1]
+
+subst.c
+       - fix to expansion of $* so that the positional parameters are
+         separated by the first character of $IFS, even when the expansion
+         is not within double quotes, so the correct split is still
+         performed even when IFS does not contain a space.  Works for
+         ${*}, too
+       - fix to expansion of $@ so that the positional parameters are
+         separated by the first character of $IFS, even when the expansion
+         is not within double quotes, so the correct split is still
+         performed even when IFS does not contain a space.  Works for
+         ${@}, too
+       - new function, string_list_dollar_at(), which is to $@ as
+         string_list_dollar_star is to $*
+       - fixed expansion of $@ so that splitting is still done even if
+         IFS is unset or NULL, as POSIX.2 specifies (section 3.5.2)
+       - fixed expansion of $* so that it expands to multiple words if there
+         is more than one positional parameter, just like $@, even if
+         IFS is unset or NULL
+       - new function list_quote_escapes, quotes (with CTLESC) all
+         CTLESC and CTLNUL characters in each member of the list
+
+tests/dollar-{at,star}.sh
+       - combined into dollar-at-star, changed run-dollars accordingly
+
+                                  8/26
+                                  ----
+Makefile.in
+       - make the `tests' target use $(SHELL) instead of hardcoding `sh'
+
+                                  8/29
+                                  ----
+subst.c
+       - expand_word_list_internal now takes a flags word as the second
+         argument, telling which expansions to perform on the WORD_LIST
+       - broke expand_word_list_internal into several functions: one
+         each to do brace expansion, glob expansion, and the `normal'
+         shell expansions
+       - new extern function: expand_words_shellexp() to perform the
+         `normal' shell expansions on a WORD_LIST
+
+subst.h
+       - extern declaration for expand_words_shellexp
+
+bashline.c
+       - fixed a problem with attempt_shell_completion where it attempted
+         to refer to rl_line_buffer[-1] (completion at the start of the
+         line, which means that ti == -1, which means that the test for
+         rl_line_buffer[ti] at line 715 was an array bounds error
+         [in bash-2.01.1]
+
+eval.c
+       - new function, parse_string_to_word_list(), which takes a string
+         and runs it through the parser, returning the resultant word
+         list
+
+externs.h
+       - new extern declaration for parse_string_to_word_list()
+
+variables.c
+       - change assign_array_var_from_string to first split the string
+         between the parens on whitespace, then expand the resultant
+         list of words with all the shell expansions before doing the
+         assignment
+
+                                   9/4
+                                   ---
+redir.c, redir.h
+       - redirection_error is no longer a static function
+
+builtins/evalstring.c
+       - changes to handle $( < filename ) (equivalent to $(cat filename))
+         as in ksh
+
+lib/readline/bind.c
+       - added two new functions: rl_unbind_function_in_map(func, map),
+         which unbinds all keys that execute FUNC in MAP; and
+         rl_unbind_command_in_map(command, map), which unbinds all keys
+         bound to COMMAND in MAP
+
+lib/readline/readline.h
+       - extern declarations for rl_unbind_{function,command}_in_map
+
+lib/readline/doc/rltech.texi
+       - documented rl_unbind_{function,command}_in_map
+
+builtins/bind.def
+       - added a new option, -u FUNCNAME, which unbinds all key sequences
+         bound to FUNCNAME in the specified (or current) keymap
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new $( < filename ) command substitution
+       - documented new bind -u FUNCNAME option
+
+                                   9/5
+                                   ---
+shell.c
+       - send SIGHUP to all jobs when an interactive login shell exits if
+         the variable `hup_on_exit' is non-zero
+       - modified run_startup_files so that if `NON_INTERACTIVE_LOGIN_SHELLS'
+         is #define'd (perhaps in config.h.top, though there is nothing there
+         for it), all login shells (interactive and non-interactive) run
+         /etc/profile and one of the per-user login shell startup files
+
+builtins/shopt.def
+       - new shopt option `huponexit' to control the value of hup_on_exit
+
+doc/{bash.{1,html},bashref.texi}
+       - documented new `huponexit' shell option
+
+                                   9/8
+                                   ---
+builtins/common.c
+       - changed contains_shell_metas to return 1 if a tilde appears at the
+         start of a string or after a `=' or `:'
+       - changed backslash_quote to quote a tilde if it appears at the start
+         of a string or after a `=' or `:'
+
+lib/readline/complete.c
+       - moved rl_tilde_expand to util.c; it doesn't really have anything
+         to do with completion
+       - moved insert_text to readline.c, renamed it _rl_replace_text (since
+         that's really what it does), changed callers
+       - moved code that postprocesses the list of completion matches into
+         a new function: postprocess_matches
+       - new implementation of tcsh-like menu completion in a single new
+         function: rl_menu_complete
+
+lib/readline/{funmap.c,readline.h}
+       - necessary declarations for binding rl_menu_complete to the
+         new `menu-complete' command
+
+doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
+       - documented new `menu-complete' bindable readline command
+
+                                   9/9
+                                   ---
+jobs.c
+       - delete_job should print a warning only if subshell_environment
+         is 0, so we don't print bogus warnings when shell scripts without
+         a leading #! are executed
+
+                                  9/10
+                                  ----
+builtins/read.def
+       - fixed the code so that the `read' is automatically restarted when
+         it returns -1 with errno == EINTR.  SIGINT is handled by the
+         interrupt handler, since interrupt_immediately is set to 1, so
+         this handles things like SIGCHLD
+         [in bash-2.01.1]
+
+                                  9/11
+                                  ----
+test.c
+       - reorganized the code slightly to make it easier to add the ksh-like
+         [[...]] compound command
+
+test.h
+       - new file, with extern declarations for functions available in test.c
+
+externs.h
+       - moved declaration of test_command to test.h
+
+builtins/test.def
+       - include `test.h'
+
+                                  9/16
+                                  ----
+{command,make_cmd,dispose_cmd,externs,subst}.h
+parse.y, subst.c
+{make,dispose,copy,print,execute}_cmd.c
+       - changes to add the new ksh-93 compatible [[...]] conditional command
+
+configure.in
+       - new enable option, --enable-cond-command, to compile in the [[...]]
+         command code
+
+config.h.in
+       - new #define, COND_COMMAND, to compile in the [[...]] command code
+
+tests/{run-cond,cond.{tests,right}}
+       - test suite for the new [[...]] command
+
+{builtins,lib/{readline,glob,tilde}}/Makefile.in
+       - explicit dependencies for .o files on .c files for losing makes
+         like Solaris
+
+doc/{bash.{1,html},bashref.texi}
+       - documented the new `[[' compound command
+       - documented the test/[ builtin behavior based on the number of
+         arguments in the description of the builtin
+       - made a new section for conditional expressions that just lists
+         the available primaries -- the connectives and other operators
+         are listed in the description of the [[ command and the test/[
+         builtin
+
+                                  9/18
+                                  ----
+builtins/set.def
+       - minus_o_option_commands is now a global function so the shopt
+         code can use it
+       - minus_o_option_commands now takes an argument telling it which
+         options to print, just like list_minus_o_options
+       - new function, print_minus_o_option, which prints the value of
+         a `set -o' option either in the traditional format or in the
+         format used by `set +o'
+       - changed list_minus_o_opts and minus_o_option_commands to call
+         print_minus_o_option
+
+builtins/shopt.def
+       - `shopt -p' now causes output to be printed in a format reusable
+         as input (the format is a series of shopt commands, like the
+         output of `set +o')
+       - fixed a bug that made `shopt -so' and `shopt -uo' not work
+       - fixed list_shopt_o_options so that `shopt -op' acts like `set +o'
+       - fixed list_shopt_o_options to that `shopt -op optname' prints the
+         value of optname in a reusable format
+       - fixed list_some_o_options so that `shopt -ops' and `shopt -opu'
+         work and display output in a reusable format
+
+                                  9/19
+                                  ----
+doc/{bash.{1,html},bashref.texi}
+       - documented new `shopt -p' behavior
+
+shell.c
+       - made `bash +o' display the same output as `set +o' and then
+         start an interactive shell (previously `bash -o' and `bash +o'
+         displayed the same thing)
+
+builtins/common.h
+       - added prototypes to the extern function declarations
+
+                                  9/22
+                                  ----
+builtins/evalstring.c
+       - fixed the DISCARD case of the jump_to_top_level so that it
+         doesn't try to call dispose_command(command) after the
+         `pe_dispose' unwind frame gets run, since that disposes the
+         command
+
+                                  9/23
+                                  ----
+test.[ch]
+       - test_eaccess is now a global function so that globbing code can
+         use it
+
+lib/glob/glob.c
+       - rewrote glob_vector to be slightly more efficient and to not
+         read the directory if the filename pattern does not contain
+         any globbing chars.  This satisfies the POSIX requirement that
+         read permission is not required for a directory when the
+         pathname component does not contain a pattern character (bug
+         reported by jsm28@cam.ac.uk)
+
+subst.c
+       - fixed parameter_brace_expand so that ${array[@]} and ${array[*]}
+         behave correctly when IFS is unset or set to something that does
+         not contain a space (they should result in separate words, just
+         like $@ and $*)
+
+tests/{run-array2,array-at-star,array2.right}
+       - tests for the expansions of ${array[@]} and ${array[*]}, derived
+         from the tests in dollar-at-star
+
+                                  9/24
+                                  ----
+jobs.c
+       - fixed cleanup_dead_jobs so that it doesn't remove the job
+         containing last_asynchronous_pid from the job table.  This
+         fixes the POSIX.2 `wait' requirement problem
+
+                                  9/25
+                                  ----
+parse.y
+       - added `\r' escape sequence to the prompt expansion code
+
+lib/readline/chardefs.h
+       - added defines for ISOCTAL, OCTVALUE, isxdigit (if not defined),
+         and HEXVALUE
+
+lib/readline/bind.c
+       - added `normal' echo/printf-like backslash escapes to the
+         key sequence translation code, with the addition that \d
+         expands to RUBOUT.  This means that key sequence definitions
+         (before the `:') and macro values may contain these special
+         backslash-escape sequences
+       - now that we can translate octal escape sequences in key bindings,
+         change _rl_get_keyname so that it turns characters with values
+         128-159 inclusive into octal escape sequences (\200-\237), since
+         those characters are not ASCII or ISO Latin 1
+
+doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
+       - documented new backslash escapes for readline key sequence and
+         macro translation
+
+builtins/pushd.def
+       - new function, get_dirstack_from_string(char *string), returns an
+         element from the directory stack or null, treating the argument
+         exactly as `dirs string' would, with the exception that if
+         the first character of `string' is not `+' or `-', a `+' is
+         assumed
+
+builtins/common.h
+       - new extern declaration for get_dirstack_from_string
+
+general.c
+       - added code to bash_special_tilde_expansions to get the expansion
+         using get_dirstack_from_string() if the first character of the
+         tilde-prefix is a digit or the first character is a `+' or `-'
+         and the second is a digit
+
+tests/dstack.{tests,right}
+       - renamed from dirstack.{tests,right}
+
+tests/dtack2.{tests,right}
+       - new tests for the directory stack tilde expansion code
+
+tests/run-dirstack
+       - now runs both dstack and dstack2
+
+                                  10/3
+                                  ----
+trap.c
+       - reordered header file inclusion for irix 4
+
+execute_cmd.c
+       - fixed select_query so that a reply that is not a number is treated
+         the same as a numeric reply that is out of range
+
+lib/readline/util.c
+       - added a backwards-compatibility definition of _rl_savestring()
+
+builtins/set.def
+       - initialize_shell_options now takes an argument saying whether or
+         not we should parse $SHELLOPTS from the environment.  The shell
+         does not parse the value if it's restricted, running setuid, or
+         running in `privileged mode'
+
+shell.c
+       - change call to initialize_shell_options to add the correct argument
+
+builtins/common.h
+       - changed extern declaration for initialize_shell_options
+
+doc/{bash.{1,html},bashref.texi}
+       - added note that the shell ignores $SHELLOPTS in the environment at
+         startup if running in privileged mode
+       - added note that the restricted shell does not parse $SHELLOPTS from
+         the environment at startup
+
+                                  10/6
+                                  ----
+aclocal.m4
+       - change BASH_RLIMIT_TYPE so that it looks for rlim_t in
+         <sys/resource.h> as well as <sys/types.h>, for Solaris 2.6
+       - new macro, BASH_LARGE_FILE_SUPPORT, to enable special compilation
+         options for large files on Solaris 2.6 (from eggert@twinsun.com)
+
+mailcheck.c
+       - the `file_size' member of the FILEINFO struct should be of
+         type `off_t'
+       - the `size' variable in file_has_grown should be of type `off_t'
+       - the RESET_MAIL_FILE macro should initialize file_size to 0, not 0L
+
+builtins/Makefile.in
+       - LDFLAGS and LOCAL_LDFLAGS are now set by configure
+       - `mkbuiltins' is now created from `mkbuiltins.o' instead of directly
+         from the source to the executable
+
+builtins/evalfile.c
+       - fixed _evalfile so that it handles large files correctly on
+         systems where the st_size member of `struct stat' will not fit
+         into an `int'
+
+builtins/mkbuiltins.c
+       - don't assume that st_size fits into an int
+
+input.[ch]
+       - the `b_size' member of a struct BSTREAM is now of type `size_t'
+       - changed third argument to make_buffered_stream to size_t; changed
+         caller
+       - changed `size' variable in fd_to_buffered_stream to type `size_t'
+
+general.h
+       - include <sys/resource.h> if HAVE_SYS_RESOURCE_H and RLIMTYPE are
+         both defined, for possible necessary definition of RLIMTYPE
+         (e.g., on Solaris 2.6)
+
+{execute_cmd,jobs}.c, builtins/times.def
+       - don't include <sys/resource.h> explicitly if RLIMTYPE is defined,
+         since general.h will include it in that case
+
+lib/readline/bind.c
+       - new function, char *_rl_read_file(filename, sizep), which reads
+         FILENAME into a malloced buffer, returning the buffer and the
+         size of the buffer in *SIZEP
+
+lib/readline/histfile.c
+       - changed read_history_range and history_truncate_file to handle
+         large files
+
+hashcmd.c
+       - find_hashed_filename should not add `./' to the front of a pathname
+         that already begins with `./'
+
+                                  10/8
+                                  ----
+support/config.sub
+       - recognize `hppa2.0' as a valid machine architecture
+
+aclocal.m4
+       - changed BASH_CHECK_LIB_TERMCAP so that `gnutermcap' is not chosen
+         if `$prefer_curses' is set to something
+
+bashhist.c
+       - don't use HISTCONTROL or HISTIGNORE to remove lines from the
+         second and subsequent lines of a multi-line command
+         (current_command_line_count > 1).  Old code did this only when
+         command-oriented-history was enabled
+
+doc/{bash.{1,html},bashref.texi}
+       - changed descriptions of HISTCONTROL and HISTIGNORE to state that
+         these variables are not applied to the second and subsequent
+         lines of a multi-line command
+
+builtins/hash.def, {copy,dispose}_cmd.c
+       - include "bashtypes.h" -- cray machines need it because of their
+         oddball definition of `word'
+
+configure.in
+       - changed check of ${host_cpu} to check for `*cray*' and `*Cray*'
+         when deciding whether to include the GNU malloc, since it
+         seems that ${host_cpu} gets set to `CrayYMP'
+
+                                  10/9
+                                  ----
+configure.in
+       - look for strtod and strtol in libc
+       - make lib/sh directory in build directory if not there
+       - create lib/sh/Makefile
+
+config.h.in
+       - added HAVE_STRTOD and HAVE_STRTOL
+
+Makefile.in
+       - changes for lib/sh/libsh.a (shell library)
+
+builtins/printf.def
+       - took out the `#ifdef STRTOUL' code, since strtoul is in libsh.a,
+         and will be resolved from there if it's not in libc
+
+variables.c
+       - call strtol() instead of string_to_long()
+
+general.c, general.h
+       - removed string_to_long
+       - changed legal_number to use strtol so it correctly sets errno
+         to ERANGE on overflow
+       - moved bash_getcwd_errstr here from lib/sh/oslib.c
+
+externs.h
+       - moved extern declarations for functions defined in libsh to a
+         separate section of the file, added extern declarations for
+         other functions in libsh
+
+builtins/ulimit.def
+       - changed macro definition for string_to_rlimtype to call strtol
+         directly instead of string_to_long
+
+lib/sh/clktck.c
+       - moved get_clock_tck to its own file, since it's compiled in
+         unconditionally
+
+                                  10/10
+                                  -----
+lib/sh/getenv.c
+       - moved getenv() and __getenv() here from lib/sh/oslib.c
+
+lib/sh/{setlinebuf,strerror,strcasecmp}.c
+       - moved {setlinebuf,strerror,strcasecmp}() from oslib.c to
+         individual files
+
+lib/sh/Makefile.in, Makefile.in
+       - changes for new files in lib/sh
+
+aclocal.m4
+       - new macro BASH_SYS_RESTARTABLE_SYSCALLS, which does what
+         AC_SYS_RESTARTABLE_SYSCALLS does, but using posix sigaction()
+
+configure.in
+       - call BASH_SYS_RESTARTABLE_SYSCALLS if ac_cv_sys_restartable_syscalls
+         is `no'
+
+                                  10/13
+                                  -----
+builtins/jobs.def
+       - catch out-of-range jobs better in disown_builtin
+
+configure.in
+       - don't build with GNU malloc on cygwin32
+
+trap.c
+       - change signal_name to handle the case where signal_names[sig] is
+         NULL, which can happen on cygwin32
+
+execute_cmd.c
+       - changes to do_piping to make pipes text mode (O_TEXT) on cygwin32
+
+cross-build
+       - new directory with cache files and other stuff for cross-compiling
+         bash (currently only for building for cygwin32 on a Unix machine)
+
+cross-build/cygwin32.cache
+       - new file containing configuration variable assignments for
+         cygwin32 that would otherwise require a default case for AC_TRY_RUN
+
+configure.in
+       - source ${srcdir}/cross-build/cygwin32.cache on CYGWIN32 systems
+         if we're cross-compiling on a unix machine
+       - set $CC_FOR_BUILD for cygwin32 cross-compiling environment
+
+Makefile.in
+       - CC_FOR_BUILD is now a variable set by configure
+
+builtins/mkbuiltins.c
+       - only check for read(2) returning <= 0 in extract_info() (error
+         and exit on < 0, warning and return on == 0)
+
+builtins/evalfile.c
+       - only check for read(2) returning <= 0 in _evalfile() (error and
+         and failure return on < 0, success on == 0 while short-circuting
+         rest of operation)
+
+                                  10/14
+                                  -----
+
+vprint.c
+       - moved to lib/sh/vprint.c
+
+lib/sh/Makefile.in
+       - added entries for vprint.[co] in the appropriate places
+
+cross-build/win32sig.h
+       - a version of signames.h for cross-compiling for the CYGWIN32
+         environment on a Unix machine (from noer@cygnus.com)
+
+aclocal.m4
+       - made all cases of AC_TRY_RUN and AC_TRY_COMPILE have reasonable
+         default cases for cross-compiling, and tell the user what they are
+
+Makefile.in
+       - removed vprint.c from shell sources and vprint.o from shell
+         objects
+       - added a level of indirection for signames.h -- the variable
+         SIGNAMES_H is set by configure to either `lsignames.h' or
+         a file for a cross-compilation environment (currently only
+         the cygwin32 stuff is supported).  Then that file is copied
+         to `signames.h'.  `lsignames.h' is created by `mksignames' as
+         was previously used to create signames.h directly
+
+configure.in
+       - set SIGNAMES_H to either `$(srcdir)/cross-build/win32sig.h' or
+         `lsignames.h' as appropriate, substitute into Makefile
+
+                                  10/15
+                                  -----
+builtins/Makefile.in
+       - CC_FOR_BUILD is now set by configure and used to build mkbuiltins
+         and psize.aux
+
+variables.h
+       - new variable attribute `att_tempvar', set if the SHELL_VAR * was
+         constructed on the fly from the temporary environment
+
+variables.c
+       - find_name_in_env_array now sets the `att_tempvar' attribute on
+         the SHELL_VAR it creates
+
+findcmd.c
+       - search_for_command now disposes the SHELL_VAR created by searching
+         the temporary environment for $PATH, if it is found there
+       - _find_user_command_internal also disposes of the SHELL_VAR if it
+         has the `att_tempvar' attribute set
+
+builtins/setattr.c
+       - show_name_attributes looks in the temporary environemnt, so it needs
+         to dispose the SHELL_VAR if it has the att_tempvar attribute set
+
+subst.c
+       - parameter_brace_expand_word now disposes of the SHELL_VAR returned
+         by find_variable if it has the att_tempvar attribute set
+       - ditto for param_expand and word_split
+
+builtins/kill.def
+       - disallow null pid arguments instead of treating them as 0
+       - display a usage message and return failure if no pid or job
+         arguments are supplied
+
+                                  10/16
+                                  -----
+builtins/declare.def
+       - make `var=value declare -x var' behave the same as
+         `var=value export var' and `var=value declare -r var' behave the
+         same as `var=value readonly var', now that we have the `tempvar'
+         attribute
+
+                                  10/22
+                                  -----
+jobs.c
+       - non-interactive shells shouldn't report jobs killed by a SIGINT,
+         even if the standard output is to a terminal
+       - pretty_print_job should add a CR at the end of its output if the
+         shell is interactive and asynchronous notification is being
+         performed.  This fixes the problem with extra CRs in the output
+         of $(jobs)
+
+general.c
+       - changed canonicalize_pathname to change `//' into `/', but leave
+         other pathnames starting with two consecutive slashes alone
+
+                                  10/27
+                                  -----
+
+lib/readline/histexpand.c
+       - fixed history_expand so that the appearance of the history
+         comment character at the beginning of a word inhibits history
+         expansion for the rest of the line
+
+                                  10/29
+                                  -----
+jobs.c,variables.c
+       - moved set_pipestatus_array to variables.c
+
+variables.c
+       - new function, set_pipestatus_from_exit(int), which sets the
+         PIPESTATUS variable from a command's exit status
+
+variables.h
+       - extern declarations for set_pipestatus_from_exit and
+         set_pipestatus_array
+
+execute_cmd.c
+       - fixed execute_simple_command to call set_pipestatus_from_exit
+         if a foreground builtin or function, or a foreground null
+         command is executed
+
+                                  10/31
+                                  -----
+shell.c
+       - fixed run_startup_files to detect being run by sshd, and treat
+         that case as equivalent to being run by rshd
+
+                                  11/3
+                                  ----
+builtins/set.def
+       - make sure `set -a' doesn't cause SHELLOPTS to be exported when
+         a change is made to one of the shell options
+
+                                  11/4
+                                  ----
+pathexp.c
+       - fix to shell_glob_filename in the code that uses a POSIX glob
+         library
+
+                                  11/5
+                                  ----
+jobs.c
+       - fix cleanup_dead_jobs to hang onto the job corresponding to
+         last_asynchronous_pid only if the shell is not interactive
+         (this still has the problem that until a new async process
+         is started, the job will stay in the jobs table)
+
+configure.in,aclocal.m4
+       - added a new macro, BASH_TYPE_U_INT32_T, to check for u_int32_t
+         separately from int32_t, since there are systems (HP-UX 10.20)
+         that have a define for the latter but not the former
+
+                                  11/6
+                                  ----
+jobs.c
+       - cleanup_dead_jobs no longer checks whether the job it is deleting
+         corresponds to last_asynchronous_pid
+       - notify_of_job_status and mark_dead_jobs_as_notified now will not
+         mark the job corresponding to last_asynchronous_pid as notified
+         if the shell is not interactive
+       - wait_for_single_pid, if told to wait for last_asynchronous_pid,
+         or the job of which it is a member, will take care of marking
+         the job as notified after calling wait_for and collecting the
+         status.  This means that two successive `wait' calls for $! will
+         succeed the first time and fail the second, as POSIX.2 specifies
+         (take this code out if it causes problems)
+
+                                  11/7
+                                  ----
+jobs.c
+       - wait_for_job, if told to wait for the job corresponding to the
+         last async pid, will mark the job as notified after waiting for
+         it and collecting the status
+
+general.h
+       - fixed MEMBER macro to avoid reading past end of S (it used to
+         test s[1] before s[0], which is an error if s == "")
+
+subst.c
+       - expand_word_internal should free ISTRING before returning if
+         param_expand returns an error
+       - parameter_brace_expand_word should free the memory it allocates
+         and passes to param_expand
+
+execute_cmd.c
+       - execute_arith_command should call dispose_words on the list
+         returned by expand_words
+
+parse.y
+       - after calling parse_arith_command, read_token needs to free the
+         string value that parse_arith_command fills in, since make_word
+         makes a copy of the string it's passed
+
+                                  11/10
+                                  -----
+subst.c
+       - cond_expand_word needs to free the value returned by string_list
+         after it is run through quote_string_for_globbing
+
+parse.y
+       - make sure cond_term frees yylval.word if it is just a `!' and
+         it's parsed as a term negation operator
+
+variables.c
+       - assign_array_var_from_string needs to free the word list returned
+         by parse_string_to_word_list after calling expand_words_shellexp
+         on it
+
+execute_cmd.c
+       - changed execute_simple_command to avoid saving the_printed_command
+         into command_line until just before it's needed.  This should save
+         time and prevent memory leaks on errors, but it must be watched
+         closely to make sure that the_printed_command doesn't change out
+         from under execute_simple_command before we copy it
+
+                                  11/12
+                                  -----
+builtins/alias.def
+       - alias and unalias should print error messages when passed an
+         argument that is not an alias for printing or deletion,
+         respectively, even if the shell is not interactive
+
+builtins/exit.def
+       - `logout' will no longer exit a non-login non-interactive shell
+
+                                  11/17
+                                  -----
+lib/readline/nls.c
+       - add `koi8-r' as a legal LANG value
+
+builtins/alias.def
+       - if `alias' or `alias -p' is executed when no aliases are defined,
+         the return status should be 0, according to POSIX.2
+
+                                  11/18
+                                  -----
+subst.c
+       - changed a couple of calls to make_word_list (make_word(z), ...)
+         to add_string_to_list (z, ...)
+
+execute_cmd.c
+       - execute_cond_command now sets this_command_name to `[['
+
+                                  11/21
+                                  -----
+variables.c
+       - all_visible_{function,variable}s and the functions they call
+         should be compiled in only if READLINE is defined
+
+                                  11/24
+                                  -----
+aclocal.m4
+       - remove some leading whitespace before preprocessor statements in
+         BASH_KERNEL_RLIMIT_CHECK
+
+general.[ch]
+       - fix declarations for group_member so the extern declaration in
+         general.h agrees with the definition in general.c (fix from
+         Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
+
+builtins/cd.def
+       - print the new working directory if the shell is interactive
+         and `cd -' succeeds
+       - don't print the new working directory if it's found in $CDPATH
+         if the shell is not interactive
+
+                                  11/25
+                                  -----
+builtins/cd.def
+       - fixes to bindpwd so that it copes with get_working_directory
+         returning NULL (bug from schwab@issan.informatik.uni-dortmund.de)
+
+                                  12/2
+                                  ----
+support/config.guess
+       - add support for new OS name for SINIX SVR4 systems
+
+                                  12/3
+                                  ----
+
+builtins/set.def
+       - `unset' should check that a function it's trying to unset is a
+         legal identifier only when in POSIX mode
+
+redir.c
+       - changed here_document_to_fd to try and make sure the filename
+         used for the here document is `more unique', since the old
+         version would fail if two here documents were created in less
+         than a second
+
+                                  12/4
+                                  ----
+builtins/cd.def
+       - POSIX.2 says that if CDPATH is used to find the new directory,
+         and it's not relative to the current directory, the new directory
+         name should be displayed on stdout even if the shell is not
+         interactive
+
+                                  12/5
+                                  ----
+parse.y
+       - changes so that `time' is recognized as a reserved word only at
+         the beginning of a pipeline (the last read token is one of 0,
+         `;', `\n', `&&', `||', or `&'):
+
+               o add clause to special_case_tokens that does the check
+                 and returns TIME if the conditions are met
+               o take check for `TIME' out of CHECK_FOR_RESERVED_WORD, but
+                 leave it in the word_token_alist so that `type' still
+                 reports it as a `keyword'
+               o new function, time_command_acceptable(), encapsulates the
+                 necessary conditions for `time' to be returned as a 
+                 reserved word
+
+[bash-2.02-alpha1 frozen]
+
+                                1/6/1998
+                                --------
+lib/glob/fnmatch.c
+       - fix define for isgraph so that it does not return success for space
+       - fix strcompare() so that the call to strcoll is surrounded by
+         #ifdef HAVE_STRCOLL
+
+                                   1/7
+                                   ---
+lib/glob/fnmatch.c
+       - the `test' argument to brackmatch() should be of type `unsigned char'
+
+                                  1/11
+                                  ----
+execute_cmd.c
+       - make sure execute_arith_command sets this_command_name to `(('
+
+                                  1/29
+                                  ----
+parse.y
+       - make sure the code for pushing and popping strings is compiled in
+         if either ALIAS or DPAREN_ARITHMETIC is defined, because the ((
+         code uses push_string in the case of a nested subshell
+       - fix cond_skip_newlines so it resets the prompt to $PS2 while
+         parsing an unfinished conditional command
+
+dispose_cmd.c, copy_cmd.c, builtins/hash.def
+       - fixes to not use `word' as a variable name or the name of a
+         function parameter to get around stuff in the Cray Unix include
+         files
+
+builtins/printf.def
+       - return failure immediately if an illegal format character is
+         encountered
+
+redir.c
+       - make the code that creates here-documents behave better if the
+         file it's trying to create already exists for some reason
+
+lib/readline/complete.c
+       - changed print_filename to return the number of characters it
+         outputs; changed callers to use that value.  This makes columns
+         line up when printing completion listings with filenames
+         containing control characters
+
+doc/bash.{1,html}
+       - fixed a typo in the quote removal section
+
+                                  1/30
+                                  ----
+parse.y
+       - free_string_list() needs to check that t->expander is not NULL
+         before trying to dereference it
+       - reset_parser() doesn't need to set pushed_string_list to NULL
+         after calling free_string_list(), since free_string_list does it
+
+configure.in,cross-build/cygwin32.cache
+       - fixes from Geoff Noer for better cygwin32 cross-compilation
+
+tests/printf.{tests,right}
+       - removed test for integer overflow, since error messages differ
+         across systems
+
+pathexp.c
+       - fixed a problem with unquoted_glob_pattern_p that made things
+         like `x+*' not expand correctly
+
+lib/glob/glob.c
+       - fixed a problem with glob_pattern_p that made things like `x+*'
+         not expand correctly
+
+builtins/cd.def
+       - if `cd -P' is executed, or `set -o physical' has been executed,
+         the value of $PWD after a successful cd will not contain any
+         symlinks, regardless of whether or not the shell is in posix mode
+
+                                   2/3
+                                   ---
+lib/readline/shell.c
+       - include <string.h> or <strings.h> as appropriate
+
+                                   2/4
+                                   ---
+builtins/common.c
+       - take out the code in backslash_quote() that looks for tildes to
+         quote, for the time being
+       - if getcwd() fails, get_working_directory now prints the error
+         message corresponding to errno in addition to the rest of the
+         information -- TENTATIVE CHANGE
+
+lib/sh/getcwd.c
+       - fix from Paul Smith to make getcwd() behave better in the presence
+         of lstat(2) failures
+
+stringlib.c
+       - when copying the replacement string into the output string being
+         constructed, strsub() needs to make sure enough space for the
+         replacement string is allocated, not the length of the pattern
+         (use REPLEN, not PATLEN)
+
+mailcheck.c
+       - make sure make_default_mailpath() has a valid current_user struct
+         before trying to construct the default mailpath
+
+                                   2/5
+                                   ---
+execute_cmd.c
+       - execute_builtin needs to call run_unwind_frame if the builtin is
+         `source' or `eval' and we're not in a subshell rather than just
+         calling dispose_builtin_env, because not all invocations copy 
+         the temporary_env to builtin_env, and nested calls to `.' require
+         that the temporary env given to the first persist until that first
+         call to `.' finishes
+
+parse.y
+       - fix to history_delimiting_chars so that function definitions like
+
+               function xyz
+               {
+                       echo a
+               }
+
+         are saved to the history correctly when command_oriented_history
+         is enabled, but literal_history is not
+
+bashhist.c
+       - when calling internal_error from pre_process_line, use "%s" as
+         the format with history_value as the argument to avoid the
+         problem with the failed history event containing printf escape
+         sequences
+
+                                  2/13
+                                  ----
+shell.c
+       - if shell_initialized is non-zero, don't line-buffer stderr and
+         stdout in shell_initialize on SunOS5 -- see if this fixes the
+         crashing problems for scripts without a leading `#! /bin/sh'
+
+                                  2/17
+                                  ----
+bashline.c
+       - added diffs to _ignore_completion_names from Andreas Schwab to
+         complete names that would otherwise be ignored with FIGNORE if
+         they are the only possible completions.  Define NO_FORCE_FIGNORE
+         if you want this; it is not defined by default
+
+                                  2/19
+                                  ----
+support/bashbug.sh
+       - changed the bug-bash address to bug-bash@gnu.org
+
+examples/loadables/Makefile.in
+       - converted from `Makefile' with some boilerplate configure variables
+         to find the source and build directories -- still requires some
+         hand-editing to get the right CFLAGS and LDFLAGS for shared object
+         creation
+
+Makefile.in
+       - create examples/loadables/Makefile with `make makefiles'
+
+configure.in
+       - create examples/loadables directory so `make makefiles' can write a
+         makefile there
+
+general.c
+       - make sure initialize_groups_array always sets things up so that
+         ${GROUPS[0]} is the user's primary group (current_user.gid)
+
+                                  2/20
+                                  ----
+lib/readline/parens.c
+       - change the time delay when showing matching parens from 1.5 sec to
+         0.5 sec
+
+                                  2/23
+                                  ----
+shell.c
+       - isnetconn() should call getpeername(fd,...) instead of using 0
+         (though fileno(stdin) should always be 0)
+
+support/config.guess
+       - updates from master FSF copy
+
+                                  2/24
+                                  ----
+support/man2html.c
+       - modified version of man2html to convert bash.1 into bash.html
+
+support/Makefile.in
+       - simple Makefile to create man2html
+
+configure.in
+       - make sure support/Makefile is created
+
+Makefile.in
+       - make sure support/Makefile is created and cleaned
+
+doc/Makefile.in
+       - changes to suffix rules to say how to make .html from .1 
+       - `bash.html' is now a makefile target, created by man2html from
+         bash.1 rather than being hand-modified
+
+lib/sh/itos.c, general.c
+       - new file, itos() from general.c.  This is here because the
+         implementation of strerror in lib/sh/strerror.c uses itos()
+
+Makefile.in, lib/sh/Makefile.in
+       - changes to add itos.c in libsh.a
+
+externs.h, general.h
+       - moved extern declaration of itos() from general.h to externs.h
+
+aclocal.m4
+       - changes to BASH_LARGE_FILE_SUPPORT for the LFS64_* variables in
+         Solaris 2.6
+
+Makefile.in
+       - make sure configure sets CPPFLAGS in this file
+
+                                  2/27
+                                  ----
+
+builtins/command.def
+       - make sure get_standard_path returns the value of
+         STANDARD_UTILS_PATH if _CS_PATH is defined, but confstr(3)
+         returns 0, indicating that _CS_PATH does not have a defined
+         value
+
+bashhist.c
+       - fixed bash_history_inhibit_expansion() so that extended globbing
+         expressions like *.!(c) are not history expanded if extended_glob
+         is non-zero (shopt -s extglob has been executed)
+
+                                   3/2
+                                   ---
+Makefile.in
+       - changed release status to `beta1'
+
+[bash-2.02-beta1 frozen]
+
+                                  3/17
+                                  ----
+lib/readline/vi_mode.c
+       - make sure _rl_vi_save_insert() gets a non-null UNDO_LIST pointer
+         before trying to do anything with it
+
+jobs.c
+       - add a call to internal_warning from wait_for_job if the job is
+         stopped
+       - changed notify_of_job_status to not report pipelines exiting due to
+         SIGPIPE in non-interactive shells if the shell is compiled with
+         -DDONT_REPORT_SIGPIPE
+
+builtins/psize.sh
+       - some fixes to try to avoid /tmp file races and surreptitious
+         substitutions
+
+version.c
+       - changed the extended version info to show 1998 as the copyright year
+
+parse.y
+       - fixes from Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>
+         for compilation errors when the shell is configured --disable-alias
+         but with dparen arithmetic enabled
+
+eval.c
+       - fixes from Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de> to
+         make sure the input stream is popped correctly when performing an
+         array assignment in the command argument to `bash -c', e.g.,
+         `bash -c 'A=()''
+
+builtins/kill.def
+       - make `kill' with no arguments print a usage message and return a
+         failure status
+
+alias.c
+       - fix so that rd_token doesn't dump core when trying to do alias
+         expansion on a line containing an unclosed single quote (fix from
+         Vasco Pedro <vp@di.fct.unl.pt>)
+
+builtins/cd.def
+       - fix so that using a non-empty directory from CDPATH to construct
+         the name of the directory to change to results in an absolute
+         pathname of the new current working directory being displayed,
+         as POSIX.2 specifies
+
+support/bashbug.sh
+       - a couple of small fixes to minimize /tmp file races -- the script
+         is still raceable, the window is just smaller
+
+                                  3/24
+                                  ----
+variables.c
+       - make sure assign_in_env passes a malloc'd string to
+         expand_string_unsplit, because some of the error code assumes that
+         it is malloc'd and frees it (bug reported by Marko.Makela@HUT.FI)
+
+                                  3/25
+                                  ----
+doc/bashref.texi
+       - changed the email addresses to use the @email texinfo tag
+
+trap.c
+       - call reset_parser from the exit trap code before calling
+         parse_and_execute, so reserved words are parsed correctly
+
+subst.c
+       - make sure parameter_brace_patsub expands the pattern string as if
+         the expression were not in double quotes, even if the entire
+         expansion is enclosed in double quotes, so that quote removal
+         on embedded double quotes is performed correctly (bug report from
+         schwab@issan.informatik.uni-dortmund.de)
+
+                                  3/27
+                                  ----
+support/config.guess
+       - changes to allow Power PCs running Apple's Rhapsody to configure
+
+                                  3/31
+                                  ----
+
+Makefile.in
+       - changed release status to `beta2'
+
+[bash-2.02-beta2 frozen]
+
+                                   4/6
+                                   ---
+subst.c
+       - make sure command_substitute does not try to set the terminal's
+         process group to a background job
+
+[bash-2.02 frozen]
+
+                                  4/18
+                                  ----
+[bash-2.02 released]
+
+                                  4/20
+                                  ----
+bashline.c
+       - make sure that rl_defun is not called for
+         history-and-alias-expand-line unless both ALIAS and BANG_HISTORY
+         are defined
+         [in bash-2.02.1]
+
+                                  4/22
+                                  ----
+make_cmd.c
+       - make sure that make_here_document allocates enough space for the
+         first line of the here document, by using the line length +2
+         (instead of 1000, which is what the old code did, and breaks if
+         the first line of the here document is enough longer than 1000
+         characters to cause other memory to be scribbled on)
+         [in bash-2.02.1]
+
+builtins/cd.def
+       - when in posix mode, a value of "" for CDPATH should be treated the
+         same as the current directory, not result in an error
+         [in bash-2.02.1]
+
+lib/malloc/malloc.c
+       - change the mh_align member of `union mhead' to be of type double
+         rather than a pointer, so that malloc will return (hopefully)
+         8-byte aligned memory
+         [in bash-2.02.1]
+
+                                  4/23
+                                  ----
+aclocal.m4
+       - add a new macro to check whether or not off_t is 64 bits 
+
+                                  4/24
+                                  ----
+configure.in
+       - fixed a typo so the bash malloc is not compiled in on mips-sgi-irix6
+
+lib/readline/display.c
+       - fix for readline redisplay if the prompt string is longer than the
+         screen width and includes invisible characters
+         [in bash-2.02.1]
+
+jobs.c
+       - make_child should not set the terminal's process group to
+         pipeline_pgrp if pipeline_pgrp == shell_pgrp (indicating that we
+         are forking a child for a command substitution)
+         [in bash-2.02.1]
+
+subst.c
+       - in execute_simple_command, in the child forked if there is a pipe
+         or the command is asynchronous, set subshell_environment to
+         SUBSHELL_ASYNC only if the command is asynchronous, SUBSHELL_FORK
+         if there is a pipe in or out
+         [in bash-2.02.1]
+
+                                  4/27
+                                  ----
+support/texi2dvi
+       - upgraded to version 0.8 (from 0.5)
+
+support/texi2html
+       - upgraded to version 1.52 (from 1.51)
+
+support/config.sub
+       - config.sub now recognizes all the permutations of the system name
+         that config.guess produces for alphas
+         [in bash-2.02.1]
+
+aclocal.m4
+       - changed BASH_TYPE_INT32_T, BASH_TYPE_U_INT32_T, and
+         BASH_TYPE_PTRDIFF_T to avoid compiling a program; instead use
+         the values determined by the AC_CHECK_SIZEOF tests to determine
+         the default values to supply to AC_CHECK_TYPE
+
+configure.in
+       - don't call AC_CHECK_TYPE({int32_t,u_int32_t,ptrdiff_t}) from
+         configure.in; use the updated BASH_TYPE macros instead
+
+builtins/exec.def
+       - if shell_execve fails, set ARGS to null because the realloc() call
+         by shell_execve may have caused it to be reallocated and freed --
+         we don't want to free the memory twice
+
+lib/glob/fnmatch.c
+       - fixes from ache@nagual.pp.ru to make fnmatch work for eight-bit
+         characters when `isupper' and `islower' are used -- they were
+         restricted to ASCII characters before, probably to work around
+         some ancient, broken C libraries in which is{low,upp}er are valid
+         only for ASCII characters and return bogus values otherwise
+         [in bash-2.02.1]
+
+                                  4/29
+                                  ----
+builtins/cd.def
+       - fixed a problem with the shell displaying the old working directory
+         instead of the new one after changing to a directory found via
+         $CDPATH when in physical mode (set -o physical)
+         [in bash-2.02.1]
+
+make_cmd.c
+       - make make_cond_command initialize the line number from the cond_node
+         that's passed as an argument (not that it's used right now)
+
+copy_cmd.c
+       - make sure that copy_cond_command copies the type of the cond command,
+         since execute_cond_command uses that to decide what kind of test
+         to perform
+         [in bash-2.02.1]
+
+builtins/printf.def
+       - make sure the for loop that processes the format string actually
+         consumes arguments; otherwise process it only once to avoid
+         infinite loops (e.g., `printf " " abc def ghi')
+         [in bash-2.02.1]
+       - if the format string is empty after preprocessing by ansicstr,
+         return immediately
+         [in bash-2.02.1]
+
+tests/run-printf
+       - use `diff -a' so the presence of a non-printing character in the
+         output doesn't confuse diff into thinking the files are binary
+         (test whether or not `diff' supports `-a' first)
+
+Makefile.in
+       - keep $(LOCAL_LIBS) from being specified twice
+
+                                  4/30
+                                  ----
+support/shobj-conf
+       - a script to generate variables to do shared object configuration
+         for the loadable builtin stuff
+
+configure.in
+       - added a section for shared object configuration using an `eval'
+         of the output of shobj-conf and substituting the generated values
+         with AC_SUBST
+
+examples/loadables/Makefile.in
+       - the system-specific shared object configuration variables are now
+         substituted by configure
+
+                                   5/4
+                                   ---
+builtins/ulimit.def
+       - some changes for HPUX 9.x's peculiar handling of RLIMIT_FILESIZE
+       - changed the limit retrieval functions to return an error code
+         and the value in a reference argument to avoid use of RLIM_INVALID
+
+general.c
+       - new function, get_group_array(), which returns an array of
+         gids
+
+examples/loadables/{id,printenv,sync,uname,whoami,push}.c
+       - new loadable builtins
+
+variables.c
+       - moved code that initializes $PPID into a new function, set_ppid()
+
+variables.h
+       - extern declaration for set_ppid()
+
+                                   5/6
+                                   ---
+subst.c
+       - make sure that the `"' (double-quoted string) case of
+         expand_word_internal calls string_list_dollar_at if we've expanded
+         a double-quoted $@ so correct splitting on $IFS is done when
+         the expansion is complete.  We can't simply call string_list
+         because that forces a space separator, and $IFS may not contain
+         a space
+         [in bash-2.02.1]
+
+                                   5/7
+                                   ---
+builtins/umask.def
+       - broke the code that parses a symbolic mode out of symbolic_umask
+         into a separate function that takes a symbolic mode and an initial
+         set of bits to modify
+
+examples/loadables/mkdir.c
+       - new loadable builtin
+
+                                  5/11
+                                  ----
+builtins/printf.def
+       - use the format string length provided by ansicstr() to process the
+         format string, rather than testing for nullness, to handle NUL
+         bytes in the expanded format string
+
+builtins/pushd.def
+       - changes so it can be built as both a regular builtin and a loadable
+         builtin from the same source
+
+examples/loadables/Makefile.in
+       - changes to build pushd.c from ${topdir}/builtins/pushd.def and then
+         compile it with the correct flags to make it a loadable builtin,
+         even if PUSHD_AND_POPD is not defined in config.h
+
+                                  5/12
+                                  ----
+lib/readline/complete.c
+       - use rl_completer_quote_characters instead of #ifdef SHELL/#endif
+         code in make_quoted_replacement.  This means complete.c no longer
+         has any #ifdef SHELL code
+
+                                  5/13
+                                  ----
+builtins/Makefile.in
+       - `make clean' should remove mkbuiltins.o
+
+Makefile.in
+       - all of the various `clean' targets need to descend into lib/sh
+         and run the appropriate target there
+
+builtins/type.def
+       - changed to use the builtin getopt.  The old long options are
+         handled by prescanning the argument list looking for the long
+         options, processing them, and taking them out of the list before
+         passing it to internal_getopt()
+
+lib/readline/signals.c
+       - removed #ifdef SHELL code -- job control signals and SIGTERM are
+         always set in rl_set_signals, but are set to SIG_IGN if the old
+         handler was SIG_IGN (as bash sets it)
+       - new function rl_maybe_set_sighandler, which sets the signal
+         disposition back to SIG_IGN if the old handler was SIG_IGN
+       - removed #ifdef HANDLE_JOB_SIGNALS and #ifdef HANDLE_SIGTERM code
+
+lib/readline/rltty.c
+       - removed #ifdef SHELL code -- set_winsize is always called
+         to force the application to stop if it's not in the foreground
+         before getting the tty attributes
+
+                                  5/14
+                                  ----
+lib/readline/signals.c
+       - readline now catches SIGQUIT and cleans up the tty before resending
+         it to its container application (unless the calling application has
+         set the disposition of SIGQUIT to be SIG_IGN)
+       - rl_handle_sigwinch is now called rl_sigwinch_handler
+       - rl_sigwinch_handler now calls rl_resize_terminal to fetch the
+         screen size after a SIGWINCH
+       - the sighandler_cxt struct for non-posix systems now includes
+         sa_flags and sa_mask variables, for future use
+       - new variable, rl_catch_signals, indicating that readline should
+         install its own signal handlers for SIGINT, SIGTERM, SIGQUIT,
+         SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU
+       - new variable, rl_catch_sigwinch, indicating that readline should
+         install its own SIGWINCH handler, which will chain to a calling
+         application's SIGWINCH handler
+       - new function, rl_free_line_state(), to free up variable state
+         associated with the current line after receiving a signal
+       - new function, rl_cleanup_after_signal(), to clean up the display
+         and terminal state after receiving a signal
+       - new function, rl_reset_after_signal(), to reinitialize the
+         terminal state after a signal handler returns and readline
+         continues
+       - rl_set_signals and rl_clear_signals now look at the values of
+         rl_catch_signals and rl_catch_sigwinch
+
+lib/readline/terminal.c
+       - new function rl_resize_terminal (), to reset readline's idea of
+         the screen size after a SIGWINCH
+
+lib/readline/readline.h
+       - extern declarations for rl_resize_terminal(), rl_free_line_state(),
+         rl_cleanup_after_signal(), rl_reset_after_signal()
+       - extern declarations for rl_catch_signals and rl_catch_sigwinch
+
+variables.c
+       - new functions, get_env_value(char *) and get_home_dir(void) to
+         satisfy references from the tilde and readline libraries when
+         they are compiled as part of bash
+
+lib/tilde/tilde.c
+       - rely on extern declarations of get_env_value and get_home_dir;
+         there is no more #ifdef SHELL code
+
+lib/readline/shell.c
+       - implementation of get_home_dir that uses getpwuid() to satisfy
+         references from tilde.c when not compiled as part of bash
+       - removed savestring()
+       - removed #ifdef SHELL/#endif pair -- all of these functions will be
+         resolved from bash when readline is linked into bash
+
+lib/readline/savestring.c
+       - new file, with function definition for savestring() for backwards
+         compatibility
+
+Makefile.in, _distribution
+       - bumped things up to bash-2.03-alpha
+
+                                  5/15
+                                  ----
+lib/readline/rlconf.h
+       - removed #ifdef SHELL/#endif pair, so the callback stuff will be
+         compiled into libreadline, but never linked into bash (since it's
+         not referenced)
+
+configure.in
+       - added new `--with-installed-readline' option to allow readline to
+         be linked with an already-installed version -- this will probably
+         not work with versions of readline prior to 2.3 (libreadline.so.4)
+         [THIS IS STILL UNDOCUMENTED]
+
+Makefile.in
+       - changed necessary variables to allow the `--with-installed-readline'
+         option to work; shared and static libraries are supported
+
+                                  5/18
+                                  ----
+lib/readline/display.c
+       - _rl_save_prompt is now rl_save_prompt; _rl_restore_prompt is now
+         rl_restore_prompt
+
+lib/readline/readline.h
+       - extern declarations for rl_save_prompt and rl_restore_prompt
+
+lib/readline/{search,isearch,readline,display}.c
+       - converted calls to _rl_{save,restore}_prompt () to use new public
+         versions
+
+lib/readline/doc/rltech.texinfo
+       - documented new public functions rl_{save,restore}_prompt
+
+                                  5/19
+                                  ----
+lib/readline/readline.c
+       - new hook function variable, rl_pre_input_hook.  If non-zero, it's
+         called from readline_internal_setup just before it returns and
+         readline starts reading input
+
+lib/readline/readline.h
+       - extern declaration for rl_pre_input_hook
+
+lib/readline/doc/rltech.texinfo
+       - documented new variable rl_pre_input_hook
+
+                                  5/20
+                                  ----
+lib/readline/complete.c
+       - new hook function variable, rl_completion_display_matches_hook.
+         If non-null, this function is called when readline would normally
+         display the list of completion matches
+
+lib/readline/readline.h
+       - extern declaration for rl_completion_display_matches_hook
+
+lib/readline/doc/rltech.texinfo
+       - documented rl_completion_display_matches_hook
+
+lib/readline/readline.c
+       - if RL_LIBRARY_VERSION is not defined, define it to 4.0 to match
+         the version number of the shared libraries
+
+lib/readline/doc/{hist,rlman}.texinfo
+       - changed the version and edition to 4.0 to match the library version
+
+support/config.guess
+       - added case clause for matching UnixWare 7 from SCO (SVR5) -- further
+         work may be needed 
+         [These fixes were in a usenet posting from hops@sco.com]
+
+support/config.sub
+       - added case clauses to recognize various aliases for SCO Open Server
+         and Open Desktop
+         [in bash-2.02.1]
+       - broke the code that canonicalizes unixware into unixware2 and
+         unixware7 clauses (multiple places)
+         [in bash-2.02.1]
+       - added clause to recognize `sysv5' for SVR5
+         [These fixes were in a usenet posting from hops@sco.com]
+         [in bash-2.02.1]
+
+configure.in
+       - add `-b elf' to LOCAL_CFLAGS for sco3.2v5* to allow dynamic linking
+         (and loadable builtins)
+       - add AC_DEFINE(SVR5) on SVR5 (unixware 7)
+
+config.h.in
+       - add #undef SVR5, set by configure
+
+                                  5/21
+                                  ----
+shell.c
+       - line-buffer stdout and stderr in shell_initialize only if
+         shell_initialized is 0 on all systems, not just SunOS 5
+         [in bash-2.02.1]
+
+support/rlvers.sh
+       - script to print out the version number of any installed
+         readline library
+
+configure.in
+       - only allow --with-installed-readline if the version of the
+         installed readline library is 4.0 or greater
+
+                                  5/22
+                                  ----
+lib/readline/complete.c
+       - broke the code that actually displays a list of completion
+         matches on the output stream into a separate public function,
+         rl_display_match_list, so it can be called from the hook
+         function rl_completion_display_matches_hook.
+
+lib/readline/readline.h
+       - new extern declaration for rl_display_match_list
+
+lib/readline/rltech.texinfo
+       - documented rl_display_match_list
+
+configure.in,Makefile.in
+       - --enable-static-link now creates a STATIC_LD variable in Makefile
+         rather than adding to LDFLAGS directly.  LDFLAGS now includes
+         $(STATIC_LD)
+
+                                   6/2
+                                   ---
+builtins/cd.def
+       - OLDPWD is now auto-exported
+       - broke the code out of bindpwd() that updated the value of PWD in
+         the export environment in-place and made it general, so it can
+         be used for OLDPWD, too (this should be made *more* general, and
+         moved to variables.c)
+
+                                   6/3
+                                   ---
+variables.c
+       - moved builtins/cd.def:export_pwd_var to here, renamed it to
+         update_export_env_inplace
+       - converted put_command_name_into_env to just call
+         update_export_env_inplace
+       - made dummy variable for OLDPWD, marked as invisible and exported,
+         in initialize_shell_variables
+
+variables.h
+       - extern declaration for update_export_env_inplace
+
+builtins/cd.def
+       - changed calls to export_pwd_var to update_export_env_inplace
+
+lib/readline/bind.c
+       - added missing return in rl_unbind_function_in_map
+       - changed _rl_read_file to check whether or not `read' returns
+         < 0 rather than < file_size
+       - _rl_read_init_file needs to free `openname' after calling
+         _rl_read_file, since it's not used again
+
+lib/readline/callback.c
+       - bogus extern declaration for `readline_internal_startup', should
+         be readline_internal_setup
+
+lib/readline/histfile.c
+       - read_history_range now checks whether read(2) returns < 0 rather
+         than checking the return value against the file size
+
+lib/readline/parens.c
+       - whoops -- timer.tv_usec is *micro* seconds, not milliseconds
+
+lib/readline/readline.c
+       - initialize `eof' to 1 in readline_internal_charloop
+
+                                   6/5
+                                   ---
+configure.in
+       - if we're configuring with an installed version of readline, set and
+         have configure substitute RL_INCLUDE to `-I$(includedir)', so the
+         build process uses the installed readline include files as well as
+         the libraries
+
+Makefile.in, builtins/Makefile.in
+       - add @RL_INCLUDE@ in the appropriate places, substituted by configure
+
+lib/readline/{history,readline}.h
+       - add `extern "C"' wrapper if `__cplusplus' is defined
+
+lib/glob/fnmatch.h
+       - include stdc.h
+       - add prototypes to extern declaration for fnmatch()
+
+lib/readline/rlstdc.h
+       - link to ../posixheaders/stdc.h (in readline lib with different name
+         for benefit of standalone readline library installation)
+
+lib/readline/{history,keymaps}.h
+       - include rlstdc.h
+       - add prototypes to all of the extern function declarations
+
+lib/readline/history.h
+       - the `data' member of a HIST_ENTRY is now a histdata_t, which is
+         either a void * (ansi c) or a char * (k&r c)
+
+lib/readline/readline.c
+       - changed calls to replace_history_entry to pass a histdata_t as the
+         third parameter
+
+                                   6/8
+                                   ---
+copy_cmd.c
+       - make sure that copy_cond_command doesn't blindly try to copy
+         com->op, since that will be null for AND and OR nodes, at least
+         [in bash-2.02.1]
+
+lib/readline/vi_mode.c
+       - added missing second argument to rl_vi_[fbe][Ww]ord(), since
+         they're used as pseudo-bindable commands (they appear in the
+         default funmap) as well as utility functions
+
+lib/readline/readline.h
+       - include rlstdc.h
+       - added prototypes for functions from vi_mode.c, util.c, terminal.c,
+         search.c, util.c, undo.c, readline.c, parens.c, macro.c, kill.c,
+         keymaps.c, isearch.c, input.c, funmap.c, display.c, complete.c,
+         callback.c, 
+       - added extern declarations for functions from rltty.c
+
+lib/readline/{readline,util}.c
+       - rl_refresh_line now takes the standard two arguments for bindable
+         commands; changed callers
+
+lib/readline/*.c
+       - small cleanups for incorrect arguments, etc. uncovered by use of
+         function prototypes
+
+bashline.c
+       - small cleanups for incorrect arguments, etc. uncovered by use of
+         function prototypes
+
+                                  6/11
+                                  ----
+jobs.c
+       - cast result of strsignal() to (char *) for the benefit of broken
+         Cray UNICOS machines
+         [in bash-2.02.1]
+
+configure.in,aclocal.m4
+       - new test, BASH_TYPE_BITS64_T, used to find out what basic type is
+         64 bits long; defaults to `double'
+       - call AC_CHECK_SIZEOF(double)
+
+config.h.in
+       - #define for bits64_t, undef by default
+
+                                  6/24
+                                  ----
+aclocal.m4
+       - changed BASH_TYPE_BITS64_T so that it checks the size of a char *
+         first, before trying sizeof(double)
+
+lib/readline/doc/rluser.texinfo,doc/{bash.1,readline.3}
+       - changed default binding for tilde-expand to M-&, since bash
+         overrides M-~ to force username completion
+
+bashline.c
+       - fixed an off-by-one error in hostnames_matching that exhibited
+         itself when an exact multiple of 16 hostnames matched (fix
+         from <davidg@nikhef.nl>)
+         [in bash-2.02.1]
+
+                                  6/30
+                                  ----
+lib/readline/readline.c
+       - the maximum numeric argument is now 1000000
+
+bashline.c
+       - fixed a bug in bash_directory_completion_hook that caused memory
+         to be freed twice if a directory name containing an unset
+         variable was completed and `set -u' had been set
+
+configure.in
+       - on LynxOS, add a -DRECYCLES_PIDS to LOCAL_CFLAGS
+
+execute_cmd.c
+       - make sure that the changes to make the shell fork early when
+         run in the background do not cause commands such as `%1 &'
+         to fork
+         [in bash-2.02.1]
+       - if RECYCLES_PIDS is defined, execute_command_internal sets
+         last_made_pid to NO_PID after waiting for a foreground process,
+         if the return status is 0 (fix from plai@Lynx.COM (Paul Lai))
+
+lib/readline/kill.c
+       - fixes from Andreas Schwab to rl_yank_last_arg that make it
+         behave better
+
+lib/readline/input.c
+       - fixes from Donald Beaudry <donb@sgi.com> to make the input buffering
+         and rl_stuff_char work right when the input buffer is nearly full
+         (probably not a problem with keyboard input, but maybe a problem
+         with programmers attempting to use rl_stuff_char to preload the
+         input buffer)
+
+                                  7/14
+                                  ----
+parse.y
+       - fix to decode_prompt_string so that the \$ expansion quotes the `$'
+         so it won't be processed by subsequent parameter expansion
+       - change read_token_word so a $$ appearing in a token is recognized
+         and parsed immediately, so a single or double quote after the
+         second `$' doesn't cause ANSI-C expansion or locale translation
+         (bug report from haertel@ichips.intel.com)
+
+                                  7/16
+                                  ----
+lib/readline/display.c
+       - fixed a bug that caused core dumps in xrealloc if the prompt was
+         longer than 1024 characters
+
+                                  7/21
+                                  ----
+builtins/mkbuiltins.c
+       - if the number of characters read from the .def file is less than
+         the file size reported by `stat', and the read completed without
+         errors, reset the file size to avoid writing garbage at the end
+         of the generated .c file (needed on WIN32 systems, doesn't hurt
+         on Unix)
+
+                                  7/22
+                                  ----
+CWRU/empty-for-wordlist
+       - patch from Brian Fox for parse.y to allow bash to accept an empty
+         `wordlist' after the `in' keyword in a for statement
+
+                                  7/23
+                                  ----
+doc/bash.1
+       - corrected the synopsis of the `for' and `select' statements to
+         indicate that the semicolon (or newline) after the optional
+         `in words' is required
+
+[bash-2.02.1 released]
+
+                                  7/28
+                                  ----
+lib/readline/display.c
+       - make sure visible_length is initialized to 0 in rl_expand_prompt.
+         Fix from Gerhard Niklasch <nikl@mathematik.tu-muenchen.de>.
+
+lib/glob/glob.c
+       - make sure that quotes are removed from the filename being globbed
+         in glob_vector() before calling the GLOB_TESTNAME macro if there
+         are no globbing characters in the pattern
+
+doc/Makefile.in
+       - make sure that builtins.1 is looked for in $(srcdir) when running
+         `make install' (it's still commented out, though)
+
+                                  7/30
+                                  ----
+config.h.bot
+       - if PROMPT_STRING_DECODE is not defined, define PPROMPT (the primary
+         prompt string) as "$ "
+
+variables.c
+       - if PROMPT_STRING_DECODE is not defined, and current_user.euid == 0,
+         PS1 defaults to "# ", otherwise it defaults to `primary_prompt'
+
+doc/bashbug.1
+       - fixed email address prep.ai.mit.edu -> gnu.org
+
+                                   8/3
+                                   ---
+support/shobj-conf
+       - add `solaris2' as a possible OS name, treated the same as sunos5
+
+                                   8/4
+                                   ---
+shell.c
+       - changed maybe_make_restricted() so that $ENV and $BASH_ENV are
+         read-only variables in a restricted shell
+
+doc/{bash.1,bashref.texi}
+       - added ENV and BASH_ENV to the list of readonly variables in
+         restricted mode
+
+parse.y
+       - added `do', `then', `else', `{', and `(' to the list of keywords
+         that may precede the `time' reserved word
+
+general.c
+       - added sanity checks to timeval_to_secs and clock_t_to_secs so
+         that if the fractional part is >= 1000, 1 is added to the
+         seconds and 1000 is subtracted from the fractional seconds
+
+                                   8/6
+                                   ---
+Makefile.in
+       - use $(CC_FOR_BUILD) to build mksignames
+
+configure.in
+       - changes to allow cross-building for BeOS as well as cygwin32
+
+cross-build/{beos-sig.h,x86-beos.cache}
+       - new files for cross-compiling for BeOS
+
+                                   8/7
+                                   ---
+Makefile.in
+       - changed rule for version.h to use && instead of if-then-else-fi to
+         make sure the recipe fails if mkversion.sh fails
+
+configure.in
+       - beos does not use the GNU malloc
+
+lib/sh/itos.c
+       - broke itos into inttostr(i, buf, len) and itos(i), which calls
+         inttostr and returns a newly-allocated string with the result
+
+support/mksignames.c
+       - define `SIGKILLTHR' if system include files define it
+
+externs.h
+       - extern declaration for inttostr(int, char *, int)
+
+                                  8/13
+                                  ----
+lib/sh/strtol.c
+       - include stdc.h before bashansi.h
+
+execute_cmd.c
+       - make sure that execute_cond_node treats `=' the same as `=='
+
+                                  8/25
+                                  ----
+variables.c, print_cmd.c
+       - changed some calls to itos to use inttostr instead
+
+cross-build/x86-beos.cache, {execute_cmd,general,shell,trap}.c
+       - some changes for BeOS (from fnf@ninemoons.com)
+
+lib/posixheaders/memalloc.h
+       - changes to handle case where we're using both gcc and the C
+         version of alloca(), or if we have alloca.h and we're using
+         the C version of alloca() (from fnf@ninemoons.com)
+
+lib/sh/oslib.c
+       - if bcopy or bzero are #defines, #undef them before defining
+         replacement functions
+
+support/config.guess
+       - recognize AmigaOS (from fnf@ninemoons.com)
+       - recognize BeOS running on various machines
+         (from fnf@ninemoons.com)
+
+support/config.sub
+       - change basic_machine definition for amiga; added amigaos
+         (from fnf@ninemoons.com)
+       - changed definitions for MIPS machines running Linux (from
+         fnf@ninemoons.com)
+       - recognize `beos' as a valid operating system
+         (from fnf@ninemoons.com)
+       - changed OS for *-cbm to `amigaos' rather than `amigados'
+         (from fnf@ninemoons.com)
+
+examples/functions/autoload.v3
+       - a new version, from Mark Kennedy <mtk@ny.ubs.com>
+
+lib/readline/readline.c
+       - new function, rl_delete_or_show_completions, like tcsh editing
+         function delete-char-or-list
+
+lib/readline/readline.h
+       - new extern declaration for rl_delete_or_show_completions
+
+lib/readline/funmap.c
+       - new bindable name `delete-char-or-list', like tcsh
+
+lib/readline/doc/rluser.texinfo, doc/{bash.1,readline.3}
+       - documented new delete-char-or-list command
+
+general.c
+       - fix full_pathname to keep it from generating things like
+         //foo when the current directory is /
+
+                                  8/27
+                                  ----
+builtins/fc.def
+       - fixed the help text for the -e option
+
+                                  8/28
+                                  ----
+support/shobj-conf
+       - added a clause for AIX 4.2 systems running gcc -- just the
+         standard gcc stuff for shared objects, but it has to come
+         before the other AIX 4.2 clause
+
+                                  8/31
+                                  ----
+shell.c
+       - some changes so that `set -e' is turned off while executing
+         the startup files
+
+                                   9/3
+                                   ---
+flags.c
+       - new variable, `restricted_shell', non-zero if the shell was
+         started in restricted mode
+
+flags.h
+       - extern declaration for restricted_shell
+
+shell.c
+       - new function, shell_is_restricted, returns 1 if the shell is
+         supposed to be restricted based on the basename of $0 or the
+         -r option
+       - set restricted_shell to the value returned by shell_is_restricted
+         before executing the startup files
+
+externs.h
+       - extern declaration for shell_is_restricted
+
+builtins/shopt.def
+       - new shopt variable, restricted_shell, indicates whether the shell
+         was restricted at startup -- useful in startup files
+
+doc/{bash.1,bashref.texi}
+       - documented new restricted_shell shopt option
+
+                                  9/15
+                                  ----
+lib/sh/rename.c
+       - new file, replacement for rename(2) if the OS doesn't provide it
+
+configure.in,config.h.in,Makefile.in,lib/sh/Makefile.in
+       - machinery for including rename.o in libsh.a
+
+nojobs.c
+       - make sure that set_tty_state returns a value
+
+builtins/mkbuiltins.c
+       - use a call to rename(2) instead of a link/unlink pair
+
+lib/glob/glob.c
+       - don't #define bcopy if bcopy is already defined
+
+lib/readline/histfile.c
+       - add a call to ftruncate for BeOS, which ignores the O_TRUNC flag
+         to open
+
+lib/readline/input.c
+       - make rl_getc loop if read returns -1/EINTR on BeOS
+
+configure.in
+       - set ARFLAGS and substitute it into the Makefiles
+
+{,builtins,lib/{glob,malloc,readline,sh,termcap,tilde}}/Makefile.in
+       - ARFLAGS is now substituted by configure
+       - use ARFLAGS in rules that create libraries using $(AR)
+
+builtins/printf.def
+       - fixed bug that caused a core dump when a modifier was supplied
+         in the format string without a conversion character (e.g. `%h')
+
+                                  9/17
+                                  ----
+lib/glob/glob.c
+       - if filenames starting with a dot don't have to be matched
+         explicitly (e.g., after a `shopt -s dotglob'), don't match
+         `.' or `..' in any case
+
+eval.c
+       - make sure that array assignments don't show up in the history list
+         (fix from Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
+
+lib/readline/complete.c
+       - fix to rl_menu_complete so it inserts a single completion properly
+         when a word matches only one filename
+
+                                  9/24
+                                  ----
+execute_cmd.c
+       - difftimeval should zero out the tv_usec field if the tv_sec field
+         is < 0
+       - addtimeval should check for tv_usec being == 1000000 and add one
+         to tv_sec if it is
+
+                                  9/25
+                                  ----
+subst.c
+       - fix to expand_word_internal to prevent non-whitespace IFS characters
+         from causing word splitting if they are not the results of an
+         expansion (not exactly right yet, but I think it's the result of a
+         problem with the ${...} end-brace-matching code in the parser)
+
+                                  9/28
+                                  ----
+parse.y
+       - new flag for parse_matched_pair -- P_FIRSTCLOSE -- which makes it not
+         count and match additional construct open characters
+       - change calls to parse_matched_pair when matching braces in
+         ${...} constructs (both unquoted and within double quotes) to
+         specify the P_FIRSTCLOSE flag to match POSIX.2 requirements
+
+subst.c
+       - changed fix from 9/25, now that the parser problem is fixed
+
+                                  9/30
+                                  ----
+variables.c
+       - change expansion of list of words between (...) in array assignments
+         to include pathname generation in assign_array_var_from_string
+
+doc/{bash.1,bashref.texi}
+       - clarified behavior of the shell at startup if running setuid, with
+         and without the -p option supplied
+
+                                  10/7
+                                  ----
+bashhist.c
+       - change default open(2) mode to 0600 instead of 0666 for `privacy
+         concerns'
+
+                                  10/13
+                                  -----
+lib/readline/display.c
+       - fixed a problem with displaying tabs after newlines, from
+         <qrczak@knm.org.pl>
+       - in update_line, if we are printing over existing material,
+         only call space_to_eol or _rl_clear_to_eol if lendiff is non-zero
+       - when moving the cursor in _rl_move_cursor_relative, only call
+         _rl_backspace if the current cursor position is strictly greater
+         than the desired cursor position
+
+                                  10/14
+                                  -----
+locale.c
+       - LC_ALL is no longer set automatically when LANG is assigned a value
+
+config.h.{top,bot}
+       - renamed to config-{top,bot}.h, respectively
+
+config.h.in
+       - include config-top.h and config-bot.h
+
+Makefile.in
+       - things now depend on config-top.h and config-bot.h
+
+subst.c
+       - minor changes to extract_dollar_brace_string and char_is_quoted to
+         allow things like "${PIP[TAB] to perform correct variable completion
+
+                                  10/15
+                                  -----
+builtins/Makefile.in
+       - add $(PROFILE_FLAGS) to the make recipe that creates `mkbuiltins',
+         so configuring with --enable-profiling works right
+
+                                  10/20
+                                  -----
+doc/bashref.texi
+       - documented the new --with-installed-readline option
+
+[bash-2.03-alpha1 frozen]
+
+                                  10/21
+                                  -----
+builtins/reserved.def
+       - fixed help text for { ... } to make it clear that a semicolon is
+         required before the closing brace
+
+                                  10/22
+                                  -----
+trap.c
+       - in decode_signal, don't bother calling strcasecmp if
+         signal_names[sig] is null or empty
+
+                                  11/2
+                                  ----
+configure.in
+       - make sure RL_LIBDIR and HIST_LIBDIR are assigned values even if
+         readline or history is configured out of the shell, so the -L
+         options have arguments in the link command
+
+test.c
+       - make test_syntax_error cause test to return a status > 1, to
+         conform to POSIX.2 4.62.8
+
+doc/readline.3
+       - make sure the SYNOPSIS section indicates that programmers should
+         include <stdio.h> before <readline.h>
+
+                                  11/9
+                                  ----
+Makefile.in
+       - install with explicit mode of 0755
+
+                                  11/10
+                                  -----
+builtins/test.def
+       - make sure that a missing `]' makes `[' exit with status 2, to
+         conform to POSIX.2 4.62.8
+
+command.h
+       - new word flag: W_NOGLOB, meaning to not perform globbing
+
+execute_cmd.c
+       - fix_assignment_statements now turns on the W_NOGLOB flag for
+         arguments to `assignment builtins' that have W_ASSIGNMENT set
+
+subst.c
+       - expand_word_internal needs to preserve the W_NOGLOB flag from
+         the word being expanded to the word being returned
+       - glob_expand_word_list does not call shell_glob_filename for a
+         word with W_NOGLOB set
+
+builtins/shopt.def
+       - print_shopt is now void
+
+configure.in
+       - machines running Rhapsody don't use the bash malloc
+       - pass host_vendor to the Makefiles with AC_SUBST
+
+support/config.guess
+       - Rhapsody is really rhapsody, not nextstep
+
+support/config.sub
+       - add rhapsody to the list of supported configurations
+
+Makefile.in
+       - pass CONF_HOSTTYPE, CONF_OSTYPE, and CONF_MACHTYPE as -D options
+         in SYSTEM_FLAGS, to indicate that they came from the configuration
+         process
+       - set VENDOR variable from host_vendor configuration variable
+       - pass CONF_VENDOR as part of SYSTEM_FLAGS
+
+variables.c
+       - define HOSTTYPE, OSTYPE, and MACHTYPE as CONF_HOSTTYPE, CONF_OSTYPE,
+         and CONF_MACHTYPE, respectively
+
+                                  11/11
+                                  -----
+doc/{bashref.texi,bash.1}
+       - updated description of `read' to clarify the -r option and its
+         effect on backslash escaping
+
+                                  11/13
+                                  -----
+examples/loadables/{ln,unlink}.c
+       - new loadable builtins
+
+                                  11/23
+                                  -----
+lib/glob/fnmatch.c
+       - some fixes to handle extended glob patterns immediately following
+         a `*'
+
+tests/extglob.tests
+       - updated with cases from bug report fixed today
+
+support/shobj-conf
+       - udpated stanza for aix 4.2 with gcc, based on information from
+         jik@cisco.com
+
+configure.in
+       - changes to add the correct linker options to allow dynamic linking
+         when using gcc on AIX 4.2, instead of insisting on the AIX C
+         compiler
+
+examples/misc/aliasconv.{bash,sh}
+       - changes to handle aliases with embedded single quotes
+
+                                  11/25
+                                  -----
+lib/readline/complete.c
+       - postprocess_matches should call compute_lcd_of_matches with an
+         argument of `t' instead of `text'
+       - postprocess_matches should never call ding(); leave that for the
+         callers
+       - postprocess_matches no longer needs `text' as the first argument
+       - rl_complete_internal needs to call ding() if postprocess_matches
+         returns 0, since postprocess_matches no longer does it
+       - rl_complete_internal can now free `text' immediately after calling
+         gen_completion_matches, since it's no longer used
+
+                                  11/30
+                                  -----
+print_cmd.c
+       - make sure redirections following compound commands have a space
+         separating them from the command
+
+                                  12/1
+                                  ----
+general.c
+       - changed canonicalize_pathname so that if the result path begins
+         with `//', it will be changed to `/' if and only if the original
+         path did not begin with `//' (there has to be a non-slash after
+         the leading `///' in the original path)
+
+                                  12/2
+                                  ----
+builtins/evalstring.c
+       - augment the test for turning on CMD_NO_FORK to make sure that
+         parse_and_execute_level == 1.  That takes care of things like
+
+               bash -c 'for f in 1 2 3; do eval "/bin/echo \"$f\"" ; done'
+
+         only printing one line of output
+
+                                  12/8
+                                  ----
+config-top.h
+       - add commented-out #define for NON_INTERACTIVE_LOGIN_SHELLS so
+         that users may, if they choose, make things like
+
+               #! /bin/bash --login
+
+         work in shell scripts
+
+                                  12/10
+                                  -----
+jobs.c
+       - changes to the way jobs are reaped when the shell is not
+         interactive:
+
+               o notify_of_job_status no longer marks dead jobs as
+                 notified if they did not exit due to a signal;
+               o changed mark_background_jobs_as_notified to take an
+                 argument `force':  if zero, we only mark enough
+                 dead jobs as notified to keep CHILD_MAX jobs in the
+                 jobs list, as POSIX.2 specifies.  If non-zero, mark
+                 all dead jobs as notified;
+               o wait_for_background_pids marks all dead jobs as
+                 notified when it has finished waiting for everything,
+                 since the only thing that calls it is the `wait' builtin;
+               o wait_for_single_pid marks a job as notified after it
+                 has completed, since the only things that call it are
+                 wait_for_background_pids and the `wait' builtin
+               o wait_for_job marks the job as notified after the last
+                 pid completes
+
+execute_cmd.c
+       - change execute_subshell_builtin_or_function to check
+         subshell_environment and pipe_out to decide whether or not to fork
+         if builtin == jobs_builtin, since the early-forking code added in
+         bash-2.02 means that the piping has probably already been done
+
+                                  12/15
+                                  -----
+parse.y
+       - changes to make avar=((...)) a syntax error instead of ignoring
+         the nested parens and treating it as an array assignment
+
+shell.c
+       - changed run_startup_files so that any shell, whether or not it is
+         interactive, will run the login shell startup files when given the
+         --login option.  This happens only when not in posix mode.
+
+builtins/enable.def
+       - changes to handle Tenon's MachTen, whose dlclose() does not return
+         a value
+
+lib/glob/fnmatch.c
+       - changed gmatch so that when it calls extmatch, it removes FNM_PERIOD
+         from the flags if it's not matching at the start of the string.
+         This fixes the problem of `@' and `+' extended-glob subpatterns
+         containing bracket expressions treating `.' specially when matching
+         a portion of the string starting with `.'
+
+config-top.h
+       - removed define for NON_INTERACTIVE_LOGIN_SHELLS, since it's no longer
+         necessary
+
+                                  12/17
+                                  -----
+lib/readline/complete.c
+       - change rl_complete_internal and rl_menu_complete to check
+         rl_filename_completion_desired to decide whether or not we're
+         completing filenames instead of checking whether the attempted
+         completion function is filename_completion_function.
+         filename_completion_function sets rl_filename_completion_desired,
+         so this shouldn't break anything -- just allow postprocessing of
+         matches for user-supplied filename completion functions that don't
+         call filename_completion_function
+
+lib/readline/display.c
+       - new function, _rl_erase_entire_line, which erases the entire line,
+         no matter where the cursor is, and puts the cursor at the beginning
+         of the (newly-empty) line
+
+lib/readline/readline.c
+       - new application-level variable, rl_erase_empty_line, which, if
+         non-zero, tells readline to erase the contents of the current line,
+         prompt and all, if the only character typed to an otherwise-blank
+         line is bound to rl_newline.  Requested by the Cygnus GDB folks.
+       - change to rl_newline to suppress the call to _rl_update_final if
+         rl_erase_empty_line is non-zero, and rl_point == rl_end == 0, since
+         _rl_update_final calls crlf()
+       - change to readline_internal_charloop to call _rl_erase_entire_line
+         if newline was the only thing typed on an otherwise-empty line
+
+lib/readline/readline.h
+       - extern declaration for rl_erase_empty_line
+
+lib/readline/doc/rltech.texinfo
+       - documented new rl_erase_empty_line variable
+
+                                  12/18
+                                  -----
+Makefile.in
+       - changed RELSTATUS to `beta1'
+
+[bash-2.03-beta1 frozen]
+
+                                  12/21
+                                  -----
+doc/{bash.1,bashref.texi}
+       - added description of `test -h'; equivalent to `test -L'
+
+                                  12/22
+                                  -----
+support/shobj-conf
+       - SHOBJ_LDFLAGS should be those options to ld which are common
+         between building dynamically loadable shared objects and shared
+         libraries
+       - added two new variables: SHOBJ_XLDFLAGS, which are ld options
+         specific to building dynamically loaded shared objects, and
+         SHLIB_LIBS, which are other libraries against which shared libraries
+         should be linked.  These are for the benefit of AIX 4.2; other
+         stanzas do not need to be changed.
+
+configure.in
+       - add call to AC_SUBST for SHOBJ_XLDFLAGS
+
+examples/loadables/Makefile.in
+       - SHOBJ_XLDFLAGS is now substituted by configure
+       - $(SHOBJ_LDFLAGS) -> $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) in all
+         recipes that build loadable builtins
+
+                                  12/29
+                                  -----
+support/config.{guess,sub}
+       - changes for NEC SX4 machines running SUPER-UX (?).  Info from
+         Nicholas Clark <nick@flirble.org>
+
+lib/readline/bind.c
+       - new bindable variable, `isearch-terminators', which is the list of
+         characters that will terminate an incremental search without
+         subsequently executing the character as a command
+
+lib/readline/isearch.c
+       - changes to incorporate the new isearch-terminators bindable variable;
+         uses new private readline variable _rl_isearch_terminators
+         (suggested by Brian Fox)
+
+doc/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
+       - documented new `isearch-terminators' settable variable
+
+lib/readline/complete.c
+       - new convenience function, free_match_list, called from
+         rl_complete_internal
+
+                                  12/30
+                                  -----
+aclocal.m4
+       - changed the calls to AC_MSG_ERROR in the cross-compiling sections
+         to AC_MSG_WARN, since AC_MSG_ERROR can cause configure to abort
+
+examples/functions/which
+       - new function, emulation of `which' as it appears in FreeBSD
+
+                                  12/31
+                                  -----
+lib/readline/readline.c
+       - new bindable function: rl_rubout_or_delete.  Does rl_rubout if
+         rl_point is at the end of the line, or rl_delete if not.  This
+         is intended to mimic the Motif/Netscape/GNOME behavior of the
+         DEL character, and can be bound to delete to get that behavior
+
+lib/readline/readline.h
+       - new extern declaration for rl_rubout_or_delete
+
+lib/readline/funmap.c
+       - bound the name `forward-backward-delete-char' to
+         rl_rubout_or_delete (currently not bound to any keys)
+
+lib/readline/doc/manvers.texinfo
+       - new file with readline manual version information, to mantain
+         consistent numbering between readline and history manuals
+
+lib/readline/doc/{rlman,hist}.texinfo
+       - @include manvers.texinfo for version information
+       - moved the @dircategory and and @direntry directives inside
+         the @ifinfo block
+       - changed copyrights to 1988-1999
+
+doc/Makefile.in, lib/readline/doc/Makefile.in
+       - texi2html is now called with -menu (to handle the texinfo menus)
+         and -monolithic (to include the table of contents in the generated
+         HTML file instead of putting it in a separate file
+       - changed recipes to remove references to TOC html files
+
+lib/glob/fnmatch.c
+       - include <string.h> or <strings.h> as appropriate for strchr()
+         declaration
+
+                                1/4/1999
+                                --------
+print_cmd.c
+       - don't print bare words when printing conditional expressions in
+         print_cond_node, use cprintf("%s", cond->op->word)
+
+subst.c
+       - in separate_out_assignments, if VARLIST is non-null on function
+         entry, free it up to clean up after a previous error longjmp
+
+                                   1/5
+                                   ---
+configure.in
+       - make sure the case clause that disables the bash malloc on alpha
+         machines catches things like `alphaev56' as well as `alpha'
+
+                                  1/12
+                                  ----
+lib/readline/histlib.h
+       - new error message code: NO_PREV_SUBST
+
+lib/readline/histexpand.c
+       - handle NO_PREV_SUBST with appropriate error message in hist_error
+       - in history_expand_internal, if the `s' or `&' case results in a
+         null or empty LHS, return NO_PREV_SUBST
+
+error.c
+       - new interface: command_error(func, code, e, flags); intended to
+         collect command-related errors in one place
+       - new interface: command_errstr(code); returns a string describing
+         command error CODE
+
+error.h
+       - extern declarations for command_error and command_errstr
+
+command.h
+       - possible values for CODE in calls to command_error and command_errstr
+
+{shell,print_cmd,make_cmd,execute_cmd,dispose_cmd,eval}.c ,builtins/evalstring.c
+       - changed some calls to programming_error to use command_error
+
+                                  1/13
+                                  ----
+configure.in
+       - if --enable-profiling is specified on a solaris2 machine, don't
+         turn on enable-static-link, since it's very hard to build a
+         static binary on solaris2 and gprof does not (apparently) require it
+
+builtins/getopts.def
+       - add calls to sh_getopt_restore_state so the state is restored each
+         time getopts is called.  This protects us against the behavior of
+         some mallocs, which causes `nextchar' to be set to garbage in
+         getopt.c when a function is called between calls to getopts
+
+                                  1/14
+                                  ----
+lib/readline/complete.c
+       - if postprocess_matches returns 0 in rl_complete_internal, reset
+         completion_changed_buffer to 0 before returning, since nothing
+         has been changed
+
+                                  1/20
+                                  ----
+subst.c
+       - fixed pat_subst so that null patterns with a `#' specifier prefix
+         the string to be substituted on with the replacement, and null
+         patterns with a `%' specifier append the replacement to the string
+         to be substituted on
+
+doc/{bash.1,bashref.texi}
+       - corrected a small error in the description of parameter pattern
+         substitution
+
+support/mksignames.c
+       - SIGINFO means something else on sequent systems
+
+                                  1/26
+                                  ----
+execute_cmd.c
+       - fix to execute_simple_command to keep a child process from getting
+         a bad value of last_asynchronous_pid when the shell forks early
+
+                                   2/1
+                                   ---
+Makefile.in
+       - changed RELSTATUS to `beta2'
+
+                                   2/2
+                                   ---
+[bash-2.03-beta2 released]
+
+                                   2/3
+                                   ---
+tests/{cprint.{tests,right},run-cprint}
+       - new test to exercise the command printing and copying code --
+         hopefully this will avoid things like the `conditional commands
+         in functions make the shell abort' problem
+
+                                   2/4
+                                   ---
+version.c
+       - if MACHTYPE is not defined, use CONF_MACHTYPE if it's defined
+
+                                   2/5
+                                   ---
+builtins/read.def
+       - if READLINE is defined, we need an extra pair of braces around
+         the `while' loop that reads from fd 0 if the -e option is
+         supplied, otherwise the code erroneously tests the value of
+         `retval', which is not set when using readline
+
+                                  2/15
+                                  ----
+builtins/fc.def
+       - make sure that fc closes `stream' before calling fc_execute_file
+
+                                  2/17
+                                  ----
+builtins/fc.def
+       - don't bother opening and closing the file of commands before
+         calling fc_execute_file, since parse_and_execute will write the
+         commands to the history file for us
+
+Makefile.in
+       - changed release status to `release'
+
+                                  2/18
+                                  ----
+parse.y
+       - change to special_case_tokens so that `time' is not recognized
+         as a reserved word while the parser is parsing a case statement
+         pattern list (if `time' is the first pattern, the last read
+         token will be newline, which time_command_acceptable says is OK
+         to start a pipeline)
+
+pathexp.c
+       - some changes to the POSIX_GLOB_LIBRARY code (often unused)
+
+shell.c
+       - a couple of changes for Interix (nee OPENNT)
+       - added code that handles systems without a third argument to main();
+         initializing `env' from `environ', conditionalized on a cpp define
+         NO_MAIN_ENV_ARG
+
+configure.in, config.h.in
+       - check for the presence of sbrk(2); define HAVE_SBRK if found
+
+xmalloc.c
+       - don't do the space allocated computation when malloc or realloc
+         fails if HAVE_SBRK is not defined
+
+configure.in
+       - new configure variable, MAKE_SHELL, defaults to /bin/sh
+
+Makefile.in,{builtins,doc,support,lib/{glob,malloc,readline,sh,termcap,tilde},examples/loadables}/Makefile.in
+       - set SHELL from @MAKE_SHELL@
+
+lib/posixheaders/posixjmp.h
+       - Don't override defines for setjmp and longjmp in <setjmp.h> on
+         Internix (nee OPENNT)
+
+lib/readline/complete.c
+       - Interix (OPENNT) doesn't do username completion
+
+configure.in
+       - on Interix/OPENNT ($host_os == interix* or opennt*), add
+         -DNO_MAIN_ENV_ARG to LOCAL_CFLAGS
+       - on Interix/OPENNT, set MAKE_SHELL to $OPENNT_ROOT/bin/sh rather
+         than a straight /bin/sh
+
+cross-build/opennt.cache
+       - a `configure' cache file for Interix/OPENNT; not necessarily
+         for cross-compiling, but this is where the other system cache
+         files are
+
+[bash-2.03 released]
+
+                                  2/19
+                                  ----
+configure.in
+       - changed OPENNT_ROOT to INTERIX_ROOT for building on Interix
+
+support/config.guess
+       - added two stanzas for Interix running on alpha and intel hardware
+
+                                  2/22
+                                  ----
+config-bot.h
+       - if PROMPT_STRING_DECODE is not defined, #undef PPROMPT before
+         redefining it, to avoid warning messages
+
+execute_cmd.c
+       - set jobs_hack in execute_subshell_builtin_or_function only if
+         JOB_CONTROL is defined
+
+                                  2/24
+                                  ----
+trap.c
+       - fixed an obscure bug caused by a race condition in run_pending_traps.
+         Read the comments in the source code for a full description of the
+         problem and solution
+
+                                   3/1
+                                   ---
+aclocal.m4
+       - new test, BASH_STRUCT_TIMEVAL, which tries to compile a code
+         fragment that includes <sys/time.h> and <time.h> as appropriate
+         and defines HAVE_TIMEVAL if the compile succeeds
+
+configure.in
+       - call BASH_STRUCT_TIMEVAL rather than running a pair of
+         AC_HEADER_EGREPs on sys/time.h and time.h
+
+lib/readline/histfile.c
+       - include "posixstat.h" rather than <sys/stat.h>
+       - in history_truncate_file, only try to truncate if the history file
+         is a regular file
+
+                                   3/2
+                                   ---
+aclocal.m4
+       - changed BASH_STRUCT_TIMEVAL back to using a pair of
+         AC_EGREP_HEADERs instead of compiling a program fragment
+
+lib/readline/readline.c
+       - readline_internal_charloop should cast the first argument to
+         _rl_dispatch to `unsigned char' to avoid problems with negative
+         array indices on systems where signed chars are the default
+
+lib/readline/kill.c
+       - instead of doing a sequence of next_history() calls in
+         rl_yank_nth_arg_internal, save and restore the history
+         position explicitly after finding the correct entry.  This
+         attempts to ensure that rl_yank_nth_arg leaves the history
+         pointer set to the same position as when it was called.
+         Fix from Vasco Pedro <vp@di.fct.unl.pt>
+
+                                   3/5
+                                   ---
+redir.c
+       - broke code that opens file for redirection in do_redirection_internal
+         into a separate function: redir_open(path, flags, mode, ri)
+
+general.h
+       - changed STREQN so that it evaluates to 1 (strings are equivalent)
+         if N == 0, to match the behavior of strncmp
+
+lib/sh/zwrite.c
+       - new file, zwrite() from builtins/evalstring.c
+
+builtins/evalstring.c
+       - removed private definition of zwrite
+
+builtins/common.c
+       - double_quote needs to protect newlines with backslashes as well
+       - new function, un_double_quote, to remove backslashes proctecting
+         characters that are special in double quotes
+
+builtins/common.h
+       - new extern declaration for un_double_quote
+
+parse.y
+       - changed read_token_word to requote the expanded value of $'...'
+         using single_quote
+       - added a new flag to parse_matched_pair: P_ALLOWESC.  It allows
+         backslashes to quote embedded single quotes, and is used by
+         the $'...' translation code for better ksh93-compatibility
+       - changed localeexpand to call mk_msgstr on the string passed
+         before displaying it if all we're doing is displaying translatable
+         strings in `po' format.  mk_msgstr quotes backslashes and double
+         quotes in the string passed with backslashes, and encloses the
+         result in double quotes.  If only -D is supplied, the string is
+         not changed at all -- this is what ksh93 does
+
+lib/readline/rlconf.h
+       - removed PAREN_MATCHING #define, paren matching is always compiled
+         into readline
+
+lib/readline/parens.c
+       - removed code that was active if PAREN_MATCHING was not defined
+       - added _rl_enable_paren_matching, which is called when the readline
+         variable `blink-matching-paren' is assigned a value and changes
+         the appropriate key bindings in emacs_standard_keymap
+
+lib/readline/bind.c
+       - no more PAREN_MATCHING defines, `blink-matching-paren' is always
+         available
+       - if `blink-matching-paren' is assigned a value, call
+         _rl_enable_paren_matching (rl_blink_matching_paren)
+
+lib/readline/emacs_keymap.c
+       - removed PAREN_MATCHING defines; the default key bindings for
+         ), ], and } are self-insert
+
+                                   3/7
+                                   ---
+stringlib.c
+       - added an extra argument to ansicstr so that `echo -e' will not
+         convert \' to '
+
+externs.h
+       - changed extern declaration for ansicstr
+
+parse.y, builtins/{echo,printf}.def
+       - changed calls to ansicstr() appropriately
+
+eval.c
+       - in parse_string_to_word_list, if an unexpected token is encountered
+         that causes the string to not parse to a simple command, or to
+         completely consume the string, display an error message and jump
+         back to the top level after restoring the parsing environment,
+         returning an error status from the attempted assignment
+
+                                   3/8
+                                   ---
+lib/glob/fnmatch.c
+       - fixed patscan and extmatch to handle embedded [...](...) patterns
+         better
+
+tests/{extglob2.{tests,right},run-extglob2}
+       - an additional set of ksh extended globbing tests, cribbed from zsh
+
+                                  3/10
+                                  ----
+general.c
+       - changed unset_nodelay_mode slightly to make sure it handles both
+         O_NDELAY and O_NONBLOCK if they have different values; it now
+         returns a value of 0 on success (or no action); -1 on failure
+
+general.h
+       - changed extern declaration for unset_nodelay_mode
+
+
+lib/readline/shell.c
+       - new function: unset_nodelay_mode; identical to definition in
+         general.c
+
+lib/readline/input.c
+       - changed rl_getc to call unset_nodelay_mode if the read fails with
+         errno == EWOULDBLOCK || errno == EAGAIN
+
+                                  3/11
+                                  ----
+lib/termcap/termcap.c
+       - minor changes from termutils-2.0
+       - minor change to MS-DOS version of valid_filename_p so MS-DOS-specific
+         code from tgetent() can be removed (from Michel@smr.nl)
+
+lib/readline/bind.c
+       - in _rl_read_file, null-terminate the buffer at the number of
+         characters actually read, not what stat() says the file size is
+       - use ~/_inputrc as a last-ditch inputrc filename on MS-DOS
+
+lib/readline/complete.c
+       - change printable_part to handle MS-DOS `drive-letter:' pathname
+         prefixes
+       - removed __GO32__ code, since it's for DJGPP 1.x, which is not
+         supported any more, and they don't work for DJGPP 2.x
+       - added code to support MS-DOS drive letter prefixes and //X/...
+         to filename_completion_function
+       - _rl_completion_case_fold defaults to 1 on MS-DOS
+
+lib/readline/{display,input,readline,rltty,signals,terminal}.c
+       - removed __GO32__ code
+
+lib/readline/histfile.c
+       - make read_history_range and history_truncate_file work with the
+         actual number of characters read from the file, not the file size
+         as reported by stat()
+
+lib/readline/readline.c
+       - change bind_arrow_keys_internal to bind MS-DOS arrow keys to the
+         appropriate functions if __MSDOS__ is defined
+
+lib/readline/rltty.c
+       - make sure set_winsize is always defined, with a null body if
+         TIOCGWINSZ is not defined
+
+lib/readline/shell.c
+       - include <stdio.h>, since this file uses sprintf
+
+support/shobj-conf
+       - MS-DOS does not support shared objects
+
+lib/tilde/tilde.c
+       - change tilde_find_suffix and isolate_tilde_prefix to understand
+         backslash as a pathname separator on MS-DOS
+
+                                  3/12
+                                  ----
+lib/readline/{bind,readline,terminal}.c
+       - no longer need to include <signal.h>
+
+lib/readline/terminal.c
+       - don't need to include <setjmp.h>
+
+builtins/history.def
+       - broke the code than handles deleting a particular history entry
+         from the history list out into a separate function: delete_histent
+       - added `-d offset' option to delete the history entry at position
+         OFFSET, as displayed when the history is listed
+
+jobs.c, nojobs.c
+       - new function, count_all_jobs(), returns the number of active jobs
+         in the jobs list
+
+jobs.h
+       - extern declaration for count_all_jobs()
+
+configure.in
+       - check for C library function ttyname()
+
+config.h.in
+       - define HAVE_TTYNAME if configure finds ttyname(3)
+
+parse.y
+       - two new escape sequences for decode_prompt_string:
+
+               \j      number of active jobs in jobs list
+               \l      basename of shell's tty device name
+
+doc/{bash.1,bashref.texi}, lib/readline/doc/hsuser.texi
+       - documented new `history -d' option
+       - documented new \j and \l prompt string expansion sequences
+
+lib/readline/bind.c
+       - new static state variable, currently_reading_init_file, set to
+         1 while _rl_read_init_file is operating on a file
+       - changed _rl_init_file_error to include the name and line number
+         from the init file only if currently_reading_init_file is non-zero
+         (this is needed since applications like bash can call
+         rl_parse_and_bind, and error messages from those calls would be
+         misleading if they referred to the last inputrc file read
+
+bashline.c
+       - support for a `extended command keymap', which will allow
+         readline key sequences to be bound to unix commands using an
+         auxiliary keymap and a special function that knows how to execute
+         commands from it
+       - bind_keyseq_to_unix_command supports `bind -x'
+       - bash_execute_unix_command is the readline callback that looks in
+         an auxiliary keymap to find the shell command to execute for a
+         particular key sequence
+       - new variable, no_empty_command_completion, which suppresses $PATH
+         searching for command completion when TAB is typed on an empty
+         line
+
+bashline.h
+       - extern declaration for new function bind_keyseq_to_unix_command
+
+builtins/bind.def
+       - added `-x' option to bind a key sequence to a shell command
+
+builtins/help.def
+       - added `-s' option to just print a builtin's short_doc
+
+builtins/shopt.def
+       - added new shell option, no_empty_cmd_completion', mirroring value
+         of no_empty_command_completion
+
+doc/{bash.1,bashref.texi}
+       - documented new `bind -x' option
+       - documented new shopt `no_empty_cmd_completion' option
+       - documented new `help -s' option
+
+Makefile.in
+       - changed RELSTATUS to `devel'
+
+_distribution
+       - changed to `2.04'
+
+                                  3/15
+                                  ----
+support/shobj-conf
+       - add `-h $@' to linking options on Solaris 2 with gcc
+
+expr.c
+       - changes to add {pre,post}-{inc,dec}rement operators (++id, --id,
+         id++, id--).  These are somewhat more liberal than ksh93, and
+         may require more strict syntax checking down the line
+
+tests/arith.{tests,right}
+       - additional tests for {pre,post}-{inc,dec}rement operators
+
+                                  3/16
+                                  ----
+command.h
+       - structures and types for ksh-93-style arithmetic `for' command
+
+configure.in
+       - new `--enable-arith-for-command' option to compile arithmetic for
+         command code into the shell
+
+config.h.in
+       - new define, ARITH_FOR_COMMAND, turned on by configure
+
+parse.y
+       - changed read_token_word to parse a set of arithmetic for expressions
+         between (( and )) as long as the last token read before the `(('
+         was FOR
+       - added grammar rules to build arithmetic for commands
+
+make_cmd.c
+       - functions to parse (( ... )) into the three sub-expressions needed
+         for the arithmetic for command and create the command structures
+         (done this way instead of in the grammar rules to avoid forcing
+         users to quote special characters between the (( and )) )
+
+make_cmd.h
+       - extern declaration for make_arith_for_command
+
+copy_cmd.c
+       - code to copy arithmetic for commands
+
+dispose_cmd.c
+       - code to dispose of arithmetic for commands
+
+print_cmd.c
+       - code to print arithmetic for commands
+
+execute_cmd.c
+       - code to execute arithmetic for commands and note that they are
+         shell control structures for the piping code
+
+doc/{bash.1,bashref.texi}
+        - documented new arithmetic for command
+
+doc/bashref.texi
+       - documented new configure --enable-arith-for-command option
+
+                                  3/17
+                                  ----
+builtins/read.def
+       - added `-t timeout' option and code to support it
+
+                                  3/18
+                                  ----
+examples/loadables/Makefile.in
+       - various clean targets need to descend into perl
+
+examples/loadables/perl/Makefile.in
+       - added mostlyclean and maintainer-clean targets
+
+include
+       - new directory, with files from lib/posixheaders
+
+lib/posixheaders
+       - removed
+
+{posixwait,unionwait,maxpath}.h
+       - moved from top src directory to include subdir
+
+Makefile.in,builtins/Makefile.in,lib/{glob,malloc,sh,tilde}/Makefile.in
+       - updated dependencies and file lists for new include directory
+       - added BASHINCDIR variable, added -I${BASHINCDIR} to cc's include path
+
+MANIFEST,support/SYMLINKS
+       - updated for new include directory
+
+lib/readline/{ansi_stdlib,posixdir,posixjmp,posixstat,rlstdc}.h
+       - changed symlinks to point to ../../include rather than
+         ../posixheaders
+
+builtins/common.h
+       - changed `#include "../stdc.h"' to `#include "stdc.h"'
+
+builtins/{cd,exec,fc,history,pushd,source,type,umask,printf}.def
+builtins/{mkbuiltins,common,evalfile,evalstring,getopt}.c
+       - changed include specifications:
+               ../posixstat.h -> posixstat.h
+               ../filecntl.h -> filecntl.h
+               ../maxpath.h -> maxpath.h
+               ../memalloc.h -> memalloc.h
+
+include/shtty.h
+       - new file, contents of bashtty.h and code from jobs.c that includes
+         the appropriate terminal file
+
+lib/sh/shtty.c
+       - new file with some tty manipulation utility functions
+
+bashtty.h
+       - removed
+
+jobs.c, nojobs.c
+       - include shtty.h instead of bashty.h and other code that includes
+         the correct system-dependent tty include file
+
+lib/sh/Makefile.in
+       - added shtty.o as part of libsh.a
+
+MANIFEST
+       - added include/shtty.h and lib/sh/shtty.c, removed bashtty.h
+
+                                  3/19
+                                  ----
+lib/readline/display.c
+       - some more __MSDOS__ code to make readline work better with DJGPP:
+               output \r instead of tputs(term_cr, ...)
+
+lib/readline/terminal.c
+       - some changes for __DJGPP__ (one is of dubious value -- doesn't
+         DJGPP have a termcap library?)
+
+                                  3/23
+                                  ----
+configure.in
+       - make sure that the $CC argument to shobj-conf is quoted
+
+support/shobj-conf
+       - changes to SGI SHOBJ_LDFLAGS from David Kaelbling <drk@sgi.com>
+
+                                  3/24
+                                  ----
+lib/sh/zread.c
+       - interface to read(2) that restarts automatically if errno == EINTR
+
+externs.h
+       - new declarations for functions in lib/sh/{zread,zwrite}.c
+
+lib/sh/Makefile.in, Makefile.in
+       - add zread.c, zread.o to appropriate file lists
+
+{subst,input}.c, builtins/{evalstring.c,read.def}
+       - converted some loops around read() to call zread() instead
+
+lib/readline/rltty.h
+       - new struct _rl_tty_chars to save tty special characters
+
+lib/readline/rltty.c
+       - new function save_tty_chars to save tty special characters
+         (currently they're only saved -- nothing looks at them yet)
+       - two new internal library functions, _rl_disable_tty_signals ()
+         and _rl_restore_tty_signals (), intended to disable tty driver
+         signal processing for readline's literal-next code, so users
+         can do stuff like ^V^C and have ^C end up in the readline
+         buffer even if ^C is the terminal's interrupt character
+
+lib/readline/readline.c
+       - changed rl_quoted_insert to disable and restore tty signal
+         handling around the call to rl_read_key (), so users can put
+         tty special chars into the readline buffer
+
+                                  3/25
+                                  ----
+expr.c
+       - added `,' operator (expr1 , expr2) -- both expr1 and expr2 are
+         evaluated and the return value is the value of expr2.  Precedence
+         is higher than assignment (which makes it highest)
+       - make `lasttp' (pointer to last token) part of the expression
+         context that is saved and restored by {push,pop}_context.  This
+         is used only in error reporting
+
+doc/{bash.1,bashref.texi}
+       - documented new `,' arithmetic operator
+       - cleaned up some of the language concerning variables referenced
+         by name within an arithmetic expression
+
+lib/readline/readline.c
+       - new application-settable variable, rl_num_chars_to_read, which, if
+         set to a non-zero value, causes readline to return after reading
+         that many characters (or at least that many characters, if
+         rl_startup_hook is used to prime the input buffer) rather than
+         when reading a character bound to accept-line
+
+lib/readline/readline.h
+       - extern declaration for rl_num_chars_to_read
+
+builtins/read.def
+       - added new `-n nchars' option to read NCHARS from stdin rather than
+         a complete line.  Works both with and without using readline
+
+doc/{bash.1,builtins.texi}
+       - documented new `read -n nchars' option
+
+                                  3/26
+                                  ----
+execute_cmd.c
+       - make sure all uses of PIDs are of type pid_t
+
+redir.c
+       - broke stdin_redirects into two functions: stdin_redirection, which
+         checks a single redirection specification, and a new stdin_redirects,
+         which does what it did before but calls stdin_redirection for each
+         redirection in the chain
+
+                                  3/29
+                                  ----
+aclocal.m4
+       - new test, BASH_CHECK_DEV_STDIN, checks for /dev/stdin.  If it's
+         present HAVE_DEV_STDIN is defined and it's assumed that /dev/stdout
+         and /dev/stderr are present as well
+
+configure.in
+       - call BASH_CHECK_DEV_STDIN
+
+config.h.in
+       - add HAVE_DEV_STDIN, initially undefined
+
+test.c
+       - add /dev/std{in,out,err} to the special filenames that are handled
+         by test_stat() if HAVE_DEV_STDIN is not defined
+
+doc/{bash.1,bashref.texi}
+       - documented conditional expressions' handling of /dev/std{in,out,err}
+
+stringlib.c
+       - new function, find_string_in_alist, to find (or match as an extended
+         glob pattern) a string in a STRING_INT_ALIST and return the
+         associated token value
+
+externs.h
+       - extern declaration for find_string_in_alist
+
+redir.c
+       - new STRING_INT_ALIST list of filenames the redirection code handles
+         specially (_redir_special_filenames)
+       - new function, redir_special_open () to handle filenames found in
+         _redir_special_filenames (framework for /dev/tcp and /dev/udp, but
+         those are not implemented get)
+
+doc/{bash.1,bashref.texi}
+       - documented special filename handling in redirections
+
+                                  3/30
+                                  ----
+builtins/read.def
+       - added `-d delim' option, like ksh93, to read until delim rather
+         than newline
+
+doc/{bash.1,bashref.texi}
+       - documented new read `-d delim' option
+
+configure.in
+       - look for gethostbyname(3), inet_aton(3)
+       - look for <netdb.h> and <netinet/in.h>
+       - call BASH_FUNC_GETHOSTBYNAME if gethostbyname(3) is not in libc
+       - check for u_int and u_long types, default to `unsigned int' and
+         `unsigned long' respectively
+       - new enable option `--enable-net-redirections' to compile in the
+         /dev/tcp and /dev/udp redirection code
+
+aclocal.m4
+       - new macro, BASH_FUNC_GETHOSTBYNAME, looks for gethostbyname(3) in
+         the socket libraries if it's not found in libc
+
+config.h.in
+       - new defines: HAVE_GETHOSTBYNAME, HAVE_INET_ATON, HAVE_NETDB_H,
+         HAVE_NETINET_IN_H, NETWORK_REDIRECTIONS
+       - new defines: u_int, u_long
+
+lib/sh/inet_aton.c
+       - new file, from GNU libc, slightly modified to remove inet_addr()
+
+lib/sh/netopen.c
+       - new file, functions to create tcp/udp network connections.  Exports
+         a single function: netopen(pathname)
+
+externs.h
+       - extern declaration for netopen()
+
+lib/sh/Makefile.in, Makefile.in, MANIFEST
+       - added appropriate references to inet_aton.c and netopen.c
+
+config-bot.h
+       - if HAVE_SYS_SOCKET_H, HAVE_GETPEERNAME, and HAVE_NETINET_IN_H are
+         all defined, define HAVE_NETWORK
+
+redir.c
+       - call netopen for pathnames of the form /dev/(tcp|udp)/host/port
+         if HAVE_NETWORK is defined; print a warning message otherwise
+       - /dev/tcp and /dev/udp code is only compiled in if
+         NETWORK_REDIRECTIONS is defined
+
+                                  3/31
+                                  ----
+lib/sh/zread.c
+       - new function, zsyncfd(fd) which syncs the kernel's seek pointer on
+         FD with the last character returned by zreadc()
+
+externs.h
+       - extern declaration for zsyncfd
+
+builtins/read.def
+       - use zreadc if the input is not unbuffered (this cuts the number
+         of read(2) calls *way* down)
+       - if input is not unbuffered, call zsyncfd before returning to make
+         sure zreadc's buffering doesn't consume too much input
+
+                                   4/1
+                                   ---
+Makefile.in
+       - install bashbug with mode 555
+
+                                   4/2
+                                   ---
+shell.c
+       - make want_pending_command and read_from_stdin global rather than
+         local variables
+
+flags.c
+       - change which_set_flags to insert `c' and `s' if the `-c' and `-s'
+         invocation options, respectively, were supplied at shell startup
+
+bashline.c
+       - change bash_directory_completion_hook to change the logic for
+         deciding whether or not to parameter expand the directory name --
+         now we expand only if there's a `$' (still has problems if the
+         user quoted the `$') or a `` pair.  Fixes bug reported by
+         chuckjr@sinclair.net.  To fix the `$' problem, could possibly
+         check what the user typed with rl_line_buffer and start, end
+         parameters to gen_completion_matches
+       - changed attempt_shell_completion to slightly adjust the logic for
+         deciding whether or not a word is in a command position:  if the
+         word being completed has a single opening single or double quote
+         before the command separator, treat it as a candidate for (quoted)
+         command word completion
+       - now that we understand partially-quoted strings as completion
+         candidates, we can do command completion on certain unclosed
+         uses of $(...
+
+subst.c
+       - change extract_delimited_string to not return an error for an
+         unclosed construct if DOING_COMPLETION is non-zero
+
+                                   4/5
+                                   ---
+expr.c
+       - fixed `ss=09 ; let ss=10' bug by introducing one-token lookahead
+         after a string token is parsed.  If the next token is `=', we
+         don't evaluate the variable's value as an expression, since it's
+         not going to be used
+
+variables.h
+       - added new member to struct variable: exportstr -- for the future
+         caching of strings to be placed into the environment
+       - extern declaration for bind_variable_value
+
+variables.c
+       - make sure that the `exportstr' member of a struct variable is
+         initialized correctly, and put code in to free it where appropriate
+         (if non-null)
+       - new function, bind_variable_value(VAR, VALUE); make shell variable
+         VAR have value VALUE
+       - make sure var->exportstr is invalidated when a variable or function
+         is assigned a value
+
+builtins/declare.def
+       - call bind_variable_value instead of duplicating some of bind_variable
+         inline
+
+                                   4/6
+                                   ---
+variables.h
+       - new macros, VSETATTR and VUNSETATTR to set and clear variable
+         attributes
+
+builtins{read,set,setattr,declare}.def,{execute_cmd,expr,shell,subst,variables}.c
+       - change to use VSETATTR and VUNSETATTR
+
+                                   4/7
+                                   ---
+doc/Makefile.in
+       - if htmldir is set by configure, install the html files into that
+         directory with `make install' and remove them with `make uninstall'
+
+Makefile.in,doc/Makefile.in
+       - htmldir is set by configure and passed from the Makefile to the
+         install in the doc subdirectory
+
+configure.in
+       - substitute `htmldir' into Makefiles
+
+support/config.guess
+       - some small changes for Apple's Rhapsody
+
+lib/termcap/Makefile.in
+       - make the `distclean' and `maintainer-clean' targets remove Makefile
+
+lib/termcap/ltcap.h
+       - new private library include file, for Rhapsody __private_extern__
+         define
+
+lib/termcap/{termcap,tparam}.c
+       - include "ltcap.h"
+       - if HAVE_CONFIG_H is defined, include <stdlib.h> if HAVE_STDLIB_H is
+         defined, otherwise declare getenv, malloc, realloc as extern
+       - add __private_extern__ qualifier for extern data that Rhapsody
+         requires
+
+shell.c
+       - don't run the startup files in the rshd case if shell_level is >= 2
+         This should catch the case of
+               rsh machine bash -c 'echo a'
+         running the .bashrc twice, once for the shell started by rshd and
+         one for the shell running -c command
+
+                                   4/8
+                                   ---
+variables.c
+       - in initialize_shell_variables, unset the export attribute from
+         SSH_CLIENT if it exists and we got it from the initial environment
+
+shell.c
+       - don't bother unsetting export attribute from SSH_CLIENT, since we
+         now do it in initialize_shell_variables
+
+lib/readline/display.c
+       - don't check prompt_this_line[-2] in rl_redisplay if prompt_this_line
+         isn't at least 2 characters after the start of rl_display_prompt
+
+lib/readline/histfile.c
+       - change the name of the default history file to _history on MS-DOS
+
+lib/readline/histlib.h
+       - add an extern declaration for history_offset
+
+lib/readline/hist{expand,search}.c
+       - remove extern declaration for history_offset; now in histlib.h
+
+lib/readline/xmalloc.h
+       - new file, extern declarations for xmalloc, xrealloc, xfree
+
+lib/readline/rlprivate.h
+       - new file, with extern declarations for `readline private' global
+         variables and functions
+
+lib/readline/rlshell.h
+       - new file, with extern function declarations for stuff in shell.c
+
+lib/readline/Makefile.in
+       - add dependencies on xmalloc.h, rlshell.h
+       - add xmalloc.h, rlprivate.h to list of header files
+
+MANIFEST
+       - add lib/readline/xmalloc.h, lib/readline/rlprivate.h,
+         lib/readline/rlshell.h
+
+Makefile.in
+       - add $(RL_LIBSRC)/xmalloc, $(RL_LIBSRC)/rlprivate.h,
+         $(RL_LIBSRC)/rlshell.h to READLINE_SOURCE variable
+
+lib/readline/{bind,complete,display,funmap,histexpand,histfile,history,input,
+isearch,keymaps,kill,macro,readline,search,shell,util,vi_mode}.c
+       - include "xmalloc.h" rather than extern declarations for xmalloc,
+         xrealloc, xfree
+
+lib/readline/terminal.c
+       - new function, used in two places, _emx_get_screensize for EMX
+
+lib/readline/readline.c
+       - EMX apparently no longer needs _emx_build_environ
+
+lib/readline/signals.c
+       - support for __EMX__ in rl_signal_handler
+       - don't set the old handler passed to rl_set_sighandler to
+         rl_signal_handler, because that would cause infinite recursion if
+         that signal were generated
+
+lib/readline/xmalloc.c
+       - no longer the same as lib/malloc/xmalloc.c, which is no longer
+         used by anyone
+       - changes to include xmalloc.h, define READLINE_LIBRARY, change
+         some of the argument types
+
+lib/tilde/tilde.c
+       - add prototypes for extern function declarations if __STDC__
+         defined
+
+lib/readline/{terminal,bind,readline,nls,histexpand}.c
+       - include "rlshell.h" for function prototypes
+
+                                   4/9
+                                   ---
+lib/readline/{bind,callback,complete,display,input,isearch,kill,macro,nls,
+parens,readline,rltty,search,signals,terminal,util,vi_mode}.c
+       - include "rlprivate.h"
+       - remove extern declarations already in rlprivate.h
+
+xmalloc.c
+       - xfree should take a PTR_T as its argument
+
+general.h
+       - change prototype for xfree to use void * instead of char *
+
+lib/malloc/malloc.c
+       - define PTR_T like it is defined in general.h
+       - malloc() returns a PTR_T
+       - free() takes a PTR_T as its argument
+       - realloc() returns a PTR_T and takes a PTR_T as its first argument
+       - memalign returns a PTR_T
+       - valloc returns a PTR_T
+       - calloc returns a PTR_T
+       - cfree() takes a PTR_T
+
+variables.c
+       - new function: char **all_variables_matching_prefix (char *prefix)
+
+variables.h
+       - extern declaration for all_variables_matching_prefix
+
+bashline.c
+       - converted variable_completion_function to use
+         all_variables_matching_prefix
+
+stringlib.c
+       - new function, char **alloc_array(n), allocates an argv-style
+         array of strings with room for N members
+
+externs.h
+       - extern declaration for alloc_array
+
+                                  4/13
+                                  ----
+lib/readline/keymaps.c
+       - include "readline.h"
+       - remove extern function declarations
+
+include/stdc.h
+       - break the definition of __P out from a strict __STDC__ block,
+         since __GNUC__ and __cplusplus also indicate that prototypes
+         are available
+
+lib/readline/readline.h
+       - adjust conditional declaration of rl_message, since __cplusplus
+         indicates that prototypes are available
+
+lib/readline/rlstdc.h
+       - private copy, modified, no longer symlinked to ../../include/stdc.h
+       - __P is defined if __GNUC__ or __cplusplus is defined
+       - removed defines for __STRING, const, inline, signed, volatile, since
+         readline does not use them
+
+lib/readline/{search,readline}.c
+       - extern declaration for _rl_free_history_entry with prototypes,
+         since it's not in rlprivate.h
+
+lib/readline/history.h
+       - added some missing `extern's in function declarations
+
+lib/readline/undo.c
+       - include "rlprivate.h"
+
+lib/readline/shell.c
+       - include "rlshell.h"
+
+lib/readline/Makefile.in
+       - update dependencies for undo.c, shell.c
+
+lib/tilde/tilde.h
+       - add #define for __P if not already defined
+       - use prototypes in extern function declarations with __P()
+
+lib/readline/doc/rluserman.texinfo
+       - new file, derived from rlman.texinfo
+
+{bashline,findcmd,general,pathexp}.c, builtins/getopts.def
+       - call alloc_array(N) instead of (char **)xmalloc (N * sizeof (char *))
+
+subst.c
+       - added code to implement ksh-93 ${!prefix*} expansion
+
+doc/{bash.1,bashref.texi}
+       - documented new ${!prefix*} expansion
+
+                                  4/15
+                                  ----
+execute_cmd.c
+       - new variable, this_shell_function, points to SHELL_VAR of currently
+         executing shell function
+
+variables.c
+       - new dynamic variable, FUNCNAME -- invisible when not executing shell
+         function
+
+doc/{bash.1,bashref.texi}
+       - documented new FUNCNAME variable
+
+                                  4/16
+                                  ----
+support/rlvers.sh
+       - add -T option to specify correct termcap library
+
+configure.in
+       - Irix 4.x still needs to link with -lsun if it contains a replacement
+         getpwent function that works with NIS
+       - if we're configuring with an already-installed readline library,
+         call BASH_CHECK_LIB_TERMCAP and pass the resulting $TERMCAP_LIB to
+         support/rlvers.sh
+
+lib/readline/readline.c
+       - in rl_forward, if rl_point ends up being < 0, set it to 0
+
+lib/readline/exammples/excallback.c
+       - new callback example code, from `Jeff Solomon <jsolomon@stanford.edu>'
+
+lib/sh/getcwd.c
+       - define NULL as 0 if not defined by one of the standard include files
+       - cast result of malloc and realloc to (char *) where appropriate
+
+variables.c
+       - new functions for use by dynamic variables: null_assign and
+         null_array_assign.  Used as assign_func for a particular variable,
+         they cause assignments to that variable to be silently ignored
+       - FUNCNAME and GROUPS are no longer readonly
+       - FUNCNAME changed to use null_assign
+       - GROUPS changed to use null_array_assign.  This means that the
+         variable can be unset if desired (like for Oracle startup scripts),
+         but cannot be assigned to
+
+doc/{bash.1,bashref.texi}
+       - added text about assignments being silently discarded to descriptions
+         of FUNCNAME and GROUPS
+       - removed text saying that GROUPS is readonly
+       - added standard text about GROUPS being unset and losing its special
+         properties, even if reset
+
+command.h
+       - new command type, cm_subshell, actually causes the shell to fork
+         and then executes the command in the SUBSHELL_COM struct
+
+parse.y
+       - ( ... ) now creates a command of type cm_subshell, with the same
+         flag CMD_WANT_SUBSHELL as previous
+
+make_cmd.c
+       - new function make_subshell_command
+
+make_cmd.h
+       - extern declaration for make_subshell_command
+
+dispose_cmd.c
+       - code to destroy a SUBSHELL_COM
+
+copy_cmd.c
+       - code to duplicate a SUBSHELL_COM
+
+print_cmd.c
+       - code to print a SUBSHELL_COM
+
+execute_cmd.c
+       - broke the code that handles executing commands in subshells out of
+         execute_command_internal into a new function, execute_in_subshell,
+         with the same arguments
+       - executing a command of type cm_subshell is just a slightly special
+         case, handled in execute_in_subshell
+
+                                  4/18
+                                  ----
+execute_cmd.c
+       - changed code in execute_command_internal that executes subshell
+         commands to check for command->type == cm_subshell in addition to
+         checking that commmand->flags & CMD_WANT_SUBSHELL is non-zero
+       - changed execute_in_subshell to set the CMD_NO_FORK flag on the
+         command to be executed by a command of type cm_subshell
+         (command->value.Subshell->command), if that command is a simple
+         command (type == cm_simple) or a nested subshell (type == cm_subshell)
+         and is not being timed
+       - changed execute_command_internal to just call and return the value
+         returned by execute_in_subshell if it gets a command of type
+         cm_subshell with flags including CMD_NO_FORK
+
+lib/malloc/malloc.c
+       - morecore() should always return through morecore_done, not with a
+         simple `return'
+
+                                  4/20
+                                  ----
+variables.c
+       - new function, quote_array_assignment_chars, backslash quotes all
+         `[' and `]' before an `=' in a word that's part of the body of a
+         compound array assignment.  Needed because we run the list through
+         the globbing code now.  Don't bother if `=' does not appear in
+         the string or if the first char is not `['
+       - call quote_array_assignment_chars from assign_array_var_from_string
+         now
+
+eval.c
+       - moved parse_string_to_word_list to parse.y
+
+parse.y
+       - moved parse_string_to_word_list here.  Much simpler -- no longer
+         tries to parse a command, but just reads tokens using read_token().
+         Any token but a WORD or ASSIGNMENT_WORD causes a syntax error.
+         Don't have to mess around with saving global_command or calling
+         parse_command, but do need to save and restore the history stuff,
+         so the array assignment doesn't get saved on the history list
+
+                                  4/21
+                                  ----
+nojobs.c
+       - changed to use functions in lib/sh/shtty.c (tt{get,set}attr) for
+         the terminal attributes
+       - added a `flags' field to struct proc_status, flags are PROC_RUNNING
+         and PROC_NOTIFIED (status has been returned to `wait')
+       - functions check flags & PROC_RUNNING to check whether or not a
+         particular process is still alive; PROC_RUNNING is reset by
+         set_pid_status
+       - new function, mark_dead_jobs_as_notified, same function as the one
+         in jobs.c
+       - cleanup_dead_jobs reaps jobs only if they're dead and not marked
+         as notified
+       - wait_for_background pids marks all pids as notified and reaps them
+         before it returns, since it's called by the `wait' builtin
+       - wait_for_single_pid marks the pid being waited for as notified so
+         its slot can be reclaimed -- it's only called by the `wait' builtin
+       - new function, process_exit_status, to turn what wait(2) takes into
+         an exit status
+
+                                  4/22
+                                  ----
+nojobs.c
+       - add_pid takes a new second argument, async_p, which is non-zero if
+         the process is in the background
+       - new flag, PROC_ASYNC, set by add_pid
+       - set_pid_status now sets the PROC_NOTIFIED flag if PROC_ASYNC is unset,
+         so foreground jobs get cleaned up right away
+       - changed mark_dead_jobs_as_notified to take a `force' argument; if
+         non-zero, it marks only enough dead jobs to make the number of
+         un-notified dead jobs < CHILD_MAX
+       - new function, reap_dead_jobs, same as in jobs.c
+
+execute_cmd.c
+       - don't need separate cases for REAP any more
+
+                                  4/23
+                                  ----
+builtins/printf.def
+       - new function, tescape, which processes a single backslash
+         escape sequence and returns the number of characters consumed by
+         the argument string (code taken from bexpand)
+       - changed bexpand to call tescape rather than do backslash-escape
+         sequence conversion itself
+       - changed occurrences of `illegal' in error messages to `invalid'
+       - printf no longer calls ansicstr to translate backslash-escape
+         sequences; the mainline printf code now calls tescape whenever it
+         hits a backslash
+
+                                  4/26
+                                  ----
+subst.c
+       - new variable, garglist, set to list of words to be expanded after
+         leading assignment statements are removed
+       - command_substitute now calls maybe_make_exported_env before making
+         the child process if there are no variable assignments preceding
+         the command currently being expanded, or if the command currently
+         being expanded consists only of variable assignments
+
+execute_cmd.c
+       - the `early fork' code in execute_simple_command now calls
+         maybe_make_export_env before forking because execute_disk_command
+         would do that in the vast majority of cases, and this will obviate
+         the need to do it for subsequent commands if the environment does
+         not change
+
+                                  4/27
+                                  ----
+variables.h
+       - more macros to manipulate the exportstr member of a SHELL_VAR
+       - changed initialize_shell_variables to cache the value from the
+         environment as the initial exportstr for all imported variables
+       - changed make_var_array to use exportstr if it exists, instead
+         of computing the value
+       - changed make_var_array to cache exportstr for exported functions,
+         so they don't have to be deparsed every time the export env is
+         remade
+
+                                  4/28
+                                  ----
+lib/readline/{histlib,rldefs}.h
+       - changed STREQN macro to evaluate to 1 if the third argument is 0
+
+lib/readline/search.c
+       - changed rl_history_search_{for,back}ward so they leave point at
+         the end of the line when the string to search for is empty, like
+         previous-history and next-history
+       - broke common code out of rl_history_search_{for,back}ward into
+         a new function, rl_history_search_reinit
+       - rewrote rl_history_search_internal to be more like the
+         non-incremental search functions, use noninc_search_from_pos,
+         and leave the last history line found in the current line buffer
+         if the search fails
+       - new function, make_history_line_current, takes care of making
+         the current line buffer a copy of the history entry passed as an
+         argument; used by rl_history_search_internal and noninc_dosearch
+
+subst.c
+       - make ${!prefix@} be the same as ${!prefix*} for (undocumented)
+         ksh93 compatibility
+
+                                  4/30
+                                  ----
+lib/readline/doc/rltech.texinfo
+       - added note about including <readline/readline.h>, and that <stdio.h>
+         should be included before readline.h
+
+lib/readline/doc/hstech.texinfo
+       - added note about including <readline/history.h>
+
+lib/readline/doc/manvers.texinfo
+       - updated version to 4.1
+
+lib/readline/{bind,complete,display,isearch,nls,parens,readline,signals,tilde,
+histexpand}.c
+       - added prototypes with __P((...)) for forward static function
+         declarations
+
+lib/readline/display.c
+       - broke the code that initializes VISIBLE_LINE and INVISIBLE_LINE out
+         of rl_redisplay into a new function, init_line_structures, which
+         takes an argument giving the minimum number of characters that the
+         line must hold 
+       - new function for use by applications that want to display the
+         initial prompt themselves rather than having the first call to
+         readline do it:  rl_on_new_line_with_prompt (modified from code in
+         the CLISP distribution)
+
+lib/readline/readline.c
+       - new external variable, rl_already_prompted, to let readline know
+         that the prompt string has already been displayed on the screen
+         before the first call to readline
+       - test rl_already_prompted before displaying the prompt in
+         readline_internal_setup
+       - if rl_already_prompted is non-zero, readline_internal_setup calls
+         rl_on_new_line_with_prompt instead of rl_on_new_line
+
+lib/readline/readline.h
+       - extern declaration for rl_on_new_line_with_prompt
+       - extern declaration for rl_already_prompted
+
+lib/readline/doc/rltech.texinfo
+       - documented rl_on_new_line_with_prompt and rl_already_prompted
+
+builtins/read.def
+       - new -s option (silent mode).  Input from a terminal is not echoed
+
+doc/{bash.1,bashref.texi}
+       - documented new `-s' option to read builtin
+
+                                   5/3
+                                   ---
+lib/readline/vi_mode.c
+       - replaced references to rl_getc with (*rl_getc_function)
+
+[bash-2.04-devel frozen]
+
+                                   5/5
+                                   ---
+subst.c
+       - make sure that verify_substring_values always passes malloc'd
+         memory to maybe_expand_string as the string to be expanded,
+         since it gets freed on errors
+
+support/shobj-conf
+       - don't need -R option for shared libraries on Solaris
+       - new stanza for OSF/1 machines with gcc
+
+lib/readline/readline.c
+       - new variable, rl_gnu_readline_p, always 1.  Available to allow
+         readline users to test whether or not they're linking against
+         the true readline, rather than some bogus replacement (from CLISP)
+
+lib/readline/readline.h
+       - extern declaration for rl_gnu_readline_p
+
+hashlib.h, hashcmd.h
+       - added prototypes to extern function declarations
+
+pcomplete.h
+       - new file, declarations for the programmable completion stuff
+
+pcomplib.c
+       - new file, library functions for programmable completion
+
+                                   5/6
+                                   ---
+builtins/complete.def
+       - new file, interface to programmable completion management
+
+configure.in
+       - new enable argument --enable-progcomp, defines
+         PROGRAMMABLE_COMPLETION
+
+config.h.in
+       - #define for PROGRAMMABLE_COMPLETION
+
+config-bot.h
+       - if PROGRAMMABLE_COMPLETION is defined and READLINE is not,
+         #undef PROGRAMMABLE_COMPLETION
+
+pcomplete.c
+       - new file, placeholder for programmable completion generators and
+         associated functions
+
+Makefile.in, builtins/Makefile.in
+       - changes to add pcomplete.c, builtins/complete.def
+
+                                   5/7
+                                   ---
+subst.c
+       - new function, #ifdef READLINE, skip_to_delim (s, i, delims).
+         Starting at s[i], return the index of the first character in s
+         that is contained in delims.  Understands shell quoting.
+       - added two arguments to list_string_with_quotes: an index to
+         watch for, and a pointer to int to return the index into the
+         created word list of the word containing the sentinel.  Now
+         compiled in all the time.  The returned index starts at 1.
+
+subst.h
+       - extern declarations for char_is_quoted, unclosed_pair, and
+         skip_to_delim
+       - changed extern declaration for list_string_with_quotes, moved
+         it out of the #ifdef ARRAY_VARS section
+
+bashline.c
+       - removed extern declarations for char_is_quoted and unclosed_pair
+
+variables.c
+       - new function, SHELL_VAR **all_exported_variables()
+       = new function, SHELL_VAR **all_array_variables(), #ifdef ARRAY_VARS
+
+variables.h
+       - extern declaration for all_exported_variables, all_array_variables
+
+lib/sh/strpbrk.c
+       - replacement if we don't have strpbrk(3)
+
+configure.in, config.h.in
+       - check for strpbrk(3), define HAVE_STRPBRK if found
+
+builtins/shopt.def
+       - new function, char **get_shopt_options (), returns an array of
+         shopt option names
+
+builtins/set.def
+       - new function, char **get_minus_o_opts (), returns an array of
+         `set -o' option names
+
+builtins/common.h
+       - extern declarations for get_shopt_options, get_minus_o_opts
+
+                                  5/10
+                                  ----
+pathexp.c
+       - make the POSIX_GLOB_LIBRARY code implement the GLOBIGNORE stuff
+
+                                  5/11
+                                  ----
+array.c
+       - new convenience function, char **array_to_argv (ARRAY *),
+         converts an array to a list of string values
+
+array.h
+       - extern declaration for array_to_argv
+
+execute_cmd.c
+       - new convenience function, int execute_shell_function (SHELL_VAR *,
+         WORD_LIST *)
+
+execute_cmd.h
+       - extern declaration for execute_shell_function
+
+builtins/evalstring.c
+       - make parse_and_execute unwind_protect current_prompt_string
+         if the shell is interactive
+
+                                  5/12
+                                  ----
+variables.c
+       - moved bind_int_variable from expr.c to here; it now returns a
+         SHELL_VAR *, like the other variable binding functions
+
+variables.h
+       - extern declaration for bind_int_variable
+
+                                  5/14
+                                  ----
+bashline.c, parse.y, general.c, make_cmd.c, subst.c, braces.c, execute_cmd.c
+       - replaced some common code sequences with calls to substring()
+
+lib/readline/doc/rltech.texinfo
+       - fixed small typo in description of rl_completion_entry_function
+
+                                  5/18
+                                  ----
+stringlib.c
+       - new function, strcreplace(char *string, int c, char *text, int do_glob)
+         replaces all occurrences of C in STRING with TEXT.  Backslash may
+         be used to quote C.  If DO_GLOB is non-zero, the replacement TEXT
+         is quoted to protect globbing characters.
+
+externs.h
+       - extern declaration for strcreplace
+
+bashhist.c
+       - use strcreplace in expand_histignore_pattern
+
+pcomplete.c
+       - finished initial implementation of programmable completion
+
+alias.c
+       - code to set the aliases itemlist to dirty when an alias is added
+         or removed, if PROGRAMMABLE_COMPLETION is defined
+
+variables.c
+       - code to set the functions itemlist to dirty when a shell function
+         is added or removed, if PROGRAMMABLE_COMPLETION is defined
+
+builtins/enable.def
+       - code to set the builtins itemlist to dirty when a shell builtin
+         is added or removed, if PROGRAMMABLE_COMPLETION is defined
+       - code to set the enabled and disabled itemlists to dirty when a
+         builtin is enabled or disabled, if PROGRAMMABLE_COMPLETION is
+         defined
+
+builtins/shopt.def
+       - new shell option, `progcomp', on if programmable_completion_enabled
+         (from pcomplete.c) is non-zero
+
+doc/{bash.1,bashref.texi}
+       - note that `${' is not eligible for brace expansion to avoid
+         conflicts with parameter expansion
+
+                                  5/19
+                                  ----
+builtins/complete.def
+       - added a new `compgen' builtin for use by completion functions
+
+                                  5/21
+                                  ----
+bashline.c
+       - new function, void clear_hostname_list(void), to delete all the
+         entries in the hostname completion list
+
+bashline.h
+       - extern declaration for clear_hostname_list
+
+variables.c
+       - changed sv_hostfile to clear the hostname list if $HOSTFILE is
+         unset
+
+doc/{bash.1,bashref.texi}
+       - documented new behavior of HOSTFILE when it's unset
+       - added some awkwardly-worded text to make it clear that an
+         interactive shell cannot be started with non-option arguments
+         or with the -c option
+
+shell.c
+       - restored NON_INTERACTIVE_LOGIN_SHELLS test, so that if it is
+         defined, shells with argv[0][0] == '-' and not in posix mode
+         run the startup files even if non-interactive
+
+config-top.h
+       - added commented-out #define for NON_INTERACTIVE_LOGIN_SHELLS
+
+                                  5/24
+                                  ----
+subst.c
+       - make sure the characters in IFS are cast to unsigned before being
+         indexed in ifscmap (expand_word_internal)
+
+                                  5/25
+                                  ----
+parse.y
+       - change grammar rule for arithmetic for expressions to handle a
+         list_terminator after the `))' instead of requiring a newline_list
+
+subst.c
+       - fix so that variable indirection can reference the shell's special
+         variables (like $0...$9, $$, $#, etc.)
+
+pcomplete.c
+       - changed gen_wordlist_matches to use split_at_delims to split the
+         string at $IFS first, then expand each individual word
+
+                                  5/27
+                                  ----
+lib/readline/histfile.c
+       - change things so that O_BINARY mode is used when reading and writing
+         the history file on cygwin32 as well as OS/2 (__EMX__)
+
+parse.y
+       - add calls to push_delimiter and pop_delimiter around the call
+         to parse_matched_pair when parsing $'...' and $"..." so the
+         history entry is added correctly
+
+                                  5/28
+                                  ----
+doc/{bash.1,bashref.texi}, lib/readline/doc/rluser.texinfo
+       - documented new programmable completion facilities
+
+doc/bashref.texi
+       - documented new configure `--enable-progcomp' option
+
+                                   6/1
+                                   ---
+variables.c
+       - if make_local_variable is being asked to make a local shadow
+         variable of a read-only variable, print an error message and
+         return NULL
+       - if make_local_variable returns NULL to make_local_array_variable,
+         just return it
+
+builtins/declare.def
+       - if we're making local variables, and make_local_array_variable or
+         make_local_variable returns NULL, just flag an error and go on
+
+                                   6/2
+                                   ---
+Makefile.in
+       - changed release status to `alpha1'
+
+[bash-2.04-alpha1 frozen]
+
+                                  6/18
+                                  ----
+bashline.c
+       - fixed find_cmd_start so that it doesn't spin-loop on commands with
+         a command separator like `;' or `&'.  Problem was not incrementing
+         `os' past the delimiter found
+
+                                  6/21
+                                  ----
+variables.c
+       - cosmetic change: introduced two macros to encapsulate initialization
+         of dynamic variables
+
+                                  6/23
+                                  ----
+pcomplib.c
+       - new function: num_progcomps(void), returns the number of entries in
+         the programmable completions hash table
+
+pcomplete.h
+       - extern declaration for num_progcomps
+
+bashline.c
+       - make sure some programmable completions have been defined before
+         diving into the programmable completion code
+
+shell.c
+       - in open_shell_script, move the fd opened to the script to a high
+         one with move_to_high_fd in all cases -- the buffered input code
+         still has problems if fd == 0 and later on fd 0 is closed or
+         redirected (cf. input.c:check_bash_input())
+
+builtins/printf.def
+       - getlong() now calls strtol directly with a third argument of 0 so
+         it can handle 0x (hex) and 0 (octal) prefixes, which legal_number
+         does not -- this has implications for arguments to %d that begin
+         with `0'
+
+lib/sh/getenv.c
+       - make sure that the variable found in the temporary environment has
+         a non-null value before calling savestring() on it
+
+subst.c
+       - make sure split_at_delims returns 0 in *nwp and *cwp if handed a
+         null or empty string
+
+pcomplete.c
+       - make sure build_arg_list handles lwords == 0, as it will be if an
+         empty command line is handed to the programmable completion code
+         (like compgen -C xyz)
+
+execute_cmd.c
+       - make sure execute_shell_function passes a non-null bitmap of fds to
+         close to execute_function, allocating and deallocating it locally
+
+sig.c
+       - don't mess with SIGPROF in initialize_terminating_signals
+
+jobs.c, nojobs.c
+       - if the user has requested it with checkwinsize, check for a new
+         window size after a job exits due to a signal as well as being
+         stopped
+
+lib/readline/kill.c
+       - changed rl_kill_region to set the point to the beginning of the
+         region after the kill is performed
+
+                                  6/24
+                                  ----
+configure.in
+       - make sure ranges ([1-9]*) are protected with [...] for m4 quoting
+
+variables.c
+       - make sure that bind_variable_value honors `set -a' and that it
+         marks the environment for recreation if necessary
+
+                                  6/25
+                                  ----
+lib/readline/complete.c
+       - if we're completing at the end of the line, find_completion_word
+         shouldn't test whether the character is a special word break
+         char and (possibly) advance rl_point past the end of the buffer
+
+parse.y
+       - change mk_msgstr to write embedded newlines as `\n"<NL>"', as the
+         PO file format apparently requires
+
+                                  6/28
+                                  ----
+lib/readline/display.c
+       - code to manage the growth of the inv_lbreaks and vis_lbreaks arrays
+         beyond 256, since there are pathalogical command lines that can
+         have more than 256 line breaks for redisplay
+
+                                  6/30
+                                  ----
+stringlib.c
+       - include pathexp.h for extern declaration of quote_globbing_chars
+
+variables.h
+       - change CACHE_EXPORTSTR to savestring() the value and not set the
+         att_importstr flag
+
+                                   7/6
+                                   ---
+support/bashbug.sh
+       - bashbug now accepts --help and --version options
+
+bashline.c
+       - change bash_quote_filename to use single quotes if the user
+         does not specify an opening quote character and the filename being
+         completed contains newlines
+
+                                   7/8
+                                   ---
+configure.in, aclocal.m4, config.h.in
+       - BASH_TYPE_INT32_T --> BASH_TYPE_BITS32_T; int32_t --> bits32_t
+       - BASH_TYPE_U_INT32_T --> BASH_TYPE_U_BITS32_T; u_int32_t --> u_bits32_t
+
+lib/malloc/{malloc,gmalloc}.c, lib/sh/inet_aton.c
+       - int32_t --> bits32_t; u_int32_t --> u_bits32_t
+
+aclocal.m4
+       - new tests: BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T
+
+configure.in
+       - add check for sizeof short, sizeof char
+       - call BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T
+
+config.h.in
+       - new #defines for bits16_t, u_bits16_t
+
+lib/malloc/malloc.c
+       - use u_bits16_t for type of mi_magic2
+
+
+                                  7/16
+                                  ----
+lib/readline/display.c
+       - new private library function, _rl_strip_prompt, to remove instances
+         of RL_PROMPT_{START,END}_IGNORE from the passed prompt string
+
+lib/readline/rlprivate.h
+       - extern declaration for _rl_strip_prompt
+
+lib/readline/readline.c
+       - call _rl_strip_prompt before outputting the prompt if we're not
+         doing any echoing of input chars (readline_echoing_p == 0)
+
+Makefile.in
+       - tentative change to rule for parser-built: use $< instead of
+         `y.tab.h' in recipe
+
+                                  7/19
+                                  ----
+support/config.{guess,sub}
+       - add code to handle all versions of Mac OS (e.g., Mac OS X)
+
+                                  7/26
+                                  ----
+lib/readline/bind.c
+       - on cygwin32, treat \r\n as a line terminator when reading the
+         inputrc file
+
+                                  7/29
+                                  ----
+lib/sh/netopen.c
+       - fixed problem in _getaddr with copying the address returned from
+         gethostbyname to the `struct in_addr *' argument -- hostnames
+         now work in /dev/(tcp|udp)/host/port
+
+                                   8/2
+                                   ---
+configure.in
+       - on Apple Rhapsody systems, set LOCAL_CFLAGS to -DRHAPSODY
+
+variables.h
+       - changes from Apple for building fat binaries on Rhapsody,
+         setting HOSTYPE, OSTYPE, VENDOR, and MACHTYPE
+
+lib/readline/terminal.c
+       - some work on the `dumb terminal' setup code in _rl_init_terminal_io
+         to make sure it's complete for use by the redisplay code and some
+         stuff in {readline,complete}.c
+
+lib/readline/display.c
+       - new function, _rl_current_display_line, returns the number of
+         lines down from the first `screen line' of the current readline
+         line the cursor is
+
+lib/readline/readline.c
+       - make rl_refresh_line call _rl_current_display_line
+
+lib/readline/rlprivate.h
+       - extern declaration for _rl_current_display_line
+
+                                   8/3
+                                   ---
+doc/bashref.texi
+       - reorganized slightly:
+               o a new shell builtins chapter
+               o a new shell variables chapter
+               o a new special builtins section
+               o bourne shell features chapter removed
+               o alias builtins moved to the bash builtins section
+               o bourne shell differences moved to appendix
+               o order of readline and history chapters swapped
+               o indices are now unnumbered appendices
+               o some text cleaned up and some explanatory text added
+
+lib/readline/terminal.c
+       - if a calling application is using a custom redisplay function,
+         don't call tgetent to get the terminal attributes, since those
+         are used only by the redisplay code.  Still get the window
+         size, though
+
+lib/glob/fnmatch.c
+       - range comparisons in bracket expressions no longer use strcoll(3),
+         since in some locales (de, for example), [A-Z] matches all
+         characters
+
+parse.y, print_cmd.c
+       - some changes to make sure the shell compiles when
+         DPAREN_ARITHMETIC is not defined but ARITH_FOR_COMMAND is
+
+                                   8/5
+                                   ---
+redir.c
+       - in the here document code in do_redirection_internal, check
+         that the file descriptor returned by here_document_to_fd is not
+         the same as a file descriptor specified as the redirector
+         before closing it
+
+                                   8/6
+                                   ---
+parse.y
+       - make sure the pipline rule for `timespec BANG pipeline' sets the
+         CMD_INVERT_RETURN flag for the pipeline command
+
+builtins/wait.def
+       - use setjmp with a special jump buffer to take longjmps in the
+         case that a SIGINT is received while waiting for jobs or processes
+         it makes wait return with a status > 128, as POSIX.2 specifies
+
+{jobs,nojobs}.c
+       - changed wait_sigint_handler to longjmp to wait_intr_buf if it's
+         executing the wait builtin and SIGINT is trapped.  It calls
+         trap_handler to make sure a pending trap for SIGINT is set also,
+         so the trap is taken when the wait builtin returns
+
+                                   8/9
+                                   ---
+jobs.c
+       - save and restore the value of errno in sigchld_handler
+
+trap.c
+       - save and restore the value of errno in trap_handler
+
+                                  8/10
+                                  ----
+Makefile.in
+       - changed release status to beta1
+
+                                  8/13
+                                  ----
+include/posixtime.h
+       - new file to encapsulate the <time.h> and <sys/time.h> mess
+
+Makefile.in
+       - add posixtime.h to list of include files in BASHINCFILES
+       - update dependencies for general.o, execute_cmd.o
+
+general.c, execute_cmd.c, builtins/times.def
+       - include posixtime.h instead of <time.h>, <sys/time.h>
+
+general.c
+       - protect inclusion of <sys/times.h> with HAVE_SYS_TIMES_H check
+
+builtins/Makefile.in
+       - update dependencies for times.o
+
+                                  8/16
+                                  ----
+lib/sh/timeval.c
+       - moved functions dealing with struct timevals here from general.c
+         and execute_cmd.c
+
+lib/sh/clock.c
+       - moved functions dealing with clock_ts here from general.c
+         (print_time_in_hz renamed to print_clock_t)
+
+externs.h
+       - moved extern declarations for timeval_to_secs and print_timeval
+         here from general.h
+       - moved extern declarations for clock_t_to_secs and print_clock_t
+         here from general.h
+
+builtins/times.def
+       - calls to print_time_in_hz changed to print_clock_t
+
+Makefile.in
+       - added references for lib/sh/timeval.c and lib/sh/clock.c
+
+lib/sh/Makefile.in
+       - clock.o and timeval.o are now included in libsh.a
+
+                                  8/23
+                                  ----
+execute_cmd.c
+       - make sure last_command_exit_value is updated before running a
+         DEBUG trap in the cm_simple case of execute_command_internal
+
+lib/readline/display.c
+       - new function, static void redraw_prompt (char *), used to
+         redraw the last line of a multiline prompt that possibly
+         contains terminal escape sequences
+       - call redraw_prompt from _rl_redisplay_after_sigwinch
+
+                                  8/24
+                                  ----
+lib/readline/bind.c
+       - new struct with names of string-valued readline variables and
+         handler functions to call when the variable is set
+       - changed rl_variable_bind to use functions to find boolean vars
+         and string vars in their respective lists
+       - new function, bool_to_int, to translate a boolean value that may
+         appear as an argument to `set <boolean-var-name>' to 1 or 0
+       - new function, hack_special_boolean_var, called if the element in
+         the boolean_vars struct has the V_SPECIAL flag set, to provide
+         any necessary other action when a boolean variable is set
+       - new functions to be called when each string variable is set;
+         called by rl_variable_bind
+
+execute_cmd.c
+       - do_piping no longer sets pipes to O_TEXT mode if __CYGWIN32__
+         is defined
+
+                                  8/25
+                                  ----
+subst.c
+       - parameter_brace_patsub now mallocs a local copy of `patsub', because
+         if it starts with a `/' we increment it, and functions down the call
+         chain will free that on an error (and if we pass the incremented
+         value, will try to free unallocated memory)
+       - pos_params now short-circuits and returns a null string immediately
+         if start == end, meaning we want 0 positional parameters
+
+                                  8/26
+                                  ----
+subst.c
+       - fixed pat_subst to correctly handle a null replacement string with
+         a null pattern string prefixed with `%' or `#'
+
+                                   9/3
+                                   ---
+variables.c
+       - don't import shell functions from the environment if the shell was
+         started with -n
+
+                                   9/8
+                                   ---
+subst.c
+       - if a command substitution is being performed inside a shell function,
+         catch `return' in command_substitute so that a return inside the
+         command substitution doesn't jump back to execute_function (or one
+         of its brethren) and go on with the command
+
+parse.y
+       - in history_delimiting_chars, if the first line is `for var' and
+         command_oriented_history is active, we don't want a semicolon if
+         the next token to be read is `in', but we do want one otherwise.
+         All we can do is check shell_input_line and see if the next chars
+         are `in' -- if so, we return " "
+
+                                  9/16
+                                  ----
+builtins/hash.def
+       - don't allow `hash -p /pathname/with/slashes name' if the shell
+         is restricted
+
+doc/{bash.1,bashref.texi}
+       - updated description of restricted shell mode
+
+lib/readline/display.c
+       - fixed a bug in _rl_update_final which used the inv_lbreaks array
+         to index into visible_line
+
+jobs.c
+       - waitchld() need not go through the pain of setting up an environment
+         to execute traps on SIGCHLD if children_exited == 0
+       - waitchld returns -1 if waitpid() returns -1 with errno == ECHILD,
+         indicating that there are no unwaited-for child processes, and it
+         has not yet reaped any dead children
+       - wait_for, wait_for_single_pid return -1 if waitchld() returns -1
+       - new function, mark_all_jobs_as_dead
+       - wait_for_background_pids calls mark_all_jobs_as_dead if
+         wait_for_single_pid returns -1 with errno == ECHILD, since there are
+         no unwaited-for child processes
+
+subst.c
+       - tentative change: subshells started for command substitution no
+         longer unconditionally disable job control
+
+                                  9/17
+                                  ----
+parse.y
+       - new function: save_token_state().  Saves the value of last_read_token
+         and the two previous tokens in an allocated array and returns the
+         array
+       - new function: restore_token_state(ts).  TS is an array returned by
+         save_token_state.  last_read_token and the two previous tokens are
+         set from the values in TS
+
+trap.c
+       - run_pending_traps calls save_token_state and restore_token_state
+         around the call to parse_and_execute, which will call the parser
+         and possibly leave it in a state where reserved words will not be
+         recognized (_run_trap_internal, too)
+
+                                  9/20
+                                  ----
+support/bashbug.sh
+       - if sendmail is used as $RMAIL, pass `-i -t' as arguments so changes
+         made by the user to the recipient headers in the message are
+         honored
+
+                                  9/21
+                                  ----
+bashhist.c
+       - if histverify has been set, make sure a `:p' modifier to a history
+         expansion prints the result
+
+builtins/echo.def
+       - new extern variable, xpg_echo, set to 1 if DEFAULT_ECHO_TO_USG is
+         defined and 0 otherwise
+       - echo_builtin now sets the initial value of do_v9 from xpg_echo
+
+builtins/shopt.def
+       - new shopt option, `xpg_echo', turns backslash escape expansion by
+         `echo' on and off at runtime
+
+builtins/{bash.1,bashref.texi}
+       - documented new `xpg_echo' shell option
+
+tests/{builtins.tests,builtins2.sub,shopt.tests}
+       - changes for new `xpg_echo' shell option
+
+configure.in
+       - changes for FreeBSD-3.x ELF to add `-rdynamic' to LOCAL_LDFLAGS.
+         This allows dynamic loading of builtins
+
+support/shobj-conf
+       - changes to handle FreeBSD-3.x elf or a.out object file formats
+
+                                  9/23
+                                  ----
+[bash-2.04-beta1 released]
+
+                                  9/24
+                                  ----
+jobs.c
+       - wait_for returns -1 only if the shell is currently executing the
+         `wait' builtin, since that's the only thing that cares
+
+execute_cmd.c
+       - moved cases of close_fd_bitmap to before calls to do_piping to
+         handle some pathological cases
+
+                                  9/29
+                                  ----
+execute_cmd.c
+       - save the command line in execute_simple_command before making the
+         export environment, since maybe_make_export_env clobbers
+         the_printed_command if there are exported functions
+
+                                  9/30
+                                  ----
+configure.in,config.h.in
+       - check explicitly for setvbuf; define HAVE_SETVBUF if found
+
+configure.in
+       - change opt_gnu_malloc to opt_bash_malloc, since the bash malloc
+         is not really the gnu malloc anymore
+       - new argument, --with-bash-malloc, identical to --with-gnu-malloc
+       - AC_DEFINE(USING_BASH_MALLOC) if opt_bash_malloc is enabled
+
+config.h.in
+       - new #define for USING_BASH_MALLOC
+
+doc/bashref.texi
+       - updated installation section to add --with-bash-malloc and
+         change description of --with-gnu-malloc
+
+lib/sh/setlinebuf.c
+       - change name of function to sh_setlinebuf, just returns 0 if
+         HAVE_SETVBUF and HAVE_SETLINEBUF are undefined
+       - prefer setvbuf to setlinebuf if we have both
+       - if we're using setvbuf, use a local buffer for stdin and stdout
+         local buffer is BUFSIZ unless we're using the bash malloc
+         (USING_BASH_MALLOC is defined), in which case it's 1008 (which
+         the bash malloc rounds up to 1024)
+
+                                  10/4
+                                  ----
+input.c
+       - if USING_BASH_MALLOC is defined, set the max buffer size to 8176,
+         which the bash malloc rounds up to 8192
+
+                                  10/5
+                                  ----
+pcomplete.c
+       - new function, pcomp_filename_completion_function, a wrapper for
+         filename_completion_function that dequotes the filename first
+
+bashline.c
+       - changed bash_directory_completion_matches to dequote the filename
+         before passing it (indirectly) to filename_completion_function
+
+execute_cmd.c
+       - change execute_command to defer calling unlink_fifo_list until any
+         shell function has finished executing (variable_context == 0)
+
+configure.in
+       - added AC_CYGWIN, AC_MINGW32, AC_EXEEXT
+
+                                  10/8
+                                  ----
+subst.c
+       - expand_word_internal(): changes some things to avoid small (2 or 3
+         byte) calls to xmalloc -- added a label and some gotos (BEWARE)
+       - changed make_dev_fd_filename so it doesn't call sprintf anymore
+
+                                  10/27
+                                  -----
+execute_cmd.c
+       - make execute_select_command handle the effects of the `continue'
+         builtin correctly
+
+                                  11/5
+                                  ----
+Makefile.in
+       - RELSTATUS changed to `beta2'
+
+                                  11/8
+                                  ----
+[bash-2.04-beta2 released]
+
+                                  11/9
+                                  ----
+shell.c
+       - make run_startup_files check for ssh2 as well as ssh1
+
+                                  11/19
+                                  -----
+parse.y
+       - make sure parsing conditional commands isn't confused by unexpected
+         tokens (like `[[)]]')
+
+builtins/common.c
+       - fix get_job_spec to return NO_JOB for numeric job specs that are
+         beyond the size of the jobs table
+
+builtins/type.def
+       - change describe_command to report `not found' if a path search
+         returns the same string as the command name and the command name
+         does not match an executable file.  This has implications for
+         `type' and `command -[vV]'.
+       - if a command is not found in $PATH, but an executable file with the
+         name supplied exists in the current directory, make the command
+         into a full pathname for the `command' builtin.  This has
+         implications for `type' and `command -[vV]'
+
+subst.c
+       - new function, expand_prompt_string, expands prompt string and
+         returns the string passed if an error occurs
+
+subst.h
+       - extern declaration for expand_prompt_string
+
+parse.y
+       - decode_prompt_string calls expand_prompt_string instead of
+         expand_string_unsplit
+
+                                  11/22
+                                  -----
+builtins/echo.def
+       - return EXECUTION_FAILURE if ferror(stdout) is true
+
+                                  11/23
+                                  -----
+locale.c
+       - if LC_ALL is unset, call setlocale(LC_ALL, lc_all), because lc_all
+         holds the default locale
+
+                                  11/29
+                                  -----
+lib/readline/shell.c
+       - define NULL as 0 if it's not defined
+       - change single_quote to allocate 4 characters in new string for
+         each character in the old one (like builtins/common.c:single_quote)
+
+locale.c
+       - when a locale variable (LC_*) is unset, pass "" to setlocale()
+         to get the default locale set, since value is NULL
+
+lib/sh/makepath.c
+       - new function, sh_makepath(char *path, char *dir, int flags)
+
+Makefile.in
+       - changed version to beta3
+
+builtins/type.def
+       - changed describe_command to use sh_makepath()
+
+builtins/cd.def
+       - removed private declaration of mkpath(), changed to use sh_makepath
+
+general.c
+       - changed make_absolute to use sh_makepath
+       - changed full_pathname to use sh_makepath
+
+findcmd.c
+       - removed private definition of make_full_pathname, changed to use
+         sh_makepath
+
+doc/{bashref.texi,bash.1}
+       - added text to description of `getopts' to make it clear that getopts
+         may be used to parse option characters other than letters, and
+         that `:' and `?' may not be used as option characters
+
+eval.c
+       - when processing a jump_to_top_level(EXITPROG), make sure the shell
+         doesn't think it's still in a function by setting variable_context
+         to 0
+
+doc/rbash.1
+       - a skeletal man page for rbash, adapted from debian
+
+support/bashbug.sh
+       - try to find a default editor if EDITOR is unset, rather than blindly
+         using `emacs'
+
+                                  11/30
+                                  -----
+support/config.{guess,sub}
+       - many changes from the latest `automake' distribution, from the
+         Debian folks
+
+                                  12/2
+                                  ----
+lib/readline/keymaps.h, lib/tilde/tilde.h
+       - added support for C++ compilation (`extern "C" {...}')
+
+                                  12/3
+                                  ----
+subst.c
+       - in process_substitute, make sure the child resets the O_NONBLOCK
+         flag on the file descriptor opened for read to a named pipe
+
+jobs.c
+       - new function, raw_job_exit_status, returns exit status of last job
+         in pipeline
+       - change job_exit_status to call raw_job_exit_status and pass the
+         result to process_exit_status
+       - in notify_of_job_status, get termination status from call to
+         raw_job_exit_status, rather than the first job in the pipeline
+         (fixes debian bug #15165)
+
+bashhist.c
+       - changed bash_history to not add shell comment lines to the history
+         file (fixes debian bug #21901).  Uses new function shell_comment(L)
+         which returns 1 if L is a shell comment line.  Doesn't handle
+         comments embedded in lines yet
+
+redir.c
+       - when running in POSIX.2 mode, bash no longer performs word splitting
+         on the expanded value of the word supplied as the filename argument
+         to a redirection operator (fixes debian bug #30460)
+
+doc/bashref.texi
+       - added new redirection stuff to POSIX Mode section (from previous fix)
+
+                                  12/6
+                                  ----
+hashlib.h
+       - removed extra semicolon at end of HASH_ENTRIES define
+
+redir.c
+       - replaced toggling of disallow_filename_globbing flag with setting
+         flags in redirection word to include W_NOGLOB if the shell is in
+         POSIX mode and not interactive when expanding the filename argument
+         to a redirection
+
+                                  12/7
+                                  ----
+builtins/common.c
+       - new function, backslash_quote_for_double_quotes(char *), quotes
+         characters special when in double quotes in the string passed as
+         an argument.
+         #ifdef PROMPT_STRING_DECODE; called by decode_prompt_string
+
+builtins/common.h
+       - extern declaration for backslash_quote_for_double_quotes
+
+parse.y
+       - call backslash_quote_for_double_quotes instead of backslash_quote
+         in decode_prompt_string
+
+                                  12/9
+                                  ----
+parse.y
+       - before expanding the \u prompt string escape sequence, make sure
+         current_user.user_name is non-null and call get_current_user_info
+         if it is
+
+                                  12/10
+                                  -----
+support/mkversion.sh
+       - changes to avoid relying on floating point output format, which
+         can be locale-specific
+
+                                  12/14
+                                  -----
+print_cmd.c
+       - changes to named_function_string (for normal function printing)
+         and print_function_def (for printing function definitions embedded
+         in other commands) to print redirections that should be attached
+         to the function as a whole after the closing brace
+
+tests/func1.sub
+       - tests for printing functions with attached redirections, called by
+         func.tests
+
+                                  12/16
+                                  -----
+lib/readline/complete.c
+       - if we're completing files in the root directory and executing the
+         visible-stats code, don't pass an empty pathname to
+         rl_directory_completion_hook, because, for bash, that will be
+         expanded to the current directory.  Just pass `/' instead.
+
+lib/tilde/tilde.c
+       - fix to tilde_expand_word for Cygwin to avoid creating pathnames
+         beginning with `//' if $HOME == `/'
+
+variables.c
+       - don't bother with the exportstr validation on cygwin systems,
+         or even using exportstr at all, since that system has weird
+         environment variables
+
+                                  12/17
+                                  -----
+configure.in
+       - new option, --enable-xpg-echo-default, new name for
+         --enable-usg-echo-default (which is still present for backwards
+         compatibility)
+
+configure.in, config.h.in, builtins/echo.def
+       - DEFAULT_ECHO_TO_USG -> DEFAULT_ECHO_TO_XPG
+
+                                  12/29
+                                  -----
+aclocal.m4
+       - changed a couple of tests to avoid creating files with known
+         names in /tmp
+
+support/rlvers.sh
+       - changed to create files in /tmp/rlvers
+
+support/mksignames.c
+       - now understands the POSIX.1b real-time signal names on systems
+         that support them
+
+                                  12/30
+                                  -----
+[bash-2.04-beta3 released]
+
+                                  12/31
+                                  -----
+redir.c
+       - try some more things to avoid race file replacements in
+         here_document_to_fd
+
+parse.y
+       - two new functions:
+               get_current_prompt_level: returns 2 if current prompt is $PS2,
+                                         1 otherwise
+               set_current_prompt_level: sets current prompt to $PS2 if arg
+                                         is 2, $PS1 otherwise
+
+copy_cmd.c
+       - make sure to copy the `line' member in copy_arith_for_command
+
+pcomplete.c
+       - free up `lwords' and `line' after evaluating any command or shell
+         function in gen_compspec_completions
+       - after filtering any matches specified by cs->filterpat in
+         gen_compspec_completions, free ret->list (the members have
+         already been copied or freed by filter_stringlist)
+
+bashline.c
+       - free what find_cmd_name returns after calling the programmable
+         completion code
+
+                                1/4/2000
+                                --------
+subst.c 
+       - make call_expand_word_internal set w->word to NULL if either
+         expand_word_error or expand_word_fatal is returned 
+
+                                   1/7
+                                   ---
+parse.y
+       - two new functions: set_current_prompt_level(int) and
+         get_current_prompt_level() to set and get the `level' of
+         current_prompt_string (1 if $PS1, 2 if $PS2)
+
+externs.h
+       - extern declarations for {get,set}_current_prompt_level
+
+builtins/evalstring.c
+       - add an unwind_protect to save and restore the current prompt
+         string pointers using {get,set}_current_prompt_level
+
+                                   1/9
+                                   ---
+Makefile.in
+       - changed release status to `beta4'
+
+                                  1/18
+                                  ----
+[bash-2.04-beta4 released]
+
+                                  1/19
+                                  ----
+configure.in
+       - moved checks for non-unix variants to beginning of tests
+
+Makefile.in, {builtins,support}/Makefile.in
+       - added some $(EXEEXT) suffixes to generated programs for non-Unix
+         systems
+
+                                  1/20
+                                  ----
+parse.y
+       - make get_current_prompt_level return 1 if current_prompt_string is
+         NULL (as it would be while sourcing startup files)
+
+support/rlvers.sh
+       - rmdir $TDIR in the exit trap
+       - move the exit trap after we successfully create $TDIR
+
+                                  1/21
+                                  ----
+subst.c
+       - several changes to split_at_delims to make non-whitespace
+         delimiters create separate fields containing those delimiters,
+         like the shell parser does with meta characters.  This allows
+         redirection operators, for example, to be treated as separate
+         words by the programmable completion code
+
+examples/complete/complete-examples
+       - added new function: _redir_op, which return true if the word
+         passed as an argument contains a redirection operator (just
+         bare-bones for now)
+       - changed set completion function to use _redir_op as an example
+
+parse.y
+       - make parse_string_to_word_list save and restore the value of
+         shell_input_line_terminator, since an assignment like
+         COMPREPLY=() inside a shell function called by the programmable
+         completion code can change shell_input_line_terminator out from
+         underneath shell_getc().  shell_getc will set the input line
+         terminator to EOF when it gets EOF from the getter function, and
+         the string getter function returns EOF at EOS.  parse_and_execute
+         tests for EOS directly and never gets EOF from shell_getc, so it
+         does not have this problem.
+
+                                  1/24
+                                  ----
+lib/readline/funmap.c
+       - #define QSFUNC like in complete.c
+       - cast _rl_qsort_string_compare to a QSFUNC * in the call to qsort
+
+lib/readline/terminal.c
+       - correct a typo in usage of the __EMX__ preprocessor define
+       - fix a reversed usage of `#if defined (__DJGPP__)' in 
+         _rl_control_keypad
+       - remove extern declarations for _rl_in_stream and _rl_out_stream
+
+lib/readline/rlprivate.h
+       - add extern declaration for _rl_in_stream, since there's already
+         one for _rl_out_stream
+
+builtins/ulimit.def
+       - if bash is using ulimit(2), make sure that getfilesize() returns
+         the value multiplied by 512 to convert it from a number of blocks
+         to a number of bytes
+
+                                  1/25
+                                  ----
+execute_cmd.c
+       - make sure execute_command_internal sets last_command_exit_value
+         correctly when inverting the return value of a (...) subshell
+         command
+
+tests/{run-invert,invert.{tests,right}}
+       - new tests for return value inversion
+
+configure.in
+       - compile without bash malloc on m68k-motorola-sysv due to a file
+         descriptor leak in closedir(3) -- the motorola implementation
+         requires that freed memory be readable so it can free the dirent
+         and then look back at it to find the file descriptor
+
+expr.c
+       - fix negative exponents in v**e to return an eval error
+
+                                   2/1
+                                   ---
+Makefile.in
+       - changed status to beta5
+
+jobs.c
+       - fixed a problem with checking the wrong process when checking to
+         see whether or not we need to reset the tty state.  The old code
+         checked the first process in a pipeline; the new code checks all
+         processes in the pipeline to see whether any of them exited due
+         to a signal or was stopped.  If none were signalled or stopped,
+         the code uses the exit status of the last process in the job's
+         pipeline
+
+                                   2/4
+                                   ---
+[bash-2.04-beta5 released]
+
+eval.c
+       - call set_current_prompt_level instead of setting prompt_string_pointer
+         directly
+
+                                  2/10
+                                  ----
+[bash-2.04-beta5 re-released to net]
+
+                                  2/11
+                                  ----
+sig.c
+       - make sure SIGCHLD is defined in initialize_shell_signals before
+         trying to use it in sigdelset() (DJGPP fix)
+
+                                  2/14
+                                  ----
+lib/sh/shtty.c
+       - include <unistd.h> before <shtty.h>
+       - separate tests for ONLCR, ONOCR, ONLRET to cope with systems like
+         DJGPP that don't implement the full POSIX termios option set
+
+builtins/psize.sh
+       - set TMPDIR only if it's not already set
+
+lib/glob/glob.c
+       - if a system doesn't define _POSIX_SOURCE but has a `struct dirent'
+         without a d_ino member, define REAL_DIR_ENTRY to 1 so all entries
+         are read
+
+configure.in
+       - check for <arpa/inet.h> header file
+
+config.h.in
+       - add HAVE_ARPA_INET_H define
+
+lib/sh/inet_aton.c
+       - don't compile unless HAVE_NETWORK, HAVE_NETINET_IN_H, and
+         HAVE_ARPA_INET_H are all defined in config.h or config-bot.h
+
+                                  2/16
+                                  ----
+subst.c
+       - if we have a construct like "${@:-}", we need to note that we're
+         not using whatever is in $@ (we're using the rhs), so the special
+         double-quoting $@ rules do not apply
+
+                                  2/21
+                                  ----
+lib/readline/signals.c
+       - declare SigHandler before using it on non-POSIX systems
+
+lib/sh/{zread,zwrite}.c
+       - include <sys/types.h> unconditionally
+
+configure.in
+       - m68k-motorola-sysv should be m68k-sysv in the section that sets
+         opt_bash_malloc to no for certain systems
+
+builtins/complete.def
+       - fixed a typo (stoppped) when printing out completion actions
+
+                                  2/22
+                                  ----
+lib/sh/netopen.c
+       - include <arpa/inet.h> if it's present
+
+aclocal.m4
+       - new macro, BASH_FUNC_INET_ATON, checks for inet_aton(3) including
+         <netinet/in.h> and <arpa/inet.h>, which some systems require to
+         resolve the function
+
+configure.in
+       - if autoconf can't fund inet_aton on its own, try BASH_FUNC_INET_ATON
+
+pcomplete.c
+       - fixed a memory leak in gen_wordlist_completions
+       - changed gen_wordlist_completions to do prefix-matching against the
+         word being completed
+
+doc/bash.1, lib/readline/doc/rluser.texinfo
+       - documented the change in behavior of the -W option to complete and
+         compgen
+
+builtins/umask.def
+       - if parse_symbolic_mode() returns -1, symbolic_umask needs to return
+         -1 as well, otherwise the umask will be changed inappropriately
+
+input.c
+       - always compile in getc_with_restart and ungetc_with_restart
+
+parse.y
+       - yy_stream_get and yy_stream_unget now call getc_with_restart and
+         ungetc_with_restart, respectively, to avoid problems with some
+         systems not restarting the read(2) when signals that bash handles
+         are received during the read (since bash installs its signal
+         handlers without the SA_RESTART flag)
+
+lib/readline/complete.c
+       - don't default rl_completion_case_fold to 1 if __DJGPP__ is defined
+
+                                  2/25
+                                  ----
+subst.c
+       - renamed `varlist' to `subst_assign_varlist' and made it global
+
+jobs.c
+       - when running a SIGCHLD trap, need to unwind-protect
+         subst_assign_varlist and set it to NULL before running the trap
+         command (fix from ericw@bestnet.org and doogie@debian.org)
+
+                                  2/28
+                                  ----
+lib/readline/doc/rltech.texinfo
+       - document rl_funmap_names()
+
+                                  2/29
+                                  ----
+subst.c
+       - change split_at_delims to set the current word more appropriately
+         when the cursor is between two words.  Should probably change this
+         again to set the current word like this only when the cursor is at
+         whitespace or another delim just before the word start
+
+                                   3/1
+                                   ---
+lib/sh/shtty.c
+       - more checks for flag bits being defined before using them
+
+                                   3/7
+                                   ---
+variables.h
+       - fix typo in COPY_EXPORTSTR definition 
+
+                                  3/14
+                                  ----
+subst.c
+       - changed split_at_delims so that if the cursor is at whitespace
+         between words, and we're interested in the current word (cwp != NULL),
+         make a new empty word and set the cwp to that word
+
+locale.c
+       - support for setting LC_NUMERIC locale category based on value of
+         LC_NUMERIC shell variable
+
+variables.c
+       - LC_NUMERIC is now treated specially
+
+doc/{bash.1,bashref.texi}
+       - LC_NUMERIC updates
+
+                                  3/15
+                                  ----
+pcomplete.c
+       - fix to avoid freeing memory twice
+
+                                  3/17
+                                  ----
+[bash-2.04 released]
+
+                                  3/20
+                                  ----
+doc/bash.1
+       - minor typo fix to description of `xpg_echo' option in `echo'
+         description
+
+                                  3/23
+                                  ----
+parse.y
+       - minor fix to parse_string_to_word_list to allow newlines in
+         compound array assignments
+
+                                  3/27
+                                  ----
+lib/readline/rltty.c
+       - fixed a missing-semicolon syntax error in the old 4.3 BSD tty code
+
+support/mksignames.c
+       - if SIGRTMAX is >= 2*NSIG, just #undef SIGRTMIN and SIGRTMAX.  This
+         is an issue on AIX 4.3 (only, so far) -- checked by configure, which
+         #defines UNUSABLE_RT_SIGNALS if this is the case
+
+aclocal.m4
+       - new macro, BASH_CHECK_RTSIGS, checks whether or not real-time
+         signals are defined with large values and defines UNUSABLE_RT_SIGNALS
+         if they are
+
+config.h.in
+       - place marker for UNDEF_RT_SIGNALS (initially undefined)
+
+configure.in
+       - call BASH_CHECK_RTSIGS in the `bash miscellaneous' section
+
+                                  3/29
+                                  ----
+
+subst.c
+       - fixed a problem in match_pattern_char, where `string' was checked
+         for a paren following a [?+!@], rather than `pat'
+       - the code that checks whether or not to exit after a failed
+         ${word?msg} substitution needs to check interactive_shell rather
+         than interactive to avoid exiting if such a construct appears in
+         a sourced file
+
+                                  3/31
+                                  ----
+
+bashline.c
+       - add `{' to the list of characters that need to be quoted by the
+         completion code when appearing in a filename
+
+                                   4/1
+                                   ---
+lib/glob/fnmatch.c
+       - fixed an error in brackmatch() while skipping the rest of a bracket
+         expression after a character matched.  When `c' was a backslash and
+         *p was a backslash, as in a pattern like [/\\], the old code didn't
+         take both backslashes into account and ended up skipping the `]'
+         after erroneously concluding that it was quoted.  Report and fix
+         from akim@epita.fr
+
+                                   4/3
+                                   ---
+lib/readline/rltty.c
+       - slight change to the BSD tty interface code, so that if the first
+         ioctl fails, get_tty_settings returns -1 immediately
+       - better checking of ioctl return values in BSD tty version of
+         get_tty_settings
+
+                                   4/5
+                                   ---
+doc/{bash.1,bashref.texi}
+       - documented use of LINES and COLUMNS variables
+
+                                  4/12
+                                  ----
+lib/readline/rltty.c
+       - change the SETATTR define for the termio tty driver to use
+         TCSETAW (the analog of the termios TCSADRAIN)
+
+lib/glob/fnmatch.c
+       - fix for posix-style bracket expressions ([:xxx:], [=x=]) broken
+         by fix of 4/1 for quotes in bracket expressions
+
+                                  4/26
+                                  ----
+subst.c
+       - fix to list_string and get_word_from_string to make a non-whitespace
+         IFS character preceded by IFS whitespace part of the current field
+         delimiter, not a separate delimiter that would result in a separate
+         null field when splitting.  cf POSIX.2, 3.6.5, (3)(b).  Bug reported
+         by amc@cs.berkeley.edu
+       - changed the behavior of the (currently undocumented) ${!prefix@}
+         expansion to be analogous to the expansion of $@ in other contexts
+         when double-quoted.  ksh93 seems to do this.  Bug reported by
+         Ken Pizzini <ken@halcyon.com>
+       - changed read_comsub to ignore NUL bytes in the command substitution
+         output, printing a warning message for now
+
+parse.y
+       - changed shell_getc to ignore NUL bytes in the input, printing a
+         warning message for now
+       - changed read_a_line to print a warning when a NUL byte is encountered,
+         like shell_getc does
+
+                                  5/18
+                                  ----
+subst.c
+       - make sure split_at_delims uses d2 only if it's non-null
+       - make split_at_delims skip leading newlines in the string to split,
+         if newline is a delimiter
+
+jobs.c
+       - prevent hanging processes by marking a child process as not running
+         (even if the shell thinks it is) when waitpid() returns -1/ECHILD --
+         this indicates that waitpid never returned a reasonable status
+         for that child though, which may be a symptom of another problem
+
+builtins/cd.def
+       - make `pwd' print an error message if the write fails when displaying
+         the current directory
+
+lib/readline/histexpand.c
+       - return NULL from history_find_word if history_tokenize_internal
+         returns (char **)NULL rather than attempting to dereference a
+         possibly-NULL pointer
+       - change history_tokenize_internal to set *indp to -1 before any
+         processing if indp is non-null
+
+                                  5/19
+                                  ----
+builtins/trap.def
+       - when in POSIX.2 mode and printing trap dispositions, print the
+         signal name without the leading `SIG', as POSIX.2 requires
+
+                                  5/23
+                                  ----
+lib/readline/readline.c
+       - readline_initialize_everything now assigns $TERM to rl_terminal_name
+         if the application has left it unset, and calls _rl_init_terminal_io
+         with the resultant value
+
+lib/readline/doc/rltech.texinfo
+       - updated the description of rl_terminal_name to note initialization
+
+parse.y
+       - change parse_string_to_word_list to save and restore the value of
+         current_command_line_count before calling back into the parser --
+         it will screw up history if the string extends over one line.  Bug
+         reported by Jan.Djarv@mbox200.swipnet.se
+
+                                   6/7
+                                   ---
+unwind_prot.h
+       - change unwind_protect_string to pass the address of the variable to
+         unwind_protect_var on machines where ints and char *s are not the
+         same size
+
+unwind_prot.c
+       - make sure we save the value of a variable in unwind_protect_var on
+         machines where sizeof(char *) != sizeof(int), not the contents the
+         value points to.  Fix from Andreas Schwab <schwab@suse.de>
+
+                                   6/8
+                                   ---
+configure.in
+       - auto-configure MacOS X without bash malloc (like Rhapsody)
+
+                                  6/12
+                                  ----
+configure.in
+       - replace `cygwin32' with `cygwin'
+
+builtins/evalfile.c
+       - in _evalfile, change all instances of \r to \n in the file to be
+          sourced and evaluated if __CYGWIN__ is defined
+
+input.c
+       - change \r to \n in the buffer argument to make_buffered_stream and
+          after calling zread() from b_fill_buffer if __CYGWIN__ is defined
+
+                                  6/29
+                                  ----
+lib/sh/Makefile.in
+       - add rest of dependency rules for makepath.o
+
+                                   7/3
+                                   ---
+jobs.c
+       - changed `int' to `WAIT' in a couple of places for non-POSIX
+         environments
+
+                                   7/5
+                                   ---
+locale.c
+       - try to avoid an unnecessary memory allocation in localetrans() in
+         the case that a translation for the string exists
+
+lib/readline/doc/rluserman.texinfo
+       - change the `direntry' information to make it use rluserman instead
+         of readline
+
+                                   7/6
+                                   ---
+execute_cmd.c
+       - changes to execute_in_subshell so it honors a `!' prefixing a command
+         inside a user subshell (...)
+
+support/config.{guess,sub}
+       - add cases for Apple Darwin (Mac OS X)
+
+configure.in
+       - Apple Darwin (MacOS X) uses its own malloc
+
+lib/readline/readline.h
+       - removed bogus extern declaration of savestring
+
+                                   7/7
+                                   ---
+builtins/common.c
+       - in get_working_directory, don't count on getcwd returning anything
+         useful in the buffer passed as the first argument on failure; just
+         use bash_getcwd_errstr in the error message
+
+examples/loadables/cut.c
+       - loadable version of cut(1), from the FreeBSD source tree
+
+                                  7/18
+                                  ----
+lib/readline/vi_mode.c
+       - changed two instances of (*rl_getc_function) (rl_instream) to calls
+         to rl_read_key(), which works better when using the readline
+         callback interface
+
+builtins/evalfile.c
+       - added FEVAL_CHECKBINARY flag for _evalfile; controls whether a check
+         for a binary file is performed
+       - FEVAL_CHECKBINARY is not set by source_file or maybe_execute_file,
+         which means that the startup file execution and the `.' builtin will
+         not check for binary files
+       - FEVAL_CHECKBINARY is not set by fc_execute_file, so that files
+         composed of history commands run by the `fc' builtin will not check
+         for binary files
+
+                                  7/21
+                                  ----
+shell.c
+       - added `--init-file' as a synonym for `--rcfile'
+
+                                  7/26
+                                  ----
+support/shobj-conf
+       - added commented-out stanzas for hpux 10 and hpux 11 when the HP
+         unbundled ANSI C compiler is being used
+
+                                  7/27
+                                  ----
+shell.c
+       - don't call end_job_control() from exit_shell if subshell_environment
+         is non-zero, even if the shell is interactive
+
+                                   8/1
+                                   ---
+bashhist.c
+       - change maybe_add_history to remember if we saved the first line of
+         a command and don't save the second and subsequent lines of a
+         multi-line command if we didn't save the first line
+
+configure.in, config.h.in
+       - add autoconf check for getservbyname()
+
+lib/sh/netopen.c
+       - add support for named services in /dev/(tcp|udp)/host/service
+         translation
+       - make sure _netopen sets errno to something other than 0 if something
+         goes wrong, so the redirection functions behave
+
+                                   8/3
+                                   ---
+parse.y
+       - changes to shell_getc so that history saving of blank lines in
+         multi-line commands does a better job of syntactic correctness
+
+bashline.c
+       - bind ^O to operate-and-get-next in emacs_standard_keymap explicitly,
+         rather than letting rl_add_defun do it in whatever keymap is current
+
+                                   8/4
+                                   ---
+builtins/ulimit.def
+       - removed some of the special handling of RLIM_INFINITY -- the old
+         code would let people use RLIM_INFINITY as a shorthand for setting
+         the soft limit to the hard limit.  Now, the code just passes
+         RLIM_INFINITY through if the hard limit is being set, so any kernel
+         errors will get through
+
+                                  8/10
+                                  ----
+parse.y
+       - change the grammar rule for group_command so that it's composed of
+         a compound_list instead of a list, which requires a terminator
+         This means that you can now do (legal) things like
+
+               { { echo a b c ; } }
+
+         since the second close brace will be recognized as such because a
+         reserved word is legal in that context
+
+                                  8/23
+                                  ----
+subst.c
+       - fix parameter_brace_substring to free all memory allocated by
+         get_var_and_type in the VT_ARRAYMEMBER case (returned parameter
+         `val')
+
+                                  8/30
+                                  ----
+variables.c
+       - now that we have dynamic array variables, remove the check for
+         array_p in bind_variable and let array variables with assignment
+         functions call the assignment function
+
+subst.c
+       - change cond_expand_word to perform tilde expansion (like it should
+         have done all along)
+
+lib/readline/complete.c
+       - don't allow backslash to quote anything inside a single-quoted
+         string in find_completion_word
+
+doc/{bash.1,bashref.texi}
+       - note that `set -a' will cause functions to be exported
+
+lib/readline/parens.c
+       - changed the blink timeout so it's settable by the application.  A
+         new function, int rl_set_paren_blink_timeout (int u), (still
+         undocumented) will set the timeout to U usec
+
+variables.c
+       - at startup of an interactive login shell, if the current directory
+         is $HOME, and $HOME and $PWD are not the same, set the current
+         directory (and $PWD) to $HOME
+       - break code that initializes $PWD and $OLDPWD into set_pwd function
+
+variables.h
+       - new extern declaration for set_pwd()
+
+                                   9/6
+                                   ---
+lib/readline/{readline,callback}.c
+       - allocate memory for rl_prompt instead of simply using what's passed
+         as the `prompt' argument to readline() or
+         rl_callback_handler_install().  This will allow constant strings to
+         be passed to readline(), since the prompt processing code wants to
+         write to rl_prompt
+
+lib/sh/pathcanon.c
+       - new file, does pathname canonicalization
+
+externs.h
+       - extern declarations for stuff in lib/sh/pathcanon.c
+
+general.c
+       - canonicalize_pathname now simply calls sh_canonpath()
+
+                                   9/7
+                                   ---
+pcomplete.h
+       - new member in a `struct compspec': options
+       - define some flag values for options field
+
+pcomplib.c
+       - make sure options field is allocated and copied by compspec utility
+         functions
+
+builtins/complete.def
+       - add struct for completion options.  These control the `meta-behavior'
+         of the compspec.  Initially, there are three:
+
+               default - perform bash default completion if programmable
+                         completion produces no matches
+               dirnames - perform directory name completion if programmable
+                          completion produces no matches
+               filenames - tell readline that the compspec produces filenames,
+                           so it can do things like append slashes to
+                           directory names and suppress trailing spaces
+
+       - add `-o option' to complete and compgen, setting new options field
+         in a compspec
+       - add code to display any -o options when a compspect is printed
+         with the `-p' option to complete
+
+pcomplete.c
+       - programmable_completions now passes back to the caller in the last
+         argument any options associated with the active compspec (from the
+         options field)
+       - change gen_compspec_completions to re-call gen_action_completions
+         with a CA_DIRECTORY action if the rest of the compspec actions
+         generate no matches and the COPT_DIRNAMES option is present
+
+bashline.c
+       - if a programmable completion was specified to return filenames with
+         the `-o filenames' option, set rl_filename_completion_desired to 1
+         so readline does its special filename-specific things
+       - if a compspec was defined to fall back to the readline default with
+         the `-o default' option, suppress setting the
+         rl_attempted_completion_over variable in attempt_shell_completion
+         so readline will go on and do filename completion
+
+include/ansi_stdlib.h
+       - add extern declarations for atof and strtod
+
+builtins/printf.def
+       - change getdouble() to use strtod (since we provide a version in
+         libsh if the C library doesn't have one), and change the calling
+         convention to match the other getXXX functions (take value pointer
+         as argument, return success or failure).  This makes printf handle
+         invalid floating point numbers better
+
+doc/bash.1, lib/readline/doc/rluser.texinfo
+       - documented new `-o' option to complete and compgen; described the
+         arguments and their effects
+
+lib/readline/{macro,util}.c
+       - renamed _rl_executing_macro to rl_executing_macro; made it public
+
+lib/readline/readline.h
+       - new extern declaration for rl_executing_macro
+
+lib/readline/rltech.texinfo
+       - documented rl_executing_macro
+
+                                   8/8
+                                   ---
+lib/readline/readline.c
+       - new state variable, rl_readline_state
+
+lib/readline/readline.h
+       - extern declaration for rl_readline_state
+       - define some flag bits for rl_readline_state and macros to test and
+         set them
+
+lib/readline/{readline,complete,isearch,macro,rltty,search,signals,undo,vi_mode}.c
+       - added calls to the macros that set and unset various readline states
+
+lib/readline/readline.c
+       - new private function, _rl_free_saved_history_line, to free up the
+         history entry saved in saved_line_for_history
+
+lib/readline/search.c
+       - free any saved history entry in rl_history_search_reinit(), because
+         rl_get_previous_history makes a call to maybe_save_line without
+         freeing up the saved line when it returns (so rl_get_next_history
+         can use it)
+       - fix up noninc_search_from_pos to deal with invalid history indices
+         better
+
+                                  9/12
+                                  ----
+support/shobj-conf
+       - HPUX 11.0 needs the `-fpic' flag passed to the linker as well as
+         the compiler
+
+execute_cmd.c
+       - on MS-DOS systems, let the #! checking stuff in execute_shell_script
+         treat \r as EOL (identical to \n)
+
+input.c
+       - on DJGPP systems, allow buffered_getchar to ignore \r.  Change
+         suggested by snowball3@bigfoot.com
+
+                                  9/13
+                                  ----
+lib/sh/tmpfile.c
+       - new file, with functions for creating and (hopefully safely) opening
+         temporary files for the shell
+
+externs.h
+       - extern declarations for functions in tmpfile.c
+
+variables.c
+       - new function, get_random_number, returns random values from the
+         shell's (lame) RNG to the rest of the shell
+
+variables.h
+       - new extern declaration for get_random_number()
+
+subst.c
+       - changed make_named_pipe to call sh_mktmpname instead of mktemp
+
+redir.c
+       - changed here_document_to_fd to call sh_mktmpfd instead of using
+         inline code
+
+builtins/fc.def
+       - changed fc_builtin to call sh_mktmpfp instead of using inline code
+
+builtins/common.h
+       - new extern declaration for fc_execute_file()
+
+bashline.c
+       - if RL_ISSTATE(RL_STATE_INITIALIZED) is 0 in initialize_readline,
+         call rl_initialize to bind the defaults before setting up our
+         custom shell functions and key bindings
+
+lib/readline/doc/{rluser,hsuser}.texinfo
+       - some markup changes proposed by dima@chg.ru
+
+lib/readline/rlstdc.h, lib/tilde/tilde.h
+       - to get ready for some `const' changes to the source, define const
+         as either `__const' (gcc -traditional) or nothing if __STDC__ and
+         __cplusplus are not defined
+
+lib/readline/readline.c
+       - upped the default readline version to `4.2-alpha'
+
+lib/readline/readline.[ch]
+       - readline now takes a `const char *' as an argument
+
+lib/readline/history.h
+       - read_history(), read_history_range(), write_history(),
+         append_history(), history_truncate_file() now take `const char *'
+         filename arguments
+
+lib/readline/histfile.c
+       - history_filename(), read_history(), read_history_range(),
+         write_history(), append_history(), history_truncate_file(),
+         history_do_write() now take `const char *' filename arguments
+
+lib/readline/readline.h
+       - rl_read_init_file() now takes a `const char *' filename argument
+
+lib/readline/bind.c
+       - current_readline_init_file is now a `const char *'
+       - _rl_read_init_file(), rl_read_init_file() now take `const char *'
+         filename arguments
+
+lib/tilde/tilde.c
+       - tilde_expand(), tilde_expand_word() now take a `const char *'
+         as their first argument
+
+lib/readline/chardefs.h
+       - fixed CTRL_CHAR macro to be right on systems where chars are unsigned
+         by default
+
+                                  9/14
+                                  ----
+lib/readline/doc/{rl,hs}tech.texinfo
+       - documented new `const char *' function arguments where appropriate
+
+lib/readline/vi_mode.c
+       - clamp the numeric argument in vi mode at 999999, just like in emacs
+         mode
+
+lib/readline/doc/rltech.texinfo
+       - documented rl_readline_state and its possible bit values
+
+builtins/source.def
+       - in maybe_pop_dollar_vars, don't overwrite a shell function's
+         argument list even if the sourced script changes the positional
+         parameters
+
+lib/readline/{util.c,rlprivate.h}
+       - made _rl_strindex() and _rl_savestring() take `const char *'
+         arguments
+
+                                  9/15
+                                  ----
+subst.c
+       - renamed `doing_completion' to `no_longjmp_on_fatal_error', a more
+         accurate description of its current behavior
+
+pcomplete.[ch], externs.h, lib/sh/stringlist.c
+       - moved the stringlist code from pcomplete.c to lib/sh/stringlist.c
+       - moved the type declaration and extern function declarations from
+         pcomplete.h to externs.h
+
+stringlib.c, externs.h, lib/sh/stringvec.c
+       - moved the char array code from stringlib.c to lib/sh/stringvec.c
+
+                                  9/18
+                                  ----
+subst.c
+       - new static variable, expand_no_split_dollar_star, to ensure that
+         $* isn't `split and rejoined' when expanded via a call to
+         expand_string_unsplit or expand_word_no_split
+
+                                  9/19
+                                  ----
+subst.[ch], execute_cmd.c
+       - renamed expand_word_no_split to expand_word_unsplit
+
+copy_cmd.c
+       - in copy_word, just assign w->flags to new_word->flags rather than
+         bcopying the entire structure
+
+configure.in, config.h.in
+       - add autoconf check for pathconf(3)
+
+lib/sh/tmpfile.c
+       - test for systems with short filenames using pathconf and
+         _PC_NAME_MAX, so generated temp file names don't exceed that length
+         (only do this if the file name length is less than 32, since the
+         current code doesn't generate filenames longer than about 17 chars)
+
+                                  9/20
+                                  ----
+command.h
+       - added `W_NOSPLIT2' word flag to prepare for supporting weird $@
+         expansion on the rhs of assignment statements (inspecting the ksh93
+         behavior, it seems like nothing except $@ is split, and $@ is split
+         on $IFS and rejoined as a single string)
+
+                                  9/21
+                                  ----
+subst.c
+       - since verify_substring_values looks for arithmetic expressions
+         bounded by `:', do some ad-hoc parsing of the substring passed as
+         the argument to avoid cutting the expression off at the wrong `:'
+         (since the inclusion of conditional expressions, expressions may
+         contain a `:').  Do some paren balancing, too.
+
+                                  9/22
+                                  ----
+command.h
+       - new #define, CLOBBERING_REDIRECT, evaluates to true for any redirect
+         that will clobber a file and should be subject to `noclobber'
+
+redir.c
+       - changed redir_open to use CLOBBERING_REDIRECT instead of
+         OUTPUT_REDIRECT.  This means that <> no longer tests the value of
+         noclobber, as POSIX.2 specifies
+
+parse.y
+       - made a change to cond_term so that expressions like [[ (x) ]] are
+         parsed correctly
+
+                                  9/25
+                                  ----
+parse.y
+       - small change to grammar for arith_for_command and special_case_tokens
+         to allow `do...done' or {...} after ((...)) without an intervening
+         list_terminator (for ksh93 compatibility)
+
+builtins/printf.def
+       - `printf' now treats \E and \e the same when performing backslash
+         escape expansion for the %b format character for compatibility with
+         $'...' quoting (for ksh93 compatibility)
+
+                                  9/26
+                                  ----
+builtins/source.def
+       - new variable, source_searches_cwd, initially 1.  If non-zero, `.'
+         searches $PWD for the filename argument if it's not found in $PATH
+
+general.c
+       - changed posix_initialize to turn off source_searches_cwd if posix
+         mode is being enabled; turn it on if posix mode is being disabled
+       - changed things so interactive_comments is not turned off if posix
+         mode is disabled, since that's rarely what is desired
+
+variables.c
+       - changed uidset() to set UID and EUID only if they are not already
+         set when the shell starts up
+       - changed things to HOSTNAME is set only if it's not set when the
+         shell starts up
+
+execute_cmd.c
+       - changed execute_builtin_or_function so that if a command like
+         `command exec 4<file' is executed, the effect is as if the `command'
+         had been omitted, as POSIX.2 requires
+
+subst.c
+       - changed array_length_reference to support ${foo[X]} when foo is not
+         an array variable and X is 0, @, or * (everything else returns 0)
+         for ksh compatibility
+       - changed array_value_internal to support ${foo[@]} and ${foo[*]}
+         when foo is not an array variable (as ksh does)
+
+                                  9/27
+                                  ----
+general.h
+       - added defines for ABSPATH (absolute pathname), RELPATH (relative
+         pathname, and ROOTEDPATH (pathname rooted at /), with different
+         definitions for Unix and Cygwin
+       - added defines for DIRSEP (the directory separator in pathnames,
+         and ISDIRSEP (whether a particular character is the directory
+         separator)
+       - added PATHSEP define: takes a character and decides whether it
+         delimits a filename component of a pathname
+       - changed isletter(c) #define to just call isalpha(c)
+
+lib/sh/pathcanon.c
+       - changed to use new pathname #defines from general.h above
+
+general.c
+       - changed make_absolute, absolute_pathname to understand
+         Cygwin's idea of an absolute pathname: [[:upper:][:lower:]]:/
+       - rewrote absolute_pathname to use PATHSEP and ABSPATH
+       - changed full_pathname to use ABSPATH
+
+variables.c
+       - changed get_bash_name to use ABSPATH and RELPATH, and to handle the
+         case when $PWD is unset when it is called
+
+subst.c
+       - if compiling on cygwin, translate \r\n to \n when reading the output
+         of a command substitution in read_comsub()
+
+                                  9/28
+                                  ----
+input.c, shell.c, builtins/read.def, lib/tilde/tilde.c
+       - changed __CYGWIN32__ to __CYGWIN__
+
+lib/readline/{bind,funmap,kill}.c, lib/readline/readline.h
+       - changed __CYGWIN32__ to __CYGWIN__
+
+input.c
+       - a couple of minor changes to clean up the code
+
+parse.y
+       - changed shell_getc and shell_ungetc to implement one character of
+         lookahead/lookbehind when pushing a character back at the start
+         of an input line (the old code would have discarded it because
+         shell_input_line_index was 0)
+
+lib/readline{histsearch.c,history.h}
+       - history_search_internal, history_search, history_search_prefix,
+         history_search_pos now take const char * string arguments
+
+lib/readline/{histexpand.c,history.h}
+       - get_history_event, history_arg_extract, history_tokenize_internal,
+         history_tokenize now take const char * string arguments
+
+lib/readline/{history.c,history.h}
+       - add_history, replace_history_entry now take const char * string
+         arguments
+
+lib/readline/{bind.c,readline.h}
+       - rl_add_defun, rl_unbind_command_in_map, rl_set_key, rl_macro_bind,
+         rl_generic_bind, rl_translate_keyseq, rl_named_function,
+         rl_function_of_keyseq, rl_variable_bind, rl_get_keymap_by_name
+         now take const char * string arguments where appropriate
+       - rl_function_dumper, rl_list_funmap_names needed changes to deal
+         with rl_funmap_names returning const char **
+       - rl_readline_name is now a const char * variable
+
+lib/readline/keymaps.h
+       - duplicate definition of rl_get_keymap_by_name needs const changes
+
+lib/readline/{bind.c,rlprivate.h}
+       - _rl_bind_if_unbound takes a const char * string argument
+
+lib/readline/{funmap.c,readline.h}
+       - rl_add_funmap_entry now takes a const char * string argument
+       - rl_funmap_names now returns a const char **
+       - a FUNMAP now has a const char *name member
+
+lib/readline/{terminal.c,readline.h,rlprivate.h}
+       - _rl_init_terminal_io, rl_get_termcap, rl_reset_terminal,
+         _rl_output_some_chars now take const char * string arguments
+
+lib/readline/{readline.[ch],rlprivate.h}
+       - rl_library_version and rl_terminal_name are now const char *
+         variables
+       - rl_insert_text, _rl_replace_text now take const char * string
+         arguments
+
+lib/readline/{callback.c,readline.h}
+       - rl_callback_handler_install takes a const char * string argument
+
+lib/readline/doc/{rltech,hstech}.texinfo
+       - changed documentation for newly-consted functions and variables
+
+lib/readline/{complete.c,readline.h}
+       - rl_strpbrk now takes const char * string arguments
+       - username_completion_function and filename_completion_function
+         now take const char * string arguments
+       - rl_basic_word_break_characters, rl_basic_quote_characters,
+         rl_completer_word_break_characters, rl_completer_quote_characters,
+         rl_filename_quote_characters, rl_special_prefixes are all
+         const char * variables
+
+lib/readline/{display.c,rlprivate.h}
+       - _rl_move_cursor_relative takes a const char * string argument
+
+redir.c
+       - change from tbisp@uswest.net to fix a problem with cygwin and
+         here_document_to_fd, since cygwin doesn't allow a file to be
+         unlinked if there is a descriptor open on it
+
+display.c
+       - fixed a slight bug in the logic deciding whether or not to redraw
+         a prompt containing invisible characters in update_line.  Fixes
+         bug reported by bdluevel@heitec.net
+
+                                  9/29
+                                  ----
+shell.c
+       - fixed a problem with a too-aggressive setting of restricted shell
+         mode based on shell_name.  Old code set `restricted' even after a
+         longjmp due to shell_execve trying to execute an executable script
+         without a leading `#!', though that case should result in an
+         unrestricted shell
+
+                                  10/2
+                                  ----
+copy_cmd.c
+       - make sure copy_function_def copies the `flags' and `line' members
+         of the function_def
+
+parse.y
+       - make the function_def production take a new function_body parse
+         unit, which is currently just a group_command (in prep for future
+         changes)
+
+builtins/printf.def
+       - changed getint, getlong, getulong, getdouble to print warnings on
+         range errors and return the clamped values that strtol/strtod
+         return, as POSIX.2 specifies
+
+                                  10/3
+                                  ----
+parse.y
+       - made a function_def a `command' instead of a `shell_command'
+         This makes the grammar more closely resemble that supplied in
+         the POSIX.2 standard
+       - made a `function_body' be like the function_body production in
+         the POSIX.2 standard.  This relaxes the restriction that the
+         body be composed of a group_command, but introduces a YACC
+         shift/reduce conflict
+
+print_cmd.c
+       - changes to named_function_string (for normal function printing)
+         and print_function_def (for printing function definitions embedded
+         in other commands) to print redirections that should be attached
+         to the function as a whole after the closing brace, because of
+         the changes to the parser
+
+tests/func2.sub
+       - tests for new function declarations whose bodies are not group
+         commands -- the command printing code still prints them with the
+         braces
+
+                                  10/4
+                                  ----
+lib/sh/pathphys.c
+       - new function, sh_physpath, resolves symlinks in pathname passed
+         as argument
+
+builtins/cd.def
+       - changed pwd_builtin to use sh_physpath if -P supplied or in
+         physical mode
+       - changed bindpwd to use sh_physpath if the no_symlinks argument is
+         non-zero
+       - changed change_to_directory to use sh_physpath and set
+         the_current_working_directory appropriately if the `nolinks'
+         argument is non-zero
+
+                                  10/5
+                                  ----
+variables.c, bashline.c, builtins/cd.def
+       - replaced calls to canonicalize_pathname with sh_canonpath
+
+builtins/cd.def
+       - rewrote change_to_directory to make it much shorter and simpler
+
+command.h
+       - added SUBSHELL_PIPE as possible flag value for subshell_environment
+
+execute_cmd.c
+       - execute_simple_command sets SUBSHELL_PIPE in subshell_environment
+         if the command has a pipe in or out
+
+subst.c
+       - don't reset pipeline_pgrp to shell_pgrp in command_substitute if
+         we're already in a pipline
+         ((subshell_environment & SUBSHELL_PIPE) != 0)
+
+                                  10/6
+                                  ----
+subst.c 
+       - change command_substitute to call setmode(fd, O_TEXT) on the pipe
+         file descriptor if __CYGWIN__ is defined; remove the other code
+         that converts CR/LF to LF on cygwin
+
+                                  10/9
+                                  ----
+stringlib.c
+       - change strcreplace() to make sure that RESIZE_MALLOCED_BUFFER is
+         called everywhere characters are added
+
+                                  10/11
+                                  -----
+lib/sh/spell.c
+       - new file, with the spelling correction code from builtins/cd.def
+
+builtins/cd.def
+       - a little surgery on cd_builtin, to make the structure clearer
+
+                                  10/12
+                                  -----
+builtins/read.def
+       - include fcntl.h and io.h on __CYGWIN__
+       - set mode of fd 0 to O_TEXT if __CYGWIN__ and O_TEXT are both
+         defined
+
+shell.c
+       - in open_shell_script, set mode of fd opened to the shell script
+         to O_TEXT if __CYGWIN__ and O_TEXT are both defined
+
+builtins/evalfile.c
+       - changed the __CYGWIN__ code to call setmode(fd, O_TEXT) instead
+         of translating \r to \n after the read() returns
+
+                                  10/13
+                                  -----
+lib/sh/strtrans.c, stringlib.c
+       - moved ansicstr() from stringlib.c to new file lib/sh/strtrans.c
+       - new function ansic_quote, to quote a string with $'...'
+
+lib/sh/strindex.c, stringlib.c
+       - moved strindex() from stringlib.c to new file lib/sh/strindex.c
+
+lib/sh/Makefile.in
+       - compile `shquote.c' in as part of the shell library
+       - compile `strtrans.c' in as part of the shell library
+       - compile `strindex.c' in as part of the shell library
+
+Makefile.in
+       - link with libsh before any of the readline libraries
+
+builtins/common.c
+       - removed the functions also appearing in lib/sh/shquote.c
+
+externs.h, builtins/common.h
+       - moved extern declarations for functions in lib/sh/shquote.c to
+         externs.h from builtins/common.h
+
+variables.c
+       - print_var_value (used in the output of `set') now calls
+         ansic_quote to quote the value, so any non-printable characters
+         are displayed
+
+                                  10/14
+                                  -----
+syntax.h
+       - new file, with definitions from shell.h having to do with shell
+         syntax, metacharacters, and quoting
+
+parse.y
+       - moved defines for shell metachars and other char class declarations
+         to syntax.h
+
+shell.h
+       - now includes syntax.h
+
+Makefile.in,builtins/Makefile.in,lib/sh/Makefile.in
+       - added syntax.h to appropriate dependency lists
+
+                                  10/16
+                                  -----
+mksyntax.c
+       - new program, to build a syntax table for the shell at compile time
+
+Makefile.in
+       - new generated file, syntax.c, generated by mksyntax
+
+general.h
+       - `digit(x)' is now just defined as `isdigit(x)'
+
+syntax.h
+       - now that we have sh_syntaxtab[], change the appropriate defines
+         to use it
+
+parse.y, subst.c
+       - change checks of member(c, slashify_in_quotes) to test
+         sh_syntaxtab[c] & CBSDQUOTE
+
+builtins/set.def
+       - corrected the help text for `unset', since PATH and IFS may be
+         unset
+
+subst.c
+       - changed explicit tests for shell special parameters using member()
+         or strchr() to test (sh_syntaxtab[c] & CSPECVAR) instead
+       - changed some boilerplate calls to member() that test for validity
+         of various characters in the expansion process to macros for
+         efficiency
+
+lib/sh/shquote.c
+       - changed some of the functions to use checks against sh_syntaxtab[]
+         flag values
+
+                                  10/19
+                                  -----
+findcmd.c
+       - find_user_command_in_path no longer finds directories if the caller
+         specified FS_NODIRS in the flags argument.  This fixes the bug of
+         hashing directory names, at the loss of some information about
+         attempting to execute directories
+
+builtins/hash.def
+       - hash -p dirname name no longer puts directories into the hash table
+
+                                  10/26
+                                  -----
+builtins/read.def
+       - make sure that the last unwind-protect added is the one that calls
+         xfree(input_string), so that this is the top element on the
+         unwind-protect stack
+       - if xrealloc() is called to increase the size of input_string, make
+         sure to remove the top element from the unwind-protect stack (the
+         old xfree) and add a new one, in case realloc() freed the original
+         input_string and allocated new space.  This fixes the bug of bash
+         crashing because it's trying to free already-freed memory if the
+         `read' is interrupted (reported by klausf@Pool.Informatik.RWTH-Aachen.DE)
+
+                                  10/27
+                                  -----
+subst.c
+       - fixed a problem in expand_word_list_internal so that
+         last_command_exit_value is set to 1 if a variable assignment fails
+         and a jump_to_top_level (DISCARD) is taken.  This fixes the problem
+         of assignment statements to read-only variables appearing to succeed
+         (though it always worked right in non-interactive posix-mode shells)
+
+                                  10/30
+                                  -----
+lib/readline/readline.h
+       - rl_completion_entry_function is now of type CPFunction *, since
+         that's the actual type that's used, and casting function pointers
+         of different types (which happened all the time as a result), is
+         problematic on some architectures
+
+lib/readline/complete.c
+       - changed entry function argument to gen_completion_matches to be of
+         type CPFunction *, since that's how it's used
+       - changed variables that are completion entry function pointers to be
+         of type CPFunction *, removed problematic typecasts
+
+lib/readline/doc/rltech.texinfo
+       - documented type change for rl_completion_entry_func
+
+lib/readline/rltypedefs.h
+       - new file, with all the readline function typedefs
+
+lib/readline/rltypedefs.h
+       - new typedef, rl_command_func_t, which is a function returning
+         an int
+       - a KEYMAP_ENTRY now contains a pointer to an rl_command_func_t
+       - new typedef, rl_compentry_func_t, which is a function returning
+         a char *
+       - new typdef, rl_completion_func_t, which is a function returning
+         a char **
+       - new typedef, rl_quote_func_t, which is a function returning a
+         char *
+       - new typedef, rl_dequote_func_t, which is a function returning a
+         char *
+       - new typedef, rl_compignore_func_t, which is a function returning a
+         char *
+       - new typedef, rl_compdisp_func_t, which is a void function taking
+         a char **, int, int argument list
+       - new typedef, rl_hook_func_t, which is a function taking no args
+         and returning an int (used for input and other hooks)
+       - new typedef, rl_modterm_func_t, which is a void function tkaing
+         an int, used to modify terminal (rl_prep_term_function)
+       - new typedef, rl_getc_func_t, which is an int-returning function
+         that takes a FILE *
+       - new typedef, rl_linebuf_func_t, which takes a string and an int
+         index and returns an int
+       - new generic typedefs, rl_intfunc_t and rl_voidfunc_t, which are
+         functions which take and return int and void, respectively 
+       - new generic typedef, rl_vintfunc_t, which takes an int and returns
+         void
+       - new generic typedefs, rl_icpfunc_t and rl_vcpfunc_t, which take a
+         char * and return int and void, respectively
+       - new generic typedefs, rl_icppfunc_t and rl_vcppfunc_t, which take
+         a char ** and return int and void, respectively
+
+lib/readline/rlprivate.h
+       - rl_last_func is now of type rl_command_func_t *
+
+lib/readline/readline.c
+       - declare rl_last_func as rl_command_func_t *
+
+lib/readline/{bind,readline,vi_keymap,emacs_keymap,funmap,keymaps,isearch}.c
+lib/readline/readline.h
+       - change appropriate cases of (Function *) to (rl_command_func_t *)
+
+lib/readline/{readline.h,bind.c}
+       - rl_named_function and rl_function_of_keyseq now return a
+         (rl_command_func_t *)
+
+lib/readline/bind.c
+       - changed type of functions in parser function table from Function *
+         to _rl_parser_func_t *
+
+lib/readline/funmap.c
+       - removed `vi-bracktype' from vi function map -- it's not a
+         bindable function
+
+lib/readline/{readline.h,complete.c}
+       - changed appropriate uses of CPFunction * to rl_compentry_func_t *
+         or rl_quote_func_t *
+
+lib/readline/{rltty.c,readline.h}
+       - rl_prep_term_function is now of type rl_vintfunc_t *
+       - rl_deprep_term_function is now of type rl_voidfunc_t *
+
+lib/readline/{keymaps,history.h}
+       - include rltypedefs.h or <readline/rltypedefs.h> as appropriate
+
+lib/readline/{display.c,readline.h}
+       - rl_redisplay_func is now of type rl_voidfunc_t *
+
+lib/readline/{callbacks.c,readline.h}
+       - the `linefunc' argument to rl_callback_handler_install and the
+         rl_linefunc variable are now of type rl_vcpfunc_t *
+
+lib/readline/{complete.c,readline.h}
+       - rl_completion_display_matches_hook is now of type
+         rl_compdisplay_func_t *
+       - rl_directory_completion_hook is now of type rl_icppfunc_t *
+
+lib/readline/{history.h,histexpand.c}
+       - history_inhibit_expansion_function is now of type
+         rl_linebuf_func_t *
+
+lib/readline/histexpand.c
+       - new private type, _hist_search_func_t, used to indirect through
+         the various history search functions
+
+lib/tilde/tilde.h
+       - new typedef, tilde_hook_func_t, which takes a char * and returns
+         a char *
+
+lib/tilde/tilde.[ch]
+       - tilde_expansion_preexpansion_hook and tilde_expansion_failure_hook
+         are now of type tilde_hook_func_t *
+
+[THERE ARE NO LONGER ANY REFERENCES TO Function *, CPFunction *, or
+CPPFunction * IN THE READLINE SOURCE, WHICH INCLUDES THE TILDE LIBRARY]
+
+{bashline,bracecomp}.c, bashline.h
+       - changes for changed type of rl_completion_entry_func and other
+         changed types (rl_compentry_func_t, rl_completion_func_t,
+         const changes for prototypes, etc.)
+
+pathexp.[ch]
+       - shell_glob_filename now takes a `const char *' argument
+       - quote_string_for_globbing now takes a `const char *' argument
+
+                                  10/31
+                                  -----
+lib/sh/zwrite.c
+       - fix zwrite() to update the buffer pointer in the case of a
+         partial write, in addition to decreasing the count of bytes to
+         be written
+
+support/config.{guess,sub}
+       - added entries for MIPS-based Compaq machines running NonStopUX
+
+                                  11/1
+                                  ----
+lib/readline/undo.c
+       - renamed free_undo_list to be rl_free_undo_list, made a dummy
+         replacement function free_undo_list that just calls
+         rl_free_undo_list
+
+lib/readline/readline.h
+       - extern declaration for rl_free_undo_list
+
+lib/readline/{readline,signals}.c
+       - changed calls to free_undo_list to rl_free_undo_list
+
+lib/readline/doc/rltech.texinfo
+       - changed all function types and arguments for new typedefs
+
+                                  11/2
+                                  ----
+lib/readline/{rlprivate.h,terminal.c,display.c}
+       - term_clreol, term_clrpag, term_cr, term_backspace, term_goto,
+         term_pc, term_im, term_ei, term_ic, term_ip, term_IC, term_dc,
+         term_DC, term_forward_char, term_up, term_mm, term_mo, term_ku,
+         term_kd, term_kr, term_kl, term_ks, term_ke, term_kh, term_kH,
+         terminal_can_insert variables all now have a _rl_ prefix
+
+lib/readline/{rlprivate.h,terminal.c,display.c, readline.c}
+       - screenheight, screenwidth, screenchars now have an _rl_ prefix
+
+lib/readline/{terminal,complete,isearch,kill,macro,readline,search,undo,util,vi_mode}.c
+       - changed calls to ding to calls to rl_ding
+
+lib/readine/{isearch,readline,search}.c
+       - saved_line_for_history now has an _rl_ prefix
+
+lib/readline/readline.[ch]
+       - renamed maybe_{replace,save,unsave} line to have an rl_ prefix
+
+lib/readline/{readline,search,isearch}.c
+       - changed calls to maybe_{replace,save,unsave} line to call the
+         rl_-prefixed equivalents
+
+lib/readline/{rlprivate.h,readline.c,util.c}
+       - renamed alphabetic to rl_alphabetic; changed calls
+
+lib/readline/{bind.c,funmap.c,rlprivate.h}
+       - possible_control_prefixes -> _rl_possible_control_prefixes
+       - possible_meta_prefixes -> _rl_possible_meta_prefixes
+
+lib/readline/compat.c
+       - new file for entry points for backwards compatibility functions
+       - moved free_undo_list here from undo.c
+       - maybe_{replace,save,unsave}_line function that call their rl_
+         counterparts
+       - moved ding() here; it just calls rl_ding()
+       - moved alphabetic here; it just calls _rl_alphabetic()
+
+lib/readline/Makefile.in
+       - make sure compat.o is built and linked appropriately
+
+bashline.c,pcomplete.c
+       - changed calls to ding() to call rl_ding()
+
+support/shobj-conf
+       - changed linux stanza SHLIB_XLDFLAGS to make the `soname' in a
+         shared library have only the major version number, rather than
+         major and minor numbers
+       - made analogous changes for bsd/os-4
+       - changed freebsd 3.x stanza to match `freebsdelf[3-9]*' for
+         FreeBSD elf systems and `freebsdaout[3-9]*' for FreeBSD
+         a.out systems (are there any?)
+
+lib/readline/doc/{rluser,hsuser}.texinfo
+       - changed uses of @samp to @option where appropriate
+
+doc/bashref.texi
+       - changed uses of @samp to @option where appropriate
+
+                                  11/3
+                                  ----
+lib/readline/{readline.h,complete.c,compat.c}
+       - completion_matches, username_completion_function,
+         filename_completion_function all have an rl_ prefix
+
+{bashline,bracecomp,pcomplete}.c
+       - changed calls to completion_matches, username_completion_function,
+         and filename_completion_function
+
+lib/sh/shquote.c
+       - single_quote, double_quote, un_double_quote, backslash_quote,
+         backslash_quote_for_double_quotes, contains_shell_metas all now
+         have an sh_ prefix
+
+externs.h
+       - changed extern declarations for functions from shquote.c
+
+{array,bashline,pcomplete,print_cmd,variables}.c, parse.y
+builtins/{alias,complete,trap,type}.def
+       - changed callers of single_quote
+
+{array,bashline}.c, builtins/setattr.def
+       - changed callers of double_quote
+
+{bashline,bracecomp}.c, parse.y, builtins/printf.def
+       - changed callers of backslash_quote
+
+parse.y
+       - changed callers of backslash_quote_for_double_quotes
+
+{print_cmd,variables}.c
+       - changed callers of contains_shell_metas
+
+lib/readline/{rlshell.h,shell.c,histexpand.c}
+       - single_quote -> sh_single_quote
+
+lib/readline/{rlshell.h,shell.c,input.c}
+general.[ch],shell.c,subst.c
+        - unset_nodelay_mode -> sh_unset_nodelay_mode
+
+lib/readline/{rlshell.h,shell.c}, lib/tilde/tilde.c, variables.c
+       - get_home_dir -> sh_get_home_dir
+
+lib/readline/rlshell.h,lib/readline/bind,histfile,nls,readline,shell,terminal}.c, lib/tilde/tilde.c, variables.c
+       - get_env_value -> sh_get_env_value
+
+lib/readline/rlshell.h,lib/readline/{shell,terminal}.c
+variables.h,{jobs,nojobs,variables}.c
+       - set_lines_and_columns -> sh_set_lines_and_columns
+
+                                  11/6
+                                  ----
+configure.in
+       - bash can only link with an already-installed readline library whose
+         version is 4.2 or greater
+
+variables.h
+       - new variable attribiute, noassign, with its accompanying test macro,
+         noassign_p.  Completely internal, not user-settable
+
+execute_cmd.c
+       - treat noassign variables like readonly variables, except an attempt
+         to assign to them does not cause a non-interactive shell in POSIX
+         mode to abort
+
+{subst,variables}.c,builtins/declare.def
+       - attempts to assign to `noassign' variables return an error status,
+         but no error messages -- almost identical to readonly variables
+
+variables.c
+       - GROUPS and FUNCNAME are `noassign' variables, meaning assignment to
+         them is disallowed, but that they may be unset (in which case they
+         lose their special properties)
+
+doc/{bash.1,bashref.texi}
+       - documented that assignments to GROUPS and FUNCNAME are disallowed
+         and return an error status
+
+                                  11/8
+                                  ----
+lib/readline/{funmap.c,bind.c,rlprivate.h}
+       - _rl_possible_{control,meta}_prefixes are now arrays of `const char *'
+         and are defined in bind.c, since that's where they're used
+
+lib/readline/rltty.c
+       - changed prepare_terminal_settings to take an `oldtio' argument
+         instead of `otio', which shadows the global declaration
+
+lib/readline/bind.c
+       - the `name' member of a parser_directive element is now a
+         `const char *'
+       - the `name' member of a boolean_varlist element is now a
+         `const char *'
+       - the `name' member of a string_varlist element is now a
+         `const char *'
+       - the `name' member of an assoc_list element is now a
+         `const char *'
+       - the `name' member of an keymap_names element is now a
+         `const char *'
+
+lib/readline/display.c
+       - changed scope-local char * variable `temp' to `vtemp' because
+         there's already a function local variable named `temp' of a
+         different type (int) in rl_redisplay
+
+lib/readline/util.c
+       - pathname_alphabetic_chars is now `const char *'
+
+lib/readline/terminal.c
+       - the `tc_var' member of a _tc_string element is now a
+         `const char *'
+
+lib/readline/histexpand.c
+       - changed history_expand_internal to remove the duplicate local
+         declaration of `t' in the `s'/`&' case
+
+lib/readline/histfile.c
+       - in history_filename, `home' is now a `const char *'
+
+lib/tilde/tilde.c
+       - default_prefixes and default_suffixes are now arrays of
+         `const char *'
+
+lib/readline/vi_mode.c
+       - vi_motion and vi_texmod are now `const char *'
+
+lib/readline/complete.c
+       - simplified the conditional declaration of getpwent()
+
+variables.[ch]
+       - get_string_value now takes a `const char *' argument
+
+                                  11/10
+                                  -----
+display.c
+       - changes to expand_prompt and rl_redisplay to keep track of the number
+         of invisible characters on the first line of the prompt, in case it
+         takes up more than one physical line, and not all invisible chars are
+         on the first line
+       - the code that determines the index into the line at which to wrap the
+         first line if the visible prompt length exceeds the screen width was
+         changed to use the number of invisible chars in the first physical
+         prompt line rather than the total number of invisible characters
+       - changed redraw_prompt to save and restore prompt_invis_chars_first_line
+
+subst.c
+       - changed expand_string_internal to savestring() the string argument
+         to avoid possible doubly-freed memory on substitution errors
+       - fixed expand_word_list_internal so that commands with assignment
+         statements preceding words that expand to nothing return a failure
+         status if one of the assignments fails; for example
+
+               readonly TVAR
+               TVAR=7 $ECHO $ABCDE
+       - made sure that all cases of jump_to_top_level set
+         last_command_exit_value to something non-zero before jumping, since
+         they are by definition errors
+
+builtins/evalstring.c
+       - changed parse_and_execute to set last_result to EXECUTION_FAILURE
+         along with last_command_exit_value in the `DISPOSE' case of a
+         jump_to_top_level, since we can return this value in most
+         (interactive) circumstances
+
+                                  11/14
+                                  -----
+general.c
+       - fix legal_number so that it skips any trailing whitespace in its
+         string argument after strtol returns, since strtol does not
+
+lib/readline/{complete.c,readline.h}
+       - new function pointer, rl_directory_rewrite_hook, identical in effect
+         to rl_directory_completion_hook except that it does not modify what
+         is displayed when the possible completions are listed or inserted
+
+bashline.c
+       - changed tcsh_magic_space to try and insert a space closer to where
+         the point was originally, rather than always inserting it at the
+         end of the line
+
+                                  11/16
+                                  -----
+jobs.c
+       - fixed a bug that happened on cygwin systems that caused the jobs
+         table to fill up if a file sourced from an interactive shell ran
+         lots of jobs -- notify_and_cleanup() never called notify_of_job_status
+
+subst.c
+       - fixed pat_match to avoid infinite recursion on zero-length matches
+         from match_pattern
+
+                               11/17/2000
+                               ----------
+[bash-2.05-alpha1 released]
+
+                                  11/18
+                                  -----
+support/shobj-conf
+       - added GNU Hurd support, identical to linux
+
+variables.c
+       - cygwin systems don't use the exportstr stuff at all, so call
+         INVALIDATE_EXPORTSTR before testing var->exportstr, since just
+         blindly using the value_cell will break exported functions that
+         already have an exportstr set
+       - when recomputing the exported value because valid_exportstr fails,
+         make sure to call named_function_string if the variable is a shell
+         function
+
+                                  11/20
+                                  -----
+variables.c
+       - removed call to valid_exportstr; the exportstr code has been
+         adequately debugged
+
+lib/glob/fnmatch.c
+       - reverted to the POSIX.2 behavior of using the current locale and
+         strcoll() to evaluate range expressions in bracket expressions
+
+doc/{bash.1,bashref.texi}
+       - added note to Pattern Matching section emphasizing that the current
+         locale plays a part in evaluating range expressions within [...]
+
+aclocal.m4
+       - added an #include <unistd.h> to the test for posix sigaction
+         restarting interrupted system calls
+
+support/config.guess
+       - changes from Tim Mooney to support `letter version' releases of
+         Tru 64 Unix on the Alpha (e.g., 5.1a)
+
+                                  11/21
+                                  -----
+lib/sh/pathphys.c
+       - make sure MAXSYMLINKS is defined
+
+aclocal.m4
+       - changed BASH_CHECK_PWFUNCS to just use AC_EGREP_CPP on a file
+         that includes pwd.h and other header files, checking for getpwuid.
+         It #defines HAVE_GETPW_DECLS if the egrep succeeds
+
+lib/readline/complete.c
+       - provide extern declaration of getpwent if _POSIX_SOURCE is defined,
+         since most systems don't declare it in <pwd.h> unless _POSIX_SOURCE
+         is undefined
+
+                                  11/22
+                                  -----
+input.c
+       - fixed a small typo in the cygwin-specific code
+
+doc/{bashref.texi,bash.1}
+       - added some more explanatory text about the effect of the current
+         locale's collating order on range expressions within bracket
+         expressions
+
+doc/bashref.texi, lib/readline/doc/{rltech,rluser,hstech}.texinfo
+       - changed to use @env instead of @code for the names of environment
+         and shell variables in text (not in tables yet)
+
+                                  11/27
+                                  -----
+configure.in
+       - configure without the bash malloc on Interix
+
+lib/readline/doc/rltech.texinfo
+       - changed completion_matches() to rl_completion_matches()
+       - changed filename_completion_function() to
+         rl_filename_completion_function()
+       - changed username_completion_function() to
+         rl_username_completion_function()
+
+lib/readline/rlprivate.h
+       - changed declaration of _rl_alphabetic to rl_alphabetic, since that's
+         what's used in the C files
+
+support/bashbug.sh
+       - Debian has /usr/bin/editor as a link to the system default editor;
+         make that one of the alternatives if $EDITOR is not set
+       - if the OS provides mktemp(1) or tempfile(1), use those to create
+         the temp file for the bug report
+
+lib/readline/{readline.[ch], callback.c}
+       - new function, rl_set_prompt, called with prompt string as argument,
+         sets and, if necessary, expands rl_prompt
+
+lib/readline/{complete.c,compat.c,readline.h}
+       - rl_completion_matches now takes a `const char *' as its first
+         argument
+       - compute_lcd_of_matches now takes a `const char *' as its third
+         argument
+
+lib/readline/rltypedefs.h
+       - a rl_completion_func_t now takes a `const char *' as its first
+         argument
+
+lib/readline/Makefile.in
+       - added dependencies on rltypedefs.h
+
+bashline.c
+       - attempt_shell_completion now takes a `const char *' as its first
+         argument
+       - removed bogus cast when assigning to rl_attempted_completion_function
+         and rl_completion_entry_function
+       - bash_directory_completion_matches takes a `const char *' argument
+
+pcomplete.c
+       - gen_matches_from_itemlist, pcomp_filename_completion_function,
+         gen_action_completions, gen_globpat_matches, gen_wordlist_matches,
+         gen_compspec_completions now take `const char *' arguments as
+         appropriate
+       - programmable_completions now takes `const char *' first and 
+         second arguments
+
+pcomplib.c
+       - find_compspec now takes a `const char *' argument
+
+                                  11/29
+                                  -----
+shell.c
+       - in open_shell_script, if we have /dev/fd, don't perform the check
+         for a binary file if isatty(fd) (where fd is opened on the script
+         name) returns non-zero
+       - in open_shell_script, don't call init_noninteractive again, since it
+         can undo changes made by the startup files ($BASH_ENV)
+
+input.c
+       - in fd_to_buffered_stream, make sure buffer size (and hence size
+         arg passed to read(2)) is greater than zero.  This makes
+         bash /dev/stdin work right.
+       - return -1 from sync_buffered_stream immediately if buffers is NULL
+         (can happen when running `bash -i /dev/stdin' and executing a
+         command that requires a fork)
+
+                                  11/30
+                                  -----
+jobs.c
+       - renamed cont_signal_handler to sigcont_sighandler for consistency
+       - renamed stop_signal_handler to sigstop_sighandler for consistency
+       - if there is no jobs list or no outstanding jobs, return immediately
+         from notify_of_job_status, before fussing with the signal state
+       - change map_over_jobs to not fuss with the signal state unless there
+         are jobs
+
+lib/malloc/malloc.c
+       - encapsulated the code to block and unblock signals during morecore()
+         execution into two functions:  block_signals and unblock_signals
+       - only block signals in morecore() if interrupt_immediately is non-zero
+         or SIGINT or SIGCHLD is trapped
+
+                                  12/1
+                                  ----
+lib/readline/readline.c
+       - fix to rl_forward to make sure that lend doesn't get set < 0, since
+         that will result in rl_point being < 0
+
+                                  12/5
+                                  ----
+parse.y
+       - fix to parse_matched_pair to allow backslash to escape a ' inside a
+         $'...' construct inside another grouping construct like ${...}
+       - translate $'...' and $"..." in parse_matched_pair, because nothing
+         else will do it if such a construct appears inside a grouping
+         construct
+
+                                  12/6
+                                  ----
+configure.in
+       - make sure all bracket tests for pattern matching in case statements
+         are appropriately quoted, so autoconf doesn't swallow the brackets
+       - add -rdynamic to LOCAL_LDFLAGS for freebsd-4.x
+
+examples/loadables/realpath.c
+       - new loadable builtin, canonicalizes pathnames and expands symlinks
+
+builtins/ulimit.def
+       - added undocumented -w option for setting RLIMIT_SWAP, if it's defined
+
+                                  12/7
+                                  ----
+bashline.c
+       - reordered code in initialize_readline so all of the rl_add_defun
+         calls are made before the call to rl_initialize, and all of the
+         rl_{bind,unbind}_key_in_map calls are made after initializing
+         readline.  This allows the bash-specific function names to be used
+         in ~/.inputrc
+
+                                  12/12
+                                  -----
+lib/readline/callback.c
+       - in rl_callback_read_char, loop after returning from
+         readline_internal_char and test rl_pending_input in case some
+         function (like the incremental search functions and digit argument
+         functions) pushed input back with rl_execute_next
+
+lib/readline/readline.h
+       - new rl_state flag:  RL_STATE_INPUTPENDING, indicating that
+         rl_execute_next has pushed input back for rl_get_key to read
+
+lib/readline/input.c
+       - new function to clear rl_pending_input: rl_clear_pending_input()
+
+lib/readline/{input,readline,signals}.c
+       - when rl_pending_input is set, set state RL_STATE_INPUTPENDING;
+         unset that state when rl_read_key returns the pending input
+       - call rl_clear_pending_input at appropriate points
+
+                                  12/15
+                                  -----
+lib/readline/histfile.c
+       - don't leak file descriptors while attempting to truncate a non-regular
+         file
+
+input.c
+       - make sure check_bash_input sets the close-on-exec flag for the file
+         descriptor used to save the bash input fd
+
+parse.y
+       - if default_buffered_input gets changed while it's on the saved
+         stream stack, make sure it gets set to close-on-exec when it's
+         restored by pop_stream()
+
+                                  12/18
+                                  -----
+builtins/ulimit.def
+       - change set_limit to account for Cygwin's setdtablesize() being
+         declared as a void function
+
+support/config.{guess,sub}
+       - change cygwin32 to cygwin
+
+                                  12/20
+                                  -----
+nojobs.c
+       - make wait_sigint_handler handle the case of interrupt_immediately
+         being non-zero when it's called, and jump out appropriately
+
+jobs.c
+       - new function to run sigchld traps: run_sigchld_trap(); called from
+         waitchld
+       - broke the code that computes the printable job status messages for
+         pretty_print_job out into a separate function
+       - rearranged some code eliminating a useless `else' branch in wait_for
+       - shell_tty_info is now a TTYSTRUCT, using defines from shtty.h
+       - broke the code that sets a job's status after waitpid says its state
+         has changed and cleans up after a received SIGINT out into a separate
+         function: set_job_status_and_cleanup
+       - last_stopped_job() -> job_last_stopped() to avoid collision with a
+         variable name
+       - last_running_job() -> job_last_running() for consistency
+
+                                  12/21
+                                  -----
+variables.c
+       - new function, print_func_list (SHELL_VAR **list); prints shell
+         functions from list in a form that may be re-used as input to
+         redefine the functions
+
+variables.h
+       - new extern declaration for print_func_list
+
+builtins/set.def
+       - set without options now calls print_func_list to have functions
+         printed in a way that can be reused as input (this affects
+         `declare' and `declare -p' also)
+
+                                  12/27
+                                  -----
+general.h
+       - add an ISOCTAL define
+
+builtins/common.h
+       - use ISOCTAL in read_octal function
+
+parse.y
+       - in decode_prompt_string, don't just skip STRING forward by 3 if an
+         octal sequence is translated; handle sequences of fewer than three
+         characters by checking each character
+
+                                  12/28
+                                  -----
+doc/{bash.1,bashref.texi}
+       - make sure `vi-move' is a documented keymap argument to bind's
+         `-m' option
+
+                                  12/29
+                                  -----
+variables.c
+       - change print_assignment so that functions are printed in a way that
+         may be reused as input (without the `=')
+
+                                1/2/2001
+                                --------
+test.c
+       - fix test_command to print an error message if `[' is supplied a
+         single argument that is not `]'
+
+support/shobj-conf
+       - change test of $SHOBJ_CC from `gcc*' to `*gcc*' to handle full
+         pathnames
+
+                                  1/11
+                                  ----
+execute_cmd.c
+       - in initialize_subshell, zero out builtin_env, since those aren't
+         supposed to be exported
+
+variables.c
+       - new function: shell_var_from_env_string, creates a SHELL_VAR from
+         a `name=value' style environment string and returns it
+       - new function: bind_name_in_env_array(name, value, array), makes
+         NAME have VALUE in ARRAY, a temporary environment
+       - new function: bind_tempenv_variable (name, value), makes NAME have
+         VALUE in one of the temporary environments -- temporary_env,
+         builtin_env, or function_env
+       - changed bind_variable to call bind_tempenv_variable if one of the
+         temporary environments is non-null before modifying the
+         shell_variables table.  This fixes a problem with sourced scripts
+         modifying variables in a temporary environment, but not seeing the
+         updated values
+
+                                  1/12
+                                  ----
+variables.c
+       - changed things so OSTYPE, HOSTTYPE, and MACHTYPE are set only if
+         they don't have a value at shell startup
+
+                                  1/17
+                                  ----
+builtins/fc.def
+       - create temp file with MT_USETMPDIR
+
+variables.c
+       - allow function local readonly variables to overwrite (or shadow)
+         other (calling) function readonly variables, but not global
+         readonly ones
+
+builtins/wait.def
+       - replace unwind_protect of interrupt_immediately, since that's a
+         variable that you cannot unwind-protect (the unwind-protect code
+         uses it)
+
+                                  1/22
+                                  ----
+Makefile.in
+       - changed RELSTATUS to `beta1'
+
+lib/readline/terminal.c
+       - added rl_set_screen_size function, wrapper around
+         _rl_set_screen_size so bash doesn't call _rl_ functions
+
+lib/readline/{rlprivate,readline}.h
+       - moved rl_explicit_arg to readline.h
+       - moved rl_numeric_arg to readline.h
+       - moved rl_editing_mode to readline.h
+       - moved rl_last_func to readline.h
+       - added rl_set_screen_size to readline.h
+
+lib/readline/doc/rltech.texinfo
+       - documented rl_explicit_arg, rl_editing_mode, rl_numeric_arg,
+         rl_last_func
+       - documented rl_set_screen_size
+
+{jobs,nojobs}.c
+       - _rl_set_screen_size -> rl_set_screen_size
+
+{bashline,pcomplete}.c, builtins/set.def
+       - removed extern declarations of variables defined in readline.h
+
+                                  1/23
+                                  ----
+support/rlvers.sh
+       - use $TMPDIR if it's defined
+       - use $RL_INCDIR (set by -I option, /usr/local/include by default)
+         as the directory containing the installed readline header files
+       - cd to the temp directory before attempting compilation
+
+configure.in
+       - pass `-I ${includedir}' to rlvers.sh
+
+                                  1/29
+                                  ----
+subst.c
+       - fixed parameter_brace_expand to only throw away the state of
+         quoted dollar-at if we're going to be using the rhs of the
+         brace expansion, since whatever parameter_brace_expand_rhs sets
+         should be what goes (corrects bad fix of 2/16/2000)
+       - fixed param_expand to only free temp after calling
+         parameter_brace_expand if it's a quoted null and we *did not*
+         have a quoted $@, since in that case we want to keep it and
+         do the $@ special handling (fixes real problem from 2/16/2000)
+
+                                  1/30
+                                  ----
+variables.c
+       - remove export attribute from SSH2_CLIENT, like SSH_CLIENT
+
+                                   2/1
+                                   ---
+unwind_prot.c
+       - added new function, clear_unwind_protect_list, to zero out the
+         unwind_protect list, optionally freeing the elements
+
+unwind_prot.h
+       - new extern declaration for clear_unwind_protect_list
+
+execute_cmd.c
+       - call clear_unwind_protect_list in initialize_subshell.  This fixes
+         the problem of core dumps when calling a shell script without a
+         leading `#!' from a shell function or other context with an
+         unwind-protect list
+       - set variable_context and return_catch_flag to 0 in
+         initialize_subshell, since a new subshell is no longer in a shell
+         function
+
+                                   2/2
+                                   ---
+doc/readline.3
+       - updated the text; clarified several points
+       - changed the usage synopsis to include <readline/readline.h> and
+         <readline/history.h>
+
+lib/readline/doc/hstech.texinfo
+       - made sure all function prototypes are valid ANSI C (mostly
+         changing () to (void))
+
+lib/readline/doc/rluser.texinfo
+       - a few clarifications
+
+lib/readline/doc/rltech.texinfo
+       - a few clarifications
+       - added two new subsections for character input and terminal
+         management
+       - changed all function prototypes to be valid ANSI C (mostly
+         replacing () with (void))
+       - documented some variables in readline.h but previously not in
+         the reference manual (rl_num_chars_to_read, rl_dispatching,
+         rl_gnu_readline_p, rl_completion_type)
+       - documented some functions in readline.h but previously not in
+         the reference manual (rl_clear_pending_input, rl_prep_terminal,
+         rl_deprep_terminal, rl_tty_set_default_bindings, rl_alphabetic,
+         rl_crlf)
+
+lib/readline/readline.h
+       - added extern declaration for rl_clear_pending_input()
+       - added extern declaration for rl_alphabetic
+       - changed rltty_set_default_bindings to rl_tty_set_default_bindings
+       - changed crlf() -> rl_crlf()
+
+lib/readline/rltty.c
+       - new function, rl_tty_set_default_bindings, just calls
+         rltty_set_default_bindings (needed `rl_' prefix)
+
+lib/readline/readline.c
+       - readline_default_bindings now calls rl_tty_set_default_bindings
+
+lib/readline/terminal.c
+       - renamed crlf() to rl_crlf(); crlf() is still defined for backwards
+         compatibility 
+
+bashline.c, lib/readline/{complete,display}.c
+       - changed all calls to crlf() to rl_crlf()
+
+test.c
+       - fix filecomp() so that `test file1 -nt file2' doesn't fail if file1
+         exists but file2 does not
+
+                                   2/5
+                                   ---
+lib/readline/{terminal,compat}.c
+       - move crlf() backwards-compatibility definition to compat.c
+
+execute_cmd.c
+       - if we're running a command `( command ) &' from a non-interactive
+         shell, don't unconditionally disable expand_aliases.  Only do it
+         when running such a command from an interactive shell, since then
+         we're changing to a non-interactive shell
+
+                                   2/6
+                                   ---
+[bash-2.05-beta1 released]
+
+lib/readline/compat.c
+       - add extern declaration for rl_crlf()
+
+lib/readline/undo.c
+       - initialize start and end in rl_do_undo to avoid bogus gcc compiler
+         warning with -Wall
+
+lib/readline/rlprivate.h
+       - fix typo in extern declaration of _rl_current_display_line()
+       - add extern declaration of _rl_free_saved_history_line()
+
+lib/readline/terminal.c
+       - return immediately from _rl_set_screen_size if one of the args is 0
+       - new function, rl_get_screen_size (int *rows, int *cols) to return
+         readline's idea of the screen dimensions
+
+lib/readline/doc/rltech.texinfo
+       - documented rl_get_screen_size
+
+                                   2/7
+                                   ---
+pathexp.c
+       - a couple of fixes for the POSIX_GLOB_LIBRARY version of the globbing
+         code
+
+expr.c
+       - fixed omission of ^= from the special assignment operators
+
+shell.c
+       - change logic for setting `posixly_correct' at shell startup:  if
+         $POSIXLY_CORRECT or $POSIX_PEDANTIC is found in the environment,
+         set it to 1, otherwise retain the previous value (which is
+         initialized to 0)
+
+                                  2/10
+                                  ----
+builtins/evalstring.c
+       - since subshell_environment is now a flags word, test for the
+         SUBSHELL_COMSUB bit being set when decided whether or not to
+         evaluate $(<file), not just for subshell_environment ==
+         SUBSHELL_COMSUB
+
+                                  2/12
+                                  ----
+lib/readline/doc/rltech.texinfo
+       - fixed a couple of problems with the documentation for
+         rl_prep_terminal and rl_deprep_terminal 
+       - added description of rl_set_prompt
+
+support/config.sub
+       - added support for Linux running on the IBM S390
+
+                                  2/13
+                                  ----
+input.c
+       - new function, fd_is_bash_input (fd), encapsulates the test for
+         whether or not FD is the file descriptor from which bash is reading
+         its input
+       - change check_bash_input to call fd_is_bash_input
+       - new function, save_bash_input (fd, new_fd), handles saving the
+         buffered stream associated with file descriptor FD to one
+         associated with NEW_FD.  If NEW_FD == -1, this function allocates a
+         file descriptor itself with fcntl
+       - new function, set_bash_input_fd(fd), sets the fd bash is using to
+         read input to FD
+       - changed duplicate_buffered_stream to note that the buffer it's
+         duplicating to was the bash input buffer (B_WASBASHINPUT)
+
+input.h
+       - extern declarations for fd_is_bash_input and save_bash_input
+       - new flag for b->flag: B_WASBASHINPUT
+
+redir.c
+       - in add_undo_redirect, if FD is 0, make the undo redirect be of type
+         r_duplicating_input instead of r_duplicating_output, since that fd
+         requires special handling in the presence of buffered streams (fixes
+         problem with scripts reading input through a pipe restoring bash
+         input buffered stream correctly after a `read' with an input
+         redirection
+
+                                  2/14
+                                  ----
+lib/readline{complete,util}.c
+       - moved rl_strpbrk to util.c with rest of string utility functions,
+         renamed to _rl_strpbrk
+
+lib/readline/rlprivate.h
+       - extern declaration for _rl_strpbrk
+
+lib/readline/input.c
+       - make the timeout in rl_gather_tyi() be a variable
+         (_keyboard_input_timeout) rather than a constant
+       - new function, rl_set_keyboard_input_timeout (int u) to set
+         _keyboard_input_timeout.  The argument is in microseconds; returns
+         the old value of _keyboard_input_timeout
+       - _rl_input_available uses _keyboard_input_timeout also
+
+lib/readline/readline.h
+       - extern declaration for rl_set_keyboard_input_timeout
+
+lib/readline/doc/rltech.texinfo
+       - documented rl_variable_bind(), rl_macro_bind(), rl_macro_dumper(),
+         rl_variable_dumper(), rl_push_macro_input(), rl_show_char()
+
+                                  2/20
+                                  ----
+findcmd.c
+       - new function, executable_or_directory(name), returns 1 if NAME is
+         an executable file or a directory
+
+findcmd.h
+       - extern declaration for executable_or_directory()
+
+bashline.c
+       - call executable_or_directory() from command_word_completion_function,
+         which requires a single stat(2), instead of executable_file() and
+         is_directory(), each of which requires a stat(2)
+
+                                  2/21
+                                  ----
+execute_cmd.c
+       - changed execute_builtin to handle `return' with a preceding variable
+         assignment list specially when in POSIX mode.  POSIX says that the
+         variable assignments should persist after the builtin returns, since
+         `return' is a special builtin.  Since `return' does a longjmp and
+         doesn't go through the normal cleanup path, we need to do special
+         things
+
+variables.c
+       - new function, merge_function_env(), merges the function_env into
+         the shell_variables table
+
+variables.h
+       - extern declaration for merge_function_env()
+
+execute_cmd.c
+       - changed execute_function to merge any variable assignments preceding
+         the function call into shell_variables if the shell is running in
+         POSIX mode
+
+subst.c
+       - changed parameter_brace_expand_error to do tilde expansion on the
+         rhs of the expansion, if it's not null
+       - changed command_substitute so that the subshell begun to execute
+         the command substitution inherits the setting of the `-e' option
+         when in POSIX mode
+
+builtins/break.def
+       - changed check_loop_level to not print a complaining message when
+         the shell is running in POSIX mode, even if BREAK_COMPLAINS is
+         defined.  This affects `break' and `continue'
+       - changed `break' and `continue' to return success even if the shell
+         is not executing a loop, as POSIX specifies
+
+builtins/set.def
+       - changed reset_shell_options() to not clear posixly_correct, so
+         subshells spawned to execute shell scripts without a leading `#!'
+         inherit posix mode from their parent shell
+
+variables.c
+       - changed make_new_variable to create the shell_variables hash table
+         if it hasn't been done yet.  This is needed because bind_variable
+         may be called before initialize_shell_variables (e.g., when
+         `bash -o posix' calls bind_variable("POSIXLY_CORRECT", "y") from
+         parse_shell_options -> set_minus_o_option -> set_posix_mode
+         This makes `bash --posix' and `bash -o posix' equivalent, as they
+         should always have been
+       - changed maybe_make_export_env to merge the contents of `builtin_env'
+         into export_env after function_env and before temporary_env.  This
+         fixes the problems with variable assignments preceding `eval' or
+         `source' not making it into the environment passed to executed disk
+         commands (var=20 eval printenv var)
+
+doc/bashref.texi
+       - noted that variable assignments preceding shell function calls
+         persist in the shell environment after the function returns when
+         the shell is running in POSIX mode
+       - noted that when the shell is running in POSIX mode, subshells
+         spawned to execute command substitutions inherit the value of
+         the `-e' option from the parent shell
+
+                                  2/26
+                                  ----
+doc/bashref.texi
+       - augmented description of bash non-posix behavior in posix mode
+         with information from running the vsc-lite test suite
+
+                                  2/28
+                                  ----
+general.c
+       - since POSIX.2 says that aliases should be expanded even in
+         non-interactive shells, enable alias expansion in
+         posix_initialize() when posix mode is enabled, and set it to the
+         value of interactive_shell if posix mode is disabled
+
+shell.c
+       - before running the startup scripts, set expand_aliases to
+         posixly_correct, since we don't want alias expansion in startup
+         files unless we've been given the --posix invocation option
+
+doc/bashref.texi
+       - added item in BASH Posix Mode section noting that alias expansion
+         is always enabled when in posix mode
+
+Makefile.in
+       - changed release level to `beta2'
+
+                                   3/1
+                                   ---
+jobs.c
+       - expanded retcode_name_buffer to 64
+       - changed printable_job_status to conform to posix.2 for text of
+         stopped job status: `Stopped(SIGTSTP)' or `Stopped(SIGSTOP)'
+
+doc/bashref.texi
+       - Noted above change in posix mode section
+
+                                   3/5
+                                   ---
+lib/readline/bind.c
+       - changed rl_get_keymap_by_name to work case-insensitively
+
+                                   3/6
+                                   ---
+doc/readline.{0,3,ps}
+       - removed from distribution; moved to readline distribution
+
+lib/readline/doc/history.3
+       - man page for history library; neither built nor installed
+         (part of the standalone readline distribution)
+
+lib/readline/histfile.c
+       - changed history_truncate_file to return 0 on success, errno
+         on failure
+       - changed history_do_write to return errno on a write error.  This
+         affects write_history and append_history
+
+lib/readline/history.c
+       - max_input_history is now history_max_entries; the old variable is
+         maintained for backwards compatibility
+
+lib/readline/histexpand.c
+       - the list of delimiters that separate words for history_tokenize
+         is now a variable: history_word_delimiters; default value is as
+         before
+       - changed history_expand to return 0 immediately if its second
+         argument is NULL
+
+bashline.c
+       - changed to use history_max_entries
+
+lib/readline/history.h
+       - extern declaration for history_max_entries
+       - extern declaration for history_word_delimiters
+
+                                   3/8
+                                   ---
+test.c
+       - changed unary_operator() to return FALSE for non-numeric arguments
+         to `-t'
+
+                                   3/9
+                                   ---
+[bash-2.05-beta2 released]
+
+                                  3/12
+                                  ----
+lib/readline/doc/rltech.texinfo
+       - documented rl_set_paren_blink_timeout()
+       - moved the example function to its own info node
+
+lib/readline/{hstech.texinfo,history.3}
+       - `$' is not in the default value of history_word_delimiters
+
+                                  3/13
+                                  ----
+bashline.c
+       - in maybe_add_history, if the tests for HISTCONTROL succeed, but
+         the HISTIGNORE check fails, set first_line_saved to 0
+
+                                  3/15
+                                  ----
+
+lib/glob/fnmatch.c
+       - fixed a bug in patscan that caused `[' to be treated as special
+         even inside a nested bracket expression.  It's supposed to lose
+         it's special handling inside []
+       - fixed a bug in patscan that caused `]' to end an embedded bracket
+         expression even if it was the first character after the `[' (or
+         a leading `!' or `^')
+
+                                  3/22
+                                  ----
+execute_cmd.c
+       - made a small change to shell_execve to report a more user-friendly
+         error if execve(2) fails because of a `#! interpreter' error with
+         `interpreter'
+       - in shell_execve, if HAVE_HASH_BANG_EXEC is not defined, make sure
+         the file length is > 2 characters before attempting to execute an
+         interpreter
+
+                                  3/26
+                                  ----
+jobs.c, nojobs.c
+       - give_terminal_to now takes a second argument, FORCE.  If that
+         second argument is non-zero, give the terminal away no matter
+         what job_control is set to
+
+jobs.h
+       - changed extern declaration of give_terminal_to
+
+{jobs,sig,subst}.c,parse.y
+       - changed all calls to give_terminal_to to add a second argument
+         of 0
+
+jobs.c
+       - changed second argument of call to give_terminal_to in
+         end_job_control to 1, to force this even if job_control is 0.
+         This fixes the problem of `exec other-job-control-shell' in a
+         startup file hanging, since run_startup_files sets job_control to 0
+
+subst.c
+       - fixed test of subshell_environment in command_substitute to test the
+         bit SUBSHELL_ASYNC rather than test equality, since it's now a
+         bitmask
+
+                                  3/27
+                                  ----
+shell.c
+       - changed posix initialization calls to set POSIXLY_CORRECT=y and
+         then call sv_strict_posix, so $SHELLOPTS includes `posix' and
+         POSIXLY_CORRECT is set, for both the posix command line options
+         and when act_like_sh is non-zero
+
+redir.c
+       - the `>& filename' redirection now works in posix mode, redirecting
+         stdout and stderr, since POSIX.2 leaves it unspecified
+
+doc/bashref.texi
+       - removed item about `>& filename' from Bash POSIX Mode section
+
+parse.y
+       - fixed a problem in decode_prompt_string with `\W' not printing
+         anything if PWD == "//"
+
+lib/readline/input.c
+       - in rl_read_key, after calling (*rl_event_hook), check for rl_done
+         being set, and return '\n' if it is
+
+Makefile.in
+       - changed RELSTATUS to `release'
+
+                                  3/28
+                                  ----
+support/bashbug.sh
+       - replace use of $(...) with `...` for the benefit of old versions
+         of sh
+
+builtins/set.def
+       - changed print_all_shell_variables to not print shell function names
+         and definitions when in posix mode
+
+doc/bashref.texi
+       - noted change in `set' behavior in posix mode section
+
+                                   4/2
+                                   ---
+lib/readline/readline.c
+       - changed default value of RL_LIBRARY_VERSION to `4.2'
+
+                                   4/5
+                                   ---
+[bash-2.05-release frozen]