]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - CWRU/old-changelogs/CWRU.chlog.v9
bash-4.3-beta file cleanup
[thirdparty/bash.git] / CWRU / old-changelogs / CWRU.chlog.v9
diff --git a/CWRU/old-changelogs/CWRU.chlog.v9 b/CWRU/old-changelogs/CWRU.chlog.v9
deleted file mode 100644 (file)
index d1474fb..0000000
+++ /dev/null
@@ -1,5062 +0,0 @@
-[work begins on post-netwide-1.12 release.]
-
-                                  1/30
-                                  ----
-machines.h, general.c, nojobs.c
-       - changes for AIX/RT 2.2.1
-
-lib/readline/vi_mode.c
-       - fixed a bug with vi mode, `cw' and whitespace that removed the
-         last character of the previous word
-
-lib/readline/readline.c
-       - readline did not correctly save the value of last_readline_init_file
-         across things like `bind'.  Now it does the following:
-
-               last_readline_init_file initialized to NULL
-               readline_initialize_everything calls rl_read_init_file with
-               an explicit argument of ~/.inputrc
-               rl_read_init_file sets last_readline_init_file to
-               savestring(filename) so it saves a fresh copy
-
-getcwd.c
-       - new version from Roland McGrath, with changes for the bash build
-         environment
-
-execute_cmd.c, variables.c
-       - bash was not looking for $PATH in the temp environment when
-         looking up a command.  Now, find_variable looks in the temp
-         environment if subshell_environment is set.  This will be
-         set when bash is looking a command up in the path (it's set in
-         find_user_command_internal while looking up the path string to
-         pass to find_user_command_in_path)
-
-                                  1/31
-                                  ----
-make_cmd.c
-       - removed useless call to alloca, replaced with a static array
-         definition
-
-                                   2/3
-                                   ---
-machines.h
-       - Cray machine description
-
-                                   2/4
-                                   ---
-builtins/getopt.[ch]
-       - upgraded to a more recent version from the Gnu C library
-
-jobs.c
-       - added a call to init_signal_handler to replace equivalent in-line
-         code in initialize_jobs
-
-trap.c
-       - new function: maybe_call_trap_handler (sig) calls a trap function
-         for signal SIG if one exists
-
-jobs.c
-       - bash now (effectively) ignores SIGINT while waiting for a job run
-         from a script.  We don't want to die if a SIGINT is received while
-         running another process, only if that job dies due to SIGINT.  This
-         lets interactive processes run from scripts that want to catch
-         SIGINT and handle it do so without disturbing the shell that's
-         interpreting the script.  All other versions of sh behave this way.
-
-         The implementation is fairly straightforward.  In wait_for, the
-         parent shell sets the SIGINT handler to wait_sigint_handler, which
-         allows the wait builtin to be interrupted and sloughs off everything
-         else.  flush_child controls the behavior when a `foreground' process
-         dies due to SIGINT: it calls a trap handler if one exists;
-         otherwise it calls either sigint_sighandler (interactive) or
-         termination_unwind_protect (non-interactive).  It then resets the
-         SIGINT signal handler to what it was before wait_for changed it.
-         wait_for does reset the sighandler before returning if flush_child
-         does not, so the SIGINT does not stay ignored.
-
-         There is a race condition between the time that make_child creates
-         a child and sets it to run and the time the parent calls wait_for.
-         This is handled by having old_sigint_handler, which holds the
-         value of the `real' SIGINT signal handler, be NULL except when the
-         shell is in wait_for, and only operate on the SIGINT handler state
-         if this variable is non-null.
-
-         Should the stuff be unwind-protected?  I don't think so; u-p gets
-         run on interrupts, and we're controlling the interrupt handler.
-
-                                   2/5
-                                   ---
-trap.c
-       - new function signal_is_trapped (sig) returns 1 if a trap handler
-         has been established for SIG
-
-shell.c
-       - have throw_to_top_level call longjmp(top_level, DISCARD) if the
-         shell is non-interactive and a SIGINT occurred and was trapped
-
-cpp-Makefile, machines.h
-       - instead of running `basename ...` to discover the name of the
-         alloca object file, use a new variable $ALLOCA_OBJECT.  It's set
-         to alloca.o if we're using the C emulation, and to ALLOCA_OBJ,
-         which must be defined in the machines.h entry, for an
-         architecture defining ALLOCA_ASM
-
-cpp-Makefile
-       - BSD make of 4.3-tahoe and later already defines MACHINE and does
-         not allow it to be overridden, so replace it with Machine.
-
-endian.c
-       - added changes from Cray to configure endianness correctly on
-         machines with 8-byte longs
-
-parse.y
-       - added '&' to no_semi_successors in bash_add_history so bash will
-         not add a semicolon after it appears
-
-                                   2/6
-                                   ---
-subst.c
-       - since string_extract_verbatim was overloaded, added a new function
-         string_extract_single_quoted to call when extracting strings in
-         ''
-
-lib/readline/history.c
-       - changed call to string_extract_verbatim to a call to
-         string_extract_single_quoted
-
-lib/readline/vi_mode.c
-       - rl_vi_subst was not calling rl_end_undo_group properly (i.e. at all)
-
-execute_cmd.c
-       - On systems without job control, async commands (`&') have an
-         extra redirection added before calling execute_command_internal
-         that redirects /dev/null to standard input.  This redirection
-         must be removed right after execute_command_internal returns,
-         because the loop functions call execute_command_internal multiple
-         times with the same command struct.  If we keep tacking redirections
-         onto the front of it, eventually we'll run out of file descriptors
-         on a big enough loop.
-
-jobs.c
-       - some functions were not correctly blocking SIGCHLD while running:
-         delete_all_jobs, map_over_jobs, start_job when it calls
-         reset_current
-
-                                   2/7
-                                   ---
-print_cmd.c
-       - an extra space was being printed at the end of a redirection list.
-         This caused exporting of functions with embedded here-documents to
-         fail, since the end marker would not be matched
-
-                                    2/8
-                                    ---
-nojobs.c
-       - change reap_zombie_children to keep calling waitpid while it returns
-         something > 0 (a valid pid)
-       - add a call to reap_zombie_children if we get a valid pid after
-         waiting in wait_for
-
-variables.c
-       - include pwd.h after sys/types.h.  It matters on some systems.
-
-shell.c
-       - added a function to encapsulate the differences between systems
-         in setting a file pointer to line-buffered: line_buffer_file
-
-                                   2/9
-                                   ---
-shell.c
-       - unbuffer stdin when it's not a tty and bash is reading a script
-         from stdin
-
-                                  2/10
-                                  ----
-
-machines.h, cpp-Makefile
-       - a new machine description variable HAVE_DIRENT, passed down to
-         makes in libraries
-
-support/mksysdefs
-       - check for the existance of /usr/include/dirent.h, define
-         HAVE_DIRENT_H if there
-
-                                  2/11
-                                  ----
-machines.h
-       - add #define USE_TERMCAP_EMULATION to HP-UX machine description
-       - added #define HAVE_DIRENT to a number of entries
-
-jobs.h
-       - added missing definitions for WSTOPSIG, WTERMSIG, WEXITSTATUS
-         for Posix systems that do not have them and do not have the
-         `union wait' defined
-
-builtins/suspend.def, unwind_prot.c, longest_sig.c
-       - include <sys/types.h> before <signal.h> -- some systems require
-         it
-
-support/mksysdefs
-       - For HP machines running HPUX, SYSDEF is set to one of hpux8, hpux7,
-         hpux6, or hpux, corresponding to different releases of HP-UX.
-       - if `uname -m' returns something starting with XD88, the machine is
-         a Tektronix XD88
-
-                                  2/12
-                                  ----
-variables.c
-       - stop core dumping on startup if SHLVL is not set
-
-lib/glob/glob.c
-       - make sure we always recurse and glob the entire filename so the
-         quoting characters added in shell_glob_filename get removed
-         correctly
-
-jobs.c
-       - new function end_job_control to terminate stopped jobs and
-         give the terminal back to the original pgrp
-       - new function restart_job_control to re-initialize the job
-         control state
-
-builtins/exec.def
-       - call end_job_control before we try to execve the command so
-         we're back in the original process group for the new process
-         and restart_job_control if the shell_execve fails and we're
-         not exiting
-
-shell.c
-       - change the code that resets the pgrp just before exiting to
-         call end_job_control instead
-
-lib/readline/chardefs.h
-       - new define, MACRO_CHAR
-
-lib/readline/readline.c
-       - changed rl_generic bind to correctly handle binding keys > 128
-         by using the appropriate meta keymap (map[ESC].function as a
-         keymap)
-       - changed rl_dispatch, rl_show_char, and rl_bind_key to use
-         UNMETA instead of substracting 128 and to use META_CHAR to
-         check for a character's `meta-ness'
-
-                                  2/13
-                                  ----
-lib/readline/readline.c, lib/glob/glob.c
-       - define HAVE_DIRENT if it's not defined but HAVE_DIRENT_H is
-
-lib/readline/history.c
-       - instead of calling write(2) twice for each history line, build
-         a big buffer of all the history data to write, fill it, and
-         call write(2) once
-
-subst.c
-       - wrapped up the eight-bit changes by making the single-quoted
-         strings and double-quoted strings code in expand_word_internal
-         simply discard a word if it's "" or '' and that's not the
-         entire word.  This preserves sh semantics.
-
-parse.y
-       - If process substitution is compiled into the shell, there was
-         a mistake by which <[ and >[ were treated the same as $[
-
-lib/glob/glob.c, lib/readline/readline.c
-       - Reorganized the twisty maze of defines for HAVE_DIRENT
-
-                                  2/14
-                                  ----
-posixstat.h
-       - removed lines consisting of only a single #.  Some ANSI cpps
-         don't like lines like that
-
-execute_cmd.c
-       - added a call to QUIT between commands in cmd1 ; cmd2 sequence
-
-test.c
-       - removed redundant declaration of expr() in test_command()
-
-                                    2/16
-                                    ----
-builtins/Makefile
-       - added dependencies on the header files in the main shell directory
-
-jobs.c, jobs.h, builtins/fg_bg.def, builtins/kill.def
-       - replaced the notified, foreground, and job_control members of the
-         job structure with a flags field and bits J_NOTIFIED, J_FOREGROUND,
-         and J_JOBCONTROL
-
-subst.c
-       - fixed a typo (result[0] == '\0') in EIGHT_BIT version of
-         dequote_string
-
-cpp-Makefile
-       - added dependencies for the builtin object files
-
-execute_cmd.c
-       - complete fix from 2/14 -- add QUIT calls to &&, ||, and `;' when
-         executing a command and ignoring the return value
-
-jobs.c
-       - if a job is suspended while running in a loop, break out of the
-         loop
-
-nojobs.c
-       - made the same wait_sigint_handler and wait_for changes as those
-         made to jobs.c
-
-shell.c
-       - moved the code that adds 128 to last_command_exit_value before
-         any SIGINT trap handler is run
-
-subst.c
-       - if a word is enclosed completely in "" or '', set the quoted
-         flag when the word is returned from expand_word_internal. This
-         keeps the globbing routines from being called
-
-                                  2/17
-                                  ----
-shell.c
-       - use shell_name instead of (++argv[0]) when testing for a
-         restricted shell
-
-                                  2/18
-                                  ----
-general.c
-       - redid the defines for index and rindex to define and use
-         HAVE_INDEX and HAVE_RINDEX, respectively
-
-machines.h
-       - added HAVE_DIRENT to the AIXRT machine description
-
-jobs.c
-       - define and use INVALID_SIGNAL_HANDLER as something old_sigint_handler
-         cannot be set to
-
-                                  2/19
-                                  ----
-
-config.h
-       - made restricted shell mode configurable, #define RESTRICTED_SHELL
-
-shell.c, flags.c, execute_cmd.c, builtins/cd.def
-       - add code to implement ksh/sh restricted shell mode
-
-shell.c
-       - new function maybe_make_restricted (name) which turns the shell
-         into a restricted shell if name == `rbash'
-
-lib/readline/readline.c
-       - fixed rl_key_sequence_length problem when meta-ized characters are
-         read (one too short).  This left extra characters in macros when
-         end-kbd-macro was bound to a meta-ized character
-
-builtins/common.c
-       - added set_working_directory (name) as analog of
-         get_working_directory
-
-variables.h
-       - added `imported' variable attribute
-
-                                  2/20
-                                  ----
-Makefile
-       - DESTDIR -> bindir
-       - aix-Makefile -> ansi-Makefile because an ANSI C compiler like that
-         in SunOS5 (hah!) need not accept /**/# as a directive
-
-bashline.c
-       - added code from bfox to do completion into brace expansions
-       - use BUILTIN_ENABLED flag
-
-builtins.h
-       - added a flags field to struct builtin to replace the `enabled'
-         structure member
-
-cpp-Makefile
-       - set SHELL=MAKE_SHELL if MAKE_SHELL is defined
-       - added support for the LD_HAS_NO_DASH_L definition from machines.h
-       - PROGRAM -> Program
-       - support for the new LD_HAS_NO_DASH_L machine defintion variable
-
-execute_cmd.c
-       - removed the subshell_environment variable
-       - find_user_command_internal now calls find_variable_internal
-
-general.c
-       - moved init_signal_handler here, changed name to set_signal_handler
-
-general.h
-       - added definition for set_signal_handler for non-Posix systems
-
-jobs.c
-       - now print `Done' when a background job exits with status 0
-
-machines.h
-       - combined all of the Sun machine descriptions into one
-       - new descriptions for SunOS5, Alliant, Motorola Delta 68k
-       - completely redid the HPUX description, making M_MACHINE much more
-         specific rather than just `hpux'
-
-nojobs.c
-       - change all instances of signal() to set_signal_handler()
-
-shell.c
-       - removed definition of init_signal_handler
-       - changed more instances of signal to set_signal_handler
-
-subst.c
-       - monster reformat
-
-variables.c
-       - added a function find_variable_internal that can be explictly told
-         to search the temporary environment, changed find_variable to call
-         it
-       - changed all variables and functions from the initial shell
-         environment to have the `imported' attribute
-       - made set_func_auto_export return the pointer to the function struct
-
-builtins/Makefile
-       - ar clq --> ar cq
-
-builtins/cd.def
-       - `pushd_silent' is gone
-
-builtins/common.c
-       - there is no more `enabled' member of a builtin struct;
-         test with BUILTIN_ENABLED instead
-
-builtins/enable.def, builtins/help.def
-       - use BUILTIN_ENABLED bitmask
-
-builtins/mkbuiltins.c
-       - initialize all builtins to be BUILTIN_ENABLED | STATIC_BUILTIN
-
-lib/glob/Makefile
-       - ar clq -> ar cq
-
-lib/glob/glob.c
-       - added another shell interruption point
-       - reorganized the twisty maze of dirent defines to use HAVE_DIRENT_H
-
-lib/readline/readline.c, lib/readline/funmap.c
-       - put rl_arrow_keys back in
-
-lib/readline/Makefile
-       - ar clq -> ar cq
-
-lib/readline/readline.c
-       - reorganized the twisty maze of dirent defines to use HAVE_DIRENT_H
-       - made the search string for i-searches dynamically allocated and
-         expandable rather than using alloca
-       - turned on USE_XON_XOFF again
-       - RL_DEFAULT_INPUT_FILE -> DEFAULT_INPUTRC
-
-support/cppmagic
-       - added `legal' to the list of unknown flags
-
-support/getcppsyms
-       - now recognizes _M88KBCS_TARGET
-
-support/mksysdefs
-       - code to distinguish SunOS5 from SunOS4
-       - aix-Makefile -> ansi-Makefile
-
-lib/readline/vi_mode.c
-       - after completing with `*' or `\', Posix.2a says to go into
-         insertion mode
-       - for c[wW], don't move back any farther than we started to
-         emulate c[eE] -- Posix.2 says the cursor position should not
-         change
-
-variables.c
-       - if we get PWD from the environment, and it's the same directory
-         as `.' (calling same_file) set the_current_working_directory
-         to that value
-
-builtins.h
-       - added a #define for SPECIAL_BUILTIN
-
-mksysdefs
-       - Xenix systems now have one of XENIX_22, XENIX_23, or XENIX_32
-         defined based on the OS release level
-       - test for /dev/fd being a directory and /dev/fd/0 being readable
-         to decide whether or not we have the /dev/fd way of naming open
-         files
-
-                                  2/24
-                                  ----
-builtins/common.c
-       - set_working_directory is now a void
-
-general.c
-       - new implementation of canonicalize_pathname from bfox
-         (+ bug fixes, of course)
-
-bashline.c
-       - make bash_symbolic_link_hook call canonicalize_pathname
-
-variables.c
-       - set_func_auto_export no longer returns a SHELL_VAR *
-
-lib/readline/readine.c
-       - added code to determine whether or not the terminal has a
-         meta key and to use it while editing if one is available
-
-subst.c
-       - minor bug fix to remove_quoted_escapes (logic bomb :-)
-
-                                  2/25
-                                  ----
-machines.h
-       - cleaned up the hpux section.  Cannot define M_OS as HPUX_X,
-         because HPUX_X is already defined as expanding to nothing;
-         this results in a blank M_OS
-
-       - attempted to rationalize Xenix support.  Depending on the
-         XENIX_nn define provided by support/mksysdefs, configure in
-         -DREVERSED_SETVBUF_ARGS, -xenix, -lx, -ldir, and HAVE_DIRENT
-
-               Xenix 2.2: -DREVERSED_SETVBUF_ARGS
-                          cc -lx
-
-               Xenix 2.3: HAVE_DIRENT
-                          cc -ldir
-
-               Xenix 3.2: HAVE_DIRENT
-                          cc -xenix -ldir
-
-                                  2/26
-                                  ----
-builtins/source.def
-       - POSIX_PENDANTIC -> POSIX_PEDANTIC
-
-                                  2/27
-                                  ----
-support/getcppsyms.c
-       - consolidated HP definitions to be of the form
-
-               #if defined (__hp9000s300) || defined (hp9000s300)
-                 printf (" -Dhp9000s300")
-               #endif /* __hp9000s300 || hp9000s300 */
-
-machines.h
-       - changed the way the hp9000s300 tests for hp9000s200 being defined
-
-support/mksysdefs
-       - changed the XENIX_nn defines a little bit
-
-input.c
-       - new input buffering package -- like stdio but allows syncing with
-         the underlying file descriptor when creating child processes, and
-         provides a fd-stream mapping.
-
-input.h, shell.c, jobs.c
-       - changes for the input buffering package, using default_buffered_input
-         in place of default_input
-
-general.c
-       - fix canonicalize_pathname to keep from running off the end of the
-         result string (check result[i] before assigning start = i++)
-
-jobs.c
-       - change some calls to signal to call set_signal_handler instead
-
-                                    2/29
-                                    ----
-shell.c
-       - only initialize default_buffered_input to the input file
-         descriptor if the shell is not interactive
-
-builtins/getopt.c
-       - cast the arguments properly in calls to my_bcopy
-
-execute_cmd.c
-       - added code to do_redirection_internal to change buffered streams
-         if one of the file descriptors corresponding to a buffered input
-         stream is modified.  This lets the shell do proper buffering if
-         the file descriptor from which the shell is reading input is
-         modified by a redirection (e.g., exec 0</etc/passwd)
-
-input.c, shell.c, parse.y, jobs.c, nojobs.c
-       - changed default_buffered_input to an integer file descriptor that
-         is mapped to a buffered stream via the `buffers' array
-
-input.c
-       - the `buffers' array is now lazily dynamically allocated
-       - added functions to duplicate buffered streams so that things like
-         exec 0<&4 will work right
-       - added functions to access the buffered stream functionality given
-         a file descriptor argument, indexed through the `buffers' array.
-       - unbuffered streams now have bp->b_size == 1, so that no special-
-         case code is needed when reads are done.
-
-input.h
-       - the member of the BASH_INPUT union in effect if it describes a
-         buffered stream is now a file descriptor
-
-jobs.c
-       - SCO 3.2.4 has fixed the sigsuspend() bug, so don't execute the
-         hack workaround if SCOv4 is defined
-
-                                    3/1
-                                    ---
-builtins/common.c
-       - made shell_builtin_compare perform some tests itself before
-         calling strcmp to cut down the number of strcmp calls
-       - did the same thing for builtin_address_internal
-
-parse.y
-       - removed calls to strcmp from read_token, just test if token[0] == }
-         and !token[1]
-       - only call clearerr if bash_input.type == st_stream in shell_getc
-       - removed a call to strcpy from shell_getc that only added a newline;
-         changed it to two assignment statements
-       - used token_index instead of a call to strlen at the end of
-         read_token where the word is being constructed and returned
-
-unwind_prot.c
-       - changed a strcmp to a STREQ in unwind_frame_run_internal
-
-variables.c
-       - removed some dead code that had been #if'd out
-       - added a variable to avoid a call to strlen in
-         initialize_shell_variables
-       - change a call to strncmp to a STREQN in initialize_shell_variables
-       - changed strcmp to STREQ in non_unsettable
-
-                                   3/2
-                                   ---
-jobs.c
-       - rearranged the code that calls flush_child (0) for SCO so it is
-         easier to do something like SCO && !SCOv4
-       - changed flush_child so that the loop is performed in a blocking
-         fashion only if SCO && !SCOv4
-
-                                   3/3
-                                   ---
-signames.c
-       - new standalone program to create a signames.h file that contains
-         the initialization code for the signal_names array
-
-trap.h
-       - removed the signal_names array initialization code
-       - include "signames.h"
-
-cpp-Makefile
-       - make sure signames.aux builds signames.h correctly
-
-input.c
-       - changed fd_is_seekable and bufstream_getc into macros
-
-mksysdefs
-       - changes to define SCOv4 if uname returns the right info
-
-machines.h
-       - changes to define BROKEN_SIGSUSPEND and NO_DEV_TTY_JOB_CONTROL
-         for various SCO systems
-
-jobs.c
-       - check for BROKEN_SIGSUSPEND and NO_DEV_TTY_JOB_CONTROL instead
-         of using SCO
-
-                                   3/4
-                                   ---
-general.c
-       - make set_signal_handler return the old signal handler again
-
-shell.c
-       - set SIGINT handler to sigint_sighandler for non-interactive shells
-       - remove SIGQUIT from list of terminating signals
-
-                                   3/5
-                                   ---
-builtins/trap.def
-       - added special SIGINT handling for the case of reverting a signal
-         handler to the default
-
-shell.c
-       - added SIGINT back to the list of terminating signals for
-         non-interactive shells
-
-variables.c
-       - initialize mail variables in initialize_shell_variables only if
-         interactive_shell is true
-       - only check for command_oriented_history if interactive shell
-       - only initialize the history variables if history expansion is
-         being performed (remember_on_history == 1)
-       - only make PS1 and PS2 non-unsettable if the shell is interactive
-
-                                   3/6
-                                   ---
-variables.c
-       - set up a new temporary environment, FUNCTION_ENV, which is the
-         temporary environment provided to a function
-       - make find_tempenv_variable search both temporary_env and
-         function_env, searching function_env if variable_context > 0
-       - change maybe_make_export_env to add variables from function_env
-         to the environment
-       - new function dispose_function_env to deallocate the temporary
-         function environment and cause a new export_env to be made
-       - added code to qsort_string_compare to compare the first
-         characters of the strings passed before calling strcmp
-
-general.c
-       - new function copy_array (char **array) returns a newly-allocated
-         copy of ARRAY
-
-execute_cmd.c
-       - added code to execute_builtin_or_function that initializes the
-         temporary function environment and takes care of disposing of
-         it on normal or abnormal exit
-       - dispose of temporary environment after we initialize the function
-         environment
-       - added same code to execute_subshell_builtin_or_function
-       - since the trap code now restores the SIGCHLD handler to the
-         original, any time make_child is called and the shell needs to
-         run in the child process, set_sigchld_handler should be called
-         to reinstall the proper SIGCHLD handler
-
-jobs.c
-       - new function set_sigchld_handler to reinstall flush_child as the
-         SIGCHLD signal handler
-
-                                   3/9
-                                   ---
-bashline.c
-       - swapped code around to avoid calling savestring (this_fignore)
-         when this_fignore is null
-
-                                  3/10
-                                  ----
-jobs.c
-       - make sure the code in flush_child that calls the SIGCHLD trap
-         handler saves last_made_pid and the_pipeline using unwind-protects
-
-lib/readline/readline.c
-       - make sure the code that uses VLNEXT is protected by #ifdef
-         TERMIOS_TTY_DRIVER
-
-shell.c
-       - add a `beenhere' flag to avoid executing $ENV more than once
-
-parse.y
-       - added a new token ASSIGNMENT_WORD
-       - made read_token return ASSIGNMENT_WORD if in a simple command
-         position, token contains `=', the `=' is not the first character,
-         and the characters before `=' are a legal identifier (as Posix.2
-         specifies)
-       - a simple_command_element can now also be an ASSIGNMENT_WORD
-       - alias expansion is attempted if the last token was an
-         ASSIGNMENT_WORD, as Posix.2a specifies
-
-                                  3/11
-                                  ----
-execute_cmd.c
-       - moved the code that checks command words for `/' down into
-         execute_disk_command, and made it check only the first command
-         word, like sh and ksh
-        - vfree() is no longer static, so other code that needs to add 
-          unwind-protects that use free can use it
-
-trap.c
-       - added a function set_sigchld_trap (command) to set the SIGCHLD
-         trap handler to `command', because unwind-protects cannot take
-         two arguments
-
-jobs.c
-       - changed the code in flush_child to set up and use and unwind-protect
-         frame to protect the things it needs to while running the SIGCHLD
-         trap commands
-
-                                  3/12
-                                  ----
-nojobs.c
-       - added the BUFFERED_INPUT code to make_child
-
-subst.c
-       - folded the test and increment of the string pointer into
-         string_extract_double_quoted and string_extract_single_quoted
-       - made string_extract_verbatim and string_extract static
-
-lib/readline/history.c
-       - changed code that calls string_extract_single_quoted to not
-         increment the string pointer after the call
-
-variables.c
-       - added code to qsort_var_comp to compare the first character of
-         the variable names before calling strcmp
-
-                                  3/13
-                                  ----
-parse.y
-       - include string.h or strings.h
-
-lib/readline/readline.c, lib/glob/glob.c
-       - removed the code that defined HAVE_DIRENT_H if _POSIX_VERSION
-         was defined -- it breaks on apollos, and is a bad idea
-         anyway
-
-input.c
-       - make sure close_buffered_fd closes the fd, whether or not it
-         was a buffered stream
-
-                                  3/16
-                                  ----
-machines.h
-       - added a #define LD_HAS_NO_DASH_L to the Sequent Dynix entries
-
-trap.c
-       - made trap_list[SIGINT] == IMPOSSIBLE_TRAP_HANDLER while running
-         the interrupt trap, so we can tell if the trap handler sets
-         another trap and not restore the original handler if so
-
-                                  3/17
-                                  ----
-trap.c
-       - a new function set_sigint_handler, which subshells doing `shellsy'
-         things like command substitution and ( cmd ) call to make sure
-         they handle interrupts right
-
-execute_cmd.c, subst.c
-       - added calls to set_sigint_handler in the appropriate spots
-
-                                  3/18
-                                  ----
-hash.c
-       - replaced the old hash function with the one from Gnu cpp, which has
-         a much better distribution
-
-jobs.c
-       - make end_job_control call setpgid to reset the pgrp to the original
-         only if original_pgrp >= 0
-
-builtins/exec.c
-       - remove the calls to restore_default_signal; restore_original_signals
-         now does all the necessary work
-
-                                  3/19
-                                  ----
-jobs.c, nojobs.c
-       - make sure that make_child resets default_buffered_input to -1
-         after closing it with close_buffered_fd
-
-                                  3/23
-                                  ----
-lib/glob/tilde.c
-       - had an extern declaration for malloc rather than xmalloc
-
-general.h
-       - added #define for REVERSE_LIST, a macro which calls reverse_list
-         on a list only if the pointer is valid and there is more than one
-         element
-
-parse.y
-       - removed calls to legal_assignment in read_token; assignment()
-         already does those checks
-
-general.c
-       - reformatted reverse_list
-
-copy_cmd.c
-       - changed calls to reverse_list in copy_word_list and copy_redirects
-         to calls to REVERSE_LIST
-
-subst.c
-       - changed a call to reverse_list in expand_word_internal to one to
-         REVERSE_LIST
-
-                                  3/24
-                                  ----
-builtins/common.c
-       - replaced a call to sscanf with code to skip leading whitespace and
-         calls to all_digits and atoi
-
-mailcheck.c
-       - did the same for a call to sscanf in time_to_check_mail
-
-                                  3/26
-                                  ----
-variables.c
-       - made find_variable_internal call find_tempenv_variable only if
-         temporary_env or function_env exists
-[gprof.int.4]
-
-alias.c, alias.h
-       - rewrote the alias code so that it now uses a hash table instead
-         of looking things up in a linear list
-
-subst.c
-       - removed the inclusion of alias.h
-
-parse.y
-       - added inclusion of alias.h
-
-cpp-Makefile
-       - removed alias.h from subst.o's dependencies
-       - added alias.h to y.tab.o's dependencies
-
-bashline.c, builtins/alias.def
-       - rewrote code that knew about the internal alias data structure
-         to use an array of alias structures to search, match, and print
-
-                                  3/27
-                                  ----
-test.c
-       - group_member() needs to check against gid and egid regardless
-         of whether or not the system has getgroups(2); Posix.1 does not
-         require that the primary group id show up in the group list,
-         and some systems do not put it there
-
-                                  3/30
-                                  ----
-parse.y
-       - add `|' to the list of tokens that should not have a semicolon
-         following them when adding a line to the history when command-
-         oriented history is active
-
-lib/readline/readline.c
-       - fixed up the control character display by making the code print
-         c ^ 0x40
-
-support/cppmagic
-       - add support for recognizing the s5r4 c pre-processor,
-         /usr/ccs/lib/cpp
-
-lib/readline/vi_mode.c
-       - made rl_vi_delete_to pay attention to whether or not we're redoing,
-         and to use the last motion key if we are
-       - made rl_vi_char_search use the last char searched for if we're
-         redoing
-
-                                  3/31
-                                  ----
-parse.y
-       - removed the check for non-interactive-ness when doing shell
-         comments
-
-                                   4/1
-                                   ---
-lib/readline/readline.c
-       - completion with tilde expansion needs to have any `/' present at
-         the end of the user's directory name re-inserted manually, because
-         pathname canonicalization strips any trailing `/', before tacking
-         on the expanded filename
-
-subst.c
-       - fixed a bug in dequote_string that caused reading beyond the end
-         of the string if the last character in the string was an (unquoted)
-         CTLESC
-       - made list_string obey the setting of `quoted' and not do the
-         initial strip of whitespace from the beginning and end of the
-         word if it was set
-       - expand_word_internal calls list_string with quoting == 1 if splitting
-         a word after expanding "$@"
-
-error.c
-       - new function itrace for interactive traces
-
-subst.c
-       - command_substitute should give the terminal back to pipeline_pgrp
-         only if the shell is interactive
-
-execute_cmd.c
-       - execute_disk_command should turn off interactive while performing
-         redirections for an asynchronous command.  The problem was a race
-         condition with command_subst.  A command like
-               date > `hostname` &
-
-         would leave the subshell begun to run date and the primary shell
-         fighting over the terminal.  After the subshell did the command
-         substitution, it wanted to give the terminal back to pipeline_pgrp,
-         which was its own pid.  Since it was in the background, though,
-         that was wrong, and ended up taking the terminal away from the
-         primary (interactive) shell, which thought it had the thing.
-
-lib/readline/readline.c
-       - if SYSTEM_CALL_RESTART is not defined, declare c as an integer
-
-                                   4/3
-                                   ---
-bashline.c
-       - put code into command_word_completion_func to skip all but pathname
-         completion checks if the hint given is an absolute pathname
-       - fix strncmp of basename against hint text (??); this always failed
-         unless there was no pathname given
-
-                                   4/7
-                                   ---
-bashline.c
-       - fixed the cases where the simple `last character is a command
-         separator' test fails for distinguishing between program name
-         completion and filename completion: the tokens >&, >|, and <&.
-       - corrected fix of 4/3 to handle command word completion with and
-         without leading paths
-
-                                   4/8
-                                   ---
-lib/readline/readline.c
-       - break the declaration and initialization of a variable with a call
-         to setjmp into a declaration and separate assignment statement (for
-         Cray)
-
-                                  4/10
-                                  ----
-subst.c
-       - A word that uses both "" and '' to do quoting will not be marked
-         as fully quoted by expand_word_internal.  Wrote a
-         fully_quoted_word () predicate function to solve that.
-       - Quoted patterns with globbing characters are sent to the
-         globbing functions because glob_pattern_p doesn't understand
-         shell quoting.  Wrote a new function unquoted_glob_pattern_p,
-         to fix that.
-
-                                  4/13
-                                  ----
-shell.c
-       - make sure default_input is valid and being used for an interactive
-         shell started without line editing
-
-                                  4/15
-                                  ----
-builtins/common.c
-       - redid part of the new get_numeric_argument code to avoid a call to
-         atoi and just do everything ourselves
-
-variables.c
-       - only call set_if_not on PS1 and PS2 in initialize_shell_variables
-         if the shell is not interactive
-       - check the variable returned by looking up PWD to make sure it's
-         non-null before trying to use it in initialize_shell_variables
-
-jobs.c
-       - add a descriptive tag to the call to get_working_directory in
-         job_working_directory
-
-                                  4/17
-                                  ----
-test.c
-       - fixed a typo in group_member: gid -> pgid in assignment statement
-       - in the normal Sun compilation environment, getgroups returns an
-         array of ints, not gid_ts.  getgid and getegid also return ints.
-         stat structures contain a gid_t, though.
-
-         Need to reorder the includes so that stat.h is included first, then
-         uid_t and gid_t are redefined to int, then the rest of the files
-         are included.
-
-         Also need to cast the values from a stat structure to gid_t and
-         uid_t before comparing them to the results of getgid and getuid
-         when implementing -O and -G
-
-                                    4/21
-                                    ----
-lib/readline/readline.c
-       - added code to rl_getc to handle EWOULDBLOCK/EAGAIN and turning off
-         no-delay mode
-
-                                  4/22
-                                  ----
-
-builtins/cd.def
-       - made change_to_directory canonicalize the pathname before attempting
-         to chdir(2) if follow_symbolic_links is set
-
-                                  4/23
-                                  ----
-builtins/type.def
-       - made type handle absolute program names by just echoing the name
-
-builtins/alias.def
-       - made single_quote correctly handle single quotes in aliases
-
-                                  4/28
-                                  ----
-trap.c
-       - made ignore_sig and restore_default_signal check that the value
-         of the original signal handler (in original_signals) was valid
-         before trying to use it.  Bug noticed with `trap "" 1 2 3' as
-         first line in script.
-
-                                  4/29
-                                  ----
-lib/readline/readline.c
-       - made rl_signal_handler only unblock the signal it just received
-         on BSD and Posix systems
-
-                                   5/5
-                                   ---
-builtins/type.def
-       - don't look up the function with find_function until we actually
-         need the info
-
-execute_cmd.c
-       - in do_redirection_internal, don't do unnecessary work.  For instance,
-         >&1 ends up duplicating fd 1 as itself (then adding a close for it,
-         which is a bug)
-
-                                   5/8
-                                   ---
-general.h
-       - don't attempt to declare index and rindex if `index' is defined
-         (with #define)
-
-lib/readline/vi_mode.c
-       - fixed the `c' command so that cl and c<space> are equivalent --
-         formerly the c<space> changed two characters instead of one.
-         The same fix was made to rl_vi_change_to, rl_vi_delete_to, and
-         rl_vi_yank_to
-
-parse.y
-       - bash_add_history did not correctly handle lines that ended with
-         an escaped newline.  It would insert semicolons in the locations
-         where the line breaks occurred.
-
-                                    5/12
-                                    ----
-documentation/bash.1
-       - removed references to pushd_silent
-       - added setion on process substitution
-
-subst.c
-       - fixed a bug in expand_word_internal that caused $xxx"" to expand
-         to nothing when `xxx' was unset.  The code now explicitly turns
-         a partially quoted string that expands to nothing (istring[0] == 0)
-         into a QUOTED_NULL (istring[0] = CTLNUL) before returning the
-         word list.
-
-                                  5/15
-                                  ----
-documentation/bash.1
-       - added a missing .PD in the builtins section after the line
-         summarizing `:'
-       - added text describing the effect of additional arguments to the
-         `.' command
-
-subst.c, general.c, jobs.c, nojobs.c, error.c, getcwd.c
-       - only declare errno as `extern int' if it's not #defined
-
-builtins/{bind,exec,fc,kill,source}.def, lib/readline/{readline,history}.c
-       - ditto with errno
-
-lib/glob/fnmatch.c
-       - ditto with errno
-
-                                    5/17
-                                    ----
-execute_cmd.c
-       - shells compiled with job control active should perform the implicit
-         `</dev/null' redirection for asynchronous commands when it is not
-         active
-
-builtins/mkbuiltins.c
-       - added a `-nodocument' option to inhibit the output of the `xxx_doc'
-         array that is a builtin's long documentation.  Saves between 26
-         and 27K in the bash executable on the RT, 32K on the Sun-4
-
-                                  5/22
-                                  ----
-print_cmd.c
-       - added code to make group commands print better
-
-builtins/common.c
-       - new function remove_hashed_filename to remove a filename from the
-         table of hashed commands
-
-execute_cmd.c
-       - make sure the filename found in the hash table actually exists and
-         is executable.  If not, remove it from the hash table and look it
-         up in $PATH.
-
-general.c
-       - make sure to #include <signal.h> before defining set_signal_handler
-         (on Posix systems)
-
-builtins/command.def
-       - change HPUX_7 to hpux_7
-
-                                  5/27
-                                  ----
-builtins/times.def
-       - added USGr3 to the list of systems that should have HAVE_RESOURCE
-         undefined even though <sys/resource.h> exists
-
-                                  5/28
-                                  ----
-machines.h
-       - added a description for 386/486 boxes running BSDI BSD/386
-
-support/mksysdefs
-       - looks for <limits.h> and writes a define to sysdefs.h if it's
-         found
-
-maxpath.h
-       - rewritten -- now includes limits.h if HAVE_LIMITS_H is defined,
-         then tries to define MAXPATHLEN as PATH_MAX
-
-                                  5/29
-                                  ----
-lib/readline/history.c
-       - added definition for rl_string_extract_single_quoted so the
-         code inhibiting history expansion inside quotes does not depend
-         on the shell
-       - change to use rl_string_extract_single_quoted
-       - removed code that would have inhibited history expansion in
-         double-quoted strings
-
-subst.c
-       - make string_extract_{single,double}_quoted static again
-
-                                   6/1
-                                   ---
-trap.c
-       - systems with _POSIX_VERSION defined need not reset the signal handler
-         inside trap_handler
-       - set_signal should use set_signal_handler() to install the signal
-         handler rather than signal()
-       - initialize_traps needs to use set_signal_handler for SIGINT and
-         SIGQUIT rather than signal()
-       - restore_default_signal needs to use set_signal_handler
-
-parse.y
-       - the readline interface code needs to use set_signal_handler to
-         install the SIGINT handler
-
-lib/readline/readline.c
-       - new function rl_set_sighandler, which is the readline analogue of
-         the bash set_signal_handler
-       - rl_set_signals and rl_clear_signals need to use rl_set_sighandler
-         for SIGINT and SIGALRM
-
-                                   6/2
-                                   ---
-signames.c
-       - fixed a typo (signame_names -> signal_names)
-
-                                   6/3
-                                   ---
-subst.c, general.c
-       - AIX machines need to use sysv_getc rather than getc when reading
-         from the command substitution pipe -- read(2) is not restarted
-         automatically when interrupted by a signal and returns EINTR
-
-                                   6/5
-                                   ---
-documentation/bash.1
-       - removed documentation of M-C-j command in emacs editing mode
-       - added description of M-{ (complete-into-braces)
-       - added description of M-! and C-x ! command completion
-       - added description of M-TAB dynamic history completion
-
-lib/readline/search.c
-       - new file containing code to perform non-incremental history
-         searches.  Functions to call are rl_noninc_forward_search
-         and rl_noninc_backward_search
-
-lib/readline/emacs_keymap.c
-       - bound M-^R to non-incremental-search-backward, M-^S to
-         non-incremental-search-forward
-
-lib/readline/readline.h
-       - extern defintions for rl_noninc_{forward,backward}_search
-
-lib/readline/funmap.c
-       - added names `non-incremental-forward-search-history' and
-         `non-incremental-reverse-search-history'
-
-lib/readline/vi_mode.c
-       - rl_vi_yank_arg should put readline into insertion mode when
-         it is done
-
-lib/readline/vi_keymap.c
-       - ^I should just insert when in vi insertion mode, rather than
-         attempt completion
-
-                                    6/6
-                                    ---
-
-lib/readline/funmap.c
-       - removed the `vi-dosearch' bindable string, since rl_vi_dosearch
-         is really a private function for vi_mode.c.  It does not fit
-         the calling conventions of the bindable readline functions
-         (and I've since removed it)
-
-lib/readline/readline.h
-       - removed the extern definition for rl_vi_dosearch
-
-lib/readline/search.c
-       - added new functions rl_noninc_forward_search_again and
-         rl_noninc_backward_search_again to search for the last saved
-         search string from the current `noninc' history position
-
-lib/readline/vi_mode.c
-       - removed the vi history search code and changed rl_vi_search
-         and rl_vi_search_again to call the non-incremental search code
-         from search.c
-
-                                   6/8
-                                   ---
-
-[changes from bfox version dated 5/10]
-
-bashline.c
-       - changed the conditional clause that decides whether a token is
-         in a command position for command name completion to be a little
-         simpler
-
-bracecomp.c
-       - new version from bfox
-
-config.h
-       - moved BUFFERED_INPUT define here
-
-flags.c
-       - new flag for interactive comments
-       - reformatted find_flag
-
-flags.h
-       - added interactive_comments and an extern declaration of restricted
-
-machines.h
-       - new cray definition from bfox
-
-maxpath.h
-       - don't include limits.h if BUILDING_MAKEFILE is defined
-
-shell.c
-       - moved the check for restricted to immediately after the sourcing
-         or .profile
-
-test.c
-       - now includes shell.h in the initial block of includes
-
-trap.c
-       - new function get_original_signal to take care of the bookkeeping
-         of correctly setting up original_signals[sig]
-
-trap.h
-       - signal_decode -> decode_signal
-
-builtins/exec.def
-       - adjusted the help text to make it clear that only non-interactive
-         shells check the no_exit_on_failed_exec variable and exit if the
-         execve fails
-
-builtins/set.def
-       - added description and code to implement set -o interactive_comments
-
-lib/glob/glob.c
-       - if PAT is empty when glob_vector is called, skip the loop and
-         return one empty filename.  This is how to make echo */ echo
-         only directory names
-
-lib/readline/parens.c
-       - new file from bfox implementing parenthesis matching for readline
-
-lib/readline/emacs_keymap.c
-       - if PAREN_MATCHING is defined, perform `show-matching' on `)', `}',
-         and `]'
-
-lib/readline/history.c
-       - add `$' to the list of separating characters in history_tokenize
-         so that two-character `$' tokens ($$, $!, $() are parsed correctly
-
-lib/readline/readline.c
-       - Make an argument of 1 to rl_rubout and rl_delete work the same
-         as if any other argument had been given by saving the text on
-         the kill ring
-       - in rl_getc, check that the value returned from read == sizeof
-         unsigned char
-
-lib/readline/readline.h
-       - added declaration of rl_event_hook, which is the address of a
-         function to call periodically while readline is awaiting
-         character input
-
-support/cppmagic
-       - new implementation from bfox, now returns a full cpp specification,
-         complete with system dependent flags
-
-support/mksysdefs
-       - added a variable MAKE_ANSI which, if set to true, causes the
-         ansi Makefile to be generated
-       - added code to recognize various types of cray/unicos machines
-
-[end of fixes from bfox]
-
-getcwd.c
-       - integrated changes that allow getcwd to handle paths longer
-         than PATH_MAX by shifting to using a dynamically-allocated
-         buffer
-
-builtins/set.def
-       - make the check for emacs or vi check to make sure the shell is
-         interactive
-
-                                  6/10
-                                  ----
-builtins/common.c
-       - the dollar_arg_stack was never being reallocated in push_dollar_vars
-         because of a stray `if (!dollar_arg_stack)' before the realloc call
-
-                                    6/12
-                                    ----
-cpp-Makefile
-       - added some missing $(RM) $@ in explicit targets for objects (the
-         ones that don't go through the default rules) as well as the
-         targets for the auxiliary programs
-
-subst.c
-       - redid the way bash handles assignment statements on command lines
-         to fix two bugs:
-
-               1) variable assignments are not supposed to affect expansion
-                  performed on the same line, if a command is to be run
-               2) if the words left after removing the variable and environment
-                  assignments don't expand to a command word, the assignments
-                  should affect the shell's environment
-
-         new function: separate_out_assignments
-               removes variable assignments that precede other words and puts
-               them on VARLIST
-               removes environment assignments in the rest of the words, if
-               set -k is in effect, and puts them on ENVLIST
-
-         just before expand_words_internal returns, it checks varlist and
-         envlist (if it is doing expansion) and performs the assignments, if
-         any.  If it's returning a null list, these assignments affect the
-         shell's environment
-
-                                    6/13
-                                    ----
-subst.c
-       - eliminated ENVLIST; VARLIST can serve for both variable and
-         environment assignments
-
-       - sped up expand_words_internal's section for brace expansion by
-         eliminating unnecessary copies -- original word is used unless brace
-         expansion occurred, in which case the original word is linked to
-         a list of words to dispose when brace expansion is completed
-
-       - sped up the word expansions section of expand_words_internal by
-         (possibly) eliminating a call to reverse_list on the results of
-         word expansion and splitting on $IFS, because the most common
-         case will expand to only a single word
-       - `expanded' needs to be freed only if expansion and word splitting
-         took place, no moving the call to dispose_words up after the call
-         to word_list_split means that the common case no longer needs to
-         copy the list
-
-       - sped up globbing by eliminating copying as was done for brace
-         expansion -- keeping a list of `disposable' words and using the
-         original list contents if expansion failed or was not performed
-       - in the case that we're not globbing a word because it has no
-         unquoted globbing characters, eliminated the copy and creation of
-         a brand new list
-       - added a define GLOB_FAILED that handles the cases of using and
-         not using the GNU libc Posix.2 globbing library
-       - moved the code that dequotes the original word so it's executed
-         only if the glob fails
-       - wrapped the code that performs globbing inside an if (new_list)
-         clause
-       - call REVERSE_LIST only if we're actually doing globbing; otherwise
-         dequote the list and go on to performing assignments
-
-                                  6/15
-                                  ----
-lib/glob/glob.c
-       - if the directory portion of a pathname to be globbed contains
-         quoted globbing characters, the quotes (backslashes) need to be
-         removed before the code tries to open and read that directory
-
-                                  6/17
-                                  ----
-execute_cmd.c
-       - index -> indx in extract_colon_unit
-
-nojobs.c
-       - make wait_for_single_pid return the status of the pid it's waited
-         for, instead of throwing it away
-       - added a simple pid-status array to avoid multiple calls to
-         wait_for and calling wait on dead processes.  make_child adds
-         pids to this array, and the status of a pid is updated when
-         it's returned from wait(2) or waitpid(2)
-       - removed the checks for whether or not the pid is valid (using
-         kill(2)) in favor of using the information in the pid_list
-
-parse.y
-       - call cleanup_dead_jobs on non-job-control systems to clean up the
-         pid_list
-
-                                  6/18
-                                  ----
-subst.c
-       - include config.h before trying to include string.h or strings.h
-         so USG is properly defined
-
-                                    6/19
-                                    ----
-support/mksysdefs
-       - look for /usr/include/string.h and define HAVE_STRING_H if
-         found.  This is the file mandated by ANSI C.
-
-cpp-Makefile
-       - look for the HAVE_STRING_H definition from sysdefs.h and define
-         it as part of SYSTEM_FLAGS if found
-       - added the HAVE_STRING_H to LIBRARY_CFLAGS, so readline can
-         decide what to include
-
-general.c, parse.y, subst.c
-       - use the HAVE_STRING_H define in deciding which flavor of the
-         include file to use
-
-builtins/common.c
-       - include strings.h or string.h, depending on the definition of
-         HAVE_STRING_H
-       - added extern declaration of rindex and index at file scope
-       - removed extern declaration of rindex in find_hashed_filename
-
-lib/readline/rldefs.h
-       - removed the messy #ifdef clauses and such from readline.c and
-         moved them to this new file
-       - added a section on string functions (string.h vs. strings.h,
-         whether or not index and rindex need to be defined)
-
-lib/readline/readline.c
-       - removed the messy #ifdef clauses that attempt to parameterize
-         things and define constants on a system-specific basis
-       - removed the definition of the unused variable xoff_state
-
-flags.c
-       - corrected a typo in the comment describing jobs_m_flag
-
-jobs.c
-       - new function, current_working_directory (), which returns the
-         cwd without calling malloc to allocate memory, even indirectly.
-         This can safely be called from a signal handler, like when
-         flush_child calls notify_of_job_status if async notification is on
-       - changed call to job_working_directory in pretty_print_job to call
-         current_working_directory
-       - moved assignment to DIR in notify_of_job_status after the calls
-         to sigprocmask to block SIGCHLD and SIGTTOU
-       - in notify_of_job_status, DIR is now assigned via a call to
-         current_working_directory and hence does not need to be freed
-       - notify_of_job_status now initializes DIR to NULL and calls
-         current_working_directory only if it needs to
-       - changed a call to reverse_list in stop_pipeline to REVERSE_LIST,
-         because most pipelines will be only one process long
-
-builtins/jobs.def
-       - make an illegal jobspec cause a failure instead of returning 0 all
-         the time
-
-builtins/times.def
-       - times now ignores any arguments for sh and ksh compatibility
-
-                                    6/20
-                                    ----
-execute_cmd.c
-       - fixed execute_until_or_while to actually return the status of the
-         last command executed in the body rather than
-         last_command_exit_value, which is the status of the test (which
-         has just failed)
-
-                                    6/23
-                                    ----
-execute_cmd.c
-       - fixed execute_subshell_builtin_or_function to exit with 
-         last_command_exit_value if a builtin longjmps to top_level
-         with value EXITPROG, rather than with EXITPROG (3)
-
-                                  6/25
-                                  ----
-cpp-Makefile
-       - added rldefs.h to READLINE_SOURCE
-
-builtins/type.def
-       - `type' now returns 0 if no arguments are given
-
-jobs.c
-       - make wait_sigint_handler obey interrupt_immediately as well
-         as whether the wait builtin is the current command (XXX - in
-         the future remove the check for wait_builtin entirely and
-         just use interrupt_immediately, because this_shell_builtin
-         could be changed by the code that runs from a SIGCHLD trap)
-       - make the code that runs commands from SIGCHLD traps set
-         interrupt_immediately to 1 each time through the loop
-
-                                  6/26
-                                  ----
-builtins/common.c
-       - declare extern void vfree and use it in the add unwind protect
-         call, to avoid having to declare what type free returns
-
-execute_cmd.c, builtins/common.c
-       - removed all references to builtin_pipe_in_hack, which is no
-         longer used
-
-parse.y
-       - removed all references to current_token_being_expanded and
-         pending_token_being_expanded, since their function is subsumed
-         by expanded_token_stack.  Also no need to save this on the
-         pushed string stack, so that element is removed from the
-         struct.
-         (current_token_being_expanded == expanded_token_stack->saved_token)
-
-builtin/jobs.def
-       - removed immediate return if job_control == 0.  This makes it work
-         in command substitution subshells
-
-                                    6/29
-                                    ----
-expr.c
-       - added unary `+'
-       - added bitwise not (`~') at same precedence as logical not (`!')
-       - added left and right shifts (<<, >>) between +,- and the comparisons
-       - added bitwise and, or, xor (&, |, ^)
-       - added logical and, or (&&, ||)
-       - changed exp1 to allow multiple consecutive ! and ~ (in the same way
-         that exp0 allows multiple consecutive leading - and +
-
-lib/readline/history.c
-       - close memory leak -- in history_do_write, free the output filename
-         before returning
-       - close same memory leak in read_history_range
-
-builtins/enable.def
-       - make `enable' with no arguments print only the enabled builtins, and
-         `enable -n' with no other arguments print only the disabled builtins
-
-builtins/setattr.def
-       - make readonly and export return failure when given -f with an
-         argument that is not a function name
-       - added -n to the documentation for readonly
-
-execute_cmd.c
-       - cleaned up the code that checks for #! and binary files some: made
-         sure the file descriptor was always closed, made sure sample_len
-         was > 0 before checking the first two characters, collapsed two
-         if statements into one
-
-jobs.c
-       - changed call to job_working_directory in start_job to call to
-         current_working_directory
-       - changed input_tty to a macro
-       - changed the call to QUIT in wait_for after the wait_loop
-         label to depend on whether job_control is enabled; the test
-         against the terminal process group is superfluous now that
-         we use wait_sigint_handler
-
-builtins/fg_bg.def
-       - Posix.2a specifies that fg and bg should return failure if
-         run when job control is disabled
-
-                                   7/2
-                                   ---
-variables.c
-       - when an existing variable is given a new value by bind_variable,
-         turn off the invisible attribute
-
-shell.c
-       - dup default_buffered_input using fcntl(fd, F_DUPFD, 10) to put
-         it above the shell's user-manipulatable range
-
-execute_cmd.c
-       - in add_undo_redirect, make the redirection added a
-         r_duplicating_input so buffered streams get duplicated as
-         necessary.  It makes no difference for the non-buffered-stream
-         code
-
-                                   7/3
-                                   ---
-subst.c
-       - command_substitute needs to set interactive = 0 and leave
-         interactive_shell reflecting the interactive state of the
-         parent shell
-
-signames.c
-       - prevent SIGGRANT and SIGRETRACT from overriding other already-defined
-         signal names, since, on the RT at least, they override SIGUSR2
-         and SIGEMT, respectively, which are much more common
-
-jobs.c
-       - in notify_of_job_status, if job control is not enabled, do not
-         print the status messages.  Mark dead jobs as notified so they
-         get cleaned up properly
-
-braces.c
-       - when checking for `,' if a closing brace was not found, make
-         sure the , is unquoted
-       - make sure we found an unquoted , before attempting to perform
-         the expansion -- since brace_gobbler purports to understand
-         quoting with \, the rest of the code should support it
-       - disabled the code that caused a failure longjmp if a matching
-         closing brace was not found -- the pattern should be left
-         unchanged, as with any other failed expansion
-
-trap.c
-       - new function maybe_set_sigchld_trap, which sets the trap on
-         SIGCHLD if and only if the signal is not currently trapped
-
-jobs.c
-       - call maybe_set_sigchld_trap after running SIGCHLD trap commands
-         on the death of a child to restore the trap handler, so if the
-         trap handler calls `trap xxx CHLD' it will not be overwritten
-
-lib/glob/fnmatch.c
-       - fnmatch must treat [ without a matching ] as a `regular' character
-         to be matched against the string so that the Posix.2 rules for
-         case command matching are not broken
-
-shell.c
-       - change the call to fcntl that sets default_buffered_input to one
-         to dup2(fd, getdtablesize() - 1) to hopefully get the highest
-         file descriptor
-
-                                   7/6
-                                   ---
-parse.y
-       - if read_token reads a character that matches the current delimiter
-         character, it should make sure the character is `"' before
-         checking delimited_paren_level and blindly accepting it.  There
-         are other values for `delimiter' besides `"'.
-
-shell.c
-       - turn on no_line_editing for non-interactive shells
-
-builtins/set.def
-       - removed test against interactive_shell when deciding whether or
-         not emacs or vi is `on' [backed out of fix from 6/8]
-
-                                   7/8
-                                   ---
-lib/readline/history.c
-       - changed get_history_event so that shell metacharacters (;&()|<>)
-         can terminate an event spec
-
-subst.c
-       - the TERM and TERMCAP variables need special handling only if
-         READLINE is defined
-       - ditto for history_completion_file
-
-machines.h
-       - new description for HPs running OSF/1
-
-                                   7/9
-                                   ---
-lib/readline/readline.c
-       - new variable `eight-bit-input'.  If this is on, readline disables
-         ISTRIP for the Posix or sysv tty drivers
-
-execute_cmd.c, variables.c
-       - new variable `subshell_environment' set in children right after
-         forking and reset in shell_reinitialize.  It means to look in
-         the temporary environment first when looking up variables and
-         functions
-
-                                  7/13
-                                  ----
-config.h, parse.y
-       - changed CSH_HISTORY_EXPANSION to BANG_HISTORY_EXPANSION
-
-shell.c
-       - made all the history-related code #ifdef HISTORY
-       - made maybe_save_shell_history be called only if the shell is
-         interactive and we're remembering history lines
-
-parse.y, flags.c, flags.h, subst.c, variables.c
-       - made all the history-related code #ifdef HISTORY
-       - assignment_acceptable and command_token_position no longer are
-         dependent on ALIAS being defined, since they are used to return
-         ASSIGNMENT_WORD tokens
-
-builtins/bind.def
-       - removed inclusion of readline/history.h
-
-builtins/exec.def, builtins/common.c
-       - made all the history-related code #ifdef HISTORY
-
-builtins/fc.def, builtins/history.def
-       - added a $DEPENDS_ON HISTORY line
-
-builtins/mkbuitins.c
-       - line_error should not try to print error_directory without checking
-         to see whether it is NULL
-
-builtins/Makefile
-       - add $(DIRECTDEFINE) to the command line that builds builtins.c
-
-lib/glob/tilde.c
-       - use getpwuid(getuid()) to look up the home directory of the user
-         executing the shell for tilde expansion ~/foo if $HOME unset
-
-cpp-Makefile, subst.c, config.h
-       - Fixes to make brace expansion a configuration option, on by default
-
-                                  7/14
-                                  ----
-builtins/set.def
-       - fixed unset so an attempt to unset a readonly variable or function
-         is an error (as Posix.2 specifies)
-
-general.h
-       - removed extern declarations of index, rindex
-       - added extern declarations for strchr, strrchr
-       - changed `member' to use strchr
-
-subst.c, general.c, bashline.c, execute_cmd.c, parse.y, test.c
-       - changed calls to index to calls to strchr, calls to rindex to calls
-         to strrchr
-
-builtins/echo.def, builtins/fc.def, builtins/common.c
-       - changed calls to index to calls to strchr, calls to rindex to calls
-         to strrchr
-
-lib/glob/glob.c
-       - changed calls to index to calls to strchr, calls to rindex to calls
-         to strrchr
-
-lib/readline/history.c, lib/readline/readline.c, lib/readline/vi_mode.c
-       - changed calls to index to calls to strchr, calls to rindex to calls
-         to strrchr
-
-lib/readline/vi_mode.c
-       - changed calls to strchr to inline checks, since we're only checking
-         for two characters
-
-                                  7/15
-                                  ----
-variables.c
-       - If PPID is imported, turn off export status
-
-                                  7/17
-                                  ----
-general.h
-       - for USG and Posix systems, define NO_READ_RESTART_ON_SIGNAL
-
-
-general.c
-       - sysv_getc --> getc_with_restart
-       - compile in getc_with_restart if NO_READ_RESTART_ON_SIGNAL is
-         defined
-
-subst.c
-       - call getc_with_restart in command_substitute if on a system
-         with NO_READ_RESTART_ON_SIGNAL defined
-
-parse.y
-       - call getc_with_restart in yy_stream_get if NO_READ_RESTART_ON_SIGNAL
-         is defined
-
-input.c
-       - change b_fill_buffer to restart reads on EINTR
-
-general.h
-       - wrap the declarations of strchr and strrchr inside an #ifdef strchr
-         because some ANSI C compilers (e.g., RS/6000) make them defines in
-         /usr/include/string.h
-
-                                  7/20
-                                  ----
-lib/readline/readline.c
-       - wrap the declarations of strchr and strrchr inside an #ifdef strchr
-         because some ANSI C compilers (e.g., RS/6000) make them defines in
-         /usr/include/string.h
-
-                                  7/21
-                                  ----
-lib/readline/parens.c
-       - wrap all parameters and variables associated with the select call
-         into #ifdef FD_SET
-
-execute_cmd.c
-       - added tilde expansion to the pattern list members of case statement
-         clauses, as specified by Posix.2 d11.3
-
-lib/readline/readline.c
-       - when comparing members of the c_cc array directly against
-         _POSIX_VDISABLE, cast both sides to unsigned char
-
-support/getcppsyms.c
-       - recognized __svr4__
-
-machines.h
-       - for Sun machines, if __svr4__ is defined and USGr4 is not, define
-         USGr4
-
-shell.c
-       - some machines need sys/types.h included before stdio.h (mostly for
-         size_t)
-
-lib/malloc/malloc.c
-       - add SunOS5 to the list of systems that do no redefine valloc (?)
-
-                                  7/22
-                                  ----
-make_cmd.c
-       - save and restore the value of line_number around reading a
-         here-document
-
-lib/glob/glob.c
-       - change to use HAVE_STRING_H to decide which version of the
-         header files to include
-
-                                    7/25
-                                    ----
-execute_cmd.c
-       - fixed execute_command_internal so that failure to perform
-         redirections attached to a shell compound command like if
-         or while causes the command to return failure right away
-       - eliminated use of redir_result in execute_builtin_or_function
-       - changed execute_while_or_until so that body_status is
-         initialized to EXECUTION_SUCCESS, and then directly returned
-         without a check for commands_executed, so that the Posix.2
-         behavior of returning success when no body commands are
-         executed is preserved
-
-                                  7/27
-                                  ----
-jobs.c
-       - make sure that trap_list[SIGCHLD] is not set to IGNORE_SIG
-         before trying to run commands when a SIGCHLD is caught
-
-test.c
-       - define and use UID_T and GID_t, which are equivalent to uid_t
-         and gid_t on all systems but SunOS 4.1.?, because SunOS makes
-         `int' the return value of all the uid and gid functions (except
-         stat!)
-
-                                  7/28
-                                  ----
-shell.c
-       - call end_job_control in termination_unwind_protect
-
-variables.c
-       - if PWD is imported from the environment and it is wrong (i.e.,
-         not the same as the current directory), rebind it to the current
-         directory (as obtained by get_working_directory)
-
-                                  7/29
-                                  ----
-lib/readline/history.c
-       - do not history expand ! when immediately preceded by [, assuming
-         it's the globbing pattern negation character
-
-execute_cmd.c
-       - plug some memory leaks -- redirectee_word needs to be freed
-         before returning from do_redirection_internal
-       - changed the noclobber code to open the file with O_EXCL after
-         verifying that it's not there with stat to shorted possible
-         race conditions (this doesn't help over NFS)
-
-                                  7/30
-                                  ----
-lib/readline/history.c
-       - treat a negative arg to stifle_history as 0
-
-lib/readline/readline.c
-       - #undef PC before declaring it as a variable because some systems
-         (Solaris2) define it in system header files
-       - changed type of insert_some_chars, update_line, and delete_chars
-         to void
-       - added a check when doing filename completion in
-         filname_completion_function to see if the first characters of the
-         filename and directory entry match before calling strncmp
-         (inline expansion of STREQN)
-
-                                  7/31
-                                  ----
-lib/readline/vi_keymap.c
-       - Make arrow keys work for history in vi command mode by binding
-         `o' and `[' in vi_escape keymap to rl_arrow_keys
-
-                                   8/6
-                                   ---
-subst.c
-       - broke the code that quotes strings for the globbing functions
-         into a separate function: quote_string_for_globbing (), so
-         there are not two copies of it
-       
-execute_cmd.c
-       - rewrote execute_case_command so that quote_string_for_globbing
-         is called for the patterns in a pattern list and reordered some
-         other code for clarity
-       - execute_case_command now turns quoted null strings into empty
-         strings because quote_string_for_globbing does not do it
-
-                                   8/7
-                                   ---
-lib/readline/readline.c
-       - added generic code to init_terminal_io to fetch the termcap
-         codes for the arrow keys (ku, kd, kl, kr) and bind the right
-         functions to them
-
-lib/readline/vi_keymap.c, lib/readline/emacs_keymap.c
-       - removed bindings to `rl_arrow_keys' from all keymaps
-
-                                  8/13
-                                  ----
-subst.c
-       - command_substitute: only close fildes[1] if it's > 2
-
-                                  8/26
-                                  ----
-lib/readline/readline.c
-       - rewrote get_y_or_n to get rid of label and goto
-       - added code to the completion listing function that makes it
-         skip padding the line out with blanks after writing what will
-         be the last filename on the line
-
-machines.h
-       - added -DHAVE_SETDTABLESIZE to SYSDEP_CFLAGS for Sequents
-         running Dynix/ptx
-
-                                  8/28
-                                  ----
-machines.h
-       - added a machine description for the BBN Butterfly from
-         Kaveh Ghazi
-
-variables.c
-       - HPOSF1 machines cannot redefine getenv()
-
-support/getcppsyms.c
-       - recognize __hp_osf
-
-parse.y
-       - allow reserved word recognition after done, fi, and esac
-         Posix.2 section 3.4 seems to allow this
-
-lib/readline/readline.c
-       - include <sys/ioctl.h> on OSF/1 machines for TIOCGWINSZ
-
-subst.c
-       - in command_substitute, when checking to see that we're not
-         overflowing `istring', allow for the insertion of two characters
-         in the check to account for possible quoting
-
-                                   9/3
-                                   ---
-builtins/bashgetopt.c
-       - force reset_internal_getopt to set loptend to NULL
-       - force internal_getopt to set loptend to NULL when the list it
-         gets is NULL, and when it detects that it's been called with
-         a different word list
-
-                                   9/8
-                                   ---
-variables.c
-       - make adjust_shell_level clamp the value of $SHLVL at 1
-
-[Fixes from bfox 1.13]
-
-bashline.c
-       - remove `%' from list of readline special prefixes
-
-config.h
-       - BANG_HISTORY_EXPANSION -> BANG_HISTORY
-
-cpp-Makefile
-       - add HAVE_STRCHR
-       - changes to macros that build libraries
-       - reorganized library declarations and support
-
-execute_cmd.c
-       - indx -> p_index in extract_colon_unit
-
-general.c
-       - provide definitions of strchr, strrchr for systems that do not
-         have them
-
-machines.h
-       - define `Solaris' for Suns running Solaris 2.x
-       - turn all the definitions of M_OS into strings
-
-parse.y
-       - replace delimiter and old_delimiter with a stack of delimiters
-         encountered while parsing the current token
-
-subst.c
-       - removed all traces of EIGHT_BIT
-
-variables.c
-       - new function dispose_temporary_vars, for both dispose_used_env_vars
-         and dispose_function_env
-
-lib/readline/readline.c
-       - `eight-bit-input' -> `meta-flag'
-
-lib/tilde
-       - new directory for the tilde expansion library code
-
-[end of bfox changes]
-
-cpp-Makefile
-       - pass $(RM) down to makes in libraries
-
-                                  9/10
-                                  ----
-parse.y
-       - remove the bfox change that set CMD_FORCE_SUBSHELL for async
-         commands
-
-                                  9/14
-                                  ----
-builtins/bind.def
-       - surround the code with #ifdef READLINE
-
-builtins/fg_bg.def
-       - surround the body of the code with #ifdef JOB_CONTROL
-
-builtins/getopts.def
-       - surround the body of the code with #ifdef GETOPTS_BUILTIN
-
-builtins/alias.def
-       - surround the body of the code with #ifdef ALIAS
-
-                                  9/15
-                                  ----
-lib/readline/emacs_keymap.c
-       - bind rl_noninc_reverse_search to M-P and rl_noninc_forward_search
-         to M-N, respectively
-
-lib/readline/readline.c
-       - made name_key_alist struct static
-       - added new functions to manipulate keymaps:
-               rl_get_keymap_by_name()
-               rl_get_keymap()
-               rl_set_keymap()
-
-lib/readline/keymaps.h
-       - added declarations for the new keymap functions
-
-builtins/bind.def
-       - added -m map option to allow bind commands to specify the keymap
-         to be used when binding key sequences to readline commands
-
-                                  9/16
-                                  ----
-builtins/alias.def
-       - in single_quote, allocate a new string three times as big as the
-         old to handle the possible quoting characters
-
-bashline.c
-       - set last_fignore to null after freeing it in setup_ignore_patterns
-
-                                  9/17
-                                  ----
-parse.y
-       - added code to handle the functionality of `ignoreboth' as a
-         value for history_control (ignore both lines beginning with
-         spaces and duplicates of the last history entry)
-       - don't use history_control for the second and subsequent lines
-         of a multi-line command when command_oriented_history is in
-         effect
-
-                                  9/18
-                                  ----
-bashline.c
-       - fix attempt_shell_completion to call command_word_completion_function
-         even if the supplied text begins with `/'
-       - fix command_word_completion_function to make sure that absolute
-         program names passed are executable before returning them as
-         possible matches
-
-                                  9/20
-                                  ----
-parse.y
-       - If we read a blank line (shell_input_line[0] == 0) and we have
-         reached EOF (shell_input_line_terminator == EOF) then don't echo
-         the line, even if -v has been turned on
-
-                                  9/23
-                                  ----
-lib/malloc/malloc.c
-       - changed to use USG rather than SYSV
-       - changed BSD42 to BSD4_2 like emacs malloc.c
-       - removed conditional compilation code dealing with VMS
-       - include getpagesize.h only if BSD4_2 is not defined
-       - changed conditionally compiled code dealing with BSD, since
-         BSD is not defined by bash and malloc.c does not include
-         sys/param.h, which defines BSD on 4.x BSD systems
-
-lib/malloc/getpagesize.h
-       - new implementation, inspired by gdb 4.6
-               uses _SC_PAGESIZE, if present
-               defaults to 4096
-
-lib/readline/vi_keymap.c
-       - when in insert mode, Posix.2a says that \ is quoted-insert
-       - remove the binding to vi_escape_keymap; Posix.2a says that
-         ESC in movement mode does nothing (vi description)
-
-                                  9/24
-                                  ----
-shell.c
-       - shell should send SIGHUP to all it's jobs when it receives
-         SIGHUP only if it is an interactive login shell
-
-execute_cmd.c
-       - systems running the Andrew File System don't use the Unix file
-         mode bits to decide whether or not a file is executable (they're
-         unused, since AFS as ACLs), so executable_file needs to call
-         access (file, X_OK) if running on AFS
-
-                                  9/25
-                                  ----
-jobs.c
-       - make sure a non-interactive shell initializes original_pgrp to
-         NO_PID, so it does not attempt to give the terminal back to that
-         pgrp when it exits or calls the `exec' builtin
-
-                                  10/3
-                                  ----
-machines.h
-       - add -DHAVE_RESOURCE to the NeXT machine description as SYSDEP_CFLAGS
-       - add -DHAVE_GETDTABLSIZE and -DHAVE_SETDTABLESIZE to Dynix/ptx
-         description
-
-shell.c
-       - make a non-interactive script shell call dup2 on the fd it has
-         open to the script file to move the descriptor to one that hopefully
-         user programs will not attempt to use
-
-general.c
-       - make the definition of getdtablesize() depend on HAVE_GETDTABLESIZE
-         not being defined.  Auto-define that for non-USG systems (or HPUX).
-         This allows a SYSDEP_CFLAGS entry to override it
-
-builtins/ulimit.def
-       - new function canraise(cmd, curlim, newlim) to call on systems
-         without HAVE_RESOURCE to decide whether or not the limit can be
-         raised.  Maybe we should remove the test altogether and let the
-         system call fail instead
-
-                                  10/8
-                                  ----
-execute_cmd.c
-       - If a command is not found, make the exit status 127 like Posix.2
-         says
-
-                                  10/14
-                                  -----
-print_cmd.c
-       - changed cprintf(s) to cnprintf(args_length, s) and made cnprintf
-         malloc the buffer it uses for vsprintf to avoid overrun of the
-         5000-character temp buffer used previously.  args_length is the
-         expected total length of all the arguments
-
-                                  10/15
-                                  -----
-jobs.c
-       - set last_command_exit_value before calling a trap handler for
-         SIGINT: new function process_exit_status(), changes to use it
-
-                                  10/18
-                                  -----
-print_cmd.c
-       - removed `cnprintf' changes
-       - re-implemented cprintf as a miniature vsprintf interpreting %s,
-         %d, and %c and using a dynamically-allocated buffer
-
-support/mksysdefs
-       - look for /usr/include/varargs.h and define HAVE_VARARGS_H if
-         found
-
-cpp-Makefile
-       - pass HAVE_VARARGS_H down to the makes in the various libraries
-
-                                  10/26
-                                  -----
-lib/glob/glob.c
-       - free `result' before using temp_results to return the value
-         of glob_dir_to_array -- plugs a small memory leak
-
-                                  11/2
-                                  ----
-[Fixes from bfox version dated 10/18]
-
-bashline.c
-       - separated definitions of BRACE_COMPLETION and the extern declaration
-         of the brace completion functions
-
-config.h
-       - make PROCESS_SUBSTITUTION depend on the value of MKFIFO_MISSING
-
-cpp-Makefile
-       - add posixstat.h, tilde.[ch], xmalloc.c to the readline library
-         sources (also the corresponding object files)
-       - make the definition of HAVE_TILDE_SOURCE depend on the definition
-         of HAVE_READLINE_SOURCE
-
-lib/posixheaders
-       - new directory, for posix support functions and header files
-       - various cleanups to the library support rules
-
-execute_cmd.c
-       - make the practice of checking hashed filenames for executability
-         dependent on $POSIXLY_CORRECT
-
-general.c
-       - The `hppa' running hpux-8 does not have `getdtablesize'
-
-general.h
-       - make the extern declaration of strchr and strrchr go away if
-         __STDC__ is defined
-jobs.h
-       - test for and define all of the W* macros individually
-
-machines.h
-       - completely new alliant description from bfox
-       - add -DMKFIFO_MISSING to NeXT SYSDEP_CFLAGS
-       - add description for Siemens MX500 running `sinix'
-
-builtins/common.c
-       - move code that depends on BANG_HISTORY being defined inside #ifdef
-         HISTORY blocks, since you can't have BANG_HISTORY without HISTORY
-
-builtins/echo.def
-       - make -E work all the time, not just on sys5 systems
-
-builtins/enable.def
-       - add -all option (with synonym of -a)
-       - change `DISABLED' to 2 and make argument to list_some_builtins a
-         bitmask
-
-builtins/kill.def
-       - it is an error if `signum' == NSIG
-
-documentation/bash.1
-       - added -E flag to `echo'
-       - added description of -all to enable
-
-lib/readline/tilde.c, lib/readline/xmalloc.c
-       - links to these files for standalone readline lib
-
-lib/readline/{funmap.c,history.c,keymaps.c,readline.c}
-       - make xmalloc and xrealloc static again and dependent on the
-         definition of STATIC_MALLOC
-
-lib/readline/readline.c
-       - include <sys/file.h> only if NO_SYS_FILE is not defined
-       - add support for a `stat' char after filenames when listing completion
-         alternatives if VISIBLE_STATS is defined
-       - add support for _GO32_ definition (PC)
-       - add LibraryVersion internal variable
-       - initialize rl_instream and rl_outstream to NULL, because all of a
-         sudden stdin and stdout may no longer be constants
-       - make readline_default_bindings `static void'
-       - add support for quoting a portion of the input line to make it
-         immune from completion
-
-support/getcppsyms.c
-       - recognize `alliant'
-
-support/mksysdefs
-       - presence of /bin/fxc.info indicates that the machine is an alliant
-
-support/{FAQ,PORTING,mklinks,fixdist}
-       - new files
-
-[end of changes from bfox]
-
-machines.h
-       - added support for HP-UX 9.0 (hpux_9)
-
-                                  11/12
-                                  -----
-machines.h
-       - added -lsocket to the REQUIRED_LIBRARIES define for ICL RS6000
-       - removed the `#undef HAVE_WAIT_H' from the isc386 description
-
-lib/readline/rltty.c
-       - split off almost all tty-related code from readline.c to this file
-
-                                  11/13
-                                  -----
-lib/readline/rltty.c
-       - changed the way the bsd tty code works to use a `struct bsdtty'
-         that encapsulates all of the bsd tty state into a single structure
-         that can be passed around by reference
-       - changed the bsd tty setup and teardown code to be more like the
-         ce version of things
-lib/readline/rldefs.h
-       - added code to define HAVE_USG_SIGHOLD for svr3 machines.  The
-         prepping and deprepping code uses them to block SIGINT while
-         getting and setting the tty attributes
-
-                                  11/14
-                                  -----
-lib/readline/rltty.c
-       - encapsulated the system-specific code for setting up the terminal
-         into a function: `prepare_terminal_settings'.  This means that the
-         code for rl_prep_terminal and rl_deprep_terminal is basically
-         identical between tty driver versions
-       - changed the BSD version of rltty_set_default_bindings to use a
-         struct bsdtty and get_tty_settings
-       - rl_prep_terminal and rl_deprep terminal are now non tty-driver
-         specific -- there is only one version of each function.  The
-         tty-driver specific code is now in {set,get}_tty_settings and
-         prepare_terminal_settings
-
-                                  11/24
-                                  -----
-
-general.c
-       - make the function definitions for bcopy and bzero depend on a
-         HAVE_BCOPY define
-
-machines.h
-       - define HAVE_BCOPY for RS/6000s, RTs running AIX, and Linux
-       - new description for Linux
-
-shell.c, variables.c
-       - don't declare getpwuid for Linux systems
-
-support/getcppsyms.c
-       - recognize `linux' and `__linux__'
-
-builtins/psize.c
-       - don't redefine memset() for USG machines
-
-general.c
-       - add extern declaration of getdtablesize() to dup2() replacement
-       - don't compile in bcopy and bzero on Linux machines
-
-test.c
-       - don't declare getgid, getegid, or geteuid on Linux
-
-lib/readline/rldefs.h
-       - don't try to include <sys/stream.h> on Linux machines
-
-lib/readline/readline.c
-       - only call rl_parse_and_bind on non-empty lines when reading
-         ~/.inputrc
-       - allow backslash to quote characters in the key sequence to be
-         bound, which allows you to bind C-x \ for example
-       - allow delimiter characters in the body of a macro, quoted with
-         a backslash
-       - changed rl_function_dumper so that it outputs backslash-quoted
-         " and \ when called by bind -d
-
-lib/readline/funmap.c
-       - fixed a typo in the entry for `vi-replace'
-
-subst.c
-       - make sure the $(( xxx )) case sets this_command_name to NULL so
-         there are no confusing garbled error messages
-       - fix a memory leak in $[ xxx ] code (free temp)
-       - make $(( xxx )) case do the same variable expansion that the
-         $[ xxx ] case does
-
-                                  11/25
-                                  -----
-parse.y
-       - removed CMD_FORCE_SUBSHELL assignments
-
-command.h
-       - add a new flag for commands: CMD_NO_FORK
-
-shell.c
-       - added a function run_one_command for -c shells that just sets up
-         the top_level stuff for longjmp and calls parse_and_exec.  This
-         is controlled by the definition of ONESHOT
-
-execute_cmd.c
-       - execute_disk_command takes an extra argument: nofork.  If non-zero,
-         this tells it to not fork for a command without pipes in or out
-       - set NO_FORK for a simple command run in a subshell with
-         want_subshell ( `( xxx )' )
-
-builtins/common.c
-       - if the from_file argument to parse_and_execute is "-c", then
-         assume this is a one-shot -c command and set NO_FORK for simple
-         commands.  This is controlled by the definition of ONESHOT
-
-                                  12/1
-                                  ----
-support/getcppsyms.c
-       - add defines for bsdi and __386BSD__
-
-machines.h
-       - add a section for 386bsd
-
-                                  12/2
-                                  ----
-input.c
-       - added a new function check_bash_input (fd) which checks whether
-         or not file descriptor fd is the buffered fd which bash is using
-         to read a script, and, if so, swaps the buffered fd to a new
-         file descriptor and reinits bash_input
-       - input buffering now solves these problems:
-               parent-child synchronization
-               using the script fd in a user redirection
-               auto-restart of interrupted reads on all systems
-               speed
-
-execute_cmd.c
-       - call check_bash_input from do_redirection_internal before a call
-         to dup2 and a call to duplicate_buffered_fd
-
-                                  12/3
-                                  ----
-builtins/getopt.c
-       - only redefine `const' if it is not already #defined
-
-lib/readline/rltty.c
-       - make sure HANDLE_SIGNALS is defined here as it is in readline.c
-
-                                  12/7
-                                  ----
-lib/malloc/malloc.c
-       - change the conditional around get_lim_data to be HAVE_RESOURCE
-         (ulimit if not defined, getrlimit if it is)
-       - removed the 4.1BSD version of get_lim_data
-       - conditionalize the inclusion of sys/resource.h on the definition
-         of HAVE_RESOURCE
-
-                                  12/11
-                                  -----
-lib/readline/readline.c
-       - changed the name of strpbrk to rl_strpbrk to avoid any conflicts
-         with OS include files and libraries
-
-                                  12/15
-                                  -----
-
-bashline.c
-       - changed initialize_readline to type void
-
-execute_cmd.c
-       - execute_for_command called expand_words with an extra argument
-
-jobs.c
-       - changed stop_pipeline to use xrealloc instead of realloc
-
-lib/readline/readline.c
-       - changed rl_complete_internal to call xmalloc instead of malloc
-
-variables.c
-       - dispose_used_env_vars, non_unsettable declared void
-
-builtins/common.c
-       - include <sys/stat.h> because we cast things to struct stat *
-
-builtins/exit.def
-       - change exit_or_logout to be declared static
-
-builtins/psize.c
-       - removed call to memset and therefore the need to #ifdef it's
-         definition
-
-builtins/bind.def, builtins/ulimit.def
-       - add extern declaration for strerror()
-
-builtins/exec.def
-       - add extern declaration for strerror()
-       - add extern declaration for full_pathname() and remove casts to
-         char *
-       - add extern declaration for make_word_array() and remove casts to
-         char **
-
-builtins/fc.def, copy_cmd.c, shell.c, parse.y
-       - add extern declaration for reverse_list()
-
-builtins/read.def
-       - change free to vfree so systems don't complain about the extern
-         declaration (type clashes, etc.)
-
-lib/tilde/tilde.c
-       - include string.h or strings.h as appropriate to get the correct
-         declaration of strcpy before the savestring macro uses it
-
-parse.y
-       - add extern declaration for sub_append_string and remove casts to
-         char *
-       - add extern declaration for add_string_to_list and remove casts to
-         WORD_LIST *
-
-                                  12/16
-                                  -----
-lib/malloc/malloc.c
-       - move the check for RLIMIT_DATA after the inclusion of
-         <sys/resource.h> (duh!)
-
-bashline.c
-       - added extern declaration for get_working_directory
-
-jobs.c
-       - added extern declaration for polite_directory_format
-
-execute_cmd.c
-       - added extern declaration for copy_redirects
-
-subst.c
-       - added extern declaration for reverse_list
-
-machines.h
-       - new entry for KSR1 running KSROS (OSF/1)
-
-support/getcppsyms.c
-       - recognize `ksr1'
-
-general.h
-       - make sure that strcpy is declared before the definition of
-         savestring
-
-alias.c, bashline.c, bracecomp.c, braces.c, copy_cmd.c, execute_cmd.c,
-expr.c, general.c, hash.c, jobs.c, mailcheck.c, make_cmd.c, print_cmd.c,
-trap.c, variables.c, parse.y
-        - make sure that string.h or strings.h is included before general.h
-          (which is included by shell.h)
-        
-builtins/mkbuiltins.c
-        - add extern declaration of strcpy if __STDC__ and strcpy not defined
-        - include <string.h> or <strings.h> as needed
-
-builtins/cd.def, builtins/shift.def, builtins/source.def, builtins/test.def,
-builtins/command.def, builtins/declare.def, builtins/fc.def,
-builtins/getopts.def, builtins/hash.def
-       - include <string.h> or <strings.h> before definition of savestring
-
-lib/tilde/tilde.c, lib/readline/chardefs.h
-       - include <string.h> or <strings.h> before definition of savestring
-
-lib/readline/readline.c
-       - made glean_key_from_name cast NAME to unsigned char * before
-         dereferencing it to better handle 8-bit character sets
-
-                                  12/17
-                                  -----
-subst.c
-       - made command_substitute set up top_level with setjmp so that shells
-         running command substitution won't longjmp all the way back to
-         main() if they're interrupted and call throw_to_top_level
-
-                                  12/18
-                                  -----
-lib/readline/readline.c
-       - split the code that handles setting the screen size off into a new
-         function: set_screen_size
-       - changed init_terminal_io to call set_screen_size
-       - changed rl_handle_sigwinch to call set_screen_size instead of
-         totally reinitializing the world on each SIGWINCH
-       - added a new function cr() that simply puts the cursor at physical
-         column 0
-       - changed rl_handle_sigwinch to call cr() and
-         rl_forced_update_display() after resetting its idea of the screen
-         size
-
-                                  12/20
-                                  -----
-lib/readline/history.c
-       - changed the way history_expand treats `\' to make it a general
-         quoting character like the shell treats it so that allows single
-         quotes to be quoted
-
-                                  12/23
-                                  -----
-machines.h
-       - changed M_OS define in BSDI description to BSD386, since cpp
-         doesn't like BSD/386
-
-                                  12/28
-                                  -----
-execute_cmd.c
-       - changed execute_case_command so that expand_word_no_split is called
-         on the `word', as Posix.2 specifies
-
-                                   1/5
-                                   ---
-machines.h
-       - new machine description for Dec Alpha running Dec OSF/1
-
-support/getcppsyms.c
-       - recognize alpha, __alpha, osf, and __osf__
-
-                                   1/7
-                                   ---
-lib/readline/readline.c
-       - removed definition of HANDLE_SIGNALS
-       - changed rl_signal_handler so that systems with HAVE_POSIX_SIGNALS
-         defined will not set the SIGINT handler to SIG_IGN
-       - include <sys/ioctl.h> for _386BSD and BSD386 for TIOCGWINSZ
-
-lib/readline/rldefs.h
-       - added definition of HANDLE_SIGNALS
-
-lib/readline/rltty.c
-       - added GETATTR and SETATTR macros for termios/termio systems for
-         use by get_tty_settings and set_tty_settings
-
-                                   1/9
-                                   ---
-shell.c
-       - new variable: startup_state.  Set to 0 for scripts, 1 for
-         interactive shells, and 2 for -c command shells.  Superset of
-         the functionality provided by the `interactive_shell' variable
-
-builtins/common.c
-       - changed parse_and_execute to use startup_state to detect that
-         it's being called as a result of -c command, rather than the
-         ad-hoc method previously employed
-
-                                  1/11
-                                  ----
-support/getcppsyms.c
-       - recognize `m88k'
-
-machines.h
-       - new description for Motorola M88K Delta running SVR4
-
-support/mksysdefs
-       - moved the defaulting of `SYSDEF' to `cadmus' until just before
-         the definition is written out
-
-shell.c
-       - changed ambiguous assignment to `login_shell' by introducing a
-         dummy variable (~line 400: login_shell = -++login_shell)
-
-lib/malloc/malloc.c
-       - moved the code that decides whether or not to define USG or
-         BSD4_2 inside checks for USG and USGr4, since USGr4 passes
-         the tests for the various signals
-
-alias.c
-       - changed a call to index() to strchr()
-
-                                  1/12
-                                  ----
-lib/readline/readline.c
-       - moved inclusion of posixstat.h before inclusion of rldefs.h
-         (rldefs.h requires that stat.h be included before it)
-       - don't test whether or not a file is a symlink or a socket
-         in stat_char unless S_ISLNK and S_ISSOCK are defined,
-         respectively
-
-                                  1/13
-                                  ----
-machines.h
-       - added -I/usr/ucbinclude to SYSDEP_CFLAGS and a #define 
-         USE_GNU_TERMCAP for the ICL DRS6000 description
-
-support/bashbug.c
-       - added definition for gethostname() for systems that do not have
-         it (USG except for SGI and HP)
-
-                                  1/14
-                                  ----
-test.c
-       - made the #define of uid_t also dependent on HAVE_UID_T being
-         undefined.  That way, hosts which have trouble can add a
-         -DHAVE_UID_T to SYSDEP_CFLAGS in the machines.h entry
-       - made the extern declaration of getgid() be conditionalized out
-         on Sony non-Posix machines
-
-machines.h
-       - added -DHAVE_UID_T to SYSDEP_CFLAGS in the Sony/BSD entry
-
-                                  1/15
-                                  ----
-parse.y
-       - made type of `report_syntax_error' be static void
-       - made type of `handle_eof_input_unit' be static void
-       - added an error message when EOF is reached unexpectedly
-         (if EOF_Reached is 1 when report_syntax_error is called)
-       - added `extern void make_here_document ();'
-
-make_cmd.c
-       - made type of make_here_document be void
-
-execute_cmd.c
-       - added declarations of set_clexec to function prologues for
-         do_redirection and do_redirection_internal
-
-variables.c
-       - added `extern long atol()' to assign_seconds ()
-
-jobs.c
-       - changed type of `making_children ()' to void
-       - removed unused label `wait_exit' in wait_for()
-       - changed `sigset_t set' to `sigset_t suspend_set' inside the
-         BROKEN_SIGSUSPEND definition because `set' shadows the
-         definition used in BLOCK_CHILD and UNBLOCK_CHILD
-
-mailcheck.c
-       - changed type of add_mail_file to void
-
-alias.c
-       - changed type of delete_all_aliases to void
-       - changed block-local declaration of `tl' to `tlen', because
-         `tl' shadows a function-scope variable
-
-input.c
-       - made duplicate_buffered_stream return new fd (like dup2) when
-         it finishes
-       - made free_buffered_stream() a void-valued function
-
-bashline.c
-       - cleaned up the precedence of the expression that checks whether
-         or not the ignore patterns have changed in setup_ignore_patterns
-
-lib/readline/readline.c
-       - made rl_gather_tyi a void-valued function
-       - made rl_dispatch a void-valued function
-       - made rl_redisplay a void-valued function
-       - made free_history_entry a void-valued function
-       - removed unused label `some_matches' from rl_complete_internal
-
-lib/readline/vi_mode.c
-       - removed check of return value from rl_dispatch in rl_vi_redo,
-         since rl_dispatch never returned one anyway
-
-lib/readline/history.c
-       - removed unused label `search_won' in get_history_event
-       - removed unused label `read_which' in get_history_event
-       - removed unused label `bad_word_spec' in history_expand
-       - removed unused label `error_exit' in history_expand
-       - changed block-local declaration of `len' to `slen' in
-         history_expand because len shadows a function-local variable
-       - changed block-local declaration of `l' to `ll' in
-         history_expand because len shadows a function-local variable
-       - removed unused label `get_first' in get_history_word_specifier
-
-                                  1/18
-                                  ----
-parse.y
-       - fixed up the support for `unexpected EOF' errors by making
-         read_token set `EOF_Reached' to 1 before returning yacc_EOF
-         when it reads EOF while looking for the start of a token
-       - added better messages for unexpected eof to report_syntax_error
-       - added better messages for unexpected tokens to report_syntax_error
-       - made handle_eof_input_unit reset EOF_Reached to 0 if the
-         shell is interactive
-       - made report_syntax_error reset EOF_Reached to 0 if the
-         shell is interactive
-       - changed the non-interactive error messages to add `line' before
-         printing the line number rather than simply use filename:digit:
-
-                                  1/19
-                                  ----
-builtins/type.def
-       - changed code so that simple `type' (-all not specified) takes
-         the same path as a regular command search (find_user_command()
-         rather than user_command_matches())
-
-                                  1/20
-                                  ----
-shell.c
-       - new variable `passwd_shell' set from the pw_shell field in the
-         password file
-       - new variable `passwd_dir' set from the pw_dir field in the
-         password file
-
-variables.c
-       - used passwd_shell and passwd_dir to eliminate the calls to the
-         getpw* functions
-       - if $SHELL is unset at shell startup, it is set to the value of
-         passwd_shell
-
-                                  1/21
-                                  ----
-support/mksysdefs
-       - look for sys/ptem.h, define HAVE_SYS_PTEM_H if found
-       - look for sys/pte.h, define HAVE_SYS_PTE_H if found
-
-cpp-Makefile
-       - pass HAVE_SYS_PTEM_H and HAVE_SYS_PTE_H to the readline make
-
-lib/readline/rldefs.h
-       - include sys/ptem.h and sys/pte.h depending on the above two
-         definitions
-
-lib/readline/readline.c
-       - include <sys/ioctl.h> if on an AIX system to get TIOCGWINSZ and
-         struct winsize
-
-machines.h
-       - added #undef HAVE_ALLOCA to hpux_6 description.  alloca seems
-         to have problems when passing alloca'd memory to other functions
-         (esp. in the globbing code, passing directory_name)
-
-                                  1/22
-                                  ----
-machines.h
-       - make the cadmus definition active only of M_MACHINE is not defined
-         when the code gets there
-
-                                   2/1
-                                   ---
-builtins/set.def
-       - changed the reference to $9 in the help string
-       - added `-' to the help string listing the options
-
-documentation/bash.1
-       - changed the reference to $9 in the set builtin description
-       - added `-' to the set builtin synopsis listing the options
-
-                                   2/2
-                                   ---
-machines.h
-       - added REQUIRED_LIBARIES = -lPW -lc_s to SCO unix description
-         when not using gcc
-
-variables.c
-       - new variable builtin_env; builtin analogue of function_env
-       - new function dispose_builtin_env to free up all strings in
-         builtin_env
-       - find_tempenv_variable now looks in builtin_env after the
-         temporary environment
-
-execute_cmd.c
-       - execute_builtin_or_function and execute_subshell_builtin_or_function
-         now set up builtin_env for the `source' builtin so that things like
-         this work:
-               foo contains:
-                       echo XXX=$XXX
-                       echo XXX=$XXX
-               and you run
-                       XXX=aaa . foo
-               which should output
-                       XXX=aaa
-                       XXX=aaa
-         (bug report by mfg@castle.ed.ac.uk)
-
-                                   2/3
-                                   ---
-execute_cmd.c
-       - when a command is forced into a subshell with ( ), turn off its
-         INVERT_RETURN bit in the flags so the exit status of the subshell
-         is not inverted.  In execute_command_internal
-
-                                   2/5
-                                   ---
-[work to make readline configurably 8-bit clean]
-
-lib/readline/readline.c
-       - added variable convert_meta_chars_to_ascii, which controls
-         whether meta characters are converted into ESC-prefixed
-         key sequences.  Set to 1 by default
-       - added a readline variable `convert-meta', settable in a
-         .inputrc, that controls the value of convert_meta_chars_to_ascii
-
-lib/readline/keymaps.h
-       - changed the hard-coded keymap size of 128 to a #define
-         of KEYMAP_SIZE, which is initially 128
-
-lib/readline/keymaps.c
-       - changed all instances of 128 to KEYMAP_SIZE
-       - changed rl_make_keymap to initialize positions 128-256 to
-         rl_insert if KEYMAP_SIZE > 128
-
-lib/readline/chardefs.h
-       - properly define _CHARDEFS_ to protect against multiple inclusion
-
-documentation/bash.1
-       - documented new `convert-meta' readline variable
-
-                                   2/7
-                                   ---
-lib/readline/keymaps.h
-       - increased KEYMAP_SIZE to 256
-
-lib/readline/emacs_keymap.c
-       - added entries to make the keymaps 256 entries.  The entries in
-         emacs_standard_keymap are the ISO Latin-1 characters
-
-lib/readline/vi_keymap.c
-       - added entries to make the keymaps 256 entries.  The entries in
-         vi_insertion_keymap are the ISO Latin-1 characters
-
-                                   2/8
-                                   ---
-lib/readline/readline.c
-       - make sure that rl_display checks that there is room for 8 more
-         characters when deciding whether or not to realloc the line,
-         since we might have to insert a tab
-       - rl_display_search should not use MESSAGE as a printf format
-         string, since it might contain %
-       - reversed arguments in calls to rl_kill_text in
-         rl_unix_word_rubout so that killed text is prepended to the
-         undo data rather than appended
-
-                                   2/9
-                                   ---
-builtins/alias.def
-       - moved single_quote() to builtins/common.c and made it global
-
-builtins/trap.def
-       - made sure that the output of `trap' is suitable for re-input
-         to the shell as a trap definition by using proper single-quoting
-         of the command
-
-lib/readline/readline.c
-       - new readline variable `completion-query-items' to control the
-         value of rl_completion_query_items (initially and by default
-         100)
-       - new function rl_insert_completions which performs a call to
-         rl_complete_internal ('*')
-
-lib/readline/readline.h
-       - added extern declaration for rl_insert_completions ()
-
-lib/readline/funmap.c
-       - added bindable command name `insert-completions' that maps to a
-         call to rl_insert_completions ()
-
-documentation/bash.1
-       - added documentation for new `completion-query-items' readline
-         variable
-       - added documentation for new `insert-completions' readline
-         command
-
-                                  2/10
-                                  ----
-subst.c
-       - made ${xxx} behave correctly when the -u option was on and xxx
-         was not set
-       - made $xxx with -u enabled and xxx unset set $? to 1
-
-lib/malloc/malloc.c
-       - made free() a void function, like ANSI and Posix say to
-
-support/mksydefs
-       - look for /usr/include/stdlib.h and define HAVE_STDLIB_H if found
-
-cpp-Makefile
-       - pass HAVE_STDLIB_H to all makes
-
-ansi_stdlib.h
-       - new file containing the extern function declarations that ANSI
-         puts into <stdlib.h> that bash uses; really a link to
-         lib/posixheaders/ansi_stdlib.h
-
-lib/posixheaders/ansi_stdlib.h
-       - real copy of ansi_stdlib.h
-
-alias.c, bashline.c, variables.c, shell.c, error.c, hash.c, signames.c,
-expr.c, general.c, input.c, builtins/mkbuiltins.c, builtins/fc.def,
-lib/glob/glob.c, lib/tilde/tilde.c, lib/malloc/xmalloc.c
-       - include <stdlib.h> if HAVE_STDLIB_H is defined, include
-         ansi_stdlib.h if not
-
-general.h, alias.h
-       - removed extern declarations for malloc and realloc
-
-lib/readline/{readline,history,funmap,keymaps,vi_mode}.c
-       - include <stdlib.h> or ansi_stdlib.h
-       - remove extern char *getenv() declarations
-
-cpp-Makefile
-       - added dependencies on ansi_stdlib.h
-
-support/fixdist
-       - changes to make things work with ansi_stdlib.h (basically just
-         dupliating the lines for posixstat.h)
-
-alias.h, braces.c, expr.c, general.h, hash.h, vprint.c,
-builtins/fc.def, builtins/getopts.def, lib/glob/glob.c,
-lib/tilde/tilde.c
-       - define NULL as ((void *)0) if NULL undefined and compiling in an
-         ANSI C environment (__STDC__)
-
-                                  2/11
-                                  ----
-lib/readline/readline.c
-       - moved declaration of convert_meta_chars_to_ascii into the `forward'
-         declarations section, before its first use
-
-                                  2/13
-                                  ----
-expr.c
-       - if x is a char *, don't compare *x to NULL, use '\0' instead
-
-                                  2/15
-                                  ----
-lib/readline/readline.c
-       - add a call to rl_initialize_funmap at the beginning of
-         rl_named_function to make sure all of the function names will
-         be found
-
-                                  2/16
-                                  ----
-parse.y
-       - handle double-quoted ${...} words like the Posix.2 spec says --
-         count braces and skip command substitutions and quoted strings
-         to find the end of the pattern: new variables delimited_brace_level
-         and dollar_brace_level
-       - add new variable embedded_quoted_string so that the parser can
-         skip embedded quoted strings while parsing $() and ${}
-         constructs
-
-subst.c
-       - new function: extract_dollar_brace_string () which implements
-         the Posix.2 rules about ${...} extraction: counting braces while
-         skipping quoted strings and command substitutions.  Called from
-         extract_string_double_quoted and expand_word_internal
-       - changed the way pattern removal was done: the pattern is now
-         run through tilde expansion, parameter expansion, command
-         substitution, and arithmetic substitution, then quoted in a
-         way acceptable to fnmatch with quote_string_for_globbing
-       - add code so that expansions like ${HOME:`xxxx`} are errors, as
-         they should be, and put the full expansion string in the error
-         message
-
-                                  2/17
-                                  ----
-
-subst.c
-       - changed expand_word_internal to call parameter_brace_expand_rhs
-         with the `quoted' parameter set to 0 except when the separator
-         between PARAM and WORD is `+'.  This makes things like
-
-               echo "${undef-"foo bar"}"
-         echo `foo bar' without the quotes.  I'm still not sure this is
-         right, but it is compatible with other versions of sh
-
-                                  2/18
-                                  ----
-parse.y
-       - add code to reserved_word_acceptable so that bash will parse a
-         reserved word after a `}'
-
-getcwd.c
-       - make it compilable on machines without dirent.h and struct direct
-         or unistd.h (like the NeXT) using the proper conditional inclusion
-         with HAVE_DIRENT_H and HAVE_UNISTD_H
-
-general.c
-       - moved the getwd() replacement out from inside #ifdef USG and just
-         protected it with #ifdef HAVE_GETWD
-
-machines.h
-       - added #undef HAVE_GETWD and #undef HAVE_GETCWD to the NeXT
-         machine description
-
-subst.c
-       - added `forward' declarations for tilde_expand and
-         expand_string_unsplit and removed the function-local extern
-         declarations
-
-                                  2/19
-                                  ----
-getcwd.c
-       - changed to do conditional inclusion of limits.h, stdlib.h, string.h
-
-                                  2/22
-                                  ----
-builtins/cd.def
-       - if the chdir to the canonicalized form of the pathname in
-         change_to_directory fails, try what the user passed.  If that
-         succeeds, reinitialize the_current_working_directory to what
-         getwd() returns, and return success.  Fix for pathological
-         cases like
-
-               mkdir x
-               cd x
-               ( cd .. ; mv x y )
-               cd .
-
-                                  2/24
-                                  ----
-command.h
-       - added extern declarations for make_word_array, make_command,
-         make_bare_simple_command, and make_here_document
-       - added extern declarations for functions in copy_command.c:
-         copy_command, copy_word, copy_word_list, copy_redirect,
-         copy_redirects
-
-copy_cmd.c
-       - made all functions not used outside this file static
-
-execute_cmd.c
-       - removed extern declaration of make_word_array
-
-                                  2/25
-                                  ----
-shell.c
-       - made non-interactive shell look for $BASH_ENV startup file rather
-         than $ENV (conflict with Posix.2)
-
-command.h
-       - broke the `union redirectee' out of the struct redirect, made
-         the union it's own typedef (REDIRECTEE), then added
-         REDIRECTEE redirectee to the struct redirect
-       - made the `dest' member of a REDIRECTEE a long.  It matters on
-         some machines (sizeof(long) == sizeof(pointer) != sizeof(int)
-         and works on those machines with all those sizes being 32 bits
-         (this should really be a typedef rather than a long)
-
-execute_cmd.c, parse.y
-       - changed all calls to make_redirection to pass a WORD_DESC * or
-         a long as the third argument to make_redirection
-[this should conclude the changes needed for the alpha]
-
-                                   3/2
-                                   ---
-subst.c, variables.c
-       - moved some function-scope extern function declarations to file
-         scope
-
-subst.c
-       - changed paramter_brace_expand_pattern to call expand_string_internal
-         on the removal pattern, since we do not want word splitting
-
-jobs.c
-       - call get_tty_state or set_tty_state in wait_for() depending on
-         a job's exit status when interactive_shell is set, rather
-         than testing interactive.  This makes stty commands in scripts
-         executed with `.' `stick'
-
-nojobs.c
-       - make sure we only call {set,get}_tty_state when interactive_shell
-         is set
-
-                                   3/3
-                                   ---
-unwind_prot.c
-       - make sure there is actually something on unwind_protect_list
-         before calling without_interrupts to run something on it or
-         delete something from it
-
-jobs.c
-       - make sure job_slots is not empty in cleanup_dead_jobs and
-         delete_all_jobs before actually doing something
-
-                                   3/4
-                                   ---
-machines.h
-       - add #undef HAVE_GETWD to Xenix286 machine description
-
-lib/readline/history.c
-       - fixed an off-by-one error in the history expansion code: if
-         the length of the result string after adding the current piece
-         is (allocated_len - 1), the strcpy will write over the first
-         marker placed there by the malloc debugging code.
-       - changed the history realloc code to work in 256-character chunks
-         rather than 255-character ones
-
-                                   3/8
-                                   ---
-execute_cmd.c
-       - new variable exec_redirection_undo_list that holds redirections
-         that must be undone even when `exec' throws away
-         redirection_undo_list.  These are copies of open files for
-         constructs like 7<&1.  Set in add_undo_redirect and used in
-         execute_builtin_or_function.  Disposed of otherwise.
-
-                                   3/9
-                                   ---
-execute_cmd.c
-       - fixed a memory leak in execute_builtin_or_function by adding an
-         unwind_protect to dispose of saved_undo_list
-       - anywhere do_redirections is called with INTERNAL==1 (which means
-         we make redirection_undo_list), arrange to clean up 
-         exec_redirection_undo_list
-
-print_cmd.c
-       - massive namespace cleanups -- made almost all functions static
-       - new function `colon' to be called in place of `cprintf(";")'
-         to ensure that we don't print a `;' right after a `&' from 
-         compound command printing functions (if, while, until, for)
-
-[put code out for FTP on 3/10]
-
-                                  3/11
-                                  ----
-documentation/bash.1
-       - removed the description of >&word as a way to redirect both
-         standard output and standard error
-
-endian.c
-       - moved new-endian.c to this.  This handles 64-bit machines
-         directly
-
-lib/readline/readline.c
-       - rl_copy -> rl_copy_text to avoid clashes with Sun's libraries
-       - moved the completion code to a new file
-
-lib/readline/complete.c
-       - new file with the completion code from readline
-
-lib/readline/Makefile, cpp-Makefile
-       - added complete.c and complete.o to the necessary make variables
-
-subst.c
-       - added an entry to special_vars to make a change to $TERMINFO
-         cause readline to reset itself (sv_terminal())
-
-                                  3/12
-                                  ----
-builtins/exec.def
-       - free `command' if the exec fails
-
-machines.h
-       - change sgi machine description to define HAVE_GETWD
-
-lib/readline/history.c
-       - fixed a memory leak in read_history_range -- need to free
-         `buffer' before returning
-       - if read(2) returns <= 0 in history_truncate_file, then
-         immediately exit
-       - start checking at buffer[chars_read - 1] for newlines
-
-lib/readline/readline.c
-       - fixed a memory leak in rl_read_init_file -- `buffer' must
-         be freed before we return
-       - rearranged code in update_line so that we check for ols and
-         nls being in bounds before trying to compare their values
-
-parse.y
-       - fixed memory leak in read_token -- don't need to save `token'
-         into a fresh variable before calling push_string because
-         push_string does its own savestring in save_expansion
-
-subst.c
-       - fixed memory leak in expand_words_internal -- the word_list
-         allocated by the `@' case when expanding $@ needs to
-         be freed after turning it into a string with string_list
-       - fixed memory leak in expand_word_internal -- the string
-         returned by extract_dollar_brace_string needs to be freed
-       - fixed memory leak in expand_word_internal -- the string
-         returned by substring() in the `default:' case needs to be
-         freed
-
-variables.c
-       - fixed a free-memory reference in makunbound -- have to save the
-         value of `name' before calling dispose_variable, because it
-         might directly reference old_var->name.  If so, then
-         stupidly_hack_special_variables will refer to freed memory
-
-dispose_cmd.c
-       - fixed a memory leak in dispose_command: if a group_command is
-         being disposed, need to free command->value.Group after
-         calling dispose_command (command->value.Group->command);
-       - fixed a memory leak in dispose_command: if a case command is
-         being disposed, need to free command->value.Case after
-         freeing everything else
-
-mailcheck.c
-       - fixed memory leak in remember_mail_dates -- need to
-         free the value returned by get_mailpaths()
-       - fixed memory leak in remember_mail_dates -- need to
-         free the value returned by extract_colon_unit()
-
-                                  3/13
-                                  ----
-bashline.c
-       - fixed memory leak in bash_symbolic_link_hook -- 
-         get_working_directory always returns newly-allocated memory
-         that must be freed
-       - fixed memory leak in bash_symbolic_link_hook -- 
-         if `*dirname' is going to be replaced, the current contents
-         have to be freed (if non-null)
-       - make bash_symbolic_link_hook call get_working_directory with
-         a non-empty string for the value of `for_whom'
-
-execute_cmd.c
-       - make sure that execute_command cleans up after itself by
-         disposing the fd_bitmap it allocates
-
-shell.c
-       - fixed memory leak in reader_loop -- if throw_to_top_level is
-         called with DISCARD, the current command needs to be disposed
-
-lib/readline/complete.c
-       - when we return NULL to indicate the end of a set of completion
-         matches, free dirname, filename, and users_dirname -- there's
-         no reason to let them persist between calls, consuming memory
-
-                                  3/16
-                                  ----
-shell.c
-       - when moving the `script' fd to the highest available fd, check
-         for getdtablesize returning -1 and default to 20 in that case
-
-jobs.c
-       - if getdtablesize returns something < 0, default to 20 
-       - check that getdtablesize() leaves `nds' set to something valid
-         before trying to dup2 shell_tty to it
-
-machines.h
-       - changed M_OS in KSR/1 description to OSF1
-
-maxpath.h
-       - include sys/param.h if __ksr1__ defined
-
-parse.y
-       - changed declaration of the_time from long to time_t
-
-lib/readline/readline.c
-       - changed extern declarations for rl_basic_word_break_characters
-         and rl_completer_word_break_characters to file scope rather
-         than block scope
-       - changed declaration of chars_avail (param to FIONREAD ioctl) to
-         int, which it should have been all along
-
-                                  3/17
-                                  ----
-jobs.c
-       - clamp nfds in initialize_jobs at 256
-
-shell.c
-       - clamp the value returned by getdtablesize() to 256
-
-                                  3/19
-                                  ----
-execute_cmd.c
-       - make find_user_command_in_path return a pathname if it exists
-         and the caller wants FS_EXISTS files.  This affects the `.'
-         builtin and files as script arguments to the shell (shell.c)
-       - clamp the highest-numbered file descriptior at 256 in
-         close_all_files().
-
-jobs.c
-       - make get_tty_info print error message on tcgetattr failure only
-         if interactive != 0 (that is, we're really interactive now)
-
-lib/readline/rltty.c
-       - changed SETATTR macro to call tcsetattr with TCSANOW flag, since
-         this call is being used to affect an input file descriptor.
-         Ditto for the sys5 tty driver code and TCSETA (was TCSADRAIN and
-         TCSETAW, respectively)
-       - added a flag for ksr1 machines `ksrflow' which is the state of
-         suspended output for this process.  If 1, this process has called
-         tcflow (tty, TCOOFF) to suspend output and tcflow(tty, TCOON)
-         may be called safely
-       - temporarily (?) disabled the code that simulates at ^Q at the end
-         of set_tty_settings.  Let's see if it makes any difference
-
-                                  3/22
-                                  ----
-execute_cmd.c
-       - new global variable (yucch) `current_fds_to_close' that is set to
-         the fd_bitmap passed to execute_simple_command while expand_words
-         is being executed so that this information is available to the
-         process substitution code
-       - set current_fds_to_close to NULL at start of execute_command
-
-subst.c
-       - change call to close_all_files in process_substitute to call
-         close_fd_bitmap (current_fds_to_close)
-       - fixed memory leak in parameter_brace_expand_length() -- need to
-         free the memory used to expand the PS1 in something like ${#PS1}
-       - fixed memory leak in expand_word_internal ${3:+posix} did not
-         free the memory used to expand the $3
-
-documentation/bash.1
-       - && and || have equal precedence; fixed up man page to reflect
-         this
-
-                                  3/23
-                                  ----
-[fixes from bfox version of 1.13 dated 3/21/93 from eos.ucsb.edu]
-
-config.h
-       - #undef alloca before redefining it as __builtin_alloca
-
-cpp-Makefile
-       - compile newversion.c with $(CFLAGS) instead of $(DEBUG_FLAGS)
-
-general.h
-       - new #define: maybe_free(x)
-
-jobs.c
-       - alliant has same problem as NeXT wrt /usr/etc/rlogind and /dev/tty
-       - make delete_all_jobs be static void
-
-builtins/cd.def
-       - use maybe_free define
-
-builtins/common.c
-       - HAVE_VPRINTF --> HAVE_VFPRINTF
-
-builtins/test.def
-       - document -h as a synonym for -L
-
-lib/readline/history.c, lib/readline/rldefs.h
-       - #undef alloca before redefining it as __builtin_alloca
-
-lib/readline/history.c
-       - new functions history_get_state and history_set_state
-
-lib/readline/tilde.c
-       - put in #pragma alloca if on AIX machine
-
-support/getcppsyms.c
-       - recognize __GNUC__ and __STDC__ and pass them along as output
-
-                                  3/24
-                                  ----
-
-subst.c
-       - removed fully_quoted_word(), since it was unused
-
-execute_cmd.c
-       - added extern declarations for functions in dispose_cmd.c
-       - removed extern declaration of atol()
-
-parse.y
-       - added extern declaration for dispose_words()
-
-documentation/bash.1
-       - re-added the description of >&filename as a way to redirect
-         both stdout and stderr to filename
-
-machines.h
-       - slight changes to the alpha description
-
-shell.c
-       - moved all the extern function declarations to have file scope
-
-print_cmd.c
-       - colon --> semicolon
-
-parse.y
-       - in read_token, if we're parsing an embedded quoted string, don't
-         bother with special processing of `$' and characters following
-
-                                  3/25
-                                  ----
-print_cmd.c
-       - added a new function the_printed_command_resize to expand the
-         printed command buffer in cprintf()
-
-builtins/bind.def
-       - removed the unwind-protect code, because unwind_protect_pointer
-         is not guaranteed to work on a FILE *
-
-lib/readline/readline.c
-       - assign in_stream and out_stream immediately, because they may
-         be used before readline_internal is called
-
-                                  3/26
-                                  ----
-cpp-Makefile
-       - allow for use of different compress programs with the use of
-         $(COMPRESS) and $(COMPRESS_EXT)
-
-                                  3/29
-                                  ----
-
-general.c
-       - new function set_lines_and_columns to set $LINES and $COLUMNS in
-         response to a SIGWINCH
-
-lib/readline/readline.c
-       - call set_lines_and_columns() in set_screen_size() to set the
-         right environment variables on a SIGWINCH (code needed to be
-         rearranged a bit to make this happen)
-
-jobs.c
-       - add a SIGWINCH handler to set $LINES and $COLUMNS if readline is
-         not being compiled into the shell and TIOCGWINSZ and SIGWINCH
-         are defined
-
-subst.c
-       - made dequote_string extern so `read' can use it
-
-builtins/read.def
-       - added CTLESC characters to represent escapes instead of doing
-         backslash processing internally
-
-braces.c
-       - fixed the brace expansion code so that backslash can correctly
-         act as an escape character, and escape `"' in a double-quoted
-         string
-
-                                  3/31
-                                  ----
-make_cmd.c
-       - the `<>' redirection needs to open the file O_RDWR|O_CREAT
-         for Posix.2 compatibility
-
-                                   4/1
-                                   ---
-parse.y
-       - the function read_a_line was changed to take a flag telling it
-         whether or not to remove quoted newlines
-       - read_secondary_line was changed to call read_a_line with an arg
-         of 1, telling it to strip \<newline> pairs
-
-         These two changes fix two bugs with here documents:
-               1.  delimiter check occurs after \<newline> stripping
-               2.  leading tab deletion occurs after \<newline> stripping
-
-lib/readline/rldefs.h
-       - include <termcap.h> if on Linux
-
-lib/readline/readline.c
-       - don't declare PC, BC, and UP if on Linux (??)
-       - change the conditional parsing code that handles the `$if term='
-         construct to test the name given in the if command against both
-         the `long' and `short' forms of rl_terminal_name.  For instance,
-         if `rl_terminal_name' were `sun-cmd', it would be tested with
-         stricmp against both `sun' and `sun-cmd'
-
-machines.h
-       - add HAVE_VFPRINTF to the Linux description
-
-unwind_prot.h
-       - change the unwind_protect_int macro to cast the second argument to
-         unwind_protect_var to a (char *), which is what unwind_protect_var
-         expects
-
-unwind_prot.c
-       - change unwind_protect_var to allocate memory and do a bcopy if the
-         size of the variable passed to save is not sizeof(int).  That's
-         what restore_variable expects
-
-lib/readline/complete.c
-       - fixed rl_complete_internal so that it pays attention to the value
-         of rl_completer_quote_characters and quotes a match if the match
-         contains a word break character
-
-bashline.c
-       - set rl_completer_quote_characters to ' and "
-
-                                   4/5
-                                   ---
-lib/readline/complete.c
-       - changed rl_complete_internal so that an `attempted completion
-         function' may tell readline not to perform filename completion
-         if it fails by returning (char **) -1
-
-bashline.c
-       - attempt_shell_completion should return (char **) -1 if doing
-         command word completion and no matches are found.  This will
-         tell readline not to perform filename completion
-
-                                   4/6
-                                   ---
-builtins/common.c
-       - fixed the error message printer by get_working_directory:
-         `for_whom', shell_name, or `bash: ' is printed first; the
-         first non-empty one being printed.  Explanatory text is
-         added to the error message
-
-                                   4/7
-                                   ---
-machines.h
-       - in the Sun section, define Solaris of either `USGr4' or __svr4__
-         is defined
-       - Solaris 2 systems have sys_siglist, so don't #undef HAVE_SYS_SIGLIST
-
-jobs.c
-       - don't declare sys_siglist if on Solaris 2
-
-                                   4/8
-                                   ---
-lib/readline/rldefs.h
-       - do not define USE_XON_XOFF.  This causes output to be swallowed
-         when using bash over a relatively slow line (like a modem line).
-         This means that ^S and ^Q don't work on termio/termios systems;
-         use ^V to quote characters instead
-
-variables.c
-       - don't perform a get_working_directory on startup unless we did
-         not inherit $PWD or the inherited value of $PWD is wrong
-
-trap.c
-       - new functions: free_trap_strings and reset_original_signals.
-         Together they do the same thing as restore_original_signals()
-
-jobs.c, nojobs.c
-       - removed call to restore_original_signals from make_child.  Now
-         callers have to handle this themselves
-
-execute_cmd.c
-       - added a call to restore_original_signals after make_child in the
-         child process everywhere make_child is called
-
-subst.c
-       - added call to restore_original_signals after make_child in
-         process_substitute
-       - added call to reset_signal_handlers after make_child in
-         command_substitute for the child process
-
-         [THERE IS A PROBLEM WITH A TRAP on `0' -- it is inherited in the
-          child process started to run the command substitution]
-
-[These are fixes to make savetraps="$(trap)" work as Posix.2 specifies]
-
-                                  4/11
-                                  ----
-bashline.c
-       - supply a value for rl_completer_word_break_characters; `$' is
-         not a shell word break character
-
-                                  4/13
-                                  ----
-lib/readline/complete.c
-       - only look at adding quote characters to completion matches if
-         we're doing filename completion
-
-bashline.c
-       - don't supply a value for rl_completer_word_break_characters
-
-                                  4/14
-                                  ----
-documentation/bash.1
-       - clarify what the readline function shell-expand-line does
-
-jobs.c
-       - clean up dead jobs in wait_for even in non-interactive shells
-         rather than waiting for the next call to the parser
-
-                                  4/15
-                                  ----
-bashline.c
-       - reorganized the shell_expand_line code; broke it up into several
-         discrete functions
-       - added new functions: history_and_alias_expand_line,
-         history_expand_line
-       - added a new emacs-mode command, M-!, bound to history-expand-line
-
-                                  4/18
-                                  ----
-unwind_prot.c
-       - more fixes to the save-variable and restore-variable code,
-         mostly to make things work better on machines like the alpha
-         where sizeof(int) != sizeof(char *):
-
-               save and restore now use identical logic and nearly
-               identical code to decide whether or not to use malloc and
-               bcopy or assignment
-
-builtins/common.c
-       - new functions to manage the state of the dollar variables:
-
-               dollar_vars_changed - return 1 if the dollar variables have
-                                     been changed
-               set_dollar_vars_changed - set the state of dollar variable
-                                         modification to `changed'
-               set_dollar_vars_unchanged - set the state of dollar variable
-                                         modification to `unchanged'
-
-builtins/source.def
-       - new function: maybe_pop_dollar_vars.  This is called so that the
-         `.' command will restore the dollar variables only if the script
-         run with . has not changed them.  If the script changed $@, the
-         new values should stay in place
-       - changes to source_builtin to set the state of the dollar
-         variables to `unchanged' before executing the script, and calling
-         maybe_pop_dollar_vars() to decide whether or not to restore the
-         dollar variables and to do so if warranted
-
-machines.h
-       - new description for NEC EWS4800, from m-hirano@sra.co.jp via
-         hikichi@sra.co.jp
-
-                                  4/19
-                                  ----
-support/mksysdefs
-       - check for both /hp-ux and /bin/uname before deciding a machine
-         should be checked for an HP/UX revision level
-
-                                  4/22
-                                  ----
-input.h, general.h, lib/readline/readline.h, lib/tilde/tilde.h
-       - added typedefs for CPFunction (pointer to function returning
-         pointer to char) and CPPFunction (pointer to function returning
-         pointer to pointer to char)
-
-execute_cmd.c
-       - replaced all instances of (int)redirectee in do_redirection_internal
-         with a variable redir_fd, which is set to redirectee.dest
-
-print_cmd.c
-       - replaced all instances of (int)redirectee in print_redirection
-         with a variable redir_fd, which is set to redirectee.dest
-
-maxpath.h
-       - #include <sys/param.h> on OSF/1 systems
-
-subst.c
-       - added extern declaration for list_append
-       - changed sv_allow_null_glob_expansion to compare the return value
-         from find_variable to NULL to set the value of
-         allow_null_glob_expansion
-
-parse.y
-       - fix the assignment_acceptable macro so we cannot return
-         ASSIGNMENT_WORD while in the middle of a case statement pattern
-         list (in_case_pattern_list != 0)
-
-general.c
-       - Linux has gethostname() and does not need the emulation
-
-jobs.c
-       - Linux has a declaration for sys_siglist that conflicts with the
-         extern declaration; use the one from the standard include file
-       - the sigprocmask emulation did not handle NULL arguments in
-         oldset and newset; check them before using
-
-                                  4/23
-                                  ----
-lib/readline/complete.c
-       - use single_quote() to quote a completion replacement with
-         embedded occurrences of characters from rl_completer_quote_characters
-
-                                  4/26
-                                  ----
-print_cmd.c
-       - redid cprintf() for systems without varargs to be what bfox has
-         (using char * where bfox has void *)
-
-parse.y
-       - make read_secondary_line take an argument telling it whether or
-         not to have read_a_line remove quoted newlines
-
-make_cmd.c
-       - pass an argument to read_secondary_line saying whether or not to
-         remove quoted newlines, set to 1 if the delimiter of a here
-         document is unquoted
-
-                                  4/28
-                                  ----
-builtins/ulimit.def
-       - added -u option to set and get the max number of processes
-         available to a user; available on systems which define
-         RLIMIT_NPROC
-       - added better handling of getrlimit failures to ulimit_builtin
-
-cpp-Makefile
-       - made $(HOSTTYPE_DECL) appear on the cc command line before the
-         $(CPPFLAGS) when making variables.o
-
-                                  4/29
-                                  ----
-lib/readline/complete.c
-       - added an extern declaration for getpwent() for isc386 machines
-         where __STDC__ is not defined and _POSIX_SOURCE is
-
-                                  4/30
-                                  ----
-general.c
-       - new function legal_identifier, which returns 1 if a string
-         passed is a legal shell identifier and 0 otherwise.  Used
-         to decide what is and is not a legal variable name for the
-         expansion functions
-
-subst.c
-       - make expand_word_internal check that a ${ } expression
-         that starts with a digit is composed of all digits before
-         deciding that a variable starting with a digit is special
-         (setting var_is_special to 1)
-       - new function valid_brace_expansion_word (name, var_is_special)
-         returns 1 if name is a legal lhs of a brace expansion
-         expression
-       - make expand_word_internal check an identifier for validity
-         before passing it off to parameter_brace_expand_word by calling
-         valid_brace_expansion_word ()
-       - new function valid_length_expression (name) returns 1 if NAME is
-         something that can be passed to parameter_brace_expand_length();
-         called from expand_word_internal before calling
-         parameter_brace_expand_length()
-
-
-       These fix the following:
-               ${#<digit><alpha>} was treated as x=$<digit><alpha>, ${#x}
-               ${<digit><alpha>} was treated as ${<digit>}<alpha>
-               ${<illegal-id>} was not flagged as an error
-               ${#<illegal-id>} was not flagged as an error
-
-                                   5/2
-                                   ---
-input.c
-       - make check_bash_input change the value of default_buffered_fd
-         if it moves the input fd to a new fd as the result of a 
-         redirection
-
-execute_cmd.c
-       - don't make do_piping try the dup2 and close if pipe_out ==
-         REDIRECT_BOTH (-2) -- it's useless work
-       - add error checking to do_piping to see if the dup2 calls fail
-         and why
-
-error.c
-       - new function internal_error for shell internal error messages
-
-jobs.c
-       - changed some fprintf(stderr, ...) calls to internal_error()
-         calls
-
-                                   5/3
-                                   ---
-execute_cmd.c
-       - do not change the buffered stream associated with a file descriptor
-         when processing an r_inputa_direction redirection in
-         do_redirection_internal
-
-jobs.c, nojobs.c
-       - don't sync the buffered stream associated with default_buffered_input
-         in make_child if the shell is reading input from fd 0 and running an
-         asynchronous command
-
-                                   5/4
-                                   ---
-
-execute_cmd.c
-       - if the shell is not interactive, clean up the dead jobs each time
-         we call execute_command ()
-
-jobs.c
-       - new function, mark_dead_jobs_as_notified
-       - if the shell is not interactive, mark all dead jobs as notified in
-         notify_and_cleanup so that cleanup_dead_jobs frees up the slot in
-         the jobs array
-
-nojobs.c
-       - make cleanup_dead_jobs call reap_zombie_children on Posix systems,
-         so the shell doesn't keep growing in size as more jobs accumulate
-         before a call to wait_for()
-
-                                   5/6
-                                   ---
-jobs.c
-       - take the code that resets the signal handler out of flush_child;
-         it should be done in wait_for
-       - new function reap_dead_jobs to be run by non-interactive shells
-         that marks all dead jobs as notified and cleans up the job list
-       - removed the code from notify_and_cleanup that marks dead jobs as
-         notified if the shell is not interactive
-
-execute_cmd.c
-       - took the code that cleaned up dead jobs out of execute_command
-         There is a problem when this is run as the result of a trap on
-         SIGINT and the trap command is called directly from flush_child --
-         a job slot can disappear out from underneath flush_child and
-         wait_for and cause the shell to abort
-       - added a new define REAP that causes a non-interactive shell to
-         clean out the job table by calling reap_dead_jobs or
-         cleanup_dead_jobs
-       - added calls to reap to execute_for_command and
-         execute_until_or_while
-
-nojobs.c
-       - changed wait_sigint_handler to not do anything when it is called,
-         not even run a signal handler
-       - changed wait_for to call the old sigint handler if a foreground
-         process exits due to a SIGINT
-
-         [these make nojobs.c behave like jobs.c when waiting for a job in
-         a non-interactive shell]
-
-config.h.mini
-       - new `minimal' configuration file
-
-                                   5/7
-                                   ---
-subst.c
-       - make sure that command_substitute closes the pipe file descriptors
-         if there is a goto error_exit
-
-                                  5/10
-                                  ----
-nojobs.c
-       - add a SIGWINCH handler to set $LINES and $COLUMNS if readline is
-         not being compiled into the shell and TIOCGWINSZ and SIGWINCH
-         are defined
-
-[code put out for FTP on slc2.ins.cwru.edu]
-
-                                  5/11
-                                  ----
-
-braces.c
-       - commas within backquotes inside matching braces are now treated as
-         quoted (e.g., echo {`echo foo:bar | sed s/:/,/`})
-
-lib/readline/search.c
-       - added extern declarations for xmalloc, xrealloc
-
-                                  5/12
-                                  ----
-lib/malloc/malloc.c
-       - added a #define wrapper around the sbrk() declaration so that it's
-         not declared as char * if hpux_8 or VOID_STAR_SBRK are defined
-
-subst.c
-       - changed sense of #ifdef so that unless KSH_INCOMPATIBLE is defined
-         ${#@} and ${#*} are equivalent to $#
-
-                                  5/13
-                                  ----
-execute_cmd.c
-       - don't create the export env unless we are running a command with
-         shell_execve (in execute_disk_command)
-
-jobs.c, nojobs.c
-       - don't create the export env in make_child (why were we doing this
-         in the first place?)
-
-hash.c
-       - removed declaration of initialize_hashed_filenames, which is unused
-
-subst.c
-       - make list_rest_of_args, list_string, and the brace expansion code
-         in expand_words_internal use the REVERSE_LIST macro rather than a
-         call to reverse_list()
-
-make_cmd.c, copy_cmd.c
-       - change uses of reverse_list to REVERSE_LIST
-
-                                  5/17
-                                  ----
-execute_cmd.c
-       - make execute_disk_command look in the temp environment for an
-         assignment to PATH, and disable hash lookup for the command if
-         such an assignment is present
-
-                                  5/18
-                                  ----
-parse.y
-       - changed read_a_line so that a backslash can quote a \<newline>
-         pair and prevent its removal when remove_quoted_newline is 1
-
-                                  5/19
-                                  ----
-siglist.h
-       - new file, to encapsulate the declarations of sys_siglist and
-         provide a `strsignal' macro
-
-jobs.h, siglist.c, longest_sig.c
-       - include siglist.h
-
-jobs.c, nojobs.c
-       - removed declaration of sys_siglist
-
-                                  5/20
-                                  ----
-execute_cmd.c
-       - don't set up the loop_redirections unwind-protect unless there
-         are actually some redirections
-       - combined the AND_AND and OR_OR cases of execute_command_internal
-         to remove some duplicated code
-       - folded two tests together in the simple command case of
-         execute_command_internal to remove a layer of indentation and
-         braces
-       - don't set up the unwind_protect in execute_simple_command unless
-         the command actually expands to something
-       - broke the code that executes functions and builtins out into new
-         functions (execute_function and execute_builtin) and changed
-         execute_builtin_or_function and execute_subshell_builtin_or_function
-         to call them
-       - replaced the async_redirections unwind-protect in
-         execute_disk_command, since there's no reason to do it if we're
-         already in a subshell and simply going to exit if the redirections
-         fail
-       - set up the unwind-protect on saved_undo_list in 
-         execute_builtin_or_function only if there are redirections saved
-         in saved_undo_list
-       - only call do_redirections in execute_disk_command if there are
-         redirections to perform -- no need for the side effects since
-         we're in a subshell
-
-                                  5/21
-                                  ----
-parse.y
-       - make read_a_line, shell_getc, decode_prompt_string, prompt_again,
-         bash_add_history, reset_readline_prompt, read_token, discard_until,
-         shell_ungetc static functions
-       - eliminated the after_preprocess label in shell_getc
-       - broke the prompt command execution code out into a separate
-         function: execute_prompt_command
-
-subst.c
-       - combined some common code in extract_string_double_quoted for the
-         $( ) and ${ } cases
-       - changed the allocation scheme in string_list_internal to hopefully
-         reduce the number of allocations
-       - added a new define SET_INT_VAR and changed all of the sv_*
-         functions that set a variable depending on whether or not a
-         variable exists to use it
-
-variables.c
-       - declare argument to getenv as `const char *' on Linux
-
-machines.h
-       - Linux has the fixed include files if gcc is being used to compile
-         the shell
-
-                                  5/23
-                                  ----
-subst.c
-       - only call rl_reset_terminal in sv_term if no_line_editing is 0
-         (which means we're actually using readline)
-
-                                  5/25
-                                  ----
-execute_cmd.c
-       - changed execute_for_command to explicitly call the functions that
-         were to be called by the unwind-protect code (e.g., dispose_words),
-         and changed the run_unwind_frame call to a call to
-         dispose_unwind_frame.  This is to avoid using the kernel to block
-         interrupts as much as possible
-       - did the same for execute_case_command and execute_builtin
-
-jobs.c
-       - only run traps on SIGCHLD if job_control != 0
-
-                                   6/3
-                                   ---
-unwind_prot.c
-       - have without_interrupts call QUIT only if interrupt_immediately
-         is set to 1
-
-                                   6/7
-                                   ---
-machines.h, jobs.h, lib/readline/chardefs.h, maxpath.h
-       - changes for Solaris 2 with gcc from Greg Onufer
-
-lib/malloc/malloc.c
-       - define NO_SBRK_DECL if hpux_8 or Solaris
-       - declare sbrk as extern char * unless NO_SBRK_DECL is defined.
-         VOID_STAR_SBRK has been removed
-
-lib/readline/readline.c
-       - changed a call to alloca to a call to xmalloc to avoid problems
-         on the DEC alpha (can't pass memory allocated with alloca to
-         another function)
-       - moved key binding and startup file code to bind.c
-
-lib/readline/rldefs.h
-       - created common definitions for emacs_mode and vi_mode
-
-lib/readline/bind.c
-       - new file containing the key binding and startup file code.
-
-                                   6/8
-                                   ---
-lib/readline/readline.c
-       - changed rl_message to use varargs, if HAVE_VARARGS_H is defined
-
-lib/readline/rldefs.h
-       - include <varargs.h> if HAVE_VARARGS_H is defined
-
-lib/readline/{readline.c,bind.c,rltty.c,vi_mode.c,search.c}
-       - cleaned up the namespace by prefixing all pseudo-global readline
-         variables (variables private to the library but used in multiple
-         files) with _rl_
-
-                                  6/10
-                                  ----
-[changes from bfox]
-
-bashansi.h
-       - new file, including both string.h and ansi_stdlib.h
-
-dispose_cmd.h, make_cmd.h, subst.h
-       - new files containing extern function declarations
-
-endian.c
-       - for machines with sizeof(long)==8, shift by 31, then 1 to fake
-         out gcc 2.4, which complains when you shift by 32
-
-general.h
-       - added an include of string.h or strings.h
-       - changed the declarations of the savestring() and member() macros
-
-shell.c
-       - changed the structure of the long_args struct to be more portable
-
-subst.c
-       - made dequote_string and dequote_list static
-
-[end of changes from bfox]
-
-general.h
-       - added extern declarations for all of the non-int functions
-         defined in general.c
-
-<most files>
-       - removed extern declarations that appear in one of the bash header
-         files
-
-                                  6/15
-                                  ----
-lib/readline/readline.c
-       - incorporated a patch to rl_transpose_chars from Tom Tromey
-         which allows C-t to be undone
-       - fixed rl_rubout so the fast screen fixup when deleting the
-         last character on the line handles characters that are more
-         than one screen position wide by erasing the right number of
-         physical characters
-
-                                  6/16
-                                  ----
-siglist.h
-       - don't declare sys_siglist on 4.4 BSD
-
-builtins/mkbuiltins.c, lib/readline/history.c
-       - include <unistd.h> if HAVE_UNISTD_H is defined
-
-                                  6/19
-                                  ----
-machines.h
-       - new description for the Intel Paragon running OSF/1
-
-support/getcppsyms.c
-       - new variables for the paragon (__i860__, __PARAGON__, etc.)
-
-documentation/bash.1
-       - make it clear the the -noprofile switch disables the sourcing
-         of ~/.bash_login and ~/.profile as well as /etc/profile and
-         ~/.bash_profile
-
-                                  6/23
-                                  ----
-shell.c
-       - instead of calling maybe_execute_file on "/etc/profile",
-         use a #define for SYS_PROFILE, which is initially defined
-         to be "/etc/profile" by default
-
-lib/readline/isearch.c
-       - new file, with the isearch code
-
-lib/readline/display.c
-       - new file, with the incremental redisplay code
-
-lib/readline/readline.c
-       - removed the isearch, display code
-
-                                  6/24
-                                  ----
-lib/readline/readline.c
-       - removed the signal-handling code
-
-lib/readline/signals.c
-       - new file with the signal-handling  code
-
-                                   7/1
-                                  ----
-test.c
-       - changed the `advance' macro to get around some picky compilers
-
-machines.h
-       - machine description for hp9000 running 4.4 BSD
-
-support/getcppsyms.c
-       - recognize __BSD_4_4__ for 4.4 BSD machines
-
-builtins/souirce.def
-       - cast the st_size stat struct member to int because it's
-         64 bits on 4.4 BSD
-
-lib/readline/signals.c
-       - include <sys/ioctl.h> if compiling on a 4.4 BSD machine
-
-                                   7/2
-                                   ---
-builtins/read.def
-       - if $IFS is unset it defaults to "" when splitting the line
-         read into words (so no splitting is performed)
-
-                                   7/5
-                                   ---
-shell.c
-       - remove SIGKILL from terminating_signals[] -- it can't be caught
-         or ignored
-       - make terminating_signals[] static
-       - make terminating_signals[] an array of structs that hold the signal
-         number and the original handler
-       - change initialize_terminating_signals to use the new struct termsig
-         and to set the original handlers for all the terminating_signals
-       - new function reset_terminating_signals to restore original handlers
-         for all terminating signals in terminating_signals[]
-
-trap.c
-       - new function signal_is_special, returns 1 if a signal is one of
-         the signals the shell treats specially
-       - call reset_terminating_signals from restore_original_signals
-
-getcwd.c
-       - changed call to `stat' to call `lstat' to keep symlinks that
-         point to non-existant files from causing getcwd to fail
-       - if S_ISLNK is not defined after inclusing `posixstat.h', use
-         a cpp #define lstat stat
-
-machines.h
-       - new entry for Symmetric 375 running 4.2 BSD
-
-support/getcppsyms.c
-       - recognize and pass along `scs' for the Symmetric 375
-
-lib/readline/bind.c
-       - new function: rl_set_keymap_from_edit_mode, which sets the
-         keymap appropriately depending on the editing mode as if we
-         were about to edit a command line
-
-                                   7/6
-                                   ---
-lib/termcap
-       - new code from the GNU termcap library distribution 1.02
-
-endian.c
-       - include bashansi.h
-
-shell.c
-       - fall back to sourcing $ENV if $BASH_ENV is not found
-
-variables.c
-       - make add_or_supercede search `array' only if it is non-null
-
-                                   7/7
-                                   ---
-subst.c
-       - made do_assignment_internal an int function that returns 1 if
-         the assignment was made correctly and 0 if it was not
-       - do_assignment and do_assignment_no_expand now return the value
-         from do_assignment_internal
-
-variables.c
-       - made assign_in_env return 1 if everything appeared to go
-         successfully (which it always does)
-
-cpp-Makefile
-       - add variables.c as an explicit dependency for variables.o; there
-         appears to be a bug in Gnu make
-
-braces.c
-       - removed static version of copy_array since there's already one
-         in general.c, declared extern in general.h
-
-lib/malloclib
-       - updated to sources from Gnu libc 1.06
-
-                                   7/9
-                                   ---
-shell.h
-       - new struct: user_info, containing uid, gid and passwd file info
-         about the current user
-
-shell.c
-       - new variable current_user of type struct user_info
-       - eliminated passwd_shell, passwd_dir, and current_user_name
-
-subst.c
-       - rewrote sv_uids to use the info in current_user.uid and .euid
-         and to use itos rather than sprintf
-
-variables.c, mailcheck.c, test.c, execute_cmd.c, parse.y
-       - changed to use current_user.user_name rather than current_user_name
-         and to use current_user.shell and current_user.home_dir instead of
-         passwd_shell and passwd_dir, respectively
-
-flags.c, flags.h
-       - new flag, `-p' for `privileged', a la ksh.  This is set automatically
-         if uid != euid || gid != egid
-       - if +p, set the real and effective uids and gids to the real uid and
-         gid
-
-flags.c
-       - include shell.h for the current_user struct and don't explicitly
-         include header files included by shell.h
-
-builtins/set.def
-       - code to handle -p and -o privileged
-
-documentation/bash.1
-       - added documentation for set -p/set -o privileged
-       - added documentation for bind -m keymap
-       - added documentation to readline section for non-inc search bindings
-
-builtins/bind.def
-       - documented the -m keymap option
-
-                                  7/10
-                                  ----
-machines.h
-       - new description for NeXTstep running on intel 486
-
-lib/tilde/tilde.c
-       - fixed up definition of savestring macro
-
-bashline.c
-       - changed attempt_shell_completion so that when completing command
-         words and no matches are found, it tells readline to perform
-         filename completion but sets the completion ignore function
-         to one that will ignore all filenames matched, leaving only
-         directories in the list of matches
-       - generalized the ignore processing, breaking the body of the
-         existing ignore function into a generic function that takes as an
-         argument a pointer to a function used to test each filename in the
-         match list for `acceptability'
-       - added a new ignore function to support the `ignore filenames'
-         behavior described above
-
-                                  7/12
-                                  ----
-
-machines.h
-       - add #undef HAVE_GETCWD to Motorola M88100 description
-[put code out for FTP on slc2.ins.cwru.edu]
-
-                                  7/13
-                                  ----
-builtins/type.def
-       - broke the code that does the work of the type builtin out into a
-         separate function and added a couple of other display options,
-         for eventual use by command -v and -V
-
-builtins/bashgetopt.c
-       - added a new function `report_bad_option'
-
-builtins/jobs.def, bultins/histctl.def
-       - changed to use report_bad_option
-
-builtins/command.def
-       - added the Posix.2 -v and -V options
-
-                                  7/14
-                                  ----
-execute_cmd.c
-       - make sure that execute_command_internal sets redirection_undo_list
-         and exec_redirection_undo_list to NULL after making local copies
-         so things don't get undone twice.  This can happen as the result
-         of an `fc' redoing a command with redirections:
-                       wc subst.c > xxx &
-                       r
-         [bug report from Ian Watson]
-
-builtins/setattr.def
-       - converted to use internal_getopt, so export and readonly both use
-         it
-
-builtins/bashgetopt.c
-       - changed the default error messages a little bit
-
-shell.h
-       - new exit values:  EX_NOEXEC, for when a command name is not
-         executable (126), and EX_NOTFOUND, for when a command is not
-         found (127)
-
-execute_cmd.c
-       - change to use EX_NOEXEC and EX_NOTFOUND
-
-parse.y
-       - broke function definitions off into their own production,
-         function_def
-
-                                  7/15
-                                  ----
-builtins/kill.def
-       - added code so that signals are listed by kill -l in the manner
-         specified by Posix.2 if the POSIXLY_CORRECT variable exists in
-         the environment
-       - Posix.2 UPE says kill can take % job control arguments even if
-         job control is disabled, so let interactive shells use them
-
-parse.y
-       - decode_prompt_string now performs the Posix.2 ! expansion for
-         $PS1 and $PS2, if POSIXLY_CORRECT is turned on
-
-builtins/exec.def
-       - changed exit status to be in line with Posix.2 specification
-         (127 for not found, 126 for not executable)
-
-builtins/wait.def
-       - unknown jobs should cause wait to return 127
-
-shell.c
-       - change the behavior of sh -c so that if POSIXLY_CORRECT is in the
-         environment, the first argument after -c command is assigned to
-         $0, and the rest of the arguments, if any, are bound to $1 ... $n
-         Posix.2 4.56.3 specifies this behavior
-       - move the code that does -c command out of the !local_skip_execution
-         block.  I can't see why it was there in the first place
-       - made some of the private variables static to clean up the name
-         space
-       - moved the code that runs the startup files into a separate
-         function: run_startup_files.  This is called with an argument
-         telling it whether or not to use the Posix.2 startup file sequence
-         ($ENV).  This argument is 1 if POSIXLY_CORRECT is found in the
-         environment at startup
-
-builtins/fg_bg.def
-       - bg needs to set last_asynchronous_pid when restarting a job in
-         the background, as per Posix.2, 5.4.2
-
-jobs.c
-       - make sure the status of exited jobs is printed as Done(n) where
-         `n' is the exit status, if POSIXLY_CORRECT is specified
-
-                                  7/16
-                                  ----
-general.c
-       - fixed a problem with canonicalize_pathname which made it get
-         confused with xxx/./yyy if yyy was `.' or `..'
-
-parse.y
-       - broke the code in read_token that checked for reserved words
-         into a macro: CHECK_FOR_RESERVED_WORD
-       - if posixly_correct is 1, read_token does not allow reserved words
-         to be aliased (checks for reserved words before doing alias
-         expansion).  See Posix.2 3.3.1
-       - changed the function_def production to make redirections
-         specified with a function definition bind to the function
-         rather than to the definition.  This introduced 66 (!)
-         bison shift/reduce conflicts.  From Posix.2 3.9.5
-       - if `posixly_correct' is set, <>word will open word for read/write
-         on fd 0, rather than fd 0 and fd 1 as normal
-
-builtins/source.def
-       - removed the ALLOW_RIGID_POSIX_COMPLIANCE define; the check for
-         POSIXLY_CORRECT will always be performed
-
-shell.c
-       - new long option: -posix, sets posixly_correct to 1
-       - posixly_correct set to 1 in main if POSIXLY_CORRECT found in
-         shell environment
-
-subst.c
-       - new function sv_strict_posix, sets value of posixly_correct
-         depending on $POSIXLY_CORRECT
-       - if posixly_correct is set, don't do tilde expansion on 
-         =~ in words that are not shell assignment statements
-
-execute_cmd.c, jobs.c
-       - removed calls to getenv("POSIXLY_CORRECT") with checks of
-         posixly_correct
-       - if posixly_correct is set, don't translate >&x into >x 2>&1
-
-expr.c
-       - implemented the OP= Posix.2 arithmetic assignment operators
-         (see Posix.2 table 2.15, section 2.9.2.1, and section 3.6.4)
-
-documentation/bash.1
-       - added documentation of new arithmetic evaluation assignment
-         operators
-       - documented the new -posix long option
-
-                                  7/17
-                                  ----
-builtins/setattr.def
-       - made set_or_show_attributes correctly quote the values of shell
-         variables it prints so the output of `export' or `readonly' can
-         be used as input to the shell
-
-builtins/fc.def
-       - made fc write its output as Posix.2 5.12.6.1 specifies: when not
-         numbering, the command should still be output with a leading tab
-
-variables.c
-       - if `posixly_correct' is true, bash uses ~/.sh_history as the
-         default value of $HISTFILE
-
-shell.c, subst.c
-       - if posixly_correct is true, turn on interactive comments, since
-         that's what Posix.2 says to do
-
-                                  7/20
-                                  ----
-lib/malloclib/{malloc.c,free.c,malloc.h}
-       - bug fix from Mike Haertel
-
-builtins/mkbuiltins.c
-       - added code so that the Posix.2 `special' builtins have
-         SPECIAL_BUILTIN added to the flags in their entry in the
-         builtins array defined in builtins.c
-
-shell.c
-       - declare `restricted' as `extern int', since it's already
-         declared in flags.c
-
-lib/readline/bind.c
-       - only try to set the keymap to vi_insertion_keymap in
-         rl_set_keymap_from_edit_mode if VI_MODE is #defined
-
-lib/malloc/malloc.c
-       - define NO_SBRK_DECL for hpux_9
-
-machines.h
-       - hpux_9 needs to link with libPW.a to pick up alloca(), which
-         has reportedly been fixed
-
-lib/tilde/Makefile
-       - add a definition for RM to the makefile
-
-                                  7/21
-                                  ----
-documentation/Makefile
-       - added info, dvi targets
-       - changed `squeaky-clean' to `distclean'
-       - use $(MAKEINFO) in recipes rather than `makeinfo'
-
-bashline.c
-       - fixed memory leak in cleanup_expansion_error
-       - fixed up some extern declarations of pre_process_line
-
-cpp-Makefile
-       - define HAVE_FIXED_INCLUDES by default if we're using gcc
-
-                                  7/27
-                                  ----
-machines.h
-       - add -ldgc to the DG/UX description if we're not building an
-         `M88KBCS_TARGET'
-
-                                  7/28
-                                  ----
-shell.c
-       - always initialize top_level_mask from what the shell inherits,
-         even for login shells
-
-lib/tilde/tilde.c
-       - declare the getpw functions only for USG systems
-
-                                  7/30
-                                  ----
-lib/readline/readline.c
-       - new function: _rl_kill_kbd_macro () to cancel any keyboard
-         macros being defined on a SIGINT
-
-lib/readline/signals.c
-       - call _rl_kill_kbd_macro on a SIGINT
-
-bashline.c
-       - don't bind anything with a META via rl_add_defun; change those to
-         add the definition unbound, then explicitly bind it into
-         emacs_meta_keymap
-
-                                   8/3
-                                   ---
-bashline.c
-       - save and restore the value of rl_startup_hook when using it in
-         special editing functions
-
-                                   8/4
-                                   ---
-general.c
-       - new global variable: global_error_list, returned instead of -1
-         from functions returning lists
-       - changed delete_element to return &global_error_list instead of
-         (char **)-1
-
-braces.c, general.c, expr.c
-       - removed the conditional definition of NULL; it should be defined
-         in general.h
-
-lib/glob/glob.c
-       - new global variable: glob_error_return, returned instead of
-         (char **)-1 to signal a glob error
-       - changed functions to return &glob_error_return instead of
-         (char **)-1
-
-subst.c
-       - fix the GLOB_FAILED macro to test against &glob_error_return
-         rather than (char **)-1
-
-builtins/ulimit.def
-       - cleaned up the casts like (long) -1; changed to -1L, which is
-         equivalent and more correct
-
-lib/readline/complete.c
-       - use the address of a new local variable `dead_slot' to mark
-         dead slots in the list of completion matches rather than
-         (char *)-1, which doesn't work everywhere
-
-lib/readline/history.c
-       - have get_history_word_specifier return the address of a static
-         variable `error_pointer' in case of error, rather than (char *)-1
-
-lib/readline/signals.c
-       - if SHELL is defined, don't mess with SIGTSTP, SIGTTIN, or SIGTTOU
-
-lib/readline/vi_mode.c
-       - make rl_vi_change_case skip over characters that are neither
-         upper nor lower case
-
-                                   8/5
-                                   ---
-lib/readline/funmap.c
-       - made qsort_string_compare compare the first characters of the
-         two strings before calling strcmp()
-
-builtins/bind.def
-       - rewrote to use internal_getopt
-       - map specifications made with -m now affect all other options
-         and binding specifications
-       - no processing is done until all the options have been processed
-       - the -q option is now limited to a single argument, as the
-         documentation has always stated
-
-lib/readline/vi_mode.c
-       - fixed the `r' command so that the replacement is saved, and it
-         is redoable
-
-command.h
-       - add `line' members to the simple_command and command structs to
-         keep track of the line number the command appears on for $LINENO
-
-make_cmd.c
-       - save line number when making a `bare' simple command to the value
-         of line_number
-       - save the first line of a function definition in make_function_def
-
-copy_cmd.c
-       - make sure that the line number information is copied with a command
-
-execute_cmd.c
-       - use the line number attached to the start of a function definition
-         and the line number of commands to update line_number while a
-         function is executing
-
-                                   8/6
-                                   ---
-config.h, config.h.mini, cpp-Makefile
-       - made ONESHOT a configuration option rather than a cpp define in
-         cpp-Makefile
-
-builtins/fc.def, builtins/getopts.def
-       - removed the code that defines NULL if undefined -- these files
-         include general.h, which already does that
-
-lib/posixheaders/stdc.h
-       - new file containing macros so that functions can be defined with
-         prototypes using the __P macro and compile on both ANSI C and
-         `traditional' C compilers
-
-lib/malloc/malloc.c
-       - changed the ASSERT macro to use a new __STRING define when calling
-         botch(), so that ANSI C systems see the correct error string
-         rather than `p' (unfortunately, the MAGICx constants are expanded
-         in the string passed to botch())
-
-                                   8/7
-                                   ---
-bashline.c, execute_cmd.c, variables.c, parse.y, make_cmd.c, jobs.c
-       - removed extern declarations of functions already declared as extern
-         in bash header files
-
-execute_cmd.c
-       - include lib/tilde/tilde.h
-       - include builtins/common.h
-       - include builtins/builtext.h for the extern declarations for the
-         shell builtins
-       - moved vfree() to general.c
-
-builtins/common.c
-       - made dotted_filename static
-       - made builtin_address_internal static
-
-builtins/common.h
-       - new file with extern declarations for all functions defined in
-         common.c
-
-variables.h
-       - added extern declaration of qsort_string_compare, assign_in_env
-
-mailcheck.c
-       - removed full_pathname (), since it is a function of general use
-
-general.c
-       - moved full_pathname () here from mailcheck.c
-       - moved vfree() here from execute_cmd.c
-
-general.h
-       - added extern declaration for full_pathname
-
-subst.h
-       - added extern declaration for dequote_string
-
-jobs.h
-       - added external declarations for wait_for_background_pids and
-         wait_for_single_pid
-
-parse.y
-       - new function: find_reserved_word
-
-builtins/{alias,builtin,cd,exec,exit,hash,read,setattr,shift,trap,wait}.def
-       - removed extern declarations, replaced with inclusion of common.h
-
-builtins/type.def
-       - include common.h, remove extraneous extern declarations
-       - call find_reserved_word instead of searching word_token_alist
-
-builtins/bashgetopt.h
-       - new file, extern declarations for stuff defined in bashgetopt.c
-
-builtins/{bind,command,fc,histctl,jobs,setattr}.def
-       - include bashgetopt, removed internal getopt extern declarations
-
-cpp-Makefile, builtins/Makefile
-       - add dependencies on bashgetopt.h to builtins
-       - add dependencies on common.h to builtins
-
-nojobs.c
-       - wait_for_background_pids should be void
-
-                                   8/9
-                                   ---
-builtins/common.c
-       - new function, double_quote(), to double-quote strings
-
-documentation/bash.1
-       - added text specifying return value of `command -[vV]'
-       - added description of the -E option to echo
-       - added text specifying that `enable' accepts -a in place of -all
-
-                                  8/10
-                                  ----
-shell.c
-       - since non-Posix systems with job control use top_level_mask,
-         it needs to be initialized correctly by
-         initialize_terminating_signals
-
-mailcheck.c
-       - fixed mailpath-parsing code to correctly handle backslash-quoted
-         `?' and `%' in the $MAILPATH entries by adding a function
-         parse_mailpath_spec to return a pointer to the first unquoted
-         `?' or `%' and having remember_mail_dates and check_mail call it
-
-documentation/bash_builtins.1
-       - new man page for bash builtins, from jaws@pangaea.dme.nt.gov.au
-         (implemented by using number registers as flags and sourcing
-         bash.1)
-
-                                  8/16
-                                  ----
-bashline.c
-       - have maybe_make_readline_line use rl_delete_text rather than
-         rl_kill_text because the text need not be saved on the kill
-         ring
-
-                                  8/17
-                                  ----
-jobs.h
-       - don't include extern declarations for fork(), getpid(), or
-         getpgrp() if __SVR4_2__ is defined (Unixware, SVR4.2).
-         __SVR4_2__ used as in siglist.h
-
-test.c
-       - don't include extern declarations for getegid(), getgid(),
-         or geteuid() if __SVR4_2__ is defined (Unixware, SVR4.2)
-
-                                  8/18
-                                  ----
-execute_cmd.c
-       - don't check that the current directory in the path is `.' if
-         we've already found `.' in the path in find_user_command_internal
-       - new function make_full_pathname, to glue `path' and `name'
-         together in find_user_command_internal rather than using sprintf,
-         which is very slow
-
-                                  8/19
-                                  ----
-
-support/mksysdefs
-       - packaged all of the uname calls into one block at the top of the
-         script; uname sets up some script variables:
-
-               UNAME
-               UNAME_R
-               UNAME_M
-               RELEASE
-               LEVEL
-       - make sure machines running SVR4.2 have __SVR4_2__ defined
-
-machines.h
-       - for i386 machines running SVR4.2, make sure that __SVR4_2__ is
-         added to SYSDEP_CFLAGS
-
-test.c
-       - changed the test_exit define to use the do { ... } while(0) idiom
-       - made GID_T and UID_T be int for BSD/386, since that's what
-         getgroups() returns
-       - cast both sides of a test to UID_T or GID_T to make sure we're
-         on the same page when testing
-
-lib/readline/bind.c, lib/readline/readline.c
-       - fixes to deal with the Cray's pointers of different sizes --
-         pointers to functions are a different size than pointers to
-         structs
-
-                                  8/20
-                                  ----
-machines.h, test.c, jobs.h, siglist.h, support/mksysdefs
-       - changed __SVR4_2__ to USGr4_2
-
-support/getcppsyms.c
-       - added support for recognizing __SVR4_2__ and USGr4_2
-
-                                  8/23
-                                  ----
-
-variables.c
-       - added a static variable that keeps track of whether or not
-         function local variables have been created with the `local'
-         or `typeset' builtins and short-circuits the call to
-         kill_all_local_variables if none have been created
-
-lib/readline/vi_mode.c
-       - extern declaration for rl_vi_check and rl_digit_loop1
-       - declare `count' argument to rl_vi_delete
-       - made rl_vi_set_last a void function
-
-lib/readline/bind.c
-       - declare `count' argument to strnicmp
-
-lib/readline/readline.c
-       - made rl_add_undo, free_undo_list void functions
-
-lib/readline/readline.c, lib/readline/bind.c, lib/readline/search.c,
-lib/readline/vi_mode.c
-       - changed return; to return 0; and added explicit returns to many
-         `int' returning functions that didn't return a value
-
-                                  8/24
-                                  ----
-builtins/ulimit.def
-       - check for RLIMIT_RSS being defined before trying to use it
-
-machines.h
-       - fixes to cray machine description from Bill Jones
-
-builtins/common.c
-       - make all of the dollar_arg_stack stuff static
-
-lib/malloc/alloca.c
-       - new version, from emacs 19
-
-                                  8/26
-                                  ----
-lib/readline/complete.c
-       - use double quotes to quote replacement text with word breaks
-         rather than single quotes, which inhibit tilde expansion
-
-lib/readline/vi_keymap.c
-       - changed TAB to default to completion for the VI insert keymap
-
-bashline.c
-       - new function: posix_readline_initialize to make any changes
-         to the readline keymaps when switching into and out of Posix.2
-         mode
-       - call posix_readline_initialize from initialize_readline
-
-subst.c
-       - call posix_readline_initialize from sv_strict_posix
-
-                                  8/27
-                                  ----
-subst.c
-       - changed USE_GLOB_LIBRARY to USE_POSIX_GLOB_LIBRARY to make the
-         intent clear
-
-shell.c
-       - new function, issock(fd) returns 1 if FD is a socket according
-         to fstat(2) -- note that this only works if S_ISSOCK is defined
-         in posixstat.h
-       - run_startup_files calls issock to see whether or not to run
-         the .bashrc
-
-input.c
-       - include general.h for declarations of xmalloc, xrealloc
-
-lib/tilde/tilde.c, lib/tilde/tilde.h
-       - tilde_expansion_failure_hook is now a pointer to a CPFunction,
-         since that's how it's used
-
-lib/readline/history.c
-       - include <string.h> or <strings.h> as appropriate
-
-                                  8/29
-                                  ----
-machines.h
-       - avoid `M_MACHINE redefined' messages in the hpux description
-
-                                  8/30
-                                  ----
-jobs.h
-       - added #defines for sigfillset, sigdelset, and sigismember to fill
-         out the Posix.1 signal functions
-
-general.h
-       - add an extern declaration for getwd()
-
-general.c
-       - NeXT machines already have a vfree() with a declaration in stdlib.h,
-         so don't define our vfree() on those systems
-
-cpp-Makefile
-       - NeXT machines don't have a link to `gcc', so make sure that
-         HAVE_GCC is not defined on those machines, even if __GNUC__ is
-
-lib/readline/readline.h, lib/readline/complete.c
-       - rl_attempted_completion_function is now declared as a pointer to
-         a CPPFunction, since that's how it is used
-
-bashline.c, bracecomp.c
-       - fixed assignments to rl_attempted_completion_function, since it's
-         now a pointer to a CPPFunction
-
-lib/readline/keymaps.h
-       - fleshed out declarations of function types inside __FUNCTION_DEF
-         macro to match other files
-
-lib/readline/readline.h
-       - removed typedefs for function pointer types, since they are now
-         declared in keymaps.h
-
-                                  8/31
-                                  ----
-
-lib/readline/complete.c
-       - if there is more than one match, don't quote the replacement
-         text unless the matching prefix has a word break character.  The
-         old code quoted the replacement if any of the possible replacements
-         had a word break character
-
-builtins/alias.def
-       - fixed memory leak -- free the array returned by all_aliases when
-         alias is called without arguments
-
-builtins/read.def
-       - fixed memory leak -- need to free return value from
-         string_list_dollar_star
-
-builtins/fc.def
-       - fixed memory leak -- need to free return value from fc_readline
-
-builtins/hash.def
-       - fixed memory leak -- need to free return value from
-         find_user_command
-
-builtins/alias.def
-       - fixed memory leak -- remove_alias needs to free the key in the
-         hash table entry it deletes
-
-execute_cmd.c
-       - fixed memory leak in find_user_command_in_path: if we're not
-         returning full_path, we need to free it
-
-lib/readline/bind.def
-       - fixed memory leak -- need to free the returned arrays from
-         recursive calls to invoking_keyseqs_in_map
-
-                                   9/1
-                                   ---
-builtins/bind.def
-       - return failure immediately if no_line_editing is set
-
-builtins/shift.def
-       - fixed memory leak -- make sure all of the word list element from
-         rest_of_args is freed when shifting it into dollar_vars[9]
-
-builtins/hash.def
-       - fixed memory leak -- only need to save the key for a particular
-         hash item once in remember_filename
-
-expr.c
-       - fixed memory leak -- free `tokstr' after performing the assignment
-         statement and before assigning to it with savestring
-
-execute_cmd.c
-       - fixed memory leak -- need to free the copy of the command line
-         passed to make_child in execute_disk_command if the command is
-         not found
-
-lib/readline/display.c
-       - fixed call to tgoto in delete_chars -- caused the delete to fail
-         when using term_DC on some systems
-
-[code made available via ftp -- first redistributable version]