Imported from ../bash-2.05a.tar.gz.
[platform/upstream/bash.git] / CWRU / changelog
index 9126b6b..6782999 100644 (file)
-                               12/23/1996
-                               ----------
-[bash-2.0 released]
-
-                                  12/27
-                                  -----
-configure.in
-       - don't automatically use GNU malloc on FreeBSD, the builtin one
-         is supposed to be better (but doesn't have the debugging hooks)
+                                4/9/2001
+                                --------
+[bash-2.05 released]
 
-builtins/exec.def
-       - check that full_pathname(command) doesn't return NULL because of
-         inaccessible parent directories
+                                  4/10
+                                  ----
+redir.c
+       - check return value of fclose() in write_here_document() for error
+         returns; don't just rely on fwrite() failing
 
-support/config.sub
-       - recognize OpenBSD
+support/bashbug.sh
+       - set TMPDIR to /tmp if it's null or unset
+       - use $TMPDIR in the TEMP tempfile name template
+       - fixed the call to `mktemp', if it exists, to make it more portable
 
-execute_cmd.c
-       - broke the code that opens a file for output redirection when in
-         noclobber mode out into a separate function: noclobber_open().
-         This tries to avoid race conditions and file replacement between
-         stat(2) and open(2)
+jobs.c
+       - if WCONTINUED is not defined, define it to 0 and add a define for
+         WIFCONTINUED(wstatus) which expands to 0
+       - add WCONTINUED to the flags passed to waitpid(2) in waitchld()
+       - don't increment children_exited if waitpid's status is WIFCONTINUED,
+         since we don't want to call a SIGCHLD trap handler in this case
+       - in waitchld(), we set child->running to 1 if WIFCONTINUED(status)
+         is non-zero
+       - make sure pretty_print_job doesn't check for the core dump bit if
+         the process has been continued; it's only valid if the job is dead
+       - in set_job_status_and_cleanup, set the job to JRUNNING if job_state
+         is non-zero and the job was previously marked as JSTOPPED
 
-subst.c
-       - make sure pat_subst does not run off the end of its return
-         string when copying the unmatched portion of the input string
+configure.in
+       - add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS
 
-                                  12/30
-                                  -----
-doc/Makefile.in
-       - don't install readline.3 by default
+lib/glob/glob.c
+       - if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1
 
-lib/tilde/tilde.c
-       - removed an unnecessary check for string[i] being non-null in
-         tilde_find_suffix
+jobs.c
+       - in kill_pid, we only need to block and unblock SIGCHLD if the
+         `group' argument is non-zero, since otherwise we just call `kill'
+         on the pid argument
 
-                                  12/31
-                                  -----
-support/config.{sub,guess}
-       - merged in changes from config.sub in autoconf-2.12 distribution
+version.c
+       - update copyright date to 2001
 
-lib/readline/readline.c
-       - in rl_newline, only call _rl_vi_done_inserting and _rl_vi_reset_last
-         if readline is currently in vi mode
+bashline.c
+       - prog_complete_return needs to take a `const char *' as its first
+         argument
+       - history_completion_generator needs to take a `const char *' as
+         its first argument, and `text' needs to be a `const char *'
 
-lib/readline/display.c
-       - corrected a misuse of inv_lbreaks where vis_lbreaks was wanted in
-         the code that decides whether the cursor is at the beginning of
-         an otherwise-empty line
+                                  4/11
+                                  ----
+redir.c
+       - fixed a weird typo in redir_special_open, case RF_DEVFD, added
+         call to all_digits before call to legal_number
+       - fixed do_redirection_internal to call legal_number instead of atol(3)
+         when translating r_duplicating_{in,out}put_word, so it handles
+         overflow better
+       - produce an error message in redirection_error for out-of-range
+         file descriptors
+       - change allocation strategy in redirection_error so we don't have to
+         malloc scratch memory if redirection_expand() fails
 
-                                1/2/1997
-                                --------
-support/bashbug.sh
-       - fixed a typo, thanks to eggert@twinsun.com
+jobs.h
+       - added defines for `running' member of a struct process
 
-aclocal.m4
-       - new test, BASH_STRUCT_DIRENT_D_FILENO, testing for d_fileno member
-         of struct dirent
+general.c
+       - fix legal_number to return 0 when strtol(3) reports overflow or
+         underflow
 
-configure.in
-       - call BASH_STRUCT_DIRENT_D_FILENO
+parse.y
+       - changed read_token_word to call legal_number instead of atoi(3)
 
-config.h.in
-       - new #define for STRUCT_DIRENT_HAS_D_FILENO
+input.c
+       - return -1/EBADF from close_buffered_fd if fd is < 0
 
-lib/posixheaders/posixdir.h
-       - only define d_fileno as d_ino if STRUCT_DIRENT_HAS_D_INO is defined
-         and STRUCT_DIRENT_HAS_D_FILENO is not defined.  This fixed the
-         problem of compiling getcwd.c on SunOS4.1.4 with cc
+command.h
+       - fixed bogus comment about IS_DESCRIPTOR in description of the
+         REDIRECTEE struct
 
-                                   1/3
-                                   ---
-lib/readline/complete.c
-       - fix a memory-used-after-freed bug reported by Andreas Schwab
+print_cmd.c
+       - change cprintf's 'd' modifier code to display negative numbers as
+         an out-of-range value.  We can do this only because the only use
+         of %d is to output file descriptor numbers in redirections
 
-configure.in
-       - call BASH_CHECK_SOCKLIB only if getpeername is not found in libc
-         (ac_cv_func_getpeername = no)
+support/mksignames.c
+       - need to include config.h to get a possible value for
+         UNUSABLE_RT_SIGNALS
 
-                                  1/13
+                                  4/16
                                   ----
+lib/readline/doc/rluser.texinfo
+       - corrected a small error in one description of M-DEL
 
-builtins/getopt.h
-       - change #define guard to _SH_GETOPT_H to avoid similar guards in
-         /usr/include/getopt.h (Dec OSF/1 4.x, for example)
-
-variables.h
-       - fix assign_array_from_string so that it rejects attempts to assign
-         to readonly variables
-
-subst.c
-       - fix verify_substring_values to handle offsets that are past the
-         end or before the beginning (in the case of a negative offset)
-         of the expanded variable value
-
-                                  1/14
+                                  4/17
                                   ----
-bashline.c
-       - fix a problem where any completion after a `cmd` command
-         substitution would inappropriately attempt command completion,
-         even if the previous command substitution was correctly closed
-
-builtins/evalstring.c
-       - unwind_protect remember_on_history even if the shell is not
-         interactive, since history can now be used in scripts, and
-         `source' will turn off interactive_shell before calling
-         parse_and_execute
+stringlib.c
+       - need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER
+         in strcreplace()
 
-jobs.c
-       - new function get_job_by_pid(pid, block) to translate a pid to
-         a job number.  The block argument says whether or not to block
-         SIGCHLD
+support/bashversion.c
+       - new file, prints bash version information
 
-jobs.h
-       - new extern declaration for get_job_by_pid
+Makefile.in
+       - rules for building bashversion and linking it to version.o
 
-builtins/jobs.def
-       - call get_job_by_pid if an argument appears to be a pid rather
-         than a jobspec
+                                  4/24
+                                  ----
+conftypes.h
+       - new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from
+         variables.h
 
-configure.in
-       - configure --without-gnu-malloc automatically on MachTen 4.x
+variables.h, version.c
+       - include conftypes.h
 
-builtins/cd.def
-       - change to mindist() so that a best guess of `.' returns 3,
-         which means not reasonable
+patchlevel.h
+       - new file, contains define for PATCHLEVEL.  Doing away with the old
+         scheme of having the information in configure.in
 
-lib/posixheaders/memalloc.h
-       - changed hpux_9 to __hpux, since the new config stuff doesn't
-         define hpux_9
+version.c
+       - include patchlevel.h
 
-subst.c
-       - fix parameter_brace_patsub to handle null patterns (doesn't
-         do anything)
+Makefile.in
+       - run bashversion -p to find patch level rather than have configure
+         substitute in a value
+       - pass -S ${top_srcdir} to support/mkversion.sh
 
-oslib.c
-       - slight change to bzero replacement
+support/mkversion.sh
+       - don't put PATCHLEVEL define into version.h, but accept and ignore
+         a -p option
+       - take a new -S srcdir option
+       - find the patch level by parsing it out of patchlevel.h
 
-support/bashbug.sh
-       - changed TEMP to be /tmp/bbug.$$ as a sop to systems with 14-char
-         file names
+configure.in
+       - hard-code BASHVERS assignment instead of reading it from a file
+       - remove BASHPATCH; don't substitute it
 
-doc/bashref.texi
-       - add note to POSIX Mode section that the output of `set' when
-         invoked without arguments is sorted when in POSIX mode
+_distribution,_patchlevel
+       - removed
 
-                                  1/15
+                                  4/26
                                   ----
-support/recho.c
-       - a couple of changes prompted by a `gcc -Wall'
-
-subst.c
-       - changed ASSIGN_RETURN macro to use the do...while(0) idiom to
-         avoid problems with its multiple statements
+shell.c
+       - call init_noninteractive() in open_shell_script if forced_interactive
+         is non-zero (the shell was started with -i) and fd_is_tty is 0
+         (the script file is a real file, not something like /dev/stdin),
+         since it wasn't done earlier
 
-builtins/setattr.def
-       - a bad identifier given to readonly or export without an assignment
-         statement (e.g. `readonly a[5]') is an error, but not an assignment
-         error (i.e., return EXECUTION_FAILURE rather than EX_BADASSIGN)
+builtins/printf.def
+       - change for POSIX.2 compliance when conversion errors are encountered
+         when processing %d, %u, and floating point conversion operators
+         (print a warning message, return the value accumulated at the time
+         of the error -- which is always 0 -- and exit with a non-zero status)
 
-tests/{{array,new-exp}.,tilde-}tests
-       - added `set +o posix' at the beginning to disable POSIX mode, which
-         causes some of the tests to fail.  Some systems (e.g. LINUX-FT),
-         set POSIXLY_CORRECT by default
+command.h
+       - added CMD_COMMAND_BUILTIN for use by the `command' builtin and the
+         code in execute_cmd.c
 
-tests/test-tests
-       - added a warning if $UID is 0 to the effect that the test suite
-         should not be run as root
-       - worked around the `noread' and `nowrite' tests failing when run
-         as root
+builtins/command.def
+       - add CMD_COMMAND_BUILTIN to the created command's flags
 
-test.c
-       - began removing the remains of the STANDALONE code, since test is
-         included in GNU shellutils
+                                   5/1
+                                   ---
+configure.in
+       - add call to AC_C_CONST to test `const' compiler behavior
+       - add call to AC_C_INLINE to test `inline' compiler behavior
+       - add call to AC_C_STRINGIZE to test cpp #x stringizing operator
 
-                                  1/16
-                                  ----
-lib/readline/{readline,display}.c
-       - a couple of slight changes to build on Win95 using djgpp (reported
-         by x-aes@telelogic.se)
+config.h.in
+       - add `#undef const' for configure to substitute
+       - add `#undef inline' for configure to substitute
+       - add `#undef HAVE_STRINGIZE' for configure to substitute
 
-Makefile.in
-       - changed TERMCAP_LIBDIR to TERM_LIBDIR, so building the termcap
-         library (if necessary) should work now
+include/stdc.h
+       - remove code that defines or undefines `const' and `inline'
+       - change the __STRING macro to be defined depending on the value
+         of HAVE_STRINGIZE
 
-bashline.c
-       - new function: quote_word_break_characters(), to backslash-quote 
-         characters in a filename that the readline completion code would
-         treat as word breaks
-       - change bash_quote_filename to call quote_word_break_characters if
-         the completion quoting style says to use backslashes
-       - add `:' to rl_filename_quote_characters, since it's part of
-         filename_word_break_characters
-
-lib/posixheaders/posixjmp.h
-       - new file, with half of bashjmp.h
-       - posixjmp.h and lib/readline/posixjmp.h are symlinks to this file
-
-bashjmp.h
-       - include "posixjmp.h" for possible redefinitions of setjmp/longjmp
-         and procenv_t
-
-                                  1/17
-                                  ----
-shell.c
-       - bad options now cause the standard shell usage message (a subset
-         of what `bash --help' prints) to be displayed on stderr
+lib/malloc/malloc.c
+       - change the __STRING macro to be defined depending on the value
+         of HAVE_STRINGIZE
 
-trap.c
-       - don't free the trap command for a DEBUG trap in
-         restore_default_signal if SIG_INPROGRESS is set -- there's already
-         a pointer saved to the old value in _run_trap_internal.  This
-         makes bashdb run better, too
+lib/readline/{readline,rlprivate}.h
+       - moved rl_get_termcap to readline.h, making it a public function
 
-examples/bashdb/bashdb.{pre,fns}
-       - a couple of minor fixes; it actually has a chance of working now
+lib/readline/readline.h
+       - new #define, RL_READLINE_VERSION, hex-encoded library version
+         number, currently set to 0x0402
+       - new public int variable, rl_readline_version
 
-                                  1/21
-                                  ----
-config.h.in
-       - add a define for <dlfcn.h>, HAVE_DLFCN_H
+lib/readline/readline.c
+       - #define RL_READLINE_VERSION if it is not already defined (which it
+         should be in readline.h)
+       - initialize rl_readline_version to RL_READLINE_VERSION
 
-configure.in
-       - look for <dlfcn.h>, define HAVE_DLFCN_H if found
+lib/readline/doc/rltech.texinfo
+       - documented rl_get_termcap
+       - documented rl_readline_version
 
-builtins/enable.def
-       - include <dlfcn.h> only if HAVE_DLFCN_H is defined
+jobs.c
+       - job_exit_status should return an int, not a WAIT (undetected
+         before because on most POSIX-like systems a WAIT is really an int)
 
-lib/readline/display.c
-       - renamed clear_to_eol to _rl_clear_to_eol and made it global, so
-         other library files (readline.c) can use it
-       - new function _rl_clear_screen, to clear the screen with the right
-         termcap escape sequence
+builtins/evalfile.c
+       - added FEVAL_REGFILE (file must be a regular file) to accepted
+          _evalfile flags
+       - fc_execute_file() adds FEVAL_REGFILE to _evalfile flags.  This
+         means that startup files and files read with `.' no longer need
+         to be regular files
 
-lib/readline/readline.c
-       - call _rl_clear_to_eol and _rl_clear_screen instead of using tputs
-       - extern declarations for _rl_clear_to_eol and _rl_clear_screen
+                                   5/2
+                                   ---
 
-                                  1/22
-                                  ----
-mailcheck.c
-       - fixed a problem in make_default_mailpath() where a slash was not
-         added between the default mail directory and the username
+lib/termcap/Makefile.in
+       - fix target for installed termcap library (normally unused)
 
-                                  1/23
-                                  ----
-stringlib.c
-       - added a fourth parameter to ansicstr: the length of the returned
-         string
+lib/tilde/Makefile.in
+       - fix install target to install in $(libdir) (normally unused)
 
-externs.h
-       - changed declaration of ansicstr
+Makefile.in
+       - don't make $(man3dir) since there's nothing installed there
 
-parse.y
-       - changed call to ansicstr -- saves a call to strlen
+Makefile.in,doc/Makefile.in
+       - change `man1ext' to `.1', `man3ext' to `.3'
+       - change appropriate install targets to use new values of man[13]ext
+       - use `test ...' instead of `[...]'
+       - add support for DESTDIR root installation prefix, for package
+         building (installdirs, install, install-strip, uninstall targets)
 
-builtins/echo.def
-       - changed call to ansicstr
-       - if do_v9 is non-zero, use putchar to output the string instead
-         of printf, since there may be embedded NULL characters
+builtins/common.c
+       - new function int get_exitstat(WORD_LIST *list) returns an eight-bit
+         exit status value for use in return, exit, logout builtins
 
-doc/{bash.1,bashref.texi}, builtins/trap.def
-       - modified the `trap' documentation to make it clearer that trap
-         takes multiple signal specs as arguments
+builtins/common.h
+       - extern declaration for get_exitstat()
 
-jobs.c, nojobs.c, jobs.h
-       - renamed initialize_jobs to initialize_job_control, added an
-         argument (force)
+builtins/{exit,return}.def
+       - call get_exitstat where appropriate
 
-jobs.c
-       - set shell_tty to fileno(stderr) in initialize_job_control if
-         the shell is not interactive.  This fixes the problem of bad
-         tty pgrps when monitor mode is turned on in a non-interactive
-         shell
-
-sig.c
-       - made initialize_terminating_signals do only that; moved the rest
-         of the code that used to be there into a new function:
-         initialize_shell_signals, which calls initialize_terminating_signals
-         if the shell is interactive
-       - initialize_terminating_signals is now extern
-       - made reset_terminating_signals return immediately if
-         termsigs_intitialized is zero, meaning that
-         initialize_terminating_signals has not been called
-
-sig.h
-       - new extern declaration for initialize_terminating_signals
+builtins/printf.def
+       - add support for "'" flag character as posix 1003.2-200x d6 says
+       - fix core dump when user-supplied field width or precision is 0
+       - fix to printstr() to handle zero-length precision with `%b' format
+         specifier (printf '%.0b-%.0s\n' foo bar)
+       - fix to printstr() to treat a negative field width as a positive
+         field width with left-justification
+       - fix to mklong to avoid static buffers, which can always be overrun
+         by someone sufficiently motivated
 
-trap.c
-       - call initialize_terminating_signals from set_signal if sig is
-         EXIT_TRAP and the shell is not interactive.  Since the terminating
-         signals do not need to be initialized until a trap on exit is
-         set, not doing that at startup should result in a speed increase
-         for scripts
+bashline.c
+       - change var in add_host_name to type `size_t' for passing to xrealloc
 
+                                   5/3
+                                   ---
 execute_cmd.c
-       - save and restore command->flags in time_command, so you can use
-         `time command' in a loop
-
-                                  1/24
-                                  ----
-lib/readline/display.c
-       - fix redisplay code to wrap correctly if the prompt is longer than
-         the screen width (reported by bos@Eng.Sun.COM)
+       - change restore_signal_mask to accept a sigset_t *, since a sigset_t
+         may not fit into a pointer, change call
 
-lib/readline/undo.c
-       - don't include <setjmp.h>, it's not needed
+unwind_prot.c
+       - use a union UWP in restore_variable when restoring a variable whose
+         size is the same as sizeof(int), the reverse of the method used to
+         store it in unwind_protect_int
 
-lib/readline/{util,readline}.c
-       - include "posixjmp.h" instead of <setjmp.h>
-       - readline_top_level is now a `procenv_t' instead of a `jmp_buf'
-         (now readline uses the correct posix semantics for preserving
-         the signal mask and other things across longjmp)
+builtins/printf.def
+       - use a #define LENMODS containing the length modifiers instead of
+         testing against each possible modifier character, save any mod
+         character found
+       - add support for ISO C99 length specifiers `j', `t', and `z'
+       - if `L' modifier is supplied with a floating point conversion char,
+         pass a `long double' to printf if HAVE_LONG_DOUBLE is defined
 
-parse.y
-       - fixes to push_string/pop_string to make them more general -- they
-         now can be used generally, instead of having to be associated
-         with an alias being expanded
-       - fixes to the parser so that it parses (( ls abc; ls def); ls ghi)
-         as a nested subshell command for backwards compatibility.  Broke
-         the double-paren expression parsing off into a new function:
-         parse_arith_cmd, called from read_token when a `((' is seen.  If
-         it looks like an arithmetic command, return `let' and set things
-         up so that the expression is returned as a double-quoted string
-         by the next call to read_token.  If it's a nested subshell, push
-         the text we parsed onto the list of strings for later consumption
-         and return `('
+configure.in,config.h.in
+       - call AC_C_LONG_DOUBLE to check for `long double'; define
+         HAVE_LONG_DOUBLE if supported
 
-lib/glob/glob.c
-       - fix glob_vector so it doesn't short-circuit checking a filename if
-         it starts with a `.' and the pattern starts with `\.' (if
-         noglob_dot_filenames is set).  This makes `".junk2"*' match
-         `.junk2.txt' correctly
+bashline.c
+       - fix an inadvertantly-unclosed comment in attempt_shell_completion
+       - make set_saved_history return a value
+       - make dynamic_complete_history return a useful value
 
-                                  1/27
-                                  ----
-support/bashbug.sh
-       - ask for confirmation before sending the bug report
+{make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test,
+pcomplete}.c
+       - removed some declared-but-unused variables
 
-builtins/fc.def
-       - when editing and re-executing a multiline command, make sure
-         current_command_line_count is initialized and then incremented
-         for each line read from the file so that the lines added to
-         the history list by fc_replhist and fc_addhist obey the `lithist'
-         and `cmdhist' shopt options.  Reported by tibbitts@pb.seflin.org
+builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def
+       - removed some declared-but-unused variables
 
-                                  1/28
-                                  ----
-lib/readline/readline.h
-       - added a couple of extern declarations for variables described in
-         the documentation but heretofore undeclared
+lib/sh/{zread,netopen}.c
+       - removed some declared-but-unused variables
 
-builtins/ulimit.def
-       - try to catch some classes of integer overflows before calling
-         set_limit
+execute_cmd.c
+       - in execute_arith_command, use a long variable to hold the result
+         of evalexp(), since that's what it returns
 
