				    6/2
				    ---
lib/readline/readline.c
	- fixed an off-by-one error in the kill ring reallocation code
	  in rl_kill_text

Makefile
	- replaced instances of /bin/sh with $(SHELL)

Makefile, cpp-Makefile, documentation/Makefile
	- added a working `uninstall' target

[1.14.0 FCS release made available for FTP]

				    6/3
				    ---
README
	- added note about building with gcc, same as in Makefile

documentation/Makefile
	- some versions of make don't understand `$*' in a regular recipe;
	  replace with features.dvi in the recipe for features.ps

				    6/4
				    ---
subst.c
	- fix up the calls to string_extract_double_quoted and 
	  string_extract_single_quoted in char_is_quoted so the initial
	  value of the index is *after* the opening quote character
	- make sure we only return 1 from char_is_quoted if the index
	  into the string after a call to string_extract_double_quoted or
	  string_extract_single_quoted is *greater than* `eindex'

lib/readline/complete.c
	- change the order and sense of the quoting tests in
	  rl_complete_internal so that the expensive char_is_quoted
	  is only called if `scan' actually is a word break character

shell.c
	- fixed a typo in the test for a restricted shell

builtins/exec.def
	- need to include flags.h

				    6/6
				    ---
make_cmd.c
	- make sure that we don't try to walk down a null command tree
	  in connect_async_list (tickled by `(command &) &')
	- if a command has the CMD_WANT_SUBSHELL bit set in its flags,
	  don't even try to walk the command tree and move the `&';
	  just connect the command with a null command using `&'

execute_cmd.c
	- make sure we don't try to reference a command struct without
	  first checking it (case '&')

				    6/7
				    ---
machines.h
	- fix a typo in the NeXT/i386 description; change the NeXT description
	  to #define HAVE_RESOURCE if not already defined rather than putting
	  -DHAVE_RESOURCE into the SYSDEP_CFLAGS

				    6/9
				    ---
Makefile
	- make sure all of the rules that reinvoke `make' have the
	  `-f bash-Makefile' before the assignment statements; some
	  versions of make like it that way

variables.c
	- make sure that `interactive' is set to 0 before evaluating the
	  string containing an exported function obtained from the
	  environment, so that it does not try to execute PROMPT_COMMAND
	  (this may not be the best fix)

				   6/13
				   ----
documentation/Makefile
	- make sure all of the directories exist before trying to install
	  doc files into them

lib/readline/history.c
	- add a missing O_TRUNC to the open call for writing in
	  history_truncate_file

trap.c
	- run_interrupt_trap should only try to run the trap command if
	  the value is not IMPOSSIBLE_TRAP_HANDLER

Makefile
	- add `realclean'

lib/readline/complete.c
	- do the same kind of double-quoting a replacement string if the
	  user supplies the opening double quote as we would if we were
	  adding both quotes ourselves

variables.c
	- fixed the variable initialization so that history_control/HISTCONTROL
	  can be inherited from a parent shell

INSTALL, README, cpp-Makefile, documentation/bash.1, documentation/readline.3
	- ai.mit.edu -> prep.ai.mit.edu

shell.c
	- fixed a problem with setting no_line_editing to the result of the
	  check for running inside emacs, thereby losing any value
	  initialized by the `-nolineediting' flag

cpp-Makefile
	- `make distclean' will now remove the `installed-bash' link

print_cmd.c
	- fixed a problem with undefined variables when HAVE_VARARGS_H is
	  not defined

				   6/14
				   ----
lib/readline/history.c
	- fixed an error in the csh history expansion code so that the
	  `-y' word designator now expands to `0-y' rather than `1-y'

lib/readline/isearch.c
	- changed an absolute check for a character falling within the
	  ASCII 32-126 range (printable chars) with checks for CTRL_P
	  and META_CHAR and a check against the value RUBOUT
	- changed a `break' to a `continue' so that the first non-matching
	  character in the search string does not cause the search to
	  end abruptly
	- initialize prev_line_found to 0 at the top of rl_search_history
	  to avoid duplicate history lines being saved across searches

lib/readline/rltty.c
	- consolidated repeated code for setting special characters into
	  `SET_SPECIAL' defines

lib/readline/readline.c
	- include <sys/ioctl.h> if VSTATUS is defined
	- add bindable command rl_tty_status (unbound by default)

lib/readline/funmap.c
	- assign bindable command name `tty-status' to rl_tty_status

INSTALL
	- add note about compiling with gcc, same text as README

lib/readline/display.c
	- many changes and tweaks to make redisplay work better when the
	  prompt has invisible characters.  These changes are non-optimal
	  in that the prompt is redrawn more than it needs to be, but
	  things are a hell of a lot better than they were

				   6/15
				   ----
documentation/Makefile
	- make a variable NROFF that people can set to `groff -Tascii' if
	  they don't have real nroff
	- changed the suffix rules to use $<

support/bashbug.sh
	- if rmail doesn't exist or fails, save the bug report in
	  ~/dead.bashbug

execute_cmd.c
	- in setup_async_signals, only ignore SIGINT and SIGQUIT if job
	  control is not active.  If it is active and the job is restarted,
	  SIGINT remains ignored, and the now-foregrounded job is not
	  interruptible

subst.c
	- fixed up a problem with char_is_quoted that caused backslash-
	  escaped characters to cause incorrect results

tests/run-dollars, tests/dollar-at.sh, tests/dollar-star.sh
	- since the error messages produced by `cat' vary, changed `cat'
	  to `recho' and updated the correct answers file

machines.h
	- fixes to CRAY_STACKSEG_END definitions for different versions of
	  Unicos on the YMP (from Bill Jones)
	- Motorola SVR4 machines have getcwd() and should not undef
	  HAVE_GETCWD
	- on hpux 9.x, don't try to link with -lPW if compiling with gcc
	  (for alloca)

parse.y
	- an ugly fix for a compiler problem with structure assignment on
	  the cray

				   6/16
				   ----
builtins/wait.def
	- replaced a call to sscanf with a validity check using all_digits()
	  and a call to atoi, since a pid_t is not necessarily an int, and
	  the sscanf clobbered the stack frame on systems where it is shorter
	  than an int (e.g., SCO)

lib/readline/display.c
	- since META_CHAR and the other macros only work with unsigned
	  chars, make rl_character_len convert its argument to an unsigned
	  char before testing it

documentation/Makefile
	- use $(INSTALL_DATA) instead of $(CP) to install the man pages and
	  info files

cpp-Makefile
	- use INSTALL_PROGRAM and INSTALL_DATA to install binaries and
	  documentation; pass both values to installs in subdirectories

				   6/18
				   ----
builtins/ulimit.def
	- compensate for systems which define RLIMIT_OFILE instead of
	  RLIMIT_NOFILE, or don't provide such a compatibility define
	  themselves

shell.c
	- make maybe_execute_file check for directories and print an
	  appropriate error message, since it's doing an fstat anyway

support/mksysdefs
	- added support for a `-s srcdir' option so it can find
	  cpp-Makefile if ansi-Makefile is to be created

Makefile
	- call mksysdefs with -s $(srcdir)

jobs.c
	- add the magic #undef lines to avoid redefinition warnings on
	  SunOS 4 only

				   6/20
				   ----
cpp-Makefile
	- install `bashbug' with `make install'

trap.c
	- make sure that `interactive' is set to 0 when running trap
	  commands

builtins/umask.c
	- fixed typo in usage error message

subst.c
	- fix process_substitute to set subshell_environment

jobs.c, nojobs.c
	- only mess with the terminal settings for an interactive shell
	  that is not in a subshell environment

				   6/21
				   ----
lib/readline/history.h
	- add extern declaration of history_get

builtins/fc.def
	- make history replacement when using `r' or `fc -s' obey the
	  setting of HISTCONTROL

general.c
	- in canonicalize_pathname, preserve a double // at the start
	  of an absolute pathname, since that means something special
	  for the network directory system

README, INSTALL
	- updated information about submitting bug reports

lib/readline/vi_mode.c, lib/readline/isearch.c
	- make sure unistd.h is included before rldefs.h, if
	  HAVE_UNISTD_H is defined

				   6/24
				   ----
lib/readline/complete.c
	- add `#' to the list of characters which cause a completed filename
	  to be quoted

execute_cmd.c
	- be more careful about closing pipe file descriptors in do_piping;
	  don't want to have `dup2(i, i); close(i);' problem

lib/readline/{keymaps,readline}.h
	- include local copies of include files if READLINE_LIBRARY is
	  defined, otherwise include the `official, installed' versions
	  using #include <readline/xxx.h>

lib/readline/*.c
	- define READLINE_LIBRARY before including any files
	- include only `local' copies of include files using #include "xxx.h"
	  rather than #include <readline/xxx.h>

				   6/26
				   ----
execute_cmd.c
	- check for clobbering the bash input stream before closing a file
	  descriptor due to an r_close_this redirection

lib/readline/history.c
	- made history_expand inhibit history expansion if the history
	  expansion char is set to 0

lib/readline/chardefs.h
	- moved savestring() definition to rldefs.h
	- changed lowercase_p, uppercase_p, to_lower, to_upper defines to
	  use <ctype.h> macros rather than assume ASCII

lib/readline/bind.c, general.c, general.h
	- use strcasecmp, strncasecmp instead of str[n]icmp if
	  HAVE_STRCASECMP is defined

cpp-Makefile
	- pass -DHAVE_STRCASECMP to builds in the libraries, primarily
	  readline

machines.h
	- add HAVE_STRCASECMP to the entries for BSD/386, NetBSD, FreeBSD,
	  and 4.4 BSD

builtins/hash.def
	- add a fourth parameter to remember_filename, the initial value
	  of times_found (0 if we're just looking it up for `hash', 1
	  for the command execution code)

execute_cmd.c
	- call remember_filename with an initial value of 1 for times_found

builtins/wait.def
	- handle a null argument with an error message

builtins/common.c
	- parse_and_execute now takes a third parameter: the value for
	  `interactive' while it is executing commands

bashline.c, jobs.c, parse.y, shell.c, subst.c, trap.c, variables.c
	- set the new third argument to parse_and_execute appropriately

builtins/eval.def, builtins/fc.def, builtins/source.def
	- set the new third argument to parse_and_execute appropriately

builtins/help.def
	- changed a call to strnicmp to strncmp when trying to find what
	  to give help on; it seems more correct

				   6/27
				   ----
machines.h
	- cleaned up the SunOS section so it no longer relies on
	  HAVE_SHARED_LIBS being defined; it uses SunOS4 and SunOS5
	  instead

support/mksysdefs
	- define SYSDEF to be SunOS4 or SunOS5 depending on the output
	  of uname rather than looking for ld.so

				   6/29
				   ----
machines.h
	- minor change to the ardent titan machine description
	- move the ardent and stardent descriptions before the
	  mips riscos description

print_cmd.c
	- ardent machines also need the extern declaration for printf

make_cmd.c
	- connect_async_list should do its work only if the lists to be
	  backgrounded are connected with `;'.  This makes `;' bind tighter
	  than `&', so only the last job in the list is backgrounded.  All
	  other lists should have the entire thing put in the background

parse.y
	- added a function `print_prompt' to take care of displaying the
	  prompt string if readline is not being used.  This fixes problems
	  with the prompt being displayed before the status of completed
	  jobs is printed

				   6/30
				   ----
builtins/fg_bg.def
	- `fg' and `bg' now print error messages if invoked when job control
	  is disabled

lib/readline/rltty.c
	- if not compiled into the shell, make get_tty_settings get and set
	  the window size.  This noop stops the process if it is started in
	  the background

lib/readline/readline.c
	- provide a function version of savestring, if not being compiled
	  into the shell, since the macro has been removed from the
	  `public' header files

lib/readline/readline.h
	- provide all extern function declarations without checking whether
	  VI_MODE or PAREN_MATCHING are defined.  It does not hurt to define
	  them if they are not used and not in the library, and other
	  applications using readline can't tell whether or not VI_MODE was
	  defined when the library was compiled anyway

				    7/1
				    ---
machines.h
	- add #undef HAVE_DIRENT_H to the ardent titan description

				    7/2
				    ---
lib/readline/chardefs.h
	- removed META_P define, renamed CTRL_P to CTRL_CHAR

lib/readline/bind.c, lib/readline/isearch.c
	- changed instances of CTRL_P to CTRL_CHAR

lib/readline/search.c
	- include <unistd.h> before rldefs.h, if HAVE_UNISTD_H is defined

lib/readline/readline.c
	- declare PC, UP, and BC as extern rather than `local' to the
	  readline library

				    7/5
				    ---
bashline.c
	- implement command word completion inside of command substitution
	  with a new function: `command_subst_completion_function'

subst.c
	- new function to help with command subst completion: unclosed_pair

lib/readline/complete.c
	- new variable rl_filename_quoting_desired, which can be set to 0
	  to inhibit the quoting of filenames after completion

lib/readline/readline.h
	- declare rl_filename_completion_desired and
	  rl_filename_quoting_desired

builtins/bind.def
	- don't save the old value of rl_outstream before initializing
	  readline -- it saves garbage values and screws up readline

parse.y
	- don't have private state telling whether or not readline has
	  been initialized -- use bash_readline_initialized like other
	  functions in bashline.c

lib/readline/readline.c
	- make the default 8-bit behavior be based on whether LC_CTYPE is
	  defined and its value (accept iso-8859-1 or iso_8859_1)

				    7/6
				    ---
variables.c
	- fix up the declaration of getenv() for convex machines

				    7/7
				    ---
lib/readline/readline.c
	- fixed up typos in the declaration of `savestring'

lib/readline/history.c
	- fixed an off-by-one error in the ADD_CHAR macro which caused one
	  extra character to be overwritten, causing the gnu malloc to abort
	  when that one character was at the end of an allocated block
	- changed the ADD_STRING macro to avoid some unnecessary xreallocs

lib/readline/display.c
	- fixed a problem with move_cursor_relative -- function now returns
	  immediately if it has nothing to do
	- fixed another problem with displaying prompts with invisible chars

lib/readline/chardefs.h
	- fixed the CTRL macro to be right (agree with the BSD kernel, for
	  example)

cpp-Makefile
	- fixed typo in the `install' recipe

				    7/8
				    ---
support/srcdir
	- fixed to handle srcdir when it begins with ./ or ../ to handle
	  $(srcdir) being a relative path better

cpp-Makefile
	- changed some include paths to $(BUILTIN_ABSSRC) when building in
	  `builtins' to handle $(srcdir) being a relative path
	- change the `chmod' on bashbug to turn on read and execute for all
	- added a couple of definitions to make it easier for a later
	  `configure' program

support/mksysdefs
	- added a -i option to specify an alternate set of directories to
	  search for include files

lib/readline/bind.c
	- in rl_read_init_file, when skipping whitespace at the start of
	  the line, decrement `i' so that we don't jump past the start
	  of the next line

machines.h
	- SCOv4 has a `robust' opendir that checks that you're actually
	  opening a directory

				   7/11
				   ----
lib/readline/complete.c
	- make sure a word break character is unquoted before using it to
	  separate out the current word for completing

machines.h
	- new machine description: NetBSD on motorola m68k machines like
	  the hp300
	- undef HAVE_GETWD in the generic svr4 machine description, like
	  other svr4 descriptions

lib/readline/rltty.c
	- make sure to fflush (rl_outstream) after toggling the setting
	  of the keypad and meta key

portbash/libc.sh
	- add a test for OPENDIR_NOT_ROBUST

support/getcppsyms.c
	- output __svr4__ if we find __uxps__ (this makes the Fujitsu port of
	  SVR4 to the sparc build OK)

				   7/12
				   ----
lib/readline/display.c
	- more display-related fixes when the prompt has invisible chars;
	  this time for screen updates when moving between screen lines

lib/readline/readline.c, lib/readline/display.c
	- changes to make readline work with terminals that have auto-wrap
	  from Per Bothner (new function _rl_update_final, term_xn changes,
	  some efficiency speedups, new function space_to_eol)

				   7/13
				   ----
lib/readline/display.c
	- after moving up screen lines using term_up in _rl_move_vert, if
	  the new screen line is 0, _rl_last_c_pos needs to be adjusted
	  to take invisible characters into account.  This was the source
	  of many bugs

				   
				   7/14
				   ----
documentation/Makefile
	- change instances of `groff' to `${GROFF}', GROFF is set to
	  `groff' by default

general.c, variables.c
	- moved `qsort_string_compare' from variables.c to general.c

general.h, variables.h
	- moved declaration of `qsort_string_compare' from variables.h
	  to general.h

alias.c, lib/readline/funmap.c
	- moved qsort auxiliary functions after their use and added
	  forward declarations to avoid warnings from ANSI C compilers

memalloc.h
	- hpux_9 needs alloca declared as `extern void *' if __STDC__
	  is defined

support/mksysdefs
	- removed HAVE_SHARED_LIBS entirely
	- make a call to /bin/uname -X for SCO machines to avoid running
	  a different uname from the $PATH

machines.h
	- new descriptions: Intel i860 running SVR4, Tahoe running 4.3 BSD
	- changed descriptions: Mips/RiscOS, DG AViiON, unknown machine

jobs.c
	- changes to how the shell handles foreground jobs dying of SIGINT:
		an interactive shell using job control will no longer
		act as if it received a SIGINT if the foreground job
		dies from a SIGINT

		a non-interactive shell or shell without job control tries
		to differentiate between SIGINTs it has seen (in
		wait_sigint_handler) and a foreground job dying of a SIGINT
		not sent from the keyboard, and runs the normal SIGINT code
		only in the former case

				   7/15
				   ----
support/mksysdefs
	- check for ${UNAME}${RELEASE} expanding to `SunOS4*' or `SunOS5*'
	  to set SYSDEF to SunOS4 or SunOS5, respectively.  Apparently
	  this does not work for Solbourne

				   7/18
				   ----

lib/readline/rltty.c
	- if output is being flushed on termios systems, loop until the
	  FLUSHO bit is no longer set in the termios struct

support/mksysdefs
	- added a -A flag to force creation of ansi-Makefile

machines.h
	- new entry for Tandem machines running SVR3

				   7/19
				   ----
lib/readline/rldefs.h
	- include <termcap.h> if HAVE_TERMCAP_H is defined
	- use <termio.h> stuff if HAVE_TERMIO_H is defined and _POSIX_VERSION
	  is not defined

lib/readline/rldefs.h, lib/readline/history.c
	- include "config.h" if HAVE_CONFIG_H is defined

lib/readline/{rldefs.h,signals.c,readline.c}
	- WINSIZE_IN_IOCTL_H -> GWINSZ_IN_SYS_IOCTL for compatibility with
	  other GNU programs

lib/readline/doc/Makefile
	- fixed up to create the readline and history manuals in dvi and
	  ps format

lib/readline/Makefile
	- changes inspired by the standalone readline-2.0 distribution

				   7/20
				   ----
lib/readline/history.c
	- new function, history_is_stifled (), returns history_stifled
	- set history_state flags member in the history state functions

lib/readline/history.h
	- reorganized the function declarations, added missing declarations
	- history_stifled is no longer exported by the library
	- added a `flags' member to the HISTORY_STATE structure

bashline.c
	- use history_is_stifled () instead of history_stifled

lib/readline/readline.c, lib/readline/vi_mode.c
	- filled in correct argument declarations for functions called via
	  keymaps (count, key)

lib/readline/complete.c
	- efficiency improvement for compare_strings

				   7/21
				   ----
examples/dirfuncs
	- new directory functions from ksh book, contributed by
	  Ken Konecki (kenk@wfg.com)

machines.h
	- hpux_8 and hpux_9 should both #undef HAVE_ALLOCA unless gcc is
	  being used

				   7/22
				   ----
bashline.c
	- fixed up command_word_completion_function so that filenames with
	  leading tildes are completed correctly

				   7/26
				   ----
builtins/read.def
	- if -r not given, make sure CTLESC is removed from input string
	  when reading \<newline>

lib/readline/readline.c
	- new function bind_arrow_keys, which binds vt100/ansi arrow key
	  escape sequences after reading the termcap definition and the
	  inputrc file
	- new function rl_yank_last_arg, which does what insert-last-arg
	  does in bash

lib/readline/emacs_keymap.c
	- remove default bindings to rl_arrow_keys for M-[ and M-O
	- rl_yank_last_arg is now bound to `M-.' and `M-_' in
	  emacs_meta_keymap

subst.c
	- when performing process substitution on systems with /dev/fd,
	  make sure the child clears the slot in dev_fd_list it gets
	  from its parent so the file descriptor does not get closed
	  inappropriately if reallocated by, e.g., pipe(2)

bashline.c
	- removed insert_last_arg and the calls to bind in to `M-.' and `M-_'.
	  `insert-last-argument' is now bound to rl_yank_last_arg for
	  backwards compatibility

lib/readline/funmap.c
	- `yank-last-arg' is now a named command for rl_yank_last_arg


documentation/bash.1, documentation/readline.3
	- add description of yank-last-arg as one of the readline user
	  commands

lib/readline/doc/rluser.texinfo
	- added description of yank-last-arg

builtins/getopts.def
	- fixed a typo in the int-to-string code computing the value to set
	  OPTIND to: had '\0' instead of '0'
	- made getopts handle the case where there are more than 9 dollar
	  variables (where rest_of_args is non-null) correctly

				   7/28
				   ----
lib/readline/display.c
	- fixes to the display code for single-line-display in the presence
	  of prompts containing invisible characters

lib/readline/readline.c
	- if we are using horizontal scrolling and we have term_xn, decrement
	  the screenwidth by 1, since we won't be doing any line wrapping

				   7/31
				   ----
jobs.c
	- new variable `freeze_jobs_list' to set when changes to the jobs
	  list or status of jobs in the list (other than calling something
	  like `jobs -n') are undesirable.  This is set when execuing traps
	  on SIGCHLD

				    8/1
				    ---
subst.c
	- check that `~' is unquoted before performing tilde expansion in
	  an assignment statement

				    8/3
				    ---
bracecomp.c
	- keep brace completion from dumping core if there is only one
	  match

lib/readline/chardefs.h
	- add a define for digit_p, which returns the value of isdigit()

lib/readline/readline.c
	- added function equivalents for uppercase_p, lowercase_p, to_upper,
	  to_lower, pure_alphabetic, digit_p, and digit_value
	- replaced calls to numeric () with calls to digit_p, removed
	  definition of numeric ()

lib/readline/history.c
	- digit -> digit_p

lib/readline/vi_mode.c
	- replaced uses of the `isletter' define to use pure_alphabetic
	  from chartypes.h
	- replaced uses of `numeric' with calls to digit_p
	- added do...while(0) to `exchange' define

				    
				    8/4
				    ---
execute_cmd.c
	- make sure execute_function saves and restores the current loop
	  count with unwind_protect_int

documentation/features.texi
	- change the `Shell Command Line Options' section to `Invoking
	  Bash' to be closer to the GNU coding standards

				    8/5
				    ---
builtins/read.def
	- fixed up a memory leak and made behavior correct when no
	  variables given and backslash escaped at least one input char
	- if we added CTLESC anywhere while reading the input string,
	  make sure we call dequote_string on each word of the input
	  before calling bind_variable with that string

				    8/6
				    ---
lib/readline/readline.h
	- removed definition of rl_show_star -- the variable no longer
	  exists

lib/readline/readline.h, lib/readline/history.h
	- reorganized to follow texinfo manual structure

lib/readline/bind.c
	- rl_function_dumper is now static
	- rl_list_funmap names does not take any arguments

builtins/bind.def
	- rl_list_funmap names does not take any arguments

lib/readline/readline.c, lib/readline/signals.c
	- rl_init_argument ->_rl_init_argument

lib/readline/rltty.c
	- remove declaration and references to output_was_flushed

support/getcppsyms.c
	- if __uxps__ is defined, define __uxps__ and __svr4__

				    8/9
				    ---
support/mkdist
	- added a -r option to set the `root name' of the distribution
	  (e.g., `bash' or `readline')

				   8/10
				   ----
