X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CWRU%2Fchangelog;h=d09a5b5a71c71f2bdb07ff952dd7050c191f9ac2;hb=ccc6cda312fea9f0468ee65b8f368e9653e1380b;hp=11d67757549cfc3d5516af8595d2218e5ba7c7b9;hpb=726f63884db0132f01745f1fb4465e6621088ccf;p=platform%2Fupstream%2Fbash.git diff --git a/CWRU/changelog b/CWRU/changelog index 11d6775..d09a5b5 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 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 + +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 is included before + +machines.h + - new entry for Bull DPX2 + +lib/tilde/tilde.c + - include before + +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 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 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 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 , 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 \ 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 if HAVE_UNISTD_H is defined + - use HAVE_LIMITS_H to decide whether or not to include + +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 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 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 and + +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 + + + 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 / and dirent/direct + mess + +posixdir.h, lib/readline/posixdir.h + - symlinks to lib/posixheaders/posixdir.h + +lib/readline/rldefs.h + - removed the posix dir includes and defines + +lib/readline/complete.c, getcwd.c + - include posixdir.h rather than having the code inline + +builtins/cd.def + - new code to do spelling correction on the directory name + modified from patch sent by Neil Russell (caret@c-side.com) + + 8/29 + ---- +builtins/shopt.def + - new option `cdspell' to toggle cd directory name spelling + correction + +documentation/{bash.{1,html},features.texi} + - documented new shopt `cdspell' option + + 9/5 + --- +subst.c + - $'' should expand to the same thing as '' (a quoted null string) + +shell.h + - changed CTLNUL to '\177'; some scripts use ^B for things like IFS + [in 1.14.6] + + 9/7 + --- +support/config.guess + - added code to identify a PPC running Solaris 2 + +doc + - new directory replacing documentation + +Makefile.in, MANIFEST, MANIFEST.doc, configure.in + - replaced `documentation' with `doc' + + 9/8 + --- +lib/readline/display.c + - fixed the code in _rl_update_final that decides whether or not the + cursor is at character position 0 on an otherwise-empty line and + adjusts _rl_vis_botlin accordingly + + 9/13 + ---- +general.c + - fixed canonicalize_pathname to make sure that intermediate + results correspond to directories before blindly chopping + off the last component when we see a `..'. This fixes the + `cd ../.../..' being equivalent to `cd ..' problem + +subst.c + - fixed make_named_pipe so that mkfifo is called with mode 0600 + for security reasons [in 1.14.6] + - changed the /dev/fd version of add_fifo_list to zero out new + entries to the fifo_list when it resizes it larger [in 1.14.6] + - changed make_dev_fd_filename to use DEV_FD_PREFIX + +aclocal.m4 + - changed BASH_HAVE_DEV_FD to check for /proc/self/fd and define + DEV_FD_PREFIX to either "/dev/fd/" or "/proc/self/fd/" as + appropriate + + 9/14 + ---- +lib/readline/display.c + - when displaying the first line of a multiline prompt, make sure + that the final \n is followed by a \r (outputting one if necessary) + so that we know we are starting at column 0 + +variables.h + - new attribute: att_local + +variables.c + - changed make_local_variable to set the att_local attribute + - changed makunbound to just make variables marked as `local' in + the current context invisible. This makes the local variable + persist throughout the function even if it is unset, so a + subsequent assignment preserves the `local' attribute + - changed kill_all_local_variables to unset the att_local attribute + before calling makunbound + + 9/18 + ---- +lib/readline/complete.c + - make sure the cursor is on the last line of a possibly-multiple- + line command line before listing the completions in + display_matches + + 9/19 + ---- +braces.c + - fixed the non-SHELL case in brace_gobbler so the loop exits when + it should + +lib/readline/bind.c, lib/readline/readline.h + - added functions to dump key sequences bound to macros and their + values + +builtins/bind.def + - added -S and -s options to dump the readline macros and their values + - changed the options so that -p and -P dump functions, -v and -V + dump variables, and -s and -S dump macros (s for string) + +doc/{bash.{1,html},readline.3,features.texi}, lib/readline/doc/rluser.texinfo + - added documentation for the new `bind' options + - added documentation for the new readline functions to dump macros + and the key sequences that output them + + 9/22 + ---- +print_cmd.c + - new function xtrace_print_word_list (WORD_LIST *) to print the + words of a simple command when set -x is on. This prints '' + when it encounters an empty string + +externs.h + - new extern declaration for xtrace_print_word_list + +execute_cmd.c + - call xtrace_print_word_list in execute_simple_command + + 9/25 + ---- +builtins/getopts.def + - make sure that the loop counter stops at 10 when stepping through + the dollar_vars array to count the number of positional parameters + [in 1.14.6] + + 9/30 + ---- +lib/readline/histsearch.c + - fixed history_search_internal to bail immediately if it gets a + null or empty search string. This fixes the !? core dumps. + [in 1.14.6] + + 10/3 + ---- +lib/readline/histexpand.c + - if there is a null string given with a !? search specifier, use + a previous search string if one exists, else fail immediately + +trap.c + - made run_exit_trap preserve $? around the call to execute the + trap string, unless the trap string contains an `exit' + command, in which case it can set the shell's exit status + [in 1.14.6] + + In other words: + + touch /tmp/z + trap 'rm /tmp/z ; exit 5' 0 + exit 1 + + exits with status 5; while + + touch /tmp/z + trap 'rm /tmp/z' 0 + exit 1 + + exits with status 1 + +subst.c, parse.y + - moved the $'...' code from subst.c to parse.y, more like ksh + does it + +doc/bash.1, doc/bash.html, doc/features.texi + - moved the description of $'...' from the expansion section to + the quoting section + + 10/4 + ---- +command.h + - added a `line' member to the function struct for the source line + the function definition starts on + +make_cmd.c + - initialize the `line' member in Function_def to 0 + - make_function_def takes a third parameter telling which line the + function definition started on and a fourth telling which line + the function body started on + +make_cmd.h + - changed prototype for make_function_def + +parse.y + - new variable `function_dstart', set by read_token and read_token_word + to keep track of where a function definition begins + - new variable `function_bstart' to keep track of where function + body begins + - pass function_dstart and function_bstart to make_function_def + - new function strtrans to do the $"..." locale-specific translation + of `...' + - call strtrans() to translate $"string". The translated string is + double-quoted + +doc/bash.{1,html} + - updated the description of LINENO now that line numbers within + functions are correct + +configure.in + - look for the `gettext' library function + +config.h.in + - define HAVE_GETTEXT if gettext(3) exists in a findable library + + 10/5 + ---- +builtins/common.c + - changed backslash_quote so that `#' is only quoted at the start + of a word + - new function contains_shell_metas returns 1 if the argument + string contains one or more shell meta-characters that require + quoting + +builtins/common.h + - extern declaration for contains_shell_metas + +print_cmd.c + - changed xtrace_print_word_list to print words containing + shell metacharacters within single quotes + +lib/termcap + - upgraded to GNU termcap version 1.3 + + 10/9 + ---- +lib/readline/readline.c + - call setlocale(LC_CTYPE, ...) after finding a legal value for + one of LC_ALL, LC_CTYPE, or LANG + + 10/11 + ----- +lib/readline/search.c + - make rl_history_search_internal just do previous-history or + next-history as appropriate when given a null search string + (rl_point == 0) + + 10/24 + ----- +subst.c + - fixed an off-by-one error in char_is_quoted that skipped a + characters after calling skip_single_quoted or skip_double_quoted + [in 1.14.6] + - fixed an off-by-one error in string_extract_verbatim so it + leaves *sindex at the separator character if the separator + character is "'" [in 1.14.6] + + 10/27 + ----- +parse.y + - in CHECK_FOR_RESERVED_WORD, make sure that reading a `}' + decrements open_brace_awaiting_satisfaction if it is non-zero + [in 1.14.6] + +shell.c + - don't run the shell startup files if the shell is running + setuid + - don't source $ENV if the shell is running setuid + +variables.c + - new parameter to initialize_shell_variables: no_functions. If + non-zero, don't import functions from the environment + +variables.h + - change to function prototype for initialize_shell_variables + +lib/readline/complete.c + - fix for the code that decides whether or not a char is quoted for + applications that don't supply a value for rl_char_is_quoted_p + - fixed insert_match to not remove a user-supplied opening quote + character if make_quoted_replacement does not return a string + beginning with that quote character + + 11/2 + ---- +general.c + - new function ungetc_with_restart that handles the local buffering + [in 1.14.6] + +parse.y + - changed yy_stream_unget to call ungetc_with_restart if the OS + does not have restartable syscalls [in 1.14.6] + + 11/3 + ---- +bashline.c + - rewrote _ignore_completion_names to actually free and remove + names from the array if more than one names in the array + passed is acceptable, instead of just bailing [in 1.14.6] + + 11/7 + ---- +bashline.c + - if no matches are acceptable to _ignore_completion_names, + free the entries in NAMES, set NAMES[0] == 0, and let the + caller clean up [in 1.14.6] + - fixed a problem with backslash-quoted characters in + bash_dequote_filename that caused the character after the + backslash to be interpreted + - bash_dequote_filename now takes a quote_char parameter that, + if non-zero, gives the quote character (`'' or `"') that + delimits the filename. Used to initialize the quoting state + +lib/readline/complete.c + - if the completion ignore function returns with MATCHES == 0 + or MATCHES[0] == 0, ring the bell and quit the completion + attempt [in 1.14.6] + - pass quote_char to gen_completion_matches so it can pass it + along to the app-specific filename dequoting function + - have gen_completion_matches pass quote_char to whatever function + is pointed to by rl_filename_dequoting_function + +pathexp.c + - rewrote ignore_globbed_names to be more like _ignore_completion_names + +lib/readline/doc/rltech.texinfo + - updated documentation for rl_filename_dequoting_function + + 11/10 + ----- +subst.c + - fixed remove_quoted_nulls so that it is now a full function that + removes unquoted CTLNUL chars from the string it is passed + [in 1.14.6] + - fixed expand_word_internal to avoid generating some unneeded + quoted nulls (if the string is partially quoted, note that we + have seen a quoted null and add one if the rest of the string + doesn't expand to anything) + + 11/13 + ----- +variables.c + - bind HOSTTYPE, OSTYPE, and HOSTNAME unconditionally + +pathexp.c + - new function quote_globbing_chars, adds `\' before globbing + chars in its string argument, returns new string + +pathexp.h + - extern declaration for quote_globbing_chars + +bashhist.c + - if the previous line contains globbing chars, run it through + quote_globbing_chars before trying to match. This affects + only HISTIGNORE patterns containing `&' + + 11/14 + ----- +bashhist.c + - if the history line to be added contains globbing chars, quote + them with backslashes by calling quote_globbing_chars in + history_should_ignore before comparing them against the + patterns in HISTIGNORE + +bashline.c + - make sure that we erase the current readline line after running + fc on it and executing the resultant commands in + vi_edit_and_execute_command, so the original readline line + doesn't get returned [in 1.14.6] + +jobs.h + - added a new job listing format: JLIST_NONINTERACTIVE -- like + JLIST_LONG, but does not print the job number + +jobs.c + - added code to pretty_print_job to handle JLIST_NONINTERACTIVE + - call notify_and_cleanup() from wait_for even if the shell is + running a script (interactive_shell == 0) + - changed notify_and_cleanup to call notify_of_job_status if + interactive or interactive_shell == 0, so scripts report + about jobs they run + - changed notify_of_job_status to call pretty_print_job with a + JLIST_NONINTERACTIVE format if interactive_shell is 0 and a + job is marked JDEAD, after printing the script name and line + number. This message is printed only if the job dies due to + a fatal signal + +support/mkversion.c + - added support for a `-status status' argument to set the + `release status' of the shell (alpha, beta, or release). It + defines `RELSTATUS' in version.h and changes the definition + of SCCSVERSION, if present + +Makefile.in + - set a RELSTATUS variable that is included when printing the build + message and passed to mkversion with the -status option + - make RELSTATUS one of the variables sed sets when it creates + bashbug from support/bashbug.sh + +version.c + - added a `release_status' variable that's set to RELSTATUS if + it's defined + +support/bashbug.sh + - added the `RELSTATUS' variable to the report with heading + `Release Status' + - set the bug address to chet@po.cwru.edu if the release status + is `alpha' or `beta' + + 11/15 + ----- + +shell.c, execute_cmd.c + - new variable expand_aliases to control alias expansion. For now, + this is set to the same value as interactive_shell when that is + set + +parse.y + - perform alias expansion if expand_aliases is non-zero rather than + checking the value of interactive_shell + + 11/16 + ----- +builtins/shopt.def + - new option `expand_aliases' to control the value of expand_aliases + +doc/bash.1, doc/bash.html + - updated the description of `shopt' with the `expand_aliases' option + + 11/28 + ----- +bashline.c + - if there is only one completion in _ignore_completion_names, see + if it is acceptable and return right away [in 1.14.6] + +configure.in + - change to define WAITPID_BROKEN on SCO 3.2v5 + + 12/6 + ---- +parse.y + - call prompt_again in read_token_word if a newline is read in an + interactive shell and bash_input.type is either st_stdin or + st_stream + - remove superfluous call to reset_readline_prompt in yy_readline_get + + 12/7 + ---- +parse.y + - combine delimiters, delimiter_depth, and delimiter_space into a + single structure of type `struct dstack' + - replace all references to delimiter* with dstack.delimiter* + - include parser.h for struct dstack + - new define pop_delimiter(), analogous to push_delimiter + - current_delimiter, push_delimiter, and pop_delimiter defines now + include the delimiter stack struct as the first parameter + +parser.h + - now includes definition of struct dstack + +bashline.c + - include parser.h for struct dstack + - refer to dstack.delimiter_depth instead of delimiter_depth + + 12/12 + ----- +execute_cmd.c + - before doing a longjmp(subshell_top_level,...) when executing a + shell script without a leading #!, set history_lines_this_session + to 0 to forget about the history and not save it on an exec + (we don't free the memory with clear_history(), though -- that + would slow bash down) + + 12/14 + ----- +jobs.c, nojobs.c + - cause the sigwinch handling code to be compiled into the shell + even if READLINE is defined + - new functions: set_sigwinch_handler and unset_sigwith_handler + to enable and disable catching of SIGWINCH and adjusting $LINES + and $COLUMNS + - changed initialize_job_signals to install a signal handler for + SIGWINCH with set_sigwinch_handler + +jobs.h + - extern declarations for set_sigwinch_handler and + unset_sigwinch_handler + + 12/20 + ----- +doc/bash.{1,html}, doc/readline.3, lib/readline/doc/rluser.texinfo + - documented the readline `visible-stats' variable + + 12/21 + ----- +trap.c + - new global variable `running_trap' incremented and decremented + around running a trap command in _run_trap_internal + +execute_cmd.c + - new variable currently_executing_command, set to the COMMAND * + currently being processed by execute_command_internal, unless a + trap command is being run (running_trap != 0) + - new function executing_line_number, which returns the line number + of the currently executing command (which may not be the same as + line_number) + - don't run the debug trap if it was not set before the current + simple command was executed, since we don't want to run it after + the trap command that sets the DEBUG trap + +variables.c + - new function assign_lineno, to assign a value to line_number + when LINENO is set + - changed get_lineno to call executing_line_number() rather than + returning line_number + +parse.y + - new argument for push_stream telling it whether or not to reset + line_number to 0 + +builtins/common.c + - change to parse_and_execute to call push_stream with an argument + + 12/29 + ----- +subst.c + - set subshell_environment in command_substitute and process_substitute + for the child process + + 1/2 + --- +trap.c + - made decode_signal recognize signal names case insensitively + +shell.c + - make the shell exit on a longjmp (DISCARD, ...) if + subshell_environment is non-zero + + 1/16 + ---- +lib/readline/histexpand.c + - let the `!' in ${!xxx} pass through without error + +shell.c + - new --help long option + - new function show_shell_usage() for use by --help + + 1/19 + ---- +parse.y + - changes to shell_getc to make sure that lines consisting of only a + newline get added to the history correctly when they are part of + a quoted string + + 1/24 + ---- +aclocal.m4, configure.in + - added a check for -lsocket (and -lnsl) to fix solaris problems + with isnetconn() + +shell.c + - rearranged the code in isnetconn to check for a socket using + getpeername() first, before any SVR4 or SVR4.2-specific checks + - added checks for ttys (isatty) and FIFOs (S_ISFIFO) to the + SVR4/SVR4.2 case of isnetconn() + +general.h + - new macro RESIZE_MALLOCED_BUFFER to check and see whether there + is enough room in a string to add a given number of characters + and to resize it if there is not + + 1/25 + ---- +parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c + - use RESIZE_MALLOCED_BUFFER where appropriate + + 1/26 + ---- +support/config.{guess,sub} + - merged in latest changes from GNU master copies + + 1/30 + ---- + +jobs.c + - make sure to freeze the jobs list when calling a trap handler + for SIGINT + - added code to waitchld() so that a SIGINT trap handler is called + if the shell is running a shell script and a SIGINT is received + while waiting for a foreground job, even if that job does not + die from the SIGINT + +jobs.c, nojobs.c + - make get_tty_state reset $LINES and $COLUMNS after each process + exits if the variable `check_window_size' is non-zero + +builtins/shopt.def + - new variable `checkwinsize', which controls the value of + check_window_size + +doc/{bash.{1,html},features.texi} + - updated description of `shopt' to include `checkwinsize' + +execute_cmd.c, lib/readline,complete.c + - some changes from the GNU WIN32 project for the bash port to + Windows NT and Windows 95 + +bashwait.h + - new file, with `union wait' defines from jobs.h + +jobs.h + - include `bashwait.h' if 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 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 and + +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 on systems + with select but without + +configure.in + - check for , 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 or 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 + +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 + +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 + + 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 + +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 if GWINSZ_IN_SYS_IOCTL is defined and + SHELL is not defined + +lib/readline/input.c + - changed a stray HAVE_FIONREAD to FIONREAD + - include if FIONREAD_IN_SYS_IOCTL is defined + +aclocal.m4 + - new macro, BASH_HAVE_FIONREAD, to check for a #define of + FIONREAD in 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 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 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 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 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 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 + +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 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 + - 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 + + 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 + (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 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 + 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 + +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 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 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 - - made an efficiency improvement to dequote_string -- don't - do anything when we see CTLESC, just `continue' the loop + - 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]