-                                  1/29
-                                  ----
-parse.y
-       - push and pop a `(' delimiter while parsing a $(...) construct, so
-         the history code doesn't try to inappropriately add a `;' when
-         a newline appears in the `...'
+builtins/evalstring.c
+       - make cat_file return -1 on a read or write error
 
-aclocal.m4
-       - new macro, BASH_STRUCT_WINSIZE, which looks for `struct winsize'
-         in <sys/ioctl.h> (or one of the files it includes)
+lib/sh/stringlib.c
+       - make merge_stringlists() return the right value
 
-configure.in
-       - call BASH_STRUCT_WINSIZE
-       - slightly reorganized the calls to bash-specific macros
+                                   5/7
+                                   ---
+pcomplete.c
+       - remove typo that caused empty declaration (;;)
 
-config.h.in
-       - add an `#undef STRUCT_WINSIZE_IN_SYS_IOCTL'
+parse.y
+       - fix yyerror() to accept a single string argument; fix callers
 
-jobs.c, nojobs.c
-       - only look in sys/ptem.h for struct winsize if
-         STRUCT_WINSIZE_IN_SYS_IOCTL is not defined to cpp
+trap.c
+       - cast pointer to long instead of int when printing message with
+         internal_warning() in run_pending_traps()
 
-                                  1/30
-                                  ----
-.{distribution,patchlevel}
-       - renamed to _{distribution,patchlevel}
+subst.c
+       - fix process_substitute to handle stdin being closed
 
-configure.in
-       - create a variable BASHVERS, from the contents of _distribution,
-         and a variable BASHPATCH, from the contents of _patchlevel,
-         (using m4 magic so we don't have to distribute .distribution
-         and .patchlevel) and substitute them into Makefile.in
+test.c
+       - change `while' to `if' in and() and or(), since the loop isn't
+         actually performed -- there's an unconditional `return' in the
+         loop body
+       - check for integer overflow of arguments to `-t'
 
-Makefile.in
-       - use Version and PatchLevel variables instead of the contents of
-         .distribution and .patchlevel, respectively.  These are set by
-         configure
-       - removed `.machine' from targets and dependencies
+lib/sh/netopen.c
+       - change _getserv() to reject negative port/service numbers
 
-support/mkversion.sh
-       - new shell script to handle updating version.h, replaces mkversion.c
-         (which is now overkill)
+expr.c
+       - fix strlong() to not convert the base specification from long to
+         int before checking for overflow, since truncation on machines
+         where sizeof(int) != sizeof(long) may mask errors
 
-support/mkdist
-       - don't bother with writing .distribution and .patchlevel files,
-         since they're no longer distributed
+builtins/{jobs,kill,wait}.def
+       - use legal_number instead of atoi when converting strings to pid_t;
+         check for numeric overflow
 
-support/mknewvers.sh
-       - simple bash script to make new version files.  It can increment
-         the major or minor version numbers or patchlevel, or take a
-         completely new version number (e.g., 2.01) as an argument
+input.c
+       - fix for cygwin in b_fill_buffer -- off-by-one error when checking
+         buffer for \r\n termination
 
-doc/Makefile.in
-       - added support for the `install-info' command to update the info
-         directory file after installing bash.info
+general.h
+       - new #define INT_STRLEN_BOUND(t), computes max length of string
+         representing integer value of type T, possibly including a sign
+         character
+       - include <limits.h> if it's present
 
-                                  1/31
-                                  ----
-builtins/help.def
-       - fix core dump with `help --'
+{execute_cmd,findcmd,test}.c
+       - don't include <limits.h>, since general.h does it now
 
-susbt.c
-       - make call_expand_word_internal obey the convention that if
-         expand_word_internal returns &expand_word_{fatal,error}, then
-         w->word has already been freed
-       - return &expand_word_fatal from expand_word_internal if the shell
-         is not interactive and `set -u' has been executed
+{execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c
+       - use INT_STRLEN_BOUND instead of static array sizes when converting
+         various strings to integer values
 
-test.c, general.c
-       - moved group_member from test.c to general.c
+shell.h
+       - struct fd_bitmap now uses an `int' size, since it's bounded by
+         the number of file descriptors, which must fit into an `int'
 
-externs.h, general.h
-       - moved extern declaration of group_member from externs.h to general.h
+execute_cmd.c
+       - FD_BITMAP_DEFAULT_SIZE is now 32, not 32L
+       - new_fd_bitmap takes an `int' size parameter, not a `long'
 
-general.c
-       - broke the code that initializes the group array out into a new
-         function, initialize_group_array()
-       - initialize_group_array() now initializes an array even if the OS
-         does not have getgroups().  If it does not, an array with one
-         element (the real gid) is created
-       - call sysconf(_SC_NGROUPS_MAX) if sysconf is available and
-         _SC_NGROUPS_MAX is defined
-       - new function, char **get_group_list(int *), to return an array
-         of strings made from the groups list
+execute_cmd.h
+       - change prototype for new_fd_bitmap()
 
-variables.c
-       - new dynamic array variable: GROUPS, expands to the group set as
-         obtained with getgroups() (or whatever initialize_group_array()
-         makes)
+test.c
+       - fix test_stat to check for overflow when parsing the integer file
+         descriptor number; return ENOENT instead of EBADF for files that
+         are not open
 
-doc/{bash.{1,html},bashref.texi}
-       - added description of GROUPS variable
+hashlib.c
+       - don't discard the upper 32 bits of the random value, if present
 
-test/test-tests
-       - before modifying the setgid bit on /tmp/setgid, try to change its
-         group to ${GROUPS[0]} 
+lib/readline/shell.c
+       - use the same INT_STRLEN_BOUND mechanism to decide how much space to
+         allocated in sh_set_lines_and_columns
 
-                                   2/3
+                                   5/8
                                    ---
 aclocal.m4
-       - new autconf macro, BASH_MISC_SPEED_T, to see if speed_t is defined
-         in <sys/types.h>
+       - add check for libtinfo (termcap-specific portion of ncurses-5.2) to
+         BASH_CHECK_LIB_TERMCAP
+       - new macro, RL_LIB_READLINE_VERSION, checks version of installed
+         readline library and (optionally) writes version #defines to
+         config.h.  Bash doesn't use the version defines
 
 configure.in
-       - call BASH_MISC_SPEED_T
+       - call RL_LIB_READLINE_VERSION instead of support/rlvers.sh
 
-config.h.in
-       - add `#undef SPEED_T_IN_SYS_TYPES'
+execute_cmd.c
+       - fix execute_shell_script and the WHITECHAR and STRINGCHAR macros
+         to check array bounds before indexing into the sample string
 
-lib/readline/tcap.h
-       - include `rltty.h' if HAVE_TERMCAP_H and __linux__ are defined, but
-         SPEED_T_IN_SYS_STYPES is not, before including <termcap.h>
+unwind_prot.[ch]
+       - import new versions submitted by Paul Eggert <eggert@twinsun.com>
+         with a couple of changes for backwards compatibility, so the rest
+         of the source doesn't need to be changed yet
 
-support/mksignames.c, siglist.c
-       - add support for 4.4 BSD SIGLOST
+jobs.c
+       - use unwind_protect_var on last_made_pid in run_sigchld_trap
 
-support/config.guess
-       - add support for recognizing QNX based on `uname' output
+builtins/bind.def
+       - use unwind_protect_var on rl_outstream
 
-Makefile.in
-       - make sure recho and zecho are compiled with the same set of CC
-         options as the rest of the sources
+general.c
+       - rework print_rlimtype to use INT_STRLEN_BOUND and handle the
+         most negative number correctly
 
-lib/readline/bind.c
-       - change calls to rl_generic_bind to cast the third argument to
-         (char *) where necessary
+expr.c
+       - `tokval' should have been a `long', since all arithmetic is done
+         as longs
 
-command.h
-       - two new flags: CMD_AMPERSAND (currently unused), and CMD_STDIN_REDIR,
-         which means that this command should have its standard input
-         redirected from /dev/null if there are not any explicit redirections
-         to stdin
+builtins/history.def
+       - consolidate tests for valid history position in one block to
+         avoid duplicate code and strings
 
-execute_cmd.c
-       - a redirection of type r_inputa_direction is no longer added at the
-         beginning of the redirection chain for an async command;
-         CMD_STDIN_REDIR is set in the flags instead
-       - new function: stdin_redirects: returns the number of redirections to
-         stdin in a chain of redirections
-       - new functions: async_redirect_stdin() to open /dev/null and make it
-         file descriptor 0
-       - changes to make CMD_STDIN_REDIR propagate to all of the necessary
-         functions (like execute_simple_command)
-       - execute_disk command now takes the flags from simple_command rather
-         than just the CMD_NO_FORK flag as its last argument
-       - various places after make_child is executed (in the child) check for
-         CMD_STDIN_REDIRECT (and no stdin redirections or piping) and call
-         async_redirect_stdin
-       - stdin_redir is now global
+builtins/ulimit.def
+       - fix check for overflow when setting limit to work when int is 32
+         bits and RLIMTYPE is 64
 
-eval.c
-       - set stdin_redir to 0 just before calling execute_command so it
-         gets reset to a known value and doesn't persist across commands
+lib/sh/tmpfile.c
+       - don't truncate the result of time(3) to int; just use time_t,
+         since it's being assigned to an `unsigned long'
+
+mailcheck.c
+       - use legal_number instead of atoi in time_to_check_mail() to catch
+         more numeric errors; consolidate error checking in one block
+       - last_time_mail_checked should be a time_t
 
-                                   2/4
+                                   5/9
                                    ---
-builtins/ulimit.def
-       - add a stub function for ulimit(2) on systems without HAVE_RESOURCE
-         or HAVE_ULIMIT that just sets errno to EINVAL and returns -1 --
-         QNX is one such system
+builtins/set.def
+       - recognize `set [-+]o nolog' if HISTORY is defined
 
-bashhist.c
-       - pre_process_line needs to protect all occurrences of hist_verify
-         with #ifdef READLINE
+bashline.c
+       - new variable `dont_save_function_defs', set by `set -o nolog';
+         currently ignored
 
-builtins/shopt.def
-       - hist_verify needs to be protected with #ifdef READLINE, not
-         #ifdef HISTORY
+command.h
+       - the `dest' member of a REDIRECTEE is now an `int'
 
-                                   2/5
-                                   ---
-support/config.{guess,sub}, configure.in
-       - chages to better support the Harris Night Hawk
+parse.y,redir.c
+       - changed uses of `redir.test' (where redir is a REDIRECTEE) since
+         it's now an int
+
+lib/readline/rlstdc.h
+       - don't mess around with `const', rely on configure to supply a
+         proper definition if the compiler doesn't support it
 
-[many files]
-       - changes for things pointed out by gcc -Wall
+lib/tilde/tilde.h
+       - include <config.h> if HAVE_CONFIG_H is defined
+       - don't mess around with `const', rely on configure
 
-lib/glob/Makefile.in
-       - make sure -DSHELL is included in CCFLAGS so that globbing is
-         interruptible
+builtins/shopt.def
+       - new read-only `shopt' option, login_shell, non-zero if shell is a
+         login shell (as decided by shell.c)
+       - new function set_login_shell(), sets shopt private value of
+         login_shell
 
-lib/malloc/malloc.c
-       - extern declaration for botch: if botch is #defined, it should be
-         the name of a void function
+builtins/common.h
+       - new extern declaration for set_login_shell
 
-configure.in,Makefile.in,builtins/Makefile.in,
-lib/{glob,malloc,readline,tilde}/Makefile.in
-       - add a LOCAL_DEFS variable, substituted from configure into the
-         various Makefiles.  It's set to -DSHELL, so that define gets
-         passed to all sub-makes without doing anything special
+shell.c
+       - call set_login_shell after setting value of login_shell (in
+         main() and set_shell_name())
 
-lib/readline/readline.c
-       - change to rl_digit_loop to make it compatible with GNU emacs:
-         if a key bound to `universal-argument' is read after reading
-         some digits, it terminates the argument but is otherwise
-         ignored.  This is how people can insert repeated digits
+parse.y
+       - added new `\A' prompt string escape sequence:  time in 24-hour
+         HH:MM format
 
-doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
-       - changed description of `universal-argument' to describe how
-         to terminate a numeric argument
+configure.in, config.h.in
+       - check for <grp.h>, define HAVE_GRP_H if found
 
-                                   2/6
-                                   ---
-jobs.c
-       - changed kill_pid to diddle the job and process data structures
-         if we're sending SIGCONT to a stopped job with `kill' so that
-         the shell knows the job is running again.  ksh93 does this
+builtins/complete.def
+       - add new `-A group/-g' option to complete group names
 
-                                   2/7
-                                   ---
-unwind_prot.c
-       - changed bcopy to FASTCOPY
+pcomplete.h
+       - new define for CA_GROUP, used with group name completion
 
-builtins/enable.def
-       - changed pointer arithmetic in delete_builtin to just subtract
-         the head of the builtins list (shell_builtins) from a pointer
-         to the builtin to be deleted (b) to find its index in the list
-         on ANSI C systems
+pcomplete.c
+       - add code to support CA_GROUP group name completion
 
-                                  2/10
-                                  ----
-lib/readline/bind.c
-       - when using old-style keynames to bind to a new-style macro,
-         pass an array of type (unsigned char *) to rl_macro_bind
+bashline.c
+       - new function, bash_groupname_completion_function(), supports
+         programmable completion of group names
 
-builtins/getopt.c
-       - change sh_getopt to return EOF if nextchar is empty or NULL
-         and sh_optind is greater than argc.  This can happen if a
-         script mixes calls to `getopts' with calls to `shift'
+bashline.h
+       - extern declaration for bash_groupname_completion_function
 
-                                  2/11
-                                  ----
-print_cmd.c
-       - fixed make_command_string_internal so that commands with the
-         CMD_TIME_POSIX flag set print `time -p' instead of `time'
-       - changed print_redirection_list so the here documents are
-         printed after all the other redirections, and followed by a
-         newline (rather than a possible semicolon)
-       - added a new variable, was_heredoc, to avoid adding a semicolon
-         at the beginning of an empty line after printing the heredoc
-         ending delimiter
+lib/readline/bind.c
+       - new inputrc variable, `match-hidden-files', controls completion
+         matching files beginning with a `.' (on Unix)
 
-execute_cmd.c
-       - don't put the gnu_argv_flags into the environment any more; it's
-         proven to be a bad idea
+lib/readline/complete.c
+       - new variable, _rl_match_hidden_files, mirrors `match-hidden-files'
+         inputrc variable
 
-configure.in
-       - set LOCAL_CFLAGS to `-DSunOS5' on Solaris 5.5[.x]
+lib/readline/rlprivate.h
+       - extern declaration for _rl_match_hidden_files
 
-builtins/echo.def
-       - only call fflush() after printing each word on SunOS 5.5, since
-         that's the system with the bug that prompted its inclusion in
-         the first place
+builtins/hash.def
+       - new `-t' option to list hash values for each filename argument
 
-support/mksignames.c
-       - added support for more system-specific signals from AIX 4.2,
-         changed initialization order so that system-specific signals
-         are done first, before the common signals
+builtins/read.def
+       - alarm(3) takes an `unsigned int' argument, not int
+       - check for arithmetic overflow with -t and -n options
 
-                                  2/12
-                                  ----
-execute_cmd.c
-       - broke the code that creates a file containing the text of a
-         here document out into a separate function: here_doc_to_fd
-       - create the temp file used for a here document with mode 600
-       - open the temp file used for a here document with O_EXCL
+input.c
+       - check for read error before doing \r\n translation on cygnus in
+         b_fill_buffer
+       - reset bp->b_used to 0 instead of leaving it at -1 on read error
+         in b_fill_buffer
 
-shell.h
-       - changed the uid members of struct user_info to be of type uid_t
-         and the gid members to be of type gid_t
+builtins/shopt.def
+       - new functions, shopt_setopt(name, mode) and
+         shopt_listopt(name, mode) to give the rest of the shell an easy
+         interface
 
-parse.y
-       - changed the type of the `type' argument to init_yy_io() to be
-         `enum stream_type', since that's what's always passed
+builtins/common.h
+       - extern declarations for shopt_setopt and shopt_listopt
 
-input.h
-       - changed the function prototype for init_yy_io so the third arg is
-         type `enum stream_type'
+shell.c
+       - new invocation options -O and +O, to list or set/unset shopt
+         options like +o/-o sets and unsets `set -o' options
 
-externs.h
-       - added a prototype for getcwd, if HAVE_GETCWD is not defined
+doc/{bash.1,bashref.texi}
+       - document `set -o nolog'
+       - document `login_shell' shopt option
+       - document new `\A' prompt string escape sequence
+       - document new `-t' option to `hash'
+       - document new `[+-]O' invocation option
 
-builtins/umask.def
-       - changed all variables that are used as arguments to or save the
-         return value from umask(2) to be of type mode_t
-       - changed print_symbolic_umask to take an argument of type mode_t
+doc/bashref.texi
+       - add text to `Invoking Bash' section defining a login shell; text
+         taken from man page
 
-                                  2/13
-                                  ----
-jobs.c
-       - if old_sigint_handler is set to SIG_DFL, as it will be in a script
-         without a trap on SIGINT installed, call termination_unwind_protect()
-         directly from waitchld()
+doc/bash.1, lib/readline/doc/rluser.texinfo
+       - documented new complete/compgen `-A group/-g' option
 
-                                  2/14
+lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
+       - documented new `match-hidden-files' inputrc variable
+
+                                  5/10
                                   ----
 configure.in
-       - added a section before the call to BASH_CHECK_LIB_TERMCAP to
-         set a variable prefer_curses on some systems (AIX, for one)
+       - fix AC_CHECK_PROG(ar, ...)
+       - add AC_CHECK_TYPE for ssize_t
 
-aclocal.m4
-       - in BASH_CHECK_LIB_TERMCAP, don't return -ltermcap if $prefer_curses
-         is non-empty
+config.h.in
+       - new #undef for ssize_t
 
-lib/readline/Makefile.in
-       - redid the dependencies
+lib/sh/zread.c
+       - int -> ssize_t fixes to mirror modern declarations of read and write
+       - the `off' variable in zsyncfd should be an off_t since it computes
+         a file offset
+       - the local buffer `lbuf' is now char, since it's not nice to pass
+         unsigned char * to read(2), and the values from it are assigned to
+         a char anyway
+       - lind and lused are now size_t, since they index into a buffer
+       - set lused to 0 on read error
 
-                                  2/17
-                                  ----
-hashlib.c, getcwd.c
-       - include `bashansi.h' instead of stdlib.h and string.h
+lib/sh/zwrite.c
+       - change second argument to type `char *', since ISO C says you have
+         to pass a `char *' to `write'
 
-error.c, siglist.c, xmalloc.c, builtins/{common,evalfile,mkbuiltins,psize}.c,
-builtins/{exec,exit,fg_bg,hash,history}.def
-       - include `bashtypes.h' instead of directly including <sys/types.h> 
+externs.h
+       - fix extern declarations of zread, zread1, zreadc, and zwrite
+       - prototype extern declaration of qsort_string_compare
+       - add extern declaration for history_delimiting_chars() from parse.y
 
-builtins/fc.def
-       - include ../bashtypes.h and ../posixstat.h instead of bashtypes.h
-         and posixstat.h
+input.h
+       - b_used and b_inputp members ofr struct BSTREAM are now size_t
 
-builtins/mkbuiltins.c
-       - include ../posixstat.h instead of <sys/stat.h>
+builtins/evalstring.c
+       - the number of chars read with zread in cat_file should be assigned
+         to a variable of type ssize_t
 
-general.h
-       - include `bashtypes.h' if RLIMTYPE is defined, so we can fetch
-         a definition of quad_t (or whatever) from <sys/types.h> before
-         using it in a function prototype
+input.c
+       - the number of chars read with zread in b_fill_buffer should be
+         assigned to a variable of type ssize_t
+       - `localbuf' is now type char[], since POSIX says you shouldn't pass
+         unsigned char * to read(2)
+       - in getc_with_restart(), use a variable of type unsigned char to
+         get a value from the local buffer and return it
+       - in ungetc_with_restart, explicitly return the character arg passed
+         to avoid relying on localbuf being unsigned char
 
-Makefile.in, builtins/Makefile.in
-       - updated dependencies
+subst.c
+       - the number of chars read with zread in read_comsub should be
+         assigned to a variable of type ssize_t
 
-                                  2/18
-                                  ----
-builtins/set.def
-       - new function, set_posix_mode, called when `set [-+]o posix'
-         or `shopt -[su] -o posix' is executed.  It sets or unsets
-         $POSIXLY_CORRECT and calls sv_strict_posix
+mksyntax.c
+       - instead of casting to unsigned char * in addcstr, use a variable
+         of type unsigned char and let the compiler do the work
+
+parse.y
+       - instead of casting to unsigned char * in yy_readline_get, use a
+         variable of type unsigned char and let the compiler do the work
+       - ditto for yy_string_get and shell_getc (cast to unsigned char)
 
 subst.c
-       - in sv_strict_posix, call posix_readline_initialize only if
-         the shell is interactive (interactive_shell != 0)
+       - instead of casting to unsigned char when assigning to ifscmap in
+         expand_word_internal, use a variable of type unsigned char and
+         let the compiler do the work
 
-shell.c
-       - if we are acting like `sh', call posix_readline_initialize
-         if the shell is interactive
-       - moved the code that does posix.2 mode initialization after
-         interactive_shell is set, and call posix_readline_initialize
-         if interactive_shell is non-zero
+lib/sh/strtrans.c
+       - instead of casting to unsigned char in ansic_quote, use a variable
+         of type unsigned char and let the compiler do the work
 
