9640 lines
		
	
	
	
		
			316 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			9640 lines
		
	
	
	
		
			316 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
				 4/9/2001
 | 
						|
				 --------
 | 
						|
[bash-2.05 released]
 | 
						|
 | 
						|
				   4/10
 | 
						|
				   ----
 | 
						|
redir.c
 | 
						|
	- check return value of fclose() in write_here_document() for error
 | 
						|
	  returns; don't just rely on fwrite() failing
 | 
						|
 | 
						|
support/bashbug.sh
 | 
						|
	- set TMPDIR to /tmp if it's null or unset
 | 
						|
	- use $TMPDIR in the TEMP tempfile name template
 | 
						|
	- fixed the call to `mktemp', if it exists, to make it more portable
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- if WCONTINUED is not defined, define it to 0 and add a define for
 | 
						|
	  WIFCONTINUED(wstatus) which expands to 0
 | 
						|
	- add WCONTINUED to the flags passed to waitpid(2) in waitchld()
 | 
						|
	- don't increment children_exited if waitpid's status is WIFCONTINUED,
 | 
						|
	  since we don't want to call a SIGCHLD trap handler in this case
 | 
						|
	- in waitchld(), we set child->running to 1 if WIFCONTINUED(status)
 | 
						|
	  is non-zero
 | 
						|
	- make sure pretty_print_job doesn't check for the core dump bit if
 | 
						|
	  the process has been continued; it's only valid if the job is dead
 | 
						|
	- in set_job_status_and_cleanup, set the job to JRUNNING if job_state
 | 
						|
	  is non-zero and the job was previously marked as JSTOPPED
 | 
						|
 | 
						|
configure.in
 | 
						|
	- add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS
 | 
						|
 | 
						|
lib/glob/glob.c
 | 
						|
	- if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- in kill_pid, we only need to block and unblock SIGCHLD if the
 | 
						|
	  `group' argument is non-zero, since otherwise we just call `kill'
 | 
						|
	  on the pid argument
 | 
						|
 | 
						|
version.c
 | 
						|
	- update copyright date to 2001
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- prog_complete_return needs to take a `const char *' as its first
 | 
						|
	  argument
 | 
						|
	- history_completion_generator needs to take a `const char *' as
 | 
						|
	  its first argument, and `text' needs to be a `const char *'
 | 
						|
 | 
						|
				   4/11
 | 
						|
				   ----
 | 
						|
redir.c
 | 
						|
	- fixed a weird typo in redir_special_open, case RF_DEVFD, added
 | 
						|
	  call to all_digits before call to legal_number
 | 
						|
	- fixed do_redirection_internal to call legal_number instead of atol(3)
 | 
						|
	  when translating r_duplicating_{in,out}put_word, so it handles
 | 
						|
	  overflow better
 | 
						|
	- produce an error message in redirection_error for out-of-range
 | 
						|
	  file descriptors
 | 
						|
	- change allocation strategy in redirection_error so we don't have to
 | 
						|
	  malloc scratch memory if redirection_expand() fails
 | 
						|
 | 
						|
jobs.h
 | 
						|
	- added defines for `running' member of a struct process
 | 
						|
 | 
						|
general.c
 | 
						|
	- fix legal_number to return 0 when strtol(3) reports overflow or
 | 
						|
	  underflow
 | 
						|
 | 
						|
parse.y
 | 
						|
	- changed read_token_word to call legal_number instead of atoi(3)
 | 
						|
 | 
						|
input.c
 | 
						|
	- return -1/EBADF from close_buffered_fd if fd is < 0
 | 
						|
 | 
						|
command.h
 | 
						|
	- fixed bogus comment about IS_DESCRIPTOR in description of the
 | 
						|
	  REDIRECTEE struct
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- change cprintf's 'd' modifier code to display negative numbers as
 | 
						|
	  an out-of-range value.  We can do this only because the only use
 | 
						|
	  of %d is to output file descriptor numbers in redirections
 | 
						|
 | 
						|
support/mksignames.c
 | 
						|
	- need to include config.h to get a possible value for
 | 
						|
	  UNUSABLE_RT_SIGNALS
 | 
						|
 | 
						|
				   4/16
 | 
						|
				   ----
 | 
						|
lib/readline/doc/rluser.texinfo
 | 
						|
	- corrected a small error in one description of M-DEL
 | 
						|
 | 
						|
				   4/17
 | 
						|
				   ----
 | 
						|
stringlib.c
 | 
						|
	- need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER
 | 
						|
	  in strcreplace()
 | 
						|
 | 
						|
support/bashversion.c
 | 
						|
	- new file, prints bash version information
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- rules for building bashversion and linking it to version.o
 | 
						|
 | 
						|
				   4/24
 | 
						|
				   ----
 | 
						|
conftypes.h
 | 
						|
	- new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from
 | 
						|
	  variables.h
 | 
						|
 | 
						|
variables.h, version.c
 | 
						|
	- include conftypes.h
 | 
						|
 | 
						|
patchlevel.h
 | 
						|
	- new file, contains define for PATCHLEVEL.  Doing away with the old
 | 
						|
	  scheme of having the information in configure.in
 | 
						|
 | 
						|
version.c
 | 
						|
	- include patchlevel.h
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- run bashversion -p to find patch level rather than have configure
 | 
						|
	  substitute in a value
 | 
						|
	- pass -S ${top_srcdir} to support/mkversion.sh
 | 
						|
 | 
						|
support/mkversion.sh
 | 
						|
	- don't put PATCHLEVEL define into version.h, but accept and ignore
 | 
						|
	  a -p option
 | 
						|
	- take a new -S srcdir option
 | 
						|
	- find the patch level by parsing it out of patchlevel.h
 | 
						|
 | 
						|
configure.in
 | 
						|
	- hard-code BASHVERS assignment instead of reading it from a file
 | 
						|
	- remove BASHPATCH; don't substitute it
 | 
						|
 | 
						|
_distribution,_patchlevel
 | 
						|
	- removed
 | 
						|
 | 
						|
				   4/26
 | 
						|
				   ----
 | 
						|
shell.c
 | 
						|
	- call init_noninteractive() in open_shell_script if forced_interactive
 | 
						|
	  is non-zero (the shell was started with -i) and fd_is_tty is 0
 | 
						|
	  (the script file is a real file, not something like /dev/stdin),
 | 
						|
	  since it wasn't done earlier
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- change for POSIX.2 compliance when conversion errors are encountered
 | 
						|
	  when processing %d, %u, and floating point conversion operators
 | 
						|
	  (print a warning message, return the value accumulated at the time
 | 
						|
	  of the error -- which is always 0 -- and exit with a non-zero status)
 | 
						|
 | 
						|
command.h
 | 
						|
	- added CMD_COMMAND_BUILTIN for use by the `command' builtin and the
 | 
						|
	  code in execute_cmd.c
 | 
						|
 | 
						|
builtins/command.def
 | 
						|
	- add CMD_COMMAND_BUILTIN to the created command's flags
 | 
						|
 | 
						|
				    5/1
 | 
						|
				    ---
 | 
						|
configure.in
 | 
						|
	- add call to AC_C_CONST to test `const' compiler behavior
 | 
						|
	- add call to AC_C_INLINE to test `inline' compiler behavior
 | 
						|
	- add call to AC_C_STRINGIZE to test cpp #x stringizing operator
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add `#undef const' for configure to substitute
 | 
						|
	- add `#undef inline' for configure to substitute
 | 
						|
	- add `#undef HAVE_STRINGIZE' for configure to substitute
 | 
						|
 | 
						|
include/stdc.h
 | 
						|
	- remove code that defines or undefines `const' and `inline'
 | 
						|
	- change the __STRING macro to be defined depending on the value
 | 
						|
	  of HAVE_STRINGIZE
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- change the __STRING macro to be defined depending on the value
 | 
						|
	  of HAVE_STRINGIZE
 | 
						|
 | 
						|
lib/readline/{readline,rlprivate}.h
 | 
						|
	- moved rl_get_termcap to readline.h, making it a public function
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- new #define, RL_READLINE_VERSION, hex-encoded library version
 | 
						|
	  number, currently set to 0x0402
 | 
						|
	- new public int variable, rl_readline_version
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- #define RL_READLINE_VERSION if it is not already defined (which it
 | 
						|
	  should be in readline.h)
 | 
						|
	- initialize rl_readline_version to RL_READLINE_VERSION
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- documented rl_get_termcap
 | 
						|
	- documented rl_readline_version
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- job_exit_status should return an int, not a WAIT (undetected
 | 
						|
	  before because on most POSIX-like systems a WAIT is really an int)
 | 
						|
 | 
						|
builtins/evalfile.c
 | 
						|
	- added FEVAL_REGFILE (file must be a regular file) to accepted
 | 
						|
	   _evalfile flags
 | 
						|
	- fc_execute_file() adds FEVAL_REGFILE to _evalfile flags.  This
 | 
						|
	  means that startup files and files read with `.' no longer need
 | 
						|
	  to be regular files
 | 
						|
 | 
						|
				    5/2
 | 
						|
				    ---
 | 
						|
 | 
						|
lib/termcap/Makefile.in
 | 
						|
	- fix target for installed termcap library (normally unused)
 | 
						|
 | 
						|
lib/tilde/Makefile.in
 | 
						|
	- fix install target to install in $(libdir) (normally unused)
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- don't make $(man3dir) since there's nothing installed there
 | 
						|
 | 
						|
Makefile.in,doc/Makefile.in
 | 
						|
	- change `man1ext' to `.1', `man3ext' to `.3'
 | 
						|
	- change appropriate install targets to use new values of man[13]ext
 | 
						|
	- use `test ...' instead of `[...]'
 | 
						|
	- add support for DESTDIR root installation prefix, for package
 | 
						|
	  building (installdirs, install, install-strip, uninstall targets)
 | 
						|
 | 
						|
builtins/common.c
 | 
						|
	- new function int get_exitstat(WORD_LIST *list) returns an eight-bit
 | 
						|
	  exit status value for use in return, exit, logout builtins
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- extern declaration for get_exitstat()
 | 
						|
 | 
						|
builtins/{exit,return}.def
 | 
						|
	- call get_exitstat where appropriate
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- add support for "'" flag character as posix 1003.2-200x d6 says
 | 
						|
	- fix core dump when user-supplied field width or precision is 0
 | 
						|
	- fix to printstr() to handle zero-length precision with `%b' format
 | 
						|
	  specifier (printf '%.0b-%.0s\n' foo bar)
 | 
						|
	- fix to printstr() to treat a negative field width as a positive
 | 
						|
	  field width with left-justification
 | 
						|
	- fix to mklong to avoid static buffers, which can always be overrun
 | 
						|
	  by someone sufficiently motivated
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- change var in add_host_name to type `size_t' for passing to xrealloc
 | 
						|
 | 
						|
				    5/3
 | 
						|
				    ---
 | 
						|
execute_cmd.c
 | 
						|
	- change restore_signal_mask to accept a sigset_t *, since a sigset_t
 | 
						|
	  may not fit into a pointer, change call
 | 
						|
 | 
						|
unwind_prot.c
 | 
						|
	- use a union UWP in restore_variable when restoring a variable whose
 | 
						|
	  size is the same as sizeof(int), the reverse of the method used to
 | 
						|
	  store it in unwind_protect_int
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- use a #define LENMODS containing the length modifiers instead of
 | 
						|
	  testing against each possible modifier character, save any mod
 | 
						|
	  character found
 | 
						|
	- add support for ISO C99 length specifiers `j', `t', and `z'
 | 
						|
	- if `L' modifier is supplied with a floating point conversion char,
 | 
						|
	  pass a `long double' to printf if HAVE_LONG_DOUBLE is defined
 | 
						|
 | 
						|
configure.in,config.h.in
 | 
						|
	- call AC_C_LONG_DOUBLE to check for `long double'; define
 | 
						|
	  HAVE_LONG_DOUBLE if supported
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- fix an inadvertantly-unclosed comment in attempt_shell_completion
 | 
						|
	- make set_saved_history return a value
 | 
						|
	- make dynamic_complete_history return a useful value
 | 
						|
 | 
						|
{make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test,
 | 
						|
pcomplete}.c
 | 
						|
	- removed some declared-but-unused variables
 | 
						|
 | 
						|
builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def
 | 
						|
	- removed some declared-but-unused variables
 | 
						|
 | 
						|
lib/sh/{zread,netopen}.c
 | 
						|
	- removed some declared-but-unused variables
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- in execute_arith_command, use a long variable to hold the result
 | 
						|
	  of evalexp(), since that's what it returns
 | 
						|
 | 
						|
builtins/evalstring.c
 | 
						|
	- make cat_file return -1 on a read or write error
 | 
						|
 | 
						|
lib/sh/stringlib.c
 | 
						|
	- make merge_stringlists() return the right value
 | 
						|
 | 
						|
				    5/7
 | 
						|
				    ---
 | 
						|
pcomplete.c
 | 
						|
	- remove typo that caused empty declaration (;;)
 | 
						|
 | 
						|
parse.y
 | 
						|
	- fix yyerror() to accept a single string argument; fix callers
 | 
						|
 | 
						|
trap.c
 | 
						|
	- cast pointer to long instead of int when printing message with
 | 
						|
	  internal_warning() in run_pending_traps()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- fix process_substitute to handle stdin being closed
 | 
						|
 | 
						|
test.c
 | 
						|
	- change `while' to `if' in and() and or(), since the loop isn't
 | 
						|
	  actually performed -- there's an unconditional `return' in the
 | 
						|
	  loop body
 | 
						|
	- check for integer overflow of arguments to `-t'
 | 
						|
 | 
						|
lib/sh/netopen.c
 | 
						|
	- change _getserv() to reject negative port/service numbers
 | 
						|
 | 
						|
expr.c
 | 
						|
	- fix strlong() to not convert the base specification from long to
 | 
						|
	  int before checking for overflow, since truncation on machines
 | 
						|
	  where sizeof(int) != sizeof(long) may mask errors
 | 
						|
 | 
						|
builtins/{jobs,kill,wait}.def
 | 
						|
	- use legal_number instead of atoi when converting strings to pid_t;
 | 
						|
	  check for numeric overflow
 | 
						|
 | 
						|
input.c
 | 
						|
	- fix for cygwin in b_fill_buffer -- off-by-one error when checking
 | 
						|
	  buffer for \r\n termination
 | 
						|
 | 
						|
general.h
 | 
						|
	- new #define INT_STRLEN_BOUND(t), computes max length of string
 | 
						|
	  representing integer value of type T, possibly including a sign
 | 
						|
	  character
 | 
						|
	- include <limits.h> if it's present
 | 
						|
 | 
						|
{execute_cmd,findcmd,test}.c
 | 
						|
	- don't include <limits.h>, since general.h does it now
 | 
						|
 | 
						|
{execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c
 | 
						|
	- use INT_STRLEN_BOUND instead of static array sizes when converting
 | 
						|
	  various strings to integer values
 | 
						|
 | 
						|
shell.h
 | 
						|
	- struct fd_bitmap now uses an `int' size, since it's bounded by
 | 
						|
	  the number of file descriptors, which must fit into an `int'
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- FD_BITMAP_DEFAULT_SIZE is now 32, not 32L
 | 
						|
	- new_fd_bitmap takes an `int' size parameter, not a `long'
 | 
						|
 | 
						|
execute_cmd.h
 | 
						|
	- change prototype for new_fd_bitmap()
 | 
						|
 | 
						|
test.c
 | 
						|
	- fix test_stat to check for overflow when parsing the integer file
 | 
						|
	  descriptor number; return ENOENT instead of EBADF for files that
 | 
						|
	  are not open
 | 
						|
 | 
						|
hashlib.c
 | 
						|
	- don't discard the upper 32 bits of the random value, if present
 | 
						|
 | 
						|
lib/readline/shell.c
 | 
						|
	- use the same INT_STRLEN_BOUND mechanism to decide how much space to
 | 
						|
	  allocated in sh_set_lines_and_columns
 | 
						|
 | 
						|
				    5/8
 | 
						|
				    ---
 | 
						|
aclocal.m4
 | 
						|
	- add check for libtinfo (termcap-specific portion of ncurses-5.2) to
 | 
						|
	  BASH_CHECK_LIB_TERMCAP
 | 
						|
	- new macro, RL_LIB_READLINE_VERSION, checks version of installed
 | 
						|
	  readline library and (optionally) writes version #defines to
 | 
						|
	  config.h.  Bash doesn't use the version defines
 | 
						|
 | 
						|
configure.in
 | 
						|
	- call RL_LIB_READLINE_VERSION instead of support/rlvers.sh
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- fix execute_shell_script and the WHITECHAR and STRINGCHAR macros
 | 
						|
	  to check array bounds before indexing into the sample string
 | 
						|
 | 
						|
unwind_prot.[ch]
 | 
						|
	- import new versions submitted by Paul Eggert <eggert@twinsun.com>
 | 
						|
	  with a couple of changes for backwards compatibility, so the rest
 | 
						|
	  of the source doesn't need to be changed yet
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- use unwind_protect_var on last_made_pid in run_sigchld_trap
 | 
						|
 | 
						|
builtins/bind.def
 | 
						|
	- use unwind_protect_var on rl_outstream
 | 
						|
 | 
						|
general.c
 | 
						|
	- rework print_rlimtype to use INT_STRLEN_BOUND and handle the
 | 
						|
	  most negative number correctly
 | 
						|
 | 
						|
expr.c
 | 
						|
	- `tokval' should have been a `long', since all arithmetic is done
 | 
						|
	  as longs
 | 
						|
 | 
						|
builtins/history.def
 | 
						|
	- consolidate tests for valid history position in one block to
 | 
						|
	  avoid duplicate code and strings
 | 
						|
 | 
						|
builtins/ulimit.def
 | 
						|
	- fix check for overflow when setting limit to work when int is 32
 | 
						|
	  bits and RLIMTYPE is 64
 | 
						|
 | 
						|
lib/sh/tmpfile.c
 | 
						|
	- don't truncate the result of time(3) to int; just use time_t,
 | 
						|
	  since it's being assigned to an `unsigned long'
 | 
						|
 | 
						|
mailcheck.c
 | 
						|
	- use legal_number instead of atoi in time_to_check_mail() to catch
 | 
						|
	  more numeric errors; consolidate error checking in one block
 | 
						|
	- last_time_mail_checked should be a time_t
 | 
						|
 | 
						|
				    5/9
 | 
						|
				    ---
 | 
						|
builtins/set.def
 | 
						|
	- recognize `set [-+]o nolog' if HISTORY is defined
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- new variable `dont_save_function_defs', set by `set -o nolog';
 | 
						|
	  currently ignored
 | 
						|
 | 
						|
command.h
 | 
						|
	- the `dest' member of a REDIRECTEE is now an `int'
 | 
						|
 | 
						|
parse.y,redir.c
 | 
						|
	- changed uses of `redir.test' (where redir is a REDIRECTEE) since
 | 
						|
	  it's now an int
 | 
						|
 | 
						|
lib/readline/rlstdc.h
 | 
						|
	- don't mess around with `const', rely on configure to supply a
 | 
						|
	  proper definition if the compiler doesn't support it
 | 
						|
 | 
						|
lib/tilde/tilde.h
 | 
						|
	- include <config.h> if HAVE_CONFIG_H is defined
 | 
						|
	- don't mess around with `const', rely on configure
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- new read-only `shopt' option, login_shell, non-zero if shell is a
 | 
						|
	  login shell (as decided by shell.c)
 | 
						|
	- new function set_login_shell(), sets shopt private value of
 | 
						|
	  login_shell
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- new extern declaration for set_login_shell
 | 
						|
 | 
						|
shell.c
 | 
						|
	- call set_login_shell after setting value of login_shell (in
 | 
						|
	  main() and set_shell_name())
 | 
						|
 | 
						|
parse.y
 | 
						|
	- added new `\A' prompt string escape sequence:  time in 24-hour
 | 
						|
	  HH:MM format
 | 
						|
 | 
						|
configure.in, config.h.in
 | 
						|
	- check for <grp.h>, define HAVE_GRP_H if found
 | 
						|
 | 
						|
builtins/complete.def
 | 
						|
	- add new `-A group/-g' option to complete group names
 | 
						|
 | 
						|
pcomplete.h
 | 
						|
	- new define for CA_GROUP, used with group name completion
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- add code to support CA_GROUP group name completion
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- new function, bash_groupname_completion_function(), supports
 | 
						|
	  programmable completion of group names
 | 
						|
 | 
						|
bashline.h
 | 
						|
	- extern declaration for bash_groupname_completion_function
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- new inputrc variable, `match-hidden-files', controls completion
 | 
						|
	  matching files beginning with a `.' (on Unix)
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- new variable, _rl_match_hidden_files, mirrors `match-hidden-files'
 | 
						|
	  inputrc variable
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- extern declaration for _rl_match_hidden_files
 | 
						|
 | 
						|
builtins/hash.def
 | 
						|
	- new `-t' option to list hash values for each filename argument
 | 
						|
 | 
						|
builtins/read.def
 | 
						|
	- alarm(3) takes an `unsigned int' argument, not int
 | 
						|
	- check for arithmetic overflow with -t and -n options
 | 
						|
 | 
						|
input.c
 | 
						|
	- check for read error before doing \r\n translation on cygwin in
 | 
						|
	  b_fill_buffer
 | 
						|
	- reset bp->b_used to 0 instead of leaving it at -1 on read error
 | 
						|
	  in b_fill_buffer
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- new functions, shopt_setopt(name, mode) and
 | 
						|
	  shopt_listopt(name, mode) to give the rest of the shell an easy
 | 
						|
	  interface
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- extern declarations for shopt_setopt and shopt_listopt
 | 
						|
 | 
						|
shell.c
 | 
						|
	- new invocation options -O and +O, to list or set/unset shopt
 | 
						|
	  options like +o/-o sets and unsets `set -o' options
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document `set -o nolog'
 | 
						|
	- document `login_shell' shopt option
 | 
						|
	- document new `\A' prompt string escape sequence
 | 
						|
	- document new `-t' option to `hash'
 | 
						|
	- document new `[+-]O' invocation option
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- add text to `Invoking Bash' section defining a login shell; text
 | 
						|
	  taken from man page
 | 
						|
 | 
						|
doc/bash.1, lib/readline/doc/rluser.texinfo
 | 
						|
	- documented new complete/compgen `-A group/-g' option
 | 
						|
 | 
						|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
 | 
						|
	- documented new `match-hidden-files' inputrc variable
 | 
						|
 | 
						|
				   5/10
 | 
						|
				   ----
 | 
						|
configure.in
 | 
						|
	- fix AC_CHECK_PROG(ar, ...)
 | 
						|
	- add AC_CHECK_TYPE for ssize_t
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- new #undef for ssize_t
 | 
						|
 | 
						|
lib/sh/zread.c
 | 
						|
	- int -> ssize_t fixes to mirror modern declarations of read and write
 | 
						|
	- the `off' variable in zsyncfd should be an off_t since it computes
 | 
						|
	  a file offset
 | 
						|
	- the local buffer `lbuf' is now char, since it's not nice to pass
 | 
						|
	  unsigned char * to read(2), and the values from it are assigned to
 | 
						|
	  a char anyway
 | 
						|
	- lind and lused are now size_t, since they index into a buffer
 | 
						|
	- set lused to 0 on read error
 | 
						|
 | 
						|
lib/sh/zwrite.c
 | 
						|
	- change second argument to type `char *', since ISO C says you have
 | 
						|
	  to pass a `char *' to `write'
 | 
						|
 | 
						|
externs.h
 | 
						|
	- fix extern declarations of zread, zread1, zreadc, and zwrite
 | 
						|
	- prototype extern declaration of qsort_string_compare
 | 
						|
	- add extern declaration for history_delimiting_chars() from parse.y
 | 
						|
 | 
						|
input.h
 | 
						|
	- b_used and b_inputp members ofr struct BSTREAM are now size_t
 | 
						|
 | 
						|
builtins/evalstring.c
 | 
						|
	- the number of chars read with zread in cat_file should be assigned
 | 
						|
	  to a variable of type ssize_t
 | 
						|
 | 
						|
input.c
 | 
						|
	- the number of chars read with zread in b_fill_buffer should be
 | 
						|
	  assigned to a variable of type ssize_t
 | 
						|
	- `localbuf' is now type char[], since POSIX says you shouldn't pass
 | 
						|
	  unsigned char * to read(2)
 | 
						|
	- in getc_with_restart(), use a variable of type unsigned char to
 | 
						|
	  get a value from the local buffer and return it
 | 
						|
	- in ungetc_with_restart, explicitly return the character arg passed
 | 
						|
	  to avoid relying on localbuf being unsigned char
 | 
						|
 | 
						|
subst.c
 | 
						|
	- the number of chars read with zread in read_comsub should be
 | 
						|
	  assigned to a variable of type ssize_t
 | 
						|
 | 
						|
mksyntax.c
 | 
						|
	- instead of casting to unsigned char * in addcstr, use a variable
 | 
						|
	  of type unsigned char and let the compiler do the work
 | 
						|
 | 
						|
parse.y
 | 
						|
	- instead of casting to unsigned char * in yy_readline_get, use a
 | 
						|
	  variable of type unsigned char and let the compiler do the work
 | 
						|
	- ditto for yy_string_get and shell_getc (cast to unsigned char)
 | 
						|
 | 
						|
subst.c
 | 
						|
	- instead of casting to unsigned char when assigning to ifscmap in
 | 
						|
	  expand_word_internal, use a variable of type unsigned char and
 | 
						|
	  let the compiler do the work
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- instead of casting to unsigned char in ansic_quote, use a variable
 | 
						|
	  of type unsigned char and let the compiler do the work
 | 
						|
 | 
						|
builtins/evalstring.c
 | 
						|
	- remove extern declarations for zwrite and run_trap_cleanup; they're
 | 
						|
	  in externs.h
 | 
						|
	- prototype cat_file forward declaration
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR,
 | 
						|
	  and RL_INCLUDEDIR to what it used to test the installed readline
 | 
						|
	  library version for use by the caller
 | 
						|
	- change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if
 | 
						|
	  the caller has already assigned it a value
 | 
						|
	- rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir,
 | 
						|
	  _rl_includedir -> ac_cv_rl_includedir
 | 
						|
 | 
						|
configure.in
 | 
						|
	- change testing of whether to use the value of
 | 
						|
	  $opt_with_installed_readline to be != no, to allow the user to
 | 
						|
	  specify a prefix where the installed readline library may be found
 | 
						|
	- if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix
 | 
						|
	  to PREFIX before calling RL_LIB_READLINE_VERSION
 | 
						|
	- if --with-installed-readline[=PREFIX] is supplied, don't set
 | 
						|
	  RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care
 | 
						|
	  of it, set RL_INCLUDE=-I${RL_INCLUDEDIR}
 | 
						|
	- if --with-installed-readline[=PREFIX] is supplied, and we're
 | 
						|
	  linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR
 | 
						|
	  so we use the same version of the installed readline and history
 | 
						|
	  libraries
 | 
						|
 | 
						|
Makefile.in, builtins/Makefile.in
 | 
						|
	- have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- updated description of --with-installed-readline configure option 
 | 
						|
 | 
						|
general.c
 | 
						|
	- moved QSFUNC typedef here from builtins/common.c
 | 
						|
 | 
						|
{alias,bashline,variables,lib/sh/stringvec}.c
 | 
						|
	- cast fourth argument to qsort to (QSFUNC *)
 | 
						|
 | 
						|
alias.c
 | 
						|
	- prototype forward declaration of qsort_alias_compare
 | 
						|
 | 
						|
bashhist.c
 | 
						|
	- include <glob/glob.h> for extern declaration of glob_pattern_p
 | 
						|
	- remove extern declaration of history_delimiting_chars; it's now
 | 
						|
	  in externs.h
 | 
						|
	- prototype forward declarations of histignore_item_func,
 | 
						|
	  maybe_add_history, and bash_add_history
 | 
						|
 | 
						|
bracecomp.c
 | 
						|
	- remove extern declaration for sh_backslash_quote; it's in externs.h
 | 
						|
 | 
						|
braces.c
 | 
						|
	- remove extern declaration for extract_command_subst; it's in subst.h
 | 
						|
	- prototype forward declarations for expand_amble, array_concat, and
 | 
						|
	  brace_gobbler
 | 
						|
 | 
						|
error.c
 | 
						|
	- prototype extern declaration of give_terminal_to, fix bad call
 | 
						|
 | 
						|
{execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir,
 | 
						|
shell}.c
 | 
						|
	- prototype all static forward function declarations
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- changed some function parameters to `const char *' to avoid discarding
 | 
						|
	  const qualifier
 | 
						|
 | 
						|
make_cmd.c
 | 
						|
	- make_bare_word, make_word_flags, and make_word now take a
 | 
						|
	  `const char *' string argument
 | 
						|
 | 
						|
make_cmd.h
 | 
						|
	- changed extern declarations for make_bare_word and make_word
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- cprintf now takes a `const char *' as its first argument, like
 | 
						|
	  xprintf and printf
 | 
						|
	- the conditional define for xprintf should have been HAVE_VPRINTF,
 | 
						|
	  not HAVE_VFPRINTF
 | 
						|
 | 
						|
shell.c
 | 
						|
	- in isnetconn(), the return value of sizeof() is size_t
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- add inclusion of stddef.h if STDC_HEADERS is defined to 1 in
 | 
						|
	  BASH_CHECK_TYPE
 | 
						|
 | 
						|
configure.in
 | 
						|
	- add a call to BASH_CHECK_TYPE for socklen_t (type of third argument
 | 
						|
	  to getpeername(2))
 | 
						|
 | 
						|
				   5/11
 | 
						|
				   ----
 | 
						|
lib/readline/bind.c
 | 
						|
	- make `useq' a char array to pass to rl_macro_bind in
 | 
						|
	  rl_parse_and_bind
 | 
						|
 | 
						|
lib/readline/{{bind,isearch}.c,rlprivate.h}
 | 
						|
	- _rl_isearch_terminators is now a char *, not unsigned char *
 | 
						|
 | 
						|
{subst,variables,lib/sh/tmpfile}.c
 | 
						|
	- dollar_dollar_pid is now a `pid_t' instead of `int'
 | 
						|
 | 
						|
variables.c
 | 
						|
	- sbrand() now takes an `unsigned long' to set the seed value
 | 
						|
	- changed last_random_value to type int, since it's always between
 | 
						|
	  0 and 32767
 | 
						|
	- use strtoul to convert the value in assign_random instead of atoi
 | 
						|
	- take out casts in any arguments to sbrand()
 | 
						|
	- take out cast to int in call to inttostr in set_ppid()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- don't cast last_asynchronous_pid when passing to itos()
 | 
						|
 | 
						|
{sig,subst}.c
 | 
						|
	- prototype all static forward function declarations
 | 
						|
 | 
						|
				   5/14
 | 
						|
				   ----
 | 
						|
{test,trap,variables}.c
 | 
						|
	- prototype all static forward function declarations
 | 
						|
 | 
						|
variables.c
 | 
						|
	- free_variable_hash_data() now takes a PTR_T, a `generic pointer'
 | 
						|
 | 
						|
builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help,
 | 
						|
history,jobs,pushd,read,set,trap,umask,
 | 
						|
	- prototype all static forward function declarations
 | 
						|
 | 
						|
builtins/read.def
 | 
						|
	- reset_eol_delim now takes a `char *' arg, since that's what the
 | 
						|
	  unwind_protect functions pass it, and it ignores its arguments
 | 
						|
	  anyway
 | 
						|
 | 
						|
lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c
 | 
						|
	- prototype all static forward function declarations
 | 
						|
 | 
						|
lib/tilde/tilde.c
 | 
						|
	- prototype all static forward function declarations
 | 
						|
	- tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and
 | 
						|
	  glue_prefix_and_suffix now take `const char *' arguments where
 | 
						|
	  appropriate
 | 
						|
 | 
						|
configure.in,config.h.in
 | 
						|
	- check for vsnprintf, define HAVE_VSNPRINTF if found
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- use vsnprintf() in rl_message if it's available; if we don't, at
 | 
						|
	  least set the last character in msg_buf to 0 to avoid overrun --
 | 
						|
	  we really can't do anything about overflow at this point.  if it's
 | 
						|
	  available, this fixes buffer overflow problems in rl_message
 | 
						|
 | 
						|
				   5/15
 | 
						|
				   ----
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- in get_history_word_specifier, allow any character to terminate
 | 
						|
	  a `:first-' modifier, not just `:' and null.  This is what csh
 | 
						|
	  appears to do.  This allows things like `!:0- xyzzy' to replace the
 | 
						|
	  last argument with xyzzy
 | 
						|
 | 
						|
				   5/18
 | 
						|
				   ----
 | 
						|
configure.in, config.h.in
 | 
						|
	- check for <stdint.h>, define HAVE_STDINT_H if found
 | 
						|
	- check for intmax_t in <stdint.h>, define intmax_t as long if not
 | 
						|
	  found
 | 
						|
 | 
						|
				   5/21
 | 
						|
				   ----
 | 
						|
builtins/kill.def
 | 
						|
	- change to use strerror() for error message when kill(2) fails
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- new macro, BASH_C_LONG_LONG, check for `long long'
 | 
						|
 | 
						|
configure.in, config.h.in
 | 
						|
	- call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- new file, with implementations of snprintf, vsnprintf, asprintf,
 | 
						|
	  and vasprintf, derived from inetutils version
 | 
						|
 | 
						|
Makefile.in, lib/sh/Makefile.in
 | 
						|
	- add snprintf.c/snprintf.o
 | 
						|
 | 
						|
configure.in, config.h.in
 | 
						|
	- add checks for snprintf, asprintf, vasprintf, with appropriate
 | 
						|
	  cpp defines
 | 
						|
 | 
						|
lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c
 | 
						|
	- xmalloc and xrealloc now take `size_t' arguments, like their bash
 | 
						|
	  counterparts
 | 
						|
 | 
						|
externs.h,lib/sh/itos.c
 | 
						|
	- inttostr and itos now take `long' arguments
 | 
						|
	- inttostr takes a `size_t' argument for the buffer size
 | 
						|
 | 
						|
{expr,lib/malloc/malloc,variables,general}.c
 | 
						|
	- fixed calls to itos() by removing casts, etc.
 | 
						|
 | 
						|
subst.[ch]
 | 
						|
	- get_dollar_var_value now takes a long, not an int
 | 
						|
	- sub_append_number now takes a long, not an int
 | 
						|
 | 
						|
subst.c
 | 
						|
	- in parameter_brace_expand_word, use a long and legal_number to
 | 
						|
	  translate ${N}, to avoid overflow
 | 
						|
	- in parameter_brace_expand_length, use a long and legal_number to
 | 
						|
	  translate ${#N}, to avoid overflow
 | 
						|
	- in do_array_element_assignment, array_expand_index,
 | 
						|
	  array_value_internal, use arrayind_t instead of int
 | 
						|
	- let verify_substring_values take long * arguments for the return
 | 
						|
	  value of evalexp()
 | 
						|
	- pass long * arguments to verify_substring_values in
 | 
						|
	  parameter_brace_substring
 | 
						|
	- parameter_brace_expand_length now returns `long'
 | 
						|
	- parameter_brace_expand now uses a long variable for the return
 | 
						|
	  value of parameter_brace_expand_length
 | 
						|
	- param_expand now uses a long variable for the return value from
 | 
						|
	  evalexp
 | 
						|
	- array_length reference now returns an `arrayind_t', since it can
 | 
						|
	  return the num_elements member of an array, which is of type
 | 
						|
	  arrayind_t
 | 
						|
 | 
						|
subst.h
 | 
						|
	- array_expand_index now returns an `arrayind_t'
 | 
						|
 | 
						|
array.[ch]
 | 
						|
	- array_subrange now takes arrayind_t arguments, not `int'
 | 
						|
	- dup_array_subrange now uses arrayind_t local variable to do
 | 
						|
	  array indexing
 | 
						|
	- use long to print array indices in print_element
 | 
						|
 | 
						|
variables.c
 | 
						|
	- null_array_assign, assign_dirstack, bind_array_variable
 | 
						|
	  now take arrayind_t arguments as array indices
 | 
						|
	- assign_array_var_from_word_list, assign_array_var_from_string,
 | 
						|
	  unbind_array_element now use arrayind_t local variables for
 | 
						|
	  array indexing
 | 
						|
 | 
						|
variables.h
 | 
						|
	- change extern declaration of bind_array_variable
 | 
						|
 | 
						|
builtins/common.[ch]
 | 
						|
	- get_numeric_arg now returns a `long', since it usually returns
 | 
						|
	  the value of legal_number()
 | 
						|
 | 
						|
builtins/{shift,break}.def
 | 
						|
	- use long variables for the return value of get_numeric_arg
 | 
						|
 | 
						|
builtins/history.def
 | 
						|
	- convert string argument to int only if it's in range
 | 
						|
 | 
						|
builtins/pushd.def
 | 
						|
	- set_dirstack_element and get_dirstack_element now take `long'
 | 
						|
	  index arguments
 | 
						|
	- get_dirstack_index now takes a `long' index argument, since it's
 | 
						|
	  passed the converted value from legal_number
 | 
						|
 | 
						|
lib/sh/timeval.c
 | 
						|
	- in print_timeval, don't assume that the number of minutes fits into
 | 
						|
	  an int, since it's just seconds/60.
 | 
						|
 | 
						|
lib/sh/clock.c
 | 
						|
	- ditto for print_clock_t
 | 
						|
 | 
						|
				   5/22
 | 
						|
				   ----
 | 
						|
shell.c
 | 
						|
	- since the -O option settings may possibly be overridden by the
 | 
						|
	  normal shell initialization or posix initialization, save the
 | 
						|
	  invocation options on an alist (with add_shopt_to_alist) and
 | 
						|
	  process them after basic initialization (with run_shopt_alist)
 | 
						|
 | 
						|
				   5/23
 | 
						|
				   ----
 | 
						|
trap.h
 | 
						|
	- new define, BASH_NSIG, all system signals plus special bash traps
 | 
						|
 | 
						|
trap.c, builtins/trap.def
 | 
						|
	- use BASH_NSIG for array bounds and loops where appropriate
 | 
						|
 | 
						|
trap.c
 | 
						|
	- change decode_signal to disallow numeric signal numbers above
 | 
						|
	  NSIG -- this means you can only reference special traps like
 | 
						|
	  DEBUG by name
 | 
						|
	- new SPECIAL_TRAP(s) macro to test whether s is one of the special
 | 
						|
	  bash traps (currently DEBUG and EXIT)
 | 
						|
	- change reset_or_restore_signal_handlers so command substitution
 | 
						|
	  doesn't inherit the debug trap (like ksh93), and child processes
 | 
						|
	  don't have to rely on initialize_traps being run to get rid of
 | 
						|
	  any debug trap
 | 
						|
 | 
						|
support/mksignames.c
 | 
						|
	- add extra "ERR" signal name, value NSIG+1, allocate space for it
 | 
						|
	  and write it out in signal_names[]
 | 
						|
 | 
						|
trap.h
 | 
						|
	- new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2
 | 
						|
	- extern declarations for set_error_trap, run_error_trap
 | 
						|
	- new define: TRAP_STRING(s), expands to trap_list[s] if signal S
 | 
						|
	  is trapped and not ignored, NULL otherwise
 | 
						|
 | 
						|
trap.c
 | 
						|
	- add ERROR_TRAP to SPECIAL_TRAPS define
 | 
						|
	- initialize ERROR_TRAP stuff in initialize_traps
 | 
						|
	- new function: set_error_trap(command), sets the ERR trap string
 | 
						|
	- new function: run_error_trap(command), runs the ERR trap string
 | 
						|
	- set trap string for ERROR_TRAP to NULL in free_trap_strings
 | 
						|
	- change reset_or_restore_signal_handlers so child processes don't
 | 
						|
	  inherit the ERR trap
 | 
						|
	- add case to call run_error_trap in maybe_call_trap_handler
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- in execute_command_internal, keep track of ERR trap and call it if
 | 
						|
	  necessary
 | 
						|
	- use TRAP_STRING to get the value of debug and error traps
 | 
						|
	- in execute_function, arrange things so the ERR trap is not inherited
 | 
						|
	  by shell functions, and is saved and restored like the DEBUG trap
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new ERR trap
 | 
						|
 | 
						|
tests/{trap.{tests,right},trap2.sub,trap2a.sub}
 | 
						|
	- added ERR trap tests
 | 
						|
 | 
						|
subst.c
 | 
						|
	- on machines without /dev/fd, change the named pipe fifo list to a
 | 
						|
	  list of structs containing pathname and proc information
 | 
						|
	- change unlink_fifo_list to kill the proc in the fifo list with
 | 
						|
	  signal 0 and not remove the fifo if the proc is still alive.  This
 | 
						|
	  should fix the problem on those backward systems without /dev/fd
 | 
						|
	  where fifos were removed when a job using process substitution was
 | 
						|
	  suspended
 | 
						|
 | 
						|
				   5/24
 | 
						|
				   ----
 | 
						|
examples/loadables/getconf.h
 | 
						|
	- new file, with basic defines needed to make getconf work minimally
 | 
						|
	  on POSIX systems without the necessary definitions
 | 
						|
 | 
						|
examples/loadables/getconf.c
 | 
						|
	- replacement functions for confstr, sysconf, pathconf for systems
 | 
						|
	  that lack them, providing a minimal posix interface
 | 
						|
	- heavily augmented getconf, now supports all POSIX.1-200x,
 | 
						|
	  POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables
 | 
						|
 | 
						|
				   5/29
 | 
						|
				   ----
 | 
						|
builtins/setattr.def
 | 
						|
	- make `readonly', `export', and `declare' print `invisible' variables
 | 
						|
	  as just a command and variable name, without a value, when listing
 | 
						|
	  all variables (as POSIX.2-200x d6 requires)
 | 
						|
 | 
						|
				   5/30
 | 
						|
				   ----
 | 
						|
 | 
						|
configure.in
 | 
						|
	- upgraded to autoconf-2.50 on main development machine, so require
 | 
						|
	  autoconf-2.50 in preparation for using some if its new features
 | 
						|
	- call AC_C_PROTOTYPES
 | 
						|
	- remove call to AC_EXEEXT, which now does the wrong thing
 | 
						|
	- changed AC_INIT to new flavor
 | 
						|
	- added call to AC_CONFIG_SRCDIR
 | 
						|
	- AC_CONFIG_HEADER -> AC_CONFIG_HEADERS
 | 
						|
	- AC_RETSIGTYPE -> AC_TYPE_SIGNAL
 | 
						|
 | 
						|
configure.in, aclocal.m4, config.h.in
 | 
						|
	- removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE
 | 
						|
	  standard support, with new macros _FILE_OFFSET_BITS and
 | 
						|
	  _LARGE_FILES
 | 
						|
	- removed definition of BASH_LARGE_FILE_SUPPORT
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- document new `--enable-largefile' configure option
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- change rl_set_prompt to call rl_expand_prompt unconditionally, so
 | 
						|
	  local_prompt and local_prompt_prefix get set correctly
 | 
						|
 | 
						|
				    6/6
 | 
						|
				    ---
 | 
						|
lib/readline/complete.c
 | 
						|
	- don't append `/' or ` ' to a match when completing a symlink that
 | 
						|
	  resolves to a directory, unless the match doesn't add anything
 | 
						|
	  to the word.  This means that a tab will complete the word up to
 | 
						|
	  the full name, but not add anything, and a subsequent tab will add
 | 
						|
	  a slash.  Change to append_to_match; callers changed
 | 
						|
 | 
						|
hashlib.c
 | 
						|
	- new function, hash_table_nentries (table), returns the number of
 | 
						|
	  items in TABLE
 | 
						|
 | 
						|
hashlib.h
 | 
						|
	- extern declaration for hash_table_nentries
 | 
						|
 | 
						|
configure.in
 | 
						|
	- configure without bash malloc on openbsd; they claim it needs
 | 
						|
	  eight-bit alignment (which the bash malloc provides, but...)
 | 
						|
 | 
						|
				    7/2
 | 
						|
				    ---
 | 
						|
stringlib.c
 | 
						|
	- only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement
 | 
						|
	  string length is > 0, avoid possible hangs if replacement is null
 | 
						|
 | 
						|
subst.c
 | 
						|
	- don't include input.h; no longer needed
 | 
						|
 | 
						|
configure.in
 | 
						|
	- remove calls to AC_SYS_RESTARTABLE_SYSCALLS and
 | 
						|
	  BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- remove define for HAVE_RESTARTABLE_SYSCALLS
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- changed select command so `return' no longer terminates the select
 | 
						|
	  command, so it can be used to return from an enclosing function.
 | 
						|
	  This is as ksh (88 and 93) does it
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- fix trivial typo in declaration of vi_motion; `t' appears twice;
 | 
						|
	  the second instance should be `T'
 | 
						|
 | 
						|
				    7/3
 | 
						|
				    ---
 | 
						|
configure.in
 | 
						|
	- don't add -static to LDFLAGS on Solaris 2.x.  This means that the
 | 
						|
	  auxiliary programs will be built as dynamic executables, but that
 | 
						|
	  should do no harm
 | 
						|
 | 
						|
				    7/5
 | 
						|
				    ---
 | 
						|
lib/glob/fnmatch.c
 | 
						|
	- fix the code that processes **(pattern) to short-circuit if the
 | 
						|
	  pattern is ill-formed or lacks a trailing `)'  -- this fixes the
 | 
						|
	  segfault on **(/*)
 | 
						|
 | 
						|
Makefile.in, builtins/Makefile.in
 | 
						|
	- split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in
 | 
						|
	  cross-compilation
 | 
						|
	- build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD)
 | 
						|
 | 
						|
configure.in, config.h.in
 | 
						|
	- check for getaddrinfo(3), define HAVE_GETADDRINFO if found
 | 
						|
 | 
						|
lib/sh/netopen.c
 | 
						|
	- implemented a version of _netopen (_netopen6) that uses
 | 
						|
	  getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined.
 | 
						|
	  old _netopen is _netopen4; _netopen now calls either _netopen6
 | 
						|
	  or _netopen4 as appropriate
 | 
						|
 | 
						|
				    7/9
 | 
						|
				    ---
 | 
						|
builtins/exit.def
 | 
						|
	- don't source ~/.bash_logout if subshell_environment is non-zero
 | 
						|
 | 
						|
execute_command.c
 | 
						|
	- in execute_until_or_while, handle the case where `breaking' is
 | 
						|
	  set in the loop test (e.g., by the job control code when a job
 | 
						|
	  is stopped with SIGTSTP), but the return value from the test is
 | 
						|
	  something that would cause the loop to break.  Need to decrement
 | 
						|
	  `breaking' in this case
 | 
						|
 | 
						|
				   7/10
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- in execute_in_subshell, make sure a command of type cm_subshell
 | 
						|
	  inherits its `enclosing' command's CMD_IGNORE_RETURN flag
 | 
						|
 | 
						|
variables.c
 | 
						|
	- in maybe_make_export_env, don't allow restricted shells to put
 | 
						|
	  exported functions in the export environment
 | 
						|
 | 
						|
				   7/11
 | 
						|
				   ----
 | 
						|
lib/glob/strmatch.h
 | 
						|
	- renamed old fnmatch.h
 | 
						|
	- changed guard #ifdef to _STRMATCH_H
 | 
						|
	- include system <fnmatch.h> if HAVE_LIBC_FNM_EXTMATCH is defined
 | 
						|
 | 
						|
lib/glob/strmatch.c
 | 
						|
	- renamed old fnmatch.c
 | 
						|
	- include "strmatch.h"
 | 
						|
	- if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of
 | 
						|
	  strmatch() that just calls fnmatch(3)
 | 
						|
 | 
						|
lib/glob/glob.c
 | 
						|
	- include "strmatch.h"
 | 
						|
	- fnmatch -> strmatch
 | 
						|
 | 
						|
Makefile.in, lib/glob/Makefile.in
 | 
						|
	- fnmatch -> strmatch
 | 
						|
 | 
						|
{bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c,
 | 
						|
pathexp.h,builtins/help.def
 | 
						|
	- include <glob/strmatch.h>
 | 
						|
	- fnmatch -> strmatch
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- broke the code that parses the interpreter name from a #! line
 | 
						|
	  out from execute_shell_script to a new function, getinterp()
 | 
						|
	- call getinterp from execute_shell_script
 | 
						|
	- use return value from getinterp in error message about bad
 | 
						|
	  #! interpreter in shell_execve
 | 
						|
 | 
						|
				   7/12
 | 
						|
				   ----
 | 
						|
lib/readline/isearch.c
 | 
						|
	- the last isearch string is now remembered in a new static variable,
 | 
						|
	  last_isearch_string
 | 
						|
	- if ^R^R is typed, readline now searches for the remembered isearch
 | 
						|
	  string, if one exists
 | 
						|
 | 
						|
				   7/24
 | 
						|
				   ----
 | 
						|
pcomplete.h
 | 
						|
	- extern declaration for completions_to_stringlist()
 | 
						|
 | 
						|
				   7/25
 | 
						|
				   ----
 | 
						|
builtins/complete.def
 | 
						|
	- make compgen handle -o default option
 | 
						|
	- make compgen return success only if sl->list_len is non-zero,
 | 
						|
	  indicating that there are items on the list
 | 
						|
 | 
						|
				   7/31
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- in execute_connection, force stdin to /dev/null for asynchronous
 | 
						|
	  commands if job control is not active, not just if the shell is
 | 
						|
	  running a shell script (since you can run `set -m' in a script)
 | 
						|
 | 
						|
lib/readline/rltty.c
 | 
						|
	- make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on
 | 
						|
	  successful restoration of the terminal modes
 | 
						|
	- make sure _rl_tty_disable_signals turns off IXON so that ^S and
 | 
						|
	  ^Q can be read by rl_quoted_insert
 | 
						|
 | 
						|
				    8/1
 | 
						|
				    ---
 | 
						|
aclocal.m4
 | 
						|
	- new check for FNM_EXTMATCH being defined in <fnmatch.h>, as Ullrich
 | 
						|
	  Drepper intends to do for new versions of GNU libc
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- new definition for HAVE_LIBC_FNM_EXTMATCH
 | 
						|
 | 
						|
configure.in
 | 
						|
	- check for fnmatch, but don't define anything in config.h
 | 
						|
	- call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH
 | 
						|
 | 
						|
				    8/2
 | 
						|
				    ---
 | 
						|
alias.h
 | 
						|
	- remove bogus extern declaration for xmalloc()
 | 
						|
	- include "stdc.h"
 | 
						|
	- add prototype declarations for all extern function declarations
 | 
						|
 | 
						|
xmalloc.c,lib/readline/xmalloc.c
 | 
						|
	- fix xmalloc to return a PTR_T
 | 
						|
	- fix xrealloc to return a PTR_T and take a PTR_T as first argument
 | 
						|
 | 
						|
include/ansi_stdlib.h
 | 
						|
	- extern declarations for malloc and realloc have them return PTR_T
 | 
						|
 | 
						|
xmalloc.h
 | 
						|
	- new file, with extern declarations for functions in xmalloc.c
 | 
						|
 | 
						|
general.h
 | 
						|
	- removed extern declarations for functions in xmalloc.c
 | 
						|
	- include xmalloc.h
 | 
						|
 | 
						|
Makefile.in,builtins/Makefile.in
 | 
						|
	- update dependencies to include xmalloc.h
 | 
						|
 | 
						|
parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general,
 | 
						|
hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib,
 | 
						|
subst,unwind_prot,variables}.c
 | 
						|
builtins/{common,evalfile}.c
 | 
						|
builtins/{cd,command,enable,exec,printf,read,set}.def
 | 
						|
lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist,
 | 
						|
strtrans,tmpfile}.c
 | 
						|
lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input,
 | 
						|
histfile,histexpand,display,complete,bind}.c
 | 
						|
	- make sure all calls to xmalloc are cast to the right return value
 | 
						|
 | 
						|
siglist.c
 | 
						|
	- include xmalloc.h
 | 
						|
 | 
						|
parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c
 | 
						|
builtins/{fc,printf,read}.def
 | 
						|
lib/sh/snprintf.c, lib/tilde/tilde.c
 | 
						|
lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c
 | 
						|
	- make sure all calls to xrealloc are cast to the right return value
 | 
						|
 | 
						|
lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c
 | 
						|
	- include xmalloc.h, remove extern declaration of xmalloc
 | 
						|
 | 
						|
lib/readline/xmalloc.h
 | 
						|
	- xmalloc and xrealloc should return PTR_T
 | 
						|
 | 
						|
lib/readline/rldefs.h
 | 
						|
	- don't include an extern declaration for xmalloc
 | 
						|
 | 
						|
				    8/7
 | 
						|
				    ---
 | 
						|
support/shobj-conf
 | 
						|
	- fixed up commented-out stanzas for HP's unbundled C compiler on
 | 
						|
	  HP/UX
 | 
						|
 | 
						|
support/bashbug.sh
 | 
						|
	- force the subject to be changed from the default
 | 
						|
 | 
						|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
 | 
						|
	- document that transpose-words swaps the last two words on the line
 | 
						|
	  if point is at the end of the line
 | 
						|
 | 
						|
				    8/9
 | 
						|
				    ---
 | 
						|
stringlib.c
 | 
						|
	- fix possible infinite recursion problem with null pattern in
 | 
						|
	  strsub()
 | 
						|
 | 
						|
hashlib.c
 | 
						|
	- new function copy_hash_table to copy a hash table using a caller-
 | 
						|
	  supplied function to copy item data (defaults to savestring())
 | 
						|
 | 
						|
hashlib.h
 | 
						|
	- new extern declaration for copy_hash_table
 | 
						|
 | 
						|
builtins/declare.def
 | 
						|
	- changes so that declare [-a] var=value assigns `value' to element 0
 | 
						|
	  of array variable `var' like ksh93
 | 
						|
	- change so that declare [-a] var[N]=value assigns `value' to element
 | 
						|
	  N of array variable `var' like ksh93
 | 
						|
 | 
						|
				   8/13
 | 
						|
				   ----
 | 
						|
arrayfunc.c
 | 
						|
	- new file, for miscellaneous array functions
 | 
						|
 | 
						|
arrayfunc.h
 | 
						|
	- new file, extern declarations for functions in arrayfunc.c
 | 
						|
 | 
						|
variables.c
 | 
						|
	- move convert_var_to_array, bind_array_variable,
 | 
						|
	  assign_array_from_string, assign_array_var_from_word_list,
 | 
						|
	  assign_array_var_from_string, quote_array_assignment_chars,
 | 
						|
	  skipsubscript, unbind_array_element, print_array_assignment
 | 
						|
	  to arrayfunc.c
 | 
						|
 | 
						|
shell.h
 | 
						|
	- include arrayfunc.h after variables.h
 | 
						|
 | 
						|
variables.h
 | 
						|
	- remove above extern function declarations moved to arrayfunc.h
 | 
						|
	- add extern declaration for var_lookup
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- add arrayfunc.c, arrayfunc.h in appropriate places
 | 
						|
	- add arrayfunc.h to dependencies
 | 
						|
 | 
						|
subst.c
 | 
						|
	- move valid_array_reference, array_expand_index, array_variable_part,
 | 
						|
	  array_value_internal, array_value (now global), get_array_value,
 | 
						|
	  do_array_element_assignment to arrayfunc.c
 | 
						|
 | 
						|
subst.h
 | 
						|
	- extern declarations for functions above moved to arrayfunc.h
 | 
						|
 | 
						|
arrayfunc.h
 | 
						|
	- extern declarations for above functions from subst.c
 | 
						|
 | 
						|
subst.[ch]
 | 
						|
	- string_list_dollar_star and string_list_dollar_at are now global
 | 
						|
	  functions
 | 
						|
	- quote_escapes is now a global function
 | 
						|
 | 
						|
subst.c
 | 
						|
	- maybe_expand_string -> expand_string_if_necessary
 | 
						|
	- expand_string_to_string -> expand_string_to_string_internal
 | 
						|
	- new functions: expand_string_to_string and
 | 
						|
	  expand_string_unsplit_to_string, which call
 | 
						|
	  expand_string_to_string_internal with expand_string and
 | 
						|
	  expand_string_unsplit as the FUNC arguments, respectively
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- change array_expand_index to call expand_string_to_string instead
 | 
						|
	  of maybe_expand_string
 | 
						|
 | 
						|
				   8/14
 | 
						|
				   ----
 | 
						|
shell.c
 | 
						|
	- in execute_env_file, call expand_string_unsplit_to_string
 | 
						|
 | 
						|
mailcheck.c
 | 
						|
	- in check_mail, call expand_string_to_string
 | 
						|
 | 
						|
variables.c
 | 
						|
	- in assign_in_env, call expand_string_unsplit_to_string
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- new function, array_variable_name, splits an array reference into
 | 
						|
	  a name (which is returned as a new string) and subscript
 | 
						|
	- change array_variable_part to just call array_variable_name and
 | 
						|
	  look up the string returned with find_variable
 | 
						|
	- new function, find_or_make_array_variable (name, flags) which will
 | 
						|
	  look up an array variable and convert a string variable to an
 | 
						|
	  array if necessary.  The FLAGS argument, if non-zero, says to
 | 
						|
	  check the readonly and noassign attributes and fail if either is set
 | 
						|
 | 
						|
builtins/read.def
 | 
						|
	- make `read -a aname' honor any readonly status of `aname'
 | 
						|
	- read -a now calls find_or_make_array_variable with FLAGS value 1
 | 
						|
 | 
						|
arrayfunc.[ch], subst.c, builtins/{declare,read}.def
 | 
						|
	- do_array_element_assignment -> assign_array_element
 | 
						|
 | 
						|
				   8/20
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- changed `for' command grammar to allow missing word list after `IN'
 | 
						|
	  token, like latest POSIX drafts require
 | 
						|
 | 
						|
lib/sh/tmpfile.c
 | 
						|
	- in sh_mktmpname(), check for filenum == 0 and init to non-zero number
 | 
						|
	  in this case.  it can happen on arithmetic overflow
 | 
						|
 | 
						|
support/mkversion.sh
 | 
						|
	- added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a
 | 
						|
	  distribution to allow for intermediate versions, like 2.05a
 | 
						|
 | 
						|
support/config.guess
 | 
						|
	- removed the addition of the output of `/usr/bin/objformat' when
 | 
						|
	  creating the canonical name on FreeBSD machines, so the canonical
 | 
						|
	  name is once again `freebsd4.2' instead of `freebsdelf4.2'
 | 
						|
 | 
						|
				   8/22
 | 
						|
				   ----
 | 
						|
lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell,
 | 
						|
rltypedefs,xmalloc}.h
 | 
						|
lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch,
 | 
						|
input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode
 | 
						|
	- changed __P to PARAMS
 | 
						|
 | 
						|
lib/tilde/tilde.[ch]
 | 
						|
	- changed __P to PARAMS
 | 
						|
 | 
						|
{Makefile,configure}.in
 | 
						|
	- changed the version number to 2.05a
 | 
						|
	- changed the release status to `alpha1'
 | 
						|
 | 
						|
				   8/23
 | 
						|
				   ----
 | 
						|
support/shobj-conf
 | 
						|
	- support for building shared libraries on Darwin/MacOS X
 | 
						|
 | 
						|
siglist.h
 | 
						|
	- extern declaration for strsignal() to compensate for lack of
 | 
						|
	  a definition in some system include files
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- remove casts from strsignal() calls
 | 
						|
 | 
						|
[bash-2.05a-alpha1 frozen]
 | 
						|
 | 
						|
				   8/27
 | 
						|
				   ----
 | 
						|
[bash-2.05a-alpha1 released]
 | 
						|
 | 
						|
				   8/27
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- fix eval_arith_for_expr to handle the case where the expanded
 | 
						|
	  word list is NULL, returning 0 in this case
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- in print_function_def, make sure that func_redirects is assigned
 | 
						|
	  a value before being used
 | 
						|
 | 
						|
				   8/28
 | 
						|
				   ----
 | 
						|
alias.c
 | 
						|
	- include <ctype.h> for definition of isalpha()
 | 
						|
 | 
						|
bashhist.h
 | 
						|
	- add prototypes for extern function declarations
 | 
						|
 | 
						|
flags.c
 | 
						|
	- include bashhist.h for extern function declarations
 | 
						|
 | 
						|
mksyntax.c
 | 
						|
	- include <unistd.h> if HAVE_UNISTD_H is defined in config.h
 | 
						|
 | 
						|
parse.y
 | 
						|
	- include test.h for extern function declarations
 | 
						|
 | 
						|
externs.h
 | 
						|
	- change extern declaration for setlinebuf to sh_setlinebuf
 | 
						|
 | 
						|
stringlib.c
 | 
						|
	- include <glob/glob.h> for extern function declarations
 | 
						|
 | 
						|
variables.h
 | 
						|
	- add function prototypes for all of the sv_* functions
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- add extern declarations for set_shellopts() and parse_shellopts()
 | 
						|
	  from builtins/set.def
 | 
						|
 | 
						|
variables.c
 | 
						|
	- include "hashcmd.h" for extern declaration for flush_hashed_filenames
 | 
						|
	- include "pathexp.h" for extern declaration for setup_glob_ignore
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- cast to `long' instead of `int' in memalign for 64-bit machines
 | 
						|
 | 
						|
{pcomplete,trap}.c
 | 
						|
	- changed printf escape sequences used to print pointers to %p
 | 
						|
 | 
						|
lib/readline/undo.c
 | 
						|
	- include "xmalloc.h" for extern function declaration
 | 
						|
 | 
						|
input.h
 | 
						|
	- add function prototypes to extern declarations for getc_with_restart
 | 
						|
	  and ungetc_with_restart
 | 
						|
 | 
						|
variables.[ch]
 | 
						|
	- changed type of `function' member of `struct name_and_function' to
 | 
						|
	  `sv_func_t', which is defined and prototyped in variables.h
 | 
						|
	- map_over now takes an `sh_var_map_func_t *'
 | 
						|
 | 
						|
shell.h
 | 
						|
	- start of a set of function pointer typedefs like those in
 | 
						|
	  lib/readline/rltypedefs.h
 | 
						|
 | 
						|
hashlib.[ch]
 | 
						|
	- second paramter to flush_hash_table is now an `sh_free_func_t *'
 | 
						|
 | 
						|
trap.c
 | 
						|
	- parameter to reset_or_restore_signal_handlers is now an
 | 
						|
	  `sh_resetsig_func_t *'
 | 
						|
 | 
						|
pcomplete.h, pcomplib.c
 | 
						|
	- function pointer argument to print_all_compspecs is now an
 | 
						|
	  `sh_csprint_func_t *'
 | 
						|
	- function pointer `list_getter' element of an `ITEMLIST' is now
 | 
						|
	  prototyped with __P((...)) instead of using `Function *'
 | 
						|
 | 
						|
jobs.[ch]
 | 
						|
	- `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *'
 | 
						|
 | 
						|
alias.c
 | 
						|
	- map_over_aliases now takes an `sh_alias_map_func_t *'
 | 
						|
	- free_alias_data now takes a `PTR_T'
 | 
						|
 | 
						|
pathexp.c
 | 
						|
	- function pointer argument to ignore_globbed_names is now an
 | 
						|
	  `sh_ignore_func_t *' 
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- function pointer argument to _ignore_completion_names is now an
 | 
						|
	  `sh_ignore_func_t *' 
 | 
						|
 | 
						|
pathexp.h,{bashhist,bashline.c
 | 
						|
	- `item_func' member of a `struct ignorevar' is now an
 | 
						|
	  `sh_iv_item_func_t *'
 | 
						|
 | 
						|
builtins/evalfile.c
 | 
						|
	- `errfunc' is now an `sh_vmsg_func_t *'
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- map_over_job now takes an `sh_job_map_func_t *' as its first argument
 | 
						|
 | 
						|
array.[ch]
 | 
						|
	- function pointer argument to array_walk is now an
 | 
						|
	  `sh_ae_map_func_t *'
 | 
						|
 | 
						|
general.c
 | 
						|
	- tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *',
 | 
						|
	  and so the assignment in tilde_initialize doesn't need a cast
 | 
						|
 | 
						|
list.c
 | 
						|
	- map_over_words now takes an `sh_icpfunc_t *' as its second argument
 | 
						|
 | 
						|
input.h
 | 
						|
	- the `getter' and `ungetter' function pointer members of a
 | 
						|
	  BASH_INPUT are now of types `sh_cget_func_t *' and
 | 
						|
	  `sh_cunget_func_t *' respectively
 | 
						|
	- init_yy_io now takes an `sh_cget_func_t *' as its first argument and
 | 
						|
	  an `sh_cunget_func_t *' as its second
 | 
						|
 | 
						|
parse.y
 | 
						|
	- init_yy_io now takes an `sh_cget_func_t *' as its first argument and
 | 
						|
	  an `sh_cunget_func_t *' as its second
 | 
						|
	- initialize_bash_input casts bash_input.getter and bash_input.ungetter
 | 
						|
	  appropriately
 | 
						|
 | 
						|
builtins/mkbuiltins.c
 | 
						|
	- make the extern function definitions written to builtext.h have
 | 
						|
	  prototypes with __P((...))
 | 
						|
	- include "stdc.h"
 | 
						|
	- change Function to mk_handler_func_t
 | 
						|
	- fixed comment_handler to take the right number of args
 | 
						|
	- prototyped all the handler functions with __P((...))
 | 
						|
 | 
						|
builtins.h
 | 
						|
	- the `function' member of a struct builtin is now of type
 | 
						|
	  `sh_builtin_func_t *'
 | 
						|
 | 
						|
builtins/common.[ch]
 | 
						|
	- last_shell_builtin, this_shell_builtin are now of type
 | 
						|
	  `sh_builtin_func_t *'
 | 
						|
	- find_shell_builtin, builtin_address, find_special_builtin now return
 | 
						|
	  `sh_builtin_func_t *'
 | 
						|
 | 
						|
builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y
 | 
						|
	- changed all declarations of last_shell_builtin and this_shell_builtin
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- execute_builtin, execute_builtin_or_function,
 | 
						|
	  execute_subshell_builtin_or_function now take an
 | 
						|
	  `sh_builtin_func_t *' instead of a `Function *' for argument
 | 
						|
	- changed appropriate variables from `Function *' to
 | 
						|
	  `sh_builtin_func_t *'
 | 
						|
 | 
						|
builtins/{bind,builtin,enable,read,setattr}.def
 | 
						|
	- replaced uses of `Function *' in variable declarations with
 | 
						|
	  appropriate types (sh_builtin_func_t * or rl_command_func_t *)
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- set_func and get_func members of binary_o_options are now of types
 | 
						|
	  `setopt_set_func_t *' and `setopt_get_func_t *', which are
 | 
						|
	  prototyped
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- set_func member of shopt_vars is now of type `shopt_set_func_t *'
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- enable_hostname_completion now returns `int' (the old value of
 | 
						|
	  perform_hostname_completion)
 | 
						|
 | 
						|
[The only use of Function and VFunction now is for unwind-protects]
 | 
						|
 | 
						|
				    9/4
 | 
						|
				    ---
 | 
						|
lib/sh/getcwd.c
 | 
						|
	- use const define from config.h rather than `CONST'
 | 
						|
	- use PTR_T define from xmalloc.h rather than `PTR'
 | 
						|
	- include xmalloc.h for PTR_T
 | 
						|
	- remove PATH_MAX define, rely on value from maxpath.h
 | 
						|
 | 
						|
{general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c
 | 
						|
	- don't include maxpath.h directly; it's already included by shell.h
 | 
						|
 | 
						|
lib/sh/mailstat.c
 | 
						|
	- new `mailstat()' implementation, to stat a mailbox file for
 | 
						|
	  mail checking.  handles maildir-style mail directories with one
 | 
						|
	  file per message and creates a dummy stat struct from them
 | 
						|
 | 
						|
lib/sh/Makefile.in
 | 
						|
	- add mailstat.c and mailstat.o in the appropriate places
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- augmented implementation with wrapper functions that pass in file
 | 
						|
	  and line number information from cpp.  currently unused, but a
 | 
						|
	  placeholder for future debugging and use tracking
 | 
						|
 | 
						|
lib/malloc/shmalloc.h
 | 
						|
	- new file, extern declarations for allocation wrapper functions for
 | 
						|
	  use by the shell (and others, I guess)
 | 
						|
 | 
						|
xmalloc.[ch]
 | 
						|
	- wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that
 | 
						|
	  pass cpp line number information through to the malloc functions,
 | 
						|
	  if USING_BASH_MALLOC is defined
 | 
						|
 | 
						|
				    9/5
 | 
						|
				    ---
 | 
						|
lib/malloc/gmalloc.c
 | 
						|
	- removed; no longer part of distribution
 | 
						|
 | 
						|
lib/malloc/Makefile.in
 | 
						|
	- removed references to gmalloc.[co]
 | 
						|
 | 
						|
configure.in, doc/bashref.texi
 | 
						|
	- removed references to `--with-glibc-malloc' configure option
 | 
						|
 | 
						|
{configure,Makefile}.in
 | 
						|
	- changed the way bash malloc is configured into the Makefile, making
 | 
						|
	  it more like how readline is configured.  If the bash malloc is
 | 
						|
	  not configured in, nothing in lib/malloc will be built
 | 
						|
 | 
						|
				    9/6
 | 
						|
				    ---
 | 
						|
lib/malloc/imalloc.h
 | 
						|
	- new file, some internal malloc definitions
 | 
						|
 | 
						|
lib/malloc/mstats.h
 | 
						|
	- new file, definitions for malloc statistics structs and functions
 | 
						|
 | 
						|
lib/malloc/trace.c
 | 
						|
	- new file, malloc tracing functions (currently just print messages
 | 
						|
	  to stderr), code is #ifdef MALLOC_TRACE
 | 
						|
 | 
						|
lib/malloc/stats.c
 | 
						|
	- new file, moved malloc stats code from malloc.c to here
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- moved some definitions to imalloc.h
 | 
						|
	- moved stats code to stats.c
 | 
						|
	- malloc tracing calls added to internal_{malloc,realloc,free}, all
 | 
						|
	  #ifdef MALLOC_TRACE
 | 
						|
 | 
						|
lib/malloc/Makefile.in, Makefile.in
 | 
						|
	- added {imalloc,mstats}.h, {trace,stats}.c
 | 
						|
 | 
						|
parse.y
 | 
						|
	- changed decode_prompt_string to save and restore $?
 | 
						|
	  (last_command_exit_value) around calls to expand_prompt_string(),
 | 
						|
	  so command substitutions in PS1, etc. don't change $?
 | 
						|
 | 
						|
{array,subst}.c
 | 
						|
	- a couple more arrayind_t fixes from Paul Eggert
 | 
						|
 | 
						|
configure.in
 | 
						|
	- remove redundant check for wait3(2)
 | 
						|
 | 
						|
redir.h
 | 
						|
	- fixed a typo (stdin_redirs -> stdin_redirects)
 | 
						|
 | 
						|
				   9/10
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- remove check for \n and \r from WHITESPACE macro, since those
 | 
						|
	  chars are not whitespace as returned by the whitespace(c) macro
 | 
						|
	- getinterp now takes a `char *' as first arg, not unsigned char *
 | 
						|
	- execute_shell_script now takes a `char *' as first arg, not
 | 
						|
	  unsigned char *
 | 
						|
	- fix typo in forward declaration for `initialize_subshell'
 | 
						|
	
 | 
						|
general.[ch]
 | 
						|
	- check_binary_file now takes a (char *) argument, not unsigned char *
 | 
						|
	- pass unsigned char to isspace and isprint because of ISO C fuckup
 | 
						|
	- bash_tilde_expand now takes a `const char *' as its argument
 | 
						|
 | 
						|
builtins/evalfile.c, shell.c
 | 
						|
	- buffer passed to check_binary_file is char, not unsigned char
 | 
						|
 | 
						|
parse.y
 | 
						|
	- fix extern declaration for yyerror()
 | 
						|
	- yyerror now takes a `const char *' as first arg
 | 
						|
 | 
						|
{error,jobs}.c
 | 
						|
	- fixes to printf-style functions to handle pids wider than an int
 | 
						|
 | 
						|
lib/readline/{isearch,vi_mode}.c
 | 
						|
	- fix call to rl_message in rl_display_search (remove extra arg)
 | 
						|
 | 
						|
variables.c
 | 
						|
	- fix missing argument to builtin_error in make_local_variable
 | 
						|
 | 
						|
builtins/getopts.def
 | 
						|
	- since getopts takes no options, change while loop calling
 | 
						|
	  internal_getopts to a simple `if' check
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- since printf takes no options, change while loop calling
 | 
						|
	  internal_getopts to a simple `if' check
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- remove _SET_BELL macro, expand code inline
 | 
						|
 | 
						|
lib/readline/input.c
 | 
						|
	- change _rl_input_available to use either select or FIONREAD,
 | 
						|
	  but not both
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- fix rl_digit_loop to remove unreachable code at end of loop
 | 
						|
 | 
						|
{bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c
 | 
						|
	- bracket unused functions with #ifdef INCLUDE_UNUSED/#endif
 | 
						|
	- remove some unused variables
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- remove #ifdef'd code that allowed `return' to terminate a select
 | 
						|
	  statement
 | 
						|
 | 
						|
expr.c
 | 
						|
	- remove some extraneous tests from strlong()
 | 
						|
 | 
						|
array.h
 | 
						|
	- arrayind_t is now a long, since shell arithmetic is performed as
 | 
						|
	  longs
 | 
						|
	- remove second declaration of new_array_element
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- in mklong, xrealloc cannot return NULL, so don't check for it
 | 
						|
	- remove some #if 0 code
 | 
						|
	- fix core dump triggered by a format specification with more than
 | 
						|
	  one `*'
 | 
						|
	- remove `foundmod', since its value mirrors `modchar != 0'
 | 
						|
	- include "common.h" for builtin_{error,usage} declarations
 | 
						|
 | 
						|
Makefile.in,builtins/Makefile.in
 | 
						|
	- updated some dependencies due to new include files
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- include "execute_cmd.h" for declaration of execute_shell_function
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- include <stdio.h> for printf
 | 
						|
	- include "builtins/common.h" for builtin_error declaration
 | 
						|
 | 
						|
builtins/evalstring.c
 | 
						|
	- include "../trap.h" for run_trap_cleanup declaration
 | 
						|
 | 
						|
builtins/help.def
 | 
						|
	- include "common.h" instead of locally declaring builtin_error
 | 
						|
	  and builtin_usage
 | 
						|
 | 
						|
error.h
 | 
						|
	- add extern declaration for itrace()
 | 
						|
	- add prototype to extern declaration of get_name_for_error
 | 
						|
	- file_error now takes a `const char *' as first argument
 | 
						|
 | 
						|
externs.h
 | 
						|
	- added prototype for sh_setlinebuf declaration, bracketed with
 | 
						|
	  NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere
 | 
						|
	- add extern declaration for parse.y:return_EOF()
 | 
						|
 | 
						|
shell.c
 | 
						|
	- add NEED_SH_SETLINEBUF_DECL before including shell.h
 | 
						|
 | 
						|
lib/readline/callback.c
 | 
						|
	- include <stdlib.h> or "ansi_stdlib.h" for abort declaration
 | 
						|
 | 
						|
quit.h
 | 
						|
	- remove declaration of throw_to_top_level
 | 
						|
 | 
						|
subst.c
 | 
						|
	- remove unused extern declaration for getopts_reset
 | 
						|
 | 
						|
lib/sh/netopen.c
 | 
						|
	- include <shell.h> for legal_number, etc.
 | 
						|
	- add prototype for inet_aton extern declaration
 | 
						|
 | 
						|
lib/sh/clock.c
 | 
						|
	- include <stdc.h> for __P declaration
 | 
						|
	- add extern declaration for get_clk_tck
 | 
						|
 | 
						|
support/mkversion.sh
 | 
						|
	- changed so that extern function declarations for functions in
 | 
						|
	  version.c (moved from externs.h) are in the generated version.h
 | 
						|
 | 
						|
shell.h
 | 
						|
	- include version.h
 | 
						|
 | 
						|
version.c
 | 
						|
	- various `char *' version variables are now `const char *'
 | 
						|
 | 
						|
general.h
 | 
						|
	- add prototype for same_file, bracketed with _POSIXSTAT_H
 | 
						|
	  #ifdef, since that's what include/posixstat.h defines
 | 
						|
 | 
						|
builtins/common.[ch]
 | 
						|
	- _evalfile, maybe_execute_file, source_file, and fc_execute_file
 | 
						|
	  now take a `const char *' as their first argument
 | 
						|
 | 
						|
eval.c
 | 
						|
	- removed extern declaration of yyparse; it's in externs.h
 | 
						|
 | 
						|
parse.y
 | 
						|
	- added prototypes to static forward function declarations
 | 
						|
	- changed local `all_digits' variable in read_token_word () to
 | 
						|
	  all_digit_token to avoid clash with all_digits() function in
 | 
						|
	  general.c
 | 
						|
 | 
						|
{bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c
 | 
						|
	- added prototypes for static function declarations
 | 
						|
 | 
						|
shell.h
 | 
						|
	- add extern declarations for interactive, interactive_shell,
 | 
						|
	  changed c files with extern declarations
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- changed it_init_aliases to avoid shadowing global variable
 | 
						|
	  `aliases'
 | 
						|
 | 
						|
bashline.c,pathexp.c,general.h
 | 
						|
	- sh_ignore_func_t is now a pointer to a function taking a
 | 
						|
	  `const char *'; users changed
 | 
						|
 | 
						|
configure.in
 | 
						|
	- test for <strings.h>
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add #undef HAVE_STRINGS_H
 | 
						|
 | 
						|
bashansi.h
 | 
						|
	- change like recommended in autoconf manual
 | 
						|
 | 
						|
				   9/11
 | 
						|
				   ----
 | 
						|
[a date which will live in infamy.  prayers for the victims.]
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- don't use an absolute index into abuf in mkfmt, use
 | 
						|
	  sizeof(abuf) to compute last index
 | 
						|
 | 
						|
builtins/common.c
 | 
						|
	- fix read_octal to do a better job of detecting overflow while
 | 
						|
	  iterating through the string
 | 
						|
 | 
						|
builtins/umask.def
 | 
						|
	- change octal-print mode to print 4 digits, like other shells
 | 
						|
	- cast umask to unsigned long to avoid problems on systems where
 | 
						|
	  it's wider than an int (POSIX doesn't guarantee that mode_t is
 | 
						|
	  no wider than an int, but real-world systems use int)
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- mklong can never return NULL (it uses xrealloc), so the mainline
 | 
						|
	  doesn't need to check for NULL returns
 | 
						|
	- new function, getldouble (long double *), to get long doubles
 | 
						|
	- mklong now takes a `char *' as its second argument, the modifier(s)
 | 
						|
	  to use
 | 
						|
	- changed use of `modchar' to handle more than a single modifier
 | 
						|
	  character
 | 
						|
	- changed to handle `long double' and `L' formats better, rather
 | 
						|
	  than discarding long double information
 | 
						|
	- since printf now follows the POSIX.2 rules for conversion errors,
 | 
						|
	  we can dispense with the status returns from the get* functions
 | 
						|
	- make the get* functions as similar in structure as possible,
 | 
						|
	  removing type casts, etc.
 | 
						|
 | 
						|
lib/sh/timeval.c,execute_cmd.c
 | 
						|
	- change some instances of `long' to `time_t', for systems where
 | 
						|
	  a time_t is bigger than a long
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- include "posixtime.h" instead of <sys/time.h>
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD,
 | 
						|
	  HAVE_DECL_SBRK, HAVE_DECL_PRINTF
 | 
						|
	- remove defines for SBRK_DECLARED and PRINTF_DECLARED
 | 
						|
	- add _GNU_SOURCE define
 | 
						|
 | 
						|
configure.in
 | 
						|
	- add AC_CHECK_DECLS for strtold, confstr, sbrk, printf
 | 
						|
	- remove call to BASH_FUNC_SBRK_DECLARED
 | 
						|
	- remove call to BASH_FUNC_PRINTF
 | 
						|
 | 
						|
xmalloc.c, lib/malloc/malloc.c
 | 
						|
	- change check of SBRK_DECLARED to HAVE_SBRK_DECL
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- change PRINTF_DECLARED to HAVE_DECL_PRINTF
 | 
						|
 | 
						|
builtins/evalstring.c, builtins/common.h
 | 
						|
	- parse_and_execute now takes a `const char *' as its second argument
 | 
						|
 | 
						|
input.h,parse.y
 | 
						|
	- with_input_from_* functions now take a `const char *' as their
 | 
						|
	  second argument
 | 
						|
	- init_yy_io now takes a `const char *' as its fourth argument
 | 
						|
 | 
						|
parse.y,externs.h
 | 
						|
	- parse_string_to_word_list now takes a `const char *' as its second
 | 
						|
	  argument
 | 
						|
 | 
						|
tests/builtins.right
 | 
						|
	- change output to account for extra digit in umask output
 | 
						|
 | 
						|
pcomplib.c
 | 
						|
	- free_progcomp now takes a PTR_T argument
 | 
						|
 | 
						|
builtins/bashgetopt.h
 | 
						|
	- include <stdc.h>
 | 
						|
	- add prototypes to extern declarations
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- add prototypes to static function declarations
 | 
						|
 | 
						|
builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c
 | 
						|
	- include <ctype.h> for isdigit macro (referenced by `digit(x)')
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- added more static function declarations with prototypes
 | 
						|
 | 
						|
				   9/12
 | 
						|
				   ----
 | 
						|
lib/sh/tmpfile.c
 | 
						|
	- use `^' instead of `*' in sh_mktmpname to make filenames a bit
 | 
						|
	  more random
 | 
						|
 | 
						|
include/stdc.h,lib/readline/rldstdc.h
 | 
						|
	- add __attribute__ definition 
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- add printf __attribute__ to declaration of builtin_error
 | 
						|
 | 
						|
error.h
 | 
						|
	- add printf __attribute__ to declaration of programming_error,
 | 
						|
	  report_error, parser_error, fatal_error, sys_error, internal_error,
 | 
						|
	  internal_warning
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- add printf __attribute__ to declaration of rl_message
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- add printf __attribute__ to declaration of debug_printf
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- add printf __attribute__ to declarations of cprintf, xprintf
 | 
						|
 | 
						|
include/chartypes.h
 | 
						|
	- new file, includes <ctype.h> and defines macros that check for
 | 
						|
	  safe (ascii) arguments before calling the regular ctype macros
 | 
						|
 | 
						|
{alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c
 | 
						|
parse.y
 | 
						|
builtins/{bashgetopt,common}.c
 | 
						|
builtins/{fc,printf,umask,wait}.def
 | 
						|
lib/glob/strmatch.c
 | 
						|
lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c
 | 
						|
examples/loadables/{head,sleep}.c
 | 
						|
	- include "chartypes.h" or <chartypes.h> instead of <ctype.h>
 | 
						|
 | 
						|
Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in
 | 
						|
	- update dependencies to include chartypes.h
 | 
						|
 | 
						|
lib/sh/inet_aton.c
 | 
						|
	- use `unsigned char' instead of `char' to pass to ctype.h functions
 | 
						|
 | 
						|
lib/sh/netopen.c
 | 
						|
	- check for '0' <= host[0] <= '9' in _getaddr instead of using
 | 
						|
	  isdigit
 | 
						|
 | 
						|
subst.c,lib/sh/shquote.c
 | 
						|
	- change array subscripts into sh_syntaxtab from `char' to
 | 
						|
	  `unsigned char'
 | 
						|
 | 
						|
{alias,bashline,execute_cmd,expr,general,subst}.c, parse.y
 | 
						|
builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c
 | 
						|
lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c
 | 
						|
examples/loadables/{head,sleep}.c
 | 
						|
	- change to use some of the new macros in chartypes.h
 | 
						|
	- remove old local macro definitions now provided by chartypes.h
 | 
						|
 | 
						|
general.h
 | 
						|
	- remove definition of isletter, ISOCTAL, digit, digit_value
 | 
						|
	- change legal_variable_starter and legal_variable_char to use
 | 
						|
	  chartypes.h macros
 | 
						|
	- change ABSPATH to use chartypes.h macros
 | 
						|
 | 
						|
lib/readline/util.c
 | 
						|
	- change to use Paul Eggert's FUNCTION_FOR_MACRO define to define
 | 
						|
	  function replacements for macros in chardefs.h
 | 
						|
 | 
						|
lib/readline/chardefs.h
 | 
						|
	- added some of the same macros as in chartypes.h
 | 
						|
	- change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
 | 
						|
	  _rl_to_upper, _rl_to_lower to use new IS* macros
 | 
						|
	- added _rl_isident macro from vi_mode.c:isident
 | 
						|
 | 
						|
lib/readline/{bind,complete,nls}.c
 | 
						|
	- change to use some of the new macros from chardefs.h
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- isident -> _rl_isident
 | 
						|
	- remove local defines of macros in chardefs.h
 | 
						|
 | 
						|
lib/sh/strtol.c
 | 
						|
	- updated to new version, modified from glibc 2.2.4 and sh-utils-2.0.
 | 
						|
	  This one can do strtoll and strtoull, if necessary
 | 
						|
 | 
						|
				   9/13
 | 
						|
				   ----
 | 
						|
builtins/ulimit.def
 | 
						|
	- changed get_limit so it retrieves both hard and soft limits
 | 
						|
	  instead of one or the other
 | 
						|
	- changed callers of get_limit
 | 
						|
	- changed getmaxvm to take soft limit, hard limit as arguments
 | 
						|
	- changed getmaxuprc to just take a single argument, the value
 | 
						|
	- changed calls to printone() to pass soft limit or hard limit
 | 
						|
	  depending on `mode' instead of using old current_limit variable
 | 
						|
	- moved check for out-of-range limits in ulimit_internal into the
 | 
						|
	  block that converts a string argument to a value of type rlim_t
 | 
						|
	- changed RESOURCE_LIMITS struct to break the description into a
 | 
						|
	  description string and separate scale factor string
 | 
						|
	- changed print_all_limits to print a single error message if
 | 
						|
	  get_limit fails, including limits[i].description now that the
 | 
						|
	  scale factor has been removed from the description string
 | 
						|
	- removed DESCFMT define, since it's now used only in printone()
 | 
						|
	- changed printone to print the option character associated with a
 | 
						|
	  particular limit if we're printing multiple limits
 | 
						|
	- changed calls to builtin_error to print the description associated
 | 
						|
	  with a limit if setting or getting the limit fails
 | 
						|
	- added support for new POSIX 1003.1-200x rlim_t values:
 | 
						|
	  RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current
 | 
						|
	  soft and hard limits, whatever they are
 | 
						|
	- changed printone to print `hard' or `soft' if the current limit is
 | 
						|
	  RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively
 | 
						|
	- changed ulimit_internal to handle new `hard' and `soft' arguments
 | 
						|
	- changed help text do describe the special limit arguments `hard',
 | 
						|
	  `soft', and `unlimited'
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new `hard' and `soft' limit arguments to `ulimit'
 | 
						|
 | 
						|
hashlib.[ch]
 | 
						|
	- find_hash_item now takes a `const char *' is its first argument
 | 
						|
	- hash_string now takes a `const char *' is its first argument
 | 
						|
	- remove_hash_item now takes a `const char *' as its first argument
 | 
						|
 | 
						|
pcomplib.c
 | 
						|
	- removed cast from first argument to find_hash_item in find_compspec
 | 
						|
 | 
						|
general.[ch]
 | 
						|
	- absolute_program now takes a `const char *' as its argument
 | 
						|
	- absolute_pathname now takes a `const char *' as its argument
 | 
						|
 | 
						|
lib/glob/glob.[ch]
 | 
						|
	- glob_pattern_p now takes a `const char *' as its argument
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- removed cast from first argument to absolute_program in
 | 
						|
	  command_word_completion_function
 | 
						|
	- removed cast from first argument to glob_pattern_p in
 | 
						|
	  attempt_shell_completion
 | 
						|
 | 
						|
findcmd.[ch]
 | 
						|
	- find_absolute_program, find_user_command, find_path_file,
 | 
						|
	  search_for_command, user_command_matches now take a
 | 
						|
	  `const char *' as their first argument
 | 
						|
	- file_status, executable_file, is_directory, executable_or_directory
 | 
						|
	  now take a `const char *' as their argument
 | 
						|
	- _find_user_command_internal, find_user_command_internal,
 | 
						|
	  find_user_command_in_path 
 | 
						|
 | 
						|
lib/sh/makepath.c, externs.h
 | 
						|
	- changed sh_makepath so it takes `const char *' for its first
 | 
						|
	  two arguments
 | 
						|
 | 
						|
hashcmd.[ch]
 | 
						|
	- find_hashed_filename now takes a `const char *' as its first arg
 | 
						|
	- remove_hashed_filename now takes a `const char *' as its first arg
 | 
						|
 | 
						|
variables.[ch]
 | 
						|
	- new_shell_variable, var_lookup, shell_var_from_env_string,
 | 
						|
	  find_name_in_env_array, bind_function, makunbound,
 | 
						|
	  bind_name_in_env_array, bind_tempenv_variable, bind_variable
 | 
						|
	  now take a `const char *' as their first arg
 | 
						|
	- find_function, make_new_variable, find_tempenv_variable,
 | 
						|
	  find_variable_internal, find_variable, set_func_read_only,
 | 
						|
	  set_func_auto_export, all_variables_matching_prefix, assign_in_env,
 | 
						|
	  assignment, kill_local_variable, make_local_variable, unbind_variable
 | 
						|
	  now take a `const char *' as their arg
 | 
						|
	- mk_env_string now takes `const char *' arguments
 | 
						|
 | 
						|
arrayfunc.[ch]
 | 
						|
	- skipsubscript now takes a `const char *' as its argument
 | 
						|
 | 
						|
				   9/17
 | 
						|
				   ----
 | 
						|
lib/readline/complete.c
 | 
						|
	- attempt to preserve case of what the user typed in
 | 
						|
	  compute_lcd_of_matches if we're ignoring case in completion
 | 
						|
 | 
						|
builtins/{let,pushd}.def,{execute_cmd,expr}.c
 | 
						|
	- change some 0L constants to 0 and let the compiler sort it out
 | 
						|
 | 
						|
				   9/18
 | 
						|
				   ----
 | 
						|
lib/malloc/alloca.c
 | 
						|
	- alloca now takes a `size_t' argument
 | 
						|
 | 
						|
include/memalloc.h
 | 
						|
	- if we're providing an extern function declaration for alloca,
 | 
						|
	  use `void *' and prototype if __STDC__ is defined
 | 
						|
	- if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't
 | 
						|
	  define HAVE_ALLOCA
 | 
						|
 | 
						|
				   9/19
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- do_assignment_internal, do_assignment, and do_assignment_no_expand
 | 
						|
	  now take a `const char *' as their first argument
 | 
						|
 | 
						|
general.h
 | 
						|
	- a `sh_assign_func_t' is now a function taking a `const char *' and
 | 
						|
	  returning int
 | 
						|
 | 
						|
hashcmd.c
 | 
						|
	- free_filename_data now takes a `PTR_T' argument to agree with the
 | 
						|
	  typedef for `sh_free_func_t'
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- use TYPE_MAXIMUM define like strtol.c instead of huge constants
 | 
						|
 | 
						|
				   9/20
 | 
						|
				   ----
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- don't bother to compile the bulk of the body unless HAVE_SNPRINTF
 | 
						|
	  or HAVE_ASPRINTF is not defined
 | 
						|
 | 
						|
				   9/24
 | 
						|
				   ----
 | 
						|
flags.c
 | 
						|
	- ignore `set -n' if the shell was started interactively
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- initialize readline_echoing_p to 0; let the terminal-specific code
 | 
						|
	  in rltty.c set it appropriately
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- changed internal_memalign() slightly to avoid compiler warnings about
 | 
						|
	  negating an unsigned variable (-alignment -> (~alignment + 1))
 | 
						|
 | 
						|
				   9/27
 | 
						|
				   ----
 | 
						|
lib/readline/readline.c
 | 
						|
	- changed rl_newline to set _rl_history_saved_point appropriately
 | 
						|
	  for the {previous,next}_history code
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- extern declaration for _rl_history_preserve_point
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- new bindable variable, `history-preserve-point', sets value of
 | 
						|
	  _rl_history_preserve_point
 | 
						|
 | 
						|
				   10/1
 | 
						|
				   ----
 | 
						|
lib/malloc/table.c
 | 
						|
	- new file, with a map of allocated (and freed) memory for debugging
 | 
						|
	  multiple frees, etc.  Indexed by hash on values returned by
 | 
						|
	  malloc(); holds size, file and line number info for last alloc or
 | 
						|
	  free and a couple of statistics pointers
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- a few cleanups; added calls for registering allocations and frees
 | 
						|
	  if MALLOC_REGISTER is defined
 | 
						|
	- replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define
 | 
						|
	- reordered fields in `struct...minfo' in `union mhead' to restore
 | 
						|
	  eight-byte alignment
 | 
						|
	- added explicit checks for underflow in free and realloc since
 | 
						|
	  checking mh_magic2 is not sufficient to detect everything (it's
 | 
						|
	  no longer the last field in the struct, and thus not the bytes
 | 
						|
	  immediately preceding what's returned to the user)
 | 
						|
	- new function, xbotch, for printing file and line number info for
 | 
						|
	  the failed assertion before calling botch() (programming_error())
 | 
						|
 | 
						|
configure.in
 | 
						|
	- replaced call to BASH_C_LONG_LONG with call to
 | 
						|
	  AC_CHECK_TYPES([long long])
 | 
						|
	- moved the C compiler tests before the tests for various
 | 
						|
	  system types, so we can know whether we have `long long'
 | 
						|
	  before testing for 64-bit types
 | 
						|
	- if we have `long long', check for sizeof(long long) and save value
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- changed BASH_TYPE_BITS64_T to check `long long' before `long', but
 | 
						|
	  after `double'
 | 
						|
 | 
						|
				   10/2
 | 
						|
				   ----
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- made malloc and realloc both agree on the rounding for a request of
 | 
						|
	  size N (round up to nearest multiple of 8 after adjusting for
 | 
						|
	  malloc overhead); uses new ALLOCATED_BYTES macro
 | 
						|
	- realloc and free now use new IN_BUCKET macro for underflow checks
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- fixed time_command() to use `time_t' instead of `long' to hold
 | 
						|
	  time stamps
 | 
						|
 | 
						|
lib/sh/clock.c
 | 
						|
	- clock_t_to_secs now takes a `time_t *' second argument
 | 
						|
	- fixed print_clock_t to call clock_t_to_secs with right arguments
 | 
						|
 | 
						|
lib/sh/timeval.c
 | 
						|
	- fixed print_timeval to make `minutes' a `long' and make its
 | 
						|
	  structure identical to print_clock_t
 | 
						|
 | 
						|
redir.c
 | 
						|
	- changed redirection_error to check for EBADF and use the file
 | 
						|
	  descriptor being redirected from in the error message if it
 | 
						|
	  is >= 0
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- changed release status to `beta1'
 | 
						|
 | 
						|
lib/glob/collsyms.h
 | 
						|
	- added a few ASCII symbols to the posix_collsyms array
 | 
						|
 | 
						|
				   10/3
 | 
						|
				   ----
 | 
						|
aclocal.m4
 | 
						|
	- fixed typo in BASH_TYPE_BITS64_T
 | 
						|
 | 
						|
configure.in
 | 
						|
	- added check for unsigned chars with AC_C_CHAR_UNSIGNED
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- added PROTOTYPES and __CHAR_UNSIGNED__ #defines
 | 
						|
 | 
						|
general.h
 | 
						|
	- if CHAR_MAX is not define by <limits.h>, provide a definition
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- change tescape() to mask \0 and \x escape sequences with 0xFF
 | 
						|
	- change tescape() to process at most two hex digits after a `\x'
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- change strtrans() to mask \0 and \x escape sequences with 0xFF
 | 
						|
	- change strtrans() to process at most two hex digits after a `\x'.
 | 
						|
	  This affects `echo -e' and $'...' processing
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- changed rl_translate_keyseq() to process at most two hex digits
 | 
						|
	  after a `\x'
 | 
						|
 | 
						|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
 | 
						|
	- changed documentation for key binding escape sequences to specify
 | 
						|
	  that at most two hex digits after \x are translated
 | 
						|
	- changed documentation for key binding to specify that the result
 | 
						|
	  of \nnn or \xhh escapes is an eight-bit value, not just ASCII
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- changed documentation of $'...' to specify that at most two hex
 | 
						|
	  digits after \x are translated
 | 
						|
	- changed `echo' documentation to specify that at most two hex
 | 
						|
	  digits after \x are translated
 | 
						|
	- changed documentation for `echo' and $'...' to specify that the
 | 
						|
	  result of \nnn or \xhh escapes is an eight-bit value, not just ASCII
 | 
						|
 | 
						|
				   10/4
 | 
						|
				   ----
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- changed interface for xbotch to pass memory address and error code
 | 
						|
	  as two additional arguments
 | 
						|
	- call mregister_describe_mem from xbotch to get the last allocation
 | 
						|
	  or free before the botch
 | 
						|
 | 
						|
configure.in
 | 
						|
	- call AC_CHECK_DECLS([strsignal])
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add HAVE_DECL_STRSIGNAL
 | 
						|
 | 
						|
siglist.h
 | 
						|
	- make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL
 | 
						|
 | 
						|
				   10/5
 | 
						|
				   ----
 | 
						|
support/texi2html
 | 
						|
	- upgraded to version 1.64
 | 
						|
 | 
						|
				   10/9
 | 
						|
				   ----
 | 
						|
aclocal.m4
 | 
						|
	- added check for `long long' to BASH_TYPE_PTRDIFF_T
 | 
						|
 | 
						|
configure.in
 | 
						|
	- replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- replaced body of BASH_STRUCT_TERMIOS_LDISC with call to
 | 
						|
	  AC_CHECK_MEMBER(struct termios.c_line, ...)
 | 
						|
	- replaced body of BASH_STRUCT_TERMIO_LDISC with call to
 | 
						|
	  AC_CHECK_MEMBER(struct termios.c_line, ...)
 | 
						|
 | 
						|
[bash-2.05a-beta1 frozen]
 | 
						|
 | 
						|
				   10/10
 | 
						|
				   -----
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- fixed exponent() to not smash the trailing zeros in the fraction
 | 
						|
	  when using %g or %G with an `alternate form'
 | 
						|
	- fixed exponent() to handle the optional precision with %g and %G
 | 
						|
	  correctly (number of significant digits before the exponent)
 | 
						|
 | 
						|
				   10/11
 | 
						|
				   -----
 | 
						|
expr.c
 | 
						|
	- fixed strlong() to correct the values of `@' and `_' when
 | 
						|
	  translating base-64 constants (64#@ == 62 and 64#_ == 64), for
 | 
						|
	  compatibility with ksh
 | 
						|
 | 
						|
lib/sh/itos.c
 | 
						|
	- added a slightly more flexible fmtlong() function that takes a
 | 
						|
	  base argument and flags (for future use)
 | 
						|
	- rewrote itos and inttostr in terms of fmtlong
 | 
						|
 | 
						|
lib/sh/fmtulong.c
 | 
						|
	- new file, converts unsigned long to string.  hooks for `unsigned
 | 
						|
	  long long' in the future.  unused as yet
 | 
						|
 | 
						|
				   10/15
 | 
						|
				   -----
 | 
						|
lib/readline/rltty.c
 | 
						|
	- change the SET_SPECIAL macro to avoid possible (but highly
 | 
						|
	  unlikely) negative array subscripts
 | 
						|
 | 
						|
error.h
 | 
						|
	- add __attribute__ to extern declaration of itrace (even though the
 | 
						|
	  function isn't defined in released versions of bash)
 | 
						|
 | 
						|
bashansi.h
 | 
						|
	- include <strings.h> if HAVE_STRINGS_H is defined, to get any extra
 | 
						|
	  function declarations provided therein
 | 
						|
 | 
						|
copy_cmd.c
 | 
						|
	- fix typo in forward declaration for copy_arith_for_command
 | 
						|
 | 
						|
lib/malloc/stats.c
 | 
						|
	- make the accumulators in _print_malloc_stats be `unsigned long'
 | 
						|
	  instead of `int'
 | 
						|
 | 
						|
externs.h, sig.h
 | 
						|
	- add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level
 | 
						|
	  declarations
 | 
						|
 | 
						|
lib/sh/mailstat.c, support/bashversion.c
 | 
						|
	- include <bashansi.h> for some string function declarations
 | 
						|
 | 
						|
lib/malloc/shmalloc.h
 | 
						|
	- added extern declarations of functions that do malloc debugging
 | 
						|
 | 
						|
lib/readline/{isearch,readline,vi_mode}.c
 | 
						|
	- make sure we index into _rl_keymap with a non-negative index
 | 
						|
 | 
						|
parse.y
 | 
						|
	- make sure we index into sh_syntaxtab with a non-negative index
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- bound the vi_mark_chars array with the number of characters between
 | 
						|
	  'a' and 'z' rather than using a fixed amount
 | 
						|
	- don't use _rl_lowercase_p when deciding whether the char read by
 | 
						|
	  rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z'
 | 
						|
 | 
						|
lib/readline/chardefs.h
 | 
						|
	- conditionally include memory.h and strings.h as in general.h
 | 
						|
	- replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
 | 
						|
	- add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c)
 | 
						|
	- fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
 | 
						|
	  _rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower,
 | 
						|
	  and _rl_isident to work on systems with signed chars
 | 
						|
 | 
						|
include/chartypes.h
 | 
						|
	- replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
 | 
						|
 | 
						|
lib/sh/{strcasecmp,strtod,strtol}.c
 | 
						|
	- don't pass possibly-negative characters to tolower() or toupper()
 | 
						|
 | 
						|
lib/glob/strmatch.c
 | 
						|
	- don't bother testing for isupper in FOLD; rely on TOLOWER macro
 | 
						|
	  from <chartypes.h> to do it
 | 
						|
	- don't use local definitions of isblank, et al.; rely on macros
 | 
						|
	  from <chartypes.h>
 | 
						|
 | 
						|
lib/readline/{display,readline}.c, mksyntax.c
 | 
						|
	- use new ISPRINT macro instead of isprint()
 | 
						|
 | 
						|
builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c
 | 
						|
	- don't assume that a pid_t fits into an int for printing and other
 | 
						|
	  uses
 | 
						|
 | 
						|
variables.[ch]
 | 
						|
	- the unused put_gnu_argv_flags_into_env now takes a `long' pid
 | 
						|
	  argument
 | 
						|
 | 
						|
configure.in, config.h.in
 | 
						|
	- call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found
 | 
						|
	- check for strtoull(), define HAVE_STRTOULL if found
 | 
						|
	- check for uintmax_t, define to `unsigned long' if not found
 | 
						|
 | 
						|
lib/sh/mailstat.c
 | 
						|
	- don't use st_blocks member of struct stat unless
 | 
						|
	  HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink
 | 
						|
	  field to return the total number of messages in a maildir-style
 | 
						|
	  mail directory
 | 
						|
 | 
						|
general.h,{alias,expr,general,subst,variables}.c
 | 
						|
builtins/{printf,read}.def
 | 
						|
lib/readline/{bind,complete,nls}.c
 | 
						|
lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c
 | 
						|
	- cast args to ctype macros to unsigned char for systems with signed
 | 
						|
	  chars; other fixes for signed chars
 | 
						|
 | 
						|
lib/sh/{fmtullong,strtoull.c}
 | 
						|
	- new files, more support for `long long'
 | 
						|
 | 
						|
Makefile.in, lib/sh/Makefile.in
 | 
						|
	- make fmtullong.o and strtoull.o part of libsh
 | 
						|
 | 
						|
lib/sh/itos.c
 | 
						|
	- remove local copy of fmtlong; use fmtulong instead
 | 
						|
	- new functions: uitos, uinttostr work on `unsigned long'
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- fixes to make `unsigned long long' work (%llu)
 | 
						|
	- fixes to make unsigned formats not print the sign when given
 | 
						|
	  an unsigned long that is greater than LONG_MAX
 | 
						|
 | 
						|
externs.h
 | 
						|
	- extern declarations for fmtulong, fmtulloing, strtoull
 | 
						|
	- extern declarations for uitos, uinttostr
 | 
						|
 | 
						|
				   10/16
 | 
						|
				   -----
 | 
						|
configure.in
 | 
						|
	- move header checks before function checks
 | 
						|
	- move c compiler tests before header checks
 | 
						|
	- check for <inttypes.h> with BASH_HEADER_INTTYPES
 | 
						|
	- change type checks for intmax_t, uintmax_t to not attempt to
 | 
						|
	  include <stdint.h>
 | 
						|
	- check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul
 | 
						|
	  with BASH_CHECK_DECL (for declarations in header files) and
 | 
						|
	  AC_REPLACE_FUNCS (for availability and LIBOBJS substitution)
 | 
						|
	- remove check for have_long_long around sizeof check for long long
 | 
						|
	  (since autoconf will give it a size of 0 if the type isn't found)
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add a define for HAVE_INTTYPES_H
 | 
						|
	- add a define for HAVE_UNSIGNED_LONG_LONG
 | 
						|
	- add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS
 | 
						|
	  on <inttypes.h>; separate so it can be AC_REQUIREd
 | 
						|
	- AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE
 | 
						|
	- include <inttypes.h> in BASH_CHECK_TYPE if HAVE_INTTYPES_H is
 | 
						|
	  defined
 | 
						|
	- change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE
 | 
						|
	- new `long long' checking macros:  BASH_TYPE_LONG_LONG and
 | 
						|
	  BASH_TYPE_UNSIGNED_LONG_LONG
 | 
						|
	- new BASH_CHECK_DECL 
 | 
						|
 | 
						|
lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in
 | 
						|
	- new files
 | 
						|
 | 
						|
externs.h
 | 
						|
	- extern declarations for strtoll, strtoimax, strtoumax
 | 
						|
 | 
						|
lib/malloc/alloca.c
 | 
						|
	- include <bashtypes.h> for size_t
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- new functions: getllong, getullong, getintmax, getuintmax; return
 | 
						|
	  long long, unsigned long long, intmax_t, uintmax_t respectively
 | 
						|
	- builtin printf now handles `ll' and `j' length modifiers directly
 | 
						|
 | 
						|
lib/sh/Makefile.in
 | 
						|
	- use LIBOBJS to decide whether or not the strto* functions are
 | 
						|
	  needed
 | 
						|
 | 
						|
				   10/17
 | 
						|
				   -----
 | 
						|
configure.in
 | 
						|
	- call AC_REPLACE_FUNCS(rename)
 | 
						|
	- move getcwd, strpbrk, strcasecmp, strerror, strtod
 | 
						|
	  from AC_CHECK_FUNCS to AC_REPLACE_FUNCS
 | 
						|
	- only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes"
 | 
						|
	- call BASH_CHECK_SYS_SIGLIST
 | 
						|
	- if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint)
 | 
						|
 | 
						|
lib/sh/Makefile.in
 | 
						|
	- remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror,
 | 
						|
	  strtod, vprint from OBJECTS; picked up from LIBOBJS
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc
 | 
						|
	  getcwd(3) calls popen(3)
 | 
						|
	- change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's
 | 
						|
	  not found in libc or as a #define even with the special includes
 | 
						|
	- BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT
 | 
						|
	- BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR
 | 
						|
	- BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING
 | 
						|
	- BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS
 | 
						|
	- BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE
 | 
						|
	- BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK
 | 
						|
	- BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC
 | 
						|
	- BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT
 | 
						|
	- BASH_FUNC_PRINTF -> BASH_DECL_PRINTF
 | 
						|
	- BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK
 | 
						|
	- BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T
 | 
						|
	- BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET
 | 
						|
	- new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for
 | 
						|
	  sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to
 | 
						|
	  siglist.o if appropriate
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- use SIGLIST_O variable to decide whether or not we need siglist.o
 | 
						|
 | 
						|
{execute_cmd,subst}.c
 | 
						|
	- change a couple of instances of ISDIGIT to DIGIT, where we really,
 | 
						|
	  really only want ascii digits
 | 
						|
 | 
						|
ansi_stdlib.h
 | 
						|
	- don't need a declaration for atol()
 | 
						|
 | 
						|
				   10/18
 | 
						|
				   -----
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support
 | 
						|
	  for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT
 | 
						|
	  if successful
 | 
						|
 | 
						|
configure.in
 | 
						|
	- call AC_CHECK_FUNCS for isascii
 | 
						|
	- call BASH_FUNC_PRINTF_A_FORMAT
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add a define for HAVE_ISASCII
 | 
						|
	- add a define for HAVE_PRINTF_A_FORMAT
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- for long double output, fall back to sprintf using ldfallback()
 | 
						|
	  function for floating point formats
 | 
						|
	- support %a, %A using dfallback() or ldfallback() if
 | 
						|
	  HAVE_PRINTF_A_FORMAT is defined
 | 
						|
	- fix bug in vasprintf that returned wrong value in its first
 | 
						|
	  argument if the buffer holding the result string got reallocated
 | 
						|
	- fixed PUT_CHAR macro to increment the counter even if we've
 | 
						|
	  exceeded the buffer size, for the return value from
 | 
						|
	  vsnprintf/snprintf
 | 
						|
	- fix vsnprintf_internal to not use counter < length as a loop
 | 
						|
	  condition, but always process the entire format string (for
 | 
						|
	  the return value from vsnprintf/snprintf)
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- support %a, %A if HAVE_PRINTF_A_FORMAT is defined
 | 
						|
 | 
						|
include/typemax.h
 | 
						|
	- new file, with the TYPE_MAXIMUM stuff that's duplicated in several
 | 
						|
	  files in lib/sh
 | 
						|
 | 
						|
lib/sh/{fmtulong,strtol,snprintf}.c
 | 
						|
	- include <typemax.h> instead of having the definitions in each file
 | 
						|
 | 
						|
lib/sh/Makefile.in
 | 
						|
	- updated dependencies for typemax.h
 | 
						|
 | 
						|
				   10/22
 | 
						|
				   -----
 | 
						|
configure.in
 | 
						|
	- call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines
 | 
						|
	  in chartypes.h
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT}
 | 
						|
 | 
						|
include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h
 | 
						|
	- don't redefine some is* ctype macros/functions if HAVE_ISXXX is
 | 
						|
	  defined (meaning that an appropriate function, but not a macro,
 | 
						|
	  exists)
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- new function, ansic_shouldquote, returns 1 if argument string
 | 
						|
	  contains non-printing chars that should be quoted with $'...'
 | 
						|
 | 
						|
externs.h
 | 
						|
	- new declaration for ansic_shouldquote()
 | 
						|
 | 
						|
variables.c
 | 
						|
	- change print_var_value to ansi C quote the string if we're not in
 | 
						|
	  posix mode and the variable's value contains non-printing chars,
 | 
						|
	  to use the regular shell single quoting if the value contains
 | 
						|
	  shell meta-characters, and to just output the string otherwise
 | 
						|
 | 
						|
lib/sh/shquote.c
 | 
						|
	- add `break' to `case '~':' to avoid fallthrough and extra test
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- note that in POSIX mode, `set' displays variable values that
 | 
						|
	  include nonprinting characters without quoting, unless they
 | 
						|
	  contain shell metacharacters
 | 
						|
 | 
						|
builtins/printf.def, lib/sh/snprintf.c
 | 
						|
	- handle `F' conversion specifier as equivalent to 'f'
 | 
						|
 | 
						|
parse.y, {nojobs,variables}.c
 | 
						|
	- a couple of cleanups for when building a minimal configuration
 | 
						|
 | 
						|
nojobs.c
 | 
						|
	- new function: stop_making_children(), just sets
 | 
						|
	  already_making_children to 0 (like stop_pipeline)
 | 
						|
 | 
						|
subst.c
 | 
						|
	- call stop_making_children from subst.c:command_substitute if
 | 
						|
	  JOB_CONTROL is not defined.  This fixes the bug where the wrong
 | 
						|
	  process is waited for (and its status returned) when using
 | 
						|
	  command substitution in a null command in a shell function
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- new variable `tw' used to keep track of the total number of
 | 
						|
	  characters written by a single call to `printf' -- to be
 | 
						|
	  used for the `%n' conversion, which will be added later.  It
 | 
						|
	  gets reset each time we reuse the format string, which is what
 | 
						|
	  ksh93 seems to do
 | 
						|
 | 
						|
				   10/23
 | 
						|
				   -----
 | 
						|
variables.c
 | 
						|
	- new function, bind_var_to_int (char *var, long val)
 | 
						|
 | 
						|
variables.h
 | 
						|
	- extern declaration for bind_var_to_int
 | 
						|
 | 
						|
lib/sh/netopen.c
 | 
						|
	- use gai_strerror() for error messages when getaddrinfo() fails
 | 
						|
	- use PF_INET if DEBUG is defined, since IPv6 doesn't work for me
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- pass DEBUG=${DEBUG} down to makes in some subdirectories
 | 
						|
 | 
						|
{builtins,lib/{glob,sh}}/Makefile.in
 | 
						|
	- append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- added support for %n format conversion char (number of chars printed
 | 
						|
	  so far from current format string)
 | 
						|
 | 
						|
				   10/24
 | 
						|
				   -----
 | 
						|
variables.c
 | 
						|
	- if posixly_correct is set, the default value of $MAILCHECK is 600
 | 
						|
	- use legal_number instead of atoi in adjust_shell_level
 | 
						|
	- treat non-numeric assignments to SECONDS as 0 in assign_seconds
 | 
						|
	- new function, init_funcname_var; sets FUNCNAME as a dynamic variable
 | 
						|
	  if it's not set in the initial environment
 | 
						|
	- new function, init_groups_var; sets GROUPS as a dynamic array
 | 
						|
	  variable if it's not set in the initial environment
 | 
						|
	- new function, init_dirstack_var; sets DIRSTACK as a dynamic array
 | 
						|
	  variable if it's not set in the initial environment
 | 
						|
	- new function, init_seconds_var; sets SECONDS as a dynamic
 | 
						|
	  variable using any valid integer value in the initial environment
 | 
						|
	  as the initial value, as if an assignment had been performed
 | 
						|
	- call init_funcname_var, init_groups_var, init_dirstack_var,
 | 
						|
	  init_seconds_var from initialize_dynamic_variables
 | 
						|
	- non-numeric values assigned to LINENO are treated as 0
 | 
						|
	- change initialize_shell_variables to not auto-export PATH or TERM
 | 
						|
	- change set_home_var to not auto-export HOME
 | 
						|
	- change set_shell_var to not auto-export SHELL
 | 
						|
	- broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE
 | 
						|
	  out into a separate function, set_machine_vars; none of those
 | 
						|
	  variables are auto-exported
 | 
						|
	- bash no longer un-exports SSH_CLIENT or SSH2_CLIENT
 | 
						|
 | 
						|
shell.c
 | 
						|
	- changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if
 | 
						|
	  SSH_SOURCE_BASHRC is defined in config-top.h
 | 
						|
 | 
						|
config-top.h
 | 
						|
	- added a commented-out definition for SSH_SOURCE_BASHRC
 | 
						|
 | 
						|
				   10/25
 | 
						|
				   -----
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- changed RELSTATUS to `rc1' (release candidate 1)
 | 
						|
 | 
						|
				   10/29
 | 
						|
				   -----
 | 
						|
locale.c
 | 
						|
	- fixed an `=' vs. `==' typo in set_locale_var when parsing
 | 
						|
	  LC_NUMERIC
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document what bash does with $POSIXLY_CORRECT
 | 
						|
 | 
						|
doc/builtins.1
 | 
						|
	- some updates
 | 
						|
 | 
						|
builtins/psize.sh
 | 
						|
	- some mktemp(1) changes
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- change rl_backward to check for rl_point < 0 and reset to 0 if so
 | 
						|
 | 
						|
lib/readline/util.c
 | 
						|
	- don't compile in _rl_strpbrk if HAVE_STRPBRK is defined
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- remove extern declaration of _rl_strpbrk
 | 
						|
 | 
						|
lib/readline/rldefs.h
 | 
						|
	- #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise
 | 
						|
	  add extern declaration of _rl_strpbrk from rlprivate.h
 | 
						|
 | 
						|
{mailcheck,shell,variables}.c
 | 
						|
	- make sure to include posixtime.h to get any prototype for time(3)
 | 
						|
	  in scope
 | 
						|
 | 
						|
{array,eval,execute_cmd,mksyntax,subst}.c, parse.y
 | 
						|
builtins/common.c
 | 
						|
lib/sh/pathcanon.c
 | 
						|
	- a few changes as the result of `gcc -Wall' patches from solar
 | 
						|
	  designer
 | 
						|
 | 
						|
builtins/read.def, parse.y
 | 
						|
	- change some calls to free() to xfree()
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- make sure unset_builtin() resets unset_array to 0 each time through
 | 
						|
	  the loop, because it's set (and used) depending on the current
 | 
						|
	  argument
 | 
						|
 | 
						|
shell.h
 | 
						|
	- new define, USE_VAR, to force the compiler to not put a particular
 | 
						|
	  variable in a register -- helpful if registers are not restored
 | 
						|
	  by setjmp/longjmp
 | 
						|
 | 
						|
builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c
 | 
						|
	- use USE_VAR for some variables
 | 
						|
 | 
						|
subst.c
 | 
						|
	- fixed a case in expand_word_internal where a NULL pointer could
 | 
						|
	  have been passed to free() (though free() should ignore it)
 | 
						|
	- fixed a case at the end of expand_word_internal where LIST could
 | 
						|
	  have been used uninitialized (it makes gcc happy, though it
 | 
						|
	  doesn't happen in practice)
 | 
						|
 | 
						|
test.c
 | 
						|
	- give test_syntax_error(), beyond(), and integer_expected_error()
 | 
						|
	  the `__noreturn__' attribute for gcc
 | 
						|
 | 
						|
unwind_prot.c
 | 
						|
	- in clear_unwind_protect_list(), convert `flags' to `long' (via
 | 
						|
	  assignment to a `long' variable) before casting to `char *', in
 | 
						|
	  case pointers and longs are 64 bits and ints are 32 (makes no
 | 
						|
	  difference on 32-bit machines)
 | 
						|
 | 
						|
				   10/30
 | 
						|
				   -----
 | 
						|
print_cmd.c
 | 
						|
	- fixed cprintf to avoid gcc warning about assigning const pointer
 | 
						|
	  to non-const (discarding type qualifier)
 | 
						|
 | 
						|
{make_cmd,pcomplete,test}.c,parse.y
 | 
						|
	- some minor changes to shut up gcc warnings
 | 
						|
 | 
						|
lib/sh/tmpfile.c
 | 
						|
	- fixed sh_mktmpfp to avoid file descriptor leaks in the case that
 | 
						|
	  sh_mktmpfd succeeds but fdopen fails for some reason
 | 
						|
	- change sh_mktmpfd to use the same scheme for computing `filenum'
 | 
						|
	  as sh_mktmpname
 | 
						|
	- change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined
 | 
						|
	- changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to
 | 
						|
	  `nameroot' if `nameroot == 0' (duh)
 | 
						|
	- add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined
 | 
						|
	- add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined
 | 
						|
 | 
						|
support/{fixlinks,mkclone}
 | 
						|
	- use mktemp if it's available for the symlink test
 | 
						|
	- use $TMPDIR instead of hardcoding /tmp; default to /tmp
 | 
						|
	- use a better filename for the symlink test instead of `z'
 | 
						|
 | 
						|
support/bashbug.sh
 | 
						|
	- more changes inspired by a patch from solar designer
 | 
						|
 | 
						|
lib/malloc/Makefile.in
 | 
						|
	- new target `alloca', which builds libmalloc.a with alloca.o only
 | 
						|
	  (for systems without alloca that are configured --without-bash-malloc)
 | 
						|
 | 
						|
configure.in
 | 
						|
	- if we don't have a working alloca and are not configured to build
 | 
						|
	  the bash malloc library, make a malloc library containing only
 | 
						|
	  alloca.o
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- slight change to RL_LIB_READLINE_VERSION to deal with minor version
 | 
						|
	  numbers with a letter appended (like 4.2a)
 | 
						|
 | 
						|
				   10/31
 | 
						|
				   -----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- slight change to note that only interactive shells resend a SIGHUP
 | 
						|
	  to all jobs before exiting
 | 
						|
 | 
						|
externs.h
 | 
						|
	- declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined.  This
 | 
						|
	  keeps picky compilers from choking because intmax_t is not defined
 | 
						|
	  (MacOS X 10.1)
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- #define NEED_STRTOIMAX_DECL before including shell.h
 | 
						|
 | 
						|
				   11/1
 | 
						|
				   ----
 | 
						|
general.c
 | 
						|
	- check in bash_tilde_expand() for an unquoted tilde-prefix; don't
 | 
						|
	  bother passing the string to tilde_expand unless the prefix is
 | 
						|
	  unquoted
 | 
						|
 | 
						|
shell.c
 | 
						|
	- fix a problem with $LINENO when executing commands supplied with
 | 
						|
	  the -c invocation option when ONESHOT is defined
 | 
						|
 | 
						|
[bash-2.05a-rc1 frozen]
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- fix the %n conversion to require that the variable name supplied
 | 
						|
	  be a valid shell identifier
 | 
						|
 | 
						|
variables.c
 | 
						|
	- improve random number generator slightly by using the upper 16
 | 
						|
	  bits of the running random number instead of the lower 16, which
 | 
						|
	  are incrementally more random
 | 
						|
 | 
						|
				   11/2
 | 
						|
				   ----
 | 
						|
configure.in
 | 
						|
	- if RL_INCLUDEDIR ends up being /usr/include, don't put
 | 
						|
	  -I$(RL_INCLUDEDIR) into CFLAGS
 | 
						|
 | 
						|
				   11/5
 | 
						|
				   ----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- correct description of POSIXLY_CORRECT to note that the shell enters
 | 
						|
	  posix mode *before* the startup files are read if POSIXLY_CORRECT
 | 
						|
	  is in the initial environment
 | 
						|
 | 
						|
variables.c
 | 
						|
	- fix function prologues for init_dirstack_var and init_groups_var
 | 
						|
	  to agree with caller (no arguments)
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- fix forward function declarations for pipe_read and pipe_close
 | 
						|
 | 
						|
subst.c
 | 
						|
	- removed `inline' attribute from skip_double_quoted because it can
 | 
						|
	  potentially be called recursively
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- quick fix to bashline.c:attempt_shell_completion programmable
 | 
						|
	  completion code to just punt if the end of the command word found
 | 
						|
	  by find_cmd_end is <= the start found by find_cmd_start (the bug
 | 
						|
	  is probably in find_cmd_start -- fix later)
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- fix gen_matches_from_itemlist to return if the stringlist is null
 | 
						|
	  after any cleaning or initialization, before trying to use it
 | 
						|
	- fix GEN_COMPS to only bother to try to append the STRINGLIST
 | 
						|
	  returned by gen_matches_from_itemlist to `glist' if it's non-NULL
 | 
						|
 | 
						|
lib/sh/stringlist.c
 | 
						|
	- make copy_stringlist return NULL if the STRINGLIST * passed as an
 | 
						|
	  argument is NULL
 | 
						|
	- make append_stringlist call copy_stringlist only if M2 is non-NULL;
 | 
						|
	  otherwise just return NULL if m1 is NULL
 | 
						|
	- make word_list_to_stringlist return 0 immediately if the passed
 | 
						|
	  LIST argument is NULL
 | 
						|
	- make realloc_stringlist call alloc_stringlist if the passed
 | 
						|
	  STRINGLIST argument (`sl') is 0, just like realloc calls malloc
 | 
						|
 | 
						|
subst.c
 | 
						|
	- in skip_to_delim(), if we have an unclosed ${, and it's at the end
 | 
						|
	  of the string (string[i] == '{', string[i+1] == '{' and
 | 
						|
	  string[i+2] == 0, return si (i +2) immediately without bothering
 | 
						|
	  to call extract_dollar_brace_string or extract_delimited_string
 | 
						|
	- in skip_to_delim(), if string[i] is 0 after a call to
 | 
						|
	  extract_dollar_brace_string or extract_delimited_string (meaning we
 | 
						|
	  have an unclosed ${ or other expansion, return i immediately without
 | 
						|
	  doing a `continue' (which will increment i past the end of string)
 | 
						|
	- in split_at_delims, don't increment te by 1 if it's pointing to a
 | 
						|
	  delimiter.  this has the effect of skipping the first delimiter
 | 
						|
	  char in a possibly multi-character delimiter, and ignoring
 | 
						|
	  single-char delimiters like `>'
 | 
						|
 | 
						|
configure.in
 | 
						|
	- use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to
 | 
						|
	  AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test
 | 
						|
	  fails
 | 
						|
 | 
						|
general.c
 | 
						|
	- introduce two new variables: bash_tilde_{prefixes,suffixes}, set
 | 
						|
	  to the additional prefixes and suffixes bash wants to pass to the
 | 
						|
	  tilde expansion code (reserved for post-bash-2.05a fix)
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- add missing `test' in BASH_CHECK_SYS_SIGLIST
 | 
						|
 | 
						|
				   11/7
 | 
						|
				   ----
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- fix rl_vi_goto_mark to explicitly check that the desired mark is
 | 
						|
	  between 'a' and 'z', since some locales have lowercase letters
 | 
						|
	  outside that range, which could cause a negative subscript
 | 
						|
 | 
						|
include/chartypes.h
 | 
						|
	- remove superfluous `#undef ISASCII'
 | 
						|
 | 
						|
lib/sh/strto[iu]max.c
 | 
						|
	- changes from Paul Eggert to work around buggy compilers and catch
 | 
						|
	  configuration errors at compile time
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but
 | 
						|
	  with a fix for Irix 5.3 (not called, since I'm not sure it's the
 | 
						|
	  right thing to do -- the C standard allows double and long double
 | 
						|
	  to be the same size)
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- only try to write the trailing NUL in vsnprintf_internal if
 | 
						|
	  data->length is >= 0, since if it's not, we probably don't have
 | 
						|
	  a buffer
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- changed RELSTATUS to `release'
 | 
						|
 | 
						|
				   11/8
 | 
						|
				   ----
 | 
						|
lib/sh/strtol.c
 | 
						|
	- make sure chars passed to toupper are cast to unsigned
 | 
						|
 | 
						|
unwind_prot.c
 | 
						|
	- change clear_unwind_protect_list to not require a cast from `int'
 | 
						|
	  to `char *'
 | 
						|
 | 
						|
lib/readline/chardefs.h
 | 
						|
	- make _rl_digit_p succeed only for ascii digits, since that's what
 | 
						|
	  most callers assume
 | 
						|
 | 
						|
				   11/13
 | 
						|
				   -----
 | 
						|
doc/bashref.texi
 | 
						|
	- added `ERR' trap and [-+]O invocation option to section listing
 | 
						|
	  differences from the Bourne shell
 | 
						|
 | 
						|
				   11/15
 | 
						|
				   -----
 | 
						|
[bash-2.05a released]
 | 
						|
 | 
						|
				   11/19
 | 
						|
				   -----
 | 
						|
include/stdc.h
 | 
						|
	- new define, INLINE, defined as `inline' for gcc and empty otherwise
 | 
						|
 | 
						|
subst.c
 | 
						|
	- make skip_double_quoted, sub_append_string have INLINE attribute
 | 
						|
 | 
						|
trap.c
 | 
						|
	- use BASH_NSIG as upper limit for signal names in signal_name()
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- use RL_COMMENT_BEGIN_DEFAULT in output for rl-comment-begin value
 | 
						|
 | 
						|
error.c
 | 
						|
	- fix sys_error to save value of errno around calls to fprintf
 | 
						|
 | 
						|
doc/Makefile.in
 | 
						|
	- added rules to create PDF files from postscript and dvi input
 | 
						|
 | 
						|
MANIFEST.doc
 | 
						|
	- added {article,bash,bashref,rose94}.pdf
 | 
						|
 | 
						|
doc/bash.1
 | 
						|
	- rearranged some `.PD 0' and `.TP' directives so man2html will
 | 
						|
	  handle them better (shouldn't affect groff output)
 | 
						|
 | 
						|
support/man2html.c
 | 
						|
	- small fix to handle quoted string arguments to directives like
 | 
						|
	  `.BR' without mangling the output
 | 
						|
 | 
						|
				   11/20
 | 
						|
				   -----
 | 
						|
{arrayfunc,variables}.c
 | 
						|
	- changed calling sequence for dynamic array variable `assign'
 | 
						|
	  functions to (SHELL_VAR *self, char *value, arrayind_t ind)
 | 
						|
	- changed calling sequence for dynamic variable assign functions
 | 
						|
	  to the same as array variable assign_func.  Now this can be
 | 
						|
	  prototyped
 | 
						|
 | 
						|
variables.h
 | 
						|
	- the assign_func member of a `struct variable' is now of type
 | 
						|
	  `sh_var_assign_func_t', which is prototyped
 | 
						|
	- the dynamic_value member of a `struct variable' is now of type
 | 
						|
	  `sh_var_value_func_t', which is prototyped
 | 
						|
 | 
						|
variables.c
 | 
						|
	- changed to use `sh_var_assign_func_t' and `sh_var_value_func_t'
 | 
						|
 | 
						|
builtins/cd.def
 | 
						|
	- when in posix mode, if the new directory name formed by PWD and
 | 
						|
	  the argument passed by the user cannot be canonicalized, and the
 | 
						|
	  -P option has not been supplied, return failure immediately
 | 
						|
	- if canonicalization failed, but the fallback to the directory
 | 
						|
	  name specified by the user succeeds, reset the current working
 | 
						|
	  directory
 | 
						|
 | 
						|
lib/readline/{input.c,rlprivate.h}
 | 
						|
	- renamed rl_unget_char to _rl_unget_char; made library global
 | 
						|
 | 
						|
lib/readline/{{bind,readline}.c,{keymaps,rlprivate}.h}
 | 
						|
	- support for `key subsequences'; allows a key sequence and a function
 | 
						|
	  mapped to a subsequence of that key sequence.  Primarily to allow
 | 
						|
	  arrow keys to be bound in readline vi insert mode, while preserving
 | 
						|
	  the ESC function to switch to command mode.
 | 
						|
 | 
						|
lib/readline/{input.c,rlprivate.h}
 | 
						|
	- new function, _rl_input_queued(T), does a check with select or
 | 
						|
	  FIONREAD with a timeout of `T' (which is generally 0)
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- change _rl_dispatch_subseq to test for input in the queue if we
 | 
						|
	  get ESC while in vi insertion mode if the keymap entry type for
 | 
						|
	  ESC is ISKMAP.  If _rl_input_queued returns non-zero, we assume
 | 
						|
	  that an arrow key sequence has been pressed and go ahead with the
 | 
						|
	  subsequence.  If it returns zero, we assume that the user pressed
 | 
						|
	  ESC to switch into command mode, and dispatch to that right away.
 | 
						|
	  This avoids forcing the user to press another key before switching
 | 
						|
	  into command mode
 | 
						|
 | 
						|
				   11/21
 | 
						|
				   -----
 | 
						|
lib/readline/readline.c
 | 
						|
	- bind common arrow key sequences in vi insertion keymap
 | 
						|
 | 
						|
lib/readline/terminal.c
 | 
						|
	- bind termcap definition's arrow keys in vi insertion keymap
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- check for rl_vi_movement_mode in _rl_bind_if_unbound, so
 | 
						|
	  binding the arrow keys can work
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- since _rl_bind_if_unbound does the check of what's currently
 | 
						|
	  bound to the key sequence, the check in bind_arrow_keys_internal
 | 
						|
	  was redundant
 | 
						|
	- bind_arrow_keys_internal now takes a Keymap argument and handles
 | 
						|
	  saving and restoring _rl_keymap; changed bind_arrow_keys
 | 
						|
	  accordingly
 | 
						|
 | 
						|
builtins/fc.def
 | 
						|
	- fix from Paul Eggert to substitute the nearest history number in
 | 
						|
	  range if an out-of-range value is supplied.  POSIX requires this
 | 
						|
 | 
						|
lib/sh/pathcanon.c
 | 
						|
	- fix from Corrina Vinschen for the special `cygdrive' prefix on
 | 
						|
	  Cygwin
 | 
						|
 | 
						|
bashhist.c
 | 
						|
	- split the history adding code into more pieces:
 | 
						|
	    check_history_control (char *line) checks LINE against the value
 | 
						|
	    of HISTCONTROL, returning 1 if LINE should be saved and 0 if not
 | 
						|
 | 
						|
	    check_add_history (char *line) calls check_history_control and
 | 
						|
	    history_should_ignore (line) and saves the line with
 | 
						|
	    bash_add_history if the checks indicate that it should be saved
 | 
						|
 | 
						|
	    maybe_add_history just calls check_add_history to set the value
 | 
						|
	    of first_line_saved
 | 
						|
 | 
						|
bashhist.h
 | 
						|
	- extern declaration for check_add_history()
 | 
						|
 | 
						|
shell.c
 | 
						|
	- don't call load_history() from the interactive shell startup
 | 
						|
	  code if history_lines_this_session is > 0, indicating that we've
 | 
						|
	  already saved some lines in the history and that we probably
 | 
						|
	  don't want to overwrite them
 | 
						|
 | 
						|
builtins/history.def
 | 
						|
	- call check_add_history from push_history, so `history -s xx'
 | 
						|
	  works even when in a compound command whose first line has not
 | 
						|
	  been saved.  (Caveat:  in a compound command when the first
 | 
						|
	  line has been saved, the line supplied to history -s will become
 | 
						|
	  part of the compound command's history entry.  Of course, the
 | 
						|
	  delete_history call could remove the compound command from the
 | 
						|
	  history entirely)
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- use sh_makepath instead of xmalloc/sprintf in
 | 
						|
	  command_word_completion_function
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- get_y_or_n now takes an int FOR_PAGER argument; caller changed
 | 
						|
	  If FOR_PAGER is non-zero, get_y_or_n returns appropriate values
 | 
						|
	  for a more-like pager:  `newline' or `return' return 2; `q' or
 | 
						|
	  `Q' return 0
 | 
						|
	- there is now a mini internal more-like pager for displaying a
 | 
						|
	  list of completions that exceeds the screen height (new function
 | 
						|
	  _rl_internal_pager, called from rl_display_match_list)
 | 
						|
 | 
						|
				   11/24
 | 
						|
				   -----
 | 
						|
command.h
 | 
						|
	- new flag, W_TILDEEXP, says to do tilde expansion on an
 | 
						|
	  assignment word
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- fix_assignment_words now sets W_TILDEEXP for assignment word
 | 
						|
	  arguments to `assignment builtins'
 | 
						|
 | 
						|
general.c
 | 
						|
	- bash_tilde_expand now takes a second argument indicating whether
 | 
						|
	  or not it's being invoked in an `assignment context'
 | 
						|
 | 
						|
general.h
 | 
						|
	- change extern declaration for bash_tilde_expand
 | 
						|
 | 
						|
{bashline,execute_cmd,findcmd,general,variables}.c
 | 
						|
builtins/evalfile.c
 | 
						|
lib/sh/makepath.c
 | 
						|
	- fix callers of bash_tilde_expand appropriately
 | 
						|
 | 
						|
subst.c
 | 
						|
	- fix callers of bash_tilde_expansion appropriately
 | 
						|
	- add (currently commented-out) code that would tilde expand assignment
 | 
						|
	  statement arguments to assignment builtins (W_TILDEEXP flag set)
 | 
						|
	  even when the shell is in posix mode
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- fix attempt_shell_completion to turn off
 | 
						|
	  rl_filename_completion_desired when doing command name completion,
 | 
						|
	  so no slash gets appended to the name if there happens to be a
 | 
						|
	  directory with the same name in the current directory
 | 
						|
 | 
						|
				   11/26
 | 
						|
				   -----
 | 
						|
lib/readline/rltech.texinfo
 | 
						|
	- a couple of additions to the rl_stuff_char description
 | 
						|
 | 
						|
parse.y
 | 
						|
	- turn off echo_input_at_read in parse_string_to_word_list, so `set -v'
 | 
						|
	  doesn't give extra lines of output when doing compound array
 | 
						|
	  assignment
 | 
						|
 | 
						|
subst.c
 | 
						|
	- fix split_at_delims to handle skipping over a `\n' if it's a
 | 
						|
	  delimiter (use spctabnl(c) instead of whitespace(c))
 | 
						|
 | 
						|
				   11/27
 | 
						|
				   -----
 | 
						|
support/config.{guess,sub}
 | 
						|
	- updated (with bash changes) to latest version from gnu.org
 | 
						|
 | 
						|
sig.h
 | 
						|
	- add prototype for set_signal_handler declaration
 | 
						|
 | 
						|
builtins/setattr.def
 | 
						|
	- add prototype to extern declaration of declare_builtin
 | 
						|
 | 
						|
builtins/times.def
 | 
						|
	- add no_options call, since times takes no options
 | 
						|
 | 
						|
lib/sh/spell.c
 | 
						|
	- add prototypes to forward declarations for midist and spdist
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- add explicit int return type to ansic_shouldquote declaration
 | 
						|
 | 
						|
lib/readline/rldefs.h, lib/readline/{macro,readline,util,undo}.c
 | 
						|
	- move define for SWAP to rldefs.h, removed from various C files
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- removed define for exchange(), changed to use SWAP instead
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- added some static forward function declarations
 | 
						|
	- find_boolean_var, find_string_var now take a `const char *' argument
 | 
						|
 | 
						|
lib/readline/signals.c
 | 
						|
	- added static forward declaration for rl_maybe_set_sighandler
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- add some common key bindings for the HOME and END keys in
 | 
						|
	  bind_arrow_keys_internal
 | 
						|
 | 
						|
lib/readline/terminal.c
 | 
						|
	- fetch the `@7' termcap string; it's sent by the END key
 | 
						|
	- attempt to bind the terminal's END key to rl_end_of_line in
 | 
						|
	  bind_termcap_arrow_keys; I don't know why I was using `kH'
 | 
						|
	  instead of `@7'
 | 
						|
 | 
						|
doc/builtins.1
 | 
						|
	- remove `case', `for', `if', `until', `while' from NAME section;
 | 
						|
	  those are not shell builtins
 | 
						|
 | 
						|
				   11/28
 | 
						|
				   -----
 | 
						|
stringlib.c
 | 
						|
	- new function, find_token_in_alist, takes a token value and an
 | 
						|
	  ALIST argument, and returns the string correspoinding to the
 | 
						|
	  token if found in the alist
 | 
						|
 | 
						|
externs.h
 | 
						|
	- new extern declaration for find_token_in_alist()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- string_list_internal is no longer static
 | 
						|
 | 
						|
subst.h
 | 
						|
	- new extern declaration for string_list_internal()
 | 
						|
 | 
						|
parse.y
 | 
						|
	- new alist array of other tokens returned by read_token which are
 | 
						|
	  not reserved words in word_token_alist[]
 | 
						|
	- reworked error reporting:  new functions print_offending_line,
 | 
						|
	  which prints the line containing the syntax error,
 | 
						|
	  error_token_from_token, which takes the current token and tries to
 | 
						|
	  figure out its textual representation, and error_token_from_text,
 | 
						|
	  which does the old job of finding the bad token by analyzing the
 | 
						|
	  text of shell_input_line at the current index
 | 
						|
	- report_syntax_error now tries to figure out the token that caused
 | 
						|
	  the syntax error by first looking at current_token and falling
 | 
						|
	  back to the old method of textual analysis if that fails
 | 
						|
	- report_syntax_error doesn't say the token resulting from the textual
 | 
						|
	  analysis of the input line is an `unexpected token'; it just
 | 
						|
	  says there is a `syntax error near xxx'
 | 
						|
	- changed conditional command error reporting to use the value
 | 
						|
	  returned by error_token_from_token if it's not null instead of
 | 
						|
	  just using the token value in the message, since current_token
 | 
						|
	  ends up being set to -1, and the text of the message from
 | 
						|
	  report_syntax_error might not be exactly right
 | 
						|
	- change parse_string_to_word_list to set current_token to the
 | 
						|
	  offending token returned by read_token before calling yyerror()
 | 
						|
	  to make the error reporting do the right thing
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- fixed typo in BASH_CHECK_LIB_TERMCAP
 | 
						|
 | 
						|
configure.in
 | 
						|
	- add check for isinf(3); define HAVE_ISINF_IN_LIBC if found
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add define for HAVE_ISINF_IN_LIBC
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- check for Inf and NaN, using isinf and isnan if they're found in
 | 
						|
	  libc
 | 
						|
	- use the current locale for thousands separator and decimal point
 | 
						|
	- recognize "'" flag; not implemented yet
 | 
						|
	- fix for snprintf/vsnprintf with length of 0 and string argument of
 | 
						|
	  0 with non-zero length
 | 
						|
 | 
						|
builtins/read.def
 | 
						|
	- TMOUT is now the default timeout for `read' (and select) if set,
 | 
						|
	  like ksh93 when reading from the terminal
 | 
						|
	- edit_line (called by read -e) now just does readline's filename
 | 
						|
	  completion by setting rl_attempted_completion_function to NULL,
 | 
						|
	  since e.g., doing command completion for the first word on the
 | 
						|
	  line wasn't really useful
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- changed select_command to return failure status if select_query
 | 
						|
	  returns NULL, indicating that read_builtin returned
 | 
						|
	  EXECUTION_FAILURE
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new TMOUT behavior 
 | 
						|
	- slight change to the description of the test `-ef' option
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- added item to posix mode section describing failure behavior of
 | 
						|
	  cd when invoked in logical mode and the pathname formed by
 | 
						|
	  combining $PWD and the directory argument does not refer to an
 | 
						|
	  existing directory
 | 
						|
 | 
						|
				   11/29
 | 
						|
				   -----
 | 
						|
execute_cmd.c
 | 
						|
	- fix execute_function to call dispose_function_env after
 | 
						|
	  merge_function_env if the shell is in posix mode (fixes debian
 | 
						|
	  bash bug #117673)
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- rl_forward -> rl_forward_char; rl_forward function for compatibility
 | 
						|
	- rl_backward -> rl_backward_char; rl_forward function for
 | 
						|
	  compatibility
 | 
						|
	- new functions, rl_forward_byte, rl_backward_byte, for future use
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declarations for rl_forward_char, rl_backward_char,
 | 
						|
	  rl_forward_byte, rl_backward_byte
 | 
						|
 | 
						|
lib/readline/{emacs_keymap,funmap,vi_keymap,vi_mode
 | 
						|
	- rl_forward -> rl_forward_char
 | 
						|
	- rl_backward -> rl_backward_char
 | 
						|
 | 
						|
lib/readline/funmap.c
 | 
						|
	- new bindable names, `backward-byte' and `forward-byte'
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- new function, BASH_CHECK_MULTIBYTE, encapsulates checks for
 | 
						|
	  multibyte code
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add necessary defines for multibyte include files and functions
 | 
						|
 | 
						|
configure.in
 | 
						|
	- add call to BASH_CHECK_MULTIBYTE
 | 
						|
 | 
						|
config-bot.h
 | 
						|
	- add code to define HANDLE_MULTIBYTE if prerequisites are met
 | 
						|
 | 
						|
lib/sh/xstrchr.c
 | 
						|
	- new file, xstrchr() is strchr(3) that handles multibyte characters
 | 
						|
 | 
						|
bashhist.c
 | 
						|
	- first_line_saved -> current_command_first_line_saved; variable is
 | 
						|
	  now global
 | 
						|
 | 
						|
bashhist.h
 | 
						|
	- extern declaration for current_command_first_line_saved
 | 
						|
 | 
						|
				   11/30
 | 
						|
				   -----
 | 
						|
bashhist.c
 | 
						|
	- break the code that actually calls add_history out of
 | 
						|
	  bash_add_history into a new function, really_add_history;
 | 
						|
	  bash_add_history now calls really_add_history
 | 
						|
	- check_add_history takes a second `force' argument telling it
 | 
						|
	  whether to call bash_add_history (force == 0) or really_add_history
 | 
						|
	  (force != 0)
 | 
						|
 | 
						|
builtins/history.def
 | 
						|
	- in push_history, call delete_last_history if the current command
 | 
						|
	  has more than one line, the first line was saved, and
 | 
						|
	  command-oriented history is active.  This takes care of deleting
 | 
						|
	  the right history element if `history -s' is used within a
 | 
						|
	  compound or multiline command
 | 
						|
	- in push_history, call check_add_history with second argument of 1
 | 
						|
	  to skip check of current_command_line_count and add the arguments
 | 
						|
	  to history -s as a single separate history entry
 | 
						|
 | 
						|
				   12/3
 | 
						|
				   ----
 | 
						|
lib/readline/complete.c
 | 
						|
	- append a slash to completed names which are symlinks to directories
 | 
						|
	  if the new variable _rl_complete_mark_symlink_dirs is non-zero
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- extern declaration for _rl_complete_mark_symlink_dirs
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- new bindable variable, `mark-symlinked-directories', mirrors the
 | 
						|
	  value of _rl_complete_mark_symlink_dirs
 | 
						|
 | 
						|
doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo}
 | 
						|
	- documented new `mark-symlinked-directories' variable
 | 
						|
 | 
						|
				   12/4
 | 
						|
				   ----
 | 
						|
variables.[ch]
 | 
						|
	- set_pipestatus_array now takes a second argument with the number
 | 
						|
	  of processes in the array
 | 
						|
	- changed set_pipestatus_array to just modify the value in place if
 | 
						|
	  the existing array has one element and the new array has one
 | 
						|
	  element, and to modify existing values in place if new array has
 | 
						|
	  more elements than existing array
 | 
						|
 | 
						|
variables.c, jobs.c
 | 
						|
	- changed set_pipestatus_array callers
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- moved call to setjstatus() from set_job_status_and_cleanup to
 | 
						|
	  wait_for, since set_job_status_and_cleanup is part of the SIGCHLD
 | 
						|
	  signal handler call path, and race conditions accessing the
 | 
						|
	  PIPESTATUS array will result for things like
 | 
						|
 | 
						|
		while true; do date; done | cat > /dev/null
 | 
						|
 | 
						|
				   12/5
 | 
						|
				   ----
 | 
						|
xmalloc.h
 | 
						|
	- don't redefine xmalloc, xrealloc, and xfree if DISABLE_MALLOC_WRAPPERS
 | 
						|
	  is #defined
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- #undef for DISABLE_MALLOC_WRAPPERS
 | 
						|
 | 
						|
configure.in
 | 
						|
	- define DISABLE_MALLOC_WRAPPERS if the --with-purify option is
 | 
						|
	  supplied
 | 
						|
 | 
						|
lib/malloc/trace.c
 | 
						|
	- new function, malloc_trace_bin(N), traces allocations and frees
 | 
						|
	  to bucket N (uses the same type of bitmap as `busy')
 | 
						|
 | 
						|
lib/malloc/table.c
 | 
						|
	- fix wraparound search problem in find_entry when searching for a
 | 
						|
	  free entry when the table is full
 | 
						|
 | 
						|
				   12/6
 | 
						|
				   ----
 | 
						|
lib/malloc/table.c
 | 
						|
	- keep an `overflow bucket' around to use when the table is full,
 | 
						|
	  so find_entry always returns a valid pointer when FIND_ALLOC
 | 
						|
	  is set
 | 
						|
	- new static variable to keep a count of the number of MT_ALLOC
 | 
						|
	  entries in the mem_table
 | 
						|
 | 
						|
lib/sh/{oslib,clktck}.c
 | 
						|
	- if HAVE_LIMITS_H is defined, include <limits.h>
 | 
						|
 | 
						|
lib/sh/oslib.c
 | 
						|
	- new function, getmaxgroups() returns max number of simultaneous
 | 
						|
	  groups
 | 
						|
	- new function, getmaxchild(), returns max number of simultaneous
 | 
						|
	  user processes
 | 
						|
 | 
						|
general.c
 | 
						|
	- removed forest of #defines for getmaxgroups()
 | 
						|
 | 
						|
externs.h
 | 
						|
	- new extern declaration for getmaxgroups()
 | 
						|
	- new extern declaration for getmaxchild()
 | 
						|
	- new extern declaration for isnetconn()
 | 
						|
 | 
						|
lib/sh/netconn.c,shell.c
 | 
						|
	- new file, isnetconn() from shell.c moved here
 | 
						|
 | 
						|
Makefile.in, lib/sh/Makefile.in
 | 
						|
	- necessary changes for netconn.c
 | 
						|
 | 
						|
builtins/ulimit.def
 | 
						|
	- changed getmaxuprc() to just call getmaxchild() and massage the
 | 
						|
	  return value appropriately
 | 
						|
 | 
						|
{jobs,nojobs}.c
 | 
						|
	- use the value returned by getmaxchild() in
 | 
						|
	  mark_dead_jobs_as_notified instead of static CHILD_MAX
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- new function, compact_jobs_list, removes some number of jobs from
 | 
						|
	  the jobs table and reallocates the table, copying the jobs that
 | 
						|
	  are left from the old table to the new.  Compaction happens from
 | 
						|
	  the beginning of the list and removes dead jobs, and we make sure
 | 
						|
	  to keep the last CHILD_MAX jobs as POSIX.2 requires
 | 
						|
	- call compact_jobs_list from stop_pipeline if we're in a subshell,
 | 
						|
	  there are no free jobs in the jobs table, and the jobs table is
 | 
						|
	  at or above some maximum limit
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- change eval_arith_for_expr to set this_command_name to `((' before
 | 
						|
	  calling evalexp, since it might be changed by evaluating the
 | 
						|
	  loop body between evalexp calls
 | 
						|
 | 
						|
trap.c
 | 
						|
	- change reset_signal to turn off the SIG_TRAPPED flag for the
 | 
						|
	  given signal, so shell builtins and functions running in command
 | 
						|
	  substitutions don't run the signal handlers (traps are not supposed
 | 
						|
	  to be inherited by command substitutions)
 | 
						|
 | 
						|
parse.y
 | 
						|
	- changed parse_string_to_word_list to turn off alias expansion
 | 
						|
	  while parsing the array assignment
 | 
						|
 | 
						|
				   12/9
 | 
						|
				   ----
 | 
						|
alias.c
 | 
						|
	- fix add_alias so that redefining an alias's value also resets the
 | 
						|
	  EXPANDNEXT flag
 | 
						|
 | 
						|
				   12/10
 | 
						|
				   -----
 | 
						|
parse.y
 | 
						|
	- new function, token_is_assignment, called to check whether the text
 | 
						|
	  before `=' makes up a valid assignment token before trying to parse
 | 
						|
	  a compound assignment statement
 | 
						|
	- new function, parse_compound_assignment, to parse a compound
 | 
						|
	  assignment statement instead of using parse_matched_pair; handles
 | 
						|
	  comments and error reporting in the parser instead of waiting until
 | 
						|
	  expansion time
 | 
						|
	- changed parse_compound_assignment and parse_string_to_word_list to
 | 
						|
	  allow reserved words in compound array assignments
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- changed the documentation for rl_callback_read_char and
 | 
						|
	  rl_callback_handler_remove to say what happens to the terminal
 | 
						|
	  settings and what needs to be done to reset them
 | 
						|
 | 
						|
				   12/11
 | 
						|
				   -----
 | 
						|
bashline.c
 | 
						|
	- add emacs_edit_and_execute_command, bound to C-xC-e, like vi-mode
 | 
						|
	  `v' command
 | 
						|
	- add bindable command name `edit-and-execute-command', bound to
 | 
						|
	  run emacs_edit_and_execute_command()
 | 
						|
 | 
						|
lib/glob/strmatch.c
 | 
						|
	- add support for ksh93-like [:word:] character class (isalnum + `_')
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- add note to section describing lists to clarify that a sequence of
 | 
						|
	  one or more newlines may be used to delimit a command, equivalent
 | 
						|
	  to a semicolon
 | 
						|
	- document new [:word:] pattern matching character class
 | 
						|
 | 
						|
doc/bash.1, lib/readline/doc/rluser.texinfo
 | 
						|
	- document `edit-and-execute-command' and its default emacs-mode
 | 
						|
	  binding
 | 
						|
 | 
						|
include/chartypes.h
 | 
						|
	- add defines for TOCTRL and UNCTRL if they're not already defined
 | 
						|
 | 
						|
lib/readline/chardefs.h
 | 
						|
	- #undef UNCTRL if it's defined to avoid cpp redefinition warnings
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- add \cX (Control-X) escape for $'...' to ansicstr()
 | 
						|
	- change ansic_quote() to allocate at least four chars for each char
 | 
						|
	  in the string argument, to account for \0xx octal values
 | 
						|
	- change ansic_quote() to no longer call sprintf for non-printable
 | 
						|
	  characters; just translate the string to octal directly
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- change xtrace_print_word_list to call ansic_quote() if
 | 
						|
	  ansic_shouldquote() indicates that there are nonprinting characters
 | 
						|
	  in a word
 | 
						|
 | 
						|
builtins/type.def
 | 
						|
	- changed deprecated long option parsing to just replace the word
 | 
						|
	  in the list with the equivalent short option (-type -> -t) instead
 | 
						|
	  of removing words from the list
 | 
						|
	- changed describe_command to take a single flags argument instead
 | 
						|
	  of two int args; changed caller
 | 
						|
	- type now has two new options:  -f suppresses function lookup (like
 | 
						|
	  command), and -P forces a PATH search for the name(s)
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- flags for describe_command are here
 | 
						|
	- changed extern declaration of describe_command
 | 
						|
 | 
						|
builtins/command.def
 | 
						|
	- changed call to describe_command to use flags from common.h, and
 | 
						|
	  the right number of arguments
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new -f and -P options to `type'
 | 
						|
 | 
						|
				   12/12
 | 
						|
				   -----
 | 
						|
lib/readline/rldefs.h
 | 
						|
	- fixed prototype for _rl_strnicmp
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- select_query now takes a new argument, an int flag saying whether
 | 
						|
	  or not to print the menu the first time through the loop.  An
 | 
						|
	  empty line in response to the prompt will always cause the menu
 | 
						|
	  to be reprinted
 | 
						|
	- changed execute_select_command to cause select_query to reprint
 | 
						|
	  the menu only if REPLY is set to NULL, if KSH_COMPATIBLE_SELECT
 | 
						|
	  is defined
 | 
						|
 | 
						|
config-top.h
 | 
						|
	- define KSH_COMPATIBLE_SELECT, with a comment about its meaning
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- change rl_insert_comment to toggle if given an explicit numeric
 | 
						|
	  argument:  if the first characters on the line don't specify a
 | 
						|
	  comment, insert one; if they do, delete the comment text
 | 
						|
 | 
						|
doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo}
 | 
						|
	- documented new behavior of insert-comment with a numeric argument
 | 
						|
 | 
						|
				   12/13
 | 
						|
				   -----
 | 
						|
lib/malloc/watch.c
 | 
						|
	- new file, implements watchpoint functions
 | 
						|
 | 
						|
lib/malloc/watch.h
 | 
						|
	- new file, define some `events' for watchpoints and extern function
 | 
						|
	  and variable declarations for watchpoint code
 | 
						|
 | 
						|
lib/malloc/imalloc.h
 | 
						|
	- #define MALLOC_WATCH if MALLOC_DEBUG is defined
 | 
						|
	- add __P define as in include/stdc.h if not already defined
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- remove __P define, now in imalloc.h
 | 
						|
	- include watch.h if MALLOC_WATCH is defined
 | 
						|
	- added calls to _malloc_ckwatch in internal_malloc, internal_free,
 | 
						|
	  and internal_realloc
 | 
						|
 | 
						|
include/stdc.h
 | 
						|
	- augment __P define to allow prototypes if PROTOTYPES is defined
 | 
						|
 | 
						|
lib/readline/rlstdc.h
 | 
						|
	- augment PARAMS define to allow prototypes if PROTOTYPES is defined
 | 
						|
 | 
						|
lib/malloc/Makefile.in, Makefile.in
 | 
						|
	necessary changes to include watch.c in libmalloc
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- fix rl_delete_text to make sure that the starting position is >= 0
 | 
						|
	- _rl_init_line_state (called by readline via readline_initialize)
 | 
						|
	  now sets rl_mark to 0
 | 
						|
	- rl_get_{next,previous}_history set rl_mark to 0 if rl_point is at
 | 
						|
	  the end of the line and rl_end otherwise in emacs mode
 | 
						|
 | 
						|
lib/readline/kill.c
 | 
						|
	- rl_yank_nth_arg_internal and rl_paste_clipboard now set the mark
 | 
						|
	  at point before calling rl_insert_text, like rl_yank
 | 
						|
	- rl_kill_full_line now resets rl_mark to 0
 | 
						|
	- rl_kill_line and rl_backward_kill_line now set rl_mark to the
 | 
						|
	  point after the kill in emacs mode
 | 
						|
	- rl_kill_word and rl_backward_kill_word now set rl_mark to the
 | 
						|
	  point after the kill in emacs mode
 | 
						|
	- rl_unix_word_rubout and rl_unix_line_discard now set rl_mark to
 | 
						|
	  the point after the kill in emacs mode
 | 
						|
 | 
						|
lib/readline/search.c
 | 
						|
	- noninc_search saves and restores the mark, since it can be changed
 | 
						|
	  while reading the search string
 | 
						|
	- noninc_dosearch sets the mark at the end of the line, making the
 | 
						|
	  region bound the `inserted' text since rl_point is set to 0
 | 
						|
	- rl_history_search_internal sets the mark at the end of the line,
 | 
						|
	  for the same reason
 | 
						|
 | 
						|
lib/readline/isearch.c
 | 
						|
	- rl_search_history now saves and restores the mark
 | 
						|
	- if no matching lines are found at all when doing an isearch, leave
 | 
						|
	  point where it was instead of moving it to the end of the line
 | 
						|
 | 
						|
				   12/17
 | 
						|
				   -----
 | 
						|
lib/readline/rlmbutil.h
 | 
						|
	- new file, place for multi-byte character defines and extern
 | 
						|
	  declarations
 | 
						|
 | 
						|
lib/readline/{bind.c,readline.c,rlprivate.h}
 | 
						|
	- new bindable variable, `byte-oriented', tracks value of
 | 
						|
	  rl_byte_oriented variable
 | 
						|
 | 
						|
lib/readline/mbutil.c
 | 
						|
	- new file, with multibyte char utility functions
 | 
						|
 | 
						|
lib/readline/{complete,display,readline,util,vi_mode}.c
 | 
						|
	- new code for multibyte characters, derived from IBM patch
 | 
						|
 | 
						|
				   12/18
 | 
						|
				   -----
 | 
						|
lib/sh/tmpfile.c
 | 
						|
	- include posixtime.h for time() extern declaration
 | 
						|
 | 
						|
support/bashversion.c
 | 
						|
	- include <unistd.h> if it's available
 | 
						|
 | 
						|
lib/readline/{histexpand,input,isearch,search}.c
 | 
						|
	- new code for multibyte characters, derived from IBM patch
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- include rltypedefs.h
 | 
						|
 | 
						|
				   12/19
 | 
						|
				   -----
 | 
						|
lib/readline/complete.c
 | 
						|
	- slight change to mark-directories code to avoid adding a slash if
 | 
						|
	  point is at the end of the line (rl_line_buffer[rl_point] == '\0')
 | 
						|
	  and the previous character was a slash
 | 
						|
	- change printable_part to not return empty pathnames, which could
 | 
						|
	  happen when completing filenames and a filename with a trailing
 | 
						|
	  slash was passed as the argument.  If the portion following the
 | 
						|
	  trailing slash is NULL, ignore it and look for a previous slash.
 | 
						|
	  If there's no previous slash, just return the filename argument
 | 
						|
	- new variable, rl_completion_mark_symlink_dirs, mirrors the value
 | 
						|
	  of (user-settable with a variable) _rl_complete_mark_symlink_dirs
 | 
						|
	  but may be modified by application-specific completion functions
 | 
						|
	  when appropriate (set in rl_complete_internal and rl_menu_complete)
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declaration for rl_completion_mark_symlink_dirs
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- if one of the actions is CA_DIRECTORY, set
 | 
						|
	  rl_completion_mark_symlink_dirs to indicate that we want the
 | 
						|
	  trailing slash (might have to relax this)
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- documented rl_completion_mark_symlink_dirs variable
 | 
						|
 | 
						|
lib/readline/doc/rluser.texinfo, doc/bash.1
 | 
						|
	- documented the fact that `complete -d' and `complete -o dirnames'
 | 
						|
	  force readline to append a slash to symlinks to directories
 | 
						|
 | 
						|
builtins/enable.def
 | 
						|
	- changed enable_shell_builtin to disallow enabling disabled
 | 
						|
	  builtins in a restricted shell
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new enable behavior in restricted shells
 | 
						|
 | 
						|
doc/Makefile.in
 | 
						|
	- new rule to make an `RBASH' file documenting the restrictions
 | 
						|
	  imposed by a restricted shell
 | 
						|
 | 
						|
expr.c
 | 
						|
	- broke the code that evaluates variables and returns results out
 | 
						|
	  of readtok() into a new function: expr_streval()
 | 
						|
	- expr_streval() now performs the standard unset variable error
 | 
						|
	  behavior if `set -u' has been executed and it's asked to look
 | 
						|
	  up an unset variable
 | 
						|
	- broke the code that frees up the expression context stack into
 | 
						|
	  a new function: expr_unwind()
 | 
						|
 | 
						|
variables.c
 | 
						|
	- fixed bind_int_variable so it handles array element assignment,
 | 
						|
	  so expressions like `b[7]++' and `b[0] = 42' work right
 | 
						|
	- new function, get_variable_value, returns the string value of
 | 
						|
	  the SHELL_VAR * passed as an argument
 | 
						|
	- get_string_value now calls get_variable_value with a non-null
 | 
						|
	  result from find_variable
 | 
						|
 | 
						|
				   12/20
 | 
						|
				   -----
 | 
						|
lib/readline/rlmbutil.h, mbutil.c
 | 
						|
	- combined _rl_find_next_mbchar and _rl_find_next_nonzero_mbchar into
 | 
						|
	  a single function
 | 
						|
	- combined _rl_find_prev_mbchar and _rl_find_prev_nonzero_mbchar into
 | 
						|
	  a single function
 | 
						|
 | 
						|
lib/readline/{display,readline,vi_mode}.c
 | 
						|
	- changed callers of _rl_find_next_mbchar and
 | 
						|
	  _rl_find_next_nonzero_mbchar
 | 
						|
 | 
						|
lib/readline/{complete,display,histexpand,readline,vi_mode}.c
 | 
						|
	- changed callers of _rl_find_prev_mbchar and
 | 
						|
	  _rl_find_prev_nonzero_mbchar
 | 
						|
 | 
						|
				   12/20
 | 
						|
				   -----
 | 
						|
lib/sh/mktime.c
 | 
						|
	- new file, from glibc/gawk, compiled in if system doesn't have a
 | 
						|
	  working mktime(3)
 | 
						|
 | 
						|
lib/sh/strftime.c
 | 
						|
	- new file, from gawk, compiled in if system doesn't have a
 | 
						|
	  working strftime(3)
 | 
						|
 | 
						|
lib/sh/Makefile.in, Makefile.in
 | 
						|
	- changes for mktime.c, strftime.c
 | 
						|
 | 
						|
configure.in
 | 
						|
	- call AC_FUNC_MKTIME, AC_STRUCT_TM, AC_STRUCT_TIMEZONE
 | 
						|
	- call AC_REPLACE_FUNC(strftime)
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add defines for TM_IN_SYS_TIME, HAVE_TZSET, HAVE_TM_ZONE,
 | 
						|
	  HAVE_STRUCT_TM_TM_ZONE, HAVE_STRFTIME
 | 
						|
 | 
						|
externs.h
 | 
						|
	- provide an extern declaration for strftime if HAVE_STRFTIME is
 | 
						|
	  not defined and NEED_STRFTIME_DECL is
 | 
						|
 | 
						|
lib/tilde/tilde.h
 | 
						|
	- header files should not include <config.h>
 | 
						|
 | 
						|
parse.y
 | 
						|
	- replace code in decode_prompt_string that chops up value returned
 | 
						|
	  by ctime(3) with calls to strftime -- as a result, the expansion
 | 
						|
	  of \@ has changed slightly (since it depends on the locale)
 | 
						|
	- added new \D{format} prompt string escape; `format' is passed to
 | 
						|
	  strftime(3).  Empty format is the same as `%X' (locale-specific
 | 
						|
	  representation of the current time)
 | 
						|
	- combined cases for '\\', '\a', '\e', and '\r' in same case branch
 | 
						|
	  in decode_prompt_string
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new \D{format} prompt string expansion
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- use ISO C PRIdMAX instead of INTMAX_CONV
 | 
						|
	- pass length of format modifiers to mklong instead of computing it
 | 
						|
	  with strlen()
 | 
						|
 | 
						|
lib/sh/{fmtulong,fmtullong}.c
 | 
						|
	- changes from Paul Eggert to make more general
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- when converting a variable to an array, make sure to unset the
 | 
						|
	  dynamic_value and assign_func members of the struct variable,
 | 
						|
	  since they're not valid anymore
 | 
						|
 | 
						|
				   12/27
 | 
						|
				   -----
 | 
						|
configure.in
 | 
						|
	- use AC_HELP_STRING in AC_ARG_WITH and AC_ARG_ENABLE 
 | 
						|
	- remove AC_ARG_ENABLE for largefile, since AC_SYS_LARGEFILE adds
 | 
						|
	  one
 | 
						|
 | 
						|
				 1/2/2002
 | 
						|
				 --------
 | 
						|
{alias,bashline,execute_cmd,general,shell,subst,variables,arrayfunc}.c,general.h
 | 
						|
	- changed some calls to strchr to calls to xstrchr for multibyte
 | 
						|
	  characters
 | 
						|
 | 
						|
include/shmbutil.h
 | 
						|
	- add extern declaration for xstrchr to avoid including externs.h
 | 
						|
	  where it's not appropriate
 | 
						|
 | 
						|
{braces,make_cmd,pathexp,subst,arrayfunc}.c, lib/sh/xstrchr.c
 | 
						|
	- include shmbutil.h
 | 
						|
 | 
						|
{stringlib,subst}.c, {externs,subst}.h
 | 
						|
	- moved substring() from subst.c to stringlib.c, moved declaration
 | 
						|
	  from subst.h to externs.h
 | 
						|
 | 
						|
lib/sh/xmbsrtowcs.c
 | 
						|
	- new file, replacement function for mbsrtowcs
 | 
						|
 | 
						|
lib/sh/Makefile.in
 | 
						|
	- add entries for xmbsrtowcs.c
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- add dependencies on shmbutil.h to appropriate object files
 | 
						|
 | 
						|
lib/glob/strmatch.c
 | 
						|
	- break character-class testing out into separate function:
 | 
						|
	  is_cclass, in prep for multibyte changes
 | 
						|
 | 
						|
{braces,make_cmd}.c
 | 
						|
	- changes for multibyte characters
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- changes from Paul Eggert to just use intmax_t everywhere an
 | 
						|
	  int/long/quad is needed and print with "%ld" if the number
 | 
						|
	  fits in a long and %PRIdMAX otherwise
 | 
						|
	- remove getlong, getulong, getllong, getullong, since they're
 | 
						|
	  no longer needed
 | 
						|
	- use a new type `floatmax_t' to print floating point numbers, the
 | 
						|
	  widest-available floating point type (like `intmax_t'); new
 | 
						|
	  function `getfloatmax' that calls strtold or strtod as appropriate
 | 
						|
	- remove getdouble, getldouble, since they're no longer needed
 | 
						|
 | 
						|
lib/sh/fmtumax.c
 | 
						|
	- new file, string-to-[u]intmax_t conversion, just includes
 | 
						|
	  fmtulong.c with the right defines
 | 
						|
 | 
						|
Makefile.in, lib/sh/Makefile.in
 | 
						|
	- additions for fmtumax.c
 | 
						|
 | 
						|
bashtypes.h
 | 
						|
	- include <inttypes.h> if it's available
 | 
						|
 | 
						|
expr.c
 | 
						|
	- arithmetic is now in intmax_t instead of long
 | 
						|
 | 
						|
externs.h
 | 
						|
	- extern declaration for fmtumax
 | 
						|
	- change extern declarations for evalexp, itos, inttostr,
 | 
						|
	  uitos, uinttostr since they now return or use intmax_t instead
 | 
						|
	  of long
 | 
						|
 | 
						|
{execute_cmd,general,mailcheck,subst,variables}.c, parse.y
 | 
						|
{array,general,subst,test,variables}.h
 | 
						|
lib/sh/{itos,netopen}.c
 | 
						|
builtins/{bashgetopt,common}.c, builtins/common.h
 | 
						|
builtins/{break,fc,history,jobs,let,printf,pushd,read,shift,wait}.def
 | 
						|
	- changes for intmax_t shell arithmetic conversion
 | 
						|
 | 
						|
doc/{bashref.texi,bash.1}
 | 
						|
	- documented long->intmax_t shell arithmetic conversion
 | 
						|
 | 
						|
sig.c
 | 
						|
	- in initialize_terminating_signals, if we've already trapped a
 | 
						|
	  terminating signal, don't reset the signal handler for it
 | 
						|
 | 
						|
				    1/3
 | 
						|
				    ---
 | 
						|
{arrayfunc,pathexp}.c, parse.y
 | 
						|
	- changes for multibyte chars
 | 
						|
 | 
						|
parse.y, lib/sh/strtrans.c
 | 
						|
	- moved ansiexpand from parse.y to lib/sh/strtrans.c
 | 
						|
 | 
						|
parse.y, locale.c
 | 
						|
	- moved mk_msgstr and localeexpand from parse.y to locale.c
 | 
						|
 | 
						|
parse.y
 | 
						|
	- new function, yy_input_name, returns name of input file from
 | 
						|
	  bash_input.name
 | 
						|
	- broke the code that parses ((...)) constructs out of read_token
 | 
						|
	  into a new function, parse_dparen()
 | 
						|
 | 
						|
externs.h
 | 
						|
	- new extern declaration for ansiexpand(), mk_msgstr(), and
 | 
						|
	  localeexpand()
 | 
						|
 | 
						|
input.h
 | 
						|
	- new extern declaration for yy_input_name()
 | 
						|
 | 
						|
{error,locale}.c
 | 
						|
	- use yy_input_name for error and other messages
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- change shell_execve to make sure that the file is executable
 | 
						|
	  before looking at the interpreter to find out why the execve()
 | 
						|
	  failed (avoids misleading error message)
 | 
						|
 | 
						|
lib/glob/glob.c
 | 
						|
	- move code that matches leading `.' and skips those filenames into
 | 
						|
	  a separate function: skipname(), so there can be unibyte and
 | 
						|
	  multibyte versions of that function
 | 
						|
 | 
						|
				    1/7
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- more changes for multibyte characters
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- change semicolon() so it doesn't output a `;' immediately after a
 | 
						|
	  newline, since that results in a null command, which is a syntax
 | 
						|
	  error
 | 
						|
 | 
						|
variables.c
 | 
						|
	- fix indirection_level_string to turn off set -x while evaluating
 | 
						|
	  PS4
 | 
						|
 | 
						|
				    1/8
 | 
						|
				    ---
 | 
						|
builtins/set.def
 | 
						|
	- make -o options into one struct, instead of separate structs for
 | 
						|
	  option names corresponding to flags and non-flag option names.
 | 
						|
	  This has the side effect of sorting the option names in output
 | 
						|
 | 
						|
lib/glob/glob.c
 | 
						|
	- new function, mbskipname(), multibyte char version of skipname()
 | 
						|
	- removed all #ifndef SHELL code, this will never be used outside
 | 
						|
	  the shell
 | 
						|
 | 
						|
include/posixdir.h
 | 
						|
	- move REAL_DIR_ENTRY define here from lib/glob/glob.c
 | 
						|
 | 
						|
lib/glob/glob_loop.c
 | 
						|
	- new file, included in glob.c for unibyte and multibyte versions of
 | 
						|
	  glob_pattern_p
 | 
						|
	- added some forward static function declarations with prototypes
 | 
						|
	- more changes for multibyte character handling
 | 
						|
 | 
						|
lib/glob/Makefile.in
 | 
						|
	- make glob.c depend on glob_loop.c
 | 
						|
	- changes for xmbsrtowcs.[co]
 | 
						|
 | 
						|
lib/glob/xmbsrtowcs.c
 | 
						|
	- moved here from lib/sh, since the matching functions use it, and
 | 
						|
	  libglob.a is linked after libsh.a
 | 
						|
 | 
						|
				    1/9
 | 
						|
				    ---
 | 
						|
lib/glob/smatch.c
 | 
						|
	- new file, with strmatch (now xstrmatch) and associated functions,
 | 
						|
	  with changes for multibyte chars
 | 
						|
 | 
						|
lib/glob/sm_loop.c
 | 
						|
	- new file, included by smatch.c, with `generic' versions of matching
 | 
						|
	  functions that are compiled twice:  once each for single-byte and
 | 
						|
	  multibyte characters
 | 
						|
 | 
						|
lib/glob/strmatch.c
 | 
						|
	- strip out everything except strmatch(), which either calls fnmatch
 | 
						|
	  (if HAVE_LIBC_FNM_EXTMATCH is defined) or xstrmatch
 | 
						|
 | 
						|
lib/glob/collsyms.c
 | 
						|
	- changes for multibyte chars
 | 
						|
 | 
						|
lib/glob/Makefile.in, Makefile.in
 | 
						|
	- changes for new source files
 | 
						|
 | 
						|
				   1/10
 | 
						|
				   ----
 | 
						|
lib/readline/complete.c
 | 
						|
	- new function, rl_completion_mode (rl_command_func_t *func), returns
 | 
						|
	  the appropriate value to pass to rl_complete_internal depending on
 | 
						|
	  FUNC and the value of `show-all-if-ambiguous'.  This allows
 | 
						|
	  application completion functions to present the same interface as
 | 
						|
	  rl_complete
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- new extern declaration for rl_completion_mode()
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- documented rl_completion_mode
 | 
						|
 | 
						|
lib/readline/readline.[ch]
 | 
						|
	- bumped the version number to 4.3, changing the relevant cpp defines
 | 
						|
 | 
						|
configure.in
 | 
						|
	- require that an installed readline version be at least readline-4.3
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- converted bash-specific completion functions to use
 | 
						|
	  rl_completion_mode instead of passing TAB unconditionally
 | 
						|
 | 
						|
builtins/bashgetopt.c
 | 
						|
	- the `#' option specifier now means a required numeric argument,
 | 
						|
	  not an optional one
 | 
						|
 | 
						|
builtins/type.def
 | 
						|
	- when converting [-]-{path,type,all} to -[pta], don't bother
 | 
						|
	  freeing and reallocating the option string; just change opt[1]
 | 
						|
	  and null opt[2]
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- support %ls/%S and %lc/%C for wide strings and characters,
 | 
						|
	  respectively, if HANDLE_MULTIBYTE is defined
 | 
						|
 | 
						|
mailcheck.c
 | 
						|
	- don't print a message about new mail if the file has not grown,
 | 
						|
	  even if the access time is less than the modification time
 | 
						|
 | 
						|
				   1/14
 | 
						|
				   ----
 | 
						|
lib/readline/readline.c
 | 
						|
	- new function, rl_replace_line, to replace the readline line buffer
 | 
						|
	  with the text supplied as an argument
 | 
						|
	- new function, rl_replace_from_history, replaces readline line
 | 
						|
	  buffer with text from history entry passed as argument (undocumented,
 | 
						|
	  not in readline.h because it requires a definition of
 | 
						|
	  HIST_ENTRY for the prototype)
 | 
						|
 | 
						|
lib/readline/readlne.h
 | 
						|
	- new extern declaration for rl_replace_line
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- documented rl_replace_line
 | 
						|
 | 
						|
lib/readline/{isearch,readline,search}.c
 | 
						|
	- use rl_replace_line and rl_replace_from_history where appropriate
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- broke the code that sets point after moving through the history
 | 
						|
	  (_rl_history_preserve_point and _rl_history_saved_point) out
 | 
						|
	  into a separate function, _rl_history_set_point()
 | 
						|
 | 
						|
lib/readline/{complete.c,rlprivate.h}
 | 
						|
	- find_completion_word -> _rl_find_completion_word
 | 
						|
	- free_match_list -> _rl_free_match_list
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- postprocess_matches and _rl_free_match_list now return immediately
 | 
						|
	  if passed a null match list
 | 
						|
 | 
						|
variables.c
 | 
						|
	- new function, find_local_variable, finds a local variable by name
 | 
						|
	  at the current variable context
 | 
						|
	- in find_variable_internal, call find_local_variable before searching
 | 
						|
	  any of the temporary environments if variable_context > 0 (meaning
 | 
						|
	  we're in a shell function).  This lets a local variable
 | 
						|
	  override a variable whose value was passed in the `function
 | 
						|
	  environment'
 | 
						|
 | 
						|
				   1/15
 | 
						|
				   ----
 | 
						|
variables.h, execute_cmd.c
 | 
						|
	- declare variables describing the temporary environments in
 | 
						|
	  variables.h instead of in C files
 | 
						|
 | 
						|
findcmd.c, builtins/setattr.def
 | 
						|
	- instead of calling find_tempenv_variable, use find_variable_internal
 | 
						|
	  and check whether the returned SHELL_VAR * has the tempvar
 | 
						|
	  attribute
 | 
						|
 | 
						|
variables.c
 | 
						|
	- tentative change to lookup order in find_variable_internal so that
 | 
						|
	  function local variables are found before variables in
 | 
						|
	  function_env when executing a shell function
 | 
						|
	- change make_local_variable to handle making a local variable when
 | 
						|
	  a variable with the same name already appears in one of the
 | 
						|
	  temporary environments
 | 
						|
	- broke the body of make_var_array out into a new function:
 | 
						|
		static char **make_env_array_from_var_list (SHELL_VAR **vars)
 | 
						|
	- new function, make_var_array_internal, takes a hash table to look
 | 
						|
	  in and a pointer to a mapping function and returns a char **
 | 
						|
	  environment-style list
 | 
						|
	- make_var_array now just calls make_var_array_internal
 | 
						|
	- new mapping function, local_and_exported, returns all local variables
 | 
						|
	  in the current variable context with the export attribute set
 | 
						|
	- new function, make_local_export_array, returns an environment-style
 | 
						|
	  char ** array of exported local variables in current context
 | 
						|
	- change environment creation order in maybe_make_export_env to
 | 
						|
	  add variables to the environment in opposite order that
 | 
						|
	  find_variable_internal uses.  This means that local variables in
 | 
						|
	  shell functions override variables with the same name in the
 | 
						|
	  function_env
 | 
						|
	- change make_local_variable to set the initial value of the
 | 
						|
	  variable it creates to NULL to make the `is set' and `is null'
 | 
						|
	  tests that the expansion code does work right
 | 
						|
	- change make_local_variable to inherit the value of a variable with
 | 
						|
	  the same name from the temporary enviroment
 | 
						|
 | 
						|
				   1/16
 | 
						|
				   ----
 | 
						|
Makefile.in
 | 
						|
	- link bashversion with buildversion.o instead of version.o, for
 | 
						|
	  cross-compiling.  version.o is for the target system;
 | 
						|
	  buildversion.o is for the build system
 | 
						|
 | 
						|
error.c
 | 
						|
	- add line numbers to internal_error() messages if the shell is
 | 
						|
	  not interactive and running a shell script or a -c command
 | 
						|
	- report_error now prints non-zero line numbers for non-interactive
 | 
						|
	  shells
 | 
						|
 | 
						|
test.c
 | 
						|
	- test_syntax_error now calls builtin_error() instead of printing
 | 
						|
	  its own messages
 | 
						|
 | 
						|
builtins/common.c
 | 
						|
	- builtin_error now prints line numbers if a non-interactive shell
 | 
						|
	  is running a shell script or a -c command
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- in cprintf, remove free_argp, since it's not used
 | 
						|
 | 
						|
builtins/history.def
 | 
						|
	- make `history -n' increment the number of history lines in this
 | 
						|
	  session by the number of lines read from the history file
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- fix array_value_internal to expand the subscript even if the
 | 
						|
	  variable is unset, so side effects produced by the arithmetic
 | 
						|
	  evaluation will take place
 | 
						|
 | 
						|
lib/readline/doc/{rluser,rltech}.texinfo
 | 
						|
	- some fixes for printing in @smallbook format from Brian
 | 
						|
	  Youmans
 | 
						|
 | 
						|
				   1/17
 | 
						|
				   ----
 | 
						|
jobs.h
 | 
						|
	- new PRUNNING, PSTOPPED, PDEADPROC defines for PROCESSes, analogous
 | 
						|
	  to RUNNING, STOPPED, and DEADJOB defines for jobs
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- use PS_RUNNING, PS_DONE, PS_STOPPED values for `running' field
 | 
						|
	  of a PROCESS
 | 
						|
	- find_pipeline and find_job now take an additional flags argument
 | 
						|
	  that, if non-zero, means to find only running processes; changed
 | 
						|
	  all callers
 | 
						|
	- changed calls to find_pipeline and find_job made from waitchld
 | 
						|
	  to find only running processes
 | 
						|
	- find_pipeline takes a third argument: an int *.  If it looks in
 | 
						|
	  the jobs list to find the pid, and the arg is non-null, it passes
 | 
						|
	  the job index back to the caller.  Used to avoid calls to
 | 
						|
	  find_pipeline immediately followed by find_job with the same PID
 | 
						|
 | 
						|
nojobs.c
 | 
						|
	- a couple of changes to make sure that set_pid_status is never
 | 
						|
	  called with a pid argument of 0 or -1
 | 
						|
 | 
						|
trap.c
 | 
						|
	- change trap_handler to longjmp to wait_intr_buf (set by wait_builtin)
 | 
						|
	  if a signal is received for which a trap has been set during
 | 
						|
	  execution of the wait builtin (need to include builtins.h and
 | 
						|
	  builtins/builtext.h and declare some extern variables for the
 | 
						|
	  right things to check)
 | 
						|
	- new variable to keep track of which signal caused the longjmp to
 | 
						|
	  wait_intr_buf, set by trap_handler (wait_signal_received)
 | 
						|
 | 
						|
builtins/wait.def
 | 
						|
	- set the return value of wait when a longjmp(wait_intr_buf, 1) is
 | 
						|
	  done to 128 + wait_signal_received
 | 
						|
 | 
						|
{jobs,nojobs}.c
 | 
						|
	- set wait_signal_received to SIGINT in wait_sigint_handler before
 | 
						|
	  the longjmp(wait_intr_buf, 1)
 | 
						|
 | 
						|
				   1/18
 | 
						|
				   ----
 | 
						|
bashline.c
 | 
						|
	- turn off rl_filename_completion_desired when completing a command
 | 
						|
	  name with a single match only if the first char of that match is
 | 
						|
	  not a `/'
 | 
						|
	- if there are multiple identical matches for a command name in
 | 
						|
	  attempt_shell_completion, turn off rl_filename_completion_desired
 | 
						|
	  if the first char is not a `/' to avoid readline appending a
 | 
						|
	  slash if there's a directory with the same name in the current
 | 
						|
	  directory
 | 
						|
 | 
						|
				   1/22
 | 
						|
				   ----
 | 
						|
lib/readline/complete.c
 | 
						|
	- new variable, _rl_page_completions, to control whether we want to
 | 
						|
	  run the internal pager when listing completions (defaults to 1)
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- extern declaration for _rl_page_completions
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- new bindable variable, `page-completions', controls value of
 | 
						|
	  _rl_page_completions
 | 
						|
 | 
						|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
 | 
						|
	- documented `page-completions' variable
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- use $(INSTALL_SCRIPT) instead of $(INSTALL_PROGRAM) to install
 | 
						|
	  `bashbug'
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- fix small quoting problem in RL_LIB_READLINE_VERSION macro
 | 
						|
 | 
						|
lib/readline/terminal.c
 | 
						|
	- fetch and save terminal's `vs' and `ve' cursor control attributes
 | 
						|
	- fetch and save terminal's `kI' attribute (string sent by Insert)
 | 
						|
	- new function, _rl_set_cursor, sets cursor to normal (insert mode)
 | 
						|
	  or very visible (overwrite mode)
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- new global variable, rl_insert_mode
 | 
						|
	- new function to toggle overwrite mode, rl_overwrite_mode
 | 
						|
	- each new line starts in insert mode
 | 
						|
	- switching to vi mode or emacs mode resets to insert mode
 | 
						|
	- reset cursor to normal before returning line
 | 
						|
	- _rl_replace_text now returns the number of characters inserted,
 | 
						|
	  the return value from rl_insert_text
 | 
						|
	- new function, _rl_insert_or_replace_text (const char *string, int insert),
 | 
						|
	  either inserts STRING or replaces the number of chars in STRING
 | 
						|
	  with STRING starting at rl_point, depending on value of INSERT
 | 
						|
	- renamed rl_insert to _rl_insert_char, rl_insert just calls
 | 
						|
	  _rl_insert_char with the same arguments when in insert mode
 | 
						|
	- new function, _rl_overwrite_char, handles self-insert in overwrite
 | 
						|
	  mode.  Does multibyte chars by reading an entire multibyte character
 | 
						|
	  before entering overwrite loop
 | 
						|
	- new function, _rl_overwrite_rubout, handles RUBOUT when in
 | 
						|
	  overwrite mode, called from rl_rubout
 | 
						|
	- new function, _rl_rubout_char, old body of rl_rubout; rl_rubout
 | 
						|
	  calls this when not in overwrite mode 
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declarations for rl_insert_mode and rl_overwrite_mode()
 | 
						|
 | 
						|
lib/readline/rldefs.h
 | 
						|
	- define constants for values of rl_insert_mode
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- extern declarations for _rl_set_cursor and _rl_set_insert_mode
 | 
						|
	- change type of _rl_replace_text to return int
 | 
						|
	- extern declarations for _rl_insert_char, _rl_rubout_char
 | 
						|
 | 
						|
lib/readline/funmap.c
 | 
						|
	- new bindable name `overwrite-mode', bound to rl_overwrite_mode
 | 
						|
 | 
						|
lib/readline/rlconf.h
 | 
						|
	- define CURSOR_MODE if you want the cursor to show insert or
 | 
						|
	  overwrite mode (only available if both `vs' and `ve' capabilities
 | 
						|
	  are present)
 | 
						|
 | 
						|
lib/readline/{complete,parens,readline,search,vi_mode}.c
 | 
						|
	- change calls to rl_insert to _rl_insert_char
 | 
						|
 | 
						|
lib/readline/{readline,search}.c
 | 
						|
	- change calls to rl_rubout to _rl_rubout_char to avoid overwrite
 | 
						|
	  mode problems
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- fix rl_vi_overstrike to just call _rl_overwrite_char, which
 | 
						|
	  handles multibyte chars
 | 
						|
 | 
						|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
 | 
						|
	- document new `overwrite-mode' command
 | 
						|
 | 
						|
				   1/23
 | 
						|
				   ----
 | 
						|
lib/readline/readline.c
 | 
						|
	- return 0 immediately from rl_insert_text if the string to insert
 | 
						|
	  is NULL or ""
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- if a numeric argument is given to one of the bash-specific glob
 | 
						|
	  pattern completion functions (including TAB), append a `*' to
 | 
						|
	  the word before generating matches
 | 
						|
	- in attempt_shell_completion, when doing glob completion, only
 | 
						|
	  set the match list to NULL if rl_completion_type == TAB and
 | 
						|
	  there is more than one completion.  This permits listing completions
 | 
						|
	  with double tabs and displaying ambiguous completions
 | 
						|
	- new function, bash_glob_complete_word, appends a `*' to the word
 | 
						|
	  to be completed and then globs it.  It uses a new filename
 | 
						|
	  quoting function (bash_glob_quote_filename) to avoid quoting
 | 
						|
	  globbing characters in the filename if there are no matches or
 | 
						|
	  multiple matches
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- set completion_changed_buffer to 0 in rl_complete_internal if
 | 
						|
	  no matches were produced by the completion generator function
 | 
						|
	- new variable, rl_completion_suppress_append, suppresses appending
 | 
						|
	  of rl_completion_append_character.  Settable by application
 | 
						|
	  completion functions, always 0 when application completion
 | 
						|
	  functions are called (set to 0 by rl_complete_internal and
 | 
						|
	  rl_menu_complete)
 | 
						|
	- broke the code that assigns default values to readline completion
 | 
						|
	  variables out of rl_complete_internal and rl_menu_complete into
 | 
						|
	  a new function, set_completion_defaults (int what_to_do)
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declaration for rl_completion_suppress_append
 | 
						|
 | 
						|
lib/readline/doc/rluser.texinfo, doc/bash.1
 | 
						|
	- documented behavior of glob-expand-word and glob-list-expansions
 | 
						|
	  when supplied a numeric argument
 | 
						|
	- documented glob-complete-word
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- documented rl_completion_suppress_append
 | 
						|
 | 
						|
				   1/24
 | 
						|
				   ----
 | 
						|
lib/readline/text.c
 | 
						|
	- new file, text and character handling functions from readline.c
 | 
						|
 | 
						|
lib/readline/misc.c
 | 
						|
	- new file, miscellanous bindable functions and their supporting
 | 
						|
	  code from readline.c
 | 
						|
 | 
						|
Makefile.in, lib/readline/Makefile.in
 | 
						|
	- changes for text.c, misc.c
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- change ISKMAP case of rl_invoking_keyseqs_in_map to output
 | 
						|
	  ESC as "\M-" instead of "\e" -- it's closer to the documentation
 | 
						|
	- change _rl_get_keyname to output ESC as \e instead of \C-[
 | 
						|
	  (it's easier to understand)
 | 
						|
 | 
						|
pcomplete.h
 | 
						|
	- new flag, COPT_NOSPACE
 | 
						|
 | 
						|
builtins/complete.def
 | 
						|
	- new `-o nospace' option for complete and compgen (though it doesn't
 | 
						|
	  really do anything for compgen, since that doesn't hand anything
 | 
						|
	  off to readline)
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- if a programmable completion specifies COPT_NOSPACE, set
 | 
						|
	  rl_completion_suppress_append = 1
 | 
						|
 | 
						|
lib/readline/doc/rluser.texinfo
 | 
						|
	- documented new `-o nospace' option to complete and compgen
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented $'\cX' escape sequence (forgot to before)
 | 
						|
 | 
						|
				   1/28
 | 
						|
				   ----
 | 
						|
variables.c
 | 
						|
	- make_new_variable now takes the HASH_TABLE * as its second
 | 
						|
	  argument; changed callers
 | 
						|
	- new function, bind_variable_in_table, takes the HASH_TABLE * as
 | 
						|
	  its third paramter; bind_variable calls bind_variable_in_table
 | 
						|
	  with shell_variables as third argument
 | 
						|
 | 
						|
variables.h
 | 
						|
	- new struct var_context, variable context (per-scope -- global,
 | 
						|
	  function local, etc.)
 | 
						|
 | 
						|
variables.[ch],builtins/common.[ch]
 | 
						|
	- moved functions that push and pop a variable context from
 | 
						|
	  builtins/common.c to variables.c; move extern function
 | 
						|
	  declarations to variables.h
 | 
						|
	- new function, all_local_variables
 | 
						|
	- variable_in_context is now static, used only by all_local_variables
 | 
						|
 | 
						|
variables.[ch],execute_cmd.c
 | 
						|
	- push_context now takes the function name as an argument for
 | 
						|
	  future use
 | 
						|
	- push_context takes an indication of whether or not the function is
 | 
						|
	  executing in a subshell and saves the positional parameters only
 | 
						|
	  if not in a subshell
 | 
						|
	- new functions for managing a stack of variable contexts and
 | 
						|
	  scopes:  new_var_context, dispose_var_context, push_var_context,
 | 
						|
	  pop_var_context, push_scope, pop_scope
 | 
						|
 | 
						|
builtins/declare.def
 | 
						|
	- call all_local_variables instead of map_over (...) in declare_internal
 | 
						|
	- don't call make_local_variable if we're looking at functions
 | 
						|
	  ((flags_on & att_function) != 0), since it's wasted
 | 
						|
	- make sure VAR is set to NULL if check for variable_context fails
 | 
						|
	  and we didn't just create or fetch a local variable in
 | 
						|
	  declare_internal
 | 
						|
	- in non-function branch of declare_internal, only call find_variable
 | 
						|
	  if VAR is NULL -- if it's not null, we just created or fetched a
 | 
						|
	  local variable and don't need to do it again
 | 
						|
 | 
						|
				   1/29
 | 
						|
				   ----
 | 
						|
variables.[ch]
 | 
						|
	- the temporary environments (temporary_env, builtin_env, function_env)
 | 
						|
	  are now HASH_TABLEs instead of argv-style arrays of strings (this
 | 
						|
	  is an intermediate step on the way to the new lcc-inspired symbol
 | 
						|
	  table scope structure)
 | 
						|
	- new internal attribute for variables: att_propagate.  This means
 | 
						|
	  to propagate the value out of the temporary environment up the
 | 
						|
	  (for now implicit) chain of variable scopes when the containing
 | 
						|
	  temporary environment is deleted
 | 
						|
 | 
						|
variables.c
 | 
						|
	- assign_in_env now adds to the HASH_TABLE temporary_env instead
 | 
						|
	  of making environment-style strings in an array of strings
 | 
						|
	- changed the way the temporary environments are merged into the
 | 
						|
	  shell variable table to account for the new HASH_TABLE temp
 | 
						|
	  environments
 | 
						|
	- changed the way the export environment is created due to the new
 | 
						|
	  structure of the temporary environments
 | 
						|
	- new function, bind_variable_internal (name, value, table), binds
 | 
						|
	  NAME to have VALUE in TABLE without searching the temporary
 | 
						|
	  environments
 | 
						|
	- removed: shell_var_from_env_string, bind_name_in_env_array
 | 
						|
	- variable_in_context now checks the att_local attribute and makes
 | 
						|
	  sure the variable is not invisible
 | 
						|
	- local_and_exported now makes sure the variable is not invisible
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- we no longer need to copy the temporary environment to function_env
 | 
						|
	  or builtin_env, we can simply use variable assignments
 | 
						|
 | 
						|
{findcmd,subst,variables}.c, builtins/{declare,setattr}.def
 | 
						|
	- since variables from the temporary environments are no longer turned
 | 
						|
	  into SHELL_VARs on the fly, don't dispose the SHELL_VAR returned
 | 
						|
	  by find_variable or find_variable_internal
 | 
						|
	- need to savestring() the value returned by find_variable if it has
 | 
						|
	  the tempvar attribute before calling bind_variable on it, because
 | 
						|
	  bind_variable will search and bind into the temporary environments
 | 
						|
	  and will free the old value before binding the new.  For temporary
 | 
						|
	  environments, these two pointers will be the same, and
 | 
						|
	  bind_tempenv_variable will end up using freed memory
 | 
						|
 | 
						|
builtins/{declare,setattr}.def
 | 
						|
	- set the att_propagate attribute when exporting or making readonly
 | 
						|
	  variables from the temp environment (i.e., `var=value declare -x var'
 | 
						|
	  or `var=value export var' sets the propagate attribute on the entry
 | 
						|
	  for `var' in the temporary environment HASH_TABLE)
 | 
						|
 | 
						|
lib/readline/isearch.c
 | 
						|
	- ^W when reading isearch string yanks the current word out of the
 | 
						|
	  current line into the search string, skipping the portion already
 | 
						|
	  matched
 | 
						|
	- ^Y when reading isearch string yanks the rest of the current line
 | 
						|
	  into the search string, skipping the portion already matched
 | 
						|
 | 
						|
				   1/30
 | 
						|
				   ----
 | 
						|
{print_cmd,variables}.c
 | 
						|
	- moved indirection_level_string() from variables.c to print_cmd.c
 | 
						|
 | 
						|
{externs,variables}.h
 | 
						|
	- moved extern declaration of indirection_level_string to externs.h
 | 
						|
 | 
						|
{general,variables}.c
 | 
						|
	- moved assignment() from variables.c to general.c
 | 
						|
 | 
						|
{general,variables}.h
 | 
						|
	- moved extern declaration of assignment() to general.h
 | 
						|
 | 
						|
{externs,input}.h
 | 
						|
	- moved extern declaration of decode_prompt_string to externs.h
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- include flags.h, don't include stdc.h
 | 
						|
 | 
						|
variables.c
 | 
						|
	- moved some functions around to group functions better
 | 
						|
	- changed new_shell_variable to explicitly initialize each member
 | 
						|
	  of the created struct variable instead of calling bzero()
 | 
						|
	- make_new_variable now just calls new_shell_variable instead
 | 
						|
	  of duplicating what it does
 | 
						|
	- removed some code in bind_function that duplicated what
 | 
						|
	  new_variable does on the newly-created SHELL_VAR
 | 
						|
	- since there are no local function variables (functions are always
 | 
						|
	  made at the global scope), kill_all_local_variables() doesn't
 | 
						|
	  need to consider functions
 | 
						|
 | 
						|
				   1/31
 | 
						|
				   ----
 | 
						|
variables.c
 | 
						|
	- sort the array of special variables
 | 
						|
	- short-circuit the search in stupidly_hack_special_variables if
 | 
						|
	  the passed name can't be found in the rest of the array
 | 
						|
	  (that is, if name[0] < special_vars[i].name[0])
 | 
						|
 | 
						|
lib/readline/history.c
 | 
						|
	- unstifle_history() was returning values exactly opposite of
 | 
						|
	  the documentation
 | 
						|
 | 
						|
lib/readline/doc/{hsuser.texinfo,history.3}
 | 
						|
	- clarified the unstifle_history() documentation a little
 | 
						|
 | 
						|
				    2/4
 | 
						|
				    ---
 | 
						|
variables.c
 | 
						|
	- in bind_variable, don't call bind_tempenv_variable after a
 | 
						|
	  find_tempenv_variable succeeds -- just change the value inline.
 | 
						|
	  There's no reason to look it up twice
 | 
						|
	- change makunbound to only call stupidly_hack_special_variables
 | 
						|
	  if we're not unsetting a function
 | 
						|
 | 
						|
variables.[ch]
 | 
						|
	- new function, unbind_function, like makunbound but doesn't mess
 | 
						|
	  with previous contexts or calling stupidly_hack_special_variables
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- change unset_builtin to call either unbind_func or unbind_variable
 | 
						|
 | 
						|
builtins/getopts.def
 | 
						|
	- call unbind_variable(name) instead of makunbound(name, shell_variables)
 | 
						|
 | 
						|
				    2/5
 | 
						|
				    ---
 | 
						|
lib/glob/sm_loop.c
 | 
						|
	- use malloc instead of xmalloc in BRACKMATCH and handle failures
 | 
						|
 | 
						|
error.c
 | 
						|
	- add extern declaration of executing_line_number with prototype,
 | 
						|
	  since execute_cmd.h can't be included without including other
 | 
						|
	  files
 | 
						|
 | 
						|
lib/readline/parens.c
 | 
						|
	- include <unistd.h>
 | 
						|
 | 
						|
lib/malloc/stats.c
 | 
						|
	- include <unistd.h>
 | 
						|
	- add extern declaration of malloc_free_blocks() with prototype
 | 
						|
 | 
						|
pathexp.c
 | 
						|
	- added some forward declarations with prototypes for static functions
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- removed declarations of rl_untranslate_keyseq, rl_discard_argument,
 | 
						|
	  rl_stop_output, rl_alphabetic since they appear in readline.h
 | 
						|
 | 
						|
				    2/6
 | 
						|
				    ---
 | 
						|
{arrayfunc,execute_cmd,pcomplete,shell}.c
 | 
						|
	- change calls to makunbound(name, shell_variables) to
 | 
						|
	  unbind_variable (name)
 | 
						|
 | 
						|
				    2/7
 | 
						|
				    ---
 | 
						|
builtins/getopt.c
 | 
						|
	- don't defer incrementing of OPTIND when an invalid option is
 | 
						|
	  encountered until the next call to sh_getopt() -- what if OPTIND
 | 
						|
	  is reset before that next call?  This means that OPTIND is always
 | 
						|
	  incremented to the next option to be handled when an option is
 | 
						|
	  returned, whether it's valid or not.  This is what POSIX-2002
 | 
						|
	  says to do.
 | 
						|
 | 
						|
syntax.h
 | 
						|
	- new #define, CSUBSTOP
 | 
						|
 | 
						|
mksyntax.c
 | 
						|
	- add "-=?+" with value CSUBSTOP to the syntax table.  These are the
 | 
						|
	  valid expansion operators OP in ${param[:]OPword}
 | 
						|
 | 
						|
subst.c
 | 
						|
	- use table lookup for CSUBSTOP in VALID_PARAM_EXPAND_CHAR
 | 
						|
	- new flags for the string extraction functions:  EX_NOALLOC.  This
 | 
						|
	  indicates that the functions are being used only to skip over
 | 
						|
	  strings and the result won't be used, so the substring shouldn't
 | 
						|
	  be allocated, copied, and freed
 | 
						|
	- new flag for string_extract:  EX_VARNAME.  This serves the same
 | 
						|
	  purpose as the old `varname' parameter.  parameter_brace_expand()
 | 
						|
	  changed appropriately
 | 
						|
	- extract_delimited_string and extract_dollar_brace_string now take
 | 
						|
	  an additional `flags' argument, which may include EX_NOALLOC
 | 
						|
	- changed callers of extract_delimited_string and
 | 
						|
	  extract_dollar_brace_string appropriately
 | 
						|
	- string_extract now understands EX_NOALLOC; callers changed
 | 
						|
	- some smaller code cleanups
 | 
						|
	- converted char_is_quoted(), unclosed_pair(), and skip_to_delim()
 | 
						|
	  to understand multibyte characters
 | 
						|
 | 
						|
				   2/11
 | 
						|
				   ----
 | 
						|
variables.[ch]
 | 
						|
	- moved to a symbol organization inspired by lcc.  The basic structure
 | 
						|
	  is no longer a HASH_TABLE, but a VAR_CONTEXT, which includes a hash
 | 
						|
	  table as one of its members.  VAR_CONTEXTs are linked together to do
 | 
						|
	  variable scoping.  One nice thing about this is that the entire
 | 
						|
	  symbol table doesn't need to be searched at function scope exit to
 | 
						|
	  remove local variables.  Fixes problems with only one instance of
 | 
						|
	  builtin_env and function_env, even though it really is a stack
 | 
						|
	- shell_variables is now a VAR_CONTEXT *, with a global_variables
 | 
						|
	  variable that points to the bottom of the stack for fast access
 | 
						|
	- function-scope local variables (assignments specified on the command
 | 
						|
	  line before a function call) and function-local variables (declared
 | 
						|
	  with the `local' builtin) have been unified in the same variable
 | 
						|
	  context, replacing function_env
 | 
						|
	- assignment statements preceding the `.' and `eval' builtins are now
 | 
						|
	  a separate variable scope VAR_CONTEXT, replacing builtin_env
 | 
						|
	- temporary_env (a HASH_TABLE) is now the only separate environment
 | 
						|
	- changes to export environment creation, variable binding, variable
 | 
						|
	  lookup, local variable propagation all changed to work with the
 | 
						|
	  new symbol table/scope structure
 | 
						|
	- a SHELL_VAR no longer has a `prev_context' member; it's not needed
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- changes to push_context calls to include any temporary variables in
 | 
						|
	  temporary_env; pop_context takes care of propagating any temporary
 | 
						|
	  variables if necessary
 | 
						|
	- calls to push_scope if `eval' or `.' is called with a list of
 | 
						|
	  preceding variable assignments, and pop_scope called at end of
 | 
						|
	  builtin's execution.  pop_scope takes care of merging temporary
 | 
						|
	  variables into the shell environment when appropriate
 | 
						|
 | 
						|
builtins/{setattr,declare}.def
 | 
						|
	- changes to account for variable assignments preceding `local',
 | 
						|
	  `export', `readonly', `declare', etc. to work with the new
 | 
						|
	  variable scoping implementation
 | 
						|
 | 
						|
shell.c
 | 
						|
	- since shell_variables is now a VAR_CONTEXT, call
 | 
						|
	  delete_all_contexts() when the shell is reinitializing instead of
 | 
						|
	  delete_all_variables()
 | 
						|
 | 
						|
builtins/common.c
 | 
						|
	- new function, get_job_by_name(), used by execute_simple_command()
 | 
						|
	  for the `auto_resume' stuff and get_job_spec()
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- new set of #defined constants for flags argument to
 | 
						|
	  get_job_by_name()
 | 
						|
 | 
						|
				   2/12
 | 
						|
				   ----
 | 
						|
command.h
 | 
						|
	- new redirection operator: r_reading_string for `here strings'
 | 
						|
 | 
						|
parse.y
 | 
						|
	- new token, LESS_LESS_LESS, for new redirection `here string'
 | 
						|
	  operator: [N]<<< word
 | 
						|
	- recognize LESS_LESS_LESS and create the appropriate redirection
 | 
						|
 | 
						|
{dispose_cmd,copy_cmd,make_cmd,print_cmd}.c
 | 
						|
	- recognize r_reading_string and do the right thing (dispose_redirects,
 | 
						|
	  copy_redirect, print_redirection, and make_redirection, respectively)
 | 
						|
 | 
						|
redir.c
 | 
						|
	- here_document_to_fd now takes the redirection operator as its
 | 
						|
	  second argument
 | 
						|
	- new function, write_here_string, expands a here string and writes it
 | 
						|
	  to the here document file descriptor
 | 
						|
	- here_document_to_fd calls write_here_string for r_reading_string
 | 
						|
	  operator
 | 
						|
	- handle r_reading_string in do_redirection_internal() and
 | 
						|
	  stdin_redirection()
 | 
						|
 | 
						|
				   2/18
 | 
						|
				   ----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented here strings
 | 
						|
 | 
						|
{configure,Makefile}.in
 | 
						|
	- bumped version number up to bash-2.05b and the release status
 | 
						|
	  to alpha1
 | 
						|
 | 
						|
expr.c
 | 
						|
	- make expr_streval understand that variables with the `invisible'
 | 
						|
	  attribute are really unset, and accessing such a variable when
 | 
						|
	  `set -u' is set should be an error
 | 
						|
 | 
						|
variables.h
 | 
						|
	- new accessor macros: var_isset(var) and var_isnull(var), test
 | 
						|
	  whether var->value is NULL
 | 
						|
 | 
						|
{eval,subst,variables}.c, builtins/{declare,setattr}.def
 | 
						|
	- be more consistent about using value_cell(var) instead of
 | 
						|
	  directly referencing var->value
 | 
						|
	- use var_isset and var_isnull where appropriate
 | 
						|
 | 
						|
builtins/help.def
 | 
						|
	- augmented a couple of help strings with pointers to `info' and
 | 
						|
	  `man -k'
 | 
						|
 | 
						|
				   2/14
 | 
						|
				   ----
 | 
						|
variables.h
 | 
						|
	- new macros to use when setting variable values directly instead of
 | 
						|
	  through bind_variable and its siblings
 | 
						|
 | 
						|
{arrayfunc,variables}.c
 | 
						|
	- use var_setarray and other lvalue macros instead of assigning to
 | 
						|
	  var->value directly
 | 
						|
 | 
						|
builtins/setattr.def
 | 
						|
	- change show_var_attributes to show function definitions separately
 | 
						|
	  from function attributes.  This allows the output of `declare -f'
 | 
						|
	  (with other flags), `export -f', and `readonly -f' to be reused as
 | 
						|
	  shell input, instead of the old
 | 
						|
 | 
						|
		declare -f[flags] func()
 | 
						|
		{
 | 
						|
			foo
 | 
						|
		}
 | 
						|
 | 
						|
	  which has syntax errors.  When in posix mode, `export -fp' and
 | 
						|
	  `readonly -fp' still don't print function definitions
 | 
						|
 | 
						|
				   2/16
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- comment out calls to discard_parser_constructs; no need to call
 | 
						|
	  empty functions
 | 
						|
 | 
						|
				   2/18
 | 
						|
				   ----
 | 
						|
lib/sh/memset.c
 | 
						|
	- replacement function for memset(3)
 | 
						|
 | 
						|
lib/sh/Makefile.in, Makefile.in
 | 
						|
	- additions for memset.c
 | 
						|
 | 
						|
configure.in,config.h.in
 | 
						|
	- check for memset, define HAVE_MEMSET if found, add memset.o to
 | 
						|
	  LIBOBJS if not
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- removed zmemset(), replaced with calls to memset(3)
 | 
						|
 | 
						|
{subst,execute_cmd,lib/sh/netopen}.c
 | 
						|
	- replaced calls to bzero with calls to memset
 | 
						|
 | 
						|
subst.c
 | 
						|
	- word_split() now takes a second argument: the value of $IFS, so
 | 
						|
	  it doesn't have to look up IFS every time
 | 
						|
	- word_list_split() now calls getifs() and passes the result to
 | 
						|
	  each call to word_split() as its second arg
 | 
						|
	- do a quick scan for CTLNUL in remove_quoted_nulls before allocating
 | 
						|
	  new string, copying old string to it, copying over original string
 | 
						|
	  and freeing new string
 | 
						|
 | 
						|
eval.c
 | 
						|
	- don't bother calling dispose_used_env_vars if temporary_env is NULL
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- fix fix_assignment_words to only look up the builtin corresponding
 | 
						|
	  to the first word if one of the words in the list is marked as
 | 
						|
	  W_ASSIGNMENT
 | 
						|
 | 
						|
hashlib.c
 | 
						|
	- renamed hash_string to hash_bucket, which better reflects what it
 | 
						|
	  does
 | 
						|
	- extracted the portion of hash_bucket that computes the hash out
 | 
						|
	  into a new hash_string()
 | 
						|
	- made new body of hash_bucket into a macro HASH_BUCKET; function
 | 
						|
	  just calls the macro
 | 
						|
	- calls to hash_bucket in this file now call HASH_BUCKET macro
 | 
						|
	- in add_hash_item, just add a new item at the front of the appropriate
 | 
						|
	  bucket list instead of at the end
 | 
						|
 | 
						|
hashcmd.h
 | 
						|
	- reduced FILENAME_HASH_BUCKETS to 53 from 107
 | 
						|
 | 
						|
				   2/19
 | 
						|
				   ----
 | 
						|
hashlib.[ch]
 | 
						|
	- find_hash_item, remove_hash_item, add_hash_item all take a new
 | 
						|
	  third `flags' argument
 | 
						|
	- add_hash_item doesn't call find_hash_item if HASH_NOSRCH passed in
 | 
						|
	  flags arg
 | 
						|
	- find_hash_item will create a new hash table entry if HASH_CREATE is
 | 
						|
	  passed in flags arg
 | 
						|
	- new function, hash_walk, takes a pointer to a function and a table
 | 
						|
	  and calls the function for each item in the table.  If the function
 | 
						|
	  returns < 0, the walk is terminated
 | 
						|
	- fixed flush_hash_table to set table->nentries to 0 after freeing
 | 
						|
	  all entries
 | 
						|
	- BUCKET_CONTENTS now has a new `khash' member, what key hashes to;
 | 
						|
	  set by HASH_BUCKET macro (which calls hash_string), assigned in
 | 
						|
	  find_hash_item (HASH_CREATE) and add_hash_item
 | 
						|
	- find_hash_item and remove_hash_item check `khash' against the
 | 
						|
	  hash of the string argument before calling strcmp
 | 
						|
 | 
						|
{alias,hashlib,hashcmd,pcomplib,variables}.c
 | 
						|
	- changed all calls to {find,remove,add}_hash_item
 | 
						|
 | 
						|
builtins/hash.def
 | 
						|
	- return immediately from print_hashed_commands if there are no
 | 
						|
	  entries in the hash table (this eliminates need for `any_printed'
 | 
						|
	  variable)
 | 
						|
	- change print_hashed_commands to use hash_walk
 | 
						|
 | 
						|
alias.c
 | 
						|
	- short-circuit all_aliases and map_over_aliases if
 | 
						|
	  HASH_ENTRIES(aliases) == 0
 | 
						|
	- simplify map_over_aliases by just allocating enough room in the
 | 
						|
	  returned list for all entries in the aliases hash table, instead
 | 
						|
	  of doing the check and xrealloc
 | 
						|
	- add_alias now calls add_hash_item with HASH_NOSRCH argument
 | 
						|
 | 
						|
pcomplete.h
 | 
						|
	- sh_csprint_func_t is no more; use hash_wfunc instead
 | 
						|
 | 
						|
pcomplib.c
 | 
						|
	- short-circuit print_all_compspecs if HASH_ENTRIES(prog_completes)
 | 
						|
	  is 0
 | 
						|
	- print_all_compspecs now takes a `hash_wfunc *' argument
 | 
						|
	- print_all_compspecs now just calls hash_walk
 | 
						|
 | 
						|
builtins/complete.def
 | 
						|
	- new function, print_compitem, takes a BUCKET_CONTENTS *, extracts
 | 
						|
	  the right info, and calls print_one_completion
 | 
						|
 | 
						|
variables.c
 | 
						|
	- short-circuit map_over_funcs if HASH_ENTRIES(shell_functions) == 0
 | 
						|
	- short-circuit flatten if the passed table has no entries
 | 
						|
	- bind_variable_internal takes a new fourth argument: `hflags',
 | 
						|
	  to pass to hash table functions
 | 
						|
	- make_new_variable now passes HASH_NOSRCH flag to add_hash_item
 | 
						|
	- set_if_not now calls bind_variable_internal and passes
 | 
						|
	  HASH_NOSRCH as flags argument
 | 
						|
	- bind_function now calls add_hash_item with HASH_NOSRCH argument
 | 
						|
	- fixed make_local_variable:  old_var == 0 && was_tmpvar can never
 | 
						|
	  be true
 | 
						|
	- if we didn't find an old variable in make_local_variable, call
 | 
						|
	  bind_variable_internal with HASH_NOSRCH argument
 | 
						|
	- fix push_temp_var to reset variable context to 0 if binding into
 | 
						|
	  global_variables->table
 | 
						|
 | 
						|
parse.y
 | 
						|
	- fix to parse_compound_assignment to avoid core dumps on empty
 | 
						|
	  compound array assignments
 | 
						|
 | 
						|
subst.c
 | 
						|
	- getifs() is now global so read_builtin can call it
 | 
						|
 | 
						|
subst.h
 | 
						|
	- extern declaration for getifs()
 | 
						|
 | 
						|
				   2/20
 | 
						|
				   ----
 | 
						|
hashlib.c
 | 
						|
	- changed hash_string to use a better hash function
 | 
						|
	- changed HASH_BUCKET to use masking rather than modulus to hash a
 | 
						|
	  string to a bucket -- HASH TABLES MUST NOW BE SIZED BY POWERS
 | 
						|
	  OF TWO
 | 
						|
 | 
						|
hashlib.h
 | 
						|
	- DEFAULT_HASH_BUCKETS is now 64
 | 
						|
 | 
						|
hashcmd.h
 | 
						|
	- FILENAME_HASH_BUCKETS is now 64
 | 
						|
 | 
						|
pcomplib.c
 | 
						|
	- COMPLETE_HASH_BUCKETS is now 32
 | 
						|
 | 
						|
variables.c
 | 
						|
	- TEMPENV_HASH_BUCKETS is now 4
 | 
						|
 | 
						|
alias.c
 | 
						|
	- new define, ALIAS_HASH_BUCKETS, set to 16, used to size alias table
 | 
						|
 | 
						|
hashlib.c
 | 
						|
	- removed initialize_hash_table; folded code into make_hash_table
 | 
						|
	- fixed copy_bucket_array to copy the `khash' member of an item
 | 
						|
	- renamed functions to be more systematic and easier for me:
 | 
						|
		make_hash_table -> hash_create
 | 
						|
		hash_table_nentries -> hash_size
 | 
						|
		copy_hash_table -> hash_copy
 | 
						|
		find_hash_item -> hash_search
 | 
						|
		remove_hash_item -> hash_remove
 | 
						|
		add_hash_item -> hash_insert
 | 
						|
		flush_hash_table -> hash_flush
 | 
						|
		dispose_hash_table -> hash_dispose
 | 
						|
		print_table_stats -> hash_pstats
 | 
						|
		get_hash_bucket -> hash_items
 | 
						|
	- changed hash_search to short-circuit if table->nentries == 0 and
 | 
						|
	  HASH_CREATE has not been passed in the flags argument
 | 
						|
 | 
						|
{alias,variables,hashcmd,pcomplib}.c
 | 
						|
	- renamed calls to all renamed functions from hashlib.c
 | 
						|
 | 
						|
builtins/kill.def
 | 
						|
	- don't drop a leading `-' in a pid argument
 | 
						|
	- call kill_pid with an explicit third argument of 1 if the pid
 | 
						|
	  argument to kill is < -1, rather than rely on the behavior of
 | 
						|
	  kill(2)
 | 
						|
 | 
						|
				   2/21
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- quoted_strchr is no longer declared `inline'
 | 
						|
	- skip_double_quoted is no longer declared `inline'
 | 
						|
	- string_extract_double_quoted is no longer declared `inline'
 | 
						|
 | 
						|
lib/readline/input.c
 | 
						|
	- rl_gather_tyi is now an `int' valued function; returns the number
 | 
						|
	  of characters read (0 or 1) or -1 on error
 | 
						|
	- if rl_gather_tyi() returns -1 to rl_read_key(), set rl_done to 1
 | 
						|
	  and return a newline; something is wrong with the input fd
 | 
						|
 | 
						|
				   2/25
 | 
						|
				   ----
 | 
						|
variables.[ch]
 | 
						|
	- IFS is now a special variable
 | 
						|
	- new special var function, sv_ifs(), called when IFS is set or unset
 | 
						|
	- call setifs() when IFS is first set in initialize_shell_variables
 | 
						|
	- call setifs() from make_local_variable and assign_in_env if
 | 
						|
	  appropriate
 | 
						|
	- if assign_in_env() is called with a var assignment like `VAR=',
 | 
						|
	  make the value in the new SHELL_VAR created be "" like
 | 
						|
	  do_assignment_internal does, since certain parts of the shell use
 | 
						|
	  a NULL value as evidence that the variable is unset (though
 | 
						|
	  attributes may have been assigned)
 | 
						|
	- if push_temp_var pushes something up to the global_variables table,
 | 
						|
	  make sure that the context is set to 0
 | 
						|
	- new function dispose_temporary_env, called by both
 | 
						|
	  dispose_used_env_vars and merge_temporary_env with different `free
 | 
						|
	  func' function pointers; calls sv_ifs after disposing the temporary
 | 
						|
	  environment
 | 
						|
	- push_exported_var now calls bind_variable_internal instead of
 | 
						|
	  bind_variable
 | 
						|
	- pop_scope and pop_context now call sv_ifs
 | 
						|
 | 
						|
subst.[ch]
 | 
						|
	- new global variables used to keep track of IFS state, to avoid
 | 
						|
	  having to call find_variable("IFS") all the time:
 | 
						|
 | 
						|
		ifs_var		the SHELL_VAR for IFS
 | 
						|
		ifs_value	ifs_var ? value_cell (ifs_var) : " \t\n"
 | 
						|
		ifs_cmap	bitmap of characters in ifs_value
 | 
						|
		ifs_firstc	first character in ifs_value
 | 
						|
 | 
						|
	- new function setifs(), sets the aforementioned ifs variables each
 | 
						|
	  time IFS is set or unset, and at nested scope exit
 | 
						|
	- instead of calling getifs() from inside subst.c, use ifs_value
 | 
						|
	- getifs() now just returns ifs_value
 | 
						|
	- use ifs_firstc in string_list_dollar_star()
 | 
						|
	- only call member() in issep() if separators is more than one char
 | 
						|
	- don't cache a bitmap every time expand_word_internal() is called;
 | 
						|
	  use ifs_cmap instead
 | 
						|
	- new macro, isifs(c), checks whether C is in ifs_cmap
 | 
						|
 | 
						|
builtins/read.def
 | 
						|
	- use issep() and isifs() macros instead of looking at $IFS directly
 | 
						|
 | 
						|
syntax.h
 | 
						|
	- make sure macros that access sh_syntaxtab cast the argument to
 | 
						|
	  `unsigned char' before array access
 | 
						|
	- new macros: issyntype(c, type) and notsyntype(c, type), check
 | 
						|
	  sh_syntaxtab[c] for a particular flag value `type'
 | 
						|
 | 
						|
				   2/26
 | 
						|
				   ----
 | 
						|
hashlib.h
 | 
						|
	- the `data' member of a `BUCKET_CONTENTS' is now a PTR_T
 | 
						|
 | 
						|
{hashlib,alias,variables,hashcmd,pcomplib}.c
 | 
						|
	- removed some casts when assigning to and using `data' member of a
 | 
						|
	  `BUCKET_CONTENTS'
 | 
						|
 | 
						|
subst.c
 | 
						|
	- in split_at_delims, call make_word_list instead of allocating and
 | 
						|
	  initializing a WORD_LIST * directly
 | 
						|
 | 
						|
make_cmd.[ch]
 | 
						|
	- add_string_to_list is now just a macro that calls make_word_list
 | 
						|
	- make_simple_command now calls make_word_list instead of allocating
 | 
						|
	  a WORD_LIST * directly
 | 
						|
 | 
						|
				   2/27
 | 
						|
				   ----
 | 
						|
copy_cmd.c
 | 
						|
	- copy_word now calls make_bare_word to allocate the copy
 | 
						|
	- copy_word_list now calls make_word_list to allocate the copy
 | 
						|
 | 
						|
shell.h
 | 
						|
	- include `ocache.h' for simple object caching
 | 
						|
	- call cmd_init() to initialize the WORD_DESC and WORD_LIST object
 | 
						|
	  caches
 | 
						|
 | 
						|
{make,dispose}_cmd.c
 | 
						|
	- allocate WORD_DESC * and WORD_LIST * vars from their respective
 | 
						|
	  ocaches, and return them to the cache when disposing
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- renamed old `waiting_for_job' variable to `queue_sigchld', which
 | 
						|
	  better reflects its intent:  sigchld_handler does not call waitchld
 | 
						|
	  if `queue_sigchld' is non-zero, it simply increments the count of
 | 
						|
	  waiting children
 | 
						|
	- cleanup_dead_jobs now just sets and clears queue_sigchld instead of
 | 
						|
	  blocking and unblocking SIGCHLD; it calls waitchld at the end if
 | 
						|
	  `sigchld' is non-zero, but that's not really necessary
 | 
						|
	- in setjstatus, only call xrealloc if `statsize' is less than the
 | 
						|
	  number of processes passed -- no reason to do it if they're the
 | 
						|
	  same
 | 
						|
 | 
						|
				   2/28
 | 
						|
				   ----
 | 
						|
sig.[ch]
 | 
						|
	- reinitialize_signals is no more; initialize_signals takes an
 | 
						|
	  argument saying whether or not we are reinitializing
 | 
						|
 | 
						|
builtins/exec.def
 | 
						|
	- reinitialize_signals() -> initialize_signals(1)
 | 
						|
 | 
						|
test.c
 | 
						|
	- fix filecomp() to work right when one file has a non-positive
 | 
						|
	  timestamp and the other file does not exist
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document what happens for test's -nt and -ot operators when one
 | 
						|
	  file operand exists and the other does not
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- if we haven't messed with SIGTTOU, just manipulate queue_sigchld
 | 
						|
	  in notify_of_job_status instead of calling sigprocmask()
 | 
						|
	- list_one_job now calls pretty_print_job directly instead of going
 | 
						|
	  through print_job
 | 
						|
	- pretty_print_job now must be called with SIGCHLD blocked or held
 | 
						|
	  instead of blocking SIGCHLD itself
 | 
						|
	- changed start_job so that it doesn't call UNBLOCK_CHILD and then
 | 
						|
	  immediately call BLOCK_CHILD again (explicitly or via last_pid()),
 | 
						|
	  call find_last_pid instead of last_pid and then UNBLOCK_CHILD
 | 
						|
	- changed wait_for_job the same way
 | 
						|
	- find_last_pid now takes a second argument: block; uses BLOCK_CHILD
 | 
						|
	  if `block' is 1, not otherwise.  Changed existing calls:
 | 
						|
		find_last_pid(j) -> find_last_pid(j, 0)
 | 
						|
		last_pid(j) -> find_last_pid(j, 1)
 | 
						|
	  `last_pid()' is now gone
 | 
						|
	- rewrote wait_for_background_pids(); it was a little strange
 | 
						|
	
 | 
						|
copy_cmd.c
 | 
						|
	- copy_if_command: don't copy null false_case commands
 | 
						|
	- copy_simple_command: don't copy a null redirection list
 | 
						|
 | 
						|
subst.c
 | 
						|
	- in get_word_from_string and list_string, just check for " \t\n"
 | 
						|
	  directly rather than calling strcmp
 | 
						|
	- in get_word_from_string and strip_trailing_ifs_whitespace, use
 | 
						|
	  isifs() instead of issep(), since they're never called with
 | 
						|
	  separators != $IFS
 | 
						|
	- change issep() to call isifs if separators is longer than one
 | 
						|
	  character, since it's never called with anything but "", " ",
 | 
						|
	  or $IFS
 | 
						|
 | 
						|
				    3/1
 | 
						|
				    ---
 | 
						|
sig.h
 | 
						|
	- enclose the BLOCK_SIGNAL macro in a do {...} while (0) loop, at it
 | 
						|
	  should have been all along
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- document that readline defaults to stdin/stdout if rl_instream/
 | 
						|
	  rl_outstream are NULL
 | 
						|
 | 
						|
lib/readline/terminal.c
 | 
						|
	- if an application is using a custom redisplay function,
 | 
						|
	  rl_resize_terminal just calls rl_forced_update_display to tell
 | 
						|
	  (*rl_redisplay_func) to update the display, otherwise call
 | 
						|
	  _rl_redisplay_after_sigwinch
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- change readline_internal_setup() so the change to vi insertion mode
 | 
						|
	  happens even if readline_echoing_p is 0
 | 
						|
	- don't print the prompt to rl_outstream in readline_internal_setup
 | 
						|
	  if we're not echoing and the caller has defined a custom redisplay
 | 
						|
	  function -- let the redisplay function deal with it
 | 
						|
 | 
						|
configure.in
 | 
						|
	- new option: --enable-mem-scramble, controls memory scrambling on
 | 
						|
	  free() (on by default; only affects use of bash malloc)
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- new option MEMSCRAMBLE, controlled by --enable-mem-scramble
 | 
						|
 | 
						|
				    3/5
 | 
						|
				    ---
 | 
						|
parse.y
 | 
						|
	- added ksh-like behavior of [...] to read_token_word:  if a `[' is
 | 
						|
	  seen in an assignment context and the previous characters in the
 | 
						|
	  token form a valid identifier, parse the [...] with
 | 
						|
	  parse_matched_pair to allow spaces (and newlines) in the subscript
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- new function bash_servicename_completion_function, for completing
 | 
						|
	  service names from /etc/services
 | 
						|
 | 
						|
bashline.h
 | 
						|
	- new extern declaration for bash_servicename_completion_function
 | 
						|
 | 
						|
builtins/complete.def
 | 
						|
	- allow new `-s/-A service' option to complete and compgen builtins
 | 
						|
 | 
						|
pcomplete.h
 | 
						|
	- new CA_SERVICE define, new ITEMLIST variable it_services
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- add callback to bash_servicename_completion_function to generate
 | 
						|
	  list of matching service names for completion
 | 
						|
 | 
						|
doc/bash.1,lib/readline/doc/rluser.texinfo
 | 
						|
	- documented new `-s/-A service' option to complete and compgen
 | 
						|
 | 
						|
				    3/6
 | 
						|
				    ---
 | 
						|
builtins/read.def
 | 
						|
	- change hard-coded `0' to new variable `fd' (initially 0) in
 | 
						|
	  preparation for adding `-u fd' option
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- bash_directory_completion_hook calls expand_prompt_string instead
 | 
						|
	  of expand_string (it does the right thing).  This keeps expansion
 | 
						|
	  errors from causing a longjmp, which shouldn't happen because of
 | 
						|
	  completion
 | 
						|
	- command_subst_completion_function was augmented very slightly to
 | 
						|
	  do filename completion on a non-command-word in a command
 | 
						|
	  substitution
 | 
						|
	- command_subst_completion_function now skips over the lcd that
 | 
						|
	  rl_completion_matches puts in matches[0] if there is more than
 | 
						|
	  one possible completion
 | 
						|
 | 
						|
				    3/7
 | 
						|
				    ---
 | 
						|
builtins/read.def
 | 
						|
	- only add the unwind_protect to free `rlbuf' if `edit' is non-zero,
 | 
						|
	  since we won't be using readline otherwise
 | 
						|
 | 
						|
lib/sh/zread.c
 | 
						|
	- renamed zread1 -> zreadintr
 | 
						|
 | 
						|
redir.c
 | 
						|
	- small change to redirection_error() to make a slightly better
 | 
						|
	  guess about the invalid file descriptor if the redirection op is
 | 
						|
	  r_duplicating_input or r_duplicating_output
 | 
						|
 | 
						|
include/stdc.h
 | 
						|
	- new macro, SH_VA_START, to encapsulate the difference between
 | 
						|
	  stdarg va_start and varargs va_start
 | 
						|
 | 
						|
{error,pcomplete,print_cmd}.c,builtins/common.c,lib/sh/snprintf.c
 | 
						|
	- use SH_VA_START
 | 
						|
 | 
						|
				    3/8
 | 
						|
				    ---
 | 
						|
builtins/read.def
 | 
						|
	- support for the ksh-like `-u fd' option
 | 
						|
 | 
						|
general.c
 | 
						|
	- new function sh_validfd(fd), returns 1 if fd is a valid open file
 | 
						|
	  descriptor
 | 
						|
 | 
						|
general.h
 | 
						|
	- extern decl for sh_validfd
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- don't call posix_readline_initialize() from initialize_readline();
 | 
						|
	  sv_strict_posix() should already have taken care of it
 | 
						|
 | 
						|
				   3/11
 | 
						|
				   ----
 | 
						|
{error,pcomplete,print_cmd}.c, builtins/common.c
 | 
						|
	- removed non-varargs versions of functions
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- if the string argument to %q has non-printing characters, call
 | 
						|
	  ansic_quote to quote it rather than sh_backslash_quote
 | 
						|
 | 
						|
variables.h
 | 
						|
	- new attribute: att_trace (and corresponding trace_p() macro).
 | 
						|
	  Functions with this attribute will inherit the DEBUG trap.
 | 
						|
	  Currently ignored for variables
 | 
						|
 | 
						|
builtins/declare.def
 | 
						|
	- new `-t' option to declare/typeset toggle the `att_trace' attribute
 | 
						|
 | 
						|
builtins/setattr.def
 | 
						|
	- check for att_trace and output `-t' flag in show_var_attributes
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- if a function is being traced (it has the `-t' attribute set),
 | 
						|
	  don't turn off the DEBUG trap when it executes
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document the new `-t' option to declare/typeset
 | 
						|
 | 
						|
				   3/12
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- don't execute the debug trap in the `cm_simple:' case of
 | 
						|
	  execute_command_internal; run it in execute_simple_command so we
 | 
						|
	  get the line number information right when executing in a shell
 | 
						|
	  function
 | 
						|
	- run a DEBUG trap before executing ((...)) arithmetic commands,
 | 
						|
	  like ksh93
 | 
						|
	- run a DEBUG trap before executing [[...]] conditional commands,
 | 
						|
	  like ksh93
 | 
						|
 | 
						|
eval.c
 | 
						|
	- add a static forward declaration for alrm_catcher()
 | 
						|
 | 
						|
general.c
 | 
						|
	- add static forward declarations for bash_special_tilde_expansions,
 | 
						|
	  unquoted_tilde_word, initialize_group_array
 | 
						|
 | 
						|
variables.h
 | 
						|
	- add extern declarations for sh_get_env_value, map_over_funcs,
 | 
						|
	  local_exported_variables
 | 
						|
 | 
						|
variables.c
 | 
						|
	- add static forward declarations for dispose_temporary_env,
 | 
						|
	  make_func_export_array
 | 
						|
 | 
						|
bashhist.c
 | 
						|
	- add static forward declaration for check_history_control
 | 
						|
 | 
						|
configure.in
 | 
						|
	- add a call to AC_CHECK_DECLS for strcpy
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add placeholder for HAVE_DECL_STRCPY define, set by configure
 | 
						|
 | 
						|
general.h
 | 
						|
	- don't declare strcpy if HAVE_DECL_STRCPY is defined with a non-zero
 | 
						|
	  value
 | 
						|
 | 
						|
sig.h
 | 
						|
	- add prototype to typedef of SigHandler
 | 
						|
 | 
						|
lib/readline/histlib.h
 | 
						|
	- removed extern declaration of strcpy()
 | 
						|
	- include string.h/strings.h directly in histlib.h instead of source
 | 
						|
	  files
 | 
						|
 | 
						|
lib/readline/{histexpand,histfile,history,histsearch}.c
 | 
						|
	- don't include string.h/strings.h now that histlib.h includes it
 | 
						|
 | 
						|
lib/tilde/tilde.c
 | 
						|
	- removed extern declaration of strcpy(), rely on string.h/strings.h
 | 
						|
 | 
						|
command.h
 | 
						|
	- four new redirection types: r_move_input, r_move_output,
 | 
						|
	  r_move_input_word, r_move_output_word, for
 | 
						|
	  [N]<&word- and [N]>&word- from ksh93
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- changes to print r_move_input[_word] and r_move_output[_word]
 | 
						|
 | 
						|
copy_cmd.c
 | 
						|
	- changes to copy r_move_input[_word] and r_move_output[_word]
 | 
						|
 | 
						|
dispose_cmd.c
 | 
						|
	- changes to dispose r_move_input_word and r_move_output_word
 | 
						|
 | 
						|
make_cmd.c
 | 
						|
	- changes to make r_move_input[_word] and r_move_output[_word] from
 | 
						|
	  r_duplicating_{input,output}_word, which is how the new redirs
 | 
						|
	  are passed by the parser
 | 
						|
 | 
						|
redir.c
 | 
						|
	- changes to make r_move_input[_word] and r_move_output[_word] do
 | 
						|
	  the right thing when executed
 | 
						|
 | 
						|
builtins/read.def
 | 
						|
	- print an error message and return failure immediately if zread/zreadc
 | 
						|
	  return < 0
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new [n]<&word- and [n]>&word- redirections
 | 
						|
 | 
						|
				   3/13
 | 
						|
				   ----
 | 
						|
lib/readline/isearch.c	
 | 
						|
	- enabled code to allow chars bound to rl_rubout to delete characters
 | 
						|
	  from the incremental search string
 | 
						|
 | 
						|
shell.c
 | 
						|
	- add `-l' invocation option to parse_shell_options; equivalent to
 | 
						|
	  `--login'
 | 
						|
	- fixed set_login_shell to check first char of base pathname of argv0
 | 
						|
	  for `-', like other shells
 | 
						|
	- move the check for make_login_shell after the call to
 | 
						|
	  parse_shell_options because the `-l' option might set it
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new `-l' invocation option
 | 
						|
 | 
						|
array.c
 | 
						|
	- new function, array_shift, shifts an array left by a specified
 | 
						|
	  number of elements
 | 
						|
	- array_walk is now compiled in by default
 | 
						|
	- array_to_assignment_string now takes a second argument: int quoted.
 | 
						|
	  If non-zero, the result is single-quoted before being returned
 | 
						|
	- quoted_array_assignment_string has been removed
 | 
						|
 | 
						|
array.[ch]
 | 
						|
	- renamed most of the array functions so that all have an array_
 | 
						|
	  prefix and are more systematically named
 | 
						|
	- array_slice now preserves the indicies from the original array
 | 
						|
	- change array_to_assign to use a static buffer for expanding the
 | 
						|
	  array indices, instead of malloc/free
 | 
						|
 | 
						|
{arrayfunc,subst,variables}.c, builtins/read.def
 | 
						|
	- changed calls to various array functions to use new names
 | 
						|
 | 
						|
lib/sh/stringvec.c, externs.h
 | 
						|
	- renamed all of the functions to have a strvec_ prefix and to have
 | 
						|
	  a more sensible name scheme
 | 
						|
	- strvec_search's arguments are now supplied in reverse order, so
 | 
						|
	  the char **array is first, like the other functions
 | 
						|
	- new function, strvec_resize, xrealloc for strvecs
 | 
						|
 | 
						|
{alias,array,bracecomp,braces,bashline,execute_cmd,findcmd,general,pathexp,
 | 
						|
pcomplete,variables}.c
 | 
						|
lib/sh/stringlist.c
 | 
						|
builtins/{bind,complete,exec,getopts,pushd,set}.def
 | 
						|
	- change calls to all functions from lib/sh/stringvec.c
 | 
						|
	- use strvec_resize where appropriate
 | 
						|
 | 
						|
externs.h
 | 
						|
	- only declare dup2() if HAVE_DUP2 is undefined or DUP2_BROKEN is
 | 
						|
	  defined
 | 
						|
 | 
						|
lib/readline/{macro,readline,util}.c, lib/readline/rlprivate.h
 | 
						|
	- _rl_defining_kbd_macro is gone, use RL_ISSTATE(RL_STATE_MACRODEF)
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- new struct readline_state, encapsulates most of readline's internal
 | 
						|
	  state in case you need reentrancy or nested calls to readline()
 | 
						|
	- extern declarations for rl_save_state, rl_restore_state
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- add (undocumented) int rl_save_state (struct readline_state *),
 | 
						|
	  int rl_restore_state (struct readline_state *)
 | 
						|
 | 
						|
				   3/14
 | 
						|
				   ----
 | 
						|
array.[ch]
 | 
						|
	- new function, array_rshift, shifts an array right by a specified
 | 
						|
	  number of elements, optionally inserting a new element 0
 | 
						|
 | 
						|
examples/bashdb/bashdb
 | 
						|
	- new single-file version of bash debugger, originally modified from
 | 
						|
	  version in bash-2.04 by Gary Vaughan (the old debugger still
 | 
						|
	  appears in examples/obashdb).  This version has a more gdb-like
 | 
						|
	  command set
 | 
						|
 | 
						|
examples/bashdb/bashdb.el
 | 
						|
	- new emacs bashdb debugger mode from Masatake YAMATO <jet@gyve.org>
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- don't make $LINENO relative to function start unless the shell is
 | 
						|
	  currently interactive -- this is what ksh93 does and what I
 | 
						|
	  believe to be the intent of POSIX.2 (this required changing some
 | 
						|
	  of the test checks because the output has changed)
 | 
						|
	- run the debug trap for each command in an arithmetic for expression,
 | 
						|
	  like ksh93 does
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- redid rl_vi_subst (binding func for `s' and `S') in terms of
 | 
						|
	  rl_vi_change_to:  `S' == `cc' and `s' == `c '.  This makes undo
 | 
						|
	  work right
 | 
						|
 | 
						|
				   3/18
 | 
						|
				   ----
 | 
						|
hashlib.c
 | 
						|
	- fixed hash_walk to return if the item function returns < 0, instead
 | 
						|
	  of breaking out of the current hash chain
 | 
						|
 | 
						|
array.c
 | 
						|
	- fixed array_walk to return if the item function returns < 0, like
 | 
						|
	  hash_walk
 | 
						|
 | 
						|
lib/sh/stringlist.c, externs.h
 | 
						|
	- new function: strlist_walk, takes a stringlist and a pointer to an
 | 
						|
	  item func.  Like other _walk funcs, if item func returns < 0 the
 | 
						|
	  walk is cancelled
 | 
						|
	- new function: strlist_flush, frees items in the contained list
 | 
						|
	  with strvec_flush
 | 
						|
	- renamed functions to have a strlist_ prefix and be more systematic
 | 
						|
 | 
						|
pcomplib.c,pcomplete.h
 | 
						|
	- removed redundant `progcomp_initialized' variable
 | 
						|
	- renamed functions to have `progcomp_' or `compspec_' prefixes
 | 
						|
	  like the hash library
 | 
						|
 | 
						|
{bashline,pcomplete}.c,builtins/complete.def
 | 
						|
	- fixed calls to stringlist functions to use new names
 | 
						|
	- fixed calls to functions in pcomplib.c to use new names
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- made the debugging code #ifdef DEBUG -- it should be mature enough
 | 
						|
 | 
						|
builtins/hash.def,parse.y
 | 
						|
	- use REVERSE_LIST(x, t) instead of (t)reverse_list(x)
 | 
						|
 | 
						|
list.c,{externs,general}.h
 | 
						|
	- renamed the list functions to have a list_ prefix, changed callers
 | 
						|
 | 
						|
externs.h,{execute_cmd,stringlib,subst}.c,builtins/common.c,lib/sh/stringvec.c
 | 
						|
	- word_list_to_argv -> strvec_from_word_list
 | 
						|
	- argv_to_word_list -> strvec_to_word_list
 | 
						|
	- moved functions to lib/sh/stringvec.c
 | 
						|
 | 
						|
lib/sh/stringvec.c
 | 
						|
	- changed name of second argument to strvec_from_word_list from `copy'
 | 
						|
	  to `alloc' so the use of `copy' between strvec_from_word_list and
 | 
						|
	  strvec_to_word_list isn't as confusing
 | 
						|
	- changed name and sense of second argument to
 | 
						|
	  strvec_to_word_list from `copy' to `alloc' for the same reason --
 | 
						|
	  now both functions agree on semantics of second argument
 | 
						|
 | 
						|
lib/sh/stringlist.c
 | 
						|
	- ditto for strlist_from_word_list and strlist_to_word_list
 | 
						|
 | 
						|
subst.c
 | 
						|
	- changed callers of strvec_to_word_list
 | 
						|
 | 
						|
				   3/19
 | 
						|
				   ----
 | 
						|
builtins/hash.def
 | 
						|
	- added `-l' option to list table or individual targets in reusable
 | 
						|
	  format
 | 
						|
	- added `-d' option to remove one or more names from the table of
 | 
						|
	  hashed commands (provides `unhash' or `unalias -t' functionality)
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new `-l' and `-d' options to `hash'
 | 
						|
 | 
						|
hashcmd.[ch]
 | 
						|
	- renamed functions to have a `phash_' prefix and follow new naming
 | 
						|
	  convention
 | 
						|
	- phash_remove now returns an int:  1 if command not in hash table,
 | 
						|
	  0 if filename removed OK
 | 
						|
 | 
						|
{findcmd,variables}.c, builtins/{hash,type}.def
 | 
						|
	- changed callers to use new names from hashcmd.c
 | 
						|
 | 
						|
builtins/common.[ch]
 | 
						|
	- new function, sh_notfound(s), prints standard `not found' message
 | 
						|
	- new function, sh_invalidid(s), prints standard `invalid identifier'
 | 
						|
	  message
 | 
						|
	- new function, sh_restricted(s), prints standard `restricted' message
 | 
						|
	  for restricted shells
 | 
						|
	- new function, sh_invalidnum(s), prints standard `invalid number'
 | 
						|
	  message
 | 
						|
	- renamed bad_option to sh_invalidopt, changed to print
 | 
						|
	  `invalid option' instead of `unknown option'
 | 
						|
	- new function, sh_invalidoptname, prints standard `invalid option
 | 
						|
	  name' for long options
 | 
						|
	- new function, sh_badjob (s), prints standard `no such job' message
 | 
						|
	- new function, sh_invalidsig (s), prints standard `invalid signal
 | 
						|
	  specification' message
 | 
						|
	- new function, sh_nojobs (s), prints standard `no job control' message
 | 
						|
	- new function, sh_needarg (s), prints standard `option requires an
 | 
						|
	  argument' message
 | 
						|
	- new function, sh_neednumarg (s), prints standard `numeric
 | 
						|
	  argument required' message
 | 
						|
	- new function, sh_badpid(s), prints standard `not a pid...' message
 | 
						|
	- new function, sh_erange (s, desc) prints standard `out of range'
 | 
						|
	  message, optionally using `desc' to say what the argument is
 | 
						|
 | 
						|
builtins/{alias,command,declare,exec,hash,type}.def
 | 
						|
	- call sh_notfound() instead of calling builtin_error directly
 | 
						|
 | 
						|
builtins/{declare,getopts,read,set,setattr}.def
 | 
						|
	- call sh_invalidid() instead of calling builtin_error directly
 | 
						|
 | 
						|
builtins/{cd,command,enable,exec,hash,source}.def
 | 
						|
	- call sh_restricted() instead of calling builtin_error directly
 | 
						|
 | 
						|
builtins/{printf,read,ulimit}.def, builtins/common.c
 | 
						|
	- call sh_invalidnum instead of calling builtin_error directly
 | 
						|
 | 
						|
builtins/{complete,declare,pushd,set}.def, builtins/bashgetopt.c
 | 
						|
	- call sh_invalidopt instead of bad_option or builtin_error directly
 | 
						|
 | 
						|
builtins/{complete,set,shopt}.def
 | 
						|
	- call sh_invalidoptname instead of builtin_error directly
 | 
						|
 | 
						|
builtins/{fg_bg,jobs,kill,wait}.def
 | 
						|
	- call sh_badjob instead of calling builtin_error directly
 | 
						|
 | 
						|
builtins/common.c, builtins/{kill,signal}.def
 | 
						|
	- call sh_invalidsig instead of calling builtin_error directly
 | 
						|
 | 
						|
builtins/{fg_bg,suspend,wait}.def
 | 
						|
	- call sh_nojobs instead of calling builtin_error directly
 | 
						|
 | 
						|
builtins/{common,bashgetopt}.c, builtins/{hash,kill}.def
 | 
						|
	- call sh_neednumarg and sh_needarg where required
 | 
						|
 | 
						|
builtins/{kill,wait}.def
 | 
						|
	- call sh_badpid where required
 | 
						|
 | 
						|
builtins/{break,fc,history,pushd,shift,ulimit,umask}.def
 | 
						|
	- call sh_erange where appropriate
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- new static function, printf_erange, prints standard out-of-range
 | 
						|
	  warning message
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- changed so that calls to sh_invalidopt always include the leading
 | 
						|
	  `+' or `-'
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- changed SHOPT_ERROR macro to shopt_error function
 | 
						|
 | 
						|
builtins/bind.def
 | 
						|
	- regularized error messages to `bind: object: error string' like
 | 
						|
	  other error messages
 | 
						|
 | 
						|
builtins.h
 | 
						|
	- the `short_doc' member of a `struct builtin' is now of type
 | 
						|
	  `const char *'
 | 
						|
	- the strings in `long_doc' array of a struct builtin are now const
 | 
						|
 | 
						|
builtins/mkbuiltins.c
 | 
						|
	- changes for new `const' members of struct builtin
 | 
						|
 | 
						|
				   3/20
 | 
						|
				   ----
 | 
						|
lib/readline/histfile.c
 | 
						|
	- use pointers instead of indexing into buffer when reading the
 | 
						|
	  contents of the history file in read_history_range and
 | 
						|
	  history_truncate_file
 | 
						|
 | 
						|
				   3/21
 | 
						|
				   ----
 | 
						|
lib/readline/histfile.c
 | 
						|
	- new file, with code to mmap the history file for reading and
 | 
						|
	  writing (depends on HAVE_MMAP, currently nothing checks for that)
 | 
						|
 | 
						|
				   3/25
 | 
						|
				   ----
 | 
						|
error.[ch]
 | 
						|
	- new function, err_badarraysub(s), calls report_error with standard
 | 
						|
	  `bad array subscript' message
 | 
						|
	- new function, err_unboundvar(s), calls report_error with standard
 | 
						|
	  `unbound variable' message
 | 
						|
	- new function, err_readonly(s), calls report_error with standard
 | 
						|
	  `readonly variable' message
 | 
						|
 | 
						|
{arrayfunc,subst}.c
 | 
						|
	- call err_badarraysub where appropriate
 | 
						|
 | 
						|
{expr,subst}.c
 | 
						|
	- call err_unboundvar where appropriate
 | 
						|
 | 
						|
{arrayfunc,variables}.c
 | 
						|
	- call err_readonly where appropriate
 | 
						|
 | 
						|
shell.c
 | 
						|
	- changed text of bad option error messages to be the same as that
 | 
						|
	  printed for builtin errors
 | 
						|
 | 
						|
builtins/common.c
 | 
						|
	- changed sh_invalidopt to print the invalid option before the rest
 | 
						|
	  of the error message (required some tests to be modified)
 | 
						|
	- new function, sh_readonly, calls builtin_error with standard
 | 
						|
	  `readonly variable' message
 | 
						|
 | 
						|
variables.c,builtins/declare.def
 | 
						|
	- call sh_readonly where appropriate
 | 
						|
 | 
						|
lib/sh/stringvec.c
 | 
						|
	- added strvec_remove (sv, s), removes S from SV and shuffles rest of
 | 
						|
	  elements down 1
 | 
						|
 | 
						|
lib/sh/stringlist.c
 | 
						|
	- added strlist_remove(sl, s), just calls strvec_remove on the
 | 
						|
	  component list
 | 
						|
 | 
						|
externs.h
 | 
						|
	- new extern declarations for strvec_remove and strlist_remove
 | 
						|
	- fixed extern declaration for strvec_search; the arguments were
 | 
						|
	  reversed (unimportant, it's not compiled into the shell)
 | 
						|
 | 
						|
subst.c
 | 
						|
	- change param_expand to call quote_escapes on values retrieved when
 | 
						|
	  expanding the positional parameters
 | 
						|
	- change parameter_brace_expand_word to quote escapes on values
 | 
						|
	  retrieved when expanding the positional parameters
 | 
						|
	- fix parameter_brace_substring to quote escape characters on unquoted
 | 
						|
	  substrings extracted from variable values (needed to separate case
 | 
						|
	  VT_VARIABLE from VT_ARRAYMEMBER for this, since, because
 | 
						|
	  get_var_and_type calls array_value for VT_ARRAYMEMBER, we need to
 | 
						|
	  skip over quoted characters in an already-appropriately-quoted
 | 
						|
	  string to find the substring we want)
 | 
						|
	- fix parameter_brace_substring to quote escape characters in the
 | 
						|
	  value returned by pos_params when expanding subsets of the
 | 
						|
	  positional parameters and not within double quotes (in which case
 | 
						|
	  pos_params() quotes the string for us)
 | 
						|
	- fix parameter_brace_substring to quote escape characters in the
 | 
						|
	  value returned by array_subrange when expanding subsets of an
 | 
						|
	  array and not within double quotes (in which case
 | 
						|
	  array_subrange() quotes the string for us)
 | 
						|
	- new function, quoted_strlen(s), does strlen(s) while skipping over
 | 
						|
	  characters quoted with CTLESC (#ifdef INCLUDE_UNUSED, since it's
 | 
						|
	  not used yet)
 | 
						|
	- changed pos_params() so it always returns a list whose members are
 | 
						|
	  quoted strings if (quoted&(Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- fix array_value to consistently call quote_escapes, even when a
 | 
						|
	  non-array variable is being subscripted with element 0, in which
 | 
						|
	  case we return the variable value
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- make the for_echo parameter to ansicstr a `flags' parameter that
 | 
						|
	  has its old `for echo' meaning if flags&1 is non-zero (which is
 | 
						|
	  consistent with the old code)
 | 
						|
	- Added code to the `flags' parameter to ansicstr so that if flags&2
 | 
						|
	  is non-zero, CTLESC and CTLNUL are escaped with CTLESC in the
 | 
						|
	  expanded string
 | 
						|
	- change ansiexpand() to call ansicstr with a `flags' parameter of 2
 | 
						|
 | 
						|
				   3/26
 | 
						|
				   ----
 | 
						|
lib/readline/histfile.c
 | 
						|
	- when reading and writing the history file, use malloc instead of
 | 
						|
	  xmalloc and handle failures gracefully, so the application doesn't
 | 
						|
	  abort if the history file or history list is too big
 | 
						|
 | 
						|
				   3/27
 | 
						|
				   ----
 | 
						|
arrayfunc.c
 | 
						|
	- changed array_value_internal to take an additional `int *'
 | 
						|
	  parameter, in which is returned the type of array indexing
 | 
						|
	  performed (array[@] vs. array or array[index])
 | 
						|
	- changed array_value and get_array_value to take a corresponding
 | 
						|
	  extra parameter and pass it to array_value_internal
 | 
						|
	- changed array_value_internal to no longer return newly-allocated
 | 
						|
	  memory or quote CTLESC and CTLNUL in the returned string if
 | 
						|
	  `simple' array indexing (subscript not `@' or `*') is being
 | 
						|
	  performed.  This makes it more like a variable lookup
 | 
						|
 | 
						|
arrayfunc.h
 | 
						|
	- changed prototypes for array_value and get_array_value
 | 
						|
 | 
						|
expr.c
 | 
						|
	- added new parameter to call to get_array_value in expr_streval
 | 
						|
	- don't need to free memory returned by get_array_value any more
 | 
						|
 | 
						|
subst.c
 | 
						|
	- quote_escapes now works with multibyte characters
 | 
						|
	- dequote_string now works with multibyte characters
 | 
						|
	- dequote_escapes is now needed, so it's compiled in, and it
 | 
						|
	  now works with multibyte characters
 | 
						|
	- remove_quoted_escapes now just calls dequote_escapes and copies the
 | 
						|
	  result over the argument string
 | 
						|
	- remove_quoted_nulls now returns its char * argument, parallels
 | 
						|
	  remove_quoted_escapes
 | 
						|
	- parameter_brace_expand_word now passes the new argument to
 | 
						|
	  array_value and quotes CTLESC and CTLNUL in the result if it's a
 | 
						|
	  `simple' array expansion by calling quote_escapes
 | 
						|
	- get_var_and_type now returns VT_ARRAYMEMBER for references like
 | 
						|
	  ${array} where `array' is an array variable (just like ${array[0]}).
 | 
						|
	  Documented (in comment) that a VT_VARIABLE return value means that
 | 
						|
	  quote_escapes has been called at some point
 | 
						|
	- changed callers of get_var_and_type to no longer free value if
 | 
						|
	  VT_ARRAYMEMBER is returned as type
 | 
						|
	- changed parameter_brace_substring and parameter_brace_patsub to
 | 
						|
	  call dequote_escapes on the value from get_var_and_type if the
 | 
						|
	  type is VT_VARIABLE, since the substring and pattern substitution
 | 
						|
	  code doesn't understand CTLESC quoting
 | 
						|
	- parameter_brace_substring no longer needs to call quoted_substring
 | 
						|
	  for the VT_ARRAYMEMBER case
 | 
						|
	- changed parameter_brace_patsub to call quote_escapes on the result
 | 
						|
	  of pat_subst for the VT_VARIABLE and VT_ARRAYMEMBER cases, and to
 | 
						|
	  quote the returned string in the VT_ARRAYVAR and VT_POSPARAMS cases
 | 
						|
	  if the `MATCH_QUOTED' flag isn't set (if it is, the pattern
 | 
						|
	  substitution functions perform any necessary quoting)
 | 
						|
	- quoted_substring is no longer used; it's now #ifdef INCLUDE_UNUSED
 | 
						|
 | 
						|
lib/malloc/mstats.h
 | 
						|
	- new member in _malstats: u_bits32_t bytesreq, the total number of
 | 
						|
	  bytes requested by the caller via calls to malloc() and realloc()
 | 
						|
 | 
						|
lib/malloc/stats.c
 | 
						|
	- print bytesreq member in _print_malloc_stats
 | 
						|
	- don't print statistics for buckets for which nmal == 0 (no mallocs)
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- modified internal_malloc, internal_realloc to keep running total of
 | 
						|
	  number of bytes requested by calling application
 | 
						|
 | 
						|
shell.c
 | 
						|
	- sh_exit is now compiled in; exit_shell calls sh_exit
 | 
						|
 | 
						|
error.c
 | 
						|
	- changed fatal_error, report_error, parser_error to call sh_exit
 | 
						|
 | 
						|
				   3/28
 | 
						|
				   ----
 | 
						|
subst.[ch]
 | 
						|
	- changed Q_NOQUOTE to Q_PATQUOTE; it makes the intent more clear
 | 
						|
 | 
						|
subst.c
 | 
						|
	- moved code from parameter_brace_expand into a new function that
 | 
						|
	  dispatches for pattern substitution: parameter_brace_remove_pattern
 | 
						|
	- changed structure of parameter_brace_remove_pattern to be like
 | 
						|
	  parameter_brace_patsub and its ilk:  call get_var_and_type to
 | 
						|
	  isolate the variable name, move the pattern isolation code out of
 | 
						|
	  the various *_remove_pattern functions into
 | 
						|
	  parameter_brace_remove_pattern and pass the results to the various
 | 
						|
	  functions, use a switch on the return value from get_var_and_type
 | 
						|
	  to decide which function to call, regularized the arguments to the
 | 
						|
	  separate pattern removal functions
 | 
						|
	- parameter_brace_remove_pattern now properly quotes escape chars in
 | 
						|
	  the returned value
 | 
						|
	- changed get_var_and_type to call dequote_escapes on the `value'
 | 
						|
	  parameter for case VT_VARIABLE and return the result in *valp,
 | 
						|
	  so the calling functions don't have to do it themselves; changed
 | 
						|
	  callers appropriately
 | 
						|
	- fixed getpattern() where it broke posix compliance:  if you enclose
 | 
						|
	  a pattern removal spec in double quotes, the outer double quotes
 | 
						|
	  have no effect on the pattern (POSIX.1-200x 2.6.2).  This uncovered
 | 
						|
	  a bug in the test suite (!)
 | 
						|
 | 
						|
pathexp.c
 | 
						|
	- fixed a problem with quote_string_for_globbing where it would change
 | 
						|
	  consecutive CTLESC chars all to \ instead of changing every other
 | 
						|
	  quoted char
 | 
						|
 | 
						|
				   3/31
 | 
						|
				   ----
 | 
						|
lib/malloc/{malloc,stats}.c
 | 
						|
	- moved declaration of _mstats to malloc.c so stats.o doesn't get
 | 
						|
	  linked into the shell if the stats functions aren't called
 | 
						|
 | 
						|
				    4/2
 | 
						|
				    ---
 | 
						|
lib/glob/smatch.c
 | 
						|
	- introduce `XCHAR' define, which is the type of arguments passed to
 | 
						|
	  strcoll/strcmp/strlen and their wide-character equivalents, added
 | 
						|
	  appropriate casts
 | 
						|
	- static arrays in single-byte version of rangecmp() are `char', not
 | 
						|
	  `unsigned char', so compilers don't complain about calls to strcoll
 | 
						|
 | 
						|
lib/glob/sm_loop.c
 | 
						|
	- casts for `XCHAR' and `XCHAR *' arguments to libc functions
 | 
						|
	- use prototype declaration for BRACKMATCH if `PROTOTYPES' is defined
 | 
						|
	  to avoid problems with type promotion (unsigned char -> int)
 | 
						|
 | 
						|
lib/glob/collsyms.h
 | 
						|
	- `name' member of struct _COLLSYM is now of type `XCHAR *', since
 | 
						|
	  some compilers don't like `unsigned char *' initializers from
 | 
						|
	  constant strings
 | 
						|
 | 
						|
[bash-2.05b-alpha1 released]
 | 
						|
 | 
						|
				    4/3
 | 
						|
				    ---
 | 
						|
builtins/{evalstring.c,common.h}
 | 
						|
	- new flag for parse_and_execute, SEVAL_NOFREE, means to not free
 | 
						|
	  the argument string when finished
 | 
						|
 | 
						|
lib/readline/text.c
 | 
						|
	- fixed a trivial typo in _rl_insert_char when reading multibyte
 | 
						|
	  char sequences
 | 
						|
	- replace calls to ding() with rl_ding()
 | 
						|
 | 
						|
include/chartypes.h
 | 
						|
	- remove SIGN_EXTEND_CHAR and TOASCII macros; they're unused
 | 
						|
 | 
						|
make_cmd.c
 | 
						|
	- include dispose_cmd.h for extern function declarations
 | 
						|
 | 
						|
lib/glob/glob.c
 | 
						|
	- include `shmbutil.h' and `xmalloc.h' for extern function declarations
 | 
						|
 | 
						|
lib/glob/smatch.c
 | 
						|
	- include `xmalloc.h' for extern function declarations
 | 
						|
 | 
						|
shell.c
 | 
						|
	- fix maybe_make_restricted to use its argument instead of global
 | 
						|
	  `shell_name'
 | 
						|
 | 
						|
version.c
 | 
						|
	- update copyright message to include this year
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- fixes from Jiro SEKIBA <jir@yamato.ibm.com> to fix autowrapping
 | 
						|
	  when using multibyte characters
 | 
						|
 | 
						|
lib/glob/sm_loop.c
 | 
						|
	- fixed a problem in BRACKMATCH where not enough memory was allocated
 | 
						|
	  to hold a multibyte character when parsing POSIX.2 char class names
 | 
						|
 | 
						|
support/config.{guess,sub}
 | 
						|
	- updated via patch from Paul Eggert with latest GNU additions
 | 
						|
 | 
						|
variables.c
 | 
						|
	- var_lookup should use its `vcontext' argument instead of
 | 
						|
	  unconditionally using `shell_variables'
 | 
						|
 | 
						|
				    4/4
 | 
						|
				    ---
 | 
						|
builtins/bind.def,doc/{bash.1,bashref.texi}
 | 
						|
	- changed the usage summary and help text to make it clear that any
 | 
						|
	  readline command that may appear in ~/.inputrc may be supplied as
 | 
						|
	  one of the non-option arguments to `bind'
 | 
						|
 | 
						|
builtins/mkbuiltins.c
 | 
						|
	- added support for `-H' option, which means to write long documentation
 | 
						|
	  for each builtin to a separate file in the `helpfiles' directory
 | 
						|
 | 
						|
builtins/Makefile.in
 | 
						|
	- new target `helpdoc', just creates long doc files in helpfiles
 | 
						|
	  directory
 | 
						|
 | 
						|
lib/sh/zcatfd.c
 | 
						|
	- new file, with zcatfd(int fd, int ofd, char *fn); dumps data from
 | 
						|
	  FD to OFD
 | 
						|
 | 
						|
Makefile.in,lib/sh/Makefile.in
 | 
						|
	- added zcatfd.c, zcatfd.o member of libsh.a
 | 
						|
 | 
						|
builtins/evalstring.c
 | 
						|
	- changed cat_file to call zcatfd(fd, 1, fn)
 | 
						|
 | 
						|
builtins/{shopt,colon}.def
 | 
						|
	- removed the $DOCNAME directive for `shopt', `true', and `false';
 | 
						|
	  just use the names
 | 
						|
	- changed $DOCNAME for `:' to just be `colon' instead of
 | 
						|
	  `colon_builtin'
 | 
						|
 | 
						|
builtins/reserved.def
 | 
						|
	- added help entries for ((, [[, `for (('
 | 
						|
 | 
						|
builtins/let.def
 | 
						|
	- add id++, id--, ++id, --id, ** to help text
 | 
						|
 | 
						|
				    4/8
 | 
						|
				    ---
 | 
						|
builtins/bashgetopt.[ch]
 | 
						|
	- changed to allow options beginning with `+', enabled by a leading
 | 
						|
	  `+' in the option string
 | 
						|
	- new variable, list_opttype, set to `-' or `+'
 | 
						|
 | 
						|
builtins/{common.c,{builtin,eval,exit,fg_bg,let,printf,pushd,return,source,wait}.def
 | 
						|
	- changes to allow a `--' option for every builtin that accepts
 | 
						|
	  operands but not options, as per posix.1-2001
 | 
						|
 | 
						|
builtins/{declare,setattr}.def
 | 
						|
	- use internal_getopt for parsing options, now that it supports `+'
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- use internal_getopt for initial option parse, now that it supports
 | 
						|
	  a leading `+'
 | 
						|
 | 
						|
 | 
						|
{configure,Makefile}.in, builtins/{Makefile.in,help.def,mkbuiltins.c}
 | 
						|
	- support for a new configure option, ``--enable-separate-helpfiles'',
 | 
						|
	  moves the `long' help text to separate help files, installed by
 | 
						|
	  default into ${datadir}/bash, one file per builtin.  Off by
 | 
						|
	  default -- it saves 47K, but it's only 47K, and it's in the text
 | 
						|
	  segment
 | 
						|
 | 
						|
flags.c
 | 
						|
	- build internal_getopt() option string argument from flags array at
 | 
						|
	  runtime in shell.c
 | 
						|
 | 
						|
shell.c
 | 
						|
	- new variable to control writing malloc stats at exit:
 | 
						|
	  malloc_trace_at_exit, 0 by default
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- heavily updated:
 | 
						|
		o partial page allocated on first call to malloc to make
 | 
						|
		  subsequent sbrks page-aligned no longer wasted
 | 
						|
		o begin and end range guards are now the same value: the chunk
 | 
						|
		  requested
 | 
						|
		o coalescing code was changed to attempt to coalesce first two
 | 
						|
		  adjacent blocks on the free list; enabled by default
 | 
						|
		o blocks of size 32 are now candidates for larger block
 | 
						|
		  splitting, since 32 is the most popular size
 | 
						|
		o blocks of size 32 are now candidates for smaller block
 | 
						|
		  coalescing
 | 
						|
		o the IN_BUCKET check was changed to just make sure that the
 | 
						|
		  size isn't too big for the bucket, since the `busy block'
 | 
						|
		  checking code may increase the bucket by one or more,
 | 
						|
		  meaning that the old check would fail and cause a panic when
 | 
						|
		  a chunk allocated in such a way was freed
 | 
						|
		o bin sizes are now precomputed and looked up in an array
 | 
						|
		  rather than being computed at runtime
 | 
						|
		o moved the _mstats declaration here to avoid the stats code
 | 
						|
		  being linked in even when no stats functions were called
 | 
						|
		  (only matters if MALLOC_DEBUG is defined)
 | 
						|
		o malloc now keeps track of the address of the top of the heap
 | 
						|
		  and will return large chunks to the system with calls to
 | 
						|
		  sbrk with a negative argument when freeing the top chunk.
 | 
						|
		  Two thresholds:  LESSCORE_FRC means to unconditionally return
 | 
						|
		  memory to the system; LESSCORE_MIN means to return memory if
 | 
						|
		  there's at least one block already on the free list
 | 
						|
 | 
						|
lib/malloc/mstats.h
 | 
						|
	- stats struct now keeps track of number of block coalesces by bin,
 | 
						|
	  and the number of times memory was returned to the system by bin
 | 
						|
 | 
						|
lib/malloc/stats.c
 | 
						|
	- trace_malloc_stats now takes a second argument: the name of the file
 | 
						|
	  to write to.  The first `%p' in the template file name is replaced
 | 
						|
	  by the pid
 | 
						|
 | 
						|
				    4/9
 | 
						|
				    ---
 | 
						|
lib/malloc/imalloc.h
 | 
						|
	- added some macros derived from dlmalloc and glibc malloc to inline
 | 
						|
	  memcpy and memset if the requested size is <= 32 bytes
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- use MALLOC_MEMSET instead of memset in internal_{malloc,free}
 | 
						|
 | 
						|
include/ocache.h
 | 
						|
	- use OC_MEMSET (variant of MALLOC_MEMSET) in ocache_free
 | 
						|
 | 
						|
configure.in, config.h.in
 | 
						|
	- check for getservent(), define HAVE_GETSERVENT if found
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- punt immediately from bash_servicename_completion_function if
 | 
						|
	  HAVE_GETSERVENT is not defined (cygwin seems to not define it)
 | 
						|
	- include "input.h" for extern save_token_state() and
 | 
						|
	  restore_token_state() declarations
 | 
						|
	- change bash_execute_unix_command to call parse_and_execute with
 | 
						|
	  SEVAL_NOHIST flag so the command doesn't get saved on the history
 | 
						|
	  list
 | 
						|
	- change bash_execute_unix_command to save and restore the current
 | 
						|
	  command line count and the token state (last_read_token, etc.).
 | 
						|
	  Everything else is saved by either parse_and_execute directly or
 | 
						|
	  the call it makes to push_stream().  The shell_input_line stuff
 | 
						|
	  doesn't need to be saved and restored; it's not computed until
 | 
						|
	  readline() returns
 | 
						|
 | 
						|
				   4/10
 | 
						|
				   ----
 | 
						|
lib/glob/glob.[ch]
 | 
						|
	- glob_filename and glob_vector now take an additional `flags' arg
 | 
						|
	- define GX_MARKDIRS as possible flag value for glob_filename and
 | 
						|
	  glob_vector
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- fixed some bugs with handling of `g' and `G' formats
 | 
						|
	- make sure numtoa returns the fractional part correctly when passed 0
 | 
						|
	- implemented thousands grouping for `'' flag character
 | 
						|
 | 
						|
lib/sh/rename.c
 | 
						|
	- a few changes to make it more bulletproof
 | 
						|
 | 
						|
				   4/11
 | 
						|
				   ----
 | 
						|
lib/glob/glob.c
 | 
						|
	- added the couple of dozen lines of code to glob_dir_to_array to
 | 
						|
	  finish implementing GX_MARKDIRS
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- changed unset builtin so that it no longer considers unsetting an
 | 
						|
	  unset variable or function to be an error
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- fix to rl_redisplay for a problem which caused display to be messed
 | 
						|
	  up when the last line of a multi-line prompt (possibly containing
 | 
						|
	  invisible characters) was longer than the screen width
 | 
						|
 | 
						|
				   4/15
 | 
						|
				   ----
 | 
						|
aclocal.m4
 | 
						|
	- use AC_DEFINE_UNQUOTED in BASH_SYS_DEFAULT_MAIL_DIR instead of
 | 
						|
	  enumerating all of the possible values and using AC_DEFINE
 | 
						|
 | 
						|
				   4/16
 | 
						|
				   ----
 | 
						|
Makefile.in, {builtins,support}/Makefile.in
 | 
						|
	- new variables, CFLAGS_FOR_BUILD and CPPFLAGS_FOR_BUILD, substituted
 | 
						|
	  by `configure'
 | 
						|
	- changed CCFLAGS_FOR_BUILD to BASE_CCFLAGS, removing $(CPPFLAGS);
 | 
						|
	  CCFLAGS and CCFLAGS_FOR_BUILD now include $(BASE_CCFLAGS) with
 | 
						|
	  (possibly) different values for CPPFLAGS and CFLAGS 
 | 
						|
	- GCC_LINT_CFLAGS now includes $(BASE_CCFLAGS) and $(CPPFLAGS)
 | 
						|
	  instead of CCFLAGS_FOR_BUILD
 | 
						|
	- new variable, LDFLAGS_FOR_BUILD, right now equivalent to LDFLAGS
 | 
						|
	- remove $(CPPFLAGS) from recipes for buildversion, mksignames, and
 | 
						|
	  mksyntax
 | 
						|
 | 
						|
configure.in
 | 
						|
	- compute and substitute CFLAGS_FOR_BUILD, CPPFLAGS_FOR_BUILD, and
 | 
						|
	  LDFLAGS_FOR_BUILD
 | 
						|
	- changed qnx to use LOCAL_LDFLAGS and LOCAL_LIBS instead of putting
 | 
						|
	  everything in LOCAL_LDFLAGS
 | 
						|
 | 
						|
builtins/Makefile.in
 | 
						|
	- remove $(PROFILE_FLAGS) from recipe for building `mkbuiltins'
 | 
						|
	- use LDFLAGS_FOR_BUILD instead of LDFLAGS in recipe for building
 | 
						|
	  `mkbuiltins'
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- use $(CC_FOR_BUILD) and $(CCFLAGS_FOR_BUILD) to build auxiliary
 | 
						|
	  test programs (printenv, recho, zecho)
 | 
						|
 | 
						|
support/Makefile.in
 | 
						|
	- use CC_FOR_BUILD and CCFLAGS_FOR_BUILD in recipe for building
 | 
						|
	  `man2html'
 | 
						|
 | 
						|
lib/tilde/Makefile.in
 | 
						|
	- substitute PROFILE_FLAGS, use PROFILE_FLAGS in $(CCFLAGS)
 | 
						|
 | 
						|
				   4/25
 | 
						|
				   ----
 | 
						|
Makefile.in, configure.in
 | 
						|
	- moved RELSTATUS to configure.in; configure substitutes it into
 | 
						|
	  the generated Makefile
 | 
						|
 | 
						|
lib/sh/snprintf.c
 | 
						|
	- fix wchars() to deal with systems where MB_CUR_MAX is not a
 | 
						|
	  constant expression
 | 
						|
 | 
						|
				    5/2
 | 
						|
				    ---
 | 
						|
lib/sh/shquote.c
 | 
						|
	- add `,' to list of chars that are backslash-quoted.  It doesn't
 | 
						|
	  hurt normal usage and prevents filenames with commas from being
 | 
						|
	  inappropriately split by brace expansion after using
 | 
						|
	  complete-into-braces
 | 
						|
 | 
						|
				    5/6
 | 
						|
				    ---
 | 
						|
lib/sh/xstrchr.c
 | 
						|
	- we only need the check of MB_CUR_MAX and the slow code for a
 | 
						|
	  few encodings, and even then only for a subset of the charset
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- some speedups for skipsubscript and multibyte chars from Bruno Haible
 | 
						|
 | 
						|
locale.c
 | 
						|
	- changed set_lang to call setlocale(LC_ALL, ...) if LC_ALL doesn't
 | 
						|
	  already have a value, but doesn't change any shell variables
 | 
						|
 | 
						|
include/shmbutil.h
 | 
						|
	- major speedups from Bruno Haible, mostly concerned with reducing
 | 
						|
	  the number of strlen(3) calls
 | 
						|
 | 
						|
subst.c
 | 
						|
	- change callers of macros in shmbutil.h to add extra argument as
 | 
						|
	  necessary
 | 
						|
	- skip_single_quoted and skip_double_quoted take another argument:
 | 
						|
	  the length of the string; mostly useful when using multibyte chars
 | 
						|
	- many speedups from precomputing string lengths at function start
 | 
						|
	- fixed a small bug in de_backslash in the midst of rewriting for
 | 
						|
	  better efficiency
 | 
						|
 | 
						|
{braces,make_cmd,pathexp}.c
 | 
						|
	- change callers of macros in shmbutil.h to add extra argument as
 | 
						|
	  necessary
 | 
						|
 | 
						|
pathexp.c
 | 
						|
	- fix a one-too-far problem with multibyte chars in
 | 
						|
	  unquoted_glob_pattern_p
 | 
						|
 | 
						|
braces.c
 | 
						|
	- brace_gobbler takes a new argument, the length of the passed string
 | 
						|
	- expand_amble takes a new argument, the length of the passed string
 | 
						|
 | 
						|
				    5/7
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- modified remove_quoted_nulls to eliminate the memory allocation and
 | 
						|
	  do the copy in place using the same strategy as de_backslash
 | 
						|
 | 
						|
lib/readline/{rldefs.h,complete.c}
 | 
						|
	- new define RL_QF_OTHER_QUOTE, so _rl_find_completion_word can note
 | 
						|
	  that it found a quoting character other than \'" that appears in
 | 
						|
	  rl_completer_quote_characters
 | 
						|
 | 
						|
				    5/9
 | 
						|
				    ---
 | 
						|
jobs.c
 | 
						|
	- save and restore old value of jobs_list_frozen when calling trap
 | 
						|
	  handlers from set_job_status_and_cleanup to avoid seg faults when
 | 
						|
	  running recursive trap handlers
 | 
						|
 | 
						|
				   5/10
 | 
						|
				   ----
 | 
						|
builtins/common.h
 | 
						|
	- new #defines to use for value of changed_dollar_vars (provides
 | 
						|
	  information about the caller who wants to blow away the old dollar
 | 
						|
	  variables)
 | 
						|
 | 
						|
builtins/common.c
 | 
						|
	- changed set_dollar_vars_changed to set changed_dollar_vars to one
 | 
						|
	  of the ARGS_* values depending on the caller and environment
 | 
						|
 | 
						|
builtins/source.def
 | 
						|
	- source restores the positional parameters unless the `set' builtin
 | 
						|
	  was called to specify a new set while not executing a shell function
 | 
						|
 | 
						|
				   5/13
 | 
						|
				   ----
 | 
						|
POSIX
 | 
						|
	- new file, was in CWRU/POSIX.NOTES
 | 
						|
 | 
						|
doc/{Makefile.in,Makefile}
 | 
						|
	- changed `posix' rule to modify ../POSIX
 | 
						|
 | 
						|
doc/mkposix
 | 
						|
	- write to `POSIX' by default
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- when ansicstr is parsing a format string for `echo -e' (or the
 | 
						|
	  equivalent xpg_echo option is enabled), obey the POSIX-2001/SUSv3
 | 
						|
	  standard and accept 0-3 octal digits after a leading `0'
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- updated `echo' description to note that up to three octal digits
 | 
						|
	  are now accepted following `\0'
 | 
						|
 | 
						|
				   5/16
 | 
						|
				   ----
 | 
						|
doc/Makefile.in
 | 
						|
	- remove the generated documentation on `make distclean' if the
 | 
						|
	  build directory and source directory are not the same
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- descend into `support' subdirectory on a `make clean' and
 | 
						|
	  `make distclean'
 | 
						|
	- remove parser-built, y.tab[ch] on a `make distclean' if the build
 | 
						|
	  directory and source directory are not the same
 | 
						|
 | 
						|
support/Makefile.in
 | 
						|
	- support various `clean' targets and remove man2html.o and man2html
 | 
						|
 | 
						|
{configure,Makefile}.in
 | 
						|
	- move values for DEBUG and MALLOC_DEBUG into configure.in; on by
 | 
						|
	  default for development versions; off by default for releases
 | 
						|
	  (off for profiling, too)
 | 
						|
 | 
						|
				   5/21
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- modified the grammar to allow a simple_list followed by yacc_EOF
 | 
						|
	  to terminate a command.  This fixes problems with things like
 | 
						|
	  a backslash-newline at the end of an `eval'd string
 | 
						|
	- change handle_eof_input_unit() to reset the token state before
 | 
						|
	  calling prompt_again(), in case the prompt to be evaluated contains
 | 
						|
	  a command substitution
 | 
						|
 | 
						|
				   5/23
 | 
						|
				   ----
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- fix `r' command (rl_vi_change_char) when HANDLE_MULTIBYTE is defined
 | 
						|
	  but MB_CUR_MAX == 1
 | 
						|
 | 
						|
				   5/24
 | 
						|
				   ----
 | 
						|
lib/malloc/watch.c
 | 
						|
	- don't try to print `file' argument to _watch_warn if it's null
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- changed guard checking code in internal_{malloc,free,realloc} to
 | 
						|
	  access memory as (char *) and copy into a union instead of
 | 
						|
	  casting and dereferencing a pointer to u_bits32_t, since that
 | 
						|
	  results in unaligned accesses which will cause Sparcs to upchuck
 | 
						|
 | 
						|
				   5/30
 | 
						|
				   ----
 | 
						|
[bash-2.05b-beta1 released]
 | 
						|
 | 
						|
lib/readline/text.c
 | 
						|
	- fixed a problem with rl_transpose_chars on systems supporting
 | 
						|
	  multibyte characters with a locale that doesn't have any multibyte
 | 
						|
	  chars
 | 
						|
 | 
						|
				    6/4
 | 
						|
				    ---
 | 
						|
expr.c
 | 
						|
	- fix a/=0 and a%=0 to throw evaluation errors rather than core dumps
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- fix core dump when line wrapping a multibyte character (line
 | 
						|
	  accidentally dropped from the original patch)
 | 
						|
 | 
						|
lib/readline/mbutil.c
 | 
						|
	- fix reversed return value from _rl_is_mbchar_matched; fixes problem
 | 
						|
	  with backward-char-search
 | 
						|
 | 
						|
				   6/10
 | 
						|
				   ----
 | 
						|
lib/sh/getenv.c
 | 
						|
	- fix getenv to not free value returned by find_tempenv_variable
 | 
						|
	- add setenv, putenv, unsetenv for completeness
 | 
						|
 | 
						|
				   6/12
 | 
						|
				   ----
 | 
						|
shell.c
 | 
						|
	- change init_noninteractive to init expand_aliases to the value of
 | 
						|
	  posixly_correct
 | 
						|
	- don't initialize expand_aliases to posixly_correct anywhere else.
 | 
						|
	  This allows the -O expand_aliases invocation option to work correctly
 | 
						|
 | 
						|
general.c
 | 
						|
	- fix move_to_high_fd to not try the dup2 unless the fd loop results
 | 
						|
	  in an fd > 3; just return the passed file descriptor otherwise
 | 
						|
	- use HIGH_FD_MAX, defined in general.h, instead of hard-coded 256
 | 
						|
	  as highest file descriptor to try
 | 
						|
 | 
						|
subst.c
 | 
						|
	- in process_substitute, call move_to_high_fd with `maxfd' parameter
 | 
						|
	  of -1 instead of 64, so move_to_high_fd will use its maximum
 | 
						|
 | 
						|
				   6/21
 | 
						|
				   ----
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- don't bother calling MALLOC_MEMSET if the requested size is 0
 | 
						|
 | 
						|
builtins/setattr.def
 | 
						|
	- note in short doc that export and readonly can take assignment
 | 
						|
	  statements as arguments
 | 
						|
 | 
						|
error.c
 | 
						|
	- new function, error_prolog(), to capture common error message
 | 
						|
	  prefix code (except for parser errors)
 | 
						|
 | 
						|
				   6/25
 | 
						|
				   ----
 | 
						|
aclocal.m4
 | 
						|
	- add tests for standard-conforming declarations for putenv and
 | 
						|
	  unsetenv in system header files
 | 
						|
 | 
						|
{configure,config.h}.in
 | 
						|
	- call BASH_FUNC_STD_PUTENV and BASH_FUNC_STD_UNSETENV, define
 | 
						|
	  HAVE_STD_GETENV and HAVE_STD_UNSETENV, respectively, if they
 | 
						|
	  succeed
 | 
						|
 | 
						|
lib/sh/getenv.c
 | 
						|
	- change putenv and unsetenv to take differing prototypes in
 | 
						|
	  stdlib.h into account
 | 
						|
 | 
						|
				   6/27
 | 
						|
				   ----
 | 
						|
[bash-2.05b-beta2 released]
 | 
						|
 | 
						|
				   6/28
 | 
						|
				   ----
 | 
						|
builtins/common.c
 | 
						|
	- fix get_job_spec so that %N works when N is the size of the jobs
 | 
						|
	  list (%8 means job 8, but the 7th member of the jobs array, so
 | 
						|
	  it's OK if N == job_slots because the function returns N-1)
 | 
						|
 | 
						|
				    7/1
 | 
						|
				    ---
 | 
						|
shell.c
 | 
						|
	- turn off line editing if $EMACS is set to `t'
 | 
						|
 | 
						|
				   7/10
 | 
						|
				   ----
 | 
						|
builtins/set.def
 | 
						|
	- remove mention of `-i' from long help doc, since it has no effect
 | 
						|
 | 
						|
				   7/17
 | 
						|
				   ----
 | 
						|
[bash-2.05b released]
 | 
						|
 | 
						|
				   7/18
 | 
						|
				   ----
 | 
						|
 | 
						|
lib/malloc/malloc.c
 | 
						|
	- make sure that the `free_return' label has a non-empty statement
 | 
						|
	  to branch to
 | 
						|
 | 
						|
				   7/19
 | 
						|
				   ----
 | 
						|
locale.c
 | 
						|
	-  only call setlocale() from set_lang() if HAVE_SETLOCALE is defined;
 | 
						|
	   otherwise just return 0
 | 
						|
 | 
						|
lib/readline/mbutil.c
 | 
						|
	- only try to memset `ps' in _rl_get_char_len if it's non-NULL.  Ditto
 | 
						|
	  for _rl_adjust_point
 | 
						|
 | 
						|
				   7/23
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- fix for executing_line_number() when compiling without conditional
 | 
						|
	  commands, dparen arithmetic or the arithmetic for command
 | 
						|
 | 
						|
				   
 | 
						|
				   7/24
 | 
						|
				   ----
 | 
						|
support/Makefile.in
 | 
						|
	- fix maintainer-clean, distclean, mostlyclean targets
 | 
						|
 | 
						|
builtins/common.c
 | 
						|
	- fix bug in sh_nojobs where it doesn't pass the right number of args
 | 
						|
	  to builtin_error
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- when using command completion and trying to avoid appending a slash
 | 
						|
	  if there's a directory with the same name in the current directory,
 | 
						|
	  use absolute_pathname() instead of just checking whether the first
 | 
						|
	  char of the match is a slash to catch things like ./ and ../
 | 
						|
 | 
						|
examples/complete/bashcc-1.0.1.tar.gz
 | 
						|
	- a package of completions for Clear Case, from Richard S. Smith
 | 
						|
	  (http://www.rssnet.org/bashcc.html)
 | 
						|
 | 
						|
input.c
 | 
						|
	- fix check_bash_input to call sync_buffered_stream if the passed fd
 | 
						|
	  is 0 and the shell is currently reading input from fd 0 -- all it
 | 
						|
	  should cost is maybe an additional read system call, and it fixes
 | 
						|
	  the bug where an input redirection to a builtin inside a script
 | 
						|
	  which is being read from stdin causes the already-read-and-buffered
 | 
						|
	  part of the script to be thrown away, e.g.:
 | 
						|
 | 
						|
		bash < x1
 | 
						|
 | 
						|
	  where x1 is
 | 
						|
 | 
						|
		hostname
 | 
						|
		read Input < t.in
 | 
						|
		echo $Input
 | 
						|
		echo xxx
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- in initialize_subshell(), call unset_bash_input (0) to not mess with
 | 
						|
	  fd 0 if that's where bash thinks it's reading input from.  Fixes
 | 
						|
	  bug reported by jg@cs.tu-berlin.de on 17 July 2002.  Should be a way
 | 
						|
	  to check whether or not the current fd 0 at the time of the call has
 | 
						|
	  not been redirected, like in the bug report.  Also might eventually
 | 
						|
	  want to throw in a sync_buffered_stream if bash is reading input
 | 
						|
	  from fd 0 in a non-interactive shell into a buffered stream, so the
 | 
						|
	  stream is sync'd -- might be necessary for some uses
 | 
						|
 | 
						|
				   7/25
 | 
						|
				   ----
 | 
						|
lib/readline/signals.c
 | 
						|
	- make sure rl_catch_sigwinch is declared even if SIGWINCH is not
 | 
						|
	  defined, so the readline state saving and restoring functions in
 | 
						|
	  readline.c are always the same size even if SIGWINCH is not defined,
 | 
						|
	  and undefined references don't occur when SIGWINCH is not defined
 | 
						|
 | 
						|
				   7/30
 | 
						|
				   ----
 | 
						|
bashline.c
 | 
						|
	- augment patch from 7/24 to not disable rl_filename_completion_desired
 | 
						|
	  if the first char of the match is `~'
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- when creating `shadow' keymaps `bound' to ANYOTHERKEY, don't bind
 | 
						|
	  a key whose type is ISFUNC but whose function is the `fake'
 | 
						|
	  rl_do_lowercase_version (fixes debian bash bug #154123)
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- don't call _rl_vi_set_last from _rl_dispatch_subseq if
 | 
						|
	  key == ANYOTHERKEY (when truncated to `sizeof(char)', it will be 0,
 | 
						|
	  which strchr will find in `vi_textmod')
 | 
						|
 | 
						|
				   7/31
 | 
						|
				   ----
 | 
						|
lib/readline/input.c
 | 
						|
	- fix rl_gather_tyi to only slurp up one line of available input, even
 | 
						|
	  if more than one line is available (fixes debian bash bug #144585)
 | 
						|
 | 
						|
				    8/3
 | 
						|
				    ---
 | 
						|
bashline.c
 | 
						|
	- better fix for command completion problem -- test for directory
 | 
						|
	  explicitly with test_for_directory before turning off
 | 
						|
	  rl_filename_completion_desired, since that's the case we're trying
 | 
						|
	  to protect against
 | 
						|
 | 
						|
				    8/5
 | 
						|
				    ---
 | 
						|
include/shmbutil.h
 | 
						|
	- fix ADVANCE_CHAR macro to advance the string pointer if mbrlen
 | 
						|
	  returns 0, indicating that the null wide character (wide string
 | 
						|
	  terminator) was found (debian bash bug #155436)
 | 
						|
 | 
						|
lib/readline/mbutil.c
 | 
						|
	- fix _rl_adjust_point to increment the string pointer if mbrlen
 | 
						|
	  returns 0
 | 
						|
 | 
						|
support/shobj-conf
 | 
						|
	- fix for the `-install_name' value in SHLIB_XLDFLAGS assignment for
 | 
						|
	  Darwin from the fink folks
 | 
						|
 | 
						|
				    8/6
 | 
						|
				    ---
 | 
						|
builtins/exit.def
 | 
						|
	- broke code that runs ~/.bash_logout out into a separate function:
 | 
						|
	  bash_logout()
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- extern declaration for bash_logout()
 | 
						|
 | 
						|
eval.c
 | 
						|
	- call bash_logout() from alrm_catcher(), so timed-out login shells
 | 
						|
	  run ~/.bash_logout before processing the exit trap
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- implemented $'\x{hexdigits}' expansion from ksh93
 | 
						|
 | 
						|
configure.in
 | 
						|
	- define RECYCLES_PIDS in LOCAL_CFLAGS for cygwin; don't bother to
 | 
						|
	  link with -luser32
 | 
						|
 | 
						|
examples/loadables/strftime.c
 | 
						|
	- new loadable builtin, interface to strftime(3)
 | 
						|
 | 
						|
				    8/7
 | 
						|
				    ---
 | 
						|
parse.y
 | 
						|
	- parse_arith_cmd now takes a second argument, a flag saying whether
 | 
						|
	  or not to add double quotes to a parsed arithmetic command; changed
 | 
						|
	  callers
 | 
						|
	- changed parse_dparen so it tells parse_arith_cmd to not add the
 | 
						|
	  double quotes and therefore doesn't need to remove them
 | 
						|
	- change parse_dparen to add W_NOGLOB|W_NOSPLIT|W_QUOTED flags to word
 | 
						|
	  created when parsing (( ... )) arithmetic command, since the double
 | 
						|
	  quotes are no longer added
 | 
						|
 | 
						|
make_cmd.c
 | 
						|
	- in make_arith_for_expr, set the flags on the created word to
 | 
						|
	  W_NOGLOB|W_NOSPLIT|W_QUOTED
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- change execute_arith_command to expand the expression with
 | 
						|
	  expand_words_no_vars, like the arithmetic for command code does
 | 
						|
	- fix execute_arith_command to handle the case where the expanded
 | 
						|
	  expression results in a NULL word without crashing
 | 
						|
 | 
						|
tests/{arith-for,cprint}.tests
 | 
						|
	- change expected output to account for no longer adding quotes to
 | 
						|
	  ((...)) commands
 | 
						|
 | 
						|
				    8/8
 | 
						|
				    ---
 | 
						|
print_cmd.c
 | 
						|
	- take out the space after printing the `((' and before printing the
 | 
						|
	  `))' in print_arith_command, print_arith_for_command, and
 | 
						|
	  xtrace_print_arith_cmd
 | 
						|
 | 
						|
tests/{arith-for,cprint}.tests
 | 
						|
	- change expected output to account for no longer adding leading and
 | 
						|
	  trailing spaces when printing ((...)) and arithmetic for commands
 | 
						|
 | 
						|
				   8/17
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- fix issep() define to handle case where separators[0] == '\0', in
 | 
						|
	  which case it always returns false
 | 
						|
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- fix off-by-one error in history_expand_internal when using the `g'
 | 
						|
	  modifier that causes it to skip every other match when matching a
 | 
						|
	  single character (reported by gjyun90@resl.auto.inha.ac.kr)
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- make sure that the name=word form of argument to declare/typeset,
 | 
						|
	  export, and readonly is documented in the description
 | 
						|
 | 
						|
				   8/30
 | 
						|
				   ----
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- make history_expand_internal understand double quotes, because
 | 
						|
	  single quotes are not special inside double quotes, according to
 | 
						|
	  our shell-like quoting conventions.  We don't want unmatched
 | 
						|
	  single quotes inside double-quoted strings inhibiting history
 | 
						|
	  expansion
 | 
						|
	- make `a' modifier equivalent to `g' modifier for compatibility with
 | 
						|
	  the BSD csh
 | 
						|
	- add a `G' modifier that performs a given substitution once per word
 | 
						|
	  (tokenized as the shell would do it) like the BSD csh `g' modifier
 | 
						|
 | 
						|
				   8/31
 | 
						|
				   ----
 | 
						|
braces.c
 | 
						|
	- when compiling for the shell, treat ${...} like \{...} instead of
 | 
						|
	  trying to peek backward when we see a `{'.  This makes it easier
 | 
						|
	  to handle things like \${, which should be brace expanded because
 | 
						|
	  the $ is quoted
 | 
						|
 | 
						|
				    9/7
 | 
						|
				    ---
 | 
						|
aclocal.m4
 | 
						|
	- redirect stdin from /dev/null in BASH_CHECK_DEV_FD before testing
 | 
						|
	  the readability of /dev/fd/0, so we're dealing with a known quantity
 | 
						|
 | 
						|
				   9/11
 | 
						|
				   ----
 | 
						|
[prayers for the victims of 9/11/01]
 | 
						|
 | 
						|
shell.c
 | 
						|
	- fix maybe_make_restricted to handle a restricted login shell with a
 | 
						|
	  base pathname of `-rbash' and skip over any leading `-'
 | 
						|
 | 
						|
				   9/13
 | 
						|
				   ----
 | 
						|
builtins/evalstring.c
 | 
						|
	- in parse_and_execute, make sure we don't try to run unwind-protects
 | 
						|
	  back to `pe_dispose' after a longjmp back to top_level if the
 | 
						|
	  pe_dispose frame hasn't been initialized
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- fix problem with prompt overwriting previous output when the output
 | 
						|
	  doesn't contain a newline in a multi-byte locale.  This also should
 | 
						|
	  fix the problem of bash slowing down drastically on long lines when
 | 
						|
	  using a multi-byte locale, because it no longer tries to rewrite the
 | 
						|
	  entire line each time.  Patch from Jiro SEKIBA <jir@yamato.ibm.com>
 | 
						|
 | 
						|
parse.y
 | 
						|
	- move the typedef for alias_t that is compiled in if ALIAS is not
 | 
						|
	  defined up before the prototype for push_string, since that takes
 | 
						|
	  an alias_t * parameter
 | 
						|
 | 
						|
lib/readline/terminal.c
 | 
						|
	- bind the termcap description's left and right arrow keys to
 | 
						|
	  rl_backward_char and rl_forward_char, respectively,  instead of
 | 
						|
	  rl_forward and rl_backward (which are just there for backwards
 | 
						|
	  compatibility)
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- when testing readability of /dev/stdin, redirect stdin from /dev/null
 | 
						|
	  to make sure it's a readable file
 | 
						|
 | 
						|
				   9/17
 | 
						|
				   ----
 | 
						|
config-bot.h
 | 
						|
	- don't test __STDC__ when deciding whether or not to use stdarg.h;
 | 
						|
	  just use it if it's present
 | 
						|
 | 
						|
tests/read2.sub
 | 
						|
	- redirect from /dev/tty when using `read -t' 
 | 
						|
 | 
						|
				   9/20
 | 
						|
				   ----
 | 
						|
builtins/history.def
 | 
						|
	- when reading `new' entries from the history file with `history -n',
 | 
						|
	  fix increment of history_lines_this_session by taking any change
 | 
						|
	  in history_base into account
 | 
						|
 | 
						|
lib/sh/pathphys.c
 | 
						|
	- changes to sh_physpath to deal with pathnames that end up being
 | 
						|
	  longer than PATH_MAX without dumping core
 | 
						|
 | 
						|
lib/readline/doc/{history.3,hsuser.texinfo},doc/ bash.1
 | 
						|
	- documented new `a' and `G' history modifiers
 | 
						|
 | 
						|
				   9/25
 | 
						|
				   ----
 | 
						|
lib/readline/misc.c
 | 
						|
	- when traversing the history list with arrow keys in vi insertion
 | 
						|
	  mode, put the cursor at the end of the line (like in emacs mode)
 | 
						|
 | 
						|
mksyntax.c
 | 
						|
	- don't try to use \a and \v unless __STDC__ is defined; use the
 | 
						|
	  ascii integer equivalents otherwise
 | 
						|
	- include "config.h" in the generated syntax.c file for a possible
 | 
						|
	  definition of `const'
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document the meaning of a null directory in $PATH
 | 
						|
 | 
						|
				   9/26
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- fix set_line_mbstate to handle case where mbrlen() returns 0,
 | 
						|
	  indicating the null wide character
 | 
						|
	- fix set_line_mbstate so we don't directly compare a char variable
 | 
						|
	  to EOF, since char can (and is) unsigned on some machines
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- change bash_execute_unix_command to save a little bit more state:
 | 
						|
	  last_shell_builtin, this_shell_builtin, last_command_exit_value
 | 
						|
 | 
						|
				   9/27
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- tentative change to execute_simple_command to avoid freeing freed
 | 
						|
	  memory in the case where bash forks early but still ends up calling
 | 
						|
	  execute_disk_command, without passing newly-allocated memory to
 | 
						|
	  make_child.  This may fix the core dumps with the linux-from-scratch
 | 
						|
	  folks
 | 
						|
 | 
						|
				   9/28
 | 
						|
				   ----
 | 
						|
Makefile.in,{builtins,lib/sh}/Makefile.in	
 | 
						|
	- fix up dependencies, mostly on ${BUILD_DIR}/version.h, so that
 | 
						|
	  parallel makes work with GNU and BSD makes
 | 
						|
 | 
						|
shell.h
 | 
						|
	- new struct to save partial parsing state when doing things like
 | 
						|
	  bash_execute_unix_command and other operations that execute
 | 
						|
	  commands while a line is being entered and parsed
 | 
						|
 | 
						|
parse.y
 | 
						|
	- new functions, save_parser_state() and restore_parser_state(), to
 | 
						|
	  save and restore partial parsing state 
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- change bash_execute_unix_command to call {save,restore}_parser_state
 | 
						|
 | 
						|
builtins/jobs.def
 | 
						|
	- change execute_list_with_replacements to eliminate a run_unwind_frame
 | 
						|
	  in favor of calling the cleanup explicitly and discarding the frame
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- change execute_for_command to avoid a run_unwind_frame in the case
 | 
						|
	  where the loop variable is readonly or otherwise not assignable
 | 
						|
	- change execute_select_command and execute_simple_command to use
 | 
						|
	  discard_unwind_frame by running the cleanup code explicitly, instead
 | 
						|
	  of using run_unwind_frame
 | 
						|
	- make sure execute_select_command decreases loop_level even on error
 | 
						|
 | 
						|
				   9/30
 | 
						|
				   ----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- fixed description of `unset' now that unsetting a previously-unset
 | 
						|
	  variable is no longer an error
 | 
						|
 | 
						|
				   10/3
 | 
						|
				   ----
 | 
						|
{configure,config.h}.in
 | 
						|
	- augment check for strtold with additional check to detect the
 | 
						|
	  horribly broken hp/ux 11.x implementation that returns `long_double';
 | 
						|
	  defines STRTOLD_BROKEN if so
 | 
						|
 | 
						|
builtins/printf.def
 | 
						|
	- define floatmax_t as `double' if STRTOLD_BROKEN is defined
 | 
						|
 | 
						|
				   10/5
 | 
						|
				   ----
 | 
						|
lib/readline/keymaps.c
 | 
						|
	- don't automatically bind uppercase keys to rl_do_lowercase_version
 | 
						|
	  in rl_make_bare_keymap
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- explicitly check for ANYOTHERKEY binding to rl_do_lowercase_version
 | 
						|
	  and dispatch to lowercase of key when a prefix is not matched
 | 
						|
 | 
						|
				   10/12
 | 
						|
				   -----
 | 
						|
bashline.c
 | 
						|
	- set COMP_WORDBREAKS in enable_hostname_completion to the value
 | 
						|
	  of rl_completer_word_break_characters
 | 
						|
 | 
						|
variables.c
 | 
						|
	- new special variable COMP_WORDBREAKS, controls the value of
 | 
						|
	  rl_completer_word_break_characters
 | 
						|
 | 
						|
variables.h
 | 
						|
	- new extern declaration for sv_comp_wordbreaks()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- change split_at_delims to behave more like shell word splitting if
 | 
						|
	  the passed value for the delimiters is NULL, indicating that the
 | 
						|
	  function is to use $IFS to split
 | 
						|
 | 
						|
{execute_cmd,jobs,test,findcmd,input,make_cmd,redir,shell}.c
 | 
						|
builtins/mkbuiltins.c,builtins/{fc,history,source,umask}.def
 | 
						|
lib/sh/netconn.c
 | 
						|
lib/termcap/termcap.c
 | 
						|
lib/readline/histfile.c
 | 
						|
	- make sure all inclusions of <sys/file.h> are protected by
 | 
						|
	  HAVE_SYS_FILE_H
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- don't turn off rl_filename_completion_desired in
 | 
						|
	  attempt_shell_completion if the partial pathname contains a slash.
 | 
						|
	  This still doesn't solve the problem of partial pathname completion
 | 
						|
	  starting with a directory in the current directory without a
 | 
						|
	  leading `./'.  There's no way to tell the difference between that
 | 
						|
	  and a file found in $PATH (which may contain `.') at the point that
 | 
						|
	  attempt_shell_completion acts
 | 
						|
 | 
						|
				   10/18
 | 
						|
				   -----
 | 
						|
locale.c
 | 
						|
	- don't set lc_all to the default locale when LC_ALL is being unset
 | 
						|
	- new function, reset_locale_vars(), called to recompute the correct
 | 
						|
	  locale variable values when LC_ALL is unset
 | 
						|
	- changed set_lang to not set LC_ALL, which it never should have been
 | 
						|
	  doing in the first place, and to maintain a local variable `lang'
 | 
						|
	  corresponding to $LANG
 | 
						|
	- change get_locale_var to use the precedence posix.2 specifies:
 | 
						|
	  LC_ALL overrides individual variables; LANG, if set, is the default
 | 
						|
	- change set_locale_var to call get_locale_var to get the appropriate
 | 
						|
	  value for the variable being set or unset
 | 
						|
	- call get_locale_var instead of using passed value in set_locale_var
 | 
						|
	  to get the defaulting and precedence right
 | 
						|
 | 
						|
lib/readline/nls.c
 | 
						|
	- new function, _rl_get_locale_var(), which does the same thing as
 | 
						|
	  locale.c:get_locale_var(), with the right precedence and defaulting,
 | 
						|
	  using sh_get_env_value to get the right bash variable values
 | 
						|
	- if HAVE_SETLOCALE is defined, _rl_init_eightbit first calls
 | 
						|
	  _rl_get_locale_var to get the right value for LC_CTYPE, and uses
 | 
						|
	  that in the call to setlocale.  If _rl_get_locale_var returns NULL,
 | 
						|
	  call setlocale() to get the current international environment, and,
 | 
						|
	  finally, if that returns null, call setlocale with a second argument
 | 
						|
	  of "" to force the implementation's `native' environment
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- change gen_wordlist_completions to dequote the text before comparing
 | 
						|
	  it against the expanded word list 
 | 
						|
	- changed gen_matches_from_itemlist to do the same thing
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- new global function, bash_dequote_word, calls bash_dequote_filename
 | 
						|
	  on the text passed.  Used by the programmable completion code
 | 
						|
 | 
						|
lib/readline/histfile.c
 | 
						|
	- make sure that whenever read_history_range returns a non-zero value
 | 
						|
	  that it sets errno to some useful value
 | 
						|
 | 
						|
				   10/19
 | 
						|
				   -----
 | 
						|
variables.c
 | 
						|
	- COMP_WORDBREAKS is now a dynamic variable, mirroring value of
 | 
						|
	  rl_completer_word_break_characters.  Makes sure that the variable
 | 
						|
	  always points to dynamic memory if it's not null or the readline
 | 
						|
	  default
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- change enable_hostname_completion to manage a dynamic value of
 | 
						|
	  rl_completer_word_break_characters, since assignments to
 | 
						|
	  COMP_WORDBREAKS can change its value unpredictably
 | 
						|
 | 
						|
lib/readline/{complete.c,readline.h}
 | 
						|
	- rl_completer_word_break_characters no longer has `const' attribute
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- clean up necessary places due to rl_completer_word_break_characters
 | 
						|
	  no longer being `const'
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document new COMP_WORDBREAKS variable
 | 
						|
 | 
						|
				   10/21
 | 
						|
				   -----
 | 
						|
print_cmd.c
 | 
						|
	- fix indirection_level_string to handle the case where the decoded
 | 
						|
	  $PS4 is null without seg faulting
 | 
						|
 | 
						|
				   10/22
 | 
						|
				   -----
 | 
						|
builtins/shift.def
 | 
						|
	- make sure that there is actually an argument when reporting a shift
 | 
						|
	  count that exceeds the number of positional paramters and
 | 
						|
	  shift_verbose is enabled
 | 
						|
 | 
						|
lib/readline/rltty.c
 | 
						|
	- change SET_SPECIAL to call a new function, set_special_char, since
 | 
						|
	  it contains a block.  It's called infrequently, so the performance
 | 
						|
	  impact of making it a function should be negligible, and it helps
 | 
						|
	  debugging
 | 
						|
 | 
						|
				   10/29
 | 
						|
				   -----
 | 
						|
bashline.c
 | 
						|
	- make sure the editor in VI_EDIT_COMMAND and EMACS_EDIT_COMMAND is
 | 
						|
	  quoted; it might contain spaces (e.g., `emacs -nw')
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- cache ac_cv_rl_version in RL_LIB_READLINE_VERSION macro
 | 
						|
 | 
						|
configure.in
 | 
						|
	- change logic that sets RL_INCLUDEDIR so that it doesn't try to set
 | 
						|
	  a bogus include path if the argument to --with-installed-readline
 | 
						|
	  is `yes' -- helps with cross-compiling
 | 
						|
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- fix history_tokenize_word so that it handles <( and >( better
 | 
						|
 | 
						|
				   10/30
 | 
						|
				   -----
 | 
						|
redir.c
 | 
						|
	- fix write_here_string so it handles the case where `herestr' expands
 | 
						|
	  to NULL without seg faulting
 | 
						|
 | 
						|
				   10/31
 | 
						|
				   -----
 | 
						|
mailcheck.c
 | 
						|
	- reverse logic flip from bash-2.05 that handled systems that don't
 | 
						|
	  change the atime when the mailbox is accessed; make sure the file
 | 
						|
	  is bigger before we report new mail.  This is the case in the vast
 | 
						|
	  majority of cases.  Reported by jim@jtan.com
 | 
						|
 | 
						|
				   11/5
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- change action for `for x; { list; }' and corresponding `select'
 | 
						|
	  production to use \"$@\" instead of just $@, as it is with all the
 | 
						|
	  other actions
 | 
						|
 | 
						|
				   11/9
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- new flag for parse_matched_pair: P_DQUOTE, indicating that the
 | 
						|
	  pair of characters being matched is between double quotes
 | 
						|
	- parse_matched_pair now passes P_DQUOTE down to recursive calls:
 | 
						|
	  if the open char to be matched is a `"' or the passed-in flags
 | 
						|
	  include P_DQUOTE, set the local `rflags' variable to P_DQUOTE and
 | 
						|
	  pass `rflags' down to recursive calls
 | 
						|
	- if `rflags' includes P_DQUOTE, don't try to ansiexpand $'...' or
 | 
						|
	  locale expand $"..."; consistent with other quoting constructs
 | 
						|
 | 
						|
				   11/11
 | 
						|
				   -----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- explicitly note that variables referenced in arithmetic expressions
 | 
						|
	  without using `$' evaluate to 0 if they are null or unset
 | 
						|
	- note that a null variable value evaluates to 0 when used in an
 | 
						|
	  arithmetic context, like when a variable with the `-i' attribute is
 | 
						|
	  assigned a null value
 | 
						|
	- document the ${!prefix@} expansion as equivalent to ${!prefix*}
 | 
						|
 | 
						|
				   11/12
 | 
						|
				   -----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- note that the value of an arithmetic expression is as in C
 | 
						|
	- change the wording to note that `arithmetic evaluation' (not
 | 
						|
	  arithmetic expansion, which has a different meaning) is performed
 | 
						|
	  on the value assigned to a variable whose integer attribute is set
 | 
						|
 | 
						|
				   11/13
 | 
						|
				   -----
 | 
						|
execute_cmd.c
 | 
						|
	- fix execute_disk_command so it calls exit() after printing the error
 | 
						|
	  message in a restricted shell context if the shell has already forked
 | 
						|
	  (nofork != 0 && there are no pipes)
 | 
						|
 | 
						|
				   11/19
 | 
						|
				   -----
 | 
						|
builtins/type.def
 | 
						|
	- don't report on aliases unless expand_aliases is set and the parser
 | 
						|
	  is performing alias expansion; changed tests/type.tests and
 | 
						|
	  tests/type.right accordingly
 | 
						|
 | 
						|
				   11/25
 | 
						|
				   -----
 | 
						|
general.c
 | 
						|
	- fix for full pathnames including drive letters on cygwin from
 | 
						|
	  Corinna (convert to posix-style paths, which the rest of the
 | 
						|
	  code handles much better)
 | 
						|
 | 
						|
lib/readline/text.c
 | 
						|
	- fixes to overwrite mode from jimmy@is-vn.bg:
 | 
						|
		o in _rl_overwrite_char, do the overwrite mode self-insert
 | 
						|
		  as one group, even when overwriting more than 1 char
 | 
						|
		o in _rl_overwrite_char, do the insert before the delete so
 | 
						|
		  that an undo positions the cursor on the character restored,
 | 
						|
		  not to the right of it
 | 
						|
		o in _rl_overwrite_rubout, don't do rl_insert_char(' ') unless
 | 
						|
		  rl_point < rl_end.  Since overwrite-mode self-insert acts as
 | 
						|
		  in insert-mode when at eol, make rubout behave like
 | 
						|
		  insert-mode rubout
 | 
						|
 | 
						|
				   11/30
 | 
						|
				   -----
 | 
						|
lib/readline/misc.c
 | 
						|
	- call rl_replace_line with `1' as second parameter if we're going to
 | 
						|
	  immediately overwrite the undo list
 | 
						|
 | 
						|
lib/readline/search.c
 | 
						|
	- in make_history_line_current, use _rl_replace_text to make the line
 | 
						|
	  replacement an undoable operation.  Affects all non-incremental
 | 
						|
	  search functions.
 | 
						|
 | 
						|
parse.y
 | 
						|
	- make behavior introduced on 11/9 dependent on extended_quote
 | 
						|
	  variable, controllable by extquote shopt option.  Default setting is
 | 
						|
	  on for backwards compatibility
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- new `extquote' option to control extended_quote variable
 | 
						|
 | 
						|
				   12/3
 | 
						|
				   ----
 | 
						|
jobs.c
 | 
						|
	- change message printed when attempting to put a background job in
 | 
						|
	  the background with `bg' to include the job id and make the
 | 
						|
	  statement declarative
 | 
						|
 | 
						|
				   12/10
 | 
						|
				   -----
 | 
						|
bashhist.h
 | 
						|
	- define explicit flag values for history_control
 | 
						|
 | 
						|
variables.c
 | 
						|
	- change sv_history_control to use new flag values
 | 
						|
	- change sv_history_control to parse $HISTCONTROL as a colon-separated
 | 
						|
	  list of values for the history_control variable
 | 
						|
 | 
						|
bashhist.c
 | 
						|
	- change check_history_control to use new flag values and restructure
 | 
						|
	  to remove case statement
 | 
						|
	- new function hc_erasedups(line); removes all entries matching LINE
 | 
						|
	  from the history list
 | 
						|
	- call hc_erasedups() from check_add_history after we've determined
 | 
						|
	  that we're saving the line
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new options available for $HISTCONTROL and that it can
 | 
						|
	  be a colon-separated list of history control options
 | 
						|
 | 
						|
				   12/11
 | 
						|
				   -----
 | 
						|
subst.c
 | 
						|
	- fix pat_subst() to not increment `e' (pointer to the end of the
 | 
						|
	  matched portion of the string) until after we're sure we're going
 | 
						|
	  around the loop again; fixes problem with empty replacements for
 | 
						|
	  a pattern that doesn't match (bug reported by Don Coleman
 | 
						|
	  <don@coleman.org>)
 | 
						|
 | 
						|
				   12/17
 | 
						|
				   -----
 | 
						|
lib/readline/display.c
 | 
						|
	- fixes to multibyte redisplay from jir@yamato.ibm.com (Jiro SEKIBA):
 | 
						|
		o speed up calculation of first difference between old and new
 | 
						|
		  lines in the common case
 | 
						|
		o don't try to see if we're in the middle of a multbyte char
 | 
						|
		  in update_line (we'll see how this one works out)
 | 
						|
 | 
						|
				   12/18
 | 
						|
				   -----
 | 
						|
doc/bashref.texi
 | 
						|
	- make it clear that the `command-list' function definition may be
 | 
						|
	  terminated by an ampersand before the closing brace
 | 
						|
 | 
						|
				   12/28
 | 
						|
				   -----
 | 
						|
redir.c
 | 
						|
	- set `expanding_redir' flag when expanding words in a redirection
 | 
						|
 | 
						|
subst.c
 | 
						|
	- new function, exp_jump_to_top_level(), to do any word expansion
 | 
						|
	  cleanup before a call to jump_to_top_level from within that file;
 | 
						|
	  sets expanding_redir back to 0 before jump_to_top_level
 | 
						|
 | 
						|
variables.c
 | 
						|
	- in find_variable(), don't call find_variable_internal with a second
 | 
						|
	  parameter of 1 if expanding_redir is non-zero
 | 
						|
	- in find_variable_internal(), don't search the temporary env if
 | 
						|
	  subshell_environment includes SUBSHELL_FORK (indicating a simple
 | 
						|
	  command) and expanding_redir is non-zero
 | 
						|
 | 
						|
parse.y
 | 
						|
	- increment line_number when we read a \<newline> pair
 | 
						|
 | 
						|
array.c
 | 
						|
	- added array_unshift_element and array_shift_element (which just call
 | 
						|
	  array_shift and array_rshift, respectively), for bash debugger
 | 
						|
	  support
 | 
						|
 | 
						|
				 1/4/2003
 | 
						|
				 --------
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- note in the section describing the execution environment passed to
 | 
						|
	  children that subshells inherit shell functions marked for export
 | 
						|
	- note in the section describing shell functions the possibility
 | 
						|
	  that exported functions may result in two entries in the environment
 | 
						|
	  with the same name
 | 
						|
 | 
						|
parse.y
 | 
						|
	- when pushing an alias expansion onto the pushed_string list, append
 | 
						|
	  a space to the expanded definition to make the parser's lookahead
 | 
						|
	  work without using the `mustpop' hack in shell_getc
 | 
						|
 | 
						|
				    1/8
 | 
						|
				    ---
 | 
						|
shell.c
 | 
						|
	- change calls to exit() with EX_USAGE as a parameter to use
 | 
						|
	  EX_BADUSAGE instead, since EX_USAGE is defined as 258 and is
 | 
						|
	  technically out of range
 | 
						|
 | 
						|
				   1/14
 | 
						|
				   ----
 | 
						|
aclocal.m4
 | 
						|
	- check for the termcap functions in libc first:  if we don't have
 | 
						|
	  to link in another library, let's not do it
 | 
						|
	- change the test for mbstate_t to use AC_TRY_COMPILE instead of
 | 
						|
	  AC_TRY_RUN
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document that bash turns line editing off if environment variable
 | 
						|
	  EMACS is set to `t' when it starts up
 | 
						|
 | 
						|
doc/bash.1
 | 
						|
	- minor change to give the ftp url for the latest version of bash in
 | 
						|
	  the bug reports section
 | 
						|
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- in get_history_event, cast a couple of `const char *' variables to
 | 
						|
	  `char *' in function call parameter lists to avoid compiler warnings
 | 
						|
 | 
						|
				   1/21
 | 
						|
				   ----
 | 
						|
builtins/cd.def
 | 
						|
	- change `cd -' so it prints the current working directory after a
 | 
						|
          successful chdir even when the shell is not interactive
 | 
						|
 | 
						|
				   1/31
 | 
						|
				   ----
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- clarified exactly what is meant by the term `application-specific
 | 
						|
	  completion function', made its use consistent, and documented
 | 
						|
	  what variables are changed before such a function is called
 | 
						|
 | 
						|
lib/readline/input.c
 | 
						|
	- new function, _rl_pushed_input_available(), returns non-zero if
 | 
						|
	  there are characters in the input queue managed by rl_get_char
 | 
						|
	  and _rl_unget_char
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- new extern declaration for _rl_pushed_input_available
 | 
						|
 | 
						|
lib/readline/callback.c
 | 
						|
	- change rl_callback_read_char to check _rl_pushed_input_available
 | 
						|
	  and loop if there's something there, so characters don't languish
 | 
						|
	  until more keyboard input is read
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- new variable, last_command_exit_signal, non-zero if
 | 
						|
	  last_command_exit_value result from wait_for was result of a signal
 | 
						|
 | 
						|
nojobs.c
 | 
						|
	- keep track of whether or not a given pid was killed by a signal with
 | 
						|
	  a new flag in the pid_list array
 | 
						|
	- new function int find_termsig_by_pid(pid_t pid) to get the
 | 
						|
	  terminating signal, if any, for a particular pid
 | 
						|
	- new function int get_termsig(WAIT status) returns the terminating
 | 
						|
	  signal corresponding to status
 | 
						|
	- set last_command_exit_signal in wait_for and the various wait_for_xx
 | 
						|
	  functions
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- new functions, process_exit_signal and job_exit_signal, return the
 | 
						|
	  signal that killed a given process or job, if a signal caused its
 | 
						|
	  death
 | 
						|
	- set last_command_exit_signal in wait_for by calling job_exit_signal
 | 
						|
	  or process_exit_signal appropriately
 | 
						|
 | 
						|
subst.c
 | 
						|
	- don't resend SIGINT to ourselves unless last_command_exit_signal is
 | 
						|
	  SIGINT and last_command_exit_value == 128 + SIGINT.  This fixes the
 | 
						|
	  $(exit 130) bug reported by Paul Jarc
 | 
						|
 | 
						|
expr.c
 | 
						|
	- new function, expr_bind_variable, calls bind_int_variable and
 | 
						|
	  then stupidly_hack_special_variables.  This fixes the
 | 
						|
	  `let OPTIND=1' bug
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- change history_and_alias_expand_line and shell_expand_line to call
 | 
						|
	  history_expand_line_internal so calls to pre_process_line are
 | 
						|
	  localized
 | 
						|
	- change history_expand_line_internal and cleanup_expansion_error to
 | 
						|
	  temporarily turn off hist_verify before calling pre_process_line
 | 
						|
	  to avoid the effects described by teirllm@dms.auburn.edu
 | 
						|
 | 
						|
parse.y
 | 
						|
	- don't unconditionally turn off PST_ALEXPNEXT in push_string.  This
 | 
						|
	  fixes the multiple alias expansion bug reported by Paul Jarc.
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- change rl_vi_subst to push `l' instead of ` ' -- it should be
 | 
						|
	  equivalent, but this has been reported to fix a problem in multibyte
 | 
						|
	  locales
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- new state flag value RL_STATE_TTYCSAVED, indicates that save_tty_chars
 | 
						|
	  has been called.  Since it's only used and visible internally, it's
 | 
						|
	  undocumented
 | 
						|
 | 
						|
lib/readline/rltty.h
 | 
						|
	- changed all of the members of _rl_tty_chars struct to `unsigned char'
 | 
						|
 | 
						|
lib/readline/rltty.c
 | 
						|
	- set the RL_STATE_TTYCSAVED after save_tty_chars is called
 | 
						|
	- new function, rl_tty_unset_default_bindings(), resets bindings for
 | 
						|
	  everything rl_tty_set_default_bindings() messes with back to
 | 
						|
	  rl_insert, so rl_tty_set_default_bindings can be called again with
 | 
						|
	  possible changes
 | 
						|
	- new function that does the bulk of the work for
 | 
						|
	  rltty_set_default_bindings:  _rl_bind_tty_special_chars()
 | 
						|
	- change prepare_terminal_settings so that it can track changes to the
 | 
						|
	  terminal special chars made by stty(1):  unset the bindings with
 | 
						|
	  rl_tty_unset_default_bindings before calling save_tty_chars, and
 | 
						|
	  _rl_tty_set_default_bindings after, with the new values from
 | 
						|
	  get_tty_settings().  This implements a long-standing request, most
 | 
						|
	  recently made by Tim Waugh of Red Hat.
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declaration for rl_tty_unset_default_bindings()
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- new function, reset_default_bindings, calls
 | 
						|
	  rl_tty_unset_default_bindings() to reset the terminal special chars
 | 
						|
	  back to rl_insert and then read the new ones
 | 
						|
 | 
						|
lib/readline/doc/rltech.texinfo
 | 
						|
	- documented rl_tty_unset_default_bindings()
 | 
						|
 | 
						|
				    2/1
 | 
						|
				    ---
 | 
						|
[prayers and condolences to the families of the space shuttle crew members]
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- add checks for mbrtowc and mbrlen in BASH_CHECK_MULTIBYTE
 | 
						|
	- new check, BASH_FUNC_CTYPE_NONASCII, checks whether or not the ctype
 | 
						|
	  functions handle non-ascii characters correctly
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add HAVE_MBRTOWC and HAVE_MBRLEN
 | 
						|
	- add NO_MULTIBYTE_SUPPORT for new configure argument
 | 
						|
	- add CTYPE_NON_ASCII
 | 
						|
 | 
						|
config-bot.h, lib/readline/rlmbutil.h
 | 
						|
	- make sure that mbrtowc, mbrlen, and wcwidth are all present before
 | 
						|
	  turning on HANDLE_MULTIBYTE
 | 
						|
	- turn off multibyte chars if NO_MULTIBYTE_SUPPORT is defined
 | 
						|
 | 
						|
configure.in
 | 
						|
	- new argument --enable-multibyte (enabled by default), allows
 | 
						|
	  multibyte support to be turned off even on systems that support it
 | 
						|
 | 
						|
lib/readline/chardefs.h
 | 
						|
	- define NON_NEGATIVE as 1 if CTYPE_NON_ASCII is defined
 | 
						|
 | 
						|
				    2/3
 | 
						|
				    ---
 | 
						|
config.h.in
 | 
						|
	- add HAVE_WCTOMB
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- check for wctomb in BASH_CHECK_MULTIBYTE
 | 
						|
 | 
						|
				    2/4
 | 
						|
				    ---
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- in _rl_vi_change_mbchar_case, make sure the result from wctomb()
 | 
						|
	  is NULL-terminated before trying to insert it with rl_insert_text()
 | 
						|
 | 
						|
				    2/5
 | 
						|
				    ---
 | 
						|
lib/readline/display.c
 | 
						|
	- fix to update_line to avoid problems on systems with multibyte
 | 
						|
	  characters when moving between history lines when the new line
 | 
						|
	  has more glyphs but fewer bytes (twaugh@redhat.com)
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- use wcrtomb() instead of wctomb() in _rl_vi_change_mbchar_case
 | 
						|
 | 
						|
pcomplete.c
 | 
						|
	- fix init_itemlist_from_varlist to handle the case where the
 | 
						|
	  `varlist' is NULL
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- clarified when a simple command may fail without the shell exiting
 | 
						|
	  when -e is set
 | 
						|
 | 
						|
				   2/13
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- when bash is started with --nolineediting, ignore \[ and \] when
 | 
						|
	  decoding the prompt string
 | 
						|
 | 
						|
subst.c
 | 
						|
	- fix remove_quoted_nulls so that a string with a CTLESC appearing
 | 
						|
	  after a CTLNUL (which was removed) does not leave characters in
 | 
						|
	  the string inappropriately
 | 
						|
 | 
						|
				   2/14
 | 
						|
				   ----
 | 
						|
builtins/common.h
 | 
						|
	- new flag value for parse_and_execute(): SEVAL_RESETLINE, which
 | 
						|
	  allows the caller to specify whether or not the internal idea
 | 
						|
	  of the line number should be reset to 1
 | 
						|
 | 
						|
builtins/evalstring.c
 | 
						|
	- parse_and_execute() now tells push_string to reset the line
 | 
						|
	  number only if the SEVAL_RESETLINE flag is set by the caller
 | 
						|
 | 
						|
				   2/15
 | 
						|
				   ----
 | 
						|
builtins/evalfile.c
 | 
						|
	- pass SEVAL_RESETLINE from _evalfile() to parse_and_execute()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- if the shell is currently interactive, pass SEVAL_RESETLINE to
 | 
						|
	  parse_and_execute() when doing command substitution
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- add SEVAL_RESETLINE to parse_and_execute while running SIGCHLD trap
 | 
						|
 | 
						|
command.h
 | 
						|
	- add `line' members to case_com, for_com, select_com
 | 
						|
	- rearranged order of members in some of the command structs, so
 | 
						|
	  `flags' and `line' are first
 | 
						|
	- added a `source_file' member to the function_def struct; keeps
 | 
						|
	  track of where the function was defined
 | 
						|
 | 
						|
doc/Makefile.in
 | 
						|
	- add some new suffix rules:  .dvi.ps
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- added text to the description of the `trap' builtin tightening up
 | 
						|
	  the language describing when the ERR trap will be run
 | 
						|
 | 
						|
error.c
 | 
						|
	- if $BASH_SOURCE (internally-maintained) exists, use BASH_SOURCE[0]
 | 
						|
	  in get_name_for_error if the shell is not interactive
 | 
						|
 | 
						|
array.h
 | 
						|
	- new convenience defines: array_push and array_pop
 | 
						|
 | 
						|
variables.c
 | 
						|
	- change get_funcname to return this_shell_function->name only if
 | 
						|
	  arrays have not been compiled into the shell
 | 
						|
	- change init_funcname_var to initialize FUNCNAME as an array variable
 | 
						|
	  if we have arrays
 | 
						|
	- new function: get_self(SHELL_VAR *self), a degenerate `dynamic_value'
 | 
						|
	  function for dynamic variables
 | 
						|
	- new function: init_dynamic_array_var(), a generic dynamic array
 | 
						|
	  variable initializer to handle the common case
 | 
						|
	- use init_dynamic_array_var() instead of explicit init_dirstack_var()
 | 
						|
	- use init_dynamic_array_var() instead of explicit init_groups_var()
 | 
						|
	- new dynamic array variables:  BASH_ARGC, BASH_ARGV, BASH_SOURCE,
 | 
						|
	  BASH_LINENO, initialized with init_dynamic_array_var
 | 
						|
 | 
						|
shell.c
 | 
						|
	- initialize BASH_LINENO, BASH_SOURCE, FUNCNAME in open_shell_script
 | 
						|
 | 
						|
{execute_cmd,trap}.c
 | 
						|
	- take out trap_line_number, since parse_and_execute doesn't reset the
 | 
						|
	  line number any more when running the trap commands
 | 
						|
 | 
						|
make_cmd.c
 | 
						|
	- augment make_function_def to get source file name and call
 | 
						|
	  bind_function_def to save the entire FUNCTION_DEF
 | 
						|
 | 
						|
variables.c
 | 
						|
	- new hash table: shell_function_defs, keeps table of shell function
 | 
						|
	  definitions including source file and line number info corresponding
 | 
						|
	  to shell_functions table
 | 
						|
	- new functions: find_function_def and bind_function_def to manage
 | 
						|
	  the shell_function_defs hash table
 | 
						|
	- new function: unbind_function_def to remove a function definition
 | 
						|
	  from the shell_function_defs table (right now uncalled)
 | 
						|
 | 
						|
variables.h
 | 
						|
	- extern declaration for bind_function_def, find_function_def
 | 
						|
	- new extern declaration for unbind_function_def
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- in function prologue and epilogue, push and pop FUNCNAME,
 | 
						|
	  BASH_SOURCE, and BASH_LINENO information
 | 
						|
 | 
						|
dispose_cmd.c
 | 
						|
	- broke the code that disposes a FUNCTION_DEF out into two new
 | 
						|
	  functions: dispose_function_def and dispose_function_def_contents
 | 
						|
 | 
						|
dispose_cmd.h
 | 
						|
	- new extern declarations for dispose_function_def_contents and 
 | 
						|
	  dispose_function_def
 | 
						|
 | 
						|
copy_cmd.c
 | 
						|
	- move body of copy_function_def (other than allocating a new
 | 
						|
	  FUNCTION_DEF) to copy_function_def_contents
 | 
						|
	- make sure to copy the new source_file member of a function_def in
 | 
						|
	  copy_function_def_contents
 | 
						|
	- copy_function_def is no longer static, copy_function_def_contents
 | 
						|
	  is not either
 | 
						|
 | 
						|
command.h
 | 
						|
	- new extern declaration for copy_function_def_contents and
 | 
						|
	  copy_function_def
 | 
						|
 | 
						|
parse.y
 | 
						|
	- keep a stack of line numbers where case, select, and for commands
 | 
						|
	  start, with a maximum nesting level of 128; increment when reading
 | 
						|
	  word after `for', `select' or `case' in read_token_word; decrement
 | 
						|
	  in grammar actions after parsing a complete for, arith_for, select,
 | 
						|
	  or case command
 | 
						|
	- create for, case, arith_for, and select commands with an extra
 | 
						|
	  line number (word_lineno[word_top]) argument
 | 
						|
 | 
						|
make_cmd.c
 | 
						|
	- make_for_or_select, make_for_command, make_case_command, and
 | 
						|
	  make_select_command all take an extra `line_number' argument
 | 
						|
 | 
						|
make_cmd.h
 | 
						|
	- corresponding changes to extern declarations for those functions
 | 
						|
 | 
						|
				   2/16
 | 
						|
				   ----
 | 
						|
{execute_cmd,shell,variables}.c
 | 
						|
	- follow each call to remember_args with a call to push_args or
 | 
						|
	  pop_args to manage the BASH_ARGV and BASH_ARGC arrays.  Only set
 | 
						|
	  when the shell is started to run shell script or runs a shell
 | 
						|
	  function.  Doesn't handle `set' or `shift' yet, nor `source'.
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- keep track of the level of subshells with a new variable, manipulated
 | 
						|
	  in execute_in_subshell
 | 
						|
	- set currently_executing_command in execute_command_internal(),
 | 
						|
	  even if we're running a trap
 | 
						|
	- better line number management when executing simple commands,
 | 
						|
	  conditional commands, for commands in execute_command_internal()
 | 
						|
	  and the various functions that implement the commands
 | 
						|
	  (execute_cond_command, execute_for_command, execute_etc.)
 | 
						|
 | 
						|
variables.c
 | 
						|
	- new dynamic variable BASH_SUBSHELL, with new get_subshell and
 | 
						|
	  assign_subshell functions to manipulate it
 | 
						|
	- new functions push_args (WORD_LIST *list) and pop_args (void) to
 | 
						|
	  manage the BASH_ARGC and BASH_ARGV dynamic array variables
 | 
						|
 | 
						|
variables.h
 | 
						|
	- new extern declarations for push_args and pop_args
 | 
						|
 | 
						|
builtins/evalfile.c
 | 
						|
	- in _evalfile, do appropriate things to the FUNCNAME, BASH_ARGV,
 | 
						|
	  BASH_ARGC, BASH_SOURCE, and BASH_LINENO variables
 | 
						|
 | 
						|
support/mksignames.c
 | 
						|
	- add another fake signal for `trap'; make NSIG+2 == `RETURN'
 | 
						|
 | 
						|
trap.c
 | 
						|
	- _run_trap_internal now returns an int:  the exit value of the command
 | 
						|
	  run as the result of the trap
 | 
						|
	- run_debug_trap now returns an int: the exit value of the command
 | 
						|
	  run as the result of the trap
 | 
						|
	- RETURN is a new special trap
 | 
						|
	- new function: set_return_trap(char *command) interface for the rest
 | 
						|
	  of the shell, like set_{debug,error}_trap
 | 
						|
	- new function: run_return_trap()
 | 
						|
	- command substitution and other child processes don't inherit the
 | 
						|
	  return trap
 | 
						|
 | 
						|
trap.h
 | 
						|
	- new extern declaration for set_return_trap() and run_return_trap
 | 
						|
	- new defines for RETURN_TRAP; increment BASH_NSIG
 | 
						|
	- change extern declaration for run_debug_trap() since it now returns
 | 
						|
	  an int
 | 
						|
 | 
						|
shell.c
 | 
						|
	- new invocation long option:  --debugger, turns on debugging and
 | 
						|
	  sets internal `debugging_mode' variable
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- new code to save return trap when executing a shell function, so
 | 
						|
	  shell functions don't inherit it
 | 
						|
	- run debug trap before binding the variable and running the action
 | 
						|
	  list in a `for' command
 | 
						|
	- run debug trap before binding the selection variable and running
 | 
						|
	  the query in a `select' command
 | 
						|
	- run debug trap before running matcher in a `case' command
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- new `set -o functrace' (set -T), causes DEBUG trap to be inherited
 | 
						|
	  by shell functions
 | 
						|
	- new `set -o errtrace' (set -E), causes ERR trap to be inherited
 | 
						|
	  by shell functions
 | 
						|
 | 
						|
flags.c
 | 
						|
	- new flags -E and -T, control error_trace_mode and
 | 
						|
	  function_trace_mode respectively
 | 
						|
 | 
						|
flags.h
 | 
						|
	- new extern declarations for error_trace_mode and function_trace_mode
 | 
						|
 | 
						|
				   2/17
 | 
						|
				   ----
 | 
						|
doc/bashref.texi
 | 
						|
	- changed the `dircategory' as per Karl Berry's suggestion
 | 
						|
 | 
						|
doc/texinfo.tex
 | 
						|
	- update to version of 2003/02/04 from texinfo.org
 | 
						|
 | 
						|
support/texi2dvi
 | 
						|
	- update to version 1.14 from texinfo-4.5 distribution
 | 
						|
 | 
						|
				   2/20
 | 
						|
				   ----
 | 
						|
support/config.{guess,sub}
 | 
						|
	- update to versions of 2002/11/30
 | 
						|
 | 
						|
lib/readline/doc/manvers.texinfo
 | 
						|
	- renamed to version.texi to match other GNU software
 | 
						|
	- UPDATE-MONTH variable is now `UPDATED-MONTH'
 | 
						|
 | 
						|
lib/readline/doc/{hist,rlman,rluserman}.texinfo
 | 
						|
	- include version.texi
 | 
						|
 | 
						|
doc/version.texi
 | 
						|
	- new file, with standard stuff matching other GNU distributions
 | 
						|
 | 
						|
{doc,lib/readline/doc}/Makefile.in
 | 
						|
	- include right stuff for `version.texi'
 | 
						|
 | 
						|
lib/readline/doc/{rluserman,rlman,hist}.texinfo
 | 
						|
	- use @copying and @insertcopying and @ifnottex instead of @ifinfo
 | 
						|
	- add FDL as an appendix entitled `Copying This Manual'
 | 
						|
 | 
						|
lib/readline/doc/{rltech,rluser,hstech,hsuser}.texi
 | 
						|
	- changed the suffix from `texinfo' to `texi'
 | 
						|
 | 
						|
lib/readline/doc/{rlman,rluserman}.texinfo, doc/bashref.texi
 | 
						|
	- include rltech.texi,rluser.texi,hstech.texi, and hsuser.texi
 | 
						|
 | 
						|
lib/readline/doc/Makefile.in,doc/Makefile.in
 | 
						|
	- made appropriate changes for {{rl,hs}tech,{rl,hs}user}.texi
 | 
						|
 | 
						|
lib/readline/doc/{rlman,rluserman}.texinfo
 | 
						|
	- changed the suffix from `texinfo' to `texi'
 | 
						|
 | 
						|
lib/readline/doc/hist.texinfo
 | 
						|
	- renamed to history.texi
 | 
						|
 | 
						|
				   2/25
 | 
						|
				   ----
 | 
						|
pathnames.h.in
 | 
						|
	- moved pathnames.h here so value of DEBUGGER_START_FILE can be
 | 
						|
	  substituted by configure
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- added AM_PATH_LISPDIR for debugger
 | 
						|
 | 
						|
configure.in
 | 
						|
	- added some variables: `bashvers', `relstatus' to use info in more
 | 
						|
	  than one place
 | 
						|
	- call AM_PATH_LISPDIR
 | 
						|
	- new option:  --enable-debugger, sets DEBUGGER cpp option
 | 
						|
	- new option with AC_ARG_VAR:  DEBUGGER_START_FILE
 | 
						|
	- make `pathnames.h' a file generated by configure
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- add rule to create pathnames.h
 | 
						|
 | 
						|
builtins/declare.def
 | 
						|
	- added extra line number and source file name to `declare -F' output
 | 
						|
	  if `--debugger' is used at startup
 | 
						|
 | 
						|
builtins/evalfile.c
 | 
						|
	- call run_return_trap from source_file before returning the result
 | 
						|
	  from _evalfile()
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- call run_return_trap in execute_function before restoring the old
 | 
						|
	  context
 | 
						|
 | 
						|
builtins/source.def
 | 
						|
	- arrange to save and restore DEBUG traps when sourcing files if
 | 
						|
	  function_trace_mode (set -o functrace) is not set
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- broke print_for_command, print_select_command, print_case_command
 | 
						|
	  into two functions each:  one to print the `header' and one for
 | 
						|
	  the body
 | 
						|
	- print_cond_command is no longer static
 | 
						|
	- print_arith_command now takes a WORD_LIST *, since it doesn't
 | 
						|
	  actually do anything with the ARITH_COM it's passed except print
 | 
						|
	  the enclosed WORD_LIST
 | 
						|
	- print_arith_command is no longer static
 | 
						|
 | 
						|
externs.h
 | 
						|
	- extern declarations for print_{for,select,case}_command_head,
 | 
						|
	  print_cond_command, print_arith_command
 | 
						|
 | 
						|
{.,builtins,lib/sh}/Makefile.in
 | 
						|
	- corrected dependencies on pathnames.h, since it's now created in
 | 
						|
	  the build directory
 | 
						|
 | 
						|
				    3/5
 | 
						|
				    ---
 | 
						|
lib/glob/glob.c
 | 
						|
	- handle alloca() failing (it's supposed to return NULL)
 | 
						|
	- use malloc() (with its attendent bookkeeping) instead of alloca()
 | 
						|
	  in glob_filename()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- check whether shell_glob_filename returns NULL in
 | 
						|
	  glob_expand_word_list
 | 
						|
	- change parameter_brace_expand_rhs to handle cases like
 | 
						|
	  ${a[2]:=value} by properly creating the array element instead of a
 | 
						|
	  variable named `a[2]' (reported by <opengeometry@yahoo.ca>)
 | 
						|
 | 
						|
variables.c
 | 
						|
	- change bind_int_variable to use valid_array_reference instead
 | 
						|
	  of looking for `[' 
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- check for `a' in _rl_vi_done_inserting so the text inserted by an
 | 
						|
	  `a' command can be reinserted with a `.'
 | 
						|
 | 
						|
lib/readline/readline.c
 | 
						|
	- when entering vi insertion mode in readline_internal_setup(), make
 | 
						|
	  sure that _rl_vi_last_key_before_insert is set to `i' so that undo
 | 
						|
	  groups and redo work better (reported by <opengeometry@yahoo.ca>)
 | 
						|
 | 
						|
lib/glob/sm_loop.c
 | 
						|
	- handle ?(...) in a pattern immediately following a `*', instead of
 | 
						|
	  ignoring the `(' and treating the `?' as a single-char match, as
 | 
						|
	  long as FNM_EXTFLAG is set (reported by <anderson110@poptop.llnl.gov>)
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- new test for presence of struct timezone, BASH_STRUCT_TIMEZONE
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add HAVE_STRUCT_TIMEZONE
 | 
						|
 | 
						|
configure.in
 | 
						|
	- call BASH_STRUCT_TIMEZONE
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- don't try to use `struct timezone' in calls to gettimeofday unless
 | 
						|
	  HAVE_STRUCT_TIMEZONE is defined; use (void *)NULL otherwise
 | 
						|
 | 
						|
				   3/20
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- new variable, the_printed_command_except_trap, saves the command
 | 
						|
	  being executed before a trap is executed, for the debugger
 | 
						|
 | 
						|
trap.c
 | 
						|
	- if in debugging mode, let command substitutions and other child
 | 
						|
	  processes inherit the DEBUG and ERR traps if the `functrace'
 | 
						|
	  (which is really a bad name, given this semantic) or `errtrace'
 | 
						|
	  options, respectively, have been set
 | 
						|
 | 
						|
shell.c
 | 
						|
	- local_pending_command renamed to command_execution_string; no longer
 | 
						|
	  static
 | 
						|
 | 
						|
variables.c
 | 
						|
	- new dynamic variable, BASH_COMMAND, set to the command string
 | 
						|
	  currently executing, or the one that caused a trap to execute
 | 
						|
	  (mapped to the_printed_command_except_trap)
 | 
						|
	- new variable, BASH_EXECUTION_STRING, set to the argument to the
 | 
						|
	  -c invocation option, if the shell was started that way
 | 
						|
 | 
						|
				   3/22
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- changed execute_for_command, eval_arith_for_expr,
 | 
						|
	  execute_select_command, execute_arith_command, execute_cond_command,
 | 
						|
	  execute_simple_command to implement new DEBUG trap semantics
 | 
						|
	  for the debugger: if the DEBUG trap commands return a non-zero
 | 
						|
	  status and debugging_mode is non-zero, we skip the command to be
 | 
						|
	  executed
 | 
						|
 | 
						|
trap.c
 | 
						|
	- change run_debug_trap for the debugger: if we're in the debugger
 | 
						|
	  and the DEBUG trap returns 2 while we're in a function or sourced
 | 
						|
	  script, we force a `return'
 | 
						|
 | 
						|
shell.c
 | 
						|
	- new function, start_debugger(), that sources the debugger start file
 | 
						|
	  and turns the debugger on
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- new settable option, `extdebug', turns on debugging_mode, as if
 | 
						|
	  --debugger had been supplied at invocation (but does not source
 | 
						|
	  debugger startup file)
 | 
						|
 | 
						|
trap.c
 | 
						|
	- make sure that run_exit_trap arranges for `returns' to come back
 | 
						|
	  there, too, so a `return' executed by an `exit' invoked within a
 | 
						|
	  shell function behaves correctly
 | 
						|
 | 
						|
support/shobj-conf
 | 
						|
	- change darwin/MacOS X stanza based on advice from mac os x developers
 | 
						|
 | 
						|
lib/sh/mailstat.c
 | 
						|
	- set the atime member of the synthesized stat struct to 0 if `cur/'
 | 
						|
	  is empty, rather than leaving it undefined
 | 
						|
 | 
						|
				   3/24
 | 
						|
				   ----
 | 
						|
builtins/caller.def
 | 
						|
	- new builtin to provide a call stack for the debugger
 | 
						|
 | 
						|
builtins/evalfile.c
 | 
						|
	- added a second `flags' argument to source_file()
 | 
						|
	- new flag value for flags argument to _evalfile():  FEVAL_NOPUSHARGS.
 | 
						|
	  If included in flags arg, it means to not manipulate the BASH_ARGV
 | 
						|
	  and BASH_ARGC arrays
 | 
						|
 | 
						|
builtins/common.h
 | 
						|
	- change prototype for source_file()
 | 
						|
 | 
						|
builtins/source.def
 | 
						|
	- add flag value to call to source_file():  set to 1 if we replaced
 | 
						|
	  the positional parameters
 | 
						|
	- add call to push_args if additional arguments supplied to the
 | 
						|
	  source builtin
 | 
						|
	- add call to pop_args in maybe_pop_dollar_vars
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- run the debug trap in execute_function so the debugger can stop
 | 
						|
	  before the first command in a function body is executed
 | 
						|
	- modify subshell_level before executing a builtin or function in a
 | 
						|
	  subshell
 | 
						|
	- print `for', `select', `case' command heads when set -x is enabled
 | 
						|
 | 
						|
print_cmd.c
 | 
						|
	- `xtrace_print_word_list' now takes an additional flags argument,
 | 
						|
	  which, if non-zero, says to print indirection_level_string()
 | 
						|
	- new functions to print for, select, and case command heads when
 | 
						|
	  set -x is enabled
 | 
						|
	- add spaces after `((' and before `))' in xtrace_print_arith_command
 | 
						|
 | 
						|
externs.h
 | 
						|
	- changed extern declaration for xtrace_print_word_list
 | 
						|
	- new declarations for xtrace_print_{for,case,select}_command_head()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- modify subshell_level when executing a command substitution
 | 
						|
 | 
						|
				   3/25
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- use `line_number' in executing_line_number instead of looking into
 | 
						|
	  the current command if it's a simple command; rearrange code to
 | 
						|
	  make this simpler to compile in and out
 | 
						|
	- need to save and restore value of currently_executing_command around
 | 
						|
	  calls to debug trap and return trap in execute_function
 | 
						|
 | 
						|
make_cmd.c
 | 
						|
	- make sure make_arith_for_command() disposes the WORD_LIST * it is
 | 
						|
	  passed, since nothing else does and it's not used directly
 | 
						|
 | 
						|
				   3/28
 | 
						|
				   ----
 | 
						|
Makefile.in	
 | 
						|
	- fixed dependencies for `error.o' on shell.h and version.h -- makes
 | 
						|
	  parallel makes (gmake -j 4) work correctly
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented all new features added to support the debugger
 | 
						|
 | 
						|
				    4/1
 | 
						|
				    ---
 | 
						|
lib/sh/shquote.c
 | 
						|
	- make sure CTLESC and CTLNUL characters are escaped with CTLESC
 | 
						|
	  by sh_double_quote, sh_backslash_quote and
 | 
						|
	  sh_backslash_quote_for_double_quotes
 | 
						|
	  Fixes vulnerability reported by svdb@stack.nl
 | 
						|
 | 
						|
shell.h
 | 
						|
	- new `pipestatus' member of sh_parser_state_t, to save and restore
 | 
						|
	  $PIPESTATUS
 | 
						|
 | 
						|
parse.y
 | 
						|
	- changes to save_parser_state and restore_parser_state to save and
 | 
						|
	  restore $PIPESTATUS
 | 
						|
 | 
						|
builtins/read.def
 | 
						|
	- add a call to word_list_remove_quoted_nulls before assigning the
 | 
						|
	  word list read from standard input to an array variable.  Fixes
 | 
						|
	  bug reported by holzhey@ppprs1.phy.tu-dresden.de
 | 
						|
 | 
						|
				    4/3
 | 
						|
				    ---
 | 
						|
execute_cmd.c
 | 
						|
	- in execute_null_command, if redirections are supplied, make sure
 | 
						|
	  things like 3</etc/passwd are undone immediately, since they're
 | 
						|
	  being done in the current shell
 | 
						|
	- functions now inherit the RETURN trap only if function tracing is
 | 
						|
	  on for that function or globally
 | 
						|
 | 
						|
lib/readline/misc.c
 | 
						|
	- in rl_replace_from_history, don't force rl_replace_line to clear
 | 
						|
	  the undo_list, since it might point directly at an undo list
 | 
						|
	  from a history entry (to which we have no handle)
 | 
						|
 | 
						|
				    4/4
 | 
						|
				    ---
 | 
						|
trap.c
 | 
						|
	- initialize RETURN_TRAP stuff appropriately in initialize_traps()
 | 
						|
	- let command substitutions inherit the RETURN trap if we're in
 | 
						|
	  the debugger and function tracing has been enabled
 | 
						|
 | 
						|
redir.c
 | 
						|
	- do_redirections and do_redirection_internal now take a single
 | 
						|
	  flags argument instead of multiple boolean flags
 | 
						|
 | 
						|
redir.h
 | 
						|
	- new #defines for flags argument to do_redirection{s,_internal}
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- change all calls to do_redirection to use new flag values
 | 
						|
 | 
						|
parse.y
 | 
						|
	- new function, free_pushed_string_input(), an external interface to
 | 
						|
	  clear the pushed_string list (alias expansion)
 | 
						|
	- new define SHOULD_PROMPT to say when it's OK to call prompt_again
 | 
						|
	  (if the shell is currently interactive and is reading input from
 | 
						|
	  the terminal or readline)
 | 
						|
	- make sure shell_getc and read_secondary_line only call prompt_again
 | 
						|
	  if SHOULD_PROMPT evaluates to true
 | 
						|
	- prompt_again shouldn't do anything if the shell is currently in the
 | 
						|
	  middle of expanding a multiline alias, since we won't be printing a
 | 
						|
	  prompt anyway
 | 
						|
 | 
						|
externs.h
 | 
						|
	- new extern declaration for free_pushed_string_input()
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- command_substitute and process_substitute now call
 | 
						|
	  free_pushed_string_input because they shouldn't deal with any
 | 
						|
	  partial alias expansion the parent shell may have started
 | 
						|
 | 
						|
				    4/5
 | 
						|
				    ---
 | 
						|
braces.c
 | 
						|
	- added {x..y} brace expansion, shorthand for {x,x+1,x+2,...,y}:
 | 
						|
	  x, y can be integers or single characters; the sequence can be
 | 
						|
	  ascending or descending; increment is always 1.  Beware that
 | 
						|
	  something like {a..A} can lead to non-letters.
 | 
						|
 | 
						|
				    4/7
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- change extract_delimited_string and extract_dollar_brace_string to
 | 
						|
	  return NULL on an expansion error when no_longjmp_on_fatal_error
 | 
						|
	  is set, so the calling functions don't assume that the expansion
 | 
						|
	  was successful (primarily the prompt expansion and completion code)
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new sequence generation feature of brace expansion
 | 
						|
 | 
						|
				    4/8
 | 
						|
				    ---
 | 
						|
lib/sh/strstr.c
 | 
						|
	- replacement for strstr(3), in case the C library doesn't provide it
 | 
						|
 | 
						|
configure.in
 | 
						|
	- check for strstr, add to LIBOBJS if not found
 | 
						|
 | 
						|
array.c
 | 
						|
	- array_walk now takes a third void * argument; it's passed to `func'
 | 
						|
	  as its second argument
 | 
						|
 | 
						|
array.h
 | 
						|
	- change sh_ae_map_func_t prototype to add void * second argument
 | 
						|
 | 
						|
				   4/10
 | 
						|
				   ----
 | 
						|
array.c
 | 
						|
	- new function: array_keys_to_word_list, returns a list of indices for
 | 
						|
	  a given array
 | 
						|
 | 
						|
array.h
 | 
						|
	- new extern declaration for array_keys_to_word_list
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
3	- new function: char *array_keys(), returns a string with keys for a
 | 
						|
	  given array, with the appropriate quoting
 | 
						|
 | 
						|
arrayfunc.h
 | 
						|
	- new extern declaration for array_keys
 | 
						|
 | 
						|
subst.c
 | 
						|
	- code to implement ksh93-like ${!array[@]} expansion (array[*] works,
 | 
						|
	  too), which expands to all the keys (indices) of ARRAY
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new ${!array[@]} expansion
 | 
						|
 | 
						|
				   4/19
 | 
						|
				   ----
 | 
						|
builtins/setattr.def
 | 
						|
	- remove any mention of the `-n' option from readonly builtin's short
 | 
						|
	  and long documentation
 | 
						|
 | 
						|
pcomplib.c
 | 
						|
	- fix progcomp_insert to increase the refcount on the `cs' argument
 | 
						|
	  before calling hash_insert -- fixes the problem of multiple calls
 | 
						|
	  to progcomp_insert with the same compspec
 | 
						|
 | 
						|
doc/bash.1
 | 
						|
	- add mention of characters that inhibit history expansion when found
 | 
						|
	  immediately following an unquoted `!'
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- convert the code conditionally compiled in by the NO_FORCE_FIGNORE
 | 
						|
	  #define to something runtime-tunable with the `force_fignore'
 | 
						|
	  variable (opposite sense).  force_fignore is 1 by default
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- new tunable `shopt' option: `force_fignore', controls force_fignore
 | 
						|
	  variable and behavior of FIGNORE handling
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- new variable, _rl_complete_show_unmodified, causes completer to list
 | 
						|
	  possible completions if more than one completion and partial
 | 
						|
	  completion cannot be done
 | 
						|
	- new value for what_to_do argument to rl_complete_internal, `@',
 | 
						|
	  indicating that we want the show-unmodified behavior
 | 
						|
	- change rl_completion_type to return `@' when appropriate
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- new bindable variable, show-all-if-unmodified, which controls value
 | 
						|
	  of _rl_complete_show_unmodified
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- extern declaration for _rl_complete_show_unmodified
 | 
						|
 | 
						|
lib/readline/doc/rluser.texi
 | 
						|
	- documented show-all-if-unmodified
 | 
						|
 | 
						|
lib/readline/doc/rltech.texi
 | 
						|
	- documented new `@' value for second argument to rl_complete_internal
 | 
						|
	- documented new return value from rl_completion_type
 | 
						|
 | 
						|
				   4/22
 | 
						|
				   ----
 | 
						|
lib/readline/signals.c
 | 
						|
	- in rl_set_signal, set sa_flags to SA_RESTART for SIGWINCH, if we
 | 
						|
	  have POSIX signals -- this is what most applications expect, and
 | 
						|
	  they're not prepared to deal with EINTR
 | 
						|
 | 
						|
				   4/25
 | 
						|
				   ----
 | 
						|
bashline.c
 | 
						|
	- take out attempts to suppress readline filename completion when
 | 
						|
	  attempting command completion and there is a directory with the
 | 
						|
	  same name in the current directory.  #if 0'd for now; maybe make
 | 
						|
	  it conditional later
 | 
						|
 | 
						|
error.c
 | 
						|
	- new variable, gnu_error_format, causes non-interactive errors with
 | 
						|
	  line numbers to be printed in the `gnu style' (filename:lineno:)
 | 
						|
	  instead of the `shell style' (filename: line lineno:) by
 | 
						|
	  error_prolog and parser_error
 | 
						|
 | 
						|
version.h,support/mkversion
 | 
						|
	- don't put extern function declarations into created version.h any
 | 
						|
	  more
 | 
						|
 | 
						|
version.c,externs.h
 | 
						|
	- add extern declarations for show_shell_version() and
 | 
						|
	  shell_version_string(), since they're no longer in version.h
 | 
						|
	  (this backs out change from 9/10/2001)
 | 
						|
 | 
						|
shell.h
 | 
						|
	- don't include version.h
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- remove unneeded dependencies on version.h -- only version.o
 | 
						|
	  needs it now
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- new option `gnu_errfmt', changes error messages with line numbers
 | 
						|
	  to use the `standard' gnu format
 | 
						|
 | 
						|
pcomplete.h
 | 
						|
	- new COPT_BASHDEFAULT and COPT_PLUSDIRS defines
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- if the COPT_BASHDEFAULT flag is set, try the rest of the bash
 | 
						|
	  default completions if a compspec with that flag set generates
 | 
						|
	  no matches
 | 
						|
	- broke bash completions out into separate function:
 | 
						|
	  bash_default_completion(const char *text, int start, int end,
 | 
						|
	  int qc, int in_command_position); change attempt_shell_completion
 | 
						|
	  to call it
 | 
						|
 | 
						|
bashline.h
 | 
						|
	- new extern declaration for bash_default_completion
 | 
						|
 | 
						|
builtins/complete.def
 | 
						|
	- added code to compgen to call bash_default_completion if a compspec
 | 
						|
	  with the COPT_BASHDEFAULT flag set generates no matches from the
 | 
						|
	  programmable completion options
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document new `gnu_errfmt' shopt option
 | 
						|
 | 
						|
doc/bash.1,lib/readline/doc/rluser.texi
 | 
						|
	- document new `-o bashdefault' option to complete and compgen
 | 
						|
 | 
						|
				   4/26
 | 
						|
				   ----
 | 
						|
pcomplete.c
 | 
						|
	- if a compspec has the COPT_PLUSDIRS flag set, generate any
 | 
						|
	  directory name completions and add them to the set of possible
 | 
						|
	  completions as the last thing in gen_compspec_completions
 | 
						|
 | 
						|
builtins/complete.def
 | 
						|
	- add new `-o plusdirs' option to complete and compgen; means to
 | 
						|
	  do directory name completion in addition to other actions
 | 
						|
	  specified by the compspec, and do it last
 | 
						|
 | 
						|
				   5/12
 | 
						|
				   ----
 | 
						|
copy_cmd.c
 | 
						|
	- fix copy_{for,select,case}_command to copy the line member
 | 
						|
 | 
						|
				   5/13
 | 
						|
				   ----
 | 
						|
lib/readline/rlmbutil.h,include/shmbutil.h
 | 
						|
	- new #define MB_INVALIDCH, evaluates to true if return value from
 | 
						|
	  mbrtowc or mbrlen denotes an invalid multibyte character
 | 
						|
	- new #define MB_NULLWCH, evaluates to true if return value from
 | 
						|
	  mbrtowc or mbrlen denotes a null multibyte character
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- new function, fnwidth(), returns printed length of a filename,
 | 
						|
	  correctly handling multibyte characters
 | 
						|
	- new function, fnprint(), displays a filename on rl_outstream
 | 
						|
	  correctly handling multibyte characters
 | 
						|
	- use fnwidth() instead of simple strlen() for length calculations
 | 
						|
	  in display_matches
 | 
						|
 | 
						|
lib/readline/{display,mbutil}.c
 | 
						|
	- use MB_INVALIDCH and MB_NULLWCH as appropriate
 | 
						|
 | 
						|
				   5/21
 | 
						|
				   ----
 | 
						|
configure.in
 | 
						|
	- turn off the builtin malloc on GNU/FreeBSD systems (GNU userland,
 | 
						|
	  FreeBSD kernel)
 | 
						|
 | 
						|
				   5/24
 | 
						|
				   ----
 | 
						|
pcomplete.c
 | 
						|
	- in programmable_completions, copy the compspec before using it to
 | 
						|
	  generate the possible completions, allowing the completion for the
 | 
						|
	  command to be changed by the compspec itself without causing a
 | 
						|
	  core dump because the shell frees freed memory (reported by
 | 
						|
	  marcus.harnish@gmx.net)
 | 
						|
 | 
						|
parse.y
 | 
						|
	- in shell_getc, don't call notify_and_cleanup in an interactive shell
 | 
						|
	  unless the shell is currently reading from the terminal and would
 | 
						|
	  print a prompt.  This fixes programmable completions printing job
 | 
						|
	  notifications (reported by r.d.green@lancaster.ac.uk)
 | 
						|
	- use SHOULD_PROMPT macro consistently
 | 
						|
 | 
						|
shell.c
 | 
						|
	- use get_string_value instead of getenv when looking up $TERM and
 | 
						|
	  $EMACS to see whether the shell is running under emacs
 | 
						|
	- check for `TERM=dumb' as well as `EMACS=t' to decide whether or
 | 
						|
	  not to turn off command-line editing in emacs shell windows
 | 
						|
	  (reported by jik@kamens.brookline.ma.us)
 | 
						|
 | 
						|
				   5/28
 | 
						|
				   ----
 | 
						|
expr.c
 | 
						|
	- save and restore the `evalbuf' context, since evalexp can be
 | 
						|
	  called recursively (e.g. a[b[c]])
 | 
						|
 | 
						|
				   5/29
 | 
						|
				   ----
 | 
						|
builtins/common.c
 | 
						|
	- in display_signal_list, when displaying for `kill -l' in posix mode,
 | 
						|
	  display signal names without the `SIG' prefix
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- documented changed to posix mode behavior of kill -l
 | 
						|
 | 
						|
builtins/kill.def
 | 
						|
	- changed the error message printed when argument is not a pid or
 | 
						|
	  job id
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- fixed a slight inconsistency in the different sections describing
 | 
						|
	  the `promptvars' option
 | 
						|
 | 
						|
doc/Makefile.in
 | 
						|
	- new rule to create `bash.info' from `bashref.info' by running sed
 | 
						|
	  to change the internal references.  This makes the installed
 | 
						|
	  bash.info work right
 | 
						|
	- make the install target install bash.info after it's been modified
 | 
						|
	  from bashref.info
 | 
						|
 | 
						|
				   5/30
 | 
						|
				   ----
 | 
						|
builtins/cd.def
 | 
						|
	- after testing with ferror(), call clearerr if ferror() evaluates
 | 
						|
	  to true
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- call clearerr(stdout) after executing a builtin or function,
 | 
						|
	  before restoring any redirections
 | 
						|
 | 
						|
bashhist.c
 | 
						|
	- initialize history_comment_char in bash_history_initialize
 | 
						|
 | 
						|
builtins/alias.def
 | 
						|
	- if posix mode is enabled, and the `-p' option is not supplied, don't
 | 
						|
	  list aliases with a preceding `alias ', as POSIX.2 specifies
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- note new posix mode behavior of displaying alias names and values
 | 
						|
	- note new posix mode behavior of trap builtin not checking first
 | 
						|
	  argument to be a possible signal specification
 | 
						|
	- note new posix mode behavior of `kill' not accepting signal names
 | 
						|
	  with a leading `SIG'
 | 
						|
 | 
						|
include/stdc.h,lib/readline/rlstdc.h
 | 
						|
	- don't check the __STRICT_ANSI__ define when deciding whether or not
 | 
						|
	  to #undef __attribute__
 | 
						|
 | 
						|
trap.[ch]
 | 
						|
	- decode_signal and signal_object_p take an additional flags arg to
 | 
						|
	  satisfy POSIX.2 signal name translation requirements
 | 
						|
	- change decode_signal to honor the new DSIG_NOCASE (match case-
 | 
						|
	  insensitively) and DSIG_SIGPREFIX (allow signal specifications
 | 
						|
	  with the `SIG' prefix) flags
 | 
						|
 | 
						|
builtins/{common.c,{trap,kill}.def}
 | 
						|
	- change calls to decode_signal to add the new argument with
 | 
						|
	  appropriate values.  For kill, POSIX.2 says case-insensitive without
 | 
						|
	  the `SIG' prefix.  For trap, POSIX.2 says applications may decode
 | 
						|
	  case-insensitively and with the SIG prefix
 | 
						|
 | 
						|
builtins/trap.def
 | 
						|
	- when in posix mode, don't check for the first argument being a
 | 
						|
	  possible signal spec and revert the signal handling to the
 | 
						|
	  original disposition
 | 
						|
 | 
						|
				    6/1
 | 
						|
				    ---
 | 
						|
shell.h
 | 
						|
	- new MATCH_STARSUB define, to tell the callers of the various pattern
 | 
						|
	  substitution and removal functions that call string_list to treat
 | 
						|
	  "$*" and "${array[*]}" appropriately
 | 
						|
subst.c
 | 
						|
	- if get_var_and_type encounters an array variable subscripted by `*'
 | 
						|
	  or `$*', return VT_STARSUB or'd into the variable type value
 | 
						|
	- callers of get_var_and_type check for VT_STARSUB in the returned type
 | 
						|
	  this will fix problems with ${*...} not being separated with the
 | 
						|
	  first character of $IFS when double-quoted
 | 
						|
	- in parameter_brace_patsub, set MATCH_STARSUB if VT_STARSUB is set by
 | 
						|
	  get_var_and_type
 | 
						|
	- change pos_params_pat_subst to call string_list_dollar_star if
 | 
						|
	  the match flags include MATCH_STARSUB
 | 
						|
	- change parameter_brace_substring to call array_subrange with an
 | 
						|
	  additional argument indicating the character indexing the array
 | 
						|
 | 
						|
array.c
 | 
						|
	- change array_patsub to join the modified array elements with the
 | 
						|
	  first character of $IFS if MATCH_STARSUB is set in the match flags
 | 
						|
	  passed in
 | 
						|
	- array_subrange now takes an additional argument indicating the
 | 
						|
	  index type -- used to separate with first char of $IFS if the
 | 
						|
	  index char is `*' and the expression is double-quoted
 | 
						|
 | 
						|
array.h
 | 
						|
	- change prototype declaration of array_subrange to add additional arg
 | 
						|
 | 
						|
				    6/2
 | 
						|
				    ---
 | 
						|
doc/FAQ
 | 
						|
	- merged in some updates about POSIX from Andrew Josey
 | 
						|
 | 
						|
				    6/3
 | 
						|
				    ---
 | 
						|
bashjmp.h
 | 
						|
	- new value for jump_to_top_level:  ERREXIT
 | 
						|
 | 
						|
{eval,shell,subst,trap}.c,builtins/evalstring.c
 | 
						|
	- ERREXIT is (for now) equivalent to EXITPROG as a value from
 | 
						|
	  jump_to_top_level
 | 
						|
 | 
						|
				    6/9
 | 
						|
				    ---
 | 
						|
doc/bash.1,lib/readline/doc/readline.3
 | 
						|
	- documented new `show-all-if-unmodified' readline variable
 | 
						|
 | 
						|
				   6/14
 | 
						|
				   ----
 | 
						|
lib/readline/history.c
 | 
						|
	- new function, histdata_t free_history_entry (HIST_ENTRY *h),
 | 
						|
	  frees H and its line, returning the application-specific data
 | 
						|
	- use free_history_entry where appropriate
 | 
						|
 | 
						|
lib/readline/history.h
 | 
						|
	- extern declaration for free_history_entry()
 | 
						|
 | 
						|
lib/readline/doc/{history.3,hstech.texi}
 | 
						|
	- document free_history_entry
 | 
						|
 | 
						|
				   6/16
 | 
						|
				   ----
 | 
						|
lib/readline/readline.[ch]
 | 
						|
	- changed varions defines for readline/history library versions to 5.0
 | 
						|
 | 
						|
subst.c
 | 
						|
	- pass information about whether or not an indirectly-expanded variable
 | 
						|
	  contains ${array[@]}, ${array[*]}, $@, or $*
 | 
						|
	- new function, chk_atstar, performs checks for ${array[@]},
 | 
						|
	  ${array[*]}, $@, or $* for the parameter_brace_expand* functions and
 | 
						|
	  sets flags (passed as args) to the results
 | 
						|
	- call chk_atstar from parameter_brace_expand_indir and
 | 
						|
	  parameter_brace_expand
 | 
						|
 | 
						|
				   6/28
 | 
						|
				   ----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- clarified that (...) commands are executed in a subshell environment
 | 
						|
 | 
						|
				   6/30
 | 
						|
				   ----
 | 
						|
lib/readline/bind.c
 | 
						|
	- fix a problem with parsing nested if statements in inputrc files
 | 
						|
	  (fix from dimakar@yahoo.com)
 | 
						|
 | 
						|
				    7/3
 | 
						|
				    ---
 | 
						|
{jobs,nojobs}.c
 | 
						|
	- fix places that use the return value from strsignal() to check
 | 
						|
	  for NULL return values using a new function, j_strsignal()
 | 
						|
 | 
						|
builtins/kill.def
 | 
						|
	- removed JOB_CONTROL restriction; kill is now available as a builtin
 | 
						|
	  when the shell is built without job control
 | 
						|
 | 
						|
				   7/10
 | 
						|
				   ----
 | 
						|
jobs.c
 | 
						|
	- some systems have WIFCONTINUED but not WCONTINUED; separate the
 | 
						|
	  #defines
 | 
						|
 | 
						|
				   7/14
 | 
						|
				   ----
 | 
						|
lib/readline/history.h
 | 
						|
	- new `timestamp' member of a HIST_ENTRY
 | 
						|
	- extern declarations for add_history_time and history_get_time
 | 
						|
 | 
						|
lib/readline/doc/{history.3,hstech.texi}
 | 
						|
	- document add_history_time and history_get_time
 | 
						|
 | 
						|
lib/readline/history.c
 | 
						|
	- implementations of history_get_time and add_history_time
 | 
						|
	- change add_history to initialize the timestamp information
 | 
						|
	- change free_history_entry to free the timestamp
 | 
						|
	- change replace_history_entry to duplicate the timestamp
 | 
						|
	- change history_total_bytes to add the memory taken by the time
 | 
						|
	  stamps
 | 
						|
 | 
						|
bashhist.c,builtins/history.def
 | 
						|
	- use free_history_entry where appropriate
 | 
						|
 | 
						|
lib/readline/histfile.c
 | 
						|
	- changes to read_history_range to deal with new history file format
 | 
						|
	  including timestamps
 | 
						|
	- changes to history_do_write to write out the timestamp information
 | 
						|
	- changes to history_truncate_file to understand the timestamp
 | 
						|
	  information
 | 
						|
 | 
						|
				   7/22
 | 
						|
				   ----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- fixed function declaration documentation to specify that any compound
 | 
						|
	  command may be used as the function body, not just a group command
 | 
						|
 | 
						|
				   7/23
 | 
						|
				   ----
 | 
						|
lib/readline/histfile.c
 | 
						|
	- don't allocate space for null timestamps in history_do_write, and
 | 
						|
	  don't write out null timestamp entries
 | 
						|
 | 
						|
parse.y
 | 
						|
	- fix CHECK_FOR_RESERVED_WORD to call time_command_acceptable() and
 | 
						|
	  return TIME if the token is "time" and `time' is legal in that
 | 
						|
	  context
 | 
						|
 | 
						|
				   7/29
 | 
						|
				   ----
 | 
						|
lib/sh/fmtulong.c
 | 
						|
	- include <inttypes.h> for possible definitions of intmax_t, uintmax_t
 | 
						|
	  (reported by ro@techfak.uni-bielefeld.de)
 | 
						|
 | 
						|
				   7/30
 | 
						|
				   ----
 | 
						|
parse.y
 | 
						|
	- remove checking for `time' reserved word from special_case_tokens();
 | 
						|
	  use regular mechanism in CHECK_FOR_RESERVED_WORD.  This allows `time'
 | 
						|
	  to be aliased.  (Reported by Glenn Morris
 | 
						|
	  <gmorris+gmane@ast.cam.ac.uk>)
 | 
						|
 | 
						|
				   7/31
 | 
						|
				   ----
 | 
						|
lib/readline/history.h
 | 
						|
	- extern declaration for history_write_timestamps
 | 
						|
 | 
						|
lib/readline/histfile.c
 | 
						|
	- don't write timestamps to the history file in history_do_write
 | 
						|
	  unless history_write_timestamps is set to non-zero by the application
 | 
						|
	  (set to 0 by default)
 | 
						|
 | 
						|
lib/readline/doc/{hstech.texi,history.3}
 | 
						|
	- document history_write_timestamps
 | 
						|
 | 
						|
variables.[ch]
 | 
						|
	- new special variable function, HISTTIMEFORMAT; special function
 | 
						|
	  sets history_write_timestamps to 1 if HISTTIMEFORMAT is set
 | 
						|
 | 
						|
				    8/4
 | 
						|
				    ---
 | 
						|
builtins/history.def
 | 
						|
	- added support for printing time stamps based on the value of the
 | 
						|
	  HISTTIMEFORMAT variable when displaying history entries
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- added description of new HISTTIMEFORMAT variable
 | 
						|
 | 
						|
				    8/5
 | 
						|
				    ---
 | 
						|
config-top.h
 | 
						|
	- remove /usr/ucb from any default paths
 | 
						|
 | 
						|
mailcheck.c
 | 
						|
	- make_default_mailpath now returns NULL if DEFAULT_MAIL_DIRECTORY
 | 
						|
	  is not defined
 | 
						|
	- remember_mail_dates now returns if make_default_mailpath returns
 | 
						|
	  NULL
 | 
						|
 | 
						|
config-bot.h
 | 
						|
	- reorganized the sections; provide an explicit placeholder for
 | 
						|
	  builders to #undef any feature defines they don't want that
 | 
						|
	  configure creates for them, like the default mail path
 | 
						|
 | 
						|
				    8/9
 | 
						|
				    ---
 | 
						|
config.h.in
 | 
						|
	- add HAVE_REGEX_H, HAVE_REGCOMP, HAVE_REGEXEC for detection of POSIX.2
 | 
						|
	  regular expression functions
 | 
						|
	- add COND_REGEXP define to enable and disable the =~ operator for
 | 
						|
	  matching extended regular expressions in [[...]] commands
 | 
						|
 | 
						|
configure.in
 | 
						|
	- new option, --enable-cond-regexp, enables =~ and code to perform
 | 
						|
	  regular expression matching in [[...]]
 | 
						|
 | 
						|
config-bot.h
 | 
						|
	- undef COND_REGEXP if the OS doesn't provide posix regexp support
 | 
						|
 | 
						|
doc/bashref.texi
 | 
						|
	- documnent new --enable-cond-regexp option to configure
 | 
						|
 | 
						|
				   8/18
 | 
						|
				   ----
 | 
						|
support/shobj-conf
 | 
						|
	- support for shared objects on FreeBSD-gnu (from Robert Millan)
 | 
						|
 | 
						|
				   8/25
 | 
						|
				   ----
 | 
						|
lib/sh/shmatch.c
 | 
						|
	- new file, shell interface to posix extended regular expression
 | 
						|
	  matching
 | 
						|
 | 
						|
externs.h
 | 
						|
	- new extern declarations for functions in shmatch.c
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- incorporate code into execute_cond_node that does extended regular
 | 
						|
	  expression matching for the =~ operator
 | 
						|
 | 
						|
parse.y
 | 
						|
	- add `=~' to the list of binary operators accepted by the conditional
 | 
						|
	  command parser
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented =~ conditional binary operator and the BASH_REMATCH
 | 
						|
	  variable
 | 
						|
 | 
						|
				   8/27
 | 
						|
				   ----
 | 
						|
lib/readline/display.c
 | 
						|
	- take multibyte characters into account when looking for quoted
 | 
						|
	  substrings on which to do completion (fix from jir@yamato.ibm.com)
 | 
						|
 | 
						|
lib/readline/util.c
 | 
						|
	- fix typo in _rl_strpbrk
 | 
						|
 | 
						|
lib/readline/rldefs.h
 | 
						|
	- use function version of _rl_strpbrk in multibyte locales, because
 | 
						|
	  it understands to skip over special characters in multibyte
 | 
						|
	  character sequences
 | 
						|
 | 
						|
				   8/28
 | 
						|
				   ----
 | 
						|
jobs.c
 | 
						|
	- in wait_for, check for window size changes if a job that exits due
 | 
						|
	  to a signal or is stopped was in the foreground, not just if it's
 | 
						|
	  the current job
 | 
						|
 | 
						|
				   9/10
 | 
						|
				   ----
 | 
						|
support/config.{guess,sub}
 | 
						|
	- add support to recognize FreeBSD running on the amd64
 | 
						|
 | 
						|
subst.c
 | 
						|
	- if the new `fail_glob_expansion' variable is non-zero, globbing that
 | 
						|
	  fails to match anything causes an expansion error
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- new `failglob' expansion:  if enabled, failed globs cause an error
 | 
						|
 | 
						|
test/shopt.right
 | 
						|
	- take `failglob' into account
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented new `failglob' option and its effects
 | 
						|
 | 
						|
				   9/12
 | 
						|
				   ----
 | 
						|
findcmd.c
 | 
						|
	- fix file_status to treat the mode bits and uid right -- in particular,
 | 
						|
	  don't assume the `other' bits always apply.  Bug reported by
 | 
						|
	  <moseley@hank.org>; fix inspired by <carlo@alinoe.com>
 | 
						|
 | 
						|
command.h
 | 
						|
	- new word flag: W_NOCOMSUB, meaning to not perform command
 | 
						|
	  substitution on a word
 | 
						|
 | 
						|
subst.c
 | 
						|
	- new flag for param_expand: PF_NOCOMSUB.  If non-zero, $(...)
 | 
						|
	  command substitutions are not expanded, but returned unchanged
 | 
						|
	- change expand_word_internal to pass through `` command substitutions
 | 
						|
	  unchanged if (word->flags & W_NOCOMSUB) != 0
 | 
						|
	- change expand_word_internal to pass PF_NOCOMSUB to param_expand
 | 
						|
	  if (word->flags & W_NOCOMSUB) != 0
 | 
						|
 | 
						|
builtins/shopt.def
 | 
						|
	- rename set_interactive_comments to set_shellopts_after_change, which
 | 
						|
	  more accurately reflects its purpose
 | 
						|
 | 
						|
syntax.h
 | 
						|
	- add a define for isblank() in case the system doesn't provide one
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- change raw_job_exit_status to understand `pipefail', using the new
 | 
						|
	  `pipefail_opt' variable
 | 
						|
 | 
						|
flags.[ch]
 | 
						|
	- declare pipefail_opt
 | 
						|
	- reset pipefail_opt to 0 in reset_shell_flags
 | 
						|
 | 
						|
builtins/set.def
 | 
						|
	- add `set -o pipefail' and document it in help output
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document `set -o pipefail' and the effect of the pipefail option
 | 
						|
 | 
						|
mksyntax.c,syntax.h
 | 
						|
	- sh_syntaxtab is no longer `const'
 | 
						|
	- new generated variable, sh_syntabsiz, set to number of entries in
 | 
						|
	  sh_syntaxtab, written to generated syntax.c
 | 
						|
 | 
						|
locale.c
 | 
						|
	- new function, locale_setblanks(), sets each member of the current
 | 
						|
	  locale's <blank> class to have the CSHBRK flag in sh_syntaxtab
 | 
						|
 | 
						|
				   9/17
 | 
						|
				   ----
 | 
						|
arrayfunc.c
 | 
						|
	- change convert_var_to_array to not set array[0] to a NULL value
 | 
						|
	  (if the scalar variable had no value; e.g., after being created
 | 
						|
	  with `local arrayvar')
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- save and restore the value of prompt_invis_chars_first_line in
 | 
						|
	  rl_{save,restore}_prompt, and reinitialize it to 0 before printing
 | 
						|
	  something in the message area
 | 
						|
 | 
						|
lib/readline/bind.c
 | 
						|
	- new functions: rl_bind_keyseq_if_unbound_in_map(ks, func, kmap);
 | 
						|
	  binds key sequence KS to function FUNC in keymap KMAP, and
 | 
						|
	  rl_bind_keyseq_if_unbound (ks, func); binds key sequence KS to
 | 
						|
	  function FUNC in the current keymap
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern function declarations for rl_bind_keyseq_if_unbound_in_map and
 | 
						|
	  rl_bind_keyseq_if_unbound
 | 
						|
 | 
						|
lib/readline/{readline,terminal}.c
 | 
						|
	- _rl_bind_if_unbound -> rl_bind_keyseq_if_unbound
 | 
						|
 | 
						|
lib/readline/{bind.c,rlprivate.h}
 | 
						|
	- remove _rl_bind_if_unbound
 | 
						|
 | 
						|
				   9/18
 | 
						|
				   ----
 | 
						|
lib/readline/doc/rltech.texi
 | 
						|
	- document rl_bind_keyseq_if_unbound and
 | 
						|
	  rl_bind_keyseq_if_unbound_in_map
 | 
						|
 | 
						|
				   9/19
 | 
						|
				   ----
 | 
						|
lib/readline/bind.c
 | 
						|
	- new functions rl_bind_key_if_unbound_in_map and
 | 
						|
	  rl_bind_key_if_unbound; analogous to (and implemented in terms of)
 | 
						|
	  keyseq functions
 | 
						|
	- rl_bind_keyseq_in_map: a new function, equivalent to rl_set_key
 | 
						|
	  (which remains for backwards compatibility); changed callers to
 | 
						|
	  use it
 | 
						|
	- new function, rl_bind_keyseq, equivalent to rl_bind_keyseq_in_map
 | 
						|
	  with a third argument of _rl_keymap
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declarations for rl_bind_key_if_unbound_in_map and
 | 
						|
	  rl_bind_key_if_unbound
 | 
						|
	- extern declarations for rl_bind_keyseq_in_map and rl_bind_keyseq
 | 
						|
 | 
						|
lib/readline/doc/rltech.texi
 | 
						|
	- document rl_bind_keyseq and rl_bind_keyseq_in_map
 | 
						|
 | 
						|
configure.in
 | 
						|
	- require at least readline-5.0
 | 
						|
 | 
						|
config-bot.h
 | 
						|
	- define SYS_SIGLIST_DECLARED if it's not defined, but
 | 
						|
	  HAVE_DECL_SYS_SIGLIST is, to deal with differences between
 | 
						|
	  autoconf versions
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- use rl_bind_key_if_unbound_in_map when binding bash keybindings in
 | 
						|
	  initialize_readline(), so inputrc files can override them
 | 
						|
 | 
						|
				   9/22
 | 
						|
				   ----
 | 
						|
lib/readline/histsearch.c
 | 
						|
	- do better bounds checking for history_offset and history_length in
 | 
						|
	  history_search_internal
 | 
						|
 | 
						|
builtins/history.def
 | 
						|
	- in delete_last_history(), make sure we don't leave the history
 | 
						|
	  offset longer than the history length after calling delete_histent
 | 
						|
 | 
						|
				   9/23
 | 
						|
				   ----
 | 
						|
jobs.c
 | 
						|
	- small change to notify_of_job_status so job status messages get
 | 
						|
	  printed even if the shell was started to run `-c command'.  The
 | 
						|
	  old behavior was intentional, but I cannot remember why, so we'll
 | 
						|
	  try it the other way for a while (debian bash bug #211693)
 | 
						|
 | 
						|
				   9/24
 | 
						|
				   ----
 | 
						|
jobs.c
 | 
						|
	- slightly modify change from 9/23 so that jobs started to run
 | 
						|
	  command substitutions don't print job status messages
 | 
						|
 | 
						|
				   9/25
 | 
						|
				   ----
 | 
						|
lib/readline/search.c
 | 
						|
	- when reading a non-incremental search string from the terminal,
 | 
						|
	  use a separate undo list rather than chaining it to the undo list
 | 
						|
	  from the rest of the line, since the whole undo list will get
 | 
						|
	  freed when the search string is complete
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- changed the defines guarding the stdarg prototype for rl_message to
 | 
						|
	  match what's actually used in display.c, where it's defined
 | 
						|
 | 
						|
				   9/26
 | 
						|
				   ----
 | 
						|
[bash-3.0-alpha released]
 | 
						|
 | 
						|
				   9/29
 | 
						|
				   ----
 | 
						|
lib/sh/shmatch.c
 | 
						|
	- fix to build correctly when arrays are not compiled into the shell
 | 
						|
 | 
						|
subst.c
 | 
						|
	- fix command substitution to run any exit trap defined in the
 | 
						|
	  command substitution before returning; the exit trap is not inherited
 | 
						|
	  from the calling shell
 | 
						|
 | 
						|
lib/readline/shell.c
 | 
						|
	- change sh_set_lines_and_columns to free the memory allocated and
 | 
						|
	  passed to setenv(), since setenv is specified by POSIX to allocate
 | 
						|
	  new memory and copy its arguments
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- change logic in make_child so that every child process attempts to
 | 
						|
	  set the terminal's process group to the pipeline's process group
 | 
						|
	  when PGRP_PIPE is defined, just like when it's undefined.  This is
 | 
						|
	  reported to fix some tricky synchronization problems on Red Hat
 | 
						|
	  Enterprise Linux 3.  Fix from Ernie Petrides <petrides@redhat.com>.
 | 
						|
 | 
						|
				   9/30
 | 
						|
				   ----
 | 
						|
builtins/printf.def
 | 
						|
	- tescape no longer needs a `trans_squote' argument, since it's the
 | 
						|
	  same as the `sawc' argument.  The `sawc' argument now means to do
 | 
						|
	  the %b argument processing if non-null
 | 
						|
	- fix processing of octal constants for %b arguments (\0 followed by
 | 
						|
	  up to three octal digits) and other escape sequences (\ followed by
 | 
						|
	  up to three octal digits)
 | 
						|
	- hex constants `\xHHH' are now allowed to contain any positive
 | 
						|
	  number of digits; previously they were restricted to two [removed]
 | 
						|
	- allow two new escape sequences: \" and \?, for compatibility with
 | 
						|
	  ksh93 and ANSI C
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- documented processing that printf performs for arguments to %b
 | 
						|
	  escape sequences
 | 
						|
 | 
						|
lib/sh/strtrans.c
 | 
						|
	- add \" and \? to escape sequences recognized by `echo -e'
 | 
						|
 | 
						|
				   10/1
 | 
						|
				   ----
 | 
						|
version.c
 | 
						|
	- use snprintf instead of sprintf if configure tells us we have it
 | 
						|
 | 
						|
				   10/3
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- in list_remove_pattern, take into account the fact that one of the
 | 
						|
	  list elements may be NULL, and don't free the result of
 | 
						|
	  remove_pattern() without checking
 | 
						|
	- in remove_pattern, return savestring(param) if *param == '\0',
 | 
						|
	  since callers expect to free() non-null return values
 | 
						|
 | 
						|
				   10/4
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- change verify_substring_values to make it clearer that the first
 | 
						|
	  offset deals with array indices and the second deals with numbers
 | 
						|
	  of elements, when doing array subranges with ${a[@]:e1:e2}
 | 
						|
 | 
						|
array.c
 | 
						|
	- change array_subrange to make it explicit that the second offset
 | 
						|
	  argument is a count of the desired number of elements, not an
 | 
						|
	  ending index.  This deals with sparse arrays correctly.
 | 
						|
 | 
						|
				   10/6
 | 
						|
				   ----
 | 
						|
variables.c
 | 
						|
	- fix memory leak in assign_in_env
 | 
						|
 | 
						|
				   10/8
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- in parameter_brace_expand, check that the last characters are `]}'
 | 
						|
	  before checking for ${!array[@]}
 | 
						|
 | 
						|
execute_cmd.c,builtins/source.def
 | 
						|
	- push and pop the args (BASH_ARGV and BASH_ARGC) when executing a
 | 
						|
	  shell function or sourcing a script only when in debugging mode
 | 
						|
 | 
						|
				   10/11
 | 
						|
				   -----
 | 
						|
arrayfunc.c
 | 
						|
	- make sure array_variable_name returns values for the SUBP and LENP
 | 
						|
	  arguments if they're non-null, since callers expect to use them
 | 
						|
	  even if the array subscript is bad
 | 
						|
 | 
						|
error.c
 | 
						|
	- call exit_shell instead of sh_exit from parser_error and
 | 
						|
	  report_error so the right things happen (running exit trap, doing
 | 
						|
	  the right interactive cleanup, etc.)
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- new variable, rl_completion_quote_character, set to any quote char
 | 
						|
	  readline thinks it finds before any application completion
 | 
						|
	  function is called
 | 
						|
	- new variable, rl_completion_suppress_quote, settable by an
 | 
						|
	  application-specific completion function.  If set to non-zero, the
 | 
						|
	  completion code does not append a closing quote in append_to_match
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declarations for rl_completion_quote_character and
 | 
						|
	  rl_completion_suppress_quote
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- set rl_completion_suppress_quote in command_subst_completion_function
 | 
						|
	  because that would be inserted before any closing "`" or ")", which
 | 
						|
	  is somewhat disconcerting
 | 
						|
 | 
						|
lib/readline/doc/rltech.texi
 | 
						|
	- documented rl_completion_suppress_quote and
 | 
						|
	  rl_completion_quote_character
 | 
						|
 | 
						|
				   10/13
 | 
						|
				   -----
 | 
						|
bashhist.c
 | 
						|
	- use sv_histchars instead of setting history_comment_char directly in
 | 
						|
	  bash_initialize_history so assignments to $histchars made in
 | 
						|
	  ~/.bashrc are honored
 | 
						|
 | 
						|
				   10/21
 | 
						|
				   -----
 | 
						|
trap.c
 | 
						|
	- make sure run_exit_trap sets `running_trap' appropriately
 | 
						|
	- new variable, trap_saved_exit_value, set to last_command_exit_value
 | 
						|
	  before running any trap commands; available to the rest of the
 | 
						|
	  shell; use trap_saved_exit_value to replace some function-local
 | 
						|
	  variables
 | 
						|
 | 
						|
builtins/exit.def
 | 
						|
	- if the shell is running the exit trap, and no argument is given
 | 
						|
	  to `exit', use trap_saved_exit_value as the exit status instead
 | 
						|
	  of the last command exit value (which could be the previous command
 | 
						|
	  run in the exit trap), as required by POSIX.2
 | 
						|
 | 
						|
				   10/25
 | 
						|
				   -----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- add `alias' to the list of documented `assignment statement' builtins
 | 
						|
 | 
						|
				   11/1
 | 
						|
				   ----
 | 
						|
doc/bash.1
 | 
						|
	- remove the `.' from the sample $PATH value
 | 
						|
 | 
						|
parse.y
 | 
						|
	- make sure parse_compound_assignment prompts with $PS2 if it reads
 | 
						|
	  a newline while parsing the compound assignment statement. Bug
 | 
						|
	  reported by Stephane Chazelas
 | 
						|
	- parse_string_to_word_list now takes a new second argument: `int flags'
 | 
						|
	- new parser state flag: PST_COMPASSIGN; indicates that the shell is
 | 
						|
	  parsing a compound assignment statement
 | 
						|
	- parse_string_to_word_list turns on PST_COMPASSIGN if `flags' arg
 | 
						|
	  has low bit set
 | 
						|
	- turn PST_COMPASSIGN on and off in parse_compound_assignment
 | 
						|
 | 
						|
externs.h
 | 
						|
	- change prototype declaration for parse_string_to_word_list
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- change call to parse_string_to_word_list to add new flags arg
 | 
						|
 | 
						|
general.c
 | 
						|
	- assignment() takes a new `flags' second argument
 | 
						|
	- if `flags' is non-zero, accept `[' as a legal assignment statement
 | 
						|
	  starter character (for parsing compound array assignments)
 | 
						|
 | 
						|
general.h
 | 
						|
	- add new argument to prototype declaration for assignment()
 | 
						|
 | 
						|
parse.y,{subst,variables}.c, builtins/{setattr,declare}.def
 | 
						|
	- change calls to assignment() (parse.y calls with flags == 1 when
 | 
						|
	  parser_state inlcudes PST_COMPASSIGN)
 | 
						|
 | 
						|
arrayfunc.c
 | 
						|
	- in assign_array_var_from_string(), don't treat an expanded word
 | 
						|
	  of the form [ind]=value specially unless the W_ASSIGNMENT flag is
 | 
						|
	  set.  This means that words that are the result of expansions but
 | 
						|
	  happen to have the same format as compound assignment statement
 | 
						|
	  words will not be treated as such.  For instance
 | 
						|
 | 
						|
		v='[12]=foobar'
 | 
						|
		a=( $v )
 | 
						|
 | 
						|
	  will result in a[0]='[12]=foobar' instead of a[12]=foobar.  This
 | 
						|
	  is closer to how `regular' assignment statements are treated and
 | 
						|
	  compatible with ksh93.  Bug reported by Stephane Chazelas
 | 
						|
 | 
						|
shell.c
 | 
						|
	- new --protected argument, disables command substitution when used
 | 
						|
	  with --wordexp (like --wordexp, it remains undocumented)
 | 
						|
	- change run_wordexp to turn on the W_NOCOMSUB flag in each word
 | 
						|
	  to be expanded if protected_mode is set
 | 
						|
 | 
						|
				   11/7
 | 
						|
				   ----
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- clarified the language concerning inherited signal dispositions and
 | 
						|
	  when traps are run
 | 
						|
 | 
						|
support/shobj-conf
 | 
						|
	- slight changes to the darwin (Mac OS X) stanza for MacOS X 10.3
 | 
						|
	  (for the readline shared library builds, which shares this script)
 | 
						|
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- change to make `^' behave as equivalent to word one, as csh does,
 | 
						|
	  and as the documentation states
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- in update_line, make sure to use col_lendiff in all calculations
 | 
						|
	  where the cursor position is concerned (like when calculating
 | 
						|
	  the value of _rl_last_c_pos).  Fixes bug reported by Andreas
 | 
						|
	  Schwab
 | 
						|
 | 
						|
				   11/12
 | 
						|
				   -----
 | 
						|
trap.c
 | 
						|
	- make _run_trap_internal catch `return' builtin longjmps and clean
 | 
						|
	  up before longjmping on to where the return was intended to go
 | 
						|
	  (fixes bug with not turning off SIG_INPROGRESS flag when `return'
 | 
						|
	  executed in trap command)
 | 
						|
 | 
						|
				   11/18
 | 
						|
				   -----
 | 
						|
builtins/cd.def
 | 
						|
	- in posix mode, set errno to ENOTDIR if canonicalization fails,
 | 
						|
	  unless the canonicalization functions leave it set to ENOENT
 | 
						|
 | 
						|
				   11/25
 | 
						|
				   -----
 | 
						|
make_cmd.c
 | 
						|
	- in make_simple_command, don't blindly dereference element.redirect
 | 
						|
 | 
						|
parse.y
 | 
						|
	- the list_terminator production now has an `int' value so it can be
 | 
						|
	  used in other grammar productions
 | 
						|
	- add a rule that makes `time' on a line by itself time a null
 | 
						|
	  command (this is iffy)
 | 
						|
 | 
						|
				   11/28
 | 
						|
				   -----
 | 
						|
subst.c
 | 
						|
	- change the pattern substitution code (${var//pat/rep}) to use the
 | 
						|
	  same pattern expansion function (getpattern()) as the pattern
 | 
						|
	  removal expansions.  This has the effect of no longer performing
 | 
						|
	  quote removal on the pattern before trying to match it.  This
 | 
						|
	  fixes an incompatibility with ksh93 reported on comp.unix.shell
 | 
						|
 | 
						|
nojobs.c
 | 
						|
	- add replacement function for siginterrupt on the off chance that a
 | 
						|
	  system has posix signals but lacks siginterrrupt
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- fix from Tim Waugh at Red Hat to speed up inserting characters into
 | 
						|
	  long lines in a UTF-8 environment by optimizing the calculation of
 | 
						|
	  the first difference between old and new lines by checking to see
 | 
						|
	  whether the old line is a subset of the new
 | 
						|
 | 
						|
				   11/29
 | 
						|
				   -----
 | 
						|
lib/malloc/stats.c
 | 
						|
	- break code that opens file (and interprets %p) into separate function
 | 
						|
	  _imalloc_fopen(char *s, char *fn, char *def, char *defbuf, size_t defsiz)
 | 
						|
	  for use by rest of library
 | 
						|
	- default stats file is now `stats.PID'
 | 
						|
 | 
						|
lib/malloc/trace.c
 | 
						|
	- new function, malloc_set_tracefn (char *s, char *fn), sets tracing
 | 
						|
	  to the file named by FN (with %p interpolated as the pid), using
 | 
						|
	  some default if FN is NULL
 | 
						|
 | 
						|
lib/malloc/shmalloc.h
 | 
						|
	- new extern declaration for malloc_set_tracefn
 | 
						|
 | 
						|
				   12/4
 | 
						|
				   ----
 | 
						|
execute_cmd.c
 | 
						|
	- combined several common strings from do_piping() into one
 | 
						|
	  dup_error() function
 | 
						|
 | 
						|
builtins/common.[ch]
 | 
						|
	- new function, `sh_notbuiltin(s)' prints error message about s not
 | 
						|
	  being a shell builtin
 | 
						|
 | 
						|
builtins/{builtin,enable}.def
 | 
						|
	- call sh_notbuiltin instead of using literal string
 | 
						|
 | 
						|
{arrayfunc,expr,error}.c
 | 
						|
	- use one string variable for `bad array subscript' error message; use
 | 
						|
	  in calls to various error reporting functions
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- add variables for localedir and the PACKAGE_* variables, auto-set
 | 
						|
	  by configure
 | 
						|
 | 
						|
configure.in
 | 
						|
	- un-cache values for gettext, textdomain, and bindtextdomain if they're
 | 
						|
	  not in libc but in libintl so the right variables get set
 | 
						|
 | 
						|
bashintl.h
 | 
						|
	- add necessary defines for marking strings to be translated using
 | 
						|
	  gettext
 | 
						|
 | 
						|
locale.c
 | 
						|
	- set textdomain and directory in set_default_locale
 | 
						|
	- don't call textdomain with the value of $TEXTDOMAIN, since we don't
 | 
						|
	  want to override the default domain ("bash")
 | 
						|
	- don't call bindtextdomain unless default_domain already has a value
 | 
						|
	- when translating $"..." strings, use dgettext with the script's
 | 
						|
	  default domain (value of $TEXTDOMAIN)
 | 
						|
 | 
						|
				   12/9
 | 
						|
				   ----
 | 
						|
builtins/mkbuiltins.c
 | 
						|
	- include "bashintl.h" in the generated "builtins.c"
 | 
						|
 | 
						|
support/{config.rpath,mkinstalldirs}
 | 
						|
	- new files to support gettext i18n
 | 
						|
 | 
						|
ABOUT-NLS
 | 
						|
	- new readme file for gettext internationalization
 | 
						|
 | 
						|
po/{Makefile.in.in,Rules-quot,boldquot.sed,en@boldquot.header,en@quot.header,insert-header.sin,quot.sed,remove-potcdate.sin}
 | 
						|
po/{POTFILES.in,bash.pot}
 | 
						|
	- new files for gettext
 | 
						|
 | 
						|
lib/intl
 | 
						|
	- new directory, with libintl stuff from gettext
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- add m4 files from gettext distribution needed by libintl
 | 
						|
 | 
						|
configure.in
 | 
						|
	- create po/Makefile.in and lib/intl/Makefile in AC_OUTPUT
 | 
						|
	- add call to AM_GNU_GETTEXT to initialize gettext stuff
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- use mkinstalldirs instead of mkdirs in the `installdirs' target
 | 
						|
	- changes for intl/ and po/ subdirectories in build and install
 | 
						|
	- changes to have libintl linked in, as determined by configure
 | 
						|
	- changes to have libintl built, just in case it's used (though I'd
 | 
						|
	  rather not)
 | 
						|
 | 
						|
				   12/10
 | 
						|
				   -----
 | 
						|
config.h.in
 | 
						|
	- additional #defines required by the libintl library
 | 
						|
	- add ENABLE_NLS define for AM_GNU_GETTEXT
 | 
						|
	- take out defines for HAVE_{BINDTEXTDOMAIN,GETTEXT,TEXTDOMAIN}
 | 
						|
 | 
						|
configure.in
 | 
						|
	- removed old tests for libintl and gettext/textdomain/bindtextdomain
 | 
						|
 | 
						|
locale.c
 | 
						|
	- remove HAVE_GETTEXT code; we have gettext unconditionally now
 | 
						|
 | 
						|
bashintl.h
 | 
						|
	- change to include "gettext.h" and remove the conditional code based
 | 
						|
	  on whether or not gettext is present
 | 
						|
 | 
						|
				   12/16
 | 
						|
				   -----
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- fix problem with rl_vi_eWord that caused it to skip over the last
 | 
						|
	  character of a word if invoked while point was on the next-to-last
 | 
						|
	  character
 | 
						|
 | 
						|
				   12/18
 | 
						|
				   -----
 | 
						|
{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c
 | 
						|
{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c
 | 
						|
{subst,test,trap,variables,version,xmalloc}.c
 | 
						|
parse.y
 | 
						|
builtins/{common,evalfile,getopt}.c
 | 
						|
builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def
 | 
						|
builtins/{hash,help,history,jobs,kill,printf,pushd,read,return,set,setattr}.def
 | 
						|
builtins/{shift,shopt,source,suspend,type,ulimit,umask}.def
 | 
						|
lib/sh/{fmtulong,netopen}.c
 | 
						|
	- include "bashintl.h" for gettext defines
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- add `-DBUILDTOOL' to CFLAGS for buildversion.o
 | 
						|
 | 
						|
bashintl.h
 | 
						|
	- if `BUILDTOOL' is defined, define ENABLE_NLS to 0 so we don't have
 | 
						|
	  to compile and link in the gettext stuff
 | 
						|
 | 
						|
Makefile.in,lib/sh/Makefile.in,builtins/Makefile.in
 | 
						|
	- update dependencies on bashintl.h and include/gettext.h
 | 
						|
 | 
						|
				   12/19
 | 
						|
				   -----
 | 
						|
{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c
 | 
						|
{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c
 | 
						|
{subst,test,trap,variables,version,xmalloc}.c
 | 
						|
builtins/{common,evalfile,getopt}.c
 | 
						|
builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def
 | 
						|
builtins/{hash,help,history,jobs,kill,let,printf,pushd,read,return,set}.def
 | 
						|
builtins/{setattr,shift,shopt,source,suspend,type,ulimit,umask}.def
 | 
						|
lib/sh/{fmtulong,netopen}.c
 | 
						|
lib/malloc/{malloc,stats,table,watch}.c
 | 
						|
	- mark up strings in source files for gettext processing
 | 
						|
 | 
						|
lib/malloc/imalloc.h
 | 
						|
	- include "bashintl.h" if SHELL is defined, otherwise make _(x) an
 | 
						|
	  identity define
 | 
						|
 | 
						|
lib/malloc/Makefile.in
 | 
						|
	- add dependencies on ${topdir}/bashintl.h and ${BASHINCDIR}/gettext.h
 | 
						|
 | 
						|
				   12/21
 | 
						|
				   -----
 | 
						|
bashline.c
 | 
						|
	- make sure we index into rl_line_buffer with indexes > 0 in
 | 
						|
	  attempt_shell_completion
 | 
						|
 | 
						|
				   12/31
 | 
						|
				   -----
 | 
						|
Makefile.in
 | 
						|
	- descend into `po' and run make recursively for the various clean
 | 
						|
	  targets
 | 
						|
 | 
						|
				    1/4
 | 
						|
				    ---
 | 
						|
include/shmbutil.h
 | 
						|
	- two new macros:  BACKUP_CHAR(str, strsize, i), which backs up one
 | 
						|
	  multibyte character in STR starting at index I, and
 | 
						|
	  BACKUP_CHAR_P(str, strsize, p), which backs up one multibyte
 | 
						|
	  character in STR starting at P, which is a char *
 | 
						|
 | 
						|
				    1/6
 | 
						|
				    ---
 | 
						|
pcomplete.c
 | 
						|
	- in pcomp_filename_completion_function, use the quote character
 | 
						|
	  readline found (and assigned to rl_complete_quote_character) when
 | 
						|
	  dequoting the filename by a completion call from readline (when
 | 
						|
	  rl_dispatching != 0)
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- ditto for bash_directory_completion_matches
 | 
						|
 | 
						|
				    1/7
 | 
						|
				    ---
 | 
						|
lib/readline/complete.c
 | 
						|
	- new variable,  rl_completion_found_quote, set to non-zero value if
 | 
						|
	  readline finds what it thinks is quoting in the word to be completed
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declaration for rl_completion_found_quote
 | 
						|
 | 
						|
				    1/8
 | 
						|
				    ---
 | 
						|
lib/readline/doc/rltech.texi
 | 
						|
	- documented rl_completion_found_quote
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- in compute_lcd_of_matches, if it looks like what the user typed was
 | 
						|
	  dequoted before generating filename matches, dequote the user's
 | 
						|
	  text again before figuring out the case-insensitive lcd
 | 
						|
 | 
						|
				    1/9
 | 
						|
				    ---
 | 
						|
lib/readline/display.c
 | 
						|
	- fix from Edward Catmur <ed@catmur.co.uk> to logic that handles
 | 
						|
	  invisible characters in prompt string.  Original code was wrong
 | 
						|
	  about local_prompt_prefix; it gave incorrect results when prompt
 | 
						|
	  contained invisible characters after a line break
 | 
						|
 | 
						|
				   1/10
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- new function, mb_substring(), does character (possibly multibyte)
 | 
						|
	  oriented rather than strictly byte-oriented substring extraction.
 | 
						|
	  The passed indices, rather than strictly indexing into the string,
 | 
						|
	  indicate character positions that need to be calculated.  From
 | 
						|
	  Tim Waugh <twaugh@redhat.com>
 | 
						|
	- change parameter_brace_substring to use mb_substring if necessary
 | 
						|
 | 
						|
included/shmbutil.h
 | 
						|
	- new define SADD_MBQCHAR_BODY, common code for adding a quoted
 | 
						|
	  (preceded by CTLESC) multibyte character to an accumulating string
 | 
						|
	  in the subst.c expansion code
 | 
						|
 | 
						|
subst.c
 | 
						|
	- use SADD_MBQCHAR_BODY in expand_word_internal
 | 
						|
	- new static function, mb_getcharlens, allocates and returns an array
 | 
						|
	  of character lengths for (possibly multibyte) characters in the
 | 
						|
	  argument string
 | 
						|
	- change pattern matching operations to use while loops instead of
 | 
						|
	  for loops to handle multibyte characters better (no more simple
 | 
						|
	  increment or decrement)
 | 
						|
	- change pattern matching operations to use multibyte character
 | 
						|
	  operations instead of simple increments and decrements.  Don't
 | 
						|
	  use BACKUP_CHAR_P -- use the mblen array instead, because that
 | 
						|
	  avoids the N**2 behavior of having to count from the beginning
 | 
						|
	  of the string each time you want to back up one character.  Changes
 | 
						|
	  to remove_pattern and match_pattern
 | 
						|
 | 
						|
				   1/12
 | 
						|
				   ----
 | 
						|
lib/readline/display.c
 | 
						|
	- make expand_prompt count multbyte characters in the prompt string
 | 
						|
	  by using _rl_find_next_mbchar (and copying possibly more than one
 | 
						|
	  byte) instead of a simple increment and single byte copy
 | 
						|
 | 
						|
				   1/13
 | 
						|
				   ----
 | 
						|
lib/readline/display.c
 | 
						|
	- expand_prompt takes a new reference argument -- it returns
 | 
						|
	  the actual count of (possibly multibyte) characters displayed
 | 
						|
	  on the screen
 | 
						|
	- don't short-circuit in expand_prompt unless we're not going to
 | 
						|
	  be using any multibyte characters
 | 
						|
	- change calls  to expand_prompt to pass an argument for the
 | 
						|
	  number of physical characters the prompt occupies
 | 
						|
	  (prompt_physical_chars)
 | 
						|
	- initialize `lpos' (the physical cursor position) from
 | 
						|
	  prompt_physical_chars in rl_redisplay
 | 
						|
 | 
						|
lib/readline/mbutil.c
 | 
						|
	- in _rl_find_prev_mbchar_internal, if mbrtowc returns -1 or -2, and
 | 
						|
	  we assume that the character is a single-byte char, make sure we
 | 
						|
	  update `prev' so it doesn't get lost.  Fixes problems encountered
 | 
						|
	  when a non-ascii char is the last char on the line and we're moving
 | 
						|
	  back past it with ^B, and other display problems caused by the same
 | 
						|
	  situation
 | 
						|
 | 
						|
				   1/15
 | 
						|
				   ----
 | 
						|
lib/readline/doc/rltech.texi
 | 
						|
	- document RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE in the
 | 
						|
	  description of rl_expand_prompt()
 | 
						|
 | 
						|
				   1/20
 | 
						|
				   ----
 | 
						|
bashline.c
 | 
						|
	- in initialize_readline, make sure M-C-j and M-C-m are still bound to
 | 
						|
	  vi-editing-mode before unbinding them -- they may have been rebound
 | 
						|
	  in an inputrc
 | 
						|
 | 
						|
variables.c
 | 
						|
	- in unbind_variable, unset attributes other than `local' and exported
 | 
						|
	  (if the variable came from a temporary environment) when unsetting a
 | 
						|
	  local variable inside a function
 | 
						|
 | 
						|
				   1/21
 | 
						|
				   ----
 | 
						|
configure.in
 | 
						|
	- add libintl build directory to the list of include directories if
 | 
						|
	  it's being built (using INTL_BUILDDIR)
 | 
						|
 | 
						|
Makefile.in,{builtins,lib/{sh,malloc}}/Makefile.in
 | 
						|
	- substitute LIBBUILD as ${BUILD_DIR}/${LIBSUBDIR}
 | 
						|
	- define INTL_BUILDDIR as ${LIBBUILD}/intl
 | 
						|
 | 
						|
{builtins,lib/sh}/Makefile.in
 | 
						|
	- make sure INTL_INC is added to  the list of include directories
 | 
						|
	- make sure INTL_LIBSRC is defined with the correct value
 | 
						|
 | 
						|
{configure,Makefile,{builtins,lib/sh}/Makefile}.in
 | 
						|
	- substitute LIBINTL_H as ${INTL_BUILDDIR}/libintl.h
 | 
						|
 | 
						|
Makefile.in,builtins/Makefile.iin
 | 
						|
	- all files depending on bashintl.h also depend on ${LIBINTL_H}
 | 
						|
	  (which may be empty)
 | 
						|
 | 
						|
Makefile.in
 | 
						|
	- make a rule telling how to build lib/intl/libintl.h if necessary
 | 
						|
 | 
						|
				   1/24
 | 
						|
				   ----
 | 
						|
builtins/read.def
 | 
						|
	- make sure that the array name supplied as an argument to -a is a
 | 
						|
	  valid identifier
 | 
						|
 | 
						|
parse.y
 | 
						|
	- make the \W expansion abbreviate $HOME with a ~ (seems to be more
 | 
						|
	  useful)
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- document new behavior of \W
 | 
						|
 | 
						|
subst.c
 | 
						|
	- make sure parameter_brace_expand_rhs uses the first character of
 | 
						|
	  $IFS when making the string to return from the expanded word
 | 
						|
	  (which, in the case of "$@" or $@, contains multiple words that
 | 
						|
	  need to be separated)
 | 
						|
 | 
						|
				   1/25
 | 
						|
				   ----
 | 
						|
builtins/common.c
 | 
						|
	- change get_job_spec to make `%' by itself or an empty argument
 | 
						|
	  return NO_JOB
 | 
						|
 | 
						|
jobs.h
 | 
						|
	- new possible value for a job spec return value:  BAD_JOBSPEC
 | 
						|
	  (for syntactically invalid specs, like the empty string)
 | 
						|
 | 
						|
shell.c
 | 
						|
	- in open_shell_script, check to see whether or not we can find and
 | 
						|
	  open the filename argument before setting dollar_vars[0] or
 | 
						|
	  manipulating BASH_SOURCE, so the error messages come out better
 | 
						|
 | 
						|
subst.c
 | 
						|
	- in string_list_internal, short-circuit right away to savestring()
 | 
						|
	  if the list only has a single element
 | 
						|
 | 
						|
				   1/28
 | 
						|
				   ----
 | 
						|
lib/readline/rltypedefs.h
 | 
						|
	- new set of typedefs for functions returning char * with various
 | 
						|
	  arguments (standard set)
 | 
						|
 | 
						|
lib/readline/complete.c
 | 
						|
	- new function pointer, rl_completion_word_break_hook, called by
 | 
						|
	  _rl_find_completion_word, used to set word break characters at
 | 
						|
	  completion time, allowing them to be position-based
 | 
						|
 | 
						|
lib/readline/doc/rltech.texi
 | 
						|
	- documented rl_completion_word_break_hook
 | 
						|
 | 
						|
lib/readline/kill.c
 | 
						|
	- added new rl_unix_filename_rubout, which deletes one filename
 | 
						|
	  component in a Unix pathname backward (delimiters are whitespace
 | 
						|
	  and `/')
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declaration for rl_unix_filename_rubout
 | 
						|
 | 
						|
lib/readline/funmap.c
 | 
						|
	- new bindable readline command `unix-filename-rubout'
 | 
						|
 | 
						|
lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
 | 
						|
	- documented `unix-filename-rubout'
 | 
						|
 | 
						|
				   1/29
 | 
						|
				   ----
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- change history_tokenize_internal to handle non-whitespace delimiter
 | 
						|
	  characters by creating separate fields (like the shell does when
 | 
						|
	  splitting on $IFS)
 | 
						|
 | 
						|
				   1/30
 | 
						|
				   ----
 | 
						|
lib/glob/xmbsrtowcs.c
 | 
						|
	- new function, xdupmbstowcs, for convenience:  calls xmbsrtowcs
 | 
						|
	  while allocating memory for the new wide character string
 | 
						|
	- some small efficiency improvments to xmbsrtowcs
 | 
						|
 | 
						|
include/shmbutil.h
 | 
						|
	- extern declaration for xdupmbstowcs
 | 
						|
 | 
						|
lib/glob/strmatch.h
 | 
						|
	- include config.h for definition of HANDLE_MULTIBYTE
 | 
						|
	- remove the HAVE_LIBC_FNM_EXTMATCH tests
 | 
						|
	- new extern declaration for wcsmatch(whchar_t *, wchar_t *, int)
 | 
						|
 | 
						|
configure.in
 | 
						|
	- remove call to BASH_FUNC_FNMATCH_EXTMATCH; it's no longer used
 | 
						|
 | 
						|
lib/glob/smatch.c
 | 
						|
	- simplify xstrmatch() by using xdupmbstowcs() instead of inline code
 | 
						|
 | 
						|
lib/glob/glob.c
 | 
						|
	- modify mbskipname() to avoid the use of alloca
 | 
						|
	- simplify mbskipname() by using xdupmbstowcs() instead of inline code
 | 
						|
	- simplify glob_pattern_p() by using xdupmbstowcs() instead of
 | 
						|
	  inline code
 | 
						|
	- fix memory leak in wdequote_pathname
 | 
						|
	- simplify wdequote_pathname() by using xdupmbstowcs() instead of
 | 
						|
	  inline code
 | 
						|
 | 
						|
lib/glob/strmatch.c
 | 
						|
	- new function, wcsmatch(), `exported' wide-character equivalent of
 | 
						|
	  strmatch()
 | 
						|
 | 
						|
subst.c
 | 
						|
	- old match_pattern is now match_upattern
 | 
						|
	- match_pattern now either calls match_upattern or converts
 | 
						|
	  mbstrings to wide chars and calls match_wpattern
 | 
						|
	- match_upattern reverted to old non-multibyte code
 | 
						|
	- new function: match_pattern_wchar, wide character version of
 | 
						|
	  match_pattern_char
 | 
						|
 | 
						|
				    2/1
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- old remove_pattern is now remove_upattern
 | 
						|
	- remove_upattern reverted to old non-multibyte code (pre-Waugh patch)
 | 
						|
	- new multibyte version of remove_pattern: remove_wpattern
 | 
						|
	- remove_pattern now calls either remove_upattern or converts a
 | 
						|
	  multibyte string to a wide character string and calls
 | 
						|
	  remove_wpattern
 | 
						|
	- new function, wcsdup, wide-character version of strdup(3)
 | 
						|
 | 
						|
				    2/4
 | 
						|
				    ---
 | 
						|
print_cmd.c
 | 
						|
	- temporarily translate a >&filename redirection from
 | 
						|
	  r_duplicating_output_word to r_err_and_out (as the expansion code
 | 
						|
	  in redir.c does) so it prints without a leading `1' (file
 | 
						|
	  descriptor)
 | 
						|
 | 
						|
				    2/5
 | 
						|
				    ---
 | 
						|
aclocal.m4
 | 
						|
	- add a check for wcsdup to BASH_CHECK_MULTIBYTE
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- add HAVE_WCSDUP define
 | 
						|
 | 
						|
				    2/9
 | 
						|
				    ---
 | 
						|
builtins/shift.def
 | 
						|
	- fix a call to sh_erange that possibly dereferences a NULL pointer
 | 
						|
 | 
						|
				   2/12
 | 
						|
				   ----
 | 
						|
general.c
 | 
						|
	- start at a general set of file property checking functions:
 | 
						|
	  file_isdir(), file_iswdir() (is writable directory)
 | 
						|
 | 
						|
general.h
 | 
						|
	- extern declarations for new functions
 | 
						|
 | 
						|
lib/sh/tmpfile.c
 | 
						|
	- use file_iswdir() to make sure the temporary directory used for
 | 
						|
	  here documents and other temp files is writable in get_sys_tmpdir()
 | 
						|
 | 
						|
				   2/17
 | 
						|
				   ----
 | 
						|
bashline.c
 | 
						|
	- fix conditional binding of emacs-mode M-~ -- there is a default
 | 
						|
	  binding for it (rl_tilde_expand), so a straight call to
 | 
						|
	  rl_bind_key_if_unbound_in_map doesn't do the right thing
 | 
						|
 | 
						|
				   2/27
 | 
						|
				   ----
 | 
						|
[bash-3.0-beta1 released]
 | 
						|
 | 
						|
				   2/29
 | 
						|
				   ----
 | 
						|
subst.c
 | 
						|
	- fixed expansion so referencing $a, when a is an array variable
 | 
						|
	  without an element assigned to index 0, exits the shell when
 | 
						|
	  `-u' is enabled
 | 
						|
 | 
						|
expr.c
 | 
						|
	- make the exponentiation operator (**) associative, so things like
 | 
						|
	  2**3**4  work right (change `if' to `while')
 | 
						|
 | 
						|
				    3/3
 | 
						|
				    ---
 | 
						|
lib/sh/strftime.c
 | 
						|
	- SCO Unix 3.2, like Solaris, requires that the system's `timezone'
 | 
						|
	  variable be declared as long
 | 
						|
 | 
						|
lib/readline/{bind,histfile,input,parens}.c
 | 
						|
	- changes for Tandem (including `floss.h' (?))
 | 
						|
 | 
						|
				    3/4
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- change param_expand to quote the entire expanded string instead
 | 
						|
	  of just the escape characters if the expansion appears between
 | 
						|
	  double quotes or in a here-document (for simple variable expansions
 | 
						|
	  or expansions of positional parameters)
 | 
						|
 | 
						|
				    3/8
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- analogous changes to parameter_brace_expand_word to fix the same
 | 
						|
	  quoting problem as on 3/4; fix callers to understand that  the
 | 
						|
	  value returned might be quoted now and should be dequoted if
 | 
						|
	  necessary
 | 
						|
	- add a `quoted' argument to get_var_and_type, change callers
 | 
						|
	- change today's fix and fix from 3/4 to not call quote_string if the
 | 
						|
	  value is "" (because quote_string turns that into CTLNUL\0)
 | 
						|
 | 
						|
				    3/9
 | 
						|
				    ---
 | 
						|
builtins/cd.def
 | 
						|
	- resetpwd() now takes a `caller' argument so it can be used by pwd
 | 
						|
	  as well as cd
 | 
						|
	- change pwd_builtin to call resetpwd() if sh_physpath() fails to
 | 
						|
	  return a valid pathname
 | 
						|
 | 
						|
				   3/14
 | 
						|
				   ----
 | 
						|
expr.c
 | 
						|
	- reworked exp0 and readtok() to make post-increment and post-decrement
 | 
						|
	  into real tokens, which may be separated from their accompanying
 | 
						|
	  variables by whitesapce
 | 
						|
	- made analogous changes to readtok() to make pre-increment and
 | 
						|
	  pre-decrement work when separated from their accompanying identifier
 | 
						|
	  by whitespace
 | 
						|
 | 
						|
				   3/18
 | 
						|
				   ----
 | 
						|
lib/readline/misc.c
 | 
						|
	- in rl_maybe_unsave_line, don't force rl_replace_line to clear
 | 
						|
	  the undo_list, since it might point directly at an undo list
 | 
						|
	  from a history entry (to which we have no handle)
 | 
						|
 | 
						|
				   3/19
 | 
						|
				   ----
 | 
						|
lib/readline/display.c
 | 
						|
	- rl_save_prompt and rl_restore_prompt now save and restore the value
 | 
						|
	  of prompt_physical_chars
 | 
						|
	- set prompt_physical_chars in rl_redisplay when expand_prompt has
 | 
						|
	  not been called (e.g., when rl_display_prompt is set and is not
 | 
						|
	  equal to rl_prompt, like when searching)
 | 
						|
 | 
						|
lib/readline/histexpand.c
 | 
						|
	- don't call add_history in history_expand if the `:p' modifier is
 | 
						|
	  supplied; leave that to the calling application.  This means that
 | 
						|
	  `history -p', for example, will not add anything to the history
 | 
						|
	  list (as documented), nor will history expansions invoked by
 | 
						|
	  emacs-mode M-C-e line editing
 | 
						|
 | 
						|
config-bot.h
 | 
						|
	- check whether HAVE_DECL_SYS_SIGLIST is defined to 1 rather than just
 | 
						|
	  defined, to work around newer versions of autoconf defining it to 0
 | 
						|
 | 
						|
config.h.in
 | 
						|
	- change default status of HAVE_MALLOC to #undef instead of #define
 | 
						|
 | 
						|
bashhist.c
 | 
						|
	- extern declarations for rl_done and rl_dispatching
 | 
						|
	- don't call re_edit from pre_process_line unless rl_dispatcing is zero,
 | 
						|
	  so we don't call it from something like shell-expand-line
 | 
						|
	- change pre_process_line to add an expanded history specification
 | 
						|
	  that returned `print only' to the history list, since history_expand
 | 
						|
	  no longer does it (and, when using readline, do it only when
 | 
						|
	  rl_dispatching is zero)
 | 
						|
 | 
						|
				   3/22
 | 
						|
				   ----
 | 
						|
config.h.in,aclocal.m4
 | 
						|
	- change bash-specific functions that look in struct dirent to define
 | 
						|
	  HAVE_STRUCT_DIRENT_xxx, like AC_CHECK_MEMBERS does (though the
 | 
						|
	  functions are otherwise the same)
 | 
						|
	- new function, BASH_STRUCT_DIRENT_D_NAMLEN, define
 | 
						|
	  HAVE_STRUCT_DIRENT_D_NAMLEN if struct dirent has a `d_namlen' member
 | 
						|
 | 
						|
configure.in
 | 
						|
	- call BASH_STRUCT_DIRENT_D_NAMLEN
 | 
						|
 | 
						|
include/posixdir.h
 | 
						|
	- use new and renamed HAVE_STRUCT_DIRENT_D_xxx defines
 | 
						|
 | 
						|
				    4/7
 | 
						|
				    ---
 | 
						|
builtins/cd.def
 | 
						|
	- ensure that we print out a non-null pathname after getting a
 | 
						|
	  directory from CDPATH and canonicalizing it (e.g., if the result
 | 
						|
	  exceeds PATH_MAX in length and the_current_working_directory is
 | 
						|
	  set to NULL)
 | 
						|
 | 
						|
				   4/12
 | 
						|
				   ----
 | 
						|
print_cmd.c
 | 
						|
	- new function to print out assignment statements when `set -x' has
 | 
						|
	  been enabled: xtrace_print_assignment
 | 
						|
 | 
						|
externs.h
 | 
						|
	- extern declaration for xtrace_print_assignment
 | 
						|
 | 
						|
				   4/13
 | 
						|
				   ----
 | 
						|
{subst,variables}.c
 | 
						|
	- call xtrace_print_assignment instead of using inline code
 | 
						|
 | 
						|
jobs.c
 | 
						|
	- if turning on job control when it was previously off, set
 | 
						|
	  pipeline_pgrp to 0 in set_job_control so make_child puts
 | 
						|
	  subsequent children in their own process group
 | 
						|
 | 
						|
				   4/14
 | 
						|
				   ----
 | 
						|
general.c
 | 
						|
	- new function, legal_alias_name, called to decide whether an
 | 
						|
	  argument to add_alias is a valid alias name -- essentially any
 | 
						|
	  character except one which must be quoted to the shell parser
 | 
						|
	  and `/'
 | 
						|
 | 
						|
general.h
 | 
						|
	- new extern declaration for legal_alias_name
 | 
						|
 | 
						|
builtins/alias.def
 | 
						|
	- `unalias' now returns failure status if no NAME arguments are
 | 
						|
	  supplied and -a is not given
 | 
						|
	- call legal_alias_name to make sure alias name is valid before
 | 
						|
	  calling add_alias from alias_builtin
 | 
						|
 | 
						|
				   4/19
 | 
						|
				   ----
 | 
						|
include/shmbutil.h
 | 
						|
	- include <config.h> for definition of HANDLE_MULTIBYTE rather than
 | 
						|
	  duplicating logic
 | 
						|
 | 
						|
				   4/20
 | 
						|
				   ----
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- make sure $0 is consistently referred to as a `special parameter'
 | 
						|
	- document which characters are now not allowed in alias names
 | 
						|
 | 
						|
				   4/23
 | 
						|
				   ----
 | 
						|
 | 
						|
builtins/{jobs,kill,wait}.def
 | 
						|
	- removed requirement that job control be enabled to use job control
 | 
						|
	  notation, as SUSv3 implies
 | 
						|
 | 
						|
subst.c
 | 
						|
	- based on a message from David Korn, change param_expand to not call
 | 
						|
	  string_list_dollar_star if the only quoting is Q_HERE_DOCUMENT --
 | 
						|
	  quoted here documents are like double quoting, but not exactly
 | 
						|
	- analogous changes to list_remove_pattern and pos_params
 | 
						|
 | 
						|
				   4/24
 | 
						|
				   ----
 | 
						|
lib/readline/doc/rluser.texi
 | 
						|
	- fix error in description of emacs-mode C-xC-e command (uses $VISUAL
 | 
						|
	  instead of $FCEDIT)
 | 
						|
 | 
						|
				   4/28
 | 
						|
				   ----
 | 
						|
support/bashbug.sh
 | 
						|
	- integrate a patch from Stefan Nordhausen
 | 
						|
	  <nordhaus@informatik.hu-berlin.de> that reduces race conditions
 | 
						|
	  by using a temporary directory inside $TMPDIR and creating the
 | 
						|
	  temp files in that
 | 
						|
 | 
						|
				   4/30
 | 
						|
				   ----
 | 
						|
builtins/common.c
 | 
						|
	- use pathconf(".", _PC_PATH_MAX) where available to size the argument
 | 
						|
	  to getcwd() rather than using a straight PATH_MAX
 | 
						|
 | 
						|
builtins/cd.def
 | 
						|
	- if get_working_directory fails and returns null (causing resetpwd
 | 
						|
	  to return NULL), use set_working_directory to set $PWD to the
 | 
						|
	  absolute pathname for which chdir just succeeded
 | 
						|
 | 
						|
				    5/1
 | 
						|
				    ---
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- in rl_vi_change_to, call _rl_vi_set_last with rl_numeric_arg instead
 | 
						|
	  of `last', since they're equal at call time and rl_vi_domove can
 | 
						|
	  change rl_numeric_arg (which vi apparently updates).  Fixes redo bug
 | 
						|
	  of `c2....' reported by Marion Berryman <mwberryman@copper.net>
 | 
						|
 | 
						|
				    5/4
 | 
						|
				    ---
 | 
						|
parse.y
 | 
						|
	- fix decode_prompt_string to properly deal with strftime() returning 0
 | 
						|
 | 
						|
				    5/6
 | 
						|
				    ---
 | 
						|
variables.c
 | 
						|
	- in make_local_array_variable, return an already-existing local array
 | 
						|
	  variable immediately rather than creating a new array (causing a
 | 
						|
	  memory leak)
 | 
						|
 | 
						|
				    5/8
 | 
						|
				    ---
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- change rl_vi_domove to set rl_explicit_arg before calling
 | 
						|
	  rl_digit_loop1 so that multi-digit numeric arguments work right
 | 
						|
	- _rl_vi_last_command is no longer static
 | 
						|
 | 
						|
lib/readline/rlprivate.h
 | 
						|
	- new extern declaration for _rl_vi_last_command
 | 
						|
 | 
						|
lib/readline/text.c
 | 
						|
	- change rl_newline to only call _rl_vi_reset_last if the last command
 | 
						|
	  (_rl_vi_last_command) is not a text modification command.  This lets
 | 
						|
	  the last-command and last-argument work across command lines
 | 
						|
 | 
						|
				   5/13
 | 
						|
				   ----
 | 
						|
builtins/common.c
 | 
						|
	- use getcwd(0,0) rather than providing a fixed pathname with a fixed
 | 
						|
	  length (PATH_MAX) so getcwd() will allocate sufficient memory
 | 
						|
 | 
						|
aclocal.m4
 | 
						|
	- change BASH_FUNC_GETCWD to check whether or not getcwd(0,0) will
 | 
						|
	  allocate memory for the returned value -- nobody implements that
 | 
						|
	  and getcwd-via-popen, so it should capture the old test as well
 | 
						|
 | 
						|
				   5/27
 | 
						|
				   ----
 | 
						|
 | 
						|
builtins/trap.def
 | 
						|
	- the historical behavior of assuming that a signal's handling should
 | 
						|
	  be set to its original disposition is only in effect if a single
 | 
						|
	  argument is given, otherwise the first argument is assumed to be a
 | 
						|
	  command to execute
 | 
						|
	- when in posix mode, if trap gets a single argument, display an
 | 
						|
	  error message and return EX_USAGE
 | 
						|
	- change the help message and usage string to better explain trap's
 | 
						|
	  behavior
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- describe the new default behavior when the first argument is a
 | 
						|
	  signal spec
 | 
						|
	- note that signal names are case insensitive and the SIG prefix is
 | 
						|
	  optional in arguments to `trap'
 | 
						|
	- note that signal name arguments to `kill' are case-insensitive
 | 
						|
 | 
						|
lib/readline/display.c
 | 
						|
	- make sure rl_on_new_line_with_prompt sets rl_display_prompt to
 | 
						|
	  rl_prompt (just to make sure it's set)
 | 
						|
	- have rl_on_new_line_with_prompt use local_prompt if it's set
 | 
						|
 | 
						|
				    6/2
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- in string_extract_double_quoted, cope with extract_delimited_string
 | 
						|
	  returning NULL, as it can when attempting completion on an unclosed
 | 
						|
	  command substitution
 | 
						|
 | 
						|
				   6/24
 | 
						|
				   ----
 | 
						|
lib/readline/complete.c
 | 
						|
	- change print_filename to add a `/' to listed directory names if
 | 
						|
	  `mark-directories' has been enabled
 | 
						|
 | 
						|
builtins/umask.def
 | 
						|
	- make sure that the mask passed to parse_symbolic_mode has all but
 | 
						|
	  the operative low eight bits masked off, to avoid complementing
 | 
						|
	  all 0s to -1, which is the error return code.  This makes things
 | 
						|
	  like `a=rwx' and `ugo=rwx' work and turn off the umask
 | 
						|
 | 
						|
				   6/26
 | 
						|
				   ----
 | 
						|
builtins/getopts.def
 | 
						|
	- when `getopts' reaches the end of options, unset OPTARG before
 | 
						|
	  returning EOF.  In response to a bug report from Apple
 | 
						|
 | 
						|
configure.in
 | 
						|
	- when cross-compiling, don't set CPPFLAGS_FOR_BUILD and
 | 
						|
	  LDFLAGS_FOR_BUILD from CPPFLAGS and LDFLAGS, respectively, since
 | 
						|
	  those are for the target instead of the build platform (report
 | 
						|
	  from robert@schwebel.de)
 | 
						|
 | 
						|
shell.c
 | 
						|
	- a shell whose standard error (but not standard output) is directed
 | 
						|
	  to a terminal should be interactive, according to POSIX/SUS.  This
 | 
						|
	  means that sh > sh.out will start an interactive shell.  Bug report
 | 
						|
	  from llattanzi@apple.com
 | 
						|
 | 
						|
doc/{bash.1,bashref.texi}
 | 
						|
	- change mention of standard output to standard error in definition
 | 
						|
	  of interactive shell
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- new convenience function, rl_vi_start_inserting, calls
 | 
						|
	  _rl_vi_set_last to save the last textmod command state and then calls
 | 
						|
	  rl_vi_insertion_mode to enter insert mode
 | 
						|
	- change functions to use rl_vi_start_inserting
 | 
						|
 | 
						|
lib/readline/readline.h
 | 
						|
	- extern declaration for rl_vi_start_inserting
 | 
						|
 | 
						|
bashline.c
 | 
						|
	- new function for vi-mode completion, bash_vi_complete.  Does
 | 
						|
	  filename expansion as POSIX specifies, unlike the default readline
 | 
						|
	  bindings (which don't know about globbing).  Bound to `\', `*',
 | 
						|
	  and `=' in vi command keymap.  Internals very similar to
 | 
						|
	  rl_vi_complete; just calls bash glob expansion functions
 | 
						|
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- change rl_vi_change_char so that an entire change is a single
 | 
						|
	  undoable event, rather than each individual change in a [count]r
 | 
						|
	  command
 | 
						|
	- fix rl_vi_change_char so that replacing characters up to EOL works
 | 
						|
	  rather than generating rl_ding
 | 
						|
	- fix rl_vi_change_case so that replacing characters up to EOL works
 | 
						|
	  rather than generating rl_ding
 | 
						|
 | 
						|
				   6/28
 | 
						|
				   ----
 | 
						|
builtins/echo.def
 | 
						|
	- call clearerr(stdout) before writing anything and testing its
 | 
						|
	  failure or success
 | 
						|
 | 
						|
				   6/29
 | 
						|
				   ----
 | 
						|
bashline.c
 | 
						|
	- only set rl_explicit_arg in bash_glob_complete_word if readline is
 | 
						|
	  in emacs mode; let bash_vi_complete take care of setting it in vi
 | 
						|
	  mode
 | 
						|
	- fix bash_vi_complete to only set rl_explicit_arg unless the posix
 | 
						|
	  conditions are met: no globbing characters in the vi `bigword'
 | 
						|
	  being completed
 | 
						|
 | 
						|
				   6/30
 | 
						|
				   ----
 | 
						|
[bash-3.0-rc1 released]
 | 
						|
 | 
						|
				    7/1
 | 
						|
				    ---
 | 
						|
lib/readline/complete.c
 | 
						|
	- make sure `extension_char' is initialized before deciding whether
 | 
						|
	  or not the append a `/' to a possible completion when visible-stats
 | 
						|
	  is not enabled
 | 
						|
 | 
						|
				    7/2
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- fix a boundary overrun in string_extract_double_quoted that could
 | 
						|
	  occur when the word completion code attempts to expand an incomplete
 | 
						|
	  construct (like a quoted unclosed command substitution)
 | 
						|
 | 
						|
				    7/4
 | 
						|
				    ---
 | 
						|
subst.c
 | 
						|
	- set tempenv_assign_error to non-zero if an assignment to the
 | 
						|
	  temporary environment fails for some reason (e.g., attempted
 | 
						|
	  assignment to a readonly variable)
 | 
						|
 | 
						|
execute_cmd.c
 | 
						|
	- fix execute_simple_command to force a non-interactive shell in
 | 
						|
	  POSIX mode to exit if an assignment to the temporary environment
 | 
						|
	  preceding a special builtin fails (bug report from
 | 
						|
	  llattanzi@apple.com)
 | 
						|
 | 
						|
				    7/5
 | 
						|
				    ---
 | 
						|
bashline.c
 | 
						|
	- in bash_directory_completion_hook, don't perform word expansions
 | 
						|
	  if the filename appears to have been completed from the file
 | 
						|
	  system rather than typed in by the user.  Bug reported by Tim
 | 
						|
	  Waugh <twaugh@redhat.com>
 | 
						|
 | 
						|
				    7/7
 | 
						|
				    ---
 | 
						|
lib/readline/misc.c
 | 
						|
	- if _rl_maybe_save_line is being asked to save a line other than
 | 
						|
	  what's already saved, free up the current saved line and save the
 | 
						|
	  current contents of rl_line_buffer.  Bug reported by
 | 
						|
	  llattanzi@apple.com
 | 
						|
 | 
						|
				   7/12
 | 
						|
				   ----
 | 
						|
lib/readline/input.c
 | 
						|
	- do better EOF detection in rl_gather_tyi -- if a read returns 0 when
 | 
						|
	  the fd is in non-blocking mode, stuff an EOF into the input stream
 | 
						|
	  (reported by mattias@virtutech.se)
 | 
						|
 | 
						|
				   7/13
 | 
						|
				   ----
 | 
						|
lib/readline/vi_mode.c
 | 
						|
	- make sure rl_vi_put honors `count' arguments and yanks things
 | 
						|
	  multiple times if requested
 | 
						|
 | 
						|
				   7/16
 | 
						|
				   ----
 | 
						|
builtins/umask.def
 | 
						|
	- make sure that the `who' part of the umask symbolic mode argument
 | 
						|
	  defaults to `a' if it's missing
 | 
						|
 | 
						|
flags.c
 | 
						|
	- make sure that maybe_make_restricted only gets called after the
 | 
						|
	  shell is initialized, so `bash -r' doesn't result in inappropriate
 | 
						|
	  error messages
 | 
						|
 | 
						|
[bash-3.0 frozen]
 |