aboutsummaryrefslogtreecommitdiffstats
path: root/CWRU/changelog
diff options
context:
space:
mode:
Diffstat (limited to 'CWRU/changelog')
-rw-r--r--CWRU/changelog2528
1 files changed, 2528 insertions, 0 deletions
diff --git a/CWRU/changelog b/CWRU/changelog
index cd683aa..7a0a0f0 100644
--- a/CWRU/changelog
+++ b/CWRU/changelog
@@ -5210,3 +5210,2531 @@ cross-build/opennt.cache
files are
[bash-2.03 released]
+
+ 2/19
+ ----
+configure.in
+ - changed OPENNT_ROOT to INTERIX_ROOT for building on Interix
+
+support/config.guess
+ - added two stanzas for Interix running on alpha and intel hardware
+
+ 2/22
+ ----
+config-bot.h
+ - if PROMPT_STRING_DECODE is not defined, #undef PPROMPT before
+ redefining it, to avoid warning messages
+
+execute_cmd.c
+ - set jobs_hack in execute_subshell_builtin_or_function only if
+ JOB_CONTROL is defined
+
+ 2/24
+ ----
+trap.c
+ - fixed an obscure bug caused by a race condition in run_pending_traps.
+ Read the comments in the source code for a full description of the
+ problem and solution
+
+ 3/1
+ ---
+aclocal.m4
+ - new test, BASH_STRUCT_TIMEVAL, which tries to compile a code
+ fragment that includes <sys/time.h> and <time.h> as appropriate
+ and defines HAVE_TIMEVAL if the compile succeeds
+
+configure.in
+ - call BASH_STRUCT_TIMEVAL rather than running a pair of
+ AC_HEADER_EGREPs on sys/time.h and time.h
+
+lib/readline/histfile.c
+ - include "posixstat.h" rather than <sys/stat.h>
+ - in history_truncate_file, only try to truncate if the history file
+ is a regular file
+
+ 3/2
+ ---
+aclocal.m4
+ - changed BASH_STRUCT_TIMEVAL back to using a pair of
+ AC_EGREP_HEADERs instead of compiling a program fragment
+
+lib/readline/readline.c
+ - readline_internal_charloop should cast the first argument to
+ _rl_dispatch to `unsigned char' to avoid problems with negative
+ array indices on systems where signed chars are the default
+
+lib/readline/kill.c
+ - instead of doing a sequence of next_history() calls in
+ rl_yank_nth_arg_internal, save and restore the history
+ position explicitly after finding the correct entry. This
+ attempts to ensure that rl_yank_nth_arg leaves the history
+ pointer set to the same position as when it was called.
+ Fix from Vasco Pedro <vp@di.fct.unl.pt>
+
+ 3/5
+ ---
+redir.c
+ - broke code that opens file for redirection in do_redirection_internal
+ into a separate function: redir_open(path, flags, mode, ri)
+
+general.h
+ - changed STREQN so that it evaluates to 1 (strings are equivalent)
+ if N == 0, to match the behavior of strncmp
+
+lib/sh/zwrite.c
+ - new file, zwrite() from builtins/evalstring.c
+
+builtins/evalstring.c
+ - removed private definition of zwrite
+
+builtins/common.c
+ - double_quote needs to protect newlines with backslashes as well
+ - new function, un_double_quote, to remove backslashes proctecting
+ characters that are special in double quotes
+
+builtins/common.h
+ - new extern declaration for un_double_quote
+
+parse.y
+ - changed read_token_word to requote the expanded value of $'...'
+ using single_quote
+ - added a new flag to parse_matched_pair: P_ALLOWESC. It allows
+ backslashes to quote embedded single quotes, and is used by
+ the $'...' translation code for better ksh93-compatibility
+ - changed localeexpand to call mk_msgstr on the string passed
+ before displaying it if all we're doing is displaying translatable
+ strings in `po' format. mk_msgstr quotes backslashes and double
+ quotes in the string passed with backslashes, and encloses the
+ result in double quotes. If only -D is supplied, the string is
+ not changed at all -- this is what ksh93 does
+
+lib/readline/rlconf.h
+ - removed PAREN_MATCHING #define, paren matching is always compiled
+ into readline
+
+lib/readline/parens.c
+ - removed code that was active if PAREN_MATCHING was not defined
+ - added _rl_enable_paren_matching, which is called when the readline
+ variable `blink-matching-paren' is assigned a value and changes
+ the appropriate key bindings in emacs_standard_keymap
+
+lib/readline/bind.c
+ - no more PAREN_MATCHING defines, `blink-matching-paren' is always
+ available
+ - if `blink-matching-paren' is assigned a value, call
+ _rl_enable_paren_matching (rl_blink_matching_paren)
+
+lib/readline/emacs_keymap.c
+ - removed PAREN_MATCHING defines; the default key bindings for
+ ), ], and } are self-insert
+
+ 3/7
+ ---
+stringlib.c
+ - added an extra argument to ansicstr so that `echo -e' will not
+ convert \' to '
+
+externs.h
+ - changed extern declaration for ansicstr
+
+parse.y, builtins/{echo,printf}.def
+ - changed calls to ansicstr() appropriately
+
+eval.c
+ - in parse_string_to_word_list, if an unexpected token is encountered
+ that causes the string to not parse to a simple command, or to
+ completely consume the string, display an error message and jump
+ back to the top level after restoring the parsing environment,
+ returning an error status from the attempted assignment
+
+ 3/8
+ ---
+lib/glob/fnmatch.c
+ - fixed patscan and extmatch to handle embedded [...](...) patterns
+ better
+
+tests/{extglob2.{tests,right},run-extglob2}
+ - an additional set of ksh extended globbing tests, cribbed from zsh
+
+ 3/10
+ ----
+general.c
+ - changed unset_nodelay_mode slightly to make sure it handles both
+ O_NDELAY and O_NONBLOCK if they have different values; it now
+ returns a value of 0 on success (or no action); -1 on failure
+
+general.h
+ - changed extern declaration for unset_nodelay_mode
+
+
+lib/readline/shell.c
+ - new function: unset_nodelay_mode; identical to definition in
+ general.c
+
+lib/readline/input.c
+ - changed rl_getc to call unset_nodelay_mode if the read fails with
+ errno == EWOULDBLOCK || errno == EAGAIN
+
+ 3/11
+ ----
+lib/termcap/termcap.c
+ - minor changes from termutils-2.0
+ - minor change to MS-DOS version of valid_filename_p so MS-DOS-specific
+ code from tgetent() can be removed (from Michel@smr.nl)
+
+lib/readline/bind.c
+ - in _rl_read_file, null-terminate the buffer at the number of
+ characters actually read, not what stat() says the file size is
+ - use ~/_inputrc as a last-ditch inputrc filename on MS-DOS
+
+lib/readline/complete.c
+ - change printable_part to handle MS-DOS `drive-letter:' pathname
+ prefixes
+ - removed __GO32__ code, since it's for DJGPP 1.x, which is not
+ supported any more, and they don't work for DJGPP 2.x
+ - added code to support MS-DOS drive letter prefixes and //X/...
+ to filename_completion_function
+ - _rl_completion_case_fold defaults to 1 on MS-DOS
+
+lib/readline/{display,input,readline,rltty,signals,terminal}.c
+ - removed __GO32__ code
+
+lib/readline/histfile.c
+ - make read_history_range and history_truncate_file work with the
+ actual number of characters read from the file, not the file size
+ as reported by stat()
+
+lib/readline/readline.c
+ - change bind_arrow_keys_internal to bind MS-DOS arrow keys to the
+ appropriate functions if __MSDOS__ is defined
+
+lib/readline/rltty.c
+ - make sure set_winsize is always defined, with a null body if
+ TIOCGWINSZ is not defined
+
+lib/readline/shell.c
+ - include <stdio.h>, since this file uses sprintf
+
+support/shobj-conf
+ - MS-DOS does not support shared objects
+
+lib/tilde/tilde.c
+ - change tilde_find_suffix and isolate_tilde_prefix to understand
+ backslash as a pathname separator on MS-DOS
+
+ 3/12
+ ----
+lib/readline/{bind,readline,terminal}.c
+ - no longer need to include <signal.h>
+
+lib/readline/terminal.c
+ - don't need to include <setjmp.h>
+
+builtins/history.def
+ - broke the code than handles deleting a particular history entry
+ from the history list out into a separate function: delete_histent
+ - added `-d offset' option to delete the history entry at position
+ OFFSET, as displayed when the history is listed
+
+jobs.c, nojobs.c
+ - new function, count_all_jobs(), returns the number of active jobs
+ in the jobs list
+
+jobs.h
+ - extern declaration for count_all_jobs()
+
+configure.in
+ - check for C library function ttyname()
+
+config.h.in
+ - define HAVE_TTYNAME if configure finds ttyname(3)
+
+parse.y
+ - two new escape sequences for decode_prompt_string:
+
+ \j number of active jobs in jobs list
+ \l basename of shell's tty device name
+
+doc/{bash.1,bashref.texi}, lib/readline/doc/hsuser.texi
+ - documented new `history -d' option
+ - documented new \j and \l prompt string expansion sequences
+
+lib/readline/bind.c
+ - new static state variable, currently_reading_init_file, set to
+ 1 while _rl_read_init_file is operating on a file
+ - changed _rl_init_file_error to include the name and line number
+ from the init file only if currently_reading_init_file is non-zero
+ (this is needed since applications like bash can call
+ rl_parse_and_bind, and error messages from those calls would be
+ misleading if they referred to the last inputrc file read
+
+bashline.c
+ - support for a `extended command keymap', which will allow
+ readline key sequences to be bound to unix commands using an
+ auxiliary keymap and a special function that knows how to execute
+ commands from it
+ - bind_keyseq_to_unix_command supports `bind -x'
+ - bash_execute_unix_command is the readline callback that looks in
+ an auxiliary keymap to find the shell command to execute for a
+ particular key sequence
+ - new variable, no_empty_command_completion, which suppresses $PATH
+ searching for command completion when TAB is typed on an empty
+ line
+
+bashline.h
+ - extern declaration for new function bind_keyseq_to_unix_command
+
+builtins/bind.def
+ - added `-x' option to bind a key sequence to a shell command
+
+builtins/help.def
+ - added `-s' option to just print a builtin's short_doc
+
+builtins/shopt.def
+ - added new shell option, no_empty_cmd_completion', mirroring value
+ of no_empty_command_completion
+
+doc/{bash.1,bashref.texi}
+ - documented new `bind -x' option
+ - documented new shopt `no_empty_cmd_completion' option
+ - documented new `help -s' option
+
+Makefile.in
+ - changed RELSTATUS to `devel'
+
+_distribution
+ - changed to `2.04'
+
+ 3/15
+ ----
+support/shobj-conf
+ - add `-h $@' to linking options on Solaris 2 with gcc
+
+expr.c
+ - changes to add {pre,post}-{inc,dec}rement operators (++id, --id,
+ id++, id--). These are somewhat more liberal than ksh93, and
+ may require more strict syntax checking down the line
+
+tests/arith.{tests,right}
+ - additional tests for {pre,post}-{inc,dec}rement operators
+
+ 3/16
+ ----
+command.h
+ - structures and types for ksh-93-style arithmetic `for' command
+
+configure.in
+ - new `--enable-arith-for-command' option to compile arithmetic for
+ command code into the shell
+
+config.h.in
+ - new define, ARITH_FOR_COMMAND, turned on by configure
+
+parse.y
+ - changed read_token_word to parse a set of arithmetic for expressions
+ between (( and )) as long as the last token read before the `(('
+ was FOR
+ - added grammar rules to build arithmetic for commands
+
+make_cmd.c
+ - functions to parse (( ... )) into the three sub-expressions needed
+ for the arithmetic for command and create the command structures
+ (done this way instead of in the grammar rules to avoid forcing
+ users to quote special characters between the (( and )) )
+
+make_cmd.h
+ - extern declaration for make_arith_for_command
+
+copy_cmd.c
+ - code to copy arithmetic for commands
+
+dispose_cmd.c
+ - code to dispose of arithmetic for commands
+
+print_cmd.c
+ - code to print arithmetic for commands
+
+execute_cmd.c
+ - code to execute arithmetic for commands and note that they are
+ shell control structures for the piping code
+
+doc/{bash.1,bashref.texi}
+ - documented new arithmetic for command
+
+doc/bashref.texi
+ - documented new configure --enable-arith-for-command option
+
+ 3/17
+ ----
+builtins/read.def
+ - added `-t timeout' option and code to support it
+
+ 3/18
+ ----
+examples/loadables/Makefile.in
+ - various clean targets need to descend into perl
+
+examples/loadables/perl/Makefile.in
+ - added mostlyclean and maintainer-clean targets
+
+include
+ - new directory, with files from lib/posixheaders
+
+lib/posixheaders
+ - removed
+
+{posixwait,unionwait,maxpath}.h
+ - moved from top src directory to include subdir
+
+Makefile.in,builtins/Makefile.in,lib/{glob,malloc,sh,tilde}/Makefile.in
+ - updated dependencies and file lists for new include directory
+ - added BASHINCDIR variable, added -I${BASHINCDIR} to cc's include path
+
+MANIFEST,support/SYMLINKS
+ - updated for new include directory
+
+lib/readline/{ansi_stdlib,posixdir,posixjmp,posixstat,rlstdc}.h
+ - changed symlinks to point to ../../include rather than
+ ../posixheaders
+
+builtins/common.h
+ - changed `#include "../stdc.h"' to `#include "stdc.h"'
+
+builtins/{cd,exec,fc,history,pushd,source,type,umask,printf}.def
+builtins/{mkbuiltins,common,evalfile,evalstring,getopt}.c
+ - changed include specifications:
+ ../posixstat.h -> posixstat.h
+ ../filecntl.h -> filecntl.h
+ ../maxpath.h -> maxpath.h
+ ../memalloc.h -> memalloc.h
+
+include/shtty.h
+ - new file, contents of bashtty.h and code from jobs.c that includes
+ the appropriate terminal file
+
+lib/sh/shtty.c
+ - new file with some tty manipulation utility functions
+
+bashtty.h
+ - removed
+
+jobs.c, nojobs.c
+ - include shtty.h instead of bashty.h and other code that includes
+ the correct system-dependent tty include file
+
+lib/sh/Makefile.in
+ - added shtty.o as part of libsh.a
+
+MANIFEST
+ - added include/shtty.h and lib/sh/shtty.c, removed bashtty.h
+
+ 3/19
+ ----
+lib/readline/display.c
+ - some more __MSDOS__ code to make readline work better with DJGPP:
+ output \r instead of tputs(term_cr, ...)
+
+lib/readline/terminal.c
+ - some changes for __DJGPP__ (one is of dubious value -- doesn't
+ DJGPP have a termcap library?)
+
+ 3/23
+ ----
+configure.in
+ - make sure that the $CC argument to shobj-conf is quoted
+
+support/shobj-conf
+ - changes to SGI SHOBJ_LDFLAGS from David Kaelbling <drk@sgi.com>
+
+ 3/24
+ ----
+lib/sh/zread.c
+ - interface to read(2) that restarts automatically if errno == EINTR
+
+externs.h
+ - new declarations for functions in lib/sh/{zread,zwrite}.c
+
+lib/sh/Makefile.in, Makefile.in
+ - add zread.c, zread.o to appropriate file lists
+
+{subst,input}.c, builtins/{evalstring.c,read.def}
+ - converted some loops around read() to call zread() instead
+
+lib/readline/rltty.h
+ - new struct _rl_tty_chars to save tty special characters
+
+lib/readline/rltty.c
+ - new function save_tty_chars to save tty special characters
+ (currently they're only saved -- nothing looks at them yet)
+ - two new internal library functions, _rl_disable_tty_signals ()
+ and _rl_restore_tty_signals (), intended to disable tty driver
+ signal processing for readline's literal-next code, so users
+ can do stuff like ^V^C and have ^C end up in the readline
+ buffer even if ^C is the terminal's interrupt character
+
+lib/readline/readline.c
+ - changed rl_quoted_insert to disable and restore tty signal
+ handling around the call to rl_read_key (), so users can put
+ tty special chars into the readline buffer
+
+ 3/25
+ ----
+expr.c
+ - added `,' operator (expr1 , expr2) -- both expr1 and expr2 are
+ evaluated and the return value is the value of expr2. Precedence
+ is higher than assignment (which makes it highest)
+ - make `lasttp' (pointer to last token) part of the expression
+ context that is saved and restored by {push,pop}_context. This
+ is used only in error reporting
+
+doc/{bash.1,bashref.texi}
+ - documented new `,' arithmetic operator
+ - cleaned up some of the language concerning variables referenced
+ by name within an arithmetic expression
+
+lib/readline/readline.c
+ - new application-settable variable, rl_num_chars_to_read, which, if
+ set to a non-zero value, causes readline to return after reading
+ that many characters (or at least that many characters, if
+ rl_startup_hook is used to prime the input buffer) rather than
+ when reading a character bound to accept-line
+
+lib/readline/readline.h
+ - extern declaration for rl_num_chars_to_read
+
+builtins/read.def
+ - added new `-n nchars' option to read NCHARS from stdin rather than
+ a complete line. Works both with and without using readline
+
+doc/{bash.1,builtins.texi}
+ - documented new `read -n nchars' option
+
+ 3/26
+ ----
+execute_cmd.c
+ - make sure all uses of PIDs are of type pid_t
+
+redir.c
+ - broke stdin_redirects into two functions: stdin_redirection, which
+ checks a single redirection specification, and a new stdin_redirects,
+ which does what it did before but calls stdin_redirection for each
+ redirection in the chain
+
+ 3/29
+ ----
+aclocal.m4
+ - new test, BASH_CHECK_DEV_STDIN, checks for /dev/stdin. If it's
+ present HAVE_DEV_STDIN is defined and it's assumed that /dev/stdout
+ and /dev/stderr are present as well
+
+configure.in
+ - call BASH_CHECK_DEV_STDIN
+
+config.h.in
+ - add HAVE_DEV_STDIN, initially undefined
+
+test.c
+ - add /dev/std{in,out,err} to the special filenames that are handled
+ by test_stat() if HAVE_DEV_STDIN is not defined
+
+doc/{bash.1,bashref.texi}
+ - documented conditional expressions' handling of /dev/std{in,out,err}
+
+stringlib.c
+ - new function, find_string_in_alist, to find (or match as an extended
+ glob pattern) a string in a STRING_INT_ALIST and return the
+ associated token value
+
+externs.h
+ - extern declaration for find_string_in_alist
+
+redir.c
+ - new STRING_INT_ALIST list of filenames the redirection code handles
+ specially (_redir_special_filenames)
+ - new function, redir_special_open () to handle filenames found in
+ _redir_special_filenames (framework for /dev/tcp and /dev/udp, but
+ those are not implemented get)
+
+doc/{bash.1,bashref.texi}
+ - documented special filename handling in redirections
+
+ 3/30
+ ----
+builtins/read.def
+ - added `-d delim' option, like ksh93, to read until delim rather
+ than newline
+
+doc/{bash.1,bashref.texi}
+ - documented new read `-d delim' option
+
+configure.in
+ - look for gethostbyname(3), inet_aton(3)
+ - look for <netdb.h> and <netinet/in.h>
+ - call BASH_FUNC_GETHOSTBYNAME if gethostbyname(3) is not in libc
+ - check for u_int and u_long types, default to `unsigned int' and
+ `unsigned long' respectively
+ - new enable option `--enable-net-redirections' to compile in the
+ /dev/tcp and /dev/udp redirection code
+
+aclocal.m4
+ - new macro, BASH_FUNC_GETHOSTBYNAME, looks for gethostbyname(3) in
+ the socket libraries if it's not found in libc
+
+config.h.in
+ - new defines: HAVE_GETHOSTBYNAME, HAVE_INET_ATON, HAVE_NETDB_H,
+ HAVE_NETINET_IN_H, NETWORK_REDIRECTIONS
+ - new defines: u_int, u_long
+
+lib/sh/inet_aton.c
+ - new file, from GNU libc, slightly modified to remove inet_addr()
+
+lib/sh/netopen.c
+ - new file, functions to create tcp/udp network connections. Exports
+ a single function: netopen(pathname)
+
+externs.h
+ - extern declaration for netopen()
+
+lib/sh/Makefile.in, Makefile.in, MANIFEST
+ - added appropriate references to inet_aton.c and netopen.c
+
+config-bot.h
+ - if HAVE_SYS_SOCKET_H, HAVE_GETPEERNAME, and HAVE_NETINET_IN_H are
+ all defined, define HAVE_NETWORK
+
+redir.c
+ - call netopen for pathnames of the form /dev/(tcp|udp)/host/port
+ if HAVE_NETWORK is defined; print a warning message otherwise
+ - /dev/tcp and /dev/udp code is only compiled in if
+ NETWORK_REDIRECTIONS is defined
+
+ 3/31
+ ----
+lib/sh/zread.c
+ - new function, zsyncfd(fd) which syncs the kernel's seek pointer on
+ FD with the last character returned by zreadc()
+
+externs.h
+ - extern declaration for zsyncfd
+
+builtins/read.def
+ - use zreadc if the input is not unbuffered (this cuts the number
+ of read(2) calls *way* down)
+ - if input is not unbuffered, call zsyncfd before returning to make
+ sure zreadc's buffering doesn't consume too much input
+
+ 4/1
+ ---
+Makefile.in
+ - install bashbug with mode 555
+
+ 4/2
+ ---
+shell.c
+ - make want_pending_command and read_from_stdin global rather than
+ local variables
+
+flags.c
+ - change which_set_flags to insert `c' and `s' if the `-c' and `-s'
+ invocation options, respectively, were supplied at shell startup
+
+bashline.c
+ - change bash_directory_completion_hook to change the logic for
+ deciding whether or not to parameter expand the directory name --
+ now we expand only if there's a `$' (still has problems if the
+ user quoted the `$') or a `` pair. Fixes bug reported by
+ chuckjr@sinclair.net. To fix the `$' problem, could possibly
+ check what the user typed with rl_line_buffer and start, end
+ parameters to gen_completion_matches
+ - changed attempt_shell_completion to slightly adjust the logic for
+ deciding whether or not a word is in a command position: if the
+ word being completed has a single opening single or double quote
+ before the command separator, treat it as a candidate for (quoted)
+ command word completion
+ - now that we understand partially-quoted strings as completion
+ candidates, we can do command completion on certain unclosed
+ uses of $(...
+
+subst.c
+ - change extract_delimited_string to not return an error for an
+ unclosed construct if DOING_COMPLETION is non-zero
+
+ 4/5
+ ---
+expr.c
+ - fixed `ss=09 ; let ss=10' bug by introducing one-token lookahead
+ after a string token is parsed. If the next token is `=', we
+ don't evaluate the variable's value as an expression, since it's
+ not going to be used
+
+variables.h
+ - added new member to struct variable: exportstr -- for the future
+ caching of strings to be placed into the environment
+ - extern declaration for bind_variable_value
+
+variables.c
+ - make sure that the `exportstr' member of a struct variable is
+ initialized correctly, and put code in to free it where appropriate
+ (if non-null)
+ - new function, bind_variable_value(VAR, VALUE); make shell variable
+ VAR have value VALUE
+ - make sure var->exportstr is invalidated when a variable or function
+ is assigned a value
+
+builtins/declare.def
+ - call bind_variable_value instead of duplicating some of bind_variable
+ inline
+
+ 4/6
+ ---
+variables.h
+ - new macros, VSETATTR and VUNSETATTR to set and clear variable
+ attributes
+
+builtins{read,set,setattr,declare}.def,{execute_cmd,expr,shell,subst,variables}.c
+ - change to use VSETATTR and VUNSETATTR
+
+ 4/7
+ ---
+doc/Makefile.in
+ - if htmldir is set by configure, install the html files into that
+ directory with `make install' and remove them with `make uninstall'
+
+Makefile.in,doc/Makefile.in
+ - htmldir is set by configure and passed from the Makefile to the
+ install in the doc subdirectory
+
+configure.in
+ - substitute `htmldir' into Makefiles
+
+support/config.guess
+ - some small changes for Apple's Rhapsody
+
+lib/termcap/Makefile.in
+ - make the `distclean' and `maintainer-clean' targets remove Makefile
+
+lib/termcap/ltcap.h
+ - new private library include file, for Rhapsody __private_extern__
+ define
+
+lib/termcap/{termcap,tparam}.c
+ - include "ltcap.h"
+ - if HAVE_CONFIG_H is defined, include <stdlib.h> if HAVE_STDLIB_H is
+ defined, otherwise declare getenv, malloc, realloc as extern
+ - add __private_extern__ qualifier for extern data that Rhapsody
+ requires
+
+shell.c
+ - don't run the startup files in the rshd case if shell_level is >= 2
+ This should catch the case of
+ rsh machine bash -c 'echo a'
+ running the .bashrc twice, once for the shell started by rshd and
+ one for the shell running -c command
+
+ 4/8
+ ---
+variables.c
+ - in initialize_shell_variables, unset the export attribute from
+ SSH_CLIENT if it exists and we got it from the initial environment
+
+shell.c
+ - don't bother unsetting export attribute from SSH_CLIENT, since we
+ now do it in initialize_shell_variables
+
+lib/readline/display.c
+ - don't check prompt_this_line[-2] in rl_redisplay if prompt_this_line
+ isn't at least 2 characters after the start of rl_display_prompt
+
+lib/readline/histfile.c
+ - change the name of the default history file to _history on MS-DOS
+
+lib/readline/histlib.h
+ - add an extern declaration for history_offset
+
+lib/readline/hist{expand,search}.c
+ - remove extern declaration for history_offset; now in histlib.h
+
+lib/readline/xmalloc.h
+ - new file, extern declarations for xmalloc, xrealloc, xfree
+
+lib/readline/rlprivate.h
+ - new file, with extern declarations for `readline private' global
+ variables and functions
+
+lib/readline/rlshell.h
+ - new file, with extern function declarations for stuff in shell.c
+
+lib/readline/Makefile.in
+ - add dependencies on xmalloc.h, rlshell.h
+ - add xmalloc.h, rlprivate.h to list of header files
+
+MANIFEST
+ - add lib/readline/xmalloc.h, lib/readline/rlprivate.h,
+ lib/readline/rlshell.h
+
+Makefile.in
+ - add $(RL_LIBSRC)/xmalloc, $(RL_LIBSRC)/rlprivate.h,
+ $(RL_LIBSRC)/rlshell.h to READLINE_SOURCE variable
+
+lib/readline/{bind,complete,display,funmap,histexpand,histfile,history,input,
+isearch,keymaps,kill,macro,readline,search,shell,util,vi_mode}.c
+ - include "xmalloc.h" rather than extern declarations for xmalloc,
+ xrealloc, xfree
+
+lib/readline/terminal.c
+ - new function, used in two places, _emx_get_screensize for EMX
+
+lib/readline/readline.c
+ - EMX apparently no longer needs _emx_build_environ
+
+lib/readline/signals.c
+ - support for __EMX__ in rl_signal_handler
+ - don't set the old handler passed to rl_set_sighandler to
+ rl_signal_handler, because that would cause infinite recursion if
+ that signal were generated
+
+lib/readline/xmalloc.c
+ - no longer the same as lib/malloc/xmalloc.c, which is no longer
+ used by anyone
+ - changes to include xmalloc.h, define READLINE_LIBRARY, change
+ some of the argument types
+
+lib/tilde/tilde.c
+ - add prototypes for extern function declarations if __STDC__
+ defined
+
+lib/readline/{terminal,bind,readline,nls,histexpand}.c
+ - include "rlshell.h" for function prototypes
+
+ 4/9
+ ---
+lib/readline/{bind,callback,complete,display,input,isearch,kill,macro,nls,
+parens,readline,rltty,search,signals,terminal,util,vi_mode}.c
+ - include "rlprivate.h"
+ - remove extern declarations already in rlprivate.h
+
+xmalloc.c
+ - xfree should take a PTR_T as its argument
+
+general.h
+ - change prototype for xfree to use void * instead of char *
+
+lib/malloc/malloc.c
+ - define PTR_T like it is defined in general.h
+ - malloc() returns a PTR_T
+ - free() takes a PTR_T as its argument
+ - realloc() returns a PTR_T and takes a PTR_T as its first argument
+ - memalign returns a PTR_T
+ - valloc returns a PTR_T
+ - calloc returns a PTR_T
+ - cfree() takes a PTR_T
+
+variables.c
+ - new function: char **all_variables_matching_prefix (char *prefix)
+
+variables.h
+ - extern declaration for all_variables_matching_prefix
+
+bashline.c
+ - converted variable_completion_function to use
+ all_variables_matching_prefix
+
+stringlib.c
+ - new function, char **alloc_array(n), allocates an argv-style
+ array of strings with room for N members
+
+externs.h
+ - extern declaration for alloc_array
+
+ 4/13
+ ----
+lib/readline/keymaps.c
+ - include "readline.h"
+ - remove extern function declarations
+
+include/stdc.h
+ - break the definition of __P out from a strict __STDC__ block,
+ since __GNUC__ and __cplusplus also indicate that prototypes
+ are available
+
+lib/readline/readline.h
+ - adjust conditional declaration of rl_message, since __cplusplus
+ indicates that prototypes are available
+
+lib/readline/rlstdc.h
+ - private copy, modified, no longer symlinked to ../../include/stdc.h
+ - __P is defined if __GNUC__ or __cplusplus is defined
+ - removed defines for __STRING, const, inline, signed, volatile, since
+ readline does not use them
+
+lib/readline/{search,readline}.c
+ - extern declaration for _rl_free_history_entry with prototypes,
+ since it's not in rlprivate.h
+
+lib/readline/history.h
+ - added some missing `extern's in function declarations
+
+lib/readline/undo.c
+ - include "rlprivate.h"
+
+lib/readline/shell.c
+ - include "rlshell.h"
+
+lib/readline/Makefile.in
+ - update dependencies for undo.c, shell.c
+
+lib/tilde/tilde.h
+ - add #define for __P if not already defined
+ - use prototypes in extern function declarations with __P()
+
+lib/readline/doc/rluserman.texinfo
+ - new file, derived from rlman.texinfo
+
+{bashline,findcmd,general,pathexp}.c, builtins/getopts.def
+ - call alloc_array(N) instead of (char **)xmalloc (N * sizeof (char *))
+
+subst.c
+ - added code to implement ksh-93 ${!prefix*} expansion
+
+doc/{bash.1,bashref.texi}
+ - documented new ${!prefix*} expansion
+
+ 4/15
+ ----
+execute_cmd.c
+ - new variable, this_shell_function, points to SHELL_VAR of currently
+ executing shell function
+
+variables.c
+ - new dynamic variable, FUNCNAME -- invisible when not executing shell
+ function
+
+doc/{bash.1,bashref.texi}
+ - documented new FUNCNAME variable
+
+ 4/16
+ ----
+support/rlvers.sh
+ - add -T option to specify correct termcap library
+
+configure.in
+ - Irix 4.x still needs to link with -lsun if it contains a replacement
+ getpwent function that works with NIS
+ - if we're configuring with an already-installed readline library,
+ call BASH_CHECK_LIB_TERMCAP and pass the resulting $TERMCAP_LIB to
+ support/rlvers.sh
+
+lib/readline/readline.c
+ - in rl_forward, if rl_point ends up being < 0, set it to 0
+
+lib/readline/exammples/excallback.c
+ - new callback example code, from `Jeff Solomon <jsolomon@stanford.edu>'
+
+lib/sh/getcwd.c
+ - define NULL as 0 if not defined by one of the standard include files
+ - cast result of malloc and realloc to (char *) where appropriate
+
+variables.c
+ - new functions for use by dynamic variables: null_assign and
+ null_array_assign. Used as assign_func for a particular variable,
+ they cause assignments to that variable to be silently ignored
+ - FUNCNAME and GROUPS are no longer readonly
+ - FUNCNAME changed to use null_assign
+ - GROUPS changed to use null_array_assign. This means that the
+ variable can be unset if desired (like for Oracle startup scripts),
+ but cannot be assigned to
+
+doc/{bash.1,bashref.texi}
+ - added text about assignments being silently discarded to descriptions
+ of FUNCNAME and GROUPS
+ - removed text saying that GROUPS is readonly
+ - added standard text about GROUPS being unset and losing its special
+ properties, even if reset
+
+command.h
+ - new command type, cm_subshell, actually causes the shell to fork
+ and then executes the command in the SUBSHELL_COM struct
+
+parse.y
+ - ( ... ) now creates a command of type cm_subshell, with the same
+ flag CMD_WANT_SUBSHELL as previous
+
+make_cmd.c
+ - new function make_subshell_command
+
+make_cmd.h
+ - extern declaration for make_subshell_command
+
+dispose_cmd.c
+ - code to destroy a SUBSHELL_COM
+
+copy_cmd.c
+ - code to duplicate a SUBSHELL_COM
+
+print_cmd.c
+ - code to print a SUBSHELL_COM
+
+execute_cmd.c
+ - broke the code that handles executing commands in subshells out of
+ execute_command_internal into a new function, execute_in_subshell,
+ with the same arguments
+ - executing a command of type cm_subshell is just a slightly special
+ case, handled in execute_in_subshell
+
+ 4/18
+ ----
+execute_cmd.c
+ - changed code in execute_command_internal that executes subshell
+ commands to check for command->type == cm_subshell in addition to
+ checking that commmand->flags & CMD_WANT_SUBSHELL is non-zero
+ - changed execute_in_subshell to set the CMD_NO_FORK flag on the
+ command to be executed by a command of type cm_subshell
+ (command->value.Subshell->command), if that command is a simple
+ command (type == cm_simple) or a nested subshell (type == cm_subshell)
+ and is not being timed
+ - changed execute_command_internal to just call and return the value
+ returned by execute_in_subshell if it gets a command of type
+ cm_subshell with flags including CMD_NO_FORK
+
+lib/malloc/malloc.c
+ - morecore() should always return through morecore_done, not with a
+ simple `return'
+
+ 4/20
+ ----
+variables.c
+ - new function, quote_array_assignment_chars, backslash quotes all
+ `[' and `]' before an `=' in a word that's part of the body of a
+ compound array assignment. Needed because we run the list through
+ the globbing code now. Don't bother if `=' does not appear in
+ the string or if the first char is not `['
+ - call quote_array_assignment_chars from assign_array_var_from_string
+ now
+
+eval.c
+ - moved parse_string_to_word_list to parse.y
+
+parse.y
+ - moved parse_string_to_word_list here. Much simpler -- no longer
+ tries to parse a command, but just reads tokens using read_token().
+ Any token but a WORD or ASSIGNMENT_WORD causes a syntax error.
+ Don't have to mess around with saving global_command or calling
+ parse_command, but do need to save and restore the history stuff,
+ so the array assignment doesn't get saved on the history list
+
+ 4/21
+ ----
+nojobs.c
+ - changed to use functions in lib/sh/shtty.c (tt{get,set}attr) for
+ the terminal attributes
+ - added a `flags' field to struct proc_status, flags are PROC_RUNNING
+ and PROC_NOTIFIED (status has been returned to `wait')
+ - functions check flags & PROC_RUNNING to check whether or not a
+ particular process is still alive; PROC_RUNNING is reset by
+ set_pid_status
+ - new function, mark_dead_jobs_as_notified, same function as the one
+ in jobs.c
+ - cleanup_dead_jobs reaps jobs only if they're dead and not marked
+ as notified
+ - wait_for_background pids marks all pids as notified and reaps them
+ before it returns, since it's called by the `wait' builtin
+ - wait_for_single_pid marks the pid being waited for as notified so
+ its slot can be reclaimed -- it's only called by the `wait' builtin
+ - new function, process_exit_status, to turn what wait(2) takes into
+ an exit status
+
+ 4/22
+ ----
+nojobs.c
+ - add_pid takes a new second argument, async_p, which is non-zero if
+ the process is in the background
+ - new flag, PROC_ASYNC, set by add_pid
+ - set_pid_status now sets the PROC_NOTIFIED flag if PROC_ASYNC is unset,
+ so foreground jobs get cleaned up right away
+ - changed mark_dead_jobs_as_notified to take a `force' argument; if
+ non-zero, it marks only enough dead jobs to make the number of
+ un-notified dead jobs < CHILD_MAX
+ - new function, reap_dead_jobs, same as in jobs.c
+
+execute_cmd.c
+ - don't need separate cases for REAP any more
+
+ 4/23
+ ----
+builtins/printf.def
+ - new function, tescape, which processes a single backslash
+ escape sequence and returns the number of characters consumed by
+ the argument string (code taken from bexpand)
+ - changed bexpand to call tescape rather than do backslash-escape
+ sequence conversion itself
+ - changed occurrences of `illegal' in error messages to `invalid'
+ - printf no longer calls ansicstr to translate backslash-escape
+ sequences; the mainline printf code now calls tescape whenever it
+ hits a backslash
+
+ 4/26
+ ----
+subst.c
+ - new variable, garglist, set to list of words to be expanded after
+ leading assignment statements are removed
+ - command_substitute now calls maybe_make_exported_env before making
+ the child process if there are no variable assignments preceding
+ the command currently being expanded, or if the command currently
+ being expanded consists only of variable assignments
+
+execute_cmd.c
+ - the `early fork' code in execute_simple_command now calls
+ maybe_make_export_env before forking because execute_disk_command
+ would do that in the vast majority of cases, and this will obviate
+ the need to do it for subsequent commands if the environment does
+ not change
+
+ 4/27
+ ----
+variables.h
+ - more macros to manipulate the exportstr member of a SHELL_VAR
+ - changed initialize_shell_variables to cache the value from the
+ environment as the initial exportstr for all imported variables
+ - changed make_var_array to use exportstr if it exists, instead
+ of computing the value
+ - changed make_var_array to cache exportstr for exported functions,
+ so they don't have to be deparsed every time the export env is
+ remade
+
+ 4/28
+ ----
+lib/readline/{histlib,rldefs}.h
+ - changed STREQN macro to evaluate to 1 if the third argument is 0
+
+lib/readline/search.c
+ - changed rl_history_search_{for,back}ward so they leave point at
+ the end of the line when the string to search for is empty, like
+ previous-history and next-history
+ - broke common code out of rl_history_search_{for,back}ward into
+ a new function, rl_history_search_reinit
+ - rewrote rl_history_search_internal to be more like the
+ non-incremental search functions, use noninc_search_from_pos,
+ and leave the last history line found in the current line buffer
+ if the search fails
+ - new function, make_history_line_current, takes care of making
+ the current line buffer a copy of the history entry passed as an
+ argument; used by rl_history_search_internal and noninc_dosearch
+
+subst.c
+ - make ${!prefix@} be the same as ${!prefix*} for (undocumented)
+ ksh93 compatibility
+
+ 4/30
+ ----
+lib/readline/doc/rltech.texinfo
+ - added note about including <readline/readline.h>, and that <stdio.h>
+ should be included before readline.h
+
+lib/readline/doc/hstech.texinfo
+ - added note about including <readline/history.h>
+
+lib/readline/doc/manvers.texinfo
+ - updated version to 4.1
+
+lib/readline/{bind,complete,display,isearch,nls,parens,readline,signals,tilde,
+histexpand}.c
+ - added prototypes with __P((...)) for forward static function
+ declarations
+
+lib/readline/display.c
+ - broke the code that initializes VISIBLE_LINE and INVISIBLE_LINE out
+ of rl_redisplay into a new function, init_line_structures, which
+ takes an argument giving the minimum number of characters that the
+ line must hold
+ - new function for use by applications that want to display the
+ initial prompt themselves rather than having the first call to
+ readline do it: rl_on_new_line_with_prompt (modified from code in
+ the CLISP distribution)
+
+lib/readline/readline.c
+ - new external variable, rl_already_prompted, to let readline know
+ that the prompt string has already been displayed on the screen
+ before the first call to readline
+ - test rl_already_prompted before displaying the prompt in
+ readline_internal_setup
+ - if rl_already_prompted is non-zero, readline_internal_setup calls
+ rl_on_new_line_with_prompt instead of rl_on_new_line
+
+lib/readline/readline.h
+ - extern declaration for rl_on_new_line_with_prompt
+ - extern declaration for rl_already_prompted
+
+lib/readline/doc/rltech.texinfo
+ - documented rl_on_new_line_with_prompt and rl_already_prompted
+
+builtins/read.def
+ - new -s option (silent mode). Input from a terminal is not echoed
+
+doc/{bash.1,bashref.texi}
+ - documented new `-s' option to read builtin
+
+ 5/3
+ ---
+lib/readline/vi_mode.c
+ - replaced references to rl_getc with (*rl_getc_function)
+
+[bash-2.04-devel frozen]
+
+ 5/5
+ ---
+subst.c
+ - make sure that verify_substring_values always passes malloc'd
+ memory to maybe_expand_string as the string to be expanded,
+ since it gets freed on errors
+
+support/shobj-conf
+ - don't need -R option for shared libraries on Solaris
+ - new stanza for OSF/1 machines with gcc
+
+lib/readline/readline.c
+ - new variable, rl_gnu_readline_p, always 1. Available to allow
+ readline users to test whether or not they're linking against
+ the true readline, rather than some bogus replacement (from CLISP)
+
+lib/readline/readline.h
+ - extern declaration for rl_gnu_readline_p
+
+hashlib.h, hashcmd.h
+ - added prototypes to extern function declarations
+
+pcomplete.h
+ - new file, declarations for the programmable completion stuff
+
+pcomplib.c
+ - new file, library functions for programmable completion
+
+ 5/6
+ ---
+builtins/complete.def
+ - new file, interface to programmable completion management
+
+configure.in
+ - new enable argument --enable-progcomp, defines
+ PROGRAMMABLE_COMPLETION
+
+config.h.in
+ - #define for PROGRAMMABLE_COMPLETION
+
+config-bot.h
+ - if PROGRAMMABLE_COMPLETION is defined and READLINE is not,
+ #undef PROGRAMMABLE_COMPLETION
+
+pcomplete.c
+ - new file, placeholder for programmable completion generators and
+ associated functions
+
+Makefile.in, builtins/Makefile.in
+ - changes to add pcomplete.c, builtins/complete.def
+
+ 5/7
+ ---
+subst.c
+ - new function, #ifdef READLINE, skip_to_delim (s, i, delims).
+ Starting at s[i], return the index of the first character in s
+ that is contained in delims. Understands shell quoting.
+ - added two arguments to list_string_with_quotes: an index to
+ watch for, and a pointer to int to return the index into the
+ created word list of the word containing the sentinel. Now
+ compiled in all the time. The returned index starts at 1.
+
+subst.h
+ - extern declarations for char_is_quoted, unclosed_pair, and
+ skip_to_delim
+ - changed extern declaration for list_string_with_quotes, moved
+ it out of the #ifdef ARRAY_VARS section
+
+bashline.c
+ - removed extern declarations for char_is_quoted and unclosed_pair
+
+variables.c
+ - new function, SHELL_VAR **all_exported_variables()
+ = new function, SHELL_VAR **all_array_variables(), #ifdef ARRAY_VARS
+
+variables.h
+ - extern declaration for all_exported_variables, all_array_variables
+
+lib/sh/strpbrk.c
+ - replacement if we don't have strpbrk(3)
+
+configure.in, config.h.in
+ - check for strpbrk(3), define HAVE_STRPBRK if found
+
+builtins/shopt.def
+ - new function, char **get_shopt_options (), returns an array of
+ shopt option names
+
+builtins/set.def
+ - new function, char **get_minus_o_opts (), returns an array of
+ `set -o' option names
+
+builtins/common.h
+ - extern declarations for get_shopt_options, get_minus_o_opts
+
+ 5/10
+ ----
+pathexp.c
+ - make the POSIX_GLOB_LIBRARY code implement the GLOBIGNORE stuff
+
+ 5/11
+ ----
+array.c
+ - new convenience function, char **array_to_argv (ARRAY *),
+ converts an array to a list of string values
+
+array.h
+ - extern declaration for array_to_argv
+
+execute_cmd.c
+ - new convenience function, int execute_shell_function (SHELL_VAR *,
+ WORD_LIST *)
+
+execute_cmd.h
+ - extern declaration for execute_shell_function
+
+builtins/evalstring.c
+ - make parse_and_execute unwind_protect current_prompt_string
+ if the shell is interactive
+
+ 5/12
+ ----
+variables.c
+ - moved bind_int_variable from expr.c to here; it now returns a
+ SHELL_VAR *, like the other variable binding functions
+
+variables.h
+ - extern declaration for bind_int_variable
+
+ 5/14
+ ----
+bashline.c, parse.y, general.c, make_cmd.c, subst.c, braces.c, execute_cmd.c
+ - replaced some common code sequences with calls to substring()
+
+lib/readline/doc/rltech.texinfo
+ - fixed small typo in description of rl_completion_entry_function
+
+ 5/18
+ ----
+stringlib.c
+ - new function, strcreplace(char *string, int c, char *text, int do_glob)
+ replaces all occurrences of C in STRING with TEXT. Backslash may
+ be used to quote C. If DO_GLOB is non-zero, the replacement TEXT
+ is quoted to protect globbing characters.
+
+externs.h
+ - extern declaration for strcreplace
+
+bashhist.c
+ - use strcreplace in expand_histignore_pattern
+
+pcomplete.c
+ - finished initial implementation of programmable completion
+
+alias.c
+ - code to set the aliases itemlist to dirty when an alias is added
+ or removed, if PROGRAMMABLE_COMPLETION is defined
+
+variables.c
+ - code to set the functions itemlist to dirty when a shell function
+ is added or removed, if PROGRAMMABLE_COMPLETION is defined
+
+builtins/enable.def
+ - code to set the builtins itemlist to dirty when a shell builtin
+ is added or removed, if PROGRAMMABLE_COMPLETION is defined
+ - code to set the enabled and disabled itemlists to dirty when a
+ builtin is enabled or disabled, if PROGRAMMABLE_COMPLETION is
+ defined
+
+builtins/shopt.def
+ - new shell option, `progcomp', on if programmable_completion_enabled
+ (from pcomplete.c) is non-zero
+
+doc/{bash.1,bashref.texi}
+ - note that `${' is not eligible for brace expansion to avoid
+ conflicts with parameter expansion
+
+ 5/19
+ ----
+builtins/complete.def
+ - added a new `compgen' builtin for use by completion functions
+
+ 5/21
+ ----
+bashline.c
+ - new function, void clear_hostname_list(void), to delete all the
+ entries in the hostname completion list
+
+bashline.h
+ - extern declaration for clear_hostname_list
+
+variables.c
+ - changed sv_hostfile to clear the hostname list if $HOSTFILE is
+ unset
+
+doc/{bash.1,bashref.texi}
+ - documented new behavior of HOSTFILE when it's unset
+ - added some awkwardly-worded text to make it clear that an
+ interactive shell cannot be started with non-option arguments
+ or with the -c option
+
+shell.c
+ - restored NON_INTERACTIVE_LOGIN_SHELLS test, so that if it is
+ defined, shells with argv[0][0] == '-' and not in posix mode
+ run the startup files even if non-interactive
+
+config-top.h
+ - added commented-out #define for NON_INTERACTIVE_LOGIN_SHELLS
+
+ 5/24
+ ----
+subst.c
+ - make sure the characters in IFS are cast to unsigned before being
+ indexed in ifscmap (expand_word_internal)
+
+ 5/25
+ ----
+parse.y
+ - change grammar rule for arithmetic for expressions to handle a
+ list_terminator after the `))' instead of requiring a newline_list
+
+subst.c
+ - fix so that variable indirection can reference the shell's special
+ variables (like $0...$9, $$, $#, etc.)
+
+pcomplete.c
+ - changed gen_wordlist_matches to use split_at_delims to split the
+ string at $IFS first, then expand each individual word
+
+ 5/27
+ ----
+lib/readline/histfile.c
+ - change things so that O_BINARY mode is used when reading and writing
+ the history file on cygwin32 as well as OS/2 (__EMX__)
+
+parse.y
+ - add calls to push_delimiter and pop_delimiter around the call
+ to parse_matched_pair when parsing $'...' and $"..." so the
+ history entry is added correctly
+
+ 5/28
+ ----
+doc/{bash.1,bashref.texi}, lib/readline/doc/rluser.texinfo
+ - documented new programmable completion facilities
+
+doc/bashref.texi
+ - documented new configure `--enable-progcomp' option
+
+ 6/1
+ ---
+variables.c
+ - if make_local_variable is being asked to make a local shadow
+ variable of a read-only variable, print an error message and
+ return NULL
+ - if make_local_variable returns NULL to make_local_array_variable,
+ just return it
+
+builtins/declare.def
+ - if we're making local variables, and make_local_array_variable or
+ make_local_variable returns NULL, just flag an error and go on
+
+ 6/2
+ ---
+Makefile.in
+ - changed release status to `alpha1'
+
+[bash-2.04-alpha1 frozen]
+
+ 6/18
+ ----
+bashline.c
+ - fixed find_cmd_start so that it doesn't spin-loop on commands with
+ a command separator like `;' or `&'. Problem was not incrementing
+ `os' past the delimiter found
+
+ 6/21
+ ----
+variables.c
+ - cosmetic change: introduced two macros to encapsulate initialization
+ of dynamic variables
+
+ 6/23
+ ----
+pcomplib.c
+ - new function: num_progcomps(void), returns the number of entries in
+ the programmable completions hash table
+
+pcomplete.h
+ - extern declaration for num_progcomps
+
+bashline.c
+ - make sure some programmable completions have been defined before
+ diving into the programmable completion code
+
+shell.c
+ - in open_shell_script, move the fd opened to the script to a high
+ one with move_to_high_fd in all cases -- the buffered input code
+ still has problems if fd == 0 and later on fd 0 is closed or
+ redirected (cf. input.c:check_bash_input())
+
+builtins/printf.def
+ - getlong() now calls strtol directly with a third argument of 0 so
+ it can handle 0x (hex) and 0 (octal) prefixes, which legal_number
+ does not -- this has implications for arguments to %d that begin
+ with `0'
+
+lib/sh/getenv.c
+ - make sure that the variable found in the temporary environment has
+ a non-null value before calling savestring() on it
+
+subst.c
+ - make sure split_at_delims returns 0 in *nwp and *cwp if handed a
+ null or empty string
+
+pcomplete.c
+ - make sure build_arg_list handles lwords == 0, as it will be if an
+ empty command line is handed to the programmable completion code
+ (like compgen -C xyz)
+
+execute_cmd.c
+ - make sure execute_shell_function passes a non-null bitmap of fds to
+ close to execute_function, allocating and deallocating it locally
+
+sig.c
+ - don't mess with SIGPROF in initialize_terminating_signals
+
+jobs.c, nojobs.c
+ - if the user has requested it with checkwinsize, check for a new
+ window size after a job exits due to a signal as well as being
+ stopped
+
+lib/readline/kill.c
+ - changed rl_kill_region to set the point to the beginning of the
+ region after the kill is performed
+
+ 6/24
+ ----
+configure.in
+ - make sure ranges ([1-9]*) are protected with [...] for m4 quoting
+
+variables.c
+ - make sure that bind_variable_value honors `set -a' and that it
+ marks the environment for recreation if necessary
+
+ 6/25
+ ----
+lib/readline/complete.c
+ - if we're completing at the end of the line, find_completion_word
+ shouldn't test whether the character is a special word break
+ char and (possibly) advance rl_point past the end of the buffer
+
+parse.y
+ - change mk_msgstr to write embedded newlines as `\n"<NL>"', as the
+ PO file format apparently requires
+
+ 6/28
+ ----
+lib/readline/display.c
+ - code to manage the growth of the inv_lbreaks and vis_lbreaks arrays
+ beyond 256, since there are pathalogical command lines that can
+ have more than 256 line breaks for redisplay
+
+ 6/30
+ ----
+stringlib.c
+ - include pathexp.h for extern declaration of quote_globbing_chars
+
+variables.h
+ - change CACHE_EXPORTSTR to savestring() the value and not set the
+ att_importstr flag
+
+ 7/6
+ ---
+support/bashbug.sh
+ - bashbug now accepts --help and --version options
+
+bashline.c
+ - change bash_quote_filename to use single quotes if the user
+ does not specify an opening quote character and the filename being
+ completed contains newlines
+
+ 7/8
+ ---
+configure.in, aclocal.m4, config.h.in
+ - BASH_TYPE_INT32_T --> BASH_TYPE_BITS32_T; int32_t --> bits32_t
+ - BASH_TYPE_U_INT32_T --> BASH_TYPE_U_BITS32_T; u_int32_t --> u_bits32_t
+
+lib/malloc/{malloc,gmalloc}.c, lib/sh/inet_aton.c
+ - int32_t --> bits32_t; u_int32_t --> u_bits32_t
+
+aclocal.m4
+ - new tests: BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T
+
+configure.in
+ - add check for sizeof short, sizeof char
+ - call BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T
+
+config.h.in
+ - new #defines for bits16_t, u_bits16_t
+
+lib/malloc/malloc.c
+ - use u_bits16_t for type of mi_magic2
+
+
+ 7/16
+ ----
+lib/readline/display.c
+ - new private library function, _rl_strip_prompt, to remove instances
+ of RL_PROMPT_{START,END}_IGNORE from the passed prompt string
+
+lib/readline/rlprivate.h
+ - extern declaration for _rl_strip_prompt
+
+lib/readline/readline.c
+ - call _rl_strip_prompt before outputting the prompt if we're not
+ doing any echoing of input chars (readline_echoing_p == 0)
+
+Makefile.in
+ - tentative change to rule for parser-built: use $< instead of
+ `y.tab.h' in recipe
+
+ 7/19
+ ----
+support/config.{guess,sub}
+ - add code to handle all versions of Mac OS (e.g., Mac OS X)
+
+ 7/26
+ ----
+lib/readline/bind.c
+ - on cygwin32, treat \r\n as a line terminator when reading the
+ inputrc file
+
+ 7/29
+ ----
+lib/sh/netopen.c
+ - fixed problem in _getaddr with copying the address returned from
+ gethostbyname to the `struct in_addr *' argument -- hostnames
+ now work in /dev/(tcp|udp)/host/port
+
+ 8/2
+ ---
+configure.in
+ - on Apple Rhapsody systems, set LOCAL_CFLAGS to -DRHAPSODY
+
+variables.h
+ - changes from Apple for building fat binaries on Rhapsody,
+ setting HOSTYPE, OSTYPE, VENDOR, and MACHTYPE
+
+lib/readline/terminal.c
+ - some work on the `dumb terminal' setup code in _rl_init_terminal_io
+ to make sure it's complete for use by the redisplay code and some
+ stuff in {readline,complete}.c
+
+lib/readline/display.c
+ - new function, _rl_current_display_line, returns the number of
+ lines down from the first `screen line' of the current readline
+ line the cursor is
+
+lib/readline/readline.c
+ - make rl_refresh_line call _rl_current_display_line
+
+lib/readline/rlprivate.h
+ - extern declaration for _rl_current_display_line
+
+ 8/3
+ ---
+doc/bashref.texi
+ - reorganized slightly:
+ o a new shell builtins chapter
+ o a new shell variables chapter
+ o a new special builtins section
+ o bourne shell features chapter removed
+ o alias builtins moved to the bash builtins section
+ o bourne shell differences moved to appendix
+ o order of readline and history chapters swapped
+ o indices are now unnumbered appendices
+ o some text cleaned up and some explanatory text added
+
+lib/readline/terminal.c
+ - if a calling application is using a custom redisplay function,
+ don't call tgetent to get the terminal attributes, since those
+ are used only by the redisplay code. Still get the window
+ size, though
+
+lib/glob/fnmatch.c
+ - range comparisons in bracket expressions no longer use strcoll(3),
+ since in some locales (de, for example), [A-Z] matches all
+ characters
+
+parse.y, print_cmd.c
+ - some changes to make sure the shell compiles when
+ DPAREN_ARITHMETIC is not defined but ARITH_FOR_COMMAND is
+
+ 8/5
+ ---
+redir.c
+ - in the here document code in do_redirection_internal, check
+ that the file descriptor returned by here_document_to_fd is not
+ the same as a file descriptor specified as the redirector
+ before closing it
+
+ 8/6
+ ---
+parse.y
+ - make sure the pipline rule for `timespec BANG pipeline' sets the
+ CMD_INVERT_RETURN flag for the pipeline command
+
+builtins/wait.def
+ - use setjmp with a special jump buffer to take longjmps in the
+ case that a SIGINT is received while waiting for jobs or processes
+ it makes wait return with a status > 128, as POSIX.2 specifies
+
+{jobs,nojobs}.c
+ - changed wait_sigint_handler to longjmp to wait_intr_buf if it's
+ executing the wait builtin and SIGINT is trapped. It calls
+ trap_handler to make sure a pending trap for SIGINT is set also,
+ so the trap is taken when the wait builtin returns
+
+ 8/9
+ ---
+jobs.c
+ - save and restore the value of errno in sigchld_handler
+
+trap.c
+ - save and restore the value of errno in trap_handler
+
+ 8/10
+ ----
+Makefile.in
+ - changed release status to beta1
+
+ 8/13
+ ----
+include/posixtime.h
+ - new file to encapsulate the <time.h> and <sys/time.h> mess
+
+Makefile.in
+ - add posixtime.h to list of include files in BASHINCFILES
+ - update dependencies for general.o, execute_cmd.o
+
+general.c, execute_cmd.c, builtins/times.def
+ - include posixtime.h instead of <time.h>, <sys/time.h>
+
+general.c
+ - protect inclusion of <sys/times.h> with HAVE_SYS_TIMES_H check
+
+builtins/Makefile.in
+ - update dependencies for times.o
+
+ 8/16
+ ----
+lib/sh/timeval.c
+ - moved functions dealing with struct timevals here from general.c
+ and execute_cmd.c
+
+lib/sh/clock.c
+ - moved functions dealing with clock_ts here from general.c
+ (print_time_in_hz renamed to print_clock_t)
+
+externs.h
+ - moved extern declarations for timeval_to_secs and print_timeval
+ here from general.h
+ - moved extern declarations for clock_t_to_secs and print_clock_t
+ here from general.h
+
+builtins/times.def
+ - calls to print_time_in_hz changed to print_clock_t
+
+Makefile.in
+ - added references for lib/sh/timeval.c and lib/sh/clock.c
+
+lib/sh/Makefile.in
+ - clock.o and timeval.o are now included in libsh.a
+
+ 8/23
+ ----
+execute_cmd.c
+ - make sure last_command_exit_value is updated before running a
+ DEBUG trap in the cm_simple case of execute_command_internal
+
+lib/readline/display.c
+ - new function, static void redraw_prompt (char *), used to
+ redraw the last line of a multiline prompt that possibly
+ contains terminal escape sequences
+ - call redraw_prompt from _rl_redisplay_after_sigwinch
+
+ 8/24
+ ----
+lib/readline/bind.c
+ - new struct with names of string-valued readline variables and
+ handler functions to call when the variable is set
+ - changed rl_variable_bind to use functions to find boolean vars
+ and string vars in their respective lists
+ - new function, bool_to_int, to translate a boolean value that may
+ appear as an argument to `set <boolean-var-name>' to 1 or 0
+ - new function, hack_special_boolean_var, called if the element in
+ the boolean_vars struct has the V_SPECIAL flag set, to provide
+ any necessary other action when a boolean variable is set
+ - new functions to be called when each string variable is set;
+ called by rl_variable_bind
+
+execute_cmd.c
+ - do_piping no longer sets pipes to O_TEXT mode if __CYGWIN32__
+ is defined
+
+ 8/25
+ ----
+subst.c
+ - parameter_brace_patsub now mallocs a local copy of `patsub', because
+ if it starts with a `/' we increment it, and functions down the call
+ chain will free that on an error (and if we pass the incremented
+ value, will try to free unallocated memory)
+ - pos_params now short-circuits and returns a null string immediately
+ if start == end, meaning we want 0 positional parameters
+
+ 8/26
+ ----
+subst.c
+ - fixed pat_subst to correctly handle a null replacement string with
+ a null pattern string prefixed with `%' or `#'
+
+ 9/3
+ ---
+variables.c
+ - don't import shell functions from the environment if the shell was
+ started with -n
+
+ 9/8
+ ---
+subst.c
+ - if a command substitution is being performed inside a shell function,
+ catch `return' in command_substitute so that a return inside the
+ command substitution doesn't jump back to execute_function (or one
+ of its brethren) and go on with the command
+
+parse.y
+ - in history_delimiting_chars, if the first line is `for var' and
+ command_oriented_history is active, we don't want a semicolon if
+ the next token to be read is `in', but we do want one otherwise.
+ All we can do is check shell_input_line and see if the next chars
+ are `in' -- if so, we return " "
+
+ 9/16
+ ----
+builtins/hash.def
+ - don't allow `hash -p /pathname/with/slashes name' if the shell
+ is restricted
+
+doc/{bash.1,bashref.texi}
+ - updated description of restricted shell mode
+
+lib/readline/display.c
+ - fixed a bug in _rl_update_final which used the inv_lbreaks array
+ to index into visible_line
+
+jobs.c
+ - waitchld() need not go through the pain of setting up an environment
+ to execute traps on SIGCHLD if children_exited == 0
+ - waitchld returns -1 if waitpid() returns -1 with errno == ECHILD,
+ indicating that there are no unwaited-for child processes, and it
+ has not yet reaped any dead children
+ - wait_for, wait_for_single_pid return -1 if waitchld() returns -1
+ - new function, mark_all_jobs_as_dead
+ - wait_for_background_pids calls mark_all_jobs_as_dead if
+ wait_for_single_pid returns -1 with errno == ECHILD, since there are
+ no unwaited-for child processes
+
+subst.c
+ - tentative change: subshells started for command substitution no
+ longer unconditionally disable job control
+
+ 9/17
+ ----
+parse.y
+ - new function: save_token_state(). Saves the value of last_read_token
+ and the two previous tokens in an allocated array and returns the
+ array
+ - new function: restore_token_state(ts). TS is an array returned by
+ save_token_state. last_read_token and the two previous tokens are
+ set from the values in TS
+
+trap.c
+ - run_pending_traps calls save_token_state and restore_token_state
+ around the call to parse_and_execute, which will call the parser
+ and possibly leave it in a state where reserved words will not be
+ recognized (_run_trap_internal, too)
+
+ 9/20
+ ----
+support/bashbug.sh
+ - if sendmail is used as $RMAIL, pass `-i -t' as arguments so changes
+ made by the user to the recipient headers in the message are
+ honored
+
+ 9/21
+ ----
+bashhist.c
+ - if histverify has been set, make sure a `:p' modifier to a history
+ expansion prints the result
+
+builtins/echo.def
+ - new extern variable, xpg_echo, set to 1 if DEFAULT_ECHO_TO_USG is
+ defined and 0 otherwise
+ - echo_builtin now sets the initial value of do_v9 from xpg_echo
+
+builtins/shopt.def
+ - new shopt option, `xpg_echo', turns backslash escape expansion by
+ `echo' on and off at runtime
+
+builtins/{bash.1,bashref.texi}
+ - documented new `xpg_echo' shell option
+
+tests/{builtins.tests,builtins2.sub,shopt.tests}
+ - changes for new `xpg_echo' shell option
+
+configure.in
+ - changes for FreeBSD-3.x ELF to add `-rdynamic' to LOCAL_LDFLAGS.
+ This allows dynamic loading of builtins
+
+support/shobj-conf
+ - changes to handle FreeBSD-3.x elf or a.out object file formats
+
+ 9/23
+ ----
+[bash-2.04-beta1 released]
+
+ 9/24
+ ----
+jobs.c
+ - wait_for returns -1 only if the shell is currently executing the
+ `wait' builtin, since that's the only thing that cares
+
+execute_cmd.c
+ - moved cases of close_fd_bitmap to before calls to do_piping to
+ handle some pathological cases
+
+ 9/29
+ ----
+execute_cmd.c
+ - save the command line in execute_simple_command before making the
+ export environment, since maybe_make_export_env clobbers
+ the_printed_command if there are exported functions
+
+ 9/30
+ ----
+configure.in,config.h.in
+ - check explicitly for setvbuf; define HAVE_SETVBUF if found
+
+configure.in
+ - change opt_gnu_malloc to opt_bash_malloc, since the bash malloc
+ is not really the gnu malloc anymore
+ - new argument, --with-bash-malloc, identical to --with-gnu-malloc
+ - AC_DEFINE(USING_BASH_MALLOC) if opt_bash_malloc is enabled
+
+config.h.in
+ - new #define for USING_BASH_MALLOC
+
+doc/bashref.texi
+ - updated installation section to add --with-bash-malloc and
+ change description of --with-gnu-malloc
+
+lib/sh/setlinebuf.c
+ - change name of function to sh_setlinebuf, just returns 0 if
+ HAVE_SETVBUF and HAVE_SETLINEBUF are undefined
+ - prefer setvbuf to setlinebuf if we have both
+ - if we're using setvbuf, use a local buffer for stdin and stdout
+ local buffer is BUFSIZ unless we're using the bash malloc
+ (USING_BASH_MALLOC is defined), in which case it's 1008 (which
+ the bash malloc rounds up to 1024)
+
+ 10/4
+ ----
+input.c
+ - if USING_BASH_MALLOC is defined, set the max buffer size to 8176,
+ which the bash malloc rounds up to 8192
+
+ 10/5
+ ----
+pcomplete.c
+ - new function, pcomp_filename_completion_function, a wrapper for
+ filename_completion_function that dequotes the filename first
+
+bashline.c
+ - changed bash_directory_completion_matches to dequote the filename
+ before passing it (indirectly) to filename_completion_function
+
+execute_cmd.c
+ - change execute_command to defer calling unlink_fifo_list until any
+ shell function has finished executing (variable_context == 0)
+
+configure.in
+ - added AC_CYGWIN, AC_MINGW32, AC_EXEEXT
+
+ 10/8
+ ----
+subst.c
+ - expand_word_internal(): changes some things to avoid small (2 or 3
+ byte) calls to xmalloc -- added a label and some gotos (BEWARE)
+ - changed make_dev_fd_filename so it doesn't call sprintf anymore
+
+ 10/27
+ -----
+execute_cmd.c
+ - make execute_select_command handle the effects of the `continue'
+ builtin correctly
+
+ 11/5
+ ----
+Makefile.in
+ - RELSTATUS changed to `beta2'
+
+ 11/8
+ ----
+[bash-2.04-beta2 released]
+
+ 11/9
+ ----
+shell.c
+ - make run_startup_files check for ssh2 as well as ssh1
+
+ 11/19
+ -----
+parse.y
+ - make sure parsing conditional commands isn't confused by unexpected
+ tokens (like `[[)]]')
+
+builtins/common.c
+ - fix get_job_spec to return NO_JOB for numeric job specs that are
+ beyond the size of the jobs table
+
+builtins/type.def
+ - change describe_command to report `not found' if a path search
+ returns the same string as the command name and the command name
+ does not match an executable file. This has implications for
+ `type' and `command -[vV]'.
+ - if a command is not found in $PATH, but an executable file with the
+ name supplied exists in the current directory, make the command
+ into a full pathname for the `command' builtin. This has
+ implications for `type' and `command -[vV]'
+
+subst.c
+ - new function, expand_prompt_string, expands prompt string and
+ returns the string passed if an error occurs
+
+subst.h
+ - extern declaration for expand_prompt_string
+
+parse.y
+ - decode_prompt_string calls expand_prompt_string instead of
+ expand_string_unsplit
+
+ 11/22
+ -----
+builtins/echo.def
+ - return EXECUTION_FAILURE if ferror(stdout) is true
+
+ 11/23
+ -----
+locale.c
+ - if LC_ALL is unset, call setlocale(LC_ALL, lc_all), because lc_all
+ holds the default locale
+
+ 11/29
+ -----
+lib/readline/shell.c
+ - define NULL as 0 if it's not defined
+ - change single_quote to allocate 4 characters in new string for
+ each character in the old one (like builtins/common.c:single_quote)
+
+locale.c
+ - when a locale variable (LC_*) is unset, pass "" to setlocale()
+ to get the default locale set, since value is NULL
+
+lib/sh/makepath.c
+ - new function, sh_makepath(char *path, char *dir, int flags)
+
+Makefile.in
+ - changed version to beta3
+
+builtins/type.def
+ - changed describe_command to use sh_makepath()
+
+builtins/cd.def
+ - removed private declaration of mkpath(), changed to use sh_makepath
+
+general.c
+ - changed make_absolute to use sh_makepath
+ - changed full_pathname to use sh_makepath
+
+findcmd.c
+ - removed private definition of make_full_pathname, changed to use
+ sh_makepath
+
+doc/{bashref.texi,bash.1}
+ - added text to description of `getopts' to make it clear that getopts
+ may be used to parse option characters other than letters, and
+ that `:' and `?' may not be used as option characters
+
+eval.c
+ - when processing a jump_to_top_level(EXITPROG), make sure the shell
+ doesn't think it's still in a function by setting variable_context
+ to 0
+
+doc/rbash.1
+ - a skeletal man page for rbash, adapted from debian
+
+support/bashbug.sh
+ - try to find a default editor if EDITOR is unset, rather than blindly
+ using `emacs'
+
+ 11/30
+ -----
+support/config.{guess,sub}
+ - many changes from the latest `automake' distribution, from the
+ Debian folks
+
+ 12/2
+ ----
+lib/readline/keymaps.h, lib/tilde/tilde.h
+ - added support for C++ compilation (`extern "C" {...}')
+
+ 12/3
+ ----
+subst.c
+ - in process_substitute, make sure the child resets the O_NONBLOCK
+ flag on the file descriptor opened for read to a named pipe
+
+jobs.c
+ - new function, raw_job_exit_status, returns exit status of last job
+ in pipeline
+ - change job_exit_status to call raw_job_exit_status and pass the
+ result to process_exit_status
+ - in notify_of_job_status, get termination status from call to
+ raw_job_exit_status, rather than the first job in the pipeline
+ (fixes debian bug #15165)
+
+bashhist.c
+ - changed bash_history to not add shell comment lines to the history
+ file (fixes debian bug #21901). Uses new function shell_comment(L)
+ which returns 1 if L is a shell comment line. Doesn't handle
+ comments embedded in lines yet
+
+redir.c
+ - when running in POSIX.2 mode, bash no longer performs word splitting
+ on the expanded value of the word supplied as the filename argument
+ to a redirection operator (fixes debian bug #30460)
+
+doc/bashref.texi
+ - added new redirection stuff to POSIX Mode section (from previous fix)
+
+ 12/6
+ ----
+hashlib.h
+ - removed extra semicolon at end of HASH_ENTRIES define
+
+redir.c
+ - replaced toggling of disallow_filename_globbing flag with setting
+ flags in redirection word to include W_NOGLOB if the shell is in
+ POSIX mode and not interactive when expanding the filename argument
+ to a redirection
+
+ 12/7
+ ----
+builtins/common.c
+ - new function, backslash_quote_for_double_quotes(char *), quotes
+ characters special when in double quotes in the string passed as
+ an argument.
+ #ifdef PROMPT_STRING_DECODE; called by decode_prompt_string
+
+builtins/common.h
+ - extern declaration for backslash_quote_for_double_quotes
+
+parse.y
+ - call backslash_quote_for_double_quotes instead of backslash_quote
+ in decode_prompt_string
+
+ 12/9
+ ----
+parse.y
+ - before expanding the \u prompt string escape sequence, make sure
+ current_user.user_name is non-null and call get_current_user_info
+ if it is
+
+ 12/10
+ -----
+support/mkversion.sh
+ - changes to avoid relying on floating point output format, which
+ can be locale-specific
+
+ 12/14
+ -----
+print_cmd.c
+ - changes to named_function_string (for normal function printing)
+ and print_function_def (for printing function definitions embedded
+ in other commands) to print redirections that should be attached
+ to the function as a whole after the closing brace
+
+tests/func1.sub
+ - tests for printing functions with attached redirections, called by
+ func.tests
+
+ 12/16
+ -----
+lib/readline/complete.c
+ - if we're completing files in the root directory and executing the
+ visible-stats code, don't pass an empty pathname to
+ rl_directory_completion_hook, because, for bash, that will be
+ expanded to the current directory. Just pass `/' instead.
+
+lib/tilde/tilde.c
+ - fix to tilde_expand_word for Cygwin to avoid creating pathnames
+ beginning with `//' if $HOME == `/'
+
+variables.c
+ - don't bother with the exportstr validation on cygwin systems,
+ or even using exportstr at all, since that system has weird
+ environment variables
+
+ 12/17
+ -----
+configure.in
+ - new option, --enable-xpg-echo-default, new name for
+ --enable-usg-echo-default (which is still present for backwards
+ compatibility)
+
+configure.in, config.h.in, builtins/echo.def
+ - DEFAULT_ECHO_TO_USG -> DEFAULT_ECHO_TO_XPG
+
+ 12/29
+ -----
+aclocal.m4
+ - changed a couple of tests to avoid creating files with known
+ names in /tmp
+
+support/rlvers.sh
+ - changed to create files in /tmp/rlvers
+
+support/mksignames.c
+ - now understands the POSIX.1b real-time signal names on systems
+ that support them
+
+ 12/30
+ -----
+[bash-2.04-beta3 released]
+
+ 12/31
+ -----
+redir.c
+ - try some more things to avoid race file replacements in
+ here_document_to_fd
+
+parse.y
+ - two new functions:
+ get_current_prompt_level: returns 2 if current prompt is $PS2,
+ 1 otherwise
+ set_current_prompt_level: sets current prompt to $PS2 if arg
+ is 2, $PS1 otherwise
+
+copy_cmd.c
+ - make sure to copy the `line' member in copy_arith_for_command
+
+pcomplete.c
+ - free up `lwords' and `line' after evaluating any command or shell
+ function in gen_compspec_completions
+ - after filtering any matches specified by cs->filterpat in
+ gen_compspec_completions, free ret->list (the members have
+ already been copied or freed by filter_stringlist)
+
+bashline.c
+ - free what find_cmd_name returns after calling the programmable
+ completion code
+
+ 1/4/2000
+ --------
+subst.c
+ - make call_expand_word_internal set w->word to NULL if either
+ expand_word_error or expand_word_fatal is returned
+
+ 1/7
+ ---
+parse.y
+ - two new functions: set_current_prompt_level(int) and
+ get_current_prompt_level() to set and get the `level' of
+ current_prompt_string (1 if $PS1, 2 if $PS2)
+
+externs.h
+ - extern declarations for {get,set}_current_prompt_level
+
+builtins/evalstring.c
+ - add an unwind_protect to save and restore the current prompt
+ string pointers using {get,set}_current_prompt_level
+
+ 1/9
+ ---
+Makefile.in
+ - changed release status to `beta4'
+
+ 1/18
+ ----
+[bash-2.04-beta4 released]
+
+ 1/19
+ ----
+configure.in
+ - moved checks for non-unix variants to beginning of tests
+
+Makefile.in, {builtins,support}/Makefile.in
+ - added some $(EXEEXT) suffixes to generated programs for non-Unix
+ systems
+
+ 1/20
+ ----
+parse.y
+ - make get_current_prompt_level return 1 if current_prompt_string is
+ NULL (as it would be while sourcing startup files)
+
+support/rlvers.sh
+ - rmdir $TDIR in the exit trap
+ - move the exit trap after we successfully create $TDIR
+
+ 1/21
+ ----
+subst.c
+ - several changes to split_at_delims to make non-whitespace
+ delimiters create separate fields containing those delimiters,
+ like the shell parser does with meta characters. This allows
+ redirection operators, for example, to be treated as separate
+ words by the programmable completion code
+
+examples/complete/complete-examples
+ - added new function: _redir_op, which return true if the word
+ passed as an argument contains a redirection operator (just
+ bare-bones for now)
+ - changed set completion function to use _redir_op as an example
+
+parse.y
+ - make parse_string_to_word_list save and restore the value of
+ shell_input_line_terminator, since an assignment like
+ COMPREPLY=() inside a shell function called by the programmable
+ completion code can change shell_input_line_terminator out from
+ underneath shell_getc(). shell_getc will set the input line
+ terminator to EOF when it gets EOF from the getter function, and
+ the string getter function returns EOF at EOS. parse_and_execute
+ tests for EOS directly and never gets EOF from shell_getc, so it
+ does not have this problem.
+
+ 1/24
+ ----
+lib/readline/funmap.c
+ - #define QSFUNC like in complete.c
+ - cast _rl_qsort_string_compare to a QSFUNC * in the call to qsort
+
+lib/readline/terminal.c
+ - correct a typo in usage of the __EMX__ preprocessor define
+ - fix a reversed usage of `#if defined (__DJGPP__)' in
+ _rl_control_keypad
+ - remove extern declarations for _rl_in_stream and _rl_out_stream
+
+lib/readline/rlprivate.h
+ - add extern declaration for _rl_in_stream, since there's already
+ one for _rl_out_stream
+
+builtins/ulimit.def
+ - if bash is using ulimit(2), make sure that getfilesize() returns
+ the value multiplied by 512 to convert it from a number of blocks
+ to a number of bytes
+
+ 1/25
+ ----
+execute_cmd.c
+ - make sure execute_command_internal sets last_command_exit_value
+ correctly when inverting the return value of a (...) subshell
+ command
+
+tests/{run-invert,invert.{tests,right}}
+ - new tests for return value inversion
+
+configure.in
+ - compile without bash malloc on m68k-motorola-sysv due to a file
+ descriptor leak in closedir(3) -- the motorola implementation
+ requires that freed memory be readable so it can free the dirent
+ and then look back at it to find the file descriptor
+
+expr.c
+ - fix negative exponents in v**e to return an eval error
+
+ 2/1
+ ---
+Makefile.in
+ - changed status to beta5
+
+jobs.c
+ - fixed a problem with checking the wrong process when checking to
+ see whether or not we need to reset the tty state. The old code
+ checked the first process in a pipeline; the new code checks all
+ processes in the pipeline to see whether any of them exited due
+ to a signal or was stopped. If none were signalled or stopped,
+ the code uses the exit status of the last process in the job's
+ pipeline
+
+ 2/4
+ ---
+[bash-2.04-beta5 released]
+
+eval.c
+ - call set_current_prompt_level instead of setting prompt_string_pointer
+ directly
+
+ 2/10
+ ----
+[bash-2.04-beta5 re-released to net]
+
+ 2/11
+ ----
+sig.c
+ - make sure SIGCHLD is defined in initialize_shell_signals before
+ trying to use it in sigdelset() (DJGPP fix)
+
+ 2/14
+ ----
+lib/sh/shtty.c
+ - include <unistd.h> before <shtty.h>
+ - separate tests for ONLCR, ONOCR, ONLRET to cope with systems like
+ DJGPP that don't implement the full POSIX termios option set
+
+builtins/psize.sh
+ - set TMPDIR only if it's not already set
+
+lib/glob/glob.c
+ - if a system doesn't define _POSIX_SOURCE but has a `struct dirent'
+ without a d_ino member, define REAL_DIR_ENTRY to 1 so all entries
+ are read
+
+configure.in
+ - check for <arpa/inet.h> header file
+
+config.h.in
+ - add HAVE_ARPA_INET_H define
+
+lib/sh/inet_aton.c
+ - don't compile unless HAVE_NETWORK, HAVE_NETINET_IN_H, and
+ HAVE_ARPA_INET_H are all defined in config.h or config-bot.h
+
+ 2/16
+ ----
+subst.c
+ - if we have a construct like "${@:-}", we need to note that we're
+ not using whatever is in $@ (we're using the rhs), so the special
+ double-quoting $@ rules do not apply
+
+ 2/21
+ ----
+lib/readline/signals.c
+ - declare SigHandler before using it on non-POSIX systems
+
+lib/sh/{zread,zwrite}.c
+ - include <sys/types.h> unconditionally
+
+configure.in
+ - m68k-motorola-sysv should be m68k-sysv in the section that sets
+ opt_bash_malloc to no for certain systems
+
+builtins/complete.def
+ - fixed a typo (stoppped) when printing out completion actions
+
+ 2/22
+ ----
+lib/sh/netopen.c
+ - include <arpa/inet.h> if it's present
+
+aclocal.m4
+ - new macro, BASH_FUNC_INET_ATON, checks for inet_aton(3) including
+ <netinet/in.h> and <arpa/inet.h>, which some systems require to
+ resolve the function
+
+configure.in
+ - if autoconf can't fund inet_aton on its own, try BASH_FUNC_INET_ATON
+
+pcomplete.c
+ - fixed a memory leak in gen_wordlist_completions
+ - changed gen_wordlist_completions to do prefix-matching against the
+ word being completed
+
+doc/bash.1, lib/readline/doc/rluser.texinfo
+ - documented the change in behavior of the -W option to complete and
+ compgen
+
+builtins/umask.def
+ - if parse_symbolic_mode() returns -1, symbolic_umask needs to return
+ -1 as well, otherwise the umask will be changed inappropriately
+
+input.c
+ - always compile in getc_with_restart and ungetc_with_restart
+
+parse.y
+ - yy_stream_get and yy_stream_unget now call getc_with_restart and
+ ungetc_with_restart, respectively, to avoid problems with some
+ systems not restarting the read(2) when signals that bash handles
+ are received during the read (since bash installs its signal
+ handlers without the SA_RESTART flag)
+
+lib/readline/complete.c
+ - don't default rl_completion_case_fold to 1 if __DJGPP__ is defined
+
+ 2/25
+ ----
+subst.c
+ - renamed `varlist' to `subst_assign_varlist' and made it global
+
+jobs.c
+ - when running a SIGCHLD trap, need to unwind-protect
+ subst_assign_varlist and set it to NULL before running the trap
+ command (fix from ericw@bestnet.org and doogie@debian.org)
+
+ 2/28
+ ----
+lib/readline/doc/rltech.texinfo
+ - document rl_funmap_names()
+
+ 2/29
+ ----
+subst.c
+ - change split_at_delims to set the current word more appropriately
+ when the cursor is between two words. Should probably change this
+ again to set the current word like this only when the cursor is at
+ whitespace or another delim just before the word start
+
+ 3/1
+ ---
+lib/sh/shtty.c
+ - more checks for flag bits being defined before using them
+
+ 3/7
+ ---
+variables.h
+ - fix typo in COPY_EXPORTSTR definition
+
+ 3/14
+ ----
+subst.c
+ - changed split_at_delims so that if the cursor is at whitespace
+ between words, and we're interested in the current word (cwp != NULL),
+ make a new empty word and set the cwp to that word
+
+locale.c
+ - support for setting LC_NUMERIC locale category based on value of
+ LC_NUMERIC shell variable
+
+variables.c
+ - LC_NUMERIC is now treated specially
+
+doc/{bash.1,bashref.texi}
+ - LC_NUMERIC updates
+
+ 3/15
+ ----
+pcomplete.c
+ - fix to avoid freeing memory twice