-bashwait.h
-       - renamed to unionwait.h, since that is what it defines
+builtins/evalstring.c
+       - remove extern declarations for zwrite and run_trap_cleanup; they're
+         in externs.h
+       - prototype cat_file forward declaration
 
-posixwait.h
-       - moved the POSIX 1003.1 job control defines here from jobs.h
+Makefile.in
+       - remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES
 
-jobs.h
-       - include `posixwait.h'
+aclocal.m4
+       - change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR,
+         and RL_INCLUDEDIR to what it used to test the installed readline
+         library version for use by the caller
+       - change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if
+         the caller has already assigned it a value
+       - rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir,
+         _rl_includedir -> ac_cv_rl_includedir
+
+configure.in
+       - change testing of whether to use the value of
+         $opt_with_installed_readline to be != no, to allow the user to
+         specify a prefix where the installed readline library may be found
+       - if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix
+         to PREFIX before calling RL_LIB_READLINE_VERSION
+       - if --with-installed-readline[=PREFIX] is supplied, don't set
+         RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care
+         of it, set RL_INCLUDE=-I${RL_INCLUDEDIR}
+       - if --with-installed-readline[=PREFIX] is supplied, and we're
+         linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR
+         so we use the same version of the installed readline and history
+         libraries
 
-                                  2/19
-                                  ----
-braces.c
-       - if SHELL is defined, pass the contents of new-style command
-         substitution through without expanding brace constructs between
-         the parens -- let the subshell do it
+Makefile.in, builtins/Makefile.in
+       - have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable
 
-subst.c
-       - when brace-expanding words, preserve the flags (word->flags) if
-         brace expansion does not change the word.  This fixes the problem
-         of things like
+doc/bashref.texi
+       - updated description of --with-installed-readline configure option 
 
-                local -a avar=( ${PATH//: } );
+general.c
+       - moved QSFUNC typedef here from builtins/common.c
 
-bashline.c
-       - have shell_expand_line pass a copy of rl_line_buffer to expand_string
-         in case there are substitution errors and the string gets freed
+{alias,bashline,variables,lib/sh/stringvec}.c
+       - cast fourth argument to qsort to (QSFUNC *)
 
-                                  2/20
-                                  ----
-expr.c
-       - make sure that expland and explor set `lasttok' to LAND and LOR,
-         respectively, if they parse `&&' or `||'.  This makes the
-         precedence code work right
+alias.c
+       - prototype forward declaration of qsort_alias_compare
 
-subst.c
-       - changes so that non-interactive shells exit immediately when a
-         parameter that is unset is referenced after `set -u' has been
-         executed causes the shell to exit immediately
+bashhist.c
+       - include <glob/glob.h> for extern declaration of glob_pattern_p
+       - remove extern declaration of history_delimiting_chars; it's now
+         in externs.h
+       - prototype forward declarations of histignore_item_func,
+         maybe_add_history, and bash_add_history
 
-                                  2/21
-                                  ----
-flags.c
-       - if `set -r' is executed, call maybe_make_restricted so that $PATH
-         and $SHELL are made read-only
+bracecomp.c
+       - remove extern declaration for sh_backslash_quote; it's in externs.h
 
-execute_cmd.c
-       - if `set -e' has been executed, and we're inverting a pipeline's
-         return status with `!', set CMD_IGNORE_RETURN so a failing
-         command does not inadvertently cause the shell to exit before
-         the exit status can be inverted.  This is probably only a problem
-         with the `eval' builtin.
+braces.c
+       - remove extern declaration for extract_command_subst; it's in subst.h
+       - prototype forward declarations for expand_amble, array_concat, and
+         brace_gobbler
 
-                                  2/24
-                                  ----
-builtins/hash.def
-       - add a missing argument of 0 to add_hashed_command
+error.c
+       - prototype extern declaration of give_terminal_to, fix bad call
 
-builtins/kill.def
-       - job identifiers can be used in non-interactive shells as long as
-         job control has been turned on with `set -m'
+{execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir,
+shell}.c
+       - prototype all static forward function declarations
 
-jobs.c
-       - we want to be notified of stopped jobs if job_control is non-zero,
-         even if the shell is not interactive
+pcomplete.c
+       - changed some function parameters to `const char *' to avoid discarding
+         const qualifier
 
-execute_cmd.c
-       - make sure shell_execve returns EX_NOTFOUND if execve fails and
-         errno is set to ENOENT
-       - makes sure execute_builtin saves the temporary environment to
-         builtin_env for the `eval' builtin, since it can destroy the
-         temporary environment when it calls parse_and_execute
+make_cmd.c
+       - make_bare_word, make_word_flags, and make_word now take a
+         `const char *' string argument
 
-bashhist.c
-       - new variable: hist_last_line_added, set to 1 if the last command
-         line was added to the history successfully as a separate entry.
-         Used by `history' and `fc'
+make_cmd.h
+       - changed extern declarations for make_bare_word and make_word
 
-                                  2/25
-                                  ----
-trap.c
-       - save line number before executing trap command, because
-         parse_and_execute resets it to 1 and the trap command might
-         want it
+print_cmd.c
+       - cprintf now takes a `const char *' as its first argument, like
+         xprintf and printf
+       - the conditional define for xprintf should have been HAVE_VPRINTF,
+         not HAVE_VFPRINTF
 
-execute_cmd.c
-       - change to executing_line_number to return trap_line_number if
-         the shell is currently running a trap
+shell.c
+       - in isnetconn(), the return value of sizeof() is size_t
+
+aclocal.m4
+       - add inclusion of stddef.h if STDC_HEADERS is defined to 1 in
+         BASH_CHECK_TYPE
+
+configure.in
+       - add a call to BASH_CHECK_TYPE for socklen_t (type of third argument
+         to getpeername(2))
 
-                                  2/26
+                                  5/11
                                   ----
-execute_cmd.c
-       - change to time_command so that a `real' value of 0 does not
-         cause a divide-by-zero error when computing cpu percentage
+lib/readline/bind.c
+       - make `useq' a char array to pass to rl_macro_bind in
+         rl_parse_and_bind
 
-lib/readline/signals.c
-       - if MUST_REINSTALL_SIGHANDLERS is defined, reinstall the SIGWINCH
-         handler in rl_handle_sigwinch
+lib/readline/{{bind,isearch}.c,rlprivate.h}
+       - _rl_isearch_terminators is now a char *, not unsigned char *
 
-builtins/set.def
-       - `unset' now rejects attempts to unset names that are not valid
-         shell identifiers as errors
-       - add a description of `-o history' option to help text
+{subst,variables,lib/sh/tmpfile}.c
+       - dollar_dollar_pid is now a `pid_t' instead of `int'
 
-subst.c
-       - in parameter_brace_patsub, we want backslash removal done on
-         the replacement if (mflags & MATCH_QUOTED), since the code
-         in expand_word_internal will not do it.  We need to call
-         expand_string_unsplit directly, since maybe_expand_string does
-         not do the right thing
+variables.c
+       - sbrand() now takes an `unsigned long' to set the seed value
+       - changed last_random_value to type int, since it's always between
+         0 and 32767
+       - use strtoul to convert the value in assign_random instead of atoi
+       - take out casts in any arguments to sbrand()
+       - take out cast to int in call to inttostr in set_ppid()
 
-                                  2/28
-                                  ----
-execute_cmd.c
-       - if execute_for_command finds that the iteration variable is readonly,
-         decrement loop_level before returning
+subst.c
+       - don't cast last_asynchronous_pid when passing to itos()
 
-builtins/break.def
-       - if the break count is <= 0, display an error message and break out
-         of all loops
+{sig,subst}.c
+       - prototype all static forward function declarations
 
-builtins/command.def
-       - if PATH is unset, and we're using command -p, we don't want PATH
-         to be set to the empty string when `command' completes
+                                  5/14
+                                  ----
+{test,trap,variables}.c
+       - prototype all static forward function declarations
 
-builtins/common.c
-       - POSIX.2 says `kill -l signum' prints the signal name without the
-         leading `SIG' prefix, so check for this_shell_builtin == kill_builtin
-         in display_signal_list
+variables.c
+       - free_variable_hash_data() now takes a PTR_T, a `generic pointer'
 
-builtins/getopts.def
-       - when invoked without any arguments, `getopts' now prints a usage
-         message
+builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help,
+history,jobs,pushd,read,set,trap,umask,
+       - prototype all static forward function declarations
 
-                                   3/3
-                                   ---
-builtins/common.c
-       - add a second argument to get_numeric_arg: if non-zero, the shell
-         exits on a bad argument; if not, the shell jumps to top_level
-         with a DISCARD argument, which aborts the current command
+builtins/read.def
+       - reset_eol_delim now takes a `char *' arg, since that's what the
+         unwind_protect functions pass it, and it ignores its arguments
+         anyway
 
-builtins/{break,exit,history,return,shift}.def
-       - change calls to get_numeric_argument
+lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c
+       - prototype all static forward function declarations
 
-lib/readline/funmap.c
-       - add `dump-macros' to list of bindable names
+lib/tilde/tilde.c
+       - prototype all static forward function declarations
+       - tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and
+         glue_prefix_and_suffix now take `const char *' arguments where
+         appropriate
 
-lib/readline/readline.h
-       - added extern declaration for rl_prompt (it was apparently missing)
+configure.in,config.h.in
+       - check for vsnprintf, define HAVE_VSNPRINTF if found
 
-lib/readline/readline.c
-       - new internal function, _rl_init_line_state, which sets rl_point
-         and rl_end to 0, sets the_line to point to _rl_line_buffer, and
-         clears the line
+lib/readline/display.c
+       - use vsnprintf() in rl_message if it's available; if we don't, at
+         least set the last character in msg_buf to 0 to avoid overrun --
+         we really can't do anything about overflow at this point.  if it's
+         available, this fixes buffer overflow problems in rl_message
 
-lib/readline/callback.c
-       - if a user's callback function does not clear the line, clear it
-         for him by calling _rl_init_line_state
+                                  5/15
+                                  ----
+lib/readline/histexpand.c
+       - in get_history_word_specifier, allow any character to terminate
+         a `:first-' modifier, not just `:' and null.  This is what csh
+         appears to do.  This allows things like `!:0- xyzzy' to replace the
+         last argument with xyzzy
 
-                                   3/4
-                                   ---
-alias.c
-       - made the readline support functions #ifdef READLINE, so they're
-         not compiled into the shell unless readline is
+                                  5/18
+                                  ----
+configure.in, config.h.in
+       - check for <stdint.h>, define HAVE_STDINT_H if found
+       - check for intmax_t in <stdint.h>, define intmax_t as long if not
+         found
 
-lib/readline/bind.c
-       - new function _rl_untranslate_macro_value, to expand meta-prefixes
-         and other special characters in a macro value for printing by
-         _rl_macro_dumper_internal
-       - call _rl_untranslate_macro_value in _rl_macro_dumper_internal to
-         get a printable version of the macro value
+                                  5/21
+                                  ----
+builtins/kill.def
+       - change to use strerror() for error message when kill(2) fails
 
-lib/readline/readline.c
-       - new variable, rl_dispatching, set to 1 when we call a function
-         from _rl_dispatch
+aclocal.m4
+       - new macro, BASH_C_LONG_LONG, check for `long long'
 
-lib/readline/readline.h
-       - extern declaration for rl_dispatching
+configure.in, config.h.in
+       - call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found
 
-lib/readline/complete.c
-       - make sure S_ISCHR and S_ISBLK are defined before using them
+lib/sh/snprintf.c
+       - new file, with implementations of snprintf, vsnprintf, asprintf,
+         and vasprintf, derived from inetutils version
 
-lib/readline/terminal.c
-       - add a new #define NEED_EXTERN_PC.  Define this if the termcap
-         or curses libraries need `extern' before declarations of PC,
-         BC, and UP
+Makefile.in, lib/sh/Makefile.in
+       - add snprintf.c/snprintf.o
 
-lib/readline/{readline,terminal,histfile}.c
-       - changes to compile on OS/2 with OS/2 `EMX' port of gcc, originally
-         sent by ilya@math.ohio-state.edu
+configure.in, config.h.in
+       - add checks for snprintf, asprintf, vasprintf, with appropriate
+         cpp defines
 
-builtins/set.def
-       - fixed a bug in set_shellopts that caused the shell to crash if
-         there were no shell options set
+lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c
+       - xmalloc and xrealloc now take `size_t' arguments, like their bash
+         counterparts
 
-                                   3/5
-                                   ---
-configure.in,Makefile.in
-       - choose run-all or run-minimal as the test script based on whether
-         the --enable-minimal-config option was given to configure
+externs.h,lib/sh/itos.c
+       - inttostr and itos now take `long' arguments
+       - inttostr takes a `size_t' argument for the buffer size
+
+{expr,lib/malloc/malloc,variables,general}.c
+       - fixed calls to itos() by removing casts, etc.
+
+subst.[ch]
+       - get_dollar_var_value now takes a long, not an int
+       - sub_append_number now takes a long, not an int
+
+subst.c
+       - in parameter_brace_expand_word, use a long and legal_number to
+         translate ${N}, to avoid overflow
+       - in parameter_brace_expand_length, use a long and legal_number to
+         translate ${#N}, to avoid overflow
+       - in do_array_element_assignment, array_expand_index,
+         array_value_internal, use arrayind_t instead of int
+       - let verify_substring_values take long * arguments for the return
+         value of evalexp()
+       - pass long * arguments to verify_substring_values in
+         parameter_brace_substring
+       - parameter_brace_expand_length now returns `long'
+       - parameter_brace_expand now uses a long variable for the return
+         value of parameter_brace_expand_length
+       - param_expand now uses a long variable for the return value from
+         evalexp
+       - array_length reference now returns an `arrayind_t', since it can
+         return the num_elements member of an array, which is of type
+         arrayind_t
 
-builtins/setattr.def
-       - fixed `export -p' and `readonly -p' so that they output `export'
-         or `readonly' when in POSIX mode, as POSIX.2 specifies
+subst.h
+       - array_expand_index now returns an `arrayind_t'
 
-                                   3/6
-                                   ---
-builtins/setattr.def
-       - make `readonly -a var=(...)' work just like `declare -ar var=(...)',
-         since the two logically mean the same
-       - `readonly -f' and `export -f' don't print the function definition
-         for each readonly or exported function, respectively, when in
-         POSIX mode
+array.[ch]
+       - array_subrange now takes arrayind_t arguments, not `int'
+       - dup_array_subrange now uses arrayind_t local variable to do
+         array indexing
+       - use long to print array indices in print_element
 
-jobs.c, nojobs.c
-       - don't report status for processes killed by SIGPIPE if
-         DONT_REPORT_SIGPIPE is defined
+variables.c
+       - null_array_assign, assign_dirstack, bind_array_variable
+         now take arrayind_t arguments as array indices
+       - assign_array_var_from_word_list, assign_array_var_from_string,
+         unbind_array_element now use arrayind_t local variables for
+         array indexing
 
-config.h.top
-       - added a commented-out define for DONT_REPORT_SIGPIPE
+variables.h
+       - change extern declaration of bind_array_variable
 
-execute_cmd.c
-       - `time' can now be used to time background pipelines, and reports
-         the timing statistics when the pipeline completes
+builtins/common.[ch]
+       - get_numeric_arg now returns a `long', since it usually returns
+         the value of legal_number()
 
-[bash-2.01-alpha1 frozen]
+builtins/{shift,break}.def
+       - use long variables for the return value of get_numeric_arg
 
-                                  3/12
-                                  ----
-subst.c
-       - move the parent end of the pipe file descriptor used for process
-         substitution to a high, unused file descriptor to avoid clashes
-         with redirections performed explicitly by a script
+builtins/history.def
+       - convert string argument to int only if it's in range
 
-configure.in
-       - added a `--with-curses' argument so curses can be forcibly chosen
-         over libtermcap (some Unix versions ship lousy termcap databases)
+builtins/pushd.def
+       - set_dirstack_element and get_dirstack_element now take `long'
+         index arguments
+       - get_dirstack_index now takes a `long' index argument, since it's
+         passed the converted value from legal_number
 
-support/mkconffiles
-       - new script to create _distribution and _patchlevel from values
-         contained in `configure'
+lib/sh/timeval.c
+       - in print_timeval, don't assume that the number of minutes fits into
+         an int, since it's just seconds/60.
 
-doc/bashref.texi
-       - updated installation instructions
+lib/sh/clock.c
+       - ditto for print_clock_t
 
-                                  3/13
+                                  5/22
                                   ----
-general.c
-       - if `getgroups' returns 0, make sure we add the primary group id
-         as GROUPS[0].
-       - if we have getgroups, and the primary gid is not in the array
-         getgroups returns, add it as group_array[0] and shuffle everything
-         up one element.  This ensures that current_user.gid == group_array[0]
-         all the time
-
-tests/builtins.tests
-       - changes to avoid stray variables in environment when the shell
-         version of printenv is used with bash as /bin/sh, running the
-         `exec -c' tests.
-
-                                  3/14
+shell.c
+       - since the -O option settings may possibly be overridden by the
+         normal shell initialization or posix initialization, save the
+         invocation options on an alist (with add_shopt_to_alist) and
+         process them after basic initialization (with run_shopt_alist)
+
+                                  5/23
                                   ----
-builtins/cd.def
-       - spelling correction is no longer enabled by default
+trap.h
+       - new define, BASH_NSIG, all system signals plus special bash traps
 
-support/bashbug.sh
-       - if the shell's release status is alpha or beta, offer the option
-         of sending the bug report to the bash-testers mailing list as
-         well as to chet
+trap.c, builtins/trap.def
+       - use BASH_NSIG for array bounds and loops where appropriate
 
-                                  3/17
-                                  ----
-configure.in
-       - configure --without-gnu-malloc by default on *-sgi-irix6* because
-         their code needs 8-byte alignment
+trap.c
+       - change decode_signal to disallow numeric signal numbers above
+         NSIG -- this means you can only reference special traps like
+         DEBUG by name
+       - new SPECIAL_TRAP(s) macro to test whether s is one of the special
+         bash traps (currently DEBUG and EXIT)
+       - change reset_or_restore_signal_handlers so command substitution
+         doesn't inherit the debug trap (like ksh93), and child processes
+         don't have to rely on initialize_traps being run to get rid of
+         any debug trap
 
-support/bashbug.sh
-       - ``' needs to be quoted with a backslash in double-quoted strings
+support/mksignames.c
+       - add extra "ERR" signal name, value NSIG+1, allocate space for it
+         and write it out in signal_names[]
 
-aclocal.m4
-       - slight changes to the strcoll test, since AIX 4.2 returns -1, 0, or
-         1 from strcmp(3) but a numeric collation order difference from
-         strcoll(3)
+trap.h
+       - new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2
+       - extern declarations for set_error_trap, run_error_trap
+       - new define: TRAP_STRING(s), expands to trap_list[s] if signal S
+         is trapped and not ignored, NULL otherwise
 
-                                  3/18
-                                  ----
-command.h
-       - new redirection error code:  HEREDOC_REDIRECT
+trap.c
+       - add ERROR_TRAP to SPECIAL_TRAPS define
+       - initialize ERROR_TRAP stuff in initialize_traps
+       - new function: set_error_trap(command), sets the ERR trap string
+       - new function: run_error_trap(command), runs the ERR trap string
+       - set trap string for ERROR_TRAP to NULL in free_trap_strings
+       - change reset_or_restore_signal_handlers so child processes don't
+         inherit the ERR trap
+       - add case to call run_error_trap in maybe_call_trap_handler
 
 execute_cmd.c
-       - return HEREDOC_REDIRECT from do_redirection_internal when
-         here_document_to_fd cannot create the temp file for a here document
-       - changed redirection_error to print a meaningful message when
-         here document temp file creation fails (HEREDOC_REDIRECT)
+       - in execute_command_internal, keep track of ERR trap and call it if
+         necessary
+       - use TRAP_STRING to get the value of debug and error traps
+       - in execute_function, arrange things so the ERR trap is not inherited
+         by shell functions, and is saved and restored like the DEBUG trap
 
-                                  3/19
-                                  ----
-subst.c
-       - changes to match_pattern_char: return 1 if the first char of the
-         pattern is `?' only if the string is non-null; just return 1 if
-         the first char of the pattern is `[' and the string is non-empty
-         rather than try to re-implement the brace matching code from fnmatch
+doc/{bash.1,bashref.texi}
+       - documented new ERR trap
 
-lib/glob/fnmatch.c
-       - some changes from glibc-2.0.1 posix/fnmatch.c
+tests/{trap.{tests,right},trap2.sub,trap2a.sub}
+       - added ERR trap tests
 
-                                  3/21
-                                  ----
-variables.c
-       - only do the initialization of `ignoreeof' if the shell is
-         interactive
-       - reset values of $SHLVL > 1000 to 1 in adjust_shell_level, and
-         don't call itos, since we don't need its generality
-       - new function, initialize_shell_level, just calls adjust_shell_level
-         with argument of 1.  If $SHLVL is unset, adjust_shell_level will
-         deal with it correctly
-       - change initialize_shell_variables to not malloc a copy of each
-         environment variable, just keep two pointers into the env string:
-         one for the name, one for the value
-       - broke the code that computes the value of $BASH out into a separate
-         function: get_bash_name
-       - get_bash_name special-cases shell_name with a `./' prefix when
-         initializing $BASH
-       - new function: set_home_var, sets $HOME to current_user.home_dir if
-         it's not already set, calling get_current_user_info if
-         current_user.home_dir is NULL
-       - new function: set_shell_var, sets $SHELL to current_user.shell if
-         it's not already set, calling get_current_user_info if
-         current_user.shell is NULL
-       - changed places that reference information in current_user to check
-         for NULL values of the member they're interested in and call
-         get_current_user_info if necessary
+subst.c
+       - on machines without /dev/fd, change the named pipe fifo list to a
+         list of structs containing pathname and proc information
+       - change unlink_fifo_list to kill the proc in the fifo list with
+         signal 0 and not remove the fifo if the proc is still alive.  This
+         should fix the problem on those backward systems without /dev/fd
+         where fifos were removed when a job using process substitution was
+         suspended
 
-shell.c
-       - moved the code that sets up the information in current_user that
-         comes from the password file into a new function,
-         get_current_user_info
-       - shell_initialize calls get_current_user_info only if the shell is
-         interactive
+                                  5/24
+                                  ----
+examples/loadables/getconf.h
+       - new file, with basic defines needed to make getconf work minimally
+         on POSIX systems without the necessary definitions
 
-externs.h
-       - new extern declaration for get_current_user_info(), so variables.c
-         can use it
+examples/loadables/getconf.c
+       - replacement functions for confstr, sysconf, pathconf for systems
+         that lack them, providing a minimal posix interface
+       - heavily augmented getconf, now supports all POSIX.1-200x,
+         POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables
 
-                                  3/24
+                                  5/29
                                   ----
-lib/tilde/tilde.c
-       - if SHELL is defined, user the current_user struct info to find
-         the user's home directory rather than calling getpwuid
+builtins/setattr.def
+       - make `readonly', `export', and `declare' print `invisible' variables
+         as just a command and variable name, without a value, when listing
+         all variables (as POSIX.2-200x d6 requires)
 
