summaryrefslogtreecommitdiff
path: root/CWRU
diff options
context:
space:
mode:
Diffstat (limited to 'CWRU')
-rw-r--r--CWRU/PLATFORMS40
-rw-r--r--CWRU/POSIX.NOTES109
-rw-r--r--CWRU/README25
-rw-r--r--CWRU/changelog7617
-rw-r--r--CWRU/mh-folder-comp449
-rw-r--r--CWRU/misc/aux-mach-desc20
6 files changed, 8163 insertions, 97 deletions
diff --git a/CWRU/PLATFORMS b/CWRU/PLATFORMS
index a792966b..e479a296 100644
--- a/CWRU/PLATFORMS
+++ b/CWRU/PLATFORMS
@@ -1,18 +1,28 @@
The version of bash in this directory has been compiled on the
following systems:
-Sun 690 SunOS 4.1.2
-Sparcstation SunOS 5.3
-Sparcstation NetBSD 0.9a
-386 BSDI BSD/386 1.0, 1.1
-NeXTstation NeXT OS 2.1
-IBM RT IBM/4.3 (AOS)
-Motorola Delta 88K SVR3.2
-Decstation 3100 Ultrix 4.3
-Dec 4000 Alpha AXP DEC OSF/1 V1.3
-386 ISC UNIX 3.0.1
-386 FreeBSD 1.1
-IBM RS/6000 AIX 3.2
-Amiga Amiga UNIX 2.1
-Sony NEWS 841 NEWS OS
-HP 9000/834 HP/UX 7.0
+By chet:
+
+SunOS 4.1.4
+SunOS 5.5
+BSDI BSD/OS 2.1
+Motorola SVR3.2
+FreeBSD 2.1.5
+AIX 4.2
+HP/UX 9.05, 10.01, 10.10, 10.20
+
+By other testers:
+
+SCO ODT 2.0
+SCO 3.2v5.0, 3.2v4.2
+SunOS 5.3
+SunOS 5.5
+BSD/OS 2.1
+FreeBSD 2.2
+SunOS 4.1.3
+Irix 5.3
+Irix 6.2
+Linux 2.0 (unknown distribution)
+Digital OSF/1 3.2
+GNU Hurd 0.1
+SVR4.2
diff --git a/CWRU/POSIX.NOTES b/CWRU/POSIX.NOTES
index bc9a969f..304289e1 100644
--- a/CWRU/POSIX.NOTES
+++ b/CWRU/POSIX.NOTES
@@ -1,63 +1,86 @@
-Starting bash with the `-posix' command-line option or setting the variable
-POSIXLY_CORRECT while bash is running will cause bash to conform more
-closely to the Posix.2 standard by changing the behavior to match that
-specified by Posix.2 in areas where the bash default differs.
+Bash POSIX Mode
+===============
-The following list is what's changed when `posixly_correct' is enabled:
+Starting Bash with the `--posix' command-line option or executing `set
+-o posix' while Bash is running will cause Bash to conform more closely
+to the POSIX.2 standard by changing the behavior to match that
+specified by POSIX.2 in areas where the Bash default differs.
-1. When a command in the hash table no longer exists, bash will re-search
- $PATH to find the new location.
+The following list is what's changed when `POSIX mode' is in effect:
-2. The >& redirection does not redirect stdout and stderr.
+ 1. When a command in the hash table no longer exists, Bash will
+ re-search `$PATH' to find the new location. This is also
+ available with `shopt -s checkhash'.
-3. The message printed by the job control code and builtins when a job
- exits with a non-zero status is `Done(status)'.
+ 2. The `>&' redirection does not redirect stdout and stderr.
-4. The <> redirection does not open a file for both stdin and stdout, but
- rather opens it for read-write on fd 0.
+ 3. The message printed by the job control code and builtins when a job
+ exits with a non-zero status is `Done(status)'.
-5. Reserved words may not be aliased.
+ 4. Reserved words may not be aliased.
-6. The Posix.2 PS1 and PS2 expansions of `!' -> history number and `!!' -> `!'
- are enabled.
+ 5. The POSIX.2 `PS1' and `PS2' expansions of `!' to the history
+ number and `!!' to `!' are enabled, and parameter expansion is
+ performed on the value regardless of the setting of the
+ `promptvars' option.
-7. Interactive comments are enabled by default. (Note that this version has
- them on by default anyway.)
+ 6. Interactive comments are enabled by default. (Note that Bash has
+ them on by default anyway.)
-8. The Posix.2 startup files are executed ($ENV) rather than the normal bash
- files.
+ 7. The POSIX.2 startup files are executed (`$ENV') rather than the
+ normal Bash files.
-9. Tilde expansion is only performed on assignments preceding a command name,
- rather than on all assignment statements on the line.
+ 8. Tilde expansion is only performed on assignments preceding a
+ command name, rather than on all assignment statements on the line.
-10. The default history file is ~/.sh_history (default value of $HISTFILE).
+ 9. The default history file is `~/.sh_history' (this is the default
+ value of `$HISTFILE').
-11. The output of `kill -l' prints all the signal names on a single line,
- separated by spaces.
+ 10. The output of `kill -l' prints all the signal names on a single
+ line, separated by spaces.
-12. Non-interactive shells exit if `file' in `. file' is not found.
+ 11. Non-interactive shells exit if FILENAME in `.' FILENAME is not
+ found.
-13. Redirection operators do not perform pathname expansion on the word
- in the redirection unless the shell is interactive
+ 12. Redirection operators do not perform filename expansion on the word
+ in the redirection unless the shell is interactive.
-14. Function names must be valid shell identifiers. That is, they may not
- contain characters other than letters, digits, and underscores, and
- may not start with a digit
+ 13. Function names must be valid shell `name's. That is, they may not
+ contain characters other than letters, digits, and underscores, and
+ may not start with a digit. Declaring a function with an illegal
+ name causes a fatal syntax error in non-interactive shells.
-There is other Posix.2 behavior that bash does not implement. Specifically:
+ 14. POSIX.2 `special' builtins are found before shell functions during
+ command lookup.
-1. There are no `special builtins' and `regular builtins'. All builtins
- are equivalent. This means that:
+ 15. If a POSIX.2 special builtin returns an error status, a
+ non-interactive shell exits. The fatal errors are those listed in
+ the POSIX.2 standard, and include things like passing incorrect
+ options, redirection errors, variable assignment errors for
+ assignments preceding the command name, and so on.
- o assignment statements affect the execution environment of all
- builtins, not just special ones
- o temporary assignments do not persist after Posix.2 special
- builtins complete
- o Functions are found before Posix.2 special builtins
- o The shell does not exit upon errors while executing Posix.2
- special builtins
+ 16. If the `cd' builtin finds a directory to change to using
+ `$CDPATH', the value it assigns to the `PWD' variable does not
+ contain any symbolic links, as if `cd -P' had been executed.
-2. $LINENO does not represent the line number of a command within a function
+ 17. A non-interactive shell exits with an error status if a variable
+ assignment error occurs when no command name follows the assignment
+ statements. A variable assignment error occurs, for example, when
+ trying to assign a value to a read-only variable.
+
+ 18. A non-interactive shell exits with an error status if the iteration
+ variable in a `for' statement or the selection variable in a
+ `select' statement is a read-only variable.
+
+ 19. Process substitution is not available.
+
+ 20. Assignment statements preceding POSIX.2 `special' builtins persist
+ in the shell environment after the builtin completes.
+
+
+There is other POSIX.2 behavior that Bash does not implement.
+Specifically:
+
+ 1. Assignment statements affect the execution environment of all
+ builtins, not just special ones.
-3. The arithmetic evaluator does not implement the `e ? e1 : e2' conditional
- expression
diff --git a/CWRU/README b/CWRU/README
index 8e3398d6..01c721a3 100644
--- a/CWRU/README
+++ b/CWRU/README
@@ -1,26 +1,17 @@
-Notes:
-
-ISC 386 machines must compile test.c without -O. The resultant shell dumps
-core when test is invoked.
-
-There have been reports that SCO 3.2v4.2 requires -DPRGP_PIPE in SCO_CFLAGS,
-and that it has too many -D defines for SCO's cc (rcc works).
-
Contents of this directory:
-CWRU.chlog - my change log since the last release
-
-KSH.README - list of similarities with ksh. Slightly out of date
-
-PLATFORMS.113 - list of platforms I have built this release on
+changelog - my change log since the last release
POSIX.NOTES - list of what changes for `posix mode'
README - this file
-RSH.README - explanation of the bash `restricted shell' mode
+misc - directory with some useful tools
+
+The following are distributed `as-is'. They will not apply without some
+modification.
+sh-redir-hack - diff to parse.y to get redirections before
+ compound commands
-misc - directory with some useful tools
-OS-BUGS - directory with messages detailing some OS bugs and
- the bash workarounds
+mh-folder-comp - diffs that reportedly add MH folder completion
diff --git a/CWRU/changelog b/CWRU/changelog
index 11d67757..d09a5b5a 100644
--- a/CWRU/changelog
+++ b/CWRU/changelog
@@ -781,6 +781,7619 @@ builtins/read.def
make sure we call dequote_string on each word of the input
before calling bind_variable with that string
+ 8/6
+ ---
+lib/readline/readline.h
+ - removed definition of rl_show_star -- the variable no longer
+ exists
+
+lib/readline/readline.h, lib/readline/history.h
+ - reorganized to follow texinfo manual structure
+
+lib/readline/bind.c
+ - rl_function_dumper is now static
+ - rl_list_funmap names does not take any arguments
+
+builtins/bind.def
+ - rl_list_funmap names does not take any arguments
+
+lib/readline/readline.c, lib/readline/signals.c
+ - rl_init_argument ->_rl_init_argument
+
+lib/readline/rltty.c
+ - remove declaration and references to output_was_flushed
+
+support/getcppsyms.c
+ - if __uxps__ is defined, define __uxps__ and __svr4__
+
+ 8/9
+ ---
+support/mkdist
+ - added a -r option to set the `root name' of the distribution
+ (e.g., `bash' or `readline')
+
+ 8/10
+ ----
+input.c
+ - if check_bash_input sees that default_buffered_input is about
+ to be the target of a redirection, but the buffered input stream
+ is not the current input stream (e.g. as the result of an
+ `eval' while in a script, change default_buffered_input to a
+ new fd and use a new variable `bash_input_fd_changed' to note
+ the change
+
+parse.y
+ - if pop_stream sees that default_buffered_input has changed while
+ a buffered stream was on the save stack (because
+ bash_input_fd_changed is non-zero), then make the popped stream
+ and the corresponding buffer use the new fd
+
+test.c
+ - fixed an off-by-one error in test_stat when testing /dev/fd/n.
+
+cpp-Makefile
+ - add -I$(incdir) to CPPFLAGS
+ - add `incdir = $(prefix)/include' assignment
+
+ 8/11
+ ----
+lib/readline/signals.c
+ - changed some calls to signal () to call rl_set_sighandler()
+ - call _rl_redisplay_after_sigwinch from the sigwinch handler
+ to do better redisplay of wrapped command lines and multi-line
+ prompts
+
+builtins/suspend.def
+ - changed some calls to signal () to call set_signal_handler()
+
+lib/readline/*.c
+ - include config.h before anything else if HAVE_CONFIG_H is defined
+
+lib/readline/readline.c
+ - renamed rl_set_mark to _rl_set_mark_at_pos
+ - call _rl_vi_initialize_line from rl_initialize if the current
+ editing mode is vi mode
+ - only output a term_cr in crlf if term_cr is non-null
+
+lib/readline/readline.h
+ - added declarations for rl_vi_set_mark and rl_vi_goto_mark
+
+lib/readline/readline.c, lib/readline/readline.h
+ - added a new bindable command to set the mark, rl_set_mark
+
+lib/readline/funmap.c
+ - new bindable function with name `set-mark', bound to rl_set_mark
+ - new bindable vi-mode functions with names `vi-set-mark' and
+ `vi-goto-mark'
+
+documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
+ - added documentation for `set-mark' (unbound)
+
+lib/readline/vi_mode.c
+ - new vi-command mode commands to save marks (the vi `m' command)
+ and go to saved marks (the ``' command)
+ - new function _rl_vi_initialize_line called from rl_initialize
+ to set up the line state in vi mode. Right now this just resets
+ all the marks
+
+lib/readline/vi_keymap.c
+ - new vi command-mode bindings to set the mark (`m') and to go to
+ a saved mark (``')
+
+documentation/readline.3
+ - added vi-set-mark and vi-goto-mark to list of key bindings for
+ vi command mode
+
+lib/readline/{readline.c,display.c}
+ - renamed term_xn to _rl_term_autowrap
+
+lib/readline/display.c
+ - new function _rl_redisplay_after_sigwinch to encapsulate the
+ necessary redisplay code after a SIGWINCH is received
+
+variables.c
+ - only call find_user_command on the shell name in shell_initialize
+ if shell_name is not an absolute program name
+ - call canonicalize_pathname on the full shell pathname after
+ calling make_absolute on it if the shell name starts with a `.'
+
+siglist.h
+ - FreeBSD does not need a definition of sys_siglist[]
+
+ 8/12
+ ----
+lib/readline/rltty.c
+ - don't try to use FLUSHO unless FLUSHO is defined
+
+cpp-Makefile
+ - make sure to pass $(CC) to the make in the lib/malloc subdirectory
+
+lib/readline/readline.c
+ - don't declare PC, UP, and BC as extern; it causes too many problems
+
+ 8/13
+ ----
+machines.h
+ - add -DNO_SBRK_DECL to SYSDEP_CFLAGS for SVR4.2 on i386
+
+support/mksysdefs
+ - new variable UNAME_S for the output of `uname -s'
+ - if uname -s does not output the same thing as uname, and uname -s
+ outputs UNIX_SV, then set UNAME to UNIX_SV. Some versions of i386
+ SVR4.2 make `uname' equivalent to `uname -n'
+
+lib/readline/memalloc.h
+ - removed from the library; not needed since readline does not use
+ alloca
+
+lib/readline/{history.c,isearch.c,search.c,rldefs.h}, lib/tilde/tilde.c
+ - no longer include memalloc.h
+
+lib/readline/Makefile
+ - remove dependencies on memalloc.h
+
+lib/readline/signals.c
+ - overhauled signal handling based on ideas from Bruno Haible
+ (haible@ma2s2.mathematik.uni-karlsruhe.de) so that readline
+ saves and restores the signal mask and flags on Posix systems
+ - don't include fcntl.h, sys/file.h, errno.h, or stdlib.h
+ - ignore SIGALRM during rl_signal_handler like SIGINT until the
+ old handler is installed, on non-Posix or non-BSD systems
+ - new define SIGHANDLER_RETURN, dependent on the value of
+ VOID_SIGHANDLER
+ - use RETSIGTYPE instead of `sighandler' as the signal handler
+ return type; it's the name autoconf uses. If not defined,
+ set up from VOID_SIGHANDLER
+
+lib/readline/rltty.c
+ - call control_meta_key and control_keypad from rl_deprep_terminal
+ before putting the terminal back into ICANON mode to avoid
+ messing up the tty driver
+
+ 8/15
+ ----
+cpp-Makefile
+ - changes so that fewer -Idir arguments are passed to the make
+ in ./builtins
+
+ 8/16
+ ----
+lib/readline/bind.c
+ - use KEYMAP_SIZE instead of 128 in rl_invoking_keyseqs_in_map
+
+lib/readline/complete.c
+ - qsort the array of matches omitting matches[0], which must stay
+ in place no matter what, even if strcmp doesn't compare unsigned
+ chars correctly
+ - some fixes to the loop that prints the list of completions
+
+lib/readline/keymaps.c
+ - run the loop up to 127 when creating a new keymap in rl_make_keymap
+
+input.h, general.h, lib/readline/keymaps.h, lib/readline/tilde.h
+ - use _FUNCTION_DEF instead of __FUNCTION_DEF
+
+lib/readline/parens.c
+ - include "config.h" if HAVE_CONFIG_H is defined
+ - include <sys/select.h> if HAVE_SYS_SELECT_H is defined
+ - use HAVE_SELECT instead of FD_SET as the `configuring define';
+ define HAVE_SELECT if it is not already defined but FD_SET is
+
+lib/readline/readline.c, lib/readline/rltty.c
+ - the __GO32__ include file is <pc.h>
+
+lib/tilde/tilde.c
+ - rewrote tilde_expand_word, eliminated static u_name array in
+ favor of using xmalloc
+
+lib/tilde/tilde.h
+ - use single leading underscore for file inclusion guard
+
+lib/readline/vi_mode.c
+ - use KEYMAP_SIZE rather than a literal 127 as the loop limit when
+ creating the overstrike keymap
+
+support/install.sh
+ - new file, from the make-3.71 distribution
+
+ 8/17
+ ----
+lib/readline/complete.c, lib/readline/readline.h
+ - new variable, rl_basic_quote_characters, used to see
+ if a word break character was a quoting character, so we can
+ do appropriate quoting after the completion
+
+lib/readline/parens.c
+ - use rl_basic_quote_characters when trying to find a matching
+ open paren
+
+lib/readline/doc/rltech.texinfo
+ - description of rl_basic_quote_characters
+
+ 8/18
+ ----
+newversion.c
+ - renamed to support/mkversion.c, which builds to mkversion
+
+cpp-Makefile
+ - changed to use support/mkversion
+ - removed instances of $< except in suffix rules -- some makes don't
+ handle those right
+
+lib/readline/rldefs.h
+ - make sure to #undef HAVE_DIRENT_H on NeXT machines
+
+
+ 8/19
+ ----
+lib/readline/readline.h
+ - removed some duplicate function declarations
+
+trap.h
+ - define DEBUG_TRAP as NSIG for the last slot in trap_list
+ - define EXIT_TRAP as 0
+ - declare trap_list as array of unknown size, since this is just a
+ header file
+
+trap.c
+ - extend trap_list and sigmodes to NSIG+1
+ - initialize DEBUG_TRAP to do nothing; changes to functions to handle
+ DEBUG_TRAP
+ - let decode_signal return OK if NSIG is given, even though this will
+ vary between systems, for DEBUG_TRAP
+ - make reset_signal_handlers and restore_original_signals loop from
+ 1 to NSIG, not 0 to NSIG
+ - change GET_ORIGINAL_SIGNAL to try to get the original signal handler
+ only if `sig' is less than NSIG
+ - restore_default_signal just frees the trap string for both EXIT_TRAP
+ and DEBUG_TRAP
+ - run_debug_trap: new function to run traps on DEBUG
+ - free_trap_command: new function to free a trap string if it is
+ really a command and not one of the special trap values
+ - if a SIGINT trap resets the SIGINT trap string, free the old string
+ - new function: set_debug_trap(char *), which will reset the DEBUG
+ trap string, suitable for calling from an unwind-protect handler
+
+signames.c
+ - arrange things so that signal_names[NSIG] == "DEBUG"
+
+builtins/trap.def
+ - make sure traps on DEBUG are printed
+
+execute_cmd.c
+ - call run_debug_trap at the end of the `cm_simple' case in
+ execute_command_internal
+ - change execute_function so that traps on DEBUG do not propagate
+ into the function
+
+documentation/bash.1, documentation/features.texi
+ - documented the new DEBUG trap
+
+ 8/20
+ ----
+shell.c, config.h
+ - made the name of the restricted shell configurable in config.h;
+ the option is RESTRICTED_SHELL_NAME
+
+shell.c
+ - if the shell is invoked as `sh', enter Posix.2 mode after running
+ /etc/profile and ~/.profile
+
+builtins/read.def
+ - added a -p option for a prompt string, which is displayed before
+ trying to read anything
+
+documentation/bash.1
+ - description of `read -p'
+ - description of new -r and -s options to `jobs'
+
+documentation/features.texi
+ - description of new -r and -s options to `jobs'
+
+jobs.c
+ - new functions: list_running_jobs, list_stopped_jobs
+ - list_jobs -> list_all_jobs
+ - new function `print_job' to do the work for all of the list*jobs
+ functions
+ - list_one_job type now void, calls print_job to do the work
+
+jobs.h
+ - new declarations for list_running_jobs, list_stopped_jobs
+ - list_one_job now void
+ - list_jobs -> list_all_jobs
+
+builtins/jobs.def
+ - new options: -r to print only running jobs, -s to print only
+ stopped jobs
+
+ 8/22
+ ----
+lib/readline/readline.c
+ - don't try to expand a null prompt string
+
+subst.c
+ - remove special handling of hostname_completion_file and
+ history_control; HOSTFILE and HISTCONTROL are the acceptable
+ names
+ - new function sv_histignore; call if HISTIGNORE variable is
+ assigned to
+
+bashhist.c
+ - new functions and declarations for handling HISTIGNORE variable
+ and its specifications for command lines to ignore
+ - change maybe_add_history to call history_should_ignore if the
+ HISTCONTROL tests are passed
+
+documentation/bash.1, documentation/features.texi
+ - removed mention of history_control and hostname_completion_file
+ - added description of HISTIGNORE
+
+ 8/23
+ ----
+array.c, array.h
+ - promoted to the shell mainline code; the `array' subdir is now
+ gone
+
+variables.h
+ - include `array.h' for the ARRAY typedef
+
+variables.c
+ - changes to assignment() to handle array assignments a[x]=b
+ - split off the creation of new variables into a new function:
+ make_new_variable
+ - split off the construction of variable values for assignments and
+ bindings into a new function: make_variable_value
+ - new function: bind_array_variable, to handle the addition of
+ new array variables and indices
+
+subst.c
+ - changes to do_assignment_internal to handle a[x]=b:
+ parse the subscript out of the name and call evalexp() on it
+ call bind_array_variable to do the value assignment
+ - change the printing of assignment statements when -x is in effect
+ to before the variable binding is attempted, so any error messages
+ look better
+ - new functions for referencing indexed arrays and to find the length
+ of arrays or array indices
+
+ 8/24
+ ----
+expr.c
+ - fixed up error reporting to use get_name_for_error if not executing
+ a builtin
+
+subst.c
+ - everywhere evalexp() is called, use maybe_expand_string to expand
+ the expression (calls expand_string if necessary)
+
+subst.h
+ - extern declarations for array convenience functions exported to the
+ rest of the shell
+
+variables.c
+ - more new convenience array functions: make_new_array_variable and
+ convert_var_to_array
+
+builtins/declare.def
+ - additions to declare_internal to add a -a flag which makes array
+ variables, and the requisite semantics (declare +a does not work,
+ declare -a name=value does not work, etc.)
+ - code to support the ksh-like declare a[] syntax to make array
+ variables
+
+builtins/setattr.def
+ - made set_or_show_attributes understand array variables and `-a'
+
+builtins/set.def
+ - changes to make `unset name' work, where name is an array variable
+ - changes to make `unset name[xxx]' work
+
+ 8/25
+ ----
+
+lib/readline/readline.c
+ - make sure meta characters are added to a keyboard macro as
+ ESC-char if we are converting meta chars to ascii
+ - change rl_unix_word_rubout to handle repeat counts
+ - move the check of LC_CTYPE from rl_initialize to
+ readline_initialize_everything, where it should have been
+ all along
+
+error.c
+ - make sure <sys/types.h> is included before <fcntl.h>
+
+machines.h
+ - new entry for Bull DPX2
+
+lib/tilde/tilde.c
+ - include <sys/types.h> before <pwd.h>
+
+variables.c
+ - PS1 and PS2 are no longer non-unsettable
+
+ 8/26
+ ----
+variables.c
+ - PPID, UID, and EUID, since they are read-only, need not appear on
+ the `non-unsettable' list
+ - PATH and IFS now have the `nounset' attribute set rather than use
+ a separate `non-unsettable' list
+ - the non-unsettable list and non_unsettable() are gone
+
+variables.h
+ - new define `non_unsettable_p' to test nounset attribute
+
+builtins/set.def
+ - `unset' now uses non_unsettable_p to tell whether a variable can
+ be unset even if it's not readonly
+
+builtins/read.def
+ - read -a arrayname will read a list of values from stdin and assign
+ them to the array `arrayname', splitting on " \t\n" (honoring
+ backslash quoting if -r is not supplied)
+
+builtins/declare.def
+ - print values of arrays when `display -a' is invoked
+
+builtins/exit.def
+ - remove references to `bye'
+
+ 8/28
+ ----
+lib/readline/rltty.c
+ - removed calls to control_keypad; they cause problems on some
+ machines and should not really be performed by an application
+
+cpp-Makefile
+ - support for optionally linking array.o into the shell
+
+lib/glob/glob.c
+ - when returning an error after glob_filename on the directory name
+ returns an error result, make sure to free `result'. This fixes
+ a memory leak for names passed to glob_filename which contain
+ globbing characters before the first `/' but do not match any
+ existing files
+
+ 8/29
+ ----
+execute_cmd.c
+ - the `for' and `select' commands should expand their word lists
+ using expand_words_no_vars
+
+command.h, execute_cmd.c, general.c, make_cmd.c, print_cmd.c, subst.c,parse.y
+ - changed the `dollar_present', `quoted', and `assignment' members
+ of WORD_DESC to a single flags word
+
+ 8/30
+ ----
+variables.c
+ - make get_string_value return array[0] if called with a variable
+ that is an array
+
+ 8/31
+ ----
+lib/readline/display.c
+ - don't take the value of _rl_term_autowrap into account when
+ computing which screen line the cursor should be on; it screws
+ up wrapping on terminals without the `xn' capability
+
+lib/readline/examples/rltest.c
+ - new file, test code moved here from readline.c
+
+documentation/features.texi, lib/readline/doc/hsuser.texinfo
+ - fixed up printing of some of the shell options and the history
+ commands and modifiers
+
+subst.c
+ - make sure $name, where `name' is an array variable, returns
+ ${name[0]}
+
+variables.c
+ - convert a variable to an array even if index 0 is being assigned to,
+ instead of leaving it a `normal' variable
+
+ 9/1
+ ---
+
+builtins/setattr.def
+ - make sure that array variables printed by `declare' single-quote
+ the value after the `=' so the statement can be reused as input
+
+variables.c
+ - make sure array variables can be exported (name=(assignments)), and
+ that the export code works. The code is commented out because of
+ the possible confusion between an array and a regular string that
+ looks like an array assignment string.
+
+ 9/2
+ ---
+variables.c
+ - make sure there is an executable file with the same name as
+ `shell' name in the current directory before assigning it to
+ $BASH at startup. If there is not, just make $BASH the login
+ shell name
+
+ 9/3
+ ---
+parse.y
+ - removed a reduction from the `list0' production that could cause
+ statements which require semicolons to be allowed without error
+ (like before a `}' in a group command)
+
+lib/readline/display.c
+ - new functions: _rl_save_prompt and _rl_restore_prompt to save and
+ restore prompt invisible character info
+ - if the redisplay code encounters a line shorter than the old one
+ and containing invisible characters, make sure that the cursor is
+ at the end of the new text before calling clear_to_eol
+ - new variable last_invisible containing the index in the prompt
+ string of the last invisible character. We only have to redraw
+ the prompt string of _rl_last_c_pos is < last_invisible
+ - new function _rl_make_prompt_for_search to take care of setting
+ up the prompt string for a non-incremental search when the prompt
+ contains invisible characters
+ - fix so that a prompt string with invisible characters is not
+ redrawn each time through update_line (don't tputs term_cr unless
+ the cursor is before the last invisible character in the prompt
+ and will be moving past the last invisible char of the prompt
+
+lib/readline/isearch.c
+ - call _rl_save_prompt and _rl_restore_prompt when changing the prompt
+ to do i-search
+
+ 9/4
+ ---
+lib/readline/readline.c
+ - doing_an_undo -> _rl_doing_an_undo for use by the vi-mode code
+ - rewrote rl_do_undo to reformat and eliminate a clumsy goto
+ - new split the add-to-kill-ring code off into a separate function,
+ _rl_copy_to_kill_ring
+ - added a new bindable function rl_copy_region_as_kill
+ - added a new bindable function rl_kill_region
+ - moved _rl_char_search_internal to here from vi_mode.c
+ - new bindable function rl_char_search
+
+lib/readline/vi_mode.c
+ - made `.' work for the `cw' and `[Ss]' commands, which implicitly
+ put the editor into insertion mode after they run
+ - split rl_vi_char_search code that actually searches for a character
+ into a new function, _rl_char_search_internal
+
+lib/readline/emacs_keymap.c
+ - bind M-= to possible-completions for ksh compatibility
+ - bind M-* to insert-completions
+ - bind C-x C-x to exchange-point-and-mark
+ - bind C-] to character-search
+ - bind C-@ to set-mark
+
+lib/readline/funmap.c
+ - new bindable function names: exchange-point-and-mark, kill-region,
+ copy-region-as-kill, character-search
+
+lib/readline/readline.h
+ - declare rl_exchange_point_and_mark, rl_copy_region_to_kill,
+ rl_kill_region, and rl_char_search externally
+
+documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
+ - document new exchange-point-and-mark bindable command
+ - documented M-* default emacs-mode binding to insert-completions
+ - documented new copy-region-as-kill and kill-region commands
+ - documented new character search emacs-mode command
+ - documented new binding for set-mark
+
+lib/readline/rldefs.h
+ - moved values for `dir' when searching for characters in the line
+ from vi_mode.c to here
+
+ 9/6
+ ---
+general.c
+ - new function ansicstr, which decodes ANSI-C backslash-escaped
+ characters (with the addition of \e and \E to mean escape) and
+ returns a new string
+
+subst.c
+ - new expansion $'...' which translates ANSI-C backslash escapes
+ in `...' and expands to the result
+
+builtins/echo.def
+ - ifdefs for ANSI-C for \a and \v rather than just expanding to
+ literal ASCII values
+
+documentation/bash.1
+ - documented new $'...' expansion
+
+ 9/7
+ ---
+builtins/enable.def
+ - fixed up the help text
+ - added a -s flag to restrict operation to Posix.2 `special' builtins
+ - removed -all option; -a is the way to do it now
+ - converted to use the builtin getopt
+
+builtins/common.c
+ - changed builtin_address_internal to return a pointer to a
+ struct builtin, which makes it much more useful. Changed
+ find_shell_builtin and builtin_address accordingly
+ - new function find_special_builtin, which returns special builtins
+ ((flags & SPECIAL_BUILTIN) != 0)
+
+execute_cmd.c
+ - in Posix.2 mode, find special builtins before shell functions
+ when performing command lookup
+ - in find_user_command_internal, return NULL if there is no $PATH
+ - in Posix.2 mode, failure of a special builtin causes a non-
+ interactive shell to exit
+
+variables.c
+ - allow $PATH to be unset
+
+ 9/8
+ ---
+input.h
+ - added a new `input type': st_stdin, for use when using readline,
+ since readline is not properly a string
+
+parse.y
+ - surgery on the grammar:
+ o added new `compound_list' production: a list that can end
+ without a newline, `;' or `&' (used in subshell commands
+ and case clause commands)
+ o removed shell_command_1, folded rules into command
+ o eliminated pattern_list_1; changed case_clause_sequence to
+ directly incorporate the SEMI_SEMI token (a pattern_list_1
+ was just a pattern_list with a trailing SEMI_SEMI)
+ o new `for_command' and `case_command' productions
+ o redirections -> redirection_list
+ o newlines -> newline_list
+ o redid the code that attaches redirections to the function
+ command rather than the function definition and eliminated
+ all of the shift/reduce conflicts
+ - changed with_input_from_stdin in the readline case to set
+ bash_input.type to st_stdin
+
+print_cmd.c
+ - a couple of changes to the way functions are printed
+
+shell.c
+ - only execute the PROMPT_COMMAND if input is not coming from a
+ string (bash_input.type != st_string). This fixes the problem
+ of PROMPT_COMMAND being executed by `eval' commands in an
+ interactive shell
+
+ 9/12
+ ----
+shell.c
+ - all interactive shells SIGHUP running jobs when exiting due to
+ a SIGHUP, not just login shells
+
+ 9/13
+ ----
+config.h, config.h.mini
+ - changed the default primary prompt (PPROMPT) to "\s\$ "
+ - removed the INTERACTIVE_COMMENTS define
+
+flags.c
+ - interactive comments are now enabled by default, regardless of the
+ INTERACTIVE_COMMENTS define
+
+input.h
+ - a new enum: stream_type, used in the BASH_INPUT struct
+
+parse.y
+ - bash_input.type is now initialized to st_none
+
+bashhist.c
+ - command_oriented_history is now the default
+
+documentation/bash.1
+ - removed description of `nolinks' variable, updated set -P
+ description
+ - removed description of `notify' variable, updated set -b
+ description
+ - removed description of `noclobber' variable, updated set -C
+ description
+
+variables.c
+ - IFS may now be unset
+
+builtins/read.def
+ - now does the right thing if IFS is unset (acts as if it is
+ set to " \t\n")
+
+builtins/cd.def
+ - added a new parameter to change_to_directory () which says
+ whether or not to follow symlinks, instead of using the
+ global no_symbolic_links
+ - changed cd_builtin to accept a -P option to disable symlink
+ following temporarily
+
+builtins/ulimit.def
+ - instead of using a hardcoded `long' for the return type of the
+ rlimit functions, use RLIMTYPE, which defaults to long
+ - new defines string_to_rlimtype -> string_to_long and
+ print_rlimtype for systems which do not need `RLIMTYPE' defined
+ to something other than long
+
+general.c
+ - function replacements for string_to_rlimtype and print_rlimtype
+ for machines which have RLIMTYPE defined in the machine description
+
+general.h
+ - extern declarations for string_to_rlimtype and print_rlimtype
+
+shell.c
+ - don't source file named by $ENV at script startup if act_like_sh
+ is turned on
+
+machines.h
+ - new entry for amiga/netbsd
+ - change all the netbsd entries to add -DRLIMTYPE=quad_t to
+ SYSDEP_CFLAGS
+
+siglist.h
+ - define sys_siglist as _sys_siglist on the amiga only if USGr4 is
+ defined
+
+print_cmd.c
+ - change so that printf is not prototyped on LynxOS with gcc
+
+lib/readline/Makefile
+ - changed the `installdirs' target to not fail if the directories
+ do not need creating
+
+lib/readline/history.c
+ - fixed a bug in history_arg_extract which manifested itself when
+ !* was used after a command without arguments (e.g., pwd ; echo !*)
+
+ 9/15
+ ----
+subst.c
+ - expand_word_internal should preserve the flags (other than
+ W_QUOTED) from the word passed as a parameter on the word it returns
+ - expand_words_internal renamed to expand_word_list_internal
+ - expand_word_list_internal does not perform word splitting or
+ globbing on words with the W_ASSIGNMENT bit set
+ - removed special treatment of `notify', `command_oriented_history',
+ `history_control', and `nolinks'
+ - rewrote some of the sv_* functions to remove or avoid calls to
+ sscanf, one of the most expensive C library functions
+
+variables.c
+ - don't look for $command_oriented_history at startup, since it now
+ defaults to `on'
+
+general.h, general.c
+ - new function posix_initialize to do whatever is necessary to enable
+ `Posix mode'
+
+shell.c, subst.c
+ - call posix_initialize
+
+general.c
+ - rewrote replacements for strchr, strrchr to make them faster
+
+builtins/enable.def
+ - new -f option and necessary support to load builtins from a shared
+ object file on systems supporting both dlopen() and dlsym(). New
+ builtins loaded this way can replace existing shell builtins or
+ add completely new functionality
+
+builtins.h
+ - mkbuiltins.c creates `static_shell_builtins', which is a fixed
+ array, `shell_builtins' points to this array initially
+ - extern declaration for current_builtin
+
+builtins/mkbuiltins.c
+ - change to creat static_shell_builtins[] and declare shell_builtins
+ as a pointer to it
+ - change to declare `current_builtin' in created builtins.c
+
+builtins/source.def
+ - print an error message and return failure if no filename argument
+ is supplied
+
+builtins/common.c
+ - current_builtin is set by find_shell_builtin, find_special_builtin,
+ and builtin_address_internal
+ - new function builtin_usage, which prints the contents of
+ current_builtin->short_doc
+
+builtins/{bind,declare,enable,fc,getopts,hash,history,jobs,kill,read,set,
+ setattr,trap,ulimit,umask}.def
+ - changed the builtins in these files to use builtin_usage() to
+ print usage messages
+
+cpp-Makefile
+ - support for the HAVE_DLOPEN and HAVE_DLSYM defines
+
+machines.h
+ - added -ldl and -Bdynamic to the SunOS4 entry
+
+documentation/{bash.1,features.texi}
+ - documented new enable -f option to dynamically load builtins
+
+ 9/16
+ ----
+test.c
+ - added `==' as a synonym for `='
+
+ 9/18
+ ----
+bashline.c
+ - include readline/rlconf.h so that VI_MODE is defined if
+ appropriate
+
+shell.c
+ - removed `-nobraceexpansion' option
+
+flags.c, flags.h
+ - added new -B flag; enabled if brace expansion is turned on
+
+subst.c
+ - use brace_expand instead of !no_brace_expand
+
+builtins/set.def
+ - change set -o braceexpand to be equivalent to set -B
+
+parse.y
+ - in with_input_from_stdin, do nothing if bash_input.type already
+ is st_stdin or if there is already a stream with type st_stdin
+ on the saved stream stack
+ - new function stream_on_stack to find out if there is a saved
+ stream of a specified type
+
+documentation/bash.1, documentation/features.texi
+ - doeumented new set -B option
+ - removed -nobraceexpansion shell startup option
+
+ 9/19
+ ----
+builtins/reserved.def
+ - made `help select' work
+
+cpp-Makefile
+ - removed references to the nonexistant `load.def'
+ - removed conditionals based on GETOPTS_BUILTIN
+
+builtins/getopts.def
+ - no longer $DEPENDS_ON GETOPTS_BUILTIN
+
+config.h, config.h.mini, builtins/help.def
+ - made the `help' builtin dependent on the HELP_BUILTIN define
+ - removed GETOPTS_BUILTIN
+
+builtins/mkbuiltins.c
+ - made the `$DEPENDS_ON' clause work for reserved words and
+ shell control structures in reserved.def by writing out
+ dependencies to builtext.h even if there is no `function'
+ - made the long_doc for each builtin and reserved word get
+ written out to builtins.c with #ifdef HELP_BUILTIN surrounding
+ the doc strings -- this makes the minimal shell much smaller
+
+shell.c, documentation/bash.1
+ - removed `-quiet' long option
+
+parse.y
+ - make sure that word splitting is not performed on the prompt
+ string after expanding in prompt_string_decode by calling
+ expand_string_unsplit instead of expand_string
+
+lib/readline/bind.c
+ - new readline variable `mark-directories': if set, completed
+ directory names have a slash appended
+
+lib/readline/complete.c
+ - support for `mark-directories'
+
+documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
+ - documented the new `mark-directories' variable
+
+builtins/bind.def
+ - new option `-r' to remove a binding for a specified key sequence
+ - make sure that a failure return from bind resets the keymap
+ correctly if a -m option was supplied
+
+documentation/{bash.1,features.texi}
+ - documented new bind -r option
+
+ 9/20
+ ----
+builtins/jobs.def
+ - new `disown' builtin
+
+documentation/{bash.1,features.texi}
+ - documented new `disown' builtin
+
+cpp-Makefile
+ - removed support for `MAKE_SHELL' cpp variable
+ - renamed endian.aux to mkendian, look for endian.c in support dir
+ - link in array.o, alias.o, braces.o, bracecomp.o
+ unconditionally, rely on cpp defines in the files to exclude code
+ - pass -DHAVE_SYS_SIGLIST if sys_siglist is defined
+ - pass -DHAVE_GETCWD if HAVE_GETCWD is defined in machines.h
+ - pass -DHAVE_VFPRINTF_EMUALTION through from machines.h to
+ compilation
+
+array.c
+ - don't compile in body of file unless ARRAY_VARS is defined
+
+braces.c
+ - don't compile in body of file unless BRACE_EXPANSION is defined
+
+alias.c
+ - don't compile in body of file unless ALIAS is defined
+
+bracecomp.c
+ - don't compile in body of file unless BRACE_EXPANSION and READLINE
+ are defined
+
+bashline.c
+ - don't compile in body of file unless READLINE is defined
+
+bashhist.c
+ - don't compile in body of file unless HISTORY is defined
+
+siglist.c
+ - don't compile in body of file unless HAVE_SYS_SIGLIST is not
+ defined
+
+getcwd.c
+ - don't compile in body of file unless HAVE_GETCWD is not defined
+
+vprint.c
+ - don't compile in body of file unless USE_VFPRINTF_EMULATION
+ is defined
+
+support/mksysdefs
+ - for SCO machines, define SYSDEF as SCO or SCOv4
+
+lib/readline/readline.[ch]
+ - new function rl_push_macro_input (s), which makes s the current
+ macro input string
+
+endian.c
+ - renamed to support/endian.c
+
+ 9/21
+ ----
+lib/readline/complete.c
+ - more file types for the VISIBLE_STATS code:
+ | FIFOs
+ % character special devices
+ # block special devices
+
+lib/readline/isearch.c
+ - made RETURN an alternate search string terminator
+
+builtins/read.def
+ - removed use of stdio -- unbuffered stdio on a dup of fd 0 is
+ a big loss
+
+builtins/set.def
+ - new function: minus_o_option_value, returns 1, 0, or -1 given
+ a -o option name (-1 means a bad name)
+ - reorganized list_minus_o_options to be more efficient
+
+execute_cmd.c
+ - when expanding a here document, use maybe_expand_string rather
+ than a simple expand_string to try a speed things up a bit
+
+input.c
+ - don't compile in the body of the file unless BUFFERED_INPUT
+ is defined in config.h
+
+ 9/22
+ ----
+jobs.h, siglist.h
+ - replaced instances of Solaris with SunOS5
+
+shell.c
+ - changed long option parsing code so that --arg is equivalent
+ to -arg, when `arg' is one of the recognized multichar options
+
+builtins/history.def
+ - rewrote to regularize the option parsing and use internal_getopt
+ - now allows only one of -awrn to be specified
+ - added a new -p option that adds each of its arguments to the
+ end of the history list, and deletes the `history -p' history
+ entry
+
+builtins/trap.def
+ - added new -p option to display specified trap values, or all
+ trap values if no other arguments supplied
+
+documentation/{bash.1,features.texi}
+ - documented new history -p option
+ - documented new trap -p option
+
+ 9/25
+ ----
+lib/readline/display.c
+ - fixed up the calcluation of the correct cursor line number (a `+'
+ and `-' were transposed in the calculation of `nleft')
+
+ 9/26
+ ----
+general.c
+ - moved isint() here from test.c, renamed to legal_number
+
+general.h
+ - extern declaration of legal_number
+
+test.c
+ - only compile isint() if SHELL is not defined, define it as
+ legal_number otherwise
+
+trap.c
+ - use legal_number in decode_signal instead of sscanf()
+
+builtins/common.c
+ - moved list_sigs to here from trap.def, renamed to
+ display_signal_list
+ - changed get_numeric_arg to use legal_number instead of doing
+ the parsing and calculation itself
+
+builtins/common.h
+ - extern declaration for display_signal_list
+
+builtins/{trap.def
+ - changed to use display_signal_list for trap -l
+
+builtins/kill.def
+ - changed to use display_signal_list for kill -l
+ - added new kill -n signum option
+
+documentation/bash.1
+ - added description of new kill -l signame functionality
+ - added description of new kill -n signum feature
+ - added description of new enable -d option
+
+builtins.h
+ - added a char *handle member to `struct builtin' for later use
+ - new flags value: BUILTIN_DELETED
+
+builtins/mkbuiltins.c
+ - added code to inintialize the `handle' member to null in the
+ static builtin array definition
+
+builtins/common.c
+ - don't `find' a builtin if the BUILTIN_DELETED flag is set in the
+ flags word of the struct builtins array
+
+builtins/enable.def
+ - new option -d to remove a builtin loaded with -f, depends on
+ HAVE_DLCLOSE
+
+cpp-Makefile
+ - pass -DHAVE_DLCLOSE through from machines.h to compilation
+
+machines.h
+ - change SunOS4 machine description to define HAVE_DLCLOSE
+
+ 9/27
+ ----
+shell.c
+ - split shell exit code off into a separate function: exit_shell(status)
+
+builtins/exec.def
+ - rewrote for clarity and speed and to use the builtin getopt()
+ - added new -a, -c, and -l options
+ - now calls exit_shell if shell_execve fails and the shell is not
+ interactive
+
+documentation/bash.1
+ - documented the new options to `exec'
+
+ 9/28
+ ----
+builtins/exec.def
+ - if the execve fails and the shell is not going to exit, reinitialize
+ traps and signals
+ - only call end_job_control if subshell_environment != 0
+ - exec should exit unconditionally if the execve fails and
+ subshell_environment != 0
+
+subst.c
+ - if valid_brace_expansion_word fails, make sure `temp' is set to
+ NULL before trying to free it after the `goto bad_substitution'
+
+cpp-Makefile
+ - add $(CPPFLAGS) to the compilation flags when making `mksignames'
+
+documentation/features.texi
+ - fixed a typo in the tilde expansion section
+
+ 9/29
+ ----
+machines.h
+ - DEC OSF/1 has the dlopen/dlsym/dlclose set of library functions
+
+shell.c
+ - don't execute /etc/profile if -noprofile given
+
+builtins/pushd.def
+ - new file, pushd/popd/dirs split off from cd.def
+ - replaced calls to sscanf with calls to legal_number
+
+builtins/Makefile, cpp-Makefile
+ - changes for pushd.def
+
+config.h, config.h.mini
+ - ALLOW_RIGID_POSIX_COMPLIANCE is no longer used
+
+subst.c, variables.c
+ - GETOPTS_BUILTIN is no longer used
+
+variables.c
+ - if the first character of argv[0] is not a `/', search the path
+ and canonicalize the result to find out how to set $BASH
+
+ 10/2
+ ----
+builtins/enable.def
+ - changed enable_shell_builtin to use builtin_address_internal to find
+ the builtin rather than searching the list itself
+ - list_some_builtins skips a builtin if flags & BUILTIN_DISABLED != 0
+ - rewrote dyn_load_builtin to take a list of names to load from a
+ single filename
+ - don't dlclose the shared object in dyn_unload_builtin unless its
+ reference count drops to 0
+
+builtins/test.def
+ - don't bother making new copies of everything in the argument list
+ when constructing the argc and argv for test_command; just make
+ sure not to free anything but ARGV
+
+ 10/3
+ ----
+bashline.c
+ - remove C-e binding in vi movement mode which switches into emacs
+ mode
+
+general.c
+ - make xfree only try to call free on non-null strings
+
+ 10/4
+ ----
+builtins/read.def
+ - new `-e' option that uses readline to read the line
+ - if one of the arguments is not a legal variable name, print an
+ error message and return failure
+
+builtins/reserved.def
+ - changed the `Variables' to `variables' so `help variables' works
+
+subst.c
+ - set startup_state to 2 in child of command substitution to try to
+ avoid some unneeded forks
+
+trap.c
+ - removed call to reset_terminating_signals in restore_original
+ signals; callers are now required to take care of that themselves,
+ if necessary
+
+execute_cmd.c, subst.c
+ - added necessary calls to reset_terminating_signals before calls
+ to restore_original_signals
+
+execute_cmd.c
+ - when executing a null command in a subshell, don't bother passing
+ a string to make_child; just pass NULL
+ - in execute_builtin_or_function, don't add so many unwind-protects
+ if `subshell' == 1
+ - in command_substitute, call cleanup_the_pipeline to discard the
+ old pipeline, so pipeline_pgrp does not get set to 0 in
+ start_pipeline, which is called by make_child via making_children
+
+jobs.c, nojobs.c
+ - new function, ignore_tty_job_signals, to set SIGTTIN, SIGTTOU, and
+ SIGTSTP to SIG_IGN
+ - new function, default_tty_job_signals, to set those signals
+ to SIG_DFL
+ - new function, cleanup_the_pipeline to free up the_pipeline and
+ set it to NULL
+
+ 10/5
+ ----
+builtins/history.def
+ - the history -p option is now -s (to sort of parallel the ksh
+ print -s option)
+ - the -s option now combines all of its arguments into a single
+ string and appends the string to the history list
+ - new history -p option to history expand each argument and print
+ the result without modifying the history list
+
+documentation/bash.1, documentation/features.texi
+ - documented the new -e option to read
+ - documented the new history -s and -p options
+ - documented the new cd and pwd -L options
+
+builtins/cd.def
+ - changed cd and pwd to use internal_getopt
+ - added the -L option to cd and pwd to follow symlinks (like if
+ set +P were issued)
+
+builtins/pushd.def
+ - added text for dirs +N and dirs -N to the dirs builtin long doc
+ - added -v option to dirs to print dirstack one dir per line with
+ stack index prepended
+
+ 10/6
+ ----
+execute_cmd.c
+ - split the command searching code into a new function:
+ search_for_command
+ - removed a bunch of dead code from shell_execve
+ - removed call to reset_terminating_signals when executing a function
+ or builtin in a subshell (either via (xxx) or xxx &)
+ - don't add unwind protects at all in execute_function if subshell == 1
+
+lib/readline/chardefs.h
+ - new macro ALPHABETIC(c), returns 1 if c is a letter or digit
+
+lib/readline/readline.c
+ - don't call abort() in rl_change_case(); it's impolite in a
+ library function
+ - new macro, SWAP, used to swap values of two integers
+ - changed alphabetic to use ALPHABETIC, made it slightly faster
+ - modified rl_change_case() so that word capitalization is the
+ same as GNU Emacs
+
+lib/readline/search.c
+ - in noninc_dosearch, don't reset the history positition to what
+ it was if we're currently in vi editing mode (as per Posix.2
+ `/' and `?' vi-mode editing commands)
+
+ 10/7
+ ----
+builtins/common.c
+ - changed single_quote and double_quote to use char pointers
+ rather than string indexing
+ - new function backslash_quote(string), which quotes special
+ characters in STRING using backslashes
+
+ 10/8
+ ----
+alias.h
+ - added an extern declaration for alias_expand_word
+
+parse.y
+ - broke the alias expansion code off into a function
+ alias_expand_token; its return value says whether to re-read
+ a token or go on
+ - changed the alias expansion code to handle aliases that expand
+ to nothing better
+ - broke the code that does special-case token recognition off into
+ a function: special_case_tokens
+ - used the new functions to make sure that the special-case tokens
+ can be the expansion of an alias
+ - made sure that if in `posix mode' that reserved words cannot be
+ aliased and that all reserved words can be the values of aliases
+ and be recognized after expansion
+
+ 10/10
+ -----
+lib/readline/complete.c
+ - replaced #ifdef SHELL code with two new exported readline interfaces:
+ rl_filename_quoting_function and rl_filename_dequoting_function.
+ Both return a pointer to char.
+ - new extern variable rl_filename_quote_characters, containing a list
+ of characters that cause a word to be quoted by the completer if
+ they appear in a file name
+
+bashline.c
+ - new functions for rl_filename_quoting_function and
+ rl_filename_dequoting_function.
+ - initialize rl_filename_quoting_function and rl_filename_dequoting_function
+ in initialize_readline
+ - initialize rl_filename_quote_characters
+
+lib/readline/readline.h
+ - extern declarations for new public interfaces
+ rl_filename_quoting_function and rl_filename_dequoting_function
+ - added declarations for NO_MATCH, SINGLE_MATCH, and MULT_MATCH for
+ use by the filename quoting functions
+ - new extern declaration for rl_filename_quote_characters
+
+lib/readline/history.c
+ - made a version of single_quote be compiled in if SHELL is not
+ defined
+ - the `q' and `x' modifiers are now compiled in by default, not
+ just if SHELL is defined
+
+ 10/11
+ -----
+subst.c
+ - string_quote_removal was being a little overzealous in stripping
+ things within embedded quoted strings when `quoted' was == 1.
+ Only remove one level of quotes each time through the function
+ This fixes the problem of quotes being stripped incorrectly in
+ var="The text \"hello\" should show up inside double quotes."
+
+lib/readline/history.c
+ - made the behavior of single quotes inhibiting history expansion
+ configurable with a variable: history_quotes_inhibit_expansion,
+ not just shell-specific
+ - added a new variable: history_search_delimiter_chars, which is a
+ list of characters that can also delimit a history search string
+
+lib/readline/history.h
+ - extern declaration of history_quotes_inhibit_expansion
+ - extern declaration of history_search_delimiter_chars
+
+bashhist.c
+ - set history_quotes_inhibit_expansion to 1 in bash_initialize_history
+ - initialize history_search_delimiter_chars to ";&()|<>"
+
+lib/readline/doc/{rltech,hstech}.texinfo
+ - documented new readline and history library interfaces
+
+parse.y
+ - split the part of read_token that reads a single word off into
+ a new function: read_token_word
+
+lib/readline/chardefs.h
+ - include <string.h> by default; only check HAVE_STRING_H if
+ HAVE_CONFIG_H is defined
+
+ 10/12
+ -----
+parse.y
+ - moved the `RESET' code out of read_token into reset_parser
+ - rewrote some of decode_prompt_string to make it more efficient
+ - rewrote more of read_token_word to make it more efficient
+ - make shell_getc cast its result to `unsigned char' before
+ returning it. This fixes the problem of \255 appearing in a
+ line
+
+machines.h
+ - new entry for m68k machines running Linux
+
+ 10/13
+ -----
+builtins/exec.def
+ - use search_for_command rather than find_user_command to look up
+ the path to exec, so the hash table and temp environment are used
+
+variables.c
+ - don't rebuild the export environment after binding a shell
+ function unless that function is exported
+ - make sure that copy_variable copies arrays correctly, using
+ dup_array()
+ - in assign_in_env, only call tilde_expand if a `~' appears somewhere
+ in the value
+
+execute_cmd.c
+ - if we found $PATH in the temp environment in search_for_command,
+ call find_user_command_in_path instead of find_user_command, so
+ we don't try to search the temporary env again. Call
+ find_user_command as normal if PATH is not in the temp environment
+
+subst.c
+ - char_is_quoted should not be compiled in if READLINE is not
+ defined
+
+lib/readline/complete.c
+ - add a new external interface: Function *rl_char_is_quoted_p,
+ which is called to find out whether a word break character is
+ quoted and should be skipped over when breaking words for
+ the completer
+
+lib/readline/readline.h
+ - extern declaration for rl_char_is_quoted_p
+
+bashline.c
+ - initialize rl_char_is_quoted_p to char_is_quoted
+
+lib/readline/doc/rltech.texinfo
+ - documented rl_char_is_quoted_p
+
+lib/readline/readline.c
+ - extend the undo records so that a `start' or `end' value of -1
+ means rl_point and a value of -2 means rl_end. This is a start
+ to better support for undoing vi-mode commands like `C'
+
+lib/readline/vi_mode.c
+ - don't save what's entered in insert mode after a `C' command
+ for later insertion when doing a `redo'
+
+ 10/16
+ -----
+test.c
+ - rewrote unop() to use a switch statement instead of a call to
+ strchr
+ - remove #ifdef SHELL blocks by defining getuid, geteuid, getgid
+ and getegid as references to current_user.{uid,euid,gid,egid}
+ respectively
+ - change group_member to only fetch the group list once and to use
+ NGROUPS_MAX or NGROUPS to find the maximum number of groups
+
+documentation/bash.1
+ - fixed description of ${#@} expansion
+
+ 10/17
+ -----
+support/bashbug.sh
+ - add a `From:' line to the mail message handed to rmail
+
+ 10/18
+ -----
+test.c
+ - rewrote binary_operator for speed and clarity
+ - removed age_of, added arithcomp(), filecomp() to support new
+ binary_operator
+ - removed support for `-l string'
+
+documentation/bash.1
+ - removed mention of `-l string' from `test' description
+
+ 10/19
+ -----
+cpp-Makefile
+ - pass PROGRAM as the double-quoted shell name to compilation of
+ shell.c and error.c
+
+ 10/20
+ -----
+support/bashbug.sh
+ - don't try to use ${word:-expansion}; ultrix sh doesn't understand it
+
+hash.c
+ - new function: flush_hash_table (table, free_data) to delete the
+ contents of a given hash table. *free_data is called to free
+ each item's data, if free() is inappropriate
+
+builtins/hash.def
+ - new functions free_hashed_filenames and free_filename_data to
+ flush the table of hashed filenames
+
+subst.c
+ - change sv_path to call flush_hashed_filenames directly
+
+variables.c
+ - only sort arrays of variables or functions for the environment or
+ `set' output if `posixly_correct' is set. sh does it; ksh does
+ not, and there's no real requirement to do so
+ - rewrote delete_all_variables so it looks like flush_hash_table
+
+trap.c
+ - two new flag values for the `sigmodes' array: SIG_INPROGRESS,
+ which is set for sigmodes[sig] while a trap handler for sig
+ is executing, and SIG_CHANGED, which is set if a new trap
+ value is set when SIG_INPROGRESS is set. This should obviate
+ the need to set the trap value to IMPOSSIBLE_TRAP_HANDLER while
+ the trap handler is executing
+
+alias.c
+ - rewrote delete_all_aliases so it looks like flush_hash_table
+
+ 10/21
+ -----
+alias.c
+ - changed delete_all_aliases to call flush_hash_table directly
+ and use free_alias_data as the `free function' argument
+
+variables.c
+ - changed delete_all_variables to call flush_hash_table directly
+
+tests/run-test, tests/test-tests
+ - new scripts to run tests of the `test' builtin as part of the
+ regression test
+
+ 10/24
+ -----
+bashline.c
+ - initialize_hostname_list needs to look for HOSTFILE first
+ - hostname list is no longer sorted
+ - replaced binary search in hostnames_matching with a simple
+ linear search
+ - made the code that reads hostnames skip over the first word on
+ a line only if its first character is a digit, assuming it's
+ an Internet address
+
+copy_cmd.c
+ - removed copy_select_command; overload copy_for_command, since the
+ select and for command structs are exactly the same
+
+make_cmd.c
+ - combined make_for_command and make_select_command into a new
+ function, make_for_or_select
+ - rewrote make_here_document to remove the unneeded `switch' statement
+
+builtins/common.c, builtins/hash.def
+ - moved remove_hashed_filename from common.c to hash.def
+
+builtins/common.c
+ - remove the \r from error message printed by get_working_directory
+ - change parse_and_execute to call dispose_fd_bitmap directly then
+ discard the `pe_dispose' unwind-protect frame rather than running
+ the frame
+
+builtins/set.def
+ - changed how set -o options are set and retrieved, using set and get
+ functions to avoid all that special-case inline code
+
+ 10/26
+ -----
+test.c
+ - added unary operator `-o', which returns true of the shell option
+ name given as an argument is set
+
+lib/readline/readline.c
+ - added a definition of set_lines_and_columns to be called if the
+ library is not compiled -DSHELL
+
+shell.c
+ - added a --verbose startup long option
+ - renamed `--nolineediting' to `--noediting'
+
+ 10/27
+ -----
+lib/readline/util.c
+ - new file, for readline utility functions
+
+lib/readline/readline.c
+ - moved a bunch of functions to util.c
+
+subst.c
+ - make sure set_sigint_handler is called only by the subshells doing
+ command and process substitution
+
+builtins/read.def
+ - make sure that rlbuf is initialized to null
+
+trap.c
+ - new flag for sigmodes[] members: SIG_IGNORED, set when signal is
+ ignored, even if it's special or untrappable
+ - new function: signal_is_ignored (sig), which returns 1 if SIG
+ has been ignored with trap ''
+
+builtins/trap.def
+ - changed to use the builtin getopt
+
+shell.c
+ - added a check to sigint_sighandler for whether or not SIGINT has
+ been ignored with trap '' in an interactive shell. This fixes
+ the problem with `read' being interruptible in an interactive
+ shell even if SIGINT is being ignored
+
+ 11/8
+ ----
+lib/readline/Makefile
+ - added definition of INSTALLED_HEADERS, just in case
+
+ 11/11
+ -----
+variables.c
+ - change assign_in_env so that it doesn't use savestring ("") to
+ set `value' to a dummy value; don't call strcpy if there's
+ nothing to copy
+
+ 11/15
+ -----
+general.h
+ - new defines, legal_variable_starter and legal_variable_char
+ - new define SIGRETURN(n) which encapsulates the VOID_SIGHANDLER
+ differences when returning from a signal handler
+
+general.c, variables.c, subst.c, expr.c
+ - use legal_variable_starter and legal_variable_char
+
+shell.c, nojobs.c, trap.c, jobs.c, builtins/suspend.def
+ - change to use SIGRETURN macro
+
+subst.c
+ - massive changes to clean up the code and remove unused code and
+ variables
+ - expanded the ${#param} code so that all of the shell special
+ variables may have their length taken
+
+tests/run-tilde
+ - new test for tilde expansion
+
+bashline.c
+ - fix a bug in command_subst_completion_matches: make sure that
+ `matches' is static
+
+parse.y
+ - don't print a prompt when not using readline if the current
+ input type is st_string
+
+machines.h
+ - add -DINT_GROUPS_ARRAY to SYSDEP_CFLAGS on ultrix
+ - fixes to the cray machine description from Bill Jones
+
+braces.c
+ - fixed a bug in brace_gobbler that prevented a backslash from
+ escaping an open brace
+
+ 11/16
+ -----
+tests/braces-tests, tests/run-braces
+ - new regression tests for brace expansion
+
+builtins/pushd.def
+ - new -p option for `dirs' that prints dirstack on per line
+ without numbers
+
+ 11/17
+ -----
+command.h
+ - move redirection error values here from execute_cmd.c
+ - new defines INPUT_REDIRECT and OUTPUT_REDIRECT
+
+shell.c
+ - make the default MAINTAINER `bash-maintainers@prep.ai.mit.edu'
+
+execute_cmd.c
+ - many changes to clean up the code and remove unused variables and
+ functions
+ - new functions: redirection_error, find_in_path_element,
+ find_absolute_program
+ - fixes to redirection error reporting, so things like exec 4<&y*
+ and exec 4<&$FOO are displayed correctly
+ - removed the `lexical_scoping' code
+
+flags.c, flags.h
+ - removed the lexical_scoping code and variable
+
+documentation/{bash.1,features.texi}
+ - removed the description of the `-l' option to `set'
+
+jobs.c
+ - don't try to open /dev/tty to get the controlling tty, use
+ fd 2 like other job control shells
+
+lib/readline/vi_mode.c
+ - when using `d%', make sure the matching character found by
+ the `%' is deleted by the `d'. Ditto for `c%'.
+ - stub function for vi undo: rl_vi_undo. Right now it just
+ calls rl_undo_command
+
+lib/readline/vi_keymap.c
+ - change to call rl_vi_undo instead of rl_undo_command
+
+lib/readline/readline.h
+ - extern declaration for rl_vi_undo
+
+ 11/21
+ -----
+execute_cmd.c
+ - fix to print_select_list to avoid a possible divide-by-zero error
+ and subsequent core dump
+ - fix to execute_select_command to just return 0 if there is no
+ select list
+
+parse.y
+ - remove `in' from the list of tokens that cannot take trailing
+ semicolons
+
+builtins/read.def
+ - make sure that leading IFS whitespace is removed before calling
+ get_word_from_string the first time. This matters when IFS is
+ not " \t\n" but non-null
+ - make sure the array code uses IFS to split the input string
+ before assigning it to the array
+
+ 11/22
+ -----
+parse.y
+ - make sure that if \nnn expands to CTLESC or CTLNUL, the char
+ is protected by a CTLESC
+ - new variable `promptvars', which, if non-zero, causes all the
+ variable expansions to be performed in decode_prompt_string.
+ If zero, only quote removal is performed.
+
+builtins/source.def
+ - new variable: `source_uses_path', set to 1 by default. If
+ non-zero, the `.' builtin uses $PATH to find the script to
+ source
+
+builtins/getopt.h
+ - cut out everything not needed by bash
+
+builtins/getopt.c
+ - cut out everything not needed by bash
+
+builtins/getopts.def
+ - removed the call to getopt_set_posix_option_order, which is no
+ longer necessary
+
+execute_cmd.c
+ - split the code that writes out here documents to files out into
+ a separate function
+
+ 11/23
+ -----
+builtins/getopt.c, builtins/getopt.h, builtins/getopts.def, subst.c
+ - prefix all of the getopt variables and functions with `sh_'
+ (that is, optind becomes sh_optind and getopt becomes sh_getopt)
+ to avoid confusion with a system's getopt(3) implementation
+
+subst.c
+ - new functions: parameter_brace_substring and verify_substring_values
+ and changes to expand_word_internal to support the ksh-93
+ ${var:exp1:exp2} substring syntax
+
+documentation/bash.1
+ - documented the new ${var:exp1[:exp2]} syntax
+
+ 11/25
+ -----
+builtins/setattr.def
+ - don't allow readonly -n at all
+
+array.c
+ - split array_to_string into two parts; a new function
+ array_to_string_internal does the real work
+ - new function array_subrange () to return a subset of the elements
+ in an array
+
+subst.c
+ - augmented the substring code to handle the positional parameters
+ and array variables
+ - made quote_list and dequote_list return their WORD_LIST *
+ arguments so they can be used like
+
+ z = string_list ((quoted ? quote_list (l) : l), xxx);
+
+ - augmented the ${xxx} expansion code to do indirect variable
+ references if the first character of the variable name is `!'
+
+tests/new-exp.tests
+ - added regression tests for substring expansion
+ - added regression tests for indirect variable references
+
+ 11/28
+ -----
+builtins/set.def
+ - added set -o hashfunc and set -o onecmd, synonyms for set -h
+ and set -t, respectively
+
+builtins/shift.def
+ - changed shift so that the positional parameters are not changed
+ if the argument is > $# (this is ksh and Posix.2, unlike sh)
+
+documentation/bash.1
+ - documented true behavior of `shift'
+
+lib/readline/kill.c
+ - split the kill ring management code and the kill commands out
+ from readline.c into this file
+
+lib/readline/undo.c
+ - split the code that does undoing out of readline.c into this file
+
+shell.c
+ - force the shell to exit with status 127 if a longjmp back to
+ run_one_command occurs with bash -c
+ - force the last command exit status to 1 if a
+ longjmp (top_level, DISCARD) is performed
+
+builtins/read.def
+ - don't throw away partial lines after reading EOF
+
+subst.c
+ - command substitution should not inherit the -e flag
+
+builtins/source.def
+ - make sure to set the exit status correctly when in posix mode
+ and the filename argument to `.' does not exist
+
+ 11/29
+ -----
+lib/readline/input.c
+ - split the input buffering and character input code out of
+ readline.c to here
+
+lib/readline/macro.c
+ - moved the keyboard macro management code to here from readline.c
+
+lib/readline/readline.c
+ - removed the STATIC_MALLOC code
+
+lib/readline/rltty.c
+ - return -1 in POSIX get_tty_settings if tcgetattr returns -1 and
+ errno != EINTR, even if output is being flushed
+
+ 12/1
+ ----
+machines.h
+ - fixes to the hpux_8 and hpux_9 machine descriptions
+
+trap.c
+ - make run_exit_trap return the right exit status
+ (last_command_exit_value)
+ - run_exit_trap no longer preserves the value of last_command_exit_value
+ around the execution of the trap commands
+ - run_exit_trap now turns off SIG_TRAPPED and sets SIG_INPROGRESS
+ and will not try to run anything if SIG_INPROGRESS is set
+
+trap.h
+ - change definition for run_exit_trap
+
+shell.c
+ - call run_exit_trap only if trap[0] is set and not ignored
+
+builtins/exit.def
+ - make sure we only source the .bash_logout file once, even if it
+ contains a call to `exit'
+
+execute_cmd.c
+ - if we run an exit trap in a (...) user subshell, allow it to
+ override the exit status of the subshell
+
+lib/readline/readline.c
+ - made rl_delete_text bounds check its `to' argument, and limit
+ it at rl_end
+
+lib/readline/vi_mode.c
+ - make rl_vi_subst call `rl_delete_text' directly for the `s'
+ command
+
+support/mksysdefs
+ - define a new variable for the sysdefs.h file for ISC machines:
+ ISC_release, which can be ISC_2, ISC_3, or ISC_4
+
+machines.h
+ - don't `#undef' HAVE_GETCWD on ISC 4.x machines
+ - `#undef' HAVE_RESOURCE on ISC 4.x machines
+
+support/mkversion.c
+ - include "posixstat.h" rather than <sys/stat.h> for the benefit
+ of ISC machines
+
+ 12/5
+ ----
+lib/readline/complete.c
+ - changed username_completion_function so that a null username
+ generates a list of all users as possible completions
+
+lib/readline/readline.h
+ - added definitions for STREQ, STREQN
+
+lib/readline/{search.c,isearch.c,kill.c}
+ - removed private definitions of STREQ, STREQN
+
+execute_cmd.c
+ - in find_user_command_internal, just return a copy of the pathname
+ passed as an argument if there is no PATH
+
+ 12/6
+ ----
+siglist.h
+ - NetBSD 1.0 does not need a define for strsignal()
+
+ 12/8
+ ----
+subst.c
+ - removed assignment_name, word_list_quote_removal, word_quote_removal,
+ and sub_append_number -- unused functions
+ - removed some unexecuted code from expand_word_internal
+
+ 12/9
+ ----
+execute_cmd.c
+ - if PATH is set to the empty string, find executables in the
+ current directory
+
+shell.c, parse.y, trap.c
+ - before setting the SIGINT sighandler unconditionally to one of
+ sigint_sighandler or termination_unwind_protect, check that it
+ is not ignored. Now trap '' 2 really sets the SIGINT signal
+ handler to SIG_IGN. [In 1.14.3]
+
+trap.c
+ - rewrote set_sigint_handler to use SIG_IGNORED rather than checking
+ against IGNORE_SIG
+ - changed ignore_signal, run_exit_trap, maybe_call_trap_handler, and
+ run_trap_internal to check SIG_IGNORED
+
+shell.c
+ - removed the check for signal_is_ignored(SIGINT) in sigint_sighandler
+
+ 12/11
+ -----
+sig.c, sig.h
+ - new files, moved signal-related definitions and code here from
+ shell.c, general.h, general.c, jobs.c, jobs.h, externs.h
+
+unwind_prot.c, shell.h, nojobs.c
+ - include sig.h
+
+ 12/12
+ -----
+jobs.c
+ - only break out of loops if SIGTSTP was used to stop a job in the
+ loop, the shell is currently interactive, and job control is on.
+ SIGSTOP does not break loops. [In 1.14.3]
+
+ 12/13
+ -----
+expr.c
+ - bases < 2 or > 36 are now accepted without silently being reset
+ to 10
+
+braces.c
+ - make sure array_concat copies the array it returns if one of
+ the arguments is null [In 1.14.3]
+
+ 12/14
+ -----
+subst.c
+ - split the ${...} expansion code out into a separate function,
+ static char *parameter_brace_expand()
+ - changes to array_value so that any variable can be referred to
+ as an array with an integer subscript. The value will be
+ returned if a non-array variable is referred to as ${var[0]};
+ if the subscript is > 0 a null string is returned
+
+ 12/15
+ -----
+machines.h
+ - fixes to freebsd description for FreeBSD 2 [In 1.14.3]
+
+support/bashbug.sh
+ - changed to use /usr/lib/sendmail if present or /usr/sbin/sendmail
+ if present, defaulting to rmail [In 1.14.3]
+
+bashhist.c
+ - HISTFILESIZE now controls how large the history file is after
+ it is written. After saving the shell history, sv_histfilesize
+ will truncate it if necessary. history -w can override this.
+
+documentation/bash.1
+ - documented change to treatment of HISTSIZE when saving history
+
+lib/malloc/malloc.c
+ - removed the calls to sigsetmask() in malloc(). This should
+ result in a speed improvement
+
+ 12/19
+ -----
+builtins/enable.def
+ - don't allow -f or -d in a restricted shell
+
+builtins/alias.def
+ - rewrote alias and unalias to use the internal getopt
+ - added -p option to print the alias list to alias
+ - fixed up the documentation for `alias'
+
+documentation/{bash.1,features.texi}
+ - updated the documentation for `alias'
+ - updated the documentation for $_
+
+array.c,array.h
+ - new function `empty_array (ARRAY *a)' removes all of the
+ elements in a without destroying the array variable in
+ preparation for overwriting it. Used by read -a.
+
+builtins/read.def
+ - call empty_array() before assigning list of values with read -a
+ - changed dispose_array to use empty_array to destroy the
+ array elements
+
+variables.c
+ - set $_ to argv[0] at variable initialization time
+
+ 12/20
+ -----
+subst.c
+ - broke the pattern removal code into a few separate functions:
+ getpatspec to get the pattern specifier, getpattern to do the
+ necessary word expansions and return the pattern to be matched
+ - new function: parameter_list_remove_pattern(), which implements
+ the ${param[#%][[%#]]pattern} where param is `@' or `*'
+
+documentation/bash.1
+ - documented new pattern removal functionality for the positional
+ paramters
+
+general.c
+ - new function strsub (s, pat, rep, gflag) replaces PAT with REP
+ in S. All occurrences are replaced if GFLAG != 0; the first is
+ replaced otherwise
+ - changed strindex() to avoid multiple calls to strnicmp by
+ checking first character of the string
+
+builtins/fc.def
+ - changed to use builtin_getopt with a check for fc numbers as
+ arguments
+ - some code rearranging for efficiency and clarity
+ - fc_dosubs now just calls strsub(); fc_replace is gone
+
+ 12/21
+ -----
+subst.c
+ - new function, match_pattern, which matches a shell globbing
+ pattern anywhere in a string and returns the boundaries of the
+ match
+
+lib/readline/readline.h
+ - declarations for rl_insert_command and rl_backward_char_search
+
+lib/readline/readline.c
+ - new function rl_insert_comment, no longer vi-mode-specific
+ - new function rl_backward_char_search
+
+lib/readline/bind.c
+ - comment-begin now sets the comment char for emacs and vi modes
+ - variable holding the value is now _rl_comment_begin
+
+lib/readline/vi_mode.c
+ - move the `comment-begin' stuff to readline.c and bind.c
+
+lib/readline/funmap.c
+ - vi-comment is now insert-comment
+ - new bindable command character-search-backward
+
+lib/readline/vi_mode.c
+ - command mode `#' now invokes rl_insert_comment
+
+lib/readline/emacs_keymap.c
+ - M-# now bound to insert-comment
+ - M-space now bound to set-mark
+ - M-^] now bound to character-search-backward
+
+bashline.c
+ - posix_readline_initialize now calls rl_variable_bind to set the
+ value of comment-begin rather than directly modifying
+ _rl_comment_begin
+
+documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
+ - added description of new bindable `insert-comment' command
+ - documented new M-space emacs mode binding
+ - documented new character-search-backward command and default
+ emacs mode binding to M-C-]
+
+shell.c
+ - only call posix_initialize if posixly_correct is set
+
+ 12/22
+ -----
+cpp-Makefile
+ - make $(Program) depend on $(srcdir)/.distribution, for the
+ benefit of systems where `make' does not have VPATH support
+ [In 1.14.3]
+
+jobs.c
+ - if a foreground job is killed by SIGINT while job control is
+ active, print a newline to compensate for the kernel printing
+ ^C without one [in 1.14.3]
+
+bashline.c
+ - make sure bashline_reinitialize resets rl_completion_entry_function
+ to NULL, as the comment says it should [In 1.14.3]
+
+ 12/23
+ -----
+test.c
+ - fix a problem that caused core dumps if a `)' was missing in a
+ parenthesized expression [In 1.14.3]
+
+jobs.c
+ - broke the code the manages the manipulation of the job table and
+ process status out of flush_child into a new function waitchld()
+ - flush_child now just calls waitchld() with a parameter that tells
+ it not to block
+ - wait_for calls waitchld() with the pid it's looking for and tells
+ it to block (don't call it with WNOHANG)
+ - cleaned up wait_for considerably -- turned the wait_loop: label
+ stuff into a do-while loop and removed the setting of job status
+ (that's now done only by waitchld). wait_for now calls
+ waitchld continuously until the job it is interested in is
+ marked JDEAD.
+
+ 12/28
+ -----
+subst.c
+ - fixed expand_word_internal so that any word that expands into
+ nothing and contains a double-quoted $@ is removed, like sh
+ and ksh
+ - new function: expand_string_for_rhs, which calls expand_word_internal
+ with a variable that lets it find out whether or not a $@ appeared
+ in the WORD in ${paramOPword} when expanding it, so that "$@"
+ and various other things are handled correctly on the rhs
+ - added params for parameter_brace_expand to tell expand_word_internal
+ if a quoted $@ was processed as part of the rhs (or even the lhs);
+ these new params are passed along to parameter_brace_expand_rhs
+ - pass the right value of quoted to parameter_brace_expand_rhs from
+ parameter_brace_expand. expand_string_for_rhs doesn't need to know
+ whether the brace expression is quoted
+
+ 12/31
+ -----
+support/printenv
+ - now an official part of the distribution, moved from CWRU/misc
+ [in 1.14.3]
+
+cpp-Makefile
+ - copy support/printenv into the `tests' directory when making tests
+ [in 1.14.3]
+ - change to understand GCC_STANDARD [in 1.14.3]
+
+support/bashbug.sh
+ - fixed a typo that caused it to not parse correctly [in 1.14.3]
+
+machines.h
+ - define GCC_STANDARD if the standard `cc' is gcc and you don't want
+ to use the compiler named `gcc' for some reason [in 1.14.3]
+
+ 1/2
+ ---
+general.h
+ - added FS_DIRECTORY to the list of flags that file_status returns
+
+execute_cmd.c
+ - changed find_in_path_element to return null if the flags argument
+ specifies FS_EXEC_ONLY and the file is not executable
+ - return FS_DIRECTORY from file_status if the argument specifies a
+ directory
+ - new function, is_directory (char *), which returns non-zero if the
+ filename argument is a directory
+
+execute_cmd.h
+ - extern declaration for is_directory
+
+flags.c, flags.h
+ - hashing_disabled and locate_commands_in_functions were removed,
+ hashing_enabled added
+
+execute_cmd.c, builtins/common.c. builtins/hash.def
+ - use hashing_enabled instead of hashing_disabled, and reverse
+ the sense of tests of it
+
+documentation/bash.1, documentation/features.texi
+ - changed description of `set -h/set -o hashcmds', removed
+ set -d/set -o nohash
+
+bashline.c
+ - changed command_word_completion_function to return matches if names
+ are directories as well as if they are executable files
+
+support/mksysdefs
+ - look for `ranlib' in $PATH before searching the file system;
+ look in /usr/gnu/bin for it; default to `:' if not found
+
+general.c
+ - change ansicstr to accept a second argument telling it whether to
+ recognize \c and to pass back a non-zero value in it if \c is
+ seen
+
+general.h
+ - changed extern declaration of ansicstr
+
+subst.c
+ - call ansicstr with an extra argument
+
+ 1/3
+ ---
+builtins/echo.def
+ - rewrote to use ansicstr() with the new argument
+
+ 1/4
+ ---
+trap.c
+ - changed instances of signal() to set_signal_handler() [in 1.14.4]
+ - combined reset_signals and restore_signals into a single function,
+ since they were essentially identical
+
+subst.c
+ - if set -u is set, references to the positional parameters now
+ generate errors if that parameter is not set [in 1.14.4]
+
+lib/*/Makefile, builtins/Makefile
+ - since RANLIB can be just `ranlib', just try to run it without
+ checking that the file exists [in 1.14.4]
+
+builtins/set.def
+ - changed `hashcmds' to `hashall'
+
+documentation/{bash.1,features.texi}
+ - changed `hashcmds' to `hashall'
+
+ 1/5
+ ---
+trap.c
+ - make the loop that restores signal handlers run from signal 0 to
+ make sure user subshells don't inherit traps on `exit' (to fix
+ for 1.14.3, change restore_original_signals so that the loop
+ starts from 0) [in 1.14.4]
+
+variables.c
+ - don't import exported function definitions at startup if the
+ shell is restricted
+
+builtins/source.def
+ - don't allow use of pathname arguments containing `/' in a
+ restricted shell
+
+execute_cmd.c
+ - when a shell is spawned to execute a shell script without a
+ #! line, turn off the -r flag if the shell is restricted
+
+shell.c
+ - added a new long option `--restricted'
+
+documentation/bash.1
+ - added a section on the restricted shell, and documented the
+ new `--restricted' long invocation option
+
+ 1/7
+ ---
+shell.c
+ - when using bash -c command, make run_one_command return
+ last_command_exit_value if a throw_to_top_level with value
+ EXITPROG occurs [in 1.14.4]
+
+print_cmd.c
+ - make sure to initialize arg_index in the non-varargs implementation
+ of cprintf [in 1.14.4]
+
+jobs.c
+ - don't try to change the state of the SIGCHLD handler before
+ calling waitchld() from wait_for, since SIGCHLD is blocked
+ while this code is executing [in 1.14.4]
+
+ 1/11
+ ----
+lib/readline/rltty.c
+ - call control_keypad iff the value of a new variable,
+ _rl_enable_keypad, is non-zero
+
+lib/readline/bind.c
+ - new readline variable `enable-keypad' to control whether readline
+ tries to manipulate the application keypad
+
+documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
+ - documented new `enable-keypad' variable
+
+ 1/12
+ ----
+lib/readline/search.c
+ - make sure to call rl_unix_word_rubout and rl_unix_line_discard
+ with the correct arguments [in 1.14.4]
+
+make_cmd.h
+ - make sure make_select_command is declared even if SELECT_COMMAND
+ is not defined
+
+parse.y
+ - make sure the \[ and \] escape sequences are not recognized if
+ READLINE is not defined [in 1.14.4]
+
+config.h
+ - make sure HISTORY is defined if READLINE is; code moved here
+ from bashhist.c [in 1.14.4]
+
+bashhist.c
+ - removed check for READLINE being defined without HISTORY; now
+ in config.h
+ - new function, bash_history_reinit
+
+flags.h, flags.c, builtins/set.def
+ - the -H/-o histexpand flag should be compiled into the shell
+ only if BANG_HISTORY is defined [in 1.14.4]
+
+subst.c
+ - don't include sv_histchars unless BANG_HISTORY is defined
+ [in 1.14.4]
+ - if QUOTED is true in parameter_brace_expand_rhs, pre-process the
+ word on the rhs of the parameter expansion by a call to
+ string_extract_double_quoted with the STRIPDQ parameter set to 1
+ - new arg for string_extract_double_quoted; causes it to strip
+ double quotes and alter its backslash handling behavior; designed
+ to be called from parameter_brace_expand_rhs
+ - changed all other instances of string_extract_double_quoted to
+ call it with STRIPDQ set to 0, to get old behavior
+
+shell.c
+ - call bash_history_reinit rather than manipulating history
+ variables directly
+
+variables.c
+ - don't auto-export $BASH [in 1.14.4]
+
+tests/rhs-exp.tests
+ - new test script to check for behavior fixed by changes to
+ string_extract_double_quoted and parameter_brace_expand_rhs
+
+parse.y
+ - `for' and `select' must now take non-empty lists between
+ `in' and `;'
+
+ 1/16
+ ----
+subst.c
+ - fixed string_quote_removal to do double-quoted string processing
+ itself rather than call string_extract_double_quoted, which
+ assumes that a call to expand_word_internal or the equivalent
+ will follow immediately and leaves some backslashes in place,
+ inappropriately for quote removal
+
+ 1/23
+ ----
+subst.c
+ - make sure to set `temp' to NULL after it's freed by sub_append_string
+ in expand_word_internal to keep it from pointing to newly-allocated
+ memory that will be subsequently freed, causing a `memory freed
+ twice' error [in 1.14.4]
+
+trap.c
+ - handle the EXIT_TRAP specially in reset_or_restore_signal_handlers,
+ since in both cases we simply want to free up the trap string and
+ mark the signal as not trapped
+
+shell.h
+ - added \n to the list of characters in slashify_in_double_quotes
+
+ 1/26
+ ----
+subst.c
+ - make string_extract_single_quoted and string_extract_double_quoted
+ `inline'
+ - new function skip_single_quoted, used when we used to call
+ string_extract_single_quoted and just throw the returned string
+ away
+ - new function skip_double_quoted for the same purpose
+
+ 1/28
+ ----
+subst.c
+ - fixed expand_word_internal so that if an assignment word
+ is expanded, no word splitting is performed [in 1.14.4]
+
+builtins/ulimit.def
+ - some systems lack RLIMIT_CPU; so `#ifdef' its use [in 1.14.4]
+ - some versions of cpp expand parameters like \n if `n' is an
+ argument to the macro; change `n' to `num' in the definition
+ of print_rlimtype to compensate [in 1.14.4]
+
+builtins/read.def
+ - make sure the read loop sets `saw_escape' to note that an
+ escape character was read if CTLESC or CTLNUL is read [in 1.14.4]
+
+shell.c, sig.c
+ - only test interactive_shell before calling maybe_save_shell_history
+ [in 1.14.4]
+shell.c
+ - include <locale.h> if HAVE_LOCALE_H is defined
+ - call setlocale(LC_ALL, "") at the beginning of main() if
+ either _POSIX_VERSION or HAVE_SETLOCALE is defined
+
+support/mksysdefs
+ - look for <locale.h>, define HAVE_LOCALE_H if found
+
+cpp-Makefile
+ - pass HAVE_LOCALE_H through from sysdefs.h to the build process
+
+bashhist.c
+ - remove test against interactive_shell in maybe_save_shell_history
+ [in 1.14.4]
+
+variables.c
+ - moved definition of DEFAULT_MAIL_PATH to config.h
+
+config.h, config.h.mini
+ - now has definition of DEFAULT_MAIL_PATH [in 1.14.4]
+ - changed default value of PATH to
+ `/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.'
+ [in 1.14.4]
+
+documentation/bash.1
+ - updated the example of the default path in the description of
+ the PATH variable
+
+lib/readline/readline.c
+ - set up a table of `legal' LC_CTYPE values and match the value of
+ $LC_CTYPE against it when deciding whether or not to default to
+ eight-bit input and output
+ - check for LC_ALL, LC_CTYPE, and LANG, in that order, for names to
+ check against the legal_lc_ctype_values table
+
+lib/readline/bind.c
+ - moved strindex, stricmp, and strnicmp to lib/readline/util.c,
+ added _rl_ prefix to names
+ - some miscellaneous code cleanups and speedups
+
+lib/readline/rldefs.h
+ - define _POSIX_VDISABLE as _SVR4_VDISABLE if there is a define
+ for the latter and not the former [in 1.14.4]
+ - moved defining _rl_stricmp and _rl_strnicmp as strcasecmp and
+ strncasecmp, respectively, here from bind.c, since the functions
+ are now defined in util.c and used in two files
+
+builtins/common.c
+ - removed the \n case in double_quote, so a backslash is not added
+ before an existing newline. The \<newline> pair is removed by
+ the parser before anything else in the shell gets hold of it
+ except within single quotes [in 1.14.4]
+
+ 1/30
+ ----
+general.c
+ - make sure the string index in canonicalize_pathname never goes
+ < 0 (it can, in some cases, result in `start' being -1, and `i'
+ being set to that) [in 1.14.4]
+
+ 2/1
+ ---
+execute_cmd.c
+ - fix a typo in a call to `access' in AFS-specific code [in 1.14.4]
+
+ 2/3
+ ---
+builtins/shopt.def
+ - finally added new `shopt' builtin
+
+builtins/umask.def
+ - converted to use builtin_getopt
+
+bashhist.c
+ - support for storing literal newlines in the history list when
+ command_oriented_history is enabled, rather than using semicolons
+
+builtins/Makefile
+ - changed rule to make a .o file from a .def file to remove the
+ .c file if the compilation fails
+
+ 2/6
+ ---
+bashhist.c
+ - added new variable `force_append_history' that will force the
+ history list to be appended to the history file at shell exit
+ - new function, maybe_append_history, to append any history lines
+ from the current session to the history file. Used by history -a
+
+builtins/bind.def
+ - changed the `-d' option to -p
+
+builtins/set.def
+ - added `allenv' as a -o synonym for `set -k'. Now all of the
+ single-letter shell options have -o equivalents
+
+builtins/shopt.def
+ - added -p option to display shell options, like other builtins
+ - added `interactive_comments' as a shell option, like set -o
+
+builtins/bind.def, builtins/history.def, builtins/enable.def
+ - changed use of multiple variables to hold option flag settings to
+ one variable with bits representing flag values
+
+documentation/bash.1, documentation/features.texi
+ - changed the description of the `bind' builtin for the new -p option
+ - changed the description of the `set' builtin for the new
+ `-o allenv' option
+ - updated the description of the `shopt' builtin
+
+builtins/history.def
+ - changed -a option to use maybe_append_history
+
+subst.c
+ - changed the substring/subarray code to make negative offsets
+ count backwards from the end of the string or array
+
+builtins/bashgetopt.c
+ - added option modifiers `;' (argument is optional) and `#'
+ (argument is optional, but if present must be numeric)
+
+builtins/hash.def
+ - converted to use builtin_getopt
+ - broke code out into a new function: add_hashed_command
+
+ 2/7
+ ---
+builtins/getopt.c
+ - changed to save state to avoid relying on `nextchar' staying the
+ same across calls to sh_getopt [in 1.14.4]
+ - added a function to restore `nextchar' from this saved state
+ [in 1.14.4]
+ - removed some dead code
+
+builtins/getopts.def
+ - call function to restore sh_getopt state when parsing explicitly
+ supplied arguments rather than the positional parameters [in 1.14.4]
+
+lib/readline/vi_mode.c
+ - fixed an off-by-one error in _rl_vi_done_inserting that put the
+ \0 in vi_insert_buf at offset `len' instead of `len - 1'
+
+lib/readline/complete.c
+ - print_filename now filters out control characters and displays
+ them in printable format, rather than relying on the tty driver
+ to do the right thing [in 1.14.4]
+
+ 2/8
+ ---
+lib/posixheaders/stdc.h
+ - test for each special keyword being defined individually, rather
+ than just testing on `const' [in 1.14.4]
+
+lib/readline/util.c
+ - new function _rl_abort_internal; rl_abort just calls this
+
+nojobs.c
+ - include error.h for extern function definitions [in 1.14.4]
+
+builtins/ulimit.def
+ - include <unistd.h> if HAVE_UNISTD_H is defined
+ - use HAVE_LIMITS_H to decide whether or not to include <limits.h>
+
+variables.c, subst.c, builtins/set.def
+ - removed special handling of `noclobber' variable
+
+builtins/set.def
+ - new function set_shellopts to set up the $SHELLOPTS variable
+ based on the values of the set -o options; `set' calls this
+ function whenever one of the options is changed
+ - new function parse_shellopts to take the value of SHELLOPTS and
+ turn on each option found therein
+ - new function initialize_shell_options to parse any inherited
+ value of $SHELLOPTS and set up $SHELLOPTS
+
+shell.c
+ - call initialize_shell_options at the end of shell_initialize()
+
+execute_cmd.c, general.c
+ - moved extract_colon_unit from execute_cmd.c to general.c
+
+execute_cmd.h, general.h
+ - moved extern declaration of extract_colon_unit from
+ execute_cmd.h to general.h
+
+documentation/{bash.1,features.texi}
+ - documented SHELLOPTS
+
+ 2/18
+ ----
+builtins/{shopt,pushd,jobs,umask}.def
+ - removed the `longjobs', `longdirs', `pushd_home' and `symbolic_umask'
+ options
+
+lib/readline/{histexpand,histsearch,histfile}.c, lib/readline/histlib.h
+ - new files, split off from old history library history.c
+
+lib/readline/history.c, lib/readline/history.h
+ - new function clear_history() to clear the history list
+
+lib/readline/doc/hstech.texinfo
+ - documented clear_history ()
+
+builtins/pushd.def
+ - new function clear_directory_stack() to delete all elements of
+ the dir stack
+ - new -c option for `dirs' to clear directory stack
+ - new function get_dirstack_index for dirs -N and dirs +N to use
+ - new function get_dirstack_element(i, dir) for use by other parts of
+ the shell that want the functionality of dirs -N and dirs +N
+ (dir is 1 for dirs +N, -1 for dirs -N)
+ - new function set_dirstack_element(i, dir, val) for use by other
+ parts of the shell to change values in the dirstack (dir is -1
+ for dirs -N, +1 for dirs +N). Used when assigning to $DIRSTACK.
+
+builtins/history.def
+ - new -c option to clear the history list
+
+documentation/bash.1, documentation/features.texi
+ - removed no-longer-valid shopt options
+ - documented new dirs -c option
+ - documented new history -c option
+ - documented new \T and \H prompt escape sequences
+ - documented new $DIRSTACK dynamic array variable
+ - documented the new expand-glob and list-glob readline commands
+
+variables.c
+ - set PS4 to its default value of `+ ', so that unsetting it will
+ disable the tracing characters [in 1.14.4]
+ - new framework for dynamic array variables -- each place an
+ array index is assigned to, a test is made. if a dynamic
+ assignment function exists, it is called with args `self',
+ the index being assigned to, and the new value
+ - new variable `$DIRSTACK', a dynamic array variable that holds
+ the current contents of the directory stack. You can even
+ change the stack by assigning to thie variable
+
+shell.c
+ - changed indirection_level_string to return the null string if
+ $PS4 is unset or null [in 1.14.4]
+
+parse.y
+ - new \H prompt escape for hostname up to first `.'; changed \h
+ to return full hostname (like \w/\W)
+ - new \T prompt escape for 12-hour time
+
+bashline.c
+ - new readline functions to expand glob patterns and insert or
+ list the expansions (special completion functions)
+
+
+ 2/20
+ ----
+builtins/pushd.def
+ - new code for `pushd -n' and `popd -n' to inhibit cd when
+ adding or removing directories from the stack
+ - broke functionality off into separate functions for use by the
+ $DIRSTACK manipulation functions
+
+ 2/21
+ ----
+lib/readline/kill.c
+ - new functions to copy words to the kill ring, backward or
+ forward
+
+lib/readline/readline.h
+ - extern declarations for rl_copy_{backward,forward}_word
+
+
+lib/readline/funmap.c
+ - new bindable readline commands: copy-backward-word and
+ copy-forward-word to copy portions of the line to the kill
+ ring without deleting them
+
+documentation/{bash.1,readline.3}, lib/readline/doc/hsuser.texinfo
+ - documented the new copy-backward-word and copy-forward-word
+ readline commands
+
+mailcheck.c, config.h
+ - the declaration of DEFAULT_MAIL_PATH is now only in config.h
+ and used by mailcheck.c and variables.c. There is no need to
+ use DEFAULT_MAIL_PATH_LEN; `sizeof' does the job [in 1.14.4]
+
+ 2/22
+ ----
+support/mksysdefs
+ - changes to fix `RELEASE' if it ends up being set to the empty string
+ [in 1.14.4]
+ - check for amdahl UTS [in 1.14.4]
+ - check for SGI Irix version 6.x [in 1.14.4]
+
+machines.h
+ - new entry for Amdahl UTS [in 1.14.4]
+ - changes to the SGI entry for Irix 6.x [in 1.14.4]
+
+ 2/23
+ ----
+machines.h
+ - changes for BSD/OS 2.0 (M_OS now set to `BSD_OS') [in 1.14.4]
+
+support/mksysdefs
+ - change to recognize BSD/OS 2.0 and set SYSDEF to BSDI2 [in 1.14.4]
+
+siglist.h
+ - don't declare sys_siglist on BSD/OS 2.0 [in 1.14.4]
+
+ 2/24
+ ----
+parse.y
+ - if reset_parser is called while the prompt command is being
+ executed because of a syntax error in $PROMPT_COMMAND, an
+ infinite loop results. set token_to_read back to 0 at the
+ end of execute_prompt_command to stop the looping [in 1.14.4]
+
+ 2/25
+ ----
+mailcheck.h
+ - new header file for mail-checking and related definitions
+ - declaration of DEFAULT_MAIL_PATH is now here
+
+mailcheck.c
+ - new function, make_default_mailpath, which constructs a default
+ $MAILPATH string from DEFAULT_MAIL_PATH [in 1.14.4]
+ - change remember_mail_dates to call make_default_mailpath
+ [in 1.14.4]
+
+externs.h
+ - moved function declarations for functions in mailcheck.c to
+ mailcheck.h
+
+variables.c
+ - change initialize_shell_variables to call make_default_mailpath
+ [in 1.14.4]
+ - removed some unneeded variables in initialize_shell_variables
+
+ 2/26
+ ----
+lib/readline/callback.c
+ - new file with readline callback function interface
+
+lib/readline/rlconf.h
+ - new READLINE_CALLBACKS define for the readline callback code to
+ be compiled in and available
+
+lib/readline/readline.c
+ - broke readline_internal into three functions: readline_internal_setup,
+ readline_internal_charloop, and readline_internal_teardown
+ - changes for READLINE_CALLBACKS
+
+lib/readline/readline.h
+ - extern declarations for the readline callback code
+
+cpp-Makefile
+ - added lib/readline/callback.c to the list of readline files
+
+lib/readline/input.c
+ - added a layer of indirection to allow the user to specify the
+ function that reads a character from rl_instream. The variable
+ name is rl_getc_function, set by default to rl_getc
+
+ 2/27
+ ----
+lib/readline/display.c
+ - added a variable rl_redisplay_function to allow an application-
+ specified redisplay function, for those apps that want to control
+ redisplay
+
+lib/readline/readline.c
+ - extern declarations for rl_getc_function and rl_redisplay_function
+
+lib/readline/{readline,display,isearch,search,parens}.c
+ - changed to call through rl_redisplay_function rather than
+ rl_redisplay directly
+
+parse.y
+ - try to avoid some work in reset_readline_prompt and prompt_again
+ if the prompt is the empty or null string [in 1.14.4]
+
+lib/readline/readline.c
+ - call rl_expand_prompt unconditionally [in 1.14.4]
+
+lib/readline/display.c
+ - short-circuit out of rl_expand_prompt if the prompt string is null
+ after clearing out the saved local prompt values. This allows
+ $PS2 to be set to "" [in 1.14.4]
+
+lib/readline/doc/rltech.texinfo
+ - documented the callback code and functions
+ - documented rl_getc_function and rl_redisplay_function
+
+lib/readline/{callback,readline,rltty,signals}.c
+ - added layer of indirction for terminal prep and deprep, with
+ rl_term_prep_function and rl_term_deprep_function. These are
+ set by default to rl_prep_terminal and rl_deprep_terminal,
+ respectively
+
+lib/readline/readline.h
+ - make rl_term_prep_function and rl_term_deprep_function available
+ to callers
+
+ 3/1
+ ---
+lib/readline/complete.c
+ - broke the (long, complicated) rl_complete_internal code into a
+ number of separate functions:
+
+ find_completion_word
+ gen_completion_matches
+ remove_duplicate_matches
+ display_matches
+ insert_text
+ insert_match
+ append_to_match
+ insert_all_matches
+
+ - made some efficiency improvments to filename_completion_function
+ - the completion ignore function is now called no matter what type
+ of completion is being performed (as it should have been all along)
+
+lib/readline/rldefs.h
+ - use #defines for the possible values ORed into `found_quote' by
+ the completion code
+
+ 3/2
+ ---
+make_cmd.c, general.c
+ - moved make_word_array from make_cmd.c to general.c, renamed to
+ word_list_to_argv, extended it to optionally not malloc all of
+ the strings and to reserve space at the start of the array
+
+execute_cmd.c
+ - changed to use word_list_to_argv, not mallocing space for the
+ strings
+
+builtins/common.c, builtins/common.h
+ - new function make_builtin_argv, which uses word_list_to_argv
+ and reserves 1 slot at the beginning for the command name
+
+builtins/exec.def
+ - changed to use word_list_to_argv
+
+builtins/{getopts,test}.def
+ - changed to use make_builtin_argv
+
+subst.c
+ - new function match_pattern_char, to see if the first char of
+ a string has a chance to match a given pattern (test against
+ the first char of the pattern); used by match_pattern in the
+ MATCH_ANY case
+
+ 3/3
+ ---
+jobs.c
+ - renamed flush_child to sigchld to capture the functionality better
+
+array.c
+ - new function array_pat_subst, to do pattern substitution on each
+ element in an array
+
+array.h
+ - extern declaration for array_pat_subst
+
+subst.c
+ - new function pat_subst to do pattern matching and substitution on
+ a string
+ - new function parameter_brace_pat_subst to implement
+ ${v/[/]pat[/sub]}; calls pat_subst for simple vars,
+ pos_params_pat_subst to do substitution on the positional params,
+ and array_pat_subst for things like ${v[@]/p/r}
+
+subst.h
+ - extern declaration for pat_subst so array.c can find it
+
+ 3/6
+ ---
+parse.y
+ - <>filename now dups filename to file descriptor 0 for both input
+ and output even when not in posix.2 mode
+
+bashline.c
+ - add the globbing characters to the list of characters that need
+ to be quoted by filename completion
+
+jobs.h
+ - new convenience macros:
+ RUNNING, STOPPED, DEADJOB - to test a job's state
+ IS_FOREGROUND, IS_NOTIFIED, IS_JOBCONTROL - flags
+
+jobs.c, builtins/{kill,fg_bg}.def
+ - changed to use new jobs.h macros
+
+ 3/7
+ ---
+array.c, array.h
+ - new function dup_array_subrange(a, s, e) to make a new array
+ out of the elements of array A between S and E, inclusive
+ - add `quoted' parameters to array_subrange and array_pat_subst
+ to preserve proper quoting of elements when expanding things
+ like "${av[@]/xx/yy}"
+ - new function array_quote to quote the members of an array like
+ the functions in subst.c
+
+subst.c
+ - pass the quoted flag to array_subrange and array_pat_subst
+ - quote_string is no longer static
+
+subst.h
+ - extern declaration for quote_string
+
+builtins/hash.def
+ - added a -p pathname option to specify a pathname for the command
+ name to be hashed. With -p, no path search is performed.
+
+lib/readline/histexpand.c
+ - broke history_tokenize off into history_tokenize_internal and
+ added two arguments: a character index and a word index. If
+ the char index is >= 0, the word index will be modified to point
+ into the returned array of strings to the word surrounding that
+ particular character index
+ - new function history_find_word(line, ind) to return the word
+ containing the character at index IND in LINE
+ - new variable search_match, found by history_find_word, to hold the
+ word last matched by a !?string? search
+ - corrected a problem with the `%' modifier: it should insert the
+ word last matched, not the last search string
+
+ 3/8
+ ---
+cpp-Makefile
+ - changed INSTALL_PROGRAM and INSTALL_DATA to use support/install.sh
+ - changed `install' target to not explicitly save the old version of
+ bash in `bash.old'; let install take care of it
+
+shell.c
+ - new static variable `running_under_emacs', set to 1 if the
+ variable `EMACS' is in the startup environment, and to 2 if
+ we're running under the `eterm' terminal emulator
+ - send an escape sequence to eterm if running_under_emacs is 2
+ after executing any $PROMPT_COMMAND to tell it the current
+ directory
+
+ 3/9
+ ---
+builtins/ulimit.def
+ - made getting -u work for systems that have a MAXUPRC define.
+ it still cannot be set without RLIMIT_NPROC
+
+shell.c
+ - include trap.h for sig definitions
+
+builtins/common.h, subst.h, general.h, externs.h
+ - more extern function declarations
+
+bashhist.c
+ - new function, bash_history_disable(), to turn off history and
+ history expansion
+ - bash_history_disable now sets history_expansion_inhibited
+
+bashline.h
+ - new file with extern declarations from bashline.c
+
+parse.y, bashhist.c, builtins/bind.def, subst.c, sig.c
+ - include bashline.h
+
+ 3/10
+ ----
+lib/glob/glob.h
+ - new file with extern declarations for local glob library
+
+shell.c
+ - include glob.h, mailcheck.h
+
+cpp-Makefile
+ - changes to dependencies due to mailcheck.h, bashline.h, glob.h
+
+ 3/13
+ ----
+execute_cmd.c
+ - new function execute_connection to execute commands of type
+ cm_connection
+ - new function execute_pipeline, to execute pipelines
+
+lib/readline/rltty.c
+ - add a `tty' argument to the set_winsize function/macro, the
+ non-shell version needs it
+
+ 3/14
+ ----
+parse.y
+ - added \a (bell) and \e (escape) prompt string escape sequences
+
+ 3/16
+ ----
+lib/readline/display.c
+ - fixed bug in update_line that caused stray characters to be left on
+ lines after the first if characters are deleted so that the first
+ line becomes exactly as long as the screen width [in 1.14.4]
+
+lib/readline/doc-support
+ - brought in the GNU getopt because texindex needs it
+
+documentation/Makefile
+ - adopted the BSD convention of a suffix of `.0' for formatted
+ manual pages
+
+ 3/17
+ ----
+support/inpath
+ - a script to find out if a particular command name appears in
+ a directory in $PATH [in 1.14.4]
+
+support/mksysdefs
+ - changed to use inpath to find `ranlib' [in 1.14.4]
+
+ 3/18
+ ----
+bashline.c
+ - include bashline.h
+ - removed the DYNAMIC_HISTORY_COMPLETION define; that code is now
+ included unconditionally
+ - renamed ETCHOSTS to DEFAULT_HOSTS_FILE; moved definition to
+ bashline.h
+ - moved definition of BRACE_COMPLETION to config.h
+
+config.h
+ - conditional definition of BRACE_COMPLETION is now here
+
+pathnames.h
+ - new file with defines that are absolute pathnames
+
+shell.h
+ - include pathnames.h
+
+mailcheck.h
+ - def of DEFAULT_MAIL_PATH now moved to pathnames.h
+
+shell.c
+ - def of SYS_PROFILE moved to pathnames.h
+
+alias.h
+ - removed a bunch of extra definitions
+
+lib/readline/{vi_mode.c,bind.c}
+ - removed superfluous STATIC_MALLOC code
+
+variables.c
+ - removed SHADOWED_ENV code
+
+ 3/20
+ ----
+machines.h
+ - don't define USG or USGr3 for linux machines [in 1.14.4]
+ - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
+ compatibility
+
+shell.c
+ - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
+ compatibility
+
+support/mksysdefs, maxpath.h
+ - change HAVE_SYS_PARAM to HAVE_SYS_PARAM_H for autoconf
+ compatibility
+
+support/mksysdefs, jobs.h
+ - use HAVE_SYS_WAIT_H
+
+machines.h, error.c
+ - change HAVE_VFPRINTF to HAVE_VPRINTF for autoconf compatibility
+
+test.c
+ - replace UID_T and GID_T with GETGROUPS_T, the size of the elements
+ of the array returned by getgroups
+
+general.c
+ - define HAVE_KILLPG if killpg() is present; compile in a replacement
+ killpg if not
+
+machines.h, jobs.c
+ - change BSD_GETPGRP to HAVE_BSD_PGRP
+
+sig.c
+ - don't call initialize_siglist if HAVE_SYS_SIGLIST is defined, no
+ longer use INITIALIZE_SIGLIST
+
+machines.h, lib/malloc/malloc.c
+ - change NO_SBRK_DECL to SBRK_DECLARED
+
+ 3/22
+ ----
+machines.h
+ - BSD/OS 2.0 does not need INT_GROUPS_ARRAY in SYSDEP_CFLAGS
+
+lib/readline/rldefs.h
+ - don't check `Linux'; just include <termcap.h> if HAVE_TERMCAP_H
+ is defined
+
+builtins/command.def
+ - changed get_standard_path to use HAVE_CONFSTR
+
+execute_cmd.c
+ - execute_simple_command no longer uses alloca
+ - don't check RISC6000 anymore when deciding whether to use
+ #pragma alloca
+
+execute_cmd.c, shell.c
+ - check for ultrix instead of Ultrix when calling alloca(0)
+
+jobs.h
+ - check HAVE_UNISTD_H to see whether to declare fork, getpid,
+ and getpgrp
+
+builtins/common.c
+ - include <signal.h> for NSIG
+
+sig.h
+ - don't define SIGABRT as SIGIOT unless SIGIOT is defined
+
+jobs.c
+ - check for ultrix instead of Ultrix
+
+ 3/23
+ ----
+general.c, general.h
+ - new function check_dev_tty, which makes sure we can open
+ /dev/tty
+
+shell.c
+ - call check_dev_tty instead of having the code inline
+
+posixstat.h
+ - removed references to isc386
+
+general.h
+ - code to define one of TERMIOS_TTY_DRIVER, TERMIO_TTY_DRIVER,
+ or NEW_TTY_DRIVER
+
+jobs.c, nojobs.c
+ - use the general.h code to define the tty driver types
+
+ 3/24
+ ----
+builtins/declare.def
+ - new -p option to display variables and their values and attributes
+ `declare -p xxx' displays attribs and value of var `xxx'
+
+builtins/setattr.def
+ - new function to display the attributes and value of a particular
+ variable; used by set_or_show_attributes
+ - new function to look up a variable by name and show that name's
+ attributes and value
+
+builtins/common.c
+ - declarations for new functions in setattr.def
+
+variables.c
+ - don't set a default value for MAILPATH in initialize_shell_variables;
+ let remember_mail_dates take care of it [in 1.14.4]
+
+mailcheck.c
+ - fixed an off-by-one bug in make_default_mailpath [in 1.14.4]
+
+ 3/28
+ ----
+[changes for autoconf-generated config files]
+
+lib/malloc/malloc.c
+ - use HAVE_GETPAGESIZE, HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS
+
+trap.c
+ - remove tests for USG and USGr4
+ - test on HAVE_POSIX_SIGNALS rather than _POSIX_VERSION
+ - use MUST_REINSTALL_SIGHANDLERS define to decide whether trap_handler
+ should call signal again
+
+getcwd.c
+ - redid the directory includes for autoconf compatibility
+ - use HAVE_LSTAT instead of testing for S_ISLNK
+ - use STRUCT_DIRENT_HAS_D_INO
+ - include memalloc.h for alloca define
+
+general.h
+ - cleaned up strchr, strrchr definitions
+ - removed tests against USG
+ - use HAVE_MEMMOVE instead of MEMMOVE_MISSING
+
+jobs.c
+ - use HAVE_WAIT3, MUST_REINSTALL_SIGHANDLERS, GETPGRP_VOID
+
+mailcheck.h
+ - removed definition of DEFAULT_MAIL_DIRECTORY; now set by
+ autoconf in config.h
+
+shell.c
+ - remove checks on USG, just check for HAVE_GETPW_DECLS
+ - use C_ALLOCA define
+ - redid the isnetconn() code using HAVE_SYS_SOCKET_H,
+ HAVE_GETPEERNAME, SVR4 and SVR4_2
+
+general.c
+ - use HAVE_KILLPG, HAVE_RESTARTABLE_SYSCALLS, HAVE_UNAME,
+ ULIMIT_MAXFDS, HAVE_TIMEVAL, HAVE_TIMES
+
+lib/readline/rldefs.h
+ - redid the tty driver definitions using HAVE_TERMIOS_H, etc.
+ - don't define anything having to do with signal type
+
+lib/glob/glob.c
+ - redid the DIRENT defines and includes
+ - redid other includes to remove dependencies on USG and system
+ type (e.g., NeXT)
+
+builtins/times.def
+ - changed to use HAVE_GETRUSAGE, HAVE_TIMEVAL, HAVE_TIMES, and
+ the autoconf way to include <sys/time.h> and <time.h>
+
+builtins/ulimit.def
+ - changed to use HAVE_GETRLIMIT
+ - removed test of USG being defined
+
+siglist.h
+ - changed to use SYS_SIGLIST_DECLARED, HAVE_UNDER_SYS_SIGLIST, and
+ HAVE_STRSIGNAL
+
+print_cmd.c
+ - use PRINTF_DECLARED
+
+builtins/command.def
+ - use HAVE_CONFSTR along with _CS_PATH to get the standard path
+
+execute_cmd.c
+ - only compile in execute_shell_script if HAVE_HASH_BANG_EXEC is not
+ defined
+
+nojobs.c
+ - use HAVE_SIGINTERRUPT, HAVE_KILLPG, HAVE_POSIX_SIGNALS,
+ MUST_REINSTALL_SIGHANDLERS, HAVE_WAITPID, *_TTY_DRIVER defines
+
+test.c
+ - set up a new `getmaxgroups' define, moving the code out of inline
+ - eliminate use of GETGROUPS_T
+
+variables.c
+ - use CAN_REDEFINE_GETENV
+
+sig.c, sig.h
+ - use HAVE_POSIX_SIGNALS, MUST_REINSTALL_SIGHANDLERS
+
+pathnames.h
+ - removed the default mail directory defines; now set by autoconf
+
+oslib.c
+ - new file, functions from general.c that are unix-version variable
+
+general.h
+ - slightly changed function declarations for use by oslib.c
+
+support/bashbug.sh
+ - changed @xxx@ to !xxx! for sed substitutions to avoid conflicts
+ with autoconf substitutions in the Makefile
+ - added MACHTYPE variable
+
+mailcheck.c
+ - changed DEFAULT_MAIL_PATH to DEFAULT_MAIL_DIRECTORY, since that
+ more clearly defines its function
+
+lib/readline/rltty.h
+ - new file, to include the correct tty driver #include file
+
+lib/readline/rltty.c
+ - include rltty.h
+
+lib/malloc/malloc.c
+ - make systems with Posix signals block all signals while malloc
+ is executing
+
+ 3/29
+ ----
+input.c
+ - use off_t as the type of a seek offset, rather that int or long
+
+variables.c, oslib.c
+ - moved `getenv' from variables.c to oslib.c
+
+ 3/31
+ ----
+sig.c, sig.h
+ - new function, jump_to_top_level, which just calls longjmp with
+ top_level as an argument -- here to isolate calls to longjmp
+
+subst.c
+ - replaced calls to longjmp with jump_to_top_level
+
+bashjmp.h
+ - new file with setjmp/longjmp defines and declarations
+
+shell.h, nojobs.c
+ - include bashjmp.h in place of setjmp.h
+
+shell.c, sig.c, execute_cmd.c, unwind_prot.h, expr.c,
+builtins/{return,source}.def
+ - change to use new defs in bashjmp.h
+
+subst.c
+ - make sure PAT and REP in pattern substitution are run through
+ expand_string_unsplit
+
+builtins/set.def
+ - don't try to blindly dereference the value returned by
+ find_flags in set_shellopts
+
+ 4/2
+ ---
+aclocal.m4, config.h.in, config.h.top, config.h.bot, configure.in,
+support/install.sh, support/config.guess, support/config.sub
+ - new files for (now official) autoconf-based configuration
+
+Makefile.in, builtins/Makefile.in,
+lib/{doc-support,malloc,glob,termcap,tilde,readline}/Makefile.in
+ - new Makefiles for autoconf
+
+[additionally, all source files now include config.h]
+
+ 4/3
+ ---
+array.c, array.h
+ - index_t --> arrayind_t, because some systems define index_t in
+ <sys/types.h>
+
+ 4/4
+ ---
+aclocal.m4
+ - fix test for broken dup2
+
+lib/*/Makefile.in
+ - make all object files depend on $(BUILD_DIR)/config.h
+
+ 4/5
+ ---
+array.c
+ - fixed problems in empty_array: need to reset max_index
+ and max_size, and remove the links in the element chain
+ after freeing them
+
+jobs.c
+ - new functions to save an array of status values for each
+ foreground job that exits (degenerate case is to have a
+ single-process job exit and have a 1-element array)
+ - new function to set a shell array variable `PIPESTATUS'
+ which holds the status values from each member of the
+ last-executed pipeline that spawned children
+
+documentation/bash.1
+ - documented $PIPESTATUS
+
+ 4/6
+ ---
+configure.in
+ - added new --with-afs argument to #define AFS for execute_cmd.c
+
+ 4/10
+ ----
+builtins/ulimit.def
+ - use sysconf(_SC_CHILD_MAX) to find the maximum number of child
+ proceeses per user if HAVE_SYSCONF and _SC_CHILD_MAX are both
+ defined and RLIMIT_NPROC is not
+
+ 4/12
+ ----
+lib/readline/undo.c
+ - new variable, local to library, to keep track of the number of
+ `open' undo groups (UNDO_BEGIN without corresponding UNDO_END)
+ - new function _rl_fix_last_undo_of_type to modify start and end
+ bounds of last undo record of a specified type
+
+lib/readline/vi_mode.c
+ - _rl_vi_done_inserting now calls rl_end_undo_group if the count
+ of unclosed groups is > 0
+ - fixed rl_vi_change_to to save an undo record when redoing and
+ to fix the buffer corruption when doing `u' undo after a `.'
+ redo of `C'
+
+ 4/13
+ ----
+unwind_prot.h
+ - changed to use a union { char *s; int i; } when unwind-protecting
+ integers to force correct alignment on machines where ints and
+ pointers differ in size
+
+lib/readline/readline.c
+ - new variable Keymap rl_executing_keymap, which is set to the
+ keymap the last function was invoked out of
+
+lib/readline/bind.c
+ - new variable Keymap rl_binding_keymap, which is set to the last
+ keymap a function and key sequence were bound in
+
+ 4/17
+ ----
+general.c
+ - removed xmalloc, xrealloc, xfree to xmalloc.c
+
+lib/malloc/Makefile.in
+ - MALLOC and ALLOCA are both set by autoconf
+ - need to provide some empty stub file to make up the library
+ in case neither malloc.c and alloca.c are compiled into the
+ shell
+
+lib/malloc/gmalloc.c
+ - new file, GNU libc malloc code
+
+Makefile.in
+ - new source file, xmalloc.c, new object file, xmalloc.o
+
+general.h
+ - changed type of size argument to xmalloc, xrealloc to `size_t'
+
+configure.in
+ - changes for new argument `--with-glibc-malloc' that includes
+ gmalloc.o in libmalloc.a
+
+ 4/18
+ ----
+xmalloc.c
+ - if malloc or realloc return null, report in the error message
+ how many bytes have been allocated
+
+lib/readline/display.c
+ - changed redisplay code to use an array of positions in the visible
+ and invisible lines at which to break lines instead of simply
+ calculating based on the screenwidth and number of invisible
+ characters. In the future, this will allow newlines embedded in
+ the lines to display to be handled better
+
+[Bash-1.14.4 released to net]
+
+ 4/19
+ ----
+lib/readline/signals.c
+ - changed last call to signal() to call rl_set_sighandler()
+
+ 4/20
+ ----
+lib/readline/display.c
+ - changed some ascii-specific code to use CTRL_CHAR and UNCTRL
+ - finished up the changes that keep an array of line breaks
+
+shell.h
+ - moved #define constants for parameter pattern substitution here
+ from subst.c
+
+subst.c
+ - changed the pattern substitution functions to take a `flags'
+ parameter, which subsumes the match type, global replacement
+ flag, and quoted variables
+ - changed the pattern substitution functions to handle the `#'
+ and `%' match qualifiers, which anchor the match at the
+ beginning and end of the string, respectively
+
+shell.c
+ - moved the code that turns off privileged mode into a function
+ named `disable_priv_mode'
+ - if the shell is running setuid or setgid and `-p' is not
+ supplied, turn off privileged mode and reset the effective
+ uid/gid
+
+ 4/21
+ ----
+subst.c
+ - added a `quoted' paramter to parameter_brace_remove_pattern;
+ Posix.2 says that the pattern is parsed differently if the
+ entire expression is double-quoted
+ - `getpattern' now takes a second argument, `quoted'
+ - fixed `getpattern' to correctly handles a pattern spec when
+ the whole expression is double-quoted. Posix.2 says that
+ quote characters inside the pattern spec don't quote any
+ special pattern chars if the whole thing is double-quoted.
+ For example, the `*' in "${foo#'*'}" is not quoted, and the
+ single quotes must appear literally.
+
+Makefile.in
+ - add `documentation' as a dependency of `.made'
+
+ 4/24
+ ----
+Makefile.in
+ - added `installdirs' target that makes bindir, infodir, mandir,
+ and man3dir [in 1.14.5 cpp-Makefile]
+
+ 4/25
+ ----
+builtins/fc.def
+ - fixed problem with `fc -l' that occurred when fewer than 16 lines
+ were in the history list [in 1.14.5]
+
+ 5/1
+ ---
+Makefile.in, {builtins,documentation}/Makefile.in, lib/*/Makefile.in
+ - fixed up the various `clean' targets to agree with Gnu coding
+ standards
+
+ 5/2
+ ---
+lib/readline/complete.c
+ - made insert_all_matches correctly quote each of the filenames
+ inserted into the line, if necessary
+
+config.h.top
+ - surround definitions of DEFAULT_PATH_VALUE and STANDARD_UTILS_PATH
+ with #ifndef/#endif to allow them to be overridden from the command
+ line
+
+builtins/set.def
+ - changed set -o allenv to set -o keyword for ksh88 compatibility
+
+documentation/{bash.1,features.texi}
+ - changed set -o allenv to set -o keyword
+
+builtins/setattr.def
+ - added a `nodefs' attribute to set_or_show_attributes,
+ show_var_attributes, and show_name_attributes to inhibit printing
+ of definition as well as name
+
+builtins/declare.def
+ - changed calls to set_or_show_attributes, and show_var_attributes
+ accordingly
+
+ 5/3
+ ---
+Makefile.in
+ - LIBPATH -> LIBSUBDIR
+
+ 5/4
+ ---
+lib/readline/bind.c
+ - renamed readline variable meta-flag to be input-meta
+
+documentation/bash.1, lib/readline/doc/rluser.texinfo
+ - changed meta-flag to input-meta
+
+documentation/Makefile.in
+ - use groff -Tascii to convert .1 -> .0
+
+subst.c
+ - new function, strip_trailing_ifs_whitespace, does the obvious
+
+builtins/read.def
+ - call strip_trailing_ifs_whitespace before assigning last
+ variable to remainder of input string [in 1.14.5]
+
+ 5/5
+ ---
+builtins/hashcom.h
+ - changed check_dot member of the PATH_DATA struct to flags, and
+ added a HASH_CHKDOT define to replace the check_dot semantics
+ - add HASH_RELPATH define for flags value
+
+builtins/hash.def, builtins/common.c
+ - instead of xxx->check_dot, use (xxx->flags & HASH_CHKDOT)
+
+builtins/hash.def
+ - if the full pathname to which a command is being hashed does
+ not begin with a `/', set the HASH_RELPATH flag for it
+
+builtins/common.c
+ - if a hashed filename as HASH_RELPATH set, check ./filename,
+ returning null if that filename is not executable
+
+execute_cmd.c, general.c, execute_cmd.h, general.h
+ - moved same_file and check_binary_file from execute_cmd.c to
+ general.c
+
+hashlib.c, Makefile.in
+ - renamed hash.c to hashlib.c
+
+hashlib.h, Makefile.in, builtins/Makefile.in, alias.h, variables.h,
+execute_cmd.c, hashlib.c, builtins/hashcom.h
+ - renamed hash.h to hashlib.h
+
+variables.c, alias.c
+ - removed inclusion of `hash.h'; header files already include
+ correct file
+
+Makefile.in
+ - new rule to remake all the Makefiles (`make Makefiles')
+ - more changes to adhere to GNU coding standards for the various
+ flavors of `clean' targets
+
+ 5/8
+ ---
+documentation/Makefile.in
+ - use `texi2dvi' to make dvi files rather than tex and texindex
+ [in 1.14.5]
+ - don't install `bash_builtins.1' [in 1.14.5]
+
+Makefile.in
+ - removed instances of doc-support/texindex
+
+ 5/9
+ ---
+make_cmd.c
+ - new function make_bare_word, to make a WORD_DESC from a string but
+ not to set any of its flags
+ - broke make_word into make_bare_word and make_word_flags
+ - fixed a bug in make_word_flags to make backslash-quoting a quoting
+ character work right to not set the W_QUOTED flags
+
+subst.c, array.c, execute_cmd.c
+ - call make_bare_word instead of make_word in situations where we
+ don't want the flags set inadvertently
+
+ 5/11
+ ----
+subst.c
+ - removed special handling of $POSIX_PEDANTIC
+
+ 5/12
+ ----
+shell.c
+ - broke the code that fetches the uids and gids into a new
+ function, uidget()
+
+subst.c
+ - EUID and UID are no longer handled specially, since they're
+ readonly
+ - removed sv_uids function
+ - merge sv_histfilesize into sv_histsize
+
+variables.c
+ - instead of calling sv_uids from initialize_shell_variables,
+ call uidset() instead
+ - sv_uids -> uidset with mods to make it faster and avoid an
+ extra call to free, malloc, and itos
+
+bashhist.c
+ - call sv_histsize instead of sv_histfilesize
+
+ 5/13
+ ----
+pathexp.c
+ - moved setup_ignore_patterns here from bashline.c, so GLOBIGNORE
+ works even when readline is compiled out of the shell
+ - changed the ignore data structure to a `struct ignorevar',
+ defined in pathexp.h
+ - added functions to implement GLOBIGNORE
+
+bashline.c
+ - setup_ignore_patterns now in pathexp.c
+ - renamed _ignore_names to ignore_completion_names
+
+subst.c
+ - new function sv_globignore to be called when GLOBIGNORE changes
+ value
+
+documentation/{bash.1,features.texi}
+ - documented GLOBIGNORE
+
+ 5/15
+ ----
+documentation/texinfo.tex
+ - upgraded to version 2.145 from autoconf-2.3 distribution
+
+ 5/16
+ ----
+lib/readline/display.c
+ - delicate surgery on rl_redisplay, update_line, and _rl_update_final
+ to convert to using the line breaks array instead of assuming that
+ lines wrap because they're too long and using absolute buffer
+ positioning calculated from the screen width. Now the `lithist'
+ shopt option works right
+
+lib/readline/complete.c
+ - make sure insert_match doesn't double an opening quote character
+ after make_quoted_replacement adds an opening quote [in 1.14.5]
+ - make sure append_match doesn't double a closing quote character
+ [in 1.14.5]
+
+quit.h
+ - new macros: SETINTERRUPT, CLRINTERRUPT, ADDINTERRUPT, DELINTERRUPT
+ to manipulate the value of interrupt_state
+
+trap.c, sig.c, jobs.c
+ - changes to use the new macros from quit.h
+
+jobs.c
+ - make an a job that exits due to SIGINT make the shell act as if
+ it received the interrupt itself, but only if SIGINT is not
+ trapped [in 1.14.5]
+
+ 5/18
+ ----
+builtins/common.c
+ - fix up find_hashed_filename and the HASH_RELPATH code. still need
+ to use `shopt -s checkhash' to check the hashed pathnames. could
+ fix this up more to make that unnecessary in the HASH_RELPATH case
+
+subst.c
+ - new function get_array_value that does array subscripting for
+ things like aa[1], for use by other parts of the shell like the
+ expression evaluator
+
+expr.c
+ - changes to make things like $(( aa[1] + aa[2])) work without
+ using ${aa[1]}
+
+bashhist.c
+ - converted the HISTIGNORE code to use the `struct ignorevar'
+ framework, with a callback function histignore_item_func to
+ set the HIGN_EXPAND flag if needed
+
+pathexp.c
+ - made the `globignore' variable static
+ - redid the code that removes ignored names from the `names' array
+ in ignore_globbed_names to make it more efficient
+
+bashline.c
+ - made the `fignore' variable static
+
+ 5/20
+ ----
+Makefile.in
+ - made the `distclean' target remove the Makefiles in subdirectories
+ created by autoconf
+
+ 5/22
+ ----
+builtins/command.def
+ - don't allow `command -p' if the shell is restricted
+
+documentation/bash.1
+ - documented the restriction on command -p for rbash
+
+ 5/23
+ ----
+aclocal.m4
+ - add a new macro BASH_CHECK_TYPE, based on AC_CHECK_TYPE, that
+ allows the caller to specify the header files to be included
+ in the test program and provides for a default value to be
+ defined if the type is found in the system files
+
+configure.in
+ - check for getrusage and gettimeofday functions/syscalls
+ - use BASH_CHECK_TYPE to check for clock_t in sys/types.h and
+ sys/times.h
+ - use BASH_CHECK_TYPE to check for sigset_t instead of a special
+ BASH_TYPE_SIGSET_T
+ - use BASH_CHECK_TYPE to check for quad_t instead of BASH_QUAD_T
+ - new argument --enable-command-timing to compile in the `time'
+ reserved word and command timing
+
+general.c
+ - print_time_in_hz takes a `clock_t', not a `time_t'
+
+execute_cmd.c
+ - support for timing pipelines with a new function time_command
+ - execute_command_internal calls time_command if it is passed a
+ command with the CMD_TIME_PIPELINE bit set in command->flags
+ - new functions difftimeval and addtimeval to do arithmetic on
+ timeval structs with overflow
+
+parse.y
+ - new production: pipeline_command, used by list1 and simple_list1
+ - pipeline_command includes rules to handle `!' and time
+ - code to recognize `time' as a reserved word
+
+print_cmd.c
+ - new code to print `time ' before a command if the CMD_TIME_PIPELINE
+ flag bit is turned on
+
+builtins/test.def
+ - added description of string1 < string2 and string1 > string2 to
+ the long doc
+
+test.c
+ - added `<' and `>' string binary operators
+
+documentation/bash.1
+ - documented the `time' reserved word and command timing
+ - documented the new test `<' and `>' binary operators
+
+documentation/features.texi
+ - documented the `time' reserved word and command timing
+ - added more to the section detailing the differences between bash
+ and sh
+ - added descriptions of LINENO and ENV to the Ksh variables section
+ - added description of echo to bash builtins section
+ - added PPID, BASH, SHLVL to the Bash variables section
+
+subst.c
+ - added a `quoted' parameter to extract_dollar_brace_string; changed
+ all calls to it
+
+ 5/24
+ ----
+builtins/let.def
+ - wrote code for an `exp' builtin that treats all of its arguments
+ as an expression, concatenates them like `eval', and runs the
+ expression evaluator
+
+expr.c
+ - added code to do the Posix.2 conditional operator: expr?expr:expr
+ - added a `noeval' flag to suppress evaluation. currently it only
+ suppresses assignment
+ - added code to the && and || functions so that evaluation is
+ suppressed in the part of the statement that is not supposed to
+ be executed (a && b: set noeval if a is false; a || b; set
+ noeval if a is true)
+
+ 5/25
+ ----
+documentation/{bash.1,features.texi}
+ - documented new `expr?expr:expr' conditional expression syntax
+ now arithmetic evaluation is Posix.2-conformant
+
+lib/readline/readline.c
+ - added several more locale names to the list of legal $LANG
+ values
+
+subst.c
+ - fixed a bug in parameter_brace_patsub: when replacing a string
+ with nothing, rep was set to "", and the code attempted to
+ free "", which the GNU malloc upchucked on
+
+bashhist.c
+ - just add a line to the history if command_oriented_history is
+ set to 1 and the current line in the command is > 1; don't
+ even bother checking history_ignore
+
+parse.y
+ - new variable `two_tokens_ago' to remember the token read before
+ `token_before_that'
+ - fix to history_delimiting_chars to make sure that no semicolon
+ is added after `()' (assume its a function definition), but that
+ a semicolon is added after other `)' (assume its a parenthesized
+ command)
+
+ 5/31
+ ----
+tests/run-all
+ - put `.' first in $PATH and don't export ENV
+ - set THIS_SH to ../bash if it's unset
+
+lib/readline/complete.c
+ - only try to find a word break character in rl_complete_internal
+ if we hit the end of the input string and found_quote == 0
+ (the opening quote could have been the last character in the
+ string)
+
+ 6/2
+ ---
+subst.c
+ - changed make_quoted_char to return CTLNUL\0 if passed a \0
+ (this is what quote_string does, too) [in 1.14.5]
+ - changed list_string to use make_quoted_char when adding a quoted
+ null argument due to a null field when ifs != ' \t\n'
+ - added an `expandpat' argument to getpattern, which tells it to
+ call string_extract_double_quoted if the pattern expression is
+ double-quoted, and changed all calls to initially pass `1' as
+ its value
+
+jobs.c
+ - changed start_job so that an attempt to start a job marked as
+ JDEAD elicits an error message [in 1.14.5]
+
+Makefile.in
+ - fixed `distclean' target so that it removes Makefiles in subdirs
+ *after* descending into them to do submakes (!)
+ - fixed `realclean' target to remove everything that distclean does
+
+ 6/5
+ ---
+builtins/declare.def
+ - fixed a typo that made `declare +r var' turn off read-only status
+ for a variable [in 1.14.5]
+ - added -p option to short doc and long doc
+ - added code to allow `declare -f -options name' to set and unset
+ attributes for the named functions. Only when no other options
+ are supplied will the named and value of the function be displayed
+ [in 1.14.5]
+
+variables.h
+ - new SETVARATTR macro to set or unset attributes for a specific
+ SHELL_VAR *
+
+builtins/setattr.def
+ - use SETVARATTR
+
+ 6/7
+ ---
+execute_cmd.c
+ - moved the retrieval of $PS3 inside the loop in execute_select_command
+ so that PS3 can be modified in the select command's body
+ [in 1.14.5]
+
+execute_cmd.c
+ - changed execute_builtin and execute_function to not set
+ builtin_env and function_env, respectively, to NULL if there is
+ no temporary env. This makes the temp env persist across calls
+ to functions from other functions [in 1.14.5]
+
+configure.in
+ - Linux needs LOCAL_LDFLAGS set to -rdynamic
+
+ 6/8
+ ---
+general.c
+ - canonicalize_pathname should not attempt to interpret backslash
+ quoting `/', since Unix doesn't really allow it [in 1.14.5]
+
+bashline.c
+ - added `\', `!', and `)' to the list of characters which
+ cause filenames to be quoted
+ - changed bash_quote_filename to use any of the three shell
+ quoting styles based on the value of a variable,
+ completion_quoting_style
+ - if *qcp is not 0 when passed to bash_quote_filename, adjust the
+ type of completion we're doing based on its value (i.e.,
+ *qcp == '"' forces double quoting, *qcp == '\'' forces single)
+ - bash_quote_filename now leaves the quotes intact in the filename
+ it returns. The readline completion code takes care of avoiding
+ doubled open quotes
+ - if a filename containing a `!' is passed to bash_quote_filename
+ without an opening quote character, and we are performing history
+ expansion, use single quoting as the quoting style
+
+bashhist.c
+ - changed bash_history_disable to not call bash_history_reinit(0),
+ but do what it needs to directly
+ - new function bash_history_enable
+ - make history_expansion_inhibited exist only if BANG_HISTORY
+ is defined
+
+bashhist.h
+ - extern declaration for bash_history_enable
+
+lib/readline/complete.c
+ - make make_quoted_replacement set should_quote to 1 if the quote
+ character is `'' as well as if it's `"'
+
+test.c
+ - added the csh-like `=~' and `!~' pattern-matching binary operators
+ which match the string on the lhs against the shell pattern on
+ the rhs. PATTERN_MATCHING must be defined for this to work; it is
+ undefined and undocumented by default
+
+jobs.c
+ - broke the code that gets the new window size and sets $LINES and
+ $COLUMNS out of sigwinch_sighandler into a new function,
+ get_window_size, which sigwinch_sighandler calls
+
+ 6/12
+ ----
+parse.y
+ - new function, pop_expansion, to remove the top string on the
+ expanded token stack
+ - renamed save_expansion to push_expansion
+
+lib/readline/complete.c
+ - fixed a bug in find_completion_word that tested found_quote
+ instead of quote_char when trying to decide if we have an unclosed
+ quoted string [in 1.14.6]
+
+ 6/26
+ ----
+subst.c
+ - fixed expand_word_internal to remove all traces of $*, even if
+ it's quoted, if there are no positional parameters and there are
+ other characters in the expansion
+
+bashline.c
+ - don't attempt hostname completion if multiple consecutive `@'
+ characters appear
+
+ 6/27
+ ----
+shell.c
+ - initialize top_level early, and exit if a longjmp sends us there
+ before we reinitialize
+
+subst.c
+ - more fixes to expansion of quoted $* when no positional parameters
+ - broke the code that assigns a value to an array element (and parses
+ the array element reference) into a new function,
+ do_array_element_assignment
+
+builtins/read.def
+ - new function, bind_read_variable, to allow binding simple variables
+ and array elements to strings read (uses do_array_element_assignment)
+ - changed occurrences of bind_variable to bind_read_variable where
+ it matters
+
+variables.c
+ - tentative change to bind_variable to make x=y the same as x[0]=y
+ if x is already an array variable. This works for `read' as well.
+ This is what ksh does.
+
+ 6/28
+ ----
+alias.h
+ - added a `flags' member to the ASSOC struct and renamed it to
+ `alias_t'
+
+alias.c, bashline.c, builtins/alias.def, builtins/type.def
+ - changed ASSOC to alias_t
+
+alias.c
+ - changed add_alias to set the AL_EXPANDNEXT flag when the alias is
+ inserted into the hash table
+
+parse.y
+ - added a third parameter to push_string: a pointer to the alias_t
+ that is being expanded
+ - push_string marks the alias it's passed as being expanded
+ (AL_BEINGEXPANDED)
+ - pop_string marks the alias being popped as no longer being
+ expanded
+ - changed shell_getc to defer popping an alias expansion until
+ the parser has had a chance to catch up, since the parser reads
+ ahead and would cause the expansion to be popped before it
+ fully parsed the expanded string
+ - changed alias_expand_word to check the AL_BEINGEXPANDED flag
+ instead of the expanded_token_stack when checking whether an
+ alias is already being expanded
+
+oslib.c
+ - make the definition of bzero be surrounded by #ifdef HAVE_BZERO
+ rather than lumping it in with bcopy
+
+configure.in
+ - add a test for bzero
+
+config.h.in
+ - add a template for HAVE_BZERO
+
+ 7/3
+ ---
+builtins/set.def
+ - added new meaning for `set +o' without options, as per the latest
+ draft of Posix.2. It means to list -o options as a series of set
+ commands to recreate the current settings
+
+documentation/bash.1
+ - augmented description of the `set' builtin
+
+ 7/6
+ ---
+jobs.c
+ - make sure that temp_handler is not set to SIG_DFL before calling
+ it from waitchld
+
+builtins/cd.def
+ - rewrote cd_builtin to make the code flow clearer
+ - broke full directory name construction out into a separate
+ function: mkpath
+ - cd_builtin now tests that a directory constructed from a $CDPATH
+ entry is actually a directory before trying to chdir to it
+ - added an error message if $HOME is not set
+ - added a descriptive error message if `cd -' used and OLDPWD unset
+ - changed the error messages to use builtin_error, not file_error
+ - moved the code at the bind_and_exit label into a function,
+ bindpwd (no_symlinks)
+ - Posix.2 says that when using $CDPATH, the resultant value of PWD
+ should have no symlinks
+
+ 7/7
+ ---
+input.c
+ - if fd_to_buffered_stream fails in some way and returns a NULL
+ buffered stream, with_input_from_buffered_stream uses a function
+ that does nothing but return EOF as the `getter'. This keeps
+ the shell from crashing if invoked with fd 0 closed
+
+subst.c
+ - made the `quoted' parameter to expand_word_internal into a flags
+ word with flag values defined in shell.h. Each place where
+ `quoted' is tested for a non-zero value was changed to test
+ (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 instead
+
+mailcheck.c, shell.c, parse.y
+ - change calls to the expand_string* functions to pass an explicit
+ Q_DOUBLE_QUOTES where appropriate
+
+ 7/9
+ ---
+subst.c
+ - getpattern now passes Q_NOQUOTE to expand_word_internal, indicating
+ that quotes in the pattern spec are not to be treated specially
+
+ 7/12
+ ----
+jobs.c
+ - fixed up the MUST_UNBLOCK_CHILD code in wait_for so that it now
+ unblocks all signals and sets the signal handler for SIGCHLD to
+ SIG_DFL. pre-v4 SCO machines seem to require this [in 1.14.5]
+
+[Bash-1.14.5 released to net 7/16]
+
+ 7/17
+ ----
+documentation/features.texi
+ - changed the Bourne Shell builtins section to have the same format
+ as the bash builtins section, with usage synopses
+ - added a section on the restricted shell
+
+ 7/18
+ ----
+documentation/features.texi
+ - changed the name of this document to the Bash Reference Manual
+ - added sections on POSIX mode and restricted shell
+
+lib/readline/doc/hsuser.texinfo
+ - added the text from the bash manual page about the bash history
+ facilities if BashFeatures is set
+
+ 7/19
+ ----
+documentation/features.texi
+ - added more stuff to the bash basics section
+
+lib/readline/doc/rluser.texinfo
+ - added a sample inputrc file
+
+ 7/20
+ ----
+documentation/features.texi
+ - added section on shell expansions to bash basics section
+
+builtins/Makefile.in, lib/glob/Makefile.in, lib/malloc/Makefile.in,
+lib/readline/Makefile.in, lib/termcap/Makefile.in, lib/tilde/Makefile.in
+ - ar is now called with flags `cr' when building libraries
+
+ 7/21
+ ----
+lib/readline/complete.c
+ - fixed a bug in find_completion_word that resulted in the found_quote
+ flag and the delimiter character not being passed back to the
+ caller (tested (*fp) instead of (fp) before assigning found_quote;
+ similarly for dp). With this fix, the filename dequoting function
+ is properly called
+
+ 7/25
+ ----
+general.c
+ - renamed bash_tilde_expand to bash_tilde_expansion_failure_hook
+ - new function, bash_tilde_expand, that just sets interrupt_immediately
+ and calls tilde_expand, returning what tilde_expand returns
+
+subst.c, general.c, shell.c, execute_cmd.c, variables.c, bashline.c,
+builtins/cd.def
+ - changed calls to tilde_expand to calls to bash_tilde_expand instead
+
+ 7/27
+ ----
+builtins/set.def
+ - added a -o history option to enable and disable command history
+ saving. This uses bash_history_enable() and bash_history_disable()
+ It's keyed off of remember_on_history. With this, shell scripts
+ can use the command history
+
+bashhist.c
+ - bash_history_enable now calls sv_history_control and sv_histignore
+
+builtins/fc.def
+ - if history_list() returns a null pointer, immediately return
+ [in 1.14.6]
+
+documentation/{bash.1,features.texi}, lib/readline/doc/hsuser.texinfo
+ - added a description of the `set -o history' option and changed
+ text to refer to it rather than strictly interactive shells
+
+ 8/1
+ ---
+variables.c
+ - new builtin variable $HOSTNAME, initialized to current_host_name
+ as set in shell.c
+
+documentation/bash.1, documentation/features.texi
+ - documented $HOSTNAME
+
+ 8/3
+ ---
+support/texi2html
+ - new program, a texinfo-html converter
+
+documentation/Makefile.in
+ - added directives to produce features.html from features.texi
+
+MANIFEST.doc
+ - added features.html and features_toc.html to the doc distribution
+
+ 8/10
+ ----
+lib/readline/bind.c
+ - new functions rl_variable_dumper and rl_dump_variables to print
+ readline variables and their values to rl_outstream
+ - new functions rl_get_keymap_name and rl_get_keymap_name_from_edit_mode
+ to get the name of the current keymap for the variable dumper
+
+lib/readline/readline.h
+ - extern declarations for rl_variable_dumper, rl_dump_variables, and
+ rl_get_keymap_name
+
+builtins/bind.def
+ - added -V flag to print variable names and bindings
+ - added -P flag to print variable names and bindings in the syntax
+ of the inputrc file
+
+lib/readline/funmap.c
+ - added new bindable `dump-variables' readline command
+
+documentation/{bash.{1,html},readline.3,features.html},
+lib/readline/doc/rluser.texinfo
+ - documented new `dump-variables' readline command
+
+documentation/{bash.{1,html},features.{texi,html}
+ - documented new bind -P and -V options
+
+documentation/bashbug.1
+ - new manual page
+
+documentation/Makefile.in
+ - changes to build and install bashbug.1
+
+ 8/15
+ ----
+print_cmd.c
+ - new function `xprintf' that just calls vfprintf(stdout, ...)
+ to avoid having to declare printf
+
+parse.y
+ - slight change in how read_token_word computes `all_digits'
+
+ 8/21
+ ----
+
+subst.c
+ - new function dequote_escapes to remove CTLESC escaping
+ CTLESC and CTLNUL in a string, returning a new string
+
+ 8/25
+ ----
+shell.c
+ - execute the file SYS_BASHRC for interactive shells if SYS_BASHRC
+ is defined, before executing ~/.bashrc
+
+config.h.top
+ - add a dummy commented definition for SYS_BASHRC, defaulting to
+ /etc/bash.bashrc
+
+lib/readline/input.c
+ - added code to call select() in rl_gather_tyi() and return
+ immediately if it indicates that there is nothing to read on
+ the readline input fd (#ifdef HAVE_SELECT)
+
+lib/posixheaders/posixdir.h
+ - new file to localize the <dirent.h>/<sys/dir.h> and dirent/direct
+ mess
+
+posixdir.h, lib/readline/posixdir.h
+ - symlinks to lib/posixheaders/posixdir.h
+
+lib/readline/rldefs.h
+ - removed the posix dir includes and defines
+
+lib/readline/complete.c, getcwd.c
+ - include posixdir.h rather than having the code inline
+
+builtins/cd.def
+ - new code to do spelling correction on the directory name
+ modified from patch sent by Neil Russell (caret@c-side.com)
+
+ 8/29
+ ----
+builtins/shopt.def
+ - new option `cdspell' to toggle cd directory name spelling
+ correction
+
+documentation/{bash.{1,html},features.texi}
+ - documented new shopt `cdspell' option
+
+ 9/5
+ ---
+subst.c
+ - $'' should expand to the same thing as '' (a quoted null string)
+
+shell.h
+ - changed CTLNUL to '\177'; some scripts use ^B for things like IFS
+ [in 1.14.6]
+
+ 9/7
+ ---
+support/config.guess
+ - added code to identify a PPC running Solaris 2
+
+doc
+ - new directory replacing documentation
+
+Makefile.in, MANIFEST, MANIFEST.doc, configure.in
+ - replaced `documentation' with `doc'
+
+ 9/8
+ ---
+lib/readline/display.c
+ - fixed the code in _rl_update_final that decides whether or not the
+ cursor is at character position 0 on an otherwise-empty line and
+ adjusts _rl_vis_botlin accordingly
+
+ 9/13
+ ----
+general.c
+ - fixed canonicalize_pathname to make sure that intermediate
+ results correspond to directories before blindly chopping
+ off the last component when we see a `..'. This fixes the
+ `cd ../.../..' being equivalent to `cd ..' problem
+
subst.c
- - made an efficiency improvement to dequote_string -- don't
- do anything when we see CTLESC, just `continue' the loop
+ - fixed make_named_pipe so that mkfifo is called with mode 0600
+ for security reasons [in 1.14.6]
+ - changed the /dev/fd version of add_fifo_list to zero out new
+ entries to the fifo_list when it resizes it larger [in 1.14.6]
+ - changed make_dev_fd_filename to use DEV_FD_PREFIX
+
+aclocal.m4
+ - changed BASH_HAVE_DEV_FD to check for /proc/self/fd and define
+ DEV_FD_PREFIX to either "/dev/fd/" or "/proc/self/fd/" as
+ appropriate
+
+ 9/14
+ ----
+lib/readline/display.c
+ - when displaying the first line of a multiline prompt, make sure
+ that the final \n is followed by a \r (outputting one if necessary)
+ so that we know we are starting at column 0
+
+variables.h
+ - new attribute: att_local
+
+variables.c
+ - changed make_local_variable to set the att_local attribute
+ - changed makunbound to just make variables marked as `local' in
+ the current context invisible. This makes the local variable
+ persist throughout the function even if it is unset, so a
+ subsequent assignment preserves the `local' attribute
+ - changed kill_all_local_variables to unset the att_local attribute
+ before calling makunbound
+
+ 9/18
+ ----
+lib/readline/complete.c
+ - make sure the cursor is on the last line of a possibly-multiple-
+ line command line before listing the completions in
+ display_matches
+
+ 9/19
+ ----
+braces.c
+ - fixed the non-SHELL case in brace_gobbler so the loop exits when
+ it should
+
+lib/readline/bind.c, lib/readline/readline.h
+ - added functions to dump key sequences bound to macros and their
+ values
+
+builtins/bind.def
+ - added -S and -s options to dump the readline macros and their values
+ - changed the options so that -p and -P dump functions, -v and -V
+ dump variables, and -s and -S dump macros (s for string)
+
+doc/{bash.{1,html},readline.3,features.texi}, lib/readline/doc/rluser.texinfo
+ - added documentation for the new `bind' options
+ - added documentation for the new readline functions to dump macros
+ and the key sequences that output them
+
+ 9/22
+ ----
+print_cmd.c
+ - new function xtrace_print_word_list (WORD_LIST *) to print the
+ words of a simple command when set -x is on. This prints ''
+ when it encounters an empty string
+
+externs.h
+ - new extern declaration for xtrace_print_word_list
+
+execute_cmd.c
+ - call xtrace_print_word_list in execute_simple_command
+
+ 9/25
+ ----
+builtins/getopts.def
+ - make sure that the loop counter stops at 10 when stepping through
+ the dollar_vars array to count the number of positional parameters
+ [in 1.14.6]
+
+ 9/30
+ ----
+lib/readline/histsearch.c
+ - fixed history_search_internal to bail immediately if it gets a
+ null or empty search string. This fixes the !? core dumps.
+ [in 1.14.6]
+
+ 10/3
+ ----
+lib/readline/histexpand.c
+ - if there is a null string given with a !? search specifier, use
+ a previous search string if one exists, else fail immediately
+
+trap.c
+ - made run_exit_trap preserve $? around the call to execute the
+ trap string, unless the trap string contains an `exit'
+ command, in which case it can set the shell's exit status
+ [in 1.14.6]
+
+ In other words:
+
+ touch /tmp/z
+ trap 'rm /tmp/z ; exit 5' 0
+ exit 1
+
+ exits with status 5; while
+
+ touch /tmp/z
+ trap 'rm /tmp/z' 0
+ exit 1
+
+ exits with status 1
+
+subst.c, parse.y
+ - moved the $'...' code from subst.c to parse.y, more like ksh
+ does it
+
+doc/bash.1, doc/bash.html, doc/features.texi
+ - moved the description of $'...' from the expansion section to
+ the quoting section
+
+ 10/4
+ ----
+command.h
+ - added a `line' member to the function struct for the source line
+ the function definition starts on
+
+make_cmd.c
+ - initialize the `line' member in Function_def to 0
+ - make_function_def takes a third parameter telling which line the
+ function definition started on and a fourth telling which line
+ the function body started on
+
+make_cmd.h
+ - changed prototype for make_function_def
+
+parse.y
+ - new variable `function_dstart', set by read_token and read_token_word
+ to keep track of where a function definition begins
+ - new variable `function_bstart' to keep track of where function
+ body begins
+ - pass function_dstart and function_bstart to make_function_def
+ - new function strtrans to do the $"..." locale-specific translation
+ of `...'
+ - call strtrans() to translate $"string". The translated string is
+ double-quoted
+
+doc/bash.{1,html}
+ - updated the description of LINENO now that line numbers within
+ functions are correct
+
+configure.in
+ - look for the `gettext' library function
+
+config.h.in
+ - define HAVE_GETTEXT if gettext(3) exists in a findable library
+
+ 10/5
+ ----
+builtins/common.c
+ - changed backslash_quote so that `#' is only quoted at the start
+ of a word
+ - new function contains_shell_metas returns 1 if the argument
+ string contains one or more shell meta-characters that require
+ quoting
+
+builtins/common.h
+ - extern declaration for contains_shell_metas
+
+print_cmd.c
+ - changed xtrace_print_word_list to print words containing
+ shell metacharacters within single quotes
+
+lib/termcap
+ - upgraded to GNU termcap version 1.3
+
+ 10/9
+ ----
+lib/readline/readline.c
+ - call setlocale(LC_CTYPE, ...) after finding a legal value for
+ one of LC_ALL, LC_CTYPE, or LANG
+
+ 10/11
+ -----
+lib/readline/search.c
+ - make rl_history_search_internal just do previous-history or
+ next-history as appropriate when given a null search string
+ (rl_point == 0)
+
+ 10/24
+ -----
+subst.c
+ - fixed an off-by-one error in char_is_quoted that skipped a
+ characters after calling skip_single_quoted or skip_double_quoted
+ [in 1.14.6]
+ - fixed an off-by-one error in string_extract_verbatim so it
+ leaves *sindex at the separator character if the separator
+ character is "'" [in 1.14.6]
+
+ 10/27
+ -----
+parse.y
+ - in CHECK_FOR_RESERVED_WORD, make sure that reading a `}'
+ decrements open_brace_awaiting_satisfaction if it is non-zero
+ [in 1.14.6]
+
+shell.c
+ - don't run the shell startup files if the shell is running
+ setuid
+ - don't source $ENV if the shell is running setuid
+
+variables.c
+ - new parameter to initialize_shell_variables: no_functions. If
+ non-zero, don't import functions from the environment
+
+variables.h
+ - change to function prototype for initialize_shell_variables
+
+lib/readline/complete.c
+ - fix for the code that decides whether or not a char is quoted for
+ applications that don't supply a value for rl_char_is_quoted_p
+ - fixed insert_match to not remove a user-supplied opening quote
+ character if make_quoted_replacement does not return a string
+ beginning with that quote character
+
+ 11/2
+ ----
+general.c
+ - new function ungetc_with_restart that handles the local buffering
+ [in 1.14.6]
+
+parse.y
+ - changed yy_stream_unget to call ungetc_with_restart if the OS
+ does not have restartable syscalls [in 1.14.6]
+
+ 11/3
+ ----
+bashline.c
+ - rewrote _ignore_completion_names to actually free and remove
+ names from the array if more than one names in the array
+ passed is acceptable, instead of just bailing [in 1.14.6]
+
+ 11/7
+ ----
+bashline.c
+ - if no matches are acceptable to _ignore_completion_names,
+ free the entries in NAMES, set NAMES[0] == 0, and let the
+ caller clean up [in 1.14.6]
+ - fixed a problem with backslash-quoted characters in
+ bash_dequote_filename that caused the character after the
+ backslash to be interpreted
+ - bash_dequote_filename now takes a quote_char parameter that,
+ if non-zero, gives the quote character (`'' or `"') that
+ delimits the filename. Used to initialize the quoting state
+
+lib/readline/complete.c
+ - if the completion ignore function returns with MATCHES == 0
+ or MATCHES[0] == 0, ring the bell and quit the completion
+ attempt [in 1.14.6]
+ - pass quote_char to gen_completion_matches so it can pass it
+ along to the app-specific filename dequoting function
+ - have gen_completion_matches pass quote_char to whatever function
+ is pointed to by rl_filename_dequoting_function
+
+pathexp.c
+ - rewrote ignore_globbed_names to be more like _ignore_completion_names
+
+lib/readline/doc/rltech.texinfo
+ - updated documentation for rl_filename_dequoting_function
+
+ 11/10
+ -----
+subst.c
+ - fixed remove_quoted_nulls so that it is now a full function that
+ removes unquoted CTLNUL chars from the string it is passed
+ [in 1.14.6]
+ - fixed expand_word_internal to avoid generating some unneeded
+ quoted nulls (if the string is partially quoted, note that we
+ have seen a quoted null and add one if the rest of the string
+ doesn't expand to anything)
+
+ 11/13
+ -----
+variables.c
+ - bind HOSTTYPE, OSTYPE, and HOSTNAME unconditionally
+
+pathexp.c
+ - new function quote_globbing_chars, adds `\' before globbing
+ chars in its string argument, returns new string
+
+pathexp.h
+ - extern declaration for quote_globbing_chars
+
+bashhist.c
+ - if the previous line contains globbing chars, run it through
+ quote_globbing_chars before trying to match. This affects
+ only HISTIGNORE patterns containing `&'
+
+ 11/14
+ -----
+bashhist.c
+ - if the history line to be added contains globbing chars, quote
+ them with backslashes by calling quote_globbing_chars in
+ history_should_ignore before comparing them against the
+ patterns in HISTIGNORE
+
+bashline.c
+ - make sure that we erase the current readline line after running
+ fc on it and executing the resultant commands in
+ vi_edit_and_execute_command, so the original readline line
+ doesn't get returned [in 1.14.6]
+
+jobs.h
+ - added a new job listing format: JLIST_NONINTERACTIVE -- like
+ JLIST_LONG, but does not print the job number
+
+jobs.c
+ - added code to pretty_print_job to handle JLIST_NONINTERACTIVE
+ - call notify_and_cleanup() from wait_for even if the shell is
+ running a script (interactive_shell == 0)
+ - changed notify_and_cleanup to call notify_of_job_status if
+ interactive or interactive_shell == 0, so scripts report
+ about jobs they run
+ - changed notify_of_job_status to call pretty_print_job with a
+ JLIST_NONINTERACTIVE format if interactive_shell is 0 and a
+ job is marked JDEAD, after printing the script name and line
+ number. This message is printed only if the job dies due to
+ a fatal signal
+
+support/mkversion.c
+ - added support for a `-status status' argument to set the
+ `release status' of the shell (alpha, beta, or release). It
+ defines `RELSTATUS' in version.h and changes the definition
+ of SCCSVERSION, if present
+
+Makefile.in
+ - set a RELSTATUS variable that is included when printing the build
+ message and passed to mkversion with the -status option
+ - make RELSTATUS one of the variables sed sets when it creates
+ bashbug from support/bashbug.sh
+
+version.c
+ - added a `release_status' variable that's set to RELSTATUS if
+ it's defined
+
+support/bashbug.sh
+ - added the `RELSTATUS' variable to the report with heading
+ `Release Status'
+ - set the bug address to chet@po.cwru.edu if the release status
+ is `alpha' or `beta'
+
+ 11/15
+ -----
+
+shell.c, execute_cmd.c
+ - new variable expand_aliases to control alias expansion. For now,
+ this is set to the same value as interactive_shell when that is
+ set
+
+parse.y
+ - perform alias expansion if expand_aliases is non-zero rather than
+ checking the value of interactive_shell
+
+ 11/16
+ -----
+builtins/shopt.def
+ - new option `expand_aliases' to control the value of expand_aliases
+
+doc/bash.1, doc/bash.html
+ - updated the description of `shopt' with the `expand_aliases' option
+
+ 11/28
+ -----
+bashline.c
+ - if there is only one completion in _ignore_completion_names, see
+ if it is acceptable and return right away [in 1.14.6]
+
+configure.in
+ - change to define WAITPID_BROKEN on SCO 3.2v5
+
+ 12/6
+ ----
+parse.y
+ - call prompt_again in read_token_word if a newline is read in an
+ interactive shell and bash_input.type is either st_stdin or
+ st_stream
+ - remove superfluous call to reset_readline_prompt in yy_readline_get
+
+ 12/7
+ ----
+parse.y
+ - combine delimiters, delimiter_depth, and delimiter_space into a
+ single structure of type `struct dstack'
+ - replace all references to delimiter* with dstack.delimiter*
+ - include parser.h for struct dstack
+ - new define pop_delimiter(), analogous to push_delimiter
+ - current_delimiter, push_delimiter, and pop_delimiter defines now
+ include the delimiter stack struct as the first parameter
+
+parser.h
+ - now includes definition of struct dstack
+
+bashline.c
+ - include parser.h for struct dstack
+ - refer to dstack.delimiter_depth instead of delimiter_depth
+
+ 12/12
+ -----
+execute_cmd.c
+ - before doing a longjmp(subshell_top_level,...) when executing a
+ shell script without a leading #!, set history_lines_this_session
+ to 0 to forget about the history and not save it on an exec
+ (we don't free the memory with clear_history(), though -- that
+ would slow bash down)
+
+ 12/14
+ -----
+jobs.c, nojobs.c
+ - cause the sigwinch handling code to be compiled into the shell
+ even if READLINE is defined
+ - new functions: set_sigwinch_handler and unset_sigwith_handler
+ to enable and disable catching of SIGWINCH and adjusting $LINES
+ and $COLUMNS
+ - changed initialize_job_signals to install a signal handler for
+ SIGWINCH with set_sigwinch_handler
+
+jobs.h
+ - extern declarations for set_sigwinch_handler and
+ unset_sigwinch_handler
+
+ 12/20
+ -----
+doc/bash.{1,html}, doc/readline.3, lib/readline/doc/rluser.texinfo
+ - documented the readline `visible-stats' variable
+
+ 12/21
+ -----
+trap.c
+ - new global variable `running_trap' incremented and decremented
+ around running a trap command in _run_trap_internal
+
+execute_cmd.c
+ - new variable currently_executing_command, set to the COMMAND *
+ currently being processed by execute_command_internal, unless a
+ trap command is being run (running_trap != 0)
+ - new function executing_line_number, which returns the line number
+ of the currently executing command (which may not be the same as
+ line_number)
+ - don't run the debug trap if it was not set before the current
+ simple command was executed, since we don't want to run it after
+ the trap command that sets the DEBUG trap
+
+variables.c
+ - new function assign_lineno, to assign a value to line_number
+ when LINENO is set
+ - changed get_lineno to call executing_line_number() rather than
+ returning line_number
+
+parse.y
+ - new argument for push_stream telling it whether or not to reset
+ line_number to 0
+
+builtins/common.c
+ - change to parse_and_execute to call push_stream with an argument
+
+ 12/29
+ -----
+subst.c
+ - set subshell_environment in command_substitute and process_substitute
+ for the child process
+
+ 1/2
+ ---
+trap.c
+ - made decode_signal recognize signal names case insensitively
+
+shell.c
+ - make the shell exit on a longjmp (DISCARD, ...) if
+ subshell_environment is non-zero
+
+ 1/16
+ ----
+lib/readline/histexpand.c
+ - let the `!' in ${!xxx} pass through without error
+
+shell.c
+ - new --help long option
+ - new function show_shell_usage() for use by --help
+
+ 1/19
+ ----
+parse.y
+ - changes to shell_getc to make sure that lines consisting of only a
+ newline get added to the history correctly when they are part of
+ a quoted string
+
+ 1/24
+ ----
+aclocal.m4, configure.in
+ - added a check for -lsocket (and -lnsl) to fix solaris problems
+ with isnetconn()
+
+shell.c
+ - rearranged the code in isnetconn to check for a socket using
+ getpeername() first, before any SVR4 or SVR4.2-specific checks
+ - added checks for ttys (isatty) and FIFOs (S_ISFIFO) to the
+ SVR4/SVR4.2 case of isnetconn()
+
+general.h
+ - new macro RESIZE_MALLOCED_BUFFER to check and see whether there
+ is enough room in a string to add a given number of characters
+ and to resize it if there is not
+
+ 1/25
+ ----
+parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c
+ - use RESIZE_MALLOCED_BUFFER where appropriate
+
+ 1/26
+ ----
+support/config.{guess,sub}
+ - merged in latest changes from GNU master copies
+
+ 1/30
+ ----
+
+jobs.c
+ - make sure to freeze the jobs list when calling a trap handler
+ for SIGINT
+ - added code to waitchld() so that a SIGINT trap handler is called
+ if the shell is running a shell script and a SIGINT is received
+ while waiting for a foreground job, even if that job does not
+ die from the SIGINT
+
+jobs.c, nojobs.c
+ - make get_tty_state reset $LINES and $COLUMNS after each process
+ exits if the variable `check_window_size' is non-zero
+
+builtins/shopt.def
+ - new variable `checkwinsize', which controls the value of
+ check_window_size
+
+doc/{bash.{1,html},features.texi}
+ - updated description of `shopt' to include `checkwinsize'
+
+execute_cmd.c, lib/readline,complete.c
+ - some changes from the GNU WIN32 project for the bash port to
+ Windows NT and Windows 95
+
+bashwait.h
+ - new file, with `union wait' defines from jobs.h
+
+jobs.h
+ - include `bashwait.h' if <sys/wait.h> is not present and
+ _POSIX_VERSION is not defined
+ - removed define of pid_t for non-Posix systems; now provided by
+ autoconf in config.h
+
+ 1/31
+ ----
+parse.y
+ - new temporary delimiter stack, used when decoding prompt strings.
+ This is needed so command substitutions in the prompt strings
+ (especially PS2) don't screw up the parser's quoting state
+
+lib/readline/complete.c
+ - new variable for readline library users:
+ rl_completion_append_character. The value of this variable is
+ the character appended to a completion when it occurs at the
+ end of a line. Setting it to '\0' causes nothing to be
+ appended.
+
+lib/readline/readline.h
+ - declaration for rl_completion_append_character
+
+lib/readline/doc/rltech.texinfo
+ - documented rl_completion_append_character as int variable available
+ to library users
+
+subst.c
+ - new code for maintaining a string array saying which words in the
+ output of expand_word_list_internal are the result of globbing
+
+variables.c
+ - new function put_gnu_argv_flags_into_env (pid, flags_string)
+ to put Roland's GNU getopt helper variable into the export_env
+
+execute_cmd.c
+ - in execute_disk_command, after forking the child, put the GNU
+ getopt helper environment variable into the child's export_env
+
+unwind_prot.c
+ - changed unwind_protect_var and restore_variable to do the
+ bcopy of the variable's value if it's shorter than the size of
+ an int, as well as if it's longer. This keeps stray data
+ from being copied if a short is being unwind-protected
+
+unwind_prot.h
+ - new define, unwind_protect_short, to protect variables smaller
+ than an int
+
+jobs.c
+ - in the code that handles SIGCHLD traps, call unwind_protect_short
+ if that is the size of a pid_t (for last_made_pid)
+
+ 2/5
+ ---
+Makefile.in
+ - only try make distclean in HIST_LIBDIR if Makefile exists -- could
+ have already been removed if HIST_LIBDIR is the same as RL_LIBDIR
+
+general.c
+ - make canonicalize_pathname be more careful about what it checks
+ for being a directory name when processing a full pathname
+
+Makefile.in, configure.in, doc/Makefile.in
+ - small changes to get bash to build better in a directory not the
+ source directory
+
+ 2/12
+ ----
+Makefile.in
+ - added `install-strip' target
+
+ 2/14
+ ----
+doc/bash.{1,html}, doc/features.texi
+ - documented the `--verbose' startup option
+
+lib/readline/complete.c
+ - fix to gen_completion_matches to fix a memory leak
+ - fix to rl_complete_internal to fix a memory leak
+
+ 2/15
+ ----
+bashwait.h
+ - changed to use WORDS_BIGENDIAN instead of LITTLE_ENDIAN or
+ BIG_ENDIAN
+
+configure.in, config.h.in
+ - call AC_C_BIGENDIAN, define WORDS_BIGENDIAN
+
+Makefile.in
+ - remove all references to mkendian.c, mkendian, and bash_endian.h
+ - added a `symlinks' target that just runs support/fixlinks
+
+MANIFEST
+ - mkendian.c is no longer in the distribution
+
+ 2/16
+ ----
+execute_cmd.c
+ - include <sys/times.h> if HAVE_SYS_TIMES_H and HAVE_TIMES are
+ defined
+
+bashline.c
+ - fix to bash_directory_completion_hook to compensate for
+ canonicalize_pathname returning NULL
+
+variables.c
+ - fix to initialize_shell_variables to compensate for
+ canonicalize_pathname returning NULL
+
+ 2/22
+ ----
+tests/test-tests, tests/test.right
+ - changes to avoid writing in the source directory -- all temp files
+ are created in /tmp
+
+[First alpha release at Thu Feb 22 15:59:51 EST 1996]
+
+ 2/23
+ ----
+lib/readline/rldefs.h
+ - work around SVR4.2 bug including <sys/ptem.h> and <termios.h>
+
+lib/readline/chardefs.h
+ - fix to CTRL_CHAR macro for chars > 128 on systems with signed
+ characters
+
+builtins/ulimit.def
+ - protect more of the RLIMIT_* defines with checks
+ - new macro RETINVALID() to set errno and return the correct
+ value for an invalid request
+
+doc/Makefile.in
+ - add a definition for INSTALL, set by autoconf
+
+ 2/26
+ ----
+support/bashbug.sh
+ - if USER is unset, assign it the value of $LOGNAME or `whoami`
+
+Makefile.in,{lib/*,doc,builtins}/Makefile.in
+ - use `test' instead of `[' to conform to GNU coding standards
+ - `incdir' -> `includedir' as per latest GNU coding standards
+
+lib/readline/Makefile.in, lib/glob/Makefile.in
+ - use $(srcdir)/ instead of $(srcdir) in the CSOURCES variable
+
+general.h
+ - new define, FS_NODIRS, to not find directory names when searching
+ $PATH
+
+execute_cmd.c
+ - fix to find_in_path_element so it does not return directories
+ - executable_file() no longer returns directories as executable
+
+ 2/27
+ ----
+jobs.h
+ - new flag value: J_NOHUP
+
+jobs.c
+ - new function: nohup_job(job). Sets J_NOHUP flag for specified
+ job
+ - change hangup_all_jobs so that jobs marked J_NOHUP are not
+ sent SIGHUP. If stopped, the job still gets SIGCONT.
+ - changed calls to report_error to call internal_error, which will
+ not exit the shell
+ - changed FIND_CHILD define to call internal_error, restore the
+ SIGINT handler, set termination_state to 127 and return, rather
+ than aborting the shell
+
+builtins/jobs.def
+ - new option for disown: `-h'. Marks the specified jobs J_NOHUP.
+
+doc/{bash.{1,html},features.texi}
+ - added description of `disown -h'
+
+jobs.c, nojobs.c
+ - include some files needed for struct winsize by SCO
+
+lib/readline/input.c
+ - added some #ifdefs to avoid including <sys/time.h> on systems
+ with select but without <sys/select.h>
+
+configure.in
+ - check for <stdarg.h>, define HAVE_STDARG_H in config.h if found
+
+config.h.bot
+ - define USE_VARARGS and either PREFER_STDARG or PREFER_VARARGS
+ if one of <stdarg.h> or <varargs.h> is present
+
+aclocal.m4
+ - moved default mail directory check here from configure.in, macro
+ name is BASH_DEFAULT_MAIL_DIR
+ - rewrote BASH_CHECK_DEV_FD to cache the value
+ - minor fixes from Bruno Haible
+
+shell.c
+ - no longer includes <varargs.h>
+
+builtins/Makefile.in
+ - add -I$(topdir)/builtins to list of includes
+
+execute_cmd.c, lib/glob/glob.c
+ - include memalloc.h for correct alloca definitions
+
+error.[ch], print_cmd.c, builtins/common.[ch]
+ - changes to include new ANSI-C stdargs code if PREFER_STDARG is
+ defined
+
+ 2/28
+ ----
+aclocal.m4
+ - more minor fixes from Andreas Schwab
+
+doc/Makefile.in
+ - change TEXINPUTS makefile variables to TEXINPUTDIR to avoid
+ conflict with shell variable of the same name
+
+builtins/pushd.def
+ - fix to avoid a bad call to free after a call to
+ polite_directory_format does not change its argument string
+
+lib/readline/bind.c
+ - fixes to _rl_macro_dumper_internal so that it prints whatever
+ prefix it's passed, if any
+
+ 2/29
+ ----
+Makefile.in
+ - slight change to the rule for `stamp-h': it should be created by
+ running `config.status', not explicitly by the makefile rule
+
+builtins/Makefile.in
+ - replace `..' in the dependencies with `$(topdir)'
+ - replace `.' in the dependencies with `$(srcdir)'
+
+ 3/1
+ ---
+Makefile.in
+ - add a rule to build builtins/builtext.h for the benefit of
+ deficient makes like the SunOS one
+
+variables.c
+ - fix to assign_in_env so that values in the environment are
+ properly null-terminated
+
+builtins/Makefile.in
+ - added dependencies for object files made from .c files in this
+ directory: common.o, getopt.o, bashgetopt.o. SunOS /bin/make
+ doesn't seem to be able to handle anything else
+
+support/mkclone
+ - new script to replace clone-bash that works from MANIFEST to link
+ only those files contained in a distribution
+
+support/mkversion.c
+ - change so that it doesn't try to get `.build' from the source
+ directory when that's different from the build directory
+
+ 3/4
+ ---
+bashjmp.h
+ - #undef setjmp and longjmp before redefining them as sigsetjmp and
+ siglongjmp, respectively
+
+bashhist.c
+ - fixed an uninitialized variable problem in expand_histignore_pattern
+
+builtins/set.def
+ - used `on_or_off' where `value' was needed in minus_o_option_commands
+
+builtins/common.h
+ - added extern declaration for set_var_attribute
+
+print_cmd.c
+ - include `bashansi.h' instead of just string.h or strings.h
+
+builtins/*.def, builtins/common.c
+ - include `../bashansi.h' where appropriate
+
+parse.y
+ - fixed a parenthesization problem in alias_expand_token
+
+general.h
+ - added extern declaration for `ungetc_with_restart'
+
+lib/readline/readline.c
+ - renamed LibraryVersion to rl_library_version, made it extern,
+ assigned `2.1' to it
+
+lib/readline/readline.h
+ - extern declaration for `rl_library_version'
+
+lib/readline/doc/rltech.texinfo
+ - added description of `rl_library_version'
+
+lib/glob/glob.c
+ - changed call to sprintf in glob_dir_to_array to a couple of
+ calls to strcpy, since we keep the length of the first string
+ we copy
+
+ 3/7
+ ---
+aclocal.m4
+ - added new macro `BASH_FUNC_LSTAT' to check for lstat on Linux,
+ which defines it as an inline function in <sys/stat.h>
+
+configure.in
+ - call BASH_FUNC_LSTAT if $ac_cv_func_lstat has value `no'
+
+ 3/8
+ ---
+parse.y
+ - changed the occurrences of `list' in the if command productions
+ to use `compound_list' instead
+
+ 3/11
+ ----
+parse.y
+ - changed the occurrences of `list' in the while and until command
+ productions to use `compound_list'
+
+lib/readline/complete.c
+ - fix to filename_completion_function -- off-by-one error when
+ expand-tilde is enabled and a filename to be completed begins
+ with `~/'
+
+ 3/12
+ ----
+builtins/cd.def
+ - made the POSIX.2 behavior of PWD not containing symlinks after
+ using $CDPATH part of `posix mode', not default shell behavior
+
+lib/readline/display.c
+ - fix to update_line to handle update problems when using
+ horizontal scroll mode. This is a dumb update solution -- it
+ should use a better one
+
+ 3/14
+ ----
+examples/functions/csh-compat
+ - replaced the defintion for `alias' with a better one posted to
+ usenet by Mohit Aron <aron@cs.rice.edu>
+
+ 3/15
+ ----
+jobs.c
+ - fix to wait_for_background_pids to keep `wait' from hanging
+
+ 3/19
+ ----
+lib/readline/input.c
+ - new function `_rl_input_available()' returns > 0 if there is
+ input available on the readline input file descriptor. Only
+ works if select(2) or FIONREAD are available
+
+lib/readline/isearch.c
+ - slight change to the isearch termination behavior -- ESC still
+ terminates the search, but if there is pending input or if input
+ arrives within 0.1 seconds (on systems with select(2)) it is
+ used as a prefix character with rl_execute_next
+
+shell.c
+ - the GNU coding standards say to write the output generated by
+ the --help command line option to stdout, not stderr
+ - show_shell_version now takes an `extended' option that displays
+ copyright information if non-zero
+ - show_shell_version now prints the value of `MACHTYPE' by default
+ - the `--version' option now causes the shell to exit successfully
+ after printing the extended version information
+
+externs.h
+ - changed prototype for show_shell_version
+
+shell.c, bashline.c, builtins/help.def
+ - changed calls to show_shell_version to add appropriate argument
+
+Makefile.in
+ - pass a `MACHTYPE' define to the compiler
+
+ 3/22
+ ----
+general.c
+ - changed print_timeval() and print_time_in_hz() to output three
+ fractional digits after the decimal point
+
+examples/loadables/sleep.c
+ - changed to an implementation that will sleep fractional portions
+ of seconds if select() is available
+
+ 3/25
+ ----
+builtins/shopt.def
+ - fixes to shopt -o from Andreas Schwab. Use FLAG_ON/FLAG_OFF
+ instead of SETOPT/UNSETOPT
+
+ 3/26
+ ----
+Makefile.in, builtins/Makefile.in
+ - use `@includedir@' instead of `@incdir' for autoconf 2.9
+
+Makefile.in
+ - the `info', `dvi', and `ps' targets do not depend on `texindex'
+ - add a `dist' target that just prints a message describing how
+ distributions are constructed
+
+support/mkdirs
+ - replace uses of [...] with `test'
+
+ 3/28
+ ----
+parse.y
+ - fix for a problem with \@ prompt expansion from Tim Mooney
+
+jobs.c
+ - broke the code that prints a pipeline out into a separate
+ function: print_pipeline(). This gets called by
+ pretty_print_job and can be used for debugging
+ - two new functions to save and restore the_pipeline around calls
+ to make_child that you don't want to disturb the current pipeline,
+ for example in process substitution
+
+subst.c
+ - changed process_substitute to call save_pipeline and
+ restore_pipeline in the appropriate places
+
+ 3/29
+ ----
+general.c
+ - ansicstr now takes an additional parameter, the length of the
+ string to be translated. It's the second paramter.
+
+builtins/echo.def
+ - changed call to ansicstr to pass strlen(list->word->word)
+
+parse.y
+ - redid the $'...' expansion so it works like it's supposed to:
+ the quoted strings may appear anywhere in a token, and multiple
+ ansi-c quoted strings may appear in a token
+ - redid the $"..." expansion so it works like it's supposed to
+
+tests/nquote.{tests,right}, tests/run-nquote
+ - tests for the $'...' and $"..." quoting stuff -- simple-minded
+
+subst.c
+ - on systems without /dev/fd, open the named pipe for a `reading
+ in child' process substitution (>(...)) with O_NONBLOCK
+
+lib/posixheaders/filecntl.h
+ - add code to make sure the O_NONBLOCK is defined to O_NDELAY if
+ it is present and O_NONBLOCK is not defined by <fcntl.h>
+
+general.c
+ - don't bother handling both O_NONBLOCK and O_NDELAY in
+ unset_nodelay_mode, since filecntl.h defines O_NONBLOCK as
+ O_NDELAY for non-Posix systems
+
+ 4/1
+ ---
+lib/readline/funmap.c
+ - made `vi-fetch-history' a bindable command name
+
+doc/readline.3
+ - many cleanups, updated the list of default bindings
+
+ 4/4
+ ---
+doc/bash.1, doc/readline.3
+ - fixed up use of \-; now it is not used unless the text is being
+ printed in bold or italic
+
+configure.in, config.h.in
+ - add a configuration option, --enable-usg-echo-default, to turn
+ on DEFAULT_ECHO_TO_USG and make `echo' expand backslash-escaped
+ characters by default
+
+ 4/8
+ ---
+parse.y
+ - another small change to localeexpand to handle backslash-escaped
+ double quotes in the double-quoted string
+
+ 4/9
+ ---
+shell.c
+ - add the value of MACHTYPE to the text output by `--help'
+
+ 4/11
+ ----
+parse.y
+ - more changes to the $"..." and $'...' code to move it into
+ read_token
+ - don't try to check token[token_index - 1] unless token_index
+ is greater than 0
+
+ 4/12
+ ----
+trap.c
+ - new function run_trap_cleanup to clean up after _run_trap_internal
+ in the event that parse_and_execute does not return normally
+ (e.g., if a `return' is executed in the trap command)
+ - set running_trap to the number of the signal whose trap is being
+ run plus one in _run_trap_internal
+
+trap.h
+ - extern declaration for run_trap_cleanup
+
+jobs.c
+ - new function `unfreeze_jobs_list' to set freeze_jobs_list back to 0.
+ called from parse_and_execute_cleanup so a `return' while running
+ an interrupt trap does not leave the jobs list frozen
+
+jobs.h
+ - new extern declaration for unfreeze_jobs_list
+
+builtins/common.c
+ - if running_trap is non-zero in parse_and_execute_cleanup, indicating
+ that parse_and_execute was running a trap command when it got a
+ `return', call run_trap_cleanup (running_trap - 1)
+ - parse_and_execute_cleanup now calls unfreeze_jobs_list
+
+ 4/16
+ ----
+Makefile.in
+ - don't try to make `doc' as a dependency of `install'
+
+doc/Makefile.in
+ - make `info' a dependency of `install' to make sure the info
+ document is present and up to date before installing it
+ - make the `install' target install the documents with a $(srcdir)/
+ prefix in case we're building in another directory
+
+lib/glob/glob.c
+ - fixed an off-by-one error in glob_dir_to_array
+
+shell.c
+ - removed an extra increment of arg_index when setting up the
+ arguments for -c command
+
+ 4/17
+ ----
+pathexp.c
+ - made quote_globbing_chars backslash-quote backslashes as well as
+ `?*[]'; changed it to be a little faster
+
+bashhist.c
+ - call quote_globbing_chars to quote backslashes in the previous
+ history line even if no other globbing chars are present. This
+ is done only if we're matching against a HISTIGNORE pattern of `&'
+ - don't bother quoting globbing characters in the current history
+ line in history_should_ignore -- fnmatch ignores special chars in
+ its `string' argument
+
+[bash-2.0-alpha2 frozen]
+
+ 4/18
+ ----
+command.h
+ - new flag value for a word: W_NOSPLIT. A word with this bit set
+ in its flags will not have word splitting performed
+
+parse.y
+ - turn on the W_NOSPLIT flags for assignment statements appearing
+ where an assignment statement is acceptable (words that would
+ return ASSIGNMENT_WORD rather than WORD). This means that, for
+ the time being, assignment statement arguments to builtins like
+ `declare' or `alias' will be split unless they are quoted
+
+subst.c
+ - don't split a word in expand_word_internal if the W_NOSPLIT flag
+ is set, rather than checking W_ASSIGNMENT; do the same thing in
+ expand_word_list_internal
+
+builtins.h
+ - a new flag, ASSIGNMENT_BUILTIN, indicating that this builtin takes
+ assignment statements as arguments
+ - rearranged the values of the builtin flags, so the BUILTIN_* flags
+ come first, then the *_BUILTIN flags
+
+builtins/makebuiltins.c
+ - added code for an array of `assignment builtins' -- builtins that
+ take assignment statements as arguments -- and to add the
+ ASSIGNMENT_BUILTIN flag for those builtins
+
+execute_cmd.c
+ - added a hack function `fix_assignment_words', which checks the
+ first word of a builtin command to see if it is a builtin that
+ has the ASSIGNMENT_BUILTIN flag set, and adds W_NOSPLIT to the
+ flags for all words with the W_ASSIGNMENT bit set. This means
+ that word splitting is not done for any of the assignment
+ statements in commands like `declare z=$a'
+
+ 4/19
+ ----
+execute_cmd.c
+ - fixed a memory-freed-twice error in find_in_path_element
+
+lib/readline/rltty.c
+ - include <sys/ioctl.h> if GWINSZ_IN_SYS_IOCTL is defined and
+ SHELL is not defined
+
+lib/readline/input.c
+ - changed a stray HAVE_FIONREAD to FIONREAD
+ - include <sys/ioctl.h> if FIONREAD_IN_SYS_IOCTL is defined
+
+aclocal.m4
+ - new macro, BASH_HAVE_FIONREAD, to check for a #define of
+ FIONREAD in <sys/ioctl.h> or one of the files it includes;
+ defines FIONREAD_IN_SYS_IOCTL if present
+
+config.h.in
+ - new line for FIONREAD_IN_SYS_IOCTL
+
+configure.in
+ - call BASH_HAVE_FIONREAD
+
+ 4/22
+ ----
+builtins/cd.def
+ - fixed a memory-freed-twice error in mkpath()
+
+jobs.c
+ - don't print a job termination message for a non-interactive shell
+ with startup_state == 2 (those shells are started to run commands
+ when bash is invoked with `-c command')
+
+ 4/23
+ ----
+general.h
+ - definition for a `generic pointer' type PTR_T -- `void *' on ANSI
+ C systems, `char *' otherwise
+
+jobs.h
+ - new members of job struct: `j_cleanup', a function to call when the
+ job is marked JDEAD, and `cleanarg', argument to pass to j_cleanup
+
+jobs.c
+ - initialize j_cleanup and cleanarg to NULL in stop_pipeline
+ - call j_cleanup from waitchld() when a job is marked JDEAD
+
+test.c
+ - fixed binop() so it recognizes `<' and `>' as binary operators
+ - fixed a bug in binary_operator so `<' works correctly
+
+tests/test-tests
+ - fixed the tests so they no longer rely on the modes of files in
+ the file system to test -u, -g, -r, -x, -w, and so on, except
+ for a few `standard' files like /dev/tty and /dev/null
+ - added tests for string < string and string > string
+
+xmalloc.c
+ - include <unistd.h> if HAVE_UNISTD_H is defined for a prototype
+ for sbrk
+ - add an extern declaration for sbrk if SBRK_DECLARED is not defined
+ - use PTR_T to cast the return value of sbrk() when finding out where
+ the break is and how many bytes of memory have been allocated
+
+lib/malloc/malloc.c
+ - added code to write 0xcf into memory as it's freed, to uncover
+ callers that try to refer to freed memory, and writes 0xdf into
+ newly-allocated memory, to uncover callers that assume something
+ about new allocations (e.g., that newmem[0] == 0)
+
+lib/malloc/gmalloc.c
+ - latest version from GNU sources
+
+ 4/25
+ ----
+doc/bash.1
+ - changed the description of `unset' to include a description of
+ the `-v' option
+
+parse.y
+ - fixed a problem with conversion to 12-hour time in
+ decode_prompt_string that made 12:00pm show up as 00:00pm
+
+ 4/26
+ ----
+builtins/common.c, subst.c
+ - a couple of fixes from Andreas Schwab
+
+configure.in
+ - set up the minimal configuration after checking for
+ --enable-minimal-config with AC_ARG_ENABLE, before checking any
+ of the other options, instead of after checking all options.
+ This makes `--enable-minimal-config --enable-prompt-string-decoding'
+ work as documented
+ - changed AC_PREREQ to require autoconf version 2.8 or higher
+ - added some code to disable gnu malloc by default on the systems
+ listed in NOTES
+ - set MALLOC_SRC to have the $(ALLOC_LIBSRC)/ prefix to avoid having
+ a directory in the dependencies when making without the gnu
+ malloc
+
+lib/malloc/Makefile.in
+ - make gmalloc.o depend on $(BUILD_DIR)/config.h
+
+ 4/30
+ ----
+COMPAT
+ - new file listing user-visible incompatibilites between bash-1.14
+ and bash-2.0
+
+parse.y
+ - new prompt expansions, \v (version) and \V (version + patchlevel)
+
+config.h.top
+ - the default value of PS1 is now '\s-\v\$ '
+
+doc/{bash.{1,html},features.texi}
+ - added descriptions of \v and \V prompt expansions
+ - changed default value of PS1
+
+Makefile.in
+ - added dependencies on config.h.top for files that use definitions
+ included there
+
+builtins/exec.def
+ - removed reference to `no_exit_on_failed_exec' from the help text
+
+ 5/3
+ ---
+builtins/cd.def
+ - fixed a typo in fix from 4/22
+
+ 5/7
+ ---
+builtins/common.c
+ - new function `no_options (WORD_LIST *)' to be called by builtins
+ that do not take options to check for options and -?. It returns
+ 0 on success, non-zero if an unwanted option is supplied
+
+builtins/common.h
+ - extern declaration for no_options
+
+builtins/return.def
+ - corrected the error message to include returning from a sourced
+ script
+
+builtins/{getopts,eval,wait,source,fg_bg,help}.def
+ - changed the following builtins to either call no_options or test
+ explicitly for options and return EX_USAGE if any are found:
+
+ getopts eval wait source . fg bg help
+
+builtins/help.def
+ - error messages are now printed using builtin_error
+
+ 5/8
+ ---
+builtins/jobs.def
+ - fixed an unitialized variable problem
+
+tests/more-exp.tests
+ - added additional tests for IFS problem uncovered by `iffe'
+
+ 5/9
+ ---
+lib/malloc/Makefile.in
+ - use $(ALLOCA_SOURCE) instead of $< in rule that builds alloca.o.
+ Some makes don't expand the $< in non-suffix rules
+
+lib/readline/rldefs.h
+ - fix workaround for SVR4.2 bug
+
+shell.c
+ - even though SVR4.2 has getpeername(), isnetconn() should not use it
+
+maxpath.h
+ - rework to make sure PATH_MAX and NAME_MAX are defined, and remove
+ the BUILDING_MAKEFILE code
+
+general.c, parse.y, oslib.c, jobs.c, builtins/common.c, builtins/cd.def
+ - change uses of MAXPATHLEN to PATH_MAX
+
+examples/loadables/{{log,base,dir}name,tty,pathchk,tee}.c
+ - new loadable builtins:
+
+ logname basename dirname tty pathchk tee
+
+configuure.in, config.h.in
+ - look for tzset(3), define HAVE_TZSET if found
+
+subst.c
+ - new special variable function, sv_tz, which calls tzset when
+ TZ is changed, if tzset(3) exists and the shell is compiled
+ to do prompt string decoding
+
+subst.h
+ - extern declaration for sv_tz
+
+ 5/10
+ ----
+builtins/echo.def
+ - only call printf if the string to print is non-null
+ - add an fflush(stdout) after the printf call to work around a
+ bug in SunOS 5.5
+
+ 5/16
+ ----
+shell.c
+ - moved some variable declarations out of this file to more
+ logical places
+
+support/config.guess
+ - small fixes from rfg@monkeys.com
+
+version.c
+ - moved functions for getting, setting, and displaying shell version
+ information here from shell.c
+
+general.c
+ - moved set_lines_and_columns to variables.c
+ - moved getc_with_restart and ungetc_with_restart to input.c
+ - new function argv_to_word_list(), converts an array of strings
+ into a WORD_LIST
+ - renamed find_name_in_list to find_name_in_array to match rest
+ of functions that operate on arrays of strings
+
+configure.in, Makefile.in, jobs.c, nojobs.c
+ - changes so that jobs.c no longer includes nojobs.c, and the correct
+ object file (jobs.o or nojobs.o) is selected by configure
+ and substituted into the Makefile
+
+list.c
+ - new file, list manipulation functions from general.c
+
+externs.h, general.h
+ - moved extern declarations for functions defined in oslib.c and
+ list.c to externs.h from general.h
+
+ 5/17
+ ----
+locale.c
+ - new file, with locale code from parse.y and shell.c
+
+shell.c
+ - don't turn off job control if act_like_sh is set
+ - if an unknown option is supplied at startup or if -c is
+ supplied without an argument, exit with EX_USAGE
+ - call posix_initialize after parsing all the options, to
+ catch `bash -o posix'
+ - new functions: init_interactive(), init_noninteractive()
+ - exit with EX_NOTFOUND if a script argument is not found
+ - exit with EX_NOINPUT if a script file cannot be opened for
+ some reason
+
+shell.h
+ - new define for EX_NOINPUT exit status (126)
+
+ 5/18
+ ----
+lib/readline/bind.c
+ - fixed _rl_get_keyname() so that it properly handles C-\ and outputs
+ it as \C-\\ and C-" as \C-\". This fixes the improper binding
+ commands written by `bind -p' that caused weird things to happen
+ when people used the output of `bind -p' as a start for their
+ own inputrc files
+ - new function _rl_init_file_error to print error messages encountered
+ while parsing the inputrc file
+ - print out an error message if parsing an inputrc line and no closing
+ double quote is found for a key binding
+
+lib/readline/complete.c
+ - in rl_complete_internal, if the completion function results in
+ multiple matches, but none match up to even the first character,
+ use what the user typed in (which is presumably a glob pattern
+ that expanded into multiple files) as matches[0]. This makes
+ things like show-all-if-ambiguous work right, too
+
+oslib.c
+ - if we are providing our own version of getenv(), provide a function
+ _getenv() as well, which just calls getenv()
+
+builtins/ulimit.def
+ - #define _KERNEL before including <sys/resource.h> if HPUX is
+ defined. This makes the full set of limits available on hpux
+ version 8 and above
+
+bashline.c
+ - new function, enable_hostname_completion, sets up readline to
+ perform or not perform hostname completion. Hostname completion
+ is on by default.
+ - don't attempt hostname completion in attempt_shell_completion()
+ unless perform_hostname_completion is set
+
+builtins/shopt.def
+ - add a `set_func' member to the shopt options structure, to provide
+ a hook for those variables that require a little more than just
+ toggling a variable on or off
+ - new shopt variable `hostcomplete', turns hostname completion on and
+ off
+
+doc/{bash.{1,html},features.texi}
+ - added description of new shopt `hostcomplete' variable
+
+ 5/21
+ ----
+sig.c
+ - don't try to save the shell history in termination_unwind_protect
+ if we're dying due to SIGABRT
+
+bashhist.c
+ - new functions: last_history_entry (static), last_history_line
+
+bashhist.h
+ - extern declarations for new functions in bashhist.c
+
+error.c
+ - have programming_error() report the last command in the history
+ before aborting
+
+builtins/fc.def
+ - if the editor returns a non-zero exit status when using `fc -e',
+ return immediately without trying to execute the commands, as
+ per Posix.2, 5.12.2
+ - when using `fc -s', echo the command to be executed to stderr,
+ not stdout
+
+lib/readline/terminal.c
+ - new file, with all code related to termcap/terminfo
+
+lib/readline/{readline,rltty,display,util}.c
+ - moved functions dealing with termcap to terminal.c
+
+lib/readline/readline.c
+ - readline_initialize_everything now calls _rl_enable_meta_key()
+ to turn on the meta key, based on the value of _rl_enable_meta
+ (on by default)
+
+lib/readline/rltty.c
+ - do not enable and disable the meta key each time readline is
+ called; do it once at initialization
+
+ 5/23
+ ----
+bashhist.c
+ - when `hist_verify' is set, call re_edit with the expanded line,
+ not the original one, and do not print the results of the
+ expansion before re-editing
+
+ 5/24
+ ----
+support/config.guess
+ - recognize linux/sparc
+
+configure.in
+ - don't use GNU malloc on linux/sparc
+
+variables.c
+ - initialize a new $MACHTYPE variable to the value of MACHTYPE as
+ set by autoconf
+
+doc/{bash.{1,html},features.texi}
+ - documented $MACHTYPE
+
+ 5/30
+ ----
+builtins/ulimit.def
+ - allow the max vm size to be set via setrlimit() if RLIMIT_VMEM
+ is defined
+
+ 5/31
+ ----
+shell.h
+ - changed EX_USAGE to 258, EX_BADUSAGE is now 2
+ - added a number of execution failure statuses, so that builtins
+ can indicate various failures. All are greater than 256, so
+ they cannot be returned by other utilities
+
+execute_cmd.c
+ - new function, builtin_status(), to translate the new return
+ status codes to something the shell can export
+ - changed execute_simple_command to call builtin_status after
+ execute_builtin_or_function to translate error codes if a
+ builtin is invoked. If a function or regular builtin is
+ invoked, all return values greater than EX_SHERRBASE get
+ translated to EXECUTION_FAILURE, with the exception that
+ EX_USAGE gets translated to EX_BADUSAGE. If a special
+ builtin failed with a status > EX_SHERRBASE, special_builtin_failed
+ is set to cause the shell to exit in POSIX mode
+ - changed execute_builtin_or_function to return EX_REDIRFAIL if
+ redirections fail
+ - changed execute_subshell_builtin_or_function to translate
+ EX_USAGE to EX_BADUSAGE if a builtin is executed
+ - set this_command_name to NULL in execute_for_command before binding
+ each member of the word list to the loop variable, to avoid
+ garbled error messages if the variable has the integer attribute
+
+builtins/{set,unset}.def
+ - return EX_USAGE instead of EXECUTION_FAILURE if a bad option is
+ supplied
+
+builtins/source.def
+ - return EX_USAGE instead of EXECUTION_FAILURE if the required
+ filename argument is missing
+
+builtins/setattr.def
+ - return EX_BADASSIGN if any assignment statements given as arguments
+ to readonly, export, etc. return failures (assignment to
+ non-identifier, assignment to readonly variable)
+
+builtins/declare.def
+ - don't allow `declare var=value' to assign value to a readonly
+ variable
+
+lib/readline/rldefs.h
+ - include <stdarg.h> if we're going to be using stdarg instead of
+ varargs
+
+lib/readline/display.c
+ - added `stdarg' version of rl_message
+
+lib/readline/readline.h
+ - changed extern declaration for rl_message to be in ANSI-C format
+ if __STDC__ is defined and we're using stdarg
+
+variables.c
+ - make sure this_command_name is set to null before calling
+ make_variable_value in assign_array_var_from_string so any
+ error messages are not garbled
+
+ 6/2
+ ---
+builtins/common.c
+ - don't execute the command in parse_and_execute if -n has been
+ enabled and the shell is not interactive
+ - include flags.h for read_but_dont_execute
+
+[bash-2.0-alpha3 released]
+
+ 6/5
+ ---
+subst.c
+ - array_length_reference and parameter_brace_expand_length now
+ return -1 on errors
+ - parameter_brace_expand now returns &expand_param_error if
+ paramter_brace_expand_length returns something < 0
+
+variables.c
+ - assign_in_env now checks for assignments to readonly shell
+ variables and disallows them
+
+ 6/6
+ ---
+xmalloc.c
+ - only do pointer arithmetic on pointers cast to (char *), since
+ it's not required that compilers support arithmetic on void *
+
+shell.c
+ - make sure <sys/socket.h> is included with the same conditions
+ used to call getpeername(2) in isnetconn()
+
+parse.y
+ - added a new function, paren_match, to parse the contents of $(...)
+ constructs. This function correctly handles embedded quoted
+ strings, embedded command substitutions, embedded command
+ substitutions with embedded quoted strings, etc. The implementation
+ is much closer to that described in POSIX.2, section 3.6.3.
+ - changed read_token_word to call paren_match where appropriate
+
+subst.c
+ - rewrote extract_delimited_string so that it correctly understands
+ quoted strings inside command substitutions, a la paren_match
+ in parse.y. Corrected the description of the function's output
+ in the code. extract_delimited_string is now very recursive, and
+ does not try to do everything in one pass without recursion
+
+ 6/7
+ ---
+test.c
+ - fixed three_arguments() to test the second argument for a valid
+ binary operator before checking whether or not the first argument
+ is `!'. This is what POSIX.2 says to do.
+
+lib/malloc/malloc.c
+ - don't compile in the memory scrambling code (#define MEMSCRAMBLE)
+ if NO_MEMSCRAMBLE is defined.
+
+configure.in
+ - define NO_MEMSCRAMBLE in LOCAL_CFLAGS for SCO 3.2v[45]
+
+ 6/9
+ ---
+parse.y
+ - renamed paren_match to parse_matched_pair
+ - call parse_matched_pair to parse <(...) and >(...) constructs,
+ since those should be treated the same as $(...) for the purposes
+ of matching parens and skipping embedded quoted strings
+
+ 6/13
+ ----
+parse.y
+ - augmented parse_matched_pair
+ o fixed up backslash quoting and CTLESC handling after
+ backslashes
+ o match pairs of ${...} and $[...] inside double-quoted
+ strings or `` strings
+ o keep track of line number quoted string starts on for
+ better error messages
+ o push and pop delimiters when parsing quoted strings
+ inside $(...), ${...}, and $[...] for use by the
+ history code
+ o set EOF_Reached to 1 if we get an EOF before finding the
+ match closer
+ - rewrote read_token_word from scratch to use parse_matched_pair:
+ o shell quote characters use parse_matched_pair to find
+ the matching quote
+ o fixed up backslash parsing code
+ o compound array assignments use parse_matched_pair
+ o corrected all_digits and dollar_present computations, so,
+ for instance, 2''>/dev/null is no longer accepted as
+ identical to 2>/dev/null
+ o converted ${...} parsing to use parse_matched_pair
+ o removed printing of error messages about unmatched quotes;
+ now handled by parse_matched_pair
+ o converted $'...' and $"..." to use parse_matched_pair
+ o removed all of the delimited_xxx and dollar_xxx variables
+ and embedded_quoted_string
+ - modified report_syntax_error to regularize error messages:
+ o non-interactive shells and interactive shells running
+ scripts with `.' now always report line numbers
+ o unexpected EOF is always reported when EOF_Reached is true
+ o non-interactive shells no longer duplicate the script name
+ in error messages (e.g., `./z3: ./z3: line 3: syntax error')
+
+bashline.c
+ - make sure `newnames' is freed in _ignore_completion_names
+
+lib/readline/complete.c
+ - don't insert the first match on TAB completion in
+ rl_complete_internal() if matches[0] is the empty string --
+ that will overwrite whatever the user has typed, if dequoting
+ what the user typed results in the empty string
+
+execute_cmd.c
+ - include <limits.h> if HAVE_LIMITS_H is defined for ARG_MAX
+ - only put the special environment variable for GNU getopt into
+ the environment if ARG_MAX exceeds 10240
+
+subst.c
+ - rewrote extract_dollar_brace_string so that it fully obeys
+ the POSIX.2 rules for finding the closing `}' and uses
+ skip_{single,double}_quoted rather than trying to do it with
+ inline delimiters
+ - removed the INC_NEST and DEC_NEST defines
+
+ 6/14
+ ----
+jobs.c
+ - don't print status messages for background jobs that complete
+ successfully when running shell scripts
+
+builtins/shopt.def
+ - when using shopt -o as a synonym for set -o, make sure $SHELLOPTS
+ is updated
+ - make sure to update $SHELLOPTS when using shopt to set or unset
+ interactive comments
+
+execute_cmd.c
+ - fixed find_in_path_element to not return non-executable files
+ when FS_EXEC_PREFERRED is one of the flags, after saving such
+ a file as file_to_lose_on (fix from william@nscs.fast.net)
+
+ 6/17
+ ----
+lib/readline/complete.c
+ - after printing possible completions, all lines of a multi-line
+ prompt are redisplayed using rl_forced_update_display()
+
+subst.c
+ - in expand_word_internal, only do tilde expansion on words where
+ (flags & (W_ASSIGNMENT|W_QUOTED)) == W_ASSIGNMENT (unquoted
+ assignment statements) and contain unquoted `=~' or `:~', and
+ only if posixly_correct is off. POSIX.2 says that only the
+ assignments preceding the command name should be tilde-expanded.
+
+ 6/18
+ ----
+support/config.guess
+ - recognize the new Pyramid DC-OSx as `mips-pyramid-sysv4'
+
+configure.in
+ - set LOCAL_CFLAGS to -Xa for mips-pyramid-sysv4 as per
+ Peter Chubb
+
+subst.c
+ - variable assignment errors when there is not a command name
+ after the assignments now causes a non-interactive shell to
+ exit in POSIX.2 mode
+
+execute_cmd.c
+ - if the iteration variable in a for statement is a read-only
+ variable, a variable assignment error occurs. This causes
+ non-interactive shells to exit in posix mode, and a failure
+ status to be returned for other non-interactive shells and
+ interactive shells
+ - if the selection variable in a select statement is a read-only
+ variable, a variable assignment error occurs, with the same
+ consequences as a for statement variable assignment error
+
+doc/bashref.*
+ - renamed features.* to bashref.*, since that more accurately
+ reflects the current contents
+
+ 6/19
+ ----
+test.c
+ - changed three_arguments() to do one-argument tests on $1 and
+ $3 and return the appropriate values if -a or -o is given as
+ the second argument
+ - changed three_arguments() to perform a one-argument test on
+ $2 if $1 == '(' and $3 == ')' and return that result
+ - make sure test_stat translates /dev/fd/xx to DEV_FD_PREFIX/xx
+ so /dev/fd/0 always means the same thing, even on linux,
+ which uses /proc/self/fd
+
+aclocal.m4
+ - added a check for libncurses in BASH_CHECK_LIB_TERMCAP
+
+configure.in
+ - added an initial message saying we're configuring for bash-2.0
+
+lib/glob/fnmatch.c
+ - made a small change to fnmatch() to fix a bug matching patterns
+ with multiple consecutive `*'s
+
+ 6/20
+ ----
+parse.y
+ - inhibit history expansion when calling pre_process_line() from
+ shell_getc() if the current delimiter is a single quote, even
+ if we're on a different line than the opening quote
+ - make sure read_a_line prints a prompt if we're interactive and
+ not using readline, and make sure we call clearerr() if we
+ get EOF when interactive and not using readline
+
+bashhist.c
+ - new function history_expansion_p(char *) returns 1 if the string
+ passed contains the history expansion or history substitution
+ characters
+ - pre_process_line() now calls history_expansion_p and calls
+ the history expansion code only if that returns 1
+
+ 6/26
+ ----
+lib/readline/isearch.c
+ - swap the behavior of ^J and ^M when i-searching. ^J now terminates
+ the search without accepting the line. ^M terminates the search
+ and accepts the line, executing the command
+
+examples/loadables/sprintf.c
+ - new `sprintf' builtin: sprintf var format [args...]
+
+lib/readline/readline.c
+ - added a line in _rl_dispatch that sets _rl_suppress_redisplay if
+ the function is rl_insert and there is input available
+
+ 6/27
+ ----
+builtins/getopts.def
+ - new function, getopts_bind_variable(), used when assigning a value
+ to the user-supplied variable passed to getopts(). It makes sure
+ that that variable name is legal and prints an error message if it
+ is not
+
+builtins/getopt.c
+ - don't increment sh_optind until after we've checked whether or not
+ the current option character appears in the list of options passed
+ to getopts by the user
+
+ 6/28
+ ----
+variables.c
+ - added a new parameter to print_var_value: QUOTE. If it's non-zero
+ and the variable's value contains shell metacharacters, quote the
+ value so it can be read back in
+
+variables.h
+ - changed extern declaration for print_var_value
+
+siglist.h
+ - if SYS_SIGLIST_DECLARED is not defined, but HAVE_UNDER_SYS_SIGLIST
+ is, only declare sys_siglist as extern char *sys_siglist[] if
+ sys_siglist is not `#define'd
+
+parse.y
+ - make sure a reserved word is acceptable before returning `}' as
+ a token from special_case_tokens, even if the token read so far
+ is "}"
+ - make reset_parser set allow_open_brace to 0
+
+ 7/1
+ ---
+test.c
+ - fixed binop to not try to read s[3] if s[2] == '\0'. There are
+ no one-character binary operators that begin with `-'
+
+variables.c
+ - fixed kill_all_local_variables to do nothing if variable_context
+ is >= local_variable_stack_size (indicating that we do have some
+ local variables, but not at this level of function nesting, and
+ we are beyond the end of the array allocated the last time we
+ had local variables)
+
+ 7/2
+ ---
+execute_cmd.c
+ - non-interactive shells in posix mode should exit if the variable
+ in a for command is not a valid identifier. This should really
+ be caught by the parser
+ - non-interactive shells in posix mode should exit if a function
+ name is not a valid identifier. This should also be caught by
+ the parser
+
+ 7/3
+ ---
+jobs.c
+ - non-interactive shells should ignore stopped children, so
+ waitchld() should set waitpid_flags to WUNTRACED only if the
+ shell is interactive and it's not a subshell environment
+
+lib/readline/signals.c
+ - if not being compiled as part of the shell, readline should
+ catch SIGTERM and clean up
+
+shell.c
+ - change to isnetconn: on Solaris 2.5, getpeername() can return
+ EINVAL rather than ENOTSOCK if the fd passed as the first
+ argument is not a socket
+
+ 7/5
+ ---
+lib/readline/complete.c
+ - new variable, available to library users, to inhibit completion
+ and cause the completion character to be inserted into the
+ line with self-insert: rl_inhibit_completion. Set to 0 by default.
+
+lib/readline/readline.h
+ - extern declaration for rl_inhibit_completion
+
+lib/readline/doc/rltech.texinfo
+ - documented rl_inhibit_completion
+
+lib/readline/bind.c
+ - new readline user variable: disable-completion. This provides
+ users a way to toggle the value of rl_inhibit_completion
+
+doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
+ - documented disable-completion variable
+
+lib/readline/doc/Makefile
+ - added `html' target to create html from rlman.texinfo and
+ hist.texinfo
+
+ 7/8
+ ---
+builtins/cd.def
+ - only try cd spelling correction if the shell is currently
+ interactive, regardless of value of `cdspell' option
+
+lib/posixheaders/alloca.h
+ - AIX 4.2 needs `#pragma alloca' if gcc is not being used
+
+ 7/9
+ ---
+builtins/getopts.def
+ - return EXECUTION_FAILURE from getopts if it's trying to assign
+ to a read-only variable
+ - reset sh_badopt to zero in getopts_reset()
+
+builtins/getopt.c
+ - new variable, sh_badopt, set to 1 if we find an illegal option
+ - do the increment of sh_optind if sh_badopt is non-zero and we're
+ at the end of the option string at the beginning of sh_getopt().
+ The increment is deferred until the next call so $OPTIND is
+ correct
+
+builtins/getopt.h
+ - extern declaration of sh_badopt
+
+ 7/10
+ ----
+Makefile.in
+ - don't pass ALLOCA_SOURCE or ALLOCA_OBJECT to the make in lib/malloc
+ - don't make libmalloc.a depend on ALLOCA_DEP -- it causes some
+ compilers to build alloca.o in the top directory, and if ALLOCA
+ is not defined, makes the malloc library depend on a directory
+
+aclocal.m4
+ - some small changes to make the output look better
+
+memalloc.h
+ - made some small changes suggested by the autoconf documentation
+
+ 7/11
+ ----
+parse.y
+ - swapped meanings of \h and \H in prompt_string_decode for
+ bash-1.14.6 compatibility
+
+doc/{bash.{1,html},bashref.texi}
+ - updated prompt string decoding section with swap of \h and \H
+
+general.c
+ - print_timeval and print_time_in_hz now accept a FILE * as the
+ first argument, so `times' can print to stdout while `time'
+ prints to stderr
+
+execute_cmd.c
+ - changed time_command to print the timing statistics to stderr
+
+builtins/times.def
+ - added the FILE * argument to the calls to print_timeval and
+ print_time_in_hz
+
+support/texi2html
+ - upgraded to version 1.50
+
+error.c
+ - include bashhist.h if HISTORY is defined for declarations of
+ last_history_line() and remember_on_history
+
+lib/glob/glob.c
+ - add a `#pragma alloca' as the first thing in the file if we're
+ not using gcc and _AIX is defined
+
+lib/posixheaders/memalloc.h
+ - remove the `#pragma alloca' stuff; it is done in the C source
+ files now, to avoid problems with other AIX header file
+ declarations
+
+ 7/12
+ ----
+lib/readline/rltty.c
+ - some changes to work around AIX 4.2 bugs (sometimes OPOST is unset
+ in termios, sometimes FLUSHO is inexplicably set in termios, etc.)
+
+ 7/15
+ ----
+lib/readline/rltty.c
+ - make SETATTR use TCSADRAIN on POSIX machines. This setting is
+ supposed to be used for changes that affect output
+
+[bash-2.0-alpha4 released]
+
+ 7/16
+ ----
+trap.c
+ - changed reset_or_restore_signal_handlers to honor traps before
+ special signals, so that `trap "" 2' works right and causes
+ children to ignore SIGINT
+
+locale.c
+ - added lc_all variable to track the value of LC_ALL
+ - added new functions: set_default_locale_vars, set_locale_var,
+ set_lang, get_locale_var, removed get_current_messages_locale
+
+subst.h
+ - added extern declaration for sv_locale
+
+subst.c
+ - LC_ALL, LC_CTYPE, LC_MESSAGES, and LANG are now special variables;
+ sv_locale() is called when they are assigned a value
+
+shell.c
+ - call set_default_locale_vars after initializing the shell variables
+ in main(), so LC_CTYPE and LC_MESSAGES (if present) have values
+ - shell.c does not need to include <locale.h>
+
+general.c
+ - changed print_timeval and print_time_in_hz to format their output
+ as Posix.2 specifies for `time -p' if the new POSIX_TIME argument
+ is non-zero
+
+parse.y
+ - new grammar production: timespec, to handle `time' and `time -p'
+ - change to special_case_tokens so that -p after `time' returns
+ TIMEOPT
+
+execute_cmd.c
+ - set posix_time in time_command if the command's flags include
+ CMD_TIME_POSIX
+ - call print_timeval and print_time_in_hz with posix_time as
+ the new third argument
+ - use a space to separate the word (`real') and the time if we're
+ in posix mode. This is what POSIX.2 defines for `time -p'
+
+builtins/times.def
+ - call print_timeval and print_time_in_hz with 0 as the new third
+ argument
+
+command.h
+ - new flag: CMD_TIME_POSIX, used to handle `time -p'
+
+doc/{bash.{1,html},bashref.texi}
+ - documented `time -p'
+
+ 7/17
+ ----
+support/mkversion.c
+ - include `config.h' before any other include files
+
+parse.y
+ - initialize was_dollar to 0 in parse_matched_pair
+
+configure.in
+ - removed duplicate check for <sys/file.h> from call to
+ AC_HAVE_HEADERS
+
+sig.c
+ - include siglist.h so we can find out if it defines HAVE_SYS_SIGLIST
+
+siglist.h
+ - define HAVE_SYS_SIGLIST if we end up defining sys_siglist as
+ _sys_siglist (Solaris 2.[45])
+
+siglist.c
+ - include "siglist.h" before testing whether or not HAVE_SYS_SIGLIST
+ is defined; it may be defined in there (Solaris 2.[45])
+
+ 7/19
+ ----
+examples/misc/alias-conv.sh
+ - updated, now uses code from examples/functions/csh-compat to do
+ the alias conversion, uses `command' builtin in functions it
+ creates, does some substitution of csh special variables to
+ bash equivalents
+
+examples/misc/cshtobash
+ - a more ambitious script that attempts to convert csh aliases,
+ environment variables, and local variables to bash equivalents
+
+ 7/22
+ ----
+bashline.c
+ - added `:' to the set of completion word break characters so that
+ individual directories in $PATH assignments can be completed
+
+aclocal.m4
+ - added a new macro, BASH_CC_WORKS, that aborts configuration if
+ ${CC} can't compile a simple program successfully
+
+configure.in
+ - call BASH_CC_WORKS before doing anything else
+
+ 7/23
+ ----
+execute_cmd.c
+ - fixed select_query to print the prompt ($PS3) to stderr
+
+support/bashbug.sh
+ - workaround for bug in SunOS 5.x /bin/sh that causes it to
+ not ignore interrupts while waiting for a foreground process
+ to exit
+
+ 7/24
+ ----
+general.c
+ - added new functions to decompose `timeval's and `clock_t's into
+ seconds and thousandths of seconds: timeval_to_secs and
+ clock_t_to_secs
+ - changed print_timeval and print_time_in_hz to call timeval_to_secs
+ and clock_t_to_secs, respectively
+ - removed no-longer-used third argument for print_timeval and
+ print_time_in_hz -- `time' output is now done in execute_cmd.c
+
+general.h
+ - new extern declarations for timeval_to_secs and clock_t_to_secs
+
+builtins/times.def
+ - changed calls to print_timeval and print_time_in_hz, removing the
+ no-longer-used third argument
+
+execute_cmd.c
+ - changed the way time_command prints its output: it now interprets
+ a format string, replacing several escape sequences prefixed with
+ a `%' with the real, user, and system times. There are options in
+ the format string to ask for the `long' format that `times' uses
+ as well as to specify the number of places after the decimal point,
+ and whether to output fractional seconds at all
+ - time_command now uses the value of the `TIMEFORMAT' variable, if
+ present, to format the timing output. This is flexible enough to
+ encompass the bash default, posix `time -p', BSD, and SV time
+ formats
+
+ 7/25
+ ----
+Makefile.in
+ - `make clean' should delete the files listed in $(CREATED_SUPPORT);
+ `make mostlyclean' should not
+
+doc/{bash.{1,html},bashref.texi}
+ - fixed an error in the description of the effect that setting and
+ unsetting GLOBIGNORE has on the setting of the `dotglob' option
+
+doc/bashref.texi
+ - updated the section listing the major differences between bash
+ and the SVR4.2 shell
+
+lib/readline/readline.c
+ - removed the setting of _rl_suppress_redisplay, since it doesn't
+ really do anything yet
+
+oslib.c
+ - new function get_clk_tck (void), returns the value of _SC_CLK_TCK
+ if sysconf(3) is available, otherwise returns the value of
+ CLOCKS_PER_SEC (default 60)
+
+general.c
+ - moved CLOCKS_PER_SEC defines to oslib.c
+ - changed clock_t_to_secs to call get_clk_tck once to get the
+ right value to use
+
+externs.h
+ - extern declaration for get_clk_tck
+
+execute_cmd.c
+ - changed print_formatted_time so that a `%' at the end of the string
+ is output literally
+ - changed print_formatted_time to output a newline after the
+ translated format string, so it does not need to be included in
+ the format
+ - changed BASH_TIMEFORMAT (the default time format) to have a leading
+ newline to match ksh93
+
+configure.in
+ - use `shlicc2' on BSD/OS machines
+
+ 7/26
+ ----
+doc/bash.html
+ - major overhaul, cleaned up text, corrected some minor HTML errors
+
+variables.c
+ - call sv_optind and sv_opterr to initialize the getopts stuff in
+ initialize_shell_variables
+
+ 7/29
+ ----
+shell.c
+ - don't let maybe_execute_file try to read files that are not
+ `regular files'
+
+ 7/30
+ ----
+parse.y
+ - cast `string' in yy_string_get() to unsigned char * to avoid
+ sign extension bugs. For example, bash -c $'ls\377who'
+
+
+builtins/reserved.def
+ - add help text for the `time' reserved word
+ - deleted description of `HISTCONTROL'
+ - added descriptions for HISTIGNORE, PWD, HOSTNAME, GLOBIGNORE,
+ MACHTYPE
+
+ 7/31
+ ----
+builtins/common.c
+ - parse_and_execute saves and restores the line number around
+ calls, and resets it to 0 when pushing the string onto the
+ input stack
+
+parse.y
+ - added code that parses `` within a double-quoted string as a
+ single word
+
+ 8/6
+ ---
+configure.in, config.h.in
+ - look for `textdomain' as well as `gettext' for internationalization
+
+locale.c
+ - when LC_MESSAGES is set, call textdomain as well as setlocale
+ - new variable `default_domain', used to track the value of
+ $TEXTDOMAIN
+
+subst.c
+ - call sv_locale when TEXTDOMAIN changes
+
+ 8/7
+ ---
+error.c
+ - new function, sys_error(), which prints a formatted string followed
+ by a colon and strerror(errno) to stderr
+
+error.h
+ - extern declaration for sys_error
+
+jobs.c, nojobs.c, input.c, execute_cmd.c, subst.c
+ - changes to use sys_error()
+
+[many files]
+ - changes to many of the literal strings in the code for consistency
+ and easier potential translation
+
+ 8/8
+ ---
+parse.y
+ - new function debug_parser(int) to toggle the value of yydebug
+ if YYDEBUG != 0
+
+ 8/9
+ ---
+oslib.c
+ - don't use CLOCKS_PER_SEC, just try to get CLK_TCK (60 by default)
+
+bashline.c
+ - set saved_history_line_to_use to -1 when it's not going to be used
+ rather than 0. A value of 0 can be confused with the first
+ history line
+
+builtins/evalstring.c
+ - moved parse_and_execute and auxiliary functions here from
+ builtins/common.c
+
+builtins/evalfile.c
+ - moved maybe_execute_file here from shell.c
+
+Makefile.in, builtins/Makefile.in
+ - changes necessitated by the new files
+
+ 8/12
+ ----
+builtins/common.c
+ - fixed an off-by-one bug in single_quote that could make bash
+ run off the end of a string if it consisted entirely of single
+ quotes
+
+ 8/13
+ ----
+shell.c
+ - moved code from main() to a new function: open_shell_script
+ - don't try to fclose(default_input) if BUFFERED_INPUT is defined
+ - moved argument binding code out of two places in main() and
+ open_shell_script() to a new function: bind_args(). This takes
+ an additional argument telling whether to bind starting at $0
+ or $1
+ - moved the code that calls the with_input_from_* functions into
+ a new function: set_bash_input
+ - moved the normal shell command-line option parsing code out of
+ main() into a new function: parse_shell_options
+ - moved the long option parsing code out of main() into a new
+ function: parse_long_options()
+
+general.c
+ - new function: move_to_high_fd(fd), which tries to move FD to a
+ file descriptor close to the allowed maximum, returning the new
+ fd and closing the old one (or returning the old one if something
+ goes wrong)
+
+general.h
+ - new extern declaration for move_to_high_fd
+
+variables.c
+ - moved indirection_level_string() here from shell.c
+
+jobs.c
+ - change initialize_jobs to use move_to_high_fd() instead of the
+ inline code to do the same thing
+
+ 8/14
+ ----
+lib/readline/readline.c
+ - add `en_US.ISO8859-1' to the list of legal LANG values that turns
+ on readline's 8-bit mode
+
+ 8/15
+ ----
+builtins/evalfile.c
+ - combined source_file and maybe_execute_file into a new function
+ _evalfile(fname, flags), where the flags select the appropriate
+ behavior
+
+eval.c
+ - moved the functions that perform the read-eval loop here from
+ shell.c
+
+execute_cmd.c
+ - changed CPU calculation for printing timing statistics using
+ ideas and code from Deven Corzine (deven@ties.org)
+
+eval.c, builtins/evalstring.c
+ - make sure we dispose of global_command if set -n is on and the
+ shell is not interactive
+
+ 8/16
+ ----
+variables.c
+ - make a new array variable, BASH_VERSINFO, with version information:
+
+ BASH_VERSINFO[0] = release (2)
+ BASH_VERSINFO[1] = version (00)
+ BASH_VERSINFO[2] = patch level (0)
+ BASH_VERSINFO[3] = build version (1058)
+ BASH_VERSINFO[4] = release status (beta1)
+ BASH_VERSINFO[5] = $MACHTYPE (sparc-sun-sunos4.1.4)
+
+doc/{bash.{1,html},bashref.texi}
+ - Documented BASH_VERSINFO
+
+configure.in, config.h.in
+ - look for bindtextdomain(), set HAVE_BINDTEXTDOMAIN if found
+
+subst.c
+ - call sv_locale if TEXTDOMAINDIR is set or changes
+
+locale.c
+ - handle TEXTDOMAINDIR in set_locale_var; call bindtextdomain if
+ it is present
+
+tests/array.tests
+ - added calls to egrep to filter out BASH_VERSINFO and PIPESTATUS,
+ which can vary from system to system
+
+ 8/19
+ ----
+shell.c
+ - moved line_buffer_stream from here to oslib.c, made it into a
+ replacement for setlinebuf() if that is not available
+
+externs.h
+ - extern declaration for setlinebuf()
+
+lib/readline/input.c
+ - in rl_gather_tyi, punt if chars_avail < 0 after checking input fd
+
+ 8/20
+ ----
+builtins/suspend.def
+ - send SIGSTOP instead of SIGTSTP
+
+ 8/21
+ ----
+builtins/colon.def
+ - added true and false as builtins (undocumented)
+
+CWRU/POSIX.NOTES, doc/bashref.texi
+ - note that process substitution is not available in posix mode
+
+bashintl.h
+ - new header file for internationalization, included by locale.c
+
+ 8/22
+ ----
+subst.c
+ - in command_substitute, set istring to NULL before trying to
+ make the pipe, so if that fails, the code at error_exit:
+ doesn't try to free it
+
+execute_cmd.c
+ - when executing a shell script without a leading `#!' internally,
+ and the shell is not interactive, close the fd to the script
+ we're reading. If this is called by the exec builtin, the shell
+ will not have forked, and the fd will not have been closed, even
+ though it's marked close-on-exec
+ - if subshell_argv is non-null, free its members (except 0) and
+ subshell_argv in shell_execve before reassigning it
+ - dispose of currently_executing_command before jumping back to
+ subshell_top_level
+
+builtins/hash.def
+ - use a sentinel variable so we only initialize the hash table
+ once in initialize_filename_hashing
+
+shell.c
+ - don't flush the filename hash table in shell_reinitialize
+ - free dollar_vars[0] in set_shell_name before assigning it
+ - don't fetch the current hostname more than once
+ - don't fetch the current user information more than once unless
+ the uid changes
+
+parse.y
+ - initialize_bash_input should free bash_input.name if it is
+ non-null before zeroing it
+
+ 8/23
+ ----
+aclocal.m4
+ - changed BASH_CHECK_SOCKLIB: if -lsocket is present, check for
+ and cache the existence of -lnsl. Define LIBS appropriately
+ based on the values of the cache variables rather than relying
+ on the autoconf tests to do it
+
+ 8/26
+ ----
+parse.y
+ - fix up yy_readline_get and yy_stream_get to fix the sign
+ extension problem
+
+shell.c
+ - move the setjmp(top_level) that catches early SIGINTs to the
+ first statement in main()
+
+Makefile.in
+ - added a `strip' target to strip the binary
+
+[bash-2.0-beta1 frozen]
+
+ 8/27
+ ----
+parse.y
+ - replaced several static state variables with a single flags word:
+ parser_state
+
+ 8/28
+ ----
+parse.y
+ - in read_token_word, combined the ${...} case with the other
+ expansion cases -- the code was identical
+ - added code to handle ksh-style ((...)) -- equivalent to
+ `let "..."'. In fact, the above construct is translated internally
+ into `let "..."', so error messages output by the evaluator
+ will contain `let'
+
+expr.c
+ - changed evalerror to call internal_error so the name of the
+ shell script is prefixed to the message, if necessary
+
+Makefile.in
+ - changed RELSTATUS to `beta2'
+
+tests/{arith,new-exp}.{tests,right}
+ - changed the expected error message because of the change in format
+ of the arithmetic evaluation error messages in expr.c
+
+builtins/pushd.def
+ - changed pushd_builtin so `pushd -' is equivalent to `pushd $OLDPWD'
+
+externs.h
+ - changed the extern declaration for setlinebuf() to avoid having
+ to include stdio.h before externs.h everywhere
+
+ 8/29
+ ----
+error.c
+ - new function, parser_error, for use by parts of the parser that
+ don't want to call report_syntax_error
+
+error.h
+ - extern declaration for parser_error
+
+parse.y
+ - changed some parts of the parser to use parser_error
+ - made the ((...)) code #ifdef'd on DPAREN_ARITHMETIC
+
+shell.c
+ - added a line to the --help output saying to use `bashbug' to
+ report bugs
+
+configure.in
+ - added new option: --enable-dparen-arithmetic; it controls
+ the DPAREN_ARITHMETIC define in config.h
+ - changed $host_os check for SCO to only enable -DWAITPID_BROKEN
+ for sco3.2v5; all other SCO versions enable -DMUST_UNBLOCK_CHILD
+
+config.h.in
+ - added line for DPAREN_ARITHMETIC, modified by configure
+
+doc/{bash.{1,html},bashref.texi}
+ - documented new ((...)) command and new configuration option
+
+execute_cmd.c
+ - shell_execve should not try to close default_buffered_input unless
+ it is >= 0. Other code that closes it and deallocates the buffer
+ should set default_buffered_input to -1
+
+ 8/30
+ ----
+configure.in
+ - more changes to LOCAL_CFLAGS for sco machines
+
+error.c
+ - changed parser_error to handle all cases of the shell being
+ interactive, not interactive, reading from a script, and reading
+ from some other file
+
+parse.y
+ - changed report_syntax_error to call parser_error for consistent
+ messages
+
+dispose_cmd.c
+ - change dispose_command to use programming_error instead of
+ report_error
+
+execute_cmd.c, input.c, general.c
+ - changed calls to report_error to internal_error, since we don't
+ want to possibly exit in any of those cases
+
+ 9/3
+ ---
+input.c
+ - changed the `localbuf' type to `unsigned char'
+
+parse.y
+ - changed yy_stream_get to use feof to test for end of file when
+ not using getc_with_restart
+
+ 9/6
+ ---
+config.h.top
+ - added a commented-out define for SYS_BASH_LOGOUT, which is a
+ system-wide .bash_logout file, run when a login shell exits
+ - added /sbin to STANDARD_UTILS_PATH
+
+builtins/exit.def
+ - added support for SYS_BASH_LOGOUT
+
+ 9/10
+ ----
+lib/readline/{{chardefs,histlib}.h,{bind,histexpand,readline,util,vi_mode}.c}
+ - changed to_upper to _rl_to_upper and to_lower to _rl_to_lower
+ - changed digit_value to _rl_digit_value
+ - changed digit_p to _rl_digit_p
+ - changed uppercase_p and lowercase_p to _rl_uppercase_p and
+ _rl_lowercase_p respectively
+ - changed pure_alphabetic to _rl_pure_alphabetic
+
+support/zecho.c
+ - new file, implements a bare-bones echo (no -n, no \-escapes),
+ to be used by tests
+
+tests/rhs-exp.tests
+ - changed calls to echo to use recho to avoid errors when bash is
+ configured with --enable-usg-echo-default
+
+tests/more-exp.tests
+ - changed some calls to echo to use zecho to avoid errors when bash
+ is configured with --enable-usg-echo-default
+
+ 9/11
+ ----
+lib/readline/histexpand.c
+ - fixed a possible off-by-one error in history_expand_internal when
+ deciding whether or not to reallocate `result'
+
+expr.c
+ - fixed expcond() so that an assignment may be supplied as the
+ token after the `?'
+ - illegal bases now cause an evaluation error
+ - multiple base specifications now cause an evaluation error
+
+tests/arith.tests
+ - added more tests for conditional operator and associativity
+
+tests/{run-heredoc,heredoc.{tests,right}}
+ - new set of tests for here-documents
+
+builtins/common.c
+ - print out the name returned by get_name_for_error in
+ builtin_error()
+
+subst.c
+ - set this_command_name to NULL before processing command-line
+ assignment statements so arithmetic evaluation errors don't
+ print garbage
+ - according to POSIX.2, echo ${foo?$x} should print the expanded
+ value of $x, even when it doesn't expand into anything
+
+ 9/12
+ ----
+shell.c
+ - changed the execution of startup files so that $ENV is never
+ run by a non-interactive shell and an interactive shell begun
+ as `sh' reads and executes $ENV, as posix specifies
+
+doc/{bash.{1,html},bashref.texi}
+ - updated description of startup file behavior
+
+doc/Makefile.in
+ - make sure references to bashref.texi are preceded by $(srcdir)/
+ so we can build the documentation in another directory just by
+ typing `make'; e.g. after giving configure the --srcdir option
+
+subst.c
+ - change to array_remove_pattern to avoid evaluating the `param'
+ part of the ${param#word} spec twice when doing things like
+ echo ${A[x=(i+=1)]#${A[y=(i+=2)]}}
+
+ 9/13
+ ----
+builtins/bashgetopt.c
+ - fixed a problem with `;' option specifier (optional argument)
+
+support/config.{sub,guess}
+ - added cases to recognize CRAY C90 and T90
+
+builtins/ulimit.def
+ - rewritten almost from scratch to use internal_getopt and to not
+ mask the return value from getrlimit/setrlimit, and to make it
+ easier to maintain
+ - added `-l' option for systems with RLIMIT_MEMLOCK (4.4 BSD)
+
+doc/{bash.{1,html},bashref.texi}
+ - documented new `-l' option to `ulimit'
+
+ 9/24
+ ----
+parse.y
+ - added `in' to the list of tokens that should not be followed by
+ a semicolon when combining history lines
+ - removed the special-case code in history_delimiting_chars that
+ tried to be smart about `()'
+
+ 9/25
+ ----
+print_cmd.c
+ - fixes to print_group_command from Andreas Schwab
+ - rewrote indent() to use a single malloced string for the spaces
+ to print, rather than calling cprintf multiple times
+
+shell.c
+ - make sure to set the strings in current_user to NULL after freeing
+ their contents in uidget().
+
+parse.y
+ - make sure decode_prompt_string quotes the values inserted by the
+ \w and \W escape sequences using backslashes if the string will be
+ expanded later because promptvars is set
+
+support/mkdirs
+ - removed leading `^' from regular expressions to be matched by
+ `expr' on the advice of meyering@appaloosa.asic.sc.ti.com
+
+ 9/26
+ ----
+parse.y
+ - added a few more possible flag values for parser_state
+ - changed history_delimiting_chars to not add a semicolon after a
+ right paren if we're parsing a case statement
+
+ 9/27
+ ----
+builtins/ulimit.def
+ - a few minor cleanups
+
+ 10/1
+ ----
+builtins/trap.def
+ - make sure first_arg is non-empty before calling signal_object_p()
+
+[bash-2.0-beta2 frozen]
+
+ 10/2
+ ----
+bashintl.h
+ - if we have setlocale(), but don't have a definition for LC_ALL,
+ undefine HAVE_SETLOCALE
+
+configure.in
+ - set LOCAL_LDFLAGS on AIX 4.2 to allow dynamic loading of builtins
+
+builtins/enable.def
+ - use correct flags for AIX 4.2 in dlopen call if _AIX is defined
+
+examples/loadables/Makefile
+ - add sample commands for AIX 4.2
+
+ 10/3
+ ----
+variables.c
+ - new functions: merge_temporary_env(), merge_builtin_env(), to
+ take temporary_env and builtin_env, respectively, and create
+ shell variables from them
+
+variables.h
+ - new extern declarations for merge_temporary_env() and
+ merge_builtin_env()
+
+execute_cmd.c
+ - if variable assignments preceds a posix special builtin, and the
+ shell is in posix mode, those assignments should persist in the
+ shell environment after the builtin completes
+
+doc/bashref.texi
+ - modified description of what's changed by posix mode to include
+ the persistance of assignment statements preceding special builtins
+
+doc/mkposix
+ - new script to create CWRU/POSIX.NOTES directly from the `Bash
+ POSIX Mode' node of bashref.texi, like INSTALL is created
+
+ 10/4
+ ----
+lib/{malloc,glob,readline}/Makefile.in, builtins/Makefile.in
+ - don't have autoconf substitute LOCAL_CFLAGS into the CFLAGS
+ assignment so people on SCO 3.2v[45] can still build with
+ NO_MEMSCRAMBLE even when they run `make CFLAGS=...'
+
+test.c
+ - renamed eaccess() to test_eaccess() to avoid conflict with SCO
+
+config.h.bot
+ - #undef HAVE_GETCWD if GETCWD_BROKEN is defined, so we use the
+ replacement in getcwd.c
+
+general.c
+ - fixed a small memory leak in full_pathname that occurs if
+ getcwd() returns NULL
+
+oslib.c
+ - new constant string variable: bash_getcwd_errstr, to use when
+ getcwd() returns NULL
+
+{general,jobs}.c, parse.y, builtins/{cd.def,common.c}
+ - change calls to getwd() to use getcwd() instead
+
+general.c, builtins/common.c, builtins/cd.def
+ - changed error behavior when getcwd() returns NULL to use
+ bash_getcwd_errstr, sys_error(), and strerror(errno) where
+ appropriate
+
+sig.c
+ - change a couple of calls to signal to set_signal_handler
+
+aclocal.m4
+ - added definitions of _popen and _pclose to the BASH_FUNC_GETCWD
+ macro
+
+configure.in
+ - added -DPATH_MAX=1024 to LOCAL_CFLAGS for sco3.2v[45] on the
+ advice of <grog@lemis.de>
+ - removed check for getwd(3)
+
+externs.h
+ - removed extern declaration for getwd(), added extern declaration
+ for getcwd() if HAVE_GETCWD is not defined
+
+oslib.c
+ - removed definition of getwd(); it is no longer used
+
+lib/readline/rltty.c
+ - changed SETATTR macro for SCO POSIX systems to call tcsetattr
+ with TCSANOW, on advice of <wbader@nacs.fast.net>
+
+ 10/7
+ ----
+support/mkdirs
+ - slight change to work around a bug in the HP-UX `expr'
+
+ 10/8
+ ----
+lib/readline/vi_mode.c
+ - changes so that the text inserted with an `i' command is available
+ to be reinserted with `.'
+
+examples/functions/autoload.v2
+ - new implementation: uses arrays, keeps a list of autoloaded
+ functions, allows autoloaded functions to be removed, allows
+ autoloaded functions to be listed
+
+execute_cmd.c
+ - when freeing the members of subshell_argv in shell_execve(), free
+ only the members up to subshell_argc
+
+ 10/9
+ ----
+configure.in
+ - replaced calls to AC_HAVE_FUNCS with AC_CHECK_FUNCS
+ - replaced calls to AC_FUNC_CHECK with AC_CHECK_FUNC
+ - replaced calls to AC_HAVE_HEADERS with AC_CHECK_HEADERS
+ - added additional code to check for libintl.{a,so} for the
+ internationalization functions if bindtextdomain is not found
+ in libc
+ - define HAVE_WAIT3 if AC_FUNC_CHECK(wait3,...) succeeds, rather
+ than HAVE_FUNC_WAIT3, which is not used in the source
+ - added a call to AC_FUNC_STRCOLL to check for the presence of a
+ working strcoll(3)
+
+config.h.in
+ - removed HAVE_FUNC_WAIT3
+ - added HAVE_STRCOLL
+
+variables.c, stringlib.c
+ - move sort_char_array from variables.c to stringlib.c
+
+variables.h, externs.h
+ - move extern declaration of sort_char_array from variables.h to
+ externs.h
+
+variables.c
+ - don't sort the exported environment, even when we're not in
+ posix mode
+
+stringlib.c
+ - changed qsort_string_compare to use strcoll(3) if it is available
+ (HAVE_STRCOLL is defined). This means that the results of glob
+ expansions are now sorted in the per-locale collation order
+
+locale.c
+ - track the value of $LC_COLLATE and call setlocale(LC_COLLATE,...)
+ when it changes. Also, set its default value
+
+subst.c
+ - LC_COLLATE is now a special variable; call sv_locale when it is
+ assigned to or unset
+
+lib/readline/util.c
+ - move compare_strings here from complete.c; renamed it
+ _rl_qsort_string_compare; made it use strcoll(3) if it's
+ available; made it global so other library files can use it
+
+lib/readline/complete.c
+ - use _rl_qsort_string_compare instead of static compare_strings.
+ This means that completions are now sorted in a locale-specific
+ collation order
+
+lib/readline/funmap.c
+ - removed static declaration of qsort_string_compare; qsort now
+ uses _rl_qsort_string_compare instead
+
+oslib.c
+ - rewrote stricmp, strnicmp; renamed them strcasecmp and
+ strncasecmp, since they're only compiled in if HAVE_STRCASECMP
+ is not defined
+
+externs.h
+ - removed extern declarations of strnicmp, stricmp, replacing them
+ with declarations of strcasecmp and strncasecmp if HAVE_STRCASECMP
+ is not defined; removed #defines of stricmp and strnicmp to
+ strcasecmp and strncasecmp
+
+trap.c
+ - changed calls to stricmp to direct calls to strcasecmp
+
+Makefile.in
+ - bumped RELSTATUS to `beta3'
+
+doc/bash.{1,html}
+ - added mention of LC_COLLATE
+
+doc/bashref.texi
+ - removed item about sorting environment from the section on posix
+ mode
+
+ 10/16
+ -----
+subst.c
+ - fixed array_length_reference to return 0 for an unbound variable
+ and 1 for a variable that is not an array
+
+examples/scripts.v2/cdhist.bash
+ - package with functions to replace cd and maintain a cd directory
+ stack
+
+examples/scripts.v2/pmtop
+ - a `poor man's top' for SunOS 4.x and BSD
+
+examples/scripts.v2/bashrand
+ - a script to return a random number within a specified range, with
+ an optional seed
+
+examples/scripts/zprintf
+ - printf(1) replacement that uses gawk to do the output
+
+doc/{bash.{1,html},bashref.texi}, lib/readline/doc/hsuser.texinfo
+ - several small corrections
+
+ 10/17
+ -----
+variables.c
+ - changed the calls to list_string_with_quotes and then
+ expand_words_no_vars in assign_array_var_from_string to a single
+ call to expand_string. This behaves more rationally, and closer
+ to ksh93
+
+subst.c
+ - commented out list_string_with_quotes -- it is no longer used
+
+lib/readline/terminal.c
+ - new function, _rl_set_screen_size(int rows, int cols), to set
+ readline's idea of the screen size
+
+jobs.c, nojobs.c
+ - make sure that window size changes are propagated back down to
+ the readline code, by calling _rl_set_screen_size with the
+ new sizes. This happens when bash gets a SIGWINCH or if
+ `checkwinsize' is set with `shopt'
+
+ 10/18
+ -----
+support/config.guess
+ - added code to recognize the various NetBSD ports
+
+lib/readline/signals.c
+ - don't install a handler for SIGALRM if the containing application
+ has installed a handler with SA_RESTART as part of the flags.
+ This is in effect, obviously, only for systems with POSIX signals.
+
+subst.c
+ - make parameter_brace_expand_length expand variables in a double-
+ quoted environment so it takes spaces in the variable value into
+ account
+
+ 10/21
+ -----
+command.h
+ - flags for possible values of subshell_environment telling what
+ caused the subshell
+
+builtins/command.def
+ - the `command' builtin should not be setting CMD_NO_FORK at all;
+ it doesn't know enough about the execution context to do so
+
+execute_cmd.c, subst.c
+ - set subshell_environment to one of the values in command.h rather
+ than to `1', so we know what kind of subshell it is (just for
+ informational purposes; nothing actually uses this yet)
+
+
+ 10/22
+ -----
+execute_cmd.c
+ - just return EXECUTION_SUCCESS immediately in execute_command_internal
+ if read_but_dont_execute is set
+
+ 10/23
+ -----
+general.c
+ - fixed check_dev_tty to return immediately if ttyname() returns NULL
+
+builtins/suspend.def
+ - SIGSTOP cannot be caught, so there's no reason to try to do so
+
+examples/loadables/{finfo,pathchk,print}.c
+ - minor fixes
+
+pathexp.c
+ - fix to off-by-one error in setup_ignore_patterns
+
+jobs.c
+ - try to set the tty pgrp to our pgrp if we change our pgrp to our
+ pid and become a process group leader. If it doesn't work,
+ reset our pgrp to what it was originally and disable job control
+
+aclocal.m4
+ - new test, BASH_STRUCT_TERMIO_LDISC, to test for a c_line member
+ of struct termio
+
+config.h.in
+ - add a new preprocessor variable, TERMIO_LDISC, undefined by default
+
+configure.in
+ - call BASH_STRUCT_TERMIO_LDISC after BASH_STRUCT_TERMIOS_LDISC
+
+ 10/25
+ -----
+lib/readline/terminal.c
+ - increased the size of the termcap buffers to 4096
+
+ 10/29
+ -----
+parse.y
+ - include memalloc.h for uses of alloca that the code in the
+ generated bison parser does not catch (e.g., HP-UX 10.10)
+
+aclocal.m4
+ - new test, BASH_KERNEL_RLIMIT_CHECK, to check whether a given
+ HP-UX machine needs _KERNEL defined for the RLIMIT_* defines in
+ <sys/resource.h> (9.05, 10.01 yes, 10.10,10.20 no)
+
+configure.in
+ - call BASH_KERNEL_RLIMIT_CHECK if $host_os begins with `hpux'
+
+config.h.in
+ - new #undef for RLIMIT_NEEDS_KERNEL
+
+builtins/ulimit.def
+ - only define _KERNEL before including <sys/resource.h> if HPUX
+ and RLIMIT_NEEDS_KERNEL are both defined
+
+[bash-2.0-beta3 frozen]
+
+ 11/1
+ ----
+locale.c
+ - if setting LC_ALL to a null value (as is done when `unset LC_ALL'
+ is run), call setlocale() to set LC_ALL back to default_locale
+
+lib/readline/readline.c
+ - moved i18n code from here to nls.c
+
+lib/readline/Makefile.in, Makefile.in
+ - new readline library member, nls.c
+
+lib/readline/nls.c
+ - new file, with internationalization code from readline.c (such as
+ it is)
+ - updated legal_lang_values to just contain a list of codesets
+ - added code modified from a diff sent by Ulrich Drepper
+ <drepper@cygnus.com> to parse a locale specification and isolate
+ and normalize the codeset part, for checking against the values
+ in legal_lang_values
+
+ 11/4
+ ----
+builtins/setattr.def, locale.c, aclocal.m4, oslib.c
+ - minor cleanups
+
+ 11/5
+ ----
+lib/readline/complete.c, test.c, trap.c
+ - more minor cleanups
+
+ 11/6
+ ----
+parse.y
+ - added a `flags' parameter to parse_matched_pair, currently unused
+
+ 11/7
+ ----
+configure.in, config.h.in
+ - add a check for time_t, defaulting to `long' if it's not
+ defined in <sys/types.h>
+
+builtins/fc.def
+ - use `time_t *' instead of `long *' in call to time()
+
+ 11/8
+ ----
+configure.in
+ - removed check for getpwent in libsun.a; it's not necessary for
+ recent versions of irix (irix[56].?)
+
+ 11/11
+ -----
+test.c
+ - used `&&' where `||' was needed when testing if HAVE_LSTAT and
+ S_IFLNK are both defined
+
+[bash-2.0-beta3 net release version frozen]
+
+ 11/12
+ -----
+builtins/getopt.c
+ - when sh_getopt detects that a required argument is not present,
+ set sh_optarg to "" so that getopts does the right thing
+
+ 11/15
+ -----
+builtins/ulimit.c
+ - made the default (without -H or -S) report the soft limit and set
+ both soft and hard limits (like sh and ksh)
+
+expr.c
+ - changed the maximum base in base#num constants to 64, implemented
+ just like ksh93
+
+doc/{bash.{1,html},bashref.texi}
+ - updated description of ulimit builtin to new behavior when
+ neither -H nor -S is supplied
+ - updated arithmetic evaluation section with new maximum base and
+ explanation of how numbers between 10 and 63 are represented
+
+lib/readline/vi_mode.c
+ - in rl_vi_done_inserting, don't try to save the text entered while
+ in insert mode unless rl_undo_list is non-null (indicating that
+ there was actually some text to be saved)
+
+ 11/19
+ -----
+lib/readline/tcap.h
+ - new file, for termcap library definitions. Uses <termcap.h> if
+ it is available
+
+lib/readline/rldefs.h
+ - remove inclusion of termcap.h; now included in tcap.h
+
+lib/readline/{terminal,display,readline}.c
+ - include tcap.h
+
+lib/readline/Makefile.in
+ - update dependencies to include tcap.h
+
+ 11/21
+ -----
+lib/readline/complete.c
+ - broke the code that computes the lcd of the list of completion
+ matches out into a separate function, compute_lcd_of_matches()
+
+lib/readline/complete.c
+ - call compute_lcd_of_matches after calling the application-specific
+ completion ignore function, since it may have eliminated some
+ names from the match list
+
+builtins/cd.def
+ - replaced instances of MAXNAMLEN in the spelling correction code
+ with PATH_MAX
+
+lib/readline/terminal.c
+ - new termcap capabilities: kh (sent by Home key) and kH (sent by
+ End key) automatically bound to beginning-of-line and end-of-line
+ respectively in emacs_standard and vi_movement maps
+
+mailcheck.c
+ - fix to remember_mail_dates so any message following the
+ filename is saved correctly
+
+ 11/22
+ -----
+lib/readline/bind.c
+ - fixed extern declaration of _rl_parsing_coditionalized_out
+ to match declaration in readline.c
+
+ 11/25
+ -----
+doc/{bash.{1,html},bashref.texi}
+ - fixed a gross documentation error in the description of
+ ${parameter:offset:length} (offset and length were transposed)
+ - slight changes to the description of output redirection
+
+subst.c
+ - new function, quoted_substring, to return substrings of variables
+ when the expression is within double quotes and the value has
+ CTLESC characters embedded within it. Called by
+ parameter_brace_substring
+ - get_var_and_type should return VT_POSPARMS if `*' is passed as
+ the variable name
+ - added a new first parameter for pos_params -- the variable name
+ - changed pos_params to obey the rules for "$*" wrt using the
+ first character of IFS as the separator in the result
+ - if an unquoted $* or $@ is expanded, call quote_escapes on the
+ result to protect any special characters from inadvertently
+ causing quoting
+
+ 12/3
+ ----
+builtins/ulimit.def
+ - corrected a misspelling of `unlimited'
+ - added support for linux RLIMIT_AS resource limit for -v option
+ and changed the block multiplier to 1024 if we have RLIMIT_VMEM
+ or RLIMIT_AS
+
+ 12/5
+ ----
+lib/readline/readline.c
+ - fix rl_insert to handle a count of exactly 1024
+
+shell.c
+ - new function: unbind_args(), which removes all the positional
+ parameters. Just calls remember_args(NULL, 1)
+
+execute_cmd.c
+ - call unbind_args when executing a subshell, after setting up
+ subshell_argX
+
+bashintl.h
+ - include <libintl.h> if HAVE_LIBINTL_H defined
+
+config.h.in
+ - add HAVE_LIBINTL_H define
+
+configure.in
+ - add call to AC_CHECK_HEADERS for libintl.h
+
+doc/Makefile.in
+ - added infodir and various mandir defines for completeness
+
+Makefile.in
+ - changed some of the *dir defines to use the autoconf values
+ (e.g., bindir = @bindir@)
+ - changed manroot to mandir, removed old mandir and manext variables
+ - added `manpfx' variable; should be either `man' or `cat'
+
+ 12/6
+ ----
+lib/readline/readline.c
+ - fixed rl_digit_loop so it once again displays the argument count
+ as it's being entered (added calls to _rl_save_prompt and
+ _rl_restore_prompt)
+
+ 12/7
+ ----
+support/config.guess
+ - recognize netbsd/vax
+ - recognize openbsd on all supported platforms
+ - recognize tenon's machten running on powerpc and macintosh
+
+ 12/9
+ ----
+support/config.guess
+ - added all sorts of systems from config.guess distributed with
+ autoconf-2.12
+
+ 12/10
+ -----
+subst.c
+ - new function quoted_strchr(); does the same thing as strchr but
+ honors shell backslash and CTLESC quoting conventions
+ - parameter_brace_patsub now calls quoted_strchr
+
+ 12/11
+ -----
+shell.c
+ - if the shell is named `-su', run the normal login shell startup
+ files, even if the shell is not interactive. This handles the
+ case of `su - username -c command' compatibly
+
+lib/readline/readline.c
+ - minor change to rl_digit_loop so that M-- and M--1 are equivalent,
+ as the prompt for digit arguments has always implied
+
+lib/malloc/malloc.c
+ - added definitions of calloc() and cfree(), compiled in unless
+ NO_CALLOC is defined to cpp
+
+
+ 12/16
+ -----
+parse.y
+ - protect uses of history_expansion_inhibited with #ifdef
+ BANG_HISTORY
+
+[bash-2.0-release candidate frozen]
+
+builtins/common.c
+ - changed backslash_quote to quote a tilde if it's the first
+ character in the string
+
+ 12/17
+ -----
+aclocal.m4
+ - changed BASH_CC_WORKS to provide a cross-compiling default for
+ better error messages
+
+configure.in
+ - generated configure using autoconf-2.12
+ - changed the default value of CFLAGS to `-g -O2'
+
+ 12/18
+ -----
+aclocal.m4
+ - look for /var/spool/mail before /usr/spool/mail when checking
+ for the default mail directory
+
+jobs.c, builtins/shopt.def
+ - fixed a couple of `macro replacement within a string literal'
+ problems
+
+Makefile.in
+ - removed `realclean' target
+
+shell.c
+ - changed the first line ouput by bash --version to conform to
+ the latest GNU coding standards (replace space between version
+ and machtype with a hyphen)
+
+ 12/19
+ -----
+execute_cmd.c
+ - when looking at the debug trap in execute_function and
+ execute_command_internal, make sure it's trapped and not
+ ignored before trying to save the value of the trap string
+
+ 12/20
+ -----
+trap.c
+ - changed set_signal and ignore_signal to handle EXIT_TRAP and
+ DEBUG_TRAP specially, so we don't try to fetch signal handlers
+ or do other unnecessary things
+
+ 12/22
+ -----
+builtins/ulimit.def
+ - if the current euid is not 0, and we're trying to set the hard
+ limit of a resource to RLIM_INFINITY, set it to the current hard
+ limit to avoid error messages
+
+builtins/read.def
+ - fix for bug that caused core dump if line read had leading white
+ space and IFS was set to ''
+
+[bash-2.0-release frozen]
diff --git a/CWRU/mh-folder-comp b/CWRU/mh-folder-comp
new file mode 100644
index 00000000..905000c7
--- /dev/null
+++ b/CWRU/mh-folder-comp
@@ -0,0 +1,449 @@
+From jwe@che.utexas.edu Wed Sep 21 17:23:40 1994
+Flags: 10
+Return-Path: jwe@che.utexas.edu
+Received: from po.CWRU.Edu (root@po.CWRU.Edu [129.22.4.2]) by odin.INS.CWRU.Edu with ESMTP (8.6.8.1+cwru/CWRU-2.1-ins)
+ id RAA04010; Wed, 21 Sep 1994 17:23:39 -0400 (from jwe@che.utexas.edu for <chet@odin.INS.CWRU.Edu>)
+Received: from life.ai.mit.edu (life.ai.mit.edu [128.52.32.80]) by po.CWRU.Edu with SMTP (8.6.8.1+cwru/CWRU-2.2)
+ id RAA02121; Wed, 21 Sep 1994 17:23:28 -0400 (from jwe@che.utexas.edu for <chet@po.cwru.edu>)
+Received: from schoch.che.utexas.edu by life.ai.mit.edu (4.1/AI-4.10) for chet@po.cwru.edu id AA09989; Wed, 21 Sep 94 17:23:17 EDT
+Received: from localhost (jwe@localhost) by schoch.che.utexas.edu (8.6.8.1/8.6) with SMTP id QAA05737; Wed, 21 Sep 1994 16:22:01 -0500
+Message-Id: <199409212122.QAA05737@schoch.che.utexas.edu>
+To: march@tudor.com
+Cc: bug-bash@prep.ai.mit.edu
+Subject: Re: Completion feature possible?
+In-Reply-To: Your message of 21 Sep 94 13:30:22 EDT
+Date: Wed, 21 Sep 94 16:22:00 EDT
+From: John Eaton <jwe@che.utexas.edu>
+
+Gregory F. March <march@tudor.com> wrote:
+
+: I was having a discussion about MH with one of my friends the other
+: day and I got to thinking that the +folder/subfolder scheme for naming
+: mail folders is a real pain because completion doesn't work on
+: them. Someone then mentioned that zsh (I think) has the ability to
+: specify how to complete (I guess where to look for the files) for
+: different prefixes. Bash right now knows about '@', '~', and '$' (any
+: others?). It would be really helpful if one could define something
+: like:
+:
+: completion '+' "$HOME/Mail"
+:
+: in a config file someplace. Would this be easy? Is there a list of
+: TODO item that someone might want to add this to?
+
+It would be nice to have a general completion feature like this.
+
+Until that happens, maybe you will find the following patch useful.
+It makes MH folder name completion work with bash. The diffs are
+relative to version 1.14.2.
+
+I realize that changes to readline.c and and complete.c are not good
+since they add some MH-specific stuff to the readline code and not to
+bash, but when I first wrote this, I had no idea what else to do.
+
+Chet, would you consider adding this if it were cleaned up a bit?
+Made optional with cpp conditionals?
+
+This feature has been very useful to me for the last several years
+(since about 1.05 or 1.06, I think).
+
+Thanks,
+
+--
+John W. Eaton | 4.3BSD is not perfect. -- Leffler, et al. (1989).
+jwe@che.utexas.edu |
+
+
+-------------------------------cut here-------------------------------
+diff -rc bash-1.14.2/bashline.c bash-1.14.2.local/bashline.c
+*** bash-1.14.2/bashline.c Wed Aug 3 09:32:45 1994
+--- bash-1.14.2.local/bashline.c Wed Sep 21 15:39:04 1994
+***************
+*** 58,63 ****
+--- 58,64 ----
+ static char *hostname_completion_function ();
+ static char *command_word_completion_function ();
+ static char *command_subst_completion_function ();
++ static char *mh_folder_completion_function ();
+
+ static void snarf_hosts_from_file (), add_host_name ();
+ static void sort_hostname_list ();
+***************
+*** 90,95 ****
+--- 91,98 ----
+ bash_complete_username_internal (),
+ bash_complete_hostname (), bash_possible_hostname_completions (),
+ bash_complete_hostname_internal (),
++ bash_complete_mh_folder (), bash_possible_mh_folder_completions (),
++ bash_complete_mh_folder_internal (),
+ bash_complete_variable (), bash_possible_variable_completions (),
+ bash_complete_variable_internal (),
+ bash_complete_command (), bash_possible_command_completions (),
+***************
+*** 134,140 ****
+ rl_terminal_name = get_string_value ("TERM");
+ rl_instream = stdin;
+ rl_outstream = stderr;
+! rl_special_prefixes = "$@";
+
+ /* Allow conditional parsing of the ~/.inputrc file. */
+ rl_readline_name = "Bash";
+--- 137,143 ----
+ rl_terminal_name = get_string_value ("TERM");
+ rl_instream = stdin;
+ rl_outstream = stderr;
+! rl_special_prefixes = "$@+";
+
+ /* Allow conditional parsing of the ~/.inputrc file. */
+ rl_readline_name = "Bash";
+***************
+*** 193,198 ****
+--- 196,207 ----
+ rl_bind_key_in_map ('@', bash_possible_hostname_completions,
+ emacs_ctlx_keymap);
+
++ rl_add_defun ("complete-mh-folder", bash_complete_mh_folder, META('+'));
++ rl_add_defun ("possible-mh-folder-completions",
++ bash_possible_mh_folder_completions, -1);
++ rl_bind_key_in_map ('+', bash_possible_mh_folder_completions,
++ emacs_ctlx_keymap);
++
+ rl_add_defun ("complete-variable", bash_complete_variable, -1);
+ rl_bind_key_in_map ('$', bash_complete_variable, emacs_meta_keymap);
+ rl_add_defun ("possible-variable-completions",
+***************
+*** 656,661 ****
+--- 665,677 ----
+ if (!matches && *text == '@')
+ matches = completion_matches (text, hostname_completion_function);
+
++ /* Another one. Why not? If the word starts in '+', then look for
++ matching mh folders for completion first. */
++ if (!matches && *text == '+')
++ {
++ matches = completion_matches (text, mh_folder_completion_function);
++ }
++
+ /* And last, (but not least) if this word is in a command position, then
+ complete over possible command names, including aliases, functions,
+ and command names. */
+***************
+*** 1077,1082 ****
+--- 1093,1185 ----
+ return ((char *)NULL);
+ }
+
++ /* How about a completion function for mh folders? */
++ static char *
++ mh_folder_completion_function (text, state)
++ int state;
++ char *text;
++ {
++ extern int rl_filename_completion_desired;
++
++ extern char *get_mh_path ();
++
++ static char *mh_path = (char *)NULL;
++ static int len;
++ static int istate;
++ static char *val;
++ char *hint;
++
++ static char *mh_folder_hint = (char *)NULL;
++
++ /* If we don't have any state, make some. */
++ if (!state)
++ {
++ val = (char *)NULL;
++
++ if (mh_path)
++ free (mh_path);
++
++ mh_path = get_mh_path ();
++ if (!mh_path && !(hint[1] == '/' || hint[1] == '.'))
++ return ((char *)NULL);
++
++ len = strlen (mh_path);
++ }
++
++ if (mh_folder_hint)
++ free (mh_folder_hint);
++
++ hint = text;
++ if (*hint == '+')
++ hint++;
++
++ mh_folder_hint = (char *)xmalloc (2 + len + strlen (hint));
++ if (*hint == '/' || *hint == '.') {
++ len = -1;
++ sprintf (mh_folder_hint, "%s", hint);
++ } else
++ sprintf (mh_folder_hint, "%s/%s", mh_path, hint);
++
++ istate = (val != (char *)NULL);
++
++ again:
++ val = filename_completion_function (mh_folder_hint, istate);
++ istate = 1;
++
++ if (!val)
++ {
++ return ((char *)NULL);
++ }
++ else
++ {
++ char *ptr = val + len + 1, *temp;
++ struct stat sb;
++ int status = stat (val, &sb);
++
++ if (status != 0)
++ return ((char *)NULL);
++
++ if ((sb.st_mode & S_IFDIR) == S_IFDIR)
++ {
++ temp = (char *)xmalloc (2 + strlen (ptr));
++ *temp = '+';
++ strcpy (temp + 1, ptr);
++
++ free (val);
++ val = "";
++
++ rl_filename_completion_desired = 1;
++
++ return (temp);
++ }
++ else
++ {
++ free (val);
++ }
++ goto again;
++ }
++ }
++
+ /* History and alias expand the line. */
+ static char *
+ history_expand_line_internal (line)
+***************
+*** 1628,1633 ****
+--- 1731,1773 ----
+ {
+ bash_specific_completion
+ (what_to_do, (Function *)username_completion_function);
++ }
++
++ static void
++ bash_complete_mh_folder (ignore, ignore2)
++ int ignore, ignore2;
++ {
++ bash_complete_mh_folder_internal (TAB);
++ }
++
++ static void
++ bash_possible_mh_folder_completions (ignore, ignore2)
++ int ignore, ignore2;
++ {
++ bash_complete_mh_folder_internal ('?');
++ }
++
++ static void
++ bash_complete_mh_folder_internal (what_to_do)
++ int what_to_do;
++ {
++ Function *orig_func;
++ CPPFunction *orig_attempt_func;
++ char *orig_rl_completer_word_break_characters;
++ extern char *rl_completer_word_break_characters;
++
++ orig_func = rl_completion_entry_function;
++ orig_attempt_func = rl_attempted_completion_function;
++ orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
++ rl_completion_entry_function = (Function *)mh_folder_completion_function;
++ rl_attempted_completion_function = (CPPFunction *)NULL;
++ rl_completer_word_break_characters = " \t\n\"\'";
++
++ rl_complete_internal (what_to_do);
++
++ rl_completion_entry_function = orig_func;
++ rl_attempted_completion_function = orig_attempt_func;
++ rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
+ }
+
+ static void
+Only in bash-1.14.2.local: bashline.c.orig
+diff -rc bash-1.14.2/lib/readline/complete.c bash-1.14.2.local/lib/readline/complete.c
+*** bash-1.14.2/lib/readline/complete.c Tue Jul 26 12:59:57 1994
+--- bash-1.14.2.local/lib/readline/complete.c Wed Sep 21 15:41:19 1994
+***************
+*** 733,751 ****
+ if (rl_filename_completion_desired)
+ {
+ struct stat finfo;
+! char *filename = tilde_expand (matches[0]);
+
+! if ((stat (filename, &finfo) == 0) && S_ISDIR (finfo.st_mode))
+ {
+! if (rl_line_buffer[rl_point] != '/')
+! rl_insert_text ("/");
+ }
+! else
+ {
+! if (rl_point == rl_end)
+! rl_insert_text (temp_string);
+ }
+- free (filename);
+ }
+ else
+ {
+--- 733,768 ----
+ if (rl_filename_completion_desired)
+ {
+ struct stat finfo;
+! char *tilde_expand ();
+! char *plus_expand ();
+! char *filename = (char *) NULL;
+
+! switch (*matches[0])
+ {
+! case '+':
+! filename = plus_expand (matches[0]);
+! break;
+! case '~':
+! default:
+! filename = tilde_expand (matches[0]);
+! break;
+ }
+!
+! if (filename)
+ {
+! if ((stat (filename, &finfo) == 0)
+! && S_ISDIR (finfo.st_mode))
+! {
+! if (rl_line_buffer[rl_point] != '/')
+! rl_insert_text ("/");
+! }
+! else
+! {
+! if (rl_point == rl_end)
+! rl_insert_text (temp_string);
+! }
+! free (filename);
+ }
+ }
+ else
+ {
+Only in bash-1.14.2.local/lib/readline: diffs
+diff -rc bash-1.14.2/lib/readline/readline.c bash-1.14.2.local/lib/readline/readline.c
+*** bash-1.14.2/lib/readline/readline.c Fri Aug 12 12:47:46 1994
+--- bash-1.14.2.local/lib/readline/readline.c Wed Sep 21 15:36:07 1994
+***************
+*** 23,28 ****
+--- 23,29 ----
+ #define READLINE_LIBRARY
+
+ #include <stdio.h>
++ #include <string.h>
+ #include <sys/types.h>
+ #include <fcntl.h>
+ #if !defined (NO_SYS_FILE)
+***************
+*** 3518,3523 ****
+--- 3519,3616 ----
+ }
+
+ #endif /* TEST */
++
++ #define cr_whitespace(c) ((c) == '\r' || (c) == '\n' || whitespace(c))
++
++ char *
++ get_mh_path ()
++ {
++ static FILE *fp = (FILE *)NULL;
++ char buf[512]; /* XXX */
++ char profile[512]; /* XXX */
++ char *bp;
++ char *temp_home;
++ char *temp_path;
++
++ temp_home = (char *)getenv ("HOME");
++ if (!temp_home)
++ return ((char *)NULL);
++
++ strcpy (profile, temp_home);
++ strcat (profile, "/.mh_profile");
++
++ if (fp)
++ fclose (fp);
++
++ fp = fopen (profile, "r");
++ if (fp == (FILE *)NULL)
++ return ((char *)NULL);
++
++ while (fgets (buf, 512, fp) != (char *)NULL) /* XXX */
++ {
++ if ((bp = strstr (buf, "Path:")) != (char *)NULL)
++ {
++ bp += 5;
++ while (whitespace (*bp))
++ bp++;
++
++ if (*bp == '\0')
++ return ((char *)NULL);
++
++ temp_path = (char *)xmalloc (3 + strlen (bp) + strlen (temp_home));
++
++ strcpy (temp_path, temp_home);
++ strcat (temp_path, "/");
++ strcat (temp_path, bp);
++
++ bp = temp_path;
++
++ while (!(cr_whitespace (*bp)))
++ bp++;
++
++ *bp = '\0';
++
++ return temp_path;
++ }
++ }
++
++ return ((char *)NULL);
++ }
++
++ /* Expand FILENAME if it begins with a plus. This always returns
++ a new string. */
++ char *
++ plus_expand (filename)
++ char *filename;
++ {
++ static char *dirname = (char *)NULL;
++
++ if (filename && *filename == '+')
++ {
++ char *mh_path = get_mh_path ();
++
++ if (filename[1] == '/' || filename[1] == '.')
++ {
++ dirname = (char *)xmalloc (1 + strlen (filename));
++
++ strcpy(dirname, filename+1);
++
++ return dirname;
++ }
++
++ if (mh_path)
++ {
++ dirname = (char *)xmalloc (1 + strlen (filename) + strlen (mh_path));
++
++ strcpy (dirname, mh_path);
++ strcat (dirname, "/");
++ strcat (dirname, filename+1);
++
++ return dirname;
++ }
++ }
++ return (char *)NULL;
++ }
+
+
+ /*
+
diff --git a/CWRU/misc/aux-mach-desc b/CWRU/misc/aux-mach-desc
deleted file mode 100644
index 71a8dabe..00000000
--- a/CWRU/misc/aux-mach-desc
+++ /dev/null
@@ -1,20 +0,0 @@
-/* ************************ */
-/* */
-/* A/UX 3.0 System */
-/* */
-/* ************************ */
-#if defined (mc68k32) && !defined (M_MACHINE)
-# define M_MACHINE "Macintosh"
-# define M_OS "AUX"
-# define SYSDEP_CFLAGS -ZP -DUSG -DHAVE_BCOPY -DHAVE_UID_T -DNSIG=32 \
- -DHAVE_GETDTABLESIZE
-# define SYSDEP_LDFLAGS -ZP
-# define HAVE_DIRENT
-# define HAVE_POSIX_SIGNALS
-# define HAVE_VFPRINTF
-# define VOID_SIGHANDLER
-# define HAVE_GETGROUPS
-# undef HAVE_RESOURCE
-# undef HAVE_ALLOCA
-# define REQUIRED_LIBRARIES -lc_s
-#endif /* A/UX */