input.c
	- if check_bash_input sees that default_buffered_input is about
	  to be the target of a redirection, but the buffered input stream
	  is not the current input stream (e.g. as the result of an
	  `eval' while in a script, change default_buffered_input to a
	  new fd and use a new variable `bash_input_fd_changed' to note
	  the change

parse.y
	- if pop_stream sees that default_buffered_input has changed while
	  a buffered stream was on the save stack (because
	  bash_input_fd_changed is non-zero), then make the popped stream
	  and the corresponding buffer use the new fd

test.c
	- fixed an off-by-one error in test_stat when testing /dev/fd/n.

cpp-Makefile
	- add -I$(incdir) to CPPFLAGS
	- add `incdir = $(prefix)/include' assignment

				   8/11
				   ----
lib/readline/signals.c
	- changed some calls to signal () to call rl_set_sighandler()
	- call _rl_redisplay_after_sigwinch from the sigwinch handler
	  to do better redisplay of wrapped command lines and multi-line
	  prompts

builtins/suspend.def
	- changed some calls to signal () to call set_signal_handler()

lib/readline/*.c
	- include config.h before anything else if HAVE_CONFIG_H is defined

lib/readline/readline.c
	- renamed rl_set_mark to _rl_set_mark_at_pos
	- call _rl_vi_initialize_line from rl_initialize if the current
	  editing mode is vi mode
	- only output a term_cr in crlf if term_cr is non-null

lib/readline/readline.h
	- added declarations for rl_vi_set_mark and rl_vi_goto_mark

lib/readline/readline.c, lib/readline/readline.h
	- added a new bindable command to set the mark, rl_set_mark

lib/readline/funmap.c
	- new bindable function with name `set-mark', bound to rl_set_mark
	- new bindable vi-mode functions with names `vi-set-mark' and
	  `vi-goto-mark'

documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
	- added documentation for `set-mark' (unbound)

lib/readline/vi_mode.c
	- new vi-command mode commands to save marks (the vi `m' command)
	  and go to saved marks (the ``' command)
	- new function _rl_vi_initialize_line called from rl_initialize
	  to set up the line state in vi mode.  Right now this just resets
	  all the marks

lib/readline/vi_keymap.c
	- new vi command-mode bindings to set the mark (`m') and to go to
	  a saved mark (``')

documentation/readline.3
	- added vi-set-mark and vi-goto-mark to list of key bindings for
	  vi command mode

lib/readline/{readline.c,display.c}
	- renamed term_xn to _rl_term_autowrap

lib/readline/display.c
	- new function _rl_redisplay_after_sigwinch to encapsulate the
	  necessary redisplay code after a SIGWINCH is received

variables.c
	- only call find_user_command on the shell name in shell_initialize
	  if shell_name is not an absolute program name
	- call canonicalize_pathname on the full shell pathname after
	  calling make_absolute on it if the shell name starts with a `.'

siglist.h
	- FreeBSD does not need a definition of sys_siglist[]

				   8/12
				   ----
lib/readline/rltty.c
	- don't try to use FLUSHO unless FLUSHO is defined

cpp-Makefile
	- make sure to pass $(CC) to the make in the lib/malloc subdirectory

lib/readline/readline.c
	- don't declare PC, UP, and BC as extern; it causes too many problems

				   8/13
				   ----
machines.h
	- add -DNO_SBRK_DECL to SYSDEP_CFLAGS for SVR4.2 on i386

support/mksysdefs
	- new variable UNAME_S for the output of `uname -s'
	- if uname -s does not output the same thing as uname, and uname -s
	  outputs UNIX_SV, then set UNAME to UNIX_SV.  Some versions of i386
	  SVR4.2 make `uname' equivalent to `uname -n'

lib/readline/memalloc.h
	- removed from the library; not needed since readline does not use
	  alloca

lib/readline/{history.c,isearch.c,search.c,rldefs.h}, lib/tilde/tilde.c
	- no longer include memalloc.h

lib/readline/Makefile
	- remove dependencies on memalloc.h

lib/readline/signals.c
	- overhauled signal handling based on ideas from Bruno Haible
	  (haible@ma2s2.mathematik.uni-karlsruhe.de) so that readline
	  saves and restores the signal mask and flags on Posix systems
	- don't include fcntl.h, sys/file.h, errno.h, or stdlib.h
	- ignore SIGALRM during rl_signal_handler like SIGINT until the
	  old handler is installed, on non-Posix or non-BSD systems
	- new define SIGHANDLER_RETURN, dependent on the value of
	  VOID_SIGHANDLER
	- use RETSIGTYPE instead of `sighandler' as the signal handler
	  return type; it's the name autoconf uses.  If not defined,
	  set up from VOID_SIGHANDLER

lib/readline/rltty.c
	- call control_meta_key and control_keypad from rl_deprep_terminal
	  before putting the terminal back into ICANON mode to avoid
	  messing up the tty driver

				   8/15
				   ----
cpp-Makefile
	- changes so that fewer -Idir arguments are passed to the make
	  in ./builtins

				   8/16
				   ----
lib/readline/bind.c
	- use KEYMAP_SIZE instead of 128 in rl_invoking_keyseqs_in_map

lib/readline/complete.c
	- qsort the array of matches omitting matches[0], which must stay
	  in place no matter what, even if strcmp doesn't compare unsigned
	  chars correctly
	- some fixes to the loop that prints the list of completions

lib/readline/keymaps.c
	- run the loop up to 127 when creating a new keymap in rl_make_keymap

input.h, general.h, lib/readline/keymaps.h, lib/readline/tilde.h
	- use _FUNCTION_DEF instead of __FUNCTION_DEF

lib/readline/parens.c
	- include "config.h" if HAVE_CONFIG_H is defined
	- include <sys/select.h> if HAVE_SYS_SELECT_H is defined
	- use HAVE_SELECT instead of FD_SET as the `configuring define';
	  define HAVE_SELECT if it is not already defined but FD_SET is

lib/readline/readline.c, lib/readline/rltty.c
	- the __GO32__ include file is <pc.h>

lib/tilde/tilde.c
	- rewrote tilde_expand_word, eliminated static u_name array in
	  favor of using xmalloc

lib/tilde/tilde.h
	- use single leading underscore for file inclusion guard

lib/readline/vi_mode.c
	- use KEYMAP_SIZE rather than a literal 127 as the loop limit when
	  creating the overstrike keymap

support/install.sh
	- new file, from the make-3.71 distribution

				   8/17
				   ----
lib/readline/complete.c, lib/readline/readline.h
	- new variable, rl_basic_quote_characters, used to see
	  if a word break character was a quoting character, so we can
	  do appropriate quoting after the completion

lib/readline/parens.c
	- use rl_basic_quote_characters when trying to find a matching
	  open paren

lib/readline/doc/rltech.texinfo
	- description of rl_basic_quote_characters

				   8/18
				   ----
newversion.c
	- renamed to support/mkversion.c, which builds to mkversion

cpp-Makefile
	- changed to use support/mkversion
	- removed instances of $< except in suffix rules -- some makes don't
	  handle those right

lib/readline/rldefs.h
	- make sure to #undef HAVE_DIRENT_H on NeXT machines

				   
				   8/19
				   ----
lib/readline/readline.h
	- removed some duplicate function declarations

trap.h
	- define DEBUG_TRAP as NSIG for the last slot in trap_list
	- define EXIT_TRAP as 0
	- declare trap_list as array of unknown size, since this is just a
	  header file

trap.c
	- extend trap_list and sigmodes to NSIG+1
	- initialize DEBUG_TRAP to do nothing; changes to functions to handle
	  DEBUG_TRAP
	- let decode_signal return OK if NSIG is given, even though this will
	  vary between systems, for DEBUG_TRAP
	- make reset_signal_handlers and restore_original_signals loop from
	  1 to NSIG, not 0 to NSIG
	- change GET_ORIGINAL_SIGNAL to try to get the original signal handler
	  only if `sig' is less than NSIG
	- restore_default_signal just frees the trap string for both EXIT_TRAP
	  and DEBUG_TRAP
	- run_debug_trap: new function to run traps on DEBUG
	- free_trap_command: new function to free a trap string if it is
	  really a command and not one of the special trap values
	- if a SIGINT trap resets the SIGINT trap string, free the old string
	- new function: set_debug_trap(char *), which will reset the DEBUG
	  trap string, suitable for calling from an unwind-protect handler

signames.c
	- arrange things so that signal_names[NSIG] == "DEBUG"

builtins/trap.def
	- make sure traps on DEBUG are printed

execute_cmd.c
	- call run_debug_trap at the end of the `cm_simple' case in
	  execute_command_internal
	- change execute_function so that traps on DEBUG do not propagate
	  into the function

documentation/bash.1, documentation/features.texi
	- documented the new DEBUG trap

				   8/20
				   ----
shell.c, config.h
	- made the name of the restricted shell configurable in config.h;
	  the option is RESTRICTED_SHELL_NAME

shell.c
	- if the shell is invoked as `sh', enter Posix.2 mode after running
	  /etc/profile and ~/.profile

builtins/read.def
	- added a -p option for a prompt string, which is displayed before
	  trying to read anything

documentation/bash.1
	- description of `read -p'
	- description of new -r and -s options to `jobs' 

documentation/features.texi
	- description of new -r and -s options to `jobs' 

jobs.c
	- new functions: list_running_jobs, list_stopped_jobs
	- list_jobs -> list_all_jobs
	- new function `print_job' to do the work for all of the list*jobs
	  functions
	- list_one_job type now void, calls print_job to do the work

jobs.h
	- new declarations for list_running_jobs, list_stopped_jobs
	- list_one_job now void
	- list_jobs -> list_all_jobs

builtins/jobs.def
	- new options: -r to print only running jobs, -s to print only
	  stopped jobs

				   8/22
				   ----
lib/readline/readline.c
	- don't try to expand a null prompt string

subst.c
	- remove special handling of hostname_completion_file and
	  history_control; HOSTFILE and HISTCONTROL are the acceptable
	  names
	- new function sv_histignore; call if HISTIGNORE variable is
	  assigned to

bashhist.c
	- new functions and declarations for handling HISTIGNORE variable
	  and its specifications for command lines to ignore
	- change maybe_add_history to call history_should_ignore if the
	  HISTCONTROL tests are passed

documentation/bash.1, documentation/features.texi
	- removed mention of history_control and hostname_completion_file
	- added description of HISTIGNORE

				   8/23
				   ----
array.c, array.h
	- promoted to the shell mainline code; the `array' subdir is now
	  gone

variables.h
	- include `array.h' for the ARRAY typedef

variables.c
	- changes to assignment() to handle array assignments a[x]=b
	- split off the creation of new variables into a new function:
	  make_new_variable
	- split off the construction of variable values for assignments and
	  bindings into a new function: make_variable_value
	- new function: bind_array_variable, to handle the addition of
	  new array variables and indices

subst.c
	- changes to do_assignment_internal to handle a[x]=b:
		parse the subscript out of the name and call evalexp() on it
		call bind_array_variable to do the value assignment
	- change the printing of assignment statements when -x is in effect
	  to before the variable binding is attempted, so any error messages
	  look better
	- new functions for referencing indexed arrays and to find the length
	  of arrays or array indices

				   8/24
				   ----
expr.c
	- fixed up error reporting to use get_name_for_error if not executing
	  a builtin

subst.c
	- everywhere evalexp() is called, use maybe_expand_string to expand
	  the expression (calls expand_string if necessary)

subst.h
	- extern declarations for array convenience functions exported to the
	  rest of the shell

variables.c
	- more new convenience array functions: make_new_array_variable and
	  convert_var_to_array

builtins/declare.def
	- additions to declare_internal to add a -a flag which makes array
	  variables, and the requisite semantics (declare +a does not work,
	  declare -a name=value does not work, etc.)
	- code to support the ksh-like declare a[] syntax to make array
	  variables

builtins/setattr.def
	- made set_or_show_attributes understand array variables and `-a'

builtins/set.def
	- changes to make `unset name' work, where name is an array variable
	- changes to make `unset name[xxx]' work

				   8/25
				   ----

lib/readline/readline.c
	- make sure meta characters are added to a keyboard macro as
	  ESC-char if we are converting meta chars to ascii
	- change rl_unix_word_rubout to handle repeat counts
	- move the check of LC_CTYPE from rl_initialize to
	  readline_initialize_everything, where it should have been
	  all along

error.c
	- make sure <sys/types.h> is included before <fcntl.h>

machines.h
	- new entry for Bull DPX2

lib/tilde/tilde.c
	- include <sys/types.h> before <pwd.h>

variables.c
	- PS1 and PS2 are no longer non-unsettable

				   8/26
				   ----
variables.c
	- PPID, UID, and EUID, since they are read-only, need not appear on
	  the `non-unsettable' list
	- PATH and IFS now have the `nounset' attribute set rather than use
	  a separate `non-unsettable' list
	- the non-unsettable list and non_unsettable() are gone

variables.h
	- new define `non_unsettable_p' to test nounset attribute

builtins/set.def
	- `unset' now uses non_unsettable_p to tell whether a variable can
	  be unset even if it's not readonly

builtins/read.def
	- read -a arrayname will read a list of values from stdin and assign
	  them to the array `arrayname', splitting on " \t\n" (honoring
	  backslash quoting if -r is not supplied)

builtins/declare.def
	- print values of arrays when `display -a' is invoked

builtins/exit.def
	- remove references to `bye'

				   8/28
				   ----
lib/readline/rltty.c
	- removed calls to control_keypad; they cause problems on some
	  machines and should not really be performed by an application

cpp-Makefile
	- support for optionally linking array.o into the shell

lib/glob/glob.c
	- when returning an error after glob_filename on the directory name
	  returns an error result, make sure to free `result'.  This fixes
	  a memory leak for names passed to glob_filename which contain
	  globbing characters before the first `/' but do not match any
	  existing files

				   8/29
				   ----
execute_cmd.c
	- the `for' and `select' commands should expand their word lists
	  using expand_words_no_vars

command.h, execute_cmd.c, general.c, make_cmd.c, print_cmd.c, subst.c,parse.y
	- changed the `dollar_present', `quoted', and `assignment' members
	  of WORD_DESC to a single flags word

				   8/30
				   ----
variables.c
	- make get_string_value return array[0] if called with a variable
	  that is an array

				   8/31
				   ----
lib/readline/display.c
	- don't take the value of _rl_term_autowrap into account when
	  computing which screen line the cursor should be on; it screws
	  up wrapping on terminals without the `xn' capability

lib/readline/examples/rltest.c
	- new file, test code moved here from readline.c

documentation/features.texi, lib/readline/doc/hsuser.texinfo
	- fixed up printing of some of the shell options and the history
	  commands and modifiers

subst.c
	- make sure $name, where `name' is an array variable, returns
	  ${name[0]}

variables.c
	- convert a variable to an array even if index 0 is being assigned to,
	  instead of leaving it a `normal' variable

				    9/1
				    ---

builtins/setattr.def
	- make sure that array variables printed by `declare' single-quote
	  the value after the `=' so the statement can be reused as input

variables.c
	- make sure array variables can be exported (name=(assignments)), and
	  that the export code works.  The code is commented out because of
	  the possible confusion between an array and a regular string that
	  looks like an array assignment string.

				    9/2
				    ---
variables.c
	- make sure there is an executable file with the same name as
	  `shell' name in the current directory before assigning it to
	  $BASH at startup.  If there is not, just make $BASH the login
	  shell name

				    9/3
				    ---
parse.y
	- removed a reduction from the `list0' production that could cause
	  statements which require semicolons to be allowed without error
	  (like before a `}' in a group command)

lib/readline/display.c
	- new functions: _rl_save_prompt and _rl_restore_prompt to save and
	  restore prompt invisible character info
	- if the redisplay code encounters a line shorter than the old one
          and containing invisible characters, make sure that the cursor is
	  at the end of the new text before calling clear_to_eol
	- new variable last_invisible containing the index in the prompt
	  string of the last invisible character.  We only have to redraw
	  the prompt string of _rl_last_c_pos is < last_invisible
	- new function _rl_make_prompt_for_search to take care of setting
	  up the prompt string for a non-incremental search when the prompt
	  contains invisible characters
	- fix so that a prompt string with invisible characters is not
	  redrawn each time through update_line (don't tputs term_cr unless
	  the cursor is before the last invisible character in the prompt
	  and will be moving past the last invisible char of the prompt

lib/readline/isearch.c
	- call _rl_save_prompt and _rl_restore_prompt when changing the prompt
	  to do i-search

				    9/4
				    ---
lib/readline/readline.c
	- doing_an_undo -> _rl_doing_an_undo for use by the vi-mode code
	- rewrote rl_do_undo to reformat and eliminate a clumsy goto
	- new split the add-to-kill-ring code off into a separate function,
	  _rl_copy_to_kill_ring
	- added a new bindable function rl_copy_region_as_kill
	- added a new bindable function rl_kill_region
	- moved _rl_char_search_internal to here from vi_mode.c
	- new bindable function rl_char_search

lib/readline/vi_mode.c
	- made `.' work for the `cw' and `[Ss]' commands, which implicitly
	  put the editor into insertion mode after they run
	- split rl_vi_char_search code that actually searches for a character
	  into a new function, _rl_char_search_internal

lib/readline/emacs_keymap.c
	- bind M-= to possible-completions for ksh compatibility
	- bind M-* to insert-completions
	- bind C-x C-x to exchange-point-and-mark
	- bind C-] to character-search
	- bind C-@ to set-mark

lib/readline/funmap.c
	- new bindable function names: exchange-point-and-mark, kill-region,
	  copy-region-as-kill, character-search

lib/readline/readline.h
	- declare rl_exchange_point_and_mark, rl_copy_region_to_kill,
	  rl_kill_region, and rl_char_search externally

documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
	- document new exchange-point-and-mark bindable command
	- documented M-* default emacs-mode binding to insert-completions
	- documented new copy-region-as-kill and kill-region commands
	- documented new character search emacs-mode command
	- documented new binding for set-mark

lib/readline/rldefs.h
	- moved values for `dir' when searching for characters in the line
	  from vi_mode.c to here

				    9/6
				    ---
general.c
	- new function ansicstr, which decodes ANSI-C backslash-escaped
	  characters (with the addition of \e and \E to mean escape) and
	  returns a new string

subst.c
	- new expansion $'...' which translates ANSI-C backslash escapes
	  in `...' and expands to the result

builtins/echo.def
	- ifdefs for ANSI-C for \a and \v rather than just expanding to
	  literal ASCII values

documentation/bash.1
	- documented new $'...' expansion

				    9/7
				    ---
builtins/enable.def
	- fixed up the help text
	- added a -s flag to restrict operation to Posix.2 `special' builtins
	- removed -all option; -a is the way to do it now
	- converted to use the builtin getopt

builtins/common.c
	- changed builtin_address_internal to return a pointer to a
	  struct builtin, which makes it much more useful.  Changed
	  find_shell_builtin and builtin_address accordingly
	- new function find_special_builtin, which returns special builtins
	  ((flags & SPECIAL_BUILTIN) != 0)

execute_cmd.c
	- in Posix.2 mode, find special builtins before shell functions
	  when performing command lookup
	- in find_user_command_internal, return NULL if there is no $PATH
	- in Posix.2 mode, failure of a special builtin causes a non-
	  interactive shell to exit

variables.c
	- allow $PATH to be unset

				    9/8
				    ---
input.h
	- added a new `input type': st_stdin, for use when using readline,
	  since readline is not properly a string

parse.y
	- surgery on the grammar:
		o added new `compound_list' production: a list that can end
		  without a newline, `;' or `&' (used in subshell commands
		  and case clause commands)
		o removed shell_command_1, folded rules into command
		o eliminated pattern_list_1; changed case_clause_sequence to
		  directly incorporate the SEMI_SEMI token (a pattern_list_1
		  was just a pattern_list with a trailing SEMI_SEMI)
		o new `for_command' and `case_command' productions
		o redirections -> redirection_list
		o newlines -> newline_list
		o redid the code that attaches redirections to the function
		  command rather than the function definition and eliminated
		  all of the shift/reduce conflicts
	- changed with_input_from_stdin in the readline case to set
	  bash_input.type to st_stdin

print_cmd.c
	- a couple of changes to the way functions are printed

shell.c
	- only execute the PROMPT_COMMAND if input is not coming from a
	  string (bash_input.type != st_string).  This fixes the problem
	  of PROMPT_COMMAND being executed by `eval' commands in an
	  interactive shell

				   9/12
				   ----
shell.c
	- all interactive shells SIGHUP running jobs when exiting due to
	  a SIGHUP, not just login shells

				   9/13
				   ----
config.h, config.h.mini
	- changed the default primary prompt (PPROMPT) to "\s\$ "
	- removed the INTERACTIVE_COMMENTS define

flags.c
	- interactive comments are now enabled by default, regardless of the
	  INTERACTIVE_COMMENTS define

input.h
	- a new enum: stream_type, used in the BASH_INPUT struct

parse.y
	- bash_input.type is now initialized to st_none

bashhist.c
	- command_oriented_history is now the default

documentation/bash.1
	- removed description of `nolinks' variable, updated set -P
	  description
	- removed description of `notify' variable, updated set -b
	  description
	- removed description of `noclobber' variable, updated set -C
	  description

variables.c
	- IFS may now be unset

builtins/read.def
	- now does the right thing if IFS is unset (acts as if it is
	  set to " \t\n")

builtins/cd.def
	- added a new parameter to change_to_directory () which says
	  whether or not to follow symlinks, instead of using the
	  global no_symbolic_links
	- changed cd_builtin to accept a -P option to disable symlink
	  following temporarily

builtins/ulimit.def
	- instead of using a hardcoded `long' for the return type of the
	  rlimit functions, use RLIMTYPE, which defaults to long
	- new defines string_to_rlimtype -> string_to_long and
	  print_rlimtype for systems which do not need `RLIMTYPE' defined
	  to something other than long

general.c
	- function replacements for string_to_rlimtype and print_rlimtype
	  for machines which have RLIMTYPE defined in the machine description

general.h
	- extern declarations for string_to_rlimtype and print_rlimtype

shell.c
	- don't source file named by $ENV at script startup if act_like_sh
	  is turned on

machines.h
	- new entry for amiga/netbsd
	- change all the netbsd entries to add -DRLIMTYPE=quad_t to
	  SYSDEP_CFLAGS

siglist.h
	- define sys_siglist as _sys_siglist on the amiga only if USGr4 is
	  defined

print_cmd.c
	- change so that printf is not prototyped on LynxOS with gcc

lib/readline/Makefile
	- changed the `installdirs' target to not fail if the directories
	  do not need creating

lib/readline/history.c
	- fixed a bug in history_arg_extract which manifested itself when
	  !* was used after a command without arguments (e.g., pwd ; echo !*)

				   9/15
				   ----
subst.c
	- expand_word_internal should preserve the flags (other than
	  W_QUOTED) from the word passed as a parameter on the word it returns
	- expand_words_internal renamed to expand_word_list_internal
	- expand_word_list_internal does not perform word splitting or
	  globbing on words with the W_ASSIGNMENT bit set
	- removed special treatment of `notify', `command_oriented_history',
	  `history_control', and `nolinks'
	- rewrote some of the sv_* functions to remove or avoid calls to
	  sscanf, one of the most expensive C library functions

variables.c
	- don't look for $command_oriented_history at startup, since it now
	  defaults to `on'

general.h, general.c
	- new function posix_initialize to do whatever is necessary to enable
	  `Posix mode'

shell.c, subst.c
	- call posix_initialize

general.c
	- rewrote replacements for strchr, strrchr to make them faster

builtins/enable.def
	- new -f option and necessary support to load builtins from a shared
	  object file on systems supporting both dlopen() and dlsym().  New
	  builtins loaded this way can replace existing shell builtins or
	  add completely new functionality

builtins.h
	- mkbuiltins.c creates `static_shell_builtins', which is a fixed
	  array, `shell_builtins' points to this array initially
	- extern declaration for current_builtin

builtins/mkbuiltins.c
	- change to creat static_shell_builtins[] and declare shell_builtins
	  as a pointer to it
	- change to declare `current_builtin' in created builtins.c

builtins/source.def
	- print an error message and return failure if no filename argument
	  is supplied

builtins/common.c
	- current_builtin is set by find_shell_builtin, find_special_builtin,
	  and builtin_address_internal
	- new function builtin_usage, which prints the contents of
	  current_builtin->short_doc

builtins/{bind,declare,enable,fc,getopts,hash,history,jobs,kill,read,set,
	  setattr,trap,ulimit,umask}.def
	- changed the builtins in these files to use builtin_usage() to
	  print usage messages

cpp-Makefile
	- support for the HAVE_DLOPEN and HAVE_DLSYM defines

machines.h
	- added -ldl and -Bdynamic to the SunOS4 entry

documentation/{bash.1,features.texi}
	- documented new enable -f option to dynamically load builtins

				   9/16
				   ----
test.c
	- added `==' as a synonym for `='

				   9/18
				   ----
bashline.c
	- include readline/rlconf.h so that VI_MODE is defined if
	  appropriate

shell.c
	- removed `-nobraceexpansion' option

flags.c, flags.h
	- added new -B flag; enabled if brace expansion is turned on

subst.c
	- use brace_expand instead of !no_brace_expand

builtins/set.def
	- change set -o braceexpand to be equivalent to set -B

parse.y
	- in with_input_from_stdin, do nothing if bash_input.type already
	  is st_stdin or if there is already a stream with type st_stdin
	  on the saved stream stack
	- new function stream_on_stack to find out if there is a saved
	  stream of a specified type

documentation/bash.1, documentation/features.texi
	- doeumented new set -B option
	- removed -nobraceexpansion shell startup option

				   9/19
				   ----
builtins/reserved.def
	- made `help select' work

cpp-Makefile
	- removed references to the nonexistant `load.def'
	- removed conditionals based on GETOPTS_BUILTIN

builtins/getopts.def
	- no longer $DEPENDS_ON GETOPTS_BUILTIN

config.h, config.h.mini, builtins/help.def
	- made the `help' builtin dependent on the HELP_BUILTIN define
	- removed GETOPTS_BUILTIN

builtins/mkbuiltins.c
	- made the `$DEPENDS_ON' clause work for reserved words and
	  shell control structures in reserved.def by writing out
	  dependencies to builtext.h even if there is no `function'
	- made the long_doc for each builtin and reserved word get
	  written out to builtins.c with #ifdef HELP_BUILTIN surrounding
	  the doc strings -- this makes the minimal shell much smaller

shell.c, documentation/bash.1
	- removed `-quiet' long option

parse.y
	- make sure that word splitting is not performed on the prompt
	  string after expanding in prompt_string_decode by calling
	  expand_string_unsplit instead of expand_string

lib/readline/bind.c
	- new readline variable `mark-directories': if set, completed
	  directory names have a slash appended

lib/readline/complete.c
	- support for `mark-directories'

documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
	- documented the new `mark-directories' variable

builtins/bind.def
	- new option `-r' to remove a binding for a specified key sequence
	- make sure that a failure return from bind resets the keymap
	  correctly if a -m option was supplied

documentation/{bash.1,features.texi}
	- documented new bind -r option

				   9/20
				   ----
builtins/jobs.def
	- new `disown' builtin

documentation/{bash.1,features.texi}
	- documented new `disown' builtin

cpp-Makefile
	- removed support for `MAKE_SHELL' cpp variable
	- renamed endian.aux to mkendian, look for endian.c in support dir
	- link in array.o, alias.o, braces.o, bracecomp.o
	  unconditionally, rely on cpp defines in the files to exclude code
	- pass -DHAVE_SYS_SIGLIST if sys_siglist is defined
	- pass -DHAVE_GETCWD if HAVE_GETCWD is defined in machines.h
	- pass -DHAVE_VFPRINTF_EMUALTION through from machines.h to
	  compilation

array.c
	- don't compile in body of file unless ARRAY_VARS is defined

braces.c
	- don't compile in body of file unless BRACE_EXPANSION is defined

alias.c
	- don't compile in body of file unless ALIAS is defined

bracecomp.c
	- don't compile in body of file unless BRACE_EXPANSION and READLINE
	  are defined

bashline.c
	- don't compile in body of file unless READLINE is defined

bashhist.c
	- don't compile in body of file unless HISTORY is defined

siglist.c
	- don't compile in body of file unless HAVE_SYS_SIGLIST is not
	  defined

getcwd.c
	- don't compile in body of file unless HAVE_GETCWD is not defined

vprint.c
	- don't compile in body of file unless USE_VFPRINTF_EMULATION
	  is defined

support/mksysdefs
	- for SCO machines, define SYSDEF as SCO or SCOv4

lib/readline/readline.[ch]
	- new function rl_push_macro_input (s), which makes s the current
	  macro input string

endian.c
	- renamed to support/endian.c

				   9/21
				   ----
lib/readline/complete.c
	- more file types for the VISIBLE_STATS code:
		|	FIFOs
		%	character special devices
		#	block special devices

lib/readline/isearch.c
	- made RETURN an alternate search string terminator

builtins/read.def
	- removed use of stdio -- unbuffered stdio on a dup of fd 0 is
	  a big loss

builtins/set.def
	- new function: minus_o_option_value, returns 1, 0, or -1 given
	  a -o option name (-1 means a bad name)
	- reorganized list_minus_o_options to be more efficient

execute_cmd.c
	- when expanding a here document, use maybe_expand_string rather
	  than a simple expand_string to try a speed things up a bit

input.c
	- don't compile in the body of the file unless BUFFERED_INPUT
	  is defined in config.h

				   9/22
				   ----
jobs.h, siglist.h
	- replaced instances of Solaris with SunOS5

shell.c
	- changed long option parsing code so that --arg is equivalent
	  to -arg, when `arg' is one of the recognized multichar options

builtins/history.def
	- rewrote to regularize the option parsing and use internal_getopt
	- now allows only one of -awrn to be specified
	- added a new -p option that adds each of its arguments to the
	  end of the history list, and deletes the `history -p' history
	  entry

builtins/trap.def
	- added new -p option to display specified trap values, or all
	  trap values if no other arguments supplied

documentation/{bash.1,features.texi}
	- documented new history -p option
	- documented new trap -p option

				   9/25
				   ----
lib/readline/display.c
	- fixed up the calcluation of the correct cursor line number (a `+'
	  and `-' were transposed in the calculation of `nleft')

				   9/26
				   ----
general.c
	- moved isint() here from test.c, renamed to legal_number

general.h
	- extern declaration of legal_number

test.c
	- only compile isint() if SHELL is not defined, define it as
	  legal_number otherwise

trap.c
	- use legal_number in decode_signal instead of sscanf()

builtins/common.c
	- moved list_sigs to here from trap.def, renamed to
	  display_signal_list
	- changed get_numeric_arg to use legal_number instead of doing
	  the parsing and calculation itself

builtins/common.h
	- extern declaration for display_signal_list

builtins/{trap.def
	- changed to use display_signal_list for trap -l

builtins/kill.def
	- changed to use display_signal_list for kill -l
	- added new kill -n signum option

documentation/bash.1
	- added description of new kill -l signame functionality
	- added description of new kill -n signum feature
	- added description of new enable -d option

builtins.h
	- added a char *handle member to `struct builtin' for later use
	- new flags value: BUILTIN_DELETED

builtins/mkbuiltins.c
	- added code to inintialize the `handle' member to null in the
	  static builtin array definition

builtins/common.c
	- don't `find' a builtin if the BUILTIN_DELETED flag is set in the
	  flags word of the struct builtins array

builtins/enable.def
	- new option -d to remove a builtin loaded with -f, depends on
	  HAVE_DLCLOSE

cpp-Makefile
	- pass -DHAVE_DLCLOSE through from machines.h to compilation

machines.h
	- change SunOS4 machine description to define HAVE_DLCLOSE

				   9/27
				   ----
shell.c
	- split shell exit code off into a separate function: exit_shell(status)

builtins/exec.def
	- rewrote for clarity and speed and to use the builtin getopt()
	- added new -a, -c, and -l options
	- now calls exit_shell if shell_execve fails and the shell is not
	  interactive

documentation/bash.1
	- documented the new options to `exec'

				   9/28
				   ----
builtins/exec.def
	- if the execve fails and the shell is not going to exit, reinitialize
	  traps and signals
	- only call end_job_control if subshell_environment != 0
	- exec should exit unconditionally if the execve fails and
	  subshell_environment != 0

subst.c
	- if valid_brace_expansion_word fails, make sure `temp' is set to
	  NULL before trying to free it after the `goto bad_substitution'

cpp-Makefile
	- add $(CPPFLAGS) to the compilation flags when making `mksignames'

documentation/features.texi
	- fixed a typo in the tilde expansion section

				   9/29
				   ----
machines.h
	- DEC OSF/1 has the dlopen/dlsym/dlclose set of library functions

shell.c
	- don't execute /etc/profile if -noprofile given

builtins/pushd.def
	- new file, pushd/popd/dirs split off from cd.def
	- replaced calls to sscanf with calls to legal_number

builtins/Makefile, cpp-Makefile
	- changes for pushd.def

config.h, config.h.mini
	- ALLOW_RIGID_POSIX_COMPLIANCE is no longer used

subst.c, variables.c
	- GETOPTS_BUILTIN is no longer used

variables.c
	- if the first character of argv[0] is not a `/', search the path
	  and canonicalize the result to find out how to set $BASH

				   10/2
				   ----
builtins/enable.def
	- changed enable_shell_builtin to use builtin_address_internal to find
	  the builtin rather than searching the list itself
	- list_some_builtins skips a builtin if flags & BUILTIN_DISABLED != 0
	- rewrote dyn_load_builtin to take a list of names to load from a
	  single filename
	- don't dlclose the shared object in dyn_unload_builtin unless its
	  reference count drops to 0

builtins/test.def
	- don't bother making new copies of everything in the argument list
	  when constructing the argc and argv for test_command; just make
	  sure not to free anything but ARGV

				   10/3
				   ----
bashline.c
	- remove C-e binding in vi movement mode which switches into emacs
	  mode

general.c
	- make xfree only try to call free on non-null strings

				   10/4
				   ----
builtins/read.def
	- new `-e' option that uses readline to read the line
	- if one of the arguments is not a legal variable name, print an
	  error message and return failure

builtins/reserved.def
	- changed the `Variables' to `variables' so `help variables' works

subst.c
	- set startup_state to 2 in child of command substitution to try to
	  avoid some unneeded forks

trap.c
	- removed call to reset_terminating_signals in restore_original
	  signals; callers are now required to take care of that themselves,
	  if necessary

execute_cmd.c, subst.c
	- added necessary calls to reset_terminating_signals before calls
	  to restore_original_signals

execute_cmd.c
	- when executing a null command in a subshell, don't bother passing
	  a string to make_child; just pass NULL
	- in execute_builtin_or_function, don't add so many unwind-protects
	  if `subshell' == 1
	- in command_substitute, call cleanup_the_pipeline to discard the
	  old pipeline, so pipeline_pgrp does not get set to 0 in
	  start_pipeline, which is called by make_child via making_children

jobs.c, nojobs.c
	- new function, ignore_tty_job_signals, to set SIGTTIN, SIGTTOU, and
	  SIGTSTP to SIG_IGN
	- new function, default_tty_job_signals, to set those signals
	  to SIG_DFL
	- new function, cleanup_the_pipeline to free up the_pipeline and
	  set it to NULL

				   10/5
				   ----
builtins/history.def
	- the history -p option is now -s (to sort of parallel the ksh
	  print -s option)
	- the -s option now combines all of its arguments into a single
	  string and appends the string to the history list
	- new history -p option to history expand each argument and print
	  the result without modifying the history list

documentation/bash.1, documentation/features.texi
	- documented the new -e option to read
	- documented the new history -s and -p options
	- documented the new cd and pwd -L options

builtins/cd.def
	- changed cd and pwd to use internal_getopt
	- added the -L option to cd and pwd to follow symlinks (like if
	  set +P were issued)

builtins/pushd.def
	- added text for dirs +N and dirs -N to the dirs builtin long doc
	- added -v option to dirs to print dirstack one dir per line with
	  stack index prepended

				   10/6
				   ----
execute_cmd.c
	- split the command searching code into a new function:
	  search_for_command
	- removed a bunch of dead code from shell_execve
	- removed call to reset_terminating_signals when executing a function
	  or builtin in a subshell (either via (xxx) or xxx &)
	- don't add unwind protects at all in execute_function if subshell == 1

lib/readline/chardefs.h
	- new macro ALPHABETIC(c), returns 1 if c is a letter or digit

lib/readline/readline.c
	- don't call abort() in rl_change_case(); it's impolite in a
	  library function
	- new macro, SWAP, used to swap values of two integers
	- changed alphabetic to use ALPHABETIC, made it slightly faster
	- modified rl_change_case() so that word capitalization is the
	  same as GNU Emacs

lib/readline/search.c
	- in noninc_dosearch, don't reset the history positition to what
	  it was if we're currently in vi editing mode (as per Posix.2
	  `/' and `?' vi-mode editing commands)

				   10/7
				   ----
builtins/common.c
	- changed single_quote and double_quote to use char pointers
	  rather than string indexing
	- new function backslash_quote(string), which quotes special
	  characters in STRING using backslashes

				   10/8
				   ----
alias.h
	- added an extern declaration for alias_expand_word

parse.y
	- broke the alias expansion code off into a function
	  alias_expand_token; its return value says whether to re-read
	  a token or go on
	- changed the alias expansion code to handle aliases that expand
	  to nothing better
	- broke the code that does special-case token recognition off into
	  a function: special_case_tokens
	- used the new functions to make sure that the special-case tokens
	  can be the expansion of an alias
	- made sure that if in `posix mode' that reserved words cannot be
	  aliased and that all reserved words can be the values of aliases
	  and be recognized after expansion

				   10/10
				   -----
lib/readline/complete.c
	- replaced #ifdef SHELL code with two new exported readline interfaces:
	  rl_filename_quoting_function and rl_filename_dequoting_function.
	  Both return a pointer to char.
	- new extern variable rl_filename_quote_characters, containing a list
	  of characters that cause a word to be quoted by the completer if
	  they appear in a file name

bashline.c
	- new functions for rl_filename_quoting_function and
	  rl_filename_dequoting_function.
	- initialize rl_filename_quoting_function and rl_filename_dequoting_function
	  in initialize_readline
	- initialize rl_filename_quote_characters

lib/readline/readline.h
	- extern declarations for new public interfaces
	  rl_filename_quoting_function and rl_filename_dequoting_function
	- added declarations for NO_MATCH, SINGLE_MATCH, and MULT_MATCH for
	  use by the filename quoting functions
	- new extern declaration for rl_filename_quote_characters

lib/readline/history.c
	- made a version of single_quote be compiled in if SHELL is not
	  defined
	- the `q' and `x' modifiers are now compiled in by default, not
	  just if SHELL is defined

				   10/11
				   -----
subst.c
	- string_quote_removal was being a little overzealous in stripping
	  things within embedded quoted strings when `quoted' was == 1.
	  Only remove one level of quotes each time through the function
	  This fixes the problem of quotes being stripped incorrectly in
		var="The text \"hello\" should show up inside double quotes."

lib/readline/history.c
	- made the behavior of single quotes inhibiting history expansion
	  configurable with a variable: history_quotes_inhibit_expansion,
	  not just shell-specific
	- added a new variable: history_search_delimiter_chars, which is a
	  list of characters that can also delimit a history search string

lib/readline/history.h
	- extern declaration of history_quotes_inhibit_expansion
	- extern declaration of history_search_delimiter_chars

bashhist.c
	- set history_quotes_inhibit_expansion to 1 in bash_initialize_history
	- initialize history_search_delimiter_chars to ";&()|<>"

lib/readline/doc/{rltech,hstech}.texinfo
	- documented new readline and history library interfaces

parse.y
	- split the part of read_token that reads a single word off into
	  a new function: read_token_word

lib/readline/chardefs.h
	- include <string.h> by default; only check HAVE_STRING_H if
	  HAVE_CONFIG_H is defined

				   10/12
				   -----
parse.y
	- moved the `RESET' code out of read_token into reset_parser
	- rewrote some of decode_prompt_string to make it more efficient
	- rewrote more of read_token_word to make it more efficient
	- make shell_getc cast its result to `unsigned char' before
	  returning it.  This fixes the problem of \255 appearing in a
	  line

machines.h
	- new entry for m68k machines running Linux

				   10/13
				   -----
builtins/exec.def
	- use search_for_command rather than find_user_command to look up
	  the path to exec, so the hash table and temp environment are used

variables.c
	- don't rebuild the export environment after binding a shell
	  function unless that function is exported
	- make sure that copy_variable copies arrays correctly, using
	  dup_array()
	- in assign_in_env, only call tilde_expand if a `~' appears somewhere
	  in the value

execute_cmd.c
	- if we found $PATH in the temp environment in search_for_command,
	  call find_user_command_in_path instead of find_user_command, so
	  we don't try to search the temporary env again.  Call
	  find_user_command as normal if PATH is not in the temp environment

subst.c
	- char_is_quoted should not be compiled in if READLINE is not
	  defined

lib/readline/complete.c
	- add a new external interface: Function *rl_char_is_quoted_p,
	  which is called to find out whether a word break character is
	  quoted and should be skipped over when breaking words for
	  the completer

lib/readline/readline.h
	- extern declaration for rl_char_is_quoted_p

bashline.c
	- initialize rl_char_is_quoted_p to char_is_quoted

lib/readline/doc/rltech.texinfo
	- documented rl_char_is_quoted_p

lib/readline/readline.c
	- extend the undo records so that a `start' or `end' value of -1
	  means rl_point and a value of -2 means rl_end.  This is a start
	  to better support for undoing vi-mode commands like `C'

lib/readline/vi_mode.c
	- don't save what's entered in insert mode after a `C' command
	  for later insertion when doing a `redo'

				   10/16
				   -----
test.c
	- rewrote unop() to use a switch statement instead of a call to
	  strchr
	- remove #ifdef SHELL blocks by defining getuid, geteuid, getgid
	  and getegid as references to current_user.{uid,euid,gid,egid}
	  respectively
	- change group_member to only fetch the group list once and to use
	  NGROUPS_MAX or NGROUPS to find the maximum number of groups

documentation/bash.1
	- fixed description of ${#@} expansion

				   10/17
				   -----
support/bashbug.sh
	- add a `From:' line to the mail message handed to rmail

				   10/18
				   -----
test.c
	- rewrote binary_operator for speed and clarity
	- removed age_of, added arithcomp(), filecomp() to support new
	  binary_operator
	- removed support for `-l string'

documentation/bash.1
	- removed mention of `-l string' from `test' description

				   10/19
				   -----
cpp-Makefile
	- pass PROGRAM as the double-quoted shell name to compilation of
	  shell.c and error.c

				   10/20
				   -----
support/bashbug.sh
	- don't try to use ${word:-expansion}; ultrix sh doesn't understand it

hash.c
	- new function: flush_hash_table (table, free_data) to delete the
	  contents of a given hash table.  *free_data is called to free
	  each item's data, if free() is inappropriate

builtins/hash.def
	- new functions free_hashed_filenames and free_filename_data to
	  flush the table of hashed filenames

subst.c
	- change sv_path to call flush_hashed_filenames directly

variables.c
	- only sort arrays of variables or functions for the environment or
	  `set' output if `posixly_correct' is set.  sh does it; ksh does
	  not, and there's no real requirement to do so
	- rewrote delete_all_variables so it looks like flush_hash_table

trap.c
	- two new flag values for the `sigmodes' array: SIG_INPROGRESS,
	  which is set for sigmodes[sig] while a trap handler for sig
	  is executing, and SIG_CHANGED, which is set if a new trap
	  value is set when SIG_INPROGRESS is set.  This should obviate
	  the need to set the trap value to IMPOSSIBLE_TRAP_HANDLER while
	  the trap handler is executing

alias.c
	- rewrote delete_all_aliases so it looks like flush_hash_table

				   10/21
				   -----
alias.c
	- changed delete_all_aliases to call flush_hash_table directly
	  and use free_alias_data as the `free function' argument

variables.c
	- changed delete_all_variables to call flush_hash_table directly

tests/run-test, tests/test-tests
	- new scripts to run tests of the `test' builtin as part of the
	  regression test

				   10/24
				   -----
bashline.c
	- initialize_hostname_list needs to look for HOSTFILE first
	- hostname list is no longer sorted
	- replaced binary search in hostnames_matching with a simple
	  linear search
	- made the code that reads hostnames skip over the first word on
	  a line only if its first character is a digit, assuming it's
	  an Internet address

copy_cmd.c
	- removed copy_select_command; overload copy_for_command, since the
	  select and for command structs are exactly the same

make_cmd.c
	- combined make_for_command and make_select_command into a new
	  function, make_for_or_select
	- rewrote make_here_document to remove the unneeded `switch' statement

builtins/common.c, builtins/hash.def
	- moved remove_hashed_filename from common.c to hash.def

builtins/common.c
	- remove the \r from error message printed by get_working_directory
	- change parse_and_execute to call dispose_fd_bitmap directly then
	  discard the `pe_dispose' unwind-protect frame rather than running
	  the frame

builtins/set.def
	- changed how set -o options are set and retrieved, using set and get
	  functions to avoid all that special-case inline code

				   10/26
				   -----
test.c
	- added unary operator `-o', which returns true of the shell option
	  name given as an argument is set

lib/readline/readline.c
	- added a definition of set_lines_and_columns to be called if the
	  library is not compiled -DSHELL

shell.c
	- added a --verbose startup long option
	- renamed `--nolineediting' to `--noediting'

				   10/27
				   -----
lib/readline/util.c
	- new file, for readline utility functions

lib/readline/readline.c
	- moved a bunch of functions to util.c

subst.c
	- make sure set_sigint_handler is called only by the subshells doing
	  command and process substitution

builtins/read.def
	- make sure that rlbuf is initialized to null

trap.c
	- new flag for sigmodes[] members: SIG_IGNORED, set when signal is
	  ignored, even if it's special or untrappable
	- new function: signal_is_ignored (sig), which returns 1 if SIG
	  has been ignored with trap ''

builtins/trap.def
	- changed to use the builtin getopt

shell.c
	- added a check to sigint_sighandler for whether or not SIGINT has
	  been ignored with trap '' in an interactive shell.  This fixes
	  the problem with `read' being interruptible in an interactive
	  shell even if SIGINT is being ignored

				   11/8
				   ----
lib/readline/Makefile
	- added definition of INSTALLED_HEADERS, just in case

				   11/11
				   -----
variables.c
	- change assign_in_env so that it doesn't use savestring ("") to
	  set `value' to a dummy value; don't call strcpy if there's
	  nothing to copy

				   11/15
				   -----
general.h
	- new defines, legal_variable_starter and legal_variable_char
	- new define SIGRETURN(n) which encapsulates the VOID_SIGHANDLER
	  differences when returning from a signal handler

general.c, variables.c, subst.c, expr.c
	- use legal_variable_starter and legal_variable_char

shell.c, nojobs.c, trap.c, jobs.c, builtins/suspend.def
	- change to use SIGRETURN macro

subst.c
	- massive changes to clean up the code and remove unused code and
	  variables
	- expanded the ${#param} code so that all of the shell special
	  variables may have their length taken

tests/run-tilde
	- new test for tilde expansion

bashline.c
	- fix a bug in command_subst_completion_matches: make sure that
	  `matches' is static

parse.y
	- don't print a prompt when not using readline if the current
	  input type is st_string

machines.h
	- add -DINT_GROUPS_ARRAY to SYSDEP_CFLAGS on ultrix
	- fixes to the cray machine description from Bill Jones

braces.c
	- fixed a bug in brace_gobbler that prevented a backslash from
	  escaping an open brace

				   11/16
				   -----
tests/braces-tests, tests/run-braces
	- new regression tests for brace expansion

builtins/pushd.def
	- new -p option for `dirs' that prints dirstack on per line
	  without numbers

				   11/17
				   -----
command.h
	- move redirection error values here from execute_cmd.c
	- new defines INPUT_REDIRECT and OUTPUT_REDIRECT

shell.c
	- make the default MAINTAINER `bash-maintainers@prep.ai.mit.edu'

execute_cmd.c
	- many changes to clean up the code and remove unused variables and
	  functions
	- new functions: redirection_error, find_in_path_element,
	  find_absolute_program
	- fixes to redirection error reporting, so things like exec 4<&y*
	  and exec 4<&$FOO are displayed correctly
	- removed the `lexical_scoping' code

flags.c, flags.h
	- removed the lexical_scoping code and variable

documentation/{bash.1,features.texi}
	- removed the description of the `-l' option to `set'

jobs.c
	- don't try to open /dev/tty to get the controlling tty, use
	  fd 2 like other job control shells

lib/readline/vi_mode.c
	- when using `d%', make sure the matching character found by
	  the `%' is deleted by the `d'.  Ditto for `c%'.
	- stub function for vi undo: rl_vi_undo.  Right now it just
	  calls rl_undo_command

lib/readline/vi_keymap.c
	- change to call rl_vi_undo instead of rl_undo_command

lib/readline/readline.h
	- extern declaration for rl_vi_undo

				   11/21
				   -----
execute_cmd.c
	- fix to print_select_list to avoid a possible divide-by-zero error
	  and subsequent core dump
	- fix to execute_select_command to just return 0 if there is no
	  select list

parse.y
	- remove `in' from the list of tokens that cannot take trailing
	  semicolons

builtins/read.def
	- make sure that leading IFS whitespace is removed before calling
	  get_word_from_string the first time.  This matters when IFS is
	  not " \t\n" but non-null
	- make sure the array code uses IFS to split the input string
	  before assigning it to the array

				   11/22
				   -----
parse.y
	- make sure that if \nnn expands to CTLESC or CTLNUL, the char
	  is protected by a CTLESC
	- new variable `promptvars', which, if non-zero, causes all the
	  variable expansions to be performed in decode_prompt_string.
	  If zero, only quote removal is performed.

builtins/source.def
	- new variable: `source_uses_path', set to 1 by default.  If
	  non-zero, the `.' builtin uses $PATH to find the script to
	  source

builtins/getopt.h
	- cut out everything not needed by bash

builtins/getopt.c
	- cut out everything not needed by bash

builtins/getopts.def
	- removed the call to getopt_set_posix_option_order, which is no
	  longer necessary

execute_cmd.c
	- split the code that writes out here documents to files out into
	  a separate function

				   11/23
				   -----
builtins/getopt.c, builtins/getopt.h, builtins/getopts.def, subst.c
	- prefix all of the getopt variables and functions with `sh_'
	  (that is, optind becomes sh_optind and getopt becomes sh_getopt)
	  to avoid confusion with a system's getopt(3) implementation

subst.c
	- new functions: parameter_brace_substring and verify_substring_values
	  and changes to expand_word_internal to support the ksh-93
	  ${var:exp1:exp2} substring syntax

documentation/bash.1
	- documented the new ${var:exp1[:exp2]} syntax

				   11/25
				   -----
builtins/setattr.def
	- don't allow readonly -n at all

array.c
	- split array_to_string into two parts; a new function
	  array_to_string_internal does the real work
	- new function array_subrange () to return a subset of the elements
	  in an array

subst.c
	- augmented the substring code to handle the positional parameters
	  and array variables
	- made quote_list and dequote_list return their WORD_LIST *
	  arguments so they can be used like

		z = string_list ((quoted ? quote_list (l) : l), xxx);

	- augmented the ${xxx} expansion code to do indirect variable
	  references if the first character of the variable name is `!'

tests/new-exp.tests
	- added regression tests for substring expansion
	- added regression tests for indirect variable references

				   11/28
				   -----
builtins/set.def
	- added set -o hashfunc and set -o onecmd, synonyms for set -h
	  and set -t, respectively

builtins/shift.def
	- changed shift so that the positional parameters are not changed
	  if the argument is > $# (this is ksh and Posix.2, unlike sh)

documentation/bash.1
	- documented true behavior of `shift'

lib/readline/kill.c
	- split the kill ring management code and the kill commands out
	  from readline.c into this file

lib/readline/undo.c
	- split the code that does undoing out of readline.c into this file

shell.c
	- force the shell to exit with status 127 if a longjmp back to
	  run_one_command occurs with bash -c
	- force the last command exit status to 1 if a
	  longjmp (top_level, DISCARD) is performed

builtins/read.def
	- don't throw away partial lines after reading EOF

subst.c
	- command substitution should not inherit the -e flag

builtins/source.def
	- make sure to set the exit status correctly when in posix mode
	  and the filename argument to `.' does not exist

				   11/29
				   -----
lib/readline/input.c
	- split the input buffering and character input code out of
	  readline.c to here

lib/readline/macro.c
	- moved the keyboard macro management code to here from readline.c

lib/readline/readline.c
	- removed the STATIC_MALLOC code

lib/readline/rltty.c
	- return -1 in POSIX get_tty_settings if tcgetattr returns -1 and
	  errno != EINTR, even if output is being flushed

				   12/1
				   ----
machines.h
	- fixes to the hpux_8 and hpux_9 machine descriptions

trap.c
	- make run_exit_trap return the right exit status
	  (last_command_exit_value)
	- run_exit_trap no longer preserves the value of last_command_exit_value
	  around the execution of the trap commands
	- run_exit_trap now turns off SIG_TRAPPED and sets SIG_INPROGRESS
	  and will not try to run anything if SIG_INPROGRESS is set

trap.h
	- change definition for run_exit_trap

shell.c
	- call run_exit_trap only if trap[0] is set and not ignored

builtins/exit.def
	- make sure we only source the .bash_logout file once, even if it
	  contains a call to `exit'

execute_cmd.c
	- if we run an exit trap in a (...) user subshell, allow it to
	  override the exit status of the subshell

lib/readline/readline.c
	- made rl_delete_text bounds check its `to' argument, and limit
	  it at rl_end

lib/readline/vi_mode.c
	- make rl_vi_subst call `rl_delete_text' directly for the `s'
	  command

support/mksysdefs
	- define a new variable for the sysdefs.h file for ISC machines:
	  ISC_release, which can be ISC_2, ISC_3, or ISC_4

machines.h
	- don't `#undef' HAVE_GETCWD on ISC 4.x machines
	- `#undef' HAVE_RESOURCE on ISC 4.x machines

support/mkversion.c
	- include "posixstat.h" rather than <sys/stat.h> for the benefit
	  of ISC machines

				   12/5
				   ----
lib/readline/complete.c
	- changed username_completion_function so that a null username
	  generates a list of all users as possible completions

lib/readline/readline.h
	- added definitions for STREQ, STREQN

lib/readline/{search.c,isearch.c,kill.c}
	- removed private definitions of STREQ, STREQN

execute_cmd.c
	- in find_user_command_internal, just return a copy of the pathname
	  passed as an argument if there is no PATH

				   12/6
				   ----
siglist.h
	- NetBSD 1.0 does not need a define for strsignal()

				   12/8
				   ----
subst.c
	- removed assignment_name, word_list_quote_removal, word_quote_removal,
	  and sub_append_number -- unused functions
	- removed some unexecuted code from expand_word_internal

				   12/9
				   ----
execute_cmd.c
	- if PATH is set to the empty string, find executables in the
	  current directory

shell.c, parse.y, trap.c
	- before setting the SIGINT sighandler unconditionally to one of
	  sigint_sighandler or termination_unwind_protect, check that it
	  is not ignored.  Now trap '' 2 really sets the SIGINT signal
	  handler to SIG_IGN. [In 1.14.3]

trap.c
	- rewrote set_sigint_handler to use SIG_IGNORED rather than checking
	  against IGNORE_SIG
	- changed ignore_signal, run_exit_trap, maybe_call_trap_handler, and
	  run_trap_internal to check SIG_IGNORED

shell.c
	- removed the check for signal_is_ignored(SIGINT) in sigint_sighandler

				   12/11
				   -----
sig.c, sig.h
	- new files, moved signal-related definitions and code here from
	  shell.c, general.h, general.c, jobs.c, jobs.h, externs.h

unwind_prot.c, shell.h, nojobs.c
	- include sig.h

				   12/12
				   -----
jobs.c
	- only break out of loops if SIGTSTP was used to stop a job in the
	  loop, the shell is currently interactive, and job control is on.
	  SIGSTOP does not break loops. [In 1.14.3]

				   12/13
				   -----
expr.c
	- bases < 2 or > 36 are now accepted without silently being reset
	  to 10

braces.c
	- make sure array_concat copies the array it returns if one of
	  the arguments is null [In 1.14.3]

				   12/14
				   -----
subst.c
	- split the ${...} expansion code out into a separate function,
	  static char *parameter_brace_expand()
	- changes to array_value so that any variable can be referred to
	  as an array with an integer subscript.  The value will be
	  returned if a non-array variable is referred to as ${var[0]};
	  if the subscript is > 0 a null string is returned

				   12/15
				   -----
machines.h
	- fixes to freebsd description for FreeBSD 2 [In 1.14.3]

support/bashbug.sh
	- changed to use /usr/lib/sendmail if present or /usr/sbin/sendmail
	  if present, defaulting to rmail [In 1.14.3]

bashhist.c
	- HISTFILESIZE now controls how large the history file is after
	  it is written.  After saving the shell history, sv_histfilesize
	  will truncate it if necessary.  history -w can override this.

documentation/bash.1
	- documented change to treatment of HISTSIZE when saving history

lib/malloc/malloc.c
	- removed the calls to sigsetmask() in malloc().  This should
	  result in a speed improvement

				   12/19
				   -----
builtins/enable.def
	- don't allow -f or -d in a restricted shell

builtins/alias.def
	- rewrote alias and unalias to use the internal getopt
	- added -p option to print the alias list to alias
	- fixed up the documentation for `alias'

documentation/{bash.1,features.texi}
	- updated the documentation for `alias'
	- updated the documentation for $_

array.c,array.h
	- new function `empty_array (ARRAY *a)' removes all of the
	  elements in a without destroying the array variable in
	  preparation for overwriting it.  Used by read -a.

builtins/read.def
	- call empty_array() before assigning list of values with read -a
	- changed dispose_array to use empty_array to destroy the
	  array elements

variables.c
	- set $_ to argv[0] at variable initialization time

				   12/20
				   -----
subst.c
	- broke the pattern removal code into a few separate functions:
	  getpatspec to get the pattern specifier, getpattern to do the
	  necessary word expansions and return the pattern to be matched
	- new function: parameter_list_remove_pattern(), which implements
	  the ${param[#%][[%#]]pattern} where param is `@' or `*'

documentation/bash.1
	- documented new pattern removal functionality for the positional
	  paramters

general.c
	- new function strsub (s, pat, rep, gflag) replaces PAT with REP
	  in S.  All occurrences are replaced if GFLAG != 0; the first is
	  replaced otherwise
	- changed strindex() to avoid multiple calls to strnicmp by
	  checking first character of the string

builtins/fc.def
	- changed to use builtin_getopt with a check for fc numbers as
	  arguments
	- some code rearranging for efficiency and clarity
	- fc_dosubs now just calls strsub(); fc_replace is gone

				   12/21
				   -----
subst.c
	- new function, match_pattern, which matches a shell globbing
	  pattern anywhere in a string and returns the boundaries of the
	  match

lib/readline/readline.h
	- declarations for rl_insert_command and rl_backward_char_search

lib/readline/readline.c
	- new function rl_insert_comment, no longer vi-mode-specific
	- new function rl_backward_char_search

lib/readline/bind.c
	- comment-begin now sets the comment char for emacs and vi modes
	- variable holding the value is now _rl_comment_begin

lib/readline/vi_mode.c
	- move the `comment-begin' stuff to readline.c and bind.c

lib/readline/funmap.c
	- vi-comment is now insert-comment
	- new bindable command character-search-backward

lib/readline/vi_mode.c
	- command mode `#' now invokes rl_insert_comment

lib/readline/emacs_keymap.c
	- M-# now bound to insert-comment
	- M-space now bound to set-mark
	- M-^] now bound to character-search-backward

bashline.c
	- posix_readline_initialize now calls rl_variable_bind to set the
	  value of comment-begin rather than directly modifying
	  _rl_comment_begin

documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
	- added description of new bindable `insert-comment' command
	- documented new M-space emacs mode binding
	- documented new character-search-backward command and default
	  emacs mode binding to M-C-]

shell.c
	- only call posix_initialize if posixly_correct is set

				   12/22
				   -----
cpp-Makefile
	- make $(Program) depend on $(srcdir)/.distribution, for the
	  benefit of systems where `make' does not have VPATH support
	  [In 1.14.3]

jobs.c
	- if a foreground job is killed by SIGINT while job control is
	  active, print a newline to compensate for the kernel printing
	  ^C without one [in 1.14.3]

bashline.c
	- make sure bashline_reinitialize resets rl_completion_entry_function
	  to NULL, as the comment says it should [In 1.14.3]

				   12/23
				   -----
test.c
	- fix a problem that caused core dumps if a `)' was missing in a
	  parenthesized expression [In 1.14.3]

jobs.c
	- broke the code the manages the manipulation of the job table and
	  process status out of flush_child into a new function waitchld()
	- flush_child now just calls waitchld() with a parameter that tells
	  it not to block
	- wait_for calls waitchld() with the pid it's looking for and tells
	  it to block (don't call it with WNOHANG)
	- cleaned up wait_for considerably -- turned the wait_loop: label
	  stuff into a do-while loop and removed the setting of job status
	  (that's now done only by waitchld).  wait_for now calls
	  waitchld continuously until the job it is interested in is
	  marked JDEAD.

				   12/28
				   -----
subst.c
	- fixed expand_word_internal so that any word that expands into
	  nothing and contains a double-quoted $@ is removed, like sh
	  and ksh
	- new function: expand_string_for_rhs, which calls expand_word_internal
	  with a variable that lets it find out whether or not a $@ appeared
	  in the WORD in ${paramOPword} when expanding it, so that "$@"
	  and various other things are handled correctly on the rhs
	- added params for parameter_brace_expand to tell expand_word_internal
	  if a quoted $@ was processed as part of the rhs (or even the lhs);
	  these new params are passed along to parameter_brace_expand_rhs
	- pass the right value of quoted to parameter_brace_expand_rhs from
	  parameter_brace_expand.  expand_string_for_rhs doesn't need to know
	  whether the brace expression is quoted

				   12/31
				   -----
support/printenv
	- now an official part of the distribution, moved from CWRU/misc
	  [in 1.14.3]

cpp-Makefile
	- copy support/printenv into the `tests' directory when making tests
	  [in 1.14.3]
	- change to understand GCC_STANDARD [in 1.14.3]

support/bashbug.sh
	- fixed a typo that caused it to not parse correctly [in 1.14.3]

machines.h
	- define GCC_STANDARD if the standard `cc' is gcc and you don't want
	  to use the compiler named `gcc' for some reason [in 1.14.3]

				    1/2
				    ---
general.h
	- added FS_DIRECTORY to the list of flags that file_status returns

execute_cmd.c
	- changed find_in_path_element to return null if the flags argument
	  specifies FS_EXEC_ONLY and the file is not executable
	- return FS_DIRECTORY from file_status if the argument specifies a
	  directory
	- new function, is_directory (char *), which returns non-zero if the
	  filename argument is a directory

execute_cmd.h
	- extern declaration for is_directory

flags.c, flags.h
	- hashing_disabled and locate_commands_in_functions were removed,
	  hashing_enabled added

execute_cmd.c, builtins/common.c. builtins/hash.def
	- use hashing_enabled instead of hashing_disabled, and reverse
	  the sense of tests of it

documentation/bash.1, documentation/features.texi
	- changed description of `set -h/set -o hashcmds', removed
	  set -d/set -o nohash

bashline.c
	- changed command_word_completion_function to return matches if names
	  are directories as well as if they are executable files

support/mksysdefs
	- look for `ranlib' in $PATH before searching the file system;
	  look in /usr/gnu/bin for it; default to `:' if not found

general.c
	- change ansicstr to accept a second argument telling it whether to
	  recognize \c and to pass back a non-zero value in it if \c is
	  seen

general.h
	- changed extern declaration of ansicstr

subst.c
	- call ansicstr with an extra argument

				    1/3
				    ---
builtins/echo.def
	- rewrote to use ansicstr() with the new argument

				    1/4
				    ---
trap.c
	- changed instances of signal() to set_signal_handler() [in 1.14.4]
	- combined reset_signals and restore_signals into a single function,
	  since they were essentially identical

subst.c
	- if set -u is set, references to the positional parameters now
	  generate errors if that parameter is not set [in 1.14.4]

lib/*/Makefile, builtins/Makefile
	- since RANLIB can be just `ranlib', just try to run it without
	  checking that the file exists [in 1.14.4]

builtins/set.def
	- changed `hashcmds' to `hashall'

documentation/{bash.1,features.texi}
	- changed `hashcmds' to `hashall'

				    1/5
				    ---
trap.c
	- make the loop that restores signal handlers run from signal 0 to
	  make sure user subshells don't inherit traps on `exit' (to fix
	  for 1.14.3, change restore_original_signals so that the loop
	  starts from 0) [in 1.14.4]

variables.c
	- don't import exported function definitions at startup if the
	  shell is restricted

builtins/source.def
	- don't allow use of pathname arguments containing `/' in a
	  restricted shell

execute_cmd.c
	- when a shell is spawned to execute a shell script without a
	  #! line, turn off the -r flag if the shell is restricted

shell.c
	- added a new long option `--restricted'

documentation/bash.1
	- added a section on the restricted shell, and documented the
	  new `--restricted' long invocation option

				    1/7
				    ---
shell.c
	- when using bash -c command, make run_one_command return
	  last_command_exit_value if a throw_to_top_level with value
	  EXITPROG occurs [in 1.14.4]

print_cmd.c
	- make sure to initialize arg_index in the non-varargs implementation
	  of cprintf [in 1.14.4]

jobs.c
	- don't try to change the state of the SIGCHLD handler before
	  calling waitchld() from wait_for, since SIGCHLD is blocked
	  while this code is executing [in 1.14.4]

				   1/11
				   ----
lib/readline/rltty.c
	- call control_keypad iff the value of a new variable,
	  _rl_enable_keypad, is non-zero

lib/readline/bind.c
	- new readline variable `enable-keypad' to control whether readline
	  tries to manipulate the application keypad

documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
	- documented new `enable-keypad' variable

				   1/12
				   ----
lib/readline/search.c
	- make sure to call rl_unix_word_rubout and rl_unix_line_discard
	  with the correct arguments [in 1.14.4]

make_cmd.h
	- make sure make_select_command is declared even if SELECT_COMMAND
	  is not defined

parse.y
	- make sure the \[ and \] escape sequences are not recognized if
	  READLINE is not defined [in 1.14.4]

config.h
	- make sure HISTORY is defined if READLINE is; code moved here
	  from bashhist.c [in 1.14.4]

bashhist.c
	- removed check for READLINE being defined without HISTORY; now
	  in config.h
	- new function, bash_history_reinit

flags.h, flags.c, builtins/set.def
	- the -H/-o histexpand flag should be compiled into the shell
	  only if BANG_HISTORY is defined [in 1.14.4]

subst.c
	- don't include sv_histchars unless BANG_HISTORY is defined
	  [in 1.14.4]
	- if QUOTED is true in parameter_brace_expand_rhs, pre-process the
	  word on the rhs of the parameter expansion by a call to
	  string_extract_double_quoted with the STRIPDQ parameter set to 1
	- new arg for string_extract_double_quoted; causes it to strip
	  double quotes and alter its backslash handling behavior; designed
	  to be called from parameter_brace_expand_rhs
	- changed all other instances of string_extract_double_quoted to
	  call it with STRIPDQ set to 0, to get old behavior

shell.c
	- call bash_history_reinit rather than manipulating history
	  variables directly

variables.c
	- don't auto-export $BASH [in 1.14.4]

tests/rhs-exp.tests
	- new test script to check for behavior fixed by changes to
	  string_extract_double_quoted and parameter_brace_expand_rhs

parse.y
	- `for' and `select' must now take non-empty lists between
	  `in' and `;'

				   1/16
				   ----
subst.c
	- fixed string_quote_removal to do double-quoted string processing
	  itself rather than call string_extract_double_quoted, which
	  assumes that a call to expand_word_internal or the equivalent
	  will follow immediately and leaves some backslashes in place,
	  inappropriately for quote removal

				   1/23
				   ----
subst.c
	- make sure to set `temp' to NULL after it's freed by sub_append_string
	  in expand_word_internal to keep it from pointing to newly-allocated
	  memory that will be subsequently freed, causing a `memory freed
	  twice' error [in 1.14.4]

trap.c
	- handle the EXIT_TRAP specially in reset_or_restore_signal_handlers,
	  since in both cases we simply want to free up the trap string and
	  mark the signal as not trapped

shell.h
	- added \n to the list of characters in slashify_in_double_quotes

				   1/26
				   ----
subst.c
	- make string_extract_single_quoted and string_extract_double_quoted
	  `inline'
	- new function skip_single_quoted, used when we used to call
	  string_extract_single_quoted and just throw the returned string
	  away
	- new function skip_double_quoted for the same purpose

				   1/28
				   ----
subst.c
	- fixed expand_word_internal so that if an assignment word
	  is expanded, no word splitting is performed [in 1.14.4]

builtins/ulimit.def
	- some systems lack RLIMIT_CPU; so `#ifdef' its use [in 1.14.4]
	- some versions of cpp expand parameters like \n if `n' is an
	  argument to the macro; change `n' to `num' in the definition
	  of print_rlimtype to compensate [in 1.14.4]

builtins/read.def
	- make sure the read loop sets `saw_escape' to note that an
	  escape character was read if CTLESC or CTLNUL is read [in 1.14.4]

shell.c, sig.c
	- only test interactive_shell before calling maybe_save_shell_history
	  [in 1.14.4]
shell.c
	- include <locale.h> if HAVE_LOCALE_H is defined
	- call setlocale(LC_ALL, "") at the beginning of main() if
	  either _POSIX_VERSION or HAVE_SETLOCALE is defined

support/mksysdefs
	- look for <locale.h>, define HAVE_LOCALE_H if found

cpp-Makefile
	- pass HAVE_LOCALE_H through from sysdefs.h to the build process

bashhist.c
	- remove test against interactive_shell in maybe_save_shell_history
	  [in 1.14.4]

variables.c
	- moved definition of DEFAULT_MAIL_PATH to config.h

config.h, config.h.mini
	- now has definition of DEFAULT_MAIL_PATH [in 1.14.4]
	- changed default value of PATH to
	  `/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.'
	  [in 1.14.4]

documentation/bash.1
	- updated the example of the default path in the description of
	  the PATH variable

lib/readline/readline.c
	- set up a table of `legal' LC_CTYPE values and match the value of
	  $LC_CTYPE against it when deciding whether or not to default to
	  eight-bit input and output
	- check for LC_ALL, LC_CTYPE, and LANG, in that order, for names to
	  check against the legal_lc_ctype_values table

lib/readline/bind.c
	- moved strindex, stricmp, and strnicmp to lib/readline/util.c, 
	  added _rl_ prefix to names
	- some miscellaneous code cleanups and speedups

lib/readline/rldefs.h
	- define _POSIX_VDISABLE as _SVR4_VDISABLE if there is a define
	  for the latter and not the former [in 1.14.4]
	- moved defining _rl_stricmp and _rl_strnicmp as strcasecmp and
	  strncasecmp, respectively, here from bind.c, since the functions
	  are now defined in util.c and used in two files

builtins/common.c
	- removed the \n case in double_quote, so a backslash is not added
	  before an existing newline.  The \<newline> pair is removed by
	  the parser before anything else in the shell gets hold of it
	  except within single quotes [in 1.14.4]

				   1/30
				   ----
general.c
	- make sure the string index in canonicalize_pathname never goes
	  < 0 (it can, in some cases, result in `start' being -1, and `i'
	  being set to that) [in 1.14.4]

				    2/1
				    ---
execute_cmd.c
	- fix a typo in a call to `access' in AFS-specific code [in 1.14.4]

				    2/3
				    ---
builtins/shopt.def
	- finally added new `shopt' builtin

builtins/umask.def
	- converted to use builtin_getopt

bashhist.c
	- support for storing literal newlines in the history list when
	  command_oriented_history is enabled, rather than using semicolons

builtins/Makefile
	- changed rule to make a .o file from a .def file to remove the
	  .c file if the compilation fails

				    2/6
				    ---
bashhist.c
	- added new variable `force_append_history' that will force the
	  history list to be appended to the history file at shell exit
	- new function, maybe_append_history, to append any history lines
	  from the current session to the history file.  Used by history -a

builtins/bind.def
	- changed the `-d' option to -p

builtins/set.def
	- added `allenv' as a -o synonym for `set -k'.  Now all of the
	  single-letter shell options have -o equivalents

builtins/shopt.def
	- added -p option to display shell options, like other builtins
	- added `interactive_comments' as a shell option, like set -o

builtins/bind.def, builtins/history.def, builtins/enable.def
	- changed use of multiple variables to hold option flag settings to
	  one variable with bits representing flag values

documentation/bash.1, documentation/features.texi
	- changed the description of the `bind' builtin for the new -p option
	- changed the description of the `set' builtin for the new
	  `-o allenv' option
	- updated the description of the `shopt' builtin

builtins/history.def
	- changed -a option to use maybe_append_history

subst.c
	- changed the substring/subarray code to make negative offsets
	  count backwards from the end of the string or array

builtins/bashgetopt.c
	- added option modifiers `;' (argument is optional) and `#'
	  (argument is optional, but if present must be numeric)

builtins/hash.def
	- converted to use builtin_getopt
	- broke code out into a new function: add_hashed_command

				    2/7
				    ---
builtins/getopt.c
	- changed to save state to avoid relying on `nextchar' staying the
	  same across calls to sh_getopt [in 1.14.4]
	- added a function to restore `nextchar' from this saved state
	  [in 1.14.4]
	- removed some dead code

builtins/getopts.def
	- call function to restore sh_getopt state when parsing explicitly
	  supplied arguments rather than the positional parameters [in 1.14.4]

lib/readline/vi_mode.c
	- fixed an off-by-one error in _rl_vi_done_inserting that put the
	  \0 in vi_insert_buf at offset `len' instead of `len - 1'

lib/readline/complete.c
	- print_filename now filters out control characters and displays
	  them in printable format, rather than relying on the tty driver
	  to do the right thing [in 1.14.4]

				    2/8
				    ---
lib/posixheaders/stdc.h
	- test for each special keyword being defined individually, rather
	  than just testing on `const' [in 1.14.4]

lib/readline/util.c
	- new function _rl_abort_internal; rl_abort just calls this

nojobs.c
	- include error.h for extern function definitions [in 1.14.4]

builtins/ulimit.def
	- include <unistd.h> if HAVE_UNISTD_H is defined
	- use HAVE_LIMITS_H to decide whether or not to include <limits.h>

variables.c, subst.c, builtins/set.def
	- removed special handling of `noclobber' variable

builtins/set.def
	- new function set_shellopts to set up the $SHELLOPTS variable
	  based on the values of the set -o options; `set' calls this
	  function whenever one of the options is changed
	- new function parse_shellopts to take the value of SHELLOPTS and
	  turn on each option found therein
	- new function initialize_shell_options to parse any inherited
	  value of $SHELLOPTS and set up $SHELLOPTS

shell.c
	- call initialize_shell_options at the end of shell_initialize()

execute_cmd.c, general.c
	- moved extract_colon_unit from execute_cmd.c to general.c

execute_cmd.h, general.h
	- moved extern declaration of extract_colon_unit from
	  execute_cmd.h to general.h

documentation/{bash.1,features.texi}
	- documented SHELLOPTS

				   2/18
				   ----
builtins/{shopt,pushd,jobs,umask}.def
	- removed the `longjobs', `longdirs', `pushd_home' and `symbolic_umask'
	  options

lib/readline/{histexpand,histsearch,histfile}.c, lib/readline/histlib.h
	- new files, split off from old history library history.c

lib/readline/history.c, lib/readline/history.h
	- new function clear_history() to clear the history list

lib/readline/doc/hstech.texinfo
	- documented clear_history ()

builtins/pushd.def
	- new function clear_directory_stack() to delete all elements of
	  the dir stack
	- new -c option for `dirs' to clear directory stack
	- new function get_dirstack_index for dirs -N and dirs +N to use
	- new function get_dirstack_element(i, dir) for use by other parts of
	  the shell that want the functionality of dirs -N and dirs +N
	  (dir is 1 for dirs +N, -1 for dirs -N)
	- new function set_dirstack_element(i, dir, val) for use by other
	  parts of the shell to change values in the dirstack (dir is -1
	  for dirs -N, +1 for dirs +N).  Used when assigning to $DIRSTACK.

builtins/history.def
	- new -c option to clear the history list

documentation/bash.1, documentation/features.texi
	- removed no-longer-valid shopt options
	- documented new dirs -c option
	- documented new history -c option
	- documented new \T and \H prompt escape sequences
	- documented new $DIRSTACK dynamic array variable
	- documented the new expand-glob and list-glob readline commands

variables.c
	- set PS4 to its default value of `+ ', so that unsetting it will
	  disable the tracing characters [in 1.14.4]
	- new framework for dynamic array variables -- each place an
	  array index is assigned to, a test is made.  if a dynamic
	  assignment function exists, it is called with args `self',
	  the index being assigned to, and the new value
	- new variable `$DIRSTACK', a dynamic array variable that holds
	  the current contents of the directory stack.  You can even
	  change the stack by assigning to thie variable

shell.c
	- changed indirection_level_string to return the null string if
	  $PS4 is unset or null [in 1.14.4]

parse.y
	- new \H prompt escape for hostname up to first `.'; changed \h
	  to return full hostname (like \w/\W)
	- new \T prompt escape for 12-hour time

bashline.c
	- new readline functions to expand glob patterns and insert or
	  list the expansions (special completion functions)


				   2/20
				   ----
builtins/pushd.def
	- new code for `pushd -n' and `popd -n' to inhibit cd when
	  adding or removing directories from the stack
	- broke functionality off into separate functions for use by the
	  $DIRSTACK manipulation functions

				   2/21
				   ----
lib/readline/kill.c
	- new functions to copy words to the kill ring, backward or
	  forward

lib/readline/readline.h
	- extern declarations for rl_copy_{backward,forward}_word


lib/readline/funmap.c
	- new bindable readline commands: copy-backward-word and
	  copy-forward-word to copy portions of the line to the kill
	  ring without deleting them

documentation/{bash.1,readline.3}, lib/readline/doc/hsuser.texinfo
	- documented the new copy-backward-word and copy-forward-word
	  readline commands

mailcheck.c, config.h
	- the declaration of DEFAULT_MAIL_PATH is now only in config.h
	  and used by mailcheck.c and variables.c.  There is no need to
	  use DEFAULT_MAIL_PATH_LEN; `sizeof' does the job [in 1.14.4]

				   2/22
				   ----
support/mksysdefs
	- changes to fix `RELEASE' if it ends up being set to the empty string
	  [in 1.14.4]
	- check for amdahl UTS [in 1.14.4]
	- check for SGI Irix version 6.x [in 1.14.4]

machines.h
	- new entry for Amdahl UTS [in 1.14.4]
	- changes to the SGI entry for Irix 6.x [in 1.14.4]

				   2/23
				   ----
machines.h
	- changes for BSD/OS 2.0 (M_OS now set to `BSD_OS') [in 1.14.4]

support/mksysdefs
	- change to recognize BSD/OS 2.0 and set SYSDEF to BSDI2 [in 1.14.4]

siglist.h
	- don't declare sys_siglist on BSD/OS 2.0 [in 1.14.4]

				   2/24
				   ----
parse.y
	- if reset_parser is called while the prompt command is being
	  executed because of a syntax error in $PROMPT_COMMAND, an
	  infinite loop results.  set token_to_read back to 0 at the
	  end of execute_prompt_command to stop the looping [in 1.14.4]

				   2/25
				   ----
mailcheck.h
	- new header file for mail-checking and related definitions
	- declaration of DEFAULT_MAIL_PATH is now here

mailcheck.c
	- new function, make_default_mailpath, which constructs a default
	  $MAILPATH string from DEFAULT_MAIL_PATH [in 1.14.4]
	- change remember_mail_dates to call make_default_mailpath
	  [in 1.14.4]

externs.h
	- moved function declarations for functions in mailcheck.c to
	  mailcheck.h

variables.c
	- change initialize_shell_variables to call make_default_mailpath
	  [in 1.14.4]
	- removed some unneeded variables in initialize_shell_variables

				   2/26
				   ----
lib/readline/callback.c
	- new file with readline callback function interface

lib/readline/rlconf.h
	- new READLINE_CALLBACKS define for the readline callback code to
	  be compiled in and available

lib/readline/readline.c
	- broke readline_internal into three functions: readline_internal_setup,
	  readline_internal_charloop, and readline_internal_teardown
	- changes for READLINE_CALLBACKS

lib/readline/readline.h
	- extern declarations for the readline callback code

cpp-Makefile
	- added lib/readline/callback.c to the list of readline files

lib/readline/input.c
	- added a layer of indirection to allow the user to specify the
	  function that reads a character from rl_instream.  The variable
	  name is rl_getc_function, set by default to rl_getc

				   2/27
				   ----
lib/readline/display.c
	- added a variable rl_redisplay_function to allow an application-
	  specified redisplay function, for those apps that want to control
	  redisplay

lib/readline/readline.c
	- extern declarations for rl_getc_function and rl_redisplay_function

lib/readline/{readline,display,isearch,search,parens}.c
	- changed to call through rl_redisplay_function rather than
	  rl_redisplay directly

parse.y
	- try to avoid some work in reset_readline_prompt and prompt_again
	  if the prompt is the empty or null string [in 1.14.4]

lib/readline/readline.c
	- call rl_expand_prompt unconditionally [in 1.14.4]

lib/readline/display.c
	- short-circuit out of rl_expand_prompt if the prompt string is null
	  after clearing out the saved local prompt values.  This allows
	  $PS2 to be set to "" [in 1.14.4]

lib/readline/doc/rltech.texinfo
	- documented the callback code and functions
	- documented rl_getc_function and rl_redisplay_function

lib/readline/{callback,readline,rltty,signals}.c
	- added layer of indirction for terminal prep and deprep, with
	  rl_term_prep_function and rl_term_deprep_function.  These are
	  set by default to rl_prep_terminal and rl_deprep_terminal,
	  respectively

lib/readline/readline.h
	- make rl_term_prep_function and rl_term_deprep_function available
	  to callers

				    3/1
				    ---
lib/readline/complete.c
	- broke the (long, complicated) rl_complete_internal code into a
	  number of separate functions:

		find_completion_word
		gen_completion_matches
		remove_duplicate_matches
		display_matches
		insert_text
		insert_match
		append_to_match
		insert_all_matches

	- made some efficiency improvments to filename_completion_function
	- the completion ignore function is now called no matter what type
	  of completion is being performed (as it should have been all along)

lib/readline/rldefs.h
	- use #defines for the possible values ORed into `found_quote' by
	  the completion code

				    3/2
				    ---
make_cmd.c, general.c
	- moved make_word_array from make_cmd.c to general.c, renamed to
	  word_list_to_argv, extended it to optionally not malloc all of
	  the strings and to reserve space at the start of the array

execute_cmd.c
	- changed to use word_list_to_argv, not mallocing space for the
	  strings

builtins/common.c, builtins/common.h
	- new function make_builtin_argv, which uses word_list_to_argv
	  and reserves 1 slot at the beginning for the command name

builtins/exec.def
	- changed to use word_list_to_argv

builtins/{getopts,test}.def
	- changed to use make_builtin_argv

subst.c
	- new function match_pattern_char, to see if the first char of
	  a string has a chance to match a given pattern (test against
	  the first char of the pattern); used by match_pattern in the
	  MATCH_ANY case

				    3/3
				    ---
jobs.c
	- renamed flush_child to sigchld to capture the functionality better

array.c
	- new function array_pat_subst, to do pattern substitution on each
	  element in an array

array.h
	- extern declaration for array_pat_subst

subst.c
	- new function pat_subst to do pattern matching and substitution on
	  a string
	- new function parameter_brace_pat_subst to implement
	  ${v/[/]pat[/sub]}; calls pat_subst for simple vars,
	  pos_params_pat_subst to do substitution on the positional params,
	  and array_pat_subst for things like ${v[@]/p/r}

subst.h
	- extern declaration for pat_subst so array.c can find it

				    3/6
				    ---
parse.y
	- <>filename now dups filename to file descriptor 0 for both input
	  and output even when not in posix.2 mode

bashline.c
	- add the globbing characters to the list of characters that need
	  to be quoted by filename completion

jobs.h
	- new convenience macros:
		RUNNING, STOPPED, DEADJOB - to test a job's state
		IS_FOREGROUND, IS_NOTIFIED, IS_JOBCONTROL - flags

jobs.c, builtins/{kill,fg_bg}.def
	- changed to use new jobs.h macros

				    3/7
				    ---
array.c, array.h
	- new function dup_array_subrange(a, s, e) to make a new array
	  out of the elements of array A between S and E, inclusive
	- add `quoted' parameters to array_subrange and array_pat_subst
	  to preserve proper quoting of elements when expanding things
	  like "${av[@]/xx/yy}"
	- new function array_quote to quote the members of an array like
	  the functions in subst.c

subst.c
	- pass the quoted flag to array_subrange and array_pat_subst
	- quote_string is no longer static

subst.h
	- extern declaration for quote_string

builtins/hash.def
	- added a -p pathname option to specify a pathname for the command
	  name to be hashed.  With -p, no path search is performed.

lib/readline/histexpand.c
	- broke history_tokenize off into history_tokenize_internal and
	  added two arguments: a character index and a word index.  If
	  the char index is >= 0, the word index will be modified to point
	  into the returned array of strings to the word surrounding that
	  particular character index
	- new function history_find_word(line, ind) to return the word 
	  containing the character at index IND in LINE
	- new variable search_match, found by history_find_word, to hold the
	  word last matched by a !?string? search
	- corrected a problem with the `%' modifier: it should insert the
	  word last matched, not the last search string

				    3/8
				    ---
cpp-Makefile
	- changed INSTALL_PROGRAM and INSTALL_DATA to use support/install.sh
	- changed `install' target to not explicitly save the old version of
	  bash in `bash.old'; let install take care of it

shell.c
	- new static variable `running_under_emacs', set to 1 if the
	  variable `EMACS' is in the startup environment, and to 2 if
	  we're running under the `eterm' terminal emulator
	- send an escape sequence to eterm if running_under_emacs is 2
	  after executing any $PROMPT_COMMAND to tell it the current
	  directory

				    3/9
				    ---
builtins/ulimit.def
	- made getting -u work for systems that have a MAXUPRC define.
	  it still cannot be set without RLIMIT_NPROC

shell.c
	- include trap.h for sig definitions

builtins/common.h, subst.h, general.h, externs.h
	- more extern function declarations

bashhist.c
	- new function, bash_history_disable(), to turn off history and
	  history expansion
	- bash_history_disable now sets history_expansion_inhibited

bashline.h
	- new file with extern declarations from bashline.c

parse.y, bashhist.c, builtins/bind.def, subst.c, sig.c
	- include bashline.h

				   3/10
				   ----
lib/glob/glob.h
	- new file with extern declarations for local glob library

shell.c
	- include glob.h, mailcheck.h

cpp-Makefile
	- changes to dependencies due to mailcheck.h, bashline.h, glob.h

				   3/13
				   ----
execute_cmd.c
	- new function execute_connection to execute commands of type
	  cm_connection
	- new function execute_pipeline, to execute pipelines

lib/readline/rltty.c
	- add a `tty' argument to the set_winsize function/macro, the
	  non-shell version needs it

				   3/14
				   ----
parse.y
	- added \a (bell) and \e (escape) prompt string escape sequences

				   3/16
				   ----
lib/readline/display.c
	- fixed bug in update_line that caused stray characters to be left on
	  lines after the first if characters are deleted so that the first
	  line becomes exactly as long as the screen width [in 1.14.4]

lib/readline/doc-support
	- brought in the GNU getopt because texindex needs it

documentation/Makefile
	- adopted the BSD convention of a suffix of `.0' for formatted
	  manual pages

				   3/17
				   ----
support/inpath
	- a script to find out if a particular command name appears in
	  a directory in $PATH [in 1.14.4]

support/mksysdefs
	- changed to use inpath to find `ranlib' [in 1.14.4]

				   3/18
				   ----
bashline.c
	- include bashline.h
	- removed the DYNAMIC_HISTORY_COMPLETION define; that code is now
	  included unconditionally
	- renamed ETCHOSTS to DEFAULT_HOSTS_FILE; moved definition to
	  bashline.h
	- moved definition of BRACE_COMPLETION to config.h

config.h
	- conditional definition of BRACE_COMPLETION is now here

pathnames.h
	- new file with defines that are absolute pathnames

shell.h
	- include pathnames.h

mailcheck.h
	- def of DEFAULT_MAIL_PATH now moved to pathnames.h

shell.c
	- def of SYS_PROFILE moved to pathnames.h

alias.h
	- removed a bunch of extra definitions

lib/readline/{vi_mode.c,bind.c}
	- removed superfluous STATIC_MALLOC code

variables.c
	- removed SHADOWED_ENV code

				   3/20
				   ----
machines.h
	- don't define USG or USGr3 for linux machines [in 1.14.4]
	- change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
	  compatibility

shell.c
	- change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
	  compatibility

support/mksysdefs, maxpath.h
	- change HAVE_SYS_PARAM to HAVE_SYS_PARAM_H for autoconf
	  compatibility

support/mksysdefs, jobs.h
	- use HAVE_SYS_WAIT_H

machines.h, error.c
	- change HAVE_VFPRINTF to HAVE_VPRINTF for autoconf compatibility

test.c
	- replace UID_T and GID_T with GETGROUPS_T, the size of the elements
	  of the array returned by getgroups

general.c
	- define HAVE_KILLPG if killpg() is present; compile in a replacement
	  killpg if not

machines.h, jobs.c
	- change BSD_GETPGRP to HAVE_BSD_PGRP

sig.c
	- don't call initialize_siglist if HAVE_SYS_SIGLIST is defined, no
	  longer use INITIALIZE_SIGLIST

machines.h, lib/malloc/malloc.c
	- change NO_SBRK_DECL to SBRK_DECLARED

				   3/22
				   ----
machines.h
	- BSD/OS 2.0 does not need INT_GROUPS_ARRAY in SYSDEP_CFLAGS

lib/readline/rldefs.h
	- don't check `Linux'; just include <termcap.h> if HAVE_TERMCAP_H
	  is defined

builtins/command.def
	- changed get_standard_path to use HAVE_CONFSTR 

execute_cmd.c
	- execute_simple_command no longer uses alloca
	- don't check RISC6000 anymore when deciding whether to use
	  #pragma alloca

execute_cmd.c, shell.c
	- check for ultrix instead of Ultrix when calling alloca(0)

jobs.h
	- check HAVE_UNISTD_H to see whether to declare fork, getpid,
	  and getpgrp

builtins/common.c
	- include <signal.h> for NSIG

sig.h
	- don't define SIGABRT as SIGIOT unless SIGIOT is defined

jobs.c
	- check for ultrix instead of Ultrix

				   3/23
				   ----
general.c, general.h
	- new function check_dev_tty, which makes sure we can open
	  /dev/tty

shell.c
	- call check_dev_tty instead of having the code inline

posixstat.h
	- removed references to isc386

general.h
	- code to define one of TERMIOS_TTY_DRIVER, TERMIO_TTY_DRIVER,
	  or NEW_TTY_DRIVER

jobs.c, nojobs.c
	- use the general.h code to define the tty driver types

				   3/24
				   ----
builtins/declare.def
	- new -p option to display variables and their values and attributes
	  `declare -p xxx' displays attribs and value of var `xxx'

builtins/setattr.def
	- new function to display the attributes and value of a particular
	  variable; used by set_or_show_attributes
	- new function to look up a variable by name and show that name's
	  attributes and value

builtins/common.c
	- declarations for new functions in setattr.def

variables.c
	- don't set a default value for MAILPATH in initialize_shell_variables;
	  let remember_mail_dates take care of it [in 1.14.4]

mailcheck.c
	- fixed an off-by-one bug in make_default_mailpath [in 1.14.4]

				   3/28
				   ----
[changes for autoconf-generated config files]

lib/malloc/malloc.c
	- use HAVE_GETPAGESIZE, HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS

trap.c
	- remove tests for USG and USGr4
	- test on HAVE_POSIX_SIGNALS rather than _POSIX_VERSION
	- use MUST_REINSTALL_SIGHANDLERS define to decide whether trap_handler
	  should call signal again

getcwd.c
	- redid the directory includes for autoconf compatibility
	- use HAVE_LSTAT instead of testing for S_ISLNK
	- use STRUCT_DIRENT_HAS_D_INO
	- include memalloc.h for alloca define

general.h
	- cleaned up strchr, strrchr definitions
	- removed tests against USG
	- use HAVE_MEMMOVE instead of MEMMOVE_MISSING

jobs.c
	- use HAVE_WAIT3, MUST_REINSTALL_SIGHANDLERS, GETPGRP_VOID

mailcheck.h
	- removed definition of DEFAULT_MAIL_DIRECTORY; now set by
	  autoconf in config.h

shell.c
	- remove checks on USG, just check for HAVE_GETPW_DECLS
	- use C_ALLOCA define
	- redid the isnetconn() code using HAVE_SYS_SOCKET_H,
	  HAVE_GETPEERNAME, SVR4 and SVR4_2

general.c
	- use HAVE_KILLPG, HAVE_RESTARTABLE_SYSCALLS, HAVE_UNAME,
	  ULIMIT_MAXFDS, HAVE_TIMEVAL, HAVE_TIMES

lib/readline/rldefs.h
	- redid the tty driver definitions using HAVE_TERMIOS_H, etc.
	- don't define anything having to do with signal type

lib/glob/glob.c
	- redid the DIRENT defines and includes
	- redid other includes to remove dependencies on USG and system
	  type (e.g., NeXT)

builtins/times.def
	- changed to use HAVE_GETRUSAGE, HAVE_TIMEVAL, HAVE_TIMES, and
	  the autoconf way to include <sys/time.h> and <time.h>

builtins/ulimit.def
	- changed to use HAVE_GETRLIMIT
	- removed test of USG being defined

siglist.h
	- changed to use SYS_SIGLIST_DECLARED, HAVE_UNDER_SYS_SIGLIST, and
	  HAVE_STRSIGNAL

print_cmd.c
	- use PRINTF_DECLARED

builtins/command.def
	- use HAVE_CONFSTR along with _CS_PATH to get the standard path

execute_cmd.c
	- only compile in execute_shell_script if HAVE_HASH_BANG_EXEC is not
	  defined

nojobs.c
	- use HAVE_SIGINTERRUPT, HAVE_KILLPG, HAVE_POSIX_SIGNALS,
	  MUST_REINSTALL_SIGHANDLERS, HAVE_WAITPID, *_TTY_DRIVER defines

test.c
	- set up a new `getmaxgroups' define, moving the code out of inline
	- eliminate use of GETGROUPS_T

variables.c
	- use CAN_REDEFINE_GETENV

sig.c, sig.h
	- use HAVE_POSIX_SIGNALS, MUST_REINSTALL_SIGHANDLERS

pathnames.h
	- removed the default mail directory defines; now set by autoconf

oslib.c
	- new file, functions from general.c that are unix-version variable

general.h
	- slightly changed function declarations for use by oslib.c

support/bashbug.sh
	- changed @xxx@ to !xxx! for sed substitutions to avoid conflicts
	  with autoconf substitutions in the Makefile
	- added MACHTYPE variable

mailcheck.c
	- changed DEFAULT_MAIL_PATH to DEFAULT_MAIL_DIRECTORY, since that
	  more clearly defines its function

lib/readline/rltty.h
	- new file, to include the correct tty driver #include file

lib/readline/rltty.c
	- include rltty.h

lib/malloc/malloc.c
	- make systems with Posix signals block all signals while malloc
	  is executing

				   3/29
				   ----
input.c
	- use off_t as the type of a seek offset, rather that int or long

variables.c, oslib.c
	- moved `getenv' from variables.c to oslib.c

				   3/31
				   ----
sig.c, sig.h
	- new function, jump_to_top_level, which just calls longjmp with
	  top_level as an argument -- here to isolate calls to longjmp

subst.c
	- replaced calls to longjmp with jump_to_top_level

bashjmp.h
	- new file with setjmp/longjmp defines and declarations

shell.h, nojobs.c
	- include bashjmp.h in place of setjmp.h

shell.c, sig.c, execute_cmd.c, unwind_prot.h, expr.c,
builtins/{return,source}.def
	- change to use new defs in bashjmp.h

subst.c
	- make sure PAT and REP in pattern substitution are run through
	  expand_string_unsplit

builtins/set.def
	- don't try to blindly dereference the value returned by
	  find_flags in set_shellopts

				    4/2
				    ---
aclocal.m4, config.h.in, config.h.top, config.h.bot, configure.in,
support/install.sh, support/config.guess, support/config.sub
	- new files for (now official) autoconf-based configuration

Makefile.in, builtins/Makefile.in,
lib/{doc-support,malloc,glob,termcap,tilde,readline}/Makefile.in
	- new Makefiles for autoconf

[additionally, all source files now include config.h]

				    4/3
				    ---
array.c, array.h
	- index_t --> arrayind_t, because some systems define index_t in
	  <sys/types.h>

				    4/4
				    ---
aclocal.m4
	- fix test for broken dup2

lib/*/Makefile.in
	- make all object files depend on $(BUILD_DIR)/config.h

				    4/5
				    ---
array.c
	- fixed problems in empty_array: need to reset max_index
	  and max_size, and remove the links in the element chain
	  after freeing them

jobs.c
	- new functions to save an array of status values for each
	  foreground job that exits (degenerate case is to have a
	  single-process job exit and have a 1-element array)
	- new function to set a shell array variable `PIPESTATUS'
	  which holds the status values from each member of the
	  last-executed pipeline that spawned children

documentation/bash.1
	- documented $PIPESTATUS

				    4/6
				    ---
configure.in
	- added new --with-afs argument to #define AFS for execute_cmd.c

				   4/10
				   ----
builtins/ulimit.def
	- use sysconf(_SC_CHILD_MAX) to find the maximum number of child
	  proceeses per user if HAVE_SYSCONF and _SC_CHILD_MAX are both
	  defined and RLIMIT_NPROC is not

				   4/12
				   ----
lib/readline/undo.c
	- new variable, local to library, to keep track of the number of
	  `open' undo groups (UNDO_BEGIN without corresponding UNDO_END)
	- new function _rl_fix_last_undo_of_type to modify start and end
	  bounds of last undo record of a specified type

lib/readline/vi_mode.c
	- _rl_vi_done_inserting now calls rl_end_undo_group if the count
	  of unclosed groups is > 0
	- fixed rl_vi_change_to to save an undo record when redoing and
	  to fix the buffer corruption when doing `u' undo after a `.'
	  redo of `C'

				   4/13
				   ----
unwind_prot.h
	- changed to use a union { char *s; int i; } when unwind-protecting
	  integers to force correct alignment on machines where ints and
	  pointers differ in size

lib/readline/readline.c
	- new variable Keymap rl_executing_keymap, which is set to the
	  keymap the last function was invoked out of

lib/readline/bind.c
	- new variable Keymap rl_binding_keymap, which is set to the last
	  keymap a function and key sequence were bound in

				   4/17
				   ----
general.c
	- removed xmalloc, xrealloc, xfree to xmalloc.c

lib/malloc/Makefile.in
	- MALLOC and ALLOCA are both set by autoconf
	- need to provide some empty stub file to make up the library
	  in case neither malloc.c and alloca.c are compiled into the
	  shell

lib/malloc/gmalloc.c
	- new file, GNU libc malloc code

Makefile.in
	- new source file, xmalloc.c, new object file, xmalloc.o

general.h
	- changed type of size argument to xmalloc, xrealloc to `size_t'

configure.in
	- changes for new argument `--with-glibc-malloc' that includes
	  gmalloc.o in libmalloc.a

				   4/18
				   ----
xmalloc.c
	- if malloc or realloc return null, report in the error message
	  how many bytes have been allocated

lib/readline/display.c
	- changed redisplay code to use an array of positions in the visible
	  and invisible lines at which to break lines instead of simply
	  calculating based on the screenwidth and number of invisible
	  characters.  In the future, this will allow newlines embedded in
	  the lines to display to be handled better

[Bash-1.14.4 released to net]

				   4/19
				   ----
lib/readline/signals.c
	- changed last call to signal() to call rl_set_sighandler()

				   4/20
				   ----
lib/readline/display.c
	- changed some ascii-specific code to use CTRL_CHAR and UNCTRL
	- finished up the changes that keep an array of line breaks

shell.h
	- moved #define constants for parameter pattern substitution here
	  from subst.c

subst.c
	- changed the pattern substitution functions to take a `flags'
	  parameter, which subsumes the match type, global replacement
	  flag, and quoted variables
	- changed the pattern substitution functions to handle the `#'
	  and `%' match qualifiers, which anchor the match at the
	  beginning and end of the string, respectively

shell.c
	- moved the code that turns off privileged mode into a function
	  named `disable_priv_mode'
	- if the shell is running setuid or setgid and `-p' is not
	  supplied, turn off privileged mode and reset the effective
	  uid/gid

				   4/21
				   ----
subst.c
	- added a `quoted' paramter to parameter_brace_remove_pattern;
	  Posix.2 says that the pattern is parsed differently if the
	  entire expression is double-quoted
	- `getpattern' now takes a second argument, `quoted'
	- fixed `getpattern' to correctly handles a pattern spec when
	  the whole expression is double-quoted.  Posix.2 says that
	  quote characters inside the pattern spec don't quote any
	  special pattern chars if the whole thing is double-quoted.
	  For example, the `*' in "${foo#'*'}" is not quoted, and the
	  single quotes must appear literally.

Makefile.in
	- add `documentation' as a dependency of `.made'

				   4/24
				   ----
Makefile.in
	- added `installdirs' target that makes bindir, infodir, mandir,
	  and man3dir [in 1.14.5 cpp-Makefile]

				   4/25
				   ----
builtins/fc.def
	- fixed problem with `fc -l' that occurred when fewer than 16 lines
	  were in the history list [in 1.14.5]

				    5/1
				    ---
Makefile.in, {builtins,documentation}/Makefile.in, lib/*/Makefile.in
	- fixed up the various `clean' targets to agree with Gnu coding
	  standards

				    5/2
				    ---
lib/readline/complete.c
	- made insert_all_matches correctly quote each of the filenames
	  inserted into the line, if necessary

config.h.top
	- surround definitions of DEFAULT_PATH_VALUE and STANDARD_UTILS_PATH
	  with #ifndef/#endif to allow them to be overridden from the command
	  line

builtins/set.def
	- changed set -o allenv to set -o keyword for ksh88 compatibility

documentation/{bash.1,features.texi}
	- changed set -o allenv to set -o keyword

builtins/setattr.def
	- added a `nodefs' attribute to set_or_show_attributes,
	  show_var_attributes, and show_name_attributes to inhibit printing
	  of definition as well as name

builtins/declare.def
	- changed calls to set_or_show_attributes, and show_var_attributes
	  accordingly

				    5/3
				    ---
Makefile.in
	- LIBPATH -> LIBSUBDIR

				    5/4
				    ---
lib/readline/bind.c
	- renamed readline variable meta-flag to be input-meta

documentation/bash.1, lib/readline/doc/rluser.texinfo
	- changed meta-flag to input-meta

documentation/Makefile.in
	- use groff -Tascii to convert .1 -> .0

subst.c
	- new function, strip_trailing_ifs_whitespace, does the obvious

builtins/read.def
	- call strip_trailing_ifs_whitespace before assigning last
	  variable to remainder of input string [in 1.14.5]

				    5/5
				    ---
builtins/hashcom.h
	- changed check_dot member of the PATH_DATA struct to flags, and
	  added a HASH_CHKDOT define to replace the check_dot semantics
	- add HASH_RELPATH define for flags value

builtins/hash.def, builtins/common.c
	- instead of xxx->check_dot, use (xxx->flags & HASH_CHKDOT)

builtins/hash.def
	- if the full pathname to which a command is being hashed does
	  not begin with a `/', set the HASH_RELPATH flag for it

builtins/common.c
	- if a hashed filename as HASH_RELPATH set, check ./filename,
	  returning null if that filename is not executable

execute_cmd.c, general.c, execute_cmd.h, general.h
	- moved same_file and check_binary_file from execute_cmd.c to
	  general.c

hashlib.c, Makefile.in
	- renamed hash.c to hashlib.c

hashlib.h, Makefile.in, builtins/Makefile.in, alias.h, variables.h,
execute_cmd.c, hashlib.c, builtins/hashcom.h
	- renamed hash.h to hashlib.h

variables.c, alias.c
	- removed inclusion of `hash.h'; header files already include
	  correct file

Makefile.in
	- new rule to remake all the Makefiles (`make Makefiles')
	- more changes to adhere to GNU coding standards for the various
	  flavors of `clean' targets

				    5/8
				    ---
documentation/Makefile.in
	- use `texi2dvi' to make dvi files rather than tex and texindex
	  [in 1.14.5]
	- don't install `bash_builtins.1' [in 1.14.5]

Makefile.in
	- removed instances of doc-support/texindex

				    5/9
				    ---
make_cmd.c
	- new function make_bare_word, to make a WORD_DESC from a string but
	  not to set any of its flags
	- broke make_word into make_bare_word and make_word_flags
	- fixed a bug in make_word_flags to make backslash-quoting a quoting
	  character work right to not set the W_QUOTED flags

subst.c, array.c, execute_cmd.c
	- call make_bare_word instead of make_word in situations where we
	  don't want the flags set inadvertently

				   5/11
				   ----
subst.c
	- removed special handling of $POSIX_PEDANTIC

				   5/12
				   ----
shell.c
	- broke the code that fetches the uids and gids into a new
	  function, uidget()

subst.c
	- EUID and UID are no longer handled specially, since they're
	  readonly
	- removed sv_uids function
	- merge sv_histfilesize into sv_histsize

variables.c
	- instead of calling sv_uids from initialize_shell_variables,
	  call uidset() instead
	- sv_uids -> uidset with mods to make it faster and avoid an
	  extra call to free, malloc, and itos

bashhist.c
	- call sv_histsize instead of sv_histfilesize

				   5/13
				   ----
pathexp.c
	- moved setup_ignore_patterns here from bashline.c, so GLOBIGNORE
	  works even when readline is compiled out of the shell
	- changed the ignore data structure to a `struct ignorevar',
	  defined in pathexp.h
	- added functions to implement GLOBIGNORE

bashline.c
	- setup_ignore_patterns now in pathexp.c
	- renamed _ignore_names to ignore_completion_names

subst.c
	- new function sv_globignore to be called when GLOBIGNORE changes
	  value

documentation/{bash.1,features.texi}
	- documented GLOBIGNORE

				   5/15
				   ----
documentation/texinfo.tex
	- upgraded to version 2.145 from autoconf-2.3 distribution

				   5/16
				   ----
lib/readline/display.c
	- delicate surgery on rl_redisplay, update_line, and _rl_update_final
	  to convert to using the line breaks array instead of assuming that
	  lines wrap because they're too long and using absolute buffer
	  positioning calculated from the screen width.  Now the `lithist'
	  shopt option works right

lib/readline/complete.c
	- make sure insert_match doesn't double an opening quote character
	  after make_quoted_replacement adds an opening quote [in 1.14.5]
	- make sure append_match doesn't double a closing quote character
	  [in 1.14.5]

quit.h
	- new macros: SETINTERRUPT, CLRINTERRUPT, ADDINTERRUPT, DELINTERRUPT
	  to manipulate the value of interrupt_state

trap.c, sig.c, jobs.c
	- changes to use the new macros from quit.h

jobs.c
	- make an a job that exits due to SIGINT make the shell act as if
	  it received the interrupt itself, but only if SIGINT is not
	  trapped [in 1.14.5]

				   5/18
				   ----
builtins/common.c
	- fix up find_hashed_filename and the HASH_RELPATH code.  still need
	  to use `shopt -s checkhash' to check the hashed pathnames.  could
	  fix this up more to make that unnecessary in the HASH_RELPATH case

subst.c
	- new function get_array_value that does array subscripting for
	  things like aa[1], for use by other parts of the shell like the
	  expression evaluator

expr.c
	- changes to make things like $(( aa[1] + aa[2])) work without
	  using ${aa[1]}

bashhist.c
	- converted the HISTIGNORE code to use the `struct ignorevar'
	  framework, with a callback function histignore_item_func to
	  set the HIGN_EXPAND flag if needed

pathexp.c
	- made the `globignore' variable static
	- redid the code that removes ignored names from the `names' array
	  in ignore_globbed_names to make it more efficient

bashline.c
	- made the `fignore' variable static

				   5/20
				   ----
Makefile.in
	- made the `distclean' target remove the Makefiles in subdirectories
	  created by autoconf

				   5/22
				   ----
builtins/command.def
	- don't allow `command -p' if the shell is restricted

documentation/bash.1
	- documented the restriction on command -p for rbash

				   5/23
				   ----
aclocal.m4
	- add a new macro BASH_CHECK_TYPE, based on AC_CHECK_TYPE, that
	  allows the caller to specify the header files to be included
	  in the test program and provides for a default value to be
	  defined if the type is found in the system files

configure.in
	- check for getrusage and gettimeofday functions/syscalls
	- use BASH_CHECK_TYPE to check for clock_t in sys/types.h and
	  sys/times.h
	- use BASH_CHECK_TYPE to check for sigset_t instead of a special
	  BASH_TYPE_SIGSET_T
	- use BASH_CHECK_TYPE to check for quad_t instead of BASH_QUAD_T
	- new argument --enable-command-timing to compile in the `time'
	  reserved word and command timing

general.c
	- print_time_in_hz takes a `clock_t', not a `time_t'

execute_cmd.c
	- support for timing pipelines with a new function time_command
	- execute_command_internal calls time_command if it is passed a
	  command with the CMD_TIME_PIPELINE bit set in command->flags
	- new functions difftimeval and addtimeval to do arithmetic on
	  timeval structs with overflow

parse.y
	- new production: pipeline_command, used by list1 and simple_list1
	- pipeline_command includes rules to handle `!' and time
	- code to recognize `time' as a reserved word

print_cmd.c
	- new code to print `time ' before a command if the CMD_TIME_PIPELINE
	  flag bit is turned on

builtins/test.def
	- added description of string1 < string2 and string1 > string2 to
	  the long doc

test.c
	- added `<' and `>' string binary operators

documentation/bash.1
	- documented the `time' reserved word and command timing
	- documented the new test `<' and `>' binary operators

documentation/features.texi
	- documented the `time' reserved word and command timing
	- added more to the section detailing the differences between bash
	  and sh
	- added descriptions of LINENO and ENV to the Ksh variables section
	- added description of echo to bash builtins section
	- added PPID, BASH, SHLVL to the Bash variables section

subst.c
	- added a `quoted' parameter to extract_dollar_brace_string; changed
	  all calls to it

				   5/24
				   ----
builtins/let.def
	- wrote code for an `exp' builtin that treats all of its arguments
	  as an expression, concatenates them like `eval', and runs the
	  expression evaluator

expr.c
	- added code to do the Posix.2 conditional operator: expr?expr:expr
	- added a `noeval' flag to suppress evaluation.  currently it only
	  suppresses assignment
	- added code to the && and || functions so that evaluation is
	  suppressed in the part of the statement that is not supposed to
	  be executed (a && b: set noeval if a is false; a || b; set
	  noeval if a is true)

				   5/25
				   ----
documentation/{bash.1,features.texi}
	- documented new `expr?expr:expr' conditional expression syntax
	  now arithmetic evaluation is Posix.2-conformant

lib/readline/readline.c
	- added several more locale names to the list of legal $LANG
	  values

subst.c
	- fixed a bug in parameter_brace_patsub: when replacing a string 
	  with nothing, rep was set to "", and the code attempted to
	  free "", which the GNU malloc upchucked on

bashhist.c
	- just add a line to the history if command_oriented_history is
	  set to 1 and the current line in the command is > 1; don't
	  even bother checking history_ignore

parse.y
	- new variable `two_tokens_ago' to remember the token read before
	  `token_before_that'
	- fix to history_delimiting_chars to make sure that no semicolon
	  is added after `()' (assume its a function definition), but that
	  a semicolon is added after other `)' (assume its a parenthesized
	  command)

				   5/31
				   ----
tests/run-all
	- put `.' first in $PATH and don't export ENV
	- set THIS_SH to ../bash if it's unset

lib/readline/complete.c
	- only try to find a word break character in rl_complete_internal
	  if we hit the end of the input string and found_quote == 0
	  (the opening quote could have been the last character in the
	  string)

				    6/2
				    ---
subst.c
	- changed make_quoted_char to return CTLNUL\0 if passed a \0
	  (this is what quote_string does, too) [in 1.14.5]
	- changed list_string to use make_quoted_char when adding a quoted
	  null argument due to a null field when ifs != ' \t\n'
	- added an `expandpat' argument to getpattern, which tells it to
	  call string_extract_double_quoted if the pattern expression is
	  double-quoted, and changed all calls to initially pass `1' as
	  its value

jobs.c
	- changed start_job so that an attempt to start a job marked as
	  JDEAD elicits an error message [in 1.14.5]

Makefile.in
	- fixed `distclean' target so that it removes Makefiles in subdirs
	  *after* descending into them to do submakes (!)
	- fixed `realclean' target to remove everything that distclean does

				    6/5
				    ---
builtins/declare.def
	- fixed a typo that made `declare +r var' turn off read-only status
	  for a variable [in 1.14.5]
	- added -p option to short doc and long doc
	- added code to allow `declare -f -options name' to set and unset
	  attributes for the named functions.  Only when no other options
	  are supplied will the named and value of the function be displayed
	  [in 1.14.5]

variables.h
	- new SETVARATTR macro to set or unset attributes for a specific
	  SHELL_VAR *

builtins/setattr.def
	- use SETVARATTR

				    6/7
				    ---
execute_cmd.c
	- moved the retrieval of $PS3 inside the loop in execute_select_command
	  so that PS3 can be modified in the select command's body
	  [in 1.14.5]

execute_cmd.c
	- changed execute_builtin and execute_function to not set
	  builtin_env and function_env, respectively, to NULL if there is
	  no temporary env.  This makes the temp env persist across calls
	  to functions from other functions [in 1.14.5]

configure.in
	- Linux needs LOCAL_LDFLAGS set to -rdynamic

				    6/8
				    ---
general.c
	- canonicalize_pathname should not attempt to interpret backslash
	  quoting `/', since Unix doesn't really allow it [in 1.14.5]

bashline.c
	- added `\', `!', and `)' to the list of characters which
	  cause filenames to be quoted
	- changed bash_quote_filename to use any of the three shell
	  quoting styles based on the value of a variable,
	  completion_quoting_style
	- if *qcp is not 0 when passed to bash_quote_filename, adjust the
	  type of completion we're doing based on its value (i.e.,
	  *qcp == '"' forces double quoting, *qcp == '\'' forces single)
	- bash_quote_filename now leaves the quotes intact in the filename
	  it returns.  The readline completion code takes care of avoiding
	  doubled open quotes
	- if a filename containing a `!' is passed to bash_quote_filename
	  without an opening quote character, and we are performing history
	  expansion, use single quoting as the quoting style

bashhist.c
	- changed bash_history_disable to not call bash_history_reinit(0),
	  but do what it needs to directly
	- new function bash_history_enable
	- make history_expansion_inhibited exist only if BANG_HISTORY
	  is defined

bashhist.h
	- extern declaration for bash_history_enable

lib/readline/complete.c
	- make make_quoted_replacement set should_quote to 1 if the quote
	  character is `'' as well as if it's `"'

test.c
	- added the csh-like `=~' and `!~' pattern-matching binary operators
	  which match the string on the lhs against the shell pattern on
	  the rhs.  PATTERN_MATCHING must be defined for this to work; it is
	  undefined and undocumented by default

jobs.c
	- broke the code that gets the new window size and sets $LINES and
	  $COLUMNS out of sigwinch_sighandler into a new function,
	  get_window_size, which sigwinch_sighandler calls

				   6/12
				   ----
parse.y
	- new function, pop_expansion, to remove the top string on the
	  expanded token stack
	- renamed save_expansion to push_expansion

lib/readline/complete.c
	- fixed a bug in find_completion_word that tested found_quote
	  instead of quote_char when trying to decide if we have an unclosed
	  quoted string [in 1.14.6]

				   6/26
				   ----
subst.c
	- fixed expand_word_internal to remove all traces of $*, even if
	  it's quoted, if there are no positional parameters and there are
	  other characters in the expansion

bashline.c
	- don't attempt hostname completion if multiple consecutive `@'
	  characters appear

				   6/27
				   ----
shell.c
	- initialize top_level early, and exit if a longjmp sends us there
	  before we reinitialize

subst.c
	- more fixes to expansion of quoted $* when no positional parameters
	- broke the code that assigns a value to an array element (and parses
	  the array element reference) into a new function,
	  do_array_element_assignment

builtins/read.def
	- new function, bind_read_variable, to allow binding simple variables
	  and array elements to strings read (uses do_array_element_assignment)
	- changed occurrences of bind_variable to bind_read_variable where
	  it matters

variables.c
	- tentative change to bind_variable to make x=y the same as x[0]=y
	  if x is already an array variable.  This works for `read' as well.
	  This is what ksh does.

				   6/28
				   ----
alias.h
	- added a `flags' member to the ASSOC struct and renamed it to
	  `alias_t'

alias.c, bashline.c, builtins/alias.def, builtins/type.def
	- changed ASSOC to alias_t

alias.c
	- changed add_alias to set the AL_EXPANDNEXT flag when the alias is
	  inserted into the hash table

parse.y
	- added a third parameter to push_string: a pointer to the alias_t
	  that is being expanded
	- push_string marks the alias it's passed as being expanded
	  (AL_BEINGEXPANDED)
	- pop_string marks the alias being popped as no longer being
	  expanded
	- changed shell_getc to defer popping an alias expansion until
	  the parser has had a chance to catch up, since the parser reads
	  ahead and would cause the expansion to be popped before it
	  fully parsed the expanded string
	- changed alias_expand_word to check the AL_BEINGEXPANDED flag
	  instead of the expanded_token_stack when checking whether an
	  alias is already being expanded

oslib.c
	- make the definition of bzero be surrounded by #ifdef HAVE_BZERO
	  rather than lumping it in with bcopy

configure.in
	- add a test for bzero

config.h.in
	- add a template for HAVE_BZERO

				    7/3
				    ---
builtins/set.def
	- added new meaning for `set +o' without options, as per the latest
	  draft of Posix.2.  It means to list -o options as a series of set
	  commands to recreate the current settings

documentation/bash.1
	- augmented description of the `set' builtin

				    7/6
				    ---
jobs.c
	- make sure that temp_handler is not set to SIG_DFL before calling
	  it from waitchld

builtins/cd.def
	- rewrote cd_builtin to make the code flow clearer
	- broke full directory name construction out into a separate
	  function: mkpath
	- cd_builtin now tests that a directory constructed from a $CDPATH
	  entry is actually a directory before trying to chdir to it
	- added an error message if $HOME is not set
	- added a descriptive error message if `cd -' used and OLDPWD unset
	- changed the error messages to use builtin_error, not file_error
	- moved the code at the bind_and_exit label into a function,
	  bindpwd (no_symlinks)
	- Posix.2 says that when using $CDPATH, the resultant value of PWD
	  should have no symlinks

				    7/7
				    ---
input.c
	- if fd_to_buffered_stream fails in some way and returns a NULL
	  buffered stream, with_input_from_buffered_stream uses a function
	  that does nothing but return EOF as the `getter'.  This keeps
	  the shell from crashing if invoked with fd 0 closed

subst.c
	- made the `quoted' parameter to expand_word_internal into a flags
	  word with flag values defined in shell.h.  Each place where
	  `quoted' is tested for a non-zero value was changed to test
	  (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 instead

mailcheck.c, shell.c, parse.y
	- change calls to the expand_string* functions to pass an explicit
	  Q_DOUBLE_QUOTES where appropriate

				    7/9
				    ---
subst.c
	- getpattern now passes Q_NOQUOTE to expand_word_internal, indicating
	  that quotes in the pattern spec are not to be treated specially

				   7/12
				   ----
jobs.c
	- fixed up the MUST_UNBLOCK_CHILD code in wait_for so that it now
	  unblocks all signals and sets the signal handler for SIGCHLD to
	  SIG_DFL.  pre-v4 SCO machines seem to require this [in 1.14.5]

[Bash-1.14.5 released to net 7/16]

				   7/17
				   ----
documentation/features.texi
	- changed the Bourne Shell builtins section to have the same format
	  as the bash builtins section, with usage synopses
	- added a section on the restricted shell

				   7/18
				   ----
documentation/features.texi
	- changed the name of this document to the Bash Reference Manual
	- added sections on POSIX mode and restricted shell

lib/readline/doc/hsuser.texinfo
	- added the text from the bash manual page about the bash history
	  facilities if BashFeatures is set

				   7/19
				   ----
documentation/features.texi
	- added more stuff to the bash basics section

lib/readline/doc/rluser.texinfo
	- added a sample inputrc file

				   7/20
				   ----
documentation/features.texi
	- added section on shell expansions to bash basics section

builtins/Makefile.in, lib/glob/Makefile.in, lib/malloc/Makefile.in,
lib/readline/Makefile.in, lib/termcap/Makefile.in, lib/tilde/Makefile.in
	- ar is now called with flags `cr' when building libraries

				   7/21
				   ----
lib/readline/complete.c
	- fixed a bug in find_completion_word that resulted in the found_quote
	  flag and the delimiter character not being passed back to the
	  caller (tested (*fp) instead of (fp) before assigning found_quote;
	  similarly for dp).  With this fix, the filename dequoting function
	  is properly called

				   7/25
				   ----
general.c
	- renamed bash_tilde_expand to bash_tilde_expansion_failure_hook
	- new function, bash_tilde_expand, that just sets interrupt_immediately
	  and calls tilde_expand, returning what tilde_expand returns

subst.c, general.c, shell.c, execute_cmd.c, variables.c, bashline.c,
builtins/cd.def
	- changed calls to tilde_expand to calls to bash_tilde_expand instead

				   7/27
				   ----
builtins/set.def
	- added a -o history option to enable and disable command history
	  saving.  This uses bash_history_enable() and bash_history_disable()
	  It's keyed off of remember_on_history.  With this, shell scripts 
	  can use the command history

bashhist.c
	- bash_history_enable now calls sv_history_control and sv_histignore

builtins/fc.def
	- if history_list() returns a null pointer, immediately return
	  [in 1.14.6]

documentation/{bash.1,features.texi}, lib/readline/doc/hsuser.texinfo
	- added a description of the `set -o history' option and changed
	  text to refer to it rather than strictly interactive shells

				    8/1
				    ---
variables.c
	- new builtin variable $HOSTNAME, initialized to current_host_name
	  as set in shell.c

documentation/bash.1, documentation/features.texi
	- documented $HOSTNAME

				    8/3
				    ---
support/texi2html
	- new program, a texinfo-html converter

documentation/Makefile.in
	- added directives to produce features.html from features.texi

MANIFEST.doc
	- added features.html and features_toc.html to the doc distribution

				   8/10
				   ----
lib/readline/bind.c
	- new functions rl_variable_dumper and rl_dump_variables to print
	  readline variables and their values to rl_outstream
	- new functions rl_get_keymap_name and rl_get_keymap_name_from_edit_mode
	  to get the name of the current keymap for the variable dumper

lib/readline/readline.h
	- extern declarations for rl_variable_dumper, rl_dump_variables, and
	  rl_get_keymap_name

builtins/bind.def
	- added -V flag to print variable names and bindings
	- added -P flag to print variable names and bindings in the syntax
	  of the inputrc file

lib/readline/funmap.c
	- added new bindable `dump-variables' readline command

documentation/{bash.{1,html},readline.3,features.html},
lib/readline/doc/rluser.texinfo
	- documented new `dump-variables' readline command

documentation/{bash.{1,html},features.{texi,html}
	- documented new bind -P and -V options

documentation/bashbug.1
	- new manual page

documentation/Makefile.in
	- changes to build and install bashbug.1

				   8/15
				   ----
print_cmd.c
	- new function `xprintf' that just calls vfprintf(stdout, ...)
	  to avoid having to declare printf

parse.y
	- slight change in how read_token_word computes `all_digits'

				   8/21
				   ----

subst.c
	- new function dequote_escapes to remove CTLESC escaping
	  CTLESC and CTLNUL in a string, returning a new string

				   8/25
				   ----
shell.c
	- execute the file SYS_BASHRC for interactive shells if SYS_BASHRC
	  is defined, before executing ~/.bashrc

config.h.top
	- add a dummy commented definition for SYS_BASHRC, defaulting to
	  /etc/bash.bashrc

lib/readline/input.c
	- added code to call select() in rl_gather_tyi() and return
	  immediately if it indicates that there is nothing to read on
	  the readline input fd (#ifdef HAVE_SELECT)

lib/posixheaders/posixdir.h
	- new file to localize the <dirent.h>/<sys/dir.h> and dirent/direct
	  mess

posixdir.h, lib/readline/posixdir.h
	- symlinks to lib/posixheaders/posixdir.h

lib/readline/rldefs.h
	- removed the posix dir includes and defines

lib/readline/complete.c, getcwd.c
	- include posixdir.h rather than having the code inline

builtins/cd.def
	- new code to do spelling correction on the directory name
	  modified from patch sent by Neil Russell (caret@c-side.com)

				   8/29
				   ----
builtins/shopt.def
	- new option `cdspell' to toggle cd directory name spelling
	  correction

documentation/{bash.{1,html},features.texi}
	- documented new shopt `cdspell' option

				    9/5
				    ---
subst.c
	- $'' should expand to the same thing as '' (a quoted null string)

shell.h
	- changed CTLNUL to '\177'; some scripts use ^B for things like IFS
	  [in 1.14.6]

				    9/7
				    ---
support/config.guess
	- added code to identify a PPC running Solaris 2

doc
	- new directory replacing documentation

Makefile.in, MANIFEST, MANIFEST.doc, configure.in
	- replaced `documentation' with `doc'

				    9/8
				    ---
lib/readline/display.c
	- fixed the code in _rl_update_final that decides whether or not the
	  cursor is at character position 0 on an otherwise-empty line and
	  adjusts _rl_vis_botlin accordingly

				   9/13
				   ----
general.c
	- fixed canonicalize_pathname to make sure that intermediate
	  results correspond to directories before blindly chopping
	  off the last component when we see a `..'.  This fixes the
	  `cd ../.../..' being equivalent to `cd ..' problem

subst.c
	- fixed make_named_pipe so that mkfifo is called with mode 0600
	  for security reasons [in 1.14.6]
	- changed the /dev/fd version of add_fifo_list to zero out new
	  entries to the fifo_list when it resizes it larger [in 1.14.6]
	- changed make_dev_fd_filename to use DEV_FD_PREFIX

aclocal.m4
	- changed BASH_HAVE_DEV_FD to check for /proc/self/fd and define
	  DEV_FD_PREFIX to either "/dev/fd/" or "/proc/self/fd/" as
	  appropriate

				   9/14
				   ----
lib/readline/display.c
	- when displaying the first line of a multiline prompt, make sure
	  that the final \n is followed by a \r (outputting one if necessary)
	  so that we know we are starting at column 0

variables.h
	- new attribute: att_local

variables.c
	- changed make_local_variable to set the att_local attribute
	- changed makunbound to just make variables marked as `local' in
	  the current context invisible.  This makes the local variable
	  persist throughout the function even if it is unset, so a
	  subsequent assignment preserves the `local' attribute
	- changed kill_all_local_variables to unset the att_local attribute
	  before calling makunbound

				   9/18
				   ----
lib/readline/complete.c
	- make sure the cursor is on the last line of a possibly-multiple-
	  line command line before listing the completions in
	  display_matches

				   9/19
				   ----
braces.c
	- fixed the non-SHELL case in brace_gobbler so the loop exits when
	  it should

lib/readline/bind.c, lib/readline/readline.h
	- added functions to dump key sequences bound to macros and their
	  values

builtins/bind.def
	- added -S and -s options to dump the readline macros and their values
	- changed the options so that -p and -P dump functions, -v and -V
	  dump variables, and -s and -S dump macros (s for string)

doc/{bash.{1,html},readline.3,features.texi}, lib/readline/doc/rluser.texinfo
	- added documentation for the new `bind' options
	- added documentation for the new readline functions to dump macros
	  and the key sequences that output them

				   9/22
				   ----
print_cmd.c
	- new function xtrace_print_word_list (WORD_LIST *) to print the
	  words of a simple command when set -x is on.  This prints ''
	  when it encounters an empty string

externs.h
	- new extern declaration for xtrace_print_word_list

execute_cmd.c
	- call xtrace_print_word_list in execute_simple_command

				   9/25
				   ----
builtins/getopts.def
	- make sure that the loop counter stops at 10 when stepping through
	  the dollar_vars array to count the number of positional parameters
	  [in 1.14.6]

				   9/30
				   ----
lib/readline/histsearch.c
	- fixed history_search_internal to bail immediately if it gets a
	  null or empty search string.  This fixes the !? core dumps.
	  [in 1.14.6]

				   10/3
				   ----
lib/readline/histexpand.c
	- if there is a null string given with a !? search specifier, use
	  a previous search string if one exists, else fail immediately

trap.c
	- made run_exit_trap preserve $? around the call to execute the
	  trap string, unless the trap string contains an `exit'
	  command, in which case it can set the shell's exit status
	  [in 1.14.6]

	  In other words:

		touch /tmp/z
		trap 'rm /tmp/z ; exit 5' 0
		exit 1

	  exits with status 5; while

		touch /tmp/z
		trap 'rm /tmp/z' 0
		exit 1

	  exits with status 1

subst.c, parse.y
	- moved the $'...' code from subst.c to parse.y, more like ksh
	  does it

doc/bash.1, doc/bash.html, doc/features.texi
	- moved the description of $'...' from the expansion section to
	  the quoting section

				   10/4
				   ----
command.h
	- added a `line' member to the function struct for the source line
	  the function definition starts on

make_cmd.c
	- initialize the `line' member in Function_def to 0
	- make_function_def takes a third parameter telling which line the
	  function definition started on and a fourth telling which line
	  the function body started on

make_cmd.h
	- changed prototype for make_function_def

parse.y
	- new variable `function_dstart', set by read_token and read_token_word
	  to keep track of where a function definition begins
	- new variable `function_bstart' to keep track of where function
	  body begins
	- pass function_dstart and function_bstart to make_function_def
	- new function strtrans to do the $"..." locale-specific translation
	  of `...'
	- call strtrans() to translate $"string".  The translated string is
	  double-quoted

doc/bash.{1,html}
	- updated the description of LINENO now that line numbers within
	  functions are correct

configure.in
	- look for the `gettext' library function

config.h.in
	- define HAVE_GETTEXT if gettext(3) exists in a findable library

				   10/5
				   ----
builtins/common.c
	- changed backslash_quote so that `#' is only quoted at the start
	  of a word
	- new function contains_shell_metas returns 1 if the argument
	  string contains one or more shell meta-characters that require
	  quoting

builtins/common.h
	- extern declaration for contains_shell_metas

print_cmd.c
	- changed xtrace_print_word_list to print words containing
	  shell metacharacters within single quotes

lib/termcap
	- upgraded to GNU termcap version 1.3

				   10/9
				   ----
lib/readline/readline.c
	- call setlocale(LC_CTYPE, ...) after finding a legal value for
	  one of LC_ALL, LC_CTYPE, or LANG

				   10/11
				   -----
lib/readline/search.c
	- make rl_history_search_internal just do previous-history or
	  next-history as appropriate when given a null search string
	  (rl_point == 0)

				   10/24
				   -----
subst.c
	- fixed an off-by-one error in char_is_quoted that skipped a
	  characters after calling skip_single_quoted or skip_double_quoted
	  [in 1.14.6]
	- fixed an off-by-one error in string_extract_verbatim so it
	  leaves *sindex at the separator character if the separator
	  character is "'" [in 1.14.6]

				   10/27
				   -----
parse.y
	- in CHECK_FOR_RESERVED_WORD, make sure that reading a `}'
	  decrements open_brace_awaiting_satisfaction if it is non-zero
	  [in 1.14.6]