-                                  3/25
+                                  5/30
                                   ----
-nojobs.c
-       - don't try to open /dev/tty when getting or setting the tty state
-         and window size; use shell_tty instead
-       - initialize shell_tty to standard error in initialize_job_control
-       - only fetch the tty state initially if the shell is interactive
 
-general.c
-       - open /dev/tty with the O_NONBLOCK flag
+configure.in
+       - upgraded to autoconf-2.50 on main development machine, so require
+         autoconf-2.50 in preparation for using some if its new features
+       - call AC_C_PROTOTYPES
+       - remove call to AC_EXEEXT, which now does the wrong thing
+       - changed AC_INIT to new flavor
+       - added call to AC_CONFIG_SRCDIR
+       - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS
+       - AC_RETSIGTYPE -> AC_TYPE_SIGNAL
 
-variables.c
-       - changed all_vars so that it sorts its output all the time, not
-         just when in POSIX mode.  This means that the output of `set'
-         and `export' will be sorted
+configure.in, aclocal.m4, config.h.in
+       - removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE
+         standard support, with new macros _FILE_OFFSET_BITS and
+         _LARGE_FILES
+       - removed definition of BASH_LARGE_FILE_SUPPORT
 
-builtins/set.def
-       - in initialize_shell_options, only call parse_shellopts if we
-         inherited $SHELLOPTS from the environment
-       - make sure we call parse_shellopts from initialize_shell_options
-         with a copy of the value of SHELLOPTS, in case one of the functions
-         called while setting one of the variables modifies $SHELLOPTS
+doc/bashref.texi
+       - document new `--enable-largefile' configure option
 
 lib/readline/readline.c
-       - make sure that digit arguments don't change the state of
-         rl_last_func
+       - change rl_set_prompt to call rl_expand_prompt unconditionally, so
+         local_prompt and local_prompt_prefix get set correctly
 
-support/printenv.c
-       - new file, printenv(1) clone, used to avoid environment variables
-         that might be set automatically when using printenv.sh
+                                   6/6
+                                   ---
+lib/readline/complete.c
+       - don't append `/' or ` ' to a match when completing a symlink that
+         resolves to a directory, unless the match doesn't add anything
+         to the word.  This means that a tab will complete the word up to
+         the full name, but not add anything, and a subsequent tab will add
+         a slash.  Change to append_to_match; callers changed
 
-lib/tilde/tilde.c
-       - if SHELL is defined, don't call getenv to get the value of $HOME,
-         call get_string_value () directly
+hashlib.c
+       - new function, hash_table_nentries (table), returns the number of
+         items in TABLE
 
-                                  3/26
-                                  ----
-lib/readline/histexpand.c
-       - abstracted the `#ifdef SHELL' stuff that checked for special cases
-         that should not be history expanded ([!...], ${!...}) into a call
-         to a function that is the value of the
-         new history_inhibit_expansion_function variable
+hashlib.h
+       - extern declaration for hash_table_nentries
 
-lib/readline/history.h
-       - extern declaration for history_inhibit_expansion_function
+configure.in
+       - configure without bash malloc on openbsd; they claim it needs
+         eight-bit alignment (which the bash malloc provides, but...)
 
-bashhist.c
-       - new function, bash_history_inhibit_expansion, which checks for
-         the special cases in which history expansion should be inhibited
-       - changes to the various history initialization functions to
-         set history_inhibit_expansion_function
+                                   7/2
+                                   ---
+stringlib.c
+       - only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement
+         string length is > 0, avoid possible hangs if replacement is null
 
-lib/readline/doc/hstech.texinfo
-       - documented history_inhibit_expansion_function
+subst.c
+       - don't include input.h; no longer needed
 
-lib/readline/shell.c
-       - new file, containing versions of the functions that are provided
-         by bash when readline is linked as part of bash
-       - new function: get_env_value().  If SHELL is defined, this calls
-         get_string_value().  If SHELL is not defined, this calls getenv()
+configure.in
+       - remove calls to AC_SYS_RESTARTABLE_SYSCALLS and
+         BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used
 
-lib/readline/histexpand.c
-       - moved single_quote() to shell.c
+config.h.in
+       - remove define for HAVE_RESTARTABLE_SYSCALLS
 
-lib/readline/util.c
-       - moved savestring() to shell.c
+aclocal.m4
+       - removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used
 
-lib/readline/terminal.c
-       - moved set_lines_and_columns() to shell.c
+execute_cmd.c
+       - changed select command so `return' no longer terminates the select
+         command, so it can be used to return from an enclosing function.
+         This is as ksh (88 and 93) does it
 
-lib/readline/Makefile.in, Makefile.in
-       - added shell.c and shell.o to the appropriate variables that contain
-         the files comprising the readline and history libraries
+lib/readline/vi_mode.c
+       - fix trivial typo in declaration of vi_motion; `t' appears twice;
+         the second instance should be `T'
 
-lib/readline/signals.c
-       - introduced two new cpp defines:  HANDLE_JOB_SIGNALS and
-         HANDLE_SIGTERM.  When HANDLE_JOB_SIGNALS is defined, SIGTSTP,
-         SIGTTIN, and SIGTTOU are caught and handled.  When HANDLE_SIGTERM
-         is defined, SIGTERM is caught and handled.  These are both
-         defined automatically if SHELL is not defined
+                                   7/3
+                                   ---
+configure.in
+       - don't add -static to LDFLAGS on Solaris 2.x.  This means that the
+         auxiliary programs will be built as dynamic executables, but that
+         should do no harm
 
-lib/readline/{bind,histfile,nls,readline,terminal}.c
-       - call get_env_value instead of getenv().  This should remove the
-         dependency on being able to redefine getenv() in oslib.c
+                                   7/5
+                                   ---
+lib/glob/fnmatch.c
+       - fix the code that processes **(pattern) to short-circuit if the
+         pattern is ill-formed or lacks a trailing `)'  -- this fixes the
+         segfault on **(/*)
 
-shell.c
-       - added a missing argument of -1 to the call to list_minus_o_opts.
-         Now `bash -o' lists all options, not just random ones depending
-         on what's on the stack
+Makefile.in, builtins/Makefile.in
+       - split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in
+         cross-compilation
+       - build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD)
 
-                                  3/28
-                                  ----
-builtins/ulimit.def
-       - change RLIM_INFINITY to the hard limit only if the hard limit is
-         greater than the current (soft) limit
+configure.in, config.h.in
+       - check for getaddrinfo(3), define HAVE_GETADDRINFO if found
 
-hashlib.c
-       - return immediately from flush_hash_table if the hash table passed
-         is NULL
+lib/sh/netopen.c
+       - implemented a version of _netopen (_netopen6) that uses
+         getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined.
+         old _netopen is _netopen4; _netopen now calls either _netopen6
+         or _netopen4 as appropriate
 
-                                   4/1
+                                   7/9
                                    ---
-shell.c
-       - remove call to initialize_filename_hashing -- initialize the hash
-         table the first time a hashed command has to be remembered
+builtins/exit.def
+       - don't source ~/.bash_logout if subshell_environment is non-zero
 
-hashcmd.c
-       - new file, with functions to perform filename hashing and lookup
-         taken from builtins/hash.def and builtins/common.c
-       - change to remember_filename -- call initialize_filename_hashing
-         if hashing_initialized is 0
+execute_command.c
+       - in execute_until_or_while, handle the case where `breaking' is
+         set in the loop test (e.g., by the job control code when a job
+         is stopped with SIGTSTP), but the return value from the test is
+         something that would cause the loop to break.  Need to decrement
+         `breaking' in this case
 
-hashcmd.h
-       - new file, mostly from builtins/hashcom.h, with extern function
-         declarations added
+                                  7/10
+                                  ----
+execute_cmd.c
+       - in execute_in_subshell, make sure a command of type cm_subshell
+         inherits its `enclosing' command's CMD_IGNORE_RETURN flag
 
-execute_cmd.c, builtins/{hash,type}.def
-       - include hashcmd.h for hash function and type definitions
+variables.c
+       - in maybe_make_export_env, don't allow restricted shells to put
+         exported functions in the export environment
 
-builtins/{common.{c,h},hash.def}
-       - moved hashing functions and declarations to hashcmd.c/hashcmd.h
+                                  7/11
+                                  ----
+lib/glob/strmatch.h
+       - renamed old fnmatch.h
+       - changed guard #ifdef to _STRMATCH_H
+       - include system <fnmatch.h> if HAVE_LIBC_FNM_EXTMATCH is defined
 
-Makefile.in, builtins/Makefile.in
-       - changed source and object file definitions and dependencies because
-         of addition of hashcmd.h and hashcmd.c
+lib/glob/strmatch.c
+       - renamed old fnmatch.c
+       - include "strmatch.h"
+       - if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of
+         strmatch() that just calls fnmatch(3)
 
-builtins/hash.def
-       - return immediately from print_hashed_commands if hashed_commands
-         is empty, indicating that the hash table has not been initialized
+lib/glob/glob.c
+       - include "strmatch.h"
+       - fnmatch -> strmatch
 
-                                   4/2
-                                   ---
-lib/readline/bind.c
-       - fixed translation of ESC in rl_untranslate_keyseq and
-         rl_untranslate_macro_value
+Makefile.in, lib/glob/Makefile.in
+       - fnmatch -> strmatch
 
-lib/readline/{readline,kill}.c
-       - added an argument to _rl_fix_point telling it whether or not to
-         fix up the mark also; changed calls to _rl_fix_point to add the
-         appropriate argument
+{bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c,
+pathexp.h,builtins/help.def
+       - include <glob/strmatch.h>
+       - fnmatch -> strmatch
 
-Makefile.in
-       - changed the substitution delimiter in the `sed' commands that
-         create bashbug from `:' to `%' to avoid conflicts with options
-         containing `:'
+execute_cmd.c
+       - broke the code that parses the interpreter name from a #! line
+         out from execute_shell_script to a new function, getinterp()
+       - call getinterp from execute_shell_script
+       - use return value from getinterp in error message about bad
+         #! interpreter in shell_execve
 
-                                   4/3
-                                   ---
-print_cmd.c
-       - made the initial value and the default growth value for the
-         printed command somewhat smaller -- we don't really need to
-         allocate 4096 bytes for the printed command
-       - added stdarg support to xprintf if PREFER_STDARG is defined
+                                  7/12
+                                  ----
+lib/readline/isearch.c
+       - the last isearch string is now remembered in a new static variable,
+         last_isearch_string
+       - if ^R^R is typed, readline now searches for the remembered isearch
+         string, if one exists
 
-stringlib.c
-       - changed strip_trailing to take the index of the last character
-         as the second argument, saving a (useless) call to strlen, since
-         the caller already knows where the end of the string is
+                                  7/24
+                                  ----
+pcomplete.h
+       - extern declaration for completions_to_stringlist()
 
-subst.c
-       - change call to strip_trailing in command_substitute to add the
-         new second argument
+                                  7/25
+                                  ----
+builtins/complete.def
+       - make compgen handle -o default option
+       - make compgen return success only if sl->list_len is non-zero,
+         indicating that there are items on the list
 
-externs.h
-       - changed extern declaration for strip_trailing
+                                  7/31
+                                  ----
+execute_cmd.c
+       - in execute_connection, force stdin to /dev/null for asynchronous
+         commands if job control is not active, not just if the shell is
+         running a shell script (since you can run `set -m' in a script)
 
-                                   4/4
-                                   ---
-Makefile.in, configure.in, lib/malloc/Makefile.in
-       - changed the strategy for picking which `malloc' to include by
-         having configure define a `malloc target' and the Makefile in
-         lib/malloc implementing rules for that target
+lib/readline/rltty.c
+       - make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on
+         successful restoration of the terminal modes
+       - make sure _rl_tty_disable_signals turns off IXON so that ^S and
+         ^Q can be read by rl_quoted_insert
 
-                                   4/5
+                                   8/1
                                    ---
-Makefile.in
-       - slightly changed the rules for remaking `parser-built':  it is
-         now a copy of y.tab.h, updated only when the contents of y.tab.h
-         change
-       - everything that used to depend on y.tab.h now depends on
-         parser-built
+aclocal.m4
+       - new check for FNM_EXTMATCH being defined in <fnmatch.h>, as Ullrich
+         Drepper intends to do for new versions of GNU libc
 
-                                   4/6
-                                   ---
-execute_cmd.c, print_cmd.c
-       - use #include <y.tab.h> so we pick up y.tab.h from the build
-         directory instead of the source directory if it happens to be
-         recreated in the build directory
+config.h.in
+       - new definition for HAVE_LIBC_FNM_EXTMATCH
 
-                                   4/7
-                                   ---
-bashline.c
-       - fixed another problem with `pwd`/[TAB] thinking that the `/
-         started an unclosed command substitution, generating errors
+configure.in
+       - check for fnmatch, but don't define anything in config.h
+       - call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH
 
-                                   4/8
+                                   8/2
                                    ---
-general.c
-       - renamed bash_tilde_expansion_failure_hook to be
-         bash_special_tilde_expansions, since that more accurately reflects
-         its function
-       - changed tilde_initialize so that there is no failure hook -- the
-         special expansions are handled first with the preexpansion hook
+alias.h
+       - remove bogus extern declaration for xmalloc()
+       - include "stdc.h"
+       - add prototype declarations for all extern function declarations
 
-lib/tilde/tilde.c
-       - new variable: tilde_expansion_preexpansion_hook -- if non-null, it
-         points to a function that is called before standard tilde expansion
-         is attempted
+xmalloc.c,lib/readline/xmalloc.c
+       - fix xmalloc to return a PTR_T
+       - fix xrealloc to return a PTR_T and take a PTR_T as first argument
 
-lib/tilde/tilde.h
-       - extern declaration for tilde_expansion_preexpansion_hook
+include/ansi_stdlib.h
+       - extern declarations for malloc and realloc have them return PTR_T
 
-doc/{bash.{1,html},bashref.texi}
-       - added optional open paren to description of `case' command syntax
+xmalloc.h
+       - new file, with extern declarations for functions in xmalloc.c
 
-                                   4/9
-                                   ---
-variables.c
-       - on qnx, set and export a variable `NODE' which contains the QNX
-         `node id'
+general.h
+       - removed extern declarations for functions in xmalloc.c
+       - include xmalloc.h
 
-general.c
-       - QNX system can now handle pathnames with a leading `//'
+Makefile.in,builtins/Makefile.in
+       - update dependencies to include xmalloc.h
+
+parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general,
+hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib,
+subst,unwind_prot,variables}.c
+builtins/{common,evalfile}.c
+builtins/{cd,command,enable,exec,printf,read,set}.def
+lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist,
+strtrans,tmpfile}.c
+lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input,
+histfile,histexpand,display,complete,bind}.c
+       - make sure all calls to xmalloc are cast to the right return value
 
-configure.in
-       - added `-Dqnx' to LOCAL_CFLAGS on QNX machines
+siglist.c
+       - include xmalloc.h
 
-lib/malloc/getpagesize.h
-       - some systems need sysconf(_SC_PAGE_SIZE) to obtain the page size;
-         added code to check for it
+parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c
+builtins/{fc,printf,read}.def
+lib/sh/snprintf.c, lib/tilde/tilde.c
+lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c
+       - make sure all calls to xrealloc are cast to the right return value
 
-                                  4/10
-                                  ----
-print_cmd.c
-       - include the prototype for cprintf only if PREFER_STDARG is defined,
-         otherwise just have a K&R-style forward function declaration
+lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c
+       - include xmalloc.h, remove extern declaration of xmalloc
 
-hashlib.h
-       - reduced the default number of buckets in a hash table to 53
+lib/readline/xmalloc.h
+       - xmalloc and xrealloc should return PTR_T
 
-lib/tilde/tilde.c
-       - prime the result string in tilde_expand by allocating a new string
-         that's as long as the input string (+16 if a tilde appears in
-         the string to be expanded).  This should reduce the number of
-         reallocs
+lib/readline/rldefs.h
+       - don't include an extern declaration for xmalloc
 
-subst.c
-       - broke the code that reads the output of a command substitution
-         through the pipe to the subshell out into a separate function:
-         read_comsub().  This does not use stdio, but rather reads
-         directly from the pipe into a local 128-character buffer
+                                   8/7
+                                   ---
+support/shobj-conf
+       - fixed up commented-out stanzas for HP's unbundled C compiler on
+         HP/UX
 
-                                  4/11
-                                  ----
-execute_cmd.c
-       - some systems need both <sys/time.h> and <time.h>, so include both
-         if it's possible, otherwise include <sys/time.h> (if present)
+support/bashbug.sh
+       - force the subject to be changed from the default
 
-lib/readline/rl{tty,defs}.h
-       - moved includes of <sys/stream.h>, <sys/ptem.h>, etc. to rltty.h
+lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
+       - document that transpose-words swaps the last two words on the line
+         if point is at the end of the line
 
-lib/readline/terminal.c
-       - include rltty.h after rldefs.h
+                                   8/9
+                                   ---
+stringlib.c
+       - fix possible infinite recursion problem with null pattern in
+         strsub()
 
-variables.c
-       - changes to make environment creation faster and use less memory
-         (fewer malloc/free calls, too):
-
-               o two new variables: export_env_index (how many environment
-                 strings are in export_env) and export_env_size (the
-                 number of slots for strings allocated in export_env)
-               o added new function add_to_export_env, since adding the
-                 exported shell variables and shell functions does not
-                 need to search the export_env for a definition to supersede
-                 (we just cleared it out!)
-               o renamed add_or_supersede to add_or_supersede_exported_var,
-                 since it always works on export_env, and changed the second
-                 argument to a flag saying whether or not to allocate a new
-                 copy of the string placed into the environment
-               o changed calls to add_or_supersede to the new
-                 add_or_supersede_exported_var with the appropriate flags
-               o don't free and reallocate export_env in maybe_make_export_env,
-                 just free the strings and start anew
-               o prime the size of export_env from the total number of shell
-                 variables and shell functions -- this will always be enough
-                 for the exported shell functions and variables, and big
-                 enough most of the time for the entire environment
-
-builtins/cd.def
-       - efficiency hack in bindpwd():  if PWD is exported, we will have to
-         rebuild the entire exported environment after every time we change
-         directories.  What we do is see if array_needs_making changes value
-         from 0 to 1 after bind_variable ("PWD", dirname) is called, and
-         that PWD is exported.  If that happens, we just replace the value
-         of PWD in the exported environment with a call to
-         add_or_supersede_exported_var
-
-bashline.c, parse.y
-       - check calls to pre_process_line to make a fresh copy of the line
-         if pre_process_line returns what it was passed, in preparation
-         for future changes
+hashlib.c
+       - new function copy_hash_table to copy a hash table using a caller-
+         supplied function to copy item data (defaults to savestring())
 
-bashhist.c
-       - pre_process_line now returns its argument if it did not make
-         any changes to it
+hashlib.h
+       - new extern declaration for copy_hash_table
 
-alias.c
-       - free the bucket entry holding the alias to be removed in
-         remove_alias, as well as the data
+builtins/declare.def
+       - changes so that declare [-a] var=value assigns `value' to element 0
+         of array variable `var' like ksh93
+       - change so that declare [-a] var[N]=value assigns `value' to element
+         N of array variable `var' like ksh93
 
-                                  4/14
+                                  8/13
                                   ----
-unwind_prot.c
-       - if an unwind-protect frame is being discarded, and its cleanup
-         function is `restore_variable', the `arg' member points to a
-         SAVED_VAR that must be freed.  This change is made in
-         remove_unwind_protect_internal and unwind_frame_discard_internal
+arrayfunc.c
+       - new file, for miscellaneous array functions
 
-parse.y
-       - need to free memory allocated by parse_arith_cmd if it is an
-         arithmetic command, after using it to make a new word
+arrayfunc.h
+       - new file, extern declarations for functions in arrayfunc.c
 
-subst.c
-       - fixed some memory leaks caused by not freeing the argument to
-         make_bare_word, which duplicates its string argument
-       - need to dispose list generated by list_rest_of_args in
-         paramter_list_remove_pattern
-       - make sure the return value from getpattern() is freed
-       - make sure array_value_internal always returns newly-allocated
-         memory
-       - get_var_and_type returns a new type: VT_ARRAYMEMBER if the
-         string passed is of the form var[index]
-       - make sure parameter_brace_substring frees the memory allocated
-         by get_var_and_type if verify_substring_values returns 0
-
-hashlib.c, hashlib.h
-       - new function, dispose_hash_table (table), which frees the
-         table's bucket array and the table itself
+variables.c
+       - move convert_var_to_array, bind_array_variable,
+         assign_array_from_string, assign_array_var_from_word_list,
+         assign_array_var_from_string, quote_array_assignment_chars,
+         skipsubscript, unbind_array_element, print_array_assignment
+         to arrayfunc.c
 
-alias.c
-       - call dispose_hash_table from delete_all_aliases instead of just
-         freeing the table
+shell.h
+       - include arrayfunc.h after variables.h
 
-pathexp.c
-       - make sure to free `newnames' (but *not* its contents) before
-         returning from ignore_globbed_names
+variables.h
+       - remove above extern function declarations moved to arrayfunc.h
+       - add extern declaration for var_lookup
 
-builtins/exec.def
-       - make sure the argv created to pass to shell_execve is freed if
-         the execve fails and we're not exiting on failed execs
+Makefile.in
+       - add arrayfunc.c, arrayfunc.h in appropriate places
+       - add arrayfunc.h to dependencies
 
-expr.c
-       - broke evalexp into two functions: evalexp, which sets up the
-         jmp_buf that errors jump to, and subexpr, which does the
-         evaluation and pushing and popping of contexts
-       - readtok now calls subexpr to evaluate subexpressions in
-         parentheses
-       - evalexp now takes an additional paramter, a pointer to an int.
-         If the expression contains errors, the location to which this
-         points gets 0, otherwise it gets 1 to show that the value
-         returned may be used.  This plugs up memory leaks that were
-         the result of evalexp() longjmping back to top_level
-       - fixed a memory leak: expr_stack[0] was not being freed
+subst.c
+       - move valid_array_reference, array_expand_index, array_variable_part,
+         array_value_internal, array_value (now global), get_array_value,
+         do_array_element_assignment to arrayfunc.c
 
-externs.h
-       - changed extern declaration for evalexp
+subst.h
+       - extern declarations for functions above moved to arrayfunc.h
 
-variables.c, subst.c, builtins/let.def
-       - changed calls to evalexp appropriately.  They either cause a
-         longjmp (top_level, DISCARD) (which is what the old stuff in
-         expr.c did) or are handled by returning an appropriate error
-         value (e.g., &expand_word_error in subst.c)
+arrayfunc.h
+       - extern declarations for above functions from subst.c
 
-                                  4/16
+subst.[ch]
+       - string_list_dollar_star and string_list_dollar_at are now global
+         functions
+       - quote_escapes is now a global function
+
+subst.c
+       - maybe_expand_string -> expand_string_if_necessary
+       - expand_string_to_string -> expand_string_to_string_internal
+       - new functions: expand_string_to_string and
+         expand_string_unsplit_to_string, which call
+         expand_string_to_string_internal with expand_string and
+         expand_string_unsplit as the FUNC arguments, respectively
+
+arrayfunc.c
+       - change array_expand_index to call expand_string_to_string instead
+         of maybe_expand_string
+
+                                  8/14
                                   ----
 shell.c
-       - make sure to free dollar_vars[0] before assigning it the first
-         argument following `-c command'
+       - in execute_env_file, call expand_string_unsplit_to_string
+
+mailcheck.c
+       - in check_mail, call expand_string_to_string
 
 variables.c
-       - if unsetting a local variable with a previous context, make sure      
-         to free the hash table element used to store the local variable
+       - in assign_in_env, call expand_string_unsplit_to_string
+
+arrayfunc.c
+       - new function, array_variable_name, splits an array reference into
+         a name (which is returned as a new string) and subscript
+       - change array_variable_part to just call array_variable_name and
+         look up the string returned with find_variable
+       - new function, find_or_make_array_variable (name, flags) which will
+         look up an array variable and convert a string variable to an
+         array if necessary.  The FLAGS argument, if non-zero, says to
+         check the readonly and noassign attributes and fail if either is set
+
+builtins/read.def
+       - make `read -a aname' honor any readonly status of `aname'
+       - read -a now calls find_or_make_array_variable with FLAGS value 1
 
-lib/readline/terminal.c
-       - rearrange the includes so <sys/ioctl.h> is included before rltty.h,
-         as it is in rltty.c
+arrayfunc.[ch], subst.c, builtins/{declare,read}.def
+       - do_array_element_assignment -> assign_array_element
 
-                                  4/17
+                                  8/20
                                   ----
-flags.c
-       - new function: reset_shell_flags, which resets all of the flags
-         back to their initial values
+parse.y
+       - changed `for' command grammar to allow missing word list after `IN'
+         token, like latest POSIX drafts require
 
-flags.h
-       - extern declaration for reset_shell_flags
+lib/sh/tmpfile.c
+       - in sh_mktmpname(), check for filenum == 0 and init to non-zero number
+         in this case.  it can happen on arithmetic overflow
 
-builtins/set.def
-       - new function: reset_shell_options, which resets all of the -o
-         options that are not also shell flags back to their initial values
+support/mkversion.sh
+       - added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a
+         distribution to allow for intermediate versions, like 2.05a
 
-builtins/shopt.def
-       - new function: reset_shopt_options, which resets all of the shopt
-         options that are not also shell flags or -o options back to their
-         initial values
+support/config.guess
+       - removed the addition of the output of `/usr/bin/objformat' when
+         creating the canonical name on FreeBSD machines, so the canonical
+         name is once again `freebsd4.2' instead of `freebsdelf4.2'
 
-builtins/common.h
-       - extern declarations for reset_shell_options and reset_shopt_options
+                                  8/22
+                                  ----
+lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell,
+rltypedefs,xmalloc}.h
+lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch,
+input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode
+       - changed __P to PARAMS
 
-execute_cmd.c
-       - broke the code that reinitializes things when an executable script
-         without a leading `#!' is found out into a new function:
-         initialize_subshell
-       - initialize_subshell now calls the reset_* functions that reset the
-         shell flags and options
+lib/tilde/tilde.[ch]
+       - changed __P to PARAMS
 
-general.c, general.h
-       - move_to_high_fd now takes a third argument: the highest fd at which
-         to start looking.  If that's less than 20, the maximum number of
-         open files as returned by getdtablesize() is used (which is what
-         it did before this)
+{Makefile,configure}.in
+       - changed the version number to 2.05a
+       - changed the release status to `alpha1'
 
-jobs.c, shell.c, subst.c
-       - changed calls to move_to_high_fd appropriately
+                                  8/23
+                                  ----
+support/shobj-conf
+       - support for building shared libraries on Darwin/MacOS X
 
-[bash-2.01-beta1 frozen]
+siglist.h
+       - extern declaration for strsignal() to compensate for lack of
+         a definition in some system include files
 
-                                  4/18
-                                  ----
-general.c
-       - itos now uses a local char buffer to do its conversion, but still
-         returns newly-allocated memory
+jobs.c
+       - remove casts from strsignal() calls
 
-                                  4/21
-                                  ----
-variables.c
-       - be a little more careful when checking for backwards-compatibility
-         with exported function definitions
+[bash-2.05a-alpha1 frozen]
 
-                                  4/22
+                                  8/27
                                   ----
-builtins/ulimit.def
-       - translate RLIM_INFINITY to limit.rlim_max if the current limit is
-         less than or equal to the hard limit, not just strictly less than
-         (the change of 3/28 was too drastic)
+[bash-2.05a-alpha1 released]
 
-                                  4/23
+                                  8/27
                                   ----
-oslib.c
-       - fixed definition of to_lower on machines without strcasecmp
+execute_cmd.c
+       - fix eval_arith_for_expr to handle the case where the expanded
+         word list is NULL, returning 0 in this case
 
-trap.c
-       - don't free the trap command in change_signal if the SIG_INPROGRESS
-         is set in the signal's flags -- it will cause memory to be freed
-         twice if a trap command resets the signal handler more than once,
-         and _run_trap_internal keeps a pointer to the trap command so it
-         can free it, so there will be no leaks
+print_cmd.c
+       - in print_function_def, make sure that func_redirects is assigned
+         a value before being used
 
-                                  4/24
+                                  8/28
                                   ----
-aclocal.m4,configure.in
-       - removed BASH_CC_WORKS, since AC_PROG_CC now has the functionality
+alias.c
+       - include <ctype.h> for definition of isalpha()
 
-shell.c, externs.h
-       - get_current_user_info is now a void function
+bashhist.h
+       - add prototypes for extern function declarations
 
-bashline.c
-       - alias_expand_line_internal was removed
-       - new function, alias_expand_line, performs alias expansion on
-         rl_line_buffer and either replaces rl_line_buffer or signals
-         an error
-       - new bindable commands: alias-expand-line and
-         history-and-alias-expand-line, available if ALIAS is defined
-
-                                  4/25
-                                  ----
-Makefile.in, lib/malloc/malloc.c
-       - changed the define that turns on malloc range checking from
-         `rcheck' to `RCHECK'
+flags.c
+       - include bashhist.h for extern function declarations
 
-lib/readline/isearch.c
-       - fixed a couple of places where rl_search_history would try to
-         free a NULL pointer
+mksyntax.c
+       - include <unistd.h> if HAVE_UNISTD_H is defined in config.h
 
-                                  4/29
-                                  ----
-unwind_prot.c
-       - fixed a problem with saving a variable that is a null pointer
-         in unwind_protect_var.  It happens only on machines where the
-         size of a pointer is not the size of an int.  The old FASTCOPY
-         code would copy the eight bytes at memory location zero, which
-         did not necessarily make a null pointer
+parse.y
+       - include test.h for extern function declarations
 
-                                  4/30
-                                  ----
-shell.c
-       - run_startup_files should turn off job control, since the startup
-         files should be run without job control enabled -- this makes
-         SIGINT interrupt startup file execution again
-       - if we get a SIGINT or other longjmp to top_level while executing
-         the startup files, re-enable job control for interactive shells
-         before setting locally_skip_execution
+externs.h
+       - change extern declaration for setlinebuf to sh_setlinebuf
 
-                                   5/2
-                                   ---
-lib/readline/nls.c
-       - if we have setlocale(3), don't bother with checking the
-         environment variables for valid values; just use setlocale()
-         to set the locale categories from the environment variables
-         directly and go into eight-bit mode if the current locale is
-         not C or POSIX
-
-                                   5/5
-                                   ---
-sig.c
-       - make sure that the handler for SIGPROF is not changed if it has
-         been set to something other than SIG_IGN or SIG_DFL -- this makes
-         profiling work after the terminating signals have been initialized
+stringlib.c
+       - include <glob/glob.h> for extern function declarations
 
-bashline.c
-       - if a filename containing `!' is completed, and the user has started
-         the string with a `"', change the completion style to backslash-      
-         quoting, since there's no way to use `!' with double quotes (this
-         requires more changes to readline to really work right)
+variables.h
+       - add function prototypes for all of the sv_* functions
 
-                                   5/6
-                                   ---
-lib/readline/complete.c
-       - changes to make_quoted_replacement, insert_all_matches, and
-         insert_match and their callers to allow the application-specific
-         filename quoting function to change the quote character (e.g., for
-         bash to change a filename containing a `!' and started with a
-         double quote by the user into a filename with the `!' quoted by
-         a backslas and no double quote)
+builtins/common.h
+       - add extern declarations for set_shellopts() and parse_shellopts()
+         from builtins/set.def
 
-                                   5/8
-                                   ---
-jobs.c
-       - new function: nohup_all_jobs(), calls nohup_job for each entry in
-         the jobs list
-       - delete_all_jobs is now global
+variables.c
+       - include "hashcmd.h" for extern declaration for flush_hashed_filenames
+       - include "pathexp.h" for extern declaration for setup_glob_ignore
 
-jobs.h
-       - new extern declarations for delete_all_jobs() and nohup_all_jobs()
+lib/malloc/malloc.c
+       - cast to `long' instead of `int' in memalign for 64-bit machines
 
-builtins/jobs.def
-       - `disown' without any jobspec arguments means the current job.  Fix
-         a core dump printing the error message when there is no current job
+{pcomplete,trap}.c
+       - changed printf escape sequences used to print pointers to %p
 
-                                  5/12
-                                  ----
-subst.c
-       - process an expansion like $((foo); bar) as a command substitution,
-         not as an arithmetic expansion.  An arithmetic expansion must have
-         a closing `))'
+lib/readline/undo.c
+       - include "xmalloc.h" for extern function declaration
 
-                                  5/14
-                                  ----
-builtins/evalstring.c
-       - the third argument to parse_and_execute() is now a flags word.
-         The caller can control the value of `interactive' and whether
-         or not history is disabled while parse_and_execute() runs
+input.h
+       - add function prototypes to extern declarations for getc_with_restart
+         and ungetc_with_restart
 
-builtins/common.h
-       - new #defines for the flag values for parse_and_execute()
+variables.[ch]
+       - changed type of `function' member of `struct name_and_function' to
+         `sv_func_t', which is defined and prototyped in variables.h
+       - map_over now takes an `sh_var_map_func_t *'
 
-{bashline,jobs,shell,subst,trap,variables}.c, parse.y, builtins/evalfile.c,
-builtins/{eval,fc}.def
-       - changed calls to parse_and_execute appropriately
+shell.h
+       - start of a set of function pointer typedefs like those in
+         lib/readline/rltypedefs.h
 
-builtins/evalfile.c
-       - if _evalfile() is passed FEVAL_HISTORY as part of the flags arg,
-         don't pass SEVAL_NOHIST to parse_and_execute
-       - new function: fc_execute_file, which sets FEVAL_HISTORY in the
-         flags argument to _evalfile()
+hashlib.[ch]
+       - second paramter to flush_hash_table is now an `sh_free_func_t *'
 
-bashline.c
-       - call bash_add_history instead of add_history from
-         vi_edit_and_execute_command so the bash state variables get
-         updated properly.  This keeps the `v' command from operating
-         on an empty command when the history list is stifled
+trap.c
+       - parameter to reset_or_restore_signal_handlers is now an
+         `sh_resetsig_func_t *'
 
-bashhist.c
-       - bash_add_history is now global
+pcomplete.h, pcomplib.c
+       - function pointer argument to print_all_compspecs is now an
+         `sh_csprint_func_t *'
+       - function pointer `list_getter' element of an `ITEMLIST' is now
+         prototyped with __P((...)) instead of using `Function *'
 
-bashhist.h
-       - extern declaration for bash_add_history
-
-builtins/fc.def
-       - call fc_execute_file instead of maybe_execute_file in the
-         edit-and-re-execute case (fc -e ...)
-       - don't manually insert the commands from the file created by `fc -e'
-         into the history list, just set remember_on_history and let
-         fc_execute_file take care of telling parse_and_execute to do the
-         right thing.  This makes compound commands and the `cmdhist'
-         and `lithist' settings work better.  This supersedes the fix of
-         1/27.  This was reported again by rchen@fractal.eng.yale.edu.
+jobs.[ch]
+       - `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *'
 
-parse.y
-       - the body of a `for' command (the commands between do...done or
-         {...}) should be a `compound_list' instead of a `list'.  Problem
-         reported by cpg@research.bell-labs.com
+alias.c
+       - map_over_aliases now takes an `sh_alias_map_func_t *'
+       - free_alias_data now takes a `PTR_T'
 
-                                  5/19
-                                  ----
-lib/readline/complete.c
-       - in filename_completion_function, if we find that the directory
-         pointer (return value from opendir(3)), is not null when state
-         is 0 (indicating that this is the first time the completion
-         function has been called for the current completion), call
-         closedir on it, assuming that it was left open by a previous
-         (interrupted) completion
+pathexp.c
+       - function pointer argument to ignore_globbed_names is now an
+         `sh_ignore_func_t *' 
 
-[bash-2.01-beta2 frozen]
+bashline.c
+       - function pointer argument to _ignore_completion_names is now an
+         `sh_ignore_func_t *' 
 
-                                  5/27
-                                  ----
-Makefile.in
-       - make sure that `make distclean' (and other clean targets) remove
-         the `printenv' executable
+pathexp.h,{bashhist,bashline.c
+       - `item_func' member of a `struct ignorevar' is now an
+         `sh_iv_item_func_t *'
 
-tests/execscript, tests/redir.tests
-       - make sure to set LANG=C and LC_ALL=C so the messages show up in
-         English
+builtins/evalfile.c
+       - `errfunc' is now an `sh_vmsg_func_t *'
 
-tests/run-func
-       - add a warning about exported functions in the environment
+jobs.c
+       - map_over_job now takes an `sh_job_map_func_t *' as its first argument
 
-                                  5/29
-                                  ----
-builtins/hash.def
-       - if one of the arguments passed to `hash' is an absolute pathname,
-         just continue the loop, don't do list=list->next first.  This
-         fixes the `hash a/b' -> core dump bug
+array.[ch]
+       - function pointer argument to array_walk is now an
+         `sh_ae_map_func_t *'
 
-                                  5/30
-                                  ----
 general.c
-       - change canonicalize_pathname to leave a leading `/' alone, as
-         POSIX requires
+       - tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *',
+         and so the assignment in tilde_initialize doesn't need a cast
 
-                                   6/2
-                                   ---
-support/xenix-link.sh
-       - shell script for linking bash under Xenix
+list.c
+       - map_over_words now takes an `sh_icpfunc_t *' as its second argument
 
-                                   6/3
-                                   ---
-bashline.c
-       - fixed a memory leak in command_word_completion_function, courtesy
-         of a.pfaller@pop.gun.de
+input.h
+       - the `getter' and `ungetter' function pointer members of a
+         BASH_INPUT are now of types `sh_cget_func_t *' and
+         `sh_cunget_func_t *' respectively
+       - init_yy_io now takes an `sh_cget_func_t *' as its first argument and
+         an `sh_cunget_func_t *' as its second
 
-hashcmd.c
-       - fixed find_hashed_filename to always return a newly-allocated
-         string
+parse.y
+       - init_yy_io now takes an `sh_cget_func_t *' as its first argument and
+         an `sh_cunget_func_t *' as its second
+       - initialize_bash_input casts bash_input.getter and bash_input.ungetter
+         appropriately
+
+builtins/mkbuiltins.c
+       - make the extern function definitions written to builtext.h have
+         prototypes with __P((...))
+       - include "stdc.h"
+       - change Function to mk_handler_func_t
+       - fixed comment_handler to take the right number of args
+       - prototyped all the handler functions with __P((...))
+
+builtins.h
+       - the `function' member of a struct builtin is now of type
+         `sh_builtin_func_t *'
+
+builtins/common.[ch]
+       - last_shell_builtin, this_shell_builtin are now of type
+         `sh_builtin_func_t *'
+       - find_shell_builtin, builtin_address, find_special_builtin now return
+         `sh_builtin_func_t *'
+
+builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y
+       - changed all declarations of last_shell_builtin and this_shell_builtin
 
 execute_cmd.c
-       - since find_hashed_filename returns newly-allocated memory, don't
-         call savestring() on it, and free it if the data is stale (in
-         search_for_command()).  Another memory leak fixed courtesy of
-         a.pfaller@pop.gun.de
+       - execute_builtin, execute_builtin_or_function,
+         execute_subshell_builtin_or_function now take an
+         `sh_builtin_func_t *' instead of a `Function *' for argument
+       - changed appropriate variables from `Function *' to
+         `sh_builtin_func_t *'
 
-builtins/type.def
-       - free the value returned by find_hashed_filename
+builtins/{bind,builtin,enable,read,setattr}.def
+       - replaced uses of `Function *' in variable declarations with
+         appropriate types (sh_builtin_func_t * or rl_command_func_t *)
 
-[bash-2.01-release frozen]
+builtins/set.def
+       - set_func and get_func members of binary_o_options are now of types
+         `setopt_set_func_t *' and `setopt_get_func_t *', which are
+         prototyped
 
-                                   6/6
-                                   ---
-configure.in
-       - force shlicc2 and libc malloc for BSD/OS 3.0
+builtins/shopt.def
+       - set_func member of shopt_vars is now of type `shopt_set_func_t *'
+
+bashline.c
+       - enable_hostname_completion now returns `int' (the old value of
+         perform_hostname_completion)
 