shell.c
	- don't run the shell startup files if the shell is running
	  setuid
	- don't source $ENV if the shell is running setuid

variables.c
	- new parameter to initialize_shell_variables: no_functions.  If
	  non-zero, don't import functions from the environment

variables.h
	- change to function prototype for initialize_shell_variables

lib/readline/complete.c
	- fix for the code that decides whether or not a char is quoted for
	  applications that don't supply a value for rl_char_is_quoted_p
	- fixed insert_match to not remove a user-supplied opening quote
	  character if make_quoted_replacement does not return a string
	  beginning with that quote character

				   11/2
				   ----
general.c
	- new function ungetc_with_restart that handles the local buffering
	  [in 1.14.6]

parse.y
	- changed yy_stream_unget to call ungetc_with_restart if the OS
	  does not have restartable syscalls [in 1.14.6]

				   11/3
				   ----
bashline.c
	- rewrote _ignore_completion_names to actually free and remove
	  names from the array if more than one names in the array
	  passed is acceptable, instead of just bailing [in 1.14.6]

				   11/7
				   ----
bashline.c
	- if no matches are acceptable to _ignore_completion_names,
	  free the entries in NAMES, set NAMES[0] == 0, and let the
	  caller clean up [in 1.14.6]
	- fixed a problem with backslash-quoted characters in
	  bash_dequote_filename that caused the character after the
	  backslash to be interpreted
	- bash_dequote_filename now takes a quote_char parameter that,
	  if non-zero, gives the quote character (`'' or `"') that
	  delimits the filename.  Used to initialize the quoting state

lib/readline/complete.c
	- if the completion ignore function returns with MATCHES == 0
	  or MATCHES[0] == 0, ring the bell and quit the completion
	  attempt [in 1.14.6]
	- pass quote_char to gen_completion_matches so it can pass it
	  along to the app-specific filename dequoting function
	- have gen_completion_matches pass quote_char to whatever function
	  is pointed to by rl_filename_dequoting_function

pathexp.c
	- rewrote ignore_globbed_names to be more like _ignore_completion_names

lib/readline/doc/rltech.texinfo
	- updated documentation for rl_filename_dequoting_function

				   11/10
				   -----
subst.c
	- fixed remove_quoted_nulls so that it is now a full function that
	  removes unquoted CTLNUL chars from the string it is passed
	  [in 1.14.6]
	- fixed expand_word_internal to avoid generating some unneeded
	  quoted nulls (if the string is partially quoted, note that we
	  have seen a quoted null and add one if the rest of the string
	  doesn't expand to anything)

				   11/13
				   -----
variables.c
	- bind HOSTTYPE, OSTYPE, and HOSTNAME unconditionally

pathexp.c
	- new function quote_globbing_chars, adds `\' before globbing
	  chars in its string argument, returns new string

pathexp.h
	- extern declaration for quote_globbing_chars

bashhist.c
	- if the previous line contains globbing chars, run it through
	  quote_globbing_chars before trying to match.  This affects
	  only HISTIGNORE patterns containing `&'

				   11/14
				   -----
bashhist.c
	- if the history line to be added contains globbing chars, quote
	  them with backslashes by calling quote_globbing_chars in
	  history_should_ignore before comparing them against the
	  patterns in HISTIGNORE

bashline.c
	- make sure that we erase the current readline line after running
	  fc on it and executing the resultant commands in
	  vi_edit_and_execute_command, so the original readline line
	  doesn't get returned [in 1.14.6]

jobs.h
	- added a new job listing format: JLIST_NONINTERACTIVE -- like
	  JLIST_LONG, but does not print the job number

jobs.c
	- added code to pretty_print_job to handle JLIST_NONINTERACTIVE
	- call notify_and_cleanup() from wait_for even if the shell is
	  running a script (interactive_shell == 0)
	- changed notify_and_cleanup to call notify_of_job_status if
	  interactive or interactive_shell == 0, so scripts report
	  about jobs they run
	- changed notify_of_job_status to call pretty_print_job with a
	  JLIST_NONINTERACTIVE format if interactive_shell is 0 and a
	  job is marked JDEAD, after printing the script name and line
	  number.  This message is printed only if the job dies due to
	  a fatal signal

support/mkversion.c
	- added support for a `-status status' argument to set the
	  `release status' of the shell (alpha, beta, or release).  It
	  defines `RELSTATUS' in version.h and changes the definition
	  of SCCSVERSION, if present

Makefile.in
	- set a RELSTATUS variable that is included when printing the build
	  message and passed to mkversion with the -status option
	- make RELSTATUS one of the variables sed sets when it creates
	  bashbug from support/bashbug.sh

version.c
	- added a `release_status' variable that's set to RELSTATUS if
	  it's defined

support/bashbug.sh
	- added the `RELSTATUS' variable to the report with heading
	  `Release Status'
	- set the bug address to chet@po.cwru.edu if the release status
	  is `alpha' or `beta'

				   11/15
				   -----

shell.c, execute_cmd.c
	- new variable expand_aliases to control alias expansion.  For now,
	  this is set to the same value as interactive_shell when that is
	  set

parse.y
	- perform alias expansion if expand_aliases is non-zero rather than
	  checking the value of interactive_shell

				   11/16
				   -----
builtins/shopt.def
	- new option `expand_aliases' to control the value of expand_aliases

doc/bash.1, doc/bash.html
	- updated the description of `shopt' with the `expand_aliases' option

				   11/28
				   -----
bashline.c
	- if there is only one completion in _ignore_completion_names, see
	  if it is acceptable and return right away [in 1.14.6]

configure.in
	- change to define WAITPID_BROKEN on SCO 3.2v5

				   12/6
				   ----
parse.y
	- call prompt_again in read_token_word if a newline is read in an
	  interactive shell and bash_input.type is either st_stdin or
	  st_stream
	- remove superfluous call to reset_readline_prompt in yy_readline_get

				   12/7
				   ----
parse.y
	- combine delimiters, delimiter_depth, and delimiter_space into a
	  single structure of type `struct dstack'
	- replace all references to delimiter* with dstack.delimiter*
	- include parser.h for struct dstack
	- new define pop_delimiter(), analogous to push_delimiter
	- current_delimiter, push_delimiter, and pop_delimiter defines now
	  include the delimiter stack struct as the first parameter

parser.h
	- now includes definition of struct dstack

bashline.c
	- include parser.h for struct dstack
	- refer to dstack.delimiter_depth instead of delimiter_depth

				   12/12
				   -----
execute_cmd.c
	- before doing a longjmp(subshell_top_level,...) when executing a
	  shell script without a leading #!, set history_lines_this_session
	  to 0 to forget about the history and not save it on an exec
	  (we don't free the memory with clear_history(), though -- that
	  would slow bash down)

				   12/14
				   -----
jobs.c, nojobs.c
	- cause the sigwinch handling code to be compiled into the shell
	  even if READLINE is defined
	- new functions: set_sigwinch_handler and unset_sigwith_handler
	  to enable and disable catching of SIGWINCH and adjusting $LINES
	  and $COLUMNS
	- changed initialize_job_signals to install a signal handler for
	  SIGWINCH with set_sigwinch_handler

jobs.h
	- extern declarations for set_sigwinch_handler and
	  unset_sigwinch_handler

				   12/20
				   -----
doc/bash.{1,html}, doc/readline.3, lib/readline/doc/rluser.texinfo
	- documented the readline `visible-stats' variable

				   12/21
				   -----
trap.c
	- new global variable `running_trap' incremented and decremented
	  around running a trap command in _run_trap_internal

execute_cmd.c
	- new variable currently_executing_command, set to the COMMAND *
	  currently being processed by execute_command_internal, unless a
	  trap command is being run (running_trap != 0)
	- new function executing_line_number, which returns the line number
	  of the currently executing command (which may not be the same as
	  line_number)
	- don't run the debug trap if it was not set before the current
	  simple command was executed, since we don't want to run it after
	  the trap command that sets the DEBUG trap

variables.c
	- new function assign_lineno, to assign a value to line_number
	  when LINENO is set
	- changed get_lineno to call executing_line_number() rather than
	  returning line_number

parse.y
	- new argument for push_stream telling it whether or not to reset
	  line_number to 0

builtins/common.c
	- change to parse_and_execute to call push_stream with an argument

				   12/29
				   -----
subst.c
	- set subshell_environment in command_substitute and process_substitute
	  for the child process

				    1/2
				    ---
trap.c
	- made decode_signal recognize signal names case insensitively

shell.c
	- make the shell exit on a longjmp (DISCARD, ...) if
	  subshell_environment is non-zero

				   1/16
				   ----
lib/readline/histexpand.c
	- let the `!' in ${!xxx} pass through without error

shell.c
	- new --help long option
	- new function show_shell_usage() for use by --help

				   1/19
				   ----
parse.y
	- changes to shell_getc to make sure that lines consisting of only a
	  newline get added to the history correctly when they are part of
	  a quoted string

				   1/24
				   ----
aclocal.m4, configure.in
	- added a check for -lsocket (and -lnsl) to fix solaris problems
	  with isnetconn()

shell.c
	- rearranged the code in isnetconn to check for a socket using
	  getpeername() first, before any SVR4 or SVR4.2-specific checks
	- added checks for ttys (isatty) and FIFOs (S_ISFIFO) to the
	  SVR4/SVR4.2 case of isnetconn()

general.h
	- new macro RESIZE_MALLOCED_BUFFER to check and see whether there
	  is enough room in a string to add a given number of characters
	  and to resize it if there is not

				   1/25
				   ----
parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c
	- use RESIZE_MALLOCED_BUFFER where appropriate

				   1/26
				   ----
support/config.{guess,sub}
	- merged in latest changes from GNU master copies

				   1/30
				   ----

jobs.c
	- make sure to freeze the jobs list when calling a trap handler
	  for SIGINT
	- added code to waitchld() so that a SIGINT trap handler is called
	  if the shell is running a shell script and a SIGINT is received
	  while waiting for a foreground job, even if that job does not
	  die from the SIGINT

jobs.c, nojobs.c
	- make get_tty_state reset $LINES and $COLUMNS after each process
	  exits if the variable `check_window_size' is non-zero

builtins/shopt.def
	- new variable `checkwinsize', which controls the value of
	  check_window_size

doc/{bash.{1,html},features.texi}
	- updated description of `shopt' to include `checkwinsize'

execute_cmd.c, lib/readline,complete.c
	- some changes from the GNU WIN32 project for the bash port to
	  Windows NT and Windows 95

bashwait.h
	- new file, with `union wait' defines from jobs.h

jobs.h
	- include `bashwait.h' if <sys/wait.h> is not present and
	  _POSIX_VERSION is not defined
	- removed define of pid_t for non-Posix systems; now provided by
	  autoconf in config.h

				   1/31
				   ----
parse.y
	- new temporary delimiter stack, used when decoding prompt strings.
	  This is needed so command substitutions in the prompt strings
	  (especially PS2) don't screw up the parser's quoting state

lib/readline/complete.c
	- new variable for readline library users:
	  rl_completion_append_character.  The value of this variable is
	  the character appended to a completion when it occurs at the
	  end of a line.  Setting it to '\0' causes nothing to be
	  appended.

lib/readline/readline.h
	- declaration for rl_completion_append_character

lib/readline/doc/rltech.texinfo
	- documented rl_completion_append_character as int variable available
	  to library users

subst.c
	- new code for maintaining a string array saying which words in the
	  output of expand_word_list_internal are the result of globbing

variables.c
	- new function put_gnu_argv_flags_into_env (pid, flags_string)
	  to put Roland's GNU getopt helper variable into the export_env

execute_cmd.c
	- in execute_disk_command, after forking the child, put the GNU
	  getopt helper environment variable into the child's export_env

unwind_prot.c
	- changed unwind_protect_var and restore_variable to do the
	  bcopy of the variable's value if it's shorter than the size of
	  an int, as well as if it's longer.  This keeps stray data
	  from being copied if a short is being unwind-protected

unwind_prot.h
	- new define, unwind_protect_short, to protect variables smaller
	  than an int

jobs.c
	- in the code that handles SIGCHLD traps, call unwind_protect_short
	  if that is the size of a pid_t (for last_made_pid)

				    2/5
				    ---
Makefile.in
	- only try make distclean in HIST_LIBDIR if Makefile exists -- could
	  have already been removed if HIST_LIBDIR is the same as RL_LIBDIR

general.c
	- make canonicalize_pathname be more careful about what it checks
	  for being a directory name when processing a full pathname

Makefile.in, configure.in, doc/Makefile.in
	- small changes to get bash to build better in a directory not the
	  source directory

				   2/12
				   ----
Makefile.in
	- added `install-strip' target

				   2/14
				   ----
doc/bash.{1,html}, doc/features.texi
	- documented the `--verbose' startup option

lib/readline/complete.c
	- fix to gen_completion_matches to fix a memory leak
	- fix to rl_complete_internal to fix a memory leak

				   2/15
				   ----
bashwait.h
	- changed to use WORDS_BIGENDIAN instead of LITTLE_ENDIAN or
	  BIG_ENDIAN

configure.in, config.h.in
	- call AC_C_BIGENDIAN, define WORDS_BIGENDIAN

Makefile.in
	- remove all references to mkendian.c, mkendian, and bash_endian.h
	- added a `symlinks' target that just runs support/fixlinks

MANIFEST
	- mkendian.c is no longer in the distribution

				   2/16
				   ----
execute_cmd.c
	- include <sys/times.h> if HAVE_SYS_TIMES_H and HAVE_TIMES are
	  defined

bashline.c
	- fix to bash_directory_completion_hook to compensate for
	  canonicalize_pathname returning NULL

variables.c
	- fix to initialize_shell_variables to compensate for
	  canonicalize_pathname returning NULL

				   2/22
				   ----
tests/test-tests, tests/test.right
	- changes to avoid writing in the source directory -- all temp files
	  are created in /tmp

[First alpha release at Thu Feb 22 15:59:51 EST 1996]

				   2/23
				   ----
lib/readline/rldefs.h
	- work around SVR4.2 bug including <sys/ptem.h> and <termios.h>

lib/readline/chardefs.h
	- fix to CTRL_CHAR macro for chars > 128 on systems with signed
	  characters

builtins/ulimit.def
	- protect more of the RLIMIT_* defines with checks
	- new macro RETINVALID() to set errno and return the correct
	  value for an invalid request

doc/Makefile.in
	- add a definition for INSTALL, set by autoconf

				   2/26
				   ----
support/bashbug.sh
	- if USER is unset, assign it the value of $LOGNAME or `whoami`

Makefile.in,{lib/*,doc,builtins}/Makefile.in
	- use `test' instead of `[' to conform to GNU coding standards
	- `incdir' -> `includedir' as per latest GNU coding standards

lib/readline/Makefile.in, lib/glob/Makefile.in
	- use $(srcdir)/ instead of $(srcdir) in the CSOURCES variable

general.h
	- new define, FS_NODIRS, to not find directory names when searching
	  $PATH

execute_cmd.c
	- fix to find_in_path_element so it does not return directories
	- executable_file() no longer returns directories as executable

				   2/27
				   ----
jobs.h
	- new flag value: J_NOHUP

jobs.c
	- new function: nohup_job(job).  Sets J_NOHUP flag for specified
	  job
	- change hangup_all_jobs so that jobs marked J_NOHUP are not
	  sent SIGHUP.  If stopped, the job still gets SIGCONT.
	- changed calls to report_error to call internal_error, which will
	  not exit the shell
	- changed FIND_CHILD define to call internal_error, restore the
	  SIGINT handler, set termination_state to 127 and return, rather
	  than aborting the shell

builtins/jobs.def
	- new option for disown: `-h'.  Marks the specified jobs J_NOHUP.

doc/{bash.{1,html},features.texi}
	- added description of `disown -h'

jobs.c, nojobs.c
	- include some files needed for struct winsize by SCO

lib/readline/input.c
	- added some #ifdefs to avoid including <sys/time.h> on systems
	  with select but without <sys/select.h>

configure.in
	- check for <stdarg.h>, define HAVE_STDARG_H in config.h if found

config.h.bot
	- define USE_VARARGS and either PREFER_STDARG or PREFER_VARARGS
	  if one of <stdarg.h> or <varargs.h> is present

aclocal.m4
	- moved default mail directory check here from configure.in, macro
	  name is BASH_DEFAULT_MAIL_DIR
	- rewrote BASH_CHECK_DEV_FD to cache the value
	- minor fixes from Bruno Haible

shell.c
	- no longer includes <varargs.h>

builtins/Makefile.in
	- add -I$(topdir)/builtins to list of includes

execute_cmd.c, lib/glob/glob.c
	- include memalloc.h for correct alloca definitions

error.[ch], print_cmd.c, builtins/common.[ch]
	- changes to include new ANSI-C stdargs code if PREFER_STDARG is
	  defined

				   2/28
				   ----
aclocal.m4
	- more minor fixes from Andreas Schwab

doc/Makefile.in
	- change TEXINPUTS makefile variables to TEXINPUTDIR to avoid
	  conflict with shell variable of the same name

builtins/pushd.def
	- fix to avoid a bad call to free after a call to
	  polite_directory_format does not change its argument string

lib/readline/bind.c
	- fixes to _rl_macro_dumper_internal so that it prints whatever
	  prefix it's passed, if any

				   2/29
				   ----
Makefile.in
	- slight change to the rule for `stamp-h': it should be created by
	  running `config.status', not explicitly by the makefile rule

builtins/Makefile.in
	- replace `..' in the dependencies with `$(topdir)'
	- replace `.' in the dependencies with `$(srcdir)'

				    3/1
				    ---
Makefile.in
	- add a rule to build builtins/builtext.h for the benefit of
	  deficient makes like the SunOS one

variables.c
	- fix to assign_in_env so that values in the environment are
	  properly null-terminated

builtins/Makefile.in
	- added dependencies for object files made from .c files in this
	  directory: common.o, getopt.o, bashgetopt.o.  SunOS /bin/make
	  doesn't seem to be able to handle anything else

support/mkclone
	- new script to replace clone-bash that works from MANIFEST to link
	  only those files contained in a distribution

support/mkversion.c
	- change so that it doesn't try to get `.build' from the source
	  directory when that's different from the build directory

				    3/4
				    ---
bashjmp.h
	- #undef setjmp and longjmp before redefining them as sigsetjmp and
	  siglongjmp, respectively

bashhist.c
	- fixed an uninitialized variable problem in expand_histignore_pattern

builtins/set.def
	- used `on_or_off' where `value' was needed in minus_o_option_commands

builtins/common.h
	- added extern declaration for set_var_attribute

print_cmd.c
	- include `bashansi.h' instead of just string.h or strings.h

builtins/*.def, builtins/common.c
	- include `../bashansi.h' where appropriate

parse.y
	- fixed a parenthesization problem in alias_expand_token

general.h
	- added extern declaration for `ungetc_with_restart'

lib/readline/readline.c
	- renamed LibraryVersion to rl_library_version, made it extern,
	  assigned `2.1' to it

lib/readline/readline.h
	- extern declaration for `rl_library_version'

lib/readline/doc/rltech.texinfo
	- added description of `rl_library_version'

lib/glob/glob.c
	- changed call to sprintf in glob_dir_to_array to a couple of
	  calls to strcpy, since we keep the length of the first string
	  we copy

				    3/7
				    ---
aclocal.m4
	- added new macro `BASH_FUNC_LSTAT' to check for lstat on Linux,
	  which defines it as an inline function in <sys/stat.h>

configure.in
	- call BASH_FUNC_LSTAT if $ac_cv_func_lstat has value `no'

				    3/8
				    ---
parse.y
	- changed the occurrences of `list' in the if command productions
	  to use `compound_list' instead

				   3/11
				   ----
parse.y
	- changed the occurrences of `list' in the while and until command
	  productions to use `compound_list'

lib/readline/complete.c
	- fix to filename_completion_function -- off-by-one error when
	  expand-tilde is enabled and a filename to be completed begins
	  with `~/'

				   3/12
				   ----
builtins/cd.def
	- made the POSIX.2 behavior of PWD not containing symlinks after
	  using $CDPATH part of `posix mode', not default shell behavior

lib/readline/display.c
	- fix to update_line to handle update problems when using
	  horizontal scroll mode.  This is a dumb update solution -- it
	  should use a better one

				   3/14
				   ----
examples/functions/csh-compat
	- replaced the defintion for `alias' with a better one posted to
	  usenet by Mohit Aron <aron@cs.rice.edu>

				   3/15
				   ----
jobs.c
	- fix to wait_for_background_pids to keep `wait' from hanging

				   3/19
				   ----
lib/readline/input.c
	- new function `_rl_input_available()' returns > 0 if there is
	  input available on the readline input file descriptor.  Only
	  works if select(2) or FIONREAD are available

lib/readline/isearch.c
	- slight change to the isearch termination behavior -- ESC still
	  terminates the search, but if there is pending input or if input
	  arrives within 0.1 seconds (on systems with select(2)) it is
	  used as a prefix character with rl_execute_next

shell.c
	- the GNU coding standards say to write the output generated by
	  the --help command line option to stdout, not stderr
	- show_shell_version now takes an `extended' option that displays
	  copyright information if non-zero
	- show_shell_version now prints the value of `MACHTYPE' by default
	- the `--version' option now causes the shell to exit successfully
	  after printing the extended version information

externs.h
	- changed prototype for show_shell_version

shell.c, bashline.c, builtins/help.def
	- changed calls to show_shell_version to add appropriate argument

Makefile.in
	- pass a `MACHTYPE' define to the compiler

				   3/22
				   ----
general.c
	- changed print_timeval() and print_time_in_hz() to output three
	  fractional digits after the decimal point

examples/loadables/sleep.c
	- changed to an implementation that will sleep fractional portions
	  of seconds if select() is available

				   3/25
				   ----
builtins/shopt.def
	- fixes to shopt -o from Andreas Schwab.  Use FLAG_ON/FLAG_OFF
	  instead of SETOPT/UNSETOPT

				   3/26
				   ----
Makefile.in, builtins/Makefile.in
	- use `@includedir@' instead of `@incdir' for autoconf 2.9

Makefile.in
	- the `info', `dvi', and `ps' targets do not depend on `texindex'
	- add a `dist' target that just prints a message describing how
	  distributions are constructed

support/mkdirs
	- replace uses of [...] with `test'

				   3/28
				   ----
parse.y
	- fix for a problem with \@ prompt expansion from Tim Mooney

jobs.c
	- broke the code that prints a pipeline out into a separate
	  function: print_pipeline().  This gets called by
	  pretty_print_job and can be used for debugging
	- two new functions to save and restore the_pipeline around calls
	  to make_child that you don't want to disturb the current pipeline,
	  for example in process substitution

subst.c
	- changed process_substitute to call save_pipeline and
	  restore_pipeline in the appropriate places

				   3/29
				   ----
general.c
	- ansicstr now takes an additional parameter, the length of the
	  string to be translated.  It's the second paramter.

builtins/echo.def
	- changed call to ansicstr to pass strlen(list->word->word)

parse.y
	- redid the $'...' expansion so it works like it's supposed to:
	  the quoted strings may appear anywhere in a token, and multiple
	  ansi-c quoted strings may appear in a token
	- redid the $"..." expansion so it works like it's supposed to

tests/nquote.{tests,right}, tests/run-nquote
	- tests for the $'...' and $"..." quoting stuff -- simple-minded

subst.c
	- on systems without /dev/fd, open the named pipe for a `reading
	  in child' process substitution (>(...)) with O_NONBLOCK

lib/posixheaders/filecntl.h
	- add code to make sure the O_NONBLOCK is defined to O_NDELAY if
	  it is present and O_NONBLOCK is not defined by <fcntl.h>

general.c
	- don't bother handling both O_NONBLOCK and O_NDELAY in
	  unset_nodelay_mode, since filecntl.h defines O_NONBLOCK as
	  O_NDELAY for non-Posix systems

				    4/1
				    ---
lib/readline/funmap.c
	- made `vi-fetch-history' a bindable command name

doc/readline.3
	- many cleanups, updated the list of default bindings 

				    4/4
				    ---
doc/bash.1, doc/readline.3
	- fixed up use of \-; now it is not used unless the text is being
	  printed in bold or italic

configure.in, config.h.in
	- add a configuration option, --enable-usg-echo-default, to turn
	  on DEFAULT_ECHO_TO_USG and make `echo' expand backslash-escaped
	  characters by default

				    4/8
				    ---
parse.y
	- another small change to localeexpand to handle backslash-escaped
	  double quotes in the double-quoted string

				    4/9
				    ---
shell.c
	- add the value of MACHTYPE to the text output by `--help'

				   4/11
				   ----
parse.y
	- more changes to the $"..." and $'...' code to move it into
	  read_token
	- don't try to check token[token_index - 1] unless token_index
	  is greater than 0

				   4/12
				   ----
trap.c
	- new function run_trap_cleanup to clean up after _run_trap_internal
	  in the event that parse_and_execute does not return normally
	  (e.g., if a `return' is executed in the trap command)
	- set running_trap to the number of the signal whose trap is being
	  run plus one in _run_trap_internal

trap.h
	- extern declaration for run_trap_cleanup

jobs.c
	- new function `unfreeze_jobs_list' to set freeze_jobs_list back to 0.
	  called from parse_and_execute_cleanup so a `return' while running
	  an interrupt trap does not leave the jobs list frozen

jobs.h
	- new extern declaration for unfreeze_jobs_list

builtins/common.c
	- if running_trap is non-zero in parse_and_execute_cleanup, indicating
	  that parse_and_execute was running a trap command when it got a
	  `return', call run_trap_cleanup (running_trap - 1)
	- parse_and_execute_cleanup now calls unfreeze_jobs_list

				   4/16
				   ----
Makefile.in
	- don't try to make `doc' as a dependency of `install'

doc/Makefile.in
	- make `info' a dependency of `install' to make sure the info
	  document is present and up to date before installing it
	- make the `install' target install the documents with a $(srcdir)/
	  prefix in case we're building in another directory

lib/glob/glob.c
	- fixed an off-by-one error in glob_dir_to_array

shell.c
	- removed an extra increment of arg_index when setting up the
	  arguments for -c command

				   4/17
				   ----
pathexp.c
	- made quote_globbing_chars backslash-quote backslashes as well as
	  `?*[]'; changed it to be a little faster

bashhist.c
	- call quote_globbing_chars to quote backslashes in the previous
	  history line even if no other globbing chars are present.  This
	  is done only if we're matching against a HISTIGNORE pattern of `&'
	- don't bother quoting globbing characters in the current history
	  line in history_should_ignore -- fnmatch ignores special chars in
	  its `string' argument

[bash-2.0-alpha2 frozen]

				   4/18
				   ----
command.h
	- new flag value for a word: W_NOSPLIT.  A word with this bit set
	  in its flags will not have word splitting performed

parse.y
	- turn on the W_NOSPLIT flags for assignment statements appearing
	  where an assignment statement is acceptable (words that would
	  return ASSIGNMENT_WORD rather than WORD).  This means that, for
	  the time being, assignment statement arguments to builtins like
	  `declare' or `alias' will be split unless they are quoted

subst.c
	- don't split a word in expand_word_internal if the W_NOSPLIT flag
	  is set, rather than checking W_ASSIGNMENT; do the same thing in
	  expand_word_list_internal

builtins.h
	- a new flag, ASSIGNMENT_BUILTIN, indicating that this builtin takes
	  assignment statements as arguments
	- rearranged the values of the builtin flags, so the BUILTIN_* flags
	  come first, then the *_BUILTIN flags

builtins/makebuiltins.c
	- added code for an array of `assignment builtins' -- builtins that
	  take assignment statements as arguments -- and to add the
	  ASSIGNMENT_BUILTIN flag for those builtins

execute_cmd.c
	- added a hack function `fix_assignment_words', which checks the
	  first word of a builtin command to see if it is a builtin that
	  has the ASSIGNMENT_BUILTIN flag set, and adds W_NOSPLIT to the
	  flags for all words with the W_ASSIGNMENT bit set.  This means
	  that word splitting is not done for any of the assignment
	  statements in commands like `declare z=$a'

				   4/19
				   ----
execute_cmd.c
	- fixed a memory-freed-twice error in find_in_path_element

lib/readline/rltty.c
	- include <sys/ioctl.h> if GWINSZ_IN_SYS_IOCTL is defined and
	  SHELL is not defined

lib/readline/input.c
	- changed a stray HAVE_FIONREAD to FIONREAD
	- include <sys/ioctl.h> if FIONREAD_IN_SYS_IOCTL is defined

aclocal.m4
	- new macro, BASH_HAVE_FIONREAD, to check for a #define of
	  FIONREAD in <sys/ioctl.h> or one of the files it includes;
	  defines FIONREAD_IN_SYS_IOCTL if present

config.h.in
	- new line for FIONREAD_IN_SYS_IOCTL

configure.in
	- call BASH_HAVE_FIONREAD

				   4/22
				   ----
builtins/cd.def
	- fixed a memory-freed-twice error in mkpath()

jobs.c
	- don't print a job termination message for a non-interactive shell
	  with startup_state == 2 (those shells are started to run commands
	  when bash is invoked with `-c command')

				   4/23
				   ----
general.h
	- definition for a `generic pointer' type PTR_T -- `void *' on ANSI
	  C systems, `char *' otherwise

jobs.h
	- new members of job struct: `j_cleanup', a function to call when the
	  job is marked JDEAD, and `cleanarg', argument to pass to j_cleanup

jobs.c
	- initialize j_cleanup and cleanarg to NULL in stop_pipeline
	- call j_cleanup from waitchld() when a job is marked JDEAD

test.c
	- fixed binop() so it recognizes `<' and `>' as binary operators
	- fixed a bug in binary_operator so `<' works correctly

tests/test-tests
	- fixed the tests so they no longer rely on the modes of files in
	  the file system to test -u, -g, -r, -x, -w, and so on, except
	  for a few `standard' files like /dev/tty and /dev/null
	- added tests for string < string and string > string

xmalloc.c
	- include <unistd.h> if HAVE_UNISTD_H is defined for a prototype
	  for sbrk
	- add an extern declaration for sbrk if SBRK_DECLARED is not defined
	- use PTR_T to cast the return value of sbrk() when finding out where
	  the break is and how many bytes of memory have been allocated

lib/malloc/malloc.c
	- added code to write 0xcf into memory as it's freed, to uncover
	  callers that try to refer to freed memory, and writes 0xdf into
	  newly-allocated memory, to uncover callers that assume something
	  about new allocations (e.g., that newmem[0] == 0)

lib/malloc/gmalloc.c
	- latest version from GNU sources

				   4/25
				   ----
doc/bash.1
	- changed the description of `unset' to include a description of
	  the `-v' option

parse.y
	- fixed a problem with conversion to 12-hour time in
	  decode_prompt_string that made 12:00pm show up as 00:00pm

				   4/26
				   ----
builtins/common.c, subst.c
	- a couple of fixes from Andreas Schwab

configure.in
	- set up the minimal configuration after checking for
	  --enable-minimal-config with AC_ARG_ENABLE, before checking any
	  of the other options, instead of after checking all options.
	  This makes `--enable-minimal-config --enable-prompt-string-decoding'
	  work as documented
	- changed AC_PREREQ to require autoconf version 2.8 or higher
	- added some code to disable gnu malloc by default on the systems
	  listed in NOTES
	- set MALLOC_SRC to have the $(ALLOC_LIBSRC)/ prefix to avoid having
	  a directory in the dependencies when making without the gnu
	  malloc

lib/malloc/Makefile.in
	- make gmalloc.o depend on $(BUILD_DIR)/config.h

				   4/30
				   ----
COMPAT
	- new file listing user-visible incompatibilites between bash-1.14
	  and bash-2.0

parse.y
	- new prompt expansions, \v (version) and \V (version + patchlevel)

config.h.top
	- the default value of PS1 is now '\s-\v\$ '

doc/{bash.{1,html},features.texi}
	- added descriptions of \v and \V prompt expansions
	- changed default value of PS1

Makefile.in
	- added dependencies on config.h.top for files that use definitions
	  included there

builtins/exec.def
	- removed reference to `no_exit_on_failed_exec' from the help text

				    5/3
				    ---
builtins/cd.def
	- fixed a typo in fix from 4/22

				    5/7
				    ---
builtins/common.c
	- new function `no_options (WORD_LIST *)' to be called by builtins
	  that do not take options to check for options and -?.  It returns
	  0 on success, non-zero if an unwanted option is supplied

builtins/common.h
	- extern declaration for no_options

builtins/return.def
	- corrected the error message to include returning from a sourced
	  script

builtins/{getopts,eval,wait,source,fg_bg,help}.def
	- changed the following builtins to either call no_options or test
	  explicitly for options and return EX_USAGE if any are found:

		getopts eval wait source . fg bg help

builtins/help.def
	- error messages are now printed using builtin_error

				    5/8
				    ---
builtins/jobs.def
	- fixed an unitialized variable problem

tests/more-exp.tests
	- added additional tests for IFS problem uncovered by `iffe'

				    5/9
				    ---
lib/malloc/Makefile.in
	- use $(ALLOCA_SOURCE) instead of $< in rule that builds alloca.o.
	  Some makes don't expand the $< in non-suffix rules

lib/readline/rldefs.h
	- fix workaround for SVR4.2 bug

shell.c
	- even though SVR4.2 has getpeername(), isnetconn() should not use it

maxpath.h
	- rework to make sure PATH_MAX and NAME_MAX are defined, and remove
	  the BUILDING_MAKEFILE code

general.c, parse.y, oslib.c, jobs.c, builtins/common.c, builtins/cd.def
	- change uses of MAXPATHLEN to PATH_MAX

examples/loadables/{{log,base,dir}name,tty,pathchk,tee}.c
	- new loadable builtins:

		logname basename dirname tty pathchk tee

configuure.in, config.h.in
	- look for tzset(3), define HAVE_TZSET if found

subst.c
	- new special variable function, sv_tz, which calls tzset when
	  TZ is changed, if tzset(3) exists and the shell is compiled
	  to do prompt string decoding

subst.h
	- extern declaration for sv_tz

				   5/10
				   ----
builtins/echo.def
	- only call printf if the string to print is non-null
	- add an fflush(stdout) after the printf call to work around a
	  bug in SunOS 5.5

				   5/16
				   ----
shell.c
	- moved some variable declarations out of this file to more
	  logical places

support/config.guess
	- small fixes from rfg@monkeys.com

version.c
	- moved functions for getting, setting, and displaying shell version
	  information here from shell.c

general.c
	- moved set_lines_and_columns to variables.c
	- moved getc_with_restart and ungetc_with_restart to input.c
	- new function argv_to_word_list(), converts an array of strings
	  into a WORD_LIST
	- renamed find_name_in_list to find_name_in_array to match rest
	  of functions that operate on arrays of strings

configure.in, Makefile.in, jobs.c, nojobs.c
	- changes so that jobs.c no longer includes nojobs.c, and the correct
	  object file (jobs.o or nojobs.o) is selected by configure
	  and substituted into the Makefile

list.c
	- new file, list manipulation functions from general.c

externs.h, general.h
	- moved extern declarations for functions defined in oslib.c and
	  list.c to externs.h from general.h

				   5/17
				   ----
locale.c
	- new file, with locale code from parse.y and shell.c

shell.c
	- don't turn off job control if act_like_sh is set
	- if an unknown option is supplied at startup or if -c is
	  supplied without an argument, exit with EX_USAGE
	- call posix_initialize after parsing all the options, to
	  catch `bash -o posix'
	- new functions: init_interactive(), init_noninteractive()
	- exit with EX_NOTFOUND if a script argument is not found
	- exit with EX_NOINPUT if a script file cannot be opened for
	  some reason

shell.h
	- new define for EX_NOINPUT exit status (126)

				   5/18
				   ----
lib/readline/bind.c
	- fixed _rl_get_keyname() so that it properly handles C-\ and outputs
	  it as \C-\\ and C-" as \C-\".  This fixes the improper binding
	  commands written by `bind -p' that caused weird things to happen
	  when people used the output of `bind -p' as a start for their
	  own inputrc files
	- new function _rl_init_file_error to print error messages encountered
	  while parsing the inputrc file
	- print out an error message if parsing an inputrc line and no closing
	  double quote is found for a key binding

lib/readline/complete.c
	- in rl_complete_internal, if the completion function results in
	  multiple matches, but none match up to even the first character, 
	  use what the user typed in (which is presumably a glob pattern
	  that expanded into multiple files) as matches[0].  This makes
	  things like show-all-if-ambiguous work right, too

oslib.c
	- if we are providing our own version of getenv(), provide a function
	  _getenv() as well, which just calls getenv()

builtins/ulimit.def
	- #define _KERNEL before including <sys/resource.h> if HPUX is
	  defined.  This makes the full set of limits available on hpux
	  version 8 and above

bashline.c
	- new function, enable_hostname_completion, sets up readline to
	  perform or not perform hostname completion.  Hostname completion
	  is on by default.
	- don't attempt hostname completion in attempt_shell_completion()
	  unless perform_hostname_completion is set

builtins/shopt.def
	- add a `set_func' member to the shopt options structure, to provide
	  a hook for those variables that require a little more than just
	  toggling a variable on or off
	- new shopt variable `hostcomplete', turns hostname completion on and
	  off

doc/{bash.{1,html},features.texi}
	- added description of new shopt `hostcomplete' variable

				   5/21
				   ----
sig.c
	- don't try to save the shell history in termination_unwind_protect
	  if we're dying due to SIGABRT

bashhist.c
	- new functions: last_history_entry (static), last_history_line

bashhist.h
	- extern declarations for new functions in bashhist.c

error.c
	- have programming_error() report the last command in the history
	  before aborting

builtins/fc.def
	- if the editor returns a non-zero exit status when using `fc -e',
	  return immediately without trying to execute the commands, as
	  per Posix.2, 5.12.2
	- when using `fc -s', echo the command to be executed to stderr,
	  not stdout

lib/readline/terminal.c
	- new file, with all code related to termcap/terminfo

lib/readline/{readline,rltty,display,util}.c
	- moved functions dealing with termcap to terminal.c

lib/readline/readline.c
	- readline_initialize_everything now calls _rl_enable_meta_key()
	  to turn on the meta key, based on the value of _rl_enable_meta
	  (on by default)

lib/readline/rltty.c
	- do not enable and disable the meta key each time readline is
	  called; do it once at initialization

				   5/23
				   ----
bashhist.c
	- when `hist_verify' is set, call re_edit with the expanded line,
	  not the original one, and do not print the results of the
	  expansion before re-editing

				   5/24
				   ----
support/config.guess
	- recognize linux/sparc

configure.in
	- don't use GNU malloc on linux/sparc

variables.c
	- initialize a new $MACHTYPE variable to the value of MACHTYPE as
	  set by autoconf

doc/{bash.{1,html},features.texi}
	- documented $MACHTYPE

				   5/30
				   ----
builtins/ulimit.def
	- allow the max vm size to be set via setrlimit() if RLIMIT_VMEM
	  is defined

				   5/31
				   ----
shell.h
	- changed EX_USAGE to 258, EX_BADUSAGE is now 2
	- added a number of execution failure statuses, so that builtins
	  can indicate various failures.  All are greater than 256, so
	  they cannot be returned by other utilities

execute_cmd.c
	- new function, builtin_status(), to translate the new return
	  status codes to something the shell can export
	- changed execute_simple_command to call builtin_status after
	  execute_builtin_or_function to translate error codes if a
	  builtin is invoked.  If a function or regular builtin is
	  invoked, all return values greater than EX_SHERRBASE get
	  translated to EXECUTION_FAILURE, with the exception that
	  EX_USAGE gets translated to EX_BADUSAGE.  If a special
	  builtin failed with a status > EX_SHERRBASE, special_builtin_failed
	  is set to cause the shell to exit in POSIX mode
	- changed execute_builtin_or_function to return EX_REDIRFAIL if
	  redirections fail
	- changed execute_subshell_builtin_or_function to translate
	  EX_USAGE to EX_BADUSAGE if a builtin is executed
	- set this_command_name to NULL in execute_for_command before binding
	  each member of the word list to the loop variable, to avoid
	  garbled error messages if the variable has the integer attribute

builtins/{set,unset}.def
	- return EX_USAGE instead of EXECUTION_FAILURE if a bad option is
	  supplied

builtins/source.def
	- return EX_USAGE instead of EXECUTION_FAILURE if the required
	  filename argument is missing

builtins/setattr.def
	- return EX_BADASSIGN if any assignment statements given as arguments
	  to readonly, export, etc. return failures (assignment to
	  non-identifier, assignment to readonly variable)

builtins/declare.def
	- don't allow `declare var=value' to assign value to a readonly
	  variable

lib/readline/rldefs.h
	- include <stdarg.h> if we're going to be using stdarg instead of
	  varargs

lib/readline/display.c
	- added `stdarg' version of rl_message

lib/readline/readline.h
	- changed extern declaration for rl_message to be in ANSI-C format
	  if __STDC__ is defined and we're using stdarg

variables.c
	- make sure this_command_name is set to null before calling
	  make_variable_value in assign_array_var_from_string so any
	  error messages are not garbled

				    6/2
				    ---
builtins/common.c
	- don't execute the command in parse_and_execute if -n has been
	  enabled and the shell is not interactive
	- include flags.h for read_but_dont_execute

[bash-2.0-alpha3 released]

				    6/5
				    ---
subst.c
	- array_length_reference and parameter_brace_expand_length now
	  return -1 on errors
	- parameter_brace_expand now returns &expand_param_error if
	  paramter_brace_expand_length returns something < 0

variables.c
	- assign_in_env now checks for assignments to readonly shell
	  variables and disallows them

				    6/6
				    ---
xmalloc.c
	- only do pointer arithmetic on pointers cast to (char *), since
	  it's not required that compilers support arithmetic on void *

shell.c
	- make sure <sys/socket.h> is included with the same conditions
	  used to call getpeername(2) in isnetconn()

parse.y
	- added a new function, paren_match, to parse the contents of $(...)
	  constructs.  This function correctly handles embedded quoted
	  strings, embedded command substitutions, embedded command
	  substitutions with embedded quoted strings, etc.  The implementation
	  is much closer to that described in POSIX.2, section 3.6.3.
	- changed read_token_word to call paren_match where appropriate

subst.c
	- rewrote extract_delimited_string so that it correctly understands
	  quoted strings inside command substitutions, a la paren_match
	  in parse.y.  Corrected the description of the function's output
	  in the code.  extract_delimited_string is now very recursive, and
	  does not try to do everything in one pass without recursion

				    6/7
				    ---
test.c
	- fixed three_arguments() to test the second argument for a valid
	  binary operator before checking whether or not the first argument
	  is `!'.  This is what POSIX.2 says to do.

lib/malloc/malloc.c
	- don't compile in the memory scrambling code (#define MEMSCRAMBLE)
	  if NO_MEMSCRAMBLE is defined.

configure.in
	- define NO_MEMSCRAMBLE in LOCAL_CFLAGS for SCO 3.2v[45]

				    6/9
				    ---
parse.y
	- renamed paren_match to parse_matched_pair
	- call parse_matched_pair to parse <(...) and >(...) constructs,
	  since those should be treated the same as $(...) for the purposes
	  of matching parens and skipping embedded quoted strings

				   6/13
				   ----
parse.y
	- augmented parse_matched_pair
		o fixed up backslash quoting and CTLESC handling after
		  backslashes
		o match pairs of ${...} and $[...] inside double-quoted
		  strings or `` strings
		o keep track of line number quoted string starts on for
		  better error messages
		o push and pop delimiters when parsing quoted strings
		  inside $(...), ${...}, and $[...] for use by the
		  history code
		o set EOF_Reached to 1 if we get an EOF before finding the
		  match closer
	- rewrote read_token_word from scratch to use parse_matched_pair:
		o shell quote characters use parse_matched_pair to find
		  the matching quote
		o fixed up backslash parsing code
		o compound array assignments use parse_matched_pair
		o corrected all_digits and dollar_present computations, so,
		  for instance, 2''>/dev/null is no longer accepted as
		  identical to 2>/dev/null
		o converted ${...} parsing to use parse_matched_pair
		o removed printing of error messages about unmatched quotes;
		  now handled by parse_matched_pair
		o converted $'...' and $"..." to use parse_matched_pair
		o removed all of the delimited_xxx and dollar_xxx variables
		  and embedded_quoted_string
	- modified report_syntax_error to regularize error messages:
		o non-interactive shells and interactive shells running
		  scripts with `.' now always report line numbers
		o unexpected EOF is always reported when EOF_Reached is true
		o non-interactive shells no longer duplicate the script name
		  in error messages (e.g., `./z3: ./z3: line 3: syntax error')

bashline.c
	- make sure `newnames' is freed in _ignore_completion_names

lib/readline/complete.c
	- don't insert the first match on TAB completion in
	  rl_complete_internal() if matches[0] is the empty string --
	  that will overwrite whatever the user has typed, if dequoting
	  what the user typed results in the empty string

execute_cmd.c
	- include <limits.h> if HAVE_LIMITS_H is defined for ARG_MAX
	- only put the special environment variable for GNU getopt into
	  the environment if ARG_MAX exceeds 10240

subst.c
	- rewrote extract_dollar_brace_string so that it fully obeys
	  the POSIX.2 rules for finding the closing `}' and uses
	  skip_{single,double}_quoted rather than trying to do it with
	  inline delimiters
	- removed the INC_NEST and DEC_NEST defines

				   6/14
				   ----
jobs.c
	- don't print status messages for background jobs that complete
	  successfully when running shell scripts

builtins/shopt.def
	- when using shopt -o as a synonym for set -o, make sure $SHELLOPTS
	  is updated
	- make sure to update $SHELLOPTS when using shopt to set or unset
	  interactive comments

execute_cmd.c
	- fixed find_in_path_element to not return non-executable files
	  when FS_EXEC_PREFERRED is one of the flags, after saving such
	  a file as file_to_lose_on (fix from william@nscs.fast.net)

				   6/17
				   ----
lib/readline/complete.c
	- after printing possible completions, all lines of a multi-line
	  prompt are redisplayed using rl_forced_update_display()

subst.c
	- in expand_word_internal, only do tilde expansion on words where
	  (flags & (W_ASSIGNMENT|W_QUOTED)) == W_ASSIGNMENT (unquoted
	  assignment statements) and contain unquoted `=~' or `:~', and
	  only if posixly_correct is off.  POSIX.2 says that only the
	  assignments preceding the command name should be tilde-expanded.

				   6/18
				   ----
support/config.guess
	- recognize the new Pyramid DC-OSx as `mips-pyramid-sysv4'

configure.in
	- set LOCAL_CFLAGS to -Xa for mips-pyramid-sysv4 as per
	  Peter Chubb

subst.c
	- variable assignment errors when there is not a command name
	  after the assignments now causes a non-interactive shell to 
	  exit in POSIX.2 mode

execute_cmd.c
	- if the iteration variable in a for statement is a read-only
	  variable, a variable assignment error occurs.  This causes
	  non-interactive shells to exit in posix mode, and a failure
	  status to be returned for other non-interactive shells and
	  interactive shells
	- if the selection variable in a select statement is a read-only
	  variable, a variable assignment error occurs, with the same
	  consequences as a for statement variable assignment error

doc/bashref.*
	- renamed features.* to bashref.*, since that more accurately
	  reflects the current contents

				   6/19
				   ----
test.c
	- changed three_arguments() to do one-argument tests on $1 and
	  $3 and return the appropriate values if -a or -o is given as
	  the second argument
	- changed three_arguments() to perform a one-argument test on
	  $2 if $1 == '(' and $3 == ')' and return that result
	- make sure test_stat translates /dev/fd/xx to DEV_FD_PREFIX/xx
	  so /dev/fd/0 always means the same thing, even on linux,
	  which uses /proc/self/fd

aclocal.m4
	- added a check for libncurses in BASH_CHECK_LIB_TERMCAP

configure.in
	- added an initial message saying we're configuring for bash-2.0

lib/glob/fnmatch.c
	- made a small change to fnmatch() to fix a bug matching patterns
	  with multiple consecutive `*'s

				   6/20
				   ----
parse.y
	- inhibit history expansion when calling pre_process_line() from
	  shell_getc() if the current delimiter is a single quote, even
	  if we're on a different line than the opening quote
	- make sure read_a_line prints a prompt if we're interactive and
	  not using readline, and make sure we call clearerr() if we
	  get EOF when interactive and not using readline

bashhist.c
	- new function history_expansion_p(char *) returns 1 if the string
	  passed contains the history expansion or history substitution
	  characters
	- pre_process_line() now calls history_expansion_p and calls
	  the history expansion code only if that returns 1

				   6/26
				   ----
lib/readline/isearch.c
	- swap the behavior of ^J and ^M when i-searching.  ^J now terminates
	  the search without accepting the line.  ^M terminates the search
	  and accepts the line, executing the command

examples/loadables/sprintf.c
	- new `sprintf' builtin: sprintf var format [args...]

lib/readline/readline.c
	- added a line in _rl_dispatch that sets _rl_suppress_redisplay if
	  the function is rl_insert and there is input available

				   6/27
				   ----
builtins/getopts.def
	- new function, getopts_bind_variable(), used when assigning a value
	  to the user-supplied variable passed to getopts().  It makes sure
	  that that variable name is legal and prints an error message if it
	  is not

builtins/getopt.c
	- don't increment sh_optind until after we've checked whether or not
	  the current option character appears in the list of options passed
	  to getopts by the user

				   6/28
				   ----
variables.c
	- added a new parameter to print_var_value: QUOTE.  If it's non-zero
	  and the variable's value contains shell metacharacters, quote the
	  value so it can be read back in

variables.h
	- changed extern declaration for print_var_value

siglist.h
	- if SYS_SIGLIST_DECLARED is not defined, but HAVE_UNDER_SYS_SIGLIST
	  is, only declare sys_siglist as extern char *sys_siglist[] if
	  sys_siglist is not `#define'd

parse.y
	- make sure a reserved word is acceptable before returning `}' as
	  a token from special_case_tokens, even if the token read so far
	  is "}"
	- make reset_parser set allow_open_brace to 0

				    7/1
				    ---
test.c
	- fixed binop to not try to read s[3] if s[2] == '\0'.  There are
	  no one-character binary operators that begin with `-'

variables.c
	- fixed kill_all_local_variables to do nothing if variable_context
	  is >= local_variable_stack_size (indicating that we do have some
	  local variables, but not at this level of function nesting, and
	  we are beyond the end of the array allocated the last time we
	  had local variables)

				    7/2
				    ---
execute_cmd.c
	- non-interactive shells in posix mode should exit if the variable
	  in a for command is not a valid identifier.  This should really
	  be caught by the parser
	- non-interactive shells in posix mode should exit if a function
	  name is not a valid identifier.  This should also be caught by
	  the parser

				    7/3
				    ---
jobs.c
	- non-interactive shells should ignore stopped children, so
	  waitchld() should set waitpid_flags to WUNTRACED only if the
	  shell is interactive and it's not a subshell environment

lib/readline/signals.c
	- if not being compiled as part of the shell, readline should
	  catch SIGTERM and clean up

shell.c
	- change to isnetconn: on Solaris 2.5, getpeername() can return
	  EINVAL rather than ENOTSOCK if the fd passed as the first
	  argument is not a socket

				    7/5
				    ---
lib/readline/complete.c
	- new variable, available to library users, to inhibit completion
	  and cause the completion character to be inserted into the
	  line with self-insert: rl_inhibit_completion.  Set to 0 by default.

lib/readline/readline.h
	- extern declaration for rl_inhibit_completion

lib/readline/doc/rltech.texinfo
	- documented rl_inhibit_completion

lib/readline/bind.c
	- new readline user variable: disable-completion.  This provides
	  users a way to toggle the value of rl_inhibit_completion

doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
	- documented disable-completion variable

lib/readline/doc/Makefile
	- added `html' target to create html from rlman.texinfo and
	  hist.texinfo

				    7/8
				    ---
builtins/cd.def
	- only try cd spelling correction if the shell is currently
	  interactive, regardless of value of `cdspell' option

lib/posixheaders/alloca.h
	- AIX 4.2 needs `#pragma alloca' if gcc is not being used

				    7/9
				    ---
builtins/getopts.def
	- return EXECUTION_FAILURE from getopts if it's trying to assign
	  to a read-only variable
	- reset sh_badopt to zero in getopts_reset()

builtins/getopt.c
	- new variable, sh_badopt, set to 1 if we find an illegal option
	- do the increment of sh_optind if sh_badopt is non-zero and we're
	  at the end of the option string at the beginning of sh_getopt().
	  The increment is deferred until the next call so $OPTIND is
	  correct

builtins/getopt.h
	- extern declaration of sh_badopt

				   7/10
				   ----
Makefile.in
	- don't pass ALLOCA_SOURCE or ALLOCA_OBJECT to the make in lib/malloc
	- don't make libmalloc.a depend on ALLOCA_DEP -- it causes some
	  compilers to build alloca.o in the top directory, and if ALLOCA
	  is not defined, makes the malloc library depend on a directory

aclocal.m4
	- some small changes to make the output look better

memalloc.h
	- made some small changes suggested by the autoconf documentation

				   7/11
				   ----
parse.y
	- swapped meanings of \h and \H in prompt_string_decode for
	  bash-1.14.6 compatibility

doc/{bash.{1,html},bashref.texi}
	- updated prompt string decoding section with swap of \h and \H

general.c
	- print_timeval and print_time_in_hz now accept a FILE * as the
	  first argument, so `times' can print to stdout while `time'
	  prints to stderr

execute_cmd.c
	- changed time_command to print the timing statistics to stderr

builtins/times.def
	- added the FILE * argument to the calls to print_timeval and
	  print_time_in_hz

support/texi2html
	- upgraded to version 1.50

error.c
	- include bashhist.h if HISTORY is defined for declarations of
	  last_history_line() and remember_on_history

lib/glob/glob.c
	- add a `#pragma alloca' as the first thing in the file if we're
	  not using gcc and _AIX is defined

lib/posixheaders/memalloc.h
	- remove the `#pragma alloca' stuff; it is done in the C source
	  files now, to avoid problems with other AIX header file
	  declarations

				   7/12
				   ----
lib/readline/rltty.c
	- some changes to work around AIX 4.2 bugs (sometimes OPOST is unset
	  in termios, sometimes FLUSHO is inexplicably set in termios, etc.)

				   7/15
				   ----
lib/readline/rltty.c
	- make SETATTR use TCSADRAIN on POSIX machines.  This setting is
	  supposed to be used for changes that affect output

[bash-2.0-alpha4 released]

				   7/16
				   ----
trap.c
	- changed reset_or_restore_signal_handlers to honor traps before
	  special signals, so that `trap "" 2' works right and causes
	  children to ignore SIGINT

locale.c
	- added lc_all variable to track the value of LC_ALL
	- added new functions: set_default_locale_vars, set_locale_var,
	  set_lang, get_locale_var, removed get_current_messages_locale

subst.h
	- added extern declaration for sv_locale

subst.c
	- LC_ALL, LC_CTYPE, LC_MESSAGES, and LANG are now special variables;
	  sv_locale() is called when they are assigned a value

shell.c
	- call set_default_locale_vars after initializing the shell variables
	  in main(), so LC_CTYPE and LC_MESSAGES (if present) have values
	- shell.c does not need to include <locale.h>

general.c
	- changed print_timeval and print_time_in_hz to format their output
	  as Posix.2 specifies for `time -p' if the new POSIX_TIME argument
	  is non-zero

parse.y
	- new grammar production: timespec, to handle `time' and `time -p'
	- change to special_case_tokens so that -p after `time' returns
	  TIMEOPT

execute_cmd.c
	- set posix_time in time_command if the command's flags include
	  CMD_TIME_POSIX
	- call print_timeval and print_time_in_hz with posix_time as
	  the new third argument
	- use a space to separate the word (`real') and the time if we're
	  in posix mode.  This is what POSIX.2 defines for `time -p'

builtins/times.def
	- call print_timeval and print_time_in_hz with 0 as the new third
	  argument

command.h
	- new flag: CMD_TIME_POSIX, used to handle `time -p'

doc/{bash.{1,html},bashref.texi}
	- documented `time -p'

				   7/17
				   ----
support/mkversion.c
	- include `config.h' before any other include files

parse.y
	- initialize was_dollar to 0 in parse_matched_pair

configure.in
	- removed duplicate check for <sys/file.h> from call to
	  AC_HAVE_HEADERS

sig.c
	- include siglist.h so we can find out if it defines HAVE_SYS_SIGLIST

siglist.h
	- define HAVE_SYS_SIGLIST if we end up defining sys_siglist as
	  _sys_siglist (Solaris 2.[45])

siglist.c
	- include "siglist.h" before testing whether or not HAVE_SYS_SIGLIST
	  is defined; it may be defined in there (Solaris 2.[45])

				   7/19
				   ----
examples/misc/alias-conv.sh
	- updated, now uses code from examples/functions/csh-compat to do
	  the alias conversion, uses `command' builtin in functions it
	  creates, does some substitution of csh special variables to
	  bash equivalents

examples/misc/cshtobash
	- a more ambitious script that attempts to convert csh aliases,
	  environment variables, and local variables to bash equivalents

				   7/22
				   ----
bashline.c
	- added `:' to the set of completion word break characters so that
	  individual directories in $PATH assignments can be completed

aclocal.m4
	- added a new macro, BASH_CC_WORKS, that aborts configuration if
	  ${CC} can't compile a simple program successfully

configure.in
	- call BASH_CC_WORKS before doing anything else

				   7/23
				   ----
execute_cmd.c
	- fixed select_query to print the prompt ($PS3) to stderr

support/bashbug.sh
	- workaround for bug in SunOS 5.x /bin/sh that causes it to
	  not ignore interrupts while waiting for a foreground process
	  to exit

				   7/24
				   ----
general.c
	- added new functions to decompose `timeval's and `clock_t's into
	  seconds and thousandths of seconds:  timeval_to_secs and
	  clock_t_to_secs
	- changed print_timeval and print_time_in_hz to call timeval_to_secs
	  and clock_t_to_secs, respectively
	- removed no-longer-used third argument for print_timeval and
	  print_time_in_hz -- `time' output is now done in execute_cmd.c

general.h
	- new extern declarations for timeval_to_secs and clock_t_to_secs

builtins/times.def
	- changed calls to print_timeval and print_time_in_hz, removing the
	  no-longer-used third argument

execute_cmd.c
	- changed the way time_command prints its output:  it now interprets
	  a format string, replacing several escape sequences prefixed with
	  a `%' with the real, user, and system times.  There are options in
	  the format string to ask for the `long' format that `times' uses
	  as well as to specify the number of places after the decimal point,
	  and whether to output fractional seconds at all
	- time_command now uses the value of the `TIMEFORMAT' variable, if
	  present, to format the timing output.  This is flexible enough to
	  encompass the bash default, posix `time -p', BSD, and SV time
	  formats

				   7/25
				   ----
Makefile.in
	- `make clean' should delete the files listed in $(CREATED_SUPPORT);
	  `make mostlyclean' should not

doc/{bash.{1,html},bashref.texi}
	- fixed an error in the description of the effect that setting and
	  unsetting GLOBIGNORE has on the setting of the `dotglob' option

doc/bashref.texi
	- updated the section listing the major differences between bash
	  and the SVR4.2 shell

lib/readline/readline.c
	- removed the setting of _rl_suppress_redisplay, since it doesn't
	  really do anything yet

oslib.c
	- new function get_clk_tck (void), returns the value of _SC_CLK_TCK
	  if sysconf(3) is available, otherwise returns the value of
	  CLOCKS_PER_SEC (default 60)

general.c
	- moved CLOCKS_PER_SEC defines to oslib.c
	- changed clock_t_to_secs to call get_clk_tck once to get the
	  right value to use

externs.h
	- extern declaration for get_clk_tck

execute_cmd.c
	- changed print_formatted_time so that a `%' at the end of the string
	  is output literally
	- changed print_formatted_time to output a newline after the
	  translated format string, so it does not need to be included in
	  the format
	- changed BASH_TIMEFORMAT (the default time format) to have a leading
	  newline to match ksh93

configure.in
	- use `shlicc2' on BSD/OS machines

				   7/26
				   ----
doc/bash.html
	- major overhaul, cleaned up text, corrected some minor HTML errors

variables.c
	- call sv_optind and sv_opterr to initialize the getopts stuff in
	  initialize_shell_variables

				   7/29
				   ----
shell.c
	- don't let maybe_execute_file try to read files that are not
	  `regular files'

				   7/30
				   ----
parse.y
	- cast `string' in yy_string_get() to unsigned char * to avoid
	  sign extension bugs.  For example, bash -c $'ls\377who'


builtins/reserved.def
	- add help text for the `time' reserved word
	- deleted description of `HISTCONTROL'
	- added descriptions for HISTIGNORE, PWD, HOSTNAME, GLOBIGNORE,
	  MACHTYPE

				   7/31
				   ----
builtins/common.c
	- parse_and_execute saves and restores the line number around
	  calls, and resets it to 0 when pushing the string onto the
	  input stack

parse.y
	- added code that parses `` within a double-quoted string as a
	  single word

				    8/6
				    ---
configure.in, config.h.in
	- look for `textdomain' as well as `gettext' for internationalization

locale.c
	- when LC_MESSAGES is set, call textdomain as well as setlocale
	- new variable `default_domain', used to track the value of
	  $TEXTDOMAIN

subst.c	
	- call sv_locale when TEXTDOMAIN changes

				    8/7
				    ---
error.c
	- new function, sys_error(), which prints a formatted string followed
	  by a colon and strerror(errno) to stderr

error.h
	- extern declaration for sys_error

jobs.c, nojobs.c, input.c, execute_cmd.c, subst.c
	- changes to use sys_error()

[many files]
	- changes to many of the literal strings in the code for consistency
	  and easier potential translation

				    8/8
				    ---
parse.y
	- new function debug_parser(int) to toggle the value of yydebug
	  if YYDEBUG != 0

				    8/9
				    ---
oslib.c
	- don't use CLOCKS_PER_SEC, just try to get CLK_TCK (60 by default)

bashline.c
	- set saved_history_line_to_use to -1 when it's not going to be used
	  rather than 0.  A value of 0 can be confused with the first
	  history line

builtins/evalstring.c
	- moved parse_and_execute and auxiliary functions here from
	  builtins/common.c

builtins/evalfile.c
	- moved maybe_execute_file here from shell.c

Makefile.in, builtins/Makefile.in
	- changes necessitated by the new files

				   8/12
				   ----
builtins/common.c
	- fixed an off-by-one bug in single_quote that could make bash
	  run off the end of a string if it consisted entirely of single
	  quotes

				   8/13
				   ----
shell.c
	- moved code from main() to a new function: open_shell_script
	- don't try to fclose(default_input) if BUFFERED_INPUT is defined
	- moved argument binding code out of two places in main() and
	  open_shell_script() to a new function: bind_args().  This takes
	  an additional argument telling whether to bind starting at $0
	  or $1
	- moved the code that calls the with_input_from_* functions into
	  a new function: set_bash_input
	- moved the normal shell command-line option parsing code out of
	  main() into a new function: parse_shell_options
	- moved the long option parsing code out of main() into a new
	  function: parse_long_options()

general.c
	- new function: move_to_high_fd(fd), which tries to move FD to a
	  file descriptor close to the allowed maximum, returning the new
	  fd and closing the old one (or returning the old one if something
	  goes wrong)

general.h
	- new extern declaration for move_to_high_fd

variables.c
	- moved indirection_level_string() here from shell.c

jobs.c
	- change initialize_jobs to use move_to_high_fd() instead of the
	  inline code to do the same thing

				   8/14
				   ----
lib/readline/readline.c
	- add `en_US.ISO8859-1' to the list of legal LANG values that turns
	  on readline's 8-bit mode

				   8/15
				   ----
builtins/evalfile.c
	- combined source_file and maybe_execute_file into a new function
	  _evalfile(fname, flags), where the flags select the appropriate
	  behavior

eval.c
	- moved the functions that perform the read-eval loop here from
	  shell.c

execute_cmd.c
	- changed CPU calculation for printing timing statistics using
	  ideas and code from Deven Corzine (deven@ties.org)

eval.c, builtins/evalstring.c
	- make sure we dispose of global_command if set -n is on and the
	  shell is not interactive

				   8/16
				   ----
variables.c
	- make a new array variable, BASH_VERSINFO, with version information:

		BASH_VERSINFO[0] = release	(2)
		BASH_VERSINFO[1] = version	(00)
		BASH_VERSINFO[2] = patch level	(0)
		BASH_VERSINFO[3] = build version (1058)
		BASH_VERSINFO[4] = release status (beta1)
		BASH_VERSINFO[5] = $MACHTYPE	(sparc-sun-sunos4.1.4)

doc/{bash.{1,html},bashref.texi}
	- Documented BASH_VERSINFO

configure.in, config.h.in
	- look for bindtextdomain(), set HAVE_BINDTEXTDOMAIN if found

subst.c
	- call sv_locale if TEXTDOMAINDIR is set or changes

locale.c
	- handle TEXTDOMAINDIR in set_locale_var; call bindtextdomain if
	  it is present

tests/array.tests
	- added calls to egrep to filter out BASH_VERSINFO and PIPESTATUS,
	  which can vary from system to system

				   8/19
				   ----
shell.c
	- moved line_buffer_stream from here to oslib.c, made it into a
	  replacement for setlinebuf() if that is not available

externs.h
	- extern declaration for setlinebuf()

lib/readline/input.c
	- in rl_gather_tyi, punt if chars_avail < 0 after checking input fd

				   8/20
				   ----
builtins/suspend.def
	- send SIGSTOP instead of SIGTSTP

				   8/21
				   ----
builtins/colon.def
	- added true and false as builtins (undocumented)

CWRU/POSIX.NOTES, doc/bashref.texi
	- note that process substitution is not available in posix mode

bashintl.h
	- new header file for internationalization, included by locale.c

				   8/22
				   ----
subst.c
	- in command_substitute, set istring to NULL before trying to
	  make the pipe, so if that fails, the code at error_exit:
	  doesn't try to free it

execute_cmd.c
	- when executing a shell script without a leading `#!' internally,
	  and the shell is not interactive, close the fd to the script
	  we're reading.  If this is called by the exec builtin, the shell
	  will not have forked, and the fd will not have been closed, even
	  though it's marked close-on-exec
	- if subshell_argv is non-null, free its members (except 0) and
	  subshell_argv in shell_execve before reassigning it
	- dispose of currently_executing_command before jumping back to
	  subshell_top_level

builtins/hash.def
	- use a sentinel variable so we only initialize the hash table
	  once in initialize_filename_hashing

shell.c
	- don't flush the filename hash table in shell_reinitialize
	- free dollar_vars[0] in set_shell_name before assigning it
	- don't fetch the current hostname more than once
	- don't fetch the current user information more than once unless
	  the uid changes

parse.y
	- initialize_bash_input should free bash_input.name if it is
	  non-null before zeroing it

				   8/23
				   ----
aclocal.m4
	- changed BASH_CHECK_SOCKLIB:  if -lsocket is present, check for
	  and cache the existence of -lnsl.  Define LIBS appropriately
	  based on the values of the cache variables rather than relying
	  on the autoconf tests to do it

				   8/26
				   ----
parse.y
	- fix up yy_readline_get and yy_stream_get to fix the sign
	  extension problem

shell.c
	- move the setjmp(top_level) that catches early SIGINTs to the
	  first statement in main()

Makefile.in
	- added a `strip' target to strip the binary

[bash-2.0-beta1 frozen]

				   8/27
				   ----
parse.y
	- replaced several static state variables with a single flags word:
	  parser_state

				   8/28
				   ----
parse.y
	- in read_token_word, combined the ${...} case with the other
	  expansion cases -- the code was identical
	- added code to handle ksh-style ((...)) -- equivalent to
	  `let "..."'.  In fact, the above construct is translated internally
	  into `let "..."', so error messages output by the evaluator
	  will contain `let'

expr.c
	- changed evalerror to call internal_error so the name of the
	  shell script is prefixed to the message, if necessary

Makefile.in
	- changed RELSTATUS to `beta2'

tests/{arith,new-exp}.{tests,right}
	- changed the expected error message because of the change in format
	  of the arithmetic evaluation error messages in expr.c

builtins/pushd.def
	- changed pushd_builtin so `pushd -' is equivalent to `pushd $OLDPWD'

externs.h
	- changed the extern declaration for setlinebuf() to avoid having
	  to include stdio.h before externs.h everywhere

				   8/29
				   ----
error.c
	- new function, parser_error, for use by parts of the parser that
	  don't want to call report_syntax_error

error.h
	- extern declaration for parser_error

parse.y
	- changed some parts of the parser to use parser_error
	- made the ((...)) code #ifdef'd on DPAREN_ARITHMETIC

shell.c
	- added a line to the --help output saying to use `bashbug' to
	  report bugs

configure.in
	- added new option: --enable-dparen-arithmetic; it controls
	  the DPAREN_ARITHMETIC define in config.h
	- changed $host_os check for SCO to only enable -DWAITPID_BROKEN
	  for sco3.2v5; all other SCO versions enable -DMUST_UNBLOCK_CHILD

config.h.in
	- added line for DPAREN_ARITHMETIC, modified by configure

doc/{bash.{1,html},bashref.texi}
	- documented new ((...)) command and new configuration option

execute_cmd.c
	- shell_execve should not try to close default_buffered_input unless
	  it is >= 0.  Other code that closes it and deallocates the buffer
	  should set default_buffered_input to -1

				   8/30
				   ----
configure.in
	- more changes to LOCAL_CFLAGS for sco machines

error.c
	- changed parser_error to handle all cases of the shell being
	  interactive, not interactive, reading from a script, and reading
	  from some other file

parse.y
	- changed report_syntax_error to call parser_error for consistent
	  messages

dispose_cmd.c
	- change dispose_command to use programming_error instead of
	  report_error

execute_cmd.c, input.c, general.c
	- changed calls to report_error to internal_error, since we don't
	  want to possibly exit in any of those cases

				    9/3
				    ---
input.c
	- changed the `localbuf' type to `unsigned char'

parse.y
	- changed yy_stream_get to use feof to test for end of file when
	  not using getc_with_restart

				    9/6
				    ---
config.h.top
	- added a commented-out define for SYS_BASH_LOGOUT, which is a
	  system-wide .bash_logout file, run when a login shell exits
	- added /sbin to STANDARD_UTILS_PATH

builtins/exit.def
	- added support for SYS_BASH_LOGOUT

				   9/10
				   ----
lib/readline/{{chardefs,histlib}.h,{bind,histexpand,readline,util,vi_mode}.c}
	- changed to_upper to _rl_to_upper and to_lower to _rl_to_lower
	- changed digit_value to _rl_digit_value
	- changed digit_p to _rl_digit_p
	- changed uppercase_p and lowercase_p to _rl_uppercase_p and
	  _rl_lowercase_p respectively
	- changed pure_alphabetic to _rl_pure_alphabetic

support/zecho.c
	- new file, implements a bare-bones echo (no -n, no \-escapes),
	  to be used by tests

tests/rhs-exp.tests
	- changed calls to echo to use recho to avoid errors when bash is
	  configured with --enable-usg-echo-default

tests/more-exp.tests
	- changed some calls to echo to use zecho to avoid errors when bash
	  is configured with --enable-usg-echo-default

				   9/11
				   ----
lib/readline/histexpand.c
	- fixed a possible off-by-one error in history_expand_internal when
	  deciding whether or not to reallocate `result'

expr.c
	- fixed expcond() so that an assignment may be supplied as the
	  token after the `?'
	- illegal bases now cause an evaluation error
	- multiple base specifications now cause an evaluation error

tests/arith.tests
	- added more tests for conditional operator and associativity

tests/{run-heredoc,heredoc.{tests,right}}
	- new set of tests for here-documents

builtins/common.c
	- print out the name returned by get_name_for_error in
	  builtin_error()

subst.c
	- set this_command_name to NULL before processing command-line
	  assignment statements so arithmetic evaluation errors don't
	  print garbage
	- according to POSIX.2, echo ${foo?$x} should print the expanded
	  value of $x, even when it doesn't expand into anything

				   9/12
				   ----
shell.c
	- changed the execution of startup files so that $ENV is never
	  run by a non-interactive shell and an interactive shell begun
	  as `sh' reads and executes $ENV, as posix specifies

doc/{bash.{1,html},bashref.texi}
	- updated description of startup file behavior

doc/Makefile.in
	- make sure references to bashref.texi are preceded by $(srcdir)/
	  so we can build the documentation in another directory just by
	  typing `make'; e.g. after giving configure the --srcdir option

subst.c
	- change to array_remove_pattern to avoid evaluating the `param'
	  part of the ${param#word} spec twice when doing things like
	  echo ${A[x=(i+=1)]#${A[y=(i+=2)]}}

				   9/13
				   ----
builtins/bashgetopt.c
	- fixed a problem with `;' option specifier (optional argument)

support/config.{sub,guess}
	- added cases to recognize CRAY C90 and T90

builtins/ulimit.def
	- rewritten almost from scratch to use internal_getopt and to not
	  mask the return value from getrlimit/setrlimit, and to make it
	  easier to maintain
	- added `-l' option for systems with RLIMIT_MEMLOCK (4.4 BSD)

doc/{bash.{1,html},bashref.texi}
	- documented new `-l' option to `ulimit'

				   9/24
				   ----
parse.y
	- added `in' to the list of tokens that should not be followed by
	  a semicolon when combining history lines
	- removed the special-case code in history_delimiting_chars that
	  tried to be smart about `()'

				   9/25
				   ----
print_cmd.c
	- fixes to print_group_command from Andreas Schwab
	- rewrote indent() to use a single malloced string for the spaces
	  to print, rather than calling cprintf multiple times

shell.c
	- make sure to set the strings in current_user to NULL after freeing
	  their contents in uidget().

parse.y
	- make sure decode_prompt_string quotes the values inserted by the
	  \w and \W escape sequences using backslashes if the string will be
	  expanded later because promptvars is set

support/mkdirs
	- removed leading `^' from regular expressions to be matched by
	  `expr' on the advice of meyering@appaloosa.asic.sc.ti.com

				   9/26
				   ----
parse.y
	- added a few more possible flag values for parser_state
	- changed history_delimiting_chars to not add a semicolon after a
	  right paren if we're parsing a case statement

				   9/27
				   ----
builtins/ulimit.def
	- a few minor cleanups

				   10/1
				   ----
builtins/trap.def
	- make sure first_arg is non-empty before calling signal_object_p()

[bash-2.0-beta2 frozen]

				   10/2
				   ----
bashintl.h
	- if we have setlocale(), but don't have a definition for LC_ALL,
	  undefine HAVE_SETLOCALE

configure.in
	- set LOCAL_LDFLAGS on AIX 4.2 to allow dynamic loading of builtins

builtins/enable.def
	- use correct flags for AIX 4.2 in dlopen call if _AIX is defined

examples/loadables/Makefile
	- add sample commands for AIX 4.2

				   10/3
				   ----
variables.c
	- new functions: merge_temporary_env(), merge_builtin_env(), to
	  take temporary_env and builtin_env, respectively, and create
	  shell variables from them

variables.h
	- new extern declarations for merge_temporary_env() and
	  merge_builtin_env()

execute_cmd.c
	- if variable assignments preceds a posix special builtin, and the
	  shell is in posix mode, those assignments should persist in the
	  shell environment after the builtin completes

doc/bashref.texi
	- modified description of what's changed by posix mode to include
	  the persistance of assignment statements preceding special builtins

doc/mkposix
	- new script to create CWRU/POSIX.NOTES directly from the `Bash
	  POSIX Mode' node of bashref.texi, like INSTALL is created

				   10/4
				   ----
lib/{malloc,glob,readline}/Makefile.in, builtins/Makefile.in
	- don't have autoconf substitute LOCAL_CFLAGS into the CFLAGS
	  assignment so people on SCO 3.2v[45] can still build with
	  NO_MEMSCRAMBLE even when they run `make CFLAGS=...'

test.c
	- renamed eaccess() to test_eaccess() to avoid conflict with SCO

config.h.bot
	- #undef HAVE_GETCWD if GETCWD_BROKEN is defined, so we use the
	  replacement in getcwd.c

general.c
	- fixed a small memory leak in full_pathname that occurs if
	  getcwd() returns NULL

oslib.c
	- new constant string variable: bash_getcwd_errstr, to use when
	  getcwd() returns NULL

{general,jobs}.c, parse.y, builtins/{cd.def,common.c}
	- change calls to getwd() to use getcwd() instead

general.c, builtins/common.c, builtins/cd.def
	- changed error behavior when getcwd() returns NULL to use
	  bash_getcwd_errstr, sys_error(), and strerror(errno) where
	  appropriate

sig.c
	- change a couple of calls to signal to set_signal_handler

aclocal.m4
	- added definitions of _popen and _pclose to the BASH_FUNC_GETCWD
	  macro

configure.in
	- added -DPATH_MAX=1024 to LOCAL_CFLAGS for sco3.2v[45] on the
	  advice of <grog@lemis.de>
	- removed check for getwd(3)

externs.h
	- removed extern declaration for getwd(), added extern declaration
	  for getcwd() if HAVE_GETCWD is not defined

oslib.c
	- removed definition of getwd(); it is no longer used

lib/readline/rltty.c
	- changed SETATTR macro for SCO POSIX systems to call tcsetattr
	  with TCSANOW, on advice of <wbader@nacs.fast.net>

				   10/7
				   ----
support/mkdirs
	- slight change to work around a bug in the HP-UX `expr'

				   10/8
				   ----
lib/readline/vi_mode.c
	- changes so that the text inserted with an `i' command is available
	  to be reinserted with `.'

examples/functions/autoload.v2
	- new implementation: uses arrays, keeps a list of autoloaded
	  functions, allows autoloaded functions to be removed, allows
	  autoloaded functions to be listed

execute_cmd.c
	- when freeing the members of subshell_argv in shell_execve(), free
	  only the members up to subshell_argc

				   10/9
				   ----
configure.in
	- replaced calls to AC_HAVE_FUNCS with AC_CHECK_FUNCS
	- replaced calls to AC_FUNC_CHECK with AC_CHECK_FUNC
	- replaced calls to AC_HAVE_HEADERS with AC_CHECK_HEADERS
	- added additional code to check for libintl.{a,so} for the
	  internationalization functions if bindtextdomain is not found
	  in libc
	- define HAVE_WAIT3 if AC_FUNC_CHECK(wait3,...) succeeds, rather
	  than HAVE_FUNC_WAIT3, which is not used in the source
	- added a call to AC_FUNC_STRCOLL to check for the presence of a
	  working strcoll(3)

config.h.in
	- removed HAVE_FUNC_WAIT3
	- added HAVE_STRCOLL

variables.c, stringlib.c
	- move sort_char_array from variables.c to stringlib.c

variables.h, externs.h
	- move extern declaration of sort_char_array from variables.h to
	  externs.h

variables.c
	- don't sort the exported environment, even when we're not in
	  posix mode

stringlib.c
	- changed qsort_string_compare to use strcoll(3) if it is available
	  (HAVE_STRCOLL is defined).  This means that the results of glob
	  expansions are now sorted in the per-locale collation order

locale.c
	- track the value of $LC_COLLATE and call setlocale(LC_COLLATE,...)
	  when it changes.  Also, set its default value

subst.c
	- LC_COLLATE is now a special variable; call sv_locale when it is
	  assigned to or unset

lib/readline/util.c
	- move compare_strings here from complete.c; renamed it
	  _rl_qsort_string_compare; made it use strcoll(3) if it's
	  available; made it global so other library files can use it

lib/readline/complete.c
	- use _rl_qsort_string_compare instead of static compare_strings.
	  This means that completions are now sorted in a locale-specific
	  collation order

lib/readline/funmap.c
	- removed static declaration of qsort_string_compare; qsort now
	  uses _rl_qsort_string_compare instead

oslib.c
	- rewrote stricmp, strnicmp; renamed them strcasecmp and
	  strncasecmp, since they're only compiled in if HAVE_STRCASECMP
	  is not defined

externs.h
	- removed extern declarations of strnicmp, stricmp, replacing them
	  with declarations of strcasecmp and strncasecmp if HAVE_STRCASECMP
	  is not defined; removed #defines of stricmp and strnicmp to
	  strcasecmp and strncasecmp

trap.c
	- changed calls to stricmp to direct calls to strcasecmp

Makefile.in
	- bumped RELSTATUS to `beta3'

doc/bash.{1,html}
	- added mention of LC_COLLATE

doc/bashref.texi
	- removed item about sorting environment from the section on posix
	  mode

				   10/16
				   -----
subst.c
	- fixed array_length_reference to return 0 for an unbound variable
	  and 1 for a variable that is not an array

examples/scripts.v2/cdhist.bash
	- package with functions to replace cd and maintain a cd directory
	  stack

examples/scripts.v2/pmtop
	- a `poor man's top' for SunOS 4.x and BSD

examples/scripts.v2/bashrand
	- a script to return a random number within a specified range, with
	  an optional seed

examples/scripts/zprintf
	- printf(1) replacement that uses gawk to do the output

doc/{bash.{1,html},bashref.texi}, lib/readline/doc/hsuser.texinfo
	- several small corrections

				   10/17
				   -----
variables.c
	- changed the calls to list_string_with_quotes and then
	  expand_words_no_vars in assign_array_var_from_string to a single
	  call to expand_string.  This behaves more rationally, and closer
	  to ksh93

subst.c
	- commented out list_string_with_quotes -- it is no longer used

lib/readline/terminal.c
	- new function, _rl_set_screen_size(int rows, int cols), to set
	  readline's idea of the screen size

jobs.c, nojobs.c
	- make sure that window size changes are propagated back down to
	  the readline code, by calling _rl_set_screen_size with the
	  new sizes.  This happens when bash gets a SIGWINCH or if
	  `checkwinsize' is set with `shopt'

				   10/18
				   -----
support/config.guess
	- added code to recognize the various NetBSD ports

lib/readline/signals.c
	- don't install a handler for SIGALRM if the containing application
	  has installed a handler with SA_RESTART as part of the flags.
	  This is in effect, obviously, only for systems with POSIX signals.

subst.c
	- make parameter_brace_expand_length expand variables in a double-
	  quoted environment so it takes spaces in the variable value into
	  account

				   10/21
				   -----
command.h
	- flags for possible values of subshell_environment telling what
	  caused the subshell

builtins/command.def
	- the `command' builtin should not be setting CMD_NO_FORK at all;
	  it doesn't know enough about the execution context to do so

execute_cmd.c, subst.c
	- set subshell_environment to one of the values in command.h rather
	  than to `1', so we know what kind of subshell it is (just for
	  informational purposes; nothing actually uses this yet)


				   10/22
				   -----