-                                   6/9
+[The only use of Function and VFunction now is for unwind-protects]
+
+                                   9/4
                                    ---
-doc/Makefile.in
-       - don't create ${man3dir}, since we're not installing the readline
-         manual page
+lib/sh/getcwd.c
+       - use const define from config.h rather than `CONST'
+       - use PTR_T define from xmalloc.h rather than `PTR'
+       - include xmalloc.h for PTR_T
+       - remove PATH_MAX define, rely on value from maxpath.h
 
-lib/readline/readline.h
-       - rl_dispatching should be declared `extern'
-         [in bash-2.01.1]
+{general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c
+       - don't include maxpath.h directly; it's already included by shell.h
 
-                                  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]
+lib/sh/mailstat.c
+       - new `mailstat()' implementation, to stat a mailbox file for
+         mail checking.  handles maildir-style mail directories with one
+         file per message and creates a dummy stat struct from them
 
-                                  6/30
-                                  ----
-lib/readline/examples/rltest.c
-       - don't free the value returned by history_list()
+lib/sh/Makefile.in
+       - add mailstat.c and mailstat.o in the appropriate places
 
-lib/readline/histfile.c
-       - open the history file for writing with mode 0600 for better
-         security
-         [in bash-2.01.1]
+lib/malloc/malloc.c
+       - augmented implementation with wrapper functions that pass in file
+         and line number information from cpp.  currently unused, but a
+         placeholder for future debugging and use tracking
 
-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]
+lib/malloc/shmalloc.h
+       - new file, extern declarations for allocation wrapper functions for
+         use by the shell (and others, I guess)
 
-                                   7/1
+xmalloc.[ch]
+       - wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that
+         pass cpp line number information through to the malloc functions,
+         if USING_BASH_MALLOC is defined
+
+                                   9/5
                                    ---
-builtins/evalstring.c
-       - fix to parse_and_execute so `bash -c 'time [-p] zzz'' works right
-         [in bash-2.01.1]
+lib/malloc/gmalloc.c
+       - removed; no longer part of distribution
 
-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]
+lib/malloc/Makefile.in
+       - removed references to gmalloc.[co]
 
-externs.h, shell.c
-       - `exit_shell' is now a void function
+configure.in, doc/bashref.texi
+       - removed references to `--with-glibc-malloc' configure option
 
-hashlib.c
-       - print_table_stats is now a void function
+{configure,Makefile}.in
+       - changed the way bash malloc is configured into the Makefile, making
+         it more like how readline is configured.  If the bash malloc is
+         not configured in, nothing in lib/malloc will be built
 
-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]
+                                   9/6
+                                   ---
+lib/malloc/imalloc.h
+       - new file, some internal malloc definitions
 
-variables.c
-       - for the time being, PWD will be auto-exported, since some systems
-         seem to expect it
+lib/malloc/mstats.h
+       - new file, definitions for malloc statistics structs and functions
 
-doc/bashref.texi, lib/readline/doc/{hist,rlman}.texinfo
-       - added necessary `dircategory' and `direntry' commands to make
-         `install-info' work correctly
+lib/malloc/trace.c
+       - new file, malloc tracing functions (currently just print messages
+         to stderr), code is #ifdef MALLOC_TRACE
 
-Makefile.in
-       - move $(LDFLAGS) after $(BUILTINS_LDFLAGS) and $(LIBRARY_LDFLAGS) on
-         the line that links bash
+lib/malloc/stats.c
+       - new file, moved malloc stats code from malloc.c to here
 
-doc/texinfo.tex
-       - upgraded to version 2.185 from the texinfo-3.9 distribution
+lib/malloc/malloc.c
+       - moved some definitions to imalloc.h
+       - moved stats code to stats.c
+       - malloc tracing calls added to internal_{malloc,realloc,free}, all
+         #ifdef MALLOC_TRACE
 
-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]
+lib/malloc/Makefile.in, Makefile.in
+       - added {imalloc,mstats}.h, {trace,stats}.c
 
-                                   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
+parse.y
+       - changed decode_prompt_string to save and restore $?
+         (last_command_exit_value) around calls to expand_prompt_string(),
+         so command substitutions in PS1, etc. don't change $?
+
+{array,subst}.c
+       - a couple more arrayind_t fixes from Paul Eggert
 
 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>
+       - remove redundant check for wait3(2)
 
-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
+redir.h
+       - fixed a typo (stdin_redirs -> stdin_redirects)
 
-lib/malloc/malloc.c
-       - new version, with many changes and much better memory usage; old
-         (bash-2.01) version is lib/malloc/omalloc.c
+                                  9/10
+                                  ----
+execute_cmd.c
+       - remove check for \n and \r from WHITESPACE macro, since those
+         chars are not whitespace as returned by the whitespace(c) macro
+       - getinterp now takes a `char *' as first arg, not unsigned char *
+       - execute_shell_script now takes a `char *' as first arg, not
+         unsigned char *
+       - fix typo in forward declaration for `initialize_subshell'
+       
+general.[ch]
+       - check_binary_file now takes a (char *) argument, not unsigned char *
+       - pass unsigned char to isspace and isprint because of ISO C fuckup
+       - bash_tilde_expand now takes a `const char *' as its argument
 
-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
+builtins/evalfile.c, shell.c
+       - buffer passed to check_binary_file is char, not unsigned char
 
-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
+parse.y
+       - fix extern declaration for yyerror()
+       - yyerror now takes a `const char *' as first arg
 
-tests/exec?.sub
-       - renamed from tests/execscript.sub? because those filenames are
-         too long for System V 14-char filename systems
+{error,jobs}.c
+       - fixes to printf-style functions to handle pids wider than an int
 
-tests/source?.sub
-       - renamed from tests/source.sub? because those filenames are bad
-         for DOS/Windows
+lib/readline/{isearch,vi_mode}.c
+       - fix call to rl_message in rl_display_search (remove extra arg)
 
-tests/getopts?.sub
-       - renamed from tests/getopts.sub? because those filenames are bad
-         for DOS/Windows
+variables.c
+       - fix missing argument to builtin_error in make_local_variable
 
-tests/histexp.{tests,right}
-       - renamed from histexpand.{tests,right} because those filenames are
-         too long for System V 14-char filename systems
+builtins/getopts.def
+       - since getopts takes no options, change while loop calling
+         internal_getopts to a simple `if' check
 
-tests/trap1.sub
-       - renamed from trap.sub1 because that filename was bad for DOS/Windows
+builtins/printf.def
+       - since printf takes no options, change while loop calling
+         internal_getopts to a simple `if' check
 
-tests/ifs-[123].right
-       - renamed from ifs.[123].right because those filenames were bad for
-         DOS/Windows
+lib/readline/bind.c
+       - remove _SET_BELL macro, expand code inline
 
-tests/ifs-[123].test
-       - renamed from ifs-test-[123].sh because those filenames were bad
-         for DOS/Windows
+lib/readline/input.c
+       - change _rl_input_available to use either select or FIONREAD,
+         but not both
 
-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
+lib/readline/readline.c
+       - fix rl_digit_loop to remove unreachable code at end of loop
 
-tests/exec.right
-       - renamed from execscript.right because that filename is too long
-         for System V 14-char filename systems
+{bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c
+       - bracket unused functions with #ifdef INCLUDE_UNUSED/#endif
+       - remove some unused variables
 
-tests/run-set-e
-       - renamed from run-set-e-test
+execute_cmd.c
+       - remove #ifdef'd code that allowed `return' to terminate a select
+         statement
 
-tests/misc/perftest
-       - renamed from tests/misc/haertel.perftest because that filename is
-         too long for System V 14-char filename systems
+expr.c
+       - remove some extraneous tests from strlong()
 
-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
+array.h
+       - arrayind_t is now a long, since shell arithmetic is performed as
+         longs
+       - remove second declaration of new_array_element
 
-lib/glob/fnmatch.h
-       - new version, with necessary symbols for the new fnmatch.c
+builtins/printf.def
+       - in mklong, xrealloc cannot return NULL, so don't check for it
+       - remove some #if 0 code
+       - fix core dump triggered by a format specification with more than
+         one `*'
+       - remove `foundmod', since its value mirrors `modchar != 0'
+       - include "common.h" for builtin_{error,usage} declarations
 
-tests/posixpat.{tests,right}, tests/run-posixpat
-       - test suite for the POSIX.2 BRE pattern matching code
+Makefile.in,builtins/Makefile.in
+       - updated some dependencies due to new include files
 
-variables.c
-       - make sure that array assignment using the compound syntax empties
-         the array before doing the assignment
-         [in bash-2.01.1]
+pcomplete.c
+       - include "execute_cmd.h" for declaration of execute_shell_function
 
-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]
+arrayfunc.c
+       - include <stdio.h> for printf
+       - include "builtins/common.h" for builtin_error declaration
 
-sig.h
-       - extern declarations for trap_handler and trap_to_sighandler
-         [in bash-2.01.1]
+builtins/evalstring.c
+       - include "../trap.h" for run_trap_cleanup declaration
 
-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]
+builtins/help.def
+       - include "common.h" instead of locally declaring builtin_error
+         and builtin_usage
 
-                                   7/8
-                                   ---
-builtins/umask.def, doc/{bash.{1,html},bashref.texi}
-       - added `-p' option for umask to print output in a reusable form
+error.h
+       - add extern declaration for itrace()
+       - add prototype to extern declaration of get_name_for_error
+       - file_error now takes a `const char *' as first argument
 
-                                   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
+externs.h
+       - added prototype for sh_setlinebuf declaration, bracketed with
+         NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere
+       - add extern declaration for parse.y:return_EOF()
+
+shell.c
+       - add NEED_SH_SETLINEBUF_DECL before including shell.h
 
-builtins/type.def
-       - removed mention of `-type', `-path', and `-all' options from the
-         long help description
+lib/readline/callback.c
+       - include <stdlib.h> or "ansi_stdlib.h" for abort declaration
 
-error.c, error.h
-       - new function: internal_warning, for warning messages
+quit.h
+       - remove declaration of throw_to_top_level
 
-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]
+subst.c
+       - remove unused extern declaration for getopts_reset
 
-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
+lib/sh/netopen.c
+       - include <shell.h> for legal_number, etc.
+       - add prototype for inet_aton extern declaration
 
-jobs.c, builtins/jobs.def
-       - changed all calls to delete_job to provide a proper second arg
+lib/sh/clock.c
+       - include <stdc.h> for __P declaration
+       - add extern declaration for get_clk_tck
 
-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'
+support/mkversion.sh
+       - changed so that extern function declarations for functions in
+         version.c (moved from externs.h) are in the generated version.h
 
-aclocal.m4
-       - augmented BASH_STRUCT_WINSIZE to look in termios.h as well as
-         sys/ioctl.h for definition of `struct winsize'
+shell.h
+       - include version.h
 
-lib/readline/rltty.h
-       - include "rlwinsize.h" after including tty-driver-specific header
-         file
+version.c
+       - various `char *' version variables are now `const char *'
 
-                                  7/10
-                                  ----
-support/config.guess
-       - add better support for SunOS on M68K (old Sun3 machines)
+general.h
+       - add prototype for same_file, bracketed with _POSIXSTAT_H
+         #ifdef, since that's what include/posixstat.h defines
 
-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]
+builtins/common.[ch]
+       - _evalfile, maybe_execute_file, source_file, and fc_execute_file
+         now take a `const char *' as their first argument
 
-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
+eval.c
+       - removed extern declaration of yyparse; it's in externs.h
 
-jobs.c
-       - changed all calls to delete_all_jobs
+parse.y
+       - added prototypes to static forward function declarations
+       - changed local `all_digits' variable in read_token_word () to
+         all_digit_token to avoid clash with all_digits() function in
+         general.c
 
-builtins/jobs.def
-       - added `-a' (all jobs) and `-r' (running jobs only) options to
-         `disown'
+{bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c
+       - added prototypes for static function declarations
 
-doc/{bash.{1,html},bashref.texi}
-       - documented new `-a' and `-r' options to `disown'
+shell.h
+       - add extern declarations for interactive, interactive_shell,
+         changed c files with extern declarations
 
-findcmd.c, findcmd.h
-       - new files with command searching code from execute_cmd.c and
-         function declarations from execute_cmd.h
+pcomplete.c
+       - changed it_init_aliases to avoid shadowing global variable
+         `aliases'
 
-Makefile.in, builtins/Makefile.in
-       - updated dependencies to account for new findcmd.[ch]
-       - updated dependencies to account for new redir.[ch]
+bashline.c,pathexp.c,general.h
+       - sh_ignore_func_t is now a pointer to a function taking a
+         `const char *'; users changed
 
-redir.c, redir.h
-       - new files with code that sets up lists and performs redirections
-         from execute_cmd.c and execute_cmd.h
+configure.in
+       - test for <strings.h>
 
-execute_cmd.c
-       - include new findcmd.h, redir.h
+config.h.in
+       - add #undef HAVE_STRINGS_H
 
-                                  7/11
-                                  ----
-Makefile.in, configure.in
-       - PROFILE_FLAGS is now substituted into the Makefile by configure
+bashansi.h
+       - change like recommended in autoconf manual
 
-                                  7/14
+                                  9/11
                                   ----
-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]
+[a date which will live in infamy.  prayers for the victims.]
 
-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]
+execute_cmd.c
+       - don't use an absolute index into abuf in mkfmt, use
+         sizeof(abuf) to compute last index
 
-trap.c
-       - include <unistd.h> before any of the bash-specific header files,
-         but after config.h
-         [in bash-2.01.1]
+builtins/common.c
+       - fix read_octal to do a better job of detecting overflow while
+         iterating through the string
 
-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/umask.def
+       - change octal-print mode to print 4 digits, like other shells
+       - cast umask to unsigned long to avoid problems on systems where
+         it's wider than an int (POSIX doesn't guarantee that mode_t is
+         no wider than an int, but real-world systems use int)
 
-builtins/Makefile.in
-       - PROFILE_FLAGS is now substituted into the Makefile by configure
+builtins/printf.def
+       - mklong can never return NULL (it uses xrealloc), so the mainline
+         doesn't need to check for NULL returns
+       - new function, getldouble (long double *), to get long doubles
+       - mklong now takes a `char *' as its second argument, the modifier(s)
+         to use
+       - changed use of `modchar' to handle more than a single modifier
+         character
+       - changed to handle `long double' and `L' formats better, rather
+         than discarding long double information
+       - since printf now follows the POSIX.2 rules for conversion errors,
+         we can dispense with the status returns from the get* functions
+       - make the get* functions as similar in structure as possible,
+         removing type casts, etc.
+
+lib/sh/timeval.c,execute_cmd.c
+       - change some instances of `long' to `time_t', for systems where
+         a time_t is bigger than a long
+
+jobs.c
+       - include "posixtime.h" instead of <sys/time.h>
+
+config.h.in
+       - add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD,
+         HAVE_DECL_SBRK, HAVE_DECL_PRINTF
+       - remove defines for SBRK_DECLARED and PRINTF_DECLARED
+       - add _GNU_SOURCE define
 
 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
+       - add AC_CHECK_DECLS for strtold, confstr, sbrk, printf
+       - remove call to BASH_FUNC_SBRK_DECLARED
+       - remove call to BASH_FUNC_PRINTF
 
-doc/bashref.texi
-       - documented new --enable-profiling and --enable-static-link
-         options in installation section; regenerated INSTALL
+xmalloc.c, lib/malloc/malloc.c
+       - change check of SBRK_DECLARED to HAVE_SBRK_DECL
 
-lib/glob/glob.[ch]
-       - new global variable, glob_ignore_case, turns on case-insensitive
-         filename matching in fnmatch() using the FNM_CASEFOLD flag
+print_cmd.c
+       - change PRINTF_DECLARED to HAVE_DECL_PRINTF
 
-doc/{bash.{1,html},bashref.texi}
-       - documented new shopt `nocaseglob' option
+builtins/evalstring.c, builtins/common.h
+       - parse_and_execute now takes a `const char *' as its second argument
 
-                                  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]
+input.h,parse.y
+       - with_input_from_* functions now take a `const char *' as their
+         second argument
+       - init_yy_io now takes a `const char *' as its fourth argument
 
-                                  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]
+parse.y,externs.h
+       - parse_string_to_word_list now takes a `const char *' as its second
+         argument
 
-                                  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>
+tests/builtins.right
+       - change output to account for extra digit in umask output
 
-lib/readline/terminal.c
-       - removed `outchar' function; use _rl_output_character_function in
-         its place
+pcomplib.c
+       - free_progcomp now takes a PTR_T argument
 
-support/config.guess
-       - changes to recognize HP_ARCH of `hppa2.0'
+builtins/bashgetopt.h
+       - include <stdc.h>
+       - add prototypes to extern declarations
 
-test.c
-       - new `-N' option: `test -N file' returns true if FILE exists and
-         has been modified since it was last accessed
+builtins/shopt.def
+       - add prototypes to static function declarations
+
+builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c
+       - include <ctype.h> for isdigit macro (referenced by `digit(x)')
 
-doc/{bash.{1,html},bashref.texi}
-       - documented new `test -N' option
+lib/readline/complete.c
+       - added more static function declarations with prototypes
 
-                                  7/22
+                                  9/12
                                   ----
-aclocal.m4
-       - prefer /var/spool/mail to /usr/spool/mail in BASH_DEFAULT_MAIL_DIR
-         [in bash-2.01.1]
+lib/sh/tmpfile.c
+       - use `^' instead of `*' in sh_mktmpname to make filenames a bit
+         more random
 
-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
+include/stdc.h,lib/readline/rldstdc.h
+       - add __attribute__ definition 
 
-doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
-       - documented new print-completions-horizontally variable
-       - documented new completion-ignore-case variable
+builtins/common.h
+       - add printf __attribute__ to declaration of builtin_error
 
-_distribution, Makefile.in
-       - bumped the version number up to 2.02-alpha1
+error.h
+       - add printf __attribute__ to declaration of programming_error,
+         report_error, parser_error, fatal_error, sys_error, internal_error,
+         internal_warning
 
-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]
+lib/readline/readline.h
+       - add printf __attribute__ to declaration of rl_message
 
-pathexp.c
-       - changed quote_string_for_globbing so that it takes a flags word
-         as its second argument
+pcomplete.c
+       - add printf __attribute__ to declaration of debug_printf
 
-pathexp.h
-       - defines for flags passed to quote_string_for_globbing
+print_cmd.c
+       - add printf __attribute__ to declarations of cprintf, xprintf
 
-subst.c,execute_cmd.c
-       - changed calls to quote_string_for_globbing to pass the correct
-         flag arguments
+include/chartypes.h
+       - new file, includes <ctype.h> and defines macros that check for
+         safe (ascii) arguments before calling the regular ctype macros
 
-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)
+{alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c
+parse.y
+builtins/{bashgetopt,common}.c
+builtins/{fc,printf,umask,wait}.def
+lib/glob/strmatch.c
+lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c
+examples/loadables/{head,sleep}.c
+       - include "chartypes.h" or <chartypes.h> instead of <ctype.h>
 
-doc/{bash.{1,html},bashref.texi}
-       - documented new `**' arithmetic binary operator
+Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in
+       - update dependencies to include chartypes.h
 
-                                  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]
+lib/sh/inet_aton.c
+       - use `unsigned char' instead of `char' to pass to ctype.h functions
 
-config.h.in
-       - add a line for UNDER_SYS_SIGLIST_DECLARED
-         [in bash-2.01.1]
+lib/sh/netopen.c
+       - check for '0' <= host[0] <= '9' in _getaddr instead of using
+         isdigit
 
-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]
+subst.c,lib/sh/shquote.c
+       - change array subscripts into sh_syntaxtab from `char' to
+         `unsigned char'
 
-                                  7/29
-                                  ----
-command.h
-       - new command type, ARITH_COM, used to create and execute a ((...))
-         command without translating it into let "..."
+{alias,bashline,execute_cmd,expr,general,subst}.c, parse.y
+builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c
+lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c
+examples/loadables/{head,sleep}.c
+       - change to use some of the new macros in chartypes.h
+       - remove old local macro definitions now provided by chartypes.h
 
-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
+general.h
+       - remove definition of isletter, ISOCTAL, digit, digit_value
+       - change legal_variable_starter and legal_variable_char to use
+         chartypes.h macros
+       - change ABSPATH to use chartypes.h macros
 
-make_cmd.c, make_cmd.h
-       - definition and declaration of a function to build an arithmetic
-         command
+lib/readline/util.c
+       - change to use Paul Eggert's FUNCTION_FOR_MACRO define to define
+         function replacements for macros in chardefs.h
 
-dispose_cmd.c
-       - added code to dispose of arithmetic commands
+lib/readline/chardefs.h
+       - added some of the same macros as in chartypes.h
+       - change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
+         _rl_to_upper, _rl_to_lower to use new IS* macros
+       - added _rl_isident macro from vi_mode.c:isident
 
-print_cmd.c
-       - added code to print arithmetic commands, both `regularly' and
-         when they're being traced with `set -x'
+lib/readline/{bind,complete,nls}.c
+       - change to use some of the new macros from chardefs.h
 
-externs.h
-       - extern declaration for xtrace_print_arith_cmd
+lib/readline/vi_mode.c
+       - isident -> _rl_isident
+       - remove local defines of macros in chardefs.h
 