execute_cmd.c
	- just return EXECUTION_SUCCESS immediately in execute_command_internal
	  if read_but_dont_execute is set

				   10/23
				   -----
general.c
	- fixed check_dev_tty to return immediately if ttyname() returns NULL

builtins/suspend.def
	- SIGSTOP cannot be caught, so there's no reason to try to do so

examples/loadables/{finfo,pathchk,print}.c
	- minor fixes

pathexp.c
	- fix to off-by-one error in setup_ignore_patterns

jobs.c
	- try to set the tty pgrp to our pgrp if we change our pgrp to our
	  pid and become a process group leader.  If it doesn't work,
	  reset our pgrp to what it was originally and disable job control

aclocal.m4
	- new test, BASH_STRUCT_TERMIO_LDISC, to test for a c_line member
	  of struct termio

config.h.in
	- add a new preprocessor variable, TERMIO_LDISC, undefined by default

configure.in
	- call BASH_STRUCT_TERMIO_LDISC after BASH_STRUCT_TERMIOS_LDISC

				   10/25
				   -----
lib/readline/terminal.c
	- increased the size of the termcap buffers to 4096

				   10/29
				   -----
parse.y
	- include memalloc.h for uses of alloca that the code in the
	  generated bison parser does not catch (e.g., HP-UX 10.10)