-copy_cmd.c
-       - added code to copy arithmetic commands
+lib/sh/strtol.c
+       - updated to new version, modified from glibc 2.2.4 and sh-utils-2.0.
+         This one can do strtoll and strtoull, if necessary
 
-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
+                                  9/13
                                   ----
-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
+builtins/ulimit.def
+       - changed get_limit so it retrieves both hard and soft limits
+         instead of one or the other
+       - changed callers of get_limit
+       - changed getmaxvm to take soft limit, hard limit as arguments
+       - changed getmaxuprc to just take a single argument, the value
+       - changed calls to printone() to pass soft limit or hard limit
+         depending on `mode' instead of using old current_limit variable
+       - moved check for out-of-range limits in ulimit_internal into the
+         block that converts a string argument to a value of type rlim_t
+       - changed RESOURCE_LIMITS struct to break the description into a
+         description string and separate scale factor string
+       - changed print_all_limits to print a single error message if
+         get_limit fails, including limits[i].description now that the
+         scale factor has been removed from the description string
+       - removed DESCFMT define, since it's now used only in printone()
+       - changed printone to print the option character associated with a
+         particular limit if we're printing multiple limits
+       - changed calls to builtin_error to print the description associated
+         with a limit if setting or getting the limit fails
+       - added support for new POSIX 1003.1-200x rlim_t values:
+         RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current
+         soft and hard limits, whatever they are
+       - changed printone to print `hard' or `soft' if the current limit is
+         RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively
+       - changed ulimit_internal to handle new `hard' and `soft' arguments
+       - changed help text do describe the special limit arguments `hard',
+         `soft', and `unlimited'
 
-execute_cmd.c, jobs.c, nojobs.c
-       - changed calls to unset_bash_input to add appropriate argument
+doc/{bash.1,bashref.texi}
+       - documented new `hard' and `soft' limit arguments to `ulimit'
 
-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
+hashlib.[ch]
+       - find_hash_item now takes a `const char *' is its first argument
+       - hash_string now takes a `const char *' is its first argument
+       - remove_hash_item now takes a `const char *' as its first argument
 
-                                  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
+pcomplib.c
+       - removed cast from first argument to find_hash_item in find_compspec
 
-fnmatch.h
-       - added a define for FNM_EXTMATCH
+general.[ch]
+       - absolute_program now takes a `const char *' as its argument
+       - absolute_pathname now takes a `const char *' as its argument
 
-                                   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]
+lib/glob/glob.[ch]
+       - glob_pattern_p now takes a `const char *' as its argument
 
 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
+       - removed cast from first argument to absolute_program in
+         command_word_completion_function
+       - removed cast from first argument to glob_pattern_p in
+         attempt_shell_completion
+
+findcmd.[ch]
+       - find_absolute_program, find_user_command, find_path_file,
+         search_for_command, user_command_matches now take a
+         `const char *' as their first argument
+       - file_status, executable_file, is_directory, executable_or_directory
+         now take a `const char *' as their argument
+       - _find_user_command_internal, find_user_command_internal,
+         find_user_command_in_path 
+
+lib/sh/makepath.c, externs.h
+       - changed sh_makepath so it takes `const char *' for its first
+         two arguments
+
+hashcmd.[ch]
+       - find_hashed_filename now takes a `const char *' as its first arg
+       - remove_hashed_filename now takes a `const char *' as its first arg
 
-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
+variables.[ch]
+       - new_shell_variable, var_lookup, shell_var_from_env_string,
+         find_name_in_env_array, bind_function, makunbound,
+         bind_name_in_env_array, bind_tempenv_variable, bind_variable
+         now take a `const char *' as their first arg
+       - find_function, make_new_variable, find_tempenv_variable,
+         find_variable_internal, find_variable, set_func_read_only,
+         set_func_auto_export, all_variables_matching_prefix, assign_in_env,
+         assignment, kill_local_variable, make_local_variable, unbind_variable
+         now take a `const char *' as their arg
+       - mk_env_string now takes `const char *' arguments
+
+arrayfunc.[ch]
+       - skipsubscript now takes a `const char *' as its argument
 
-                                  8/12
+                                  9/17
                                   ----
-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)
+lib/readline/complete.c
+       - attempt to preserve case of what the user typed in
+         compute_lcd_of_matches if we're ignoring case in completion
 
-builtins/printf.def
-       - use strtoul for the `%o', `%u', `%x', and `%X' formats if it
-         is available
+builtins/{let,pushd}.def,{execute_cmd,expr}.c
+       - change some 0L constants to 0 and let the compiler sort it out
 
-                                  8/13
+                                  9/18
                                   ----
-tests/{printf.{right,tests},run-printf}
-       - extensive test suite for the new `printf' builtin
+lib/malloc/alloca.c
+       - alloca now takes a `size_t' argument
 
-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
+include/memalloc.h
+       - if we're providing an extern function declaration for alloca,
+         use `void *' and prototype if __STDC__ is defined
+       - if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't
+         define HAVE_ALLOCA
 
-                                  8/14
+                                  9/19
                                   ----
 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]
+       - do_assignment_internal, do_assignment, and do_assignment_no_expand
+         now take a `const char *' as their first argument
 
-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]
+general.h
+       - a `sh_assign_func_t' is now a function taking a `const char *' and
+         returning int
 
-                                  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]
+hashcmd.c
+       - free_filename_data now takes a `PTR_T' argument to agree with the
+         typedef for `sh_free_func_t'
 
-                                  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
+lib/sh/snprintf.c
+       - use TYPE_MAXIMUM define like strtol.c instead of huge constants
 
-                                  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
+                                  9/20
                                   ----
-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]
+lib/sh/snprintf.c
+       - don't bother to compile the bulk of the body unless HAVE_SNPRINTF
+         or HAVE_ASPRINTF is not defined
 
-                                  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
+                                  9/24
                                   ----
-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]
+flags.c
+       - ignore `set -n' if the shell was started interactively
 
-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]
+lib/readline/readline.c
+       - initialize readline_echoing_p to 0; let the terminal-specific code
+         in rltty.c set it appropriately
 
-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'
+lib/malloc/malloc.c
+       - changed internal_memalign() slightly to avoid compiler warnings about
+         negating an unsigned variable (-alignment -> (~alignment + 1))
 
-                                  8/29
+                                  9/27
                                   ----
-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
+lib/readline/readline.c
+       - changed rl_newline to set _rl_history_saved_point appropriately
+         for the {previous,next}_history code
 
-builtins/evalstring.c
-       - changes to handle $( < filename ) (equivalent to $(cat filename))
-         as in ksh
+lib/readline/rlprivate.h
+       - extern declaration for _rl_history_preserve_point
 
 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]
+       - new bindable variable, `history-preserve-point', sets value of
+         _rl_history_preserve_point
 
-                                  9/11
+                                  10/1
                                   ----
-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
+lib/malloc/table.c
+       - new file, with a map of allocated (and freed) memory for debugging
+         multiple frees, etc.  Indexed by hash on values returned by
+         malloc(); holds size, file and line number info for last alloc or
+         free and a couple of statistics pointers
 
-externs.h
-       - moved declaration of test_command to test.h
+lib/malloc/malloc.c
+       - a few cleanups; added calls for registering allocations and frees
+         if MALLOC_REGISTER is defined
+       - replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define
+       - reordered fields in `struct...minfo' in `union mhead' to restore
+         eight-byte alignment
+       - added explicit checks for underflow in free and realloc since
+         checking mh_magic2 is not sufficient to detect everything (it's
+         no longer the last field in the struct, and thus not the bytes
+         immediately preceding what's returned to the user)
+       - new function, xbotch, for printing file and line number info for
+         the failed assertion before calling botch() (programming_error())
+
+configure.in
+       - replaced call to BASH_C_LONG_LONG with call to
+         AC_CHECK_TYPES([long long])
+       - moved the C compiler tests before the tests for various
+         system types, so we can know whether we have `long long'
+         before testing for 64-bit types
+       - if we have `long long', check for sizeof(long long) and save value
 
-builtins/test.def
-       - include `test.h'
+aclocal.m4
+       - changed BASH_TYPE_BITS64_T to check `long long' before `long', but
+         after `double'
 
-                                  9/16
+                                  10/2
                                   ----
-{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
+lib/malloc/malloc.c
+       - made malloc and realloc both agree on the rounding for a request of
+         size N (round up to nearest multiple of 8 after adjusting for
+         malloc overhead); uses new ALLOCATED_BYTES macro
+       - realloc and free now use new IN_BUCKET macro for underflow checks
 
-                                  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
+execute_cmd.c
+       - fixed time_command() to use `time_t' instead of `long' to hold
+         time stamps
 
-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
+lib/sh/clock.c
+       - clock_t_to_secs now takes a `time_t *' second argument
+       - fixed print_clock_t to call clock_t_to_secs with right arguments
 
-                                  9/19
-                                  ----
-doc/{bash.{1,html},bashref.texi}
-       - documented new `shopt -p' behavior
+lib/sh/timeval.c
+       - fixed print_timeval to make `minutes' a `long' and make its
+         structure identical to print_clock_t
 
-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)
+redir.c
+       - changed redirection_error to check for EBADF and use the file
+         descriptor being redirected from in the error message if it
+         is >= 0
 
-builtins/common.h
-       - added prototypes to the extern function declarations
+Makefile.in
+       - changed release status to `beta1'
 
-                                  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
+lib/glob/collsyms.h
+       - added a few ASCII symbols to the posix_collsyms array
 
-                                  9/23
+                                  10/3
                                   ----
-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)
+aclocal.m4
+       - fixed typo in BASH_TYPE_BITS64_T
 
-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 $*)
+configure.in
+       - added check for unsigned chars with AC_C_CHAR_UNSIGNED
 
-tests/{run-array2,array-at-star,array2.right}
-       - tests for the expansions of ${array[@]} and ${array[*]}, derived
-         from the tests in dollar-at-star
+config.h.in
+       - added PROTOTYPES and __CHAR_UNSIGNED__ #defines
 
-                                  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
+general.h
+       - if CHAR_MAX is not define by <limits.h>, provide a definition
 
-                                  9/25
-                                  ----
-parse.y
-       - added `\r' escape sequence to the prompt expansion code
+builtins/printf.def
+       - change tescape() to mask \0 and \x escape sequences with 0xFF
+       - change tescape() to process at most two hex digits after a `\x'
 
-lib/readline/chardefs.h
-       - added defines for ISOCTAL, OCTVALUE, isxdigit (if not defined),
-         and HEXVALUE
+lib/sh/strtrans.c
+       - change strtrans() to mask \0 and \x escape sequences with 0xFF
+       - change strtrans() to process at most two hex digits after a `\x'.
+         This affects `echo -e' and $'...' processing
 
 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}
+       - changed rl_translate_keyseq() to process at most two hex digits
+         after a `\x'
 
-tests/dtack2.{tests,right}
-       - new tests for the directory stack tilde expansion code
+lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
+       - changed documentation for key binding escape sequences to specify
+         that at most two hex digits after \x are translated
+       - changed documentation for key binding to specify that the result
+         of \nnn or \xhh escapes is an eight-bit value, not just ASCII
 
-tests/run-dirstack
-       - now runs both dstack and dstack2
+doc/{bash.1,bashref.texi}
+       - changed documentation of $'...' to specify that at most two hex
+         digits after \x are translated
+       - changed `echo' documentation to specify that at most two hex
+         digits after \x are translated
+       - changed documentation for `echo' and $'...' to specify that the
+         result of \nnn or \xhh escapes is an eight-bit value, not just ASCII
 
-                                  10/3
+                                  10/4
                                   ----
-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()
+lib/malloc/malloc.c
+       - changed interface for xbotch to pass memory address and error code
+         as two additional arguments
+       - call mregister_describe_mem from xbotch to get the last allocation
+         or free before the botch
 
-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'
+configure.in
+       - call AC_CHECK_DECLS([strsignal])
 
-shell.c
-       - change call to initialize_shell_options to add the correct argument
+config.h.in
+       - add HAVE_DECL_STRSIGNAL
 
-builtins/common.h
-       - changed extern declaration for initialize_shell_options
+siglist.h
+       - make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL
 
-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/5
+                                  ----
+support/texi2html
+       - upgraded to version 1.64
 
-                                  10/6
+                                  10/9
                                   ----
 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
+       - added check for `long long' to BASH_TYPE_PTRDIFF_T
 
-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'
+configure.in
+       - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ
 
-builtins/mkbuiltins.c
-       - don't assume that st_size fits into an int
+aclocal.m4
+       - replaced body of BASH_STRUCT_TERMIOS_LDISC with call to
+         AC_CHECK_MEMBER(struct termios.c_line, ...)
+       - replaced body of BASH_STRUCT_TERMIO_LDISC with call to
+         AC_CHECK_MEMBER(struct termios.c_line, ...)
 
-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'
+[bash-2.05a-beta1 frozen]
 
-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/10
+                                  -----
+lib/sh/snprintf.c
+       - fixed exponent() to not smash the trailing zeros in the fraction
+         when using %g or %G with an `alternate form'
+       - fixed exponent() to handle the optional precision with %g and %G
+         correctly (number of significant digits before the exponent)
 
                                   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
+expr.c
+       - fixed strlong() to correct the values of `@' and `_' when
+         translating base-64 constants (64#@ == 62 and 64#_ == 64), for
+         compatibility with ksh
 
-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
+lib/sh/itos.c
+       - added a slightly more flexible fmtlong() function that takes a
+         base argument and flags (for future use)
+       - rewrote itos and inttostr in terms of fmtlong
 
-pcomplib.c
-       - find_compspec now takes a `const char *' argument
+lib/sh/fmtulong.c
+       - new file, converts unsigned long to string.  hooks for `unsigned
+         long long' in the future.  unused as yet
 
-                                  11/29
+                                  10/15
                                   -----
-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)
+lib/readline/rltty.c
+       - change the SET_SPECIAL macro to avoid possible (but highly
+         unlikely) negative array subscripts
 
-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
+error.h
+       - add __attribute__ to extern declaration of itrace (even though the
+         function isn't defined in released versions of bash)
 
-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
+bashansi.h
+       - include <strings.h> if HAVE_STRINGS_H is defined, to get any extra
+         function declarations provided therein
 
-                                  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
+copy_cmd.c
+       - fix typo in forward declaration for copy_arith_for_command
 
-                                  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
+lib/malloc/stats.c
+       - make the accumulators in _print_malloc_stats be `unsigned long'
+         instead of `int'
 
-                                  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
+externs.h, sig.h
+       - add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level
+         declarations
 
-examples/loadables/realpath.c
-       - new loadable builtin, canonicalizes pathnames and expands symlinks
+lib/sh/mailstat.c, support/bashversion.c
+       - include <bashansi.h> for some string function declarations
 
-builtins/ulimit.def
-       - added undocumented -w option for setting RLIMIT_SWAP, if it's defined
+lib/malloc/shmalloc.h
+       - added extern declarations of functions that do malloc debugging
 
-                                  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
+lib/readline/{isearch,readline,vi_mode}.c
+       - make sure we index into _rl_keymap with a non-negative index
 
-                                  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
+parse.y
+       - make sure we index into sh_syntaxtab with a non-negative index
 
-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/vi_mode.c
+       - bound the vi_mark_chars array with the number of characters between
+         'a' and 'z' rather than using a fixed amount
+       - don't use _rl_lowercase_p when deciding whether the char read by
+         rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z'
 
-lib/readline/input.c
-       - new function to clear rl_pending_input: rl_clear_pending_input()
+lib/readline/chardefs.h
+       - conditionally include memory.h and strings.h as in general.h
+       - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
+       - add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c)
+       - fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
+         _rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower,
+         and _rl_isident to work on systems with signed chars
 
-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
+include/chartypes.h
+       - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
 
-                                  12/15
-                                  -----
-lib/readline/histfile.c
-       - don't leak file descriptors while attempting to truncate a non-regular
-         file
+lib/sh/{strcasecmp,strtod,strtol}.c
+       - don't pass possibly-negative characters to tolower() or toupper()
 
-input.c
-       - make sure check_bash_input sets the close-on-exec flag for the file
-         descriptor used to save the bash input fd
+lib/glob/strmatch.c
+       - don't bother testing for isupper in FOLD; rely on TOLOWER macro
+         from <chartypes.h> to do it
+       - don't use local definitions of isblank, et al.; rely on macros
+         from <chartypes.h>
 
-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()
+lib/readline/{display,readline}.c, mksyntax.c
+       - use new ISPRINT macro instead of isprint()
 
-                                  12/18
-                                  -----
-builtins/ulimit.def
-       - change set_limit to account for Cygwin's setdtablesize() being
-         declared as a void function
+builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c
+       - don't assume that a pid_t fits into an int for printing and other
+         uses
 
-support/config.{guess,sub}
-       - change cygwin32 to cygwin
+variables.[ch]
+       - the unused put_gnu_argv_flags_into_env now takes a `long' pid
+         argument
 
-                                  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
+configure.in, config.h.in
+       - call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found
+       - check for strtoull(), define HAVE_STRTOULL if found
+       - check for uintmax_t, define to `unsigned long' if not found
+
+lib/sh/mailstat.c
+       - don't use st_blocks member of struct stat unless
+         HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink
+         field to return the total number of messages in a maildir-style
+         mail directory
+
+general.h,{alias,expr,general,subst,variables}.c
+builtins/{printf,read}.def
+lib/readline/{bind,complete,nls}.c
+lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c
+       - cast args to ctype macros to unsigned char for systems with signed
+         chars; other fixes for signed chars
+
+lib/sh/{fmtullong,strtoull.c}
+       - new files, more support for `long long'
 
-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
+Makefile.in, lib/sh/Makefile.in
+       - make fmtullong.o and strtoull.o part of libsh
 
-variables.h
-       - new extern declaration for print_func_list
+lib/sh/itos.c
+       - remove local copy of fmtlong; use fmtulong instead
+       - new functions: uitos, uinttostr work on `unsigned long'
 
-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)
+lib/sh/snprintf.c
+       - fixes to make `unsigned long long' work (%llu)
+       - fixes to make unsigned formats not print the sign when given
+         an unsigned long that is greater than LONG_MAX
 
-                                  12/27
-                                  -----
-general.h
-       - add an ISOCTAL define
+externs.h
+       - extern declarations for fmtulong, fmtulloing, strtoull
+       - extern declarations for uitos, uinttostr
 
-builtins/common.h
-       - use ISOCTAL in read_octal function
+                                  10/16
+                                  -----
+configure.in
+       - move header checks before function checks
+       - move c compiler tests before header checks
+       - check for <inttypes.h> with BASH_HEADER_INTTYPES
+       - change type checks for intmax_t, uintmax_t to not attempt to
+         include <stdint.h>
+       - check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul
+         with BASH_CHECK_DECL (for declarations in header files) and
+         AC_REPLACE_FUNCS (for availability and LIBOBJS substitution)
+       - remove check for have_long_long around sizeof check for long long
+         (since autoconf will give it a size of 0 if the type isn't found)
 
-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
+config.h.in
+       - add a define for HAVE_INTTYPES_H
+       - add a define for HAVE_UNSIGNED_LONG_LONG
+       - add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL
 
-                                  12/28
-                                  -----
-doc/{bash.1,bashref.texi}
-       - make sure `vi-move' is a documented keymap argument to bind's
-         `-m' option
+aclocal.m4
+       - new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS
+         on <inttypes.h>; separate so it can be AC_REQUIREd
+       - AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE
+       - include <inttypes.h> in BASH_CHECK_TYPE if HAVE_INTTYPES_H is
+         defined
+       - change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE
+       - new `long long' checking macros:  BASH_TYPE_LONG_LONG and
+         BASH_TYPE_UNSIGNED_LONG_LONG
+       - new BASH_CHECK_DECL 
 
-                                  12/29
-                                  -----
-variables.c
-       - change print_assignment so that functions are printed in a way that
-         may be reused as input (without the `=')
+lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in
+       - new files
 
-                                1/2/2001
-                                --------
-test.c
-       - fix test_command to print an error message if `[' is supplied a
-         single argument that is not `]'
+externs.h
+       - extern declarations for strtoll, strtoimax, strtoumax
 
-support/shobj-conf
-       - change test of $SHOBJ_CC from `gcc*' to `*gcc*' to handle full
-         pathnames
+lib/malloc/alloca.c
+       - include <bashtypes.h> for size_t
 
-                                  1/11
-                                  ----
-execute_cmd.c
-       - in initialize_subshell, zero out builtin_env, since those aren't
-         supposed to be exported
+builtins/printf.def
+       - new functions: getllong, getullong, getintmax, getuintmax; return
+         long long, unsigned long long, intmax_t, uintmax_t respectively
+       - builtin printf now handles `ll' and `j' length modifiers directly
 
-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
+lib/sh/Makefile.in
+       - use LIBOBJS to decide whether or not the strto* functions are
+         needed
 
-                                  1/17
-                                  ----
-builtins/fc.def
-       - create temp file with MT_USETMPDIR
+                                  10/17
+                                  -----
+configure.in
+       - call AC_REPLACE_FUNCS(rename)
+       - move getcwd, strpbrk, strcasecmp, strerror, strtod
+         from AC_CHECK_FUNCS to AC_REPLACE_FUNCS
+       - only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes"
+       - call BASH_CHECK_SYS_SIGLIST
+       - if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint)
 
-variables.c
-       - allow function local readonly variables to overwrite (or shadow)
-         other (calling) function readonly variables, but not global
-         readonly ones
+lib/sh/Makefile.in
+       - remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror,
+         strtod, vprint from OBJECTS; picked up from LIBOBJS
 
-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)
+aclocal.m4
+       - change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc
+         getcwd(3) calls popen(3)
+       - change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's
+         not found in libc or as a #define even with the special includes
+       - BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT
+       - BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR
+       - BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING
+       - BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS
+       - BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE
+       - BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK
+       - BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC
+       - BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT
+       - BASH_FUNC_PRINTF -> BASH_DECL_PRINTF
+       - BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK
+       - BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T
+       - BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET
+       - new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for
+         sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to
+         siglist.o if appropriate
 