aclocal.m4
	- new test, BASH_KERNEL_RLIMIT_CHECK, to check whether a given
	  HP-UX machine needs _KERNEL defined for the RLIMIT_* defines in
	  <sys/resource.h> (9.05, 10.01 yes, 10.10,10.20 no)

configure.in
	- call BASH_KERNEL_RLIMIT_CHECK if $host_os begins with `hpux'

config.h.in
	- new #undef for RLIMIT_NEEDS_KERNEL

builtins/ulimit.def
	- only define _KERNEL before including <sys/resource.h> if HPUX
	  and RLIMIT_NEEDS_KERNEL are both defined

[bash-2.0-beta3 frozen]

				   11/1
				   ----
locale.c
	- if setting LC_ALL to a null value (as is done when `unset LC_ALL'
	  is run), call setlocale() to set LC_ALL back to default_locale

lib/readline/readline.c
	- moved i18n code from here to nls.c

lib/readline/Makefile.in, Makefile.in
	- new readline library member, nls.c

lib/readline/nls.c
	- new file, with internationalization code from readline.c (such as
	  it is)
	- updated legal_lang_values to just contain a list of codesets
	- added code modified from a diff sent by Ulrich Drepper
	  <drepper@cygnus.com> to parse a locale specification and isolate
	  and normalize the codeset part, for checking against the values
	  in legal_lang_values

				   11/4
				   ----