-                                  1/22
-                                  ----
 Makefile.in
-       - changed RELSTATUS to `beta1'
+       - use SIGLIST_O variable to decide whether or not we need siglist.o
 
-lib/readline/terminal.c
-       - added rl_set_screen_size function, wrapper around
-         _rl_set_screen_size so bash doesn't call _rl_ functions
+{execute_cmd,subst}.c
+       - change a couple of instances of ISDIGIT to DIGIT, where we really,
+         really only want ascii digits
 
-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
+ansi_stdlib.h
+       - don't need a declaration for atol()
 
-lib/readline/doc/rltech.texinfo
-       - documented rl_explicit_arg, rl_editing_mode, rl_numeric_arg,
-         rl_last_func
-       - documented rl_set_screen_size
+                                  10/18
+                                  -----
 
-{jobs,nojobs}.c
-       - _rl_set_screen_size -> rl_set_screen_size
+aclocal.m4
+       - new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support
+         for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT
+         if successful
 
-{bashline,pcomplete}.c, builtins/set.def
-       - removed extern declarations of variables defined in readline.h
+configure.in
+       - call AC_CHECK_FUNCS for isascii
+       - call BASH_FUNC_PRINTF_A_FORMAT
 
-                                  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
+config.h.in
+       - add a define for HAVE_ISASCII
+       - add a define for HAVE_PRINTF_A_FORMAT
+
+lib/sh/snprintf.c
+       - for long double output, fall back to sprintf using ldfallback()
+         function for floating point formats
+       - support %a, %A using dfallback() or ldfallback() if
+         HAVE_PRINTF_A_FORMAT is defined
+       - fix bug in vasprintf that returned wrong value in its first
+         argument if the buffer holding the result string got reallocated
+       - fixed PUT_CHAR macro to increment the counter even if we've
+         exceeded the buffer size, for the return value from
+         vsnprintf/snprintf
+       - fix vsnprintf_internal to not use counter < length as a loop
+         condition, but always process the entire format string (for
+         the return value from vsnprintf/snprintf)
 
-configure.in
-       - pass `-I ${includedir}' to rlvers.sh
+builtins/printf.def
+       - support %a, %A if HAVE_PRINTF_A_FORMAT is defined
 
-                                  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
+include/typemax.h
+       - new file, with the TYPE_MAXIMUM stuff that's duplicated in several
+         files in lib/sh
 
-                                   2/1
-                                   ---
-unwind_prot.c
-       - added new function, clear_unwind_protect_list, to zero out the
-         unwind_protect list, optionally freeing the elements
+lib/sh/{fmtulong,strtol,snprintf}.c
+       - include <typemax.h> instead of having the definitions in each file
 
-unwind_prot.h
-       - new extern declaration for clear_unwind_protect_list
+lib/sh/Makefile.in
+       - updated dependencies for typemax.h
 
-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>
+                                  10/22
+                                  -----
+configure.in
+       - call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines
+         in chartypes.h
 
-lib/readline/doc/hstech.texinfo
-       - made sure all function prototypes are valid ANSI C (mostly
-         changing () to (void))
+config.h.in
+       - defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT}
 
-lib/readline/doc/rluser.texinfo
-       - a few clarifications
+include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h
+       - don't redefine some is* ctype macros/functions if HAVE_ISXXX is
+         defined (meaning that an appropriate function, but not a macro,
+         exists)
 
-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/sh/strtrans.c
+       - new function, ansic_shouldquote, returns 1 if argument string
+         contains non-printing chars that should be quoted with $'...'
 
-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()
+externs.h
+       - new declaration for ansic_shouldquote()
 
-lib/readline/rltty.c
-       - new function, rl_tty_set_default_bindings, just calls
-         rltty_set_default_bindings (needed `rl_' prefix)
+variables.c
+       - change print_var_value to ansi C quote the string if we're not in
+         posix mode and the variable's value contains non-printing chars,
+         to use the regular shell single quoting if the value contains
+         shell meta-characters, and to just output the string otherwise
 
-lib/readline/readline.c
-       - readline_default_bindings now calls rl_tty_set_default_bindings
+lib/sh/shquote.c
+       - add `break' to `case '~':' to avoid fallthrough and extra test
 
-lib/readline/terminal.c
-       - renamed crlf() to rl_crlf(); crlf() is still defined for backwards
-         compatibility 
+doc/bashref.texi
+       - note that in POSIX mode, `set' displays variable values that
+         include nonprinting characters without quoting, unless they
+         contain shell metacharacters
 
-bashline.c, lib/readline/{complete,display}.c
-       - changed all calls to crlf() to rl_crlf()
+builtins/printf.def, lib/sh/snprintf.c
+       - handle `F' conversion specifier as equivalent to 'f'
 
-test.c
-       - fix filecomp() so that `test file1 -nt file2' doesn't fail if file1
-         exists but file2 does not
+parse.y, {nojobs,variables}.c
+       - a couple of cleanups for when building a minimal configuration
 
-                                   2/5
-                                   ---
-lib/readline/{terminal,compat}.c
-       - move crlf() backwards-compatibility definition to compat.c
+nojobs.c
+       - new function: stop_making_children(), just sets
+         already_making_children to 0 (like stop_pipeline)
 
-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
+subst.c
+       - call stop_making_children from subst.c:command_substitute if
+         JOB_CONTROL is not defined.  This fixes the bug where the wrong
+         process is waited for (and its status returned) when using
+         command substitution in a null command in a shell function
 
-                                   2/6
-                                   ---
-[bash-2.05-beta1 released]
+builtins/printf.def
+       - new variable `tw' used to keep track of the total number of
+         characters written by a single call to `printf' -- to be
+         used for the `%n' conversion, which will be added later.  It
+         gets reset each time we reuse the format string, which is what
+         ksh93 seems to do
 
-lib/readline/compat.c
-       - add extern declaration for rl_crlf()
+                                  10/23
+                                  -----
+variables.c
+       - new function, bind_var_to_int (char *var, long val)
 
-lib/readline/undo.c
-       - initialize start and end in rl_do_undo to avoid bogus gcc compiler
-         warning with -Wall
+variables.h
+       - extern declaration for bind_var_to_int
 
-lib/readline/rlprivate.h
-       - fix typo in extern declaration of _rl_current_display_line()
-       - add extern declaration of _rl_free_saved_history_line()
+lib/sh/netopen.c
+       - use gai_strerror() for error messages when getaddrinfo() fails
+       - use PF_INET if DEBUG is defined, since IPv6 doesn't work for me
 
-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
+Makefile.in
+       - pass DEBUG=${DEBUG} down to makes in some subdirectories
 
-lib/readline/doc/rltech.texinfo
-       - documented rl_get_screen_size
+{builtins,lib{glob,sh}}/Makefile.in
+       - append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile
 
-                                   2/7
-                                   ---
-pathexp.c
-       - a couple of fixes for the POSIX_GLOB_LIBRARY version of the globbing
-         code
+builtins/printf.def
+       - added support for %n format conversion char (number of chars printed
+         so far from current format string)
 
-expr.c
-       - fixed omission of ^= from the special assignment operators
+                                  10/24
+                                  -----
+variables.c
+       - if posixly_correct is set, the default value of $MAILCHECK is 600
+       - use legal_number instead of atoi in adjust_shell_level
+       - treat non-numeric assignments to SECONDS as 0 in assign_seconds
+       - new function, init_funcname_var; sets FUNCNAME as a dynamic variable
+         if it's not set in the initial environment
+       - new function, init_groups_var; sets GROUPS as a dynamic array
+         variable if it's not set in the initial environment
+       - new function, init_dirstack_var; sets DIRSTACK as a dynamic array
+         variable if it's not set in the initial environment
+       - new function, init_seconds_var; sets SECONDS as a dynamic
+         variable using any valid integer value in the initial environment
+         as the initial value, as if an assignment had been performed
+       - call init_funcname_var, init_groups_var, init_dirstack_var,
+         init_seconds_var from initialize_dynamic_variables
+       - non-numeric values assigned to LINENO are treated as 0
+       - change initialize_shell_variables to not auto-export PATH or TERM
+       - change set_home_var to not auto-export HOME
+       - change set_shell_var to not auto-export SHELL
+       - broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE
+         out into a separate function, set_machine_vars; none of those
+         variables are auto-exported
+       - bash no longer un-exports SSH_CLIENT or SSH2_CLIENT
 
 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)
+       - changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if
+         SSH_SOURCE_BASHRC is defined in config-top.h
 
-                                  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
+config-top.h
+       - added a commented-out definition for SSH_SOURCE_BASHRC
 
-                                  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
+                                  10/25
+                                  -----
 
-support/config.sub
-       - added support for Linux running on the IBM S390
+Makefile.in
+       - changed RELSTATUS to `rc1' (release candidate 1)
 
-                                  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)
+                                  10/29
+                                  -----
+locale.c
+       - fixed an `=' vs. `==' typo in set_locale_var when parsing
+         LC_NUMERIC
 
-input.h
-       - extern declarations for fd_is_bash_input and save_bash_input
-       - new flag for b->flag: B_WASBASHINPUT
+doc/{bash.1,bashref.texi}
+       - document what bash does with $POSIXLY_CORRECT
 
-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
+doc/builtins.1
+       - some updates
 
-lib/readline/rlprivate.h
-       - extern declaration for _rl_strpbrk
+builtins/psize.sh
+       - some mktemp(1) changes
 
-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.c
+       - change rl_backward to check for rl_point < 0 and reset to 0 if so
 
-lib/readline/readline.h
-       - extern declaration for rl_set_keyboard_input_timeout
+lib/readline/util.c
+       - don't compile in _rl_strpbrk if HAVE_STRPBRK is defined
 
-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()
+lib/readline/rlprivate.h
+       - remove extern declaration of _rl_strpbrk
 
-                                  2/20
-                                  ----
-findcmd.c
-       - new function, executable_or_directory(name), returns 1 if NAME is
-         an executable file or a directory
+lib/readline/rldefs.h
+       - #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise
+         add extern declaration of _rl_strpbrk from rlprivate.h
 
-findcmd.h
-       - extern declaration for executable_or_directory()
+{mailcheck,shell,variables}.c
+       - make sure to include posixtime.h to get any prototype for time(3)
+         in scope
 
-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)
+{array,eval,execute_cmd,mksyntax,subst}.c, parse.y
+builtins/common.c
+lib/sh/pathcanon.c
+       - a few changes as the result of `gcc -Wall' patches from solar
+         designer
 
-                                  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
+builtins/read.def, parse.y
+       - change some calls to free() to xfree()
 
-variables.c
-       - new function, merge_function_env(), merges the function_env into
-         the shell_variables table
+builtins/set.def
+       - make sure unset_builtin() resets unset_array to 0 each time through
+         the loop, because it's set (and used) depending on the current
+         argument
 
-variables.h
-       - extern declaration for merge_function_env()
+shell.h
+       - new define, USE_VAR, to force the compiler to not put a particular
+         variable in a register -- helpful if registers are not restored
+         by setjmp/longjmp
 
-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
+builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c
+       - use USE_VAR for some variables
 
 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
+       - fixed a case in expand_word_internal where a NULL pointer could
+         have been passed to free() (though free() should ignore it)
+       - fixed a case at the end of expand_word_internal where LIST could
+         have been used uninitialized (it makes gcc happy, though it
+         doesn't happen in practice)
 
-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)
+test.c
+       - give test_syntax_error(), beyond(), and integer_expected_error()
+         the `__noreturn__' attribute for gcc
 
-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
+unwind_prot.c
+       - in clear_unwind_protect_list(), convert `flags' to `long' (via
+         assignment to a `long' variable) before casting to `char *', in
+         case pointers and longs are 64 bits and ints are 32 (makes no
+         difference on 32-bit machines)
 
-                                  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
+                                  10/30
+                                  -----
+print_cmd.c
+       - fixed cprintf to avoid gcc warning about assigning const pointer
+         to non-const (discarding type qualifier)
 
-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
+{make_cmd,pcomplete,test}.c,parse.y
+       - some minor changes to shut up gcc warnings
 
-doc/bashref.texi
-       - added item in BASH Posix Mode section noting that alias expansion
-         is always enabled when in posix mode
+lib/sh/tmpfile.c
+       - fixed sh_mktmpfp to avoid file descriptor leaks in the case that
+         sh_mktmpfd succeeds but fdopen fails for some reason
+       - change sh_mktmpfd to use the same scheme for computing `filenum'
+         as sh_mktmpname
+       - change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined
+       - changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to
+         `nameroot' if `nameroot == 0' (duh)
+       - add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined
+       - add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined
+
+support/{fixlinks,mkclone}
+       - use mktemp if it's available for the symlink test
+       - use $TMPDIR instead of hardcoding /tmp; default to /tmp
+       - use a better filename for the symlink test instead of `z'
 
-Makefile.in
-       - changed release level to `beta2'
+support/bashbug.sh
+       - more changes inspired by a patch from solar designer
 
-                                   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)'
+lib/malloc/Makefile.in
+       - new target `alloca', which builds libmalloc.a with alloca.o only
+         (for systems without alloca that are configured --without-bash-malloc)
 
-doc/bashref.texi
-       - Noted above change in posix mode section
+configure.in
+       - if we don't have a working alloca and are not configured to build
+         the bash malloc library, make a malloc library containing only
+         alloca.o
 
-                                   3/5
-                                   ---
-lib/readline/bind.c
-       - changed rl_get_keymap_by_name to work case-insensitively
+aclocal.m4
+       - slight change to RL_LIB_READLINE_VERSION to deal with minor version
+         numbers with a letter appended (like 4.2a)
 
-                                   3/6
-                                   ---
-doc/readline.{0,3,ps}
-       - removed from distribution; moved to readline distribution
+                                  10/31
+                                  -----
+doc/{bash.1,bashref.texi}
+       - slight change to note that only interactive shells resend a SIGHUP
+         to all jobs before exiting
 
-lib/readline/doc/history.3
-       - man page for history library; neither built nor installed
-         (part of the standalone readline distribution)
+externs.h
+       - declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined.  This
+         keeps picky compilers from choking because intmax_t is not defined
+         (MacOS X 10.1)
 
-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
+builtins/printf.def
+       - #define NEED_STRTOIMAX_DECL before including shell.h
 
-lib/readline/history.c
-       - max_input_history is now history_max_entries; the old variable is
-         maintained for backwards compatibility
+                                  11/1
+                                  ----
+general.c
+       - check in bash_tilde_expand() for an unquoted tilde-prefix; don't
+         bother passing the string to tilde_expand unless the prefix is
+         unquoted
 
-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
+shell.c
+       - fix a problem with $LINENO when executing commands supplied with
+         the -c invocation option when ONESHOT is defined
 
-bashline.c
-       - changed to use history_max_entries
+[bash-2.05a-rc1 frozen]
 
-lib/readline/history.h
-       - extern declaration for history_max_entries
-       - extern declaration for history_word_delimiters
+builtins/printf.def
+       - fix the %n conversion to require that the variable name supplied
+         be a valid shell identifier
 
-                                   3/8
-                                   ---
-test.c
-       - changed unary_operator() to return FALSE for non-numeric arguments
-         to `-t'
+variables.c
+       - improve random number generator slightly by using the upper 16
+         bits of the running random number instead of the lower 16, which
+         are incrementally more random
 
-                                   3/9
-                                   ---
-[bash-2.05-beta2 released]
+                                  11/2
+                                  ----
+configure.in
+       - if RL_INCLUDEDIR ends up being /usr/include, don't put
+         -I$(RL_INCLUDEDIR) into CFLAGS
 
-                                  3/12
+                                  11/5
                                   ----
-lib/readline/doc/rltech.texinfo
-       - documented rl_set_paren_blink_timeout()
-       - moved the example function to its own info node
+doc/{bash.1,bashref.texi}
+       - correct description of POSIXLY_CORRECT to note that the shell enters
+         posix mode *before* the startup files are read if POSIXLY_CORRECT
+         is in the initial environment
 
-lib/readline/{hstech.texinfo,history.3}
-       - `$' is not in the default value of history_word_delimiters
+variables.c
+       - fix function prologues for init_dirstack_var and init_groups_var
+         to agree with caller (no arguments)
 
-                                  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
+jobs.c
+       - fix forward function declarations for pipe_read and pipe_close
 
-                                  3/15
-                                  ----
+subst.c
+       - removed `inline' attribute from skip_double_quoted because it can
+         potentially be called recursively
 
-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
+bashline.c
+       - quick fix to bashline.c:attempt_shell_completion programmable
+         completion code to just punt if the end of the command word found
+         by find_cmd_end is <= the start found by find_cmd_start (the bug
+         is probably in find_cmd_start -- fix later)
 
-jobs.h
-       - changed extern declaration of give_terminal_to
+pcomplete.c
+       - fix gen_matches_from_itemlist to return if the stringlist is null
+         after any cleaning or initialization, before trying to use it
+       - fix GEN_COMPS to only bother to try to append the STRINGLIST
+         returned by gen_matches_from_itemlist to `glist' if it's non-NULL
 
-{jobs,sig,subst}.c,parse.y
-       - changed all calls to give_terminal_to to add a second argument
-         of 0
+lib/sh/stringlist.c
+       - make copy_stringlist return NULL if the STRINGLIST * passed as an
+         argument is NULL
+       - make append_stringlist call copy_stringlist only if M2 is non-NULL;
+         otherwise just return NULL if m1 is NULL
+       - make word_list_to_stringlist return 0 immediately if the passed
+         LIST argument is NULL
+       - make realloc_stringlist call alloc_stringlist if the passed
+         STRINGLIST argument (`sl') is 0, just like realloc calls malloc
+
+subst.c
+       - in skip_to_delim(), if we have an unclosed ${, and it's at the end
+         of the string (string[i] == '{', string[i+1] == '{' and
+         string[i+2] == 0, return si (i +2) immediately without bothering
+         to call extract_dollar_brace_string or extract_delimited_string
+       - in skip_to_delim(), if string[i] is 0 after a call to
+         extract_dollar_brace_string or extract_delimited_string (meaning we
+         have an unclosed ${ or other expansion, return i immediately without
+         doing a `continue' (which will increment i past the end of string)
+       - in split_at_delims, don't increment te by 1 if it's pointing to a
+         delimiter.  this has the effect of skipping the first delimiter
+         char in a possibly multi-character delimiter, and ignoring
+         single-char delimiters like `>'
+
+configure.in
+       - use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to
+         AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test
+         fails
 
-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
+general.c
+       - introduce two new variables: bash_tilde_{prefixes,suffixes}, set
+         to the additional prefixes and suffixes bash wants to pass to the
+         tilde expansion code (reserved for post-bash-2.05a fix)
 
-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
+aclocal.m4
+       - add missing `test' in BASH_CHECK_SYS_SIGLIST
 
-                                  3/27
+                                  11/7
                                   ----
-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
+lib/readline/vi_mode.c
+       - fix rl_vi_goto_mark to explicitly check that the desired mark is
+         between 'a' and 'z', since some locales have lowercase letters
+         outside that range, which could cause a negative subscript
 
-redir.c
-       - the `>& filename' redirection now works in posix mode, redirecting
-         stdout and stderr, since POSIX.2 leaves it unspecified
+include/chartypes.h
+       - remove superfluous `#undef ISASCII'
 
-doc/bashref.texi
-       - removed item about `>& filename' from Bash POSIX Mode section
+lib/sh/strto[iu]max.c
+       - changes from Paul Eggert to work around buggy compilers and catch
+         configuration errors at compile time
 
-parse.y
-       - fixed a problem in decode_prompt_string with `\W' not printing
-         anything if PWD == "//"
+aclocal.m4
+       - new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but
+         with a fix for Irix 5.3 (not called, since I'm not sure it's the
+         right thing to do -- the C standard allows double and long double
+         to be the same size)
 
-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
+lib/sh/snprintf.c
+       - only try to write the trailing NUL in vsnprintf_internal if
+         data->length is >= 0, since if it's not, we probably don't have
+         a buffer
 
 Makefile.in
        - changed RELSTATUS to `release'
 
-                                  3/28
+                                  11/8
                                   ----
-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
+lib/sh/strtol.c
+       - make sure chars passed to toupper are cast to unsigned
 
-                                   4/2
-                                   ---
-lib/readline/readline.c
-       - changed default value of RL_LIBRARY_VERSION to `4.2'
+unwind_prot.c
+       - change clear_unwind_protect_list to not require a cast from `int'
+         to `char *'
 
-                                   4/5
-                                   ---
-[bash-2.05-release frozen]
+lib/readline/chardefs.h
+       - make _rl_digit_p succeed only for ascii digits, since that's what
+         most callers assume