builtins/setattr.def, locale.c, aclocal.m4, oslib.c
	- minor cleanups

				   11/5
				   ----
lib/readline/complete.c, test.c, trap.c
	- more minor cleanups

				   11/6
				   ----
parse.y
	- added a `flags' parameter to parse_matched_pair, currently unused

				   11/7
				   ----
configure.in, config.h.in
	- add a check for time_t, defaulting to `long' if it's not
	  defined in <sys/types.h>

builtins/fc.def
	- use `time_t *' instead of `long *' in call to time()

				   11/8
				   ----
configure.in
	- removed check for getpwent in libsun.a; it's not necessary for
	  recent versions of irix (irix[56].?)

				   11/11
				   -----
test.c
	- used `&&' where `||' was needed when testing if HAVE_LSTAT and
	  S_IFLNK are both defined

[bash-2.0-beta3 net release version frozen]

				   11/12
				   -----
builtins/getopt.c
	- when sh_getopt detects that a required argument is not present,
	  set sh_optarg to "" so that getopts does the right thing

				   11/15
				   -----
builtins/ulimit.c
	- made the default (without -H or -S) report the soft limit and set
	  both soft and hard limits (like sh and ksh)

expr.c
	- changed the maximum base in base#num constants to 64, implemented
	  just like ksh93

doc/{bash.{1,html},bashref.texi}
	- updated description of ulimit builtin to new behavior when
	  neither -H nor -S is supplied
	- updated arithmetic evaluation section with new maximum base and
	  explanation of how numbers between 10 and 63 are represented

lib/readline/vi_mode.c
	- in rl_vi_done_inserting, don't try to save the text entered while
	  in insert mode unless rl_undo_list is non-null (indicating that
	  there was actually some text to be saved)

				   11/19
				   -----
lib/readline/tcap.h
	- new file, for termcap library definitions.  Uses <termcap.h> if
	  it is available

lib/readline/rldefs.h
	- remove inclusion of termcap.h; now included in tcap.h

lib/readline/{terminal,display,readline}.c
	- include tcap.h

lib/readline/Makefile.in
	- update dependencies to include tcap.h

				   11/21
				   -----
lib/readline/complete.c
	- broke the code that computes the lcd of the list of completion
	  matches out into a separate function, compute_lcd_of_matches()

lib/readline/complete.c
	- call compute_lcd_of_matches after calling the application-specific
	  completion ignore function, since it may have eliminated some
	  names from the match list

builtins/cd.def
	- replaced instances of MAXNAMLEN in the spelling correction code
	  with PATH_MAX

lib/readline/terminal.c
	- new termcap capabilities: kh (sent by Home key) and kH (sent by
	  End key) automatically bound to beginning-of-line and end-of-line
	  respectively in emacs_standard and vi_movement maps

mailcheck.c
	- fix to remember_mail_dates so any message following the
	  filename is saved correctly

				   11/22
				   -----
lib/readline/bind.c
	- fixed extern declaration of _rl_parsing_coditionalized_out
	  to match declaration in readline.c

				   11/25
				   -----
doc/{bash.{1,html},bashref.texi}
	- fixed a gross documentation error in the description of
	  ${parameter:offset:length} (offset and length were transposed)
	- slight changes to the description of output redirection

subst.c
	- new function, quoted_substring, to return substrings of variables
	  when the expression is within double quotes and the value has
	  CTLESC characters embedded within it.  Called by
	  parameter_brace_substring
	- get_var_and_type should return VT_POSPARMS if `*' is passed as
	  the variable name
	- added a new first parameter for pos_params -- the variable name
	- changed pos_params to obey the rules for "$*" wrt using the
	  first character of IFS as the separator in the result
	- if an unquoted $* or $@ is expanded, call quote_escapes on the
	  result to protect any special characters from inadvertently
	  causing quoting

				   12/3
				   ----
builtins/ulimit.def
	- corrected a misspelling of `unlimited'
	- added support for linux RLIMIT_AS resource limit for -v option
	  and changed the block multiplier to 1024 if we have RLIMIT_VMEM
	  or RLIMIT_AS

				   12/5
				   ----
lib/readline/readline.c
	- fix rl_insert to handle a count of exactly 1024

shell.c
	- new function: unbind_args(), which removes all the positional
	  parameters.  Just calls remember_args(NULL, 1)

execute_cmd.c
	- call unbind_args when executing a subshell, after setting up
	  subshell_argX

bashintl.h
	- include <libintl.h> if HAVE_LIBINTL_H defined

config.h.in
	- add HAVE_LIBINTL_H define

configure.in
	- add call to AC_CHECK_HEADERS for libintl.h

doc/Makefile.in
	- added infodir and various mandir defines for completeness

Makefile.in
	- changed some of the *dir defines to use the autoconf values
	  (e.g., bindir = @bindir@)
	- changed manroot to mandir, removed old mandir and manext variables
	- added `manpfx' variable; should be either `man' or `cat'

				   12/6
				   ----
lib/readline/readline.c
	- fixed rl_digit_loop so it once again displays the argument count
	  as it's being entered (added calls to _rl_save_prompt and
	  _rl_restore_prompt)

				   12/7
				   ----
support/config.guess
	- recognize netbsd/vax
	- recognize openbsd on all supported platforms
	- recognize tenon's machten running on powerpc and macintosh

				   12/9
				   ----
support/config.guess
	- added all sorts of systems from config.guess distributed with
	  autoconf-2.12

				   12/10
				   -----
subst.c
	- new function quoted_strchr(); does the same thing as strchr but
	  honors shell backslash and CTLESC quoting conventions
	- parameter_brace_patsub now calls quoted_strchr

				   12/11
				   -----
shell.c
	- if the shell is named `-su', run the normal login shell startup
	  files, even if the shell is not interactive.  This handles the
	  case of `su - username -c command' compatibly

lib/readline/readline.c
	- minor change to rl_digit_loop so that M-- and M--1 are equivalent,
	  as the prompt for digit arguments has always implied

lib/malloc/malloc.c
	- added definitions of calloc() and cfree(), compiled in unless
	  NO_CALLOC is defined to cpp


				   12/16
				   -----
parse.y
	- protect uses of history_expansion_inhibited with #ifdef
	  BANG_HISTORY

[bash-2.0-release candidate frozen]

builtins/common.c
	- changed backslash_quote to quote a tilde if it's the first
	  character in the string

				   12/17
				   -----
aclocal.m4
	- changed BASH_CC_WORKS to provide a cross-compiling default for
	  better error messages

configure.in
	- generated configure using autoconf-2.12
	- changed the default value of CFLAGS to `-g -O2'

				   12/18
				   -----
aclocal.m4
	- look for /var/spool/mail before /usr/spool/mail when checking
	  for the default mail directory

jobs.c, builtins/shopt.def
	- fixed a couple of `macro replacement within a string literal'
	  problems

Makefile.in
	- removed `realclean' target

shell.c
	- changed the first line ouput by bash --version to conform to
	  the latest GNU coding standards (replace space between version
	  and machtype with a hyphen)

				   12/19
				   -----
execute_cmd.c
	- when looking at the debug trap in execute_function and
	  execute_command_internal, make sure it's trapped and not
	  ignored before trying to save the value of the trap string

				   12/20
				   -----
trap.c
	- changed set_signal and ignore_signal to handle EXIT_TRAP and
	  DEBUG_TRAP specially, so we don't try to fetch signal handlers
	  or do other unnecessary things

				   12/22
				   -----
builtins/ulimit.def
	- if the current euid is not 0, and we're trying to set the hard
	  limit of a resource to RLIM_INFINITY, set it to the current hard
	  limit to avoid error messages

builtins/read.def
	- fix for bug that caused core dump if line read had leading white
	  space and IFS was set to ''

[bash-2.0-release frozen]
